Skill_910030.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using CommonAI.Zone;
  2. using CommonAI.Zone.Helper;
  3. using CommonAI.Zone.Instance;
  4. using CommonLang;
  5. using System;
  6. using XmdsCommon.Plugin;
  7. using XmdsCommonServer.Plugin;
  8. using XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator;
  9. using XmdsCommonServer.Plugin.XmdsSkillTemplate.Skills;
  10. using XmdsCommonServer.XLS.Data;
  11. using XmdsCommonSkill.Plugin.Buffs;
  12. using XmdsCommonSkill.Plugin.PassiveSkills.Magic;
  13. using static CommonAI.Zone.Instance.InstanceUnit;
  14. using static XmdsCommonSkill.Plugin.Buffs.XmdsBuff_SwordShadow;
  15. namespace XmdsCommonSkill.Plugin.Skills.Magic
  16. {
  17. /// <summary>
  18. /// 突刺,命中禁锢,流血
  19. /// </summary>
  20. public class Skill_910030 : XmdsSkillBase
  21. {
  22. private static readonly int ID = 910030;
  23. public override int SkillID { get { return ID; } }
  24. private static readonly int Buff_JinGu = (int)XmdsBuffBase.XmdsBuffList.COM_JINGU; // 禁锢
  25. private static readonly int Buff_Bleed = (int)XmdsBuffBase.XmdsBuffList.COM_BRAND; // 流血
  26. private static XmdsSkillValue mJinGuTime;
  27. private static XmdsSkillValue mBleedDmg;
  28. private static XmdsSkillValue mBleedTime;
  29. protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
  30. {
  31. //禁锢buf
  32. XmdsBuffPack pack1 = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(Buff_JinGu);
  33. BuffTemplate bt1 = pack1.mBuffTemplate;
  34. bt1.IsHarmful = true;
  35. bt1.LifeTimeMS = mJinGuTime.GetValue();
  36. pack1.BindTemplateAndDispose();
  37. unit.RegistSendBuff(bt1);
  38. // 流血
  39. XmdsBuffPack pack2 = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(Buff_Bleed);
  40. var Buff2 = pack2.GetXmdsBuff(XmdsBuffProperties.XmdsBuffAbility.Brand) as XmdsBuff_Brand;
  41. BuffTemplate bt2 = pack2.mBuffTemplate;
  42. bt2.IsHarmful = true;
  43. bt2.LifeTimeMS = mBleedTime.GetValue();
  44. pack2.BindTemplateAndDispose();
  45. unit.RegistSendBuff(bt2);
  46. }
  47. protected override void OnSkillLogicEvent(BattleParams param)
  48. {
  49. param.UseDamageType = CommonAI.Data.DamageType.None;
  50. var bleedBuff = param.Attacker.GetRegisBuffVirtual(Buff_Bleed) as XmdsBuff_Brand;
  51. int baseDamage = CUtils.CastInt(param.Attacker.MirrorProp.GetFinalAttack(param.Hitter.mUnit.IsMonster) * XmdsUnitProp.PER * mBleedDmg.GetValue());
  52. bleedBuff.BuffValue = XmdsDamageCalculator.GetDamage(baseDamage, param.Attacker, param.Hitter, param.Source);
  53. param.Hitter.mUnit.AddBuff(Buff_JinGu, param.Attacker.mUnit);
  54. param.Hitter.mUnit.AddBuff(Buff_Bleed, param.Attacker.mUnit);
  55. }
  56. protected override void OnInitSkillParam()
  57. {
  58. XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
  59. InitData(data, out mJinGuTime, XmdsSkillData.XmdsSkillDataKey.ValueSet);
  60. InitData(data, out mBleedDmg, XmdsSkillData.XmdsSkillDataKey.ValueSet2);
  61. InitData(data, out mBleedTime, XmdsSkillData.XmdsSkillDataKey.ValueSet3);
  62. }
  63. }
  64. }