关卡编辑器轰炸区
parent
07a146a12c
commit
bbb8c007b5
|
|
@ -159,6 +159,16 @@ namespace Gameplay.Level
|
|||
[LabelText("是否循环 (否为折返)")]public bool isLoop;
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class BombAreaInfo
|
||||
{
|
||||
[HideInInspector] [LabelText("触发条件")] public int triggerTaskID;
|
||||
[LabelText("轰炸间隔")] public float intervalTime;
|
||||
[LabelText("轰炸次数")] public int bombCount;
|
||||
[LabelText("最小轰炸中心数量")] public int bombMinCount;
|
||||
[LabelText("最大轰炸中心数量")] public int bombMaxCount;
|
||||
}
|
||||
|
||||
#region LevelGuide
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -614,7 +624,12 @@ namespace Gameplay.Level
|
|||
/// <summary>
|
||||
/// 探照灯信息
|
||||
/// </summary>
|
||||
[HideInInspector] public List<SearchLightInfo> SearchLightInfos = new List<SearchLightInfo>();
|
||||
[HideInInspector] public List<SearchLightInfo> searchLightInfos = new List<SearchLightInfo>();
|
||||
|
||||
/// <summary>
|
||||
/// 轰炸区信息
|
||||
/// </summary>
|
||||
[HideInInspector] public List<BombAreaInfo> bombAreaInfos = new List<BombAreaInfo>();
|
||||
|
||||
#endregion
|
||||
|
||||
|
|
|
|||
|
|
@ -1515,7 +1515,7 @@ public partial class LevelEditorWindow
|
|||
var map = currWindow._curMap;
|
||||
currWindow._currEditSearchLight = this;
|
||||
|
||||
var searchLightInfos = currWindow.currentLevelData.SearchLightInfos;
|
||||
var searchLightInfos = currWindow.currentLevelData.searchLightInfos;
|
||||
foreach (var searchLight in searchLightInfos)
|
||||
{
|
||||
map.SetBlocksColor(searchLight.interactivePoints, false, SearchLightColor);
|
||||
|
|
@ -1545,7 +1545,7 @@ public partial class LevelEditorWindow
|
|||
private void UpdateSearchLightInfo()
|
||||
{
|
||||
searchLightList.Clear();
|
||||
foreach (var searchLight in currentLevelData.SearchLightInfos)
|
||||
foreach (var searchLight in currentLevelData.searchLightInfos)
|
||||
{
|
||||
var ra = new SearchLightEditorInfo(searchLight);
|
||||
searchLightList.Add(ra);
|
||||
|
|
@ -1557,12 +1557,39 @@ public partial class LevelEditorWindow
|
|||
if (_curMap == null || currentLevelData == null)
|
||||
return;
|
||||
|
||||
foreach (var searchLight in currentLevelData.SearchLightInfos)
|
||||
foreach (var searchLight in currentLevelData.searchLightInfos)
|
||||
{
|
||||
_curMap.SetBlocksColor(searchLight.interactivePoints, false, SearchLightColor);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 轰炸区
|
||||
|
||||
[Serializable]
|
||||
public class BombAreaInfoEditor
|
||||
{
|
||||
[HorizontalGroup("1")] [LabelText("触发条件"), Indent] [ReadOnly]
|
||||
public string triggerTask;
|
||||
|
||||
[HorizontalGroup("1")]
|
||||
[Button("搜索/选择触发条件", ButtonSizes.Small)]
|
||||
private void OpenTriggerTaskSelector()
|
||||
{
|
||||
currWindow.ShowTaskSelector("选择触发条件", taskName => triggerTask = taskName,
|
||||
id => info.triggerTaskID = id);
|
||||
}
|
||||
|
||||
[LabelText("轰炸信息")] public BombAreaInfo info;
|
||||
|
||||
public BombAreaInfoEditor(BombAreaInfo bombArea)
|
||||
{
|
||||
info = bombArea;
|
||||
triggerTask = currWindow.GetTaskName(info.triggerTaskID);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
|
|
|
|||
|
|
@ -782,7 +782,10 @@ public partial class LevelEditorWindow
|
|||
radarInfoList = currentLevelData.radarInfos.Select(r => new RadarEditorInfo(r)).ToList();
|
||||
|
||||
// 探照灯
|
||||
searchLightList = currentLevelData.SearchLightInfos.Select(s => new SearchLightEditorInfo(s)).ToList();
|
||||
searchLightList = currentLevelData.searchLightInfos.Select(s => new SearchLightEditorInfo(s)).ToList();
|
||||
|
||||
// 轰炸区
|
||||
bombAreaInfoList = currentLevelData.bombAreaInfos.Select(b => new BombAreaInfoEditor(b)).ToList();
|
||||
|
||||
// 加载当前关卡的Monster配置
|
||||
LoadAllNpcConfig();
|
||||
|
|
|
|||
|
|
@ -801,19 +801,37 @@ public partial class LevelEditorWindow : OdinEditorWindow
|
|||
private void CustomAddSearchLight()
|
||||
{
|
||||
var searchLight = new LevelData.SearchLightInfo();
|
||||
currentLevelData.SearchLightInfos.Add(searchLight);
|
||||
currentLevelData.searchLightInfos.Add(searchLight);
|
||||
UpdateSearchLightInfo();
|
||||
}
|
||||
|
||||
private void CustomRemoveSearchLight(int index)
|
||||
{
|
||||
ClearSearchLightColor();
|
||||
currentLevelData.SearchLightInfos.RemoveAt(index);
|
||||
currentLevelData.searchLightInfos.RemoveAt(index);
|
||||
UpdateSearchLightInfo();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 轰炸区
|
||||
|
||||
[FoldoutGroup("地区相关")]
|
||||
[BoxGroup("地区相关/编辑轰炸区")]
|
||||
[HorizontalGroup("地区相关/编辑轰炸区/bomb")]
|
||||
[LabelText("编辑编辑轰炸区"), Indent]
|
||||
[LabelWidth(100)]
|
||||
[SerializeField]
|
||||
private bool canEditorBombAreaInfo;
|
||||
|
||||
[FoldoutGroup("地区相关")]
|
||||
[VerticalGroup("地区相关/编辑轰炸区/bombInfo"), Indent]
|
||||
[LabelText("轰炸区列表")]
|
||||
[ShowIf("canEditorBombAreaInfo")]
|
||||
public List<BombAreaInfoEditor> bombAreaInfoList = new();
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
|
||||
#region 指定路线
|
||||
|
|
@ -1582,7 +1600,10 @@ public partial class LevelEditorWindow : OdinEditorWindow
|
|||
currentLevelData.radarInfos = radarInfoList.Select(r => r.radarInfo).ToList();
|
||||
|
||||
// 探照灯
|
||||
currentLevelData.SearchLightInfos = searchLightList.Select(s => s.info).ToList();
|
||||
currentLevelData.searchLightInfos = searchLightList.Select(s => s.info).ToList();
|
||||
|
||||
// 轰炸区
|
||||
currentLevelData.bombAreaInfos = bombAreaInfoList.Select(b => b.info).ToList();
|
||||
|
||||
// 阻挡球
|
||||
SaveBlockSphereInfo();
|
||||
|
|
|
|||
Loading…
Reference in New Issue