2025-06-26 20:11:17 +08:00

69 lines
1.7 KiB
C#

using System;
using System.Collections.Generic;
using UnityEngine;
using Logic.Action;
using Logic.Multilingual;
[Serializable]
[CreateAssetMenu(fileName = "TechDataAssets", menuName = "TH1 Game Data/Action Data Asset")]
public class ActionDataAssets : ScriptableObject
{
public List<ActionInfo> ActionList = new List<ActionInfo>();
public bool GetActionInfo(CommonActionId actionId, out ActionInfo actionInfo)
{
actionInfo = null;
foreach(var t in ActionList)
if (actionId == t.ActionId)
{
//Debug.Log(t.ActionName);
//Debug.Log(t.CityExp);
actionInfo = t;
return true;
}
//Debug.Log(actionId.GridMiscActionType);
return false;
}
}
[Serializable]
public class CivForceToSprite
{
public bool IgnoreCivId;
public bool IgnoreForceId;
public uint CivId;
public uint ForceId;
public Sprite Sprite;
public Sprite SpriteGlow;
public string Name;
}
[Serializable]
public class ActionInfo
{
public CommonActionId ActionId;
[MultilingualField]
public string ActionName;
[MultilingualField]
public string Desc;
public Sprite Icon;
public bool VarientIcon;
public List<CivForceToSprite> IconList;
public int Cost;
public int CityExp;
public bool NoNeedTech;
public Sprite GetIcon(uint civId,uint forceId)
{
foreach (var t in IconList)
{
if ((t.IgnoreCivId || t.CivId == civId)
&& (t.IgnoreForceId || t.ForceId == forceId))
return t.Sprite;
}
return null;
}
}