CardSkill_QingLongBase.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using CommonAI.Data;
  2. using CommonAI.Zone;
  3. using CommonAI.Zone.Formula;
  4. using CommonLang;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using XmdsCommon.Plugin;
  11. using XmdsCommonServer.Plugin;
  12. using XmdsCommonServer.XLS.Data;
  13. using XmdsCommonSkill.Plugin.Buffs;
  14. namespace XmdsCommonSkill.Plugin.CardSkill
  15. {
  16. public abstract class CardSkill_QingLongBase : JSGCardSkillBase
  17. {
  18. // 青龙之力【n秒内下一个朱雀技能伤害每层提高80%,并清除该buff】 (青龙技能主治疗量加成)
  19. public static readonly int BuffID_TYPE_ABILITY = (int)XmdsBuffBase.XmdsBuffList.CARD_QINGLONG;
  20. protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
  21. {
  22. // 打到其他人(主治疗逻辑处理)
  23. unit.RegistOnHitOther(OnHandleHitOther, info);
  24. }
  25. protected float OnHandleHitOther(float damage, XmdsVirtual hitted, XmdsVirtual attacker, AttackSource source,
  26. ref XmdsVirtual.AtkResult result, DamageType damageType, GameSkill skill, ref bool isEndDispatch)
  27. {
  28. //受治疗量提高
  29. if (damage < 0)
  30. {
  31. return GetHealFinalValue(attacker, damage);
  32. }
  33. return damage;
  34. }
  35. // 护盾
  36. public float GetHealFinalValue(XmdsVirtual player, float healValue)
  37. {
  38. IntIntData strengthInfo = player.CardModule.GetStrengthInfo(CardStrengthenType.Heal);
  39. if (strengthInfo != null && strengthInfo.value1 > 0)
  40. {
  41. return healValue * (1.0f + strengthInfo.value1 * XmdsUnitProp.PER);
  42. }
  43. return healValue;
  44. }
  45. }
  46. }