Refactor code structure for improved readability and maintainability
This commit is contained in:
@@ -10,11 +10,12 @@ namespace BaseGames.Enemies.AI
|
||||
/// BD Action:启动 Boss 阶段过渡演出(无敌帧 + 可选定格),等待过渡完成后返回 Success。
|
||||
///
|
||||
/// 返回 Running:过渡演出进行中(BossBase.IsPhaseTransitioning = true)。
|
||||
/// 返回 Success:过渡完成,已切换到目标阶段。
|
||||
/// 返回 Success:过渡完成或目标阶段已达到(含守护逻辑,防止重复触发)。
|
||||
/// 返回 Failure:BossBase 组件不存在。
|
||||
///
|
||||
/// 典型 BT 用法:
|
||||
/// Sequence [ BD_IsHPBelow(0.5) → BD_BossPhaseTransition(Phase=1, Duration=1.5) → ... ]
|
||||
/// Sequence [ BD_IsHPBelow(0.5) → BD_BossPhaseTransition(Phase=1, Duration=1.5) → Phase2战斗节点 ]
|
||||
/// 过渡完成后,此节点每 tick 因守护立即返回 Success,Sequence 直接进入后续战斗节点。
|
||||
/// </summary>
|
||||
[TaskName("Boss Phase Transition")]
|
||||
[TaskCategory("BaseGames/Enemy/Boss")]
|
||||
@@ -41,6 +42,9 @@ namespace BaseGames.Enemies.AI
|
||||
{
|
||||
if (_boss == null) return TaskStatus.Failure;
|
||||
|
||||
// 防止 BT 重入时重复触发阶段过渡:目标阶段已达到则直接返回 Success
|
||||
if (_boss.CurrentPhase >= m_TargetPhase) return TaskStatus.Success;
|
||||
|
||||
if (!_started)
|
||||
{
|
||||
_boss.BeginPhaseTransition(m_TargetPhase, m_InvincibleDuration);
|
||||
|
||||
Reference in New Issue
Block a user