关卡编辑器 阶段条件增加

main
zhangaotian 2024-11-07 13:09:27 +08:00
parent f491229cb7
commit 1df7e15b89
6 changed files with 33 additions and 14 deletions

View File

@ -28,7 +28,10 @@ public class ConditionModifier
[LabelText("目标分数")] [ShowIf("scoreLevel")]
public int score;
[LabelText("击杀对象")][ShowIf("@conditionType == cfg.ConditionType.CombatKillEnemy")]
public List<int> killEnemyIDList;
private List<float> Args
{
get

View File

@ -2,6 +2,7 @@ using System.Collections.Generic;
using System.Linq;
using cfg;
using cfg.CharacterCfg;
using UnityEngine;
/// <summary>
/// 一些条件相关的基础设置
@ -31,9 +32,9 @@ public static class ConditionUtil
{ ConditionType.CombatProtectUnit, "护送对象" },
{ ConditionType.CombatProtectUnitDead, "护送对象阵亡" },
{ ConditionType.CombatLeastOccupy, "至少占领区域数量" },
{ ConditionType.PlayerSkillUpgradeLevel, "(指挥官技能升级)强化等级大于等于"},
{ ConditionType.LevelOver, "关卡结束"}
{ ConditionType.CombatKillEnemy, "指定击杀" },
{ ConditionType.PlayerSkillUpgradeLevel, "(指挥官技能升级)强化等级大于等于" },
{ ConditionType.LevelOver, "关卡结束" }
};
/// <summary>
@ -45,7 +46,7 @@ public static class ConditionUtil
{ ConditionType.LevelStar, new[] { "关卡ID" } },
{ ConditionType.LevelPass, new[] { "关卡ID", "关卡星级" } },
{ ConditionType.CombatOccupy, new[] { "占领数量" } },
{ ConditionType.CombatFallBack, new[] { "撤退点X坐标", "撤退点Y坐标" } },
{ ConditionType.CombatFallBack, new[] { "撤离人数", "单次撤离X点", "单次撤离Y点", "复用撤离X点", "复用撤离Y点" } },
{ ConditionType.CombatLeastFaction, new[] { "出战部队", "数目" } },
{ ConditionType.CombatLeastJob, new[] { "出战职业", "数目" } },
{ ConditionType.CombatLeastRarity, new[] { "出战稀有度", "数目" } },
@ -76,6 +77,7 @@ public static class ConditionUtil
ConditionType.CombatSubmitFlag,
ConditionType.CombatProtectUnit,
ConditionType.CombatLeastOccupy,
ConditionType.CombatKillEnemy,
};
/// <summary>
@ -98,6 +100,7 @@ public static class ConditionUtil
ConditionType.CombatSubmitFlag,
ConditionType.CombatProtectUnit,
ConditionType.CombatLeastOccupy,
ConditionType.CombatKillEnemy,
};
public static readonly List<ConditionType> LevelScoreConditionFilter = new()
@ -111,6 +114,7 @@ public static class ConditionUtil
ConditionType.CombatSubmitFlag,
ConditionType.CombatProtectUnit,
ConditionType.CombatLeastOccupy,
ConditionType.CombatKillEnemy,
};
#endregion

View File

@ -56,6 +56,8 @@ namespace Gameplay.Level
[Serializable]
public class NPCInfo
{
[HideInInspector]
public int index;
[HideInInspector]
public int id;
[ReadOnly]

View File

@ -80,17 +80,21 @@ namespace cfg
/// </summary>
CombatLeastOccupy = 16,
/// <summary>
/// (战斗)指定击杀
/// </summary>
CombatKillEnemy = 17,
/// <summary>
/// (指挥官技能升级)强化等级大于等于
/// </summary>
PlayerSkillUpgradeLevel = 17,
PlayerSkillUpgradeLevel = 18,
/// <summary>
/// 关卡结束
/// </summary>
LevelOver = 18,
LevelOver = 19,
/// <summary>
/// 最大类型
/// </summary>
Max = 19,
Max = 20,
}
}

View File

@ -1,7 +1,7 @@
[
{
"Id": 1,
"Type": 18,
"Type": 19,
"Param1": 0,
"Param2": 0,
"Param3": 0

View File

@ -63,7 +63,7 @@ public class LevelEditorWindow : OdinEditorWindow
[Serializable]
public class NPCEditorInfo
{
[ReadOnly] [LabelText("序号ID")] public int id;
[ReadOnly] [LabelText("序号ID")]public int id;
[LabelText("MonsterID")] [ValueDropdown("GetMonsterIDs")] [OnValueChanged("ChangeNpcID")]
public int monsterId;
@ -327,15 +327,21 @@ public class LevelEditorWindow : OdinEditorWindow
currentLevelData.preparingRegionToward = curRegionData.preparingRegionToward;
currentLevelData.pvpDefendRegionId = curRegionData.pvpDefendRegionId;
currentLevelData.pvpDefendToward = curRegionData.pvpDefendToward;
// NPC序号
foreach (var npcEditor in currentNpcInfo)
{
npcEditor.npcInfo.index = npcEditor.id;
}
//NPC列表
currentLevelData.npcInfos = currentNpcInfo.Select(editorNPCInfo => editorNPCInfo.npcInfo).ToList();
// NPC列表
currentLevelData.npcInfos = currentNpcInfo.Select(editorNpcInfo => editorNpcInfo.npcInfo).ToList();
//占领进度 抗旗终点
// 占领进度 抗旗终点
currentLevelData.captureProgress = curRegionData.captureProgress;
currentLevelData.flagTargetRegionId = curRegionData.flagTargetRegionId;
//护送对象
// 护送对象 TODO 删除
currentLevelData.protectUnitInfos =
currentProtectUnits.Select(editorProtectInfo => editorProtectInfo.protectUnitInfo).ToList();