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);
// }
}
}
}