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() { } } }