From 74f498c1c8b836ac886a435ed712107a761fe1e5 Mon Sep 17 00:00:00 2001 From: Kamron Batman <3953314+kamronbatman@users.noreply.github.com> Date: Sun, 9 Sep 2018 08:03:01 -0700 Subject: [PATCH] Fixes more casting --- Server/ContextMenus/ContextMenu.cs | 10 +- Server/Item.cs | 493 ++++++++++---------- Server/Items/Container.cs | 19 +- Server/Map.cs | 46 +- Server/Mobile.cs | 498 ++++++++------------- Server/Network/Listener.cs | 14 +- Server/Network/PacketHandlers.cs | 72 ++- Server/Network/Packets.cs | 37 +- Server/Persistence/ParallelSaveStrategy.cs | 19 +- Server/Random.cs | 6 +- Server/Region.cs | 6 +- Server/ScriptCompiler.cs | 4 +- Server/Sector.cs | 8 +- Server/Serial.cs | 14 +- Server/Serialization.cs | 53 +-- Server/Targeting/Target.cs | 61 +-- Server/World.cs | 26 +- 17 files changed, 581 insertions(+), 805 deletions(-) diff --git a/Server/ContextMenus/ContextMenu.cs b/Server/ContextMenus/ContextMenu.cs index 8e139a757..05f80b486 100644 --- a/Server/ContextMenus/ContextMenu.cs +++ b/Server/ContextMenus/ContextMenu.cs @@ -76,13 +76,13 @@ namespace Server.ContextMenus List list = new List(); - if ( target is Mobile ) + if ( target is Mobile mobile ) { - ((Mobile)target).GetContextMenuEntries( from, list ); + mobile.GetContextMenuEntries( from, list ); } - else if ( target is Item ) + else if ( target is Item item ) { - ((Item)target).GetContextMenuEntries( from, list ); + item.GetContextMenuEntries( from, list ); } //m_Entries = (ContextMenuEntry[])list.ToArray( typeof( ContextMenuEntry ) ); @@ -112,4 +112,4 @@ namespace Server.ContextMenus } } } -} \ No newline at end of file +} diff --git a/Server/Item.cs b/Server/Item.cs index edde48ed2..3e7662025 100644 --- a/Server/Item.cs +++ b/Server/Item.cs @@ -509,10 +509,8 @@ namespace Server return new BounceInfo( map, loc, worldLoc, parent ); } - else - { - return null; - } + + return null; } public static void Serialize( BounceInfo info, GenericWriter writer ) @@ -529,10 +527,10 @@ namespace Server writer.Write( info.m_Location ); writer.Write( info.m_WorldLoc ); - if ( info.m_Parent is Mobile ) - writer.Write( (Mobile) info.m_Parent ); - else if ( info.m_Parent is Item ) - writer.Write( (Item) info.m_Parent ); + if ( info.m_Parent is Mobile mobile ) + writer.Write( mobile ); + else if ( info.m_Parent is Item item ) + writer.Write( item ); else writer.Write( (Serial) 0 ); } @@ -797,23 +795,18 @@ namespace Server public List LookupItems() { - if ( this is Container ) - return ( this as Container ).m_Items; + if ( this is Container container ) + return container.m_Items; CompactInfo info = LookupCompactInfo(); - if ( info != null ) - return info.m_Items; - - return null; + return info?.m_Items; } public List AcquireItems() { - if ( this is Container ) + if ( this is Container cont ) { - Container cont = this as Container; - if ( cont.m_Items == null ) cont.m_Items = new List(); @@ -845,10 +838,7 @@ namespace Server { CompactInfo info = LookupCompactInfo(); - if ( info != null ) - return info.m_Bounce; - - return null; + return info?.m_Bounce; } public void RecordBounce() @@ -862,31 +852,24 @@ namespace Server { CompactInfo info = LookupCompactInfo(); - if ( info != null ) + BounceInfo bounce = info?.m_Bounce; + + if ( bounce != null ) { - BounceInfo bounce = info.m_Bounce; + info.m_Bounce = null; - if ( bounce != null ) + if ( bounce.m_Parent is Item parentItem ) { - info.m_Bounce = null; - - if ( bounce.m_Parent is Item ) - { - Item parent = (Item) bounce.m_Parent; - - if ( !parent.Deleted ) - parent.OnItemBounceCleared( this ); - } - else if ( bounce.m_Parent is Mobile ) - { - Mobile parent = (Mobile) bounce.m_Parent; - - if ( !parent.Deleted ) - parent.OnItemBounceCleared( this ); - } - - VerifyCompactInfo(); + if ( !parentItem.Deleted ) + parentItem.OnItemBounceCleared( this ); } + else if ( bounce.m_Parent is Mobile parentMobile ) + { + if ( !parentMobile.Deleted ) + parentMobile.OnItemBounceCleared( this ); + } + + VerifyCompactInfo(); } } @@ -1114,10 +1097,10 @@ namespace Server /// public virtual void GetChildProperties( ObjectPropertyList list, Item item ) { - if ( m_Parent is Item ) - ((Item)m_Parent).GetChildProperties( list, item ); - else if ( m_Parent is Mobile ) - ((Mobile)m_Parent).GetChildProperties( list, item ); + if ( m_Parent is Item parentItem ) + parentItem.GetChildProperties( list, item ); + else if ( m_Parent is Mobile parentMobile ) + parentMobile.GetChildProperties( list, item ); } /// @@ -1125,10 +1108,10 @@ namespace Server /// public virtual void GetChildNameProperties( ObjectPropertyList list, Item item ) { - if ( m_Parent is Item ) - ((Item)m_Parent).GetChildNameProperties( list, item ); - else if ( m_Parent is Mobile ) - ((Mobile)m_Parent).GetChildNameProperties( list, item ); + if ( m_Parent is Item parentItem ) + parentItem.GetChildNameProperties( list, item ); + else if ( m_Parent is Mobile parentMobile ) + parentMobile.GetChildNameProperties( list, item ); } public virtual bool IsChildVisibleTo( Mobile m, Item child ) @@ -1138,10 +1121,10 @@ namespace Server public void Bounce( Mobile from ) { - if ( m_Parent is Item ) - ((Item)m_Parent).RemoveItem( this ); - else if ( m_Parent is Mobile ) - ((Mobile)m_Parent).RemoveItem( this ); + if ( m_Parent is Item item ) + item.RemoveItem( this ); + else if ( m_Parent is Mobile mobile ) + mobile.RemoveItem( this ); m_Parent = null; @@ -1155,11 +1138,11 @@ namespace Server { MoveToWorld(bounce.m_WorldLoc, bounce.m_Map); } - else if ( parent is Item ) + else if ( parent is Item p ) { - Item p = (Item)parent; IEntity root = p.RootParent; - if ( p.IsAccessibleTo( from ) && ( !(root is Mobile) || ((Mobile)root).CheckNonlocalDrop( from, this, p ) ) ) + + if ( p.IsAccessibleTo( from ) && ( !(root is Mobile mobileRoot) || mobileRoot.CheckNonlocalDrop( from, this, p ) ) ) { Location = bounce.m_Location; p.AddItem( this ); @@ -1169,9 +1152,9 @@ namespace Server MoveToWorld( from.Location, from.Map ); } } - else if ( parent is Mobile ) + else if ( parent is Mobile parentMobile ) { - if ( !((Mobile)parent).EquipItem( this ) ) + if (!parentMobile.EquipItem( this )) MoveToWorld( bounce.m_WorldLoc, bounce.m_Map ); } else @@ -1220,18 +1203,18 @@ namespace Server public virtual void GetChildContextMenuEntries( Mobile from, List list, Item item ) { - if ( m_Parent is Item ) - ((Item)m_Parent).GetChildContextMenuEntries( from, list, item ); - else if ( m_Parent is Mobile ) - ((Mobile)m_Parent).GetChildContextMenuEntries( from, list, item ); + if ( m_Parent is Item parentItem ) + parentItem.GetChildContextMenuEntries( from, list, item ); + else if ( m_Parent is Mobile parentMobile ) + parentMobile.GetChildContextMenuEntries( from, list, item ); } public virtual void GetContextMenuEntries( Mobile from, List list ) { - if ( m_Parent is Item ) - ((Item)m_Parent).GetChildContextMenuEntries( from, list, this ); - else if ( m_Parent is Mobile ) - ((Mobile)m_Parent).GetChildContextMenuEntries( from, list, this ); + if ( m_Parent is Item item ) + item.GetChildContextMenuEntries( from, list, this ); + else if ( m_Parent is Mobile mobile ) + mobile.GetChildContextMenuEntries( from, list, this ); } public virtual bool VerifyMove( Mobile from ) @@ -1243,32 +1226,32 @@ namespace Server { if ( !Movable ) return DeathMoveResult.RemainEquipped; - else if ( parent.KeepsItemsOnDeath ) + if ( parent.KeepsItemsOnDeath ) return DeathMoveResult.MoveToBackpack; - else if ( CheckBlessed( parent ) ) + if ( CheckBlessed( parent ) ) return DeathMoveResult.MoveToBackpack; - else if ( CheckNewbied() && parent.Kills < 5 ) + if ( CheckNewbied() && parent.Kills < 5 ) return DeathMoveResult.MoveToBackpack; - else if ( parent.Player && Nontransferable ) + if ( parent.Player && Nontransferable ) return DeathMoveResult.MoveToBackpack; - else - return DeathMoveResult.MoveToCorpse; + + return DeathMoveResult.MoveToCorpse; } public virtual DeathMoveResult OnInventoryDeath( Mobile parent ) { if ( !Movable ) return DeathMoveResult.MoveToBackpack; - else if ( parent.KeepsItemsOnDeath ) + if ( parent.KeepsItemsOnDeath ) return DeathMoveResult.MoveToBackpack; - else if ( CheckBlessed( parent ) ) + if ( CheckBlessed( parent ) ) return DeathMoveResult.MoveToBackpack; - else if ( CheckNewbied() && parent.Kills < 5 ) + if ( CheckNewbied() && parent.Kills < 5 ) return DeathMoveResult.MoveToBackpack; - else if ( parent.Player && Nontransferable ) + if ( parent.Player && Nontransferable ) return DeathMoveResult.MoveToBackpack; - else - return DeathMoveResult.MoveToCorpse; + + return DeathMoveResult.MoveToCorpse; } /// @@ -1340,10 +1323,10 @@ namespace Server SetLastMoved(); - if ( Parent is Mobile ) - ((Mobile)Parent).RemoveItem( this ); - else if ( Parent is Item ) - ((Item)Parent).RemoveItem( this ); + if ( Parent is Mobile mobile ) + mobile.RemoveItem( this ); + else if ( Parent is Item item ) + item.RemoveItem( this ); if ( m_Map != map ) { @@ -1383,9 +1366,7 @@ namespace Server } m_Map = map; - - if ( m_Map != null ) - m_Map.OnEnter( this ); + m_Map?.OnEnter( this ); OnMapChange(); @@ -1690,18 +1671,18 @@ namespace Server public virtual void AppendChildProperties( ObjectPropertyList list ) { - if ( m_Parent is Item ) - ((Item)m_Parent).GetChildProperties( list, this ); - else if ( m_Parent is Mobile ) - ((Mobile)m_Parent).GetChildProperties( list, this ); + if ( m_Parent is Item item ) + item.GetChildProperties( list, this ); + else if ( m_Parent is Mobile mobile ) + mobile.GetChildProperties( list, this ); } public virtual void AppendChildNameProperties( ObjectPropertyList list ) { - if ( m_Parent is Item ) - ((Item)m_Parent).GetChildNameProperties( list, this ); - else if ( m_Parent is Mobile ) - ((Mobile)m_Parent).GetChildNameProperties( list, this ); + if ( m_Parent is Item item ) + item.GetChildNameProperties( list, this ); + else if ( m_Parent is Mobile mobile ) + mobile.GetChildNameProperties( list, this ); } public void ClearProperties() @@ -2052,7 +2033,7 @@ namespace Server if ( m_Direction != Direction.North ) flags |= SaveFlag.Direction; - if ( info != null && info.m_Bounce != null ) + if ( info?.m_Bounce != null ) flags |= SaveFlag.Bounce; if ( m_LootType != LootType.Regular ) flags |= SaveFlag.LootType; @@ -2064,7 +2045,7 @@ namespace Server flags |= SaveFlag.Amount; if ( m_Layer != Layer.Invalid ) flags |= SaveFlag.Layer; - if ( info != null && info.m_Name != null ) + if ( info?.m_Name != null ) flags |= SaveFlag.Name; if ( m_Parent != null ) flags |= SaveFlag.Parent; @@ -2074,12 +2055,16 @@ namespace Server flags |= SaveFlag.Map; //if ( m_InsuredFor != null && !m_InsuredFor.Deleted ) //flags |= SaveFlag.InsuredFor; - if ( info != null && info.m_BlessedFor != null && !info.m_BlessedFor.Deleted ) - flags |= SaveFlag.BlessedFor; - if ( info != null && info.m_HeldBy != null && !info.m_HeldBy.Deleted ) - flags |= SaveFlag.HeldBy; - if ( info != null && info.m_SavedFlags != 0 ) - flags |= SaveFlag.SavedFlags; + + if (info != null) + { + if ( info.m_BlessedFor != null && !info.m_BlessedFor.Deleted ) + flags |= SaveFlag.BlessedFor; + if ( info.m_HeldBy != null && !info.m_HeldBy.Deleted ) + flags |= SaveFlag.HeldBy; + if ( info.m_SavedFlags != 0 ) + flags |= SaveFlag.SavedFlags; + } if ( info == null || info.m_Weight == -1 ) { @@ -2761,12 +2746,14 @@ namespace Server { if ( !IsVirtualItem ) { - if ( m_Parent is Item ) - ( m_Parent as Item ).UpdateTotal( sender, type, delta ); - else if ( m_Parent is Mobile ) - ( m_Parent as Mobile ).UpdateTotal( sender, type, delta ); - else if ( this.HeldBy != null ) - ( this.HeldBy as Mobile ).UpdateTotal( sender, type, delta ); + if ( m_Parent is Item item ) + item.UpdateTotal( sender, type, delta ); + else if ( m_Parent is Mobile mobile ) + mobile.UpdateTotal( sender, type, delta ); + else + { + HeldBy?.UpdateTotal( sender, type, delta ); + } } } @@ -2780,8 +2767,8 @@ namespace Server { if ( m_ItemID < 0x4000 ) return 1020000 + m_ItemID; - else - return 1078872 + m_ItemID; + + return 1078872 + m_ItemID; } } @@ -2974,10 +2961,8 @@ namespace Server { break; } - else - { - p = item.m_Parent; - } + + p = item.m_Parent; } return false; @@ -2989,25 +2974,28 @@ namespace Server { return; } - else if ( item == this ) + + if ( item == this ) { Console.WriteLine( "Warning: Adding item to itself: [0x{0:X} {1}].AddItem( [0x{2:X} {3}] )", this.Serial.Value, this.GetType().Name, item.Serial.Value, item.GetType().Name ); Console.WriteLine( new System.Diagnostics.StackTrace() ); return; } - else if ( IsChildOf( item ) ) + + if ( IsChildOf( item ) ) { Console.WriteLine( "Warning: Adding parent item to child: [0x{0:X} {1}].AddItem( [0x{2:X} {3}] )", this.Serial.Value, this.GetType().Name, item.Serial.Value, item.GetType().Name ); Console.WriteLine( new System.Diagnostics.StackTrace() ); return; } - else if ( item.m_Parent is Mobile ) + + if ( item.m_Parent is Mobile parentMobile ) { - ((Mobile)item.m_Parent).RemoveItem( item ); + parentMobile.RemoveItem( item ); } - else if ( item.m_Parent is Item ) + else if ( item.m_Parent is Item parentItem ) { - ((Item)item.m_Parent).RemoveItem( item ); + parentItem.RemoveItem( item ); } else { @@ -3106,9 +3094,7 @@ namespace Server { bool sendOPLUpdate = ObjectPropertyList.Enabled && (flags & ItemDelta.Properties) != 0; - Container contParent = m_Parent as Container; - - if ( contParent != null && !contParent.IsPublicContainer ) + if ( m_Parent is Container contParent && !contParent.IsPublicContainer ) { if ( (flags & ItemDelta.Update) != 0 ) { @@ -3138,39 +3124,33 @@ namespace Server SecureTradeContainer stc = this.GetSecureTradeCont(); - if ( stc != null ) + SecureTrade st = stc?.Trade; + + if ( st != null ) { - SecureTrade st = stc.Trade; + Mobile test = st.From.Mobile; - if ( st != null ) + if ( test != null && test != rootParent ) + tradeRecip = test; + + test = st.To.Mobile; + + if ( test != null && test != rootParent ) + tradeRecip = test; + + NetState ns = tradeRecip?.NetState; + + if ( ns != null ) { - Mobile test = st.From.Mobile; - - if ( test != null && test != rootParent ) - tradeRecip = test; - - test = st.To.Mobile; - - if ( test != null && test != rootParent ) - tradeRecip = test; - - if ( tradeRecip != null ) + if ( tradeRecip.CanSee( this ) && tradeRecip.InRange( worldLoc, GetUpdateRange( tradeRecip ) ) ) { - NetState ns = tradeRecip.NetState; + if ( ns.ContainerGridLines ) + ns.Send( new ContainerContentUpdate6017( this ) ); + else + ns.Send( new ContainerContentUpdate( this ) ); - if ( ns != null ) - { - if ( tradeRecip.CanSee( this ) && tradeRecip.InRange( worldLoc, GetUpdateRange( tradeRecip ) ) ) - { - if ( ns.ContainerGridLines ) - ns.Send( new ContainerContentUpdate6017( this ) ); - else - ns.Send( new ContainerContentUpdate( this ) ); - - if ( ObjectPropertyList.Enabled ) - ns.Send( OPLPacket ); - } - } + if ( ObjectPropertyList.Enabled ) + ns.Send( OPLPacket ); } } } @@ -3359,7 +3339,8 @@ namespace Server { if ( Deleted ) return; - else if ( !World.OnDelete( this ) ) + + if ( !World.OnDelete( this ) ) return; OnDelete(); @@ -3379,10 +3360,10 @@ namespace Server SetFlag( ImplFlag.Deleted, true ); - if ( Parent is Mobile ) - ((Mobile)Parent).RemoveItem( this ); - else if ( Parent is Item ) - ((Item)Parent).RemoveItem( this ); + if ( Parent is Mobile mobile ) + mobile.RemoveItem( this ); + else if ( Parent is Item item ) + item.RemoveItem( this ); ClearBounce(); @@ -3516,11 +3497,7 @@ namespace Server { CompactInfo info = LookupCompactInfo(); - if (info != null) - return info.m_Spawner; - - return null; - + return info?.m_Spawner; } set { @@ -3702,7 +3679,7 @@ namespace Server { CompactInfo info = LookupCompactInfo(); - if ( info != null && info.m_Name != null ) + if ( info?.m_Name != null ) return info.m_Name; return this.DefaultName; @@ -3847,18 +3824,18 @@ namespace Server { if ( Deleted || from.Deleted || target.Deleted || from.Map != target.Map || from.Map == null || target.Map == null ) return false; - else if ( from.AccessLevel < AccessLevel.GameMaster && !from.InRange( target.Location, 2 ) ) + if ( from.AccessLevel < AccessLevel.GameMaster && !from.InRange( target.Location, 2 ) ) return false; - else if ( !from.CanSee( target ) || !from.InLOS( target ) ) + if ( !from.CanSee( target ) || !from.InLOS( target ) ) return false; - else if ( !from.OnDroppedItemToMobile( this, target ) ) + if ( !from.OnDroppedItemToMobile( this, target ) ) return false; - else if ( !OnDroppedToMobile( from, target ) ) + if ( !OnDroppedToMobile( from, target ) ) return false; - else if ( !target.OnDragDrop( from, this ) ) + if ( !target.OnDragDrop( from, this ) ) return false; - else - return true; + + return true; } public virtual bool OnDroppedInto( Mobile from, Container target, Point3D p ) @@ -3867,7 +3844,8 @@ namespace Server { return false; } - else if ( Nontransferable && from.Player && target != from.Backpack ) + + if ( Nontransferable && from.Player && target != from.Backpack ) { HandleInvalidTransfer( from ); return false; @@ -3880,21 +3858,21 @@ namespace Server { if ( Deleted || from.Deleted || target.Deleted || from.Map != target.Map || from.Map == null || target.Map == null ) return false; - else if ( from.AccessLevel < AccessLevel.GameMaster && !from.InRange( target.GetWorldLocation(), 2 ) ) + if ( from.AccessLevel < AccessLevel.GameMaster && !from.InRange( target.GetWorldLocation(), 2 ) ) return false; - else if ( !from.CanSee( target ) || !from.InLOS( target ) ) + if ( !from.CanSee( target ) || !from.InLOS( target ) ) return false; - else if ( !target.IsAccessibleTo( from ) ) + if ( !target.IsAccessibleTo( from ) ) return false; - else if ( !from.OnDroppedItemOnto( this, target ) ) + if ( !from.OnDroppedItemOnto( this, target ) ) return false; - else if ( Nontransferable && from.Player && target != from.Backpack ) + if ( Nontransferable && from.Player && target != from.Backpack ) { HandleInvalidTransfer( from ); return false; } - else - return target.OnDragDrop( from, this ); + + return target.OnDragDrop( from, this ); } public virtual bool DropToItem( Mobile from, Item target, Point3D p ) @@ -3906,18 +3884,18 @@ namespace Server if ( from.AccessLevel < AccessLevel.GameMaster && !from.InRange( target.GetWorldLocation(), 2 ) ) return false; - else if ( !from.CanSee( target ) || !from.InLOS( target ) ) + if ( !from.CanSee( target ) || !from.InLOS( target ) ) return false; - else if ( !target.IsAccessibleTo( from ) ) + if ( !target.IsAccessibleTo( from ) ) return false; - else if ( root is Mobile && !((Mobile)root).CheckNonlocalDrop( from, this, target ) ) + if ( root is Mobile mobile && !mobile.CheckNonlocalDrop( from, this, target ) ) return false; - else if ( !from.OnDroppedItemToItem( this, target, p ) ) + if ( !from.OnDroppedItemToItem( this, target, p ) ) return false; - else if ( target is Container && p.m_X != -1 && p.m_Y != -1 ) - return OnDroppedInto( from, (Container)target, p ); - else - return OnDroppedOnto( from, target ); + if ( target is Container container && p.m_X != -1 && p.m_Y != -1 ) + return OnDroppedInto( from, container, p ); + + return OnDroppedOnto( from, target ); } public virtual bool OnDroppedToWorld( Mobile from, Point3D p ) @@ -3942,7 +3920,8 @@ namespace Server { if ( Deleted || from.Deleted || from.Map == null ) return false; - else if ( !from.InRange( p, 2 ) ) + + if ( !from.InRange( p, 2 ) ) return false; Map map = from.Map; @@ -4112,7 +4091,8 @@ namespace Server if ( landAvg > z && (z + height) > landZ ) return false; - else if ( (landFlags & TileFlag.Impassable) != 0 && landAvg > surfaceZ && (z + height) > landZ ) + + if ( (landFlags & TileFlag.Impassable) != 0 && landAvg > surfaceZ && (z + height) > landZ ) return false; for ( int i = 0; i < tiles.Length; ++i ) @@ -4125,7 +4105,8 @@ namespace Server if ( checkTop > z && (z + height) > checkZ ) return false; - else if ( (id.Surface || id.Impassable) && checkTop > surfaceZ && (z + height) > checkZ ) + + if ( (id.Surface || id.Impassable) && checkTop > surfaceZ && (z + height) > checkZ ) return false; } @@ -4145,9 +4126,9 @@ namespace Server if ( !from.InLOS( new Point3D( x, y, z + 1 ) ) ) return false; - else if ( !from.OnDroppedItemToWorld( this, p ) ) + if ( !from.OnDroppedItemToWorld( this, p ) ) return false; - else if ( !OnDroppedToWorld( from, p ) ) + if ( !OnDroppedToWorld( from, p ) ) return false; int soundID = GetDropSound(); @@ -4204,8 +4185,8 @@ namespace Server if ( root == null ) return new Point3D( m_Location.m_X, m_Location.m_Y, m_Location.m_Z + (ItemData.Surface ? ItemData.CalcHeight : 0) ); - else - return root.Location; + + return root.Location; } public Point3D GetWorldTop() @@ -4214,8 +4195,8 @@ namespace Server if ( root == null ) return new Point3D( m_Location.m_X, m_Location.m_Y, m_Location.m_Z + ItemData.CalcHeight ); - else - return root.Location; + + return root.Location; } public void SendLocalizedMessageTo( Mobile to, int number ) @@ -4290,8 +4271,8 @@ namespace Server while ( p is Item ) { - if ( p is SecureTradeContainer ) - return (SecureTradeContainer)p; + if ( p is SecureTradeContainer container ) + return container; p = ((Item)p).m_Parent; } @@ -4301,66 +4282,66 @@ namespace Server public virtual void OnItemAdded( Item item ) { - if ( m_Parent is Item ) - ((Item)m_Parent).OnSubItemAdded( item ); - else if ( m_Parent is Mobile ) - ((Mobile)m_Parent).OnSubItemAdded( item ); + if ( m_Parent is Item parentItem ) + parentItem.OnSubItemAdded( item ); + else if ( m_Parent is Mobile parentMobile ) + parentMobile.OnSubItemAdded( item ); } public virtual void OnItemRemoved( Item item ) { - if ( m_Parent is Item ) - ((Item)m_Parent).OnSubItemRemoved( item ); - else if ( m_Parent is Mobile ) - ((Mobile)m_Parent).OnSubItemRemoved( item ); + if ( m_Parent is Item parentItem ) + parentItem.OnSubItemRemoved( item ); + else if ( m_Parent is Mobile parentMobile ) + parentMobile.OnSubItemRemoved( item ); } public virtual void OnSubItemAdded( Item item ) { - if ( m_Parent is Item ) - ((Item)m_Parent).OnSubItemAdded( item ); - else if ( m_Parent is Mobile ) - ((Mobile)m_Parent).OnSubItemAdded( item ); + if ( m_Parent is Item parentItem ) + parentItem.OnSubItemAdded( item ); + else if ( m_Parent is Mobile parentMobile ) + parentMobile.OnSubItemAdded( item ); } public virtual void OnSubItemRemoved( Item item ) { - if ( m_Parent is Item ) - ((Item)m_Parent).OnSubItemRemoved( item ); - else if ( m_Parent is Mobile ) - ((Mobile)m_Parent).OnSubItemRemoved( item ); + if ( m_Parent is Item parentItem ) + parentItem.OnSubItemRemoved( item ); + else if ( m_Parent is Mobile parentMobile ) + parentMobile.OnSubItemRemoved( item ); } public virtual void OnItemBounceCleared( Item item ) { - if ( m_Parent is Item ) - ((Item)m_Parent).OnSubItemBounceCleared( item ); - else if ( m_Parent is Mobile ) - ((Mobile)m_Parent).OnSubItemBounceCleared( item ); + if ( m_Parent is Item parentItem ) + parentItem.OnSubItemBounceCleared( item ); + else if ( m_Parent is Mobile parentMobile ) + parentMobile.OnSubItemBounceCleared( item ); } public virtual void OnSubItemBounceCleared( Item item ) { - if ( m_Parent is Item ) - ((Item)m_Parent).OnSubItemBounceCleared( item ); - else if ( m_Parent is Mobile ) - ((Mobile)m_Parent).OnSubItemBounceCleared( item ); + if ( m_Parent is Item parentItem ) + parentItem.OnSubItemBounceCleared( item ); + else if ( m_Parent is Mobile parentMobile ) + parentMobile.OnSubItemBounceCleared( item ); } public virtual bool CheckTarget( Mobile from, Server.Targeting.Target targ, object targeted ) { - if ( m_Parent is Item ) - return ((Item)m_Parent).CheckTarget( from, targ, targeted ); - else if ( m_Parent is Mobile ) - return ((Mobile)m_Parent).CheckTarget( from, targ, targeted ); + if ( m_Parent is Item item ) + return item.CheckTarget( from, targ, targeted ); + if ( m_Parent is Mobile mobile ) + return mobile.CheckTarget( from, targ, targeted ); return true; } public virtual bool IsAccessibleTo( Mobile check ) { - if ( m_Parent is Item ) - return ((Item)m_Parent).IsAccessibleTo( check ); + if ( m_Parent is Item item ) + return item.IsAccessibleTo( check ); Region reg = Region.Find( GetWorldLocation(), m_Map ); @@ -4394,16 +4375,12 @@ namespace Server Item item = (Item)p; if ( item.m_Parent == null ) - { break; - } - else - { - p = item.m_Parent; - if ( p == o ) - return true; - } + p = item.m_Parent; + + if ( p == o ) + return true; } return false; @@ -4419,10 +4396,10 @@ namespace Server public virtual void OnItemUsed( Mobile from, Item item ) { - if ( m_Parent is Item ) - ((Item)m_Parent).OnItemUsed( from, item ); - else if ( m_Parent is Mobile ) - ((Mobile)m_Parent).OnItemUsed( from, item ); + if ( m_Parent is Item parentItem ) + parentItem.OnItemUsed( from, item ); + else if ( m_Parent is Mobile parentMobile ) + parentMobile.OnItemUsed( from, item ); } public bool CheckItemUse( Mobile from ) @@ -4432,20 +4409,19 @@ namespace Server public virtual bool CheckItemUse( Mobile from, Item item ) { - if ( m_Parent is Item ) - return ((Item)m_Parent).CheckItemUse( from, item ); - else if ( m_Parent is Mobile ) - return ((Mobile)m_Parent).CheckItemUse( from, item ); - else - return true; + if ( m_Parent is Item parentItem ) + return parentItem.CheckItemUse( from, item ); + if ( m_Parent is Mobile parentMobile ) + return parentMobile.CheckItemUse( from, item ); + return true; } public virtual void OnItemLifted( Mobile from, Item item ) { - if ( m_Parent is Item ) - ((Item)m_Parent).OnItemLifted( from, item ); - else if ( m_Parent is Mobile ) - ((Mobile)m_Parent).OnItemLifted( from, item ); + if ( m_Parent is Item parentItem ) + parentItem.OnItemLifted( from, item ); + else if ( m_Parent is Mobile parentMobile ) + parentMobile.OnItemLifted( from, item ); } public bool CheckLift( Mobile from ) @@ -4457,12 +4433,13 @@ namespace Server public virtual bool CheckLift( Mobile from, Item item, ref LRReason reject ) { - if ( m_Parent is Item ) - return ((Item)m_Parent).CheckLift( from, item, ref reject ); - else if ( m_Parent is Mobile ) - return ((Mobile)m_Parent).CheckLift( from, item, ref reject ); - else - return true; + if ( m_Parent is Item parentItem ) + return parentItem.CheckLift( from, item, ref reject ); + + if ( m_Parent is Mobile parentMobile ) + return parentMobile.CheckLift( from, item, ref reject ); + + return true; } public virtual bool CanTarget{ get{ return true; } } @@ -4470,8 +4447,8 @@ namespace Server public virtual void OnSingleClickContained( Mobile from, Item item ) { - if ( m_Parent is Item ) - ((Item)m_Parent).OnSingleClickContained( from, item ); + if ( m_Parent is Item item1 ) + item1.OnSingleClickContained( from, item ); } public virtual void OnAosSingleClick( Mobile from ) @@ -4566,9 +4543,9 @@ namespace Server public virtual void ReplaceWith( Item newItem ) { - if ( m_Parent is Container ) + if ( m_Parent is Container container ) { - ((Container)m_Parent).AddItem( newItem ); + container.AddItem( newItem ); newItem.Location = m_Location; } else diff --git a/Server/Items/Container.cs b/Server/Items/Container.cs index 08771ef8e..6ac5f4f6e 100644 --- a/Server/Items/Container.cs +++ b/Server/Items/Container.cs @@ -108,14 +108,12 @@ namespace Server.Items { get { - if ( Parent is Container && ((Container)Parent).MaxWeight == 0 ) + if ( Parent is Container container && container.MaxWeight == 0 ) { return 0; } - else - { - return DefaultMaxWeight; - } + + return DefaultMaxWeight; } } @@ -225,12 +223,13 @@ namespace Server.Items while ( parent != null ) { - if ( parent is Container ) - return ((Container)parent).CheckHold( m, item, message, checkItems, plusItems, plusWeight ); - else if ( parent is Item ) - parent = ((Item)parent).Parent; - else + if ( parent is Container container ) + return container.CheckHold( m, item, message, checkItems, plusItems, plusWeight ); + + if ( !(parent is Item parentItem) ) break; + + parent = parentItem.Parent; } return true; diff --git a/Server/Map.cs b/Server/Map.cs index 54d02bed9..1dc57be9c 100644 --- a/Server/Map.cs +++ b/Server/Map.cs @@ -999,13 +999,12 @@ namespace Server GetSector( item ).OnEnter( item ); - if ( item is BaseMulti ) + if ( item is BaseMulti m ) { - BaseMulti m = (BaseMulti)item; MultiComponentList mcl = m.Components; - Sector start = GetMultiMinSector( item.Location, mcl ); - Sector end = GetMultiMaxSector( item.Location, mcl ); + Sector start = GetMultiMinSector( m.Location, mcl ); + Sector end = GetMultiMaxSector( m.Location, mcl ); AddMulti( m, start, end ); } @@ -1024,13 +1023,12 @@ namespace Server GetSector( item ).OnLeave( item ); - if ( item is BaseMulti ) + if ( item is BaseMulti m ) { - BaseMulti m = (BaseMulti)item; MultiComponentList mcl = m.Components; - Sector start = GetMultiMinSector( item.Location, mcl ); - Sector end = GetMultiMaxSector( item.Location, mcl ); + Sector start = GetMultiMinSector( m.Location, mcl ); + Sector end = GetMultiMaxSector( m.Location, mcl ); RemoveMulti( m, start, end ); } @@ -1095,13 +1093,12 @@ namespace Server newSector.OnEnter( item ); } - if ( item is BaseMulti ) + if ( item is BaseMulti m ) { - BaseMulti m = (BaseMulti)item; MultiComponentList mcl = m.Components; - Sector start = GetMultiMinSector( item.Location, mcl ); - Sector end = GetMultiMaxSector( item.Location, mcl ); + Sector start = GetMultiMinSector( m.Location, mcl ); + Sector end = GetMultiMaxSector( m.Location, mcl ); Sector oldStart = GetMultiMinSector( oldLocation, mcl ); Sector oldEnd = GetMultiMaxSector( oldLocation, mcl ); @@ -1310,39 +1307,38 @@ namespace Server { Point3D p; - if ( o is Mobile ) + if ( o is Mobile mobile ) { - p = ((Mobile)o).Location; + p = mobile.Location; p.Z += 14; //eye ? 15 : 10; } - else if ( o is Item ) + else if ( o is Item item ) { - p = ((Item)o).GetWorldLocation(); - p.Z += (((Item)o).ItemData.Height / 2) + 1; + p = item.GetWorldLocation(); + p.Z += (item.ItemData.Height / 2) + 1; } - else if ( o is Point3D ) + else if ( o is Point3D point3D ) { - p = (Point3D)o; + p = point3D; } - else if ( o is LandTarget ) + else if ( o is LandTarget target ) { - p = ((LandTarget)o).Location; + p = target.Location; int low = 0, avg = 0, top = 0; GetAverageZ( p.X, p.Y, ref low, ref avg, ref top ); p.Z = top + 1; } - else if ( o is StaticTarget ) + else if ( o is StaticTarget st ) { - StaticTarget st = (StaticTarget)o; ItemData id = TileData.ItemTable[st.ItemID & TileData.MaxItemValue]; p = new Point3D( st.X, st.Y, st.Z - id.CalcHeight + id.Height / 2 + 1 ); } - else if ( o is IPoint3D ) + else if ( o is IPoint3D d ) { - p = new Point3D( (IPoint3D)o ); + p = new Point3D( d ); } else { diff --git a/Server/Mobile.cs b/Server/Mobile.cs index b3ae5a3d2..5ec070852 100644 --- a/Server/Mobile.cs +++ b/Server/Mobile.cs @@ -126,13 +126,8 @@ namespace Server { m_ObeyCap = value; - if ( m_Owner != null ) - { - Skill sk = m_Owner.Skills[m_Skill]; - - if ( sk != null ) - sk.Update(); - } + Skill sk = m_Owner?.Skills[m_Skill]; + sk?.Update(); } } @@ -146,8 +141,7 @@ namespace Server { if ( m_Owner != value ) { - if ( m_Owner != null ) - m_Owner.RemoveSkillMod( this ); + m_Owner?.RemoveSkillMod( this ); m_Owner = value; @@ -172,20 +166,13 @@ namespace Server { if ( m_Skill != value ) { - Skill oldUpdate = (m_Owner != null ? m_Owner.Skills[m_Skill] : null); + Skill oldUpdate = m_Owner?.Skills[m_Skill]; m_Skill = value; - if ( m_Owner != null ) - { - Skill sk = m_Owner.Skills[m_Skill]; - - if ( sk != null ) - sk.Update(); - } - - if ( oldUpdate != null ) - oldUpdate.Update(); + Skill sk = m_Owner?.Skills[m_Skill]; + sk?.Update(); + oldUpdate?.Update(); } } } @@ -202,13 +189,8 @@ namespace Server { m_Relative = value; - if ( m_Owner != null ) - { - Skill sk = m_Owner.Skills[m_Skill]; - - if ( sk != null ) - sk.Update(); - } + Skill sk = m_Owner?.Skills[m_Skill]; + sk?.Update(); } } } @@ -225,13 +207,8 @@ namespace Server { m_Relative = !value; - if ( m_Owner != null ) - { - Skill sk = m_Owner.Skills[m_Skill]; - - if ( sk != null ) - sk.Update(); - } + Skill sk = m_Owner?.Skills[m_Skill]; + sk?.Update(); } } } @@ -248,13 +225,8 @@ namespace Server { m_Value = value; - if ( m_Owner != null ) - { - Skill sk = m_Owner.Skills[m_Skill]; - - if ( sk != null ) - sk.Update(); - } + Skill sk = m_Owner?.Skills[m_Skill]; + sk?.Update(); } } } @@ -283,8 +255,7 @@ namespace Server { m_Type = value; - if ( m_Owner != null ) - m_Owner.UpdateResistances(); + m_Owner?.UpdateResistances(); } } } @@ -298,8 +269,7 @@ namespace Server { m_Offset = value; - if ( m_Owner != null ) - m_Owner.UpdateResistances(); + m_Owner?.UpdateResistances(); } } } @@ -388,6 +358,7 @@ namespace Server } [CustomEnum( new string[] { "North", "Right", "East", "Down", "South", "Left", "West", "Up" } )] + [Flags] public enum Direction : byte { North=0x0, @@ -845,8 +816,7 @@ namespace Server { ComputeBaseLightLevels( out global, out personal ); - if ( m_Region != null ) - m_Region.AlterLightLevel( this, ref global, ref personal ); + m_Region?.AlterLightLevel( this, ref global, ref personal ); } public virtual void ComputeBaseLightLevels( out int global, out int personal ) @@ -1030,7 +1000,7 @@ namespace Server public int GetAOSStatus( int index ) { - return ( m_AOSStatusHandler == null ) ? 0 : m_AOSStatusHandler( this, index ); + return m_AOSStatusHandler?.Invoke( this, index ) ?? 0; } public virtual void SendPropertiesTo( Mobile from ) @@ -1076,7 +1046,7 @@ namespace Server string suffix = ""; - if ( PropertyTitle && Title != null && Title.Length > 0 ) + if ( PropertyTitle && !string.IsNullOrEmpty(Title) ) suffix = Title; BaseGuild guild = m_Guild; @@ -1246,11 +1216,8 @@ namespace Server for( int i = 0; i < m_SkillMods.Count; ++i ) { SkillMod mod = m_SkillMods[i]; - Skill sk = m_Skills[mod.Skill]; - - if ( sk != null ) - sk.Update(); + sk?.Update(); } } @@ -1280,9 +1247,7 @@ namespace Server mod.Owner = this; Skill sk = m_Skills[mod.Skill]; - - if ( sk != null ) - sk.Update(); + sk?.Update(); } } @@ -1304,9 +1269,7 @@ namespace Server mod.Owner = null; Skill sk = m_Skills[mod.Skill]; - - if ( sk != null ) - sk.Update(); + sk?.Update(); } } @@ -1414,7 +1377,7 @@ namespace Server { get { - return m_Skills == null ? 0 : m_Skills.Total; + return m_Skills?.Total ?? 0; } } @@ -1423,7 +1386,7 @@ namespace Server { get { - return m_Skills == null ? 0 : m_Skills.Cap; + return m_Skills?.Cap ?? 0; } set { @@ -1436,7 +1399,7 @@ namespace Server { if ( m_Deleted || m_Map == null ) return false; - else if ( target == this || m_AccessLevel > AccessLevel.Player ) + if ( target == this || m_AccessLevel > AccessLevel.Player ) return true; return m_Map.LineOfSight( this, target ); @@ -1446,9 +1409,9 @@ namespace Server { if ( m_Deleted || m_Map == null ) return false; - else if ( target == this || m_AccessLevel > AccessLevel.Player ) + if ( target == this || m_AccessLevel > AccessLevel.Player ) return true; - else if ( target is Item && ((Item)target).RootParent == this ) + if ( target is Item item && item.RootParent == this ) return true; return m_Map.LineOfSight( this, target ); @@ -1458,7 +1421,7 @@ namespace Server { if ( m_Deleted || m_Map == null ) return false; - else if ( m_AccessLevel > AccessLevel.Player ) + if ( m_AccessLevel > AccessLevel.Player ) return true; return m_Map.LineOfSight( this, target ); @@ -1785,8 +1748,7 @@ namespace Server { m_StrLock = value; - if ( m_NetState != null ) - m_NetState.Send( new StatLockInfo( this ) ); + m_NetState?.Send( new StatLockInfo( this ) ); } } } @@ -1807,8 +1769,7 @@ namespace Server { m_DexLock = value; - if ( m_NetState != null ) - m_NetState.Send( new StatLockInfo( this ) ); + m_NetState?.Send( new StatLockInfo( this ) ); } } } @@ -1829,8 +1790,7 @@ namespace Server { m_IntLock = value; - if ( m_NetState != null ) - m_NetState.Send( new StatLockInfo( this ) ); + m_NetState?.Send( new StatLockInfo( this ) ); } } } @@ -2230,16 +2190,13 @@ namespace Server return; } - if ( m_NetState != null ) - m_NetState.Send( new ChangeCombatant( m_Combatant ) ); + m_NetState?.Send( new ChangeCombatant( m_Combatant ) ); if ( m_Combatant == null ) { - if ( m_ExpireCombatant != null ) - m_ExpireCombatant.Stop(); + m_ExpireCombatant?.Stop(); - if ( m_CombatTimer != null ) - m_CombatTimer.Stop(); + m_CombatTimer?.Stop(); m_ExpireCombatant = null; m_CombatTimer = null; @@ -2261,8 +2218,7 @@ namespace Server { DoHarmful( m_Combatant ); - if ( m_Combatant != null ) - m_Combatant.PlaySound( m_Combatant.GetAngerSound() ); + m_Combatant?.PlaySound( m_Combatant.GetAngerSound() ); } OnCombatantChange(); @@ -2399,8 +2355,8 @@ namespace Server { m_Aggressors.Add( AggressorInfo.Create( aggressor, this, criminal ) ); // new AggressorInfo( aggressor, this, criminal, true ) ); - if ( this.CanSee( aggressor ) && m_NetState != null ) { - m_NetState.Send(MobileIncoming.Create(m_NetState, this, aggressor)); + if ( this.CanSee( aggressor ) ) { + m_NetState?.Send(MobileIncoming.Create(m_NetState, this, aggressor)); } if ( Combatant == null ) @@ -2413,8 +2369,8 @@ namespace Server { aggressor.m_Aggressed.Add( AggressorInfo.Create( aggressor, this, criminal ) ); // new AggressorInfo( aggressor, this, criminal, false ) ); - if ( this.CanSee( aggressor ) && m_NetState != null ) { - m_NetState.Send(MobileIncoming.Create(m_NetState, this, aggressor)); + if ( this.CanSee( aggressor ) ) { + m_NetState?.Send(MobileIncoming.Create(m_NetState, this, aggressor)); } if ( Combatant == null ) @@ -2664,8 +2620,7 @@ namespace Server protected override void OnTarget( Mobile from, object targeted ) { - if ( m_Callback != null ) - m_Callback( from, targeted ); + m_Callback?.Invoke( @from, targeted ); } } @@ -2692,8 +2647,7 @@ namespace Server protected override void OnTarget( Mobile from, object targeted ) { - if ( m_Callback != null ) - m_Callback( from, targeted, m_State ); + m_Callback?.Invoke( @from, targeted, m_State ); } } @@ -2720,8 +2674,7 @@ namespace Server protected override void OnTarget(Mobile from, object targeted) { - if (m_Callback != null) - m_Callback(from, targeted, m_State); + m_Callback?.Invoke(@from, targeted, m_State); } } public Target BeginTarget(int range, bool allowGround, TargetFlags flags, TargetStateCallback callback, T state) @@ -3112,9 +3065,7 @@ namespace Server return false; } - int newZ; - - if ( CheckMovement( d, out newZ ) ) + if ( CheckMovement( d, out int newZ ) ) { int x = oldLocation.m_X, y = oldLocation.m_Y; int oldX = x, oldY = y; @@ -3207,7 +3158,7 @@ namespace Server if ( m != this && m.X == oldX && m.Y == oldY && (m.Z + 15) > oldZ && (oldZ + 15) > m.Z && !m.OnMoveOff( this ) ) return false; - else if ( m.X == x && m.Y == y && (m.Z + 15) > newZ && (newZ + 15) > m.Z && !m.OnMoveOver( this ) ) + if ( m.X == x && m.Y == y && (m.Z + 15) > newZ && (newZ + 15) > m.Z && !m.OnMoveOver( this ) ) return false; } @@ -3217,7 +3168,7 @@ namespace Server if ( item.AtWorldPoint( oldX, oldY ) && (item.Z == oldZ || ((item.Z + item.ItemData.Height) > oldZ && (oldZ + 15) > item.Z)) && !item.OnMoveOff( this ) ) return false; - else if ( item.AtWorldPoint( x, y ) && (item.Z == newZ || ((item.Z + item.ItemData.Height) > newZ && (newZ + 15) > item.Z)) && !item.OnMoveOver( this ) ) + if ( item.AtWorldPoint( x, y ) && (item.Z == newZ || ((item.Z + item.ItemData.Height) > newZ && (newZ + 15) > item.Z)) && !item.OnMoveOver( this ) ) return false; } } @@ -3281,8 +3232,7 @@ namespace Server DisruptiveAction(); } - if ( m_NetState != null ) - m_NetState.Send( MovementAck.Instantiate( m_NetState.Sequence, this ) );//new MovementAck( m_NetState.Sequence, this ) ); + m_NetState?.Send( MovementAck.Instantiate( m_NetState.Sequence, this ) );//new MovementAck( m_NetState.Sequence, this ) ); SetLocation( newLocation, false ); SetDirection( d ); @@ -3295,16 +3245,12 @@ namespace Server if (o == this) continue; - if (o is Mobile) { - Mobile mob = o as Mobile; + if (o is Mobile mob) { if (mob.NetState != null) m_MoveClientList.Add(mob); - m_MoveList.Add(o); - } else if (o is Item) { - Item item = (Item)o; - - if (item.HandlesOnMovement) - m_MoveList.Add(item); + m_MoveList.Add(mob); + } else if (o is Item item && item.HandlesOnMovement) { + m_MoveList.Add(item); } } @@ -3349,10 +3295,10 @@ namespace Server for( int i = 0; i < m_MoveList.Count; ++i ) { IEntity o = m_MoveList[i]; - if (o is Mobile) { - ((Mobile)o).OnMovement( this, oldLocation ); - } else if ( o is Item ) { - ((Item)o).OnMovement( this, oldLocation ); + if (o is Mobile mobile) { + mobile.OnMovement( this, oldLocation ); + } else if ( o is Item item ) { + item.OnMovement( this, oldLocation ); } } @@ -3651,14 +3597,14 @@ namespace Server { if ( m_Deleted ) return; - else if ( !World.OnDelete( this ) ) + if ( !World.OnDelete( this ) ) return; - if ( m_NetState != null ) + if (m_NetState != null) + { m_NetState.CancelAllTrades(); - - if ( m_NetState != null ) m_NetState.Dispose(); + } DropHolding(); @@ -3680,8 +3626,7 @@ namespace Server SendRemovePacket(); - if ( m_Guild != null ) - m_Guild.OnDelete( this ); + m_Guild?.OnDelete( this ); m_Deleted = true; @@ -3762,41 +3707,29 @@ namespace Server CheckAggrExpire(); - if ( m_PoisonTimer != null ) - m_PoisonTimer.Stop(); + m_PoisonTimer?.Stop(); - if ( m_HitsTimer != null ) - m_HitsTimer.Stop(); + m_HitsTimer?.Stop(); - if ( m_StamTimer != null ) - m_StamTimer.Stop(); + m_StamTimer?.Stop(); - if ( m_ManaTimer != null ) - m_ManaTimer.Stop(); + m_ManaTimer?.Stop(); - if ( m_CombatTimer != null ) - m_CombatTimer.Stop(); + m_CombatTimer?.Stop(); - if ( m_ExpireCombatant != null ) - m_ExpireCombatant.Stop(); + m_ExpireCombatant?.Stop(); - if ( m_LogoutTimer != null ) - m_LogoutTimer.Stop(); + m_LogoutTimer?.Stop(); - if ( m_ExpireCriminal != null ) - m_ExpireCriminal.Stop(); + m_ExpireCriminal?.Stop(); - if ( m_WarmodeTimer != null ) - m_WarmodeTimer.Stop(); + m_WarmodeTimer?.Stop(); - if ( m_ParaTimer != null ) - m_ParaTimer.Stop(); + m_ParaTimer?.Stop(); - if ( m_FrozenTimer != null ) - m_FrozenTimer.Stop(); + m_FrozenTimer?.Stop(); - if ( m_AutoManifestTimer != null ) - m_AutoManifestTimer.Stop(); + m_AutoManifestTimer?.Stop(); } public virtual bool AllowSkillUse( SkillName name ) @@ -3838,13 +3771,13 @@ namespace Server { if ( !CanBeDamaged() ) return; - else if ( !Alive || IsDeadBondedPet ) + if ( !Alive || IsDeadBondedPet ) return; - else if ( m_Deleted ) + if ( m_Deleted ) return; - else if ( !Region.OnBeforeDeath( this ) ) + if ( !Region.OnBeforeDeath( this ) ) return; - else if ( !OnBeforeDeath() ) + if ( !OnBeforeDeath() ) return; BankBox box = FindBankNoCreate(); @@ -3852,15 +3785,12 @@ namespace Server if ( box != null && box.Opened ) box.Close(); - if ( m_NetState != null ) - m_NetState.CancelAllTrades(); + m_NetState?.CancelAllTrades(); - if ( m_Spell != null ) - m_Spell.OnCasterKilled(); + m_Spell?.OnCasterKilled(); //m_Spell.Disturb( DisturbType.Kill ); - if ( m_Target != null ) - m_Target.Cancel( this, TargetCancelType.Canceled ); + m_Target?.Cancel( this, TargetCancelType.Canceled ); DisruptiveAction(); @@ -3879,16 +3809,14 @@ namespace Server { Paralyzed = false; - if ( m_ParaTimer != null ) - m_ParaTimer.Stop(); + m_ParaTimer?.Stop(); } if ( Frozen ) { Frozen = false; - if ( m_FrozenTimer != null ) - m_FrozenTimer.Stop(); + m_FrozenTimer?.Stop(); } List content = new List(); @@ -3959,7 +3887,7 @@ namespace Server if ( m_FacialHair != null ) facialhair = new FacialHairInfo( m_FacialHair.ItemID, m_FacialHair.Hue ); - Container c = (m_CreateCorpse == null ? null : m_CreateCorpse( this, hair, facialhair, content, equip )); + Container c = m_CreateCorpse?.Invoke( this, hair, facialhair, content, equip ); /*m_Corpse = c; @@ -4194,7 +4122,7 @@ namespace Server { Region reg = Region.Find( item.GetWorldLocation(), item.Map ); - if ( reg == null || !reg.SendInaccessibleMessage( item, this ) ) + if ( reg?.SendInaccessibleMessage( item, this ) != true ) item.OnDoubleClickNotAccessible( this ); } else if ( !CheckAlive( false ) ) @@ -4205,16 +4133,18 @@ namespace Server okay = false; else if ( !item.CheckItemUse( this, item ) ) okay = false; - else if ( root != null && root is Mobile && ((Mobile)root).IsSnoop( this ) ) + else if ( root is Mobile mobile && mobile.IsSnoop( this ) ) item.OnSnoop( this ); else if ( this.Region.OnDoubleClick( this, item ) ) okay = true; if ( okay ) { + // TODO: Is this correct? if ( !item.Deleted ) item.OnItemUsed( this, item ); + // TODO: Is this correct? if ( !item.Deleted ) item.OnDoubleClick( this ); } @@ -4299,7 +4229,7 @@ namespace Server { object root = item.RootParent; - if ( root != null && root is Mobile && !((Mobile)root).CheckNonlocalLift( from, item ) ) + if ( root is Mobile mobile && !mobile.CheckNonlocalLift( from, item ) ) { reject = LRReason.TryToSteal; } @@ -4340,16 +4270,12 @@ namespace Server { IPooledEnumerable eable = map.GetClientsInRange(from.Location); Packet p = null; + Item rootItem = root as Item; foreach( NetState ns in eable ) { if ( ns.Mobile != from && ns.Mobile.CanSee( from ) && ns.Mobile.InLOS( from ) && ns.Mobile.CanSee( root ) ) { if (p == null) { - IEntity src; - - if (root == null) - src = new Entity(Serial.Zero, item.Location, map); - else - src = new Entity(((Item)root).Serial, ((Item)root).Location, map); + IEntity src = new Entity(rootItem?.Serial ?? Serial.Zero, rootItem?.Location ?? item.Location, map); p = Packet.Acquire(new DragEffect(src, from, item.ItemID, item.Hue, amount)); } @@ -4475,6 +4401,7 @@ namespace Server { IPooledEnumerable eable = map.GetClientsInRange(m_Location); Packet p = null; + Item rootItem = root as Item; foreach(NetState ns in eable) { if (ns.StygianAbyss) @@ -4482,12 +4409,7 @@ namespace Server if ( ns.Mobile != this && ns.Mobile.CanSee( this ) && ns.Mobile.InLOS( this ) && ns.Mobile.CanSee( root ) ) { if (p == null) { - IEntity trg; - - if (root == null) - trg = new Entity(Serial.Zero, item.Location, map); - else - trg = new Entity(((Item)root).Serial, ((Item)root).Location, map); + IEntity trg = new Entity(rootItem?.Serial ?? Serial.Zero, rootItem?.Location ?? item.Location, map); p = Packet.Acquire(new DragEffect(this, trg, item.ItemID, item.Hue, item.Amount)); } @@ -4813,9 +4735,7 @@ namespace Server IPooledEnumerable eable = m_Map.GetObjectsInRange( m_Location, range ); foreach(IEntity o in eable) { - if ( o is Mobile ) { - Mobile heard = (Mobile)o; - + if ( o is Mobile heard ) { if ( heard.CanSee( this ) && (m_NoSpeechLOS || !heard.Player || heard.InLOS( this )) ) { if ( heard.m_NetState != null ) @@ -4831,18 +4751,18 @@ namespace Server if ( item.HandlesOnSpeech ) onSpeech.Add( item ); - if ( item is Container ) - AddSpeechItemsFrom( onSpeech, (Container)item ); + if ( item is Container container ) + AddSpeechItemsFrom( onSpeech, container ); } } } - else if ( o is Item ) + else if ( o is Item item ) { - if ( ((Item)o).HandlesOnSpeech ) - onSpeech.Add(o); + if ( item.HandlesOnSpeech ) + onSpeech.Add(item); - if ( o is Container ) - AddSpeechItemsFrom( onSpeech, (Container)o ); + if ( item is Container container ) + AddSpeechItemsFrom( onSpeech, container ); } } @@ -4901,17 +4821,13 @@ namespace Server for( int i = 0; i < onSpeech.Count; ++i ) { IEntity obj = onSpeech[i]; - if ( obj is Mobile ) { - Mobile heard = (Mobile)obj; - + if ( obj is Mobile heard ) { if ( mutatedArgs == null || !CheckHearsMutatedSpeech( heard, mutateContext ) ) heard.OnSpeech( regArgs ); else heard.OnSpeech( mutatedArgs ); } else { - Item item = (Item)obj; - - item.OnSpeech( regArgs ); + ((Item)obj).OnSpeech( regArgs ); } } @@ -5159,8 +5075,7 @@ namespace Server int oldHits = Hits; int newHits = oldHits - amount; - if ( m_Spell != null ) - m_Spell.OnCasterHurt(); + m_Spell?.OnCasterHurt(); //if ( m_Spell != null && m_Spell.State == SpellState.Casting ) // m_Spell.Disturb( DisturbType.Hurt, false, true ); @@ -5215,7 +5130,7 @@ namespace Server public void SendVisibleDamageRelated(Mobile from, int amount) { - NetState ourState = m_NetState, theirState = (from == null ? null : from.m_NetState); + NetState ourState = m_NetState, theirState = from?.m_NetState; if (ourState == null) { @@ -5251,12 +5166,12 @@ namespace Server { bool newPacket = theirState.DamagePacket; - if (newPacket && (p == null || !(p is DamagePacket))) + if (newPacket && !(p is DamagePacket)) { Packet.Release(p); p = Packet.Acquire(new DamagePacket(this, amount)); } - else if (!newPacket && (p == null || !(p is DamagePacketOld))) + else if (!newPacket && !(p is DamagePacketOld)) { Packet.Release(p); p = Packet.Acquire(new DamagePacketOld(this, amount)); @@ -5393,8 +5308,8 @@ namespace Server Hits += amount; - if ( message && amount > 0 && m_NetState != null ) - m_NetState.Send( new MessageLocalizedAffix( Serial.MinusOne, -1, MessageType.Label, 0x3B2, 3, 1008158, "", AffixType.Append | AffixType.System, amount.ToString(), "" ) ); + if ( message && amount > 0 ) + m_NetState?.Send( new MessageLocalizedAffix( Serial.MinusOne, -1, MessageType.Label, 0x3B2, 3, 1008158, "", AffixType.Append | AffixType.System, amount.ToString(), "" ) ); } public virtual void OnHeal( ref int amount, Mobile from ) @@ -5708,8 +5623,7 @@ namespace Server m_Map = Map.Internal; } - if ( m_Map != null ) - m_Map.OnEnter( this ); + m_Map?.OnEnter( this ); if ( m_Criminal ) { @@ -5783,9 +5697,9 @@ namespace Server m_HitsTimer.Start(); } - else if ( m_HitsTimer != null ) + else { - m_HitsTimer.Stop(); + m_HitsTimer?.Stop(); } } else @@ -5802,9 +5716,9 @@ namespace Server m_StamTimer.Start(); } - else if ( m_StamTimer != null ) + else { - m_StamTimer.Stop(); + m_StamTimer?.Stop(); } } else @@ -5821,9 +5735,9 @@ namespace Server m_ManaTimer.Start(); } - else if ( m_ManaTimer != null ) + else { - m_ManaTimer.Stop(); + m_ManaTimer?.Stop(); } } else @@ -6160,10 +6074,10 @@ namespace Server if ( item.Parent == this ) return; - else if ( item.Parent is Mobile ) - ((Mobile)item.Parent).RemoveItem( item ); - else if ( item.Parent is Item ) - ((Item)item.Parent).RemoveItem( item ); + if ( item.Parent is Mobile parentMobile ) + parentMobile.RemoveItem( item ); + else if ( item.Parent is Item parentItem ) + parentItem.RemoveItem( item ); else item.SendRemovePacket(); @@ -6654,11 +6568,12 @@ namespace Server if ( m_NetState != null ) { m_NetState.Send( p ); return true; - } else if ( throwOnOffline ) { - throw new MobileNotConnectedException( this, "Packet could not be sent." ); - } else { - return false; } + if ( throwOnOffline ) { + throw new MobileNotConnectedException( this, "Packet could not be sent." ); + } + + return false; } #region Gumps/Menus @@ -6828,14 +6743,10 @@ namespace Server IPooledEnumerable eable = m_Map.GetObjectsInRange( m_Location, Core.GlobalMaxUpdateRange ); foreach ( IEntity o in eable ) { - if ( o is Item ) { - Item item = (Item)o; - + if ( o is Item item ) { if ( CanSee( item ) && InRange( item.Location, item.GetUpdateRange( this ) ) ) item.SendInfoTo( ns ); - } else if ( o is Mobile ) { - Mobile m = (Mobile)o; - + } else if ( o is Mobile m ) { if ( CanSee( m ) && Utility.InUpdateRange( m_Location, m.m_Location ) ) { ns.Send(MobileIncoming.Create(ns, this, m)); @@ -6880,8 +6791,7 @@ namespace Server if ( m_Map != value ) { - if ( m_NetState != null ) - m_NetState.ValidateAllTrades(); + m_NetState?.ValidateAllTrades(); Map oldMap = m_Map; @@ -6900,8 +6810,7 @@ namespace Server UpdateRegion(); - if ( m_Map != null ) - m_Map.OnEnter( this ); + m_Map?.OnEnter( this ); NetState ns = m_NetState; @@ -8056,23 +7965,19 @@ namespace Server { if ( m_NetState != value ) { - if ( m_Map != null ) - m_Map.OnClientChange( m_NetState, value, this ); + m_Map?.OnClientChange( m_NetState, value, this ); - if ( m_Target != null ) - m_Target.Cancel( this, TargetCancelType.Disconnected ); + m_Target?.Cancel( this, TargetCancelType.Disconnected ); if ( m_QuestArrow != null ) QuestArrow = null; - if ( m_Spell != null ) - m_Spell.OnConnectionChanged(); + m_Spell?.OnConnectionChanged(); //if ( m_Spell != null ) // m_Spell.FinishSequence(); - if ( m_NetState != null ) - m_NetState.CancelAllTrades(); + m_NetState?.CancelAllTrades(); BankBox box = FindBankNoCreate(); @@ -8106,8 +8011,7 @@ namespace Server // Connected, stop the logout timer and if needed, move to the world - if ( m_LogoutTimer != null ) - m_LogoutTimer.Stop(); + m_LogoutTimer?.Stop(); m_LogoutTimer = null; @@ -8148,53 +8052,46 @@ namespace Server public virtual bool CanSee( object o ) { - if ( o is Item ) + if ( o is Item item ) { - return CanSee( (Item)o ); + return CanSee( item ); } - else if ( o is Mobile ) + + if ( o is Mobile mobile ) { - return CanSee( (Mobile)o ); - } - else - { - return true; + return CanSee( mobile ); } + + return true; } public virtual bool CanSee( Item item ) { if ( m_Map == Map.Internal ) return false; - else if ( item.Map == Map.Internal ) + if ( item.Map == Map.Internal ) return false; if ( item.Parent != null ) { - if ( item.Parent is Item ) + if ( item.Parent is Item parent ) { - Item parent = item.Parent as Item; - if ( !(CanSee( parent ) && parent.IsChildVisibleTo( this, item )) ) return false; } - else if ( item.Parent is Mobile ) + else if ( item.Parent is Mobile mobile ) { - if ( !CanSee( (Mobile)item.Parent ) ) + if ( !CanSee( mobile ) ) return false; } } - if ( item is BankBox ) - { - BankBox box = item as BankBox; + if ( item is BankBox box && m_AccessLevel <= AccessLevel.Counselor && (box.Owner != this || !box.Opened) ) + return false; - if ( box != null && m_AccessLevel <= AccessLevel.Counselor && (box.Owner != this || !box.Opened) ) - return false; - } - else if ( item is SecureTradeContainer ) + if ( item is SecureTradeContainer container ) { - SecureTrade trade = ((SecureTradeContainer)item).Trade; + SecureTrade trade = container.Trade; if ( trade != null && trade.From.Mobile != this && trade.To.Mobile != this ) return false; @@ -8533,8 +8430,7 @@ namespace Server { m_PoisonTimer = m_Poison.ConstructTimer( this ); - if ( m_PoisonTimer != null ) - m_PoisonTimer.Start(); + m_PoisonTimer?.Start(); } CheckStatTimers(); @@ -9005,7 +8901,7 @@ namespace Server BankBox box = FindBankNoCreate(); - if ( box != null && box.Opened ) + if ( box?.Opened == true ) box.Close(); Point3D oldLocation = m_Location; @@ -9101,8 +8997,7 @@ namespace Server OnMapChange( oldMap ); OnLocationChange( oldLocation ); - if ( m_Region != null ) - m_Region.OnLocationChanged( this, oldLocation ); + m_Region?.OnLocationChanged( this, oldLocation ); } public virtual void SetLocation( Point3D newLocation, bool isTeleport ) @@ -9122,11 +9017,9 @@ namespace Server if ( box != null && box.Opened ) box.Close(); - if ( m_NetState != null ) - m_NetState.ValidateAllTrades(); + m_NetState?.ValidateAllTrades(); - if ( m_Map != null ) - m_Map.OnMove( oldLocation, this ); + m_Map?.OnMove( oldLocation, this ); if ( isTeleport && m_NetState != null && ( !m_NetState.HighSeas || !m_NoMoveHS ) ) { @@ -9166,20 +9059,16 @@ namespace Server // We are attached to a client, so it's a bit more complex. We need to send new items and people to ourself, and ourself to other clients foreach ( IEntity o in eeable ) { - if ( o is Item ) + if ( o is Item item ) { - Item item = (Item)o; - int range = item.GetUpdateRange( this ); Point3D loc = item.Location; if ( !Utility.InRange( oldLocation, loc, range ) && Utility.InRange( newLocation, loc, range ) && CanSee( item ) ) item.SendInfoTo( ourState ); } - else if ( o != this && o is Mobile ) + else if ( o != this && o is Mobile m ) { - Mobile m = (Mobile)o; - if ( !Utility.InUpdateRange( newLocation, m.m_Location ) ) continue; @@ -9395,22 +9284,17 @@ namespace Server { get { - Item item = m_Weapon as Item; - - if ( item != null && !item.Deleted && item.Parent == this && CanSee( item ) ) + if ( m_Weapon is Item item && !item.Deleted && item.Parent == this && CanSee( item ) ) return m_Weapon; m_Weapon = null; - item = FindItemOnLayer( Layer.OneHanded ); + item = FindItemOnLayer( Layer.OneHanded ) ?? FindItemOnLayer( Layer.TwoHanded ); - if ( item == null ) - item = FindItemOnLayer( Layer.TwoHanded ); + if ( item is IWeapon weapon ) + return (m_Weapon = weapon); - if ( item is IWeapon ) - return (m_Weapon = (IWeapon)item); - else - return GetDefaultWeapon(); + return GetDefaultWeapon(); } } @@ -9723,14 +9607,11 @@ namespace Server return false; } - else if ( from.InRange( Location, 2 ) ) + if ( from.InRange( Location, 2 ) ) { return OpenTrade( from, dropped ); } - else - { - return false; - } + return false; } public virtual bool CheckEquip( Item item ) @@ -10229,11 +10110,14 @@ namespace Server { IParty ip = m_Party as IParty; - if ( ip != null && sendStam ) - ip.OnStamChanged( this ); + if (ip != null) + { + if ( sendStam ) + ip.OnStamChanged( this ); - if ( ip != null && sendMana ) - ip.OnManaChanged( this ); + if ( sendMana ) + ip.OnManaChanged( this ); + } } if ( sendHair ) @@ -10781,8 +10665,7 @@ namespace Server public void LaunchBrowser( string url ) { - if ( m_NetState != null ) - m_NetState.LaunchBrowser( url ); + m_NetState?.LaunchBrowser( url ); } #region Send[ASCII]Message @@ -10960,9 +10843,7 @@ namespace Server if ( from == this ) Send( new StatLockInfo( this ) ); - IParty ip = m_Party as IParty; - - if ( ip != null ) + if ( m_Party is IParty ip ) ip.OnStatsQuery( from, this ); } @@ -10991,13 +10872,13 @@ namespace Server { IMountItem mountItem = null; - if ( m_MountItem != null && !m_MountItem.Deleted && m_MountItem.Parent == this ) + if ( m_MountItem?.Deleted == false && m_MountItem.Parent == this ) mountItem = (IMountItem)m_MountItem; if ( mountItem == null ) m_MountItem = (mountItem = (FindItemOnLayer( Layer.Mount ) as IMountItem)) as Item; - return mountItem == null ? null : mountItem.Mount; + return mountItem?.Mount; } } @@ -11022,8 +10903,7 @@ namespace Server { if ( m_QuestArrow != value ) { - if ( m_QuestArrow != null ) - m_QuestArrow.Stop(); + m_QuestArrow?.Stop(); m_QuestArrow = value; } @@ -11061,7 +10941,7 @@ namespace Server { if ( m_Deleted ) return; - else if ( AccessLevel == AccessLevel.Player && DisableHiddenSelfClick && Hidden && from == this ) + if ( AccessLevel == AccessLevel.Player && DisableHiddenSelfClick && Hidden && from == this ) return; if ( m_GuildClickMessage ) @@ -11149,16 +11029,16 @@ namespace Server { if ( m_SkillCheckTargetHandler == null ) return false; - else - return m_SkillCheckTargetHandler( this, skill, target, minSkill, maxSkill ); + + return m_SkillCheckTargetHandler( this, skill, target, minSkill, maxSkill ); } public bool CheckTargetSkill( SkillName skill, object target, double chance ) { if ( m_SkillCheckDirectTargetHandler == null ) return false; - else - return m_SkillCheckDirectTargetHandler( this, skill, target, chance ); + + return m_SkillCheckDirectTargetHandler( this, skill, target, chance ); } public virtual void DisruptiveAction() @@ -11175,7 +11055,7 @@ namespace Server { get { - return FindItemOnLayer( Layer.TwoHanded ) as Item; + return FindItemOnLayer( Layer.TwoHanded ); } } @@ -11183,7 +11063,7 @@ namespace Server { get { - return FindItemOnLayer( Layer.Neck ) as Item; + return FindItemOnLayer( Layer.Neck ); } } @@ -11191,7 +11071,7 @@ namespace Server { get { - return FindItemOnLayer( Layer.Gloves ) as Item; + return FindItemOnLayer( Layer.Gloves ); } } @@ -11199,7 +11079,7 @@ namespace Server { get { - return FindItemOnLayer( Layer.Helm ) as Item; + return FindItemOnLayer( Layer.Helm ); } } @@ -11207,7 +11087,7 @@ namespace Server { get { - return FindItemOnLayer( Layer.Arms ) as Item; + return FindItemOnLayer( Layer.Arms ); } } @@ -11215,10 +11095,8 @@ namespace Server { get { - Item ar = FindItemOnLayer( Layer.InnerLegs ) as Item; - - if ( ar == null ) - ar = FindItemOnLayer( Layer.Pants ) as Item; + if ( !(FindItemOnLayer( Layer.InnerLegs ) is Item ar) ) + ar = FindItemOnLayer( Layer.Pants ); return ar; } @@ -11228,10 +11106,8 @@ namespace Server { get { - Item ar = FindItemOnLayer( Layer.InnerTorso ) as Item; - - if ( ar == null ) - ar = FindItemOnLayer( Layer.Shirt ) as Item; + if ( !(FindItemOnLayer( Layer.InnerTorso ) is Item ar) ) + ar = FindItemOnLayer( Layer.Shirt ); return ar; } @@ -11241,7 +11117,7 @@ namespace Server { get { - return FindItemOnLayer( Layer.Talisman ) as Item; + return FindItemOnLayer( Layer.Talisman ); } } #endregion diff --git a/Server/Network/Listener.cs b/Server/Network/Listener.cs index fee1b6f29..67cb2847e 100644 --- a/Server/Network/Listener.cs +++ b/Server/Network/Listener.cs @@ -94,11 +94,9 @@ namespace Server.Network } catch ( Exception e ) { - if ( e is SocketException ) { - SocketException se = (SocketException)e; - + if ( e is SocketException se ) { if ( se.ErrorCode == 10048 ) { // WSAEADDRINUSE - Console.WriteLine( "Listener Failed: {0}:{1} (In Use)", ipep.Address, ipep.Port ); + Console.WriteLine( "Listener Failed: {0}:{1} (In Use)", ipep.Address, ipep.Port ); } else if ( se.ErrorCode == 10049 ) { // WSAEADDRNOTAVAIL Console.WriteLine( "Listener Failed: {0}:{1} (Unavailable)", ipep.Address, ipep.Port ); @@ -115,16 +113,14 @@ namespace Server.Network private void DisplayListener() { - IPEndPoint ipep = m_Listener.LocalEndPoint as IPEndPoint; - - if ( ipep == null ) + if ( !(m_Listener.LocalEndPoint is IPEndPoint ipep) ) return; if ( ipep.Address.Equals( IPAddress.Any ) || ipep.Address.Equals( IPAddress.IPv6Any ) ) { NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces(); foreach ( NetworkInterface adapter in adapters ) { IPInterfaceProperties properties = adapter.GetIPProperties(); - foreach ( IPAddressInformation unicast in properties.UnicastAddresses ) { + foreach ( UnicastIPAddressInformation unicast in properties.UnicastAddresses ) { if ( ipep.AddressFamily == unicast.Address.AddressFamily ) Console.WriteLine( "Listening: {0}:{1}", unicast.Address, ipep.Port ); } @@ -285,4 +281,4 @@ namespace Server.Network GC.SuppressFinalize(this); } } -} \ No newline at end of file +} diff --git a/Server/Network/PacketHandlers.cs b/Server/Network/PacketHandlers.cs index 9b3fd5c1d..76cd3bb85 100644 --- a/Server/Network/PacketHandlers.cs +++ b/Server/Network/PacketHandlers.cs @@ -343,9 +343,7 @@ namespace Server.Network { Serial serial = pvSrc.ReadInt32(); - SecureTradeContainer cont = World.FindItem( serial ) as SecureTradeContainer; - - if ( cont != null && cont.Trade != null && (cont.Trade.From.Mobile == state.Mobile || cont.Trade.To.Mobile == state.Mobile) ) + if ( World.FindItem( serial ) is SecureTradeContainer cont && cont.Trade != null && (cont.Trade.From.Mobile == state.Mobile || cont.Trade.To.Mobile == state.Mobile) ) cont.Trade.Cancel(); break; @@ -354,9 +352,7 @@ namespace Server.Network { Serial serial = pvSrc.ReadInt32(); - SecureTradeContainer cont = World.FindItem( serial ) as SecureTradeContainer; - - if ( cont != null ) + if ( World.FindItem( serial ) is SecureTradeContainer cont ) { SecureTrade trade = cont.Trade; @@ -380,9 +376,7 @@ namespace Server.Network { Serial serial = pvSrc.ReadInt32(); - SecureTradeContainer cont = World.FindItem(serial) as SecureTradeContainer; - - if (cont != null) + if (World.FindItem(serial) is SecureTradeContainer cont) { int gold = pvSrc.ReadInt32(); int plat = pvSrc.ReadInt32(); @@ -445,13 +439,8 @@ namespace Server.Network buyList.Add( new BuyItemResponse( serial, amount ) ); } - if ( buyList.Count > 0 ) - { - IVendor v = vendor as IVendor; - - if ( v != null && v.OnBuyItems( state.Mobile, buyList ) ) - state.Send( new EndVendorBuy( vendor ) ); - } + if ( buyList.Count > 0 && vendor is IVendor v && v.OnBuyItems( state.Mobile, buyList ) ) + state.Send( new EndVendorBuy( vendor ) ); } else { @@ -488,13 +477,8 @@ namespace Server.Network sellList.Add( new SellItemResponse( item, Amount ) ); } - if ( sellList.Count > 0 ) - { - IVendor v = vendor as IVendor; - - if ( v != null && v.OnSellItems( state.Mobile, sellList ) ) - state.Send( new EndVendorSell( vendor ) ); - } + if ( sellList.Count > 0 && vendor is IVendor v && v.OnSellItems( state.Mobile, sellList ) ) + state.Send( new EndVendorSell( vendor ) ); } } @@ -1052,10 +1036,10 @@ namespace Server.Network { Item item = World.FindItem( dest ); - if ( item is BaseMulti && ((BaseMulti)item).AllowsRelativeDrop ) + if ( item is BaseMulti multi && multi.AllowsRelativeDrop ) { - loc.m_X += item.X; - loc.m_Y += item.Y; + loc.m_X += multi.X; + loc.m_Y += multi.Y; from.Drop( loc ); } else @@ -1090,10 +1074,10 @@ namespace Server.Network { Item item = World.FindItem( dest ); - if ( item is BaseMulti && ((BaseMulti)item).AllowsRelativeDrop ) + if ( item is BaseMulti multi && multi.AllowsRelativeDrop ) { - loc.m_X += item.X; - loc.m_Y += item.Y; + loc.m_X += multi.X; + loc.m_Y += multi.Y; from.Drop( loc ); } else @@ -1251,13 +1235,13 @@ namespace Server.Network { foreach (var e in gump.Entries) { - if (e is GumpButton && ((GumpButton)e).ButtonID == buttonID) + if (e is GumpButton button && button.ButtonID == buttonID) { buttonExists = true; break; } - if (e is GumpImageTileButton && ((GumpImageTileButton)e).ButtonID == buttonID) + if (e is GumpImageTileButton tileButton && tileButton.ButtonID == buttonID) { buttonExists = true; break; @@ -1546,8 +1530,8 @@ namespace Server.Network } else if ( from.Region.OnSingleClick( from, item ) ) { - if ( item.Parent is Item ) - ((Item)item.Parent).OnSingleClickContained( from, item ); + if ( item.Parent is Item item1 ) + item1.OnSingleClickContained( from, item ); item.OnSingleClick( from ); } @@ -1888,8 +1872,8 @@ namespace Server.Network if ( entity is Mobile ) p = entity.Location; - else if ( entity is Item ) - p = ((Item)entity).GetWorldLocation(); + else if ( entity is Item item ) + p = item.GetWorldLocation(); else return; @@ -1921,7 +1905,10 @@ namespace Server.Network { if ( target is Mobile && !Utility.InUpdateRange( from.Location, target.Location ) ) return; - else if ( target is Item && !Utility.InUpdateRange( from.Location, ((Item)target).GetWorldLocation() ) ) + + Item item = target as Item; + + if ( item != null && !Utility.InUpdateRange( from.Location, item.GetWorldLocation() ) ) return; if ( !from.CheckContextMenuDisplay( target ) ) @@ -1931,17 +1918,12 @@ namespace Server.Network if ( c.Entries.Length > 0 ) { - if ( target is Item ) + if ( item?.RootParent is Mobile mobile && mobile != from && mobile.AccessLevel >= from.AccessLevel ) { - object root = ((Item)target).RootParent; - - if ( root is Mobile && root != from && ((Mobile)root).AccessLevel >= from.AccessLevel ) + for ( int i = 0; i < c.Entries.Length; ++i ) { - for ( int i = 0; i < c.Entries.Length; ++i ) - { - if ( !c.Entries[i].NonLocalUse ) - c.Entries[i].Enabled = false; - } + if ( !c.Entries[i].NonLocalUse ) + c.Entries[i].Enabled = false; } } diff --git a/Server/Network/Packets.cs b/Server/Network/Packets.cs index c7387c51d..9a83c5241 100644 --- a/Server/Network/Packets.cs +++ b/Server/Network/Packets.cs @@ -371,8 +371,7 @@ namespace Server.Network { this.EnsureCapacity( 256 ); - Container BuyPack = vendor.FindItemOnLayer( Layer.ShopBuy ) as Container; - m_Stream.Write( (int)(BuyPack == null ? Serial.MinusOne : BuyPack.Serial) ); + m_Stream.Write( (int)(!(vendor.FindItemOnLayer( Layer.ShopBuy ) is Container BuyPack) ? Serial.MinusOne : BuyPack.Serial) ); m_Stream.Write( (byte)list.Count ); @@ -949,8 +948,8 @@ namespace Server.Network if ( target is Mobile ) p = target.Location; - else if ( target is Item ) - p = ((Item)target).GetWorldLocation(); + else if ( target is Item item ) + p = item.GetWorldLocation(); else p = Point3D.Zero; @@ -998,8 +997,8 @@ namespace Server.Network if ( target is Mobile ) p = target.Location; - else if ( target is Item ) - p = ((Item)target).GetWorldLocation(); + else if ( target is Item item ) + p = item.GetWorldLocation(); else p = Point3D.Zero; @@ -1072,9 +1071,11 @@ namespace Server.Network { Serial parentSerial; - if ( item.Parent is Mobile ) + Mobile parent = item.Parent as Mobile; + + if ( parent != null ) { - parentSerial = ((Mobile)item.Parent).Serial; + parentSerial = parent.Serial; } else { @@ -1084,12 +1085,10 @@ namespace Server.Network int hue = item.Hue; - if ( item.Parent is Mobile ) + if ( parent != null ) { - Mobile mob = (Mobile)item.Parent; - - if ( mob.SolidHueOverride >= 0 ) - hue = mob.SolidHueOverride; + if ( parent.SolidHueOverride >= 0 ) + hue = parent.SolidHueOverride; } m_Stream.Write( (int) item.Serial ); @@ -1890,9 +1889,9 @@ namespace Server.Network { Serial parentSerial; - if ( item.Parent is Item ) + if ( item.Parent is Item parentItem ) { - parentSerial = ((Item)item.Parent).Serial; + parentSerial = parentItem.Serial; } else { @@ -1917,9 +1916,9 @@ namespace Server.Network { Serial parentSerial; - if ( item.Parent is Item ) + if ( item.Parent is Item parentItem ) { - parentSerial = ((Item)item.Parent).Serial; + parentSerial = parentItem.Serial; } else { @@ -2845,9 +2844,7 @@ namespace Server.Network flags |= m_AdditionalFlags; - IAccount acct = ns.Account as IAccount; - - if ( acct != null && acct.Limit >= 6 ) + if ( ns.Account is IAccount acct && acct.Limit >= 6 ) { flags |= FeatureFlags.LiveAccount; flags &= ~FeatureFlags.UOTD; diff --git a/Server/Persistence/ParallelSaveStrategy.cs b/Server/Persistence/ParallelSaveStrategy.cs index 43a3100a8..dce41864e 100644 --- a/Server/Persistence/ParallelSaveStrategy.cs +++ b/Server/Persistence/ParallelSaveStrategy.cs @@ -170,23 +170,12 @@ namespace Server { ISerializable value = entry.value; BinaryMemoryWriter writer = entry.writer; - Item item = value as Item; - - if ( item != null ) { + if ( value is Item item ) Save( item, writer ); - } else { - Mobile mob = value as Mobile; - - if ( mob != null ) { + else if ( value is Mobile mob ) Save( mob, writer ); - } else { - BaseGuild guild = value as BaseGuild; - - if ( guild != null ) { - Save( guild, writer ); - } - } - } + else if ( value is BaseGuild guild ) + Save( guild, writer ); } private void Save( Item item, BinaryMemoryWriter writer ) { diff --git a/Server/Random.cs b/Server/Random.cs index 5fde128b0..8e32c8eea 100644 --- a/Server/Random.cs +++ b/Server/Random.cs @@ -31,10 +31,8 @@ namespace Server { _Random = new CSPRandom(); } - if (_Random is IHardwareRNG) { - if (!((IHardwareRNG)_Random).IsSupported()) { - _Random = new CSPRandom(); - } + if (_Random is IHardwareRNG rng && !rng.IsSupported()) { + _Random = new CSPRandom(); } } diff --git a/Server/Region.cs b/Server/Region.cs index c501ce388..ae78a19e5 100644 --- a/Server/Region.cs +++ b/Server/Region.cs @@ -490,10 +490,8 @@ namespace Server if ( obj == null ) return 1; - Region reg = obj as Region; - - if ( reg == null ) - throw new ArgumentException( "obj is not a Region", "obj" ); + if ( !(obj is Region reg) ) + throw new ArgumentException( "obj is not a Region", nameof(obj) ); // Dynamic regions go first if ( this.Dynamic ) diff --git a/Server/ScriptCompiler.cs b/Server/ScriptCompiler.cs index e3935392d..cd14d1f1e 100644 --- a/Server/ScriptCompiler.cs +++ b/Server/ScriptCompiler.cs @@ -771,9 +771,7 @@ namespace Server if ( attrs != null && attrs.Length > 0 ) { - TypeAliasAttribute attr = attrs[0] as TypeAliasAttribute; - - if ( attr != null ) + if ( attrs[0] is TypeAliasAttribute attr ) { for( int j = 0; j < attr.Aliases.Length; ++j ) m_FullNames.Add( attr.Aliases[j], type ); diff --git a/Server/Sector.cs b/Server/Sector.cs index 4da1bf4a0..290b6711a 100644 --- a/Server/Sector.cs +++ b/Server/Sector.cs @@ -45,10 +45,8 @@ namespace Server { if ( obj == null ) return 1; - RegionRect regRect = obj as RegionRect; - - if ( regRect == null ) - throw new ArgumentException( "obj is not a RegionRect", "obj" ); + if ( !(obj is RegionRect regRect) ) + throw new ArgumentException( "obj is not a RegionRect", nameof(obj) ); return ( ( IComparable ) m_Region ).CompareTo( regRect.m_Region ); } @@ -316,4 +314,4 @@ namespace Server { } } } -} \ No newline at end of file +} diff --git a/Server/Serial.cs b/Server/Serial.cs index 5c0ea8d6a..10e180e94 100644 --- a/Server/Serial.cs +++ b/Server/Serial.cs @@ -104,9 +104,10 @@ namespace Server public int CompareTo( object other ) { - if ( other is Serial ) - return this.CompareTo( (Serial) other ); - else if ( other == null ) + if ( other is Serial serial ) + return this.CompareTo( serial ); + + if ( other == null ) return -1; throw new ArgumentException(); @@ -114,9 +115,10 @@ namespace Server public override bool Equals( object o ) { - if ( o == null || !(o is Serial) ) return false; + if ( !(o is Serial serial) ) + return false; - return ((Serial)o).m_Serial == m_Serial; + return serial.m_Serial == m_Serial; } public static bool operator == ( Serial l, Serial r ) @@ -169,4 +171,4 @@ namespace Server return new Serial( a ); } } -} \ No newline at end of file +} diff --git a/Server/Serialization.cs b/Server/Serialization.cs index 48d14f4d2..d07051b8c 100644 --- a/Server/Serialization.cs +++ b/Server/Serialization.cs @@ -1252,17 +1252,14 @@ namespace Server List list = new List( count ); for ( int i = 0; i < count; ++i ) { - T item = ReadItem() as T; - - if ( item != null ) { + if ( ReadItem() is T item ) { list.Add( item ); } } return list; - } else { - return new List(); } + return new List(); } public override HashSet ReadItemSet() @@ -1280,9 +1277,7 @@ namespace Server for( int i = 0; i < count; ++i ) { - T item = ReadItem() as T; - - if ( item != null ) + if ( ReadItem() is T item ) { set.Add( item ); } @@ -1290,10 +1285,8 @@ namespace Server return set; } - else - { - return new HashSet(); - } + + return new HashSet(); } public override List ReadStrongMobileList() @@ -1309,17 +1302,15 @@ namespace Server List list = new List( count ); for ( int i = 0; i < count; ++i ) { - T m = ReadMobile() as T; - - if ( m != null ) { + if ( ReadMobile() is T m ) { list.Add( m ); } } return list; - } else { - return new List(); } + + return new List(); } public override HashSet ReadMobileSet() @@ -1337,9 +1328,7 @@ namespace Server for( int i = 0; i < count; ++i ) { - T item = ReadMobile() as T; - - if ( item != null ) + if ( ReadMobile() is T item ) { set.Add( item ); } @@ -1347,10 +1336,8 @@ namespace Server return set; } - else - { - return new HashSet(); - } + + return new HashSet(); } public override List ReadStrongGuildList() @@ -1366,17 +1353,15 @@ namespace Server List list = new List( count ); for ( int i = 0; i < count; ++i ) { - T g = ReadGuild() as T; - - if ( g != null ) { + if ( ReadGuild() is T g ) { list.Add( g ); } } return list; - } else { - return new List(); } + + return new List(); } public override HashSet ReadGuildSet() @@ -1394,9 +1379,7 @@ namespace Server for( int i = 0; i < count; ++i ) { - T item = ReadGuild() as T; - - if ( item != null ) + if ( ReadGuild() is T item ) { set.Add( item ); } @@ -1404,10 +1387,8 @@ namespace Server return set; } - else - { - return new HashSet(); - } + + return new HashSet(); } public override Race ReadRace() diff --git a/Server/Targeting/Target.cs b/Server/Targeting/Target.cs index 31ffe1732..280bb4d71 100644 --- a/Server/Targeting/Target.cs +++ b/Server/Targeting/Target.cs @@ -205,47 +205,50 @@ namespace Server.Targeting Point3D loc; Map map; - if ( targeted is LandTarget ) + Item item = targeted as Item; + Mobile mobile = targeted as Mobile; + + if ( targeted is LandTarget target ) { - loc = ((LandTarget)targeted).Location; + loc = target.Location; map = from.Map; } - else if ( targeted is StaticTarget ) + else if ( targeted is StaticTarget staticTarget ) { - loc = ((StaticTarget)targeted).Location; + loc = staticTarget.Location; map = from.Map; } - else if ( targeted is Mobile ) + else if ( mobile != null ) { - if ( ((Mobile)targeted).Deleted ) + if ( mobile.Deleted ) { - OnTargetDeleted( from, targeted ); - OnTargetFinish( from ); - return; - } - else if ( !((Mobile)targeted).CanTarget ) - { - OnTargetUntargetable( from, targeted ); + OnTargetDeleted( from, mobile ); OnTargetFinish( from ); return; } - loc = ((Mobile)targeted).Location; - map = ((Mobile)targeted).Map; - } - else if ( targeted is Item ) - { - Item item = (Item)targeted; + if ( !mobile.CanTarget ) + { + OnTargetUntargetable( from, mobile ); + OnTargetFinish( from ); + return; + } + loc = mobile.Location; + map = mobile.Map; + } + else if ( item != null ) + { if ( item.Deleted ) { - OnTargetDeleted( from, targeted ); + OnTargetDeleted( from, item ); OnTargetFinish( from ); return; } - else if ( !item.CanTarget ) + + if ( !item.CanTarget ) { - OnTargetUntargetable( from, targeted ); + OnTargetUntargetable( from, item ); OnTargetFinish( from ); return; } @@ -254,7 +257,7 @@ namespace Server.Targeting if ( !m_AllowNonlocal && root is Mobile && root != from && from.AccessLevel == AccessLevel.Player ) { - OnNonlocalTarget( from, targeted ); + OnNonlocalTarget( from, item ); OnTargetFinish( from ); return; } @@ -279,14 +282,14 @@ namespace Server.Targeting OnCantSeeTarget( from, targeted ); else if ( m_CheckLOS && !from.InLOS( targeted ) ) OnTargetOutOfLOS( from, targeted ); - else if ( targeted is Item && ((Item)targeted).InSecureTrade ) + else if ( item?.InSecureTrade == true ) OnTargetInSecureTrade( from, targeted ); - else if ( targeted is Item && !((Item)targeted).IsAccessibleTo( from ) ) + else if ( item?.IsAccessibleTo( from ) == true ) OnTargetNotAccessible( from, targeted ); - else if ( targeted is Item && !((Item)targeted).CheckTarget( from, this, targeted ) ) - OnTargetUntargetable( from, targeted ); - else if ( targeted is Mobile && !((Mobile)targeted).CheckTarget( from, this, targeted ) ) + else if ( item?.CheckTarget( from, this, targeted ) == true ) OnTargetUntargetable( from, targeted ); + else if ( mobile?.CheckTarget( from, this, mobile ) != true ) + OnTargetUntargetable( from, mobile ); else if ( from.Region.OnTarget( from, this, targeted ) ) OnTarget( from, targeted ); } @@ -381,4 +384,4 @@ namespace Server.Targeting } } } -} \ No newline at end of file +} diff --git a/Server/World.cs b/Server/World.cs index 2157f02af..b3f7959e1 100644 --- a/Server/World.cs +++ b/Server/World.cs @@ -661,33 +661,19 @@ namespace Server { while ( _addQueue.Count > 0 ) { IEntity entity = _addQueue.Dequeue(); - Item item = entity as Item; - - if ( item != null ) { + if ( entity is Item item ) AddItem( item ); - } else { - Mobile mob = entity as Mobile; - - if ( mob != null ) { - AddMobile( mob ); - } - } + else if ( entity is Mobile mob ) + AddMobile( mob ); } while ( _deleteQueue.Count > 0 ) { IEntity entity = _deleteQueue.Dequeue(); - Item item = entity as Item; - - if ( item != null ) { + if ( entity is Item item ) item.Delete(); - } else { - Mobile mob = entity as Mobile; - - if ( mob != null ) { - mob.Delete(); - } - } + else if ( entity is Mobile mob ) + mob.Delete(); } }