示例#1
0
        private void DealCards()
        {
            Dictionary <int, List <int> > result = _dealer.Deal(_playerList.Count);

            foreach (var kv in result)
            {
                _ddzGameData.PlayerInfoDic[kv.Key].Handcards = kv.Value;
            }

            DealCard msg = new DealCard();

            for (int i = 0; i < _playerList.Count; i++)
            {
                msg.StartSeat = 0;
                msg.HandCards.Clear();
                foreach (var cardId in _ddzGameData.PlayerInfoDic[i].Handcards)
                {
                    msg.HandCards.Add(cardId);
                }

                foreach (var playerInfo in _ddzGameData.PlayerInfoDic)
                {
                    msg.LeftCardNum.Add(playerInfo.Value.Handcards.Count);
                }

                msg.ThinkTime = 20;
                msg.StartSeat = 0;

                SendMsgToClient(_playerList[i], MessageDefine.G2C_DEAL_CARDS, msg);
            }
        }
示例#2
0
    //Rune hooks for the play area
    public void DealRune(Rune rune, Action action)
    {
        DealCard   dc     = rune as DealCard;
        Controller player = EntityManager.Singelton.GetEntity(dc.controller_uid) as Controller;

        if (player == null)
        {
            Debug.Log("Could not find controller in EntityManager, bad Guid");
            action();
            return;
        }

        Card card = EntityManager.Singelton.GetEntity(dc.card_uid) as Card;

        if (card == null)
        {
            Debug.Log("Could not find card in EntityManager, bad Guid " + dc.card_uid);
            action();
            return;
        }
        float yPos = 0;

        if (dc.controller_uid == homeGuid)
        {
            yPos = -2.0f;
        }
        else if (dc.controller_uid == awayGuid)
        {
            yPos = 4.0f;
        }

        GameObject go = Resources.Load <GameObject>(CARD_AVATAR_PREFAB_LOCATION);

        go = GameObject.Instantiate(go);

        go.name = card.GetName() + " " + dc.card_uid;
        if (String.IsNullOrEmpty(card.GetName()))
        {
            go.name = "UnknowCard";
        }
        go.transform.position = new Vector3(6, yPos, -3);


        string useGuid = Guid.NewGuid().ToString();


        if (card.GetCardType() == CardType.unknown)
        {
            go.GetComponent <CardAvatar>().SetupBlankCard(useGuid, player.GetGuid());
        }
        else
        {
            go.GetComponent <CardAvatar>().Setup(card, useGuid, player.GetGuid());
        }
        card.SetCardAvatar(go.GetComponent <CardAvatar>());
        go.GetComponent <CardAvatar>().SetControllerGuid(dc.controller_uid);

        EntityManager.Singelton.AddEntity(useGuid, go.GetComponent <CardAvatar>());
        AddCardToHand(go.GetComponent <CardAvatar>(), dc.controller_uid, action);
    }
        public CardInformation GetCard(int deck)
        {
            CardInformation output;

            if (deck <= 24)
            {
                output = new DealCard();
                output.Populate(deck);
                return(output);
            }
            output = new MailCard();
            output.Populate(deck);
            return(output);
        }
示例#4
0
        void IDealProcesses.SetUpDeal()
        {
            var list = _gameContainer.Random.GenerateRandomList(24);

            if (list.Count != 24)
            {
                throw new BasicBlankException($"Must have 24 deal cards, not {list.Count} cards");
            }
            _gameContainer.SaveRoot !.DealListLeft.Clear();
            list.ForEach(index =>
            {
                DealCard thisCard = (DealCard)_gameContainer !.GetCard(index);
                _gameContainer.SaveRoot.DealListLeft.Add(thisCard);
            });
            _gameContainer.SaveRoot.YardSaleDealCard = _gameContainer.SaveRoot.DealListLeft.First();
            _gameContainer.SaveRoot.DealListLeft.RemoveFirstItem();
        }
 private void RemovePlayerDeal(DealCard thisCard)
 {
     _gameContainer.SingleInfo !.Hand.RemoveSpecificItem(thisCard);
     _gameContainer.SaveRoot !.OutCards.Add(thisCard);
 }
示例#6
0
 private async Task CurrentDealList_ObjectClickedAsync(DealCard payLoad, int index)
 {
     await _processes.BuyerSelectedAsync(payLoad.Deck);
 }