51 lines
1.3 KiB
C#
51 lines
1.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using RuntimeData;
|
|
using Logic.Multilingual;
|
|
|
|
|
|
[Serializable]
|
|
[CreateAssetMenu(fileName = "SkillDataAssets", menuName = "TH1 Game Data/Skill Data Asset")]
|
|
public class SkillDataAssets : ScriptableObject
|
|
{
|
|
public List<SkillInfo> SkillInfoList = new List<SkillInfo>();
|
|
|
|
private Dictionary<SkillType,SkillInfo> _skillDict = new Dictionary<SkillType, SkillInfo>();
|
|
|
|
[NonSerialized]
|
|
private bool _initialized = false;
|
|
|
|
private void Init()
|
|
{
|
|
if (_initialized)
|
|
return;
|
|
foreach(var t in SkillInfoList)
|
|
_skillDict[t.SkillType] = t;
|
|
_initialized = true;
|
|
}
|
|
|
|
public bool GetSkillInfo(SkillType skill, out SkillInfo skillInfo)
|
|
{
|
|
Init();
|
|
return _skillDict.TryGetValue(skill,out skillInfo);
|
|
}
|
|
|
|
public bool GetSkillDesc(SkillType skill, out String skillDesc)
|
|
{
|
|
Init();
|
|
skillDesc = "";
|
|
bool ret = _skillDict.TryGetValue(skill,out var skillInfo);
|
|
if (ret)
|
|
skillDesc = skillInfo.SkillDesc;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
[Serializable]
|
|
public class SkillInfo
|
|
{
|
|
public SkillType SkillType;
|
|
[MultilingualField]
|
|
public string SkillDesc;
|
|
} |