Пример #1
0
    public static int CalcMinTimeForAimerToHitAimee(TankStateInfo aimingTankInfo, TankStateInfo aimeeTankInfo, List <WeaponPart> aimerWeapons, out WeaponPart outWeapon)
    {
        int minTime = 99999;

        outWeapon = null;
        foreach (WeaponPart weapon in aimerWeapons)
        {
            Vector2 fireVec = weapon.OwningTank.Hull.Schematic.OrigWeaponDirs[weapon.EquipIdx].Rotate(aimingTankInfo.Rot);
            int     time    = convertFloatSecondToIntCentiSecond(AIUtility.CalcTimeToHitPos(aimingTankInfo.Pos, fireVec, aimingTankInfo, weapon.Schematic, aimeeTankInfo.Pos) + weapon.CalcTimeToReloaded());

            if (time < minTime)
            {
                minTime   = time;
                outWeapon = weapon;
            }
        }

        return(minTime);
    }