Пример #1
0
    /// <summary>
    /// 玩家托管
    /// </summary>
    /// <param name="cType"></param>
    public void PlayerTuoGuan(string uid, bool isTuoguan)
    {
        if (uid == UserInfoModel.userInfo.userId.ToString())
        {
            LandlordsPage.Instance.componentView.OpenTuoGuanView(isTuoguan);
            if (OrderController.Instance.CurInterationType == InterationType.PopCard)
            {
                Interaction.Instance.HideAllBtn();
            }
        }

        LandkirdsHandCardModel cards = LandlordsModel.Instance.GetHandCardMode(uid);

        cards.isTuoguan = isTuoguan;
        if (!isTuoguan &&
            uid == UserInfoModel.userInfo.userId.ToString() &&
            OrderController.Instance.TypeUid == UserInfoModel.userInfo.userId.ToString() && LandlordsModel.Instance.CurWinerIds != null && LandlordsModel.Instance.CurWinerIds.Count == 0)//并且游戏没有结束
        {
            OrderController.Instance.Turn(UserInfoModel.userInfo.userId.ToString(), (int)OrderController.Instance.CurInterationType);
        }

        LandlordsBasePlayer playCard = LandlordsPage.Instance.playView.GetPlayer(uid);

        if (LandlordsModel.Instance.RoomModel.CurRoomInfo.IsMatch)
        {
            playCard.MatchChangeState(false);
        }
        else
        {
            playCard.NoMatchChangeState(false);
        }
    }
Пример #2
0
    /// <summary>
    /// 玩家出牌
    /// </summary>
    /// <param name="cType"></param>
    /// <param name="selectCards"></param>
    /// <param name="selectCardsUI"></param>
    public void PopCard(string uid, List <Card> selectCards)
    {
        LandlordsBasePlayer playCard = LandlordsPage.Instance.playView.GetPlayer(uid);

        PlayCard.Instance.PopCard(uid, selectCards);
        playCard.PopCard(selectCards);
    }
Пример #3
0
    /// <summary>
    /// 加载某个新进入玩家信息
    /// </summary>
    public void LoadPlayerPrefab(LandkirdsHandCardModel hand, int posIndex)
    {
        LandlordsBasePlayer player = playerViews[posIndex];

        player.gameObject.SetActive(true);
        player.Init(hand, OnClickHeadIcon);
    }
Пример #4
0
    public LandlordsBasePlayer GetPlayer(string uid)
    {
        LandlordsBasePlayer player = null;

        player = playerViews.Find(p => p._handCard != null && p._handCard.playerInfo.uid == uid);
        return(player);
    }
Пример #5
0
 public void FinishData()
 {
     if (LandlordsModel.Instance.RoomModel.CurRoomInfo.RoomType == RoomType.SilverCoin)
     {
         LandlordsBasePlayer player = playView.GetPlayer(UserInfoModel.userInfo.userId.ToString());
         player.coinCountLb.text = UserInfoModel.userInfo.walletAgNum.ToString();
     }
 }
Пример #6
0
    // 回合进入
    void RoundEnter(bool isCanNoPlay)
    {
        LandlordsBasePlayer playerUI = GetPlayer(OrderController.Instance.TypeUid);

        if (playerUI != null)
        {
            playerUI.RoundEnter(isCanNoPlay);
        }
    }
Пример #7
0
    // 回合离开
    void RoundExit()
    {
        LandlordsBasePlayer playerUI = GetPlayer(OrderController.Instance.TypeUid);

        if (playerUI != null)
        {
            playerUI.RoundExit();
        }
    }
Пример #8
0
    /// <summary>
    /// 玩家抢地主
    /// </summary>
    /// <param name="cType"></param>
    public void QiangDizhu(string uid, bool isQiang)
    {
        if (isQiang)
        {
            Multiples *= 2;
        }
        LandkirdsHandCardModel cards    = LandlordsModel.Instance.GetHandCardMode(uid);
        LandlordsBasePlayer    playCard = LandlordsPage.Instance.playView.GetPlayer(uid);

        playCard.Qiangdizhu(isQiang);
    }
Пример #9
0
    /// <summary>
    /// 玩家叫地主
    /// </summary>
    /// <param name="cType"></param>
    public void JiaoDizhu(string uid, bool isJiao)
    {
        if (isJiao)
        {
            Multiples *= 3;
        }
        LandkirdsHandCardModel cards    = LandlordsModel.Instance.GetHandCardMode(uid);
        LandlordsBasePlayer    playCard = LandlordsPage.Instance.playView.GetPlayer(uid);

        playCard.Jiaodizhu(isJiao);
    }
Пример #10
0
    /// <summary>
    /// 更新身份
    /// </summary>
    /// <param name="type"></param>
    /// <param name="identity"></param>
    void UpdateIndentity(string uid, Identity identity)
    {
        LandkirdsHandCardModel cards = LandlordsModel.Instance.GetHandCardMode(uid);

        //改变属性
        cards.AccessIdentity = identity;
        //更改显示
        LandlordsBasePlayer playCard = LandlordsPage.Instance.playView.GetPlayer(uid);

        playCard.ChangeIdentity(false);
    }
Пример #11
0
    /// <summary>
    /// 玩家叫分
    /// </summary>
    /// <param name="score"></param>
    public void CallLandlord(string uid, int score)
    {
        LandkirdsHandCardModel cards = LandlordsModel.Instance.GetHandCardMode(uid);

        cards.Multiples = score;
        cards.CallScore = score;
        LandlordsModel.Instance.CallLandlordsList.Add(cards);
        LandlordsBasePlayer playCard = LandlordsPage.Instance.playView.GetPlayer(uid);

        playCard.CallLandlord(score);
    }
