diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..f44eb88 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "godotTools.editorPath.godot4": "c:\\Users\\User\\Desktop\\Godot_v4.4.1-stable_mono_win64\\Godot_v4.4.1-stable_mono_win64.exe" +} \ No newline at end of file diff --git a/assets/sprites/bucket.tres b/assets/sprites/bucket.tres index a788e30..7a2355c 100644 --- a/assets/sprites/bucket.tres +++ b/assets/sprites/bucket.tres @@ -1,7 +1,7 @@ [gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://ce04l60l6mhfk"] -[ext_resource type="Texture2D" uid="uid://dvldjlg0nr355" path="res://assets/sprites/atlases/atlas1.png" id="1_h38vp"] +[ext_resource type="Texture2D" uid="uid://brj0buevfwv21" path="res://assets/sprites/atlases/zombies/basic.png" id="1_n66kp"] [resource] -atlas = ExtResource("1_h38vp") -region = Rect2(356, 16, 40, 41) +atlas = ExtResource("1_n66kp") +region = Rect2(21, 23, 34, 38) diff --git a/project.godot b/project.godot index 91bd447..0493d5c 100644 --- a/project.godot +++ b/project.godot @@ -26,6 +26,7 @@ Cursor="*res://scripts/Cursor.cs" window/size/viewport_width=600 window/size/viewport_height=400 window/stretch/mode="canvas_items" +window/per_pixel_transparency/allowed=true [dotnet] diff --git a/resources/animations/plants/aloe.res b/resources/animations/plants/aloe.res index f6ca8e8..535302c 100644 Binary files a/resources/animations/plants/aloe.res and b/resources/animations/plants/aloe.res differ diff --git a/resources/animations/plants/garlic.res b/resources/animations/plants/garlic.res index 949d51c..23fbb45 100644 Binary files a/resources/animations/plants/garlic.res and b/resources/animations/plants/garlic.res differ diff --git a/resources/animations/plants/peashooter.res b/resources/animations/plants/peashooter.res index bdc4052..c50be33 100644 Binary files a/resources/animations/plants/peashooter.res and b/resources/animations/plants/peashooter.res differ diff --git a/resources/animations/plants/potato_mine.res b/resources/animations/plants/potato_mine.res index 63e274f..38051da 100644 Binary files a/resources/animations/plants/potato_mine.res and b/resources/animations/plants/potato_mine.res differ diff --git a/resources/animations/plants/spikeweed.res b/resources/animations/plants/spikeweed.res index f02edf7..881d679 100644 Binary files a/resources/animations/plants/spikeweed.res and b/resources/animations/plants/spikeweed.res differ diff --git a/resources/animations/plants/sunflower.res b/resources/animations/plants/sunflower.res index bd06154..1f15a38 100644 Binary files a/resources/animations/plants/sunflower.res and b/resources/animations/plants/sunflower.res differ diff --git a/resources/effects/GarlicEffect.tres b/resources/effects/GarlicEffect.tres index 60edc9c..374c2cd 100644 --- a/resources/effects/GarlicEffect.tres +++ b/resources/effects/GarlicEffect.tres @@ -1,6 +1,6 @@ [gd_resource type="Resource" load_steps=2 format=3 uid="uid://dsg1vjx76ifgu"] -[ext_resource type="Script" path="res://scripts/systems/effects/GarlicEffect.cs" id="1_rfumy"] +[ext_resource type="Script" uid="uid://bb6lv1djnqjaw" path="res://scripts/systems/effects/GarlicEffect.cs" id="1_rfumy"] [resource] script = ExtResource("1_rfumy") diff --git a/resources/plants/Peashooter.tres b/resources/plants/Peashooter.tres index bb0b347..dd296be 100644 --- a/resources/plants/Peashooter.tres +++ b/resources/plants/Peashooter.tres @@ -1,6 +1,6 @@ [gd_resource type="Resource" script_class="PlantResource" load_steps=4 format=3 uid="uid://c8rr1dc7mjr3d"] -[ext_resource type="Script" path="res://scripts/resources/PlantResource.cs" id="1_amvh8"] +[ext_resource type="Script" uid="uid://cyenlko1knygw" path="res://scripts/resources/PlantResource.cs" id="1_amvh8"] [ext_resource type="Texture2D" uid="uid://ot1n4nval86w" path="res://assets/sprites/plants/peashooter.tres" id="1_rnq6r"] [ext_resource type="PackedScene" uid="uid://dy41q1kxray5t" path="res://scenes/entities/plants/peashooter.tscn" id="1_rqf2x"] @@ -9,6 +9,6 @@ script = ExtResource("1_amvh8") Cost = 75 Scene = ExtResource("1_rqf2x") ReloadTime = 5.0 -StartReloadTime = 0.0 +ReloadProgress = 0.0 Preview = ExtResource("1_rnq6r") Layer = 1 diff --git a/resources/plants/PotatoMine.tres b/resources/plants/PotatoMine.tres index bc1d045..162db8c 100644 --- a/resources/plants/PotatoMine.tres +++ b/resources/plants/PotatoMine.tres @@ -1,6 +1,6 @@ [gd_resource type="Resource" script_class="PlantResource" load_steps=4 format=3 uid="uid://bu25xgjd68gv8"] -[ext_resource type="Script" path="res://scripts/resources/PlantResource.cs" id="1_33j6b"] +[ext_resource type="Script" uid="uid://cyenlko1knygw" path="res://scripts/resources/PlantResource.cs" id="1_33j6b"] [ext_resource type="Texture2D" uid="uid://bhmnt3x5aj1l8" path="res://assets/sprites/plants/potatomine.tres" id="1_xk2pg"] [ext_resource type="PackedScene" uid="uid://b5x35v3w2u8dx" path="res://scenes/entities/plants/potato_mine.tscn" id="2_ig2ti"] diff --git a/resources/plants/Sunflower.tres b/resources/plants/Sunflower.tres index 2b499a4..2ef6c23 100644 --- a/resources/plants/Sunflower.tres +++ b/resources/plants/Sunflower.tres @@ -2,7 +2,7 @@ [ext_resource type="Texture2D" uid="uid://iw75j816gbc" path="res://assets/sprites/plants/sunflower.tres" id="1_8rd5i"] [ext_resource type="PackedScene" uid="uid://bg7lomiorxo2c" path="res://scenes/entities/plants/sunflower.tscn" id="2_gcyr5"] -[ext_resource type="Script" path="res://scripts/resources/PlantResource.cs" id="3_vt4jc"] +[ext_resource type="Script" uid="uid://cyenlko1knygw" path="res://scripts/resources/PlantResource.cs" id="3_vt4jc"] [resource] script = ExtResource("3_vt4jc") diff --git a/resources/plants/Threepeater.tres b/resources/plants/Threepeater.tres index 542e07a..c2cf45b 100644 --- a/resources/plants/Threepeater.tres +++ b/resources/plants/Threepeater.tres @@ -2,13 +2,13 @@ [ext_resource type="Texture2D" uid="uid://ot1n4nval86w" path="res://assets/sprites/plants/peashooter.tres" id="1_78bhe"] [ext_resource type="PackedScene" uid="uid://eegv1qihfv2q" path="res://scenes/entities/plants/threepeater.tscn" id="2_uqpu0"] -[ext_resource type="Script" path="res://scripts/resources/PlantResource.cs" id="3_3lugi"] +[ext_resource type="Script" uid="uid://cyenlko1knygw" path="res://scripts/resources/PlantResource.cs" id="3_3lugi"] [resource] script = ExtResource("3_3lugi") Cost = 300 Scene = ExtResource("2_uqpu0") ReloadTime = 5.0 -StartReloadTime = 0.0 +ReloadProgress = 0.0 Preview = ExtResource("1_78bhe") Layer = 1 diff --git a/scenes/debug_lvl.tscn b/scenes/debug_lvl.tscn index 5f43c5d..a609b97 100644 --- a/scenes/debug_lvl.tscn +++ b/scenes/debug_lvl.tscn @@ -1,13 +1,13 @@ [gd_scene load_steps=10 format=3 uid="uid://crxsvv7drckpw"] -[ext_resource type="Script" path="res://scripts/components/level/RuntimeLevelData.cs" id="1_i3bf5"] +[ext_resource type="Script" uid="uid://bndu1h5kgcde8" path="res://scripts/components/level/RuntimeLevelData.cs" id="1_i3bf5"] [ext_resource type="Texture2D" uid="uid://b0tb2hjum40aw" path="res://assets/sprites/background_summer.png" id="2_vmxhy"] [ext_resource type="PackedScene" uid="uid://cg8713v6c5w15" path="res://scenes/level components/pools.tscn" id="3_jv7x4"] [ext_resource type="PackedScene" uid="uid://dpxxjfd5lv5sv" path="res://scenes/gui/choose_your_seeds.tscn" id="5_5e78h"] [ext_resource type="PackedScene" uid="uid://devn21c7luf45" path="res://scenes/level components/field_controller.tscn" id="5_lwpg6"] [ext_resource type="PackedScene" uid="uid://cfnmspei3k4p7" path="res://scenes/gui/runtime_gui.tscn" id="6_0baou"] [ext_resource type="PackedScene" uid="uid://bpekho7leatr5" path="res://scenes/sun.tscn" id="6_ay12k"] -[ext_resource type="Script" path="res://scripts/components/level/SunSpawner.cs" id="6_lkguy"] +[ext_resource type="Script" uid="uid://cslqjdd5wq4rc" path="res://scripts/components/level/SunSpawner.cs" id="6_lkguy"] [ext_resource type="PackedScene" uid="uid://xu4i6tmkv00a" path="res://scenes/entities/Zombies/bucket_zombie.tscn" id="9_u7o5c"] [node name="debug_lvl" type="Node2D"] diff --git a/scenes/entities/Zombies/bucket_zombie.tscn b/scenes/entities/Zombies/bucket_zombie.tscn index f6be64c..7464be8 100644 --- a/scenes/entities/Zombies/bucket_zombie.tscn +++ b/scenes/entities/Zombies/bucket_zombie.tscn @@ -1,14 +1,14 @@ [gd_scene load_steps=5 format=3 uid="uid://xu4i6tmkv00a"] [ext_resource type="PackedScene" uid="uid://hhjbqkjqpt7x" path="res://scenes/entities/Zombies/cone_zombie.tscn" id="1_mwqpo"] -[ext_resource type="Shader" path="res://assets/shaders/CG_color_blender.gdshader" id="2_3mrqj"] +[ext_resource type="Shader" uid="uid://d0eo5uuj222c4" path="res://assets/shaders/CG_color_blender.gdshader" id="2_3mrqj"] [ext_resource type="Texture2D" uid="uid://ce04l60l6mhfk" path="res://assets/sprites/bucket.tres" id="3_0nlp0"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_wdi07"] resource_local_to_scene = true shader = ExtResource("2_3mrqj") shader_parameter/blend_color = Color(1, 1, 1, 1) -shader_parameter/amount = null +shader_parameter/amount = 0.0 [node name="BucketZombie" instance=ExtResource("1_mwqpo")] @@ -16,6 +16,7 @@ shader_parameter/amount = null material = SubResource("ShaderMaterial_wdi07") [node name="Hat" parent="CanvasGroup" index="1"] +position = Vector2(-7, -83) texture = ExtResource("3_0nlp0") [node name="Armor" parent="." index="8"] diff --git a/scenes/entities/Zombies/cone_zombie.tscn b/scenes/entities/Zombies/cone_zombie.tscn index 7c9edc6..54dcaaa 100644 --- a/scenes/entities/Zombies/cone_zombie.tscn +++ b/scenes/entities/Zombies/cone_zombie.tscn @@ -1,15 +1,15 @@ [gd_scene load_steps=6 format=3 uid="uid://hhjbqkjqpt7x"] [ext_resource type="PackedScene" uid="uid://co11v3w8hbwgf" path="res://scenes/entities/Zombies/zombie.tscn" id="1_3dq4c"] -[ext_resource type="Shader" path="res://assets/shaders/CG_color_blender.gdshader" id="2_2dq8e"] -[ext_resource type="Script" path="res://scripts/components/Armor.cs" id="3_5s7in"] +[ext_resource type="Shader" uid="uid://d0eo5uuj222c4" path="res://assets/shaders/CG_color_blender.gdshader" id="2_2dq8e"] +[ext_resource type="Script" uid="uid://fd4im1fmwc5n" path="res://scripts/components/Armor.cs" id="3_5s7in"] [ext_resource type="Texture2D" uid="uid://ceqvdmude7cgg" path="res://assets/sprites/cone.tres" id="4_qdhik"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_sat5k"] resource_local_to_scene = true shader = ExtResource("2_2dq8e") shader_parameter/blend_color = Color(1, 1, 1, 1) -shader_parameter/amount = null +shader_parameter/amount = 0.0 [node name="ConeZombie" node_paths=PackedStringArray("_armor") instance=ExtResource("1_3dq4c")] _armor = NodePath("Armor") diff --git a/scenes/entities/plants/garlic.tscn b/scenes/entities/plants/garlic.tscn index e8a2d5b..15c9b6e 100644 --- a/scenes/entities/plants/garlic.tscn +++ b/scenes/entities/plants/garlic.tscn @@ -3,8 +3,8 @@ [ext_resource type="PackedScene" uid="uid://b1hjjbdwf1rtc" path="res://scenes/templates/plant_template.tscn" id="1_5i0e6"] [ext_resource type="Texture2D" uid="uid://dff73m8ahamaa" path="res://assets/sprites/atlases/plants/garlic.png" id="2_w2jbi"] [ext_resource type="AnimationLibrary" uid="uid://cjl81f61gdlvi" path="res://resources/animations/plants/garlic.res" id="3_jkb3q"] -[ext_resource type="Script" path="res://scripts/components/plants/behaviours/HpBasedBehaviour.cs" id="4_bv44h"] -[ext_resource type="Script" path="res://scripts/components/plants/ReturnEffect.cs" id="5_oob20"] +[ext_resource type="Script" uid="uid://btkmd86pn828y" path="res://scripts/components/plants/behaviours/HpBasedBehaviour.cs" id="4_bv44h"] +[ext_resource type="Script" uid="uid://bmtukcq10m8wo" path="res://scripts/components/plants/ReturnEffect.cs" id="5_oob20"] [ext_resource type="Resource" uid="uid://dsg1vjx76ifgu" path="res://resources/effects/GarlicEffect.tres" id="6_gho1l"] [sub_resource type="Animation" id="Animation_k0cex"] @@ -24,7 +24,7 @@ tracks/0/keys = { [sub_resource type="AnimationLibrary" id="AnimationLibrary_v4l78"] _data = { -"RESET": SubResource("Animation_k0cex") +&"RESET": SubResource("Animation_k0cex") } [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_mdv0r"] @@ -59,8 +59,8 @@ vframes = 3 [node name="AnimationPlayer" parent="." index="1"] libraries = { -"": SubResource("AnimationLibrary_v4l78"), -"garlic": ExtResource("3_jkb3q") +&"": SubResource("AnimationLibrary_v4l78"), +&"garlic": ExtResource("3_jkb3q") } [node name="AnimationTree" parent="." index="2"] diff --git a/scenes/entities/plants/threepeater.tscn b/scenes/entities/plants/threepeater.tscn index cf08fe9..8b2b8f5 100644 --- a/scenes/entities/plants/threepeater.tscn +++ b/scenes/entities/plants/threepeater.tscn @@ -1,13 +1,111 @@ -[gd_scene load_steps=5 format=3 uid="uid://eegv1qihfv2q"] +[gd_scene load_steps=11 format=3 uid="uid://eegv1qihfv2q"] [ext_resource type="PackedScene" uid="uid://dy41q1kxray5t" path="res://scenes/entities/plants/peashooter.tscn" id="1_muntu"] -[ext_resource type="Script" path="res://scripts/components/plants/ThreepeaterShooter.cs" id="2_ieami"] -[ext_resource type="Script" path="res://scripts/components/plants/PlantEyesightLimiter.cs" id="3_dqn6w"] +[ext_resource type="Script" uid="uid://djpc0kvagpadv" path="res://scripts/components/plants/ThreepeaterShooter.cs" id="2_ieami"] +[ext_resource type="AudioStream" uid="uid://dp6k7xiptn68n" path="res://assets/audio/sfx/pop.mp3" id="2_j7h7q"] +[ext_resource type="Script" uid="uid://hccb0aee0x0o" path="res://scripts/components/plants/PlantEyesightLimiter.cs" id="3_dqn6w"] + +[sub_resource type="Animation" id="Animation_a2y0j"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_ipp6b"] +_data = { +&"RESET": SubResource("Animation_a2y0j") +} + +[sub_resource type="Animation" id="Animation_oxaxi"] +resource_name = "idle" +length = 0.833342 +loop_mode = 1 +step = 0.0833333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.0833333, 0.166667, 0.25, 0.333333, 0.416667, 0.5, 0.583333, 0.666667, 0.75), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] +} + +[sub_resource type="Animation" id="Animation_7sohe"] +resource_name = "shoot" +length = 0.666675 +step = 0.0833333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.0833333, 0.166667, 0.25, 0.333333, 0.416667, 0.5, 0.583333), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [10, 11, 12, 13, 14, 15, 16, 17] +} +tracks/1/type = "method" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Shooter") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0.25), +"transitions": PackedFloat32Array(1), +"values": [{ +"args": [], +"method": &"Shoot" +}] +} +tracks/2/type = "audio" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("AudioStreamPlayer2D") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"clips": [{ +"end_offset": 0.0, +"start_offset": 0.0, +"stream": ExtResource("2_j7h7q") +}], +"times": PackedFloat32Array(0.25) +} +tracks/2/use_blend = true + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_pqbws"] +resource_local_to_scene = true +_data = { +&"idle": SubResource("Animation_oxaxi"), +&"shoot": SubResource("Animation_7sohe") +} [sub_resource type="SegmentShape2D" id="SegmentShape2D_yb26d"] [node name="Threepeater" instance=ExtResource("1_muntu")] +[node name="AnimationPlayer" parent="." index="1"] +libraries = { +&"": SubResource("AnimationLibrary_ipp6b"), +&"peashooter": SubResource("AnimationLibrary_pqbws") +} + [node name="Shooter" parent="." index="3"] script = ExtResource("2_ieami") diff --git a/scenes/gui/seedpacket.tscn b/scenes/gui/seedpacket.tscn index 528163e..dc37e37 100644 --- a/scenes/gui/seedpacket.tscn +++ b/scenes/gui/seedpacket.tscn @@ -3,10 +3,10 @@ [ext_resource type="Texture2D" uid="uid://dxyf557m4mq1p" path="res://assets/sprites/gui/EmptyPlantCard.png" id="1_77bw1"] [ext_resource type="Texture2D" uid="uid://cxlr34yh0bqch" path="res://assets/sprites/gui/DisabledEmptyCard.png" id="2_2gojx"] [ext_resource type="Texture2D" uid="uid://cabpf23ndlvx0" path="res://assets/sprites/gui/Selection.tres" id="3_q0tvq"] -[ext_resource type="Script" path="res://scripts/components/gui/seedpackets/Seedpacket.cs" id="4_c6epd"] -[ext_resource type="Shader" path="res://assets/shaders/gui_masking.gdshader" id="5_s5861"] +[ext_resource type="Script" uid="uid://cn6ddajdtf4ep" path="res://scripts/components/gui/seedpackets/Seedpacket.cs" id="4_c6epd"] +[ext_resource type="Shader" uid="uid://dcp5tqcec2oi3" path="res://assets/shaders/gui_masking.gdshader" id="5_s5861"] [ext_resource type="Texture2D" uid="uid://c1afy0ga6h1ic" path="res://assets/sprites/white_box.png" id="6_lp42h"] -[ext_resource type="Script" path="res://scripts/components/gui/VeilResizer.cs" id="7_tv07f"] +[ext_resource type="Script" uid="uid://ddi84kmmq1qla" path="res://scripts/components/gui/VeilResizer.cs" id="7_tv07f"] [sub_resource type="LabelSettings" id="LabelSettings_js4li"] font_size = 13 diff --git a/scenes/level_button.tscn b/scenes/level_button.tscn index cb91dac..0858144 100644 --- a/scenes/level_button.tscn +++ b/scenes/level_button.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://dylfqmo3d26ce"] -[ext_resource type="Script" path="res://scripts/LevelButton.cs" id="1_qey5e"] +[ext_resource type="Script" uid="uid://cn3q18jh2rej7" path="res://scripts/LevelButton.cs" id="1_qey5e"] [node name="LevelButton" type="TextureRect"] offset_right = 40.0 diff --git a/scenes/templates/plant_template.tscn b/scenes/templates/plant_template.tscn index 8683501..685838b 100644 --- a/scenes/templates/plant_template.tscn +++ b/scenes/templates/plant_template.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://b1hjjbdwf1rtc"] -[ext_resource type="Script" path="res://scripts/components/plants/RuntimePlantData.cs" id="1_324sd"] +[ext_resource type="Script" uid="uid://dli2i6albvugt" path="res://scripts/components/plants/RuntimePlantData.cs" id="1_324sd"] [node name="PlantTemplate" type="Node2D"] script = ExtResource("1_324sd") diff --git a/scripts/systems/effects/GarlicEffect.cs b/scripts/systems/effects/GarlicEffect.cs index 9ef375f..01adecc 100644 --- a/scripts/systems/effects/GarlicEffect.cs +++ b/scripts/systems/effects/GarlicEffect.cs @@ -45,6 +45,7 @@ public partial class GarlicEffect : Effect } var tween = zombieData.CreateTween(); tween.TweenProperty(zombieData,"position:y",zombieData.GlobalPosition.Y + Utility.TileHeight * mult, 1.0); + tween.Parallel().TweenProperty(zombieData, "position:x", zombieData.GlobalPosition.X - Utility.TileWidth / 10.0, 1.0); tween.TweenCallback(Callable.From(() => {zombieData.AbleToEat = true;})); } }