69 lines
1.7 KiB
C#
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;
|
|
}
|
|
}
|