diff --git a/Assets/_Game/Scripts/Enemies/Boss/BossResource.cs b/Assets/_Game/Scripts/Enemies/Boss/BossResource.cs index 73b516bb..934745b0 100644 --- a/Assets/_Game/Scripts/Enemies/Boss/BossResource.cs +++ b/Assets/_Game/Scripts/Enemies/Boss/BossResource.cs @@ -9,7 +9,7 @@ namespace BaseGames.Boss /// - 每帧以 自动积累或消耗。 /// - 受击时增加 。 /// - 技能使用时增加 。 - /// - 满值时若 ,自动让 BossBase 执行配置的技能。 + /// - 满值时 为真,由 AI 图的条件边决定放什么招(决策不在本组件)。 /// public sealed class BossResource : MonoBehaviour { @@ -17,7 +17,6 @@ namespace BaseGames.Boss [SerializeField] private BossBase _boss; private float _currentValue; - private bool _fullTriggered; /// 当前资源值(0 ~ config.maxValue)。 public float CurrentValue => _currentValue; @@ -59,14 +58,14 @@ namespace BaseGames.Boss AddValue(_config.onTakeDamageGain); } - /// Boss 使用技能时调用。由 BossBase.UseBossSkill 触发。 + /// Boss 使用技能时调用。由使用了资源的能力触发(Boss 的招在自己的 EnemyAbilityBase 里调用)。 public void OnBossUseSkill() { if (_config == null) return; AddValue(_config.onSkillUseGain); } - /// 直接设置资源值(外部强制赋值,跳过满值触发)。 + /// 直接设置资源值(外部强制赋值)。 public void SetValue(float value) { _currentValue = Mathf.Clamp(value, 0f, _config != null ? _config.maxValue : float.MaxValue); @@ -76,33 +75,7 @@ namespace BaseGames.Boss private void AddValue(float delta) { - float prev = _currentValue; _currentValue = Mathf.Clamp(_currentValue + delta, 0f, _config.maxValue); - - // 满值触发(从未满→满时只触发一次) - if (_config.autoTriggerOnFull && - _currentValue >= _config.maxValue && - prev < _config.maxValue && - !_fullTriggered) - { - _fullTriggered = true; - OnReachFull(); - } - - if (_currentValue < _config.maxValue) - _fullTriggered = false; - } - - private void OnReachFull() - { - if (_config.fullTriggerSkill == null || _boss == null) return; - - _boss.UseBossSkill(_config.fullTriggerSkill.skillId); - - if (_config.resetValueAfterTrigger > 0f) - _currentValue = _config.resetValueAfterTrigger; - else - _currentValue = 0f; } } } diff --git a/Assets/_Game/Scripts/Enemies/Boss/BossResourceConfigSO.cs b/Assets/_Game/Scripts/Enemies/Boss/BossResourceConfigSO.cs index f27722ba..2d3461c8 100644 --- a/Assets/_Game/Scripts/Enemies/Boss/BossResourceConfigSO.cs +++ b/Assets/_Game/Scripts/Enemies/Boss/BossResourceConfigSO.cs @@ -5,6 +5,10 @@ namespace BaseGames.Boss /// /// Boss 自身资源(如愤怒值)的配置 ScriptableObject。 /// + /// + /// 资源满值不再由本组件自动放招——那是绕过决策层直接执行,违反「AI 只决策、能力负责实现」。 + /// 现在的形态是:本组件只维护数值,AI 图挂一条 When(x => x.Boss.ResourceFull) 边进专属招态。 + /// [CreateAssetMenu(menuName = "BaseGames/Boss/ResourceConfig")] public class BossResourceConfigSO : ScriptableObject { @@ -17,10 +21,5 @@ namespace BaseGames.Boss public float passiveRate; public float onTakeDamageGain; public float onSkillUseGain; - - [Header("满值效果")] - public bool autoTriggerOnFull; - public BossSkillSO fullTriggerSkill; - public float resetValueAfterTrigger; } }