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;
protected override void ProUseSkill()
{
}
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;
ZhaoHuan();
}
}
}
private void ZhaoHuan()
{
for (int i = 0; i < 2; i++)
{
CombatHeroEntity heroEntity = new CombatHeroEntity();
heroEntity.IsEnemy = true;
CombatHeroInfo combatHeroInfo = new CombatHeroInfo();
combatHeroInfo.InitMonster(1000, 1);
// testHeroInfoConfig.CopyToCombatHeroInfo((combatHeroInfo));
Vector3 pos = Vector3.forward;
heroEntity.Init(new CombatHeroAi(), combatHeroInfo, pos,
delegate(CombatHeroEntity entity)
{
CombatController.currActiveCombat.CombatHeroController.AddHero(entity);
});
}
}
protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
ITimelineFxLogic timelineFxLogic,
TriggerData triggerData, ISkillFeatures skillFeatures)
{
// 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);
}
}
}