public void PaintWorld(WorldLayer layer)
        {
            var actors = Hud.Game.Actors;

            foreach (var actor in actors)
            {
                /* ---  Skills where "summoned_by_me" works  --- */

                // if (actor.SummonerAcdDynamicId == Hud.Game.Me.SummonerId) // summoned_by_me
                // {
                // switch (actor.SnoActor.Sno)
                // {
                // Empty switch block //

                // }
                // }

                /* ---  Skills where "summoned_by_me" does not work  --- */

                switch (actor.SnoActor.Sno)
                {
                // Inner Sanctuary
                // All runes EXCEPT Sanctified Ground (13y? or 11y? 6s)
                case ActorSnoEnum._x1_monk_innersanctuaryrune_forbidden_proxy /*320136*/: // // X1_Monk_innerSanctuaryRune_forbidden_proxy
                case ActorSnoEnum._x1_monk_innersanctuaryrune_intervene_proxy /*319583*/: // // X1_Monk_innerSanctuaryRune_intervene_proxy
                case ActorSnoEnum._x1_monk_innersanctuary_proxy /*319337*/:               // // X1_Monk_innerSanctuary_proxy
                case ActorSnoEnum._x1_monk_innersanctuaryrune_healing_proxy /*320135*/:   // // X1_Monk_innerSanctuaryRune_healing_proxy
                case ActorSnoEnum._x1_monk_innersanctuaryrune_protect_proxy /*319776*/:   // // X1_Monk_innerSanctuaryRune_protect_proxy
                    InnerSanctuaryDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    break;

                case ActorSnoEnum._monk_innersanctuaryrune_duration_proxy /*149848*/:    // Sanctified Ground, rune ?? // Monk_innerSanctuaryRune_duration_proxy
                    InnerSanctuarySgDeco.Paint(layer, actor, actor.FloorCoordinate, null);
                    break;

                // Sunwuko Set Exploding Decoy ?
                case ActorSnoEnum._p2_monk_female_lethaldecoy_cold /*426083*/:      //p2_Monk_Female_lethalDecoy_cold
                case ActorSnoEnum._p2_monk_female_lethaldecoy_fire /*426074*/:      //p2_Monk_Female_lethalDecoy_fire
                case ActorSnoEnum._p2_monk_female_lethaldecoy_lightning /*426095*/: //p2_Monk_Female_lethalDecoy_lightning
                case ActorSnoEnum._p2_monk_female_lethaldecoy_phys /*426110*/:      //p2_Monk_Female_lethalDecoy_phys
                case ActorSnoEnum._p2_monk_male_lethaldecoy_cold /*426092*/:        //p2_Monk_Male_LethalDecoy_cold
                // case 426091:	//p2_Monk_Male_lethalDecoy_cold_model
                case ActorSnoEnum._p2_monk_male_lethaldecoy_fire /*141773*/:        //p2_Monk_Male_lethalDecoy_fire
                // case 426081:	//p2_Monk_Male_lethalDecoy_fire_model
                case ActorSnoEnum._p2_monk_male_lethaldecoy_lightning /*426107*/:   //p2_Monk_Male_LethalDecoy_lightning
                // case 426106:	//p2_Monk_Male_lethalDecoy_lightning_model
                case ActorSnoEnum._p2_monk_male_lethaldecoy_phys /*426121*/:        //p2_Monk_Male_LethalDecoy_phys
                // case 426123:	//p2_Monk_Male_lethalDecoy_phys_model
                case ActorSnoEnum._x1_monk_female_decoy /*363236*/:                 // x1_Monk_Female_Decoy // old
                case ActorSnoEnum._x1_monk_male_decoy /*363237*/:                   // x1_Monk_Male_Decoy // old
                    SunwukoDecoyDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    break;

                // Draw circles around Monk player //////////////////////

                case ActorSnoEnum._monk_female /*4717*/:  // Female
                case ActorSnoEnum._monk_male /*4721*/:    // Male
                {
                    // Cyclone Strike
                    // 223473 // Cyclone Strike SNO
                    var Skill_CS = Hud.Game.Me.Powers.UsedMonkPowers.CycloneStrike;
                    if (Hud.Game.IsInTown)
                    {
                        return;                            // only out of town
                    }
                    if (Skill_CS != null)
                    {
                        if (Skill_CS.Rune == 1)         // Implosion rune (34y)
                        {
                            CycloneStrikeImpDeco.Paint(layer, actor, actor.FloorCoordinate, null);
                        }
                        else         // All runes EXCEPT Implosion (24y)
                        {
                            CycloneStrikeDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                        }
                    }

                    // Sweeping Wind
                    // 96090 // Sweeping Wind SNO
                    var Skill_SW = Hud.Game.Me.Powers.UsedMonkPowers.SweepingWind;
                    if (Hud.Game.IsInTown)
                    {
                        return;                            // only out of town
                    }
                    if (Skill_SW != null)
                    {
                        if (Skill_SW.Rune == 1)         // Firestorm rune (14y)
                        {
                            SweepingWindFsDeco.Paint(layer, actor, actor.FloorCoordinate, null);
                        }
                        else         // All runes EXCEPT Firestorm (10y)
                        {
                            SweepingWindDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                        }
                    }
                }
                break;
                }
            }
        }
        public void PaintWorld(WorldLayer layer)
        {
            if ((Hud.Game.MapMode == MapMode.WaypointMap) || (Hud.Game.MapMode == MapMode.ActMap) || (Hud.Game.MapMode == MapMode.Map))
            {
                return;
            }
            var actors = Hud.Game.Actors;

            foreach (var actor in actors)
            {
                if (actor.SummonerAcdDynamicId == Hud.Game.Me.SummonerId)
                {
                    switch (actor.SnoActor.Sno)
                    {
                    case (ActorSnoEnum)81230:     // light
                    case (ActorSnoEnum)81232:     // arcane
                    case (ActorSnoEnum)325807:
                    case (ActorSnoEnum)83024:
                        HydraDecorator.Paint(layer, actor, actor.FloorCoordinate.Offset(2f, 2f, 0), null);
                        break;

                    case (ActorSnoEnum)83959:     // mammoth
                        HydraDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                        break;

                    case (ActorSnoEnum)141402:
                    case (ActorSnoEnum)150025:
                    case (ActorSnoEnum)150024:
                    case (ActorSnoEnum)168815:
                    case (ActorSnoEnum)150026:
                    case (ActorSnoEnum)150027:
                        if (!Hud.Game.Me.Powers.BuffIsActive(208610, 0))
                        {
                            //if (Sentry == true) SentryDecorator.Paint(layer, actor, actor.FloorCoordinate, null); SentryMapDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                            if (SentryTimer == true)
                            {
                                SentryTimerDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                            }
                        }
                        else
                        {
                            if (SentryTimer == true)
                            {
                                SentryWithCustomEngineeringTimerDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                            }
                        }
                        break;

                    case (ActorSnoEnum)107705:
                    case (ActorSnoEnum)106584:
                    {
                        var skill = Hud.Game.Me.Powers.UsedSkills.Where(x => x.SnoPower.Sno == 106237).FirstOrDefault();
                        if (skill != null && SpiritWalkTimer == true)
                        {
                            if (skill.Rune == 1)
                            {
                                SpiritWalkWithJauntTimerDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                            }
                            else
                            {
                                SpiritWalkTimerDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                            }
                        }
                    }
                    break;

                    case (ActorSnoEnum)181880:
                        if (SpiritBarragePhantasm == true)
                        {
                            SpiritBarragePhantasmDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                        }
                        if (SpiritBarragePhantasmTimer == true)
                        {
                            SpiritBarragePhantasmTimerDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                        }
                        break;
                    }
                }
                switch (actor.SnoActor.Sno)
                {
                case (ActorSnoEnum)141402:
                case (ActorSnoEnum)150025:
                case (ActorSnoEnum)150024:
                case (ActorSnoEnum)168815:
                    if (Sentry == true)
                    {
                        SentryMapDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    break;

                case (ActorSnoEnum)150026:
                case (ActorSnoEnum)150027:
                    if (Sentry == true)
                    {
                        SentryDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    SentryMapDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    break;

                case (ActorSnoEnum)6553:
                case (ActorSnoEnum)112697:
                case (ActorSnoEnum)112572:
                case (ActorSnoEnum)112585:
                case (ActorSnoEnum)112808:
                case (ActorSnoEnum)112560:
                    if (SlowTime == true)
                    {
                        SlowTimeDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    if (SlowTimeTimer == true)
                    {
                        SlowTimeTimerDecorator.Paint(layer, actor, actor.FloorCoordinate.Offset(0, 0, 5.2f), null);
                    }
                    break;

                case (ActorSnoEnum)341381:
                    if (BlackHole == true)
                    {
                        BlackHoleSupermassiveDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    if (BlackHoleTimer == true)
                    {
                        BlackHoleTimerDecorator.Paint(layer, actor, actor.FloorCoordinate.Offset(0, 0, 5.2f), null);
                    }
                    break;

                case (ActorSnoEnum)336410:
                case (ActorSnoEnum)341426:
                case (ActorSnoEnum)341411:
                case (ActorSnoEnum)341396:
                case (ActorSnoEnum)341441:
                    if (BlackHole == true)
                    {
                        BlackHoleDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    if (BlackHoleTimer == true)
                    {
                        BlackHoleTimerDecorator.Paint(layer, actor, actor.FloorCoordinate.Offset(0, 0, 5.2f), null);
                    }
                    break;

                case (ActorSnoEnum)348308:
                case (ActorSnoEnum)356987:
                case (ActorSnoEnum)358018:
                case (ActorSnoEnum)358653:
                    if (Piranhas == true)
                    {
                        PiranhasDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    if (PiranhasTimer == true)
                    {
                        PiranhasTimerDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    break;

                case (ActorSnoEnum)357846:
                    if (Piranhas == true)
                    {
                        PiranhasDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    if (PiranhasTimer == true)
                    {
                        PiranhasPiranhadoTimerDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    break;

                case (ActorSnoEnum)320135:
                case (ActorSnoEnum)320136:
                case (ActorSnoEnum)319583:
                case (ActorSnoEnum)319776:
                case (ActorSnoEnum)319337:
                    if (InnerSanctuary == true)
                    {
                        InnerSanctuaryDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    if (InnerSanctuaryTimer == true)
                    {
                        InnerSanctuaryTimerDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    break;

                case (ActorSnoEnum)230674:
                    if (MarkedForDeath == true)
                    {
                        MarkedForDeathDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    if (MarkedForDeathTimer == true)
                    {
                        MarkedForDeathTimerDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    break;

                case (ActorSnoEnum)69308:
                case (ActorSnoEnum)105958:
                case (ActorSnoEnum)105953:
                case (ActorSnoEnum)105957:
                case (ActorSnoEnum)105955:
                case (ActorSnoEnum)105956:
                    if (GraspoftheDead == true)
                    {
                        GraspoftheDeadDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    if (GraspoftheDeadTimer == true)
                    {
                        GraspoftheDeadTimerDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    break;

                case (ActorSnoEnum)117574:
                    if (BigBadVoodoo == true)
                    {
                        BigBadVoodooWithJungleDrumsDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    if (BigBadVoodooTimer == true)
                    {
                        BigBadVoodooWithJungleDrumsTimerDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    break;

                case (ActorSnoEnum)182276:
                case (ActorSnoEnum)182278:
                case (ActorSnoEnum)182271:
                case (ActorSnoEnum)182283:
                    if (BigBadVoodoo == true)
                    {
                        BigBadVoodooDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    if (BigBadVoodooTimer == true)
                    {
                        BigBadVoodooTimerDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    break;

                case (ActorSnoEnum)217142:
                    if (Wizard_Meteor == true)
                    {
                        Wizard_Meteor_Pending_costDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    if (Wizard_MeteorTimer == true)
                    {
                        Wizard_Meteor_Pending_costTimerDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    break;

                case (ActorSnoEnum)86790:
                    if (Wizard_Meteor == true)
                    {
                        Wizard_Meteor_PendingDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    if (Wizard_MeteorTimer == true)
                    {
                        Wizard_Meteor_PendingTimerDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    break;

                case (ActorSnoEnum)217457:
                    if (Wizard_Meteor == true)
                    {
                        Wizard_Meteor_Pending_longerDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    if (Wizard_MeteorTimer == true)
                    {
                        Wizard_Meteor_Pending_longerTimerDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    break;

                case (ActorSnoEnum)92030:
                    if (Wizard_Meteor == true)
                    {
                        Wizard_Meteor_Pending_frostDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    if (Wizard_MeteorTimer == true)
                    {
                        Wizard_Meteor_Pending_frostTimerDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    break;

                case (ActorSnoEnum)91440:
                    if (Wizard_Meteor == true)
                    {
                        Wizard_Meteor_Pending_RuneDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    if (Wizard_MeteorTimer == true)
                    {
                        Wizard_Meteor_Pending_RuneTimerDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    break;

                case (ActorSnoEnum)215853:
                    if (Wizard_Meteor == true)
                    {
                        Wizard_Meteor_Pending_addDamageDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    if (Wizard_MeteorTimer == true)
                    {
                        Wizard_Meteor_Pending_addDamageTimerDecorator.Paint(layer, actor, actor.FloorCoordinate, null);
                    }
                    break;
                }
            }
        }