private void CheckDieResult(DiceRollCheckSubPhase subphase) { GenericToken tokenToAssign = null; if (subphase.CurrentDiceRoll.HasResult(DieSide.Crit) || subphase.CurrentDiceRoll.HasResult(DieSide.Success)) { tokenToAssign = new CalculateToken(HostShip); } else { tokenToAssign = new JamToken(HostShip, HostShip.Owner); } Messages.ShowInfo($"Agent Terex (Cyborg): {HostShip.PilotInfo.PilotName} gains {tokenToAssign.Name}"); HostShip.Tokens.AssignToken( tokenToAssign, delegate { (Phases.CurrentSubPhase as DiceRollCheckSubPhase).HideDiceResultMenu(); Phases.FinishSubPhase(Phases.CurrentSubPhase.GetType()); Triggers.FinishTrigger(); } ); }
private void RollDie(object sender, EventArgs e) { DiceRollCheckSubPhase subphase = Phases.StartTemporarySubPhaseNew <DiceRollCheckSubPhase>("Agent Terex Dice Check", Triggers.FinishTrigger); subphase.DiceCount = 1; subphase.DiceKind = DiceKind.Attack; subphase.AfterRoll = delegate { CheckDieResult(subphase); }; subphase.RequiredPlayer = HostShip.Owner.PlayerNo; subphase.Start(); }