/// <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); } } }
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; } } }