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