Beispiel #1
0
        /// <summary>
        /// 提示
        /// </summary>
        private async void OnPrompt()
        {
            long     playerId = ClientComponent.Instance.LocalPlayer.Id;
            PromptRe promptRE = await SessionComponent.Instance.Session.Call <PromptRe>(new PromptRt()
            {
                PlayerId = playerId
            });

            HandCardsComponent handCards = this.Entity.Parent.GetComponent <GamerComponent>().LocalGamer.GetComponent <HandCardsComponent>();

            //清空当前选中
            while (currentSelectCards.Count > 0)
            {
                Card selectCard = currentSelectCards[currentSelectCards.Count - 1];
                handCards.GetSprite(selectCard).GetComponent <HandCardSprite>().OnClick(null);
            }

            //自动选中提示出牌
            if (promptRE.Cards != null)
            {
                for (int i = 0; i < promptRE.Cards.Length; i++)
                {
                    handCards.GetSprite(promptRE.Cards[i]).GetComponent <HandCardSprite>().OnClick(null);
                }
            }
        }
Beispiel #2
0
        public static async void Update(this AutoPlayCardsComponent self)
        {
            if (!self.Playing)
            {
                OrderControllerComponent orderController = self.GamerRoom.GetComponent <OrderControllerComponent>();
                if (self.Entity.Id == orderController.CurrentAuthority)
                {
                    self.Playing = true;
                    await Game.Scene.GetComponent <TimerComponent>().WaitAsync(1000);

                    ActorProxy actorProxy = Game.Scene.GetComponent <ActorProxyComponent>().Get(self.GamerRoom.Id);
                    //当还没抢地主时随机抢地主
                    if (self.Entity.GetComponent <HandCardsComponent>().AccessIdentity == Identity.None)
                    {
                        int randomSelect = RandomHelper.RandomNumber(0, 2);
                        actorProxy.Send(new GrabLordSelect()
                        {
                            PlayerId = self.Entity.Id, IsGrab = randomSelect == 0
                        });
                        self.Playing = false;
                        return;
                    }

                    PromptRe promptRE = await actorProxy.Call <PromptRe>(new PromptRt()
                    {
                        PlayerId = self.Entity.Id
                    });

                    if (promptRE.Error > 0 || promptRE.Cards == null)
                    {
                        actorProxy.Send(new Discard()
                        {
                            PlayerId = self.Entity.Id
                        });
                    }
                    else
                    {
                        await actorProxy.Call <PlayCardsRe>(new PlayCardsRt()
                        {
                            PlayerId = self.Entity.Id, Cards = promptRE.Cards
                        });
                    }
                    self.Playing = false;
                }
            }
        }