mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-01 11:15:33 +00:00
Enhanced bullet scripts
This commit is contained in:
parent
099c8acf5e
commit
c1f83736f0
7 changed files with 112 additions and 52 deletions
|
|
@ -9,9 +9,11 @@ namespace Cirno.Scripts.Resources.ScriptableBullets;
|
|||
[Tool]
|
||||
public partial class ParallelPatternGroup : AttackPattern
|
||||
{
|
||||
[Export(PropertyHint.None, "suffix:s")] public float Duration { get; private set; } = 10f;
|
||||
[Export(PropertyHint.None, "suffix:s")]
|
||||
public float Duration { get; private set; } = 10f;
|
||||
|
||||
[Export] public Array<AttackPattern> Patterns { get; private set; } = [];
|
||||
|
||||
|
||||
public override IPatternMachine MakeMachine(Node parent)
|
||||
{
|
||||
return new ParallelPatternGroupMachine(this, parent);
|
||||
|
|
@ -21,13 +23,13 @@ public partial class ParallelPatternGroup : AttackPattern
|
|||
{
|
||||
public Node Parent => parent;
|
||||
//private int _currentPatternIndex = 0;
|
||||
|
||||
|
||||
//private AttackPattern CurrentPattern => patternGroup.Patterns[_currentPatternIndex];
|
||||
|
||||
private double _progressTimer = 0;
|
||||
|
||||
|
||||
private List<IPatternMachine> _patternMachines = [];
|
||||
|
||||
|
||||
public void Start()
|
||||
{
|
||||
//_currentPatternIndex = 0;
|
||||
|
|
@ -48,19 +50,20 @@ public partial class ParallelPatternGroup : AttackPattern
|
|||
if (patternMachine.IsComplete()) continue;
|
||||
patternMachine.UpdatePattern(delta);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public bool IsComplete()
|
||||
{
|
||||
if (patternGroup.WaitForCompletion)
|
||||
{
|
||||
return _patternMachines.TrueForAll(x => x.IsComplete()) && _progressTimer >= patternGroup.Duration;
|
||||
return _patternMachines.TrueForAll(x => x.IsComplete()) &&
|
||||
(patternGroup.Duration > -1 &&
|
||||
_progressTimer >= patternGroup.Duration);
|
||||
}
|
||||
|
||||
return _patternMachines.TrueForAll(x => x.IsComplete()) || _progressTimer >= patternGroup.Duration;
|
||||
|
||||
return _patternMachines.TrueForAll(x => x.IsComplete()) ||
|
||||
(patternGroup.Duration > -1 &&
|
||||
_progressTimer >= patternGroup.Duration);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue