mixedcards/Assets/Battle/BattleClock.cs
2020-10-09 01:43:37 -04:00

29 lines
722 B
C#

public class BattleClock {
public delegate void TimeChangedAction(BattleTime timeNow);
public event TimeChangedAction OnTimeChanged;
private int mRoundNumber;
private RoundStep mStep;
public BattleClock() {
mRoundNumber = 0;
mStep = RoundStep.None;
}
public void AdvanceRound() {
mRoundNumber++;
mStep = RoundStep.StartOfRound;
TriggerOnTimeChanged();
}
public void AdvanceToStep(RoundStep step) {
mStep = step;
TriggerOnTimeChanged();
}
private void TriggerOnTimeChanged() {
if (OnTimeChanged != null) OnTimeChanged(this.Now);
}
public BattleTime Now {get => new BattleTime(mRoundNumber, mStep);}
}