S2006.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. using Common.Utility.CombatEvent;
  2. using Fort23.Core;
  3. namespace GameLogic.Combat.Skill
  4. {
  5. /// <summary>
  6. /// 乾坤巨灵诀 后方槽位第一个技能体型巨大化,且在对碰中受到伤害减少20%
  7. /// 受影响的功法被碰撞摧毁时不在消失,并且恢复30%以损失的强度
  8. /// </summary>
  9. public class S2006 : SkillBasic
  10. {
  11. protected override void ProUseSkill()
  12. {
  13. }
  14. protected override void ProReplace()
  15. {
  16. CombatEventManager.Instance.RemoveEventListener(CombatEventType.TimelineFxLogicInit, TimelineFxLogicInit);
  17. CombatEventManager.Instance.RemoveEventListener(CombatEventType.GongFaPengZhuangFinish,
  18. GongFaPengZhuangFinish);
  19. }
  20. protected override void ProActiveSkill()
  21. {
  22. CombatEventManager.Instance.AddEventListener(CombatEventType.TimelineFxLogicInit, TimelineFxLogicInit);
  23. CombatEventManager.Instance.AddEventListener(CombatEventType.GongFaPengZhuangFinish,
  24. GongFaPengZhuangFinish);
  25. }
  26. private void GongFaPengZhuangFinish(IEventData iEventData)
  27. {
  28. GongFaPengZhuangFinishEventData gongFaPengZhuangFinishEventData =
  29. iEventData as GongFaPengZhuangFinishEventData;
  30. if (gongFaPengZhuangFinishEventData.a.SkillBasic.CombatHeroEntity == CombatHeroEntity &&
  31. gongFaPengZhuangFinishEventData.a.hp <= 0 &&
  32. gongFaPengZhuangFinishEventData.a.SkillBasic.index + 1 == index)
  33. {
  34. gongFaPengZhuangFinishEventData.a.hp = (long)(gongFaPengZhuangFinishEventData.a.maxHp * 0.3f);
  35. }
  36. if (gongFaPengZhuangFinishEventData.b.SkillBasic.CombatHeroEntity == CombatHeroEntity &&
  37. gongFaPengZhuangFinishEventData.b.hp <= 0 &&
  38. gongFaPengZhuangFinishEventData.b.SkillBasic.index + 1 == index)
  39. {
  40. gongFaPengZhuangFinishEventData.b.hp = (long)(gongFaPengZhuangFinishEventData.b.maxHp * 0.3f);
  41. }
  42. }
  43. private void TimelineFxLogicInit(IEventData iEventData)
  44. {
  45. TimelineFxLogicInitEventData timelineFxLogicInitEventData = iEventData as TimelineFxLogicInitEventData;
  46. if (timelineFxLogicInitEventData.SkillBasic.CombatHeroEntity == CombatHeroEntity)
  47. {
  48. if (IsPassiveActivateSkill(timelineFxLogicInitEventData.SkillBasic))
  49. {
  50. timelineFxLogicInitEventData.timelineFxLogic.size *= 2;
  51. }
  52. // timelineFxLogicInitEventData.timelineFxLogic.SkillFeaturesData.
  53. }
  54. }
  55. }
  56. }