//如果有新武学解锁,刷新当前列表 private void RefreshList(int unLockMartialID) { int newMartialLevel = PlayerMartialDataManager.Instance.GetMartialLevelByID(unLockMartialID); SSendWuXueData newMartialData = new SSendWuXueData() { dwWuXueID = unLockMartialID, byWuXueLevel = (byte)newMartialLevel }; MyMartialDataList.Add(newMartialData); int lineCount = Mathf.CeilToInt(MyMartialDataList.Count / 4); //行数 if (MyMartialDataList.Count % 4 == 0) { lineCount -= 1; } //新添加的武学下标 int index = (MyMartialDataList.Count) % 4 == 0 ? 3 : ((MyMartialDataList.Count) % 4 - 1); //如果新行数大于旧的行数,添加新的一行 if (lineCount <= PrevLineCount) { MartialItemAreaList[lineCount].AddItem(lineCount, index, this); } else { GameObject itemLine = NGUITools.AddChild(Grid.gameObject, MartialItemAreaPrefab); QinglongMartialItemArea itemArea = itemLine.GetComponent <QinglongMartialItemArea>(); itemArea.AddItem(lineCount, index, this); MartialItemAreaList.Add(itemArea); Grid.repositionNow = true; PrevLineCount += 1; } }
/// <summary> /// 武学学习或升级结果,更新武学列表 /// </summary> /// <param name="sMsgActionStudyWuXue_SC">S message action study wu xue_ S.</param> public void UpdatePlayerMartialData(SMsgAcitonStudyWuXue_SC sMsgActionStudyWuXue_SC) { int martialID = sMsgActionStudyWuXue_SC.dwWuXueID; byte martialLevel = sMsgActionStudyWuXue_SC.byWuXueLevel; MartialIndex martialIndex = new MartialIndex() { MartialArtsID = martialID, MartialArtsLevel = (int)martialLevel - 1 }; PlayerMartialArtsData martialArtsData = PlayerDataManager.Instance.GetPlayerMartialArtConfigData(martialIndex); if (martialArtsData.MartialArtsUnlock != 0) //如果有解锁新武学 { MartialDataList.Add(new SSendWuXueData() { dwWuXueID = martialArtsData.MartialArtsUnlock, byWuXueLevel = 0 }); } for (int i = 0; i < MartialDataList.Count; i++) { if (MartialDataList[i].dwWuXueID == martialID) { SSendWuXueData tempData = new SSendWuXueData() { dwWuXueID = martialID, byWuXueLevel = martialLevel }; MartialDataList[i] = tempData; break; } } }
/// <summary> /// 初始化 /// </summary> /// <param name="SendWuXueData">Send wu xue data.</param> /// <param name="Callback">Callback.</param> public void Init(SSendWuXueData SendWuXueData, ButtonCallBack Callback) { MartialIndex martialIndex = new MartialIndex() { MartialArtsID = SendWuXueData.dwWuXueID, MartialArtsLevel = SendWuXueData.byWuXueLevel }; PlayerMartialData = PlayerDataManager.Instance.GetPlayerMartialArtConfigData(martialIndex); MartialId = SendWuXueData.dwWuXueID; GameObject Icon = UI.CreatObjectToNGUI.InstantiateObj(PlayerMartialData.MartialArtsIconPrefab, IconPoint); this.gameObject.GetComponent <SingleButtonCallBack>().SetCallBackFuntion(Callback, MartialId); UpdateIconBg(SendWuXueData.byWuXueLevel); UpdateLevel(SendWuXueData.dwWuXueID); UpdateArrow(); }