示例#1
0
    public GameObject PlayJiefengTween(Transform tweenPos, Transform parent, EPlayerPositionType posType)
    {
        //Vector3 initPos = Vector3.zero;
        //Vector3 targetPos = Vector3.zero;
        //switch (posType)
        //{
        //    case EPlayerPositionType.ELeft:
        //        initPos = new Vector3(750, 0, 0);
        //        targetPos = Vector3.zero;
        //        break;
        //    case EPlayerPositionType.ERight:
        //        initPos = new Vector3(-750, 0, 0);
        //        targetPos = Vector3.zero;
        //        break;
        //    case EPlayerPositionType.ESelf: //自己接风的情况,对面接风数字票到自己身上
        //        initPos = new Vector3(0, 460, 0);
        //        targetPos = Vector3.zero;
        //        break;
        //    case EPlayerPositionType.ETop:
        //        initPos = new Vector3(0, -400, 0);
        //        targetPos = Vector3.zero;
        //        break;
        //}
        string     path    = GlobalData.mLocalViewAnimationPath + "AnimCardType";
        GameObject jiefeng = GetBoomAnimGm(parent, path);

        PlayPlayingAnim(jiefeng, "jiefeng");
        return(jiefeng);
    }
示例#2
0
 void CheckPlayjiefengTween(bool isJiefeng, EPlayerPositionType posType)
 {
     if (isJiefeng)
     {
         TweenManager.Instance.PlayJiefengTween(playingView.GetCardsParentPosContainer(posType), playingView.GetLightParentPosContainer(posType), posType);
     }
 }
示例#3
0
    Image voiceTweenSpr;//有spr 有动画 有语音 三个组件
    //public void Start()
    //{
    //    StartCoroutine(WaitOneDelta("有动画 有语音 三个组件"));
    //}
    public IEnumerator WaitOneDelta(string text = null, string voiceName = null, EPlayerPositionType type = EPlayerPositionType.ELeft)
    {
        messageLab.text = text;
        yield return(null);

        //获取其中的另一个对象
        Image bg   = messageLab.transform.parent.GetComponent <Image>();
        float time = 3.0f;//3秒后销毁自己

        //emoticonSpr.gameObject.SetActive(emoticonname != null);
        messageLab.gameObject.SetActive(text != null && text.Length > 0);
        voiceTweenSpr.gameObject.SetActive(voiceName != null);
        Debug.Log("chat开始位置:" + transform.localPosition);
        //整体旋转
        if (type == EPlayerPositionType.ERight)
        {
            messageLab.transform.rotation = Quaternion.Euler(Vector3.up * 180);
            this.transform.rotation       = Quaternion.Euler(Vector3.up * 180);
        }
        if (text != null)
        {
            //为了显示的效果,根据不同的位置进行调整
            RectTransform rectTrans = bg.GetComponent <RectTransform>();
            rectTrans.sizeDelta = new Vector2(messageLab.rectTransform.rect.width + 50, 61);
            bg.GetComponent <RectTransform>().anchoredPosition = new Vector3(messageLab.rectTransform.rect.width / 2 + 77, 30);
            Debug.Log("chat结束位置:" + transform.localPosition);
            if (type == EPlayerPositionType.ETop)
            {
                bg.GetComponent <RectTransform>().anchoredPosition -= new Vector2(0, 10);
            }
        }
        StartCoroutine(DestroySelf(time, type));
    }
示例#4
0
    void ShowResetCardNum(EPlayerPositionType type, GameObject m, int count)
    {
        m.SetActive(count <= 10 ? true : false);
        if (count <= 10)
        {
            if (!warningPlayerDic[type])
            {
                if (type == EPlayerPositionType.ESelf)
                {
                    AudioManager.Instance.PlayWarningAudio(); //声音只响一次
                }
                warningPlayerDic[type] = true;
            }

            if (count == 0)
            {
                m.SetActive(false);
            }
        }

        if (m.activeSelf)
        {
            m.transform.GetChild(0).GetComponent <Text>().text = count.ToString();
        }
    }
