private void OnStrengthenClick(GameObject go) { GTAudioManager.Instance.PlayEffectAudio(GTAudioKey.SOUND_UI_CLICK); XGem gem = GTDataManager.Instance.GetGemDataByPos(mPosType, mPos); GTNetworkSend.Instance.TryStrengthGem(gem, mStrengthenMats); }
public void ShowInfoByPos(EPosType posType, int pos) { this.mPos = pos; this.mPosType = posType; bool isDress = (posType == EPosType.RoleGem); ShowDress(isDress); XGem gem = GTDataManager.Instance.GetGemDataByPos(posType, pos); int itemID = gem.Id; DGem gemDB = ReadCfgGem.GetDataById(itemID); gemLevel.text = GTTools.Format("等级 {0}", gem.StrengthenLevel); gemFightValue.text = GTTools.Format("战斗力 {0}", AttrHelper.GetFightValue(gem)); ShowBaseView(itemID); GTItemHelper.ShowGemPropertyText(gemPropertys, itemID, gem.StrengthenLevel); DGemSuit suitDB = ReadCfgGemSuit.GetDataById(gemDB.Suit); int activeSuitNum = isDress ? GemModule.Instance.GetActiveSameSuitsCountByPos(pos) : 0; bool hasSuit = ReadCfgGemSuit.ContainsKey(gemDB.Suit); if (hasSuit) { ShowHasSuit(gemDB); ShowSuitPropertysView(activeSuitNum, suitDB); ShowSameSuitGemsView(gemDB.Id); } else { ShowNoSuit(); } }
public void TryStrengthGem(XGem gem, List <XItem> list) { if (MLGem.Instance.IsFullStrengthenLevel(gem)) { GTItemHelper.ShowTip("宝石强化等级已满"); return; } if (list.Count == 0) { GTItemHelper.ShowTip("请添加升级材料"); return; } int exp = MLGem.Instance.GetExpByStrengthMatList(list); if (GTItemHelper.CheckItemEnongh(1, exp) == false) { return; } ReqStrengthGem req = new ReqStrengthGem(); req.TarGem = gem; req.UseItems.AddRange(list); NetworkManager.Instance.Send <ReqStrengthGem>(MessageID.MSG_REQ_STRENGTHEN_GEM, req); }
public bool IsCanBeUseAsStrengthenMatToAutoAdd(XItem item) { XGem gem = DataDBSGem.GetDataById(item.Instance); DGem gemDB = ReadCfgGem.GetDataById(gem.Id); return(gemDB.Quality < 3); }
public static Dictionary <EAttr, int> GetAllGemPropertysByIndex(int index) { if (!DataDBSDressEquip.ContainsKey(index)) { return(New()); } Dictionary <EAttr, int> attrValues = New(); for (int i = 1; i <= 5; i++) { int gemPos = MLGem.Instance.GetDressGemPosByIndexAndTargetPos(index, i); XItem item = DataDBSDressGem.GetDataById(gemPos); if (item == null) { continue; } XGem gem = DataDBSGem.GetDataById(item.Instance); if (gem != null) { continue; } CalcGemStrenthLevel(attrValues, gem); } CalcMaxAttrValue(ref attrValues); return(attrValues); }
public void AddNewGem(int instanceId, int id) { int newPos = GetNewPos(EBagType.GEM); if (newPos == 0) { return; } XItem item = new XItem(); item.Instance = instanceId; item.Pos = newPos; item.Id = id; item.Num = 1; item.PosType = (int)EPosType.BagGem; DataBagGem.Insert(newPos, item); XGem gem = new XGem(); gem.Instance = instanceId; gem.Id = id; gem.StrengthenLevel = 0; gem.StrengthenExp = 0; DataGem.Insert(instanceId, gem); }
static void CalcAllGemPropertys(Dictionary <EAttr, int> dict) { Dictionary <int, XItem> .Enumerator em = DataDBSDressGem.Dict.GetEnumerator(); while (em.MoveNext()) { int dressPos = em.Current.Key; int index = MLGem.Instance.GetIndexByDressGemPos(dressPos); if (!DataDBSDressEquip.ContainsKey(index)) { continue; } int instanceID = em.Current.Value.Instance; if (!DataDBSGem.ContainsKey(instanceID)) { continue; } XGem gem = DataDBSGem.GetDataById(instanceID); Dictionary <EAttr, int> .Enumerator em2 = GetPropertys(gem).GetEnumerator(); while (em2.MoveNext()) { dict[em2.Current.Key] += em2.Current.Value; } em2.Dispose(); } em.Dispose(); }
public static int GetFightValue(XGem gem) { Dictionary <EAttr, int> attrValues = GetPropertys(gem); int value = GetFightValue(attrValues); return(value); }
private void OnAutoToAddMatClick(GameObject go) { GTAudioManager.Instance.PlayEffectAudio(GTAudioKey.SOUND_UI_CLICK); XGem gem = GTDataManager.Instance.GetGemDataByPos(mPosType, mPos); mStrengthenMats = MLGem.Instance.GetItemListToOneKeyStrengthen(gem); ShowView(); }
public static Dictionary <EAttr, int> GetPropertys(XGem gem) { Dictionary <EAttr, int> attrValues = New(); CalcGemStrenthLevel(attrValues, gem); CalcMaxAttrValue(ref attrValues); return(attrValues); }
public XGem Clone() { XGem gem = new XGem(); gem.Instance = Instance; gem.Id = Id; gem.StrengthenLevel = StrengthenLevel; gem.StrengthenExp = StrengthenExp; return(gem); }
public static XGem CreateGem(int id, int instance) { XGem tab = new XGem(); tab.Id = id; tab.Instance = instance; tab.StrengthenLevel = 0; tab.StrengthenExp = 0; return(tab); }
public int GetExpByXGem(XGem gem) { DGem gemDB = ReadCfgGem.GetDataById(gem.Id); int exp = gem.StrengthenExp + gemDB.Exp; int lv = gem.StrengthenLevel; for (int i = 0; i < lv; i++) { DGemLevel db = ReadCfgGemLevel.GetDataById(gemDB.Quality * 1000 + gem.StrengthenLevel); exp += db.RequireExp; } return(exp); }
private void ShowView() { labMoneyNum1.text = GTDataManager.Instance.GetItemCountById(1).ToString(); labMoneyNum2.text = GTDataManager.Instance.GetItemCountById(2).ToString(); GTItemHelper.ShowItemTexture(moneyTexture1, 1); GTItemHelper.ShowItemTexture(moneyTexture2, 2); XGem gem = GTDataManager.Instance.GetGemDataByPos(mPosType, mPos); int itemID = gem.Id; GTItemHelper.ShowItemTexture(gemTexture, itemID); GTItemHelper.ShowItemQuality(gemQuality, itemID); GTItemHelper.ShowItemName(gemName, itemID); int costgemNum = mStrengthenMats.Count; for (int i = 0; i < mStrengthenItems.Count; i++) { ItemStrengthen cell = mStrengthenItems[i]; if (i < costgemNum) { XItem mat = mStrengthenMats[i]; cell.Show(true); int id = mStrengthenMats[i].Id; GTItemHelper.ShowItemTexture(cell.itemTexture, id); GTItemHelper.ShowItemQuality(cell.itemQuality, id); GTItemHelper.ShowItemNum(cell.itemNum, mat.Num); } else { cell.Show(false); } } if (GemModule.Instance.IsFullStrengthenLevel(gem) == true) { return; } DGem gemDB = ReadCfgGem.GetDataById(itemID); DGemLevel levelDB = ReadCfgGemLevel.GetDataById(gemDB.Quality * 1000 + gem.StrengthenLevel + 1); int addExpNum = GemModule.Instance.GetExpByStrengthMatList(mStrengthenMats); GTItemHelper.ShowItemTexture(costMoneyTexture, levelDB.CostMoneyId); costMoneyNum.text = addExpNum.ToString(); gemLevel.text = GTTools.Format("强化等级 {0}", gem.StrengthenLevel); GTItemHelper.ShowProgressText(gemExpNum, gem.StrengthenExp, levelDB.RequireExp); GTItemHelper.ShowProgressSlider(gemExpBar, gem.StrengthenExp, levelDB.RequireExp); GTItemHelper.ShowGemPropertyText(gemProperty, itemID, gem.StrengthenLevel, true); gemSuit.text = GemModule.Instance.GetGemSuitName(itemID); gemType.text = GemModule.Instance.GetGemTypeName(itemID); }
public XGem GetGemDataByPos(EPosType posType, int pos) { Dictionary <int, XItem> dict = GetItemDataByPosType(posType); XItem item = null; dict.TryGetValue(pos, out item); if (item == null) { return(null); } XGem gem = null; DataDBSGem.Dict.TryGetValue(item.Instance, out gem); return(gem); }
public List <XItem> GetItemListToOneKeyStrengthen(XGem gem) { List <XItem> list = new List <XItem>(); Dictionary <int, XItem> bagItems = GTDataManager.Instance.GetItemDataByPosType(EPosType.BagItem); HashSet <int> .Enumerator em = mStrengHashSet.GetEnumerator(); while (em.MoveNext()) { int id = em.Current; XItem data = GTDataManager.Instance.GetItemDataById(id); if (data == null || list.Count > 0) { continue; } int num = data.Num; for (int i = 0; i < data.Num; i++) { if (num == 0 || list.Count >= 6) { break; } else { XItem newData = new XItem(); newData.Id = data.Id; newData.Instance = data.Instance; newData.Pos = data.Pos; newData.PosType = data.PosType; newData.Num = 1; list.Add(newData); num--; } } } List <XItem> pGemList = GetAllGemList(gem); for (int i = 0; i < pGemList.Count; i++) { if (list.Count >= 6) { break; } XItem item = pGemList[i]; list.Add(item); } return(list); }
private void OnAck_StrengthGem(MessageRecv obj) { System.IO.MemoryStream ms = new System.IO.MemoryStream(obj.Data); AckStrengthGem ack = Serializer.Deserialize <AckStrengthGem>(ms); XGem gem = ack.TarGem; List <XItem> list = ack.UseItems; DGem gemDB = ReadCfgGem.GetDataById(gem.Id); int addExpNum = MLGem.Instance.GetExpByStrengthMatList(list); int strengthenLevel = gem.StrengthenLevel; int levelID = gemDB.Quality * 1000 + strengthenLevel + 1; DGemLevel db = ReadCfgGemLevel.GetDataById(levelID); int expNum = db.RequireExp - gem.StrengthenExp; while (addExpNum >= expNum) { strengthenLevel++; levelID = gemDB.Quality * 1000 + strengthenLevel + 1; db = ReadCfgGemLevel.GetDataById(levelID); expNum += db.RequireExp; } gem.StrengthenLevel = strengthenLevel; gem.StrengthenExp = addExpNum + db.RequireExp - expNum; DataDBSGem.Update(gem.Instance, gem); GTDataManager.Instance.UseMoney(db.CostMoneyId, expNum); for (int i = 0; i < list.Count; i++) { XItem item = list[i]; EPosType posType = (EPosType)item.PosType; switch (posType) { case EPosType.BagItem: GTDataManager.Instance.UseItemById(item.Id, item.Num); break; case EPosType.BagGem: GTDataManager.Instance.DelBagGem(item.Pos); break; } } GTWorld.Instance.SyncMainPlayerData(ESyncDataType.TYPE_BASEATTR); GTEventCenter.FireEvent(GTEventID.TYPE_BAG_STRENGTHEN_GEM); GTEventCenter.FireEvent(GTEventID.TYPE_CHANGE_FIGHTVALUE); }
public XGem GetXGemByPos(EPosType posType, int pos) { Dictionary <int, XItem> dict = GetItemDataByPosType(posType); if (!dict.ContainsKey(pos)) { return(null); } XItem itemPos = dict[pos]; XGem gem = null; if (Gems.ContainsKey(itemPos.Instance)) { gem = Gems[itemPos.Instance]; } return(gem); }
private void ShowGemCellView(int pos) { int gemPos = GemModule.Instance.GetDressGemPosByIndexAndTargetPos(mCurIndex, pos); ItemGem cell = mGItems[pos - 1]; XGem gem = GTDataManager.Instance.GetGemDataByPos(EPosType.RoleGem, gemPos); if (gem == null) { cell.Show(false); } else { cell.Show(true); GTItemHelper.ShowItemTexture(cell.itemTexture, gem.Id); GTItemHelper.ShowItemQuality(cell.itemQuality, gem.Id); } }
public List <XItem> GetAllGemList(XGem gem) { List <XItem> list = new List <XItem>(); Dictionary <int, XItem> .Enumerator em = DataDBSBagGem.Dict.GetEnumerator(); while (em.MoveNext()) { if (em.Current.Value.Instance == gem.Instance) { continue; } XItem item = em.Current.Value; list.Add(item); } em.Dispose(); list.Sort(CompareXGem); return(list); }
static void CalcGemStrenthLevel(Dictionary <EAttr, int> dict, XGem gem) { DGem gemDB = ReadCfgGem.GetDataById(gem.Id); DGemLevel db = ReadCfgGemLevel.GetDataById(gemDB.Quality * 1000 + gem.StrengthenLevel); for (int i = 0; i < gemDB.Propertys.Count; i++) { DStrengthValue gp = gemDB.Propertys[i]; if (gem.StrengthenLevel >= gp.UnlockLevel) { dict[gp.Property] += gp.Value; int ratio = gem.StrengthenLevel > 0 ? db.PropertyRatio : 100; dict[gp.Property] = (int)(dict[gp.Property] * ratio / 100f); } else { break; } } }
public int CompareXGem(XItem x1, XItem x2) { XGem e1 = DataDBSGem.GetDataById(x1.Instance); XGem e2 = DataDBSGem.GetDataById(x2.Instance); DGem db1 = ReadCfgGem.GetDataById(e1.Id); DGem db2 = ReadCfgGem.GetDataById(e2.Id); if (db1.Quality != db2.Quality) { return(db1.Quality - db2.Quality); } if (e1.StrengthenLevel != e2.StrengthenLevel) { return(e1.StrengthenLevel - e2.StrengthenLevel); } if (e1.StrengthenExp != e2.StrengthenExp) { return(e1.StrengthenExp - e2.StrengthenExp); } return(x2.Pos - x1.Pos); }
public int GetExpByStrengthMatList(List <XItem> list) { int value = 0; for (int i = 0; i < list.Count; i++) { XItem item = list[i]; switch ((EPosType)item.PosType) { case EPosType.BagItem: DItem itemDB = ReadCfgItem.GetDataById(item.Id); value += itemDB.Data1 * item.Num; break; case EPosType.BagGem: XGem gem = DataDBSGem.GetDataById(item.Instance); value += GetExpByXGem(gem); break; } } return(value); }
public int CompareBagGem(XItem x1, XItem x2) { DItem itemDB1 = ReadCfgItem.GetDataById(x1.Id); DItem itemDB2 = ReadCfgItem.GetDataById(x2.Id); if (itemDB1.Quality != itemDB2.Quality) { return(itemDB2.Quality - itemDB1.Quality); } if (itemDB1.Id != itemDB2.Id) { return(itemDB1.Id - itemDB2.Id); } XGem gem1 = DataDBSGem.GetDataById(x1.Instance); XGem gem2 = DataDBSGem.GetDataById(x2.Instance); if (gem1.StrengthenLevel != gem2.StrengthenLevel) { return(gem1.StrengthenLevel - gem2.StrengthenLevel); } return(x1.Instance - x2.Instance); }
public XCharacter GetMainPlayer() { XCharacter c = GetCurPlayer(); c.Equips.Clear(); Dictionary <int, XItem> .Enumerator em1 = DataDBSDressEquip.Dict.GetEnumerator(); while (em1.MoveNext()) { XEquip it = GTDataManager.Instance.GetEquipDataByPos(EPosType.RoleEquip, em1.Current.Value.Pos); if (it != null) { c.Equips.Add(it); } } em1.Dispose(); c.Gems.Clear(); Dictionary <int, XItem> .Enumerator em2 = DataDBSDressGem.Dict.GetEnumerator(); while (em2.MoveNext()) { XGem it = GTDataManager.Instance.GetGemDataByPos(EPosType.RoleGem, em1.Current.Value.Pos); if (it != null) { c.Gems.Add(it); } } em2.Dispose(); c.BaseAttr.Clear(); c.CurrAttr.Clear(); c.BaseAttr.AddRange(AttrHelper.GetPropertys(c).Values); for (int i = 0; i < c.BaseAttr.Count; i++) { c.CurrAttr.Add(c.BaseAttr[i]); } return(c); }
public int GetActiveSameSuitsCountByPos(int pos) { if (!DataDBSDressGem.ContainsKey(pos)) { return(0); } XItem dressGem = DataDBSDressGem.GetDataById(pos); if (!DataDBSGem.ContainsKey(dressGem.Instance)) { return(0); } XGem gem = DataDBSGem.GetDataById(dressGem.Instance); int p = (int)(pos / 5.1f); List <int> sameSuits = GetSameSuitIDListByID(gem.Id); int count = 0; for (int i = 0; i < sameSuits.Count; i++) { int suitPos = p * 5 + i + 1; if (!DataDBSDressGem.ContainsKey(suitPos)) { continue; } XItem item = DataDBSDressGem.GetDataById(suitPos); if (!DataDBSGem.ContainsKey(item.Instance)) { continue; } XGem g = DataDBSGem.GetDataById(item.Instance); if (sameSuits.Contains(g.Id)) { count++; } } return(count); }
public bool IsFullStrengthenLevel(XGem gem) { return(gem.StrengthenLevel >= 120); }