using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
using GameLogic.Combat.CombatTool;
using GameLogic.Combat.Hero;
using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
namespace GameLogic.Combat.Skill
{
///
/// 大蛇技能2,吐火焰经过的敌人收到伤害,没0.5秒收到一次伤害
///
public class S110002 : SkillBasic
{
private float _harm;
private float _currTime;
private bool _isUpdate;
// protected BetterList
protected override void ProInitSkillConfig()
{
_harm = SelfSkillConfig.effectValue[0];
}
protected override void ProUseSkill()
{
int odds = CombatCalculateTool.Instance.GetOdd();
string timeName = odds < 50 ? "sk2" : "sk3";
ActivationTimeLineData(timeName);
_currTime = 0;
// _isUpdate = true;
}
// protected override ILifetCycleHitPoint[] ProGetTineLineTargetEntity(
// TimeLineEventLogicBasic timeLineEventLogicBasic)
// {
// ILifetCycleHitPoint[] lifetCycleHitPoints = new ILifetCycleHitPoint[_enterAlertTarget.Count];
//
// for (int i = 0; i < _enterAlertTarget.Count; i++)
// {
// CombatHeroHitPoint combatHeroHitPoint = _enterAlertTarget[i].GetMainHotPoin();
// lifetCycleHitPoints[i] = combatHeroHitPoint;
// }
// return lifetCycleHitPoints;
// }
protected override void ProHeroEnter(TimeLineAlertSeriailztion timeLineAlertSeriailztion,
CombatHeroEntity target)
{
// base.ProHeroEnter(timeLineAlertSeriailztion, target);
}
protected override void ProSkillPlayFinish()
{
_isUpdate = false;
}
protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
ITimelineFxLogic timelineFxLogic,
TriggerData triggerData)
{
_isUpdate = true;
}
protected override void ProCombatUpdate(float time)
{
if (!_isUpdate)
{
return;
}
_currTime += time;
while (_currTime > 0.2f)
{
_currTime -= 0.2f;
for (int i = 0; i < _enterAlertTarget.Count; i++)
{
long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(
CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
_harm);
CombatHeroHitPoint combatHeroHitPoint = _enterAlertTarget[i].GetMainHotPoin();
HarmReturnInfo harmReturnInfo = Harm(CombatHeroEntity, combatHeroHitPoint,
v, AttType.Skill, triggerData);
}
}
}
public override bool IsCanUse()
{
int odds = CombatCalculateTool.Instance.GetOdd();
float bl = CombatHeroEntity.CurrCombatHeroInfo.hp.Value * 100.0f /
CombatHeroEntity.MaxCombatHeroInfo.hp.Value;
// if (bl < 50 && odds < 50)
{
return true;
}
SkillCd = SkillMaxCd;
return false;
}
}
}