public void PaintWorld(WorldLayer layer)
        {
            var shrines = Hud.Game.Shrines.Where(x => !x.IsDisabled && !x.IsOperated && x.DisplayOnOverlay && (x.Type != ShrineType.HealingWell) && (x.Type != ShrineType.PoolOfReflection));

            foreach (var actor in shrines)
            {
                switch (actor.SnoActor.Sno)
                {
                case (ActorSnoEnum)225025:
                case (ActorSnoEnum)176074:
                    BlessedShrineDecorator.Paint(layer, actor, actor.FloorCoordinate, actor.SnoActor.NameLocalized);
                    if (EnableSpeak && (actor.LastSpeak == null) && Hud.Sound.LastSpeak.TimerTest(2000) && BlessedSpeak != "")
                    {
                        if (BlessedSpeak == "默认")
                        {
                            Hud.Sound.Speak(actor.SnoActor.NameLocalized);
                        }
                        else
                        {
                            Hud.Sound.Speak(BlessedSpeak);
                        }
                        actor.LastSpeak = Hud.Time.CreateAndStartWatch();
                    }
                    break;

                case (ActorSnoEnum)225262:
                case (ActorSnoEnum)176075:
                    EnlightenedShrineDecorator.Paint(layer, actor, actor.FloorCoordinate, actor.SnoActor.NameLocalized);
                    if (EnableSpeak && (actor.LastSpeak == null) && Hud.Sound.LastSpeak.TimerTest(2000) && EnlightenedSpeak != "")
                    {
                        if (EnlightenedSpeak == "默认")
                        {
                            Hud.Sound.Speak(actor.SnoActor.NameLocalized);
                        }
                        else
                        {
                            Hud.Sound.Speak(EnlightenedSpeak);
                        }
                        actor.LastSpeak = Hud.Time.CreateAndStartWatch();
                    }
                    break;

                case (ActorSnoEnum)225263:
                case (ActorSnoEnum)176076:
                    FortuneShrineDecorator.Paint(layer, actor, actor.FloorCoordinate, actor.SnoActor.NameLocalized);
                    if (EnableSpeak && (actor.LastSpeak == null) && Hud.Sound.LastSpeak.TimerTest(2000) && FortuneSpeak != "")
                    {
                        if (FortuneSpeak == "默认")
                        {
                            Hud.Sound.Speak(actor.SnoActor.NameLocalized);
                        }
                        else
                        {
                            Hud.Sound.Speak(FortuneSpeak);
                        }
                        actor.LastSpeak = Hud.Time.CreateAndStartWatch();
                    }
                    break;

                case (ActorSnoEnum)225266:
                case (ActorSnoEnum)176077:
                    FrenziedShrineDecorator.Paint(layer, actor, actor.FloorCoordinate, actor.SnoActor.NameLocalized);
                    if (EnableSpeak && (actor.LastSpeak == null) && Hud.Sound.LastSpeak.TimerTest(2000) && FrenziedSpeak != "")
                    {
                        if (FrenziedSpeak == "默认")
                        {
                            Hud.Sound.Speak(actor.SnoActor.NameLocalized);
                        }
                        else
                        {
                            Hud.Sound.Speak(FrenziedSpeak);
                        }
                        actor.LastSpeak = Hud.Time.CreateAndStartWatch();
                    }
                    break;

                case (ActorSnoEnum)260342:
                case (ActorSnoEnum)260346:
                    FleetingShrineDecorator.Paint(layer, actor, actor.FloorCoordinate, actor.SnoActor.NameLocalized);
                    if (EnableSpeak && (actor.LastSpeak == null) && Hud.Sound.LastSpeak.TimerTest(2000) && FleetingSpeak != "")
                    {
                        if (FleetingSpeak == "默认")
                        {
                            Hud.Sound.Speak(actor.SnoActor.NameLocalized);
                        }
                        else
                        {
                            Hud.Sound.Speak(FleetingSpeak);
                        }
                        actor.LastSpeak = Hud.Time.CreateAndStartWatch();
                    }
                    break;

                case (ActorSnoEnum)260343:
                case (ActorSnoEnum)260347:
                    EmpoweredShrineDecorator.Paint(layer, actor, actor.FloorCoordinate, actor.SnoActor.NameLocalized);
                    if (EnableSpeak && (actor.LastSpeak == null) && Hud.Sound.LastSpeak.TimerTest(2000) && EmpoweredSpeak != "")
                    {
                        if (EmpoweredSpeak == "默认")
                        {
                            Hud.Sound.Speak(actor.SnoActor.NameLocalized);
                        }
                        else
                        {
                            Hud.Sound.Speak(EmpoweredSpeak);
                        }
                        actor.LastSpeak = Hud.Time.CreateAndStartWatch();
                    }
                    break;

                case (ActorSnoEnum)434409:
                case (ActorSnoEnum)269349:
                    BanditShrineDecorator.Paint(layer, actor, actor.FloorCoordinate, actor.SnoActor.NameLocalized);
                    if (EnableSpeak && (actor.LastSpeak == null) && Hud.Sound.LastSpeak.TimerTest(2000) && BanditSpeak != "")
                    {
                        if (BanditSpeak == "默认")
                        {
                            Hud.Sound.Speak(actor.SnoActor.NameLocalized);
                        }
                        else
                        {
                            Hud.Sound.Speak(BanditSpeak);
                        }
                        actor.LastSpeak = Hud.Time.CreateAndStartWatch();
                    }
                    break;

                case (ActorSnoEnum)330695:
                    PowerPylonDecorator.Paint(layer, actor, actor.FloorCoordinate, actor.SnoActor.NameLocalized);
                    if (EnableSpeak && (actor.LastSpeak == null) && Hud.Sound.LastSpeak.TimerTest(2000) && PowerSpeak != "")
                    {
                        if (PowerSpeak == "默认")
                        {
                            Hud.Sound.Speak(actor.SnoActor.NameLocalized);
                        }
                        else
                        {
                            Hud.Sound.Speak(PowerSpeak);
                        }
                        actor.LastSpeak = Hud.Time.CreateAndStartWatch();
                    }
                    break;

                case (ActorSnoEnum)330696:
                case (ActorSnoEnum)398654:
                    ConduitPylonDecorator.Paint(layer, actor, actor.FloorCoordinate, actor.SnoActor.NameLocalized);
                    if (EnableSpeak && (actor.LastSpeak == null) && Hud.Sound.LastSpeak.TimerTest(2000) && ConduitSpeak != "")
                    {
                        if (ConduitSpeak == "默认")
                        {
                            Hud.Sound.Speak(actor.SnoActor.NameLocalized);
                        }
                        else
                        {
                            Hud.Sound.Speak(ConduitSpeak);
                        }
                        actor.LastSpeak = Hud.Time.CreateAndStartWatch();
                    }
                    break;

                case (ActorSnoEnum)330697:
                    ChannelingPylonDecorator.Paint(layer, actor, actor.FloorCoordinate, actor.SnoActor.NameLocalized);
                    if (EnableSpeak && (actor.LastSpeak == null) && Hud.Sound.LastSpeak.TimerTest(2000) && ChannelingSpeak != "")
                    {
                        if (ChannelingSpeak == "默认")
                        {
                            Hud.Sound.Speak(actor.SnoActor.NameLocalized);
                        }
                        else
                        {
                            Hud.Sound.Speak(ChannelingSpeak);
                        }
                        actor.LastSpeak = Hud.Time.CreateAndStartWatch();
                    }
                    break;

                case (ActorSnoEnum)330698:
                    ShieldPylonDecorator.Paint(layer, actor, actor.FloorCoordinate, actor.SnoActor.NameLocalized);
                    if (EnableSpeak && (actor.LastSpeak == null) && Hud.Sound.LastSpeak.TimerTest(2000) && ShieldSpeak != "")
                    {
                        if (ShieldSpeak == "默认")
                        {
                            Hud.Sound.Speak(actor.SnoActor.NameLocalized);
                        }
                        else
                        {
                            Hud.Sound.Speak(ShieldSpeak);
                        }
                        actor.LastSpeak = Hud.Time.CreateAndStartWatch();
                    }
                    break;

                case (ActorSnoEnum)330699:
                    SpeedPylonDecorator.Paint(layer, actor, actor.FloorCoordinate, actor.SnoActor.NameLocalized);
                    if (EnableSpeak && (actor.LastSpeak == null) && Hud.Sound.LastSpeak.TimerTest(2000) && SpeedSpeak != "")
                    {
                        if (SpeedSpeak == "默认")
                        {
                            Hud.Sound.Speak(actor.SnoActor.NameLocalized);
                        }
                        else
                        {
                            Hud.Sound.Speak(SpeedSpeak);
                        }
                        actor.LastSpeak = Hud.Time.CreateAndStartWatch();
                    }
                    break;
                }
            }


            var healingWells = Hud.Game.Shrines.Where(x => !x.IsDisabled && !x.IsOperated && x.DisplayOnOverlay && (x.Type == ShrineType.HealingWell));

            foreach (var actor in healingWells)
            {
                HealingWellDecorator.ToggleDecorators <GroundLabelDecorator>(!actor.IsOnScreen); // do not display ground labels when the actor is on the screen
                HealingWellDecorator.Paint(layer, actor, actor.FloorCoordinate, actor.SnoActor.NameLocalized);
                if (EnableSpeak && (actor.LastSpeak == null) && Hud.Sound.LastSpeak.TimerTest(2000) && HealingSpeak != "")
                {
                    if (HealingSpeak == "默认")
                    {
                        Hud.Sound.Speak(actor.SnoActor.NameLocalized);
                    }
                    else
                    {
                        Hud.Sound.Speak(HealingSpeak);
                    }
                    actor.LastSpeak = Hud.Time.CreateAndStartWatch();
                }
            }

            var poolOfReflections = Hud.Game.Shrines.Where(x => !x.IsDisabled && !x.IsOperated && x.DisplayOnOverlay && (x.Type == ShrineType.PoolOfReflection));

            foreach (var actor in poolOfReflections)
            {
                PoolOfReflectionDecorator.ToggleDecorators <GroundLabelDecorator>(!actor.IsOnScreen); // do not display ground labels when the actor is on the screen
                PoolOfReflectionDecorator.Paint(layer, actor, actor.FloorCoordinate, actor.SnoActor.NameLocalized);
                if (EnableSpeak && (actor.LastSpeak == null) && Hud.Sound.LastSpeak.TimerTest(2000) && PoolSpeak != "")
                {
                    if (PoolSpeak == "默认")
                    {
                        Hud.Sound.Speak(actor.SnoActor.NameLocalized);
                    }
                    else
                    {
                        Hud.Sound.Speak(PoolSpeak);
                    }
                    actor.LastSpeak = Hud.Time.CreateAndStartWatch();
                }
            }

            var riftPylonSpawnPoints = Hud.Game.Actors.Where(x => x.SnoActor.Sno == ActorSnoEnum._markerlocation_tieredriftpylon);

            foreach (var actor in riftPylonSpawnPoints)
            {
                PossibleRiftPylonDecorator.Paint(layer, actor, actor.FloorCoordinate, "??塔");
                if (EnableSpeak && (actor.LastSpeak == null) && Hud.Sound.LastSpeak.TimerTest(2000) && PossibleRiftPylonSpeak != "")
                {
                    Hud.Sound.Speak(PossibleRiftPylonSpeak);
                    actor.LastSpeak = Hud.Time.CreateAndStartWatch();
                }
            }
        }
