//int SortItem(int a, int b) { // ItemConfigInfo infoA = ConfigReader.ItemXmlInfoDict[a]; // ItemConfigInfo infoB = ConfigReader.ItemXmlInfoDict[b]; // if (infoA.n32CPCost < infoB.n32CPCost) // { // return -1; // } // else if (infoA.n32CPCost > infoB.n32CPCost) // { // return 1; // } // Debug.LogError("infoA.n32CPCost = " + infoA.GoodsId); // Debug.LogError("infoB.n32CPCost = " + infoB.GoodsId); // return -1; //} List <int> SortItemByPrice(List <int> itemList) { List <int> itemReturn = new List <int>(); itemReturn.AddRange(itemList); for (int i = 0; i < itemReturn.Count; i++) { for (int j = 0; j < itemReturn.Count - 1 - i; j++) { if (!ConfigReader.ItemXmlInfoDict.ContainsKey(itemReturn[j]) || !ConfigReader.ItemXmlInfoDict.ContainsKey(itemReturn[j + 1])) { continue; } ItemConfigInfo infoA = ConfigReader.ItemXmlInfoDict[itemReturn[j]]; ItemConfigInfo infoB = ConfigReader.ItemXmlInfoDict[itemReturn[j + 1]]; if (infoA.n32CPCost > infoB.n32CPCost) { int temp = itemReturn[j]; itemReturn[j] = itemReturn[j + 1]; itemReturn[j + 1] = temp; } } } return(itemReturn); }
private float GetAsignedItemsMoney(int itemId) { if (!ConfigReader.ItemXmlInfoDict.ContainsKey(itemId)) { return(0f); } ItemConfigInfo info = ConfigReader.ItemXmlInfoDict[itemId]; return(info.n32CPCost); }
public void ShowItemDestribe(int itemId) { itemDes.Clear(); if (!ConfigReader.ItemXmlInfoDict.ContainsKey(itemId)) { return; } ItemConfigInfo info = ConfigReader.ItemXmlInfoDict[itemId]; itemIcon.spriteName = info.sIcon; itemName.text = info.sNameCh; itemDes.Add(info.sDescribe); ItemId = itemId; ShowMoney(itemId); }
public void OpenItemDestribe(bool show, int id) { if (show) { if (ConfigReader.ItemXmlInfoDict.ContainsKey(id)) { ItemConfigInfo item = ConfigReader.ItemXmlInfoDict[id]; ItemName.text = item.sNameCh; ItemCost.text = item.n32CPCost.ToString(); ItemDes.text = item.sDescribe; active = true; } } else { active = false; } }
public void OpenItemDestribe(bool show, int id) { if (show) { if (ConfigReader.ItemXmlInfoDict.ContainsKey(id)) { ItemConfigInfo item = ConfigReader.ItemXmlInfoDict[id]; ItemName.text = item.sNameCh; ItemCost.text = item.n32CPCost.ToString(); ItemDes.text = item.sDescribe; this.gameObject.SetActive(true); } } else { this.gameObject.SetActive(false);; } }
private void ShowMoney(int itemId) { if (!ConfigReader.CombineXmlInfoDict.ContainsKey(itemId) || !ConfigReader.ItemXmlInfoDict.ContainsKey(itemId)) { return; } CombineConfigInfo comInfo = ConfigReader.CombineXmlInfoDict[itemId]; ItemConfigInfo info = ConfigReader.ItemXmlInfoDict[itemId]; if (comInfo.un32ChildID1 == 0 || comInfo.un32ChildID2 == 0) { itemMoney.text = info.n32CPCost.ToString(); } else { float moneyCut = info.n32CPCost; CutComMoney(ref moneyCut, itemId); itemMoney.text = moneyCut.ToString(); } }
private void CutComMoney(ref float money, int itemId) { if (!ConfigReader.CombineXmlInfoDict.ContainsKey(itemId) || !ConfigReader.ItemXmlInfoDict.ContainsKey(itemId)) { return; } CombineConfigInfo comInfo = ConfigReader.CombineXmlInfoDict[itemId]; ItemConfigInfo info = ConfigReader.ItemXmlInfoDict[itemId]; if (comInfo.un32ChildID1 == 0 || comInfo.un32ChildID2 == 0) { return; } if (ContainAsignedItems(comInfo.un32ChildID1).Count != 0) { money -= GetAsignedItemsMoney(comInfo.un32ChildID1); } else { CutComMoney(ref money, comInfo.un32ChildID1); } bool canCut = true; int count = ContainAsignedItems(comInfo.un32ChildID2).Count; if (comInfo.un32ChildID2 == comInfo.un32ChildID1 && count == 1) { canCut = false; } if (canCut) { if (ContainAsignedItems(comInfo.un32ChildID2).Count != 0) { money -= GetAsignedItemsMoney(comInfo.un32ChildID2); } else { CutComMoney(ref money, comInfo.un32ChildID2); } } }
public ReadItemConfig(string xmlFilePath) { //TextAsset xmlfile = Resources.Load(xmlFilePath) as TextAsset; ResourceItem xmlfileUnit = ResourcesManager.Instance.loadImmediate(xmlFilePath, ResourceType.ASSET); TextAsset xmlfile = xmlfileUnit.Asset as TextAsset; if (!xmlfile) { //Debug.LogError(" error infos: 没有找到指定的xml文件:" + xmlFilePath); } xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xmlfile.text); XmlNodeList infoNodeList = xmlDoc.SelectSingleNode("ItemCfg ").ChildNodes; for (int i = 0; i < infoNodeList.Count; i++) { XmlAttribute xmlAttr = (infoNodeList[i] as XmlElement).GetAttributeNode("un32GoodsID"); if (xmlAttr == null) { continue; } string itemId = xmlAttr.InnerText; ItemConfigInfo itemInfo = new ItemConfigInfo(); itemInfo.GoodsId = Convert.ToInt32(itemId); foreach (XmlElement xEle in infoNodeList[i].ChildNodes) { #region 搜索 switch (xEle.Name) { case "sNameID": itemInfo.sNameID = xEle.InnerText; break; case "sNameCh": itemInfo.sNameCh = xEle.InnerText; break; case "un8TypeID": itemInfo.un8TypeID = Convert.ToInt32(xEle.InnerText); break; case "attributeKeyList": itemInfo.attributeKeyList = GameDefine.GameMethod.ResolveToIntList(xEle.InnerText); break; case "attributeValList": itemInfo.attributeValList = GameDefine.GameMethod.ResolveToFloatList(xEle.InnerText); break; case "un8UseTimes": itemInfo.un8UseTimes = Convert.ToInt32(xEle.InnerText); break; case "bDestroyAfterUsed": itemInfo.bDestroyAfterUsed = Convert.ToInt32(xEle.InnerText); break; case "un32SkillID": itemInfo.un32SkillID = Convert.ToInt32(xEle.InnerText); break; case "bUsedAfterBuyed": itemInfo.bUsedAfterBuyed = Convert.ToInt32(xEle.InnerText); break; case "sIcon": itemInfo.sIcon = xEle.InnerText; break; case "un32CdTime": itemInfo.un32CdTime = Convert.ToSingle(xEle.InnerText); break; case "bUniqueID": itemInfo.bUniqueID = Convert.ToInt32(xEle.InnerText); break; case "un8OverlapTimes": itemInfo.un8OverlapTimes = Convert.ToInt32(xEle.InnerText); break; case "un8CPCostType": itemInfo.un8CPCostType = Convert.ToInt32(xEle.InnerText); break; case "n32CPCost": itemInfo.n32CPCost = Convert.ToInt32(xEle.InnerText); break; case "un8FunctionType": itemInfo.un8FunctionType = Convert.ToInt32(xEle.InnerText); break; case "un32UniqueTypeID": itemInfo.un32UniqueTypeID = Convert.ToInt32(xEle.InnerText); break; case "sDescribe": itemInfo.sDescribe = xEle.InnerText; break; case "un32UseSoundID": itemInfo.un32UseSoundID = xEle.InnerText; break; } #endregion } ConfigReader.itemXmlInfoDict.Add(itemInfo.GoodsId, itemInfo); } }