diff --git a/resources/levels/balance_and_spawn_test.tres b/resources/levels/balance_and_spawn_test.tres index 5d379a1..3487575 100644 --- a/resources/levels/balance_and_spawn_test.tres +++ b/resources/levels/balance_and_spawn_test.tres @@ -1,22 +1,133 @@ -[gd_resource type="Resource" script_class="AdventureLevelResource" load_steps=6 format=3 uid="uid://ctbue7dex4umy"] +[gd_resource type="Resource" script_class="AdventureLevelResource" load_steps=30 format=3 uid="uid://ctbue7dex4umy"] [ext_resource type="Script" uid="uid://bximdujbkj2n4" path="res://addons/pvzadventure/AdventureLevelResource.cs" id="1_46lr8"] [ext_resource type="Script" uid="uid://cw7yc3i2lgcja" path="res://addons/pvzadventure/WaveEvent.cs" id="2_otfbt"] [ext_resource type="Script" uid="uid://7rptlb5qr3b6" path="res://addons/pvzadventure/WaveData.cs" id="3_cugtx"] [ext_resource type="Script" uid="uid://dl12rj75tk2qi" path="res://addons/pvzadventure/RowSpawn.cs" id="4_y1e37"] +[ext_resource type="Script" uid="uid://cqxj7o8hdm82n" path="res://scripts/resources/ZombieResource.cs" id="5_y1e37"] +[ext_resource type="Resource" uid="uid://buvacn56kyy2p" path="res://resources/zombies/basic.tres" id="6_qsvr4"] +[ext_resource type="Resource" uid="uid://nceohd32fkxk" path="res://resources/zombies/conehead.tres" id="7_qsvr4"] + +[sub_resource type="Resource" id="Resource_5e1dl"] +script = ExtResource("4_y1e37") +zombies = Array[ExtResource("5_y1e37")]([null, null, null, ExtResource("6_qsvr4"), null]) [sub_resource type="Resource" id="Resource_qsvr4"] script = ExtResource("3_cugtx") -zombiesOrdered = Array[ExtResource("4_y1e37")]([]) +zombiesOrdered = Array[ExtResource("4_y1e37")]([SubResource("Resource_5e1dl")]) events = Array[ExtResource("2_otfbt")]([]) customWaveDelay = 0.0 isHugeWave = false +[sub_resource type="Resource" id="Resource_y1e37"] +script = ExtResource("4_y1e37") +zombies = Array[ExtResource("5_y1e37")]([null, ExtResource("6_qsvr4"), null, null, null]) + +[sub_resource type="Resource" id="Resource_otfbt"] +script = ExtResource("3_cugtx") +zombiesOrdered = Array[ExtResource("4_y1e37")]([SubResource("Resource_y1e37")]) +events = Array[ExtResource("2_otfbt")]([]) +customWaveDelay = 0.0 +isHugeWave = false + +[sub_resource type="Resource" id="Resource_ciic2"] +script = ExtResource("4_y1e37") +zombies = Array[ExtResource("5_y1e37")]([ExtResource("6_qsvr4"), null, null, ExtResource("6_qsvr4"), null]) + +[sub_resource type="Resource" id="Resource_nv3y4"] +script = ExtResource("3_cugtx") +zombiesOrdered = Array[ExtResource("4_y1e37")]([SubResource("Resource_ciic2")]) +events = Array[ExtResource("2_otfbt")]([]) +customWaveDelay = 0.0 +isHugeWave = false + +[sub_resource type="Resource" id="Resource_1ut7p"] +script = ExtResource("4_y1e37") +zombies = Array[ExtResource("5_y1e37")]([null, null, ExtResource("7_qsvr4"), null, null]) + +[sub_resource type="Resource" id="Resource_mt5r8"] +script = ExtResource("3_cugtx") +zombiesOrdered = Array[ExtResource("4_y1e37")]([SubResource("Resource_1ut7p")]) +events = Array[ExtResource("2_otfbt")]([]) +customWaveDelay = 0.0 +isHugeWave = false + +[sub_resource type="Resource" id="Resource_he3sm"] +script = ExtResource("4_y1e37") +zombies = Array[ExtResource("5_y1e37")]([ExtResource("6_qsvr4"), ExtResource("6_qsvr4"), ExtResource("6_qsvr4"), null, null]) + +[sub_resource type="Resource" id="Resource_kugcf"] +script = ExtResource("3_cugtx") +zombiesOrdered = Array[ExtResource("4_y1e37")]([SubResource("Resource_he3sm")]) +events = Array[ExtResource("2_otfbt")]([]) +customWaveDelay = 0.0 +isHugeWave = false + +[sub_resource type="Resource" id="Resource_sadu8"] +script = ExtResource("4_y1e37") +zombies = Array[ExtResource("5_y1e37")]([null, ExtResource("6_qsvr4"), ExtResource("6_qsvr4"), null, ExtResource("6_qsvr4")]) + +[sub_resource type="Resource" id="Resource_p5aki"] +script = ExtResource("4_y1e37") +zombies = Array[ExtResource("5_y1e37")]([null, null, ExtResource("7_qsvr4"), null, null]) + +[sub_resource type="Resource" id="Resource_oyvhx"] +script = ExtResource("3_cugtx") +zombiesOrdered = Array[ExtResource("4_y1e37")]([SubResource("Resource_sadu8"), SubResource("Resource_p5aki")]) +events = Array[ExtResource("2_otfbt")]([]) +customWaveDelay = 0.0 +isHugeWave = false + +[sub_resource type="Resource" id="Resource_vikxa"] +script = ExtResource("4_y1e37") +zombies = Array[ExtResource("5_y1e37")]([ExtResource("7_qsvr4"), null, null, null, ExtResource("7_qsvr4")]) + +[sub_resource type="Resource" id="Resource_k4k25"] +script = ExtResource("3_cugtx") +zombiesOrdered = Array[ExtResource("4_y1e37")]([SubResource("Resource_vikxa")]) +events = Array[ExtResource("2_otfbt")]([]) +customWaveDelay = 0.0 +isHugeWave = false + +[sub_resource type="Resource" id="Resource_gp8ns"] +script = ExtResource("4_y1e37") +zombies = Array[ExtResource("5_y1e37")]([null, null, ExtResource("7_qsvr4"), ExtResource("7_qsvr4"), null]) + +[sub_resource type="Resource" id="Resource_ki4sn"] +script = ExtResource("4_y1e37") +zombies = Array[ExtResource("5_y1e37")]([null, ExtResource("6_qsvr4"), ExtResource("6_qsvr4"), null, ExtResource("6_qsvr4")]) + +[sub_resource type="Resource" id="Resource_oxbea"] +script = ExtResource("3_cugtx") +zombiesOrdered = Array[ExtResource("4_y1e37")]([SubResource("Resource_gp8ns"), SubResource("Resource_ki4sn")]) +events = Array[ExtResource("2_otfbt")]([]) +customWaveDelay = 0.0 +isHugeWave = false + +[sub_resource type="Resource" id="Resource_2irq2"] +script = ExtResource("4_y1e37") +zombies = Array[ExtResource("5_y1e37")]([ExtResource("6_qsvr4"), null, ExtResource("6_qsvr4"), ExtResource("6_qsvr4"), null]) + +[sub_resource type="Resource" id="Resource_ipu8d"] +script = ExtResource("4_y1e37") +zombies = Array[ExtResource("5_y1e37")]([null, ExtResource("6_qsvr4"), ExtResource("6_qsvr4"), null, ExtResource("6_qsvr4")]) + +[sub_resource type="Resource" id="Resource_vu1ng"] +script = ExtResource("4_y1e37") +zombies = Array[ExtResource("5_y1e37")]([null, ExtResource("7_qsvr4"), ExtResource("7_qsvr4"), ExtResource("7_qsvr4"), null]) + +[sub_resource type="Resource" id="Resource_5cdj6"] +script = ExtResource("3_cugtx") +zombiesOrdered = Array[ExtResource("4_y1e37")]([SubResource("Resource_2irq2"), SubResource("Resource_ipu8d"), SubResource("Resource_vu1ng")]) +events = Array[ExtResource("2_otfbt")]([]) +customWaveDelay = 20.0 +isHugeWave = true + [resource] script = ExtResource("1_46lr8") startSun = 50.0 -wavePercentage = 0.0 -standardWaveDelay = 30.0 -initialWaveDelay = 1.0 -waves = [SubResource("Resource_qsvr4")] +wavePercentage = 0.5 +standardWaveDelay = 15.0 +initialWaveDelay = 20.0 +waves = [SubResource("Resource_qsvr4"), SubResource("Resource_otfbt"), SubResource("Resource_nv3y4"), SubResource("Resource_mt5r8"), SubResource("Resource_kugcf"), SubResource("Resource_oyvhx"), SubResource("Resource_k4k25"), SubResource("Resource_oxbea"), SubResource("Resource_5cdj6")] initialScenes = Array[PackedScene]([null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]) diff --git a/scenes/gui/runtime_gui.tscn b/scenes/gui/runtime_gui.tscn index c4b730c..9d6f2a3 100644 --- a/scenes/gui/runtime_gui.tscn +++ b/scenes/gui/runtime_gui.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=32 format=3 uid="uid://cfnmspei3k4p7"] +[gd_scene load_steps=48 format=3 uid="uid://cfnmspei3k4p7"] [ext_resource type="PackedScene" uid="uid://ky35veswaytr" path="res://scenes/gui/sun_counter.tscn" id="1_le3od"] [ext_resource type="Theme" uid="uid://b8l285cjcgeyi" path="res://resources/themes/GameStyle.tres" id="1_xf6ra"] @@ -6,6 +6,7 @@ [ext_resource type="Texture2D" uid="uid://bbh0uwloi87tn" path="res://assets/sprites/gui/PlantPanel.png" id="2_eg3hk"] [ext_resource type="PackedScene" uid="uid://t0vpmycj6c8j" path="res://scenes/gui/shovel_button.tscn" id="3_bheea"] [ext_resource type="PackedScene" uid="uid://cgm7td1hgs0rr" path="res://scenes/gui/fast_forward_button.tscn" id="4_66uy4"] +[ext_resource type="Script" uid="uid://di45o67gxmiql" path="res://scripts/gui/seedpackets/HotbarShortcutSetter.cs" id="5_5kkbf"] [ext_resource type="PackedScene" uid="uid://u5l3jd00s8vd" path="res://scenes/gui/pause_button.tscn" id="5_jyq78"] [ext_resource type="PackedScene" uid="uid://b4lx8adw6rbqs" path="res://scenes/particles/dirt_explosion.tscn" id="6_5jtun"] [ext_resource type="Script" uid="uid://c36bj8u7jghc7" path="res://scripts/audio/ChannelPlayer.cs" id="7_5kkbf"] @@ -19,72 +20,116 @@ texture_margin_right = 4.0 texture_margin_bottom = 4.0 axis_stretch_horizontal = 1 -[sub_resource type="GDScript" id="GDScript_lxxir"] -resource_name = "shortcutter" -script/source = "extends Node - -@export var keys : Array[InputEventKey] -@export var where_to_map : Node - -func _ready() -> void: - while get_tree() != null and get_tree().paused: - await get_tree().process_frame - for i in range(where_to_map.get_child_count()): - var key = InputEventKey.new() - where_to_map.get_child(i).shortcut = Shortcut.new() - where_to_map.get_child(i).shortcut.events.append(keys[i]) -" - -[sub_resource type="InputEventKey" id="InputEventKey_lxxir"] +[sub_resource type="InputEventKey" id="InputEventKey_xq48m"] device = -1 keycode = 49 unicode = 49 -[sub_resource type="InputEventKey" id="InputEventKey_5kkbf"] +[sub_resource type="Shortcut" id="Shortcut_hmpwl"] +events = [SubResource("InputEventKey_xq48m")] + +[sub_resource type="InputEventKey" id="InputEventKey_kqrbi"] device = -1 keycode = 50 unicode = 50 -[sub_resource type="InputEventKey" id="InputEventKey_xq48m"] +[sub_resource type="Shortcut" id="Shortcut_s6pj4"] +events = [SubResource("InputEventKey_kqrbi")] + +[sub_resource type="InputEventKey" id="InputEventKey_ar74i"] device = -1 keycode = 51 unicode = 51 -[sub_resource type="InputEventKey" id="InputEventKey_cti1a"] +[sub_resource type="Shortcut" id="Shortcut_k8sc7"] +events = [SubResource("InputEventKey_ar74i")] + +[sub_resource type="InputEventKey" id="InputEventKey_6klug"] device = -1 keycode = 52 unicode = 52 -[sub_resource type="InputEventKey" id="InputEventKey_s07y0"] +[sub_resource type="Shortcut" id="Shortcut_lxteg"] +events = [SubResource("InputEventKey_6klug")] + +[sub_resource type="InputEventKey" id="InputEventKey_vbeir"] device = -1 keycode = 53 unicode = 53 -[sub_resource type="InputEventKey" id="InputEventKey_hmpwl"] +[sub_resource type="InputEventKey" id="InputEventKey_7hbdx"] +device = -1 +keycode = 81 +unicode = 1081 + +[sub_resource type="Shortcut" id="Shortcut_q5vyg"] +events = [SubResource("InputEventKey_vbeir"), SubResource("InputEventKey_7hbdx")] + +[sub_resource type="InputEventKey" id="InputEventKey_6l5gn"] device = -1 keycode = 54 unicode = 54 -[sub_resource type="InputEventKey" id="InputEventKey_kqrbi"] +[sub_resource type="InputEventKey" id="InputEventKey_2abg0"] +device = -1 +keycode = 87 +unicode = 1094 + +[sub_resource type="Shortcut" id="Shortcut_6awm7"] +events = [SubResource("InputEventKey_6l5gn"), SubResource("InputEventKey_2abg0")] + +[sub_resource type="InputEventKey" id="InputEventKey_mu0ut"] device = -1 keycode = 55 unicode = 55 -[sub_resource type="InputEventKey" id="InputEventKey_s6pj4"] +[sub_resource type="InputEventKey" id="InputEventKey_o6p06"] +device = -1 +keycode = 69 +unicode = 1091 + +[sub_resource type="Shortcut" id="Shortcut_dsi7v"] +events = [SubResource("InputEventKey_mu0ut"), SubResource("InputEventKey_o6p06")] + +[sub_resource type="InputEventKey" id="InputEventKey_iruld"] device = -1 keycode = 56 unicode = 56 -[sub_resource type="InputEventKey" id="InputEventKey_ar74i"] +[sub_resource type="InputEventKey" id="InputEventKey_hr1by"] +device = -1 +keycode = 82 +unicode = 1082 + +[sub_resource type="Shortcut" id="Shortcut_d5mmq"] +events = [SubResource("InputEventKey_iruld"), SubResource("InputEventKey_hr1by")] + +[sub_resource type="InputEventKey" id="InputEventKey_h2jfj"] device = -1 keycode = 57 unicode = 57 -[sub_resource type="InputEventKey" id="InputEventKey_k8sc7"] +[sub_resource type="InputEventKey" id="InputEventKey_xrhoa"] +device = -1 +keycode = 84 +unicode = 1077 + +[sub_resource type="Shortcut" id="Shortcut_yda1n"] +events = [SubResource("InputEventKey_h2jfj"), SubResource("InputEventKey_xrhoa")] + +[sub_resource type="InputEventKey" id="InputEventKey_iupjv"] device = -1 keycode = 48 unicode = 48 +[sub_resource type="InputEventKey" id="InputEventKey_icels"] +device = -1 +keycode = 89 +unicode = 1085 + +[sub_resource type="Shortcut" id="Shortcut_lnrbg"] +events = [SubResource("InputEventKey_iupjv"), SubResource("InputEventKey_icels")] + [sub_resource type="InputEventAction" id="InputEventAction_xq48m"] action = &"short_shovel" pressed = true @@ -194,11 +239,11 @@ layout_mode = 2 mouse_filter = 2 theme_override_constants/separation = 0 -[node name="ShortcutSetter" type="Node" parent="MarginContainer/Control/Hotbar/PanelContainer" node_paths=PackedStringArray("where_to_map")] +[node name="ShortcutSetter" type="Node" parent="MarginContainer/Control/Hotbar/PanelContainer" node_paths=PackedStringArray("hotbar")] process_mode = 1 -script = SubResource("GDScript_lxxir") -keys = Array[InputEventKey]([SubResource("InputEventKey_lxxir"), SubResource("InputEventKey_5kkbf"), SubResource("InputEventKey_xq48m"), SubResource("InputEventKey_cti1a"), SubResource("InputEventKey_s07y0"), SubResource("InputEventKey_hmpwl"), SubResource("InputEventKey_kqrbi"), SubResource("InputEventKey_s6pj4"), SubResource("InputEventKey_ar74i"), SubResource("InputEventKey_k8sc7")]) -where_to_map = NodePath("../Seedpackets") +script = ExtResource("5_5kkbf") +shortcuts = Array[Shortcut]([SubResource("Shortcut_hmpwl"), SubResource("Shortcut_s6pj4"), SubResource("Shortcut_k8sc7"), SubResource("Shortcut_lxteg"), SubResource("Shortcut_q5vyg"), SubResource("Shortcut_6awm7"), SubResource("Shortcut_dsi7v"), SubResource("Shortcut_d5mmq"), SubResource("Shortcut_yda1n"), SubResource("Shortcut_lnrbg")]) +hotbar = NodePath("../Seedpackets") [node name="Space" type="Control" parent="MarginContainer/Control/Hotbar"] layout_mode = 2 diff --git a/scripts/gui/menu_buttons.gd b/scripts/gui/menu_buttons.gd index 2ae176b..0514f9d 100644 --- a/scripts/gui/menu_buttons.gd +++ b/scripts/gui/menu_buttons.gd @@ -2,7 +2,7 @@ extends Node func _on_play_button_pressed() -> void: - LevelController.call("StartLevel",preload("uid://bu0dh5ct387xu"),preload("uid://br3364jty1j0i")) + LevelController.call("StartLevel",preload("uid://bu0dh5ct387xu"),preload("uid://ctbue7dex4umy")) $ChannelPlayer.call("Play") diff --git a/scripts/gui/seedpackets/HotbarShortcutSetter.cs b/scripts/gui/seedpackets/HotbarShortcutSetter.cs new file mode 100644 index 0000000..c22d9a8 --- /dev/null +++ b/scripts/gui/seedpackets/HotbarShortcutSetter.cs @@ -0,0 +1,25 @@ +using Godot; +using Godot.Collections; +using Newlon.Components.GUI.Seedpackets; +using Newlon.Components.Level; + +public partial class HotbarShortcutSetter : Node +{ + [Export] private Array shortcuts; + [Export] private Control hotbar; + public override void _Ready() + { + RuntimeLevelData.Instance.OnLevelStateChanged += OnLevelStateChanged; + } + private void OnLevelStateChanged(RuntimeLevelData.LevelStates state) + { + if (state == RuntimeLevelData.LevelStates.Pregame) + { + for (int i = 0; i < hotbar.GetChildCount(); i++) + { + ((Seedpacket)hotbar.GetChild(i)).Shortcut = shortcuts[i]; + } + } + } + +} diff --git a/scripts/gui/seedpackets/HotbarShortcutSetter.cs.uid b/scripts/gui/seedpackets/HotbarShortcutSetter.cs.uid new file mode 100644 index 0000000..ca23ab6 --- /dev/null +++ b/scripts/gui/seedpackets/HotbarShortcutSetter.cs.uid @@ -0,0 +1 @@ +uid://di45o67gxmiql diff --git a/scripts/level/RuntimeLevelData.cs b/scripts/level/RuntimeLevelData.cs index 8c65fef..e2d248f 100644 --- a/scripts/level/RuntimeLevelData.cs +++ b/scripts/level/RuntimeLevelData.cs @@ -28,11 +28,14 @@ public partial class RuntimeLevelData : Node private LevelStates _currentState = LevelStates.ChooseYourSeeds; + public override void _EnterTree() + { + Instance = this; + } public override void _Ready() { - Instance = this; Engine.TimeScale = 1.0; SetLevelState(LevelStates.ChooseYourSeeds); }