补全 CombatNode 逻辑 + 重构 EnemyManager

- 添加了关卡内的难度系数与掉落
    - 难度系数:每循环一轮波次敌人血量翻倍
    - 道具掉落:按照掉落概率曲线根据波次计算当前爆率,并从新增的道具池里选择道具
    - `CombatResourceManager`:统一维护关卡内资源状态(硬币/金币/道具掉落)
- 重构 `EnemyManager`:
    - `EnemyManager`:编排子服务,不承载具体业务细节
    - `EnemySpawnDirector`:管理刷怪时序
    - `SpawnerResolver`:管理出生点与路径
    - `EnemyLifecycleTracker`:追踪敌人生命周期
    - `EnemyConfigService`:管理敌人配置与倍率
This commit is contained in:
SepComet
2026-03-02 17:23:34 +08:00
parent c576224991
commit 5ba94828a8
49 changed files with 1763 additions and 1047 deletions
+6 -6
View File
@@ -1,6 +1,6 @@
# Id 策划备注 EntityId Name AttackSpeed PropertyType Constraint PossibleTag
# int int string float[] AttackPropertyType string TagType[]
# 底座编号 实体Id 底座名 攻击速度(秒/次) 攻击属性 属性约束 可能出现的Tag
1 301 元素底座 [2,1.5,1,0.8,0.7] Fire [Fire,BurnSpread,IgniteBurst,Inferno]
2 301 控制底座 [4,3.8,3.6,3.4,3.2] Ice [Ice,FreezeMask,Shatter,AbsoluteZero]
3 301 穿透底座 [1,0,8,0,6,0.4,0.2] Physics [Pierce,Crit,Overpenetrate,Execution]
# Id 策划备注 EntityId Name AttackSpeed AttackSpeedPerLevel PropertyType Constraint PossibleTag
# int int string float[] float AttackPropertyType string TagType[]
# 底座编号 实体Id 底座名 各品质攻击速度(秒/次) 每级提升攻击速度 攻击属性 属性约束 可能出现的Tag
1 301 元素底座 [2,1.5,1,0.8,0.7] -0.2 Fire [Fire,BurnSpread,IgniteBurst,Inferno]
2 301 控制底座 [4,3.8,3.6,3.4,3.2] -0.1 Ice [Ice,FreezeMask,Shatter,AbsoluteZero]
3 301 穿透底座 [1,0,8,0,6,0.4,0.2] 0 Physics [Pierce,Crit,Overpenetrate,Execution]
+6 -6
View File
@@ -1,6 +1,6 @@
# Id 策划备注 EntityId Name RotateSpeed AttackRange Constraint PossibleTag
# int int string float[] float[] string TagType[]
# 轴承编号 实体Id 轴承名 各品质旋转速度 各品质攻击范围 属性约束 可能出现的Tag
1 201 元素轴承 [10,12,13,14,15] [2,2,2,2,2] [Fire,BurnSpread,IgniteBurst,Inferno]
2 201 控制轴承 [20,25,30,32,35] [6,6.5,7,8,8] [Ice,FreezeMask,Shatter,AbsoluteZero]
3 201 穿透轴承 [60,70,80,90,100] [4,4.5,5,5.5,6] [Pierce,Crit,Overpenetrate,Execution]
# Id 策划备注 EntityId Name RotateSpeed RotateSpeedPerLevel AttackRange AttackRangePerLevel Constraint PossibleTag
# int int string float[] float float[] float string TagType[]
# 轴承编号 实体Id 轴承名 各品质旋转速度 每级提升旋转速度 各品质攻击范围 每级提升攻击范围 属性约束 可能出现的Tag
1 201 元素轴承 [10,12,13,14,15] 15 [2,2,2,2,2] 0.3 [Fire,BurnSpread,IgniteBurst,Inferno]
2 201 控制轴承 [20,25,30,32,35] 0 [6,6.5,7,8,8] 0.2 [Ice,FreezeMask,Shatter,AbsoluteZero]
3 201 穿透轴承 [60,70,80,90,100] 20 [4,4.5,5,5.5,6] 0 [Pierce,Crit,Overpenetrate,Execution]
+3 -3
View File
@@ -2,6 +2,6 @@
# int LevelThemeType int int VictoryType string int
# 关卡号 策划备注 关卡所属主题类型 基地初始生命 初始硬币 胜利条件 胜利参数 奖励金币
1 平原1 Plain 100 100 PhasesCleared 30
2 平原2 Plain 100 100 PhasesCleared 30
3 平原3 Plain 100 100 PhasesCleared 40
4 平原4 Plain 100 100 BossDead 100
2 平原2 Plain 100 120 PhasesCleared 30
3 平原3 Plain 100 110 PhasesCleared 40
4 平原4 Plain 100 150 BossDead 100
+6 -6
View File
@@ -1,6 +1,6 @@
# Id 策划备注 EntityId Name AttackDamage DamageRandomRate Method Constraint PossibleTag
# int int string int[] float AttackMethodType Constraint TagType[]
# 枪口编号 策划备注 实体Id 枪口名 各品质伤害 伤害浮动 攻击方式 Constraint 可能出现的Tag
1 101 元素枪口 [20,30,40,50,80] 0.05 NormalBullet [Fire,BurnSpread,IgniteBurst,Inferno]
2 101 控制枪口 [30,50,70,90,100] 0.01 NormalBullet [Ice,FreezeMask,Shatter,AbsoluteZero]
3 101 穿透枪口 [50,55,60,80,90] 0.02 NormalBullet [Pierce,Crit,Overpenetrate,Execution]
# Id 策划备注 EntityId Name AttackDamage AttackDamagePerLevel DamageRandomRate Method Constraint PossibleTag
# int int string int[] int float AttackMethodType Constraint TagType[]
# 枪口编号 策划备注 实体Id 枪口名 各品质伤害 每级伤害提升 伤害浮动 攻击方式 Constraint 可能出现的Tag
1 101 元素枪口 [20,30,40,50,80] 10 0.05 NormalBullet [Fire,BurnSpread,IgniteBurst,Inferno]
2 101 控制枪口 [30,50,70,90,100] 20 0.01 NormalBullet [Ice,FreezeMask,Shatter,AbsoluteZero]
3 101 穿透枪口 [50,55,60,80,90] 30 0.02 NormalBullet [Pierce,Crit,Overpenetrate,Execution]
@@ -0,0 +1,21 @@
# Id 列1 LevelThemeType Rarity ItemType ItemId Weight MinPhase MaxPhase
# int LevelThemeType RarityType ItemType int int int int
# 道具池号 策划备注 关卡所属主题类型 道具稀有度 道具类型 道具Id 权重 出现的最低波次 出现的最高波次
1 平原战斗池 Plain White MuzzleComp 1 10 1 10
2 Plain White MuzzleComp 2 10 1 10
3 Plain White MuzzleComp 3 10 1 10
4 Plain White BearingComp 1 10 1 10
5 Plain White BearingComp 2 10 1 10
6 Plain White BearingComp 3 10 1 10
7 Plain White BaseComp 1 10 1 10
8 Plain White BaseComp 2 10 1 10
9 Plain White BaseComp 3 10 1 10
10 Plain Green MuzzleComp 1 5 1 10
11 Plain Green MuzzleComp 2 5 1 10
12 Plain Green MuzzleComp 3 5 1 10
13 Plain Green BearingComp 1 5 1 10
14 Plain Green BearingComp 2 5 1 10
15 Plain Green BearingComp 3 5 1 10
16 Plain Green BaseComp 1 5 1 10
17 Plain Green BaseComp 2 5 1 10
18 Plain Green BaseComp 3 5 1 10
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 934d71d10a1e14141a275b57b1825dfd
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant: