diff --git a/assets/music/.gitattributes b/assets/music/.gitattributes new file mode 100644 index 0000000..85f6d84 --- /dev/null +++ b/assets/music/.gitattributes @@ -0,0 +1 @@ +jazz_music.mp3 filter=lfs diff=lfs merge=lfs -text diff --git a/assets/music/jazz_music.mp3 b/assets/music/jazz_music.mp3 new file mode 100644 index 0000000..d404b64 --- /dev/null +++ b/assets/music/jazz_music.mp3 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b9927ccffb136ff384e3455e721768a384d637b00e2f69556ecd4b8e9c517a9 +size 236983128 diff --git a/assets/music/jazz_music.mp3.import b/assets/music/jazz_music.mp3.import new file mode 100644 index 0000000..460a7bb --- /dev/null +++ b/assets/music/jazz_music.mp3.import @@ -0,0 +1,19 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +uid="uid://csy7ltflvsjq5" +path="res://.godot/imported/jazz_music.mp3-51c0488dbe42064eda25eafa56d387ed.mp3str" + +[deps] + +source_file="res://assets/music/jazz_music.mp3" +dest_files=["res://.godot/imported/jazz_music.mp3-51c0488dbe42064eda25eafa56d387ed.mp3str"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/sfx/chip_collide_1.ogg b/assets/sfx/chip_collide_1.ogg new file mode 100644 index 0000000..84a48be Binary files /dev/null and b/assets/sfx/chip_collide_1.ogg differ diff --git a/assets/sfx/chip_collide_1.ogg.import b/assets/sfx/chip_collide_1.ogg.import new file mode 100644 index 0000000..e8f2027 --- /dev/null +++ b/assets/sfx/chip_collide_1.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://dauf0pi1pkd3x" +path="res://.godot/imported/chip_collide_1.ogg-406dd38ea9c3d5652eebd8457cb16d54.oggvorbisstr" + +[deps] + +source_file="res://assets/sfx/chip_collide_1.ogg" +dest_files=["res://.godot/imported/chip_collide_1.ogg-406dd38ea9c3d5652eebd8457cb16d54.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/sfx/chip_collide_2.ogg b/assets/sfx/chip_collide_2.ogg new file mode 100644 index 0000000..c4d9299 Binary files /dev/null and b/assets/sfx/chip_collide_2.ogg differ diff --git a/assets/sfx/chip_collide_2.ogg.import b/assets/sfx/chip_collide_2.ogg.import new file mode 100644 index 0000000..065d01f --- /dev/null +++ b/assets/sfx/chip_collide_2.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://b6b7b7sc038n7" +path="res://.godot/imported/chip_collide_2.ogg-f3e4af1639a40a7e5696a0d76240e083.oggvorbisstr" + +[deps] + +source_file="res://assets/sfx/chip_collide_2.ogg" +dest_files=["res://.godot/imported/chip_collide_2.ogg-f3e4af1639a40a7e5696a0d76240e083.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/sfx/chip_collide_3.ogg b/assets/sfx/chip_collide_3.ogg new file mode 100644 index 0000000..71138bd Binary files /dev/null and b/assets/sfx/chip_collide_3.ogg differ diff --git a/assets/sfx/chip_collide_3.ogg.import b/assets/sfx/chip_collide_3.ogg.import new file mode 100644 index 0000000..d7c9efb --- /dev/null +++ b/assets/sfx/chip_collide_3.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://c6a4wqoopu53j" +path="res://.godot/imported/chip_collide_3.ogg-8dacdc0da1447d7f98373dc814c23342.oggvorbisstr" + +[deps] + +source_file="res://assets/sfx/chip_collide_3.ogg" +dest_files=["res://.godot/imported/chip_collide_3.ogg-8dacdc0da1447d7f98373dc814c23342.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/sfx/chip_collide_4.ogg b/assets/sfx/chip_collide_4.ogg new file mode 100644 index 0000000..da15c1e Binary files /dev/null and b/assets/sfx/chip_collide_4.ogg differ diff --git a/assets/sfx/chip_collide_4.ogg.import b/assets/sfx/chip_collide_4.ogg.import new file mode 100644 index 0000000..3ea6c97 --- /dev/null +++ b/assets/sfx/chip_collide_4.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://5liedrachob2" +path="res://.godot/imported/chip_collide_4.ogg-a636adca2293a212ad4dd420b3445fd5.oggvorbisstr" + +[deps] + +source_file="res://assets/sfx/chip_collide_4.ogg" +dest_files=["res://.godot/imported/chip_collide_4.ogg-a636adca2293a212ad4dd420b3445fd5.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/sfx/chip_collide_5.ogg b/assets/sfx/chip_collide_5.ogg new file mode 100644 index 0000000..70e5f8d Binary files /dev/null and b/assets/sfx/chip_collide_5.ogg differ diff --git a/assets/sfx/chip_collide_5.ogg.import b/assets/sfx/chip_collide_5.ogg.import new file mode 100644 index 0000000..5e6fc33 --- /dev/null +++ b/assets/sfx/chip_collide_5.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://dsyovynhhbmw8" +path="res://.godot/imported/chip_collide_5.ogg-43d68269cdbbab204cb581d3f2f55acc.oggvorbisstr" + +[deps] + +source_file="res://assets/sfx/chip_collide_5.ogg" +dest_files=["res://.godot/imported/chip_collide_5.ogg-43d68269cdbbab204cb581d3f2f55acc.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/sfx/chip_collide_6.ogg b/assets/sfx/chip_collide_6.ogg new file mode 100644 index 0000000..5e34211 Binary files /dev/null and b/assets/sfx/chip_collide_6.ogg differ diff --git a/assets/sfx/chip_collide_6.ogg.import b/assets/sfx/chip_collide_6.ogg.import new file mode 100644 index 0000000..1411571 --- /dev/null +++ b/assets/sfx/chip_collide_6.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://c0a5rl5q04noq" +path="res://.godot/imported/chip_collide_6.ogg-277685742efbfc8894a8af489e0a5d40.oggvorbisstr" + +[deps] + +source_file="res://assets/sfx/chip_collide_6.ogg" +dest_files=["res://.godot/imported/chip_collide_6.ogg-277685742efbfc8894a8af489e0a5d40.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/sfx/chip_collide_7.ogg b/assets/sfx/chip_collide_7.ogg new file mode 100644 index 0000000..b4032cf Binary files /dev/null and b/assets/sfx/chip_collide_7.ogg differ diff --git a/assets/sfx/chip_collide_7.ogg.import b/assets/sfx/chip_collide_7.ogg.import new file mode 100644 index 0000000..1ae130f --- /dev/null +++ b/assets/sfx/chip_collide_7.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://b6d73wiiqxles" +path="res://.godot/imported/chip_collide_7.ogg-7f61ae7f863bd72768f0889e7ed11946.oggvorbisstr" + +[deps] + +source_file="res://assets/sfx/chip_collide_7.ogg" +dest_files=["res://.godot/imported/chip_collide_7.ogg-7f61ae7f863bd72768f0889e7ed11946.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/sfx/game_end.ogg b/assets/sfx/game_end.ogg new file mode 100644 index 0000000..2c6fb10 Binary files /dev/null and b/assets/sfx/game_end.ogg differ diff --git a/assets/sfx/game_end.ogg.import b/assets/sfx/game_end.ogg.import new file mode 100644 index 0000000..720810d --- /dev/null +++ b/assets/sfx/game_end.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://crxjuk1vyq331" +path="res://.godot/imported/game_end.ogg-8ceab2b7181c15a955c6f20334947ba7.oggvorbisstr" + +[deps] + +source_file="res://assets/sfx/game_end.ogg" +dest_files=["res://.godot/imported/game_end.ogg-8ceab2b7181c15a955c6f20334947ba7.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/project.godot b/project.godot index eb80b26..753d3d2 100644 --- a/project.godot +++ b/project.godot @@ -11,7 +11,7 @@ config_version=5 [application] config/name="Connect4 Observer" -config/version="0.1.3" +config/version="1.0.0" run/main_scene="uid://dcx5nvs0pa7me" config/features=PackedStringArray("4.5", "C#", "Forward Plus") boot_splash/image="uid://dd7lvnidxr5ss" @@ -20,6 +20,7 @@ config/icon="uid://dd7lvnidxr5ss" [autoload] Connection="*res://scripts/Connection.cs" +BackgroundMusic="*res://scripts/background_music.gd" [display] diff --git a/scenes/board_screen.tscn b/scenes/board_screen.tscn index 6d4084d..ed6e0f9 100644 --- a/scenes/board_screen.tscn +++ b/scenes/board_screen.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=15 format=3 uid="uid://m542qwlp7hl7"] +[gd_scene load_steps=16 format=3 uid="uid://m542qwlp7hl7"] [ext_resource type="Script" uid="uid://dg5jt0o0r0v3r" path="res://scripts/BoardScreen.cs" id="1_b3w8x"] +[ext_resource type="AudioStream" uid="uid://crxjuk1vyq331" path="res://assets/sfx/game_end.ogg" id="2_kseed"] [ext_resource type="Texture2D" uid="uid://dlx02qat7j6lf" path="res://assets/sprites/AssetTileset.png" id="3_1tlhv"] [ext_resource type="FontFile" uid="uid://c3jmev24lo6ci" path="res://assets/fonts/PixelOperator8.ttf" id="3_rjcmr"] [ext_resource type="Texture2D" uid="uid://ckmfi0cjgxgyk" path="res://assets/sprites/RedChip.png" id="4_1hrcj"] @@ -34,6 +35,7 @@ region = Rect2(112, 32, 16, 16) [node name="BoardScreen" type="Node2D"] script = ExtResource("1_b3w8x") +endingSfx = ExtResource("2_kseed") [node name="Floor Collider" type="StaticBody2D" parent="."] position = Vector2(0, 200) diff --git a/scenes/red_chip.tscn b/scenes/red_chip.tscn index fbf20c5..049b135 100644 --- a/scenes/red_chip.tscn +++ b/scenes/red_chip.tscn @@ -1,13 +1,25 @@ -[gd_scene load_steps=4 format=3 uid="uid://b4tujjdhmk4h"] +[gd_scene load_steps=11 format=3 uid="uid://b4tujjdhmk4h"] [ext_resource type="Texture2D" uid="uid://ckmfi0cjgxgyk" path="res://assets/sprites/RedChip.png" id="1_qsflu"] -[ext_resource type="Script" uid="uid://dd5nu6037qsr0" path="res://scripts/red_chip.gd" id="1_tfypd"] +[ext_resource type="Script" uid="uid://dd5nu6037qsr0" path="res://scripts/chip_sfx.gd" id="1_tfypd"] +[ext_resource type="AudioStream" uid="uid://dauf0pi1pkd3x" path="res://assets/sfx/chip_collide_1.ogg" id="2_g7r6w"] +[ext_resource type="AudioStream" uid="uid://b6b7b7sc038n7" path="res://assets/sfx/chip_collide_2.ogg" id="3_l66m7"] +[ext_resource type="AudioStream" uid="uid://c6a4wqoopu53j" path="res://assets/sfx/chip_collide_3.ogg" id="4_5isma"] +[ext_resource type="AudioStream" uid="uid://5liedrachob2" path="res://assets/sfx/chip_collide_4.ogg" id="5_sa1hx"] +[ext_resource type="AudioStream" uid="uid://dsyovynhhbmw8" path="res://assets/sfx/chip_collide_5.ogg" id="6_752ap"] +[ext_resource type="AudioStream" uid="uid://c0a5rl5q04noq" path="res://assets/sfx/chip_collide_6.ogg" id="7_ky42j"] +[ext_resource type="AudioStream" uid="uid://b6d73wiiqxles" path="res://assets/sfx/chip_collide_7.ogg" id="8_lgcne"] [sub_resource type="CircleShape2D" id="CircleShape2D_tfypd"] -radius = 13.017083 +radius = 12.8 -[node name="RedChip" type="RigidBody2D"] +[node name="RedChip" type="RigidBody2D" node_paths=PackedStringArray("audio_stream_player_2d")] +lock_rotation = true +contact_monitor = true +max_contacts_reported = 3 script = ExtResource("1_tfypd") +audio_stream_player_2d = NodePath("AudioStreamPlayer2D") +sounds = Array[AudioStream]([ExtResource("2_g7r6w"), ExtResource("3_l66m7"), ExtResource("4_5isma"), ExtResource("5_sa1hx"), ExtResource("6_752ap"), ExtResource("7_ky42j"), ExtResource("8_lgcne")]) [node name="Sprite2D" type="Sprite2D" parent="."] scale = Vector2(3, 3) @@ -16,3 +28,8 @@ texture = ExtResource("1_qsflu") [node name="CollisionShape2D" type="CollisionShape2D" parent="."] scale = Vector2(3, 3) shape = SubResource("CircleShape2D_tfypd") + +[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."] +volume_db = -5.0 + +[connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/scenes/yellow_chip.tscn b/scenes/yellow_chip.tscn index 42d36b4..ea2fd95 100644 --- a/scenes/yellow_chip.tscn +++ b/scenes/yellow_chip.tscn @@ -1,13 +1,25 @@ -[gd_scene load_steps=4 format=3 uid="uid://lruk652t0xe5"] +[gd_scene load_steps=11 format=3 uid="uid://lruk652t0xe5"] -[ext_resource type="Script" uid="uid://ddg7dv686sbrb" path="res://scripts/yellow_chip.gd" id="1_epi6l"] +[ext_resource type="Script" uid="uid://dd5nu6037qsr0" path="res://scripts/chip_sfx.gd" id="1_epi6l"] [ext_resource type="Texture2D" uid="uid://qy30emdgrk7o" path="res://assets/sprites/YellowChip.png" id="1_eu0sq"] +[ext_resource type="AudioStream" uid="uid://dauf0pi1pkd3x" path="res://assets/sfx/chip_collide_1.ogg" id="2_ki13g"] +[ext_resource type="AudioStream" uid="uid://b6b7b7sc038n7" path="res://assets/sfx/chip_collide_2.ogg" id="3_kic5w"] +[ext_resource type="AudioStream" uid="uid://c6a4wqoopu53j" path="res://assets/sfx/chip_collide_3.ogg" id="4_nbcpr"] +[ext_resource type="AudioStream" uid="uid://5liedrachob2" path="res://assets/sfx/chip_collide_4.ogg" id="5_wq2sm"] +[ext_resource type="AudioStream" uid="uid://dsyovynhhbmw8" path="res://assets/sfx/chip_collide_5.ogg" id="6_ik045"] +[ext_resource type="AudioStream" uid="uid://c0a5rl5q04noq" path="res://assets/sfx/chip_collide_6.ogg" id="7_evobg"] +[ext_resource type="AudioStream" uid="uid://b6d73wiiqxles" path="res://assets/sfx/chip_collide_7.ogg" id="8_b44ux"] [sub_resource type="CircleShape2D" id="CircleShape2D_epi6l"] -radius = 13.004272 +radius = 12.8 -[node name="YellowChip" type="RigidBody2D"] +[node name="YellowChip" type="RigidBody2D" node_paths=PackedStringArray("audio_stream_player_2d")] +lock_rotation = true +contact_monitor = true +max_contacts_reported = 3 script = ExtResource("1_epi6l") +audio_stream_player_2d = NodePath("AudioStreamPlayer2D") +sounds = Array[AudioStream]([ExtResource("2_ki13g"), ExtResource("3_kic5w"), ExtResource("4_nbcpr"), ExtResource("5_wq2sm"), ExtResource("6_ik045"), ExtResource("7_evobg"), ExtResource("8_b44ux")]) [node name="Sprite2D" type="Sprite2D" parent="."] scale = Vector2(3, 3) @@ -16,3 +28,8 @@ texture = ExtResource("1_eu0sq") [node name="CollisionShape2D" type="CollisionShape2D" parent="."] scale = Vector2(3, 3) shape = SubResource("CircleShape2D_epi6l") + +[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."] +volume_db = -5.0 + +[connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/scripts/BoardScreen.cs b/scripts/BoardScreen.cs index 41313af..db8e3c6 100644 --- a/scripts/BoardScreen.cs +++ b/scripts/BoardScreen.cs @@ -3,7 +3,10 @@ using System; using System.Collections.Generic; using System.Linq; -public partial class BoardScreen : Node2D { +public partial class BoardScreen : Node2D +{ + + [Export] private AudioStream endingSfx; private const string RED_CHIP_PATH = "res://scenes/red_chip.tscn"; private const string YELLOW_CHIP_PATH = "res://scenes/yellow_chip.tscn"; @@ -24,9 +27,7 @@ public partial class BoardScreen : Node2D { private Node2D player1Card; private Node2D player2Card; private MatchData matchData; - - private List<(string, int)> moves; - + private RigidBody2D[,] chips = new RigidBody2D[6, 7]; // 6 rows 7 cols | 0, 0 is top left // Called when the node enters the scene tree for the first time. @@ -102,7 +103,6 @@ public partial class BoardScreen : Node2D { private void ObserveMove(string username, int column) { - GD.Print(username); if (username == matchData.player1) { player1Card.GetNode