Fixed Rumia's SP1

This commit is contained in:
Marco 2025-03-24 11:33:55 +01:00
commit 388acdba04
5 changed files with 90 additions and 33 deletions

View file

@ -13,8 +13,17 @@ public partial class BossSpawner : ActorSpawner
if (SpawnedActor is Boss boss)
{
boss.BossScript = BossScript;
boss.Activate();
CallDeferred(MethodName.ActivateBossDeferred);
//boss.Activate();
}
}
private void ActivateBossDeferred()
{
if (SpawnedActor is IActivable activable)
{
activable.Activate();
}
}
}

View file

@ -16,31 +16,34 @@ public partial class PatternGroup : AttackPattern
return new PatternGroupMachine(this, parent);
}
public class PatternGroupMachine(PatternGroup pattern, Node2D parent) : IPatternMachine
public class PatternGroupMachine(PatternGroup patternGroup, Node2D parent) : IPatternMachine
{
public Node2D Parent => parent;
private int currentPatternIndex = 0;
private int _currentPatternIndex = 0;
private AttackPattern CurrentPattern => patternGroup.patterns[_currentPatternIndex];
IPatternMachine _patternMachine;
public void Start()
{
currentPatternIndex = 0;
_patternMachine = pattern.patterns[currentPatternIndex].MakeMachine(parent);
_currentPatternIndex = 0;
_patternMachine = CurrentPattern.MakeMachine(parent);
_patternMachine.Start();
}
public void UpdatePattern(double delta)
{
if (currentPatternIndex < pattern.patterns.Count)
if (_currentPatternIndex < patternGroup.patterns.Count)
{
_patternMachine.UpdatePattern(delta);
if (!pattern.patterns[currentPatternIndex].WaitForCompletion || _patternMachine.IsComplete())
if (!CurrentPattern.WaitForCompletion || _patternMachine.IsComplete())
{
currentPatternIndex++;
if (currentPatternIndex < pattern.patterns.Count)
_currentPatternIndex++;
if (_currentPatternIndex < patternGroup.patterns.Count)
{
_patternMachine = CurrentPattern.MakeMachine(parent);
_patternMachine.Start();
}
}
@ -49,7 +52,7 @@ public partial class PatternGroup : AttackPattern
public bool IsComplete()
{
return currentPatternIndex >= pattern.patterns.Count;
return _currentPatternIndex >= patternGroup.patterns.Count;
}
}