CardSkill_BaiHuBase.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using CommonAI.Zone;
  2. using CommonAI.Zone.Formula;
  3. using CommonAI.Zone.Instance;
  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_BaiHuBase : JSGCardSkillBase
  17. {
  18. // 白虎之力【n秒内下一个玄武技能增加的护盾量每层提高80%,并清除该buff】(白虎技能主伤害(走基类) + 破定)
  19. public static readonly int BuffID_TYPE_ABILITY = (int)XmdsBuffBase.XmdsBuffList.CARD_BAIHU;
  20. protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
  21. {
  22. unit.RegistReduceMPEvent(OnReduceOtherMpEvent, info);
  23. }
  24. private bool OnReduceOtherMpEvent(int mp, InstanceUnit sender, InstanceUnit hitter, out int finalMP, AttackSource source)
  25. {
  26. finalMP = mp;
  27. if (source == null || source.FromSkillType != CommonAI.Zone.Helper.XmdsSkillType.cardSkill)
  28. {
  29. return false;
  30. }
  31. IntIntData strengthInfo = (sender.Virtual as XmdsVirtual).CardModule.GetStrengthInfo(CardStrengthenType.Shield);
  32. if (strengthInfo != null && strengthInfo.value1 > 0)
  33. {
  34. finalMP += CUtils.CastInt(finalMP * (XmdsUnitProp.PER * strengthInfo.value1));
  35. }
  36. return false;
  37. }
  38. }
  39. }