83 lines
2.2 KiB
C#
83 lines
2.2 KiB
C#
using Framework;
|
|
using Gameplay.Character;
|
|
using UnityEngine;
|
|
|
|
namespace Gameplay.Level
|
|
{
|
|
public partial class Level
|
|
{
|
|
public bool IsPreparingRegion(int cellIndex)
|
|
{
|
|
if (_levelData == null)
|
|
{
|
|
DebugUtil.LogError("IsPreparingRegion failed, _levelData is null");
|
|
return true;
|
|
}
|
|
|
|
if (_map == null)
|
|
{
|
|
DebugUtil.LogError("IsPreparingRegion failed, _map is null");
|
|
return true;
|
|
}
|
|
|
|
|
|
var areaId = _levelData.preparingRegionId;
|
|
|
|
var area = _map.MapData.GetRegion(areaId);
|
|
|
|
if (area == null)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
return area.positions.Contains(cellIndex);
|
|
}
|
|
|
|
public void ShowPreparingRegion(bool show)
|
|
{
|
|
if (_levelData == null)
|
|
{
|
|
DebugUtil.LogError("ShowPreparingRegion failed, _levelData is null");
|
|
return;
|
|
}
|
|
|
|
if (_map == null)
|
|
{
|
|
DebugUtil.LogError("ShowPreparingRegion failed, _map is null");
|
|
return;
|
|
}
|
|
|
|
|
|
var areaId = _levelData.preparingRegionId;
|
|
|
|
_map.SetRegionColor(areaId, show, "FF960072");
|
|
}
|
|
|
|
public MapData.Region GetFallbackRegion(int troopId)
|
|
{
|
|
var fallbackRegionId = Constants.INVALID_ID;
|
|
switch (troopId)
|
|
{
|
|
case ETroopsId.Self:
|
|
fallbackRegionId = _levelData.fallbackRegionId;
|
|
break;
|
|
case ETroopsId.Enemy1:
|
|
case ETroopsId.Enemy2:
|
|
fallbackRegionId = _levelData.enemyFallbackRegionId;
|
|
break;
|
|
default:
|
|
fallbackRegionId = _levelData.fallbackRegionId;
|
|
break;
|
|
}
|
|
|
|
if (ValueValidator.IsIdValid(fallbackRegionId))
|
|
{
|
|
return _map.MapData.GetRegion(fallbackRegionId);
|
|
}
|
|
return null;
|
|
}
|
|
}
|
|
|
|
}
|
|
|