diff --git a/Projects/Server/Serialization/BufferReader.cs b/Projects/Server/Serialization/BufferReader.cs index e04135db5..309ac26f4 100644 --- a/Projects/Server/Serialization/BufferReader.cs +++ b/Projects/Server/Serialization/BufferReader.cs @@ -37,7 +37,7 @@ namespace Server _encoding = encoding ?? TextEncoding.UTF8; } - public BufferReader(byte[] buffer, DateTime LastSerialized) : this(buffer) => LastSerialized = LastSerialized; + public BufferReader(byte[] buffer, DateTime lastSerialized) : this(buffer) => LastSerialized = lastSerialized; public void Reset(byte[] newBuffer, out byte[] oldBuffer) { @@ -47,7 +47,7 @@ namespace Server } // Compatible with BinaryReader.ReadString() - public DateTime LastSerialized { get; init; } = DateTime.MinValue; + public DateTime LastSerialized { get; init; } public string ReadString(bool intern = false) { diff --git a/Projects/Server/World/World.cs b/Projects/Server/World/World.cs index a5d57436a..1db4b3e30 100644 --- a/Projects/Server/World/World.cs +++ b/Projects/Server/World/World.cs @@ -525,7 +525,7 @@ namespace Server } [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static IEntity FindEntity(Serial serial, bool returnDeleted = false) => FindEntity(serial); + public static IEntity FindEntity(Serial serial, bool returnDeleted = false) => FindEntity(serial, returnDeleted); public static T FindEntity(Serial serial, bool returnDeleted = false) where T : class, IEntity { @@ -669,15 +669,17 @@ namespace Server if (typeof(BaseGuild).IsAssignableFrom(typeT)) { entity = FindGuild(serial) as T; + // If we check for `entity.Deleted` here during deserialization then all guilds are deleted because + // Deleted -> Disbanded -> No leader, which is the case before deserialization. + // TODO: Use a deleted flag instead, and actively check for dibanded guilds properly. } else { entity = FindEntity(serial) as T; - } - - if (entity?.Deleted == false) - { - return entity; + if (entity?.Deleted == false) + { + return entity; + } } return entity?.Created <= reader.LastSerialized ? entity : null; diff --git a/Projects/UOContent/Misc/Guild.cs b/Projects/UOContent/Misc/Guild.cs index dd891a8b1..a9902f759 100644 --- a/Projects/UOContent/Misc/Guild.cs +++ b/Projects/UOContent/Misc/Guild.cs @@ -661,15 +661,7 @@ namespace Server.Guilds public AllianceInfo Alliance { - get - { - if (m_AllianceInfo != null) - { - return m_AllianceInfo; - } - - return m_AllianceLeader?.m_AllianceInfo; - } + get => m_AllianceInfo ?? m_AllianceLeader?.m_AllianceInfo; set { var current = Alliance; diff --git a/Projects/UOContent/Spells/Base/Spell.cs b/Projects/UOContent/Spells/Base/Spell.cs index 85c8c4ceb..73afcba5b 100644 --- a/Projects/UOContent/Spells/Base/Spell.cs +++ b/Projects/UOContent/Spells/Base/Spell.cs @@ -790,9 +790,7 @@ namespace Server.Spells return false; } - public bool CheckBSequence(Mobile target) => CheckBSequence(target, false); - - public bool CheckBSequence(Mobile target, bool allowDead) + public bool CheckBSequence(Mobile target, bool allowDead = false) { if (!target.Alive && !allowDead) {