Monster_5020302.cs 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. 
  2. using CommonAI.Zone;
  3. using XmdsCommon.Plugin;
  4. using XmdsCommonServer.Plugin;
  5. using XmdsCommonSkill.Plugin.Buffs;
  6. using XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator;
  7. using XmdsCommonServer.XLS.Data;
  8. namespace XmdsCommonSkill.Plugin.Skills.Monster
  9. {
  10. /// <summary>
  11. /// 安娜公主 - 冰霜之环:释放一个冰环,使身边的所有敌人受到x倍魔攻额外y点魔法伤害,并有x%造成【冰霜】效果.
  12. /// 【冰霜】:降低敌人x%移动速度,持续x秒.
  13. /// </summary>
  14. public class Monster_5020302 : XmdsSkillBase
  15. {
  16. public static int ID = 5020302;
  17. public static XmdsSkillValue DP_1;
  18. /// 冰霜.
  19. public static int Buff_1 = (int)XmdsBuffBase.XmdsBuffList.BING_SHUANG;
  20. public static XmdsSkillValue BuffDamage;
  21. public override int SkillID { get { return ID; } }
  22. protected override void OnRegistEvent()
  23. {
  24. // 命中率.
  25. this.RegistEvent(EventType.HitRateAdd, OnHitRateAddEvent);
  26. base.OnRegistEvent();
  27. }
  28. private void OnHitRateAddEvent(BattleParams param)
  29. {
  30. //命中率提升10000为必中.
  31. param.HitAdd = (int)XmdsDamageCalculator.PERER;
  32. }
  33. protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
  34. {
  35. //技能技能初始化,常用作为修改BUFF能力等等.
  36. XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(Buff_1);
  37. BuffTemplate bt = pack.mBuffTemplate;
  38. pack.BindTemplateAndDispose();
  39. unit.RegistSendBuff(bt);
  40. }
  41. protected override void OnSkillDamagePerEvent(BattleParams param)
  42. {
  43. int ret = CalDamagePer(DP_1, param.GameSkill.SkillLevel);
  44. param.SkillDamagePer = ret;
  45. }
  46. protected override void OnSkillLogicEvent(BattleParams param)
  47. {
  48. BuffTemplate bt = param.Attacker.GetRegistBuff(Buff_1);
  49. XmdsBuff_MoveSpeedDown buff = param.Attacker.GetRegisBuffVirtual(Buff_1) as XmdsBuff_MoveSpeedDown;
  50. //速度填负,为减速.
  51. buff.ChangePercent = -this.GetTargetFormulaValue(param.GameSkill.SkillLevel, BuffDamage);
  52. //修改BUFF使用时间.
  53. bt.LifeTimeMS = 5000;
  54. bt.IsHarmful = true;
  55. param.Hitter.mUnit.AddBuff(Buff_1, param.Attacker.mUnit);
  56. }
  57. protected override void OnInitSkillParam()
  58. {
  59. XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
  60. InitData(data, out DP_1, XmdsSkillData.XmdsSkillDataKey.DmgRate);
  61. InitData(data, out BuffDamage, XmdsSkillData.XmdsSkillDataKey.ValueSet);
  62. }
  63. }
  64. }