public virtual MahjongItem ThrowOutByValue(int value) { MahjongItem Mahjong = null; for (int i = MahjongList.Count - 1; i >= 0; i--) { if (MahjongList[i].Value == value) { Mahjong = MahjongList[i]; } } if (Mahjong == null) { Mahjong = GetMahjongItemByValue(value); } Mahjong.ShowNormal(); MahjongManager.Instance.ExchangeByValue(value, Mahjong); MahjongList.Remove(Mahjong); SortMahjongForHand(); if (GameConfig.GetInEffect) { PickUpMahjongAction(Mahjong); } else { SetMahjongPos(); } MahjongManager.Instance.Recycle(Mahjong); LastGetIn = null; return(Mahjong); }
public override void OnReset() { base.OnReset(); StartIndex = 0; ResetWallStartPos(); MahjongList.Clear(); }
public override void SetLastCardPos(int value) { if (value == UtilDef.NullMj || MahjongList.Find(item => item.Value == value) == null)//当前不是抓牌 是吃碰杠后的 { base.SetLastCardPos(value); return; } if (MahjongList.Count > 1) { MahjongItem findItem = MahjongList.Find((item) => { return(item.Value == value); }); if (findItem != null) { MahjongList.Remove(findItem); } MahjongList.Add(findItem); SetMahjongPos(); findItem.transform.localPosition = GetHardLastMjPos(); } }
public virtual MahjongItem ThrowOut(int value) { MahjongItem Mahjong = GetMahjongItemByValue(value); Mahjong.ShowNormal(); MahjongManager.Instance.ExchangeByValue(value, Mahjong); MahjongList.Remove(Mahjong); SortMahjongForHand(); if (GameConfig.GetInEffect) { PickUpMahjongAction(Mahjong); } else { SetMahjongPos(); } MahjongManager.Instance.Recycle(Mahjong); LastGetIn = null; return(Mahjong); }
/// <summary> /// 倒序摸牌 /// </summary> /// <returns></returns> public MahjongItem RevPopMahjong() { int index = 0; var mayIndex = MahjongList.Count - 2; if (mayIndex >= 0 && MahjongList.Count % 2 == 0) { index = mayIndex; } else { index = MahjongList.Count - 1; } MahjongItem item = MahjongList[index]; MahjongList.RemoveAt(index); MahjongManager.Instance.Recycle(item); if (MahjongList.Count <= 0) { EventDispatch.Dispatch((int)GameEventId.RevWallMahjongFinish, new EventData()); } return(item); }
//用来处理 获取最后麻将时候 index 的偏移 public override MahjongItem GetLastMj() { MahjongItem item = null; if (MahjongList.Count == 0) { return(null); } else if (MahjongList.Count == 1) { item = MahjongList[0]; MahjongList.RemoveAt(0); return(item); } int index = MahjongList.Count - 2; if (MahjongList[index].transform.position.y > 0.4f) { item = MahjongList[index]; MahjongList.RemoveAt(index); return(item); } item = MahjongList[index + 1]; MahjongList.RemoveAt(index + 1); return(item); }
public virtual MahjongItem PopMahjong() { MahjongItem item = MahjongList[MahjongList.Count - 1]; MahjongList.RemoveAt(MahjongList.Count - 1); MahjongManager.Instance.Recycle(item); return(item); }
public void RemoveAllMj() { foreach (MahjongItem item in MahjongList) { MahjongManager.Instance.Recycle(item); } MahjongList.Clear(); }
//当抢杠胡 public virtual void OnQiangganghu(int value) { MahjongItem findItem = MahjongList.Find((item) => { return(item.Value == value); }); MahjongManager.Instance.Recycle(findItem); MahjongList.Remove(findItem); SortMahjongForHand(); findItem.gameObject.SetActive(false); }
protected virtual void SortMahjongForHand() { if (MahjongList.Count < 2) { return; } //这里是假的排序 把最后一张牌 放在那里 是随机放的 var index = Random.Range(0, MahjongList.Count - 2); var last = MahjongList[MahjongList.Count - 1]; MahjongList.Remove(last); MahjongList.Insert(index, last); }
public void RemoveMahjong(int value, bool sort = true) { MahjongItem item = GetMahjongItemByValue(value); if (item != null) { MahjongList.Remove(item); MahjongManager.Instance.Recycle(item); } if (sort) { SetMahjongPos(); } }
public MahjongItem PopMahjong() { MahjongItem item = MahjongList[StartIndex]; MahjongList.RemoveAt(StartIndex); MahjongManager.Instance.Recycle(item); if (StartIndex >= MahjongList.Count) { StartIndex = 0; EventDispatch.Dispatch((int)GameEventId.WallMahjongFinish, new EventData()); } return(item); }
public void PopMahjong(int cnt) { for (int i = 0; i < cnt; i++) { MahjongItem item = MahjongList[StartIndex]; MahjongList.RemoveAt(StartIndex); MahjongManager.Instance.Recycle(item); if (StartIndex >= MahjongList.Count) { StartIndex = 0; EventDispatch.Dispatch((int)GameEventId.WallMahjongFinish, new EventData(cnt - (i + 1))); break; } } }
public void RemoveMahjong(List <int> value, bool sort = true) { for (int i = 0; i < value.Count; i++) { MahjongItem item = GetMahjongItemByValue(value[i]); if (item != null) { MahjongList.Remove(item); MahjongManager.Instance.Recycle(item); } } if (sort) { SetMahjongPos(); } }
public virtual void RemoveMahjongByValue(int value, bool sort = true) { MahjongItem temp = MahjongList.Find((a) => { return(a.Value == value); }); if (temp != null) { MahjongList.Remove(temp); MahjongManager.Instance.Recycle(temp); } else { MahjongItem item = GetMahjongItemByValue(value); if (item != null) { MahjongList.Remove(item); MahjongManager.Instance.Recycle(item); } } if (sort) { SetMahjongPos(); } }