|
@@ -0,0 +1,71 @@
|
|
|
+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()
|
|
|
+ {
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|