Example #2
0
        public override void PaintWorld(WorldLayer layer)
        {
            var ShrineName = string.Empty;

            if (UseCustomColors == true || UseCustomNames == true)
            {
                var shrines = Hud.Game.Shrines;
                foreach (var shrine in shrines)
                {
                    switch (shrine.Type)
                    {
                    case ShrineType.BlessedShrine:
                        if (UseCustomNames == true)
                        {
                            ShrineName = BlessedShrineName;
                        }
                        else
                        {
                            ShrineName = shrine.SnoActor.NameLocalized;
                        }
                        BlessedShrineDecorator.Paint(layer, shrine, shrine.FloorCoordinate, ShrineName);
                        break;

                    case ShrineType.EnlightenedShrine:
                        if (UseCustomNames == true)
                        {
                            ShrineName = EnlightenedShrineName;
                        }
                        else
                        {
                            ShrineName = shrine.SnoActor.NameLocalized;
                        }
                        EnlightenedShrineDecorator.Paint(layer, shrine, shrine.FloorCoordinate, ShrineName);
                        break;

                    case ShrineType.FortuneShrine:
                        if (UseCustomNames == true)
                        {
                            ShrineName = FortuneShrineName;
                        }
                        else
                        {
                            ShrineName = shrine.SnoActor.NameLocalized;
                        }
                        FortuneShrineDecorator.Paint(layer, shrine, shrine.FloorCoordinate, ShrineName);
                        break;

                    case ShrineType.FrenziedShrine:
                        if (UseCustomNames == true)
                        {
                            ShrineName = FrenziedShrineName;
                        }
                        else
                        {
                            ShrineName = shrine.SnoActor.NameLocalized;
                        }
                        FrenziedShrineDecorator.Paint(layer, shrine, shrine.FloorCoordinate, ShrineName);
                        break;

                    case ShrineType.EmpoweredShrine:
                        if (UseCustomNames == true)
                        {
                            ShrineName = EmpoweredShrineName;
                        }
                        else
                        {
                            ShrineName = shrine.SnoActor.NameLocalized;
                        }
                        EmpoweredShrineDecorator.Paint(layer, shrine, shrine.FloorCoordinate, ShrineName);
                        break;

                    case ShrineType.FleetingShrine:
                        if (UseCustomNames == true)
                        {
                            ShrineName = FleetingShrineName;
                        }
                        else
                        {
                            ShrineName = shrine.SnoActor.NameLocalized;
                        }
                        FleetingShrineDecorator.Paint(layer, shrine, shrine.FloorCoordinate, ShrineName);
                        break;

                    case ShrineType.PowerPylon:
                        if (UseCustomNames == true)
                        {
                            ShrineName = PowerPylonName;
                        }
                        else
                        {
                            ShrineName = shrine.SnoActor.NameLocalized;
                        }
                        PowerPylonDecorator.Paint(layer, shrine, shrine.FloorCoordinate, ShrineName);
                        break;

                    case ShrineType.ConduitPylon:
                        if (UseCustomNames == true)
                        {
                            ShrineName = ConduitPylonName;
                        }
                        else
                        {
                            ShrineName = shrine.SnoActor.NameLocalized;
                        }
                        ConduitPylonDecorator.Paint(layer, shrine, shrine.FloorCoordinate, ShrineName);
                        break;

                    case ShrineType.ChannelingPylon:
                        if (UseCustomNames == true)
                        {
                            ShrineName = ChannelingPylonName;
                        }
                        else
                        {
                            ShrineName = shrine.SnoActor.NameLocalized;
                        }
                        ChannelingPylonDecorator.Paint(layer, shrine, shrine.FloorCoordinate, ShrineName);
                        break;

                    case ShrineType.ShieldPylon:
                        if (UseCustomNames == true)
                        {
                            ShrineName = ShieldPylonName;
                        }
                        else
                        {
                            ShrineName = shrine.SnoActor.NameLocalized;
                        }
                        ShieldPylonDecorator.Paint(layer, shrine, shrine.FloorCoordinate, ShrineName);
                        break;

                    case ShrineType.SpeedPylon:
                        if (UseCustomNames == true)
                        {
                            ShrineName = SpeedPylonName;
                        }
                        else
                        {
                            ShrineName = shrine.SnoActor.NameLocalized;
                        }
                        SpeedPylonDecorator.Paint(layer, shrine, shrine.FloorCoordinate, ShrineName);
                        break;

                    case ShrineType.BanditShrine:
                        if (UseCustomNames == true)
                        {
                            ShrineName = BanditShrineName;
                        }
                        else
                        {
                            ShrineName = shrine.SnoActor.NameLocalized;
                        }
                        BanditShrineDecorator.Paint(layer, shrine, shrine.FloorCoordinate, ShrineName);
                        break;
                    }
                }
            }
        }