using Common.Utility.CombatEvent;
using Fort23.Core;
using GameLogic.Combat.CombatTool;
using GameLogic.Combat.Hero;
namespace GameLogic.Combat.Skill
{
    /// 
    /// 启动期间每使用一个功法生命恢复2%
    /// 
    public class S60103 : SkillBasic
    {
        private DS60101 ds60101;
        protected override void ProActiveSkill()
        {
            ds60101 = CombatHeroEntity.CombatHeroSkillControl.GetSkillBasic();
            CombatEventManager.Instance.AddEventListener(CombatEventType.UseSkill, UseSkill);
        }
        private void UseSkill(IEventData iEventData)
        {
            if (ds60101 == null || !ds60101.isSkillActive)
            {
                return;
            }
            // SkillFeaturesData mySkillFeaturesData = null;
            CombatUseSkillEventData combatUseSkillEventData = iEventData as CombatUseSkillEventData;
            if (combatUseSkillEventData.useSkill.CombatHeroEntity == CombatHeroEntity)
            {
                long hp = CombatHeroEntity.MaxCombatHeroInfo.hp.Value;
                long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(hp, effectValue[0]);
                CombatCalculateTool.Instance.Recover(CombatHeroEntity,
                    CombatHeroEntity.GetMainHotPoin(), v, AttType.Skill, HarmType.Default,
                    triggerData);
            }
        }
        protected override void ProDispose()
        {
            CombatEventManager.Instance.RemoveEventListener(CombatEventType.UseSkill, UseSkill);
        }
        protected override void ProUseSkill()
        {
        }
    }
}