36 lines
No EOL
951 B
C#
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;}
|
|
} |