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(); } } }
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; } } } }