diff --git a/Projects/Server/Item.cs b/Projects/Server/Item.cs index 2f38943de..36f45c5a5 100644 --- a/Projects/Server/Item.cs +++ b/Projects/Server/Item.cs @@ -3422,10 +3422,8 @@ namespace Server public virtual void ScissorHelper(Mobile from, Item newItem, int amountPerOldItem, bool carryHue) { - var amount = Amount; - - if (amount > 60000 / amountPerOldItem) // let's not go over 60000 - amount = 60000 / amountPerOldItem; + // let's not go over 60000 + var amount = Math.Min(Amount, 60000 / amountPerOldItem); Amount -= amount; diff --git a/Projects/Server/Mobile.cs b/Projects/Server/Mobile.cs index 89d270196..dd2a1c000 100644 --- a/Projects/Server/Mobile.cs +++ b/Projects/Server/Mobile.cs @@ -2929,10 +2929,12 @@ namespace Server { var name = Name ?? string.Empty; - var prefix = ""; + string prefix; if (ShowFameTitle && (m_Player || m_Body.IsHuman) && m_Fame >= 10000) prefix = m_Female ? "Lady" : "Lord"; + else + prefix = ""; var suffix = ""; @@ -2950,27 +2952,22 @@ namespace Server list.Add(1050045, "{0} \t{1}\t {2}", prefix, name, suffix); // ~1_PREFIX~~2_NAME~~3_SUFFIX~ - if (guild != null && (m_DisplayGuildTitle || (m_Player && guild.Type != GuildType.Regular))) + if (guild != null && (m_DisplayGuildTitle || m_Player && guild.Type != GuildType.Regular)) { - string type; - - if (guild.Type >= 0 && (int)guild.Type < m_GuildTypes.Length) - type = m_GuildTypes[(int)guild.Type]; - else - type = ""; + var type = guild.Type >= 0 && (int)guild.Type < m_GuildTypes.Length ? m_GuildTypes[(int)guild.Type] : ""; var title = GuildTitle?.Trim() ?? ""; - if (NewGuildDisplay && title.Length > 0) + if (title.Length > 0) { - list.Add("{0}, {1}", Utility.FixHtml(title), Utility.FixHtml(guild.Name)); + if (NewGuildDisplay) + list.Add("{0}, {1}", Utility.FixHtml(title), Utility.FixHtml(guild.Name)); + else + list.Add("{0}, {1} Guild{2}", Utility.FixHtml(title), Utility.FixHtml(guild.Name), type); } else { - if (title.Length > 0) - list.Add("{0}, {1} Guild{2}", Utility.FixHtml(title), Utility.FixHtml(guild.Name), type); - else - list.Add(Utility.FixHtml(guild.Name)); + list.Add(Utility.FixHtml(guild.Name)); } } } @@ -2990,7 +2987,7 @@ namespace Server private void UpdateAggrExpire() { - if (Deleted || (Aggressors.Count == 0 && Aggressed.Count == 0)) + if (Deleted || Aggressors.Count == 0 && Aggressed.Count == 0) { StopAggrExpire(); } @@ -3171,7 +3168,7 @@ namespace Server public bool InLOS(object target) => !Deleted && m_Map != null && - (target == this || m_AccessLevel > AccessLevel.Player || (target is Item item && item.RootParent == this) + (target == this || m_AccessLevel > AccessLevel.Player || target is Item item && item.RootParent == this || m_Map.LineOfSight(this, target)); public bool InLOS(Point3D target) => @@ -3708,7 +3705,7 @@ namespace Server var item = oldSector.Items[i]; if (item.AtWorldPoint(oldX, oldY) && - (item.Z == oldZ || (item.Z + item.ItemData.Height > oldZ && oldZ + 15 > item.Z)) && + (item.Z == oldZ || item.Z + item.ItemData.Height > oldZ && oldZ + 15 > item.Z) && !item.OnMoveOff(this)) return false; } @@ -3726,7 +3723,7 @@ namespace Server var item = newSector.Items[i]; if (item.AtWorldPoint(x, y) && - (item.Z == newZ || (item.Z + item.ItemData.Height > newZ && newZ + 15 > item.Z)) && + (item.Z == newZ || item.Z + item.ItemData.Height > newZ && newZ + 15 > item.Z) && !item.OnMoveOver(this)) return false; } @@ -3749,11 +3746,11 @@ namespace Server var item = oldSector.Items[i]; if (item.AtWorldPoint(oldX, oldY) && - (item.Z == oldZ || (item.Z + item.ItemData.Height > oldZ && oldZ + 15 > item.Z)) && + (item.Z == oldZ || item.Z + item.ItemData.Height > oldZ && oldZ + 15 > item.Z) && !item.OnMoveOff(this)) return false; if (item.AtWorldPoint(x, y) && - (item.Z == newZ || (item.Z + item.ItemData.Height > newZ && newZ + 15 > item.Z)) && + (item.Z == newZ || item.Z + item.ItemData.Height > newZ && newZ + 15 > item.Z) && !item.OnMoveOver(this)) return false; } @@ -4837,7 +4834,7 @@ namespace Server } public virtual bool CheckHearsMutatedSpeech(Mobile m, object context) => - context != m_GhostMutateContext || (m.Alive && !m.CanHearGhosts); + context != m_GhostMutateContext || m.Alive && !m.CanHearGhosts; private void AddSpeechItemsFrom(List list, Container cont) { @@ -4921,7 +4918,7 @@ namespace Server foreach (var o in eable) if (o is Mobile heard) { - if (!heard.CanSee(this) || (!NoSpeechLOS && heard.Player && !heard.InLOS(this))) + if (!heard.CanSee(this) || !NoSpeechLOS && heard.Player && !heard.InLOS(this)) continue; if (heard.m_NetState != null) @@ -6408,11 +6405,11 @@ namespace Server if (Deleted || m.Deleted || m_Map == Map.Internal || m.m_Map == Map.Internal) return false; - return this == m || (m.m_Map == m_Map && - (!m.Hidden || (m_AccessLevel != AccessLevel.Player && - (m_AccessLevel >= m.AccessLevel || m_AccessLevel >= AccessLevel.Administrator))) && - (m.Alive || (Core.SE && Skills.SpiritSpeak.Value >= 100.0) || !Alive || - m_AccessLevel > AccessLevel.Player || m.Warmode)); + return this == m || m.m_Map == m_Map && + (!m.Hidden || m_AccessLevel != AccessLevel.Player && + (m_AccessLevel >= m.AccessLevel || m_AccessLevel >= AccessLevel.Administrator)) && + (m.Alive || Core.SE && Skills.SpiritSpeak.Value >= 100.0 || !Alive || + m_AccessLevel > AccessLevel.Player || m.Warmode); } public virtual bool CanBeRenamedBy(Mobile from) => @@ -6561,7 +6558,7 @@ namespace Server var inOldRange = Utility.InUpdateRange(oldLocation, m.m_Location); if (m.m_NetState != null && - ((isTeleport && (!m.m_NetState.HighSeas || !NoMoveHS)) || !inOldRange) && m.CanSee(this)) + (isTeleport && (!m.m_NetState.HighSeas || !NoMoveHS) || !inOldRange) && m.CanSee(this)) { m.m_NetState.Send(MobileIncoming.Create(m.m_NetState, m, this)); @@ -6608,7 +6605,7 @@ namespace Server // We're not attached to a client, so simply send an Incoming foreach (var ns in eable) - if (((isTeleport && (!ns.HighSeas || !NoMoveHS)) || + if ((isTeleport && (!ns.HighSeas || !NoMoveHS) || !Utility.InUpdateRange(oldLocation, ns.Mobile.Location)) && ns.Mobile.CanSee(this)) { ns.Send(MobileIncoming.Create(ns, ns.Mobile, this)); @@ -6735,7 +6732,7 @@ namespace Server public virtual bool CheckLift(Mobile from, Item item, ref LRReason reject) => true; public virtual bool CheckNonlocalLift(Mobile from, Item item) => - from == this || (from.AccessLevel > AccessLevel && from.AccessLevel >= AccessLevel.GameMaster); + from == this || @from.AccessLevel > AccessLevel && @from.AccessLevel >= AccessLevel.GameMaster; public virtual bool CheckTrade(Mobile to, Item item, SecureTradeContainer cont, bool message, bool checkItems, int plusItems, int plusWeight) => @@ -6878,7 +6875,7 @@ namespace Server } public virtual bool CheckNonlocalDrop(Mobile from, Item item, Item target) => - from == this || (from.AccessLevel > AccessLevel && from.AccessLevel >= AccessLevel.GameMaster); + from == this || @from.AccessLevel > AccessLevel && @from.AccessLevel >= AccessLevel.GameMaster; public virtual bool CheckItemUse(Mobile from, Item item) => true; @@ -6894,7 +6891,7 @@ namespace Server public virtual bool AllowItemUse(Item item) => true; public virtual bool AllowEquipFrom(Mobile mob) => - mob == this || (mob.AccessLevel >= AccessLevel.GameMaster && mob.AccessLevel > AccessLevel); + mob == this || mob.AccessLevel >= AccessLevel.GameMaster && mob.AccessLevel > AccessLevel; public virtual bool EquipItem(Item item) { @@ -7079,14 +7076,14 @@ namespace Server public virtual void OnSingleClick(Mobile from) { if (Deleted || - (AccessLevel == AccessLevel.Player && DisableHiddenSelfClick && Hidden && from == this)) + AccessLevel == AccessLevel.Player && DisableHiddenSelfClick && Hidden && @from == this) return; if (GuildClickMessage) { var guild = m_Guild; - if (guild != null && (m_DisplayGuildTitle || (m_Player && guild.Type != GuildType.Regular))) + if (guild != null && (m_DisplayGuildTitle || m_Player && guild.Type != GuildType.Regular)) { var title = GuildTitle?.Trim() ?? ""; string type; @@ -7631,7 +7628,7 @@ namespace Server protected override void OnTick() { - if (m_Mobile.Deleted || (m_Mobile.Aggressors.Count == 0 && m_Mobile.Aggressed.Count == 0)) + if (m_Mobile.Deleted || m_Mobile.Aggressors.Count == 0 && m_Mobile.Aggressed.Count == 0) m_Mobile.StopAggrExpire(); else m_Mobile.CheckAggrExpire(); @@ -8019,7 +8016,7 @@ namespace Server return false; if (Deleted || target.Deleted || !Alive || IsDeadBondedPet || - (!allowDead && (!target.Alive || target.IsDeadBondedPet))) + !allowDead && (!target.Alive || target.IsDeadBondedPet)) { if (message) SendLocalizedMessage(1001017); // You can not perform beneficial acts on your target. @@ -8095,7 +8092,7 @@ namespace Server if (target == null) return false; - if (Deleted || (!ignoreOurBlessedness && m_Blessed) || target.Deleted || target.m_Blessed || !Alive || + if (Deleted || !ignoreOurBlessedness && m_Blessed || target.Deleted || target.m_Blessed || !Alive || IsDeadBondedPet || !target.Alive || target.IsDeadBondedPet) { if (message) @@ -8322,10 +8319,7 @@ namespace Server get => m_Str; set { - if (value < 1) - value = 1; - else if (value > 65000) - value = 65000; + value = Math.Clamp(value, 1, 65000); if (m_Str != value) { @@ -8361,17 +8355,7 @@ namespace Server [CommandProperty(AccessLevel.GameMaster)] public virtual int Str { - get - { - var value = m_Str + GetStatOffset(StatType.Str); - - if (value < 1) - value = 1; - else if (value > 65000) - value = 65000; - - return value; - } + get => Math.Clamp(m_Str + GetStatOffset(StatType.Str), 1, 65000); set { if (StatMods.Count == 0) @@ -8392,10 +8376,7 @@ namespace Server get => m_Dex; set { - if (value < 1) - value = 1; - else if (value > 65000) - value = 65000; + value = Math.Clamp(value, 1, 65000); if (m_Dex != value) { @@ -8431,17 +8412,7 @@ namespace Server [CommandProperty(AccessLevel.GameMaster)] public virtual int Dex { - get - { - var value = m_Dex + GetStatOffset(StatType.Dex); - - if (value < 1) - value = 1; - else if (value > 65000) - value = 65000; - - return value; - } + get => Math.Clamp(m_Dex + GetStatOffset(StatType.Dex), 0, 65000); set { if (StatMods.Count == 0) @@ -8462,10 +8433,7 @@ namespace Server get => m_Int; set { - if (value < 1) - value = 1; - else if (value > 65000) - value = 65000; + value = Math.Clamp(value, 1, 65000); if (m_Int != value) { @@ -8501,17 +8469,7 @@ namespace Server [CommandProperty(AccessLevel.GameMaster)] public virtual int Int { - get - { - var value = m_Int + GetStatOffset(StatType.Int); - - if (value < 1) - value = 1; - else if (value > 65000) - value = 65000; - - return value; - } + get => Math.Clamp(m_Int + GetStatOffset(StatType.Int), 0, 65000); set { if (StatMods.Count == 0) diff --git a/Projects/Server/Skills.cs b/Projects/Server/Skills.cs index b19dbde6f..bea3b8497 100644 --- a/Projects/Server/Skills.cs +++ b/Projects/Server/Skills.cs @@ -601,10 +601,7 @@ namespace Server } } - if (highest == null && m_Skills.Length > 0) - highest = this[0]; - - m_Highest = highest; + m_Highest = highest == null && m_Skills.Length > 0 ? this[0] : highest; } return m_Highest; diff --git a/Projects/UOContent/Commands/Logging.cs b/Projects/UOContent/Commands/Logging.cs index 7fc535d9a..9fabe8762 100644 --- a/Projects/UOContent/Commands/Logging.cs +++ b/Projects/UOContent/Commands/Logging.cs @@ -103,10 +103,7 @@ namespace Server.Commands if (ip == null) return "null"; - ip = ip.Trim(); - - if (ip.Length == 0) - return "empty"; + ip = ip.Trim().IsNullOrDefault("empty"); bool isSafe = true; diff --git a/Projects/UOContent/Commands/Object Creation/AddGump.cs b/Projects/UOContent/Commands/Object Creation/AddGump.cs index 5a69d54d9..7ee95839a 100644 --- a/Projects/UOContent/Commands/Object Creation/AddGump.cs +++ b/Projects/UOContent/Commands/Object Creation/AddGump.cs @@ -204,7 +204,7 @@ namespace Server.Gumps private class TypeNameComparer : IComparer { - public int Compare(Type x, Type y) => x.Name.CompareTo(y.Name); + public int Compare(Type x, Type y) => x?.Name.CompareTo(y?.Name) ?? 1; } public class InternalTarget : Target @@ -227,10 +227,12 @@ namespace Server.Gumps { if (o is IPoint3D p) { - if (p is Item item) - p = item.GetWorldTop(); - else if (p is Mobile m) - p = m.Location; + p = p switch + { + Item item => item.GetWorldTop(), + Mobile m => m.Location, + _ => p + }; Commands.Add.Invoke(from, new Point3D(p), new Point3D(p), new[] { m_Type.Name }); diff --git a/Projects/UOContent/Engines/Chat/ChatActionHandlers.cs b/Projects/UOContent/Engines/Chat/ChatActionHandlers.cs index cf2a4a660..802281dba 100644 --- a/Projects/UOContent/Engines/Chat/ChatActionHandlers.cs +++ b/Projects/UOContent/Engines/Chat/ChatActionHandlers.cs @@ -179,10 +179,7 @@ namespace Server.Engines.Chat } } - password = password?.Trim(); - - if (password?.Length == 0) - password = null; + password = password?.Trim().IsNullOrDefault(null); Channel joined = Channel.FindChannelByName(name); @@ -216,10 +213,7 @@ namespace Server.Engines.Chat name = param; } - password = password?.Trim(); - - if (password?.Length == 0) - password = null; + password = password?.Trim().IsNullOrDefault(null); Channel.AddChannel(name, password).AddUser(from, password); } diff --git a/Projects/UOContent/Engines/ConPVP/DuelContext.cs b/Projects/UOContent/Engines/ConPVP/DuelContext.cs index 7ffb10b62..a20102c34 100644 --- a/Projects/UOContent/Engines/ConPVP/DuelContext.cs +++ b/Projects/UOContent/Engines/ConPVP/DuelContext.cs @@ -96,13 +96,7 @@ namespace Server.Engines.ConPVP public Tournament Tournament => m_Tournament; - private bool CantDoAnything(Mobile mob) - { - if (m_EventGame != null) - return m_EventGame.CantDoAnything(mob); - - return false; - } + private bool CantDoAnything(Mobile mob) => m_EventGame?.CantDoAnything(mob) == true; public static bool IsFreeConsume(Mobile mob) { diff --git a/Projects/UOContent/Engines/ConPVP/Games/BombingRun.cs b/Projects/UOContent/Engines/ConPVP/Games/BombingRun.cs index c4a17b45b..e07ada51a 100644 --- a/Projects/UOContent/Engines/ConPVP/Games/BombingRun.cs +++ b/Projects/UOContent/Engines/ConPVP/Games/BombingRun.cs @@ -215,14 +215,7 @@ namespace Server.Engines.ConPVP int zdiff = myLoc.Z - m.Z; - if (zdiff < 0) - return false; - if (zdiff < 12) - return true; - if (zdiff < 16) - return Utility.RandomBool(); // 50% chance - - return false; + return zdiff >= 0 && (zdiff < 12 || zdiff < 16 && Utility.RandomBool()); } private void DoAnim(Point3D start, Point3D end, Map map) @@ -1648,12 +1641,12 @@ namespace Server.Engines.ConPVP for (int i = 0; i < teams.Count; ++i) { - TrophyRank rank = TrophyRank.Bronze; - - if (i == 0) - rank = TrophyRank.Gold; - else if (i == 1) - rank = TrophyRank.Silver; + TrophyRank rank = i switch + { + 0 => TrophyRank.Gold, + 1 => TrophyRank.Silver, + _ => TrophyRank.Bronze + }; BRPlayerInfo leader = teams[i].Leader; @@ -1747,7 +1740,8 @@ namespace Server.Engines.ConPVP p.Players[j].Eliminated = true; } - m_Context.Finish(m_Context.Participants[winner.TeamID]); + if (winner != null) + m_Context.Finish(m_Context.Participants[winner.TeamID]); } public override void OnStop() diff --git a/Projects/UOContent/Engines/ConPVP/Ladder.cs b/Projects/UOContent/Engines/ConPVP/Ladder.cs index ca4e9a803..8aae31ee9 100644 --- a/Projects/UOContent/Engines/ConPVP/Ladder.cs +++ b/Projects/UOContent/Engines/ConPVP/Ladder.cs @@ -170,10 +170,8 @@ namespace Server.Engines.ConPVP return 50; if (xp >= 2500) return 10 + (xp - 2500) / 500; - if (xp < 0) - xp = 0; - return m_ShortLevels[xp / 100]; + return m_ShortLevels[Math.Max(xp, 0) / 100]; } public static void GetLevelInfo(int level, out int xpBase, out int xpAdvance) diff --git a/Projects/UOContent/Engines/ConPVP/Participant.cs b/Projects/UOContent/Engines/ConPVP/Participant.cs index e8058536c..686e2a7cd 100644 --- a/Projects/UOContent/Engines/ConPVP/Participant.cs +++ b/Projects/UOContent/Engines/ConPVP/Participant.cs @@ -78,10 +78,7 @@ namespace Server.Engines.ConPVP sb.Append(mob.Name); } - if (sb.Length == 0) - return "Empty"; - - return sb.ToString(); + return sb.Length == 0 ? "Empty" : sb.ToString(); } } diff --git a/Projects/UOContent/Engines/ConPVP/Tournament.cs b/Projects/UOContent/Engines/ConPVP/Tournament.cs index f36a059d0..81cf88eed 100644 --- a/Projects/UOContent/Engines/ConPVP/Tournament.cs +++ b/Projects/UOContent/Engines/ConPVP/Tournament.cs @@ -149,24 +149,14 @@ namespace Server.Engines.ConPVP public int ParticipantsPerMatch { get => m_ParticipantsPerMatch; - set - { - if (value < 2) value = 2; - else if (value > 10) value = 10; - m_ParticipantsPerMatch = value; - } + set => m_ParticipantsPerMatch = Math.Clamp(value, 2, 10); } [CommandProperty(AccessLevel.GameMaster)] public int PlayersPerParticipant { get => m_PlayersPerParticipant; - set - { - if (value < 1) value = 1; - else if (value > 10) value = 10; - m_PlayersPerParticipant = value; - } + set => m_PlayersPerParticipant = Math.Clamp(value, 1, 10); } [CommandProperty(AccessLevel.GameMaster)] diff --git a/Projects/UOContent/Engines/ConPVP/TourneyParticipant.cs b/Projects/UOContent/Engines/ConPVP/TourneyParticipant.cs index 9a5d95d07..e8ca8982a 100644 --- a/Projects/UOContent/Engines/ConPVP/TourneyParticipant.cs +++ b/Projects/UOContent/Engines/ConPVP/TourneyParticipant.cs @@ -74,10 +74,7 @@ namespace Server.Engines.ConPVP sb.Append(mob.Name); } - if (sb.Length == 0) - return "Empty"; - - return sb.ToString(); + return sb.Length == 0 ? "Empty" : sb.ToString(); } } @@ -103,4 +100,4 @@ namespace Server.Engines.ConPVP AddLog("Match lost."); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Engines/Craft/Core/CraftGumpItem.cs b/Projects/UOContent/Engines/Craft/Core/CraftGumpItem.cs index 24bc36be7..f359b9dc9 100644 --- a/Projects/UOContent/Engines/Craft/Core/CraftGumpItem.cs +++ b/Projects/UOContent/Engines/Craft/Core/CraftGumpItem.cs @@ -137,10 +137,7 @@ namespace Server.Engines.Craft for (int i = 0; i < m_CraftItem.Skills.Count; i++) { CraftSkill skill = m_CraftItem.Skills[i]; - double minSkill = skill.MinSkill; - - if (minSkill < 0) - minSkill = 0; + double minSkill = Math.Max(skill.MinSkill, 0); AddHtmlLocalized(170, 132 + i * 20, 200, 18, AosSkillBonuses.GetLabel(skill.SkillToMake), LabelColor); AddLabel(430, 132 + i * 20, LabelHue, $"{minSkill:F1}"); @@ -156,25 +153,16 @@ namespace Server.Engines.Craft double chance = m_CraftItem.GetSuccessChance(m_From, resIndex > -1 ? res.GetAt(resIndex).ItemType : null, m_CraftSystem, false, out _); - double excepChance = m_CraftItem.GetExceptionalChance(m_CraftSystem, chance, m_From); - - if (chance < 0.0) - chance = 0.0; - else if (chance > 1.0) - chance = 1.0; AddHtmlLocalized(170, 80, 250, 18, 1044057, LabelColor); // Success Chance: - AddLabel(430, 80, LabelHue, $"{chance * 100:F1}%"); + AddLabel(430, 80, LabelHue, $"{Math.Clamp(chance, 0, 1) * 100:F1}%"); if (m_ShowExceptionalChance) { - if (excepChance < 0.0) - excepChance = 0.0; - else if (excepChance > 1.0) - excepChance = 1.0; + double exceptChance = Math.Clamp(m_CraftItem.GetExceptionalChance(m_CraftSystem, chance, m_From), 0, 1.0); AddHtmlLocalized(170, 100, 250, 18, 1044058, 32767); // Exceptional Chance: - AddLabel(430, 100, LabelHue, $"{excepChance * 100:F1}%"); + AddLabel(430, 100, LabelHue, $"{exceptChance * 100:F1}%"); } } diff --git a/Projects/UOContent/Engines/Craft/Core/CraftItem.cs b/Projects/UOContent/Engines/Craft/Core/CraftItem.cs index dd9abae7e..c658dbefb 100644 --- a/Projects/UOContent/Engines/Craft/Core/CraftItem.cs +++ b/Projects/UOContent/Engines/Craft/Core/CraftItem.cs @@ -647,23 +647,11 @@ namespace Server.Engines.Craft chance = chance * 0.5 - 0.1; break; case CraftECA.ChanceMinusSixtyToFourtyFive: - { - double offset = 0.60 - (from.Skills[system.MainSkill].Value - 95.0) * 0.03; - - if (offset < 0.45) - offset = 0.45; - else if (offset > 0.60) - offset = 0.60; - - chance -= offset; - break; - } + chance -= Math.Clamp(0.60 - (from.Skills[system.MainSkill].Value - 95.0) * 0.03, 0.45, 0.60); + break; } - if (chance > 0) - return chance + bonus; - - return chance; + return chance > 0 ? chance + bonus : chance; } public bool CheckSkills(Mobile from, Type typeRes, CraftSystem craftSystem, ref int quality, diff --git a/Projects/UOContent/Engines/Doom/GauntletSpawner.cs b/Projects/UOContent/Engines/Doom/GauntletSpawner.cs index 57329601e..ae226f253 100644 --- a/Projects/UOContent/Engines/Doom/GauntletSpawner.cs +++ b/Projects/UOContent/Engines/Doom/GauntletSpawner.cs @@ -254,12 +254,7 @@ namespace Server.Engines.Doom if (playerCount == 0 && Region != null) playerCount = Region.GetPlayerCount(); - int count = (playerCount + PlayersPerSpawn - 1) / PlayersPerSpawn; - - if (count < 1) - count = 1; - - return count; + return Math.Max((playerCount + PlayersPerSpawn - 1) / PlayersPerSpawn, 1); } public virtual void ClearCreatures() diff --git a/Projects/UOContent/Engines/Factions/Mobiles/Guards/BaseFactionGuard.cs b/Projects/UOContent/Engines/Factions/Mobiles/Guards/BaseFactionGuard.cs index 12c611ad8..786cf52f6 100644 --- a/Projects/UOContent/Engines/Factions/Mobiles/Guards/BaseFactionGuard.cs +++ b/Projects/UOContent/Engines/Factions/Mobiles/Guards/BaseFactionGuard.cs @@ -138,8 +138,7 @@ namespace Server.Factions 2 => "You are bold, {0}, for one of the meager {1}. Leave now, lest you be taught the taste of dirt.", 3 => "Your presence here is an insult, {0}. Be gone now, knave.", 4 => "Dost thou wish to be hung by your toes, {0}? Nay? Then come no closer.", - 5 => "Hey, {0}. Yeah, you. Get out of here before I beat you with a stick.", - _ => null + _ => "Hey, {0}. Yeah, you. Get out of here before I beat you with a stick." // 5 }; Faction faction = Faction.Find(m); @@ -177,8 +176,7 @@ namespace Server.Factions { ReactionType.Ignore => faction.Definition.GuardIgnore, ReactionType.Warn => faction.Definition.GuardWarn, - ReactionType.Attack => faction.Definition.GuardAttack, - _ => null + _ => faction.Definition.GuardAttack // ReactionType.Attack }; if (def != null && def.Number > 0) diff --git a/Projects/UOContent/Engines/Factions/Mobiles/Guards/GuardAI.cs b/Projects/UOContent/Engines/Factions/Mobiles/Guards/GuardAI.cs index e991e889e..5c6e148eb 100644 --- a/Projects/UOContent/Engines/Factions/Mobiles/Guards/GuardAI.cs +++ b/Projects/UOContent/Engines/Factions/Mobiles/Guards/GuardAI.cs @@ -206,14 +206,11 @@ namespace Server.Factions public Spell RandomOffenseSpell() { - int maxCircle = (int)((m_Guard.Skills.Magery.Value + 20.0) / (100.0 / 7.0)); - - if (maxCircle < 1) - maxCircle = 1; + int maxCircle = Math.Max((int)((m_Guard.Skills.Magery.Value + 20.0) / (100.0 / 7.0)), 1); return Utility.Random(maxCircle * 2) switch { - 0 => (Spell)new MagicArrowSpell(m_Guard), + 0 => new MagicArrowSpell(m_Guard), 1 => new MagicArrowSpell(m_Guard), 2 => new HarmSpell(m_Guard), 3 => new HarmSpell(m_Guard), diff --git a/Projects/UOContent/Engines/MLQuests/Items/CraftmansSatchel.cs b/Projects/UOContent/Engines/MLQuests/Items/CraftmansSatchel.cs index 3b6409ffe..051b2db5e 100644 --- a/Projects/UOContent/Engines/MLQuests/Items/CraftmansSatchel.cs +++ b/Projects/UOContent/Engines/MLQuests/Items/CraftmansSatchel.cs @@ -128,11 +128,11 @@ namespace Server.Engines.MLQuests.Items case 1: AddRecipe(DefAlchemy.CraftSystem); break; - // TODO - // case 2: AddNonArtifactRecipe( DefTailoring.CraftSystem ); break; - // case 3: AddNonArtifactRecipe( DefBlacksmithy.CraftSystem ); break; - // case 4: AddNonArtifactRecipe( DefCarpentry.CraftSystem ); break; - // case 5: AddNonArtifactRecipe( DefBowFletching.CraftSystem ); break; + // TODO + // case 2: AddNonArtifactRecipe( DefTailoring.CraftSystem ); break; + // case 3: AddNonArtifactRecipe( DefBlacksmithy.CraftSystem ); break; + // case 4: AddNonArtifactRecipe( DefCarpentry.CraftSystem ); break; + // case 5: AddNonArtifactRecipe( DefBowFletching.CraftSystem ); break; } } @@ -221,4 +221,4 @@ namespace Server.Engines.MLQuests.Items int version = reader.ReadInt(); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Engines/MLQuests/Items/NibbetSatchel.cs b/Projects/UOContent/Engines/MLQuests/Items/NibbetSatchel.cs index 52bd339c6..f035a96b9 100644 --- a/Projects/UOContent/Engines/MLQuests/Items/NibbetSatchel.cs +++ b/Projects/UOContent/Engines/MLQuests/Items/NibbetSatchel.cs @@ -8,39 +8,21 @@ Hue = Utility.RandomBrightHue(); DropItem(new TinkerTools()); - switch (Utility.Random(10)) - { - case 0: - DropItem(new Springs(3)); - break; - case 1: - DropItem(new Axle(3)); - break; - case 2: - DropItem(new Hinge(3)); - break; - case 3: - DropItem(new Key()); - break; - case 4: - DropItem(new Scissors()); - break; - case 5: - DropItem(new BarrelTap(3)); - break; - case 6: - DropItem(new BarrelHoops()); - break; - case 7: - DropItem(new Gears(3)); - break; - case 8: - DropItem(new Lockpick(3)); - break; - case 9: - DropItem(new ClockFrame(3)); - break; - } + DropItem( + Utility.Random(10) switch + { + 0 => new Springs(3), + 1 => new Axle(3), + 2 => new Hinge(3), + 3 => new Key(), + 4 => new Scissors(), + 5 => new BarrelTap(3), + 6 => new BarrelHoops(), + 7 => new Gears(3), + 8 => new Lockpick(3), + _ => new ClockFrame(3) // 9 + } + ); } public NibbetSatchel(Serial serial) @@ -62,4 +44,4 @@ int version = reader.ReadInt(); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Engines/MLQuests/Items/RewardBags.cs b/Projects/UOContent/Engines/MLQuests/Items/RewardBags.cs index d08438ea1..dec7ed682 100644 --- a/Projects/UOContent/Engines/MLQuests/Items/RewardBags.cs +++ b/Projects/UOContent/Engines/MLQuests/Items/RewardBags.cs @@ -24,8 +24,7 @@ namespace Server.Engines.MLQuests.Items 1 => Loot.RandomArmor(false, true), 2 => Loot.RandomRangedWeapon(false, true), 3 => Loot.RandomJewelry(), - 4 => Loot.RandomHat(false), - _ => null + _ => Loot.RandomHat(false) // 4 }; if (loot == null) @@ -189,4 +188,4 @@ namespace Server.Engines.MLQuests.Items int version = reader.ReadInt(); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Engines/Plants/PlantSystem.cs b/Projects/UOContent/Engines/Plants/PlantSystem.cs index bda31f570..7418541f5 100644 --- a/Projects/UOContent/Engines/Plants/PlantSystem.cs +++ b/Projects/UOContent/Engines/Plants/PlantSystem.cs @@ -113,13 +113,7 @@ namespace Server.Engines.Plants get => m_Water; set { - if (value < 0) - m_Water = 0; - else if (value > 4) - m_Water = 4; - else - m_Water = value; - + m_Water = Math.Clamp(value, 0, 4); Plant.InvalidateProperties(); } } @@ -132,12 +126,7 @@ namespace Server.Engines.Plants if (m_Hits == value) return; - if (value < 0) - m_Hits = 0; - else if (value > MaxHits) - m_Hits = MaxHits; - else - m_Hits = value; + m_Hits = Math.Clamp(value, 0, MaxHits); if (m_Hits == 0) Plant.Die(); @@ -158,66 +147,32 @@ namespace Server.Engines.Plants return PlantHealth.Dying; if (perc < 66) return PlantHealth.Wilted; - if (perc < 100) - return PlantHealth.Healthy; - return PlantHealth.Vibrant; + return perc < 100 ? PlantHealth.Healthy : PlantHealth.Vibrant; } } public int Infestation { get => m_Infestation; - set - { - if (value < 0) - m_Infestation = 0; - else if (value > 2) - m_Infestation = 2; - else - m_Infestation = value; - } + set => m_Infestation = Math.Clamp(value, 0, 2); } public int Fungus { get => m_Fungus; - set - { - if (value < 0) - m_Fungus = 0; - else if (value > 2) - m_Fungus = 2; - else - m_Fungus = value; - } + set => m_Fungus = Math.Clamp(value, 0, 2); } public int Poison { get => m_Poison; - set - { - if (value < 0) - m_Poison = 0; - else if (value > 2) - m_Poison = 2; - else - m_Poison = value; - } + set => m_Poison = Math.Clamp(value, 0, 2); } public int Disease { get => m_Disease; - set - { - if (value < 0) - m_Disease = 0; - else if (value > 2) - m_Disease = 2; - else - m_Disease = value; - } + set => m_Disease = Math.Clamp(value, 0, 2); } public bool IsFullPoisonPotion => m_PoisonPotion >= 2; @@ -225,15 +180,7 @@ namespace Server.Engines.Plants public int PoisonPotion { get => m_PoisonPotion; - set - { - if (value < 0) - m_PoisonPotion = 0; - else if (value > 2) - m_PoisonPotion = 2; - else - m_PoisonPotion = value; - } + set => m_PoisonPotion = Math.Clamp(value, 0, 2); } public bool IsFullCurePotion => m_CurePotion >= 2; @@ -241,15 +188,7 @@ namespace Server.Engines.Plants public int CurePotion { get => m_CurePotion; - set - { - if (value < 0) - m_CurePotion = 0; - else if (value > 2) - m_CurePotion = 2; - else - m_CurePotion = value; - } + set => m_CurePotion = Math.Clamp(value, 0, 2); } public bool IsFullHealPotion => m_HealPotion >= 2; @@ -257,15 +196,7 @@ namespace Server.Engines.Plants public int HealPotion { get => m_HealPotion; - set - { - if (value < 0) - m_HealPotion = 0; - else if (value > 2) - m_HealPotion = 2; - else - m_HealPotion = value; - } + set => m_HealPotion = Math.Clamp(value, 0, 2); } public bool IsFullStrengthPotion => m_StrengthPotion >= 2; @@ -273,15 +204,7 @@ namespace Server.Engines.Plants public int StrengthPotion { get => m_StrengthPotion; - set - { - if (value < 0) - m_StrengthPotion = 0; - else if (value > 2) - m_StrengthPotion = 2; - else - m_StrengthPotion = value; - } + set => m_StrengthPotion = Math.Clamp(value, 0, 2); } public bool HasMaladies => Infestation > 0 || Fungus > 0 || Poison > 0 || Disease > 0 || Water != 2; @@ -292,23 +215,13 @@ namespace Server.Engines.Plants public PlantType SeedType { - get - { - if (Pollinated) - return m_SeedType; - return Plant.PlantType; - } + get => Pollinated ? m_SeedType : Plant.PlantType; set => m_SeedType = value; } public PlantHue SeedHue { - get - { - if (Pollinated) - return m_SeedHue; - return Plant.PlantHue; - } + get => Pollinated ? m_SeedHue : Plant.PlantHue; set => m_SeedHue = value; } diff --git a/Projects/UOContent/Engines/Quests/Core/QuestSystem.cs b/Projects/UOContent/Engines/Quests/Core/QuestSystem.cs index 3b45a6215..88871667c 100644 --- a/Projects/UOContent/Engines/Quests/Core/QuestSystem.cs +++ b/Projects/UOContent/Engines/Quests/Core/QuestSystem.cs @@ -431,7 +431,7 @@ namespace Server.Engines.Quests return false; } - doneQuests.RemoveAt(i--); + doneQuests.RemoveAt(i); return true; } } @@ -444,18 +444,7 @@ namespace Server.Engines.Quests if (Utility.RandomBool()) who.Animate(17, 7, 1, true, false, 0); else - switch (Utility.Random(3)) - { - case 0: - who.Animate(32, 7, 1, true, false, 0); - break; - case 1: - who.Animate(33, 7, 1, true, false, 0); - break; - case 2: - who.Animate(34, 7, 1, true, false, 0); - break; - } + who.Animate(32 + Utility.Random(3), 7, 1, true, false, 0); who.Direction = who.GetDirectionTo(to); } diff --git a/Projects/UOContent/Engines/Quests/Emino's Undertaking/Items/EminosKatanaChest.cs b/Projects/UOContent/Engines/Quests/Emino's Undertaking/Items/EminosKatanaChest.cs index a26bf79e4..83a3bd913 100644 --- a/Projects/UOContent/Engines/Quests/Emino's Undertaking/Items/EminosKatanaChest.cs +++ b/Projects/UOContent/Engines/Quests/Emino's Undertaking/Items/EminosKatanaChest.cs @@ -27,18 +27,14 @@ namespace Server.Engines.Quests.Ninja Items[i].Delete(); for (int i = 0; i < 75; i++) - switch (Utility.Random(3)) - { - case 0: - DropItem(new GoldBracelet()); - break; - case 1: - DropItem(new GoldRing()); - break; - case 2: - DropItem(Loot.RandomGem()); - break; - } + DropItem( + Utility.Random(10) switch + { + 0 => new GoldBracelet(), + 1 => new GoldRing(), + _ => Loot.RandomGem() // 2 + } + ); } public override void OnDoubleClick(Mobile from) @@ -133,4 +129,4 @@ namespace Server.Engines.Quests.Ninja int version = reader.ReadEncodedInt(); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Engines/Quests/Haochi's Trials/Items/HaochisTreasureChest.cs b/Projects/UOContent/Engines/Quests/Haochi's Trials/Items/HaochisTreasureChest.cs index 0892595ab..a632ed999 100644 --- a/Projects/UOContent/Engines/Quests/Haochi's Trials/Items/HaochisTreasureChest.cs +++ b/Projects/UOContent/Engines/Quests/Haochi's Trials/Items/HaochisTreasureChest.cs @@ -27,18 +27,14 @@ namespace Server.Engines.Quests.Samurai Items[i].Delete(); for (int i = 0; i < 75; i++) - switch (Utility.Random(3)) - { - case 0: - DropItem(new GoldBracelet()); - break; - case 1: - DropItem(new GoldRing()); - break; - case 2: - DropItem(Loot.RandomGem()); - break; - } + DropItem( + Utility.Random(10) switch + { + 0 => new GoldBracelet(), + 1 => new GoldRing(), + _ => Loot.RandomGem() // 2 + } + ); } public override bool CheckHold(Mobile m, Item item, bool message, bool checkItems, int plusItems, int plusWeight) => false; diff --git a/Projects/UOContent/Engines/Quests/Haochi's Trials/Mobiles/CursedSoul.cs b/Projects/UOContent/Engines/Quests/Haochi's Trials/Mobiles/CursedSoul.cs index 286dbe866..e3283c9e5 100644 --- a/Projects/UOContent/Engines/Quests/Haochi's Trials/Mobiles/CursedSoul.cs +++ b/Projects/UOContent/Engines/Quests/Haochi's Trials/Mobiles/CursedSoul.cs @@ -31,39 +31,18 @@ namespace Server.Engines.Quests.Samurai Fame = 200; Karma = -200; - switch (Utility.Random(10)) - { - case 0: - PackItem(new LeftArm()); - break; - case 1: - PackItem(new RightArm()); - break; - case 2: - PackItem(new Torso()); - break; - case 3: - PackItem(new Bone()); - break; - case 4: - PackItem(new RibCage()); - break; - case 5: - PackItem(new RibCage()); - break; - case 6: - PackItem(new BonePile()); - break; - case 7: - PackItem(new BonePile()); - break; - case 8: - PackItem(new BonePile()); - break; - case 9: - PackItem(new BonePile()); - break; - } + PackItem( + Utility.Random(10) switch + { + 0 => new LeftArm(), + 1 => new RightArm(), + 2 => new Torso(), + 3 => new Bone(), + 4 => new RibCage(), + 5 => new RibCage(), + _ => new BonePile() // 6-9 + } + ); } public CursedSoul(Serial serial) : base(serial) @@ -87,4 +66,4 @@ namespace Server.Engines.Quests.Samurai int version = reader.ReadEncodedInt(); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Engines/Quests/Haochi's Trials/Mobiles/HaochisGuardsman.cs b/Projects/UOContent/Engines/Quests/Haochi's Trials/Mobiles/HaochisGuardsman.cs index dff75bfdc..2b83deb39 100644 --- a/Projects/UOContent/Engines/Quests/Haochi's Trials/Mobiles/HaochisGuardsman.cs +++ b/Projects/UOContent/Engines/Quests/Haochi's Trials/Mobiles/HaochisGuardsman.cs @@ -35,44 +35,33 @@ namespace Server.Engines.Quests.Samurai AddItem(new LeatherHiroSode()); AddItem(new SamuraiTabi(Utility.RandomNondyedHue())); - switch (Utility.Random(3)) - { - case 0: - AddItem(new StuddedHaidate()); - break; - case 1: - AddItem(new PlateSuneate()); - break; - default: - AddItem(new LeatherSuneate()); - break; - } + AddItem( + Utility.Random(3) switch + { + 0 => new StuddedHaidate(), + 1 => new PlateSuneate(), + _ => new LeatherSuneate() + } + ); - switch (Utility.Random(4)) - { - case 0: - AddItem(new DecorativePlateKabuto()); - break; - case 1: - AddItem(new ChainHatsuburi()); - break; - case 2: - AddItem(new LightPlateJingasa()); - break; - default: - AddItem(new LeatherJingasa()); - break; - } + AddItem( + Utility.Random(4) switch + { + 0 => new DecorativePlateKabuto(), + 1 => new ChainHatsuburi(), + 2 => new LightPlateJingasa(), + _ => new LeatherJingasa() + } + ); - var weapon = Utility.Random(3) switch - { - 0 => (Item)new NoDachi(), - 1 => new Lajatang(), - _ => new Wakizashi() - }; - - weapon.Movable = false; - AddItem(weapon); + AddItem( + Utility.Random(3) switch + { + 0 => new NoDachi{Movable = false}, + 1 => new Lajatang{Movable = false}, + _ => new Wakizashi{Movable = false} + } + ); } public override void OnTalk(PlayerMobile player, bool contextMenu) @@ -93,4 +82,4 @@ namespace Server.Engines.Quests.Samurai int version = reader.ReadEncodedInt(); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Engines/Quests/Haochi's Trials/Mobiles/YoungNinja.cs b/Projects/UOContent/Engines/Quests/Haochi's Trials/Mobiles/YoungNinja.cs index d71c2f8d7..d5f85cb72 100644 --- a/Projects/UOContent/Engines/Quests/Haochi's Trials/Mobiles/YoungNinja.cs +++ b/Projects/UOContent/Engines/Quests/Haochi's Trials/Mobiles/YoungNinja.cs @@ -24,18 +24,14 @@ namespace Server.Engines.Quests.Samurai AddItem(new Bandana(Utility.RandomNondyedHue())); - switch (Utility.Random(3)) - { - case 0: - AddItem(new Tessen()); - break; - case 1: - AddItem(new Kama()); - break; - default: - AddItem(new Lajatang()); - break; - } + AddItem( + Utility.Random(3) switch + { + 0 => new Tessen(), + 1 => new Kama(), + _ => new Lajatang() + } + ); SetSkill(SkillName.Swords, 50.0); SetSkill(SkillName.Tactics, 50.0); @@ -64,4 +60,4 @@ namespace Server.Engines.Quests.Samurai int version = reader.ReadEncodedInt(); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Engines/Quests/Haochi's Trials/Mobiles/YoungRonin.cs b/Projects/UOContent/Engines/Quests/Haochi's Trials/Mobiles/YoungRonin.cs index 3ee3ecbf6..fd290954a 100644 --- a/Projects/UOContent/Engines/Quests/Haochi's Trials/Mobiles/YoungRonin.cs +++ b/Projects/UOContent/Engines/Quests/Haochi's Trials/Mobiles/YoungRonin.cs @@ -21,33 +21,25 @@ namespace Server.Engines.Quests.Samurai AddItem(new LeatherHiroSode()); AddItem(new SamuraiTabi()); - switch (Utility.Random(3)) - { - case 0: - AddItem(new StuddedHaidate()); - break; - case 1: - AddItem(new PlateSuneate()); - break; - default: - AddItem(new LeatherSuneate()); - break; - } + AddItem( + Utility.Random(3) switch + { + 0 => new StuddedHaidate(), + 1 => new PlateSuneate(), + _ => new LeatherSuneate() + } + ); AddItem(new Bandana(Utility.RandomNondyedHue())); - switch (Utility.Random(3)) - { - case 0: - AddItem(new NoDachi()); - break; - case 1: - AddItem(new Lajatang()); - break; - default: - AddItem(new Wakizashi()); - break; - } + AddItem( + Utility.Random(3) switch + { + 0 => new NoDachi(), + 1 => new Lajatang(), + _ => new Wakizashi() + } + ); SetSkill(SkillName.Swords, 50.0); SetSkill(SkillName.Tactics, 50.0); @@ -76,4 +68,4 @@ namespace Server.Engines.Quests.Samurai int version = reader.ReadEncodedInt(); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Engines/VeteranRewards/RewardSystem.cs b/Projects/UOContent/Engines/VeteranRewards/RewardSystem.cs index e9058408a..78a08b3ee 100644 --- a/Projects/UOContent/Engines/VeteranRewards/RewardSystem.cs +++ b/Projects/UOContent/Engines/VeteranRewards/RewardSystem.cs @@ -95,12 +95,7 @@ namespace Server.Engines.VeteranRewards { TimeSpan totalTime = DateTime.UtcNow - acct.Created; - int level = (int)(totalTime.TotalDays / RewardInterval.TotalDays); - - if (level < 0) - level = 0; - - return level; + return Math.Max((int)(totalTime.TotalDays / RewardInterval.TotalDays), 0); } public static bool HasHalfLevel(Mobile mob) @@ -473,10 +468,7 @@ namespace Server.Engines.VeteranRewards if (m.SkillsCap == 7000 || m.SkillsCap == 7050 || m.SkillsCap == 7100 || m.SkillsCap == 7150 || m.SkillsCap == 7200) { - if (level > 4) - level = 4; - else if (level < 0) - level = 0; + level = Math.Clamp(level, 0, 4); if (SkillCapRewards) m.SkillsCap = 7000 + level * 50; diff --git a/Projects/UOContent/Engines/Virtues/Honor.cs b/Projects/UOContent/Engines/Virtues/Honor.cs index 230db01c2..2ab594fea 100644 --- a/Projects/UOContent/Engines/Virtues/Honor.cs +++ b/Projects/UOContent/Engines/Virtues/Honor.cs @@ -342,14 +342,12 @@ namespace Server targetFame / 100.0 * (m_HonorDamage / m_TotalDamage); // Initial honor gain is 100th of the monsters honor if (m_HonorDamage == m_TotalDamage && m_FirstHit == FirstHit.Granted) - dGain = dGain * 1.5; // honor gain is increased alot more if the combat was fully honorable + dGain *= 1.5; // honor gain is increased alot more if the combat was fully honorable else - dGain = dGain * 0.9; + dGain *= 0.9; - int gain = Math.Min((int)dGain, 200); - - if (gain < 1) - gain = 1; // Minimum gain of 1 honor when the honor is under the monsters fame + // Minimum gain of 1 honor when the honor is under the monsters fame + int gain = Math.Clamp((int)dGain, 1, 200); if (VirtueHelper.IsHighestPath(Source, VirtueName.Honor)) { diff --git a/Projects/UOContent/Gumps/AdminGump.cs b/Projects/UOContent/Gumps/AdminGump.cs index 99a7ad73e..65ca452bf 100644 --- a/Projects/UOContent/Gumps/AdminGump.cs +++ b/Projects/UOContent/Gumps/AdminGump.cs @@ -2387,14 +2387,13 @@ namespace Server.Gumps var newLevel = index switch { - 20 => AccessLevel.Player, 21 => AccessLevel.Counselor, 22 => AccessLevel.GameMaster, 23 => AccessLevel.Seer, 24 => AccessLevel.Administrator, 33 => AccessLevel.Developer, 34 => AccessLevel.Owner, - _ => AccessLevel.Player + _ => AccessLevel.Player // 20 }; if (newLevel < from.AccessLevel || from.AccessLevel == AccessLevel.Owner) @@ -2628,7 +2627,7 @@ namespace Server.Gumps { string check = Firewall.List[i].ToString(); - if (check.IndexOf(match) >= 0) + if (check?.IndexOf(match) >= 0) results.Add(Firewall.List[i]); } diff --git a/Projects/UOContent/Gumps/BanDurationGump.cs b/Projects/UOContent/Gumps/BanDurationGump.cs index b174cae40..ba38782fb 100644 --- a/Projects/UOContent/Gumps/BanDurationGump.cs +++ b/Projects/UOContent/Gumps/BanDurationGump.cs @@ -207,15 +207,7 @@ namespace Server.Gumps if (shouldSet) { - string comment = null; - - if (c != null) - { - comment = c.Text.Trim(); - - if (comment.Length == 0) - comment = null; - } + string comment = c?.Text.Trim().IsNullOrDefault(null); for (int i = 0; i < m_List.Count; ++i) { diff --git a/Projects/UOContent/Gumps/Guilds/GuildGump.cs b/Projects/UOContent/Gumps/Guilds/GuildGump.cs index 38094b9bc..46e0ad4cd 100644 --- a/Projects/UOContent/Gumps/Guilds/GuildGump.cs +++ b/Projects/UOContent/Gumps/Guilds/GuildGump.cs @@ -25,19 +25,11 @@ namespace Server.Gumps if (leader != null) { - string leadTitle; + string leadTitle = leader.GuildTitle?.Trim(); + string leadName = leader.Name?.Trim().IsNullOrDefault("(empty)"); + string text = leadTitle?.Length > 0 ? $"{leadTitle}: {leadName}" : leadName; - if ((leadTitle = leader.GuildTitle) != null && (leadTitle = leadTitle.Trim()).Length > 0) - leadTitle += ": "; - else - leadTitle = ""; - - string leadName; - - if ((leadName = leader.Name) == null || (leadName = leadName.Trim()).Length <= 0) - leadName = "(empty)"; - - AddHtml(220, 15, 250, 35, leadTitle + leadName); + AddHtml(220, 15, 250, 35, text); } AddButton(20, 50, 4005, 4007, 1); @@ -50,9 +42,7 @@ namespace Server.Gumps fealty ??= beholder; - string fealtyName = fealty.Name?.Trim(); - if (string.IsNullOrWhiteSpace(fealtyName)) - fealtyName = "(empty)"; + string fealtyName = fealty.Name?.Trim().IsNullOrDefault("(empty)"); if (beholder == fealty) AddHtmlLocalized(55, 70, 470, 20, 1018002); // yourself diff --git a/Projects/UOContent/Gumps/Guilds/New Guild System/GuildInfoGump.cs b/Projects/UOContent/Gumps/Guilds/New Guild System/GuildInfoGump.cs index d3efe8359..ef3e9690d 100644 --- a/Projects/UOContent/Gumps/Guilds/New Guild System/GuildInfoGump.cs +++ b/Projects/UOContent/Gumps/Guilds/New Guild System/GuildInfoGump.cs @@ -78,7 +78,7 @@ namespace Server.Guilds { base.OnResponse(sender, info); - PlayerMobile pm = sender.Mobile as PlayerMobile; + PlayerMobile pm = (PlayerMobile)sender.Mobile; if (!IsMember(pm, guild)) return; diff --git a/Projects/UOContent/Gumps/HouseGump.cs b/Projects/UOContent/Gumps/HouseGump.cs index c99047b4a..5471ec842 100644 --- a/Projects/UOContent/Gumps/HouseGump.cs +++ b/Projects/UOContent/Gumps/HouseGump.cs @@ -363,7 +363,7 @@ namespace Server.Gumps { string val = values[i]; - string v = current.Length == 0 ? val : $"{current}{' '}{val}"; + string v = current.Length == 0 ? val : $"{current} {val}"; if (v.Length < 10) { diff --git a/Projects/UOContent/Gumps/HouseGumpAOS.cs b/Projects/UOContent/Gumps/HouseGumpAOS.cs index ea748ea89..6c50681fc 100644 --- a/Projects/UOContent/Gumps/HouseGumpAOS.cs +++ b/Projects/UOContent/Gumps/HouseGumpAOS.cs @@ -481,10 +481,7 @@ namespace Server.Gumps { Mobile m = m_House.Owner; - if (m?.Deleted != false) - return "(unowned)"; - - return string.IsNullOrWhiteSpace(m.Name) ? "(no name)" : m.Name.Trim(); + return m?.Deleted != false ? "(unowned)" : m.Name.Trim().IsNullOrDefault("(no name)"); } private string GetDateTime(DateTime val) => val == DateTime.MinValue ? "" : val.ToString("yyyy'-'MM'-'dd HH':'mm':'ss"); diff --git a/Projects/UOContent/Gumps/TithingGump.cs b/Projects/UOContent/Gumps/TithingGump.cs index 04a637cc9..678f4e317 100644 --- a/Projects/UOContent/Gumps/TithingGump.cs +++ b/Projects/UOContent/Gumps/TithingGump.cs @@ -1,3 +1,4 @@ +using System; using Server.Items; using Server.Network; @@ -12,10 +13,7 @@ namespace Server.Gumps { int totalGold = from.TotalGold; - if (offer > totalGold) - offer = totalGold; - else if (offer < 0) - offer = 0; + offer = Math.Clamp(offer, 0, totalGold); m_From = from; m_Offer = offer; @@ -82,10 +80,7 @@ namespace Server.Gumps { int totalGold = m_From.TotalGold; - if (m_Offer > totalGold) - m_Offer = totalGold; - else if (m_Offer < 0) - m_Offer = 0; + m_Offer = Math.Clamp(m_Offer, 0, totalGold); if (m_From.TithingPoints + m_Offer > 100000) // TODO: What's the maximum? m_Offer = 100000 - m_From.TithingPoints; diff --git a/Projects/UOContent/Gumps/WhoGump.cs b/Projects/UOContent/Gumps/WhoGump.cs index 39d13eb17..c478926e3 100644 --- a/Projects/UOContent/Gumps/WhoGump.cs +++ b/Projects/UOContent/Gumps/WhoGump.cs @@ -110,7 +110,7 @@ namespace Server.Gumps public static List BuildList(Mobile owner, string rawFilter) { - string filter = string.IsNullOrWhiteSpace(rawFilter) ? null : rawFilter.Trim().ToLower(); + string filter = rawFilter.Trim().ToLower().IsNullOrDefault(null); List list = new List(); List states = TcpServer.Instances; @@ -137,12 +137,7 @@ namespace Server.Gumps { m_Page = page; - int count = m_Mobiles.Count - page * EntryCount; - - if (count < 0) - count = 0; - else if (count > EntryCount) - count = EntryCount; + int count = Math.Clamp(m_Mobiles.Count - page * EntryCount, 0, EntryCount); int totalHeight = OffsetSize + (EntryHeight + OffsetSize) * (count + 1); diff --git a/Projects/UOContent/Holiday Stuff/Halloween/2006/Engines/TrickOrTreat.cs b/Projects/UOContent/Holiday Stuff/Halloween/2006/Engines/TrickOrTreat.cs index b71f09738..189ff6e15 100644 --- a/Projects/UOContent/Holiday Stuff/Halloween/2006/Engines/TrickOrTreat.cs +++ b/Projects/UOContent/Holiday Stuff/Halloween/2006/Engines/TrickOrTreat.cs @@ -154,18 +154,14 @@ namespace Server.Engines.Events if (Utility.RandomDouble() > .10) { - switch (Utility.Random(3)) - { - case 0: - begged.Say(1076768); - break; /* Oooooh, aren't you cute! */ - case 1: - begged.Say(1076779); - break; /* All right...This better not spoil your dinner! */ - case 2: - begged.Say(1076778); - break; /* Here you go! Enjoy! */ - } + begged.Say( + Utility.Random(3) switch + { + 0 => 1076768, // Oooooh, aren't you cute! + 1 => 1076779, // All right...This better not spoil your dinner! + _ => 1076778 // Here you go! Enjoy! + } + ); if (Utility.RandomDouble() <= .01 && from.Skills.Begging.Value >= 100) { diff --git a/Projects/UOContent/Holiday Stuff/Halloween/2012/Engines/PlayerZombies.cs b/Projects/UOContent/Holiday Stuff/Halloween/2012/Engines/PlayerZombies.cs index c9e3303ba..5254190d1 100644 --- a/Projects/UOContent/Holiday Stuff/Halloween/2012/Engines/PlayerZombies.cs +++ b/Projects/UOContent/Holiday Stuff/Halloween/2012/Engines/PlayerZombies.cs @@ -211,17 +211,20 @@ namespace Server.Engines.Events public override void GenerateLoot() { - switch (Utility.Random(10)) - { - case 0: PackItem(new LeftArm()); break; - case 1: PackItem(new RightArm()); break; - case 2: PackItem(new Torso()); break; - case 3: PackItem(new Bone()); break; - case 4: PackItem(new RibCage()); break; - case 5: - if (m_DeadPlayer?.Deleted == false) PackItem(new PlayerBones(m_DeadPlayer.Name)); - break; - } + var deadPlayerExists = m_DeadPlayer?.Deleted == false; + + PackItem( + Utility.Random(deadPlayerExists ? 8 : 10) switch + { + 0 => new LeftArm(), + 1 => new RightArm(), + 2 => new Torso(), + 3 => new Bone(), + 4 => new RibCage(), + 9 => deadPlayerExists ? new PlayerBones(m_DeadPlayer.Name) : null, + _ => null // 5-8, 10 (50%) + } + ); AddLoot(LootPack.Meager); } @@ -237,10 +240,8 @@ namespace Server.Engines.Events public override void OnDelete() { - if (HalloweenHauntings.ReAnimated != null) - if (m_DeadPlayer?.Deleted == false) - if (HalloweenHauntings.ReAnimated.ContainsKey(m_DeadPlayer)) - HalloweenHauntings.ReAnimated.Remove(m_DeadPlayer); + if (m_DeadPlayer?.Deleted == false) + HalloweenHauntings.ReAnimated?.Remove(m_DeadPlayer); } public override void Serialize(IGenericWriter writer) diff --git a/Projects/UOContent/Items/Food/Beverage.cs b/Projects/UOContent/Items/Food/Beverage.cs index 24f21c620..acaddd9bb 100644 --- a/Projects/UOContent/Items/Food/Beverage.cs +++ b/Projects/UOContent/Items/Food/Beverage.cs @@ -606,12 +606,7 @@ namespace Server.Items get => m_Quantity; set { - if (value < 0) - value = 0; - else if (value > MaxQuantity) - value = MaxQuantity; - - m_Quantity = value; + m_Quantity = Math.Clamp(value, 0, MaxQuantity); InvalidateProperties(); @@ -854,10 +849,7 @@ namespace Server.Items _ => 0 }; - from.BAC += bac; - - if (from.BAC > 60) - from.BAC = 60; + from.BAC = Math.Min(from.BAC + bac, 60); CheckHeaveTimer(from); } @@ -1053,7 +1045,6 @@ namespace Server.Items public static void CheckHeaveTimer(Mobile from) { - Timer t; if (from.BAC > 0 && from.Map != Map.Internal && !from.Deleted) { if (m_Table.ContainsKey(from)) @@ -1062,12 +1053,12 @@ namespace Server.Items if (from.BAC > 60) from.BAC = 60; - t = new HeaveTimer(from); + Timer t = new HeaveTimer(from); t.Start(); m_Table[from] = t; } - else if (m_Table.TryGetValue(from, out t)) + else if (m_Table.TryGetValue(from, out var t)) { t.Stop(); m_Table.Remove(from); diff --git a/Projects/UOContent/Items/Misc/Origami.cs b/Projects/UOContent/Items/Misc/Origami.cs index 9676fd037..a62876a2d 100644 --- a/Projects/UOContent/Items/Misc/Origami.cs +++ b/Projects/UOContent/Items/Misc/Origami.cs @@ -23,9 +23,9 @@ namespace Server.Items { Delete(); - var i = Utility.Random(from.BAC >= 5 ? 6 : 5) switch + Item i = Utility.Random(from.BAC >= 5 ? 6 : 5) switch { - 0 => (Item)new OrigamiButterfly(), + 0 => new OrigamiButterfly(), 1 => new OrigamiSwan(), 2 => new OrigamiFrog(), 3 => new OrigamiShape(), diff --git a/Projects/UOContent/Items/Misc/PlayerBulletinBoards.cs b/Projects/UOContent/Items/Misc/PlayerBulletinBoards.cs index a71296938..ad3ac3271 100644 --- a/Projects/UOContent/Items/Misc/PlayerBulletinBoards.cs +++ b/Projects/UOContent/Items/Misc/PlayerBulletinBoards.cs @@ -565,10 +565,7 @@ namespace Server.Items AddHtml(255, 180, 150, 20, message.Time.ToString("yyyy-MM-dd HH:mm:ss")); Mobile poster = message.Poster; - string name = poster?.Name; - - if (name == null || (name = name.Trim()).Length == 0) - name = "Someone"; + string name = poster?.Name?.Trim().IsNullOrDefault("Someone"); AddHtml(255, 200, 150, 20, name); diff --git a/Projects/UOContent/Items/Skill Items/Magical/Misc/RecallRune.cs b/Projects/UOContent/Items/Skill Items/Magical/Misc/RecallRune.cs index f7d853b83..6fc8e1e31 100644 --- a/Projects/UOContent/Items/Skill Items/Magical/Misc/RecallRune.cs +++ b/Projects/UOContent/Items/Skill Items/Magical/Misc/RecallRune.cs @@ -168,13 +168,7 @@ namespace Server.Items { HouseSign sign = m_House.Sign; - if (sign != null) - m_Description = sign.Name; - else - m_Description = null; - - if (m_Description == null || (m_Description = m_Description.Trim()).Length == 0) - m_Description = "an unnamed house"; + m_Description = sign?.Name?.Trim().IsNullOrDefault("an unnamed house"); setDesc = true; @@ -233,10 +227,7 @@ namespace Server.Items { if (m_Marked) { - string desc; - - if ((desc = m_Description) == null || (desc = desc.Trim()).Length == 0) - desc = "an unknown location"; + string desc = m_Description?.Trim().IsNullOrDefault("an unknown location"); if (m_TargetMap == Map.Tokuno) LabelTo(from, House != null ? 1063260 : 1063259, diff --git a/Projects/UOContent/Items/Special/Heritage Items/FruitTrees.cs b/Projects/UOContent/Items/Special/Heritage Items/FruitTrees.cs index dfc8e6654..feea1373b 100644 --- a/Projects/UOContent/Items/Special/Heritage Items/FruitTrees.cs +++ b/Projects/UOContent/Items/Special/Heritage Items/FruitTrees.cs @@ -23,13 +23,7 @@ namespace Server.Items public int Fruits { get => m_Fruits; - set - { - if (value < 0) - m_Fruits = 0; - else - m_Fruits = value; - } + set => m_Fruits = Math.Max(value, 0); } public override void OnComponentUsed(AddonComponent c, Mobile from) @@ -209,4 +203,4 @@ namespace Server.Items int version = reader.ReadEncodedInt(); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Misc/CharacterCreation.cs b/Projects/UOContent/Misc/CharacterCreation.cs index a412f8a7d..4d21cf3d8 100644 --- a/Projects/UOContent/Misc/CharacterCreation.cs +++ b/Projects/UOContent/Misc/CharacterCreation.cs @@ -830,12 +830,7 @@ namespace Server.Misc private static void FixStat(ref int stat, int diff, int max) { - stat += diff; - - if (stat < 0) - stat = 0; - else if (stat > max) - stat = max; + stat = Math.Clamp(stat + diff, 0, max); } private static void SetStats(Mobile m, NetState state, int str, int dex, int intel) diff --git a/Projects/UOContent/Misc/CrashGuard.cs b/Projects/UOContent/Misc/CrashGuard.cs index 6b2e59495..1819caffb 100644 --- a/Projects/UOContent/Misc/CrashGuard.cs +++ b/Projects/UOContent/Misc/CrashGuard.cs @@ -163,12 +163,12 @@ namespace Server.Misc using (StreamWriter op = new StreamWriter(filePath)) { - Version ver = Core.Assembly.GetName().Version; + Version ver = Core.Assembly.GetName().Version ?? new Version("0.0.0.0"); op.WriteLine("Server Crash Report"); op.WriteLine("==================="); op.WriteLine(); - op.WriteLine("ModernUO Version {0}.{1}, Build {2}.{3}", ver.Major, ver.Minor, ver.Build, ver.Revision); + op.WriteLine($"ModernUO Version {ver.Major}.{ver.Minor}, Build {ver.Build}.{ver.Revision}"); op.WriteLine("Operating System: {0}", Environment.OSVersion); op.WriteLine(".NET Framework: {0}", Environment.Version); op.WriteLine("Time: {0}", DateTime.UtcNow); diff --git a/Projects/UOContent/Misc/Emitter.cs b/Projects/UOContent/Misc/Emitter.cs index b6f7f32bd..7e654b611 100644 --- a/Projects/UOContent/Misc/Emitter.cs +++ b/Projects/UOContent/Misc/Emitter.cs @@ -607,16 +607,11 @@ namespace Server public void BeginCall(MethodInfo method) { - Type type; - - if ((method.CallingConvention & CallingConventions.HasThis) != 0) - type = m_Stack.Peek(); - else - type = method.DeclaringType; + var type = (method.CallingConvention & CallingConventions.HasThis) != 0 ? m_Stack.Peek() : method.DeclaringType; m_Calls.Push(new CallInfo(type, method)); - if (type.IsValueType) + if (type!.IsValueType) { LocalBuilder temp = AcquireTemp(type); diff --git a/Projects/UOContent/Misc/Geometry.cs b/Projects/UOContent/Misc/Geometry.cs index dc7469e35..fffc1e12e 100644 --- a/Projects/UOContent/Misc/Geometry.cs +++ b/Projects/UOContent/Misc/Geometry.cs @@ -21,11 +21,7 @@ namespace Server.Misc { int sideA, sideB; - if (angle < 0) - angle = 0; - - if (angle > 90) - angle = 90; + angle = Math.Clamp(angle, 0, 90); sideA = (int)Math.Round(radius * Math.Sin(DegreesToRadians(angle))); sideB = (int)Math.Round(radius * Math.Cos(DegreesToRadians(angle))); @@ -218,4 +214,4 @@ namespace Server.Misc public int Quadrant { get; } } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Misc/ShrinkTable.cs b/Projects/UOContent/Misc/ShrinkTable.cs index 2d5b4e48b..aeff142c5 100644 --- a/Projects/UOContent/Misc/ShrinkTable.cs +++ b/Projects/UOContent/Misc/ShrinkTable.cs @@ -21,7 +21,7 @@ namespace Server int val = 0; - if (body >= 0 && body < m_Table.Length) + if (body >= 0 && body < m_Table!.Length) val = m_Table[body]; if (val == 0) diff --git a/Projects/UOContent/Misc/Titles.cs b/Projects/UOContent/Misc/Titles.cs index 53456166b..94c688dd3 100644 --- a/Projects/UOContent/Misc/Titles.cs +++ b/Projects/UOContent/Misc/Titles.cs @@ -114,20 +114,14 @@ namespace Server.Misc if (m.Fame >= MaxFame) return; - offset -= m.Fame / 100; - - if (offset < 0) - offset = 0; + offset = Math.Max(offset - m.Fame / 100, 0); } else if (offset < 0) { if (m.Fame <= MinFame) return; - offset -= m.Fame / 100; - - if (offset > 0) - offset = 0; + offset = Math.Min(offset - m.Fame / 100, 0); } if (m.Fame + offset > MaxFame) @@ -170,20 +164,14 @@ namespace Server.Misc if (m.Karma >= MaxKarma) return; - offset -= m.Karma / 100; - - if (offset < 0) - offset = 0; + offset = Math.Max(offset - m.Karma / 100, 0); } else if (offset < 0) { if (m.Karma <= MinKarma) return; - offset -= m.Karma / 100; - - if (offset > 0) - offset = 0; + offset = Math.Min(offset - m.Karma / 100, 0); } if (m.Karma + offset > MaxKarma) diff --git a/Projects/UOContent/Mobiles/AI/BaseAI.cs b/Projects/UOContent/Mobiles/AI/BaseAI.cs index 922c48142..41cd5a93e 100644 --- a/Projects/UOContent/Mobiles/AI/BaseAI.cs +++ b/Projects/UOContent/Mobiles/AI/BaseAI.cs @@ -2731,10 +2731,7 @@ namespace Server.Mobiles m_Owner.DetectHidden(); // Not exactly OSI style, approximation. - int delay = 15000 / m_Owner.m_Mobile.Int; - - if (delay > 60) - delay = 60; + int delay = Math.Min(15000 / m_Owner.m_Mobile.Int, 60); int min = delay * (9 / 10); // 13s at 1000 int, 33s at 400 int, 54s at <250 int int max = delay * (10 / 9); // 16s at 1000 int, 41s at 400 int, 66s at <250 int diff --git a/Projects/UOContent/Mobiles/AI/MageAI.cs b/Projects/UOContent/Mobiles/AI/MageAI.cs index 5f6408526..3fa9e4b8b 100644 --- a/Projects/UOContent/Mobiles/AI/MageAI.cs +++ b/Projects/UOContent/Mobiles/AI/MageAI.cs @@ -203,8 +203,8 @@ namespace Server.Mobiles public void OnFailedMove() { if (!m_Mobile.DisallowAllMoves && (SmartAI - ? Utility.Random(4) == 0 - : ScaleBySkill(TeleportChance, SkillName.Magery) > Utility.RandomDouble())) + ? Utility.Random(4) == 0 + : ScaleBySkill(TeleportChance, SkillName.Magery) > Utility.RandomDouble())) { m_Mobile.Target?.Cancel(m_Mobile, TargetCancelType.Canceled); @@ -275,16 +275,11 @@ namespace Server.Mobiles public virtual Spell GetRandomDamageSpellMage() { - int maxCircle = (int)((m_Mobile.Skills.Magery.Value + 20.0) / (100.0 / 7.0)); - - if (maxCircle < 1) - maxCircle = 1; - else if (maxCircle > 8) - maxCircle = 8; + int maxCircle = Math.Clamp((int)((m_Mobile.Skills.Magery.Value + 20.0) / (100.0 / 7.0)), 1, 8); return Utility.Random(maxCircle * 2) switch { - 0 => (Spell)new MagicArrowSpell(m_Mobile), + 0 => new MagicArrowSpell(m_Mobile), 1 => new MagicArrowSpell(m_Mobile), 2 => new HarmSpell(m_Mobile), 3 => new HarmSpell(m_Mobile), @@ -328,7 +323,7 @@ namespace Server.Mobiles return Utility.Random(3) switch { - 0 => (Spell)new WeakenSpell(m_Mobile), + 0 => new WeakenSpell(m_Mobile), 1 => new ClumsySpell(m_Mobile), _ => new FeeblemindSpell(m_Mobile) }; @@ -664,7 +659,7 @@ namespace Server.Mobiles { // We are low on health, should we flee? - bool flee = false; + bool flee; if (m_Mobile.Hits < c.Hits) { @@ -692,7 +687,7 @@ namespace Server.Mobiles { // We are ready to cast a spell - Spell spell = null; + Spell spell; Mobile toDispel = FindDispelTarget(true); if (m_Mobile.Poisoned) // Top cast priority is cure @@ -800,7 +795,7 @@ namespace Server.Mobiles public override bool DoActionFlee() { - Mobile c = m_Mobile.Combatant; + // Mobile c = m_Mobile.Combatant; if ((m_Mobile.Mana > 20 || m_Mobile.Mana == m_Mobile.ManaMax) && m_Mobile.Hits > m_Mobile.HitsMax / 2) { @@ -1014,74 +1009,64 @@ namespace Server.Mobiles { targ.Invoke(m_Mobile, m_RevealTarget); } - else if (isTeleport && toTarget != null) + else { Map map = m_Mobile.Map; - if (map == null) + if (map != null && isTeleport && toTarget != null) { - targ.Cancel(m_Mobile, TargetCancelType.Canceled); - return true; - } + int teleRange = targ.Range >= 0 ? targ.Range : Core.ML ? 11 : 12; - int px, py; + int px, py; - if (teleportAway) - { - int rx = m_Mobile.X - toTarget.X; - int ry = m_Mobile.Y - toTarget.Y; - - double d = m_Mobile.GetDistanceToSqrt(toTarget); - - px = toTarget.X + (int)(rx * (10 / d)); - py = toTarget.Y + (int)(ry * (10 / d)); - } - else - { - px = toTarget.X; - py = toTarget.Y; - } - - for (int i = 0; i < m_Offsets.Length; i += 2) - { - int x = m_Offsets[i], y = m_Offsets[i + 1]; - - Point3D p = new Point3D(px + x, py + y, 0); - - LandTarget lt = new LandTarget(p, map); - - if ((targ.Range == -1 || m_Mobile.InRange(p, targ.Range)) && m_Mobile.InLOS(lt) && - map.CanSpawnMobile(px + x, py + y, lt.Z) && !SpellHelper.CheckMulti(p, map)) + if (teleportAway) { - targ.Invoke(m_Mobile, lt); - return true; + int rx = m_Mobile.X - toTarget.X; + int ry = m_Mobile.Y - toTarget.Y; + + double d = m_Mobile.GetDistanceToSqrt(toTarget); + + px = toTarget.X + (int)(rx * (10 / d)); + py = toTarget.Y + (int)(ry * (10 / d)); + } + else + { + px = toTarget.X; + py = toTarget.Y; + } + + for (int i = 0; i < m_Offsets.Length; i += 2) + { + int x = m_Offsets[i], y = m_Offsets[i + 1]; + + Point3D p = new Point3D(px + x, py + y, 0); + + LandTarget lt = new LandTarget(p, map); + + if ((targ.Range == -1 || m_Mobile.InRange(p, targ.Range)) && m_Mobile.InLOS(lt) && + map.CanSpawnMobile(px + x, py + y, lt.Z) && !SpellHelper.CheckMulti(p, map)) + { + targ.Invoke(m_Mobile, lt); + return true; + } + } + + for (int i = 0; i < 10; ++i) + { + Point3D randomPoint = new Point3D(m_Mobile.X - teleRange + Utility.Random(teleRange * 2 + 1), + m_Mobile.Y - teleRange + Utility.Random(teleRange * 2 + 1), 0); + + LandTarget lt = new LandTarget(randomPoint, map); + + if (m_Mobile.InLOS(lt) && map.CanSpawnMobile(lt.X, lt.Y, lt.Z) && + !SpellHelper.CheckMulti(randomPoint, map)) + { + targ.Invoke(m_Mobile, new LandTarget(randomPoint, map)); + return true; + } } } - int teleRange = targ.Range; - - if (teleRange < 0) - teleRange = Core.ML ? 11 : 12; - - for (int i = 0; i < 10; ++i) - { - Point3D randomPoint = new Point3D(m_Mobile.X - teleRange + Utility.Random(teleRange * 2 + 1), - m_Mobile.Y - teleRange + Utility.Random(teleRange * 2 + 1), 0); - - LandTarget lt = new LandTarget(randomPoint, map); - - if (m_Mobile.InLOS(lt) && map.CanSpawnMobile(lt.X, lt.Y, lt.Z) && - !SpellHelper.CheckMulti(randomPoint, map)) - { - targ.Invoke(m_Mobile, new LandTarget(randomPoint, map)); - return true; - } - } - - targ.Cancel(m_Mobile, TargetCancelType.Canceled); - } - else - { targ.Cancel(m_Mobile, TargetCancelType.Canceled); } diff --git a/Projects/UOContent/Mobiles/Animals/Reptiles/IceSerpent.cs b/Projects/UOContent/Mobiles/Animals/Reptiles/IceSerpent.cs index 983e53a5f..4fa8d35b1 100644 --- a/Projects/UOContent/Mobiles/Animals/Reptiles/IceSerpent.cs +++ b/Projects/UOContent/Mobiles/Animals/Reptiles/IceSerpent.cs @@ -40,39 +40,18 @@ namespace Server.Mobiles PackItem(Loot.RandomArmorOrShieldOrWeapon()); - switch (Utility.Random(10)) - { - case 0: - PackItem(new LeftArm()); - break; - case 1: - PackItem(new RightArm()); - break; - case 2: - PackItem(new Torso()); - break; - case 3: - PackItem(new Bone()); - break; - case 4: - PackItem(new RibCage()); - break; - case 5: - PackItem(new RibCage()); - break; - case 6: - PackItem(new BonePile()); - break; - case 7: - PackItem(new BonePile()); - break; - case 8: - PackItem(new BonePile()); - break; - case 9: - PackItem(new BonePile()); - break; - } + PackItem( + Utility.Random(10) switch + { + 0 => new LeftArm(), + 1 => new RightArm(), + 2 => new Torso(), + 3 => new Bone(), + 4 => new RibCage(), + 5 => new RibCage(), + _ => new BonePile() // 6-9 + } + ); if (Utility.RandomDouble() < 0.025) PackItem(new GlacialStaff()); @@ -113,4 +92,4 @@ namespace Server.Mobiles BaseSoundID = 219; } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Mobiles/BaseCreature.cs b/Projects/UOContent/Mobiles/BaseCreature.cs index 4ee115c24..5b0059c94 100644 --- a/Projects/UOContent/Mobiles/BaseCreature.cs +++ b/Projects/UOContent/Mobiles/BaseCreature.cs @@ -445,67 +445,19 @@ namespace Server.Mobiles } [CommandProperty(AccessLevel.GameMaster)] - public override int HitsMax - { - get - { - if (HitsMaxSeed <= 0) - return Str; - - int value = HitsMaxSeed + GetStatOffset(StatType.Str); - - if (value < 1) - value = 1; - else if (value > 65000) - value = 65000; - - return value; - } - } + public override int HitsMax => HitsMaxSeed <= 0 ? Str : Math.Clamp(HitsMaxSeed + GetStatOffset(StatType.Str), 1, 65000); [CommandProperty(AccessLevel.GameMaster)] public int HitsMaxSeed { get; set; } = -1; [CommandProperty(AccessLevel.GameMaster)] - public override int StamMax - { - get - { - if (StamMaxSeed <= 0) - return Dex; - - int value = StamMaxSeed + GetStatOffset(StatType.Dex); - - if (value < 1) - value = 1; - else if (value > 65000) - value = 65000; - - return value; - } - } + public override int StamMax => StamMaxSeed <= 0 ? Dex : Math.Clamp(StamMaxSeed + GetStatOffset(StatType.Dex), 1, 65000); [CommandProperty(AccessLevel.GameMaster)] public int StamMaxSeed { get; set; } = -1; [CommandProperty(AccessLevel.GameMaster)] - public override int ManaMax - { - get - { - if (ManaMaxSeed <= 0) - return Int; - - int value = ManaMaxSeed + GetStatOffset(StatType.Int); - - if (value < 1) - value = 1; - else if (value > 65000) - value = 65000; - - return value; - } - } + public override int ManaMax => ManaMaxSeed <= 0 ? Int : Math.Clamp((ManaMaxSeed + GetStatOffset(StatType.Int)), 1, 65000); [CommandProperty(AccessLevel.GameMaster)] public int ManaMaxSeed { get; set; } = -1; @@ -4764,9 +4716,11 @@ namespace Server.Mobiles public void PackItem(Item item) { - if (Summoned || item == null) + if (item == null) return; + + if (Summoned) { - item?.Delete(); + item.Delete(); return; } diff --git a/Projects/UOContent/Mobiles/Guards/WarriorGuard.cs b/Projects/UOContent/Mobiles/Guards/WarriorGuard.cs index 96b3420cd..d6041a03a 100644 --- a/Projects/UOContent/Mobiles/Guards/WarriorGuard.cs +++ b/Projects/UOContent/Mobiles/Guards/WarriorGuard.cs @@ -24,34 +24,18 @@ namespace Server.Mobiles Body = 0x191; Name = NameList.RandomName("female"); - switch (Utility.Random(2)) - { - case 0: - AddItem(new LeatherSkirt()); - break; - case 1: - AddItem(new LeatherShorts()); - break; - } + AddItem(Utility.RandomBool() ? (Item)new LeatherSkirt() : new LeatherShorts()); - switch (Utility.Random(5)) - { - case 0: - AddItem(new FemaleLeatherChest()); - break; - case 1: - AddItem(new FemaleStuddedChest()); - break; - case 2: - AddItem(new LeatherBustierArms()); - break; - case 3: - AddItem(new StuddedBustierArms()); - break; - case 4: - AddItem(new FemalePlateChest()); - break; - } + AddItem( + Utility.Random(5) switch + { + 0 => new FemaleLeatherChest(), + 1 => new FemaleStuddedChest(), + 2 => new LeatherBustierArms(), + 3 => new StuddedBustierArms(), + _ => new FemalePlateChest(), // 4 + } + ); } else { @@ -62,18 +46,14 @@ namespace Server.Mobiles AddItem(new PlateArms()); AddItem(new PlateLegs()); - switch (Utility.Random(3)) - { - case 0: - AddItem(new Doublet(Utility.RandomNondyedHue())); - break; - case 1: - AddItem(new Tunic(Utility.RandomNondyedHue())); - break; - case 2: - AddItem(new BodySash(Utility.RandomNondyedHue())); - break; - } + AddItem( + Utility.Random(3) switch + { + 0 => new Doublet(Utility.RandomNondyedHue()), + 1 => new Tunic(Utility.RandomNondyedHue()), + _ => new BodySash(Utility.RandomNondyedHue()) // 3 + } + ); } Utility.AssignRandomHair(this); diff --git a/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/Brigand.cs b/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/Brigand.cs index 6c872aeed..005b042e2 100644 --- a/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/Brigand.cs +++ b/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/Brigand.cs @@ -44,30 +44,18 @@ namespace Server.Mobiles AddItem(new FancyShirt()); AddItem(new Bandana()); - switch (Utility.Random(7)) - { - case 0: - AddItem(new Longsword()); - break; - case 1: - AddItem(new Cutlass()); - break; - case 2: - AddItem(new Broadsword()); - break; - case 3: - AddItem(new Axe()); - break; - case 4: - AddItem(new Club()); - break; - case 5: - AddItem(new Dagger()); - break; - case 6: - AddItem(new Spear()); - break; - } + AddItem( + Utility.Random(7) switch + { + 0 => new Longsword(), + 1 => new Cutlass(), + 2 => new Broadsword(), + 3 => new Axe(), + 4 => new Club(), + 5 => new Dagger(), + _ => new Spear() // 6 + } + ); Utility.AssignRandomHair(this); } @@ -107,4 +95,4 @@ namespace Server.Mobiles int version = reader.ReadInt(); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/ElfBrigand.cs b/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/ElfBrigand.cs index 0cb287c8d..dfa9b0e7b 100644 --- a/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/ElfBrigand.cs +++ b/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/ElfBrigand.cs @@ -51,48 +51,30 @@ namespace Server.Mobiles Fame = 1000; Karma = -1000; - switch (Utility.Random(4)) - { - case 0: - AddItem(new Boots()); - break; - case 1: - AddItem(new ThighBoots()); - break; - case 2: - AddItem(new Sandals()); - break; - case 3: - AddItem(new Shoes()); - break; - } + AddItem( + Utility.Random(4) switch + { + 0 => new Boots(), + 1 => new ThighBoots(), + 2 => new Sandals(), + _ => new Shoes() // 3 + } + ); AddItem(new Shirt(Utility.RandomNondyedHue())); - switch (Utility.Random(7)) - { - case 0: - AddItem(new Longsword()); - break; - case 1: - AddItem(new Cutlass()); - break; - case 2: - AddItem(new Broadsword()); - break; - case 3: - AddItem(new Axe()); - break; - case 4: - AddItem(new Club()); - break; - case 5: - AddItem(new Dagger()); - break; - case 6: - AddItem(new Spear()); - break; - } + AddItem( + Utility.Random(7) switch + { + 0 => new Longsword(), + 1 => new Cutlass(), + 2 => new Broadsword(), + 3 => new Axe(), + 4 => new Club(), + 5 => new Dagger(), + _ => new Spear() // 6 + } + ); Utility.AssignRandomHair(this); } diff --git a/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/Orc.cs b/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/Orc.cs index 5aca5fbe8..ce45b951a 100644 --- a/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/Orc.cs +++ b/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/Orc.cs @@ -37,42 +37,29 @@ namespace Server.Mobiles VirtualArmor = 28; - switch (Utility.Random(20)) - { - case 0: - PackItem(new Scimitar()); - break; - case 1: - PackItem(new Katana()); - break; - case 2: - PackItem(new WarMace()); - break; - case 3: - PackItem(new WarHammer()); - break; - case 4: - PackItem(new Kryss()); - break; - case 5: - PackItem(new Pitchfork()); - break; - } + PackItem( + Utility.Random(20) switch + { + 0 => new Scimitar(), + 1 => new Katana(), + 2 => new WarMace(), + 3 => new WarHammer(), + 4 => new Kryss(), + 5 => new Pitchfork(), + _ => null // 6-19 + } + ); PackItem(new ThighBoots()); - switch (Utility.Random(3)) - { - case 0: - PackItem(new Ribs()); - break; - case 1: - PackItem(new Shaft()); - break; - case 2: - PackItem(new Candle()); - break; - } + PackItem( + Utility.Random(3) switch + { + 0 => new Ribs(), + 1 => new Shaft(), + _ => new Candle() // 2 + } + ); if (Utility.RandomDouble() < 0.2) PackItem(new BolaBall()); @@ -131,4 +118,4 @@ namespace Server.Mobiles int version = reader.ReadInt(); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/OrcCaptain.cs b/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/OrcCaptain.cs index 6b8d50f95..76ae76331 100644 --- a/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/OrcCaptain.cs +++ b/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/OrcCaptain.cs @@ -38,30 +38,18 @@ namespace Server.Mobiles VirtualArmor = 34; // TODO: Skull? - switch (Utility.Random(7)) - { - case 0: - PackItem(new Arrow()); - break; - case 1: - PackItem(new Lockpick()); - break; - case 2: - PackItem(new Shaft()); - break; - case 3: - PackItem(new Ribs()); - break; - case 4: - PackItem(new Bandage()); - break; - case 5: - PackItem(new BeverageBottle(BeverageType.Wine)); - break; - case 6: - PackItem(new Jug(BeverageType.Cider)); - break; - } + PackItem( + Utility.Random(7) switch + { + 0 => new Arrow(), + 1 => new Lockpick(), + 2 => new Shaft(), + 3 => new Ribs(), + 4 => new Bandage(), + 5 => new BeverageBottle(BeverageType.Wine), + _ => new Jug(BeverageType.Cider) // 6 + } + ); if (Core.AOS) PackItem(Loot.RandomNecromancyReagent()); @@ -128,4 +116,4 @@ namespace Server.Mobiles int version = reader.ReadInt(); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/OrcishLord.cs b/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/OrcishLord.cs index b99367d49..31f415e87 100644 --- a/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/OrcishLord.cs +++ b/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/OrcishLord.cs @@ -35,24 +35,16 @@ namespace Server.Mobiles Fame = 2500; Karma = -2500; - switch (Utility.Random(5)) - { - case 0: - PackItem(new Lockpick()); - break; - case 1: - PackItem(new MortarPestle()); - break; - case 2: - PackItem(new Bottle()); - break; - case 3: - PackItem(new RawRibs()); - break; - case 4: - PackItem(new Shovel()); - break; - } + PackItem( + Utility.Random(5) switch + { + 0 => new Lockpick(), + 1 => new MortarPestle(), + 2 => new Bottle(), + 3 => new RawRibs(), + _ => new Shovel() // 4 + } + ); PackItem(new RingmailChest()); @@ -120,4 +112,4 @@ namespace Server.Mobiles int version = reader.ReadInt(); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/SpectralArmour.cs b/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/SpectralArmour.cs index da2f4c816..665baea7c 100644 --- a/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/SpectralArmour.cs +++ b/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/SpectralArmour.cs @@ -10,18 +10,9 @@ namespace Server.Mobiles Body = 637; Hue = 0x8026; - Buckler buckler = new Buckler(); - ChainCoif coif = new ChainCoif(); - PlateGloves gloves = new PlateGloves(); - - buckler.Hue = 0x835; - buckler.Movable = false; - coif.Hue = 0x835; - gloves.Hue = 0x835; - - AddItem(buckler); - AddItem(coif); - AddItem(gloves); + AddItem(new Buckler{Movable = false, Hue = 0x835}); + AddItem(new ChainCoif{Hue = 0x835}); + AddItem(new PlateGloves{Hue = 0x835}); SetStr(101, 110); SetDex(101, 110); @@ -88,4 +79,4 @@ namespace Server.Mobiles int version = reader.ReadInt(); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/Zombie.cs b/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/Zombie.cs index c51e543d2..d891878a4 100644 --- a/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/Zombie.cs +++ b/Projects/UOContent/Mobiles/Monsters/Humanoid/Melee/Zombie.cs @@ -33,39 +33,18 @@ namespace Server.Mobiles VirtualArmor = 18; - switch (Utility.Random(10)) - { - case 0: - PackItem(new LeftArm()); - break; - case 1: - PackItem(new RightArm()); - break; - case 2: - PackItem(new Torso()); - break; - case 3: - PackItem(new Bone()); - break; - case 4: - PackItem(new RibCage()); - break; - case 5: - PackItem(new RibCage()); - break; - case 6: - PackItem(new BonePile()); - break; - case 7: - PackItem(new BonePile()); - break; - case 8: - PackItem(new BonePile()); - break; - case 9: - PackItem(new BonePile()); - break; - } + PackItem( + Utility.Random(10) switch + { + 0 => new LeftArm(), + 1 => new RightArm(), + 2 => new Torso(), + 3 => new Bone(), + 4 => new RibCage(), + 5 => new RibCage(), + _ => new BonePile() // 6-9 + } + ); } public Zombie(Serial serial) : base(serial) @@ -97,4 +76,4 @@ namespace Server.Mobiles int version = reader.ReadInt(); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Mobiles/Monsters/LBR/Jukas/ChaosDragoon.cs b/Projects/UOContent/Mobiles/Monsters/LBR/Jukas/ChaosDragoon.cs index 0a664ac58..756089bc5 100644 --- a/Projects/UOContent/Mobiles/Monsters/LBR/Jukas/ChaosDragoon.cs +++ b/Projects/UOContent/Mobiles/Monsters/LBR/Jukas/ChaosDragoon.cs @@ -47,76 +47,42 @@ namespace Server.Mobiles 2 => CraftResource.BlueScales, 3 => CraftResource.YellowScales, 4 => CraftResource.GreenScales, - 5 => CraftResource.WhiteScales, - _ => CraftResource.None + _ => CraftResource.WhiteScales // 5 }; var melee = Utility.Random(3) switch { 0 => (BaseWeapon)new Kryss(), 1 => new Broadsword(), - 2 => new Katana(), - _ => null + _ => new Katana() // 2 }; melee.Movable = false; AddItem(melee); - DragonHelm helm = new DragonHelm(); - helm.Resource = res; - helm.Movable = false; - AddItem(helm); - - DragonChest chest = new DragonChest(); - chest.Resource = res; - chest.Movable = false; - AddItem(chest); - - DragonArms arms = new DragonArms(); - arms.Resource = res; - arms.Movable = false; - AddItem(arms); - - DragonGloves gloves = new DragonGloves(); - gloves.Resource = res; - gloves.Movable = false; - AddItem(gloves); - - DragonLegs legs = new DragonLegs(); - legs.Resource = res; - legs.Movable = false; - AddItem(legs); - - ChaosShield shield = new ChaosShield(); - shield.Movable = false; - AddItem(shield); + AddItem(new DragonHelm {Resource = res, Movable = false}); + AddItem(new DragonChest {Resource = res, Movable = false}); + AddItem(new DragonArms {Resource = res, Movable = false}); + AddItem(new DragonGloves {Resource = res, Movable = false}); + AddItem(new DragonLegs {Resource = res, Movable = false}); + AddItem(new ChaosShield {Movable = false}); AddItem(new Shirt()); AddItem(new Boots()); int amount = Utility.RandomMinMax(1, 3); - switch (res) - { - case CraftResource.BlackScales: - AddItem(new BlackScales(amount)); - break; - case CraftResource.RedScales: - AddItem(new RedScales(amount)); - break; - case CraftResource.BlueScales: - AddItem(new BlueScales(amount)); - break; - case CraftResource.YellowScales: - AddItem(new YellowScales(amount)); - break; - case CraftResource.GreenScales: - AddItem(new GreenScales(amount)); - break; - case CraftResource.WhiteScales: - AddItem(new WhiteScales(amount)); - break; - } + AddItem( + res switch + { + CraftResource.BlackScales => new BlackScales(amount), + CraftResource.RedScales => new RedScales(amount), + CraftResource.BlueScales => new BlueScales(amount), + CraftResource.YellowScales => new YellowScales(amount), + CraftResource.GreenScales => new GreenScales(amount), + _ => new WhiteScales(amount) // CraftResource.WhiteScales + } + ); new SwampDragon().Rider = this; } @@ -178,4 +144,4 @@ namespace Server.Mobiles int version = reader.ReadInt(); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Mobiles/Monsters/LBR/Jukas/ChaosDragoonElite.cs b/Projects/UOContent/Mobiles/Monsters/LBR/Jukas/ChaosDragoonElite.cs index 075811a83..3c44718c1 100644 --- a/Projects/UOContent/Mobiles/Monsters/LBR/Jukas/ChaosDragoonElite.cs +++ b/Projects/UOContent/Mobiles/Monsters/LBR/Jukas/ChaosDragoonElite.cs @@ -39,7 +39,7 @@ namespace Server.Mobiles Fame = 8000; Karma = -8000; - CraftResource res = CraftResource.None; + CraftResource res; res = Utility.Random(6) switch { @@ -48,76 +48,42 @@ namespace Server.Mobiles 2 => CraftResource.BlueScales, 3 => CraftResource.YellowScales, 4 => CraftResource.GreenScales, - 5 => CraftResource.WhiteScales, - _ => res + _ => CraftResource.WhiteScales // 5 }; var melee = Utility.Random(3) switch { 0 => (BaseWeapon)new Kryss(), 1 => new Broadsword(), - 2 => new Katana(), - _ => null + _ => new Katana() // 2 }; melee.Movable = false; AddItem(melee); - DragonChest Tunic = new DragonChest(); - Tunic.Resource = res; - Tunic.Movable = false; - AddItem(Tunic); - - DragonLegs Legs = new DragonLegs(); - Legs.Resource = res; - Legs.Movable = false; - AddItem(Legs); - - DragonArms Arms = new DragonArms(); - Arms.Resource = res; - Arms.Movable = false; - AddItem(Arms); - - DragonGloves Gloves = new DragonGloves(); - Gloves.Resource = res; - Gloves.Movable = false; - AddItem(Gloves); - - DragonHelm Helm = new DragonHelm(); - Helm.Resource = res; - Helm.Movable = false; - AddItem(Helm); - - ChaosShield shield = new ChaosShield(); - shield.Movable = false; - AddItem(shield); + AddItem(new DragonChest {Resource = res, Movable = false}); + AddItem(new DragonLegs {Resource = res, Movable = false}); + AddItem(new DragonArms {Resource = res, Movable = false}); + AddItem(new DragonGloves {Resource = res, Movable = false}); + AddItem(new DragonHelm {Resource = res, Movable = false}); + AddItem(new ChaosShield {Movable = false}); AddItem(new Boots(0x455)); AddItem(new Shirt(Utility.RandomMetalHue())); int amount = Utility.RandomMinMax(1, 3); - switch (res) - { - case CraftResource.BlackScales: - AddItem(new BlackScales(amount)); - break; - case CraftResource.RedScales: - AddItem(new RedScales(amount)); - break; - case CraftResource.BlueScales: - AddItem(new BlueScales(amount)); - break; - case CraftResource.YellowScales: - AddItem(new YellowScales(amount)); - break; - case CraftResource.GreenScales: - AddItem(new GreenScales(amount)); - break; - case CraftResource.WhiteScales: - AddItem(new WhiteScales(amount)); - break; - } + AddItem( + res switch + { + CraftResource.BlackScales => new BlackScales(amount), + CraftResource.RedScales => new RedScales(amount), + CraftResource.BlueScales => new BlueScales(amount), + CraftResource.YellowScales => new YellowScales(amount), + CraftResource.GreenScales => new GreenScales(amount), + _ => new WhiteScales(amount) // CraftResource.WhiteScales + } + ); res = Utility.Random(9) switch { @@ -129,13 +95,10 @@ namespace Server.Mobiles 5 => CraftResource.Agapite, 6 => CraftResource.Verite, 7 => CraftResource.Valorite, - 8 => CraftResource.Iron, - _ => res + _ => CraftResource.Iron // 8 }; - SwampDragon mt = new SwampDragon(); - mt.HasBarding = true; - mt.BardingResource = res; + SwampDragon mt = new SwampDragon {HasBarding = true, BardingResource = res}; mt.BardingHP = mt.BardingMaxHP; mt.Rider = this; } diff --git a/Projects/UOContent/Mobiles/Monsters/LBR/Meers/MeerCaptain.cs b/Projects/UOContent/Mobiles/Monsters/LBR/Meers/MeerCaptain.cs index 2396e2554..a06479959 100644 --- a/Projects/UOContent/Mobiles/Monsters/LBR/Meers/MeerCaptain.cs +++ b/Projects/UOContent/Mobiles/Monsters/LBR/Meers/MeerCaptain.cs @@ -45,27 +45,17 @@ namespace Server.Mobiles pack.DropItem(new Bolt(Utility.RandomMinMax(10, 20))); pack.DropItem(new Bolt(Utility.RandomMinMax(10, 20))); - switch (Utility.Random(6)) - { - case 0: - pack.DropItem(new Broadsword()); - break; - case 1: - pack.DropItem(new Cutlass()); - break; - case 2: - pack.DropItem(new Katana()); - break; - case 3: - pack.DropItem(new Longsword()); - break; - case 4: - pack.DropItem(new Scimitar()); - break; - case 5: - pack.DropItem(new VikingSword()); - break; - } + AddItem( + Utility.Random(6) switch + { + 0 => new Longsword(), + 1 => new Cutlass(), + 2 => new Broadsword(), + 3 => new Katana(), + 4 => new Scimitar(), + _ => new VikingSword() // 5 + } + ); Container bag = new Bag(); @@ -164,4 +154,4 @@ namespace Server.Mobiles int version = reader.ReadInt(); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Mobiles/Monsters/ML/Special/Ilhenir.cs b/Projects/UOContent/Mobiles/Monsters/ML/Special/Ilhenir.cs index 4b17e58bc..85e514b2b 100644 --- a/Projects/UOContent/Mobiles/Monsters/ML/Special/Ilhenir.cs +++ b/Projects/UOContent/Mobiles/Monsters/ML/Special/Ilhenir.cs @@ -98,27 +98,17 @@ namespace Server.Mobiles public virtual void PackResources(int amount) { for (int i = 0; i < amount; i++) - switch (Utility.Random(6)) - { - case 0: - PackItem(new Blight()); - break; - case 1: - PackItem(new Scourge()); - break; - case 2: - PackItem(new Taint()); - break; - case 3: - PackItem(new Putrefication()); - break; - case 4: - PackItem(new Corruption()); - break; - case 5: - PackItem(new Muculent()); - break; - } + PackItem( + Utility.Random(6) switch + { + 0 => new Blight(), + 1 => new Scourge(), + 2 => new Taint(), + 3 => new Putrefication(), + 4 => new Corruption(), + _ => new Muculent() // 5 + } + ); } public virtual void PackItems(Item item, int amount) diff --git a/Projects/UOContent/Mobiles/Monsters/ML/Special/Meraktus.cs b/Projects/UOContent/Mobiles/Monsters/ML/Special/Meraktus.cs index 458563b7a..b5998afb5 100644 --- a/Projects/UOContent/Mobiles/Monsters/ML/Special/Meraktus.cs +++ b/Projects/UOContent/Mobiles/Monsters/ML/Special/Meraktus.cs @@ -89,27 +89,17 @@ namespace Server.Mobiles public virtual void PackResources(int amount) { for (int i = 0; i < amount; i++) - switch (Utility.Random(6)) - { - case 0: - PackItem(new Blight()); - break; - case 1: - PackItem(new Scourge()); - break; - case 2: - PackItem(new Taint()); - break; - case 3: - PackItem(new Putrefication()); - break; - case 4: - PackItem(new Corruption()); - break; - case 5: - PackItem(new Muculent()); - break; - } + PackItem( + Utility.Random(6) switch + { + 0 => new Blight(), + 1 => new Scourge(), + 2 => new Taint(), + 3 => new Putrefication(), + 4 => new Corruption(), + _ => new Muculent() // 5 + } + ); } public virtual void PackTalismans(int amount) @@ -129,18 +119,14 @@ namespace Server.Mobiles c.DropItem(new MalletAndChisel()); - switch (Utility.Random(3)) - { - case 0: - c.DropItem(new MinotaurHedge()); - break; - case 1: - c.DropItem(new BonePile()); - break; - case 2: - c.DropItem(new LightYarn()); - break; - } + c.DropItem( + Utility.Random(3) switch + { + 0 => new MinotaurHedge(), + 1 => new LightYarn(), + _ => new BonePile() // 2 + } + ); if (Utility.RandomBool()) c.DropItem(new TormentedChains()); @@ -179,8 +165,8 @@ namespace Server.Mobiles foreach (Mobile m in eable) { - if (m == this || !CanBeHarmful(m) || m.Deleted || (!m.Player && - !(m is BaseCreature creature && (creature.Controlled || creature.Summoned || creature.Team != Team)))) + if (m == this || !CanBeHarmful(m) || m.Deleted || !m.Player && + !(m is BaseCreature creature && (creature.Controlled || creature.Summoned || creature.Team != Team))) continue; if (m is PlayerMobile pm && pm.Mounted) diff --git a/Projects/UOContent/Mobiles/Monsters/Misc/Magic/ShadowWisp.cs b/Projects/UOContent/Mobiles/Monsters/Misc/Magic/ShadowWisp.cs index 19086787e..cf7e0ae55 100644 --- a/Projects/UOContent/Mobiles/Monsters/Misc/Magic/ShadowWisp.cs +++ b/Projects/UOContent/Mobiles/Monsters/Misc/Magic/ShadowWisp.cs @@ -38,39 +38,18 @@ namespace Server.Mobiles AddItem(new LightSource()); - switch (Utility.Random(10)) - { - case 0: - PackItem(new LeftArm()); - break; - case 1: - PackItem(new RightArm()); - break; - case 2: - PackItem(new Torso()); - break; - case 3: - PackItem(new Bone()); - break; - case 4: - PackItem(new RibCage()); - break; - case 5: - PackItem(new RibCage()); - break; - case 6: - PackItem(new BonePile()); - break; - case 7: - PackItem(new BonePile()); - break; - case 8: - PackItem(new BonePile()); - break; - case 9: - PackItem(new BonePile()); - break; - } + PackItem( + Utility.Random(10) switch + { + 0 => new LeftArm(), + 1 => new RightArm(), + 2 => new Torso(), + 3 => new Bone(), + 4 => new RibCage(), + 5 => new RibCage(), + _ => new BonePile() // 6-9 + } + ); } public ShadowWisp(Serial serial) : base(serial) @@ -94,4 +73,4 @@ namespace Server.Mobiles int version = reader.ReadInt(); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Mobiles/Monsters/SE/EliteNinja.cs b/Projects/UOContent/Mobiles/Monsters/SE/EliteNinja.cs index 6294da946..24f92ca24 100644 --- a/Projects/UOContent/Mobiles/Monsters/SE/EliteNinja.cs +++ b/Projects/UOContent/Mobiles/Monsters/SE/EliteNinja.cs @@ -61,33 +61,19 @@ namespace Server.Mobiles if (Utility.RandomDouble() < 0.33) AddItem(new SmokeBomb()); - switch (Utility.Random(8)) - { - case 0: - AddItem(new Tessen()); - break; - case 1: - AddItem(new Wakizashi()); - break; - case 2: - AddItem(new Nunchaku()); - break; - case 3: - AddItem(new Daisho()); - break; - case 4: - AddItem(new Sai()); - break; - case 5: - AddItem(new Tekagi()); - break; - case 6: - AddItem(new Kama()); - break; - case 7: - AddItem(new Katana()); - break; - } + AddItem( + Utility.Random(8) switch + { + 0 => new Tessen(), + 1 => new Wakizashi(), + 2 => new Nunchaku(), + 3 => new Daisho(), + 4 => new Sai(), + 5 => new Tekagi(), + 6 => new Kama(), + _ => new Katana() // 7 + } + ); Utility.AssignRandomHair(this); } @@ -130,4 +116,4 @@ namespace Server.Mobiles int version = reader.ReadInt(); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Mobiles/Monsters/SE/RevenantLion.cs b/Projects/UOContent/Mobiles/Monsters/SE/RevenantLion.cs index ff32cfef8..ad1ae4de9 100644 --- a/Projects/UOContent/Mobiles/Monsters/SE/RevenantLion.cs +++ b/Projects/UOContent/Mobiles/Monsters/SE/RevenantLion.cs @@ -39,39 +39,18 @@ namespace Server.Mobiles Karma = -4000; PackNecroReg(6, 8); - switch (Utility.Random(10)) - { - case 0: - PackItem(new LeftArm()); - break; - case 1: - PackItem(new RightArm()); - break; - case 2: - PackItem(new Torso()); - break; - case 3: - PackItem(new Bone()); - break; - case 4: - PackItem(new RibCage()); - break; - case 5: - PackItem(new RibCage()); - break; - case 6: - PackItem(new BonePile()); - break; - case 7: - PackItem(new BonePile()); - break; - case 8: - PackItem(new BonePile()); - break; - case 9: - PackItem(new BonePile()); - break; - } + PackItem( + Utility.Random(10) switch + { + 0 => new LeftArm(), + 1 => new RightArm(), + 2 => new Torso(), + 3 => new Bone(), + 4 => new RibCage(), + 5 => new RibCage(), + _ => new BonePile() // 6-9 + } + ); } public RevenantLion(Serial serial) : base(serial) @@ -117,4 +96,4 @@ namespace Server.Mobiles int version = reader.ReadInt(); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Mobiles/Monsters/SE/RuneBeetle.cs b/Projects/UOContent/Mobiles/Monsters/SE/RuneBeetle.cs index 0e4ff10af..2460721e2 100644 --- a/Projects/UOContent/Mobiles/Monsters/SE/RuneBeetle.cs +++ b/Projects/UOContent/Mobiles/Monsters/SE/RuneBeetle.cs @@ -45,39 +45,18 @@ namespace Server.Mobiles if (Utility.RandomDouble() < .25) PackItem(Seed.RandomBonsaiSeed()); - switch (Utility.Random(10)) - { - case 0: - PackItem(new LeftArm()); - break; - case 1: - PackItem(new RightArm()); - break; - case 2: - PackItem(new Torso()); - break; - case 3: - PackItem(new Bone()); - break; - case 4: - PackItem(new RibCage()); - break; - case 5: - PackItem(new RibCage()); - break; - case 6: - PackItem(new BonePile()); - break; - case 7: - PackItem(new BonePile()); - break; - case 8: - PackItem(new BonePile()); - break; - case 9: - PackItem(new BonePile()); - break; - } + PackItem( + Utility.Random(10) switch + { + 0 => new LeftArm(), + 1 => new RightArm(), + 2 => new Torso(), + 3 => new Bone(), + 4 => new RibCage(), + 5 => new RibCage(), + _ => new BonePile() // 6-9 + } + ); Tamable = true; ControlSlots = 3; diff --git a/Projects/UOContent/Mobiles/Monsters/SE/TsukiWolf.cs b/Projects/UOContent/Mobiles/Monsters/SE/TsukiWolf.cs index 11873ea74..bb81e8b5b 100644 --- a/Projects/UOContent/Mobiles/Monsters/SE/TsukiWolf.cs +++ b/Projects/UOContent/Mobiles/Monsters/SE/TsukiWolf.cs @@ -46,39 +46,18 @@ namespace Server.Mobiles if (Core.ML && Utility.RandomDouble() < .33) PackItem(Seed.RandomPeculiarSeed(1)); - switch (Utility.Random(10)) - { - case 0: - PackItem(new LeftArm()); - break; - case 1: - PackItem(new RightArm()); - break; - case 2: - PackItem(new Torso()); - break; - case 3: - PackItem(new Bone()); - break; - case 4: - PackItem(new RibCage()); - break; - case 5: - PackItem(new RibCage()); - break; - case 6: - PackItem(new BonePile()); - break; - case 7: - PackItem(new BonePile()); - break; - case 8: - PackItem(new BonePile()); - break; - case 9: - PackItem(new BonePile()); - break; - } + PackItem( + Utility.Random(10) switch + { + 0 => new LeftArm(), + 1 => new RightArm(), + 2 => new Torso(), + 3 => new Bone(), + 4 => new RibCage(), + 5 => new RibCage(), + _ => new BonePile() // 6-9 + } + ); } public TsukiWolf(Serial serial) diff --git a/Projects/UOContent/Mobiles/Monsters/SE/YomotsuElder.cs b/Projects/UOContent/Mobiles/Monsters/SE/YomotsuElder.cs index 05b50af4c..fa5a1cb80 100644 --- a/Projects/UOContent/Mobiles/Monsters/SE/YomotsuElder.cs +++ b/Projects/UOContent/Mobiles/Monsters/SE/YomotsuElder.cs @@ -39,31 +39,25 @@ namespace Server.Mobiles PackItem(new GreenGourd()); PackItem(new ExecutionersAxe()); - switch (Utility.Random(3)) - { - case 0: - PackItem(new LongPants()); - break; - case 1: - PackItem(new ShortPants()); - break; - } + PackItem( + Utility.Random(3) switch + { + 0 => new LongPants(), + 1 => new ShortPants(), + _ => null // 2 (30%) + } + ); - switch (Utility.Random(6)) - { - case 0: - PackItem(new Shoes()); - break; - case 1: - PackItem(new Sandals()); - break; - case 2: - PackItem(new Boots()); - break; - case 3: - PackItem(new ThighBoots()); - break; - } + PackItem( + Utility.Random(6) switch + { + 0 => new Shoes(), + 1 => new Sandals(), + 2 => new Boots(), + 3 => new ThighBoots(), + _ => null // 4-5 (30%) + } + ); if (Utility.RandomDouble() < .25) PackItem(Seed.RandomBonsaiSeed()); @@ -132,4 +126,4 @@ namespace Server.Mobiles public override int GetDeathSound() => 0x43A; } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Mobiles/Vendors/BaseVendor.cs b/Projects/UOContent/Mobiles/Vendors/BaseVendor.cs index 16907ac44..0fb06f55f 100644 --- a/Projects/UOContent/Mobiles/Vendors/BaseVendor.cs +++ b/Projects/UOContent/Mobiles/Vendors/BaseVendor.cs @@ -510,8 +510,7 @@ namespace Server.Mobiles 1 => Utility.RandomGreenHue(), 2 => Utility.RandomRedHue(), 3 => Utility.RandomYellowHue(), - 4 => Utility.RandomNeutralHue(), - _ => Utility.RandomBlueHue() + _ => Utility.RandomNeutralHue() // 4 }; } @@ -664,34 +663,24 @@ namespace Server.Mobiles public virtual void InitOutfit() { - switch (Utility.Random(3)) - { - case 0: - AddItem(new FancyShirt(GetRandomHue())); - break; - case 1: - AddItem(new Doublet(GetRandomHue())); - break; - case 2: - AddItem(new Shirt(GetRandomHue())); - break; - } + AddItem( + Utility.Random(3) switch + { + 0 => new FancyShirt(GetRandomHue()), + 1 => new Doublet(GetRandomHue()), + _ => new Shirt(GetRandomHue()) // 2 + } + ); - switch (ShoeType) - { - case VendorShoeType.Shoes: - AddItem(new Shoes(GetShoeHue())); - break; - case VendorShoeType.Boots: - AddItem(new Boots(GetShoeHue())); - break; - case VendorShoeType.Sandals: - AddItem(new Sandals(GetShoeHue())); - break; - case VendorShoeType.ThighBoots: - AddItem(new ThighBoots(GetShoeHue())); - break; - } + AddItem( + ShoeType switch + { + VendorShoeType.Shoes => new Shoes(GetShoeHue()), + VendorShoeType.Boots => new Boots(GetShoeHue()), + VendorShoeType.Sandals => new Sandals(GetShoeHue()), + _ => new ThighBoots(GetShoeHue()) // ThighBoots + } + ); int hairHue = GetHairHue(); @@ -699,31 +688,17 @@ namespace Server.Mobiles Utility.AssignRandomFacialHair(this, hairHue); if (Female) - switch (Utility.Random(6)) - { - case 0: - AddItem(new ShortPants(GetRandomHue())); - break; - case 1: - case 2: - AddItem(new Kilt(GetRandomHue())); - break; - case 3: - case 4: - case 5: - AddItem(new Skirt(GetRandomHue())); - break; - } + AddItem( + Utility.Random(6) switch + { + 0 => new ShortPants(GetRandomHue()), + 1 => new Kilt(GetRandomHue()), + 2 => new Kilt(GetRandomHue()), + _ => new Skirt(GetRandomHue()) // 3-5 + } + ); else - switch (Utility.Random(2)) - { - case 0: - AddItem(new LongPants(GetRandomHue())); - break; - case 1: - AddItem(new ShortPants(GetRandomHue())); - break; - } + AddItem(Utility.RandomBool() ? (Item)new LongPants(GetRandomHue()) : new ShortPants(GetRandomHue())); PackGold(100, 200); } diff --git a/Projects/UOContent/Mobiles/Vendors/GenericBuy.cs b/Projects/UOContent/Mobiles/Vendors/GenericBuy.cs index c33827d25..028b8c819 100644 --- a/Projects/UOContent/Mobiles/Vendors/GenericBuy.cs +++ b/Projects/UOContent/Mobiles/Vendors/GenericBuy.cs @@ -82,11 +82,7 @@ namespace Server.Mobiles public int Amount { get => m_Amount; - set - { - if (value < 0) value = 0; - m_Amount = value; - } + set => m_Amount = Math.Max(value, 0); } public int MaxAmount { get; set; } diff --git a/Projects/UOContent/Mobiles/Vendors/NPC/GypsyBanker.cs b/Projects/UOContent/Mobiles/Vendors/NPC/GypsyBanker.cs index 653a2823c..0d6d66f43 100644 --- a/Projects/UOContent/Mobiles/Vendors/NPC/GypsyBanker.cs +++ b/Projects/UOContent/Mobiles/Vendors/NPC/GypsyBanker.cs @@ -19,18 +19,15 @@ namespace Server.Mobiles { base.InitOutfit(); - switch (Utility.Random(4)) - { - case 0: - AddItem(new JesterHat(Utility.RandomBrightHue())); - break; - case 1: - AddItem(new Bandana(Utility.RandomBrightHue())); - break; - case 2: - AddItem(new SkullCap(Utility.RandomBrightHue())); - break; - } + AddItem( + Utility.Random(4) switch + { + 0 => new JesterHat(Utility.RandomBrightHue()), + 1 => new Bandana(Utility.RandomBrightHue()), + 2 => new SkullCap(Utility.RandomBrightHue()), + _ => null // 3 + } + ); Item item = FindItemOnLayer(Layer.Pants); @@ -82,4 +79,4 @@ namespace Server.Mobiles int version = reader.ReadInt(); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Mobiles/Vendors/NPC/GypsyMaiden.cs b/Projects/UOContent/Mobiles/Vendors/NPC/GypsyMaiden.cs index 2cdcb18f8..3527a7a4b 100644 --- a/Projects/UOContent/Mobiles/Vendors/NPC/GypsyMaiden.cs +++ b/Projects/UOContent/Mobiles/Vendors/NPC/GypsyMaiden.cs @@ -29,18 +29,15 @@ namespace Server.Mobiles { base.InitOutfit(); - switch (Utility.Random(4)) - { - case 0: - AddItem(new JesterHat(Utility.RandomBrightHue())); - break; - case 1: - AddItem(new Bandana(Utility.RandomBrightHue())); - break; - case 2: - AddItem(new SkullCap(Utility.RandomBrightHue())); - break; - } + AddItem( + Utility.Random(4) switch + { + 0 => new JesterHat(Utility.RandomBrightHue()), + 1 => new Bandana(Utility.RandomBrightHue()), + 2 => new SkullCap(Utility.RandomBrightHue()), + _ => null // 3 + } + ); if (Utility.RandomBool()) AddItem(new HalfApron(Utility.RandomBrightHue())); @@ -75,4 +72,4 @@ namespace Server.Mobiles int version = reader.ReadInt(); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Mobiles/Vendors/NPC/IronWorker.cs b/Projects/UOContent/Mobiles/Vendors/NPC/IronWorker.cs index 85dbcb294..14984225d 100644 --- a/Projects/UOContent/Mobiles/Vendors/NPC/IronWorker.cs +++ b/Projects/UOContent/Mobiles/Vendors/NPC/IronWorker.cs @@ -56,22 +56,17 @@ namespace Server.Mobiles if (item != null && !EquipItem(item)) { item.Delete(); - item = null; - } - switch (Utility.Random(3)) - { - case 0: - case 1: - AddItem(new JesterHat(Utility.RandomBrightHue())); - break; - case 2: - AddItem(new Bandana(Utility.RandomBrightHue())); - break; - } - - if (item == null) AddItem(new FullApron(Utility.RandomBrightHue())); + } + + AddItem( + Utility.Random(3) switch + { + 0 => new Bandana(Utility.RandomBrightHue()), + _ => new JesterHat(Utility.RandomBrightHue()), // 1-2 + } + ); AddItem(new Bascinet()); AddItem(new SmithHammer()); @@ -121,4 +116,4 @@ namespace Server.Mobiles int version = reader.ReadInt(); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Mobiles/Vendors/NPC/KeeperOfChivalry.cs b/Projects/UOContent/Mobiles/Vendors/NPC/KeeperOfChivalry.cs index 56cefb292..a534aea33 100644 --- a/Projects/UOContent/Mobiles/Vendors/NPC/KeeperOfChivalry.cs +++ b/Projects/UOContent/Mobiles/Vendors/NPC/KeeperOfChivalry.cs @@ -35,52 +35,30 @@ namespace Server.Mobiles AddItem(new StuddedGorget()); AddItem(new PlateLegs()); - switch (Utility.Random(4)) - { - case 0: - AddItem(new PlateHelm()); - break; - case 1: - AddItem(new NorseHelm()); - break; - case 2: - AddItem(new CloseHelm()); - break; - case 3: - AddItem(new Helmet()); - break; - } + AddItem( + Utility.Random(4) switch + { + 0 => new PlateHelm(), + 1 => new NorseHelm(), + 2 => new CloseHelm(), + _ => new Helmet() // 3 + } + ); - switch (Utility.Random(3)) - { - case 0: - AddItem(new BodySash(0x482)); - break; - case 1: - AddItem(new Doublet(0x482)); - break; - case 2: - AddItem(new Tunic(0x482)); - break; - } + AddItem( + Utility.Random(3) switch + { + 0 => new BodySash(0x482), + 1 => new Doublet(0x482), + _ => new Tunic(0x482) // 2 + } + ); AddItem(new Broadsword()); - Item shield = new MetalKiteShield(); + AddItem(new MetalKiteShield{Hue = Utility.RandomNondyedHue()}); - shield.Hue = Utility.RandomNondyedHue(); - - AddItem(shield); - - switch (Utility.Random(2)) - { - case 0: - AddItem(new Boots()); - break; - case 1: - AddItem(new ThighBoots()); - break; - } + AddItem(Utility.RandomBool() ? (Item)new Boots() : new ThighBoots()); PackGold(100, 200); } @@ -99,4 +77,4 @@ namespace Server.Mobiles int version = reader.ReadInt(); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Mobiles/Vendors/NPC/Vagabond.cs b/Projects/UOContent/Mobiles/Vendors/NPC/Vagabond.cs index 31b7ed73d..04d97f2fd 100644 --- a/Projects/UOContent/Mobiles/Vendors/NPC/Vagabond.cs +++ b/Projects/UOContent/Mobiles/Vendors/NPC/Vagabond.cs @@ -34,15 +34,9 @@ namespace Server.Mobiles if (Utility.RandomBool()) AddItem(new Cloak(Utility.RandomBrightHue())); - switch (Utility.Random(2)) - { - case 0: - AddItem(new SkullCap(Utility.RandomNeutralHue())); - break; - case 1: - AddItem(new Bandana(Utility.RandomNeutralHue())); - break; - } + AddItem( + Utility.RandomBool() ? (Item)new SkullCap(Utility.RandomNeutralHue()) : new Bandana(Utility.RandomNeutralHue()) + ); Utility.AssignRandomHair(this); Utility.AssignRandomFacialHair(this, HairHue); @@ -64,4 +58,4 @@ namespace Server.Mobiles int version = reader.ReadInt(); } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Multis/Boats/BaseBoat.cs b/Projects/UOContent/Multis/Boats/BaseBoat.cs index 9adac6165..577d64a3b 100644 --- a/Projects/UOContent/Multis/Boats/BaseBoat.cs +++ b/Projects/UOContent/Multis/Boats/BaseBoat.cs @@ -606,12 +606,7 @@ namespace Server.Multis return; } - newName = newName.Trim(); - - if (newName.Length == 0) - newName = null; - - Rename(newName); + Rename(newName.Trim().IsNullOrDefault(null)); } public DryDockResult CheckDryDock(Mobile from) @@ -723,14 +718,7 @@ namespace Server.Multis } if (e.Speech.Length > 8) - { - string newName = e.Speech.Substring(8).Trim(); - - if (newName.Length == 0) - newName = null; - - Rename(newName); - } + Rename(e.Speech.Substring(8).Trim().IsNullOrDefault(null)); } public void Rename(string newName) @@ -1234,8 +1222,8 @@ namespace Server.Multis int x = item.X - p.X + newComponents.Min.X; int y = item.Y - p.Y + newComponents.Min.Y; - return (x >= 0 && x < newComponents.Width && y >= 0 && y < newComponents.Height && - newComponents.Tiles[x][y].Length == 0) || Contains(item); + return x >= 0 && x < newComponents.Width && y >= 0 && y < newComponents.Height && + newComponents.Tiles[x][y].Length == 0 || Contains(item); }); eable.Free(); diff --git a/Projects/UOContent/Multis/Camps/BrigandCamp.cs b/Projects/UOContent/Multis/Camps/BrigandCamp.cs index 9dcf28eb1..9c152d0c9 100644 --- a/Projects/UOContent/Multis/Camps/BrigandCamp.cs +++ b/Projects/UOContent/Multis/Camps/BrigandCamp.cs @@ -22,9 +22,6 @@ namespace Server.Multis public override void AddComponents() { - BaseCreature bc; - // BaseEscortable be; - Visible = false; DecayDelay = TimeSpan.FromMinutes(5.0); @@ -55,18 +52,15 @@ namespace Server.Multis for (int i = 0; i < 4; i++) AddMobile(Brigands, 6, Utility.RandomMinMax(-7, 7), Utility.RandomMinMax(-7, 7), 0); - m_Prisoner = Utility.Random(2) switch + BaseCreature bc = Utility.Random(2) switch { - 0 => (Mobile)new Noble(), + 0 => new Noble(), _ => new SeekerOfAdventure() }; - // be = (BaseEscortable)m_Prisoner; - // be.m_Captive = true; - - bc = (BaseCreature)m_Prisoner; bc.IsPrisoner = true; bc.CantWalk = true; + m_Prisoner = bc; m_Prisoner.YellHue = Utility.RandomList(0x57, 0x67, 0x77, 0x87, 0x117); AddMobile(m_Prisoner, 2, Utility.RandomMinMax(-2, 2), Utility.RandomMinMax(-2, 2), 0); @@ -74,9 +68,9 @@ namespace Server.Multis private void AddCampChests() { - var chest = Utility.Random(3) switch + LockableContainer chest = Utility.Random(3) switch { - 0 => (LockableContainer)new MetalChest(), + 0 => new MetalChest(), 1 => new MetalGoldenChest(), _ => new WoodenChest() }; @@ -87,9 +81,9 @@ namespace Server.Multis AddItem(chest, -2, -2, 0); - var crates = Utility.Random(4) switch + LockableContainer crates = Utility.Random(4) switch { - 0 => (LockableContainer)new SmallCrate(), + 0 => new SmallCrate(), 1 => new MediumCrate(), 2 => new LargeCrate(), _ => new LockableBarrel() @@ -110,22 +104,16 @@ namespace Server.Multis crates.LiftOverride = true; - if (Utility.RandomDouble() < 0.8) - switch (Utility.Random(4)) + crates.DropItem( + Utility.Random(5) switch { - case 0: - crates.DropItem(new LesserCurePotion()); - break; - case 1: - crates.DropItem(new LesserExplosionPotion()); - break; - case 2: - crates.DropItem(new LesserHealPotion()); - break; - default: - crates.DropItem(new LesserPoisonPotion()); - break; + 0 => new LesserCurePotion(), + 1 => new LesserExplosionPotion(), + 2 => new LesserHealPotion(), + 3 => new LesserPoisonPotion(), + _ => null // 4 } + ); AddItem(crates, 2, 2, 0); } @@ -189,4 +177,4 @@ namespace Server.Multis } } } -} \ No newline at end of file +} diff --git a/Projects/UOContent/Multis/HouseTeleporter.cs b/Projects/UOContent/Multis/HouseTeleporter.cs index 39d9d94fc..ae8aba5d8 100644 --- a/Projects/UOContent/Multis/HouseTeleporter.cs +++ b/Projects/UOContent/Multis/HouseTeleporter.cs @@ -90,7 +90,7 @@ namespace Server.Items { Target = reader.ReadItem(); - if (version < 0) + if (version < 1) Level = SecureLevel.Anyone; break; diff --git a/Projects/UOContent/Skills/Stealth.cs b/Projects/UOContent/Skills/Stealth.cs index 30a0f9ebb..40b38520c 100644 --- a/Projects/UOContent/Skills/Stealth.cs +++ b/Projects/UOContent/Skills/Stealth.cs @@ -85,12 +85,7 @@ namespace Server.SkillHandlers else if (m.CheckSkill(SkillName.Stealth, -20.0 + armorRating * 2, (Core.AOS ? 60.0 : 80.0) + armorRating * 2)) { - int steps = (int)(m.Skills.Stealth.Value / (Core.AOS ? 5.0 : 10.0)); - - if (steps < 1) - steps = 1; - - m.AllowedStealthSteps = steps; + m.AllowedStealthSteps = Math.Max((int)(m.Skills.Stealth.Value / (Core.AOS ? 5.0 : 10.0)), 1); if (m is PlayerMobile pm) pm.IsStealthing = true; diff --git a/Projects/UOContent/Spells/Fifth/MindBlast.cs b/Projects/UOContent/Spells/Fifth/MindBlast.cs index c99bb1185..46d373ce0 100644 --- a/Projects/UOContent/Spells/Fifth/MindBlast.cs +++ b/Projects/UOContent/Spells/Fifth/MindBlast.cs @@ -57,13 +57,10 @@ namespace Server.Spells.Fifth SpellHelper.CheckReflect((int)Circle, ref from, ref target); - int damage = (int)((Caster.Skills.Magery.Value + Caster.Int) / 5); - - if (damage > 60) - damage = 60; + int damage = Math.Min((int)((Caster.Skills.Magery.Value + Caster.Int) / 5), 60); Timer.DelayCall(TimeSpan.FromSeconds(1.0), - () => AosDelay_Callback(Caster, target, m, damage)); + AosDelay_Callback, Caster, target, m, damage); } } else if (CheckHSequence(m)) @@ -96,10 +93,7 @@ namespace Server.Spells.Fifth if (lowestStat > 150) lowestStat = 150; - double damage = GetDamageScalar(m) * (highestStat - lowestStat) / 2; // Many users prefer 3 or 4 - - if (damage > 45) - damage = 45; + double damage = Math.Min(GetDamageScalar(m) * (highestStat - lowestStat) / 2, 45); // Many users prefer 3 or 4 if (CheckResisted(target)) {