mixedcards/Assets/Battle/Trigger.cs
2020-09-19 22:42:51 -04:00

36 lines
No EOL
951 B
C#

public enum TriggerExpiration {
Never,
StartOfNextHeroTurn,
}
public enum TriggerRepetition {
Once,
Multiple,
}
public class Trigger {
private TriggeredEffect callback;
private TriggerExpiration expiration;
private TriggerRepetition repetition;
private bool expired;
public Trigger(TriggeredEffect callback, TriggerExpiration expiration,
TriggerRepetition repetition) {
this.callback = callback;
this.expiration = expiration;
this.repetition = repetition;
}
public void Run(IBattleEffectApplier effectApplier) {
if (this.expired) return;
callback(effectApplier);
if (this.repetition == TriggerRepetition.Once) {
this.expired = true;
}
}
public bool Expired {get => this.expired;}
public TriggerExpiration Expiration {get => this.expiration;}
public TriggerRepetition Repetition {get => this.repetition;}
}