Magic_310120.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using CommonAI.Data;
  2. using CommonAI.Zone;
  3. using CommonAI.Zone.Formula;
  4. using CommonAI.Zone.Helper;
  5. using CommonAI.Zone.Instance;
  6. using CommonLang;
  7. using System;
  8. using XmdsCommon.Plugin;
  9. using XmdsCommonServer.Plugin;
  10. using XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator;
  11. using XmdsCommonServer.XLS.Data;
  12. namespace XmdsCommonSkill.Plugin.Skills.Magic
  13. {
  14. /// <summary>
  15. /// 法师【1】技能 1 - 2(根据敌人当前生命值,造成额外伤害,当前血越低伤害越高,波动值n-n1(有上下限))
  16. /// </summary>
  17. public class Magic_310120 : Magic_310110
  18. {
  19. /// 技能ID.
  20. private static int ID = 310120;
  21. //1-2血量每减少N1,伤害提高N2
  22. protected XmdsSkillValue mValueSet3;
  23. /// 获取技能ID.
  24. public override int SkillID { get { return ID; } }
  25. private float mHpMaxLayer = 0;
  26. protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
  27. {
  28. base.OnInit(info, unit, ref template);
  29. this.mHpMaxLayer = (XmdsDamageCalculator.PERER / mValueSet3.GetValue(info.TalentSkillLevel2, 1));
  30. }
  31. protected override void OnSkillDataChange(GameSkill gs, XmdsVirtual unit)
  32. {
  33. base.OnSkillDataChange(gs, unit);
  34. this.mHpMaxLayer = XmdsDamageCalculator.PERER / mValueSet3.GetValue(gs.TalentSkillLevel2, 1);
  35. }
  36. protected override void OnSkillDamagePerEvent(BattleParams param)
  37. {
  38. base.OnSkillDamagePerEvent(param);
  39. int hpLevel = (int)(mHpMaxLayer - mHpMaxLayer / param.Hitter.MirrorProp.MaxHP * param.Hitter.mUnit.CurrentHP);
  40. if(hpLevel > 0)
  41. {
  42. param.SkillDamagePer += hpLevel * mValueSet3.GetValue(param.GameSkill.TalentSkillLevel2, 2);
  43. }
  44. }
  45. protected override void OnInitConfig()
  46. {
  47. XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
  48. InitData(data, out mValueSet1, XmdsSkillData.XmdsSkillDataKey.ValueSet);
  49. InitData(data, out mValueSet2, XmdsSkillData.XmdsSkillDataKey.ValueSet2);
  50. InitData(data, out mValueSet3, XmdsSkillData.XmdsSkillDataKey.ValueSet3);
  51. // 扩展配置
  52. InitData(data, out mValueSet8, XmdsSkillData.XmdsSkillDataKey.ValueSet8);
  53. }
  54. }
  55. }