cirnogodot/Scripts/Resources/BossPhase.cs

36 lines
935 B
C#
Raw Normal View History

2025-02-05 19:41:49 +01:00
using Cirno.Scripts.Actors;
using Godot;
using Godot.Collections;
namespace Cirno.Scripts.Resources;
[GlobalClass]
public partial class BossPhase : Resource
{
[Export] public int Threshold;
2025-02-12 18:16:16 +01:00
[Export] public bool PlayAnimation;
2025-02-05 19:41:49 +01:00
[Export] public Array<AttackPattern> Patterns;
private int currentPatternIndex = 0;
private double patternTimer;
public void Start(Boss boss)
{
currentPatternIndex = 0;
Patterns[currentPatternIndex].Start(boss);
}
public void UpdatePhase(double delta)
{
patternTimer += delta;
var currentPattern = Patterns[currentPatternIndex];
currentPattern.UpdatePattern(delta);
if (!currentPattern.WaitForCompletion || currentPattern.IsComplete())
{
currentPatternIndex = (currentPatternIndex + 1) % Patterns.Count;
Patterns[currentPatternIndex].Start(currentPattern.Boss);
}
}
}