using Fort23.Core;
using GameLogic.Combat.CombatTool;
using GameLogic.Combat.Hero;
using UnityEngine;
using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
namespace GameLogic.Combat.Skill.MagicSkill
{
    /// 
    /// 法宝技能
    /// 
    public class S901001 : MagicSkillBasic
    {
        private CombatHeroEntity target;
        protected override void ProMagicUseSkill()
        {
            // StraightLineShow straightLineShow = new StraightLineShow();
            // straightLineShow.Init(this);
            CombatHeroEntity[] allHero =
                CombatController.currActiveCombat.CombatHeroController.GetHero(!CombatHeroEntity.IsEnemy);
            if (allHero == null || allHero.Length <= 0)
            {
                SkillPlayFinish();
                return;
            }
            target = allHero[0];
            MagicAttShowBasic magicAttShowBasic = InitMagicAttShowBasic(allHero[0], Finish);
            SetMagicAttShowBasic(magicAttShowBasic);
        }
        protected override ILifetCycleHitPoint[] ProGetTineLineTargetEntity(TimeLineEventLogicBasic timeLineEventLogicBasic)
        {
            ILifetCycleHitPoint[] lifetCycleHitPoints = new ILifetCycleHitPoint[1];
            lifetCycleHitPoints[0] = target.GetMainHotPoin();
            return lifetCycleHitPoints;
        }
        private void Finish()
        {
            Debug.Log("法宝对敌人照成伤害");
            ILifetCycleHitPoint lifetCycleHitPoint = target.GetMainHotPoin();
            if (lifetCycleHitPoint == null)
            {
                return;
            }
            HarmReturnInfo harmReturnInfo = CObjectPool.Instance.Fetch();
            harmReturnInfo.source = CombatHeroEntity;
            harmReturnInfo.target = target.GetMainHotPoin();
            harmReturnInfo.att = 200;
            harmReturnInfo.attType = AttType.Normal;
            harmReturnInfo.harmType = HarmType.Default;
            harmReturnInfo.triggerData = triggerData;
            target.HeroHurt(harmReturnInfo);
            
            BetterList cBetterList = new BetterList(1);
            cBetterList.Add(lifetCycleHitPoint);
            ActivationTimeLineData("gongji", currTarget: cBetterList);
            SkillPlayFinish();
         
            // CombatCalculateTool.Instance.Harm(CombatHeroEntity, lifetCycleHitPoint as CombatHeroHitPoint, 200, AttType.Normal, triggerData,
            //     HarmType.Default);
        }
    }
}