Beispiel #1
0
        public DDZPlayerHeadPlugin Awake(GameObject panel)
        {
            this.panel = panel;

            _rf = this.panel.GetComponent <ReferenceCollector>();

            this.GamersDic = new Dictionary <int, DDZGamer>();

            GamersPanel = new Dictionary <int, GameObject>();

            for (int i = 0; i < 3; i++)
            {
                this.GamersPanel[i] = _rf.Get <GameObject>("PlayerPosition" + i);

                this.GamersPanel[i].SetActive(false);
            }

            for (int i = 0; i < 3; i++)
            {
                DDZGamer gamer = DDZUIFactory.gamer.Create(0, i, this);

                GamersDic[i] = gamer;

                gamer.GetComponent <DDZGamerUIComponent>().SetPanel(GamersPanel[i], i);
            }

            return(this);
        }
Beispiel #2
0
        /// <summary>
        /// 设置自己的UI
        /// </summary>
        public void SetMyUserVO()
        {
            var userVO = DataCenterComponent.Instance.userInfo.getMyUserVo();

            DDZGamer myGamer = GamersDic[0];

            myGamer.GetComponent <DDZGamerUIComponent>().SetPlayerUI(userVO);
        }
Beispiel #3
0
        /// <summary>
        /// 设置玩家的手牌数目
        /// </summary>
        /// <param name="seatId"></param>
        /// <param name="cardNum"></param>
        public void SetCardNum(int seatId, int cardNum)
        {
            int realSeatId = DDZGameHelper.ChangeSeat(seatId);

            DDZGamer gamer = GamersDic[realSeatId];

            gamer.GetComponent <DDZGamerUIComponent>().SetCardNum(cardNum);
        }
Beispiel #4
0
        /// <summary>
        /// 清除座位玩家UI
        /// </summary>
        public void ClearOnSeatPlayer()
        {
            for (int i = 0; i < 3; i++)
            {
                DDZGamer gamer = GamersDic[i];

                gamer.GetComponent <DDZGamerUIComponent>().Reset();
            }
        }
Beispiel #5
0
        /// <summary>
        /// 清除所有玩家高亮效果
        /// </summary>
        public void ClearAllActivePlayerIcon()
        {
            for (int i = 0; i < 3; i++)
            {
                DDZGamer gamer = GamersDic[i];

                gamer.GetComponent <DDZGamerUIComponent>().SetActivePlayerIcon(false);
            }
        }
Beispiel #6
0
        /// <summary>
        /// 清除指定的时钟
        /// </summary>
        /// <param name="seatId"></param>
        public void ClearClockByID(int seatId)
        {
            if (seatId > -1)
            {
                DDZGamer gamer = GamersDic[seatId];

                gamer.GetComponent <DDZGamerUIComponent>().Clock.SetActive(false);
            }
        }
Beispiel #7
0
        /// <summary>
        /// 清除所有地主头像
        /// </summary>
        public void ClearAllLordHeadIcon()
        {
            for (int i = 0; i < 3; i++)
            {
                DDZGamer gamer = GamersDic[i];

                gamer.GetComponent <DDZGamerUIComponent>().LandlordFlag.SetActive(false);

                gamer.GetComponent <DDZGamerUIComponent>().SetPlayerLordIcon(false);
            }
        }
Beispiel #8
0
        public DDZGamer Create(long userId, int seatId, Component parent)
        {
            DDZGamer gamer = ComponentFactory.CreateWithParent <DDZGamer>(parent);

            gamer.UserID = userId;

            gamer.SeatID = seatId;

            gamer.AddComponent <DDZGamerUIComponent>();

            return(gamer);
        }
Beispiel #9
0
        /// <summary>
        /// 显示地主标识
        /// </summary>
        /// <param name="seatId"></param>
        public void SetLordHeadIcon(int seatId)
        {
            this.ClearAllLordHeadIcon();

            int realSeatID = DDZGameHelper.ChangeSeat(seatId);

            DDZGamer gamer = GamersDic[realSeatID];

            //gamer.GetComponent<DDZGamerUIComponent>().LandlordFlag.SetActive(true);

            gamer.GetComponent <DDZGamerUIComponent>().SetPlayerLordIcon(true);
        }
