Boss_90311.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using CommonAI.Zone;
  2. using CommonAI.Zone.Formula;
  3. using CommonAI.Zone.Helper;
  4. using CommonAI.Zone.Instance;
  5. using XmdsCommon.Plugin;
  6. using XmdsCommonServer.Plugin;
  7. using XmdsCommonServer.XLS.Data;
  8. using XmdsCommonSkill.Plugin.Buffs;
  9. using XmdsCommonSkill.Plugin.PassiveSkills.Magic;
  10. using static CommonAI.Zone.Instance.InstanceUnit;
  11. namespace XmdsCommonSkill.Plugin.Skills.Boss
  12. {
  13. /// <summary>
  14. /// boss - 3 - 离火阵(延迟3秒后,对区域内的单位造成<$1>伤害,并施加离火BUFF,如果目标携带有坎水BUFF,受到的伤害变为<$2>)
  15. /// </summary>
  16. public class Boss_90311 : XmdsSkillBase
  17. {
  18. private static int ID = 90311;
  19. public static XmdsSkillValue damageValue1; // 伤害系数1
  20. public static XmdsSkillValue damageValue2; // 伤害系数2
  21. public static XmdsSkillValue tagBuffTime; // Buff时间
  22. public override int SkillID { get { return ID; } }
  23. protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
  24. {
  25. XmdsBuffPack pack2 = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(Boss_90314.Buff_FIRE);
  26. BuffTemplate bt2 = pack2.mBuffTemplate;
  27. bt2.IsHarmful = true;
  28. bt2.LifeTimeMS = tagBuffTime.GetValue();
  29. pack2.BindTemplateAndDispose();
  30. unit.RegistSendBuff(bt2);
  31. }
  32. //伤害计算
  33. protected override void OnSkillDamagePerEvent(BattleParams param)
  34. {
  35. if(param.Hitter.mUnit.GetBuffByID(Boss_90313.Buff_WATER) != null)
  36. {
  37. param.SkillDamagePer = damageValue2.GetValue();
  38. param.Hitter.mUnit.removeBuff(Boss_90313.Buff_WATER);
  39. }
  40. else
  41. {
  42. param.SkillDamagePer = damageValue1.GetValue();
  43. }
  44. param.Hitter.mUnit.AddBuff(Boss_90314.Buff_FIRE, param.Attacker.mUnit);
  45. }
  46. protected override void OnInitSkillParam()
  47. {
  48. XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
  49. InitData(data, out damageValue1, XmdsSkillData.XmdsSkillDataKey.DmgRate);
  50. InitData(data, out damageValue2, XmdsSkillData.XmdsSkillDataKey.ValueSet);
  51. InitData(data, out tagBuffTime, XmdsSkillData.XmdsSkillDataKey.ValueSet2);
  52. }
  53. }
  54. }