diff --git a/ressources/images/melodie-2.png.png.import b/ressources/images/melodie-2.png.png.import new file mode 100644 index 0000000..a950577 --- /dev/null +++ b/ressources/images/melodie-2.png.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dnpbiuxu41tqr" +path="res://.godot/imported/melodie-2.png.png-1e7ec568d7b7e533e118b9283b70a243.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ressources/images/melodie-2.png.png" +dest_files=["res://.godot/imported/melodie-2.png.png-1e7ec568d7b7e533e118b9283b70a243.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/ressources/images/melodie-4.png.png.import b/ressources/images/melodie-4.png.png.import new file mode 100644 index 0000000..efdc52e --- /dev/null +++ b/ressources/images/melodie-4.png.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bnh6qj2mr7ni2" +path="res://.godot/imported/melodie-4.png.png-42d7f34a3096af80d7b3a7d3a7b73e30.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ressources/images/melodie-4.png.png" +dest_files=["res://.godot/imported/melodie-4.png.png-42d7f34a3096af80d7b3a7d3a7b73e30.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/ressources/images/melodie_cote-2.png.png.import b/ressources/images/melodie_cote-2.png.png.import new file mode 100644 index 0000000..9876145 --- /dev/null +++ b/ressources/images/melodie_cote-2.png.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cm886u7l583eg" +path="res://.godot/imported/melodie_cote-2.png.png-1fbf7de2f61b6cf29d5b1e195dc9a1b3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ressources/images/melodie_cote-2.png.png" +dest_files=["res://.godot/imported/melodie_cote-2.png.png-1fbf7de2f61b6cf29d5b1e195dc9a1b3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/ressources/images/melodie_cote-4.png.png.import b/ressources/images/melodie_cote-4.png.png.import new file mode 100644 index 0000000..0268265 --- /dev/null +++ b/ressources/images/melodie_cote-4.png.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b4udql8psej1n" +path="res://.godot/imported/melodie_cote-4.png.png-a7a6a259fd83bc3cb82e28583df75ead.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ressources/images/melodie_cote-4.png.png" +dest_files=["res://.godot/imported/melodie_cote-4.png.png-a7a6a259fd83bc3cb82e28583df75ead.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/ressources/images/melodie_dos-2.png.png.import b/ressources/images/melodie_dos-2.png.png.import new file mode 100644 index 0000000..a05a80b --- /dev/null +++ b/ressources/images/melodie_dos-2.png.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dio8ciloxv6f" +path="res://.godot/imported/melodie_dos-2.png.png-1a6d2dc47c396e3de82fda25bb80b34f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ressources/images/melodie_dos-2.png.png" +dest_files=["res://.godot/imported/melodie_dos-2.png.png-1a6d2dc47c396e3de82fda25bb80b34f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/ressources/images/melodie_dos-4.png.png.import b/ressources/images/melodie_dos-4.png.png.import new file mode 100644 index 0000000..136b640 --- /dev/null +++ b/ressources/images/melodie_dos-4.png.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b3848xxx4bumg" +path="res://.godot/imported/melodie_dos-4.png.png-ca174ff4b410f929cf68409e5ffa0048.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ressources/images/melodie_dos-4.png.png" +dest_files=["res://.godot/imported/melodie_dos-4.png.png-ca174ff4b410f929cf68409e5ffa0048.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/ressources/sons/blob-bobo.mp3.import b/ressources/sons/blob-bobo.mp3.import new file mode 100644 index 0000000..1f3d3ae --- /dev/null +++ b/ressources/sons/blob-bobo.mp3.import @@ -0,0 +1,19 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +uid="uid://5a1syiwvowk2" +path="res://.godot/imported/blob-bobo.mp3-a17d23314def42dfb98b7e09aeeda943.mp3str" + +[deps] + +source_file="res://ressources/sons/blob-bobo.mp3" +dest_files=["res://.godot/imported/blob-bobo.mp3-a17d23314def42dfb98b7e09aeeda943.mp3str"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/ressources/sons/melodie-bobo-1.mp3.import b/ressources/sons/melodie-bobo-1.mp3.import new file mode 100644 index 0000000..a34d701 --- /dev/null +++ b/ressources/sons/melodie-bobo-1.mp3.import @@ -0,0 +1,19 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +uid="uid://17l5y4daoi6f" +path="res://.godot/imported/melodie-bobo-1.mp3-7aa3030b2c790daa8c4313aa01ae98f9.mp3str" + +[deps] + +source_file="res://ressources/sons/melodie-bobo-1.mp3" +dest_files=["res://.godot/imported/melodie-bobo-1.mp3-7aa3030b2c790daa8c4313aa01ae98f9.mp3str"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/ressources/sons/melodie-bobo-2.mp3.import b/ressources/sons/melodie-bobo-2.mp3.import new file mode 100644 index 0000000..11c58c1 --- /dev/null +++ b/ressources/sons/melodie-bobo-2.mp3.import @@ -0,0 +1,19 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +uid="uid://dvx77b2ja5e1t" +path="res://.godot/imported/melodie-bobo-2.mp3-bb198435e05ddb0da77a07ac4cfc56ba.mp3str" + +[deps] + +source_file="res://ressources/sons/melodie-bobo-2.mp3" +dest_files=["res://.godot/imported/melodie-bobo-2.mp3-bb198435e05ddb0da77a07ac4cfc56ba.mp3str"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/ressources/sons/melodie-bobo-3.mp3.import b/ressources/sons/melodie-bobo-3.mp3.import new file mode 100644 index 0000000..530e95a --- /dev/null +++ b/ressources/sons/melodie-bobo-3.mp3.import @@ -0,0 +1,19 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +uid="uid://noeysgss5wsi" +path="res://.godot/imported/melodie-bobo-3.mp3-12ce345635646780a00ff0064dda381b.mp3str" + +[deps] + +source_file="res://ressources/sons/melodie-bobo-3.mp3" +dest_files=["res://.godot/imported/melodie-bobo-3.mp3-12ce345635646780a00ff0064dda381b.mp3str"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/ressources/sons/melodie-bobo-4.mp3.import b/ressources/sons/melodie-bobo-4.mp3.import new file mode 100644 index 0000000..1e057e5 --- /dev/null +++ b/ressources/sons/melodie-bobo-4.mp3.import @@ -0,0 +1,19 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +uid="uid://b0y2n4slo8k3f" +path="res://.godot/imported/melodie-bobo-4.mp3-85d81fc35615c5448418bb695518b42e.mp3str" + +[deps] + +source_file="res://ressources/sons/melodie-bobo-4.mp3" +dest_files=["res://.godot/imported/melodie-bobo-4.mp3-85d81fc35615c5448418bb695518b42e.mp3str"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/ressources/sons/melodie-bobo-5.mp3.import b/ressources/sons/melodie-bobo-5.mp3.import new file mode 100644 index 0000000..d40abfa --- /dev/null +++ b/ressources/sons/melodie-bobo-5.mp3.import @@ -0,0 +1,19 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +uid="uid://bpdelql7a1hfb" +path="res://.godot/imported/melodie-bobo-5.mp3-3f367a2a630c34a5f2323ebc8535769d.mp3str" + +[deps] + +source_file="res://ressources/sons/melodie-bobo-5.mp3" +dest_files=["res://.godot/imported/melodie-bobo-5.mp3-3f367a2a630c34a5f2323ebc8535769d.mp3str"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/ressources/sons/poulpe-bobo.mp3.import b/ressources/sons/poulpe-bobo.mp3.import new file mode 100644 index 0000000..1a4f1c8 --- /dev/null +++ b/ressources/sons/poulpe-bobo.mp3.import @@ -0,0 +1,19 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +uid="uid://dp6xr1dkaab2u" +path="res://.godot/imported/poulpe-bobo.mp3-ddbc62e50412213c95688398f4c2d8a6.mp3str" + +[deps] + +source_file="res://ressources/sons/poulpe-bobo.mp3" +dest_files=["res://.godot/imported/poulpe-bobo.mp3-ddbc62e50412213c95688398f4c2d8a6.mp3str"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/ressources/sons/roby-bobo.mp3.import b/ressources/sons/roby-bobo.mp3.import new file mode 100644 index 0000000..2713b1f --- /dev/null +++ b/ressources/sons/roby-bobo.mp3.import @@ -0,0 +1,19 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +uid="uid://bduu3c4c05k6i" +path="res://.godot/imported/roby-bobo.mp3-4c91f97263eb900e643d718eb309f330.mp3str" + +[deps] + +source_file="res://ressources/sons/roby-bobo.mp3" +dest_files=["res://.godot/imported/roby-bobo.mp3-4c91f97263eb900e643d718eb309f330.mp3str"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/scenes/Room.tscn b/scenes/Room.tscn index 03cb3e8..122d2b0 100644 --- a/scenes/Room.tscn +++ b/scenes/Room.tscn @@ -1,16 +1,15 @@ -[gd_scene load_steps=16 format=3 uid="uid://durhes43gex7a"] +[gd_scene load_steps=15 format=3 uid="uid://durhes43gex7a"] [ext_resource type="PackedScene" uid="uid://c7bfiw54rvaq2" path="res://scenes/player_melodie.tscn" id="1_cl1wt"] [ext_resource type="Script" path="res://scenes/room.gd" id="1_jh83c"] [ext_resource type="AudioStream" uid="uid://qyacm71epyhi" path="res://ressources/sons/idle_theme.wav" id="2_8nbnd"] [ext_resource type="Texture2D" uid="uid://ky4e7158gqf6" path="res://ressources/images/cgj_default_tile.svg" id="2_torsx"] -[ext_resource type="PackedScene" uid="uid://cyvqa6g64cw37" path="res://scenes/enemies/slime.tscn" id="3_04ip2"] [ext_resource type="Texture2D" uid="uid://bge3nllk1bq5r" path="res://ressources/images/mur.svg" id="3_oi2tl"] [ext_resource type="Texture2D" uid="uid://dhva3tivsvknl" path="res://ressources/images/mur_coin.svg" id="4_6a3f6"] [ext_resource type="PackedScene" uid="uid://di4chlep1t1or" path="res://parametres/menu_parametres.tscn" id="6_6ubhx"] [ext_resource type="PackedScene" uid="uid://bndtclt51nsih" path="res://scenes/interface.tscn" id="8_5s7tf"] [ext_resource type="PackedScene" uid="uid://ctgxrbcg2vu1p" path="res://scenes/ecran_mort.tscn" id="10_3ou8w"] -[ext_resource type="PackedScene" uid="uid://cm5spgl8o4fam" path="res://scenes/enemies/robot.tscn" id="10_5qrsc"] +[ext_resource type="Script" path="res://scenes/vague.gd" id="12_n6lb5"] [sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_1c4te"] normal = Vector2(0, 1) @@ -44,10 +43,6 @@ offset_bottom = 360.0 texture = ExtResource("2_torsx") stretch_mode = 1 -[node name="Player_Melodie" parent="." node_paths=PackedStringArray("interface") groups=["Player"] instance=ExtResource("1_cl1wt")] -scale = Vector2(3, 3) -interface = NodePath("../Interface") - [node name="StaticBody2D" type="StaticBody2D" parent="." groups=["World_Border"]] collision_layer = 3 collision_mask = 3 @@ -134,9 +129,6 @@ texture = ExtResource("4_6a3f6") [node name="Camera2D" type="Camera2D" parent="CanvasLayer"] -[node name="Slime" parent="." groups=["Enemies"] instance=ExtResource("3_04ip2")] -position = Vector2(-448, 205) - [node name="Interface" parent="." instance=ExtResource("8_5s7tf")] offset_left = -640.0 offset_top = -360.0 @@ -159,8 +151,31 @@ offset_top = -383.0 offset_right = -258.0 offset_bottom = -383.0 -[node name="Robot" parent="." groups=["Enemies"] instance=ExtResource("10_5qrsc")] -position = Vector2(-428, 11) +[node name="vague" type="Node2D" parent="." node_paths=PackedStringArray("spawner1", "spawner2", "spawner3", "spawner4")] +script = ExtResource("12_n6lb5") +spawner1 = NodePath("Spawner1") +spawner2 = NodePath("Spawner2") +spawner3 = NodePath("Spawner3") +spawner4 = NodePath("Spawner4") + +[node name="Spawner1" type="Node2D" parent="vague"] +position = Vector2(482, -232) + +[node name="Spawner2" type="Node2D" parent="vague"] +position = Vector2(-538, 238) + +[node name="Spawner3" type="Node2D" parent="vague"] +position = Vector2(-502, -240) + +[node name="Spawner4" type="Node2D" parent="vague"] +position = Vector2(484, 220) + +[node name="Timer" type="Timer" parent="vague"] + +[node name="Player_Melodie" parent="vague" node_paths=PackedStringArray("interface") instance=ExtResource("1_cl1wt")] +scale = Vector2(3, 3) +interface = NodePath("../../Interface") [connection signal="finished" from="Musique" to="." method="_on_audio_stream_player_finished"] [connection signal="retour_menu" from="Ecran mort" to="." method="_on_ecran_mort_retour_menu"] +[connection signal="timeout" from="vague/Timer" to="vague" method="_on_timer_timeout"] diff --git a/scenes/ecran_mort.tscn b/scenes/ecran_mort.tscn index eedf053..8f3f87c 100644 --- a/scenes/ecran_mort.tscn +++ b/scenes/ecran_mort.tscn @@ -6,7 +6,7 @@ [ext_resource type="Texture2D" uid="uid://dqfrqntx73do5" path="res://ressources/images/menu_jeu_button.svg" id="3_ecfx2"] [ext_resource type="Texture2D" uid="uid://kpss4kt07w8l" path="res://ressources/images/menu_jeu_button_survole.svg" id="4_jv24w"] -[node name="Control" type="Control"] +[node name="Control2" type="Control"] layout_mode = 3 anchors_preset = 15 anchor_right = 1.0 @@ -37,6 +37,7 @@ expand_mode = 1 [node name="Mort" type="Label" parent="HBoxContainer/VBoxContainer/TextureRect"] modulate = Color(0.917647, 0.941176, 0.847059, 1) self_modulate = Color(0.917647, 0.941176, 0.847059, 1) +layout_mode = 0 offset_left = 89.0 offset_top = 187.0 offset_right = 414.0 diff --git a/scenes/enemies/poulpe.gd b/scenes/enemies/poulpe.gd index c560819..894e5b4 100644 --- a/scenes/enemies/poulpe.gd +++ b/scenes/enemies/poulpe.gd @@ -42,6 +42,7 @@ func _process(delta: float) -> void: func attaquer_joueur() -> void: + $AnimatedSprite2D.play("Attack") balle = Balle.instantiate() balle.set_direction(target_position) balle.position = position diff --git a/scenes/enemies/poulpe.tscn b/scenes/enemies/poulpe.tscn index 4c746c7..8e99855 100644 --- a/scenes/enemies/poulpe.tscn +++ b/scenes/enemies/poulpe.tscn @@ -1,13 +1,22 @@ -[gd_scene load_steps=6 format=3 uid="uid://voiqrkjd02om"] +[gd_scene load_steps=7 format=3 uid="uid://voiqrkjd02om"] [ext_resource type="Script" path="res://scenes/enemies/poulpe.gd" id="1_hu6wh"] [ext_resource type="Texture2D" uid="uid://2spn60rmdyy5" path="res://ressources/images/poulpe-1.png" id="1_lgwa7"] [ext_resource type="Texture2D" uid="uid://b4ukmsspx16f" path="res://ressources/images/poulpe-2.png" id="2_5x4i5"] +[ext_resource type="Texture2D" uid="uid://dinxaox0ug7kx" path="res://ressources/images/poulpe-atk.png" id="2_ketov"] [sub_resource type="SpriteFrames" id="SpriteFrames_2hq77"] animations = [{ "frames": [{ "duration": 1.0, +"texture": ExtResource("2_ketov") +}], +"loop": true, +"name": &"Attack", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, "texture": ExtResource("1_lgwa7") }, { "duration": 1.0, @@ -21,13 +30,13 @@ animations = [{ [sub_resource type="CircleShape2D" id="CircleShape2D_s7foh"] radius = 38.2753 -[node name="Poulpe" type="CharacterBody2D"] +[node name="Poulpe" type="CharacterBody2D" groups=["Enemies"]] script = ExtResource("1_hu6wh") [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] scale = Vector2(0.4, 0.4) sprite_frames = SubResource("SpriteFrames_2hq77") -animation = &"Generic" +animation = &"Attack" [node name="CollisionShape2D" type="CollisionShape2D" parent="."] shape = SubResource("CircleShape2D_s7foh") diff --git a/scenes/enemies/robot.tscn b/scenes/enemies/robot.tscn index 4eeb8de..a35675d 100644 --- a/scenes/enemies/robot.tscn +++ b/scenes/enemies/robot.tscn @@ -1,14 +1,27 @@ -[gd_scene load_steps=7 format=3 uid="uid://cm5spgl8o4fam"] +[gd_scene load_steps=11 format=3 uid="uid://cm5spgl8o4fam"] [ext_resource type="Texture2D" uid="uid://dwwe0eanmrcra" path="res://ressources/images/roby-idle-0.png" id="1_mo3hb"] [ext_resource type="Script" path="res://scenes/enemies/robot.gd" id="1_tikkk"] [ext_resource type="Texture2D" uid="uid://8m84oe4oes3u" path="res://ressources/images/roby-idle-1.png" id="2_4n77m"] [ext_resource type="Texture2D" uid="uid://dcyf6teijpttj" path="res://ressources/images/roby-idle-2.png" id="3_8bmqk"] +[ext_resource type="Texture2D" uid="uid://duto5skmjixh6" path="res://ressources/images/roby-atk-0.png" id="5_muiti"] +[ext_resource type="Texture2D" uid="uid://8xhcmbkyxlwb" path="res://ressources/images/roby-atk-1.png" id="6_otdac"] +[ext_resource type="Texture2D" uid="uid://br8d144g0u2le" path="res://ressources/images/roby-atk-2.png" id="7_nsi5m"] +[ext_resource type="Texture2D" uid="uid://cxvxfwv2nii64" path="res://ressources/images/roby-atk-3.png" id="8_tsp5e"] [sub_resource type="SpriteFrames" id="SpriteFrames_vaeha"] animations = [{ "frames": [{ "duration": 1.0, +"texture": ExtResource("6_otdac") +}, { +"duration": 1.0, +"texture": ExtResource("7_nsi5m") +}, { +"duration": 1.0, +"texture": ExtResource("8_tsp5e") +}, { +"duration": 1.0, "texture": ExtResource("1_mo3hb") }, { "duration": 1.0, @@ -16,21 +29,25 @@ animations = [{ }, { "duration": 1.0, "texture": ExtResource("3_8bmqk") +}, { +"duration": 1.0, +"texture": ExtResource("5_muiti") }], "loop": true, "name": &"Generic", -"speed": 5.0 +"speed": 7.0 }] [sub_resource type="RectangleShape2D" id="RectangleShape2D_utjf8"] size = Vector2(126, 185) -[node name="Robot" type="CharacterBody2D"] +[node name="Robot" type="CharacterBody2D" groups=["Enemies"]] script = ExtResource("1_tikkk") [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] sprite_frames = SubResource("SpriteFrames_vaeha") animation = &"Generic" +frame_progress = 0.260687 [node name="CollisionShape2D" type="CollisionShape2D" parent="."] position = Vector2(-2, 6.5) diff --git a/scenes/enemies/slime.tscn b/scenes/enemies/slime.tscn index d690b49..f293b71 100644 --- a/scenes/enemies/slime.tscn +++ b/scenes/enemies/slime.tscn @@ -21,7 +21,7 @@ animations = [{ [sub_resource type="CircleShape2D" id="CircleShape2D_bokrm"] radius = 20.0 -[node name="Slime" type="CharacterBody2D"] +[node name="Slime" type="CharacterBody2D" groups=["Enemies"]] collision_layer = 6 collision_mask = 6 script = ExtResource("1_hnufy") diff --git a/scenes/player_melodie.tscn b/scenes/player_melodie.tscn index 39b5e2a..f6cc97d 100644 --- a/scenes/player_melodie.tscn +++ b/scenes/player_melodie.tscn @@ -7,7 +7,7 @@ radius = 6.0 height = 32.0 -[node name="Player_Melodie" type="CharacterBody2D"] +[node name="Player_Melodie" type="CharacterBody2D" groups=["Player"]] collision_layer = 5 script = ExtResource("1_7sg4g") diff --git a/scenes/vague.gd b/scenes/vague.gd new file mode 100644 index 0000000..c7778d6 --- /dev/null +++ b/scenes/vague.gd @@ -0,0 +1,91 @@ +extends Node2D + +@export var spawner1: Node2D +@export var spawner2: Node2D +@export var spawner3: Node2D +@export var spawner4: Node2D + +class Vague: + var poulpes: int + var slimes: int + var robots: int + + func _init(poulpes: int, slimes: int, robots: int): + self.poulpes = poulpes + self.slimes = slimes + self.robots = robots + +# Waves and spawners +var vagues = [ +Vague.new(0, 1, 0), +Vague.new(1, 1, 0), +Vague.new(1, 2, 0), +Vague.new(2, 2, 1), +Vague.new(2, 3, 1), +Vague.new(3, 3, 2), +Vague.new(3, 1, 2), +Vague.new(1, 4, 3), +Vague.new(2, 2, 3), +Vague.new(1, 5, 2), +Vague.new(2, 3, 2), +Vague.new(3, 2, 1), +Vague.new(1, 4, 3), +Vague.new(4, 1, 2), +Vague.new(2, 2, 3), +Vague.new(1, 5, 1), +Vague.new(3, 1, 4), +Vague.new(4, 3, 1), +Vague.new(3, 4, 2), +Vague.new(1, 2, 4), +Vague.new(3, 5, 2) +] + +var spawners = [] + +var vague_actuelle = 0 +var poulpe_scene: PackedScene +var slime_scene: PackedScene +var robot_scene: PackedScene + +func _ready(): + poulpe_scene = load("res://scenes/enemies/poulpe.tscn") + slime_scene = load("res://scenes/enemies/slime.tscn") + robot_scene = load("res://scenes/enemies/robot.tscn") + + spawners = [spawner1, spawner2, spawner3, spawner4] + + # Ensure spawners are set + for spawner in spawners: + if spawner == null: + push_error("Spawner is not assigned.") + + $Timer.start(2) + +func instancier_ennemis(vague: Vague): + for i in range(vague.poulpes): + var spawner = spawners[randi() % len(spawners)] + var poulpe_instance = poulpe_scene.instantiate() + poulpe_instance.position = spawner.global_position + add_child(poulpe_instance) + + for i in range(vague.slimes): + var spawner = spawners[randi() % len(spawners)] + var slime_instance = slime_scene.instantiate() + slime_instance.position = spawner.global_position + add_child(slime_instance) + + for i in range(vague.robots): + var spawner = spawners[randi() % len(spawners)] + var robot_instance = robot_scene.instantiate() + robot_instance.position = spawner.global_position + add_child(robot_instance) + +func _on_timer_timeout(): + if vague_actuelle < len(vagues): + print("t") + instancier_ennemis(vagues[vague_actuelle]) + vague_actuelle = (vague_actuelle + 1) % len(vagues) + $Timer.set_wait_time(30) + $Timer.start() + else: + print("All waves cleared!") diff --git a/scenes/vague/vague.yaml b/scenes/vague/vague.yaml new file mode 100644 index 0000000..0876826 --- /dev/null +++ b/scenes/vague/vague.yaml @@ -0,0 +1,22 @@ +vagues: + - {slime: 1, poulpe: 0, robot: 0} + - {slime: 1, poulpe: 1, robot: 0} + - {slime: 2, poulpe: 1, robot: 0} + - {slime: 2, poulpe: 2, robot: 1} + - {slime: 3, poulpe: 2, robot: 1} + - {slime: 3, poulpe: 3, robot: 2} + - {slime: 4, poulpe: 3, robot: 2} + - {slime: 4, poulpe: 4, robot: 3} + - {slime: 5, poulpe: 4, robot: 3} + - {slime: 5, poulpe: 5, robot: 4} + - {slime: 3, poulpe: 2, robot: 2} + - {slime: 2, poulpe: 3, robot: 1} + - {slime: 4, poulpe: 1, robot: 3} + - {slime: 1, poulpe: 4, robot: 2} + - {slime: 2, poulpe: 2, robot: 3} + - {slime: 5, poulpe: 1, robot: 1} + - {slime: 1, poulpe: 3, robot: 4} + - {slime: 3, poulpe: 4, robot: 1} + - {slime: 4, poulpe: 3, robot: 2} + - {slime: 2, poulpe: 1, robot: 4} + - {slime: 5, poulpe: 3, robot: 2} diff --git a/scenes/vague/yaml.gd b/scenes/vague/yaml.gd new file mode 100644 index 0000000..0753bde --- /dev/null +++ b/scenes/vague/yaml.gd @@ -0,0 +1,30 @@ +extends Node + +func lire_yaml(): + var fichier = FileAccess.open("res://scenes/vague/vague.yaml", FileAccess.READ) + if fichier != null: + var contenu = fichier.get_as_text() + fichier = null + var yaml_contenu = parse_yaml(contenu) + return yaml_contenu + else: + print("Erreur lors de la lecture du fichier YAML") + return null + +func parse_yaml(yaml_text): + # Godot ne prend pas en charge nativement les fichiers YAML. + # Vous devrez utiliser une bibliothèque externe pour parser les fichiers YAML. + print("Erreur : Godot ne prend pas en charge nativement les fichiers YAML") + return null + +func _ready(): + var contenu = lire_yaml() + if contenu: + print(contenu) + var vagues = contenu["vagues"] + for i in range(len(vagues)): + var vague = vagues[i] + print("Vague ", i+1) + print(" Slime : ", vague["slime"]) + print(" Poulpe : ", vague["poulpe"]) + print(" Robot : ", vague["robot"]) diff --git a/scripts/player_control.gd b/scripts/player_control.gd index 354fafe..3018236 100644 --- a/scripts/player_control.gd +++ b/scripts/player_control.gd @@ -21,8 +21,10 @@ var flute_cooldown = 0.5 var tambour_cooldown = 3.0 var lyre_cooldown = 1 -var slot = [] -var slotstr = [] +var instrument_list = [ + "", + "" +] var vie = 10 @@ -103,7 +105,7 @@ func _process(delta: float) -> void: lyre.jouer_melodie(position, direction_balle, angle_lyre) lyre_timer = lyre_cooldown - + func take_damage(dmg : int) : vie -= dmg interface.set_life(vie)