public void StrikeTarget(float damage) { if (currentTarget) { Defender defender = currentTarget.GetComponent <Defender>(); HealthPoints hp = currentTarget.GetComponent <HealthPoints>(); if (hp) { hp.ReduceHP(damage); defender.Damaged(hp); if (hp.getCurrentHP() <= 0) { defender.Die(hp); } } } }
//Called when the oppoenent is selected public void DoAttack() { Attacker.Target.currentMana -= SelectedMove.getCost(); foreach (CreatureBattleStatusController Defender in Defenders) { string message; if (SelectedMove.execute(Attacker, Defender)) { //attack hit message = Attacker.GetCreature().GetName() + " used " + SelectedMove.name + " on " + Defender.GetCreature().GetName() + "."; messageBoxActions.Enqueue(() => ShowMessage(message)); //faint? if (Defender.GetCreature().currentActiveHealth <= 0) { if (Defender.GetCreature().currentCriticalHealth <= 0) { messageBoxActions.Enqueue(() => ShowMessage(Defender.GetCreature().GetName() + " died!")); messageBoxActions.Enqueue(() => Defender.Die()); } else { messageBoxActions.Enqueue(() => ShowMessage(Defender.GetCreature().GetName() + " fainted!")); messageBoxActions.Enqueue(() => Defender.Faint()); } } } else { //attack missed message = SelectedMove.name + " missed" + Defender.GetCreature().GetName() + "."; messageBoxActions.Enqueue(() => ShowMessage(message)); } } resetSelection(); messageBoxActions.Enqueue(() => EndTurn()); }