using Common.Utility.CombatEvent;
using Fort23.Core;
using GameLogic.Combat.Buff;
using GameLogic.Combat.CombatTool;
namespace GameLogic.Combat.Skill
{
///
/// 星辰之力打中敌人后,为期注入星辰印记,在星辰道结束时结算,没3层印记受到20%伤害
///
public class S60105 : SkillBasic
{
private DS60101 ds60101;
protected override void ProActiveSkill()
{
ds60101 = CombatHeroEntity.CombatHeroSkillControl.GetSkillBasic();
ds60101.OnSkillActivefinish += OnSkillActivefinish;
CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjured);
}
private void OnSkillActivefinish()
{
CombatHeroEntity[] allHero =
CombatController.currActiveCombat.CombatHeroController.GetHero(!CombatHeroEntity.IsEnemy);
for (int i = 0; i < allHero.Length; i++)
{
CombatHeroEntity combatHeroEntity = allHero[i];
b_1024 b1024 = combatHeroEntity.BuffControl.GetBuffBasicForType();
if (b1024 != null)
{
b1024.Trigger(CombatHeroEntity);
combatHeroEntity.BuffControl.RemoveBuff(b1024);
}
}
}
private void HeroInjured(IEventData iEventData)
{
if (ds60101 == null || !ds60101.isSkillActive)
{
return;
}
// SkillFeaturesData mySkillFeaturesData = null;
HeroInjuredEventData heroInjuredEventData = iEventData as HeroInjuredEventData;
if (heroInjuredEventData.HarmReturnInfo.source == CombatHeroEntity &&
heroInjuredEventData.HarmReturnInfo.isHitHero)
{
S60104 s60104 = heroInjuredEventData.HarmReturnInfo.triggerData.Source as S60104;
if (s60104 != null)
{
BuffInfo buffInfo = BuffInfo.GetBuffInfo(10241, -1, 1);
heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity.BuffControl.AddBuff(CombatHeroEntity,
buffInfo);
}
}
}
protected override void ProDispose()
{
ds60101.OnSkillActivefinish -= OnSkillActivefinish;
CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroInjured, HeroInjured);
}
protected override void ProUseSkill()
{
}
}
}