Sanguosha.Core.Games.RoleGame.PlayerDiscardStageTrigger.Run C# (CSharp) Méthode

Run() public méthode

public Run ( Sanguosha.Core.Triggers.GameEvent gameEvent, GameEventArgs eventArgs ) : void
gameEvent Sanguosha.Core.Triggers.GameEvent
eventArgs Sanguosha.Core.Triggers.GameEventArgs
Résultat void
            public override void Run(GameEvent gameEvent, GameEventArgs eventArgs)
            {
                Player currentPlayer = Game.CurrentGame.CurrentPlayer;
                Trace.TraceInformation("Player {0} discard stage.", currentPlayer.Id);
                var args = new AdjustmentEventArgs();
                args.Source = eventArgs.Source;
                args.AdjustmentAmount = 0;
                Game.CurrentGame.Emit(GameEvent.PlayerHandCardCapacityAdjustment, args);
                Game.CurrentGame.ForcePlayerDiscard(currentPlayer,
                    (p, d) =>
                    {
                        int i = Game.CurrentGame.Decks[p, DeckType.Hand].Count - Math.Max(0, p.Health) - args.AdjustmentAmount;
                        if (i < 0) i = 0;
                        return i;
                    },
                    false,
                    false);
            }
RoleGame.PlayerDiscardStageTrigger