#pragma once
#include "EngineFrame/Component/Component.h"
#include "Global/Global_Enum.h"
class Equipment : public Component
{
public:
    // 职业动画结构体
    struct JobAnimation
    {
        // 图层
        int Layer;
        // 动画组名称
        std::string AnimationGroup;
        // IMG替换编号
        std::vector<int> ImgFormat = {0, 0};
    };

public:
    // 装备在PVF中的路径
    std::string m_EquipmentPath;

    // 装备的品质
    int m_Quality = -1;

public:
    // 编号
    int Index = -1;
    // 名字
    std::string Name;
    // 别名
    std::string Name2;
    // 等级组
    int Grade = -1;
    // 稀有度
    int Rarity = -1;
    // 可用职业
    std::map<int, bool> UsableJob;
    // 交易类型
    ATTACH_TYPE TradeType;
    // 最小佩戴等级
    int MinimumLevel = 1;
    // 价值
    int Price = 0;
    // 维修价格
    int RepairPrice = 0;

    // 职业动画
    std::map<int, std::vector<JobAnimation>> JobAni;

    // 装备的属性

public:
    // 通过职业名字获取职业编号
    int GetJobIndex(std::string JobName);
    // 通过交易类型文字获取枚举值
    ATTACH_TYPE GetTradeType(std::string TradeType);
    bool IsEmpty();
    void Init(int Index);
    void Init(int Index, int Quality);
    // 通过装备编号构造装备
    void ConstructionByIndex(int Index);
};
