using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
using GameLogic.Combat.Buff;
using GameLogic.Combat.CombatTool;
using UnityEngine;
using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
namespace GameLogic.Combat.Skill.MagicSkill
{
    /// 
    /// 混沌珠 使用后短时间内大幅提升所有灵根{0}%,一场战斗有使用{1}次
    /// 使用后额外对敌人照成的功法伤害提升10%
    /// 
    public class S3202 : MagicSkillBasic
    {
        private CombatHeroEntity target;
        private bool isUpdate = false;
        private float _currTime;
        private int _useCount;
        protected override void ProInitSkill()
        {
        }
        private Vector3 GetTargetPos()
        {
            SpecialDotInfo specialDotInfo =
                CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.GetSpecialDotInfo("toupos1");
            return specialDotInfo.GetWorlPos();
        }
        protected override void ProMagicUseSkill()
        {
            TimeLineEventLogicGroupBasic sk1_show = ActivationTimeLineData("sk1_show");
            sk1_show.TimeLineUpdateEnd = ShowFinish;
            _useCount++;
        }
        private void ShowFinish()
        {
            isUpdate = true;
            _currTime = 0;
            float v = SelfSkillConfig.effectValue[0];
            CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.CurrCombatHeroInfo.Metal += v;
            CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.CurrCombatHeroInfo.Wood += v;
            CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.CurrCombatHeroInfo.Water += v;
            CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.CurrCombatHeroInfo.Fire += v;
            CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.CurrCombatHeroInfo.Earth += v;
            CombatMagicWeaponEntity.combatHeroGameObject.SetPosition(GetTargetPos());
            TimeLineEventLogicGroupBasic sk1 = ActivationTimeLineData("sk1");
            sk1.TimeLineUpdateEnd = Skill1Finish;
        }
        private void Skill1Finish()
        {
            ActivationTimeLineData("sk1_xiaoshi");
            SkillPlayFinish();
        }
        public override bool IsCanUse()
        {
            if (_useCount >= SelfSkillConfig.effectValue[1])
            {
                return false;
            }
            return true;
        }
        protected override void MagicSkillUpdate(float time)
        {
            if (!isUpdate)
            {
                return;
            }
            _currTime += time;
            if (_currTime >= SelfSkillConfig.effectValue[2])
            {
                isUpdate = false;
                float v = SelfSkillConfig.effectValue[0];
                CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.CurrCombatHeroInfo.Metal -= v;
                CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.CurrCombatHeroInfo.Wood -= v;
                CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.CurrCombatHeroInfo.Water -= v;
                CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.CurrCombatHeroInfo.Fire -= v;
                CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.CurrCombatHeroInfo.Earth -= v;
            }
        }
        protected override ILifetCycleHitPoint[] ProGetTineLineTargetEntity(
            TimeLineEventLogicBasic timeLineEventLogicBasic)
        {
            ILifetCycleHitPoint[] lifetCycleHitPoints = new ILifetCycleHitPoint[1];
            lifetCycleHitPoints[0] = target.GetMainHotPoin();
            return lifetCycleHitPoints;
        }
    }
}