示例#5
0
    void SetArrowPlayer(EPlayerPositionType posType)
    {
        if (!(PlayingGameInfo.Instance.mPlayingStatus == EPlayingStatus.ETribute))
        {
            CheckOpenClock();
        }
        clockObj.GetComponent <ClockRun>().ResetStartRun(posType);
        switch (posType)
        {
        case EPlayerPositionType.ESelf:
            clockSpr.transform.localPosition = new Vector3(0, -50, 0);
            break;

        case EPlayerPositionType.ETop:
            clockSpr.transform.localPosition = new Vector3(0, 50, 0);
            break;

        case EPlayerPositionType.ELeft:
            clockSpr.transform.localPosition = new Vector3(-425, 25, 0);
            break;

        case EPlayerPositionType.ERight:
            clockSpr.transform.localPosition = new Vector3(400, 25, 0);
            break;
        }
    }
示例#6
0
    /// <summary>
    /// 根据对象名字中带有的left等位置信息判断位置,获取对应的id
    /// </summary>
    /// <param name="gmName"></param>
    /// <returns></returns>
    public uint GetIdByName(string gmName)
    {
        EPlayerPositionType nowPos = EPlayerPositionType.ENull;

        Debug.Log("当前点击的头像名:——————————" + gmName);
        if (gmName.ToLower().Contains("left"))
        {
            nowPos = EPlayerPositionType.ELeft;
            return((uint)RoomInfo.Instance.mPlayersDic[nowPos].player_id);
        }
        else if (gmName.ToLower().Contains("right"))
        {
            nowPos = EPlayerPositionType.ERight;
            return((uint)RoomInfo.Instance.mPlayersDic[nowPos].player_id);
        }
        else if (gmName.ToLower().Contains("top"))
        {
            nowPos = EPlayerPositionType.ETop;
            return((uint)RoomInfo.Instance.mPlayersDic[nowPos].player_id);
        }
        else
        {
            nowPos = EPlayerPositionType.ESelf;
            return((uint)PlayerInfo.Instance.mPlayerPid);
        }
    }
示例#7
0
    public MsgPlayerInfo GetPlayerInfoByPos(EPlayerPositionType posType)
    {
        foreach (var value in playersDic)
        {
            if (value.Value != null)
            {
                if (value.Key == posType)
                {
                    return(value.Value);
                }
            }
        }

        if (EPlayerPositionType.ESelf == posType)
        {
            MsgPlayerInfo playerInfo = new MsgPlayerInfo();
            playerInfo.head_portrait = PlayerInfo.Instance.mPlayerData.headPortrait;
            playerInfo.money         = (uint)PlayerInfo.Instance.mPlayerData.money;
            playerInfo.name          = PlayerInfo.Instance.mPlayerData.name;
            playerInfo.player_id     = (uint)PlayerInfo.Instance.mPlayerData.pid;
            playerInfo.teamType      = (int)EPlayersTeam.ETeamA;
            return(playerInfo);
        }

        return(null);
    }
示例#8
0
    void UseTalk(LocalNotification e)
    {
        if (e == null)
        {
            Debug.LogError("语音为空");
            return;
        }

        ArgsTalk args = e.param as ArgsTalk;

        Debug.Log("玩家" + args.talkPid + "正在发送语音");
        EPlayerPositionType type = EPlayerPositionType.ENull;

        if (args.talkPid == PlayerInfo.Instance.mPlayerPid)
        {
            type = EPlayerPositionType.ESelf;
        }
        else
        {
            type = RoomInfo.Instance.GetPlayerPosById(args.talkPid);
        }

        GameObject gm = UIManagers.Instance.GetSingleUI(UIType.ChatMessageTip);

        gm.transform.localScale = Vector3.one;
        gm.transform.SetParent(GetHeadPos(type));
        gm.transform.localPosition = Vector3.zero;
        PlayerInfo.Instance.AddNewEmoticon(type, gm, false);
        if (args.voiceName != null && args.voiceName.Length != 0)
        {
            StartCoroutine(gm.GetComponent <UIChatMessagTipView>().WaitOneDelta(null, args.voiceName, type));
        }
    }
