using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
using GameLogic.Combat.CombatTool;
using GameLogic.Combat.Hero;
using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
namespace GameLogic.Combat.Skill
{
///
/// 火烧
///
public class S30001: SkillBasic
{
protected float _harm;
protected float _currTime;
private BetterList _currTrigger = new BetterList();
protected TimeLineEventLogicGroupBasic loopGroupBasic;
protected TimeLineEventLogicGroupBasic currMyLoopGroupBasic;
protected bool _isUpdate;
protected override void ProInitSkill()
{
_harm = 200;
}
// 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 = "";
currMyLoopGroupBasic= ActivationTimeLineData("sk1");
_isUpdate = true;
}
protected override void ProBreakSkill()
{
Finish();
}
protected void Finish()
{
currMyLoopGroupBasic?.CloseLoopFx();
_isUpdate = false;
SpecialDotInfo specialDotInfo = CombatHeroEntity.GetMainHotPoin(true)
.GetSpecialDotInfo("sk1_trigger");
specialDotInfo.targetTran.gameObject.SetActive(false);
}
protected override void ProCombatUpdate(float time)
{
if (!_isUpdate)
{
return;
}
_currTime += time;
if (_currTime > 1)
{
_currTime -= 1;
long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
_harm);
if (loopGroupBasic != null)
{
loopGroupBasic.CloseLoopFx();
}
// 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);
}
loopGroupBasic= ActivationTimeLineData("sk1_hit",_currTrigger);
}
}
// 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);
// }
}
}