using System.Collections.Generic;
using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
using GameLogic.Combat.Buff;
using GameLogic.Combat.CombatTool;
using GameLogic.Combat.Hero;
using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
namespace GameLogic.Combat.Skill
{
    /// 
    /// 随机为一名队友恢复{0}%生命值
    /// 
    public class S9092 : SkillBasic
    {
        protected override void ProUseSkill()
        {
            CombatHeroEntity[] allHero =
                CombatController.currActiveCombat.CombatHeroController.GetHero(CombatHeroEntity.IsEnemy,out int maxCount);
            CombatHeroEntity target = null;
            float minHp = 9999;
            for (int i = 0; i < maxCount; i++)
            {
                CombatHeroEntity t = allHero[i];
                if (t.HpBl < minHp)
                {
                    minHp = t.HpBl;
                    target = t;
                }
            }
            BetterList currTarget = new BetterList();
            if (target != null)
            {
                currTarget.Add(target.GetMainHotPoin());
            }
            ActivationTimeLineData("9092", currTarget: currTarget);
        }
        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
            ITimelineFxLogic timelineFxLogic,
            TriggerData triggerData, ISkillFeatures skillFeatures)
        {
            long att = CombatHeroEntity.CurrCombatHeroInfo.attack.Value;
            long v=CombatCalculateTool.Instance.GetVlaueRatioForLong(att,effectValue[0]);
            CombatCalculateTool.Instance.Recover(CombatHeroEntity, targetEntity, v, AttType.Skill, HarmType.Default,
                triggerData);
            // List allBuff = targetEntity.combatHeroEntity.BuffControl.GetBuffBasicForBuffType(2, 1);
            // if (allBuff.Count > 0)
            // {
            //     int index = CombatCalculateTool.Instance.GetOdd(0, allBuff.Count);
            //     targetEntity.combatHeroEntity.BuffControl.RemoveBuff(allBuff[index]);
            // }
        }
    }
}