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 isWear;
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;
isWear = eqData.isEquip;
basicEquipConfig = ConfigComponent.Instance.Get(eqData.zyEqId);
level = basicEquipConfig.lv;
quality = eqData.quality;
// CalAtt();
}
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;
// LogTool.Log("装备职业:"+ basicEquipConfig.profession +
// "-装备位置:" + basicEquipConfig.Type +
// "-装备品质:" + quality +
// "-装备等级:" + basicEquipConfig.lv);
// 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,
zyEqId = basicEquipConfig.ID,
quality = quality,
// zy = zy,
isEquip = isWear,
};
return eqData;
}
}
}