private void AskToRemoveTargetLock() { CountermeasuresDecisionSubPhase selectTargetLockToDiscardDecision = (CountermeasuresDecisionSubPhase)Phases.StartTemporarySubPhaseNew( Name, typeof(CountermeasuresDecisionSubPhase), SubPhases.DecisionSubPhase.ConfirmDecision ); foreach (GenericToken token in HostShip.GetAllTokens()) { if (token.GetType() == typeof(RedTargetLockToken)) { char letter = (token as GenericTargetLockToken).Letter; selectTargetLockToDiscardDecision.AddDecision ( "Target Lock " + letter, delegate { RemoveTargetLock(letter); } ); } } selectTargetLockToDiscardDecision.InfoText = "Select target lock to remove"; selectTargetLockToDiscardDecision.DefaultDecision = selectTargetLockToDiscardDecision.GetDecisions().First().Key; selectTargetLockToDiscardDecision.RequiredPlayer = HostShip.Owner.PlayerNo; selectTargetLockToDiscardDecision.Start(); }