Exemple #1
0
 private static bool _isVehicleVisible(Sandbox env, AVehicle veh)
 {
     foreach (var x in env.GetMyNeighbours(veh.X, veh.Y, 120 * veh.StealthFactor))
     {
         if (x.IsVisible(veh))
         {
             return(true);
         }
     }
     return(false);
 }
Exemple #2
0
        private double _nuclearGetDamage(AVehicle veh, Sandbox env, double lowerBound, List <AVehicle> targets, out ANuclear nuclearResult)
        {
            var vr  = veh.ActualVisionRange * 0.9;
            var cen = Utility.Average(targets);

            cen = veh + (cen - veh).Normalized() * Math.Min(vr, veh.GetDistanceTo(cen));
            var nuclear = new ANuclear(cen.X, cen.Y, true, veh.Id, G.TacticalNuclearStrikeDelay);

            nuclearResult = nuclear;

            var totalOpponentDamage = targets.Sum(x => x.GetNuclearDamage(nuclear));

            if (totalOpponentDamage <= lowerBound)
            {
                return(totalOpponentDamage);
            }

            var totalDamage = totalOpponentDamage -
                              env.GetMyNeighbours(nuclear.X, nuclear.Y, nuclear.Radius)
                              .Sum(x => x.GetNuclearDamage(nuclear));

            return(totalDamage);
        }