示例#9
0
    public void PlayKangGongTributeTween(EPlayerPositionType posType)
    {
        #region spr设置开始位置和结束位置
        float endValue      = 0;
        bool  isLeftOrRight = false;
        bool  isSelfOrTop   = false;

        Sequence mySequence = DOTween.Sequence();
        se = mySequence;
        SetSprName("card_0_17", true);
        if (posType == EPlayerPositionType.ETop)
        {
            spr.transform.localPosition = new Vector3(0, 130, 0);
            endValue    = -100;
            isSelfOrTop = true;
        }
        else if (posType == EPlayerPositionType.ESelf)
        {
            spr.transform.localPosition = new Vector3(0, -200, 0);
            endValue    = 0;
            isSelfOrTop = true;
        }
        else if (posType == EPlayerPositionType.ELeft)
        {
            spr.transform.localPosition = new Vector3(-300, 0);
            endValue      = 100;
            isLeftOrRight = true;
        }
        else if (posType == EPlayerPositionType.ERight)
        {
            spr.transform.localPosition = new Vector3(300, 0);
            endValue      = -100;
            isLeftOrRight = true;
        }
        #endregion
        #region -------------大王移动

        float duration = 0.25f;
        if (isLeftOrRight)
        {
            mySequence.Append(spr.transform.DOLocalMoveX(endValue, duration * 4f)).SetEase(Ease.OutQuad);
        }
        else if (isSelfOrTop)
        {
            mySequence.Append(spr.transform.DOLocalMoveY(endValue, duration * 4)).SetEase(Ease.OutQuad);
        }
        //抗贡字
        mySequence.Append(DOTween.ToAlpha(() => spr.color, x => spr.color = x, 0, 0.5f));
        mySequence.AppendCallback(
            delegate
        {
            SetSprName("pk_kanggong");
        });
        mySequence.Append(DOTween.ToAlpha(() => spr.color, x => spr.color = x, 1, 0.5f));
        mySequence.AppendInterval(0.7f);
        mySequence.AppendCallback(delegate { Destroy(this.gameObject); });

        mySequence.Play();
        #endregion
    }
示例#10
0
    private Vector3 GetLightCardEndPos(bool isSamePlayer, EPlayerPositionType type, Transform item)
    {
        //1,8为阴影误差
        Vector2 size   = item.GetComponent <RectTransform>().rect.size;
        Vector3 endPos = new Vector3();

        switch (type)
        {
        case EPlayerPositionType.ESelf:
        case EPlayerPositionType.ETop:
        case EPlayerPositionType.ELeft:
            float endX = -50 + 62 / 2 / 2 + 8;    //parent.width/2+card.width/2/2[scale原来的0.5]
            float endY = -50 + 70 / 2 / 2 + 8;
            endPos = new Vector3(endX, endY, 0);
            if (isSamePlayer)                    //true了肯定是第二张
            {
                endPos += new Vector3(30, 0, 0); //62 / 2 >>31,35为缩小的扑克牌大小 误差【阴影】为1
            }
            break;

        case EPlayerPositionType.ERight:
            float endXR = /*item.parent.localPosition.x*/ +50 - 62 / 2 / 2 - 8;    //parent.width+card.width/2/2[scale原来的0.5]
            float endYR = /*item.parent.localPosition.y*/ -50 + 70 / 2 / 2 + 8;
            endPos = new Vector3(endXR, endYR, 0);
            if (isSamePlayer)     //true了肯定是第二张
            {
                endPos -= new Vector3(31 - 1, 0, 0);
            }
            break;
        }
        return(endPos);
    }
示例#11
0
    //显示其他人出牌的信息
    void SetOtherData(EPlayerPositionType type, List <uint> list, TGuanDanCT putOutType)
    {
        //为解决 玩家不出的bug
        int lastCardCount = Mathf.Clamp(playerRestCardNum[type] - list.Count, 0, GlobalData.mPlayerOwnCardCount); //(减完当前牌)剩余牌的张数

        SetPlayerCardsPos(type, list, putOutType);
        SetRestCardNum(lastCardCount, type);
    }
示例#12
0
 /// <summary>
 /// 设置自己牌的初始
 /// </summary>
 /// <param name="idx"></param>
 /// <param name="id"></param>
 public void SetCardData(uint id)
 {
     this.mId = id;
     SetName();
     this.posType = EPlayerPositionType.ESelf;
     SetSprName(id, "");
     SwitchStatus(ECardStatus.ENormal);
 }
示例#13
0
 public void RemoveEmoticonGmFormDic(EPlayerPositionType pos)
 {
     if (dicEmoticonPos.ContainsKey(pos))
     {
         GameObject.Destroy(dicEmoticonPos[pos]);//删除当前的表情
         dicEmoticonPos[pos] = null;
     }
 }
