using System.Collections.Generic; using Excel2Json; using Fort23.UTool; using GameLogic.Bag; using GameLogic.Player; using UnityEditor; namespace GameLogic.Equipment { // public struct public class EquipmentController { /// /// 所有的职业装备 /// public Dictionary>> zyEqDic = new Dictionary>>(); /// /// 已穿戴的装备 /// public Dictionary> equipZyEqDic = new Dictionary>(); // private long curGUID; public void Init() { // curGUID = AccountFileInfo.Instance.playerData.eqGUID; } /// /// 生成装备的GUID /// /// // public long GenerateGUID() // { // curGUID++; // AccountFileInfo.Instance.playerData.eqGUID = curGUID; // AccountFileInfo.Instance.SavePlayerData(); // return curGUID; // } /// /// 通过品质获取装备的额外参数,装备属性会叠加这个值 /// /// /// public float GetEquipmentRarityAttributeFactor(int quality) { int[] factors = PlayerManager.Instance.gameConstantConfig.equipmentRarityAttributeFactor; return factors[quality - 1] / (float)100; } public ItemInfo BuildEquipment(int equipModelDropID, int qualityDropID, int lvDropID) { ItemInfo info = null; List equipModelDropItems = DropManager.Instance.DropItem(equipModelDropID); if (equipModelDropItems == null || equipModelDropItems.Count == 0) { return info; } ItemInfo equipModelInfo = equipModelDropItems[0]; List qualityDropItems = DropManager.Instance.DropItem(qualityDropID); List lvDropItems = DropManager.Instance.DropItem(lvDropID); info = equipModelInfo; info.eqInfo = new EquipmentInfo(); // info.eqInfo.InitEquipment(info.config, // lvDropItems[0].dropItemConfig.itemID[0], // qualityDropItems[0].dropItemConfig.itemID[0]); info.eqInfo.InitEquipment(equipModelInfo, lvDropItems[0], qualityDropItems[0]); return info; } /// /// 穿职业装备 /// /// public void EquipZyEqs(int zy) { if (zyEqDic.TryGetValue(zy, out equipZyEqDic)) { // List eqList = zyEqDic[zy]; // foreach (ItemInfo eqItemInfo in eqList) // { // // } } } public void AddEquipment(ItemInfo eqItemInfo) { if (eqItemInfo.eqInfo == null) { return; } int pro = eqItemInfo.eqInfo.basicEquipConfig.profession; int bw = eqItemInfo.eqInfo.basicEquipConfig.Type; if (zyEqDic.TryGetValue(pro, out var bwDic)) { if (bwDic.ContainsKey(bw)) { bwDic[bw].Add(eqItemInfo); } else { List eqBwList = new List(); eqBwList.Add(eqItemInfo); bwDic.Add(bw, eqBwList); } } else { bwDic = new Dictionary>(); List eqBwList = new List(); eqBwList.Add(eqItemInfo); bwDic.Add(bw, eqBwList); zyEqDic.Add(pro, bwDic); // zyEqDic.Add(pro, new List()); // zyEqDic[pro].Add(eqItemInfo); } } public void RemoveEquipment(ItemInfo eqItemInfo) { if (eqItemInfo.eqInfo == null) { return; } int pro = eqItemInfo.eqInfo.basicEquipConfig.profession; // if (zyEqDic.ContainsKey(pro) && zyEqDic[pro].Contains(eqItemInfo)) // { // zyEqDic[pro].Remove(eqItemInfo); // } // else // { // LogTool.Error("移除一个在背包不存在的,装备: guid=" + eqItemInfo.guid + " 职业=" + pro); // } } } }