using Codice.CM.Common; using Core.Utility; using Excel2Json; using Fort23.UTool; using UnityEngine; using ItemInfo = GameLogic.Bag.ItemInfo; namespace GameLogic.Equipment { public class EquipmentInfo { /// /// guid= itemID + eLv + quality /// 这几个值一样,那装备的属性就一定相同 /// 后续要做特殊装备的话,在加新的字段,以及根据新资源,来组合新guid /// public string guid; public HeroBasicEquipConfig basicEquipConfig; public ItemConfig itemConfig; // public ItemInfo itemInfo; public int count; public int quality; public int ownerID; public int level; public int Attack => m_Attack; public int Defense => m_Defense; public int Hp => m_HP; private int m_Attack; private int m_Defense; private int m_HP; private ItemInfo myItemInfo; public void InitEquipment(ItemInfo modelInfo, ItemInfo lvInfo, ItemInfo qualityInfo) { //有效性检查 if (//modelInfo.dropItemConfig.dropItemType != 1 && lvInfo.dropItemConfig.dropItemType != 3 && qualityInfo.dropItemConfig.dropItemType != 2) { string errorTip = "modelInfo.dropItemConfig.dropItemType=" + modelInfo.dropItemConfig.dropItemType + " |lvInfo.dropItemConfig.dropItemType" + lvInfo.dropItemConfig.dropItemType + " |qualityInfo.dropItemConfig.dropItemType" + qualityInfo.dropItemConfig.dropItemType; LogTool.Error(errorTip); } myItemInfo = modelInfo; InitEquipment(modelInfo.config, lvInfo.dropItemConfig.itemID[0], qualityInfo.dropItemConfig.itemID[0]); } public void InitEquipment(ItemConfig itemConfig, int eLv, int quality) { // itemInfo = new ItemInfo(itemID); // itemConfig = ConfigComponent.Instance.Get(itemID); this.itemConfig = itemConfig; this.quality = quality; // int equipmentConfigID = itemConfig.itemParam[0] * 10000 + itemConfig.itemParam[1] * 1000 + eLv; int equipmentConfigID = GlobalParam.GenerateEquipmentID(itemConfig.itemParam[0], itemConfig.itemParam[1], eLv, PlayerManager.Instance.heroController.mainLevel); level = eLv; basicEquipConfig = ConfigComponent.Instance.Get(equipmentConfigID); // guid = GlobalParam.GenerateGUID(); myItemInfo.guid = itemConfig.ID.ToString() + basicEquipConfig.lv + quality; CalAtt(); } public void CalAtt() { // m_Attack = basicEquipConfig.att // foreach (int attTyp in basicEquipConfig.AttType) for(int i=0; i < basicEquipConfig.AttType.Length; i++) { int attTyp = basicEquipConfig.AttType[i]; int value = Mathf.RoundToInt( basicEquipConfig.AttValue[i] * PlayerManager.Instance.eqController. GetEquipmentRarityAttributeFactor(quality)); switch (attTyp) { case 1: m_HP = value; break; case 2: m_Attack = value; break; case 3: m_Defense = value; break; } } } public AccountFileInfo.EqData ToData() { AccountFileInfo.EqData eqData = new AccountFileInfo.EqData { guid = guid, count = count, itemConfigID = itemConfig.ID, level = level, quality = quality, ownerID = ownerID }; return eqData; } } }