示例#14
0
    private void TweenLightCard()
    {
        uint lightCardId     = PlayingGameInfo.Instance.mGameInfo.light_card;
        var  lightPlayerList = PlayingGameInfo.Instance.mGameInfo.light_player_id;

        Debug.Log("Show Light Card:" + lightCardId + "人数:" + lightPlayerList.Count);
        if (lightPlayerList.Count == 0) //没有亮牌
        {
            ShowStartGameBtn();
            return;
        }
        else
        {
            GameObject singleCardPrefab = ResourceManager.Instance.LoadAsset <GameObject>(UIType.SingleCard.Path);
            int        listCardCount    = 1;
            //转蛋模式 和 掼蛋第一局 有明牌
            if (RoomInfo.Instance.IsZhuandanGameType)
            {
                listCardCount = 2;
            }
            else if (PlayingGameInfo.Instance.mGameInfo.game_index == 1)
            {
                listCardCount = 1;
            }

            //一个人有两张明牌的情况
            bool isSamePlayerLight = false;

            //listCardCount = 2;//测试
            //烟雾也用的这个位置
            float posY = 180 - 90 / 2 + 72 / 2;//头像位置y轴-头像height/2+card的Height/2
            for (int i = 0; i < listCardCount; i++)
            {
                if (i == 1)
                {
                    isSamePlayerLight = lightPlayerList.Count == 1;
                }

                ulong curPlayerId               = isSamePlayerLight ? lightPlayerList[0] : lightPlayerList[i];
                EPlayerPositionType playerPos   = RoomInfo.Instance.GetPlayerPositionType(curPlayerId);
                GameObject          playerPosGm = GoldFiledManager.Instance.GetPlayerPosGameobject(playerPos);
                GameObject          item        = GameObject.Instantiate(singleCardPrefab, this.transform);

                item.transform.localScale = Vector3.one;

                float posX = i == 0 ? -31 : 31;//small 的宽度62/2
                if (listCardCount == 1)
                {
                    posX = 0;                    //掼蛋一张明牌的时候位置为0
                }
                item.transform.localPosition = new Vector3(posX, posY, 0);

                item = SetLightCardInfo(lightCardId, item, playerPosGm.transform);
                Vector3 itemEndPos = GetLightCardEndPos(isSamePlayerLight, playerPos, item.transform);
                StartLightCardTween(item, itemEndPos);
            }
        }
    }
示例#15
0
    public void PlayKangGongTween(Transform parent, EPlayerPositionType posType)
    {
        GameObject item = GameObject.Instantiate(ResourceManager.Instance.LoadAsset <GameObject>("PlayingCardTween"));

        item.transform.SetParent(parent);
        UIPlayingCardTween itemTween = item.GetComponent <UIPlayingCardTween>();

        itemTween.PlayKangGongTributeTween(posType);//删除了一个参数
    }
示例#16
0
 public void ResetStartRun(EPlayerPositionType type)
 {
     if (this.curPosTYpe != type)
     {
         curTime    = 0;
         startRunId = 1;
         frameCount = 0;
     }
     this.curPosTYpe = type;
 }
示例#17
0
 public void AddPlayerPosGMToDic(EPlayerPositionType pos, GameObject posGm)
 {
     if (dicPlayerPosGm.ContainsKey(pos))
     {
         mDicPlayerPosGm[pos] = posGm;
     }
     else
     {
         mDicPlayerPosGm.Add(pos, posGm);
     }
 }
示例#18
0
 public GameObject GetPlayerPosGameobject(EPlayerPositionType playerPosType)
 {
     foreach (var v in dicPlayerPosGm)
     {
         if (v.Key == playerPosType)
         {
             return(v.Value);
         }
     }
     return(null);
 }
示例#19
0
    /// <summary>
    /// 不出,缩放效果
    /// </summary>
    public void PlayOtherOutTween(EPlayerPositionType PosType)
    {
        Vector3  targetScale = Vector3.one;
        float    tweenTime   = 0.25f;
        Sequence mySequence  = DOTween.Sequence();

        //Scale
        mySequence.Append(this.transform.DOScale(targetScale * 0.5f, tweenTime)).SetEase(Ease.OutCubic);  //放大
        mySequence.Append(this.transform.DOScale(targetScale * GlobalData.mPutOutCardRate, tweenTime));
        mySequence.Play();
    }