Beispiel #10
0
        /// <summary>
        /// 显示玩家高亮效果
        /// </summary>
        /// <param name="seatId"></param>
        public void SetActivePlayerHead(int seatId)
        {
            this.ClearAllActivePlayerIcon();

            int realSeatID = DDZGameHelper.ChangeSeat(seatId);

            if (realSeatID > -1)
            {
                DDZGamer gamer = GamersDic[realSeatID];

                gamer.GetComponent <DDZGamerUIComponent>().SetActivePlayerIcon(true);
            }
        }
Beispiel #11
0
        /// <summary>
        /// 座位玩家UI显示
        /// </summary>
        public void SetOnSeatPlayer()
        {
            this.ClearOnSeatPlayer();

            var _list = DataCenterComponent.Instance.userInfo.getOnSeatUsers();

            for (int i = 0; i < _list.Count; i++)
            {
                var userVo = _list[i];

                int realSeatId = DDZGameHelper.ChangeSeat(userVo.seatID);

                if (realSeatId < 3)
                {
                    DDZGamer gamer = GamersDic[realSeatId];

                    gamer.GetComponent <DDZGamerUIComponent>().SetPlayerUI(userVo);
                }
            }
        }
Beispiel #12
0
        /// <summary>
        /// 斗地主房间结算通知
        /// </summary>
        /// <param name="resp"></param>
        public async void DDZhSettlement_Req_Ntt(Actor_DDZhSettlement_Req_Ntt resp)
        {
            DDZGameHelper.IsStartGame = false;

            DDZGameHelper.settle = resp;

            //摊牌
            var showHandData = resp.ShowHand.ToList();

            this.DDZOutCardPlugin.ShowHand(showHandData);

            //将手牌全部清掉
            this.DDZHandCardPlugin.Reset();

            //清除操作提示

            this.DDZOpTipPlugin.Reset();

            //刷新所有玩家数据
            if (DDZGameHelper.settle != null)
            {
                foreach (var item in DDZGameHelper.settle.PlayerData)
                {
                    var vo = DataCenterComponent.Instance.userInfo.getUserByUserID(item.UserId);

                    if (vo != null)
                    {
                        vo.gold = item.Gold;

                        vo.score = (int)item.Score;
                    }
                }
            }

            //刷新座位玩家
            DDZPlayerHeadPlugin.SetOnSeatPlayer();

            //播放角色胜利失败特效

            await Task.Delay(500);

            int lordID = DDZGameHelper.ChangeSeat(DDZGameConfigComponent.Instance.LordID);

            var myVO = DataCenterComponent.Instance.userInfo.getMyUserVo();

            /*
             * if (lordID == 0)
             * {
             *  //如果我是地主
             *
             *  if (myVO.score > 0)
             *  {
             *      this.DDZFXLayerPlugin.PlayFX(DDZ_FX_TYPE.LordWin, 0);
             *  }
             *  else
             *  {
             *      this.DDZFXLayerPlugin.PlayFX(DDZ_FX_TYPE.LordLost, 0);
             *  }
             * }
             * else
             * {
             *  //如果我是农民
             *
             *  if (myVO.score > 0)
             *  {
             *      this.DDZFXLayerPlugin.PlayFX(DDZ_FX_TYPE.NMWin, 0);
             *  }
             *  else
             *  {
             *      this.DDZFXLayerPlugin.PlayFX(DDZ_FX_TYPE.NMLost, 0);
             *  }
             * }
             */

            //根据玩家的分数情况,切换至对应的胜利,失败状态

            if (DDZGameHelper.settle != null)
            {
                foreach (var item in DDZGameHelper.settle.PlayerData)
                {
                    var playerData = item;

                    int realSeatID = DDZGameHelper.ChangeSeat(playerData.ChairId);

                    DDZGamer gamer = DDZPlayerHeadPlugin.GamersDic[realSeatID];

                    if (playerData.Score > 0)
                    {
                        gamer.GetComponent <DDZGamerUIComponent>().SetHeadTransformByIndex(1);
                    }
                    else
                    {
                        gamer.GetComponent <DDZGamerUIComponent>().SetHeadTransformByIndex(2);
                    }
                }
            }


            //显示结算界面
            if (DDZGameHelper.IsJoinRoom)
            {
                await Task.Delay(3000);

                DDZUIFactory.overPanel.Create();
            }
        }