using LC.Newtonsoft.Json; using System; using System.Collections.Generic; using cfg.BuffCfg; using Gameplay; using Gameplay.Buff; using Gameplay.Character; using Gameplay.Unit.Data; using PhxhSDK.Phxh; using Sirenix.OdinInspector; using UnityEngine; using UnityEngine.Serialization; [Serializable] public class MapBlockData { public int TerrainTypeIndex = -1; public bool IsDefaultTerrainType() { return TerrainTypeIndex == -1; } public TerrainTypeProperty GetTerrainTypeProperty() { var props = TerrainTypeConfig.TerrainTypeProperties; if (props != null && TerrainTypeIndex >= 0 && TerrainTypeIndex < props.Count) { return props[TerrainTypeIndex]; } return TerrainTypeConfig.DefaultTerrainTypeProperty; } } [Serializable] public class TerrainTypeProperty { public string name; public bool selectable; [FormerlySerializedAs("canPass")] public bool emptyBlock; public bool banAttack; public bool banGFX; public int crossLevel; public bool AddBuff; [ShowIf("AddBuff")] public EBuffType BuffType; [ShowIf("AddBuff")] public EGameUnitType BuffTarget; [ShowIf("IsAddBuffToCharacter")] public int BuffToTroopId; [JsonConverter(typeof(ColorJsonConverter))] public Color Color; private bool IsAddBuffToCharacter() { return AddBuff && BuffTarget == EGameUnitType.Character; } }