示例#20
0
    public void DestroyEmoticon(GameObject emoticonTweenGm, EPlayerPositionType type)
    {
        se = DOTween.Sequence();
        float destroyTime = TweenManager.Instance.GetAnimatorTime(emoticonTweenGm, "play");

        se.AppendInterval(destroyTime * 2);
        se.AppendCallback(delegate
        {
            RemoveEmoticonGmFormDic(type);
            se = null;
        });
    }
示例#21
0
 void CopyClass(MsgPlayerInfo info, EPlayerPositionType posType)
 {
     if (playersDic[posType] == null)
     {
         return;
     }
     info.head_portrait = playersDic[posType].head_portrait;
     info.money         = playersDic[posType].money;
     info.name          = playersDic[posType].name;
     info.player_id     = playersDic[posType].player_id;
     info.sex           = playersDic[posType].sex;
     info.teamType      = playersDic[posType].teamType;
 }
示例#22
0
    void UseEmoticon(LocalNotification e)
    {
        Debug.Log("表情发送成功");
        if (e == null)
        {
            return;
        }
        ArgsEmoticonInfo    args = e.param as ArgsEmoticonInfo;
        EPlayerPositionType type = EPlayerPositionType.ENull;

        //表情
        if (args.action_id == PlayerInfo.Instance.mPlayerPid)
        {
            type = EPlayerPositionType.ESelf;
        }
        else
        {
            type = RoomInfo.Instance.GetPlayerPosById(args.action_id);
        }
        if (args.emoticonId != 0)
        {
            GameObject emoticonTweenGm = GameObject.Instantiate(ResourceManager.Instance.LoadAsset <GameObject>(GlobalData.mLocalEmoticonPrefabPath + TweenManager.Instance.GetEmotcionPrefabName(args.emoticonId)));
            emoticonTweenGm.name = TweenManager.Instance.GetEmotcionPrefabName(args.emoticonId);
            if (args.action_id == PlayerInfo.Instance.mPlayerPid)
            {
                type = EPlayerPositionType.ESelf;
                emoticonTweenGm.transform.SetParent(selfHeadSpr.transform);
            }
            else
            {
                emoticonTweenGm.transform.SetParent(this.GetHeadPos(type));
            }
            emoticonTweenGm.transform.localScale    = Vector3.one * 0.6f;
            emoticonTweenGm.transform.localPosition = Vector3.zero + new Vector3(0, -13, 0);
            PlayerInfo.Instance.AddNewEmoticon(type, emoticonTweenGm, true);
            TweenManager.Instance.mEmoticonList.Add(emoticonTweenGm);
            return;
        }
        //语音和文字
        GameObject gm = UIManagers.Instance.GetSingleUI(UIType.ChatMessageTip);

        gm.transform.localScale = Vector3.one;
        gm.transform.SetParent(GetHeadPos(type));
        gm.transform.localPosition = Vector3.zero;
        PlayerInfo.Instance.AddNewEmoticon(type, gm, false);
        if (args.message != null && args.message.Length != 0)
        {
            StartCoroutine(gm.GetComponent <UIChatMessagTipView>().WaitOneDelta(args.message, null, type));
        }
    }
示例#23
0
    void RemovePlayerToNull(uint id)
    {
        EPlayerPositionType tempType = EPlayerPositionType.ENull;

        foreach (var t in playersDic)
        {
            if (t.Value != null && t.Value.player_id == id)
            {
                tempType = t.Key;
            }
        }

        playersDic[tempType] = null;
    }
示例#24
0
 public void AddLastCleanPlayerDic(EPlayerPositionType type)
 {
     if (lastCleanPlayerInfoDic == null)
     {
         lastCleanPlayerInfoDic = new Dictionary <EPlayerPositionType, LastCleanPlayerInfomation>();
     }
     if (!lastCleanPlayerInfoDic.ContainsKey(type))
     {
         LastCleanPlayerInfomation info = new LastCleanPlayerInfomation();
         info.idx          = 1;
         info.totaIdxTimes = 4 - lastCleanPlayerInfoDic.Count;
         lastCleanPlayerInfoDic.Add(type, info);
     }
 }
示例#25
0
    int GetInitDepthByPlayerPosition(EPlayerPositionType type)
    {
        switch (type)
        {
        case EPlayerPositionType.ERight:
            return(10);

        case EPlayerPositionType.ETop:
            return(20);

        case EPlayerPositionType.ELeft:
            return(30);
        }
        return(20);
    }
