using System; using Cielonos.MainGame.Buffs.Character; using Cielonos.MainGame.Characters; using SLSUtilities.General; using UnityEngine; namespace Cielonos.MainGame.Inventory.Collections { /// /// 助燃剂 / Combustion Enhancer /// 每次攻击到敌人后,如果敌人处于燃烧Buff,那么为燃烧Buff持续时间延长0.1秒 /// public class CombustionEnhancer : PassiveEquipmentBase { private const string EventKey = nameof(CombustionEnhancer); public override void OnObtained() { base.OnObtained(); Action onFinishAttack = OnFinishAttack; player.eventSm.onFinishAttack.Add(EventKey, onFinishAttack.ToPrioritized()); } public override void OnDiscarded() { player.eventSm.onFinishAttack.Remove(EventKey); base.OnDiscarded(); } private void OnFinishAttack(AttackAreaBase attackArea, CharacterBase target, Attack.Result result) { Burn burn = target.buffSm.GetBuff(); burn?.timeSubmodule.AddDuration(0.1f); } } }