Monster_10330402.cs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. 
  2. using CommonAI.Zone;
  3. using CommonLang;
  4. using XmdsCommon.Plugin;
  5. using XmdsCommonServer.Plugin;
  6. using XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator;
  7. using XmdsCommonServer.XLS.Data;
  8. using XmdsCommonSkill.Plugin.Buffs;
  9. namespace XmdsCommonSkill.Plugin.Skills.Monster
  10. {
  11. /// <summary>
  12. ///被魔化的艾克 - 定时炸弹:对一个敌人释放黑暗魔法,使其在5秒后爆炸,对敌人和其身边5米内的敌人造成敌人生命x%的魔法伤害.
  13. /// </summary>
  14. public class Monster_10330402 : XmdsSkillBase
  15. {
  16. public static int ID = 10330402;
  17. /// 伤害倍数.
  18. public static XmdsSkillValue DamageHPPer;
  19. /// 定时炸弹BUFFID..
  20. public static int Buff_ID = (int)XmdsBuffBase.XmdsBuffList.DSZD_MONSTER;
  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. else if (param.AtkProp.DamagePerID == 2)
  33. {
  34. param.UseDamageType = CommonAI.Data.DamageType.Damage;
  35. int d = CUtils.CastInt(GetTargetFormulaValue(param.GameSkill.SkillLevel, DamageHPPer)
  36. / XmdsDamageCalculator.PERER * param.Hitter.MirrorProp.MaxHP);
  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 DamageHPPer, XmdsSkillData.XmdsSkillDataKey.ValueSet);
  58. }
  59. }
  60. }