示例#26
0
    public Transform GetCardsParentPosContainer(EPlayerPositionType type)
    {
        switch (type)
        {
        case EPlayerPositionType.ELeft:
            return(playerPosLeft);

        case EPlayerPositionType.ERight:
            return(playerPosRight);

        case EPlayerPositionType.ETop:
            return(playerPosTop);
        }
        return(playerPosRight);
    }
示例#27
0
    public EAudioStyle GetPlayerAudioStyleByPlayerPos(EPlayerPositionType type)
    {
        foreach (var v in playersDic)
        {
            if (v.Key == type)
            {
                return(v.Value.sex == 1 ? EAudioStyle.ENormalMan : EAudioStyle.ENormalWoman);
            }
        }

        if (type == EPlayerPositionType.ESelf)
        {
            return(PlayerInfo.Instance.GetSexIsMan ? EAudioStyle.ENormalMan : EAudioStyle.ENormalWoman);
        }
        return(EAudioStyle.ENormalWoman);
    }
示例#28
0
    /// <summary>
    /// 用于单纯同步数据
    /// </summary>
    /// <param name="type"></param>
    /// <param name="list"></param>
    void RefreshPlayerCards(EPlayerPositionType type, List <uint> list, bool isLast)
    {
        ClearPutOutingCard(type);
        Transform parentContainer = GetCardsParentPosContainer(type);
        float     PosY            = 0;

        if (EPlayerPositionType.ESelf == type)
        {
            PosY = GlobalData.mSelectCardToTargetPos.y;
        }
        else if (EPlayerPositionType.ERight == type && isLast)
        {
            PosY = -100;
        }

        List <SingleCard> singleCardList = new List <SingleCard>();

        if (list.Count > 0)
        {
            int count = list.Count;
            for (int i = 0; i < count; i++)
            {
                GameObject item = GameObject.Instantiate(singleCardPrefab) as GameObject;
                item.transform.SetParent(parentContainer);
                item.transform.localPosition = new Vector3(GetOtherCardsPos(type, i, count).x, PosY, 0);
                item.transform.localScale    = isLast ? Vector3.one * 0.5f : Vector3.one;
                SingleCard singleCard = item.transform.GetComponent <SingleCard>();
                singleCard.SetOtherData(list[i], type, true);
                singleCardList.Add(singleCard);
            }
        }
        else
        {
            GameObject item = GameObject.Instantiate(singleCardPrefab) as GameObject;
            item.transform.SetParent(parentContainer);
            item.transform.localPosition = new Vector3(GetOtherCardsPos(type, 0, 1).x, PosY, 0);
            item.transform.localScale    = isLast ? Vector3.one * 0.5f : Vector3.one;
            SingleCard singleCard = item.transform.GetComponent <SingleCard>();
            singleCard.SetOtherData(GlobalData.mRefuseCardNumId, type, true);
        }
        if (isLast)
        {
            List <List <SingleCard> > cardDic = new List <List <SingleCard> >();
            SelfCardsManager.Instance.InitRefreshRealCardDic(singleCardList, cardDic);
            SetLastCardPosAndDepth(cardDic); // 刷新底部牌
        }
    }
示例#29
0
    void ShowOffLinePlayer(EPlayerPositionType posType)
    {
        switch (posType)
        {
        case EPlayerPositionType.ELeft:
            leftHeadSpr.transform.GetChild(1).gameObject.SetActive(true);
            break;

        case EPlayerPositionType.ERight:
            rightHeadSpr.transform.GetChild(1).gameObject.SetActive(true);
            break;

        case EPlayerPositionType.ETop:
            topHeadSpr.transform.GetChild(1).gameObject.SetActive(true);
            break;
        }
    }
示例#30
0
 /// <summary>
 /// 获取当前玩家上家是否是游,如果是,则返回上家Pos
 /// </summary>
 /// <param name="curPosType"></param>
 /// <returns></returns>
 public EPlayerPositionType GetNeedLastClearOutCards(EPlayerPositionType curPosType)
 {
     if (IsHavePlayerGameClean())
     {
         int posId = (int)curPosType;
         posId++;
         if (posId > 4)
         {
             posId = 1;
         }
         if (lastCleanPlayerInfoDic.ContainsKey((EPlayerPositionType)posId))
         {
             return((EPlayerPositionType)posId);
         }
     }
     return(curPosType);
 }