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(); } }
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(); } }