using LC.Newtonsoft.Json; using System; using System.Collections.Generic; using Gameplay; using PhxhSDK.Phxh; using Sirenix.OdinInspector; using UnityEngine; [Serializable] public class MapBlockData { /// /// 普通地图地格属性 /// public int TerrainTypeIndex = -1; /// /// 军团使用的地格属性 /// public int LegionTypeIndex = -1; public bool IsDefaultTerrainType() { return TerrainTypeIndex == -1; } public bool IsDefaultLegionTerrainType() { return LegionTypeIndex == -1; } /// /// 获取地块属性 /// /// public TerrainTypeProperty GetTerrainTypeProperty() { Dictionary props = TerrainTypeConfig.DicTerrainTypePropertie; if (null != props && props.TryGetValue(TerrainTypeIndex, out TerrainTypeProperty terrainTypeProperty)) return terrainTypeProperty; return TerrainTypeConfig.DefaultTerrainTypeProperty; } /// /// 获取地块属性 /// /// public LegionTerrainTypeProperty GetLegionTerrainTypeProperty() { var props = LegionTerrainTypeConfig.DicTerrainTypePropertie; if (null != props && props.TryGetValue(LegionTypeIndex, out var terrainTypeProperty)) return terrainTypeProperty; return LegionTerrainTypeConfig.DefaultTerrainTypeProperty; } } [Serializable] public class TerrainTypeProperty { public int id = -1; public string name; public bool banAttack; /// /// 通行标记 /// [LabelText("通行标记")]public List crossTagIds = new List(); public bool AddBuff; [ShowIf("AddBuff")] public List configIds = new List(); [HideInInspector] public string buffObjectPath; [JsonConverter(typeof(ColorJsonConverter))] public Color Color; } [Serializable] public class LegionTerrainTypeProperty { public int id = -1; public string name; /// /// 通行标记 /// [LabelText("通行标记")] public List crossTagIds = new List(); public bool AddBuff; [ShowIf("AddBuff")] public List configIds = new List(); [HideInInspector] public string buffObjectPath; [JsonConverter(typeof(ColorJsonConverter))] public Color Color; }