Implement Molotov Cocktail
This commit is contained in:
parent
938a56231a
commit
a37adf2972
17 changed files with 255 additions and 20 deletions
|
|
@ -6,6 +6,7 @@ public class TriggerManager
|
|||
{
|
||||
private List<Trigger> activatedTriggers = new List<Trigger>();
|
||||
private List<DamageTrigger> damageTriggers = new List<DamageTrigger>();
|
||||
private List<StepTrigger> stepTriggers = new List<StepTrigger>();
|
||||
|
||||
public TriggerManager(BattleClock clock) {
|
||||
clock.OnTimeChanged += this.NotifyTimeChanged;
|
||||
|
|
@ -14,6 +15,13 @@ public class TriggerManager
|
|||
private void NotifyTimeChanged(BattleTime now) {
|
||||
if (now.RoundStep == RoundStep.StartOfHeroTurn) {
|
||||
this.damageTriggers.RemoveAll(t => t.Expiration == TriggerExpiration.StartOfNextHeroTurn);
|
||||
this.stepTriggers.RemoveAll(t => t.Expiration == TriggerExpiration.StartOfNextHeroTurn);
|
||||
}
|
||||
|
||||
foreach (StepTrigger st in this.stepTriggers) {
|
||||
if (st.IsTriggeredBy(now)) {
|
||||
EnqueueActivatedTrigger(st);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -33,17 +41,23 @@ public class TriggerManager
|
|||
}
|
||||
}
|
||||
|
||||
public void ArmDamageTrigger(DamageTrigger damageTrigger) {
|
||||
this.damageTriggers.Add(damageTrigger);
|
||||
public void ArmDamageTrigger(DamageTrigger trigger) {
|
||||
this.damageTriggers.Add(trigger);
|
||||
}
|
||||
|
||||
public void ArmStepTrigger(StepTrigger trigger) {
|
||||
this.stepTriggers.Add(trigger);
|
||||
}
|
||||
|
||||
private void EnqueueActivatedTrigger(Trigger trigger) {
|
||||
this.activatedTriggers.Add(trigger);
|
||||
}
|
||||
|
||||
public void RunActivatedTriggers(IBattleEffectApplier effectApplier) {
|
||||
public IEnumerator RunActivatedTriggers(IBattleEffectApplier effectApplier,
|
||||
MonsterViewpoint viewpoint,
|
||||
BattlePlayerControls playerControls) {
|
||||
foreach (Trigger t in this.activatedTriggers) {
|
||||
t.Run(effectApplier);
|
||||
yield return t.Run(effectApplier, viewpoint, playerControls);
|
||||
}
|
||||
this.activatedTriggers.Clear();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue