//刷新中鱼的数据 public void RefleshData(List <MJType> dataList, int playerId) { int SpaceW = GameGD.MJ_BOTTOM_CPG_W; ResetSpriteBG(SpaceW, dataList.Count); Vector3 pos = new Vector3(-(dataList.Count - 1) / 2.0f * SpaceW, 0, 0); for (int i = 0; i < dataList.Count; i++) { MJ mj = AddMJ(DataCenter.Instance.gamedata.PlayerID, dataList[i], MJ_STAGE.CPG); mj.transform.localPosition = pos; pos.x += SpaceW; if (DataCenter.Instance.players[playerId].gameOver.IsZhongYu(dataList[i])) { mj.sprite.color = Color.green; } } sprite_鱼.gameObject.SetActive(false); if (DataCenter.Instance.gamedata.GameArea == AREA_ENUM.桂林) { sprite_鱼.gameObject.SetActive(true); } }
/// <summary> /// 生成打出去的麻将 /// </summary> private void SpawnMJ_OUT() { for (int i = 0; i < data.MJ_OUT_List.Count; i++) { MJ mj = AddMJ(data.MJ_OUT_List[i], MJ_STAGE.OUT); } }
/// <summary> /// 生成手中的麻将 /// </summary> private void SpawnMJ_IN() { for (int i = 0; i < data.MJ_IN_List.Count; i++) { MJ mj = AddMJ(data.MJ_IN_List[i], MJ_STAGE.IN); } }
private MJ AddMJ(int playerId, MJType type, MJ_STAGE stage, bool bBack = false) { MJ mj = _MJ_Mgr.SpawnMJ(transform, type, playerId, stage, bBack, null); mj.transform.parent = transform; return(mj); }
protected virtual void SpawnMJ_CPG(CPG_Struct data) { for (int i = 0; i < data.MJList.Count; i++) { if (data.type == CPG_TYPE.暗杠) { if (i < 3 || dir != SEAT_DIR.DIR_BOTTOM) { AddMJ(data.MJList[i], MJ_STAGE.CPG, true); continue; } } MJ mj = AddMJ(data.MJList[i], MJ_STAGE.CPG); switch (data.dir) { case SEAT_DIR.DIR_BOTTOM: break; case SEAT_DIR.DIR_RIGHT: if (i == 2) { mj.sprite.color = Color.green; } break; case SEAT_DIR.DIR_TOP: if (data.type == CPG_TYPE.杠) { if (i == 3) { mj.sprite.color = Color.green; } } else { if (i == 1) { mj.sprite.color = Color.green; } } break; case SEAT_DIR.DIR_LEFT: if (i == 0) { mj.sprite.color = Color.green; } break; case SEAT_DIR.DIR_NULL: break; default: break; } } }
protected override void OnDragDropStart() { base.OnDragDropStart(); MJ mj = GetComponent <MJ>(); if (mj) { mj.Depth += 1000; } }
private MJ AddMJ(int playerId, MJType type, MJ_STAGE stage, bool bBack = false) { MJ mj = _MJ_Mgr.SpawnMJ(transform, type, playerId, stage, bBack, null); mj.Depth = 2000; mj.transform.parent = transform; MJList.Add(mj); //NGUITools.SetDirty(mj); return(mj); }
private void ShowCurChuPai(int playerId) { MJ mj = GetPlayerPanel(playerId).LastOutMJ; if (mj != null) { SetCurChuMJ(mj); ViewCenter.Instance.GetPanel <Panel_UI>(PanelType.UIManager).ShowChuPai(GameGD.GetSeatDir(playerId), mj.type); //UIManager.Instance.ShowChuPai(GameGD.GetSeatDir(playerId), mj.type); } }
private void SetCurSelectMJ(MJ mj) { if (curSelectMJ != null) { curSelectMJ.TranslatePosition(new Vector3(0, -GameGD.MJ_SELECT_OFFSET, 0)); } curSelectMJ = mj; if (curSelectMJ != null) { curSelectMJ.TranslatePosition(new Vector3(0, GameGD.MJ_SELECT_OFFSET, 0)); } }
public MJ SpawnMJ(Transform parent, MJType type, int playerId, MJ_STAGE stage, bool bBack, Panel_Player playerPanel) { Transform ts = pool.Spawn(prefab, pool.transform); ts.transform.localScale = Vector3.one; MJ mj = ts.GetComponent <MJ>(); mj.Init(type, stage, playerId, playerPanel); int w = 0, h = 0; GetSpriteWH(ref w, ref h, playerId, stage); mj.InitSprite(GetSpriteName(type, playerId, stage, bBack), w, h); return(mj); }
private void SetCurChuMJ(MJ mj) { if (mj == null) { return; } if (DataCenter.Instance.gamedata.CurChuMJ != null) { DataCenter.Instance.gamedata.CurChuMJ.ShowArrow(false); } DataCenter.Instance.gamedata.CurChuMJ = mj; DataCenter.Instance.gamedata.CurChuMJ.ShowArrow(true); Debuger.Log("ChuMJ :" + mj.type); }
public void ChuPai(MJ mj) { if (!IsChuPaing) { return; } MJType type = mj.type; int playerId = mj.PlayerID; if (GD.SIMULATE_CHUPAI) { ChuPai(playerId, type); GameApp.Instance.GoToNextPlayer(); } Debuger.Log("ControlCenter ChuPai ! " + type + " " + playerId); DealCommand.Instance.SendChuPai(type); }
public void ShowTingPai(List <MJType> mjList) { DestroyAllTingPaiMJ(); if (mjList.Count > 0) { GameUtility.FindDeepChild(TingPaiTrans.gameObject, "胡牌").gameObject.SetActive(true); Vector3 pos = Vector3.zero; for (int i = 0; i < mjList.Count; i++) { MJ mj = AddMJ(mjList[i], MJ_STAGE.CPGResult); mj.transform.parent = TingPaiTrans; mj.transform.localPosition = pos; TingPaiMJList.Add(mj); pos.x += GameGD.MJ_BOTTOM_CPG_RESULT_W; } } else { GameUtility.FindDeepChild(TingPaiTrans.gameObject, "胡牌").gameObject.SetActive(false); } }
protected void DespawnMJ(MJ mj) { _MJMgr.DespawnMJ(mj.transform); switch (mj.stage) { case MJ_STAGE.IN: MJ_IN_List.Remove(mj); break; case MJ_STAGE.OUT: MJ_OUT_List.Remove(mj); break; case MJ_STAGE.CPG: MJ_CPG_List.Remove(mj); break; default: break; } }
public void ShowResultMJ(List <Result_Struct> data, ResultType type) { DespawnAllResultMJ(); int count = 0; for (int i = 0; i < data.Count; i++) { if (data[i].type == type) { for (int j = 0; j < data[i].MJList.Count; j++) { MJ mj = AddMJ(data[i].MJList[j], MJ_STAGE.CPGResult); int index = i; if (type == ResultType.吃) { UIEventListener.Get(mj.gameObject).onClick += delegate { ControlCenter.Instance.Btn_Result_OnClick_Send(type, index); DespawnAllResultMJ(); }; } else if (type == ResultType.暗杠) { MJType mjType = data[i].MJList[0]; UIEventListener.Get(mj.gameObject).onClick += delegate { ControlCenter.Instance.Btn_Result_OnClick_Send(type, -1, mjType); DespawnAllResultMJ(); }; } Vector3 pos = Vector3.zero; mj.transform.parent = ResultMJMgrTrans; mj.transform.localPosition = new Vector3(count * (GameGD.MJ_BOTTOM_CPG_RESULT_W - 2) + i * 20, 0); ResultMJList.Add(mj); count++; } } } }
/// <summary> /// 添加麻将 /// </summary> /// <param name="type">麻将类型</param> /// <param name="stage"> 是否是手中的麻将 </param> /// <returns></returns> protected virtual MJ AddMJ(MJType type, MJ_STAGE stage, bool bBack = false) { MJ mj = _MJMgr.SpawnMJ(transform, type, data.playerId, stage, bBack, this); switch (stage) { case MJ_STAGE.IN: MJ_IN_List.Add(mj); break; case MJ_STAGE.OUT: MJ_OUT_List.Add(mj); break; case MJ_STAGE.CPG: MJ_CPG_List.Add(mj); break; default: break; } return(mj); }
private IEnumerator ShowZhongYuLogic(List <MJType> dataList) { int SpaceW = GameGD.MJ_BOTTOM_CPG_W; ResetSpriteBG(SpaceW, dataList.Count); Vector3 pos = new Vector3(-(dataList.Count - 1) / 2.0f * SpaceW, 0, -1); int playerId = DataCenter.Instance.gamedata.PlayerID; for (int i = 0; i < dataList.Count; i++) { MJ mj = AddMJ(playerId, dataList[i], MJ_STAGE.CPG); mj.transform.localPosition = pos; mj.Depth = 2000; pos.x += SpaceW; if (DataCenter.Instance.players[playerId].gameOver.IsZhongYu(dataList[i])) { mj.sprite.color = Color.green; } yield return(new WaitForSeconds(0.5f)); } }
protected override void OnDragDropRelease(GameObject surface) { base.OnDragDropRelease(surface); MJ mj = GetComponent <MJ>(); bool bChuPai = false; if (surface != null) { Debuger.Log(surface); if (surface.name == "DragRegion" && ControlCenter.Instance.IsChuPaing) { bChuPai = true; ControlCenter.Instance.ChuPai(mj); } } if (!bChuPai) { mj.Depth -= 1000; ControlCenter.Instance.ResetPlayerPanelPosition(GetComponent <MJ>().PlayerID); } }
public override void SelectMJ(MJ mj, bool bClick = false) { //if (ControlCenter.Instance.IsChuPaing) { if (mj == curSelectMJ) { Debuger.Log("SelectMJ MJ :" + bClick); if (ControlCenter.Instance.IsChuPaing) { if (bClick) { ControlCenter.Instance.ChuPai(mj); curSelectMJ = null; } } else { //SetCurSelectMJ(null); //if (curSelectMJ != null) //{ // curSelectMJ.TranslatePosition(new Vector3(0, -GameGD.MJ_SELECT_OFFSET, 0)); // curSelectMJ = null; //} } } else { SetCurSelectMJ(mj); //if (curSelectMJ != null) //{ // curSelectMJ.TranslatePosition(new Vector3(0, -GameGD.MJ_SELECT_OFFSET, 0)); //} //mj.TranslatePosition(new Vector3(0, GameGD.MJ_SELECT_OFFSET, 0)); //curSelectMJ = mj; } } }
protected override MJ AddMJ(MJType type, MJ_STAGE stage, bool bBack = false) { MJ mj = base.AddMJ(type, stage, bBack); int playerId = DataCenter.Instance.gamedata.PlayerID; if (stage == MJ_STAGE.IN && ControlCenter.Instance.IsChuPaing ) { bool bCanSelect = true; for (int i = 0; i < DataCenter.Instance.players[playerId].cannotChuMJList.Count; i++) { if (type == DataCenter.Instance.players[playerId].cannotChuMJList[i]) { bCanSelect = false; break; } } if (bCanSelect) { if (!DataCenter.Instance.hFdata.IsHuiFanging) { MJ_Drag md = mj.GetComponent <MJ_Drag>(); if (md) { md.enabled = true; } } } else { mj.SetColor(new Color(0.3f, 0.3f, 0.3f)); } } return(mj); }
public void UpdateData() { UpdateLabelInfo(); Vector3 pos = startMJPos; PlayerData data = DataCenter.Instance.players[playerId]; int iSpace = GameGD.MJ_BOTTOM_CPG_W - 5; //吃碰杠的牌 for (int i = 0; i < data.MJ_CPG_List.Count; i++) { CPG_Struct cs = data.MJ_CPG_List[i]; for (int j = 0; j < cs.MJList.Count; j++) { MJ mj = null; if (cs.type == CPG_TYPE.暗杠) { if (j <= 2) { mj = AddMJ(DataCenter.Instance.gamedata.PlayerID, cs.MJList[j], MJ_STAGE.CPG, true); } } if (mj == null) { mj = AddMJ(DataCenter.Instance.gamedata.PlayerID, cs.MJList[j], MJ_STAGE.CPG); } if (i != 0 || j != 0) { pos.x += iSpace; } switch (cs.dir) { case SEAT_DIR.DIR_BOTTOM: break; case SEAT_DIR.DIR_RIGHT: if (j == 2) { mj.sprite.color = Color.green; } break; case SEAT_DIR.DIR_TOP: if (cs.type == CPG_TYPE.杠 || cs.type == CPG_TYPE.暗杠) { if (j == 3) { mj.sprite.color = Color.green; } } else { if (j == 1) { mj.sprite.color = Color.green; } } break; case SEAT_DIR.DIR_LEFT: if (j == 0) { mj.sprite.color = Color.green; } break; case SEAT_DIR.DIR_NULL: break; default: break; } Vector3 MJPos = pos; if (cs.type == CPG_TYPE.杠 || cs.type == CPG_TYPE.暗杠) { if (j == 3) { MJPos.y += 10; pos.x -= iSpace; MJPos.x -= 2 * iSpace; pos.x += 5; } } mj.transform.localPosition = MJPos; } pos.x += 15; } //手中的牌 if (data.MJ_CPG_List.Count != 0) { pos.x += 30; } for (int i = 0; i < data.MJ_IN_List.Count; i++) { MJ mj = AddMJ(DataCenter.Instance.gamedata.PlayerID, data.MJ_IN_List[i], MJ_STAGE.CPG); mj.transform.localPosition = pos; pos.x += GameGD.MJ_BOTTOM_CPG_W - 5; } //胡牌 sprite_胡.gameObject.SetActive(false); if (data.gameOver.IsWin) { pos.x += 150; sprite_胡.gameObject.SetActive(true); sprite_胡.transform.localPosition = new Vector3(pos.x, sprite_胡.transform.localPosition.y, 0); pos.x += 50; MJ mj = AddMJ(DataCenter.Instance.gamedata.PlayerID, data.gameOver.huPaiMJType, MJ_STAGE.CPG); mj.transform.localPosition = pos; //mj.GetComponent<UISprite>().SetAnchor(sprite_胡,0,50) //mj.GetComponent<UISprite>().leftAnchor.relative = 1f; //mj.GetComponent<UISprite>().leftAnchor.absolute = 10; } //中鱼 ShowZhongYu(false); if (DataCenter.Instance.players[playerId].gameOver.IsWin) { ShowZhongYu(DataCenter.Instance.players[playerId].gameOver.ZhongYuList); } label_DeFen.text = "" + DataCenter.Instance.players[playerId].gameOver.DeFen; }
private void DespawnResultMJ(MJ mj) { _MJMgr.DespawnMJ(mj.transform); ResultMJList.Remove(mj); UIEventListener.Get(mj.gameObject).onClick = null; }
private void DespawnMJ(MJ mj) { MJList.Remove(mj); _MJ_Mgr.DespawnMJ(mj.transform); }
private void DestroyTingPaiMJ(MJ mj) { _MJMgr.DespawnMJ(mj.transform); TingPaiMJList.Remove(mj); }
protected virtual void UpdatePosition_IN() { curSelectMJ = null; }
public virtual void SelectMJ(MJ mj, bool bClick = false) { }