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 }, ] /**