Пример #12
0
 /// <summary>
 /// 设置警报
 /// </summary>
 /// <param name="args"></param>
 public void SetWarningShow(string uid, int remainCard, bool isShow)
 {
     if (uid != null)
     {//指定玩家显隐
         LandlordsBasePlayer player = GetPlayer(uid);
         player.SetWarring(remainCard, isShow);
     }
     else
     {//全部显隐
         for (int i = 0; i < playerViews.Count; i++)
         {
             playerViews[i].SetWarring(remainCard, isShow);
         }
     }
 }
Пример #13
0
 /// <summary>
 /// 每个玩家显示层发牌
 /// </summary>
 public void InitPayerLibrary()
 {
     fapaiObj.SetActive(true);
     UIUtils.DelayDesOrDisObject(fapaiObj, 2f, false);
     for (int i = 0; i < LandlordsModel.Instance.RoomPlayerHands.Count; i++)
     {
         LandkirdsHandCardModel handCard = LandlordsModel.Instance.RoomPlayerHands[i];
         if (handCard != null)
         {
             LandlordsBasePlayer player = GetPlayer(handCard.playerInfo.uid);
             player.DealCard(true);
             if (player is LandlordsOtherPlayer)
             {
                 ((LandlordsOtherPlayer)player).CardRemainCountShow();
             }
         }
     }
     LandlordsPage.Instance.LoadComplete();
 }
Пример #14
0
    /// <summary>
    /// 玩家变成地主
    /// </summary>
    public void PlayerToLandlord(string uid, bool isAddCardCountToPlayer = true)
    {
        LandkirdsHandCardModel cards = LandlordsModel.Instance.GetHandCardMode(uid);

        LandlordsModel.Instance.CurLandlordUid = uid;
        if (LandlordsModel.Instance.RoomModel.CurRoomInfo.IsMatch && !LandlordsModel.Instance.RoomModel.CurRoomInfo.IsQdz)
        {
            Multiples = cards.Multiples;
        }

        List <Card> dipai = new List <Card>();

        //显示底牌
        while (DzCard.Instance.CardsCount != 0)
        {
            Card card = DzCard.Instance.Deal();
            dipai.Add(card);
            if (isAddCardCountToPlayer)
            {
                cards.AddCard(card);
            }
        }
        UpdateDeskCardShow(dipai);
        for (int i = 0; i < dipai.Count; i++)
        {
            dipai[i].IsSprite = false;
        }
        LandlordsBasePlayer playCard = LandlordsPage.Instance.playView.GetPlayer(uid);

        if (uid == UserInfoModel.userInfo.userId.ToString())
        {
            playCard.DealCard(faceBundle);
        }
        if (playCard is LandlordsOtherPlayer)
        {
            ((LandlordsOtherPlayer)playCard).CardRemainCountShow();
        }
        //更新身份
        UpdateIndentity(uid, Identity.Landlord);
    }
Пример #15
0
    /// <summary>
    /// 玩家聊天
    /// </summary>
    /// <param name="uid"></param>
    /// <param name="value"></param>
    public void PlayerChat(string uid, string senderName, string value, int type)//0文字1语音2表情
    {
        LandlordsBasePlayer playCard = LandlordsPage.Instance.playView.GetPlayer(uid);

        //显示在玩家头上
        playCard.Chat(value, type);
        ChatInfo info = new ChatInfo();

        info.chatWithName       = senderName;
        info.playerBaseInfo.uid = uid;
        info.text = value;
        info.type = type;
        if (type != 2)//如果不是表情,那么加载在聊天界面
        {
            NodeManager.GetNode <ChatNode>().chatPanel.LoadChatItem(info);
        }
        if (type == 1)//直接播放语音
        {
            SocialModel.Instance.PlayRecord(value);
        }
        if (type == 0)
        {//判断是否播放常用语语音
            string   changyongyuId = string.Empty;
            JsonData jd            = JsonMapper.ToObject(BundleManager.Instance.GetJson(ConstantUtils.changyongyuConfig));
            for (int i = 0; i < jd.Count; i++)
            {
                if (value == jd[i].TryGetString("chatContent"))
                {
                    changyongyuId = jd[i].TryGetString("id");
                    break;
                }
            }
            if (changyongyuId != string.Empty)
            {
                string audioName = playCard._handCard.playerInfo.six + "_" + changyongyuId;
                AudioManager.Instance.PlayTempSound((AudioManager.AudioSoundType)System.Enum.Parse(typeof(AudioManager.AudioSoundType), audioName));
            }
        }
    }
Пример #16
0
    /// <summary>
    /// 玩家不出 -1要不起0不出
    /// </summary>
    /// <param name="uid"></param>
    public void NoPopCard(string uid, int type)
    {
        LandlordsBasePlayer playCard = LandlordsPage.Instance.playView.GetPlayer(uid);

        playCard.NoPopCard(type);
    }
Пример #17
0
    /// <summary>
    /// 某个玩家离开
    /// </summary>
    public void PlayerExit(string uid, bool isKick)
    {
        LandlordsBasePlayer playerView = GetPlayer(uid);

        playerView.RestToNoPlayer(isKick);
    }
Пример #18
0
    /// <summary>
    /// 某个玩家准备
    /// </summary>
    /// <param name="uid"></param>
    /// <param name="isZhunbei"></param>
    public void PlayerZhunbei(string uid, bool isZhunbei)
    {
        LandlordsBasePlayer playerView = GetPlayer(uid);

        playerView.Zhunbei(isZhunbei);
    }