| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | using Common.Utility.CombatEvent;using Fort23.Core;using GameLogic.Combat.Buff;using GameLogic.Combat.CombatTool;using GameLogic.Combat.Hero;namespace GameLogic.Combat.Skill{    /// <summary>    /// 死亡时恢复30%最大生命    /// </summary>    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<CombatHeroHitPoint>(), addHp, AttType.Skill, HarmType.Default,                        triggerData);                    OnResurrected?.Invoke();                }            }        }        protected override void ProDispose()        {            OnResurrected = null;            CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroInjured, HeroInjured);        }        protected override void ProUseSkill()        {        }    }}
 |