Monster_10530503.cs 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. 
  2. using CommonAI.Zone;
  3. using XmdsCommon.Plugin;
  4. using XmdsCommonServer.Plugin;
  5. using XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator;
  6. using XmdsCommonServer.XLS.Data;
  7. using XmdsCommonSkill.Plugin.Buffs;
  8. namespace XmdsCommonSkill.Plugin.Skills.Monster
  9. {
  10. /// <summary>
  11. ///火焰女王罗曼提 - 定时炸弹:对随机一名敌人释放火焰魔法标记敌人,
  12. ///5秒后被标记的敌人和其身边N米内的敌人同时受到x%倍魔攻伤害和额外y点魔法伤害.
  13. ///(无法驱散,中标记的人需要远离人群).
  14. /// </summary>
  15. public class Monster_10530503 : XmdsSkillBase
  16. {
  17. public static int ID = 10530503;
  18. public static XmdsSkillValue DP_1;
  19. /// 定时炸弹BUFFID..
  20. public static int Buff_ID = (int)XmdsBuffBase.XmdsBuffList.DSZD_MONSTER2;
  21. public override int SkillID { get { return ID; } }
  22. protected override void OnSkillLogicEvent(BattleParams param)
  23. {
  24. // +debuff.
  25. if (param.AtkProp.DamagePerID == 1)
  26. {
  27. param.UseDamageType = CommonAI.Data.DamageType.None;
  28. XmdsBuffBase b3 = (XmdsBuffBase)param.Attacker.GetRegisBuffVirtual(Buff_ID);
  29. b3.SetOnHitCallBack(param.GameSkill, OnXmdsBuffHitEvent);
  30. param.Hitter.mUnit.AddBuff(Buff_ID, param.Attacker.mUnit);
  31. }
  32. // 出伤害.
  33. else if (param.AtkProp.DamagePerID == 2)
  34. {
  35. param.UseDamageType = CommonAI.Data.DamageType.Damage;
  36. int d = CalDamagePer(DP_1, param.GameSkill.SkillLevel);
  37. d = XmdsDamageCalculator.GetDamage(d, param.Attacker, param.Hitter, param.Source);
  38. param.Hitter.AddHP(-d);
  39. }
  40. }
  41. private void OnXmdsBuffHitEvent(BattleParams param)
  42. {
  43. //重新
  44. this.OnDoSkillHitProcess(ref param);
  45. }
  46. protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
  47. {
  48. XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(Buff_ID);
  49. BuffTemplate bt = pack.mBuffTemplate;
  50. pack.BindTemplateAndDispose();
  51. bt.IsHarmful = true;
  52. unit.RegistSendBuff(bt);
  53. }
  54. protected override void OnInitSkillParam()
  55. {
  56. XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
  57. InitData(data, out DP_1, XmdsSkillData.XmdsSkillDataKey.DmgRate);
  58. }
  59. }
  60. }