Boss_90313.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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 - 水火无情-水(场地中召唤大量随机出现的红蓝圈圈,给命中玩家分别施加火标记和水标记,
  15. /// 水标记玩家不能被红圈命中,火标记玩家不能被篮圈命中,否则以该玩家为中心释放一次高额AOE伤害)
  16. /// </summary>
  17. public class Boss_90313 : XmdsSkillBase
  18. {
  19. private static int ID = 90313;
  20. public static int Buff_WATER = (int)XmdsBuffBase.XmdsBuffList.TAG_WATER;
  21. public static XmdsSkillValue damageValue1; // 伤害系数1
  22. public static XmdsSkillValue damageValue2; // 伤害系数2
  23. public static XmdsSkillValue tagBuffTime; // Buff时间
  24. public override int SkillID { get { return ID; } }
  25. protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
  26. {
  27. XmdsBuffPack pack1 = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(Buff_WATER);
  28. BuffTemplate bt1 = pack1.mBuffTemplate;
  29. bt1.IsHarmful = true;
  30. bt1.LifeTimeMS = tagBuffTime.GetValue();
  31. pack1.BindTemplateAndDispose();
  32. unit.RegistSendBuff(bt1);
  33. }
  34. //伤害计算
  35. protected override void OnSkillDamagePerEvent(BattleParams param)
  36. {
  37. if (param.Hitter.mUnit.GetBuffByID(Boss_90313.Buff_WATER) == null &&
  38. param.Hitter.mUnit.GetBuffByID(Boss_90314.Buff_FIRE) == null)
  39. {
  40. param.SkillDamagePer = damageValue2.GetValue();
  41. param.Hitter.mUnit.removeBuff(Boss_90313.Buff_WATER);
  42. param.Hitter.mUnit.removeBuff(Boss_90314.Buff_FIRE);
  43. }
  44. else
  45. {
  46. param.SkillDamagePer = damageValue1.GetValue();
  47. }
  48. param.Hitter.mUnit.AddBuff(Boss_90313.Buff_WATER, param.Attacker.mUnit);
  49. }
  50. protected override void OnSkillLogicEvent(BattleParams param)
  51. {
  52. param.Hitter.mUnit.AddBuff(Buff_WATER, param.Attacker.mUnit);
  53. }
  54. protected override void OnInitSkillParam()
  55. {
  56. XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
  57. InitData(data, out damageValue1, XmdsSkillData.XmdsSkillDataKey.DmgRate);
  58. InitData(data, out damageValue2, XmdsSkillData.XmdsSkillDataKey.ValueSet);
  59. InitData(data, out tagBuffTime, XmdsSkillData.XmdsSkillDataKey.ValueSet2);
  60. }
  61. }
  62. }