using System; using System.Collections.Generic; using UnityEngine; using Logic.Action; using Logic.Multilingual; using RuntimeData; using UnityEngine.UIElements; [Serializable] [CreateAssetMenu(fileName = "TechDataAssets", menuName = "TH1 Game Data/Action Data Asset")] public class ActionDataAssets : ScriptableObject { public List ActionList = new List(); 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; } public bool GetActionDesc(CommonActionId actionId, out string ret) { ret = ""; foreach(var t in ActionList) if (actionId == t.ActionId) { ret = t.Desc; return true; } return false; } } [Serializable] public class CivForceToSprite { public bool IgnoreCivId; public bool IgnoreForceId; public bool IsGridSpType; public GridSpType GridSpType; public uint CivId; public uint ForceId; public bool OnlyCarryGiant; public GiantType CarryGiantType; public Sprite Sprite; [MultilingualField] public string Name; [MultilingualField] public string Desc; public bool HasLevel; public List LevelSprite; public bool CheckCivAndForce(CivEnum civ,ForceEnum force) { if (!IgnoreCivId && civ != Table.Instance.TransCivIdToCivEnum(CivId)) return false; if (!IgnoreForceId && force != Table.Instance.TransForceIdToForceEnum(ForceId)) return false; return true; } } [Serializable] public class ActionInfo { public CommonActionId ActionId; [MultilingualField] public string ActionName; [MultilingualField] public string Desc; //科技树专用描述 public bool NeedTechDesc; [MultilingualField] public string TechDesc; //锁行动时专用描述 public bool NeedLockDesc; [MultilingualField] public string LockDesc; public Sprite Icon; public bool VarientIcon; public List IconList; public int Cost; public int CityExp; public bool NoNeedTech; public Vector2 SpriteSize; public Vector2 SpritePos; public Sprite GetIcon(uint civId,uint forceId, GridSpType gridSpType) { if (!VarientIcon) return Icon; foreach (var t in IconList) { if ((t.IgnoreCivId || t.CivId == civId) && (t.IgnoreForceId || t.ForceId == forceId) && (gridSpType == t.GridSpType)) return t.Sprite; } foreach (var t in IconList) { if ((t.IgnoreCivId || t.CivId == civId) && (t.IgnoreForceId || t.ForceId == forceId) ) return t.Sprite; } return null; } }