Remade resource script system

This commit is contained in:
MaddoScientisto 2025-03-15 17:17:30 +01:00
commit 029128c8b8
17 changed files with 576 additions and 386 deletions

View file

@ -1,4 +1,5 @@
using Cirno.Scripts.Actors;
using Cirno.Scripts.AttackPatterns;
using Godot;
using Godot.Collections;
@ -15,10 +16,14 @@ public partial class BossPhase : Resource
private int currentPatternIndex = 0;
private double patternTimer;
private IPatternMachine _patternMachine;
public void Start(Boss boss)
{
currentPatternIndex = 0;
Patterns[currentPatternIndex].Start(boss);
_patternMachine = Patterns[currentPatternIndex].MakeMachine(boss);
_patternMachine.Start();
//Patterns[currentPatternIndex].Start(boss);
}
public void UpdatePhase(double delta)
@ -26,12 +31,15 @@ public partial class BossPhase : Resource
patternTimer += delta;
var currentPattern = Patterns[currentPatternIndex];
currentPattern.UpdatePattern(delta);
_patternMachine.UpdatePattern(delta);
if (!currentPattern.WaitForCompletion || currentPattern.IsComplete())
if (!currentPattern.WaitForCompletion || _patternMachine.IsComplete())
{
currentPatternIndex = (currentPatternIndex + 1) % Patterns.Count;
Patterns[currentPatternIndex].Start(currentPattern.Parent);
var oldParent = _patternMachine.Parent;
_patternMachine = Patterns[currentPatternIndex].MakeMachine(oldParent);
_patternMachine.Start();
//_patternMachine.Start(currentPattern.Parent);
}
}
}