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 zy; public int level; public int dropLv; public bool isEquip; 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 EquipmentInfo(AccountFileInfo.EqData eqData, ItemInfo itemInfo) { myItemInfo = itemInfo; isEquip = eqData.isEquip; InitEquipment(eqData.itemConfigID, eqData.dropLv, eqData.quality); } public EquipmentInfo() { } 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.ID, lvInfo.dropItemConfig.itemID[0], qualityInfo.dropItemConfig.itemID[0]); } public void InitEquipment(int itemID, int dropLv, int quality) { // itemInfo = new ItemInfo(itemID); ItemConfig itemConfig = ConfigComponent.Instance.Get(itemID); // this.itemConfig = itemConfig; this.quality = quality; this.dropLv = dropLv; // int equipmentConfigID = itemConfig.itemParam[0] * 10000 + itemConfig.itemParam[1] * 1000 + eLv; int equipmentConfigID = GlobalParam.GenerateEquipmentID(itemConfig.itemParam[0], itemConfig.itemParam[1], dropLv, PlayerManager.Instance.heroController.mainLevel); basicEquipConfig = ConfigComponent.Instance.Get(equipmentConfigID); level = basicEquipConfig.lv; // 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 = myItemInfo.config.ID, dropLv = dropLv, quality = quality, // zy = zy, isEquip = isEquip, }; return eqData; } } }