#pragma once
#include <string>
#include <vector>
#include <map>
namespace GlobalCharacterScript
{

    // 职业配置
    struct JobConfig
    {
        // 职业名称
        std::string name;
        // HP最大值
        float maxHP;
        // MP最大值
        float maxMP;
        // HP恢复速率
        float hpRecoverRate;
        // MP恢复速率
        float mpRecoverRate;
        // 力量
        float strength;
        // 智力
        float intelligence;
        // 体力
        float stamina;
        // 精神
        float spirit;
        // 移动速度
        float moveSpeed;
        // 攻击速度
        float attackSpeed;
        // 释放速度
        float castSpeed;
        // 硬直
        float stunResist;
        // 跳跃力
        float jumpPower;
        // 跳跃速度
        float jumpSpeed;
        // 火属性抗性
        float fireResist;
        // 冰属性抗性
        float iceResist;
        // 光属性抗性
        float lightResist;
        // 暗属性抗性
        float darkResist;

        // 初始技能列表
        std::vector<int> skillList;
        // 默认时装列表
        std::map<std::string, int> defaultAvatarList;
    };

    // 角色类信息
    struct CharacterConfig
    {
        // 基础职业标识
        std::string jobTag;
        // 基础职业路径
        std::string baseGrowtypePath;
        // 基础职业配置
        JobConfig baseJobConfig;
        // 转职配置路径
        std::vector<std::string> growtypePath;
        // 转职职业配置
        std::vector<JobConfig> growtypeJobConfig;
        //  动画路径
        std::map<std::string, std::string> animationPath;
    };

    // 读取角色Lst信息
    std::vector<CharacterConfig> InitCharacterLst();
    // 读取角色信息
    CharacterConfig InitCharacterConfig(std::string JobInfoPath);
    // 读取职业信息
    JobConfig InitJobConfig(std::string JobConfigPath);
}