多轮审查和修复
This commit is contained in:
@@ -202,16 +202,21 @@ namespace BaseGames.Quest
|
||||
public bool unlocksAbility = false; // ⚠️ AbilityType 无 None 值,用 bool 标识是否解锁能力(架构 09 §1)
|
||||
public AbilityType unlockedAbility; // 仅当 unlocksAbility == true 时有效
|
||||
|
||||
[Header("物品发放事件")]
|
||||
[Tooltip("EVT_CollectiblePickup:向 QuestManager/EquipmentManager 广播 itemId")]
|
||||
[SerializeField] private StringEventChannelSO _onCollectiblePickup;
|
||||
|
||||
/// <summary>将奖励应用到游戏状态(由 QuestManager.CompleteQuest 调用)。</summary>
|
||||
public void Apply(PlayerStats player)
|
||||
{
|
||||
if (geo > 0) player.AddGeo(geo);
|
||||
if (soulBonus > 0) player.ExtendSoulMax(soulBonus);
|
||||
if (soulBonus > 0) player.AddSoulPower(soulBonus);
|
||||
if (unlocksAbility) // ⚠️ 替代 AbilityType.None 判断
|
||||
player.UnlockAbility(unlockedAbility);
|
||||
// 物品/护符通过 InventoryManager 发放
|
||||
foreach (var id in itemIds)
|
||||
InventoryManager.Instance.AddItem(id);
|
||||
// 物品/护符通过 EVT_CollectiblePickup 事件频道广播(InventoryManager 不存在于本项目)
|
||||
if (itemIds != null && _onCollectiblePickup != null)
|
||||
foreach (var id in itemIds)
|
||||
_onCollectiblePickup.Raise(id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user