public override void Update(GameTime gameTime) { switch (StateMachine.CurrentState) { case ShipFollowingState following: { if (following.Target.IsDead) { StateMachine.SetState <ShipIdleState>(); } ScanForTarget(gameTime); } break; case ShipFollowPositionState followPosition: { ScanForTarget(gameTime); } break; case ShipIdleState idle: { AIHelper.BigSetFollowState(this); } break; case RepairShipRepairState repair: { if (repair.Target.IsDead || repair.Target.CurrentArmourHP >= repair.Target.BaseArmourHP) { AIHelper.BigSetFollowState(this); } } break; } base.Update(gameTime); } // Update