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());
        }
    }