From 1db132d77d705fc19ad9c702e9e0e4b4e9d5bc97 Mon Sep 17 00:00:00 2001 From: Marco Date: Wed, 12 Feb 2025 16:51:00 +0100 Subject: [PATCH] Moved rumia NS 1 to spiral pattern --- Resources/BossPhases/Rumia_SP1.tres | 2 ++ Resources/BossPhases/TestBoss1.tres | 4 +-- Resources/Patterns/rumia_ns_1_spiralized.tres | 27 +++++++++++++++++++ Scripts/AttackPatterns/SpiralPattern.cs | 18 ++++++++++--- 4 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 Resources/Patterns/rumia_ns_1_spiralized.tres diff --git a/Resources/BossPhases/Rumia_SP1.tres b/Resources/BossPhases/Rumia_SP1.tres index a4a65d53..406c38a6 100644 --- a/Resources/BossPhases/Rumia_SP1.tres +++ b/Resources/BossPhases/Rumia_SP1.tres @@ -29,6 +29,7 @@ owner = 2 _damageType = 0 _bulletDamage = 1.0 _timeModifiers = Array[Resource]([]) +_targetPlayer = false WaitForCompletion = true [sub_resource type="Resource" id="Resource_7yi74"] @@ -45,6 +46,7 @@ owner = 2 _damageType = 0 _bulletDamage = 1.0 _timeModifiers = null +_targetPlayer = false WaitForCompletion = true [sub_resource type="Resource" id="Resource_gm1rv"] diff --git a/Resources/BossPhases/TestBoss1.tres b/Resources/BossPhases/TestBoss1.tres index 9a325163..81dc6573 100644 --- a/Resources/BossPhases/TestBoss1.tres +++ b/Resources/BossPhases/TestBoss1.tres @@ -2,7 +2,7 @@ [ext_resource type="Script" path="res://Scripts/Resources/BossPhase.cs" id="1_0cgch"] [ext_resource type="Script" path="res://Scripts/Resources/SimpleMovementPattern.cs" id="1_xksf5"] -[ext_resource type="Resource" uid="uid://csudslb5tliw4" path="res://Resources/Patterns/rumia_ns_1.tres" id="2_3486e"] +[ext_resource type="Resource" uid="uid://jjky5fqn74qk" path="res://Resources/Patterns/rumia_ns_1_spiralized.tres" id="2_7n56o"] [ext_resource type="Resource" uid="uid://du2kuv125vbrx" path="res://Resources/Patterns/rumia_ns_2.tres" id="3_mwcf3"] [sub_resource type="Resource" id="Resource_acaax"] @@ -40,4 +40,4 @@ WaitForCompletion = false [resource] script = ExtResource("1_0cgch") Threshold = 999 -Patterns = Array[Resource]([SubResource("Resource_acaax"), ExtResource("2_3486e"), ExtResource("3_mwcf3"), SubResource("Resource_o8win"), ExtResource("2_3486e"), ExtResource("3_mwcf3"), SubResource("Resource_k77ig"), ExtResource("2_3486e"), ExtResource("3_mwcf3"), SubResource("Resource_5ocg5"), ExtResource("2_3486e"), ExtResource("3_mwcf3")]) +Patterns = Array[Resource]([SubResource("Resource_acaax"), ExtResource("2_7n56o"), ExtResource("3_mwcf3"), SubResource("Resource_o8win"), ExtResource("2_7n56o"), ExtResource("3_mwcf3"), SubResource("Resource_k77ig"), ExtResource("2_7n56o"), ExtResource("3_mwcf3"), SubResource("Resource_5ocg5"), ExtResource("2_7n56o"), ExtResource("3_mwcf3")]) diff --git a/Resources/Patterns/rumia_ns_1_spiralized.tres b/Resources/Patterns/rumia_ns_1_spiralized.tres new file mode 100644 index 00000000..a11f21b4 --- /dev/null +++ b/Resources/Patterns/rumia_ns_1_spiralized.tres @@ -0,0 +1,27 @@ +[gd_resource type="Resource" script_class="SpiralPattern" load_steps=5 format=3 uid="uid://jjky5fqn74qk"] + +[ext_resource type="PackedScene" uid="uid://bi3f14klscvlw" path="res://Scenes/Weapons/Bullets/enemyBullet_mid_red.tscn" id="1_iwsrv"] +[ext_resource type="Script" path="res://Scripts/Resources/DecreasingSpeedModifier.cs" id="2_etidu"] +[ext_resource type="Script" path="res://Scripts/AttackPatterns/SpiralPattern.cs" id="3_ryait"] + +[sub_resource type="Resource" id="Resource_jeq72"] +script = ExtResource("2_etidu") +decreaseRate = 4.0 + +[resource] +script = ExtResource("3_ryait") +BulletScene = ExtResource("1_iwsrv") +bulletSpeed = 70.0 +bulletCount = 10 +rotationSpeed = 0.0 +_rotationOffset = 0.0 +duration = 3.0 +burstInterval = 0.3 +spread = 0.0 +owner = 2 +_damageType = 0 +_bulletDamage = 1.0 +_modifier = SubResource("Resource_jeq72") +_timeModifiers = null +_targetPlayer = true +WaitForCompletion = true diff --git a/Scripts/AttackPatterns/SpiralPattern.cs b/Scripts/AttackPatterns/SpiralPattern.cs index 63ac24bf..426bba98 100644 --- a/Scripts/AttackPatterns/SpiralPattern.cs +++ b/Scripts/AttackPatterns/SpiralPattern.cs @@ -25,10 +25,14 @@ public partial class SpiralPattern : AttackPattern [Export] private Resource _modifier; [Export] private Array _timeModifiers; + [Export] private bool _targetPlayer = false; + private double timer; private double burstTimer; private BulletSpawner spawner; + private GameManager _gameManager; + public override void Start(Boss boss) { Boss = boss; @@ -43,12 +47,20 @@ public partial class SpiralPattern : AttackPattern burstTimer += delta; if (timer < duration && burstTimer >= burstInterval) { - float angleOffset = (float)(rotationSpeed * timer); + float angleOffset = _rotationOffset + (float)(rotationSpeed * timer); + + Vector2 direction = Vector2.Right; + ; + + if (_targetPlayer && Boss.GameManager.PlayerPosition.HasValue) + { + direction = (Boss.GameManager.PlayerPosition.Value - Boss.GlobalPosition).Normalized(); + } spawner.SpawnBullet(new BulletInfo() { Position = Boss.GlobalPosition, - Direction = Vector2.Right, + Direction = direction, Speed = bulletSpeed, Owner = owner, DamageType = _damageType, @@ -56,7 +68,7 @@ public partial class SpiralPattern : AttackPattern BulletCount = bulletCount, Spread = spread, BulletScene = BulletScene, - RotationOffset = _rotationOffset, + RotationOffset = angleOffset, Modifier = _modifier as IBulletModifier, TimeModifiers = _timeModifiers?.Where(mod => mod is TimeModifier).Cast().ToList() ?? new List() });