From 5cdb50b7603e3b904c2b73ca1191febb015d3b59 Mon Sep 17 00:00:00 2001 From: panw Date: Thu, 21 May 2026 09:26:25 +0800 Subject: [PATCH] =?UTF-8?q?chore(map):=20=E7=A7=BB=E9=99=A4=E4=B8=A4?= =?UTF-8?q?=E7=A7=8D=E6=80=AA=E7=89=A9=E7=B1=BB=E5=9E=8B=E5=B9=B6=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E7=9B=B8=E5=85=B3=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 删除了Bomber自爆和Splitter分裂两种怪物类型,同步更新了怪物枚举注释、名称映射、怪物列表、属性配置、关卡配置、蓝图模板以及默认波次配置 --- assets/script/game/map/RogueConfig.ts | 47 ++++++++++----------------- 1 file changed, 18 insertions(+), 29 deletions(-) diff --git a/assets/script/game/map/RogueConfig.ts b/assets/script/game/map/RogueConfig.ts index ef96df95..94e99395 100644 --- a/assets/script/game/map/RogueConfig.ts +++ b/assets/script/game/map/RogueConfig.ts @@ -12,33 +12,29 @@ // ======================== 怪物类型枚举 ======================== -/** 怪物类型(10 种) */ +/** 怪物类型(8 种) */ export enum MonType { Melee = 0, Heavy = 1, Long = 2, Support = 3, - Bomber = 4, Summoner = 5, Assassin = 6, - Splitter = 7, MeleeBoss = 8, LongBoss = 9, } /** * 怪物类型名称映射(调试/日志用) - * @example MonTypeName[MonType.Bomber] // => "自爆" + * @example MonTypeName[MonType.Melee] // => "近战" */ export const MonTypeName: Record = { [MonType.Melee]: "近战", [MonType.Heavy]: "重型", [MonType.Long]: "远程", [MonType.Support]: "辅助", - [MonType.Bomber]: "自爆", [MonType.Summoner]: "召唤师", [MonType.Assassin]: "刺客", - [MonType.Splitter]: "分裂", [MonType.MeleeBoss]: "近战Boss", [MonType.LongBoss]: "远程Boss", } @@ -190,10 +186,8 @@ export const MonList: Record = { [MonType.Heavy]: [6003, 6103], [MonType.Long]: [6004, 6102], [MonType.Support]: [6005], - [MonType.Bomber]: [6201, 6202], [MonType.Summoner]: [6203], [MonType.Assassin]: [6204], - [MonType.Splitter]: [6205], [MonType.MeleeBoss]: [6006, 6105], [MonType.LongBoss]: [6104], } @@ -225,10 +219,8 @@ export const MonsterStats: Record = { [MonType.Heavy]: { hp: 1050, ap: 30, cost: 50, isBoss: false }, [MonType.Long]: { hp: 240, ap: 45, cost: 40, isBoss: false }, [MonType.Support]: { hp: 240, ap: 20, cost: 50, isBoss: false }, - [MonType.Bomber]: { hp: 180, ap: 80, cost: 35, isBoss: false }, [MonType.Summoner]: { hp: 300, ap: 15, cost: 60, isBoss: false }, [MonType.Assassin]: { hp: 270, ap: 55, cost: 45, isBoss: false }, - [MonType.Splitter]: { hp: 450, ap: 20, cost: 55, isBoss: false }, [MonType.MeleeBoss]: { hp: 4500, ap: 20, cost: 200, isBoss: true }, [MonType.LongBoss]: { hp: 1050, ap: 30, cost: 200, isBoss: true }, } @@ -262,9 +254,9 @@ const MAJOR_BOSS_TIERS = new Set([3, 5]) export const TierConfigs: Record = { 1: { multiplier: 1.0, budget: 500, availableTypes: [MonType.Melee, MonType.Heavy, MonType.Long], isBossTier: false }, 2: { multiplier: 1.6, budget: 1000, availableTypes: [MonType.Melee, MonType.Heavy, MonType.Long, MonType.Support], isBossTier: true }, - 3: { multiplier: 2.5, budget: 1800, availableTypes: [MonType.Melee, MonType.Heavy, MonType.Long, MonType.Support, MonType.Bomber, MonType.Assassin], isBossTier: true }, - 4: { multiplier: 3.8, budget: 3000, availableTypes: [MonType.Melee, MonType.Heavy, MonType.Long, MonType.Support, MonType.Bomber, MonType.Assassin, MonType.Summoner, MonType.Splitter], isBossTier: true }, - 5: { multiplier: 5.5, budget: 5000, availableTypes: [MonType.Melee, MonType.Heavy, MonType.Long, MonType.Support, MonType.Bomber, MonType.Assassin, MonType.Summoner, MonType.Splitter], isBossTier: true }, + 3: { multiplier: 2.5, budget: 1800, availableTypes: [MonType.Melee, MonType.Heavy, MonType.Long, MonType.Support, MonType.Assassin], isBossTier: true }, + 4: { multiplier: 3.8, budget: 3000, availableTypes: [MonType.Melee, MonType.Heavy, MonType.Long, MonType.Support, MonType.Assassin, MonType.Summoner], isBossTier: true }, + 5: { multiplier: 5.5, budget: 5000, availableTypes: [MonType.Melee, MonType.Heavy, MonType.Long, MonType.Support, MonType.Assassin, MonType.Summoner], isBossTier: true }, } /** @@ -282,7 +274,7 @@ export function getTierConfig(tier: number): TierConfig { const growthRate = InfiniteModeConfig.tierGrowthRate const allTypes: MonType[] = [ MonType.Melee, MonType.Heavy, MonType.Long, MonType.Support, - MonType.Bomber, MonType.Assassin, MonType.Summoner, MonType.Splitter, + MonType.Assassin, MonType.Summoner, ] return { multiplier: Math.round(prev.multiplier * growthRate * 100) / 100, @@ -395,7 +387,7 @@ export const BlueprintTemplates: BlueprintTemplate[] = [ slots: [ { typePool: [MonType.Melee, MonType.Heavy], countMin: 10, countMax: 20, weight: 0.4 }, { typePool: [MonType.Long, MonType.Assassin], countMin: 5, countMax: 15, weight: 0.3 }, - { typePool: [MonType.Support, MonType.Bomber], countMin: 5, countMax: 10, weight: 0.3 }, + { typePool: [MonType.Support], countMin: 5, countMax: 10, weight: 0.3 }, ] }, // ---- MIXED 类 ---- @@ -409,15 +401,14 @@ export const BlueprintTemplates: BlueprintTemplate[] = [ slots: [ { typePool: [MonType.Melee, MonType.Heavy], countMin: 10, countMax: 20, weight: 0.3 }, { typePool: [MonType.Long, MonType.Assassin], countMin: 10, countMax: 15, weight: 0.3 }, - { typePool: [MonType.Bomber], countMin: 5, countMax: 10, weight: 0.2 }, - { typePool: [MonType.Support], countMin: 5, countMax: 5, weight: 0.2 }, + { typePool: [MonType.Support], countMin: 5, countMax: 5, weight: 0.4 }, ] }, { id: "M3", type: TemplateType.MIXED, tierMin: 4, allowAffix: true, slots: [ { typePool: [MonType.Melee, MonType.Heavy], countMin: 15, countMax: 20, weight: 0.3 }, - { typePool: [MonType.Long, MonType.Assassin], countMin: 10, countMax: 15, weight: 0.25 }, - { typePool: [MonType.Summoner, MonType.Splitter], countMin: 5, countMax: 10, weight: 0.25 }, - { typePool: [MonType.Bomber, MonType.Support], countMin: 5, countMax: 10, weight: 0.2 }, + { typePool: [MonType.Long, MonType.Assassin], countMin: 10, countMax: 15, weight: 0.3 }, + { typePool: [MonType.Summoner], countMin: 5, countMax: 10, weight: 0.2 }, + { typePool: [MonType.Support], countMin: 5, countMax: 10, weight: 0.2 }, ] }, // ---- ELITE 类 ---- @@ -429,8 +420,8 @@ export const BlueprintTemplates: BlueprintTemplate[] = [ { id: "E2", type: TemplateType.ELITE, tierMin: 4, allowAffix: true, slots: [ { typePool: [MonType.Heavy], countMin: 5, countMax: 10, weight: 0.3, forceAffix: true }, - { typePool: [MonType.Assassin, MonType.Splitter], countMin: 5, countMax: 10, weight: 0.4, forceAffix: true }, - { typePool: [MonType.Bomber], countMin: 5, countMax: 10, weight: 0.3, forceAffix: true }, + { typePool: [MonType.Assassin], countMin: 5, countMax: 10, weight: 0.4, forceAffix: true }, + { typePool: [MonType.Support], countMin: 5, countMax: 10, weight: 0.3, forceAffix: true }, ] }, // ---- BOSS 类 ---- @@ -451,15 +442,14 @@ export const BlueprintTemplates: BlueprintTemplate[] = [ { typePool: [MonType.MeleeBoss, MonType.LongBoss], countMin: 1, countMax: 1, weight: 1.0 }, { typePool: [MonType.Melee, MonType.Heavy], countMin: 10, countMax: 20, weight: 0.4 }, { typePool: [MonType.Long, MonType.Assassin], countMin: 5, countMax: 15, weight: 0.3 }, - { typePool: [MonType.Bomber, MonType.Support], countMin: 5, countMax: 10, weight: 0.3 }, + { typePool: [MonType.Support], countMin: 5, countMax: 10, weight: 0.3 }, ] }, { id: "B4", type: TemplateType.BOSS, tierMin: 4, allowAffix: true, slots: [ { typePool: [MonType.MeleeBoss, MonType.LongBoss], countMin: 1, countMax: 1, weight: 1.0 }, - { typePool: [MonType.Heavy], countMin: 10, countMax: 15, weight: 0.3 }, - { typePool: [MonType.Assassin, MonType.Splitter], countMin: 5, countMax: 10, weight: 0.3 }, - { typePool: [MonType.Summoner, MonType.Support], countMin: 5, countMax: 10, weight: 0.2 }, - { typePool: [MonType.Bomber], countMin: 5, countMax: 10, weight: 0.2 }, + { typePool: [MonType.Heavy], countMin: 10, countMax: 15, weight: 0.4 }, + { typePool: [MonType.Assassin], countMin: 5, countMax: 10, weight: 0.3 }, + { typePool: [MonType.Summoner, MonType.Support], countMin: 5, countMax: 10, weight: 0.3 }, ] }, // ---- 教程专用 ---- @@ -1026,13 +1016,12 @@ export function getWaveSlotConfig(waveNumber: number): IWaveSlot[] { /** * 向后兼容:默认占位配置(波次 > 15 或异常时的兜底配置) - * 20 个 Melee + 15 个 Long + 5 个 Support + 5 个 Bomber + * 20 个 Melee + 15 个 Long + 5 个 Support */ export const DefaultWaveSlot: IWaveSlot[] = [ { type: MonType.Melee, count: 20 }, { type: MonType.Long, count: 15 }, { type: MonType.Support, count: 5 }, - { type: MonType.Bomber, count: 5 }, ] /**