2025-09-15 01:55:22 +08:00

54 lines
1.3 KiB
C#

using System;
using System.Collections.Generic;
using Logic.CrashSight;
using Logic.HeroTask;
using UnityEngine;
using RuntimeData;
using Logic.Multilingual;
using TH1_Logic.HeroTask;
[Serializable]
[CreateAssetMenu(fileName = "HeroDataAssets", menuName = "TH1 Game Data/Hero Data Asset")]
public class HeroDataAssets : ScriptableObject
{
public List<HeroInfoData> HeroInfoList = new List<HeroInfoData>();
private Dictionary<GiantType, HeroInfoData> _heroDict = new Dictionary<GiantType, HeroInfoData>();
[NonSerialized]
private bool _initialized = false;
private void Init()
{
if (_initialized)
return;
foreach (var t in HeroInfoList)
{
_heroDict[t.GiantType] = t;
}
_initialized = true;
}
public bool GetHeroInfo(GiantType giantType,out HeroInfoData data)
{
Init();
return _heroDict.TryGetValue(giantType, out data);
}
}
[Serializable]
public class HeroInfoData
{
public GiantType GiantType;
[Header("每一级的英雄任务")]
public List<HeroTaskInfoData> TaskList;
}
[Serializable]
public class HeroTaskInfoData
{
public HeroTaskContentType taskContentType;
public uint Param;
public SkillType SkillParam;
public string SkillName;
[MultilingualField] public string Desc;
}