mixedcards/Assets/Battle/Trigger.cs
2020-10-23 00:16:34 -04:00

44 lines
No EOL
1.1 KiB
C#

using System.Collections;
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 IEnumerator Run(IBattleEffectApplier effectApplier,
MonsterViewpoint viewpoint,
BattlePlayerControls playerControls) {
if (this.expired) {
yield break;
}
yield return callback(effectApplier, viewpoint, playerControls);
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;}
}