public override void OnDraw(State state, Player player)
        {
            player.Hand.Remove(this);
            state.Send(String.Format(Messages.DrawEffect, player) + " "
                + this + "\u000f | " + String.Format(Messages.ExplSid3, player));

            state.DealCards(player, 3);
        }
        public override void OnPlay(State state, Player player)
        {
            state.Send(this + "\u000f | " + String.Format(Messages.DrawsFour, state.Players.Next));
            state.DealCards(state.Players.Next, 4);

            state.Send("Also, " + String.Format(Messages.ExplWild, player));
            state.NextInState = InputState.Wild;
            state.NextTurnPush = 0;
        }
        public override void OnPlay(State state, Player player)
        {
            state.Send(this + "\u000f | " + Messages.ExplWmd3);
            foreach (Player p in state.Players) {
                if (p == state.Players.Current) continue;
                state.DealCards(p, 3);
            }

            state.Send("Also, " + String.Format(Messages.ExplWild, player));
            state.NextInState = InputState.Wild;
            state.NextTurnPush = 0;
        }
Exemple #4
0
        public override void OnPlay(State state, Player player)
        {
            state.Send(this + "\u000f | " + Messages.ExplDH);
            List<Tuple<Player, int>> amounts = new List<Tuple<Player, int>>();
            // Get hand counts and remove contents
            foreach (Player p in state.Players) {
                amounts.Add(new Tuple<Player, int>(p, p.Hand.Count));
                state.DiscardPile.Add(p.Hand);
                p.Hand.Clear();
            }

            // Deal new cards
            foreach (var value in amounts) {
                state.DealCards(value.Item1, value.Item2);
            }
        }
        public override void OnDraw(State state, Player player)
        {
            player.Hand.Remove(this);

            Random r = new Random();
            state.Send(String.Format(Messages.DrawEffect, player) + " "
                + this + "\u000f | " + String.Format(Messages.Expl_RWD, player));
            if (r.Next(1) == 0) {
                // Good outcome
                state.Send(Messages.Draw_RWD_Good);
                state.Send(this + "\u000f | " + String.Format(Messages.ExplWild, player));
                state.NextInState = InputState.Wild;
            } else {
                // Bad outcome
                state.Send(Messages.Draw_RWD_Bad);
                state.DealCards(player, 5);
            }
        }
Exemple #6
0
 public override void OnPlay(State state, Player player)
 {
     state.Send(String.Format(Messages.DrawsFour, state.Players.Next));
     state.DealCards(state.Players.Next, 4);
 }