From 70d22b2be8f17ff9ccb9704fb76c8a237d60b1cf Mon Sep 17 00:00:00 2001 From: Marco Date: Mon, 9 Jun 2025 10:55:43 +0200 Subject: [PATCH] Spell card tweaks and wait mode --- Resources/BossPhases/Reimu/Reimu_NS1.tres | 77 ++++++++++++------- Resources/Debug/DebugLevels.tres | 28 +++---- .../ScriptableBullets/ParallelPatternGroup.cs | 11 ++- 3 files changed, 72 insertions(+), 44 deletions(-) diff --git a/Resources/BossPhases/Reimu/Reimu_NS1.tres b/Resources/BossPhases/Reimu/Reimu_NS1.tres index c6b9d6f8..c06ac500 100644 --- a/Resources/BossPhases/Reimu/Reimu_NS1.tres +++ b/Resources/BossPhases/Reimu/Reimu_NS1.tres @@ -1,4 +1,4 @@ -[gd_resource type="Resource" script_class="BossPhase" load_steps=15 format=3 uid="uid://bu3a6hv5i1qam"] +[gd_resource type="Resource" script_class="BossPhase" load_steps=18 format=3 uid="uid://bu3a6hv5i1qam"] [ext_resource type="Script" uid="uid://cdd6q2h0t1hhq" path="res://Scripts/Resources/BossPhase.cs" id="1_4trvi"] [ext_resource type="Resource" uid="uid://djjp4nyufqxlp" path="res://Resources/Bullets/Boss/Reimu/Reimu_Card_Bullet_Red.tres" id="1_x3pjh"] @@ -8,6 +8,7 @@ [ext_resource type="Resource" uid="uid://t2tbu5bfge4b" path="res://Resources/Bullets/Boss/Reimu/Reimu_Card_Bullet_Blue.tres" id="5_8tj6w"] [ext_resource type="Script" uid="uid://rqtkxuqmo7gi" path="res://Scripts/Resources/ScriptableBullets/ParallelPatternGroup.cs" id="5_vtvh5"] [ext_resource type="Script" uid="uid://cq7pfooyqayc4" path="res://Scripts/Resources/Modifiers/DelayedSpeedModifier.cs" id="6_8tj6w"] +[ext_resource type="Script" uid="uid://bj3v4rlov86gw" path="res://Scripts/Resources/FSMMovementPattern.cs" id="7_8m6wu"] [sub_resource type="Resource" id="Resource_0ug5q"] script = ExtResource("6_8tj6w") @@ -42,31 +43,6 @@ TimeModifiers = Array[ExtResource("2_sai2e")]([SubResource("Resource_0ug5q")]) WaitForCompletion = true metadata/_custom_type_script = "uid://c0ndqalsc4jve" -[sub_resource type="Resource" id="Resource_x3pjh"] -script = ExtResource("3_xjypu") -BulletResource = ExtResource("5_8tj6w") -EmitterOffset = Vector2(0, 0) -bulletCount = 4 -rotationSpeed = 0.0 -_rotationOffset = 0.0 -duration = 4.0 -spread = 360.0 -burstInterval = 0.1 -ShotsPerBurst = 4 -BurstRate = 4.0 -_targetPlayer = true -_predictPlayer = false -OverrideOwner = false -Owner = 0 -OverrideDamageType = false -DamageType = 0 -OverrideControllable = false -Controllable = false -OverrideCreationModifier = false -TimeModifiers = Array[ExtResource("2_sai2e")]([]) -WaitForCompletion = true -metadata/_custom_type_script = "uid://c0ndqalsc4jve" - [sub_resource type="Resource" id="Resource_nvh37"] script = ExtResource("6_8tj6w") TimeInSeconds = 0.01 @@ -102,15 +78,58 @@ metadata/_custom_type_script = "uid://c0ndqalsc4jve" [sub_resource type="Resource" id="Resource_8m6wu"] script = ExtResource("5_vtvh5") -Duration = 10.0 -Patterns = Array[ExtResource("1_xjypu")]([SubResource("Resource_8tj6w"), SubResource("Resource_x3pjh"), SubResource("Resource_x1u88")]) +Duration = 2.0 +Patterns = Array[ExtResource("1_xjypu")]([SubResource("Resource_8tj6w"), SubResource("Resource_x1u88")]) WaitForCompletion = true metadata/_custom_type_script = "uid://rqtkxuqmo7gi" +[sub_resource type="Resource" id="Resource_vrrpx"] +script = ExtResource("7_8m6wu") +relativeTargetPosition = Vector2(-32, 0) +moveDuration = 2.0 +transitionType = 4 +easeType = 2 +WaitForCompletion = true +metadata/_custom_type_script = "uid://bj3v4rlov86gw" + +[sub_resource type="Resource" id="Resource_x3pjh"] +script = ExtResource("3_xjypu") +BulletResource = ExtResource("5_8tj6w") +EmitterOffset = Vector2(0, 0) +bulletCount = 4 +rotationSpeed = 0.0 +_rotationOffset = 0.0 +duration = 2.0 +spread = 360.0 +burstInterval = 0.1 +ShotsPerBurst = 4 +BurstRate = 4.0 +_targetPlayer = true +_predictPlayer = false +OverrideOwner = false +Owner = 0 +OverrideDamageType = false +DamageType = 0 +OverrideControllable = false +Controllable = false +OverrideCreationModifier = false +TimeModifiers = Array[ExtResource("2_sai2e")]([]) +WaitForCompletion = true +metadata/_custom_type_script = "uid://c0ndqalsc4jve" + +[sub_resource type="Resource" id="Resource_vdysv"] +script = ExtResource("7_8m6wu") +relativeTargetPosition = Vector2(0, 0) +moveDuration = 2.0 +transitionType = 0 +easeType = 2 +WaitForCompletion = true +metadata/_custom_type_script = "uid://bj3v4rlov86gw" + [resource] script = ExtResource("1_4trvi") PhaseName = "" Threshold = 400 PlayAnimation = false -Patterns = Array[Object]([SubResource("Resource_8m6wu")]) +Patterns = Array[Object]([SubResource("Resource_8m6wu"), SubResource("Resource_vrrpx"), SubResource("Resource_x3pjh"), SubResource("Resource_vdysv")]) metadata/_custom_type_script = "uid://cdd6q2h0t1hhq" diff --git a/Resources/Debug/DebugLevels.tres b/Resources/Debug/DebugLevels.tres index 1c0f296e..4d9f3999 100644 --- a/Resources/Debug/DebugLevels.tres +++ b/Resources/Debug/DebugLevels.tres @@ -22,8 +22,8 @@ _name = "Intro" [sub_resource type="Resource" id="Resource_cfhv5"] script = ExtResource("1_ov731") EggIndex = 0 -StartingEquipment = [] -RemoveEquipment = [] +StartingEquipment = Array[ExtResource("2_bkci5")]([]) +RemoveEquipment = Array[ExtResource("2_bkci5")]([]) [sub_resource type="Resource" id="Resource_0k62o"] script = ExtResource("2_tnajf") @@ -35,8 +35,8 @@ StartData = SubResource("Resource_cfhv5") [sub_resource type="Resource" id="Resource_tpb7s"] script = ExtResource("1_ov731") EggIndex = 0 -StartingEquipment = [] -RemoveEquipment = [] +StartingEquipment = Array[ExtResource("2_bkci5")]([]) +RemoveEquipment = Array[ExtResource("2_bkci5")]([]) [sub_resource type="Resource" id="Resource_edoov"] script = ExtResource("2_tnajf") @@ -48,8 +48,8 @@ StartData = SubResource("Resource_tpb7s") [sub_resource type="Resource" id="Resource_1sw5g"] script = ExtResource("1_ov731") EggIndex = 255 -StartingEquipment = [] -RemoveEquipment = [] +StartingEquipment = Array[ExtResource("2_bkci5")]([]) +RemoveEquipment = Array[ExtResource("2_bkci5")]([]) [sub_resource type="Resource" id="Resource_47bot"] script = ExtResource("2_tnajf") @@ -62,7 +62,7 @@ StartData = SubResource("Resource_1sw5g") script = ExtResource("1_ov731") EggIndex = 2 StartingEquipment = Array[ExtResource("2_bkci5")]([ExtResource("3_fydgr"), ExtResource("4_38yta"), ExtResource("5_em757"), ExtResource("6_sdmg8")]) -RemoveEquipment = [] +RemoveEquipment = Array[ExtResource("2_bkci5")]([]) [sub_resource type="Resource" id="Resource_mgdm6"] script = ExtResource("2_tnajf") @@ -80,8 +80,8 @@ _name = "Rebel Base" [sub_resource type="Resource" id="Resource_maxpt"] script = ExtResource("1_ov731") EggIndex = 0 -StartingEquipment = [] -RemoveEquipment = [] +StartingEquipment = Array[ExtResource("2_bkci5")]([]) +RemoveEquipment = Array[ExtResource("2_bkci5")]([]) [sub_resource type="Resource" id="Resource_pein5"] script = ExtResource("2_tnajf") @@ -118,7 +118,7 @@ _name = "Default Scene" script = ExtResource("1_ov731") EggIndex = 0 StartingEquipment = Array[ExtResource("2_bkci5")]([ExtResource("7_b3oo5")]) -RemoveEquipment = [] +RemoveEquipment = Array[ExtResource("2_bkci5")]([]) [sub_resource type="Resource" id="Resource_6ijnv"] script = ExtResource("2_tnajf") @@ -137,8 +137,8 @@ metadata/_custom_type_script = "uid://dnthdjrx78u6m" [sub_resource type="Resource" id="Resource_7sue8"] script = ExtResource("1_ov731") EggIndex = 255 -StartingEquipment = [] -RemoveEquipment = [] +StartingEquipment = Array[ExtResource("2_bkci5")]([]) +RemoveEquipment = Array[ExtResource("2_bkci5")]([]) metadata/_custom_type_script = "uid://mja0rk7n2kln" [sub_resource type="Resource" id="Resource_ognca"] @@ -152,8 +152,8 @@ metadata/_custom_type_script = "uid://dnthdjrx78u6m" [sub_resource type="Resource" id="Resource_olpjo"] script = ExtResource("1_ov731") EggIndex = 0 -StartingEquipment = [] -RemoveEquipment = [] +StartingEquipment = Array[ExtResource("2_bkci5")]([]) +RemoveEquipment = Array[ExtResource("2_bkci5")]([]) metadata/_custom_type_script = "uid://mja0rk7n2kln" [sub_resource type="Resource" id="Resource_nbnej"] diff --git a/Scripts/Resources/ScriptableBullets/ParallelPatternGroup.cs b/Scripts/Resources/ScriptableBullets/ParallelPatternGroup.cs index da7380e5..376a6cde 100644 --- a/Scripts/Resources/ScriptableBullets/ParallelPatternGroup.cs +++ b/Scripts/Resources/ScriptableBullets/ParallelPatternGroup.cs @@ -23,6 +23,8 @@ public partial class ParallelPatternGroup : AttackPattern //private int _currentPatternIndex = 0; //private AttackPattern CurrentPattern => patternGroup.Patterns[_currentPatternIndex]; + + private double _progressTimer = 0; private List _patternMachines = []; @@ -39,6 +41,7 @@ public partial class ParallelPatternGroup : AttackPattern public void UpdatePattern(double delta) { + _progressTimer += delta; foreach (var patternMachine in _patternMachines) { //if (!CurrentPattern.WaitForCompletion || _patternMachine.IsComplete()) @@ -50,7 +53,13 @@ public partial class ParallelPatternGroup : AttackPattern public bool IsComplete() { - return _patternMachines.TrueForAll(x => x.IsComplete()); + if (patternGroup.WaitForCompletion) + { + return _patternMachines.TrueForAll(x => x.IsComplete()) && _progressTimer >= patternGroup.Duration; + } + + return _patternMachines.TrueForAll(x => x.IsComplete()) || _progressTimer >= patternGroup.Duration; + } }