Advertisement
zjqyf

BuffRuleFactory.cs

Aug 29th, 2017
4,004
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 146.16 KB | None | 0 0
  1. namespace Turbo.Plugins.Gigi // Credits to Jack
  2. {
  3.     using System.Collections.Generic;
  4.     using Turbo.Plugins.Default;
  5.  
  6.     public class BuffRuleFactory
  7.     {
  8.         public IController Hud { get; set; }
  9.  
  10.         public BuffRuleFactory(IController hud)
  11.         {
  12.             Hud = hud;
  13.         }
  14.  
  15.         public IEnumerable<BuffRule> CreateBuffRules(uint pwr)
  16.         {
  17.             // ############ WIZARD ACTIVE SKILLS ##############
  18.             // ################################################
  19.             if (pwr == Hud.Sno.SnoPowers.Wizard_ArcaneOrb.Sno){
  20.                 yield return new BuffRule(pwr) { IconIndex = 6, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true};        // Arcane Orb (Rune 3) - this spell stores the old buff values of Rune 3!?
  21.                 yield return new BuffRule(pwr) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true};        // Arcane Orb (Rune 2)
  22.             }
  23.             if (pwr == Hud.Sno.SnoPowers.Wizard_ArcaneTorrent.Sno){
  24.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};     // Arcane Torrent (Active) (No Rune, Rune 1, Rune 3, Rune 4, Rune 5) - not needed (UNLESS YOU PLAY MINES!)
  25.                 //yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};       // Arcane Torrent (DMG Stack) (No Rune, Rune 1, Rune 4, Rune 5) - not needed
  26.                 //yield return new BuffRule(pwr) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};     // Arcane Torrent (Active) (No Rune, Rune 1, Rune 4, Rune 5) - not needed
  27.                 yield return new BuffRule(pwr) { IconIndex = 8, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Arcane Torrent (DMG Stack) (No Rune, Rune 1, Rune 2, Rune 4, Rune 5) - Actual DMG Stack
  28.                 //yield return new BuffRule(pwr) { IconIndex = 9, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};     // Arcane Torrent (Active) (Rune 1) - not needed
  29.                 //yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};     // Arcane Torrent (Active) (Rune 2) - not needed
  30.             }
  31.             if (pwr == Hud.Sno.SnoPowers.Wizard_Archon.Sno){
  32.                 //Archon SNO
  33.                 //yield return new BuffRule(134872) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};   // Archon (Transforming) - not working
  34.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};         // Archon (Stacks)
  35.                 //yield return new BuffRule(pwr) { IconIndex = 4, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};       // Archon (Stacks) - not needed
  36.                 //yield return new BuffRule(pwr) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};         // Swami (Stacks)
  37.                 //yield return new BuffRule(134872) { IconIndex = 6, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};   // Swami (Active) - works is however bugged (continues even when swami is debuffed manually)
  38.             }
  39.             if (pwr == Hud.Sno.SnoPowers.Wizard_ArchonArcaneBlast.Sno){
  40.                 //nothing here
  41.             }
  42.             if (pwr == Hud.Sno.SnoPowers.Wizard_ArchonArcaneBlastCold.Sno){
  43.                 //nothing here
  44.             }
  45.             if (pwr == Hud.Sno.SnoPowers.Wizard_ArchonArcaneBlastFire.Sno){
  46.                 //nothing here
  47.             }
  48.             if (pwr == Hud.Sno.SnoPowers.Wizard_ArchonArcaneBlastLightning.Sno){
  49.                 //nothing here
  50.             }
  51.             if (pwr == Hud.Sno.SnoPowers.Wizard_ArchonArcaneStrike.Sno){
  52.                 //nothing here
  53.             }
  54.             if (pwr == Hud.Sno.SnoPowers.Wizard_ArchonArcaneStrikeCold.Sno){
  55.                 //nothing here
  56.             }
  57.             if (pwr == Hud.Sno.SnoPowers.Wizard_ArchonArcaneStrikeFire.Sno){
  58.                 //nothing here
  59.             }
  60.             if (pwr == Hud.Sno.SnoPowers.Wizard_ArchonArcaneStrikeLightning.Sno){
  61.                 //nothing here
  62.             }
  63.             if (pwr == Hud.Sno.SnoPowers.Wizard_ArchonCancel.Sno){
  64.                 //nothing here
  65.             }
  66.             if (pwr == Hud.Sno.SnoPowers.Wizard_ArchonDisintegrationWave.Sno){ // if you use Vyr and Max Arcane (= all_elements==0) the game will jump between the three Arcane Runes (IconIndex 0, 3, 1) for Channeling Disintregration Wave      
  67.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};     // Arcane Wave (No Rune, No Vyr), (Vyr, Max Arcane) - not needed
  68.                 yield return new BuffRule(pwr) { IconIndex = 6, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Arcane Wave (No Rune, No Vyr), (Rune 2, No Vyr), (Rune 5, No Vyr), (Vyr, Max Arcane)
  69.                 //yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};     // Arcane Wave (Rune 2, No Vyr), (Vyr, Max Arcane) - not needed
  70.                 //yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};     // Arcane Wave (Rune 5, No Vyr), (Vyr, Max Arcane) - not needed
  71.             }
  72.             if (pwr == Hud.Sno.SnoPowers.Wizard_ArchonDisintegrationWaveCold.Sno){
  73.                 //yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};      // Cold Wave (Rune 4, No Vyr), (Vyr, Max Cold) - not needed
  74.                 yield return new BuffRule(pwr) { IconIndex = 6, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Cold Wave (Rune 4, No Vyr), (Vyr, Max Cold)  
  75.             }      
  76.             if (pwr == Hud.Sno.SnoPowers.Wizard_ArchonDisintegrationWaveFire.Sno){
  77.                 //yield return new BuffRule(pwr) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};      // Fire Wave (Rune 1, No Vyr), (Vyr, Max Fire) - not needed
  78.                 yield return new BuffRule(pwr) { IconIndex = 6, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Fire Wave (Rune 1, No Vyr), (Vyr, Max Fire)
  79.             }
  80.             if (pwr == Hud.Sno.SnoPowers.Wizard_ArchonDisintegrationWaveLightning.Sno){
  81.                 //yield return new BuffRule(pwr) { IconIndex = 4, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};      // Lightning Wave (Rune 3, No Vyr), (Vyr, Max Light) - not needed
  82.                 yield return new BuffRule(pwr) { IconIndex = 6, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Lightning Wave (Rune 3, No Vyr), (Vyr, Max Light)
  83.             }
  84.             if (pwr == Hud.Sno.SnoPowers.Wizard_ArchonSlowTime.Sno){                    
  85.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Slow Time (Effect 1) (Rune 3, Vyr)
  86.                 //yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};     // Slow Time (Effect 2) (Rune 3, Vyr) - not needed
  87.                 //yield return new BuffRule(pwr) { IconIndex = 10, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};    // Slow Time (Effect 3) (Rune 3, Vyr) - not needed
  88.             }
  89.             if (pwr == Hud.Sno.SnoPowers.Wizard_ArchonTeleport.Sno){
  90.                 //nothing here
  91.             }
  92.             if (pwr == Hud.Sno.SnoPowers.Wizard_BlackHole.Sno){
  93.                 yield return new BuffRule(pwr) { IconIndex = 8, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};         // Black Hole (Rune 2)
  94.                 yield return new BuffRule(pwr) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};         // Black Hole (Rune 5)
  95.             }
  96.             if (pwr == Hud.Sno.SnoPowers.Wizard_Blizzard.Sno){
  97.                 //nothing \o/
  98.             }
  99.             if (pwr == Hud.Sno.SnoPowers.Wizard_DiamondSkin.Sno){
  100.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Diamond Skin (No Rune, Rune 1, Rune 4, Rune 5)
  101.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Diamond Skin (Rune 2)
  102.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Diamond Skin (Rune 3)
  103.             }
  104.             if (pwr == Hud.Sno.SnoPowers.Wizard_Disintegrate.Sno){
  105.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Disintegrate (Active) (No Rune, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5)
  106.                 //yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};      // Disintegrate (Active) (Rune 4) - not needed
  107.                 //yield return new BuffRule(pwr) { IconIndex = 10, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};     // Disintegrate (DMG Stack) (No Rune, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5) - Actual DMG Stack - not needed
  108.             }
  109.             if (pwr == Hud.Sno.SnoPowers.Wizard_Electrocute.Sno){
  110.                 //nothing \o/
  111.             }
  112.             if (pwr == Hud.Sno.SnoPowers.Wizard_EnergyArmor.Sno){
  113.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Energy Armor (No Rune, Rune 4)
  114.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Energy Armor (Rune 1)
  115.                 yield return new BuffRule(pwr) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Energy Armor (Rune 2)
  116.                 yield return new BuffRule(pwr) { IconIndex = 4, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Energy Armor (Rune 3)
  117.                 //yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};      // Energy Armor (Rune 5) (first rune 5 effect) - not needed
  118.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Energy Armor (Rune 5) (second rune 5 effect)
  119.             }
  120.             if (pwr == Hud.Sno.SnoPowers.Wizard_EnergyTwister.Sno){
  121.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};         // Energy Twister - Storm Chaser
  122.             }
  123.             if (pwr == Hud.Sno.SnoPowers.Wizard_ExplosiveBlast.Sno){
  124.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};         // Explosive Blast (No Rune, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5) - Stacks for Wand of Woh
  125.             }
  126.             if (pwr == Hud.Sno.SnoPowers.Wizard_Familiar.Sno){
  127.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Familiar (No Rune, Rune 1, Rune 5)
  128.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Familiar (Rune 2) (first effect)
  129.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Familiar (Rune 2) (second effect)
  130.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Familiar (Rune 3)
  131.             }
  132.             if (pwr == Hud.Sno.SnoPowers.Wizard_FrostNova.Sno){
  133.                 yield return new BuffRule(pwr) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Frost Nova - Deep Freeze
  134.             }
  135.             if (pwr == Hud.Sno.SnoPowers.Wizard_Hydra.Sno){
  136.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};         // Hydra (No Rune, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5)
  137.             }
  138.             if (pwr == Hud.Sno.SnoPowers.Wizard_IceArmor.Sno){
  139.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Ice Armor (No Rune, Rune 1, Rune 3, Rune 4, Rune 5) - Base Effect
  140.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Ice Armor (Rune 1)
  141.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};         // Ice Armor (Rune 2)
  142.                 //yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};      // Ice Armor (Rune 5)  - not needed
  143.             }
  144.             if (pwr == Hud.Sno.SnoPowers.Wizard_MagicMissile.Sno){
  145.                 //nothing \o/
  146.             }
  147.             if (pwr == Hud.Sno.SnoPowers.Wizard_MagicWeapon.Sno){
  148.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Magic Weapon (No Rune, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5) (first effect)
  149.                 //yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};      // Magic Weapon (No Rune, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5) (second effect) - not needed
  150.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};         // Magic Weapon (Rune 5) (third effect)
  151.                 //yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};      // Magic Weapon (Rune 5) (fourth effect) - not needed
  152.             }
  153.             if (pwr == Hud.Sno.SnoPowers.Wizard_Meteor.Sno){
  154.                 //nothing \o/
  155.             }
  156.             if (pwr == Hud.Sno.SnoPowers.Wizard_MirrorImage.Sno){
  157.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Mirror Image (Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5)
  158.             }
  159.             if (pwr == Hud.Sno.SnoPowers.Wizard_RayOfFrost.Sno){
  160.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};      // Ray of Frost (Active) (No Rune, Rune 1, Rune 2, Rune 3, Rune 5) - not needed
  161.                 //yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};      // Ray of Frost (Active) (Rune 4) - not needed
  162.                 yield return new BuffRule(pwr) { IconIndex = 6, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};         // Ray of Frost (DMG Stack) (No Rune, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5)
  163.             }
  164.             if (pwr == Hud.Sno.SnoPowers.Wizard_ShockPulse.Sno){
  165.                 //nothing \o/
  166.             }
  167.             if (pwr == Hud.Sno.SnoPowers.Wizard_SlowTime.Sno){
  168.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Slow Time (No Rune, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5)
  169.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Slow Time (Rune 5) - (Player under Slow Time Effect)
  170.             }
  171.             if (pwr == Hud.Sno.SnoPowers.Wizard_SpectralBlade.Sno){
  172.                 yield return new BuffRule(pwr) { IconIndex = 4, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};         // Spectral Blade (Rune 1)
  173.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};         // Spectral Blade (Rune 4)
  174.             }
  175.             if (pwr == Hud.Sno.SnoPowers.Wizard_StormArmor.Sno){
  176.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Storm Armor (No Rune, Rune 1, Rune 3, Rune 4, Rune 5)
  177.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Storm Armor (Rune 2)
  178.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Storm Armor (Rune 4) - Speed Effect
  179.             }
  180.             if (pwr == Hud.Sno.SnoPowers.Wizard_Teleport.Sno){
  181.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Teleport (Rune 1)
  182.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Teleport (Rune 2)
  183.                 yield return new BuffRule(pwr) { IconIndex = 4, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Teleport (Rune 3)
  184.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Teleport (Rune 4) (second rune 4 effect)
  185.                 //yield return new BuffRule(pwr) { IconIndex = 6, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};      // Teleport (Rune 4) (first rune 4 effect) - not needed
  186.             }
  187.             if (pwr == Hud.Sno.SnoPowers.Wizard_WaveOfForce.Sno){
  188.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true};        // Wafe of Force - Arcane Attunment
  189.             }
  190.             // ############ WIZARD PASSIVE SKILLS ##############
  191.             // ################################################
  192.             if (pwr == Hud.Sno.SnoPowers.Wizard_Passive_ArcaneDynamo.Sno){
  193.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Wizard_Passive_ArcaneDynamo (Active)
  194.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true};        // Wizard_Passive_ArcaneDynamo (Stacks)
  195.             }
  196.             if (pwr == Hud.Sno.SnoPowers.Wizard_Passive_AstralPresence.Sno){
  197.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  198.             }
  199.             if (pwr == Hud.Sno.SnoPowers.Wizard_Passive_Audacity.Sno){
  200.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  201.             }
  202.             if (pwr == Hud.Sno.SnoPowers.Wizard_Passive_Blur.Sno){
  203.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  204.             }
  205.             if (pwr == Hud.Sno.SnoPowers.Wizard_Passive_ColdBlooded.Sno){
  206.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  207.             }
  208.             if (pwr == Hud.Sno.SnoPowers.Wizard_Passive_Conflagration.Sno){
  209.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  210.             }
  211.             if (pwr == Hud.Sno.SnoPowers.Wizard_Passive_Dominance.Sno){
  212.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // x1_Wizard_Passive_ArcaneAegis (Active) (a.k.a Dominance)
  213.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};         // x1_Wizard_Passive_ArcaneAegis (Stacks) (a.k.a Dominance)
  214.             }
  215.             if (pwr == Hud.Sno.SnoPowers.Wizard_Passive_ElementalExposure.Sno){
  216.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  217.             }
  218.             if (pwr == Hud.Sno.SnoPowers.Wizard_Passive_Evocation.Sno){
  219.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  220.             }
  221.             if (pwr == Hud.Sno.SnoPowers.Wizard_Passive_GalvanizingWard.Sno){
  222.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Wizard_Passive_GalvanizingWard (Active)
  223.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Wizard_Passive_GalvanizingWard (Shield Up)
  224.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Wizard_Passive_GalvanizingWard (Shield Cooldown)
  225.             }
  226.             if (pwr == Hud.Sno.SnoPowers.Wizard_Passive_GlassCannon.Sno){
  227.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  228.             }
  229.             if (pwr == Hud.Sno.SnoPowers.Wizard_Passive_Illusionist.Sno){
  230.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Wizard_Passive_Illusionist (Active)
  231.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Wizard_Passive_Illusionist (Speedbuff)
  232.             }
  233.             if (pwr == Hud.Sno.SnoPowers.Wizard_Passive_Paralysis.Sno){                
  234.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};     // Wizard_Passive_Paralysis (Active)
  235.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Wizard_Passive_Paralysis (Proc)
  236.             }
  237.             if (pwr == Hud.Sno.SnoPowers.Wizard_Passive_PowerHungry.Sno){
  238.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  239.             }
  240.             if (pwr == Hud.Sno.SnoPowers.Wizard_Passive_Prodigy.Sno){
  241.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  242.             }
  243.             if (pwr == Hud.Sno.SnoPowers.Wizard_Passive_TemporalFlux.Sno){
  244.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  245.             }
  246.             if (pwr == Hud.Sno.SnoPowers.Wizard_Passive_UnstableAnomaly.Sno){
  247.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Wizard_Passive_UnstableAnomaly (Active)
  248.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Wizard_Passive_UnstableAnomaly (Cooldown)
  249.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Wizard_Passive_UnstableAnomaly (Cooldown)
  250.             }
  251.             if (pwr == Hud.Sno.SnoPowers.Wizard_Passive_UnwaveringWill.Sno){
  252.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // X1_Wizard_Passive_UnwaveringWill (Active)
  253.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // X1_Wizard_Passive_UnwaveringWill (Buff)
  254.             }
  255.             // ############ MONK ACTIVE SKILLS ##############
  256.             // ##############################################
  257.             if (pwr == Hud.Sno.SnoPowers.Monk_BlindingFlash.Sno){
  258.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};       // Rune 5
  259.             }
  260.             if (pwr == Hud.Sno.SnoPowers.Monk_BreathOfHeaven.Sno){
  261.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};       // Rune 3
  262.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};       // Rune 4
  263.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};       // Rune 5
  264.             }
  265.             if (pwr == Hud.Sno.SnoPowers.Monk_CripplingWave.Sno){
  266.                 //nothing here
  267.             }
  268.             if (pwr == Hud.Sno.SnoPowers.Monk_CycloneStrike.Sno){
  269.                 //nothing here
  270.             }
  271.             if (pwr == Hud.Sno.SnoPowers.Monk_DashingStrike.Sno){
  272.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 1 (MS)
  273.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 2 (Dodge)
  274.                 yield return new BuffRule(pwr) { IconIndex = 4, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 4 (IAS)
  275.             }
  276.             if (pwr == Hud.Sno.SnoPowers.Monk_DeadlyReach.Sno){
  277.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true};        // Rune 4
  278.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 5    
  279.             }
  280.             if (pwr == Hud.Sno.SnoPowers.Monk_Epiphany.Sno){
  281.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (base effect dash)
  282.                 //yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};      // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (base effect regen) - not needed
  283.                 //yield return new BuffRule(pwr) { IconIndex = 6, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};      // Rune 1 - not needed
  284.                 //yield return new BuffRule(pwr) { IconIndex = 8, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};      // Rune 2 - not needed
  285.                 //yield return new BuffRule(pwr) { IconIndex = 12, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};       // Rune 3 (Heal Instance)
  286.                 //yield return new BuffRule(pwr) { IconIndex = 4, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};      // Rune 5 - not needed
  287.             }
  288.             if (pwr == Hud.Sno.SnoPowers.Monk_ExplodingPalm.Sno){
  289.                 //nothing here
  290.             }
  291.             if (pwr == Hud.Sno.SnoPowers.Monk_FistsOfThunder.Sno){
  292.                 //yield return new BuffRule(pwr) { IconIndex = 7, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};     // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (Third Hit) - not needed
  293.             }
  294.             if (pwr == Hud.Sno.SnoPowers.Monk_InnerSanctuary.Sno){
  295.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5
  296.                 //yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};     // Rune 2 (LPS) - not needed
  297.                 yield return new BuffRule(pwr) { IconIndex = 6, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 4 (Shield)
  298.             }
  299.             if (pwr == Hud.Sno.SnoPowers.Monk_LashingTailKick.Sno){
  300.                 //nothing here
  301.             }
  302.             if (pwr == Hud.Sno.SnoPowers.Monk_MantraOfConviction.Sno){
  303.                 foreach(BuffRule b in CreateBuffRules(Hud.Sno.SnoPowers.Monk_Passive_MantraOfConvictionV2.Sno))
  304.                     yield return b;
  305.             }
  306.             if (pwr == Hud.Sno.SnoPowers.Monk_Passive_MantraOfConvictionV2.Sno){
  307.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};     // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (Equipped) - not needed
  308.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (Active)
  309.                 //yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};     // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5
  310.                 //yield return new BuffRule(pwr) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};     // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5
  311.             }
  312.             if (pwr == Hud.Sno.SnoPowers.Monk_MantraOfHealing.Sno){
  313.                 foreach(BuffRule b in CreateBuffRules(Hud.Sno.SnoPowers.Monk_Passive_MantraOfHealingV2.Sno))
  314.                     yield return b;
  315.             }
  316.             if (pwr == Hud.Sno.SnoPowers.Monk_Passive_MantraOfHealingV2.Sno){
  317.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};     // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (Base Effect)
  318.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (Active)
  319.                 //yield return new BuffRule(pwr) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};     // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5
  320.                 //yield return new BuffRule(pwr) { IconIndex = 10, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};    // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (Equipped) - not needed
  321.                 //yield return new BuffRule(pwr) { IconIndex = 11, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};    // Rune 1
  322.                 //yield return new BuffRule(pwr) { IconIndex = 12, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};    // Rune 2
  323.                 //yield return new BuffRule(pwr) { IconIndex = 13, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};    // Rune 3
  324.                 //yield return new BuffRule(pwr) { IconIndex = 14, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};    // Rune 4
  325.                 //yield return new BuffRule(pwr) { IconIndex = 15, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};    // Rune 5
  326.             }
  327.             if (pwr == Hud.Sno.SnoPowers.Monk_MantraOfRetribution.Sno){
  328.                 foreach(BuffRule b in CreateBuffRules(Hud.Sno.SnoPowers.Monk_Passive_MantraOfRetributionV2.Sno))
  329.                     yield return b;
  330.             }
  331.             if (pwr == Hud.Sno.SnoPowers.Monk_Passive_MantraOfRetributionV2.Sno){
  332.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};     // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (Base Effect)
  333.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (Active)
  334.                 //yield return new BuffRule(pwr) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};     // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5
  335.                 //yield return new BuffRule(pwr) { IconIndex = 10, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};    // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (Equipped) - not needed
  336.                 //yield return new BuffRule(pwr) { IconIndex = 11, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};    // Rune 1
  337.                 //yield return new BuffRule(pwr) { IconIndex = 12, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};    // Rune 3
  338.                 //yield return new BuffRule(pwr) { IconIndex = 13, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};    // Rune 4
  339.                 //yield return new BuffRule(pwr) { IconIndex = 14, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};    // Rune 2
  340.                 //yield return new BuffRule(pwr) { IconIndex = 15, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};    // Rune 5
  341.             }
  342.             if (pwr == Hud.Sno.SnoPowers.Monk_MantraOfSalvation.Sno){
  343.                 foreach(BuffRule b in CreateBuffRules(Hud.Sno.SnoPowers.Monk_Passive_MantraOfEvasionV2.Sno))
  344.                     yield return b;
  345.             }
  346.             if (pwr == Hud.Sno.SnoPowers.Monk_Passive_MantraOfEvasionV2.Sno){
  347.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};     // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (Base Effect)
  348.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (Active)
  349.                 //yield return new BuffRule(pwr) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};     // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5
  350.                 yield return new BuffRule(pwr) { IconIndex = 8, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 2 (proc downtime)
  351.                 //yield return new BuffRule(pwr) { IconIndex = 10, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};    // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (Equipped) - not needed
  352.                 //yield return new BuffRule(pwr) { IconIndex = 11, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};    // Rune 5
  353.                 //yield return new BuffRule(pwr) { IconIndex = 12, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};    // Rune 4
  354.                 //yield return new BuffRule(pwr) { IconIndex = 13, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};    // Rune 1
  355.                 //yield return new BuffRule(pwr) { IconIndex = 14, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};    // Rune 3
  356.                 //yield return new BuffRule(pwr) { IconIndex = 15, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};    // Rune 2
  357.             }
  358.      
  359.             if (pwr == Hud.Sno.SnoPowers.Monk_MysticAlly.Sno){
  360.                 //yield return new BuffRule(362118) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};  // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4 (Ally)
  361.                 //yield return new BuffRule(362118) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};   // Rune 4 (on sacrifice) (Ally)
  362.                 //yield return new BuffRule(362118) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};   // Rune 4 (on sacrifice) (Ally)
  363.             }
  364.             if (pwr == Hud.Sno.SnoPowers.Monk_Serenity.Sno){
  365.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5
  366.             }
  367.             if (pwr == Hud.Sno.SnoPowers.Monk_SevenSidedStrike.Sno){
  368.                 //nothing here
  369.             }
  370.             if (pwr == Hud.Sno.SnoPowers.Monk_SweepingWind.Sno){
  371.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};         // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (Base Effect)
  372.                 yield return new BuffRule(pwr) { IconIndex = 6, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 2 (Spirit Regen)
  373.             }
  374.             if (pwr == Hud.Sno.SnoPowers.Monk_TempestRush.Sno){  
  375.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Rune 0, Rune 1, Rune 2. Rune 3, Rune 4, Rune 5 (Active)
  376.                 //yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};     // Rune 4 - not needed
  377.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true};        // Rune 3 (Stacks)
  378.                 yield return new BuffRule(pwr) { IconIndex = 4, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (DMG Tick)
  379.             }
  380.             if (pwr == Hud.Sno.SnoPowers.Monk_WaveOfLight.Sno){
  381.                 //nothing here
  382.             }
  383.             if (pwr == Hud.Sno.SnoPowers.Monk_WayOfTheHundredFists.Sno){
  384.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};     // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (Third Hit) - not needed
  385.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};         // Rune 2
  386.                 //yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};      // Rune 2 - not needed
  387.                 yield return new BuffRule(pwr) { IconIndex = 4, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};         // Rune 4
  388.             }
  389.             // ############ MONK PASSIVE SKILLS ##############
  390.             // ##############################################
  391.             if (pwr == Hud.Sno.SnoPowers.Monk_Passive_Alacrity.Sno){
  392.                 //nothing here
  393.             }
  394.             if (pwr == Hud.Sno.SnoPowers.Monk_Passive_BeaconOfYtar.Sno){
  395.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  396.             }
  397.             if (pwr == Hud.Sno.SnoPowers.Monk_Passive_ChantOfResonance.Sno){
  398.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  399.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true};        // Passive (stacking??)
  400.             }
  401.             if (pwr == Hud.Sno.SnoPowers.Monk_Passive_CombinationStrike.Sno){
  402.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  403.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Passive (Fist of Thunder Stack)
  404.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Passive (Deadly Reach Stack)
  405.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Passive (WotHF Stack)
  406.                 yield return new BuffRule(pwr) { IconIndex = 4, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Passive (CripplingWave Stack)
  407.             }
  408.             if (pwr == Hud.Sno.SnoPowers.Monk_Passive_Determination.Sno){ //determination?
  409.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  410.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true};        // Passive (uptime)
  411.             }  
  412.             if (pwr == Hud.Sno.SnoPowers.Monk_Passive_ExaltedSoul.Sno){
  413.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  414.             }
  415.             if (pwr == Hud.Sno.SnoPowers.Monk_Passive_FleetFooted.Sno){
  416.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  417.             }
  418.             if (pwr == Hud.Sno.SnoPowers.Monk_Passive_Harmony.Sno){
  419.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  420.             }              
  421.             if (pwr == Hud.Sno.SnoPowers.Monk_Passive_Momentum.Sno){
  422.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  423.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Passive (uptime)
  424.             }
  425.             if (pwr == Hud.Sno.SnoPowers.Monk_Passive_MythicRhythm.Sno){
  426.                 //yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  427.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (up)
  428.                 //yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Passive (used)
  429.             }
  430.             if (pwr == Hud.Sno.SnoPowers.Monk_Passive_NearDeathExperience.Sno){
  431.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  432.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Passive (downtime)
  433.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Passive (downtime)
  434.             }
  435.             if (pwr == Hud.Sno.SnoPowers.Monk_Passive_RelentlessAssault.Sno){
  436.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  437.             }
  438.             if (pwr == Hud.Sno.SnoPowers.Monk_Passive_Resolve.Sno){
  439.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  440.             }
  441.             if (pwr == Hud.Sno.SnoPowers.Monk_Passive_SeizeTheInitiative.Sno){
  442.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  443.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Passive (uptime)
  444.             }
  445.             if (pwr == Hud.Sno.SnoPowers.Monk_Passive_SixthSense.Sno){
  446.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  447.             }
  448.             if (pwr == Hud.Sno.SnoPowers.Monk_Passive_TheGuardiansPath.Sno){
  449.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  450.             }
  451.             if (pwr == Hud.Sno.SnoPowers.Monk_Passive_Transcendence.Sno){
  452.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  453.             }
  454.             if (pwr == Hud.Sno.SnoPowers.Monk_Passive_Unity.Sno){
  455.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  456.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (Group-DPS)
  457.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true};        // Passive (Self-DPS)
  458.             }
  459.             // ############ BARBARIAN ACITVE SKILLS ##############
  460.             // ###################################################
  461.             if (pwr == Hud.Sno.SnoPowers.Barbarian_AncientSpear.Sno){
  462.                 //nothing here
  463.             }
  464.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Avalanche.Sno){
  465.                 //nothing here
  466.             }
  467.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Bash.Sno){
  468.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};         // Rune 3
  469.             }
  470.             if (pwr == Hud.Sno.SnoPowers.Barbarian_BattleRage.Sno){
  471.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5
  472.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Rune 4
  473.             }
  474.             if (pwr == Hud.Sno.SnoPowers.Barbarian_CallOfTheAncients.Sno){
  475.                 yield return new BuffRule(pwr) { IconIndex = 4, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (Active)
  476.                 yield return new BuffRule(pwr) { IconIndex = 6, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 5 (DMG Reduction)
  477.             }
  478.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Cleave.Sno){
  479.                 //nothing here
  480.             }
  481.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Earthquake.Sno){
  482.                 //nothing here
  483.             }
  484.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Frenzy.Sno){
  485.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};         // Rune 0
  486.             }
  487.             if (pwr == Hud.Sno.SnoPowers.Barbarian_FuriousCharge.Sno){
  488.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (Active)
  489.             }
  490.             if (pwr == Hud.Sno.SnoPowers.Barbarian_GroundStomp.Sno){
  491.                 //nothing here
  492.             }
  493.             if (pwr == Hud.Sno.SnoPowers.Barbarian_HammerOfTheAncients.Sno){
  494.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 4
  495.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 5
  496.             }
  497.             if (pwr == Hud.Sno.SnoPowers.Barbarian_IgnorePain.Sno){
  498.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5
  499.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 4 (group)
  500.             }
  501.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Leap.Sno){
  502.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 1
  503.             }
  504.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Overpower.Sno){
  505.                 //yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};      // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 - not needed
  506.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 2
  507.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 3
  508.             }
  509.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Rend.Sno){
  510.                 //nothing here
  511.             }
  512.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Revenge.Sno){
  513.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (what base effect?)
  514.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 2
  515.             }
  516.             if (pwr == Hud.Sno.SnoPowers.Barbarian_SeismicSlam.Sno){
  517.                 //nothing here
  518.             }
  519.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Sprint.Sno){
  520.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 0, Rune 2, Rune 3, Rune 4, Rune 5
  521.                 //yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};      // Rune 2 - not needed
  522.                 yield return new BuffRule(pwr) { IconIndex = 4, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 1
  523.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 5 (group)
  524.             }
  525.             if (pwr == Hud.Sno.SnoPowers.Barbarian_ThreateningShout.Sno){
  526.                 //nothing here
  527.             }
  528.             if (pwr == Hud.Sno.SnoPowers.Barbarian_WarCry.Sno){
  529.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (Active)
  530.                 //yield return new BuffRule(pwr) { IconIndex = 6, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};      // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (6sec Buff) - not needed
  531.                 //yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};      // Rune 1 - not working
  532.                 //yield return new BuffRule(pwr) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};      // Rune 3 - not working
  533.                 //yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};      // Rune 4 - not working
  534.                 //yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};      // Rune 5 - not working
  535.                 //yield return new BuffRule(318821) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};   // War Cry Belt - not working
  536.             }
  537.             if (pwr == Hud.Sno.SnoPowers.Barbarian_WeaponThrow.Sno){
  538.                 //nothing here
  539.             }
  540.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Whirlwind.Sno){
  541.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5
  542.                 //yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};     // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 - not needed
  543.                 //yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};      // Rune 1 - not needed
  544.             }
  545.             if (pwr == Hud.Sno.SnoPowers.Barbarian_WrathOfTheBerserker.Sno){
  546.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5
  547.             }
  548.             // ############ BARBARIAN PASSIVE SKILLS ##############
  549.             // ####################################################
  550.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Passive_Animosity.Sno){
  551.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  552.             }
  553.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Passive_BerserkerRage.Sno){
  554.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  555.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Active
  556.             }
  557.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Passive_Bloodthirst.Sno){
  558.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  559.             }
  560.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Passive_BoonOfBulKathos.Sno){
  561.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  562.             }
  563.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Passive_Brawler.Sno){  
  564.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  565.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Active
  566.             }
  567.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Passive_EarthenMight.Sno){
  568.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  569.             }
  570.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Passive_InspiringPresence.Sno){
  571.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  572.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Duration
  573.                 //yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};      // Heal Instance
  574.             }
  575.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Passive_Juggernaut.Sno){
  576.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  577.             }
  578.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Passive_NervesOfSteel.Sno){
  579.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  580.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Cooldown
  581.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Cooldown
  582.             }
  583.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Passive_NoEscape.Sno){
  584.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  585.             }
  586.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Passive_PoundOfFlesh.Sno){
  587.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Passive (equipped)
  588.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};         // Stacks
  589.             }
  590.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Passive_Rampage.Sno){
  591.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Passive (equipped)
  592.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};         // Stacks
  593.             }
  594.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Passive_Relentless.Sno){
  595.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  596.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Active
  597.             }
  598.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Passive_Ruthless.Sno){
  599.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  600.             }
  601.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Passive_Superstition.Sno){
  602.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  603.             }
  604.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Passive_SwordAndBoard.Sno){
  605.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  606.             }
  607.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Passive_ToughAsNails.Sno){
  608.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  609.             }
  610.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Passive_Unforgiving.Sno){
  611.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  612.             }
  613.             if (pwr == Hud.Sno.SnoPowers.Barbarian_Passive_WeaponsMaster.Sno){
  614.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  615.             }
  616.             // ############ WITCHDOCTOR ACTIVE SKILLS ##############
  617.             // #####################################################
  618.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_AcidCloud.Sno){
  619.                 //nothing here
  620.             }
  621.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_BigBadVoodoo.Sno){
  622.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Rune 0, Rune 1, Rune 5 (Active)
  623.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Rune 3 (Active)
  624.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Rune 2 (Active)
  625.                 yield return new BuffRule(pwr) { IconIndex = 4, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (Duration)
  626.                 yield return new BuffRule(pwr) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Rune 4 (Active)
  627.             }
  628.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_CorpseSpider.Sno){
  629.                 //nothing here
  630.             }
  631.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_FetishArmy.Sno){    
  632.                 //nothing here
  633.             }
  634.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Firebats.Sno){    
  635.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};     // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (Channel)
  636.                 yield return new BuffRule(pwr) { IconIndex = 4, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true};        // Rune 5 (DMG inc)
  637.             }
  638.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Firebomb.Sno){
  639.                 //nothing here
  640.             }
  641.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Gargantuan.Sno){
  642.                 yield return new BuffRule(pwr) { IconIndex = 4, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 3
  643.             }
  644.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_GraspOfTheDead.Sno){
  645.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 5
  646.             }
  647.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Haunt.Sno){
  648.                 yield return new BuffRule(pwr) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 4
  649.             }
  650.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Hex.Sno){
  651.                 //yield return new BuffRule(pwr) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Hex (4PC Arachyr DMG Red)
  652.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};      // Hex (4PC Arachyr %Life) - not needed
  653.             }
  654.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Horrify.Sno){
  655.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 2
  656.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 4
  657.             }
  658.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_LocustSwarm.Sno){
  659.                 yield return new BuffRule(pwr) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Rune 2
  660.             }
  661.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_MassConfusion.Sno){
  662.                 //nothing here
  663.             }
  664.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Piranhas.Sno){
  665.                 //nothing here
  666.             }
  667.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_PlagueOfToads.Sno){
  668.                 //nothing here
  669.             }
  670.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_PoisonDart.Sno){
  671.                 //nothing here
  672.             }
  673.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Sacrifice.Sno){
  674.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};         // Rune 5
  675.             }
  676.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_SoulHarvest.Sno){
  677.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};         // Rune 0
  678.                 //yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};       // Rune 1 - not needed
  679.             }
  680.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_SpiritBarrage.Sno){
  681.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};         // Rune 2
  682.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 5
  683.             }
  684.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_SpiritWalk.Sno){
  685.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5
  686.             }
  687.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_SummonZombieDog.Sno){
  688.                 //nothing here
  689.             }
  690.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_WallOfDeath.Sno){//Wall of Death
  691.                 //nothing here
  692.             }
  693.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_ZombieCharger.Sno){}//??
  694.             // ############ WITCHDOCTOR PASSIVE SKILLS ##############
  695.             // ######################################################
  696.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Passive_BadMedicine.Sno){ //debuff icon on IconIndex = 1
  697.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)            
  698.             }
  699.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Passive_BloodRitual.Sno){
  700.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)            
  701.             }
  702.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Passive_CircleOfLife.Sno){
  703.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)            
  704.             }
  705.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Passive_ConfidenceRitual.Sno){
  706.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)            
  707.             }
  708.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Passive_CreepingDeath.Sno){
  709.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)            
  710.             }
  711.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Passive_FetishSycophants.Sno){ //has no stacks?
  712.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)            
  713.             }
  714.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Passive_FierceLoyalty.Sno){
  715.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  716.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (speed)
  717.                 //yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};      // Passive (additional dog?) - not needed
  718.             }
  719.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Passive_GraveInjustice.Sno){
  720.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  721.                 //yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};       // Passive (debuff?) - not needed
  722.             }
  723.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Passive_GruesomeFeast.Sno){
  724.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};         // Passive (equipped/stacks)
  725.             }
  726.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Passive_JungleFortitude.Sno){
  727.                 //yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 0, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  728.                 //yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};       // Passive (Pets?) - not working
  729.             }
  730.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Passive_MidnightFeast.Sno){
  731.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)            
  732.             }
  733.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Passive_PierceTheVeil.Sno){
  734.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)            
  735.             }
  736.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Passive_RushOfEssence.Sno){
  737.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  738.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1 , ShowTimeLeft = true, ShowStacks = true};        // Passive (stacks)
  739.             }
  740.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Passive_SpiritualAttunement.Sno){
  741.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)            
  742.             }
  743.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Passive_SpiritVessel.Sno){
  744.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  745.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Passive (cooldown)
  746.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Passive (cooldown)
  747.             }
  748.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Passive_SwamplandAttunement.Sno){
  749.                 //yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 0, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  750.                 //yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};       // Passive (Pets?) - not working
  751.             }
  752.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Passive_TraitZombieDogSpawner.Sno){} //?????
  753.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Passive_TribalRites.Sno){
  754.                 //nothing here - doesn't show ?
  755.             }
  756.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Passive_VisionQuest.Sno){
  757.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  758.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Passive (cooldown)
  759.             }
  760.             if (pwr == Hud.Sno.SnoPowers.WitchDoctor_Passive_ZombieHandler.Sno){
  761.                 //yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 0, ShowTimeLeft = false, ShowStacks = false};       // Passive (equipped)
  762.                 //yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};       // Passive (Pets?) - not working
  763.             }
  764.             // ############ CRUSADER ACTIVE SKILLS ##############
  765.             // ##################################################
  766.             if (pwr == Hud.Sno.SnoPowers.Crusader_AkaratsChampion.Sno){
  767.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5
  768.                 yield return new BuffRule(pwr) { IconIndex = 11, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 4 (proc cooldown)
  769.             }
  770.             if (pwr == Hud.Sno.SnoPowers.Crusader_BlessedHammer.Sno){
  771.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 1 (last hammer duration)
  772.                 yield return new BuffRule(pwr) { IconIndex = 6, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};          // Rune 1 (fire stacks)
  773.             }
  774.             if (pwr == Hud.Sno.SnoPowers.Crusader_BlessedShield.Sno){
  775.                 yield return new BuffRule(pwr) { IconIndex = 7, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (last shield duration)
  776.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};          // RUne 3 (stacks)
  777.             }
  778.             if (pwr == Hud.Sno.SnoPowers.Crusader_Bombardment.Sno){
  779.                 //nothing here
  780.             }
  781.             if (pwr == Hud.Sno.SnoPowers.Crusader_Condemn.Sno){
  782.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 0, Rune 1, Rune 3, Rune 4, Rune 5
  783.             }
  784.             if (pwr == Hud.Sno.SnoPowers.Crusader_Consecration.Sno){
  785.                 yield return new BuffRule(pwr) { IconIndex = 8, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5
  786.             }
  787.             if (pwr == Hud.Sno.SnoPowers.Crusader_CrushingResolve.Sno){}//???
  788.             if (pwr == Hud.Sno.SnoPowers.Crusader_FallingSword.Sno){
  789.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5
  790.             }
  791.             if (pwr == Hud.Sno.SnoPowers.Crusader_FistOfTheHeavens.Sno){
  792.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 3 (last fissure duration)
  793.             }
  794.             if (pwr == Hud.Sno.SnoPowers.Crusader_HeavensFury.Sno){
  795.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4
  796.             }
  797.             if (pwr == Hud.Sno.SnoPowers.Crusader_IronSkin.Sno){
  798.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5
  799.                 //yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};       // Rune 4 - not needed
  800.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 5
  801.             }
  802.             if (pwr == Hud.Sno.SnoPowers.Crusader_Judgment.Sno){
  803.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 1
  804.             }
  805.             if (pwr == Hud.Sno.SnoPowers.Crusader_Justice.Sno){
  806.                 yield return new BuffRule(pwr) { IconIndex = 7, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 0
  807.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};          // Rune 4
  808.             }
  809.             if (pwr == Hud.Sno.SnoPowers.Crusader_LawsOfFate.Sno){}//???
  810.             //Waiting for KJ to Update Laws
  811.             if (pwr == Hud.Sno.SnoPowers.Crusader_LawsOfHope.Sno){}
  812.             if (pwr == Hud.Sno.SnoPowers.Crusader_LawsOfJustice.Sno){}
  813.             if (pwr == Hud.Sno.SnoPowers.Crusader_LawsOfValor.Sno){}
  814.             if (pwr == Hud.Sno.SnoPowers.Crusader_Phalanx.Sno){
  815.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 1, Rune 5
  816.             }
  817.             if (pwr == Hud.Sno.SnoPowers.Crusader_Provoke.Sno){
  818.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};          // Rune 1
  819.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 4
  820.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 5
  821.             }
  822.             if (pwr == Hud.Sno.SnoPowers.Crusader_Punish.Sno){
  823.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5
  824.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 2
  825.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 3
  826.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Rune 5
  827.  
  828.             }
  829.             if (pwr == Hud.Sno.SnoPowers.Crusader_ShieldBash.Sno){
  830.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5
  831.             }
  832.             if (pwr == Hud.Sno.SnoPowers.Crusader_ShieldGlare.Sno){
  833.                 //nothing here
  834.             }
  835.             if (pwr == Hud.Sno.SnoPowers.Crusader_Slash.Sno){
  836.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};          // Rune 4
  837.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};          // Rune 5
  838.             }
  839.             if (pwr == Hud.Sno.SnoPowers.Crusader_Smite.Sno){
  840.                 yield return new BuffRule(pwr) { IconIndex = 14, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Rune 0
  841.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};          // Rune 4
  842.             }
  843.             if (pwr == Hud.Sno.SnoPowers.Crusader_SteedCharge.Sno){
  844.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (duration)
  845.                 //yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};       // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (transform?)
  846.                 //yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};       // Rune 1 - not needed                
  847.                 //yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};      // Rune 2 - not needed                
  848.                 //yield return new BuffRule(pwr) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};      // Rune 5 - not needed      
  849.             }
  850.             if (pwr == Hud.Sno.SnoPowers.Crusader_SweepAttack.Sno){
  851.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};       // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 - not needed
  852.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Rune 3
  853.                 yield return new BuffRule(pwr) { IconIndex = 4, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 5
  854.             }
  855.             // ############ CRUSADER PASSIVE SKILLS ##############
  856.             // ###################################################
  857.             if (pwr == Hud.Sno.SnoPowers.Crusader_Passive_Blunt.Sno){
  858.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  859.             }
  860.             if (pwr == Hud.Sno.SnoPowers.Crusader_Passive_DivineFortress.Sno){
  861.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  862.                 //yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};      // Passive (equipped) - not needed
  863.             }  
  864.             if (pwr == Hud.Sno.SnoPowers.Crusader_Passive_Fanaticism.Sno){
  865.                 //nothing here
  866.             }
  867.             if (pwr == Hud.Sno.SnoPowers.Crusader_Passive_Fervor.Sno){
  868.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // 1h equipped + passive equipped
  869.             }
  870.             if (pwr == Hud.Sno.SnoPowers.Crusader_Passive_Finery.Sno){
  871.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  872.             }
  873.             if (pwr == Hud.Sno.SnoPowers.Crusader_Passive_HeavenlyStrength.Sno){
  874.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  875.             }
  876.             if (pwr == Hud.Sno.SnoPowers.Crusader_Passive_HoldYourGround.Sno){
  877.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  878.             }
  879.             if (pwr == Hud.Sno.SnoPowers.Crusader_Passive_HolyCause.Sno){
  880.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  881.                 //yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};      // Passive (equipped) - not needed
  882.             }
  883.             if (pwr == Hud.Sno.SnoPowers.Crusader_Passive_Indestructible.Sno){
  884.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  885.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Passive (cooldown)
  886.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Passive (DMG buff)
  887.             }
  888.             if (pwr == Hud.Sno.SnoPowers.Crusader_Passive_Insurmountable.Sno){
  889.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  890.             }  
  891.             if (pwr == Hud.Sno.SnoPowers.Crusader_Passive_IronMaiden.Sno){
  892.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  893.             }
  894.             if (pwr == Hud.Sno.SnoPowers.Crusader_Passive_LongArmOfTheLaw.Sno){
  895.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  896.             }
  897.             if (pwr == Hud.Sno.SnoPowers.Crusader_Passive_LordCommander.Sno){
  898.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  899.             }
  900.             if (pwr == Hud.Sno.SnoPowers.Crusader_Passive_Renewal.Sno){
  901.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  902.             }
  903.             if (pwr == Hud.Sno.SnoPowers.Crusader_Passive_Righteousness.Sno){
  904.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  905.             }
  906.             if (pwr == Hud.Sno.SnoPowers.Crusader_Passive_ToweringShield.Sno){
  907.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  908.             }
  909.             if (pwr == Hud.Sno.SnoPowers.Crusader_Passive_Vigilant.Sno){
  910.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  911.             }
  912.             if (pwr == Hud.Sno.SnoPowers.Crusader_Passive_Wrathful.Sno){
  913.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  914.             }
  915.             // ############ DEMON HUNTER ACTIVE SKILLS ##############
  916.             // ######################################################
  917.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Bolas.Sno){
  918.                 //nothing here
  919.             }
  920.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Caltrops.Sno){
  921.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Rune 5
  922.             }
  923.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Chakram.Sno){
  924.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 5
  925.             }
  926.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_ClusterArrow.Sno){
  927.                 //nothing here
  928.             }
  929.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Companion.Sno){
  930.                 //passive companion is on pwr+1
  931.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 5
  932.             }
  933.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_ElementalArrow.Sno){
  934.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 4 (what the hell is this buff???)
  935.             }
  936.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_EntanglingShot.Sno){
  937.                 //nothing here
  938.             }
  939.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_EvasiveFire.Sno){
  940.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 1
  941.             }
  942.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_FanOfKnives.Sno){
  943.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 2
  944.             }
  945.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Grenades.Sno){
  946.                 //nothing here
  947.             }
  948.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_HungeringArrow.Sno){
  949.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 5 (what the hell is this buff???)
  950.             }
  951.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Impale.Sno){
  952.                 //nothing here
  953.             }
  954.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_MarkedForDeath.Sno){
  955.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (what is this - it scales with custom engineering?!?!)
  956.             }
  957.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Multishot.Sno){
  958.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 5 (rockets?)
  959.             }
  960.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Preparation.Sno){
  961.                 //passive for rune 1
  962.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 4
  963.             }
  964.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_RainOfVengeance.Sno){
  965.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 1
  966.             }
  967.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_RapidFire.Sno){
  968.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5
  969.                 //yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};      // Rune 3 (rockets) - not needed
  970.             }
  971.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Sentry.Sno){
  972.                 yield return new BuffRule(pwr) { IconIndex = 8, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true};         // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5
  973.                 yield return new BuffRule(pwr) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 3
  974.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Rune 5
  975.             }
  976.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_ShadowPower.Sno){
  977.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5
  978.             }
  979.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_SmokeScreen.Sno){
  980.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 0, Rune 1, Rune 3, Rune 4, Rune 5
  981.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 2
  982.             }
  983.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_SpikeTrap.Sno){
  984.                 yield return new BuffRule(pwr) { IconIndex = 8, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true};         // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (stacks)
  985.                 //yield return new BuffRule(pwr) { IconIndex = 9, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};      // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (active) - not needed
  986.             }
  987.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Strafe.Sno){
  988.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (active)
  989.                 //yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};      // Rune 3 - not needed
  990.                 //yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};      // Rune 1 - not needed
  991.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};          // Rune 1 (stacks)
  992.             }
  993.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Vault.Sno){
  994.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 (active)
  995.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 3
  996.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};          // Rune 5
  997.             }
  998.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Vengeance.Sno){
  999.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5
  1000.                 //yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};       // Rune 0, Rune 2, Rune 4 - not needed
  1001.                 //yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};       // Rune 0, Rune 1, Rune 2, Rune 3, Rune 4, Rune 5 - not needed
  1002.                 //yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Rune 5, (rockets)
  1003.                 //yield return new BuffRule(pwr) { IconIndex = 4, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};      // Rune 2 - not needed
  1004.                 //yield return new BuffRule(pwr) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Rune 1, (grenades)
  1005.                 //yield return new BuffRule(pwr) { IconIndex = 6, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};       // Rune 3 - not needed
  1006.                 //yield return new BuffRule(pwr) { IconIndex = 7, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};       // Rune 4 - not needed
  1007.                 //yield return new BuffRule(pwr) { IconIndex = 8, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Rune 0, Rune 2, Rune 4 (rockets)
  1008.             }
  1009.             // ############ DEMON HUNTER PASSIVE SKILLS ##############
  1010.             // #######################################################
  1011.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Passive_Ambush.Sno){
  1012.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  1013.             }
  1014.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Passive_Archery.Sno){
  1015.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped and weapon used)
  1016.             }  
  1017.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Passive_Awareness.Sno){
  1018.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  1019.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Passive (cooldown)
  1020.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Passive (vanish, heal)
  1021.             }  
  1022.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Passive_Ballistics.Sno){
  1023.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  1024.             }
  1025.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Passive_Brooding.Sno){
  1026.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};      // Passive (equipped) - not needed
  1027.                 //yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};       // Passive (cooldown) - not needed
  1028.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};          // Passive (stationary stacking)
  1029.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};          // Passive (moving debuff)
  1030.             }  
  1031.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Passive_CullTheWeak.Sno){
  1032.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  1033.             }
  1034.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Passive_CustomEngineering.Sno){
  1035.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  1036.             }
  1037.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Passive_Grenadier.Sno){
  1038.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  1039.             }
  1040.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Passive_HotPursuit.Sno){
  1041.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  1042.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Passive (hit bonus)
  1043.             }
  1044.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Passive_Leech.Sno){
  1045.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  1046.             }
  1047.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Passive_NightStalker.Sno){
  1048.                // yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  1049.             }
  1050.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Passive_NumbingTraps.Sno){
  1051.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  1052.             }
  1053.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Passive_Perfectionist.Sno){
  1054.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  1055.             }
  1056.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Passive_Sharpshooter.Sno){
  1057.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};      // Passive (equipped) - not needed
  1058.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true};         // Passive (equipped)
  1059.             }
  1060.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Passive_SingleOut.Sno){
  1061.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  1062.             }
  1063.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Passive_SteadyAim.Sno){
  1064.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};      // Passive (equipped) - not needed
  1065.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (up)
  1066.             }
  1067.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Passive_TacticalAdvantage.Sno){
  1068.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};      // Passive (equipped) - not needed
  1069.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};         // Passive (up)
  1070.             }
  1071.             if (pwr == Hud.Sno.SnoPowers.DemonHunter_Passive_ThrillOfTheHunt.Sno){
  1072.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Passive (equipped)
  1073.             }
  1074.             // ############ Necromancer ACTIVE SKILLS ##############
  1075.             // ######################################################
  1076.  
  1077.             if (pwr == Hud.Sno.SnoPowers.Necromancer_GrimScythe.Sno)
  1078.             {
  1079.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true };        
  1080.             }
  1081.             if (pwr == Hud.Sno.SnoPowers.Necromancer_SiphonBlood.Sno)
  1082.             {
  1083.                 yield return new BuffRule(pwr) { IconIndex = 6, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true };
  1084.             }
  1085.             if (pwr == Hud.Sno.SnoPowers.Necromancer_BoneSpear.Sno)
  1086.             {
  1087.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true };
  1088.             }
  1089.             if (pwr == Hud.Sno.SnoPowers.Necromancer_SkeletalMage.Sno)
  1090.             {
  1091.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true };
  1092.             }
  1093.             if (pwr == Hud.Sno.SnoPowers.Necromancer_DeathNova.Sno)
  1094.             {
  1095.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true };
  1096.             }
  1097.             if (pwr == Hud.Sno.SnoPowers.Necromancer_Devour.Sno)
  1098.             {
  1099.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true };
  1100.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true };
  1101.             }
  1102.             if (pwr == Hud.Sno.SnoPowers.Necromancer_LandOfTheDead.Sno)
  1103.             {
  1104.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false };
  1105.             }
  1106.             if (pwr == 471738)//衰老
  1107.             {
  1108.                 yield return new BuffRule(pwr) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true };
  1109.                 yield return new BuffRule(pwr) { IconIndex = 6, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true };
  1110.             }
  1111.             if (pwr == 471869)//脆弱
  1112.             {
  1113.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true };
  1114.                 yield return new BuffRule(pwr) { IconIndex = 6, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true };
  1115.             }
  1116.             if (pwr == Hud.Sno.SnoPowers.Necromancer_BoneArmor.Sno)
  1117.             {
  1118.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true };
  1119.                 yield return new BuffRule(pwr) { IconIndex = 6, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true };
  1120.             }
  1121.             if (pwr == Hud.Sno.SnoPowers.Necromancer_BloodRush.Sno)
  1122.             {
  1123.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false };
  1124.             }
  1125.  
  1126.             // ############ Necromancer PASSIVE SKILLS ##############
  1127.             // #######################################################
  1128.  
  1129.             if (pwr == Hud.Sno.SnoPowers.Necromancer_Passive_FueledByDeath.Sno)
  1130.             {
  1131.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true };
  1132.             }
  1133.             if (pwr == Hud.Sno.SnoPowers.Necromancer_Passive_FinalService.Sno)
  1134.             {
  1135.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false };
  1136.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false };
  1137.             }
  1138.  
  1139.             if (pwr == Hud.Sno.SnoPowers.Necromancer_Passive_RathmasShield.Sno)
  1140.             {
  1141.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false };
  1142.             }
  1143.  
  1144.  
  1145.             // ask for a request to add your item here: http://turbohud.freeforums.net/thread/4045/v7-1-english-gigi-partybuffplugin
  1146.             // ############ LEGENDARY ITEM POWERS ##############
  1147.             // #################################################
  1148.             if (pwr == Hud.Sno.SnoPowers.AetherWalker.Sno){
  1149.                 //nothing here
  1150.             }
  1151.             if (pwr == Hud.Sno.SnoPowers.AhavarionSpearOfLycander.Sno){
  1152.                 //nothing here
  1153.             }
  1154.             if (pwr == Hud.Sno.SnoPowers.AkkhansAddendum.Sno){}
  1155.             if (pwr == Hud.Sno.SnoPowers.AkkhansLeniency.Sno){
  1156.                 yield return new BuffRule(266951) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};
  1157.             }
  1158.             if (pwr == Hud.Sno.SnoPowers.AkkhansManacles.Sno){}
  1159.             if (pwr == Hud.Sno.SnoPowers.AncestorsGrace.Sno){}
  1160.             if (pwr == Hud.Sno.SnoPowers.AncientParthanDefenders.Sno){}
  1161.             if (pwr == Hud.Sno.SnoPowers.AnessaziEdge.Sno){}
  1162.             if (pwr == Hud.Sno.SnoPowers.AquilaCuirass.Sno){
  1163.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false};        // Active
  1164.             }
  1165.             if (pwr == Hud.Sno.SnoPowers.ArchmagesVicalyke.Sno){}
  1166.             if (pwr == Hud.Sno.SnoPowers.Arcstone.Sno){}
  1167.             if (pwr == Hud.Sno.SnoPowers.ArmorOfTheKindRegent.Sno){}
  1168.             if (pwr == Hud.Sno.SnoPowers.ArreatsLaw.Sno){}
  1169.             if (pwr == Hud.Sno.SnoPowers.ArthefsSparkOfLife.Sno){
  1170.                 //nothing here
  1171.             }
  1172.             if (pwr == Hud.Sno.SnoPowers.AshnagarrsBloodBracer.Sno){}
  1173.             if (pwr == Hud.Sno.SnoPowers.BakuliJungleWraps.Sno){}
  1174.             if (pwr == Hud.Sno.SnoPowers.Balance.Sno){}
  1175.             if (pwr == Hud.Sno.SnoPowers.BalefulRemnant.Sno){}
  1176.             if (pwr == Hud.Sno.SnoPowers.BandOfHollowWhispers.Sno){}
  1177.             if (pwr == Hud.Sno.SnoPowers.BandOfMight.Sno){
  1178.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};
  1179.             }
  1180.             if (pwr == Hud.Sno.SnoPowers.BandOfTheRueChambers.Sno){}
  1181.             if (pwr == Hud.Sno.SnoPowers.BastionsRevered.Sno){}
  1182.             if (pwr == Hud.Sno.SnoPowers.BeckonSail.Sno){}
  1183.             if (pwr == Hud.Sno.SnoPowers.BeltOfTheTrove.Sno){}
  1184.             if (pwr == Hud.Sno.SnoPowers.BeltOfTranscendence.Sno){}
  1185.             if (pwr == Hud.Sno.SnoPowers.BindingOfTheLost.Sno){
  1186.                 yield return new BuffRule(96694) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};
  1187.             }
  1188.             if (pwr == Hud.Sno.SnoPowers.BindingsOfTheLesserGods.Sno){}
  1189.             if (pwr == Hud.Sno.SnoPowers.Blackfeather.Sno){}
  1190.             if (pwr == Hud.Sno.SnoPowers.BladeOfProphecy.Sno){}
  1191.             if (pwr == Hud.Sno.SnoPowers.BladeOfTheTribes.Sno){}
  1192.             if (pwr == Hud.Sno.SnoPowers.BladeOfTheWarlord.Sno){}
  1193.             if (pwr == Hud.Sno.SnoPowers.BlessedOfHaull.Sno){}
  1194.             if (pwr == Hud.Sno.SnoPowers.BloodBrother.Sno){
  1195.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Sword_2H_103_x1.Sno)};        // Uptime
  1196.             }
  1197.             if (pwr == Hud.Sno.SnoPowers.BovineBardiche.Sno){}
  1198.             if (pwr == Hud.Sno.SnoPowers.BracerOfFury.Sno){}
  1199.             if (pwr == Hud.Sno.SnoPowers.BracersOfDestruction.Sno){}
  1200.             if (pwr == Hud.Sno.SnoPowers.BracersOfTheFirstMen.Sno){}
  1201.             if (pwr == Hud.Sno.SnoPowers.BrokenCrown.Sno){}
  1202.             if (pwr == Hud.Sno.SnoPowers.BrokenPromises.Sno){
  1203.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Ring_006.Sno)};
  1204.             }
  1205.             if (pwr == Hud.Sno.SnoPowers.BulKathossWeddingBand.Sno){}
  1206.             if (pwr == Hud.Sno.SnoPowers.ButchersCarver.Sno){}
  1207.             if (pwr == Hud.Sno.SnoPowers.CamsRebuttal.Sno){
  1208.                 yield return new BuffRule(239137) { IconIndex = 8, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Sword_2H_102_x1.Sno)};
  1209.             }
  1210.             if (pwr == Hud.Sno.SnoPowers.CapeOfTheDarkNight.Sno){}
  1211.             if (pwr == Hud.Sno.SnoPowers.Carnevil.Sno){}
  1212.             if (pwr == Hud.Sno.SnoPowers.CesarsMemento.Sno){}
  1213.             if (pwr == Hud.Sno.SnoPowers.Chaingmail.Sno){}
  1214.             if (pwr == Hud.Sno.SnoPowers.ChainOfShadows.Sno){
  1215.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};
  1216.             }
  1217.             if (pwr == Hud.Sno.SnoPowers.ChanonBolter.Sno){}
  1218.             if (pwr == Hud.Sno.SnoPowers.ChilaniksChain.Sno){
  1219.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_BarbBelt_101_x1.Sno)};
  1220.             }
  1221.             if (pwr == Hud.Sno.SnoPowers.Cindercoat.Sno){}
  1222.             if (pwr == Hud.Sno.SnoPowers.CoilsOfTheFirstSpider.Sno){}
  1223.             if (pwr == Hud.Sno.SnoPowers.ConventionOfElements.Sno){
  1224.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};
  1225.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};
  1226.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};
  1227.                 yield return new BuffRule(pwr) { IconIndex = 4, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};
  1228.                 yield return new BuffRule(pwr) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};
  1229.                 yield return new BuffRule(pwr) { IconIndex = 6, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};
  1230.                 yield return new BuffRule(pwr) { IconIndex = 7, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};
  1231.             }
  1232.             if (pwr == Hud.Sno.SnoPowers.CordOfTheSherma.Sno){}
  1233.             if (pwr == Hud.Sno.SnoPowers.CorruptedAshbringer.Sno){}
  1234.             if (pwr == Hud.Sno.SnoPowers.CountessJuliasCameo.Sno){}
  1235.             if (pwr == Hud.Sno.SnoPowers.CrashingRain.Sno){}
  1236.             if (pwr == Hud.Sno.SnoPowers.CrownOfThePrimus.Sno){}
  1237.             if (pwr == Hud.Sno.SnoPowers.CrystalFist.Sno){
  1238.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};
  1239.             }
  1240.             if (pwr == Hud.Sno.SnoPowers.CusterianWristguards.Sno){}
  1241.             if (pwr == Hud.Sno.SnoPowers.Darklight.Sno){}
  1242.             if (pwr == Hud.Sno.SnoPowers.DarkMagesShade.Sno){}
  1243.             if (pwr == Hud.Sno.SnoPowers.DeadlyRebirth.Sno){}
  1244.             if (pwr == Hud.Sno.SnoPowers.DeathseersCowl.Sno){}
  1245.             if (pwr == Hud.Sno.SnoPowers.DeathWatchMantle.Sno){}
  1246.             if (pwr == Hud.Sno.SnoPowers.Deathwish.Sno){
  1247.                 //nothing here
  1248.             }
  1249.             if (pwr == Hud.Sno.SnoPowers.DepthDiggers.Sno){}
  1250.             if (pwr == Hud.Sno.SnoPowers.DishonoredLegacy.Sno){}
  1251.             if (pwr == Hud.Sno.SnoPowers.DovuEnergyTrap.Sno){}
  1252.             if (pwr == Hud.Sno.SnoPowers.DrakonsLesson.Sno){}
  1253.             if (pwr == Hud.Sno.SnoPowers.DreadIron.Sno){}
  1254.             if (pwr == Hud.Sno.SnoPowers.ElusiveRing.Sno){
  1255.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};
  1256.             }
  1257.             if (pwr == Hud.Sno.SnoPowers.EnchantingFavor.Sno){}
  1258.             if (pwr == Hud.Sno.SnoPowers.EternalUnion.Sno){}
  1259.             if (pwr == Hud.Sno.SnoPowers.Eunjangdo.Sno){}
  1260.             if (pwr == Hud.Sno.SnoPowers.EyeOfPeshkov.Sno){}
  1261.             if (pwr == Hud.Sno.SnoPowers.FaithfulMemory.Sno){
  1262.                 yield return new BuffRule(239137) { IconIndex = 9, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};
  1263.             }
  1264.             if (pwr == Hud.Sno.SnoPowers.FateOfTheFell.Sno){}
  1265.             if (pwr == Hud.Sno.SnoPowers.FazulasImprobableChain.Sno){}
  1266.             if (pwr == Hud.Sno.SnoPowers.FireWalkers.Sno){}
  1267.             if (pwr == Hud.Sno.SnoPowers.FlailOfTheAscended.Sno){}
  1268.             if (pwr == Hud.Sno.SnoPowers.Fleshrake.Sno){
  1269.                 yield return new BuffRule(312736) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};
  1270.             }
  1271.             if (pwr == Hud.Sno.SnoPowers.FlyingDragon.Sno){
  1272.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_CombatStaff_2H_009.Sno)};        // Uptime
  1273.                 //yield return new BuffRule(pwr) { IconIndex = 7, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_CombatStaff_2H_009.Sno)};        // ICD
  1274.             }
  1275.             if (pwr == Hud.Sno.SnoPowers.FortressBallista.Sno){
  1276.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true};
  1277.             }
  1278.             if (pwr == Hud.Sno.SnoPowers.FragmentOfDestiny.Sno){}
  1279.             if (pwr == Hud.Sno.SnoPowers.Frostburn.Sno){}
  1280.             if (pwr == Hud.Sno.SnoPowers.Fulminator.Sno){}
  1281.             if (pwr == Hud.Sno.SnoPowers.FuryOfTheAncients.Sno){}
  1282.             if (pwr == Hud.Sno.SnoPowers.GabrielsVambraces.Sno){}
  1283.             if (pwr == Hud.Sno.SnoPowers.Genzaniku.Sno){}
  1284.             if (pwr == Hud.Sno.SnoPowers.GestureOfOrpheus.Sno){}
  1285.             if (pwr == Hud.Sno.SnoPowers.GirdleOfGiants.Sno){
  1286.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};
  1287.             }
  1288.             if (pwr == Hud.Sno.SnoPowers.GladiatorGauntlets.Sno){}
  1289.             if (pwr == Hud.Sno.SnoPowers.GoldenFlense.Sno){}
  1290.             if (pwr == Hud.Sno.SnoPowers.Goldwrap.Sno){
  1291.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Belt_010.Sno)};
  1292.             }
  1293.             if (pwr == Hud.Sno.SnoPowers.GungdoGear.Sno){}
  1294.             if (pwr == Hud.Sno.SnoPowers.GyanaNaKashu.Sno){}
  1295.             if (pwr == Hud.Sno.SnoPowers.GyrfalconsFoote.Sno){}
  1296.             if (pwr == Hud.Sno.SnoPowers.Hack.Sno){}
  1297.             if (pwr == Hud.Sno.SnoPowers.HaloOfArlyse.Sno){}
  1298.             if (pwr == Hud.Sno.SnoPowers.HaloOfKarini.Sno){
  1299.                 yield return new BuffRule(74499) { IconIndex = 4, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};
  1300.             }
  1301.             if (pwr == Hud.Sno.SnoPowers.HammerJammers.Sno){}
  1302.             if (pwr == Hud.Sno.SnoPowers.HandOfTheProphet.Sno){}
  1303.             if (pwr == Hud.Sno.SnoPowers.HarringtonWaistguard.Sno){
  1304.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};
  1305.             }
  1306.             if (pwr == Hud.Sno.SnoPowers.HauntingGirdle.Sno){}
  1307.             if (pwr == Hud.Sno.SnoPowers.HauntOfVaxo.Sno){
  1308.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};
  1309.             }
  1310.             if (pwr == Hud.Sno.SnoPowers.HeartOfIron.Sno){}
  1311.             //if (pwr == Hud.Sno.SnoPowers.HellcatWaistguard.Sno){}
  1312.             if (pwr == Hud.Sno.SnoPowers.HergbrashsBinding.Sno){}
  1313.             if (pwr == Hud.Sno.SnoPowers.HexingPantsOfMrYan.Sno){
  1314.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Pants_101_x1.Sno)};
  1315.             }
  1316.             if (pwr == Hud.Sno.SnoPowers.HillenbrandsTrainingSword.Sno){}
  1317.             if (pwr == Hud.Sno.SnoPowers.HomingPads.Sno){
  1318.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Shoulder_001_x1.Sno)};        // Active
  1319.             }
  1320.             if (pwr == Hud.Sno.SnoPowers.HuntersWrath.Sno){}
  1321.             if (pwr == Hud.Sno.SnoPowers.HwojWrap.Sno){}
  1322.             if (pwr == Hud.Sno.SnoPowers.IncenseTorchOfTheGrandTemple.Sno){}
  1323.             if (pwr == Hud.Sno.SnoPowers.Ingeom.Sno){
  1324.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Uptime
  1325.             }
  1326.             if (pwr == Hud.Sno.SnoPowers.InviolableFaith.Sno){}
  1327.             if (pwr == Hud.Sno.SnoPowers.IrontoeMudsputters.Sno){}
  1328.             if (pwr == Hud.Sno.SnoPowers.JacesHammerOfVigilance.Sno){}
  1329.             if (pwr == Hud.Sno.SnoPowers.JangsEnvelopment.Sno){}
  1330.             if (pwr == Hud.Sno.SnoPowers.Jawbreaker.Sno){}
  1331.             if (pwr == Hud.Sno.SnoPowers.JeramsBracers.Sno){}
  1332.             if (pwr == Hud.Sno.SnoPowers.JohannasArgument.Sno){}
  1333.             if (pwr == Hud.Sno.SnoPowers.JustiniansMercy.Sno){}
  1334.             if (pwr == Hud.Sno.SnoPowers.KarleisPoint.Sno){}
  1335.             if (pwr == Hud.Sno.SnoPowers.KassarsRetribution.Sno){
  1336.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Flail_1H_104_x1.Sno)};
  1337.             }
  1338.             if (pwr == Hud.Sno.SnoPowers.KekegisUnbreakableSpirit.Sno){
  1339.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};        // Uptime
  1340.             }
  1341.             if (pwr == Hud.Sno.SnoPowers.KhassettsCordOfRighteousness.Sno){}
  1342.             if (pwr == Hud.Sno.SnoPowers.KmarTenclip.Sno){}
  1343.             if (pwr == Hud.Sno.SnoPowers.KredesFlame.Sno){}
  1344.             if (pwr == Hud.Sno.SnoPowers.KrelmsBuffBelt.Sno){
  1345.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Belt_Set_02_x1.Sno)};         // Downtime
  1346.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Belt_Set_02_x1.Sno)};        // Active
  1347.             }
  1348.             if (pwr == Hud.Sno.SnoPowers.KrelmsBuffBracers.Sno){}
  1349.             if (pwr == Hud.Sno.SnoPowers.Kridershot.Sno){}
  1350.             if (pwr == Hud.Sno.SnoPowers.KyoshirosBlade.Sno){}
  1351.             if (pwr == Hud.Sno.SnoPowers.KyoshirosSoul.Sno){}
  1352.             if (pwr == Hud.Sno.SnoPowers.LakumbasOrnament.Sno){}
  1353.             if (pwr == Hud.Sno.SnoPowers.Lamentation.Sno){}
  1354.             if (pwr == Hud.Sno.SnoPowers.LastBreath.Sno){}
  1355.             if (pwr == Hud.Sno.SnoPowers.LefebvresSoliloquy.Sno){
  1356.                 yield return new BuffRule(223473) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};
  1357.             }
  1358.             if (pwr == Hud.Sno.SnoPowers.LeonineBowOfHashir.Sno){}
  1359.             if (pwr == Hud.Sno.SnoPowers.LiannasWings.Sno){}
  1360.             if (pwr == Hud.Sno.SnoPowers.LionsClaw.Sno){}
  1361.             if (pwr == Hud.Sno.SnoPowers.LordGreenstonesFan.Sno){
  1362.                  yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true};
  1363.             }
  1364.             if (pwr == Hud.Sno.SnoPowers.LutSocks.Sno){}
  1365.             if (pwr == Hud.Sno.SnoPowers.MadawcsSorrow.Sno){}
  1366.             if (pwr == Hud.Sno.SnoPowers.Madstone.Sno){}
  1367.             if (pwr == Hud.Sno.SnoPowers.Magefist.Sno){}
  1368.             if (pwr == Hud.Sno.SnoPowers.MalothsFocus.Sno){}
  1369.             if (pwr == Hud.Sno.SnoPowers.ManaldHeal.Sno){
  1370.                 //nothing here
  1371.             }
  1372.             if (pwr == Hud.Sno.SnoPowers.MantleOfChanneling.Sno){
  1373.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.P4_Unique_Shoulder_103.Sno)};         // Active
  1374.             }
  1375.             if (pwr == Hud.Sno.SnoPowers.MarasKaleidoscope.Sno){}
  1376.             if (pwr == Hud.Sno.SnoPowers.MaskOfJeram.Sno){}
  1377.             if (pwr == Hud.Sno.SnoPowers.MoonlightWard.Sno){}
  1378.             if (pwr == Hud.Sno.SnoPowers.MordullusPromise.Sno){}
  1379.             if (pwr == Hud.Sno.SnoPowers.NemesisBracers.Sno){}
  1380.             if (pwr == Hud.Sno.SnoPowers.NilfursBoast.Sno){}
  1381.             if (pwr == Hud.Sno.SnoPowers.Oathkeeper.Sno){}
  1382.             if (pwr == Hud.Sno.SnoPowers.OculusRing.Sno){
  1383.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Ring_017.Sno)};    // Uptime
  1384.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Ring_017.Sno)};     // ICD
  1385.             }
  1386.             if (pwr == Hud.Sno.SnoPowers.OdynSon.Sno){}
  1387.             if (pwr == Hud.Sno.SnoPowers.OdysseysEnd.Sno){}
  1388.             if (pwr == Hud.Sno.SnoPowers.Omnislash.Sno){}
  1389.             if (pwr == Hud.Sno.SnoPowers.OmrynsChain.Sno){}
  1390.             if (pwr == Hud.Sno.SnoPowers.PintosPride.Sno){}
  1391.             if (pwr == Hud.Sno.SnoPowers.PoxFaulds.Sno){
  1392.                 yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};
  1393.             }
  1394.             if (pwr == Hud.Sno.SnoPowers.PrideOfCassius.Sno){}
  1395.             if (pwr == Hud.Sno.SnoPowers.PromiseOfGlory.Sno){}
  1396.             if (pwr == Hud.Sno.SnoPowers.PuzzleRing.Sno){}
  1397.             if (pwr == Hud.Sno.SnoPowers.Quetzalcoatl.Sno){}
  1398.             if (pwr == Hud.Sno.SnoPowers.RabidStrike.Sno){}
  1399.             if (pwr == Hud.Sno.SnoPowers.RakoffsGlassOfLife.Sno){}
  1400.             if (pwr == Hud.Sno.SnoPowers.RanslorsFolly.Sno){
  1401.                 //nothing here
  1402.             }
  1403.             if (pwr == Hud.Sno.SnoPowers.RazorStrop.Sno){}
  1404.             if (pwr == Hud.Sno.SnoPowers.RechelsRingOfLarceny.Sno){
  1405.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Ring_104_x1.Sno)};
  1406.             }
  1407.             if (pwr == Hud.Sno.SnoPowers.RelicOfAkarat.Sno){}
  1408.             if (pwr == Hud.Sno.SnoPowers.Remorseless.Sno){}
  1409.             if (pwr == Hud.Sno.SnoPowers.RhenhoFlayer.Sno){}
  1410.             if (pwr == Hud.Sno.SnoPowers.RibaldEtchings.Sno){}
  1411.             if (pwr == Hud.Sno.SnoPowers.Rimeheart.Sno){}
  1412.             if (pwr == Hud.Sno.SnoPowers.RingOfEmptiness.Sno){}
  1413.             if (pwr == Hud.Sno.SnoPowers.RiveraDancers.Sno){}
  1414.             if (pwr == Hud.Sno.SnoPowers.RogarsHugeStone.Sno){}
  1415.             if (pwr == Hud.Sno.SnoPowers.SacredHarness.Sno){}
  1416.             if (pwr == Hud.Sno.SnoPowers.SacredHarvester.Sno){}
  1417.             if (pwr == Hud.Sno.SnoPowers.SaffronWrap.Sno){
  1418.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true};
  1419.             }
  1420.             if (pwr == Hud.Sno.SnoPowers.SashOfKnives.Sno){}
  1421.             if (pwr == Hud.Sno.SnoPowers.Scarbringer.Sno){}
  1422.             if (pwr == Hud.Sno.SnoPowers.Scourge.Sno){}
  1423.             if (pwr == Hud.Sno.SnoPowers.Scrimshaw.Sno){}
  1424.             if (pwr == Hud.Sno.SnoPowers.SeborsNightmare.Sno){}
  1425.             if (pwr == Hud.Sno.SnoPowers.SerpentsSparker.Sno){}
  1426.             if (pwr == Hud.Sno.SnoPowers.ShardOfHate.Sno){}
  1427.             if (pwr == Hud.Sno.SnoPowers.ShiMizusHaori.Sno){
  1428.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Chest_101_x1.Sno)};
  1429.             }
  1430.             if (pwr == Hud.Sno.SnoPowers.SkeletonKey.Sno){}
  1431.             if (pwr == Hud.Sno.SnoPowers.SkularsSalvation.Sno){}
  1432.             if (pwr == Hud.Sno.SnoPowers.SkullGrasp.Sno){}
  1433.             if (pwr == Hud.Sno.SnoPowers.SkullOfResonance.Sno){}
  1434.             if (pwr == Hud.Sno.SnoPowers.SkySplitter.Sno){}
  1435.             if (pwr == Hud.Sno.SnoPowers.Skywarden.Sno){}
  1436.             if (pwr == Hud.Sno.SnoPowers.SlipkasLetterOpener.Sno){}
  1437.             if (pwr == Hud.Sno.SnoPowers.SloraksMadness.Sno){}
  1438.             if (pwr == Hud.Sno.SnoPowers.SmokingThurible.Sno){}
  1439.             if (pwr == Hud.Sno.SnoPowers.Solanium.Sno){}
  1440.             if (pwr == Hud.Sno.SnoPowers.SpauldersOfZakara.Sno){}
  1441.             if (pwr == Hud.Sno.SnoPowers.SpiritGuards.Sno){
  1442.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};
  1443.             }
  1444.             if (pwr == Hud.Sno.SnoPowers.StaffOfChiroptera.Sno){}
  1445.             if (pwr == Hud.Sno.SnoPowers.StalgardsDecimator.Sno){}
  1446.             if (pwr == Hud.Sno.SnoPowers.Standoff.Sno){}
  1447.             if (pwr == Hud.Sno.SnoPowers.StArchewsGage.Sno){
  1448.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Gloves_101_p2.Sno)};         // Uptime
  1449.             }
  1450.             if (pwr == Hud.Sno.SnoPowers.Starfire.Sno){}
  1451.             if (pwr == Hud.Sno.SnoPowers.StarmetalKukri.Sno){}
  1452.             if (pwr == Hud.Sno.SnoPowers.StormCrow.Sno){}
  1453.             if (pwr == Hud.Sno.SnoPowers.StringOfEars.Sno){}
  1454.             if (pwr == Hud.Sno.SnoPowers.StrongarmBracers.Sno){}
  1455.             if (pwr == Hud.Sno.SnoPowers.SuWongDiviner.Sno){}
  1456.             if (pwr == Hud.Sno.SnoPowers.SwampLandWaders.Sno){}
  1457.             if (pwr == Hud.Sno.SnoPowers.Swiftmount.Sno){}
  1458.             if (pwr == Hud.Sno.SnoPowers.SwordOfIllWill.Sno){}
  1459.             if (pwr == Hud.Sno.SnoPowers.TalismanOfAranoch.Sno){}
  1460.             if (pwr == Hud.Sno.SnoPowers.TaskerandTheo.Sno){}
  1461.             if (pwr == Hud.Sno.SnoPowers.TheBarber.Sno){}
  1462.             if (pwr == Hud.Sno.SnoPowers.TheBurningAxeOfSankis.Sno){
  1463.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Axe_1H_007.Sno)};
  1464.             }
  1465.             if (pwr == Hud.Sno.SnoPowers.TheButchersSickle.Sno){}
  1466.             if (pwr == Hud.Sno.SnoPowers.TheCloakOfTheGarwulf.Sno){}
  1467.             if (pwr == Hud.Sno.SnoPowers.TheCrudestBoots.Sno){}
  1468.             if (pwr == Hud.Sno.SnoPowers.TheDaggerOfDarts.Sno){}
  1469.             if (pwr == Hud.Sno.SnoPowers.TheDemonsDemise.Sno){}
  1470.             if (pwr == Hud.Sno.SnoPowers.TheEssOfJohan.Sno){}
  1471.             if (pwr == Hud.Sno.SnoPowers.TheFistOfAzTurrasq.Sno){}
  1472.             if (pwr == Hud.Sno.SnoPowers.TheFlowOfEternity.Sno){}
  1473.             if (pwr == Hud.Sno.SnoPowers.TheFurnace.Sno){}
  1474.             if (pwr == Hud.Sno.SnoPowers.TheGavelOfJudgment.Sno){}
  1475.             if (pwr == Hud.Sno.SnoPowers.TheGidbinn.Sno){}
  1476.             if (pwr == Hud.Sno.SnoPowers.TheGrandVizier.Sno){}
  1477.             if (pwr == Hud.Sno.SnoPowers.TheGrinReaper.Sno){}
  1478.             if (pwr == Hud.Sno.SnoPowers.TheLawsOfSeph.Sno){}
  1479.             if (pwr == Hud.Sno.SnoPowers.TheMagistrate.Sno){}
  1480.             if (pwr == Hud.Sno.SnoPowers.TheMindsEye.Sno){}
  1481.             if (pwr == Hud.Sno.SnoPowers.TheMortalDrama.Sno){}
  1482.             if (pwr == Hud.Sno.SnoPowers.ThePaddle.Sno){}
  1483.             if (pwr == Hud.Sno.SnoPowers.TheShameOfDelsere.Sno){}
  1484.             if (pwr == Hud.Sno.SnoPowers.TheShortMansFinger.Sno){}
  1485.             if (pwr == Hud.Sno.SnoPowers.TheSmolderingCore.Sno){}
  1486.             if (pwr == Hud.Sno.SnoPowers.TheSpiderQueensGrasp.Sno){}
  1487.             if (pwr == Hud.Sno.SnoPowers.TheStarOfAzkaranth.Sno){}
  1488.             if (pwr == Hud.Sno.SnoPowers.TheSwami.Sno){
  1489.                 yield return new BuffRule(134872) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};
  1490.             }
  1491.             if (pwr == Hud.Sno.SnoPowers.TheTallMansFinger.Sno){}
  1492.             if (pwr == Hud.Sno.SnoPowers.TheThreeHundredthSpear.Sno){}
  1493.             if (pwr == Hud.Sno.SnoPowers.TheTormentor.Sno){}
  1494.             if (pwr == Hud.Sno.SnoPowers.TheTwistedSword.Sno){
  1495.                 yield return new BuffRule(77113) { IconIndex = 6, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};
  1496.             }
  1497.             if (pwr == Hud.Sno.SnoPowers.TheUndisputedChampion.Sno){}
  1498.             if (pwr == Hud.Sno.SnoPowers.ThunderfuryBlessedBladeOfTheWindseeker.Sno){}
  1499.             if (pwr == Hud.Sno.SnoPowers.TiklandianVisage.Sno){
  1500.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};
  1501.             }
  1502.             if (pwr == Hud.Sno.SnoPowers.TragOulCoils.Sno){}
  1503.             if (pwr == Hud.Sno.SnoPowers.TzoKrinsGaze.Sno){}
  1504.             if (pwr == Hud.Sno.SnoPowers.UnstableScepter.Sno){}
  1505.             if (pwr == Hud.Sno.SnoPowers.VadimsSurge.Sno){}
  1506.             if (pwr == Hud.Sno.SnoPowers.ValtheksRebuke.Sno){}
  1507.             if (pwr == Hud.Sno.SnoPowers.VambracesOfSescheron.Sno){}
  1508.             if (pwr == Hud.Sno.SnoPowers.VelvetCamaral.Sno){}
  1509.             if (pwr == Hud.Sno.SnoPowers.VengefulWind.Sno){}
  1510.             if (pwr == Hud.Sno.SnoPowers.Vigilance.Sno){}
  1511.             if (pwr == Hud.Sno.SnoPowers.VileWard.Sno){}
  1512.             if (pwr == Hud.Sno.SnoPowers.VisageOfGiyua.Sno){}
  1513.             if (pwr == Hud.Sno.SnoPowers.VisageOfGunes.Sno){}
  1514.             if (pwr == Hud.Sno.SnoPowers.VoosJuicer.Sno){}
  1515.             if (pwr == Hud.Sno.SnoPowers.WandOfWoh.Sno){}
  1516.             if (pwr == Hud.Sno.SnoPowers.WarhelmOfKassar.Sno){}
  1517.             if (pwr == Hud.Sno.SnoPowers.WarstaffOfGeneralQuang.Sno){}
  1518.             if (pwr == Hud.Sno.SnoPowers.WarzechianArmguards.Sno){
  1519.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Bracer_101_x1.Sno)};         // Uptime
  1520.             }
  1521.             if (pwr == Hud.Sno.SnoPowers.Wizardspike.Sno){}
  1522.             if (pwr == Hud.Sno.SnoPowers.WojahnniAssaulter.Sno){
  1523.                 yield return new BuffRule(397780) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};
  1524.             }
  1525.             if (pwr == Hud.Sno.SnoPowers.WrapsOfClarity.Sno){
  1526.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};
  1527.             }
  1528.             if (pwr == Hud.Sno.SnoPowers.Wyrdward.Sno){}
  1529.             if (pwr == Hud.Sno.SnoPowers.XephirianAmulet.Sno){}
  1530.             if (pwr == Hud.Sno.SnoPowers.ZoeysSecret.Sno){}
  1531.             //补充遗漏装备
  1532.             if (pwr == 434849){
  1533.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true}; //三元宝珠Triumvirate
  1534.             }
  1535.             if (pwr == 449037){
  1536.                 yield return new BuffRule(87525) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true}; //无尽深渊法珠Orb of Infinite Depth
  1537.             }
  1538.             if (pwr == 435016){
  1539.                 yield return new BuffRule(239042) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true}; //不破之钢Denial
  1540.             }
  1541.             //死灵法师装备
  1542.             if (pwr == 476684)
  1543.             {
  1544.                 yield return new BuffRule(476684) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.P6_Unique_Phylactery_01.Sno)}; //失时
  1545.             }
  1546.             if (pwr == 476587)
  1547.             {
  1548.                 yield return new BuffRule(476587) { IconIndex = 7, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true}; //纳伊尔的黑镰
  1549.             }
  1550.             if (pwr == 475248)
  1551.             {
  1552.                 yield return new BuffRule(454174) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true }; //精魂魔掌
  1553.             }
  1554.             if (pwr == 476689)
  1555.             {
  1556.                 yield return new BuffRule(476689) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.P6_Unique_Belt_01.Sno)}; //但提的束缚
  1557.             }
  1558.             if (pwr == 476588)
  1559.             {
  1560.                 yield return new BuffRule(476588) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.P6_Necro_Unique_Pants_21.Sno)}; //傀儡大师的马裤
  1561.             }
  1562.             if (pwr == 476580)
  1563.             {
  1564.                 yield return new BuffRule(476580) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true}; //拜尸者的护肩
  1565.             }
  1566.             if (pwr == 389601)
  1567.             {
  1568.                 yield return new BuffRule(475243) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.P6_Necro_Unique_Boots_21.Sno)}; //斯图亚特的护胫
  1569.             }
  1570.             if (pwr == 476583)
  1571.             {
  1572.                 yield return new BuffRule(476583) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true}; //约翰之石
  1573.             }
  1574.             //悬赏物品
  1575.             if (pwr == 322977){
  1576.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false}; //骄矜必败Pride Fall
  1577.             }
  1578.             if (pwr == 322975){
  1579.                 yield return new BuffRule(pwr) { IconIndex = 7, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Ring_108_x1.Sno)}; //贪婪之戒Avarice Band
  1580.             }
  1581.            
  1582.             if (pwr == 322980){
  1583.                 yield return new BuffRule(pwr) { IconIndex = 7, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Belt_103_x1.Sno)}; //贪婪腰带Insatiable Belt
  1584.             }
  1585.             if (pwr == 334883)
  1586.             {
  1587.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Shoulder_103_x1.Sno) }; //骷髅王肩铠Pauldrons of the Skeleton King
  1588.             }
  1589.             //锻造物品
  1590.             if (pwr == 247585){
  1591.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Shield_011.Sno)}; //尸墙 Wall of Bone
  1592.             }
  1593.            
  1594.             //套装
  1595.             if (pwr == 447541){
  1596.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true}; //罗盘玫瑰The Compass Rose
  1597.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true}; //旅人祈愿The Traveler's Pledge
  1598.             }
  1599.             if (pwr == 359583){
  1600.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //守心restraint
  1601.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //克己focus
  1602.             }
  1603.             if (pwr == 359582){
  1604.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true}; //小流氓对剑Set_Istvan's Paired Blades(Little Rogue,The Slanderer)
  1605.             }
  1606.             if (pwr == 440235){
  1607.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true}; //迦陀朵的决心(Chantodo's Force,Chantodo's Will)
  1608.             }
  1609.             if (pwr == 440569){
  1610.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //神龙之魂(Shenlong's Fist of Legend,Shenlong's Relentless Assault)
  1611.             }
  1612.            
  1613.             //职业套装
  1614.  
  1615.             //法师
  1616.             if (pwr == 429855){
  1617.                 yield return new BuffRule(pwr) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true}; //塔拉夏6件套Tal Rasha's Elements
  1618.             }
  1619.             if (pwr == 450294){
  1620.                 yield return new BuffRule(1769) { IconIndex = 9, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false}; //德尔西尼4件Set_Delsere's Magnum Opus
  1621.             }
  1622.             if (pwr == 359580){
  1623.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //不死鸟2件Firebird's Finery
  1624.             }
  1625.             if (pwr == 445814){
  1626.                 yield return new BuffRule(359581) { IconIndex = 5, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true}; //不死鸟6件Firebird's Finery
  1627.             }
  1628.             //武僧
  1629.             if (pwr == 430228)
  1630.             {
  1631.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false }; //千飓6件Raiment of a Thousand Storms
  1632.             }
  1633.             //野蛮人
  1634.             if (pwr == 429673){
  1635.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = true}; //蕾寇6件The Legacy of Raekor
  1636.             }
  1637.             //巫医
  1638.             if (pwr == 437711){
  1639.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //魔牙6件Helltooth Harness
  1640.             }
  1641.             if (pwr == 439308){
  1642.                 yield return new BuffRule(30631) { IconIndex = 6, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //亚拉基尔4件Spirit of Arachyr
  1643.             }
  1644.            
  1645.             //圣教军
  1646.             if (pwr == 436426){
  1647.                 yield return new BuffRule(239137) { IconIndex = 4, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //圣光4件The Seeker of the Light
  1648.             }
  1649.             if (pwr == 445829){
  1650.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true}; //幻魔师2件Thorns of the Invoker
  1651.             }
  1652.             if (pwr == 445639){
  1653.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //幻魔师4件Thorns of the Invoker
  1654.             }
  1655.             if (pwr == 409428){
  1656.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true}; //罗兰6件Roland's Legacy
  1657.             }
  1658.             //狩魔猎人
  1659.             if (pwr == 434964){
  1660.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //娜塔亚6件Natalya's Vengeance
  1661.             }
  1662.             if (pwr == 423244){
  1663.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //邪秽之精4件Unhallowed Essence
  1664.             }
  1665.             //死灵法师
  1666.             if (pwr == 467463)
  1667.             {
  1668.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.P6_Necro_Set_1_Helm.Sno)}; //拉斯玛的骨甲4件
  1669.             }
  1670.            
  1671.             if (pwr == 472273)
  1672.             {
  1673.                 yield return new BuffRule(451490) { IconIndex = 6, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true}; //死疫使者的裹布4件
  1674.             }
  1675.             if (pwr == 472274)
  1676.             {
  1677.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.P6_Necro_Set_4_Helm.Sno)}; //死疫使者的裹布6件
  1678.             }
  1679.            
  1680.  
  1681.             // ############ LEGENDARY GEM POWERS ##############
  1682.             // ################################################
  1683.             if (pwr == Hud.Sno.SnoPowers.BaneOfThePowerfulPrimary.Sno){
  1684.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false};
  1685.             }
  1686.             if (pwr == Hud.Sno.SnoPowers.BaneOfThePowerfulSecondary.Sno){
  1687.                 //nothing here
  1688.             }
  1689.             if (pwr == Hud.Sno.SnoPowers.BaneOfTheStrickenPrimary.Sno){
  1690.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Gem_018_x1.Sno)};     // ICD
  1691.                 //yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 0, ShowTimeLeft = false, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Gem_018_x1.Sno)};  // Equipped - not needed
  1692.             }
  1693.             if (pwr == Hud.Sno.SnoPowers.BaneOfTheStrickenSecondary.Sno){
  1694.                 //nothing here
  1695.             }
  1696.             if (pwr == Hud.Sno.SnoPowers.BaneOfTheTrappedPrimary.Sno){
  1697.                 //nothingh ere
  1698.             }
  1699.             if (pwr == Hud.Sno.SnoPowers.BaneOfTheTrappedSecondary.Sno){
  1700.                 //nothing here
  1701.             }
  1702.             if (pwr == Hud.Sno.SnoPowers.BoonOfTheHoarderPrimary.Sno){
  1703.                 //nothing here
  1704.             }
  1705.             if (pwr == Hud.Sno.SnoPowers.BoonOfTheHoarderSecondary.Sno){
  1706.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Gem_014_x1.Sno)};     // Active
  1707.             }  
  1708.             if (pwr == Hud.Sno.SnoPowers.BoyarskysChipPrimary.Sno){
  1709.                 //nothing here
  1710.             }
  1711.             if (pwr == Hud.Sno.SnoPowers.BoyarskysChipSecondary.Sno){
  1712.                 //nothing here
  1713.             }
  1714.             if (pwr == Hud.Sno.SnoPowers.EnforcerPrimary.Sno){}
  1715.             if (pwr == Hud.Sno.SnoPowers.EnforcerSecondary.Sno){}
  1716.             if (pwr == Hud.Sno.SnoPowers.EsotericAlterationPrimary.Sno){
  1717.                 //nothing here
  1718.             }
  1719.             if (pwr == Hud.Sno.SnoPowers.EsotericAlterationSecondary.Sno){
  1720.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Gem_016_x1.Sno)};    
  1721.             }
  1722.             if (pwr == Hud.Sno.SnoPowers.GemOfEasePrimary.Sno){
  1723.                 //nothing here
  1724.             }
  1725.             if (pwr == Hud.Sno.SnoPowers.GemOfEaseSecondary.Sno){
  1726.                 //nothing here
  1727.             }
  1728.             if (pwr == Hud.Sno.SnoPowers.GemOfEfficaciousToxinPrimary.Sno){
  1729.                 //nothing here
  1730.             }
  1731.             if (pwr == Hud.Sno.SnoPowers.GemOfEfficaciousToxinSecondary.Sno){
  1732.                 //nothing here
  1733.             }
  1734.             if (pwr == Hud.Sno.SnoPowers.GogokOfSwiftnessPrimary.Sno){
  1735.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};
  1736.                 //yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false,  UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Gem_008_x1.Sno)}; - not needed
  1737.                 //yield return new BuffRule(pwr) { IconIndex = 3, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false,  UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Gem_008_x1.Sno)}; - not needed
  1738.                 //yield return new BuffRule(pwr) { IconIndex = 4, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false,  UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Gem_008_x1.Sno)}; - not needed
  1739.             }
  1740.             if (pwr == Hud.Sno.SnoPowers.GogokOfSwiftnessSecondary.Sno){
  1741.                 //nothing here
  1742.            }
  1743.             if (pwr == Hud.Sno.SnoPowers.IceblinkPrimary.Sno){
  1744.                 //nothing here
  1745.             }
  1746.             if (pwr == Hud.Sno.SnoPowers.IceblinkSecondary.Sno){
  1747.                 //nothing here
  1748.             }
  1749.             if (pwr == Hud.Sno.SnoPowers.InvigoratingGemstonePrimary.Sno){
  1750.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Gem_009_x1.Sno)};
  1751.             }
  1752.                
  1753.             if (pwr == Hud.Sno.SnoPowers.InvigoratingGemstoneSecondary.Sno){}
  1754.             if (pwr == Hud.Sno.SnoPowers.MirinaeTeardropOfTheStarweaverPrimary.Sno){
  1755.                 //nothing here
  1756.             }
  1757.             if (pwr == Hud.Sno.SnoPowers.MirinaeTeardropOfTheStarweaverSecondary.Sno){
  1758.                 //nothing here
  1759.             }
  1760.             if (pwr == Hud.Sno.SnoPowers.MoltenWildebeestsGizzardPrimary.Sno){
  1761.                 //nothing here
  1762.             }
  1763.             if (pwr == Hud.Sno.SnoPowers.MoltenWildebeestsGizzardSecondary.Sno){
  1764.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Gem_017_x1.Sno)};         // Downtime
  1765.                 yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Gem_017_x1.Sno)};         // Shield is up
  1766.             }
  1767.             if (pwr == Hud.Sno.SnoPowers.MoratoriumPrimary.Sno){
  1768.                 //nothing here
  1769.             }
  1770.             if (pwr == Hud.Sno.SnoPowers.MoratoriumSecondary.Sno){
  1771.                 //nothing here
  1772.             }
  1773.             if (pwr == Hud.Sno.SnoPowers.MutilationGuardPrimary.Sno){
  1774.                 //nothing here
  1775.             }
  1776.             if (pwr == Hud.Sno.SnoPowers.MutilationGuardSecondary.Sno){
  1777.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = false, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Gem_019_x1.Sno)};        // Active
  1778.             }
  1779.             if (pwr == Hud.Sno.SnoPowers.PainEnhancerPrimary.Sno){
  1780.                 //nothing here
  1781.             }
  1782.             if (pwr == Hud.Sno.SnoPowers.PainEnhancerSecondary.Sno){
  1783.                 //nothing here
  1784.             }
  1785.             if (pwr == Hud.Sno.SnoPowers.RedSoulShardPrimary.Sno){}
  1786.             if (pwr == Hud.Sno.SnoPowers.RedSoulShardSecondary.Sno){}
  1787.             if (pwr == Hud.Sno.SnoPowers.SimplicitysStrengthPrimary.Sno){}
  1788.             if (pwr == Hud.Sno.SnoPowers.SimplicitysStrengthSecondary.Sno){}
  1789.             if (pwr == Hud.Sno.SnoPowers.TaegukPrimary.Sno){                    
  1790.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = true};         // Stacks
  1791.                 //yield return new BuffRule(pwr) { IconIndex = 2, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Gem_015_x1.Sno)};       // Channeling - not needed
  1792.             }
  1793.             if (pwr == Hud.Sno.SnoPowers.TaegukSecondary.Sno){
  1794.                 //nothing here
  1795.             }
  1796.             if (pwr == Hud.Sno.SnoPowers.WreathOfLightningPrimary.Sno){
  1797.                 yield return new BuffRule(pwr) { IconIndex = 1, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false, UseLegendaryItemTexture = Hud.Inventory.GetSnoItem(Hud.Sno.SnoItems.Unique_Gem_004_x1.Sno)};         // Active
  1798.             }
  1799.             if (pwr == Hud.Sno.SnoPowers.WreathOfLightningSecondary.Sno){
  1800.                 //nothing here
  1801.             }
  1802.             if (pwr == Hud.Sno.SnoPowers.ZeisStoneOfVengeancePrimary.Sno){
  1803.                 //nothing here
  1804.             }
  1805.             if (pwr == Hud.Sno.SnoPowers.ZeisStoneOfVengeanceSecondary.Sno){
  1806.                 //nothing here
  1807.             }
  1808.             //圣坛效果
  1809.             if (pwr == Hud.Sno.SnoPowers.Generic_PagesBuffElectrified.Sno){
  1810.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //电击塔
  1811.             }
  1812.             if (pwr == Hud.Sno.SnoPowers.Generic_PagesBuffElectrifiedTieredRift.Sno){
  1813.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //电击塔 大秘
  1814.             }
  1815.             if (pwr == Hud.Sno.SnoPowers.Generic_PagesBuffInfiniteCasting.Sno){
  1816.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //减耗塔
  1817.             }
  1818.             if (pwr == Hud.Sno.SnoPowers.Generic_PagesBuffInvulnerable.Sno){
  1819.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //护盾塔
  1820.             }
  1821.             if (pwr == Hud.Sno.SnoPowers.Generic_PagesBuffDamage.Sno){
  1822.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //威能塔
  1823.             }
  1824.             if (pwr == Hud.Sno.SnoPowers.Generic_PagesBuffRunSpeed.Sno){
  1825.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //速度塔
  1826.             }
  1827.             if (pwr == Hud.Sno.SnoPowers.Generic_ShrinePowerEnlightened.Sno){
  1828.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //启迪圣坛
  1829.             }
  1830.             if (pwr == 030477){
  1831.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //启迪圣坛2
  1832.             }
  1833.             if (pwr == Hud.Sno.SnoPowers.Generic_ShrinePowerFrenzied.Sno){
  1834.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //狂怒圣坛
  1835.             }
  1836.             if (pwr == 030479){
  1837.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //狂怒圣坛2
  1838.             }
  1839.             if (pwr == Hud.Sno.SnoPowers.Generic_ShrinePowerFortune.Sno){
  1840.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //幸运圣坛
  1841.             }
  1842.             if (pwr == 030478){
  1843.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //幸运圣坛2
  1844.             }
  1845.             if (pwr == 260349){
  1846.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //增效圣坛
  1847.             }
  1848.             if (pwr == Hud.Sno.SnoPowers.Generic_ShrinePowerBlessed.Sno){
  1849.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //祝福圣坛
  1850.             }
  1851.             if (pwr == 030476){
  1852.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //祝福圣坛2
  1853.             }
  1854.             if (pwr == Hud.Sno.SnoPowers.Generic_ShrineDesecratedHoarder.Sno){
  1855.                 yield return new BuffRule(pwr) { IconIndex = 0, MinimumIconCount = 1, ShowTimeLeft = true, ShowStacks = false}; //飞驰圣坛
  1856.             }
  1857.         }
  1858.     }
  1859. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement