using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
using GameLogic.Combat.CombatTool;
using GameLogic.Combat.Hero;
using UnityEngine;
using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
namespace GameLogic.Combat.Skill
{
///
/// 火烧
///
public class S30001 : SkillBasic
{
protected float _harm;
protected float _maxTime;
protected float _currTime;
private BetterList _currTrigger = new BetterList();
protected TimeLineEventLogicGroupBasic loopGroupBasic;
protected TimeLineEventLogicGroupBasic currMyLoopGroupBasic;
protected bool _isUpdate;
protected float _currAllTime;
// protected float addXuanZhuang = 0.5f;
// protected float _allAddJiaoDu;
protected override void ProInitSkillConfig()
{
_harm = SelfSkillConfig.effectValue[0];
_maxTime = 3;
}
// protected override ILifetCycleHitPoint[] ProGetTineLineTargetEntity(
// TimeLineEventLogicBasic timeLineEventLogicBasic)
// {
// ILifetCycleHitPoint[] allHero = new ILifetCycleHitPoint[_enterAlertTarget.Count];
// for (int i = 0; i < _enterAlertTarget.Count; i++)
// {
// allHero[i] = _enterAlertTarget[i].GetMainHotPoin();
// }
//
// return allHero;
// }
protected override void ProUseSkill()
{
_finishTimeLineGroupName = "-1";
currMyLoopGroupBasic = ActivationTimeLineData("sk1");
_isUpdate = true;
_currTime = 0;
_currAllTime = 0;
}
protected override void ProBreakSkill()
{
Finish();
}
protected void Finish()
{
currMyLoopGroupBasic?.BreakTimeLine();
if (loopGroupBasic != null)
{
loopGroupBasic.BreakTimeLine();
}
loopGroupBasic = null;
_isUpdate = false;
SpecialDotInfo specialDotInfo = CombatHeroEntity.GetMainHotPoin(true)
.GetSpecialDotInfo("sk1_trigger");
specialDotInfo.targetTran.gameObject.SetActive(false);
}
protected override void ProSkillPlayFinish()
{
Finish();
}
protected override void ProCombatUpdate(float time)
{
if (!_isUpdate)
{
return;
}
// _allAddJiaoDu += addXuanZhuang;
// if (_allAddJiaoDu > 5 || _allAddJiaoDu < -5)
// {
// addXuanZhuang *= -1;
// }
//
// CombatHeroEntity.combatHeroGameObject.transform.Rotate(Vector3.up, addXuanZhuang);
_currTime += time;
_currAllTime += time;
if (_currTime > 0.2f)
{
_currTime -= 0.2f;
long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(
CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
_harm);
if (loopGroupBasic != null)
{
loopGroupBasic.BreakTimeLine();
}
// for (int i = 0; i < _currTrigger.Count; i++)
// {
// _currTrigger[i].IfLifeCycle.This().H
// }
_currTrigger.Clear();
// ILifetCycleHitPoint[] allHero = new ILifetCycleHitPoint[_enterAlertTarget.Count];
for (int i = 0; i < _enterAlertTarget.Count; i++)
{
ILifetCycleHitPoint targetEntity = _enterAlertTarget[i].GetMainHotPoin();
_currTrigger.Add(targetEntity);
HarmReturnInfo harmReturnInfo = Harm(CombatHeroEntity, targetEntity as CombatHeroHitPoint,
v, AttType.Skill, triggerData);
}
// "sk1_hit"
string hitName = "sk1_hit_lv4";
loopGroupBasic = ActivationTimeLineData( hitName, _currTrigger);
}
if (_currAllTime > _maxTime)
{
SkillPlayFinish();
}
}
// protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
// ITimelineFxLogic timelineFxLogic,
// TriggerData triggerData)
// {
// long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
// _harm);
// HarmReturnInfo harmReturnInfo = Harm(CombatHeroEntity, targetEntity,
// v, AttType.Skill, triggerData);
// }
}
}