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 SkillInfoList = new List(); private Dictionary _skillDict = new Dictionary(); [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; }