//--------------------------------------------------------
|
// [Author]: YYL
|
// [ Date ]: Friday, March 6, 2026
|
//--------------------------------------------------------
|
|
using System.Collections.Generic;
|
using System;
|
using UnityEngine;
|
using LitJson;
|
|
public partial class HeroConfig : ConfigBase<int, HeroConfig>
|
{
|
static HeroConfig()
|
{
|
// 访问过静态构造函数
|
visit = true;
|
}
|
|
public int HeroID;
|
public string Name;
|
public int PlayerCanUse;
|
public int OpenCollectionDay;
|
public int IsActLimit;
|
public int Country;
|
public int Quality;
|
public int Class;
|
public int Position;
|
public int[] SkinIDList;
|
public int AtkSkillID;
|
public int AngerSkillID;
|
public int DeathSFX;
|
public int HitSFX;
|
public int AtkInheritPer;
|
public int DefInheritPer;
|
public int HPInheritPer;
|
public Dictionary<int, int> BatAttrDict;
|
public int[] FetterIDList;
|
public float UIScale;
|
public string Desc;
|
public int RecruitBySelf;
|
public int Specialty;
|
public int HurtType;
|
public int[] Specialty2;
|
public int[] TalentList;
|
|
public override int LoadKey(string _key)
|
{
|
int key = GetKey(_key);
|
return key;
|
}
|
|
public override void LoadConfig(string input)
|
{
|
try {
|
string[] tables = input.Split('\t');
|
int.TryParse(tables[0],out HeroID);
|
|
Name = tables[1];
|
|
int.TryParse(tables[2],out PlayerCanUse);
|
|
int.TryParse(tables[3],out OpenCollectionDay);
|
|
int.TryParse(tables[4],out IsActLimit);
|
|
int.TryParse(tables[5],out Country);
|
|
int.TryParse(tables[6],out Quality);
|
|
int.TryParse(tables[7],out Class);
|
|
int.TryParse(tables[8],out Position);
|
|
if (tables[9].Contains("["))
|
{
|
SkinIDList = JsonMapper.ToObject<int[]>(tables[9]);
|
}
|
else
|
{
|
string[] SkinIDListStringArray = tables[9].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
|
SkinIDList = new int[SkinIDListStringArray.Length];
|
for (int i=0;i<SkinIDListStringArray.Length;i++)
|
{
|
int.TryParse(SkinIDListStringArray[i],out SkinIDList[i]);
|
}
|
}
|
|
int.TryParse(tables[10],out AtkSkillID);
|
|
int.TryParse(tables[11],out AngerSkillID);
|
|
int.TryParse(tables[12],out DeathSFX);
|
|
int.TryParse(tables[13],out HitSFX);
|
|
int.TryParse(tables[14],out AtkInheritPer);
|
|
int.TryParse(tables[15],out DefInheritPer);
|
|
int.TryParse(tables[16],out HPInheritPer);
|
|
BatAttrDict = ConfigParse.ParseIntDict(tables[17]);
|
|
if (tables[18].Contains("["))
|
{
|
FetterIDList = JsonMapper.ToObject<int[]>(tables[18]);
|
}
|
else
|
{
|
string[] FetterIDListStringArray = tables[18].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
|
FetterIDList = new int[FetterIDListStringArray.Length];
|
for (int i=0;i<FetterIDListStringArray.Length;i++)
|
{
|
int.TryParse(FetterIDListStringArray[i],out FetterIDList[i]);
|
}
|
}
|
|
float.TryParse(tables[19],out UIScale);
|
|
Desc = tables[20];
|
|
int.TryParse(tables[21],out RecruitBySelf);
|
|
int.TryParse(tables[22],out Specialty);
|
|
int.TryParse(tables[23],out HurtType);
|
|
if (tables[24].Contains("["))
|
{
|
Specialty2 = JsonMapper.ToObject<int[]>(tables[24]);
|
}
|
else
|
{
|
string[] Specialty2StringArray = tables[24].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
|
Specialty2 = new int[Specialty2StringArray.Length];
|
for (int i=0;i<Specialty2StringArray.Length;i++)
|
{
|
int.TryParse(Specialty2StringArray[i],out Specialty2[i]);
|
}
|
}
|
|
if (tables[25].Contains("["))
|
{
|
TalentList = JsonMapper.ToObject<int[]>(tables[25]);
|
}
|
else
|
{
|
string[] TalentListStringArray = tables[25].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
|
TalentList = new int[TalentListStringArray.Length];
|
for (int i=0;i<TalentListStringArray.Length;i++)
|
{
|
int.TryParse(TalentListStringArray[i],out TalentList[i]);
|
}
|
}
|
}
|
catch (Exception exception)
|
{
|
Debug.LogError(exception);
|
}
|
}
|
}
|