S60103.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using Common.Utility.CombatEvent;
  2. using Fort23.Core;
  3. using GameLogic.Combat.CombatTool;
  4. using GameLogic.Combat.Hero;
  5. namespace GameLogic.Combat.Skill
  6. {
  7. /// <summary>
  8. /// 启动期间每使用一个功法生命恢复2%
  9. /// </summary>
  10. public class S60103 : SkillBasic
  11. {
  12. private DS60101 ds60101;
  13. protected override void ProActiveSkill()
  14. {
  15. ds60101 = CombatHeroEntity.CombatHeroSkillControl.GetSkillBasic<DS60101>();
  16. CombatEventManager.Instance.AddEventListener(CombatEventType.UseSkill, UseSkill);
  17. }
  18. private void UseSkill(IEventData iEventData)
  19. {
  20. if (ds60101 == null || !ds60101.isSkillActive)
  21. {
  22. return;
  23. }
  24. // SkillFeaturesData mySkillFeaturesData = null;
  25. CombatUseSkillEventData combatUseSkillEventData = iEventData as CombatUseSkillEventData;
  26. if (combatUseSkillEventData.useSkill.CombatHeroEntity == CombatHeroEntity)
  27. {
  28. long hp = CombatHeroEntity.MaxCombatHeroInfo.hp.Value;
  29. long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(hp, effectValue[0]);
  30. CombatCalculateTool.Instance.Recover(CombatHeroEntity,
  31. CombatHeroEntity.GetMainHotPoin<CombatHeroHitPoint>(), v, AttType.Skill, HarmType.Default,
  32. triggerData);
  33. }
  34. }
  35. protected override void ProDispose()
  36. {
  37. CombatEventManager.Instance.RemoveEventListener(CombatEventType.UseSkill, UseSkill);
  38. }
  39. protected override void ProUseSkill()
  40. {
  41. }
  42. }
  43. }