コード例 #1
0
ファイル: CardMgr.cs プロジェクト: Los-Ojos/DOLSharp-1127
        /* Players discards entire hand, returning to the bottom of group's deck */
        public static void DiscardAll(GameClient player)
        {
            GameClient Dealer = null;
            DealerDeck deck   = null;

            if (!IsPlayer(player))
            {
                return;
            }

            if ((Dealer = GroupDealer(player)) != null)
            {
                deck = (DealerDeck)m_dealerDecks[Dealer.Player.ObjectId];
            }

            foreach (Card c in (m_playerHands[player.Player.ObjectId] as PlayerHand).DiscardAll())
            {
                if (deck != null && c.Dealer == Dealer)
                {
                    deck.ReturnCard(c);
                }
            }

            return;
        }
コード例 #2
0
ファイル: CardMgr.cs プロジェクト: Los-Ojos/DOLSharp-1127
        /* Makes the player the group dealer and prepares the decks */
        /* A new shuffle causes all group members to discard their hands */
        public static void Shuffle(GameClient player, uint numDecks)
        {
            if (player.Player.Group == null)
            {
                player.Out.SendMessage("You must have a group to play cards!", eChatType.CT_System, eChatLoc.CL_SystemWindow);
                return;
            }

            GameClient Dealer = GroupDealer(player);
            DealerDeck newDecks;

            /* First clear out any previous decks for the group */
            if (Dealer != null)
            {
                QuitDealing(Dealer);
            }

            newDecks = new DealerDeck();
            if (!newDecks.Init(player, numDecks))
            {
                return;
            }
            try
            {
                if (player.Player.Group == null)
                {
                    return;
                }

                m_dealerDecks.Add(player.Player.ObjectId, newDecks);
                foreach (GamePlayer Groupee in player.Player.Group.GetPlayersInTheGroup())
                {
                    DiscardAll(Groupee.Client);
                    if (Groupee == player.Player)
                    {
                        player.Out.SendMessage("You shuffle " + numDecks + (numDecks > 1 ? " decks " : " deck ") + "of cards.", eChatType.CT_Emote, eChatLoc.CL_SystemWindow);
                    }
                    else
                    {
                        Groupee.Client.Out.SendMessage(player.Player.Name + " shuffles " + numDecks + (numDecks > 1 ? " decks " : " deck ") + "of cards.", eChatType.CT_Emote, eChatLoc.CL_SystemWindow);
                    }
                }
            }
            catch (Exception)
            {
                return;
            }
        }
コード例 #3
0
ファイル: CardMgr.cs プロジェクト: boscorillium/dol
        /* Makes the player the group dealer and prepares the decks */
        /* A new shuffle causes all group members to discard their hands */
        public static void Shuffle(GameClient player, uint numDecks)
        {
            if (player.Player.Group == null)
            {
                player.Out.SendMessage("You must have a group to play cards!", eChatType.CT_System, eChatLoc.CL_SystemWindow);
                return;
            }

            GameClient Dealer = GroupDealer(player);
            DealerDeck newDecks;

            /* First clear out any previous decks for the group */
            if(Dealer != null)
            {
                QuitDealing(Dealer);
            }

            newDecks = new DealerDeck();
            if(!newDecks.Init(player, numDecks)) { return; }
            try
            {
                if (player.Player.Group == null) return;
                m_dealerDecks.Add(player.Player.DBCharacter.ObjectId, newDecks);
                foreach (GamePlayer Groupee in player.Player.Group.GetPlayersInTheGroup())
                {
                    DiscardAll(Groupee.Client);
                    if (Groupee == player.Player) player.Out.SendMessage("You shuffle " + numDecks + (numDecks > 1 ? " decks " : " deck ") + "of cards.", eChatType.CT_Emote, eChatLoc.CL_SystemWindow);
                    else Groupee.Client.Out.SendMessage(player.Player.Name + " shuffles " + numDecks + (numDecks > 1 ? " decks " : " deck ") + "of cards.", eChatType.CT_Emote, eChatLoc.CL_SystemWindow);
                }
            }
            catch(Exception)
            {
                return;
            }
        }