60 lines
1.5 KiB
C#

using System;
using System.Collections.Generic;
using Logic.CrashSight;
using Logic.HeroTask;
using UnityEngine;
using RuntimeData;
using Logic.Multilingual;
using Logic.Skill;
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 GridSpType SpType;
public List<SkillType> SkillList;
[MultilingualField] public string SkillName;
[MultilingualField] public string Desc;
public List<UnitFullType> UnitFullTypes;
public List<SanaeDivineType> TargetBuff;
}