public static Wait OnShoot(this IEffectHolder holder, ShootEvent shoot)
 {
     return(Scheduler.Instance.RunAndWait(holder.PushEvent <ShootEvent, OnShoot>(shoot)));
 }
 public static Wait OnTurn(this IEffectHolder holder, TurnEvent turn)
 {
     return(Scheduler.Instance.RunAndWait(holder.PushEvent <TurnEvent, OnTurn>(turn)));
 }
 public static Wait OnMine(this IEffectHolder holder, MineEvent mine)
 {
     return(Scheduler.Instance.RunAndWait(holder.PushEvent <MineEvent, OnMine>(mine)));
 }
 public static Wait OnDeath(this IEffectHolder holder, DeathEvent death)
 {
     return(Scheduler.Instance.RunAndWait(holder.PushEvent <DeathEvent, OnDeath>(death)));
 }
 public static Wait OnDefend(this IEffectHolder holder, Attack attack)
 {
     return(Scheduler.Instance.RunAndWait(holder.PushEvent <Attack, OnDefend>(attack)));
 }