using Common.Utility.CombatEvent;
using Fort23.Core;
using GameLogic.Combat.Buff;
using GameLogic.Combat.CombatTool;
using GameLogic.Combat.Hero;
namespace GameLogic.Combat.Skill
{
///
/// 死亡时恢复30%最大生命
///
public class S60106 : SkillBasic
{
private int count;
public event System.Action OnResurrected;
protected override void ProActiveSkill()
{
count = 0;
CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjured);
}
private void HeroInjured(IEventData iEventData)
{
if (count > 0)
{
return;
}
HeroInjuredEventData heroInjuredEventData = iEventData as HeroInjuredEventData;
if (heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity == CombatHeroEntity)
{
if (CombatHeroEntity.CurrCombatHeroInfo.hp <= 0)
{
count++;
long hp= CombatHeroEntity.MaxCombatHeroInfo.hp.Value;
long addHp = CombatCalculateTool.Instance.GetVlaueRatioForLong(hp, effectValue[0]);
CombatCalculateTool.Instance.Recover(CombatHeroEntity,
CombatHeroEntity.GetMainHotPoin(), addHp, AttType.Skill, HarmType.Default,
triggerData);
OnResurrected?.Invoke();
}
}
}
protected override void ProDispose()
{
OnResurrected = null;
CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroInjured, HeroInjured);
}
protected override void ProUseSkill()
{
}
}
}