Magic_310440.cs 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using CommonAI.Zone;
  2. using CommonAI.Zone.Helper;
  3. using CommonAI.Zone.Instance;
  4. using XmdsCommon.Plugin;
  5. using XmdsCommonServer.Plugin;
  6. using XmdsCommonServer.XLS.Data;
  7. using XmdsCommonSkill.Plugin.Buffs;
  8. namespace XmdsCommonSkill.Plugin.Skills.Magic
  9. {
  10. /// <summary>
  11. /// 法师四技能4-4(进出结界时伤害会提高,受到20%减速,持续2S)
  12. /// 伤害帧:1-砸地,2-法阵进出,3-持续伤害, 4-自身增益
  13. /// </summary>
  14. public class Magic_310440 : Magic_310400
  15. {
  16. private static readonly int ID = 310440;
  17. private static readonly int Buff_ID_1 = (int)XmdsBuffBase.XmdsBuffList.SPEED_DOWN;
  18. public XmdsSkillValue mValueSet2;
  19. // 扩展配置
  20. public XmdsSkillValue mValueSet5; //减速
  21. public override int SkillID { get { return ID; } }
  22. protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
  23. {
  24. base.OnInit(info, unit, ref template);
  25. // Buff2修改
  26. var pack2 = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(Buff_ID_1);
  27. var buff2 = pack2.GetXmdsBuff(XmdsBuffProperties.XmdsBuffAbility.MoveSpeedDown) as XmdsBuff_MoveSpeedDown;
  28. buff2.ChangePercent = -mValueSet5.GetValue(info.TalentSkillLevel1, 1);
  29. var bt2 = pack2.mBuffTemplate;
  30. bt2.LifeTimeMS = mValueSet5.GetValue(info.TalentSkillLevel1, 2);
  31. bt2.IsHarmful = true;
  32. pack2.BindTemplateAndDispose();
  33. unit.RegistSendBuff(bt2);
  34. }
  35. protected override void OnSkillDataChange(GameSkill gs, XmdsVirtual unit)
  36. {
  37. base.OnSkillDataChange(gs, unit);
  38. var buff = unit.GetRegisBuffVirtual(Buff_ID_1) as XmdsBuff_MoveSpeedDown;
  39. buff.ChangePercent = -mValueSet5.GetValue(gs.TalentSkillLevel1, 1);
  40. var bt = unit.GetRegistBuff(Buff_ID_1);
  41. bt.LifeTimeMS = mValueSet5.GetValue(gs.TalentSkillLevel1, 2);
  42. }
  43. protected override void OnSkillDamagePerEvent(BattleParams param)
  44. {
  45. base.OnSkillDamagePerEvent(param);
  46. if (param.AtkProp.DamagePerID == 2)//进出法阵,伤害提高
  47. {
  48. param.SkillDamagePer += mValueSet2.GetValue(param.GameSkill.TalentSkillLevel1);
  49. }
  50. }
  51. protected override void OnSkillLogicEvent(BattleParams param)
  52. {
  53. base.OnSkillLogicEvent(param);
  54. param.Hitter.mUnit.AddBuff(Buff_ID_1, param.Attacker.mUnit);
  55. }
  56. protected override void OnInitConfig()
  57. {
  58. XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
  59. InitData(data, out mDmgValue, XmdsSkillData.XmdsSkillDataKey.DmgRate);
  60. InitData(data, out mValueSet, XmdsSkillData.XmdsSkillDataKey.ValueSet);
  61. InitData(data, out mValueSet2, XmdsSkillData.XmdsSkillDataKey.ValueSet2);
  62. // 扩展配置
  63. InitData(data, out mValueSet5, XmdsSkillData.XmdsSkillDataKey.ValueSet5);
  64. }
  65. }
  66. }