| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 | using Common.Utility.CombatEvent;using Fort23.Core;using GameLogic.Combat.Buff;using GameLogic.Combat.CombatTool;namespace GameLogic.Combat.Skill{    /// <summary>    /// 星辰之力打中敌人后,为期注入星辰印记,在星辰道结束时结算,没3层印记受到20%伤害    /// </summary>    public class S60105 : SkillBasic    {        private DS60101 ds60101;        protected override void ProActiveSkill()        {            ds60101 = CombatHeroEntity.CombatHeroSkillControl.GetSkillBasic<DS60101>();            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<b_1024>();                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()        {        }    }}
 |