Пример #1
0
    public static List <Vessel> GetTargets(this Vessel vessel, ETargetType targetTypes, bool considerAircrafts)
    {
        bool          findSurf = (targetTypes & ETargetType.SURF) > 0;
        bool          findSub  = (targetTypes & ETargetType.SUB) > 0;
        bool          findAir  = (targetTypes & ETargetType.AIR) > 0;
        List <Vessel> result   = new List <Vessel>();

        if (findSurf || findSub)
        {
            foreach (Vessel v in BattleManager.instance.sides[1 - vessel.side])
            {
                if (v.isAlive == false)
                {
                    continue;
                }
                if (v.vesselType == EVesselType.SS && findSub)
                {
                    if (vessel.CheckWeapon(v, considerAircrafts) == true)
                    {
                        result.Add(v);
                    }
                }
                else if (v.vesselType != EVesselType.SS && findSurf)
                {
                    if (vessel.CheckWeapon(v, considerAircrafts) == true)
                    {
                        result.Add(v);
                    }
                }
            }
        }
        if (findAir && BattleManager.instance.sidesAC.Count > (1 - vessel.side))
        {
            foreach (Aircraft a in BattleManager.instance.sidesAC[1 - vessel.side])
            {
                if (a.isAlive == false)
                {
                    continue;
                }
                if (vessel.CheckWeapon(a, considerAircrafts) == true)
                {
                    result.Add(a);
                }
            }
        }

        return(result);
    }