bool SubTurnStep_Interrupt_AllyHit(Battler bat, Battler[] bats) { BattlerAction action = BattlerAction.None; bool tryToCutIn = false; for (int i = 0; i < bats.Length; i++) { if (bats[i].isValidTarget && bats[i].incomingHit && bats[i] != bat) { tryToCutIn = true; break; } } if (tryToCutIn) { action = bat.GetInterruptAction(BattlerActionInterruptType.OnAllyHit); if (action != BattlerAction.None) { currentActingBattler = bat; if (bat.isEnemy) { bat.AttackWith(validPlayerTargets, validEnemyTargets, action); } else { bat.AttackWith(validEnemyTargets, validPlayerTargets, action); } } } return(action != BattlerAction.None); }
bool SubTurnStep_Interrupt_SelfHit(Battler bat) { BattlerAction action = BattlerAction.None; if (bat.incomingHit) { action = bat.GetInterruptAction(BattlerActionInterruptType.OnHit); if (action != BattlerAction.None) { currentActingBattler = bat; if (bat.isEnemy) { bat.AttackWith(validPlayerTargets, validEnemyTargets, action); } else { bat.AttackWith(validEnemyTargets, validPlayerTargets, action); } } } return(action != BattlerAction.None); }
bool SubTurnStep_Interrupt_Deathblow(Battler bat) { BattlerAction action; currentActingBattler = bat; if (bat.isEnemy) { action = bat.GetInterruptAction(BattlerActionInterruptType.OnAllyDeathblow); if (action != BattlerAction.None) { bat.AttackWith(validPlayerTargets, validEnemyTargets, action); } } else { action = bat.GetInterruptAction(BattlerActionInterruptType.OnAllyDeathblow); if (action != BattlerAction.None) { bat.AttackWith(validEnemyTargets, validPlayerTargets, action); } } return(action != BattlerAction.None); }