diff --git a/Projects/Server.Tests/Tests/Network/Packets/Outgoing/PlayerPackets.cs b/Projects/Server.Tests/Tests/Network/Packets/Outgoing/PlayerPackets.cs index b078c9827..82dbd892d 100644 --- a/Projects/Server.Tests/Tests/Network/Packets/Outgoing/PlayerPackets.cs +++ b/Projects/Server.Tests/Tests/Network/Packets/Outgoing/PlayerPackets.cs @@ -1,6 +1,3 @@ -using System; -using Server.HuePickers; - namespace Server.Network { public sealed class StatLockInfo : Packet diff --git a/Projects/Server.Tests/Tests/Network/PipeTests.cs b/Projects/Server.Tests/Tests/Network/PipeTests.cs index 20e2fafe5..1885fa166 100644 --- a/Projects/Server.Tests/Tests/Network/PipeTests.cs +++ b/Projects/Server.Tests/Tests/Network/PipeTests.cs @@ -25,12 +25,12 @@ namespace Server.Tests.Network DelayedExecute(() => { -; // Write some data into the pipe - var result = writer.TryGetMemory(); - Assert.True(result.Buffer[0].Count == 99); - result.Buffer[0][0] = 0x1; - result.Buffer[0][1] = 0x2; - result.Buffer[0][2] = 0x3; + // Write some data into the pipe + var r = writer.TryGetMemory(); + Assert.True(r.Buffer[0].Count == 99); + r.Buffer[0][0] = 0x1; + r.Buffer[0][1] = 0x2; + r.Buffer[0][2] = 0x3; writer.Advance(3); writer.Flush(); diff --git a/Projects/UOContent/Commands/Object Creation/Add.cs b/Projects/UOContent/Commands/Object Creation/Add.cs index 7f0964875..092924edb 100644 --- a/Projects/UOContent/Commands/Object Creation/Add.cs +++ b/Projects/UOContent/Commands/Object Creation/Add.cs @@ -336,7 +336,7 @@ namespace Server.Commands { var built = ctor.Invoke(values); - if (built != null && realProps != null) + if (realProps != null) { var hadError = false; diff --git a/Projects/UOContent/Commands/Object Creation/DecorateMag.cs b/Projects/UOContent/Commands/Object Creation/DecorateMag.cs index 2d03a1a0f..5e01b3d1a 100644 --- a/Projects/UOContent/Commands/Object Creation/DecorateMag.cs +++ b/Projects/UOContent/Commands/Object Creation/DecorateMag.cs @@ -1138,7 +1138,7 @@ namespace Server.Commands while (m_DeleteQueue.Count > 0) { - ((Item)m_DeleteQueue.Dequeue()).Delete(); + ((Item)m_DeleteQueue.Dequeue())?.Delete(); } return res; diff --git a/Projects/UOContent/Commands/Profiling.cs b/Projects/UOContent/Commands/Profiling.cs index d73142a69..f6ff93610 100644 --- a/Projects/UOContent/Commands/Profiling.cs +++ b/Projects/UOContent/Commands/Profiling.cs @@ -136,7 +136,7 @@ namespace Server.Commands ); } - e.Mobile.SendMessage("Object table has been generated. See the file : /objects.log"); + e.Mobile.SendMessage("Object table has been generated. See the file : objects.log"); } [Usage("TraceExpanded"), Description("Generates a log file describing all items using expanded memory.")] diff --git a/Projects/UOContent/Engines/BulkOrders/SmallSmithBOD.cs b/Projects/UOContent/Engines/BulkOrders/SmallSmithBOD.cs index f253a98a6..940f4fdce 100644 --- a/Projects/UOContent/Engines/BulkOrders/SmallSmithBOD.cs +++ b/Projects/UOContent/Engines/BulkOrders/SmallSmithBOD.cs @@ -86,20 +86,13 @@ namespace Server.Engines.BulkOrders } var theirSkill = m.Skills.Blacksmith.Base; - int amountMax; - if (theirSkill >= 70.1) + int amountMax = theirSkill switch { - amountMax = Utility.RandomList(10, 15, 20, 20); - } - else if (theirSkill >= 50.1) - { - amountMax = Utility.RandomList(10, 15, 15, 20); - } - else - { - amountMax = Utility.RandomList(10, 10, 15, 20); - } + >= 70.1 => Utility.RandomList(10, 15, 20, 20), + >= 50.1 => Utility.RandomList(10, 15, 15, 20), + _ => Utility.RandomList(10, 10, 15, 20) + }; var material = BulkMaterialType.None; diff --git a/Projects/UOContent/Engines/BulkOrders/SmallTailorBOD.cs b/Projects/UOContent/Engines/BulkOrders/SmallTailorBOD.cs index 718af649c..60e678441 100644 --- a/Projects/UOContent/Engines/BulkOrders/SmallTailorBOD.cs +++ b/Projects/UOContent/Engines/BulkOrders/SmallTailorBOD.cs @@ -86,20 +86,12 @@ namespace Server.Engines.BulkOrders if (entries.Length > 0) { - int amountMax; - - if (theirSkill >= 70.1) + int amountMax = theirSkill switch { - amountMax = Utility.RandomList(10, 15, 20, 20); - } - else if (theirSkill >= 50.1) - { - amountMax = Utility.RandomList(10, 15, 15, 20); - } - else - { - amountMax = Utility.RandomList(10, 10, 15, 20); - } + >= 70.1 => Utility.RandomList(10, 15, 20, 20), + >= 50.1 => Utility.RandomList(10, 15, 15, 20), + _ => Utility.RandomList(10, 10, 15, 20) + }; var material = BulkMaterialType.None; diff --git a/Projects/UOContent/Engines/Doom/GauntletSpawner.cs b/Projects/UOContent/Engines/Doom/GauntletSpawner.cs index bc87fe3c6..68f83efdd 100644 --- a/Projects/UOContent/Engines/Doom/GauntletSpawner.cs +++ b/Projects/UOContent/Engines/Doom/GauntletSpawner.cs @@ -215,26 +215,14 @@ namespace Server.Engines.Doom var random = Utility.Random(100); - if (random < 22) + trap = random switch { - trap = new SawTrap(Utility.RandomBool() ? SawTrapType.WestFloor : SawTrapType.NorthFloor); - } - else if (random < 44) - { - trap = new SpikeTrap(Utility.RandomBool() ? SpikeTrapType.WestFloor : SpikeTrapType.NorthFloor); - } - else if (random < 66) - { - trap = new GasTrap(Utility.RandomBool() ? GasTrapType.NorthWall : GasTrapType.WestWall); - } - else if (random < 88) - { - trap = new FireColumnTrap(); - } - else - { - trap = new MushroomTrap(); - } + < 22 => new SawTrap(Utility.RandomBool() ? SawTrapType.WestFloor : SawTrapType.NorthFloor), + < 44 => new SpikeTrap(Utility.RandomBool() ? SpikeTrapType.WestFloor : SpikeTrapType.NorthFloor), + < 66 => new GasTrap(Utility.RandomBool() ? GasTrapType.NorthWall : GasTrapType.WestWall), + < 88 => new FireColumnTrap(), + _ => new MushroomTrap() + }; if (trap is FireColumnTrap || trap is MushroomTrap) { diff --git a/Projects/UOContent/Items/Armor/BaseArmor.cs b/Projects/UOContent/Items/Armor/BaseArmor.cs index 01178b99a..0ead02d2c 100644 --- a/Projects/UOContent/Items/Armor/BaseArmor.cs +++ b/Projects/UOContent/Items/Armor/BaseArmor.cs @@ -1489,26 +1489,15 @@ namespace Server.Items if (m_Resource == CraftResource.None) { - if (mat == ArmorMaterialType.Studded || mat == ArmorMaterialType.Leather) + m_Resource = mat switch { - m_Resource = CraftResource.RegularLeather; - } - else if (mat == ArmorMaterialType.Spined) - { - m_Resource = CraftResource.SpinedLeather; - } - else if (mat == ArmorMaterialType.Horned) - { - m_Resource = CraftResource.HornedLeather; - } - else if (mat == ArmorMaterialType.Barbed) - { - m_Resource = CraftResource.BarbedLeather; - } - else - { - m_Resource = CraftResource.Iron; - } + ArmorMaterialType.Studded => CraftResource.RegularLeather, + ArmorMaterialType.Leather => CraftResource.RegularLeather, + ArmorMaterialType.Spined => CraftResource.SpinedLeather, + ArmorMaterialType.Horned => CraftResource.HornedLeather, + ArmorMaterialType.Barbed => CraftResource.BarbedLeather, + _ => CraftResource.Iron + }; } if (m_MaxHitPoints == 0 && m_HitPoints == 0) diff --git a/Projects/UOContent/Items/Shields/BaseShield.cs b/Projects/UOContent/Items/Shields/BaseShield.cs index 165bb748f..93f4bcd35 100644 --- a/Projects/UOContent/Items/Shields/BaseShield.cs +++ b/Projects/UOContent/Items/Shields/BaseShield.cs @@ -1,3 +1,4 @@ +using System; using Server.Network; namespace Server.Items @@ -149,19 +150,7 @@ namespace Server.Items */ if (owner.CheckSkill(SkillName.Parry, chance)) { - if (weapon.Skill == SkillName.Archery) - { - damage -= (int)ar; - } - else - { - damage -= (int)(ar / 2.0); - } - - if (damage < 0) - { - damage = 0; - } + damage -= Math.Min(damage, weapon.Skill == SkillName.Archery ? (int)ar : (int)(ar / 2.0)); owner.FixedEffect(0x37B9, 10, 16); diff --git a/Projects/UOContent/Items/Weapons/Abilities/WeaponAbility.cs b/Projects/UOContent/Items/Weapons/Abilities/WeaponAbility.cs index 35cad337d..d348dbe4f 100644 --- a/Projects/UOContent/Items/Weapons/Abilities/WeaponAbility.cs +++ b/Projects/UOContent/Items/Weapons/Abilities/WeaponAbility.cs @@ -294,100 +294,33 @@ namespace Server.Items return false; } - string option = null; - - if (this is ArmorIgnore) + string option = this switch { - option = "Armor Ignore"; - } - else if (this is BleedAttack) - { - option = "Bleed Attack"; - } - else if (this is ConcussionBlow) - { - option = "Concussion Blow"; - } - else if (this is CrushingBlow) - { - option = "Crushing Blow"; - } - else if (this is Disarm) - { - option = "Disarm"; - } - else if (this is Dismount) - { - option = "Dismount"; - } - else if (this is DoubleStrike) - { - option = "Double Strike"; - } - else if (this is InfectiousStrike) - { - option = "Infectious Strike"; - } - else if (this is MortalStrike) - { - option = "Mortal Strike"; - } - else if (this is MovingShot) - { - option = "Moving Shot"; - } - else if (this is ParalyzingBlow) - { - option = "Paralyzing Blow"; - } - else if (this is ShadowStrike) - { - option = "Shadow Strike"; - } - else if (this is WhirlwindAttack) - { - option = "Whirlwind Attack"; - } - else if (this is RidingSwipe) - { - option = "Riding Swipe"; - } - else if (this is FrenziedWhirlwind) - { - option = "Frenzied Whirlwind"; - } - else if (this is Block) - { - option = "Block"; - } - else if (this is DefenseMastery) - { - option = "Defense Mastery"; - } - else if (this is NerveStrike) - { - option = "Nerve Strike"; - } - else if (this is TalonStrike) - { - option = "Talon Strike"; - } - else if (this is Feint) - { - option = "Feint"; - } - else if (this is DualWield) - { - option = "Dual Wield"; - } - else if (this is DoubleShot) - { - option = "Double Shot"; - } - else if (this is ArmorPierce) - { - option = "Armor Pierce"; - } + ArmorIgnore _ => "Armor Ignore", + BleedAttack _ => "Bleed Attack", + ConcussionBlow _ => "Concussion Blow", + CrushingBlow _ => "Crushing Blow", + Disarm _ => "Disarm", + Dismount _ => "Dismount", + DoubleStrike _ => "Double Strike", + InfectiousStrike _ => "Infectious Strike", + MortalStrike _ => "Mortal Strike", + MovingShot _ => "Moving Shot", + ParalyzingBlow _ => "Paralyzing Blow", + ShadowStrike _ => "Shadow Strike", + WhirlwindAttack _ => "Whirlwind Attack", + RidingSwipe _ => "Riding Swipe", + FrenziedWhirlwind _ => "Frenzied Whirlwind", + Block _ => "Block", + DefenseMastery _ => "Defense Mastery", + NerveStrike _ => "Nerve Strike", + TalonStrike _ => "Talon Strike", + Feint _ => "Feint", + DualWield _ => "Dual Wield", + DoubleShot _ => "Double Shot", + ArmorPierce _ => "Armor Pierce", + _ => null + }; if (option != null && !DuelContext.AllowSpecialAbility(from, option, true)) { diff --git a/Projects/UOContent/Misc/CharacterCreation.cs b/Projects/UOContent/Misc/CharacterCreation.cs index 733b1a2a7..032bc6221 100644 --- a/Projects/UOContent/Misc/CharacterCreation.cs +++ b/Projects/UOContent/Misc/CharacterCreation.cs @@ -865,24 +865,9 @@ namespace Server.Misc { var vMax = max - 30; - var vStr = str - 10; - var vDex = dex - 10; - var vInt = intel - 10; - - if (vStr < 0) - { - vStr = 0; - } - - if (vDex < 0) - { - vDex = 0; - } - - if (vInt < 0) - { - vInt = 0; - } + var vStr = Math.Max(str - 10, 0); + var vDex = Math.Max(dex - 10, 0); + var vInt = Math.Max(intel - 10, 0); var total = vStr + vDex + vInt; diff --git a/Projects/UOContent/Misc/LightCycle.cs b/Projects/UOContent/Misc/LightCycle.cs index f20b6cf5b..707200c24 100644 --- a/Projects/UOContent/Misc/LightCycle.cs +++ b/Projects/UOContent/Misc/LightCycle.cs @@ -80,27 +80,14 @@ namespace Server * 6:00 AM -> 9:59 PM : Day */ - if (hours < 4) + return hours switch { - return NightLevel; - } - - if (hours < 6) - { - return NightLevel + ((hours - 4) * 60 + minutes) * (DayLevel - NightLevel) / 120; - } - - if (hours < 22) - { - return DayLevel; - } - - if (hours < 24) - { - return DayLevel + ((hours - 22) * 60 + minutes) * (NightLevel - DayLevel) / 120; - } - - return NightLevel; // should never be + < 4 => NightLevel, + < 6 => NightLevel + ((hours - 4) * 60 + minutes) * (DayLevel - NightLevel) / 120, + < 22 => DayLevel, + < 24 => DayLevel + ((hours - 22) * 60 + minutes) * (NightLevel - DayLevel) / 120, + _ => NightLevel + }; } private class LightCycleTimer : Timer diff --git a/Projects/UOContent/Misc/LootPack.cs b/Projects/UOContent/Misc/LootPack.cs index ae9a7df59..585bc605b 100644 --- a/Projects/UOContent/Misc/LootPack.cs +++ b/Projects/UOContent/Misc/LootPack.cs @@ -841,7 +841,7 @@ namespace Server } else if (item is BaseInstrument instr) { - var slayer = SlayerName.None; + SlayerName slayer; if (Core.AOS) { diff --git a/Projects/UOContent/Misc/Weather.cs b/Projects/UOContent/Misc/Weather.cs index 3f93ff3fc..f02977ff2 100644 --- a/Projects/UOContent/Misc/Weather.cs +++ b/Projects/UOContent/Misc/Weather.cs @@ -329,16 +329,7 @@ namespace Server.Misc } else { - density = 150 - m_Stage * 5; - - if (density < 10) - { - density = 10; - } - else if (density > 70) - { - density = 70; - } + density = Math.Clamp(150 - m_Stage * 5, 10, 70); } if (density == 0) diff --git a/Projects/UOContent/Mobiles/BaseCreature.cs b/Projects/UOContent/Mobiles/BaseCreature.cs index 414af3bdc..798a1c435 100644 --- a/Projects/UOContent/Mobiles/BaseCreature.cs +++ b/Projects/UOContent/Mobiles/BaseCreature.cs @@ -1284,30 +1284,30 @@ namespace Server.Mobiles (int)((useBaseSkill ? m.Skills.AnimalTaming.Base : m.Skills.AnimalTaming.Value) * 10); var lore = (int)((useBaseSkill ? m.Skills.AnimalLore.Base : m.Skills.AnimalLore.Value) * 10); - int bonus, chance = 700; + int bonus; if (Core.ML) { - var SkillBonus = taming - (int)(dMinTameSkill * 10); - var LoreBonus = lore - (int)(dMinTameSkill * 10); + var skillBonus = taming - (int)(dMinTameSkill * 10); + var loreBonus = lore - (int)(dMinTameSkill * 10); - var SkillMod = 6; - var LoreMod = 6; + var skillMod = 6; + var loreMod = 6; - if (SkillBonus < 0) + if (skillBonus < 0) { - SkillMod = 28; + skillMod = 28; } - if (LoreBonus < 0) + if (loreBonus < 0) { - LoreMod = 14; + loreMod = 14; } - SkillBonus *= SkillMod; - LoreBonus *= LoreMod; + skillBonus *= skillMod; + loreBonus *= loreMod; - bonus = (SkillBonus + LoreBonus) / 2; + bonus = (skillBonus + loreBonus) / 2; } else { @@ -1325,16 +1325,16 @@ namespace Server.Mobiles } } - chance += bonus; + var chance = 700 + bonus; - if (chance >= 0 && chance < 200) - { - chance = 200; - } - else if (chance > 990) + if (chance > 990) { chance = 990; } + else if (chance >= 0) + { + chance = 220; + } chance -= (MaxLoyalty - m_Loyalty) * 10; diff --git a/Projects/UOContent/Mobiles/PlayerMobile.cs b/Projects/UOContent/Mobiles/PlayerMobile.cs index b35551720..ec99b39e4 100644 --- a/Projects/UOContent/Mobiles/PlayerMobile.cs +++ b/Projects/UOContent/Mobiles/PlayerMobile.cs @@ -52,7 +52,6 @@ namespace Server.Mobiles KarmaLocked = 0x00000020, AutoRenewInsurance = 0x00000040, UseOwnFilter = 0x00000080, - PublicMyRunUO = 0x00000100, PagingSquelched = 0x00000200, Young = 0x00000400, AcceptGuildInvites = 0x00000800, @@ -562,13 +561,6 @@ namespace Server.Mobiles set => SetFlag(PlayerFlag.UseOwnFilter, value); } - [CommandProperty(AccessLevel.GameMaster)] - public bool PublicMyRunUO - { - get => GetFlag(PlayerFlag.PublicMyRunUO); - set => SetFlag(PlayerFlag.PublicMyRunUO, value); - } - [CommandProperty(AccessLevel.GameMaster)] public bool AcceptGuildInvites { diff --git a/Projects/UOContent/Mobiles/Vendors/GenericSell.cs b/Projects/UOContent/Mobiles/Vendors/GenericSell.cs index d77eefe9a..b872683f3 100644 --- a/Projects/UOContent/Mobiles/Vendors/GenericSell.cs +++ b/Projects/UOContent/Mobiles/Vendors/GenericSell.cs @@ -15,17 +15,14 @@ namespace Server.Mobiles if (item is BaseArmor armor) { - if (armor.Quality == ArmorQuality.Low) + price = armor.Quality switch { - price = (int)(price * 0.60); - } - else if (armor.Quality == ArmorQuality.Exceptional) - { - price = (int)(price * 1.25); - } + ArmorQuality.Low => (int)(price * 0.60), + ArmorQuality.Exceptional => (int)(price * 1.25), + _ => price + }; price += 100 * (int)armor.Durability; - price += 100 * (int)armor.ProtectionLevel; if (price < 1) @@ -35,17 +32,14 @@ namespace Server.Mobiles } else if (item is BaseWeapon weapon) { - if (weapon.Quality == WeaponQuality.Low) + price = weapon.Quality switch { - price = (int)(price * 0.60); - } - else if (weapon.Quality == WeaponQuality.Exceptional) - { - price = (int)(price * 1.25); - } + WeaponQuality.Low => (int)(price * 0.60), + WeaponQuality.Exceptional => (int)(price * 1.25), + _ => price + }; price += 100 * (int)weapon.DurabilityLevel; - price += 100 * (int)weapon.DamageLevel; if (price < 1) diff --git a/Projects/UOContent/Mobiles/Vendors/NPC/RealEstateBroker.cs b/Projects/UOContent/Mobiles/Vendors/NPC/RealEstateBroker.cs index f0b0e9162..630dd95c4 100644 --- a/Projects/UOContent/Mobiles/Vendors/NPC/RealEstateBroker.cs +++ b/Projects/UOContent/Mobiles/Vendors/NPC/RealEstateBroker.cs @@ -126,66 +126,30 @@ namespace Server.Mobiles public int ComputePriceFor(HouseDeed deed) { - var price = 0; - - if (deed is SmallBrickHouseDeed || deed is StonePlasterHouseDeed || deed is FieldStoneHouseDeed || - deed is WoodHouseDeed || deed is WoodPlasterHouseDeed || - deed is ThatchedRoofCottageDeed) + var price = deed switch { - price = 43800; - } - else if (deed is BrickHouseDeed) - { - price = 144500; - } - else if (deed is TwoStoryWoodPlasterHouseDeed || deed is TwoStoryStonePlasterHouseDeed) - { - price = 192400; - } - else if (deed is TowerDeed) - { - price = 433200; - } - else if (deed is KeepDeed) - { - price = 665200; - } - else if (deed is CastleDeed) - { - price = 1022800; - } - else if (deed is LargePatioDeed) - { - price = 152800; - } - else if (deed is LargeMarbleDeed) - { - price = 192800; - } - else if (deed is SmallTowerDeed) - { - price = 88500; - } - else if (deed is LogCabinDeed) - { - price = 97800; - } - else if (deed is SandstonePatioDeed) - { - price = 90900; - } - else if (deed is VillaDeed) - { - price = 136500; - } - else if (deed is StoneWorkshopDeed) - { - price = 60600; - } - else if (deed is MarbleWorkshopDeed) - { - price = 60300; - } + SmallBrickHouseDeed => 43800, + StonePlasterHouseDeed => 43800, + FieldStoneHouseDeed => 43800, + WoodHouseDeed => 43800, + WoodPlasterHouseDeed => 43800, + ThatchedRoofCottageDeed => 43800, + BrickHouseDeed => 144500, + TwoStoryWoodPlasterHouseDeed => 192400, + TwoStoryStonePlasterHouseDeed => 192400, + TowerDeed => 433200, + KeepDeed => 665200, + CastleDeed => 1022800, + LargePatioDeed => 152800, + LargeMarbleDeed => 192800, + SmallTowerDeed => 88500, + LogCabinDeed => 97800, + SandstonePatioDeed => 90900, + VillaDeed => 136500, + StoneWorkshopDeed => 60600, + MarbleWorkshopDeed => 60300, + _ => 0 + }; return AOS.Scale(price, 80); // refunds 80% of the purchase price } diff --git a/Projects/UOContent/Mobiles/Vendors/NPC/Tailor.cs b/Projects/UOContent/Mobiles/Vendors/NPC/Tailor.cs index 89409a564..6b9e90375 100644 --- a/Projects/UOContent/Mobiles/Vendors/NPC/Tailor.cs +++ b/Projects/UOContent/Mobiles/Vendors/NPC/Tailor.cs @@ -50,18 +50,12 @@ namespace Server.Mobiles { var theirSkill = pm.Skills.Tailoring.Base; - if (theirSkill >= 70.1) + pm.NextTailorBulkOrder = theirSkill switch { - pm.NextTailorBulkOrder = TimeSpan.FromHours(6.0); - } - else if (theirSkill >= 50.1) - { - pm.NextTailorBulkOrder = TimeSpan.FromHours(2.0); - } - else - { - pm.NextTailorBulkOrder = TimeSpan.FromHours(1.0); - } + >= 70.1 => TimeSpan.FromHours(6.0), + >= 50.1 => TimeSpan.FromHours(2.0), + _ => TimeSpan.FromHours(1.0) + }; if (theirSkill >= 70.1 && (theirSkill - 40.0) / 300.0 > Utility.RandomDouble()) { diff --git a/Projects/UOContent/Mobiles/Vendors/PlayerVendor.cs b/Projects/UOContent/Mobiles/Vendors/PlayerVendor.cs index 91dba0404..04ed341e0 100644 --- a/Projects/UOContent/Mobiles/Vendors/PlayerVendor.cs +++ b/Projects/UOContent/Mobiles/Vendors/PlayerVendor.cs @@ -702,42 +702,22 @@ namespace Server.Mobiles { var item = Items[i]; - if (item is BaseHat) + item.Layer = item switch { - item.Layer = Layer.Helm; - } - else if (item is BaseMiddleTorso) - { - item.Layer = Layer.MiddleTorso; - } - else if (item is BaseOuterLegs) - { - item.Layer = Layer.OuterLegs; - } - else if (item is BaseOuterTorso) - { - item.Layer = Layer.OuterTorso; - } - else if (item is BasePants) - { - item.Layer = Layer.Pants; - } - else if (item is BaseShirt) - { - item.Layer = Layer.Shirt; - } - else if (item is BaseWaist) - { - item.Layer = Layer.Waist; - } - else if (item is BaseShoes) - { - if (item is Sandals) - { - item.Hue = 0; - } + BaseHat => Layer.Helm, + BaseMiddleTorso => Layer.MiddleTorso, + BaseOuterLegs => Layer.OuterLegs, + BaseOuterTorso => Layer.OuterTorso, + BasePants => Layer.Pants, + BaseShirt => Layer.Shirt, + BaseWaist => Layer.Waist, + BaseShoes => Layer.Shoes, + _ => item.Layer + }; - item.Layer = Layer.Shoes; + if (item is Sandals) + { + item.Hue = 0; } } } diff --git a/Projects/UOContent/Multis/BaseHouse.cs b/Projects/UOContent/Multis/BaseHouse.cs index f65afca8b..b4996ddd8 100644 --- a/Projects/UOContent/Multis/BaseHouse.cs +++ b/Projects/UOContent/Multis/BaseHouse.cs @@ -1840,12 +1840,14 @@ namespace Server.Multis { door = new GenericHouseDoor(GetSADoorFacing(itemID - 0x5142), itemID, 0xF0, 0xEF, false); } + // TODO: Fix this because the heuristic is broken, or remove the type calculation else if (itemID >= 0x9AD7 && itemID <= 0x9AE6) { var type = (itemID - 0x9AD7) / 16; var facing = (DoorFacing)((itemID - 0x9AD7) / 2 % 8); door = new GenericHouseDoor(facing, 0x9AD7 + type * 16, 0xED, 0xF4); } + // TODO: Fix this because the heuristic is broken, or remove the type calculation else if (itemID >= 0x9B3C && itemID <= 0x9B4B) { var type = (itemID - 0x9B3C) / 16; diff --git a/Projects/UOContent/Skills/ArmsLore.cs b/Projects/UOContent/Skills/ArmsLore.cs index e778dfe18..a01d9ea18 100644 --- a/Projects/UOContent/Skills/ArmsLore.cs +++ b/Projects/UOContent/Skills/ArmsLore.cs @@ -107,17 +107,7 @@ namespace Server.SkillHandlers { if (from.CheckTargetSkill(SkillName.ArmsLore, pet, 0, 100)) { - var perc = 4 * pet.BardingHP / pet.BardingMaxHP; - - if (perc < 0) - { - perc = 0; - } - else if (perc > 4) - { - perc = 4; - } - + var perc = Math.Clamp(4 * pet.BardingHP / pet.BardingMaxHP, 0, 4); pet.PrivateOverheadMessage(MessageType.Regular, 0x3B2, 1053021 - perc, from.NetState); } else diff --git a/Projects/UOContent/Skills/DetectHidden.cs b/Projects/UOContent/Skills/DetectHidden.cs index 2782e0a6e..099ed34ce 100644 --- a/Projects/UOContent/Skills/DetectHidden.cs +++ b/Projects/UOContent/Skills/DetectHidden.cs @@ -31,23 +31,13 @@ namespace Server.SkillHandlers { var foundAnyone = false; - Point3D p; - if (targ is Mobile mobile) + Point3D p = targ switch { - p = mobile.Location; - } - else if (targ is Item item) - { - p = item.Location; - } - else if (targ is IPoint3D d) - { - p = new Point3D(d); - } - else - { - p = src.Location; - } + Mobile mobile => mobile.Location, + Item item => item.Location, + IPoint3D d => new Point3D(d), + _ => src.Location + }; var srcSkill = src.Skills.DetectHidden.Value; var range = (int)(srcSkill / 10.0); diff --git a/Projects/UOContent/SpecialSystems/Engines/TestCenter.cs b/Projects/UOContent/SpecialSystems/Engines/TestCenter.cs index 27019fcaa..30d3d52cb 100644 --- a/Projects/UOContent/SpecialSystems/Engines/TestCenter.cs +++ b/Projects/UOContent/SpecialSystems/Engines/TestCenter.cs @@ -210,9 +210,9 @@ namespace Server.Misc { switch (info.ButtonID) { - case 1: // RunUO + case 1: { - sender.LaunchBrowser("https://github.com/runuo/"); + sender.LaunchBrowser("https://www.modernuo.com"); break; } case 2: // List of skills