feat(boss): HUD Boss 阶段提示 + boss_design.md 现状更新为已实现
This commit is contained in:
@@ -6,6 +6,8 @@
|
||||
---
|
||||
|
||||
> **⚠️ 实现现状 (2026-07-20 审计)**:本文档描述的整套 Boss 架构(`BossManager` Autoload、`BossDef`/`BossPhaseDef`/`.tres` 资源、`BossAttackRegistry` 攻击模式注册表、场地机制如冰墙/场地收缩、多阶段弹幕、状态机 `BossInstance`)**均为设计蓝图,代码 0% 实现**。现状 Boss 只是 `EnemyManager` SoA 中 `type=4`(Mini Boss,Wave 8)/`type=5`(Final Boss,Wave 20)的普通厚血实体;唯一的"阶段行为"是当血量跨越 66% / 33% 阈值时召唤一批 `FAST` 杂兵援军(`wave_manager.gd:94-117`)。以下 `BossManager`/`.tres`/攻击模式注册表/场地机制全部尚未落地,保留作为未来实现的目标设计。详见 [审计报告](../../docs_dev/doc_code_audit_2026-07-20.md)。
|
||||
>
|
||||
> **✅ 更新 (2026-07-22)**:阶段状态机 + 7 种攻击模式(ring/spread/aimed/spiral/dash/charge_up/melee)+ 敌方子弹(`EnemyBulletManager`)+ `BOSS_PHASE_CHANGED=29`/`BOSS_KILLED=30` 事件已实现(`BossManager` autoload + `data/bosses.json` + 设计器 Boss 分页)。Boss 仍留在 EnemyManager SoA,移动由 BossManager 接管(非本文档 §2 的完全解耦方案)。仍未实现:场地机制(冰墙/收缩)、通关演出/`GAME_CLEARED`、`.tres`(本工程纯 JSON)。
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -218,6 +218,7 @@ func _subscribe_events() -> void:
|
||||
EventBus.subscribe(EventID.SPELL_DEPTH_EXCEEDED, _on_spell_depth_exceeded)
|
||||
EventBus.subscribe(EventID.CHARGE_STATE_CHANGED, _on_charge_state_changed)
|
||||
EventBus.subscribe(EventID.CHARGE_FIRED, _on_charge_fired)
|
||||
EventBus.subscribe(EventID.BOSS_PHASE_CHANGED, _on_boss_phase_changed)
|
||||
PlayerStats.stats_changed.connect(_on_stats_changed)
|
||||
|
||||
func _setup_hud() -> void:
|
||||
@@ -741,6 +742,10 @@ func _on_charge_fired(_payload: Dictionary) -> void:
|
||||
_lbl_charge.text = tr("UI_CHARGE_DONE")
|
||||
_lbl_status.text = tr("STATUS_CHARGE_FIRED")
|
||||
|
||||
func _on_boss_phase_changed(payload: Dictionary) -> void:
|
||||
if _lbl_status:
|
||||
_lbl_status.text = "Boss 阶段 %d!" % int(payload.get("phase", 0))
|
||||
|
||||
func _on_spell_depth_exceeded(_payload: Dictionary) -> void:
|
||||
_lbl_status.text = tr("STATUS_DEPTH") % SpellEvaluator.MAX_TRIGGER_DEPTH
|
||||
_lbl_status.modulate = Color.YELLOW
|
||||
|
||||
Reference in New Issue
Block a user