Пример #1
0
 public override void Execute(AIBrain brain)
 {
     brain.Coast();
     if (brain.extrapolatedPlayerPosition.HasValue && brain.lastKnownPlayerVelocity.HasValue)
     {
         brain.LookAt(brain.extrapolatedPlayerPosition.Value);
         brain.Fire();
     }
 }
 public override void Execute(AIBrain brain)
 {
     brain.Coast();
     if (brain.extrapolatedPlayerPosition.HasValue && brain.lastKnownPlayerVelocity.HasValue)
     {
         float lookAheadSeconds = (brain.extrapolatedPlayerPosition.Value - brain.transform.position).magnitude / brain.ship.weapon.projectileSpeed;
         brain.LookAt(brain.extrapolatedPlayerPosition.Value + brain.lastKnownPlayerVelocity.Value * lookAheadSeconds);
         brain.Fire();
     }
 }
Пример #3
0
        public override void Execute(AIBrain brain)
        {
            brain.CeaseFire();
            randomLookTime -= Time.fixedDeltaTime;
            if (randomLookTime <= 0f)
            {
                brain.LookRandomDirection();
                randomLookTime = UnityEngine.Random.Range(randomLookTimeMin, randomLookTimeMax);
            }

            if (brain.OverheatAboveThreshold(overheatThresholdMax))
            {
                brain.Coast();
            }
            else if (!brain.OverheatAboveThreshold(overheatThresholdMin))
            {
                brain.WanderAim(circleDistance, circleRadius);
                brain.Go();
            }
        }