cirnogodot/Scripts/Resources/PatternGroup.cs

42 lines
1.1 KiB
C#
Raw Normal View History

2025-02-05 19:41:49 +01:00
using Godot;
using System.Collections.Generic;
using Cirno.Scripts.Actors;
using Godot.Collections;
namespace Cirno.Scripts.Resources;
[GlobalClass]
public partial class PatternGroup : AttackPattern
{
[Export] private Array<AttackPattern> patterns;
private int currentPatternIndex = 0;
2025-03-15 11:44:30 +01:00
public override void Start(Node2D parent)
2025-02-05 19:41:49 +01:00
{
2025-03-15 11:44:30 +01:00
Parent = parent;
2025-02-05 19:41:49 +01:00
currentPatternIndex = 0;
2025-03-15 11:44:30 +01:00
patterns[currentPatternIndex].Start(parent);
2025-02-05 19:41:49 +01:00
}
public override void UpdatePattern(double delta)
{
if (currentPatternIndex < patterns.Count)
{
patterns[currentPatternIndex].UpdatePattern(delta);
if (!patterns[currentPatternIndex].WaitForCompletion || patterns[currentPatternIndex].IsComplete())
{
currentPatternIndex++;
if (currentPatternIndex < patterns.Count)
{
2025-03-15 11:44:30 +01:00
patterns[currentPatternIndex].Start(Parent);
2025-02-05 19:41:49 +01:00
}
}
}
}
public override bool IsComplete()
{
return currentPatternIndex >= patterns.Count;
}
}