Magic_310360.cs 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. using CommonAI.Zone;
  2. using CommonAI.Zone.Helper;
  3. using CommonAI.Zone.Instance;
  4. using System.Diagnostics;
  5. using XmdsCommon.Plugin;
  6. using XmdsCommonServer.Plugin;
  7. using XmdsCommonServer.Plugin.XmdsSkillTemplate.Skills;
  8. using XmdsCommonServer.XLS.Data;
  9. using XmdsCommonSkill.Plugin.Buffs;
  10. namespace XmdsCommonSkill.Plugin.Skills.Magic
  11. {
  12. /// <summary>
  13. /// 法师三技能:3-6(释放技能后获得剑魂,下次攻击会召唤数柄仙剑从空中四面八方刺向目标,对目标造成伤害,对目标周围圆形范围敌人造成少量伤害)
  14. /// </summary>
  15. public class Magic_310360 : Magic_310350
  16. {
  17. private static readonly int ID = 310360;
  18. public override int SkillID { get { return ID; } }
  19. protected static readonly int BuffID_3_6 = (int)XmdsBuffBase.XmdsBuffList.FS_BUFF_3_6;
  20. //3-6自己经过寒霜加速,加攻,N秒
  21. public XmdsSkillValue mValueSet4;
  22. protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
  23. {
  24. base.OnInit(info, unit, ref template);
  25. XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(BuffID_3_6);
  26. //攻击
  27. XmdsBuff_PropChange buff = (XmdsBuff_PropChange)pack.GetXmdsBuff(0);
  28. buff.CurentChangeType = XmdsVirtual.UnitAttributeType.MoveSpeed;
  29. buff.CurrentValue = mValueSet4.GetValue(info.TalentSkillLevel3, 1);
  30. buff.IsPercent = true;
  31. //攻速
  32. XmdsBuff_PropChange buff1 = (XmdsBuff_PropChange)pack.GetXmdsBuff(1);
  33. buff1.CurentChangeType = XmdsVirtual.UnitAttributeType.Attack;
  34. buff1.CurrentValue = mValueSet4.GetValue(info.TalentSkillLevel3, 2);
  35. buff1.IsPercent = true;
  36. BuffTemplate bt = pack.mBuffTemplate;
  37. bt.IsHarmful = true;
  38. bt.LifeTimeMS = mValueSet4.GetValue(info.TalentSkillLevel3, 3);
  39. pack.BindTemplateAndDispose();
  40. unit.RegistSendBuff(bt);
  41. }
  42. protected override void OnSkillDataChange(GameSkill gs, XmdsVirtual unit)
  43. {
  44. base.OnSkillDataChange(gs, unit);
  45. var buff1 = unit.GetRegisBuffVirtual(BuffID_3_6, 0) as XmdsBuff_PropChange;
  46. buff1.CurrentValue = mValueSet4.GetValue(gs.TalentSkillLevel3, 1);
  47. var buff2 = unit.GetRegisBuffVirtual(BuffID_3_6, 1) as XmdsBuff_PropChange;
  48. buff2.CurrentValue = mValueSet4.GetValue(gs.TalentSkillLevel3, 2);
  49. var bt1 = unit.GetRegistBuff(BuffID_3_6);
  50. bt1.LifeTimeMS = mValueSet4.GetValue(gs.TalentSkillLevel3, 3);
  51. }
  52. protected override void OnSkillLogicEvent(BattleParams param)
  53. {
  54. base.OnSkillLogicEvent(param);
  55. if(param.Attacker.mUnit == param.Hitter.mUnit)
  56. {
  57. param.UseDamageType = CommonAI.Data.DamageType.None;
  58. param.Attacker.mUnit.AddBuff(BuffID_3_6);
  59. }
  60. }
  61. protected override void OnInitConfig()
  62. {
  63. XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
  64. InitData(data, out mValueSet1, XmdsSkillData.XmdsSkillDataKey.ValueSet);
  65. InitData(data, out mValueSet2, XmdsSkillData.XmdsSkillDataKey.ValueSet2);
  66. InitData(data, out mValueSet3, XmdsSkillData.XmdsSkillDataKey.ValueSet3);
  67. InitData(data, out mValueSet4, XmdsSkillData.XmdsSkillDataKey.ValueSet4);
  68. // 扩展配置
  69. InitData(data, out mValueSet5, XmdsSkillData.XmdsSkillDataKey.ValueSet5);
  70. InitData(data, out mValueSet6, XmdsSkillData.XmdsSkillDataKey.ValueSet6);
  71. InitData(data, out mValueSet7, XmdsSkillData.XmdsSkillDataKey.ValueSet7);
  72. }
  73. }
  74. }