42 lines
1.2 KiB
C#
42 lines
1.2 KiB
C#
using Cielonos.MainGame;
|
||
using Cielonos.MainGame.Characters;
|
||
using UnityEngine;
|
||
|
||
namespace Cielonos.MainGame.Inventory.Collections
|
||
{
|
||
/// <summary>
|
||
/// 共生回路 / Symbiotic Loop
|
||
/// 玩家完成一个战斗房间的清理后,恢复(2 + 等级 * 0.4)的生命值。
|
||
/// </summary>
|
||
public class SymbioticLoop : PassiveEquipmentBase
|
||
{
|
||
public override void OnObtained()
|
||
{
|
||
base.OnObtained();
|
||
if (RunManager.Instance != null)
|
||
{
|
||
RunManager.Instance.OnCombatRoomCleared += OnCombatRoomCleared;
|
||
}
|
||
}
|
||
|
||
public override void OnDiscarded()
|
||
{
|
||
if (RunManager.Instance != null)
|
||
{
|
||
RunManager.Instance.OnCombatRoomCleared -= OnCombatRoomCleared;
|
||
}
|
||
|
||
base.OnDiscarded();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 当前 Run 的 Combat 节点房间清空时触发,恢复玩家生命值。
|
||
/// </summary>
|
||
private void OnCombatRoomCleared(RunMapNode node)
|
||
{
|
||
float healAmount = passiveAttributeSm.GetItemAttribute("HealAmount");
|
||
player.Heal(healAmount);
|
||
}
|
||
}
|
||
}
|