Magic_310300.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. using CommonAI.Zone;
  2. using CommonAI.Zone.Helper;
  3. using CommonAI.Zone.Instance;
  4. using System;
  5. using XmdsCommon.Plugin;
  6. using XmdsCommonServer.Plugin;
  7. using XmdsCommonServer.XLS.Data;
  8. using XmdsCommonSkill.Plugin.Buffs;
  9. namespace XmdsCommonSkill.Plugin.Skills.Magic
  10. {
  11. /// <summary>
  12. /// 法师三技能 : 3 基类
  13. /// 闪现到指定点,同时对周围三个方向发射剑气,造成伤害(编辑器配置)
  14. /// </summary>
  15. public class Magic_310300 : XmdsSkillBase
  16. {
  17. /// 技能ID.
  18. private static int ID = 310300;
  19. public override int SkillID { get { return ID; } }
  20. // 伤害:固定值_百分比
  21. public XmdsSkillValue mValueSet1;
  22. //基础命中衰减
  23. protected XmdsSkillValue mValueSet7;
  24. protected override void OnSkillDamagePerEvent(BattleParams param)
  25. {
  26. param.SkillDamageAdd = mValueSet1.GetValue(param.GameSkill.SkillLevel);
  27. param.SkillDamagePer = mValueSet1.GetValueExt(param.GameSkill.SkillLevel);
  28. this.modifySkillDamgage(param);
  29. //多次命中,伤害递减
  30. int nNums = Math.Min(mValueSet7.GetValue(param.GameSkill.SkillLevel, 1), param.GameSkill.mHitUnits.Get(param.Hitter.mUnit.ID));
  31. param.SkillDamagePer = (int)(param.SkillDamagePer * (1 - mValueSet7.GetValue(param.GameSkill.SkillLevel, 2) * nNums * XmdsUnitProp.PER));
  32. //System.Console.WriteLine("OnSkillDamagePerEvent: " + param.Hitter.mUnit.ID + ", " + param.SkillDamagePer);
  33. //if(nNums > 0)
  34. //{
  35. // param.SkillDamagePer -= mValueSet2.GetValue(param.GameSkill.TalentSkillLevel1) * nNums;
  36. // if(param.SkillDamagePer < 0)
  37. // {
  38. // param.SkillDamagePer = 0;
  39. // }
  40. //}
  41. param.GameSkill.mHitUnits.Put(param.Hitter.mUnit.ID, nNums + 1);
  42. }
  43. protected virtual void modifySkillDamgage(BattleParams param)
  44. {
  45. }
  46. protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
  47. {
  48. unit.RegistLaunchSkillOver(OnLaunchSkillOver, info);
  49. }
  50. private int OnLaunchSkillOver(GameSkill info, XmdsCommonServer.Plugin.XmdsVirtual launcher, CommonAI.Zone.Instance.InstanceUnit.SkillState state)
  51. {
  52. info.mHitUnits.Clear();
  53. return 0;
  54. }
  55. protected override void OnInitConfig()
  56. {
  57. XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
  58. InitData(data, out mValueSet1, XmdsSkillData.XmdsSkillDataKey.ValueSet);
  59. InitData(data, out mValueSet7, XmdsSkillData.XmdsSkillDataKey.ValueSet7);
  60. }
  61. }
  62. }