private void UseGeniusAbility(object sender, EventArgs e) { List <GenericUpgrade> timedBombsInstalled = BombsManager.GetTimedBombsInstalled(HostShip); DecisionSubPhase.ConfirmDecisionNoCallback(); if (timedBombsInstalled.Count == 1) { BombsManager.CurrentBomb = timedBombsInstalled[0] as GenericBomb; StartDropBombSubphase(); } else { AskToSelectTimedBomb(StartDropBombSubphase); } }
private void AskToSelectTimedBomb(Action callback) { GeniusBombDecisionSubPhase selectBombToDrop = (GeniusBombDecisionSubPhase)Phases.StartTemporarySubPhaseNew( "Select bomb to drop", typeof(GeniusBombDecisionSubPhase), callback ); foreach (var timedBombInstalled in BombsManager.GetTimedBombsInstalled(HostShip)) { selectBombToDrop.AddDecision( timedBombInstalled.Name, delegate { SelectBomb(timedBombInstalled); } ); } selectBombToDrop.InfoText = "Select bomb to drop"; selectBombToDrop.DefaultDecisionName = BombsManager.GetTimedBombsInstalled(HostShip).First().Name; selectBombToDrop.RequiredPlayer = HostShip.Owner.PlayerNo; selectBombToDrop.Start(); }