private void CreateItems(GangStruct card, eMJInstructionsType _type) { if (card == null || card.cards == null) { return; } if (_type == eMJInstructionsType.GANG) //杠 { if (card.gangType == eGangType.ANGANG) //暗杠 { InitAngang(mCardGang, card.cards[0]); } else { InitPengItems(mCardGang, card.cards[0], card.cards[0], card.cards[0], card.cards[0]); } } else { int len = card.cards.Count; if (len == 3) { InitPengItems(mThreeLie, card.cards[0], card.cards[1], card.cards[2]); } else if (len == 4) { InitPengItems(mCardGang, card.cards[0], card.cards[1], card.cards[2], card.cards[3]); } } }
public void SetPengNum(eMJInstructionsType _type, int myseatid, PengStruct cards) { SetArrowShow(false); if (cards.cards.Count == 1) { SetNum(_type, cards.cards[0], cards.cards[0], cards.cards[0]); } else if (cards.cards.Count < 4) { SetNum(_type, cards.cards[0], cards.cards[1], cards.cards[2]); } else { SetNum(_type, cards.cards[0], cards.cards[1], cards.cards[2], cards.cards[3]); } if (_type == eMJInstructionsType.PENG)//碰 { if (cards.otherSeatId != null && cards.otherSeatId != myseatid && cards.otherSeatId != 0) { SetArrowPos(myseatid, cards.otherSeatId, 3); } } //else if (_type == eOptStatus)//吃 //{ // mChiPanel.SetActive(true); // SetChiPanelPos((eMJChiType)cards.type); //} }
/// <summary> /// 设置杠牌 /// </summary> /// <param name="_type"></param> /// <param name="myseatid"></param> /// <param name="cards"></param> /// <param name="playerPosType"></param> public void SetGangNum(eMJInstructionsType _type, int myseatid, GangStruct cards, PlayerPosType playerPosType) { SetArrowShow(false); mOtherAngang.SetActive(false); if (cards.cards.Count == 1) { SetNum(_type, cards.cards[0], cards.cards[0], cards.cards[0], cards.cards[0]); } else if (cards.cards.Count < 4) { SetNum(_type, cards.cards[0], cards.cards[1], cards.cards[2]); } else { SetNum(_type, cards.cards[0], cards.cards[1], cards.cards[2], cards.cards[3]); } if (_type == eMJInstructionsType.GANG && (cards.gangType == eGangType.DIANGANG || cards.gangType == eGangType.WANGANG))//普通杠 { if (cards.otherSeatId != null && cards.otherSeatId != myseatid && cards.otherSeatId != 0) { SetArrowPos(myseatid, cards.otherSeatId, 4); } } if (_type == eMJInstructionsType.GANG && cards.gangType == eGangType.ANGANG)//暗杠 { SetAnGang(playerPosType); } }
/// <summary> /// 设置数字 /// </summary> /// <param name="num1">第1个数字</param> /// <param name="num2">第2个数字</param> /// <param name="num3">第3个数字</param> /// <param name="num4">第4个数字,如果为-1表示没有第四个</param> private void SetNum(eMJInstructionsType instype, int num1, int num2, int num3, int num4 = -1) { mInsType = instype; //设置数据 mNum[0] = num1; mNum[1] = num2; mNum[2] = num3; mNum[3] = num4; mNum[4] = num4; mMeshs[0].mesh = mRoot.mMeshs[num1]; mMeshs[1].mesh = mRoot.mMeshs[num2]; mMeshs[2].mesh = mRoot.mMeshs[num3]; if (num4 == -1) { mMeshs[3].gameObject.SetActive(false); } else { mMeshs[3].gameObject.SetActive(true); mMeshs[3].mesh = mRoot.mMeshs[num4]; } mMeshs[4].gameObject.SetActive(false); }
public void InitHuCard(eMJInstructionsType instype, List <HuStruct> cards) { if (mHuGrid == null) { return; } int len = cards == null ? 0 : cards.Count; int gridLen = mHuCardList.Count; MjCollectCard card; for (int i = 0; i < len; i++) { if (i < gridLen) { card = mHuCardList[i]; } else { card = NGUITools.AddChild(mHuGrid.gameObject, mHuCard.gameObject).GetComponent <MjCollectCard>(); mHuCardList.Add(card); } card.gameObject.SetActive(true); //设置数字 card.SetNum(cards[i].card, mPlayerPosType); card.SetHuCardIsGL(cards[i].isGl);//设置胡牌 是否高亮 } for (int i = len; i < gridLen; i++) { mHuCardList[i].gameObject.SetActive(false); } mHuGrid.Reposition(); }
public void InitGangCard(eMJInstructionsType instype, List <GangStruct> cards) { if (mPengGrid == null) { return; } int len = cards == null ? 0 : cards.Count; int gridLen = mGangCardList.Count; MjPengCard card; for (int i = 0; i < len; i++) { if (i < gridLen) { card = mGangCardList[i]; } else { card = NGUITools.AddChild(mPengGrid.gameObject, mPengCard.gameObject).GetComponent <MjPengCard>(); mGangCardList.Add(card); } card.gameObject.SetActive(true); //设置数字 card.SetGangNum(instype, mMySeatid, cards[i], mPlayerPosType); } for (int i = len; i < gridLen; i++) { mGangCardList[i].gameObject.SetActive(false); } mPengGrid.Reposition(); }
public CardsInfoStruct[] allPlayersCardsInfoStruct; //所有玩家的牌的数据 #region 主动操作牌 /// <summary> /// 主动操作牌 /// </summary> /// <param name="data"></param> public void InstructionsCard(MJoptInfoData data, ref int lastOutCard) { eMJInstructionsType _type = data.ins; CardsStruct chicard; switch (_type) { case eMJInstructionsType.GUO: //过 break; case eMJInstructionsType.GANG: //杠 chicard = AddGangCard(ref mPlayerInfo.gangList, data, lastOutCard); break; case eMJInstructionsType.PENG: //碰 chicard = AddPengCard(ref mPlayerInfo.pengList, data, lastOutCard); //chicard.card.Sort(); break; case eMJInstructionsType.HIT: //打牌 AddHitCard(ref mPlayerInfo.hitList, data); lastOutCard = data.cards[0]; break; case eMJInstructionsType.MO: //摸牌 //if (mHandCard != null)//摸起来的牌加到手牌中并且去掉摸起来的牌 MJGameModel.Inst.leaveCardNum--; MJGameModel.Inst.mStartGameData.startInfo.leaveCardNum--; if (data.seatId == MJGameModel.Inst.mMySeatId) { if (!MJGameModel.Inst.isHasFixeCard) { if (data.cards[0] > MJGameModel.Inst.eFixe[0] && data.cards[0] < MJGameModel.Inst.eFixe[1]) { MJGameModel.Inst.isHasFixeCard = true; } } mHandCard.currCard = data.cards[0]; } else if (mOtherCard != null) { mOtherCard.isHasCurrCard = true; } break; case eMJInstructionsType.YPDX: case eMJInstructionsType.HU: //胡 chicard = AddHuCard(ref mPlayerInfo.mHuCard, data, lastOutCard); if (data.seatId == MJGameModel.Inst.mMySeatId) { MJGameModel.Inst.isHu = mPlayerInfo.mHuCard != null; } break; } }
private void CreateCardList(List <GangStruct> list, eMJInstructionsType _type) { if (list == null) { return; } for (int i = 0; i < list.Count; i++) { CreateItems(list[i], _type); } }
/// <summary> /// 获取特效配置表 /// </summary> /// <param name="insType">操作类型</param> /// <returns></returns> private MJGameInsEffectConfig GetInsEffectConfig(eMJInstructionsType insType) { string index = insType.GetHashCode().ToString(); ConfigDada con = ConfigManager.GetConfigs <MJGameInsEffectConfig>().Find(o => o.conIndex.Equals(index)); if (con == null) { return(null); } return(con as MJGameInsEffectConfig); }
/// <summary> /// 被动接受的指令 /// </summary> /// <param name="data"></param> /// <param name="lastOutCard"></param> public void PassiveInstructionsCard(MJoptInfoData data, ref int lastOutCard) { eMJInstructionsType _type = data.ins; switch (_type) { case eMJInstructionsType.CHI: case eMJInstructionsType.PENG: if (mPlayerInfo.hitList != null) { mPlayerInfo.hitList.RemoveAt(mPlayerInfo.hitList.Count - 1); } lastOutCard = 0; break; case eMJInstructionsType.GANG: if (data.cards.Count <= 4) { if (mPlayerInfo.hitList != null) { mPlayerInfo.hitList.RemoveAt(mPlayerInfo.hitList.Count - 1); } lastOutCard = 0; } break; case eMJInstructionsType.HU: if (mPlayerInfo.hitList != null && lastOutCard != 0) { if (data.subType == (int)eHuSubType.QGH) { if (!data.huGl) { if (mHandCard != null && data.otherSeatId == mPlayerInfo.seatId) { if (mHandCard.cards != null) { mHandCard.cards.Remove(data.cards[0]); } else { mOtherCard.cardsNum--; } } } } mPlayerInfo.hitList.RemoveAt(mPlayerInfo.hitList.Count - 1); lastOutCard = 0; } break; } }
/// <summary> /// 设置当前打出牌位置 /// </summary> /// <param name="player"></param> /// <param name="ins"></param> public void SetCurCardEffect(MJPlayerBase player, eMJInstructionsType ins, Vector3 offset) { if (ins == eMJInstructionsType.HIT) { player.SetCurOutCardEffect(true); } else { if (MJGameModel.Inst.mLastOutCard == 0) { player.SetCurOutCardEffect(false); } } }
public void InitPengCards(eMJInstructionsType instype, List <PengStruct> cards) { if (mPengGrid == null) { return; } int len = cards == null ? 0 : cards.Count; List <MjPengCard> cardlist; if (instype == eMJInstructionsType.PENG) { cardlist = mChiCardList; } //else if (instype == eOptStatus.PENG) // cardlist = mPengCardList; else { cardlist = mOtherCardList; } int gridLen = cardlist.Count; MjPengCard card; for (int i = 0; i < len; i++) { if (i < gridLen) { card = cardlist[i]; } else { card = NGUITools.AddChild(mPengGrid.gameObject, mPengCard.gameObject).GetComponent <MjPengCard>(); cardlist.Add(card); } card.gameObject.SetActive(true); //设置数字 card.SetPengNum(instype, mMySeatid, cards[i]); } for (int i = len; i < gridLen; i++) { cardlist[i].gameObject.SetActive(false); } mPengGrid.Reposition(); //SetPengCardPos(len); }
public void InitHuCards(eMJInstructionsType instype, List <HuStruct> cards, int huType = -1) { if (cards != null && cards.Count > 0) { mHuTag.gameObject.SetActive(true); UITexture a = mHuTag.GetComponent <UITexture>(); if (a != null) { a.mainTexture = mHuTexture; } if (huType == (int)eHuType.ZIMO) { //显示成自摸 if (a != null) { a.mainTexture = mZiMoTexture; } } a.MakePixelPerfect(); } mPlayer.InitHuCard(instype, cards); }
/// <summary> /// 主动操作牌 /// </summary> /// <param name="data"></param> public void InstructionsCard(MJoptInfoData data, ref int lastOutCard) { eMJInstructionsType _type = data.ins; CardsStruct chicard; switch (_type) { case eMJInstructionsType.GUO: //过 break; case eMJInstructionsType.GANG: //杠 if (gangList == null) { gangList = new List <GangStruct>(); } chicard = AddGangCard(ref gangList, data, lastOutCard); break; case eMJInstructionsType.PENG: //碰 if (pengList == null) { pengList = new List <PengStruct>(); } chicard = AddPengCard(ref pengList, data, lastOutCard); //chicard.card.Sort(); break; case eMJInstructionsType.HIT: //打牌 if (hitList == null) { hitList = new List <int>(); } AddHitCard(ref hitList, data); lastOutCard = data.cards[0]; break; case eMJInstructionsType.MO: //摸牌 //if (mHandCard != null)//摸起来的牌加到手牌中并且去掉摸起来的牌 MJGameModel.Inst.leaveCardNum--; MJGameModel.Inst.mStartGameData.startInfo.leaveCardNum--; if (handList != null) { if (!MJGameModel.Inst.isHasFixeCard && data.seatId == MJGameModel.Inst.mMySeatId) { if (data.cards[0] > MJGameModel.Inst.eFixe[0] && data.cards[0] < MJGameModel.Inst.eFixe[1]) { MJGameModel.Inst.isHasFixeCard = true; } } currCard = data.cards[0]; } else { isHasCurrCard = true; } break; case eMJInstructionsType.YPDX: case eMJInstructionsType.HU: //胡 if (huList == null) { huList = new List <HuStruct>(); } chicard = AddHuCard(ref huList, data, lastOutCard); if (data.seatId == MJGameModel.Inst.mMySeatId) { MJGameModel.Inst.isHu = huList != null && huList.Count > 0; } break; } }
/// <summary> /// 被动接受的指令 /// </summary> /// <param name="data"></param> /// <param name="lastOutCard"></param> public void PassiveInstructionsCard(MJoptInfoData data, ref int lastOutCard) { eMJInstructionsType _type = data.ins; switch (_type) { case eMJInstructionsType.CHI: case eMJInstructionsType.PENG: if (hitList != null) { hitList.RemoveAt(hitList.Count - 1); } lastOutCard = 0; break; case eMJInstructionsType.GANG: if (data.cards.Count <= 4) { if (hitList != null) { hitList.RemoveAt(hitList.Count - 1); } lastOutCard = 0; } break; case eMJInstructionsType.HU: case eMJInstructionsType.YPDX: if (hitList != null && lastOutCard != 0) { if (data.subType == (int)eHuSubType.QGH) //抢杠胡移除一张手牌 { if (data.otherSeatId == seatId) { if (handList != null) //自己 { if (currCard > 0) //如果有摸起来的牌就把摸起来的牌放入手牌 { handList.Add(currCard); currCard = 0; } handList.Remove(data.cards[0]); } else //其他人 { if (isHasCurrCard) //如果有摸起来的牌就把摸起来的牌放入手牌 { cardNum++; isHasCurrCard = false; currCard = 0; } cardNum--; } } if (!data.huGl) { } } else { hitList.RemoveAt(hitList.Count - 1); } lastOutCard = 0; } break; } }
public void InitGangCards(eMJInstructionsType instype, List <GangStruct> cards) { mPlayer.InitGangCard(instype, cards); }