예제 #1
0
 /// <summary>
 /// creates new radar instance. 
 /// Radar is created automatically for each UnitPilot class instance, has radius a little more than his ShootingRadius
 /// </summary>
 /// <param name="Radius">radar range</param>
 /// <param name="HolderUnit">unit that holds this radar</param>
 /// <param name="AI">AI that HolderUnit belongs to</param>
 internal Radar(float Radius, IUnit HolderUnit, AI AI)
 {
     holderUnit = HolderUnit;
     ai = AI;
     this.Radius = Radius;
     NearUnits = ai.Game.GetNearUnits(holderUnit.Position, Radius);
     Scan();
 }
예제 #2
0
 //CTOR
 internal UnitPilot(IUnit ControlledUnit, AI AI)
 {
     controlledUnit = ControlledUnit;
     radar = new Radar(controlledUnit.ShootingRadius + 50, controlledUnit, AI);
     computer = new OnBoardComputer(radar, controlledUnit);
     dangerRadius = dangerRadiusCoef *
         ((new Rectangle(GameVector.Zero, controlledUnit.Size, GameVector.UnitX)).GetBoundingCircle.Radius);
     StandBy();
     escapeThreting = true;
     //SetFlightTgt(controlledUnit.Position + new GameVector(-500, 800));
     targetUpdateTime = new Timer(1);
     relativeSpeedAim = 0;
     allowedSpeed = 0;
     AvoidingObstaclesEnabled = true;
     timer = new Timer(0.05f);
     SetMaxSpeed(controlledUnit.MaxSpeed);
 }