public override void OnPlay(State state, Player player) { Random r = new Random(); int skips = r.Next(1, state.Players.Count - 1); if (skips == 1) state.Send(String.Format(Messages.PlayS, state.Players.Next)); else state.Send(String.Format(Messages.PlaySX, skips)); state.NextTurnPush = skips + 1; }
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; }
public override void OnDraw(State state, Player player) { player.Hand.Remove(this); state.Send(String.Format(Messages.DrawEffect, player) + " " + this + "\u000f | " + String.Format(Messages.Expl_Q, player)); state.NextTopCard = this; }
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 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); } }
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); state.Send(String.Format(Messages.DrawEffect, player) + " " + this + "\u000f | " + String.Format(Messages.Expl_3Dis, DispCard.Get(CardColor.Wild, CardFace.SID3), player)); int max = 3; if (player.Hand.Count < max) max = player.Hand.Count; Card[] withdraw = player.Hand.Draw(max); state.DiscardPile.Add(withdraw); string list = ""; foreach (Card c in withdraw) list += " " + c.ToString(); if (list.Length > 0) list = list.Substring(1); state.SendPriv(player.Nick, String.Format(Messages.Play_3Dis_Lose, list)); state.NextTurnPush = 1; }
public override void OnPlay(State state, Player player) { Random r = new Random(); Player[] pool = state.Players.ToArray(); Player victim; do { victim = pool[r.Next(pool.Length)]; } while (victim == player); state.Send(String.Format(Messages.Play_EResultPub, player, victim)); Card pc = player.Hand.Draw(); Card vc = victim.Hand.Draw(); player.Hand.Add(vc); victim.Hand.Add(pc); state.SendPriv(player.Nick, String.Format(Messages.Play_EResultPriv, pc, victim, vc)); state.SendPriv(victim.Nick, String.Format(Messages.Play_EResultPriv, vc, player, pc)); state.NextTopCard = null; }
public override void OnPlay(State state, Player player) { state.Send(this + "\u000f | " + String.Format(Messages.Expl_E, player)); state.NextTurnPush = 0; }
public override void OnPlay(State state, Player player) { state.Send(String.Format(Messages.DrawsFour, state.Players.Next)); state.DealCards(state.Players.Next, 4); }
public override void OnPlay(State state, Player player) { state.NextTurnPush = 2; state.Send(String.Format(Messages.PlayS, state.Players.Next)); }
public override void OnPlay(State state, Player player) { state.Send(Messages.PlayR); state.Players.Reverse(); }