From 06ca72b1e3bd5c7e5a7dc4d6024ede41999ef352 Mon Sep 17 00:00:00 2001 From: WarrentyExpired Date: Fri, 28 Aug 2026 21:29:04 -0400 Subject: [PATCH] #W# Change: Mobs are hidden until player has line of site. --- Projects/UOContent/Mobiles/BaseCreature.cs | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/Projects/UOContent/Mobiles/BaseCreature.cs b/Projects/UOContent/Mobiles/BaseCreature.cs index f64a289f4..c7ed1b5da 100644 --- a/Projects/UOContent/Mobiles/BaseCreature.cs +++ b/Projects/UOContent/Mobiles/BaseCreature.cs @@ -252,6 +252,8 @@ namespace Server.Mobiles private bool _summoned; + private bool _isLosHidden; + private bool m_bTamable; private int m_ColdResistance; @@ -3656,6 +3658,45 @@ namespace Server.Mobiles { var tc = Core.TickCount; + if (!Controlled && !Summoned && Region is Server.Regions.DungeonRegion) + { + if (Combatant == null) + { + bool someoneSeesMe = false; + + foreach (Mobile m in Map.GetMobilesInRange(Location, 18)) + { + if (m is PlayerMobile { Alive: true, AccessLevel: AccessLevel.Player } player) + { + if (player.InLOS(this)) + { + someoneSeesMe = true; + break; + } + } + } + + if (!someoneSeesMe && !Hidden) + { + _isLosHidden = true; + Hidden = true; + CantWalk = true; + } + else if (someoneSeesMe && Hidden && _isLosHidden) + { + _isLosHidden = false; + Hidden = false; + CantWalk = false; + } + } + else if (Hidden && _isLosHidden) + { + _isLosHidden = false; + Hidden = false; + CantWalk = false; + } + } + if (EnableRummaging && CanRummageCorpses && !Summoned && !Controlled && tc - m_NextRummageTime >= 0) { double min, max;