Assassin_202040.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using CommonAI.Zone;
  6. using XmdsCommon.Plugin;
  7. using XmdsCommonServer.Plugin;
  8. using XmdsCommonSkill.Plugin.Buffs;
  9. using CommonAI.Zone.Instance;
  10. using XmdsCommonServer.XLS.Data;
  11. using CommonAI.Data;
  12. namespace XmdsCommonSkill.Plugin.Skills.Assassin
  13. {
  14. /// <summary>
  15. /// 闷棍: 偷袭敌人,造成x倍物攻伤害。若敌人在非战斗状态中,将被瘫痪x秒;若敌人在战斗状态中,则只有x%概率会被瘫痪.
  16. /// </summary>
  17. public class Assassin_202040 : XmdsSkillBase
  18. {
  19. public static int ID = 202040;
  20. /// 伤害倍数.
  21. public static XmdsSkillValue DP_1;
  22. public static int Buff_1 = (int)XmdsBuffBase.XmdsBuffList.TAN_HUAN;
  23. /// 战斗状态敌人,触发瘫痪几率(配表,可升级).
  24. public static XmdsSkillValue Buff_Rate_Up;
  25. public override int SkillID { get { return ID; } }
  26. protected override void OnSkillDamagePerEvent(BattleParams param)
  27. {
  28. int ret = CalDamagePer(DP_1, param.GameSkill.SkillLevel);
  29. param.SkillDamagePer = ret;
  30. }
  31. protected override void OnSkillLogicEvent(BattleParams param)
  32. {
  33. bool f = true;
  34. //战斗状态有概率被瘫痪.
  35. if (param.Hitter.CombatState != BattleStatus.None)
  36. {
  37. f = param.Attacker.RandomPercent(this.GetTargetFormulaValue(param.GameSkill.SkillLevel, Buff_Rate_Up));
  38. }
  39. //非战斗状态一定被瘫痪.
  40. if (f)
  41. {
  42. BuffTemplate bt = param.Attacker.GetRegistBuff(Buff_1);
  43. bt.LifeTimeMS = 5000;
  44. param.Hitter.mUnit.AddBuff(Buff_1, param.Attacker.mUnit);
  45. }
  46. }
  47. protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
  48. {
  49. XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(Buff_1);
  50. BuffTemplate bt = pack.mBuffTemplate;
  51. if (bt != null)
  52. {
  53. bt.IsHarmful = true;
  54. pack.BindTemplateAndDispose();
  55. unit.RegistSendBuff(bt);
  56. }
  57. base.OnInit(info, unit, ref template);
  58. }
  59. protected override void OnInitSkillParam()
  60. {
  61. XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
  62. InitData(data, out DP_1, XmdsSkillData.XmdsSkillDataKey.DmgRate);
  63. InitData(data, out Buff_Rate_Up, XmdsSkillData.XmdsSkillDataKey.ValueSet);
  64. }
  65. }
  66. }