using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
using Common.Utility.CombatEvent;
using Fort23.Core;
using GameLogic.Combat.CombatTool;
using GameLogic.Combat.Hero;
using UnityEngine;
using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
namespace GameLogic.Combat.Skill
{
///
/// 木灵分身
/// 生命低于{0}%时触发,木灵的根须快速在自身周围生出2个木灵之子,木灵之子之有普通攻击,木灵之子拥有boss的{1}最大生命值的生命
///(等级跟随boss的等级走)
///
public class S9062 : SkillBasic
{
private bool _isTrigger;
private Vector3[] pos;
// private Vector3 pos2;
protected override void ProUseSkill()
{
ActivationTimeLineData("9062");
Vector3 pos1 = CombatHeroEntity.GameObject.transform.TransformPoint(new Vector3(3, 0, 3));
Vector3 pos2 = CombatHeroEntity.GameObject.transform.TransformPoint(new Vector3(-3, 0, 3));
if (pos == null)
{
pos = new Vector3[2];
}
pos[0] = pos1;
pos[1] = pos2;
ActivationTimeLineData("9062_fashe", customizePos: new Vector3[] { pos1 });
ActivationTimeLineData("9062_fashe", customizePos: new Vector3[] { pos2 });
}
protected override void ProActiveSkill()
{
CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjured);
}
protected override void ProDispose()
{
CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroInjured, HeroInjured);
}
private void HeroInjured(IEventData data)
{
if (_isTrigger)
{
return;
}
HeroInjuredEventData heroInjuredEventData = data as HeroInjuredEventData;
if (heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity == CombatHeroEntity)
{
if (CombatHeroEntity.HpBl < effectValue[0])
{
_isTrigger = true;
CombatHeroEntity.CombatHeroSkillControl.This().AddCommandSkill(this);
// ZhaoHuan();
}
}
}
private void ZhaoHuan()
{
for (int i = 0; i < 2; i++)
{
CombatHeroEntity heroEntity = new CombatHeroEntity();
heroEntity.IsEnemy = true;
CombatHeroInfo combatHeroInfo = new CombatHeroInfo();
combatHeroInfo.InitMonster(1005, CombatHeroEntity.CurrCombatHeroInfo.level.Value);
CombatController.currActiveCombat.CombatHeroController.SummonHero(combatHeroInfo, CombatHeroEntity,
pos[i], -1, null);
}
S9061 s9061 = CombatHeroEntity.CombatHeroSkillControl.GetSkillBasic();
if (s9061 != null)
{
CombatHeroEntity.CombatHeroSkillControl.This().AddCommandSkill(s9061);
}
}
protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
ITimelineFxLogic timelineFxLogic,
TriggerData triggerData, ISkillFeatures skillFeatures)
{
ZhaoHuan();
// float harmBl = 0;
// b_1018 b1018 = targetEntity.combatHeroEntity.BuffControl.GetBuffBasicForType();
// if (b1018 != null) //消耗一层感电,额外照成伤害
// {
// harmBl += b1018.buffCount * effectValue[1];
// }
//
// long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
// harmBl);
//
// HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
// AttType.Skill, triggerData,
// wuXingType, skillFeatures,
// HarmType.Default);
}
}
}