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;
}