b_1016.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using Common.Utility.CombatEvent;
  2. using Fort23.Core;
  3. using GameLogic.Combat.CombatTool;
  4. using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
  5. namespace GameLogic.Combat.Buff
  6. {
  7. /// <summary>
  8. /// 冰魄牢域
  9. /// 乌龟的技能,神龟的所有主动伤害型技能命中目标后都会施加一层寒气,
  10. ///寒气每叠到{0}层时,消耗所有层寒气对敌人照成{0}秒的冰冻效果
  11. /// </summary>
  12. public class b_1016 : BuffBasic
  13. {
  14. protected override void ProInit()
  15. {
  16. CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjured);
  17. }
  18. private void HeroInjured(IEventData ieveEventData)
  19. {
  20. HeroInjuredEventData heroInjuredEventData = ieveEventData as HeroInjuredEventData;
  21. if (heroInjuredEventData.HarmReturnInfo.source == combatHeroEntity)
  22. {
  23. if (heroInjuredEventData.HarmReturnInfo.attType.HasFlag(AttType.Skill) &&
  24. !heroInjuredEventData.HarmReturnInfo.attType.HasFlag(AttType.FanJi))
  25. {
  26. BuffInfo buffInfo = BuffInfo.GetBuffInfo(10011, 1);
  27. BuffBasic buffBasic =
  28. heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity.BuffControl.AddBuff(
  29. combatHeroEntity, buffInfo);
  30. if (buffBasic.buffCount >= buffInfo.BuffConfig.effectValue[0])
  31. {
  32. heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity.BuffControl.RemoveBuff(buffBasic);
  33. BuffInfo buffInfo2 = BuffInfo.GetBuffInfo(10021, buffInfo.BuffConfig.effectValue[1], 1);
  34. heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity.BuffControl.AddBuff(
  35. combatHeroEntity, buffInfo2);
  36. }
  37. }
  38. }
  39. }
  40. protected override void ProDormancyObj()
  41. {
  42. CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroInjured, HeroInjured);
  43. }
  44. }
  45. }