Guest User

PlayerTopAlertListPlugin.cs

a guest
Jul 1st, 2020
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 15.89 KB | None | 0 0
  1. namespace Turbo.Plugins.Jack.Alerts
  2. {
  3.     using System.Collections.Generic;
  4.     using System.Globalization;
  5.     using System.Linq;
  6.     using Turbo.Plugins.Default;
  7.     using Turbo.Plugins.Jack.Extensions;
  8.     using Turbo.Plugins.Jack.Models;
  9.  
  10.     public class PlayerTopAlertListPlugin : BasePlugin, IInGameTopPainter, IInGameWorldPainter
  11.     {
  12.         public AlertList AlertList { get; set; }
  13.  
  14.         public PlayerTopAlertListPlugin()
  15.         {
  16.             Enabled = true;
  17.         }
  18.  
  19.         public override void Load(IController hud)
  20.         {
  21.             base.Load(hud);
  22.  
  23.             AlertList = new AlertList(Hud)
  24.             {
  25.                 TextAlign = HorizontalAlign.Center,
  26.             };
  27.  
  28.             var powers = Hud.Sno.SnoPowers;
  29.             var warningMessageFormat = "⚠ {0} ⚠";
  30.  
  31.             // ===
  32.             // ALL
  33.             // ===
  34.             // Molten explosions
  35.             var moltenIds = new HashSet<ActorSnoEnum>()
  36.             {
  37.                 ActorSnoEnum._monsteraffix_molten_deathstart_proxy, //4803,
  38.                 ActorSnoEnum._monsteraffix_molten_deathexplosion_proxy, //4804,
  39.                 ActorSnoEnum._monsteraffix_molten_firering, //224225,
  40.                 // TODO : missing!!! ActorSnoEnum.???, //247987,
  41.             };
  42.             AlertList.Alerts.Add(new Alert(Hud)
  43.             {
  44.                 MessageFormat = "💣 💥 💣",
  45.                 Rule =
  46.                 {
  47.                     ActorSnoIds = moltenIds,
  48.                     CustomCondition = (controller) =>
  49.                     {
  50.                         return Hud.Game.Actors.Any(a => moltenIds.Contains(a.SnoActor.Sno) && Hud.Game.Me.FloorCoordinate.XYDistanceTo(a.FloorCoordinate) <= 13);
  51.                     },
  52.                 },
  53.                 Label =
  54.                 {
  55.                     TextFont = Hud.Render.CreateFont("tahoma", 18, 255, 244, 30, 30, false, false, 242, 0, 0, 0, true),
  56.                 }
  57.             });
  58.             // Grotesque & Fast Mummy explosions
  59.             var explosiveMonsterIds = new HashSet<ActorSnoEnum>()
  60.             {
  61.                 // Fast Mummy
  62.                 ActorSnoEnum._fastmummy_a, // = 4104,
  63.                 ActorSnoEnum._fastmummy_b, // = 4105,
  64.                 ActorSnoEnum._fastmummy_c, // = 4106,
  65.                 // Grotesque
  66.                 ActorSnoEnum._corpulent_a, // = 3847,
  67.                 ActorSnoEnum._corpulent_b, // = 3848,
  68.                 ActorSnoEnum._corpulent_c, // = 3849,
  69.                 ActorSnoEnum._corpulent_d, // = 3850,
  70.                 //_corpulent_suicide_spiders = 137122,
  71.                 //_corpulent_suicide_frost = 191602,
  72.                 //_corpulent_suicide_imps = 220536,
  73.                 ActorSnoEnum._corpulent_c_oasisambush_unique, //  113994,
  74.                 ActorSnoEnum._corpulent_frost_a, //  191592,
  75.                 ActorSnoEnum._corpulent_d_cultistsurvivor_unique, //  195639,
  76.                 ActorSnoEnum._corpulent_a_unique_01, //  218307,
  77.                 ActorSnoEnum._corpulent_a_unique_02, //  218308,
  78.                 ActorSnoEnum._corpulent_b_unique_01, //  218405,
  79.                 ActorSnoEnum._corpulent_a_unique_03, //  365450,
  80.                 ActorSnoEnum._corpulent_d_unique_spec_01, //  365465,
  81.             };
  82.             AlertList.Alerts.Add(new Alert(Hud)
  83.             {
  84.                 MessageFormat = "💥 {0} 💥",
  85.                 AlertTextFunc = (id) =>
  86.                 {
  87.                     var sno = Hud.Game.Monsters.FirstOrDefault(m => explosiveMonsterIds.Contains(m.SnoActor.Sno));
  88.                     return sno != null && sno.SnoActor != null ? sno.SnoActor.NameLocalized : "💣";
  89.                 },
  90.                 Rule =
  91.                 {
  92.                     ActorSnoIds = explosiveMonsterIds,
  93.                     VisibleCondition = (controller) =>
  94.                     {
  95.                         return Hud.Game.Monsters.Any(a => explosiveMonsterIds.Contains(a.SnoActor.Sno) && !a.IsAlive && Hud.Game.Me.FloorCoordinate.XYDistanceTo(a.FloorCoordinate) <= 20);
  96.                     },
  97.                 },
  98.                 Label =
  99.                 {
  100.                     TextFont = Hud.Render.CreateFont("tahoma", 18, 255, 244, 30, 30, false, false, 242, 0, 0, 0, true),
  101.                 }
  102.             });
  103.             // Oculus
  104.             AlertList.Alerts.Add(new Alert(Hud)
  105.             {
  106.                 //AlertTextFunc = (id) => "Oculus",
  107.                 TextSnoId = 3563390301,
  108.                 MessageFormat = "⚔ {0} ⚔",
  109.                 Rule =
  110.                 {
  111.                     ActiveBuffs = new[] { new SnoPowerId(402461, 2) },
  112.                 },
  113.                 Label =
  114.                 {
  115.                     TextFont = Hud.Render.CreateFont("tahoma", 14, 255, 30, 244, 30, false, false, 242, 0, 0, 0, true),
  116.                 }
  117.             });
  118.  
  119.             // =========
  120.             // Barbarian
  121.             // =========
  122.             // War Cry
  123.             AlertList.Alerts.Add(new Alert(Hud, HeroClass.Barbarian)
  124.             {
  125.                 TextSnoId = powers.Barbarian_WarCry.Sno,
  126.                 MessageFormat = warningMessageFormat,
  127.                 Rule =
  128.                 {
  129.                     EquippedSkills = new[] { powers.Barbarian_WarCry.CreateSnoPowerId() },
  130.                     InactiveBuffs = new[] { powers.Barbarian_WarCry.CreateSnoPowerId() }
  131.                 },
  132.             });
  133.             // Battle Rage
  134.             AlertList.Alerts.Add(new Alert(Hud, HeroClass.Barbarian)
  135.             {
  136.                 TextSnoId = powers.Barbarian_BattleRage.Sno,
  137.                 MessageFormat = warningMessageFormat,
  138.                 Rule =
  139.                 {
  140.                     EquippedSkills = new[] { new SnoPowerId(powers.Barbarian_BattleRage.Sno) },
  141.                     InactiveBuffs = new[] { new SnoPowerId(powers.Barbarian_BattleRage.Sno) }
  142.                 },
  143.             });
  144.             // Ignore Pain
  145.             AlertList.Alerts.Add(new Alert(Hud, HeroClass.Barbarian)
  146.             {
  147.                 TextSnoId = powers.Barbarian_IgnorePain.Sno,
  148.                 MessageFormat = warningMessageFormat,
  149.                 Rule =
  150.                 {
  151.                     EquippedSkills = new[] { new SnoPowerId(powers.Barbarian_IgnorePain.Sno) },
  152.                     InactiveBuffs = new[] { new SnoPowerId(powers.Barbarian_IgnorePain.Sno) }
  153.                 },
  154.             });
  155.             // Call of Ancients
  156.             AlertList.Alerts.Add(new Alert(Hud, HeroClass.Barbarian)
  157.             {
  158.                 TextSnoId = powers.Barbarian_CallOfTheAncients.Sno,
  159.                 MessageFormat = warningMessageFormat,
  160.                 Rule =
  161.                 {
  162.                     EquippedSkills = new[] { new SnoPowerId(powers.Barbarian_CallOfTheAncients.Sno) },
  163.                     ActiveBuffs = new[] { new SnoPowerId(318760) }, // only when wearing IK 4pc
  164.                     InvocationActorSnoIds = new HashSet<ActorSnoEnum>()
  165.                     {
  166.                         ActorSnoEnum._barbarian_calloftheancients_1, // = 90443,
  167.                         ActorSnoEnum._barbarian_calloftheancients_2, // = 90535,
  168.                         ActorSnoEnum._barbarian_calloftheancients_3, // = 90536,
  169.                     }
  170.                 },
  171.             });
  172.  
  173.             // ========
  174.             // Crusader
  175.             // ========
  176.             // Akarat's Champion
  177.             AlertList.Alerts.Add(new Alert(Hud, HeroClass.Crusader)
  178.             {
  179.                 TextSnoId = powers.Crusader_AkaratsChampion.Sno,
  180.                 MessageFormat = "💪 {0} 💪",
  181.                 Rule =
  182.                 {
  183.                     EquippedSkills = new[] { new SnoPowerId(powers.Crusader_AkaratsChampion.Sno) },
  184.                     ActiveBuffs = new[] { new SnoPowerId(359585) }, // Only when wearing akkhan 6pc
  185.                 },
  186.             });
  187.             // Only when wearing seeker of the light 4pc
  188.             AlertList.Alerts.Add(new Alert(Hud, HeroClass.Crusader)
  189.             {
  190.                 TextSnoId = powers.Crusader_FallingSword.Sno, // Falling Sword
  191.                 MessageFormat = warningMessageFormat,
  192.                 Rule =
  193.                 {
  194.                     ShowOutOfCombat = false,
  195.                     CheckSkillCooldowns = false,
  196.                     EquippedSkills = new[] { new SnoPowerId(powers.Crusader_FallingSword.Sno) },
  197.                     ActiveBuffs = new[] { new SnoPowerId(436426) }, // Only when wearing seeker of the light 4pc
  198.                     InactiveBuffs = new[] { new SnoPowerId(powers.Crusader_FallingSword.Sno) },
  199.                 },
  200.             });
  201.  
  202.             // ===========
  203.             // DemonHunter
  204.             // ===========
  205.             // Vengeance
  206.             AlertList.Alerts.Add(new Alert(Hud, HeroClass.DemonHunter)
  207.             {
  208.                 TextSnoId = powers.DemonHunter_Vengeance.Sno,
  209.                 MessageFormat = "⚠ {0} ⚠",
  210.                 Rule =
  211.                 {
  212.                     CheckSkillCooldowns = true,
  213.                     EquippedSkills = new[] { new SnoPowerId(powers.DemonHunter_Vengeance.Sno) },
  214.                     InactiveBuffs = new[] { new SnoPowerId(powers.DemonHunter_Vengeance.Sno) },
  215.                 },
  216.             });
  217.             // ShadowPower 130830
  218.             AlertList.Alerts.Add(new Alert(Hud, HeroClass.DemonHunter)
  219.             {
  220.                 TextSnoId = powers.DemonHunter_ShadowPower.Sno,
  221.                 MessageFormat = "😈 {0} 😈",
  222.                 Rule =
  223.                 {
  224.                     ShowInTown = true,
  225.                     CheckSkillCooldowns = true,
  226.                     EquippedSkills = new [] { new SnoPowerId(powers.DemonHunter_ShadowPower.Sno) },
  227.                     ActiveBuffs = new [] { new SnoPowerId(318876) }, //318876   ItemPassive_Unique_Ring_680_x1      Shadow Power gains the effect of every rune and lasts forever.
  228.                     InactiveBuffs = new [] { new SnoPowerId(powers.DemonHunter_ShadowPower.Sno) },
  229.                 },
  230.             });
  231.  
  232.             // ====
  233.             // Monk
  234.             // ====
  235.             // Flying Dragon
  236.             AlertList.Alerts.Add(new Alert(Hud, HeroClass.Monk)
  237.             {
  238.                 TextSnoId = 3968109489,
  239.                 MessageFormat = "⚔ {0} ⚔",
  240.                 Rule =
  241.                 {
  242.                     ActiveBuffs = new[] { new SnoPowerId(246562, 1) },
  243.                 },
  244.                 Label =
  245.                 {
  246.                     TextFont = Hud.Render.CreateFont("tahoma", 14, 255, 30, 244, 30, false, false, 242, 0, 0, 0, true),
  247.                 }
  248.             });
  249.             // Sweeping Wind : Drained
  250.             AlertList.Alerts.Add(new Alert(Hud, HeroClass.Monk)
  251.             {
  252.                 //AlertTextFunc = (id) => "STACKS!",
  253.                 TextSnoId = 96090,
  254.                 MessageFormat = "!! {0} !!",
  255.                 Rule =
  256.                 {
  257.                     EquippedSkills = new[] { new SnoPowerId(96090) },
  258.                     InactiveBuffs = new[] { new SnoPowerId(96090), new SnoPowerId(446562) },
  259.                 },
  260.                 PlayerDecorators = new WorldDecoratorCollection(
  261.                     new GroundCircleDecorator(Hud)
  262.                     {
  263.                         Brush = Hud.Render.CreateBrush(255, 255, 0, 0, 10.0f),
  264.                         Radius = 5
  265.                     }
  266.                 ),
  267.             });
  268.  
  269.             // Sweeping Wind : Recharge
  270.             AlertList.Alerts.Add(new Alert(Hud, HeroClass.Monk)
  271.             {
  272.                 //AlertTextFunc = (id) => "STACKS!",
  273.                 TextSnoId = 96090,
  274.                 MessageFormat = "!! {0} !!",
  275.                 Rule =
  276.                 {
  277.                     EquippedSkills = new[] { new SnoPowerId(96090) },
  278.                     ActiveBuffs = new[] { new SnoPowerId(446562) },
  279.                     CustomCondition = (player) =>
  280.                     {
  281.                         var sweepingWind = Hud.Game.Me.Powers.GetBuff(96090);
  282.                         return sweepingWind != null && sweepingWind.IconCounts[0] < 2;
  283.                     },
  284.                 },
  285.                 PlayerDecorators = new WorldDecoratorCollection(
  286.                     new GroundCircleDecorator(Hud)
  287.                     {
  288.                         Brush = Hud.Render.CreateBrush(255, 0, 0, 255, 10.0f),
  289.                         Radius = 5
  290.                     }
  291.                 ),
  292.             });
  293.  
  294.             // ===========
  295.             // Necromancer
  296.             // ===========
  297.             // Bone Armor
  298.             AlertList.Alerts.Add(new Alert(Hud, HeroClass.Necromancer)
  299.             {
  300.                 TextSnoId = Hud.Sno.SnoPowers.Necromancer_BoneArmor.Sno,
  301.                 MessageFormat = "!! {0} !!",
  302.                 Rule =
  303.                 {
  304.                     EquippedSkills = new[] { new SnoPowerId(Hud.Sno.SnoPowers.Necromancer_BoneArmor.Sno) },
  305.                     InactiveBuffs = new[] { new SnoPowerId(Hud.Sno.SnoPowers.Necromancer_BoneArmor.Sno) },
  306.                 },
  307.             });
  308.             AlertList.Alerts.Add(new Alert(Hud, HeroClass.Necromancer)
  309.             {
  310.                 TextSnoId = Hud.Sno.SnoPowers.Necromancer_BoneArmor.Sno,
  311.                 MessageFormat = "⏰ {0} ⏰",
  312.                 AlertTextFunc = sno => string.Format(CultureInfo.InvariantCulture, "{0} {1:0.#}", Hud.GuessLocalizedName(sno), Hud.Game.Me.Powers.GetBuff(sno).TimeLeftSeconds[0]),
  313.                 Rule =
  314.                 {
  315.                     EquippedSkills = new[] { new SnoPowerId(Hud.Sno.SnoPowers.Necromancer_BoneArmor.Sno) },
  316.                     CustomCondition = player => player.Powers.BuffIsActive(Hud.Sno.SnoPowers.Necromancer_BoneArmor.Sno) && player.Powers.GetBuff(Hud.Sno.SnoPowers.Necromancer_BoneArmor.Sno).TimeLeftSeconds[0] <= 3,
  317.                 },
  318.             });
  319.             AlertList.Alerts.Add(new Alert(Hud, HeroClass.Necromancer)
  320.             {
  321.                 TextSnoId = powers.Necromancer_CommandGolem.Sno,
  322.                 MessageFormat = "🚶 {0} 🚶",
  323.                 Rule =
  324.                 {
  325.                     ShowInTown = true,
  326.                     EquippedSkills = new[] { new SnoPowerId(powers.Necromancer_CommandGolem.Sno) },
  327.                     InvocationActorSnoIds = new HashSet<ActorSnoEnum>()
  328.                     {
  329.                         (ActorSnoEnum)471646,
  330.                         (ActorSnoEnum)471647,
  331.                         (ActorSnoEnum)465239,
  332.                         (ActorSnoEnum)471619,
  333.                         (ActorSnoEnum)460042,
  334.                     } //missing some?
  335.                 },
  336.             });
  337.             AlertList.Alerts.Add(new Alert(Hud, HeroClass.Necromancer)
  338.             {
  339.                 TextSnoId = powers.Necromancer_CommandSkeletons.Sno,
  340.                 MessageFormat = "🚶 {0} 🚶",
  341.                 Rule =
  342.                 {
  343.                     ShowInTown = true,
  344.                     EquippedSkills = new[] { new SnoPowerId(powers.Necromancer_CommandSkeletons.Sno) },
  345.                     InvocationActorSnoIds = new HashSet<ActorSnoEnum>()
  346.                     {
  347.                         (ActorSnoEnum)473147,
  348.                         (ActorSnoEnum)473428,
  349.                         (ActorSnoEnum)473426,
  350.                         (ActorSnoEnum)473420,
  351.                         (ActorSnoEnum)473417,
  352.                         (ActorSnoEnum)473418
  353.                     } //missing some?
  354.                 },
  355.             });
  356.  
  357.             // ===========
  358.             // WitchDoctor
  359.             // ===========
  360.             // gargantuans
  361.             AlertList.Alerts.Add(new Alert(Hud, HeroClass.WitchDoctor)
  362.             {
  363.                 TextSnoId = powers.WitchDoctor_Gargantuan.Sno,
  364.                 MessageFormat = "🚶 {0} 🚶",
  365.                 Rule =
  366.                 {
  367.                     ShowInTown = true,
  368.                     EquippedSkills = new[] { new SnoPowerId(powers.WitchDoctor_Gargantuan.Sno) },
  369.                     InvocationActorSnoIds = new HashSet<ActorSnoEnum>()
  370.                     {
  371.                         (ActorSnoEnum)432690,
  372.                         (ActorSnoEnum)432691,
  373.                         (ActorSnoEnum)432692,
  374.                         (ActorSnoEnum)432693,
  375.                         (ActorSnoEnum)432694,
  376.                         (ActorSnoEnum)122305,
  377.                         (ActorSnoEnum)179776,
  378.                         (ActorSnoEnum)171491,
  379.                         (ActorSnoEnum)179778,
  380.                         (ActorSnoEnum)171501,
  381.                         (ActorSnoEnum)171502,
  382.                         (ActorSnoEnum)179780,
  383.                         (ActorSnoEnum)179779,
  384.                         (ActorSnoEnum)179772
  385.                     }
  386.                 },
  387.             });
  388.             // zombie dogs
  389.             AlertList.Alerts.Add(new Alert(Hud, HeroClass.WitchDoctor)
  390.             {
  391.                 TextSnoId = powers.WitchDoctor_SummonZombieDog.Sno,
  392.                 MessageFormat = "🐕 {0} 🐕",
  393.                 Rule =
  394.                 {
  395.                     ShowInTown = true,
  396.                     EquippedSkills = new[] { new SnoPowerId(powers.WitchDoctor_SummonZombieDog.Sno) },
  397.                     InvocationActorSnoIds = new HashSet<ActorSnoEnum>()
  398.                     {
  399.                         (ActorSnoEnum)51353,
  400.                         (ActorSnoEnum)108536,
  401.                         (ActorSnoEnum)103215,
  402.                         (ActorSnoEnum)108543,
  403.                         (ActorSnoEnum)104079,
  404.                         (ActorSnoEnum)105763,
  405.                         (ActorSnoEnum)108560,
  406.                         (ActorSnoEnum)110959,
  407.                         (ActorSnoEnum)105772,
  408.                         (ActorSnoEnum)103235,
  409.                         (ActorSnoEnum)108550,
  410.                         (ActorSnoEnum)103217,
  411.                         (ActorSnoEnum)108556,
  412.                         (ActorSnoEnum)105606
  413.                     }
  414.                 },
  415.             });
  416.             // Hex
  417.             AlertList.Alerts.Add(new Alert(Hud, HeroClass.WitchDoctor)
  418.             {
  419.                 TextSnoId = powers.WitchDoctor_Hex.Sno,
  420.                 MessageFormat = "⚠ {0} ⚠",
  421.                 Rule =
  422.                 {
  423.                     EquippedSkills = new[] { new SnoPowerId(powers.WitchDoctor_Hex.Sno) },
  424.                     ActiveBuffs = new[] { new SnoPowerId(439308) }, // arachyr set 4 piece
  425.                     InactiveBuffs = new[] { new SnoPowerId(powers.WitchDoctor_Hex.Sno) },
  426.                 }
  427.             });
  428.             // SoulHarvest
  429.             AlertList.Alerts.Add(new Alert(Hud, HeroClass.WitchDoctor)
  430.             {
  431.                 TextSnoId = powers.WitchDoctor_SoulHarvest.Sno,
  432.                 MessageFormat = "⚠ {0} ⚠",
  433.                 Rule =
  434.                 {
  435.                     ShowOutOfCombat = false,
  436.                     EquippedSkills = new[] { new SnoPowerId(powers.WitchDoctor_SoulHarvest.Sno) },
  437.                     InactiveBuffs = new[] { new SnoPowerId(powers.WitchDoctor_SoulHarvest.Sno) },
  438.                 },
  439.             });
  440.  
  441.             // ======
  442.             // Wizard
  443.             // ======
  444.             var allWizardArmors = new[]
  445.             {
  446.                 new SnoPowerId(74499),
  447.                 new SnoPowerId(86991),
  448.                 new SnoPowerId(73223)
  449.             };
  450.             // Energy Armor
  451.             AlertList.Alerts.Add(new Alert(Hud, HeroClass.Wizard)
  452.             {
  453.                 TextSnoId = 86991,
  454.                 MessageFormat = "⚛ {0} ⚛",
  455.                 Rule =
  456.                 {
  457.                     EquippedSkills = new[] { new SnoPowerId(86991) },
  458.                     InactiveBuffs = allWizardArmors,
  459.                 },
  460.             });
  461.             // Storm Armor
  462.             AlertList.Alerts.Add(new Alert(Hud, HeroClass.Wizard)
  463.             {
  464.                 TextSnoId = 74499,
  465.                 MessageFormat = "⚛ {0} ⚛",
  466.                 Rule =
  467.                 {
  468.                     EquippedSkills = new[] { new SnoPowerId(74499) },
  469.                     InactiveBuffs = allWizardArmors,
  470.                 },
  471.             });
  472.             // Ice Armor
  473.             AlertList.Alerts.Add(new Alert(Hud, HeroClass.Wizard)
  474.             {
  475.                 TextSnoId = 73223,
  476.                 MessageFormat = "⚛ {0} ⚛",
  477.                 Rule =
  478.                 {
  479.                     EquippedSkills = new[] { new SnoPowerId(73223) },
  480.                     InactiveBuffs = allWizardArmors,
  481.                 },
  482.             });
  483.             // Magic Weapon
  484.             AlertList.Alerts.Add(new Alert(Hud, HeroClass.Wizard)
  485.             {
  486.                 TextSnoId = 76108,
  487.                 MessageFormat = "🗡 {0} 🗡",
  488.                 Rule =
  489.                 {
  490.                     EquippedSkills = new[] { new SnoPowerId(76108) },
  491.                     InactiveBuffs = new[] { new SnoPowerId(76108), }
  492.                 },
  493.             });
  494.             // Familiar
  495.             AlertList.Alerts.Add(new Alert(Hud, HeroClass.Wizard)
  496.             {
  497.                 TextSnoId = 99120,
  498.                 MessageFormat = "!! {0} !!",
  499.                 Rule =
  500.                 {
  501.                     EquippedSkills = new[] { new SnoPowerId(99120) },
  502.                     InactiveBuffs = new[] { new SnoPowerId(99120), }
  503.                 },
  504.             });
  505.             // Archon & no bubble
  506.             AlertList.Alerts.Add(new Alert(Hud, HeroClass.Wizard)
  507.             {
  508.                 TextSnoId = 135663,
  509.                 MessageFormat = "⚠ {0} ⚠",
  510.                 Rule =
  511.                 {
  512.                     //CheckSkillCooldowns = false,
  513.                     EquippedSkills = new[] { new SnoPowerId(134872, 1), },
  514.                     ActiveBuffs = new[] { new SnoPowerId(134872), },
  515.                     InactiveBuffs = new[] { new SnoPowerId(135663), }
  516.                 },
  517.             });
  518.         }
  519.  
  520.         public void PaintWorld(WorldLayer layer)
  521.         {
  522.             AlertList.PaintWorld(layer);
  523.         }
  524.  
  525.         public void PaintTopInGame(ClipState clipState)
  526.         {
  527.             AlertList.PaintTopInGame(clipState);
  528.         }
  529.     }
  530. }
Add Comment
Please, Sign In to add comment