private void FinishAdaptiveAileronsAbility() { doAilerons = false; HostShip.CanPerformActionsWhenBumped = false; HostShip.CanPerformActionsWhenOverlapping = false; RestoreManuverColors(HostShip); Phases.CurrentSubPhase.IsReadyForCommands = true; //ship may have flown off the board; only assign saved maneuver if ship is exists if (Roster.GetShipById("ShipId:" + Selection.ThisShip.ShipId) != null) { ManeuverSelectionSubphase subphase = Phases.StartTemporarySubPhaseNew <ManeuverSelectionSubphase>( "Select a maneuver", Triggers.FinishTrigger ); subphase.RequiredPlayer = Selection.ThisShip.Owner.PlayerNo; subphase.Start(); subphase.IsReadyForCommands = true; ShipMovementScript.SendAssignManeuverCommand(Selection.ThisShip.ShipId, SavedManeuver.ToString()); } else { Triggers.FinishTrigger(); } }
private static void StartAssignManeuverSubphase(Action<string> doWithSelectedManeuver) { ManeuverSelectionSubphase subphase = Phases.StartTemporarySubPhaseNew<ManeuverSelectionSubphase>( "Select a maneuver", Triggers.FinishTrigger ); subphase.RequiredPlayer = Phases.CurrentSubPhase.RequiredPlayer; subphase.Start(); DeleteOldDirectionsMenu(); Callback = doWithSelectedManeuver; }