2025-06-25 20:40:51 +08:00

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;
}