private void CalculateShowForecast(TacticsMove attacker, TacticsMove defender) { bool isDamage = (currentMode.value == ActionMode.ATTACK); BattleAction act1 = new BattleAction(true, isDamage, attacker, defender); if (isDamage) { BattleAction act2 = new BattleAction(false, true, defender, attacker); int distance = MapCreator.DistanceTo(defender, walkTile.value); int atk = (attacker.GetWeapon().InRange(distance)) ? act1.GetDamage() : -1; int def = (defender.GetWeapon() != null && defender.GetWeapon().InRange(distance)) ? act2.GetDamage() : -1; int spd = attacker.stats.spd - defender.stats.spd; bool atkWeak = attacker.stats.IsWeakAgainst(defender.stats.GetWeapon()); bool defWeak = defender.stats.IsWeakAgainst(attacker.stats.GetWeapon()); ShowForecast(attacker, defender, atk, def, spd, act1.GetAdvantage(), atkWeak, defWeak); } else { ShowHealForecast(attacker, defender, act1.GetHeals()); } }