Clean up: Bugs, LINQ, constructors, default values, and null checks (#18)

This commit is contained in:
Kamron Batman 2019-03-11 14:29:59 -07:00 • committed by GitHub
parent e748af4430
commit 513e54f70e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
1094 changed files with 15913 additions and 21892 deletions

View file

@ -203,7 +203,7 @@ namespace Server.Items
public virtual bool CheckHold(Mobile m, Item item, bool message, bool checkItems, int plusItems, int plusWeight)
{
if (m != null && m.AccessLevel < AccessLevel.GameMaster)
if (m?.AccessLevel < AccessLevel.GameMaster)
{
if (IsDecoContainer)
{
@ -607,15 +607,13 @@ namespace Server.Items
{
DisplayTo(from);
SecureTradeContainer cont = GetSecureTradeCont();
SecureTrade trade = GetSecureTradeCont()?.Trade;
if (cont != null)
if (trade != null)
{
SecureTrade trade = cont.Trade;
if (trade != null && trade.From.Mobile == from)
if (trade.From.Mobile == from)
DisplayTo(trade.To.Mobile);
else if (trade != null && trade.To.Mobile == from)
else if (trade.To.Mobile == from)
DisplayTo(trade.From.Mobile);
}
}
@ -675,50 +673,50 @@ namespace Server.Items
public void ProcessOpeners(Mobile opener)
{
if (!IsPublicContainer)
if (IsPublicContainer)
return;
bool contains = false;
if (Openers != null)
{
bool contains = false;
Point3D worldLoc = GetWorldLocation();
Map map = Map;
if (Openers != null)
for (int i = 0; i < Openers.Count; ++i)
{
Point3D worldLoc = GetWorldLocation();
Map map = Map;
Mobile mob = Openers[i];
for (int i = 0; i < Openers.Count; ++i)
if (mob == opener)
{
Mobile mob = Openers[i];
contains = true;
}
else
{
int range = GetUpdateRange(mob);
if (mob == opener)
{
contains = true;
}
else
{
int range = GetUpdateRange(mob);
if (mob.Map != map || !mob.InRange(worldLoc, range))
Openers.RemoveAt(i--);
}
if (mob.Map != map || !mob.InRange(worldLoc, range))
Openers.RemoveAt(i--);
}
}
}
if (!contains)
{
if (Openers == null)
Openers = new List<Mobile>();
if (!contains)
{
if (Openers == null)
Openers = new List<Mobile>();
Openers.Add(opener);
}
else if (Openers != null && Openers.Count == 0)
{
Openers = null;
}
Openers.Add(opener);
}
else if (Openers?.Count == 0)
{
Openers = null;
}
}
public virtual void SendContentTo(NetState state)
{
if (state != null && state.ContainerGridLines)
if (state?.ContainerGridLines == true)
state.Send(new ContainerContent6017(state.Mobile, this));
else
state.Send(new ContainerContent(state.Mobile, this));
@ -1122,17 +1120,7 @@ namespace Server.Items
return -1;
}
public int ConsumeTotal(Type[] types, int[] amounts)
{
return ConsumeTotal(types, amounts, true, null);
}
public int ConsumeTotal(Type[] types, int[] amounts, bool recurse)
{
return ConsumeTotal(types, amounts, recurse, null);
}
public int ConsumeTotal(Type[] types, int[] amounts, bool recurse, OnItemConsumed callback)
public int ConsumeTotal(Type[] types, int[] amounts, bool recurse = true, OnItemConsumed callback = null)
{
if (types.Length != amounts.Length)
throw new ArgumentException();
@ -1181,17 +1169,7 @@ namespace Server.Items
return -1;
}
public bool ConsumeTotal(Type type, int amount)
{
return ConsumeTotal(type, amount, true, null);
}
public bool ConsumeTotal(Type type, int amount, bool recurse)
{
return ConsumeTotal(type, amount, recurse, null);
}
public bool ConsumeTotal(Type type, int amount, bool recurse, OnItemConsumed callback)
public bool ConsumeTotal(Type type, int amount = 1, bool recurse = true, OnItemConsumed callback = null)
{
Item[] items = FindItemsByType(type, recurse);
@ -1234,12 +1212,7 @@ namespace Server.Items
return false;
}
public int ConsumeUpTo(Type type, int amount)
{
return ConsumeUpTo(type, amount, true);
}
public int ConsumeUpTo(Type type, int amount, bool recurse)
public int ConsumeUpTo(Type type, int amount, bool recurse = true)
{
int consumed = 0;
@ -1256,37 +1229,37 @@ namespace Server.Items
private static void RecurseConsumeUpTo(Item current, Type type, int amount, bool recurse, ref int consumed,
Queue<Item> toDelete)
{
if (current != null && current.Items.Count > 0)
if (current == null || current.Items.Count == 0)
return;
List<Item> list = current.Items;
for (int i = 0; i < list.Count; ++i)
{
List<Item> list = current.Items;
Item item = list[i];
for (int i = 0; i < list.Count; ++i)
if (type.IsInstanceOfType(item))
{
Item item = list[i];
int need = amount - consumed;
int theirAmount = item.Amount;
if (type.IsInstanceOfType(item))
if (theirAmount <= need)
{
int need = amount - consumed;
int theirAmount = item.Amount;
if (theirAmount <= need)
{
toDelete.Enqueue(item);
consumed += theirAmount;
}
else
{
item.Amount -= need;
consumed += need;
return;
}
toDelete.Enqueue(item);
consumed += theirAmount;
}
else if (recurse && item is Container)
else
{
RecurseConsumeUpTo(item, type, amount, true, ref consumed, toDelete);
item.Amount -= need;
consumed += need;
return;
}
}
else if (recurse && item is Container)
{
RecurseConsumeUpTo(item, type, amount, true, ref consumed, toDelete);
}
}
}
@ -1572,7 +1545,7 @@ namespace Server.Items
private static Item RecurseFindItemByType(Item current, Type[] types, bool recurse)
{
if (current == null || current.Items.Count <= 0)
if (current == null || current.Items.Count == 0)
return null;
List<Item> list = current.Items;
@ -1635,12 +1608,12 @@ namespace Server.Items
}
}
public T FindItemByType<T>(bool recurse = true, Predicate<T> predicate = null) where T : Item
public T FindItemByType<T>(bool recurse = true) where T : Item
{
return RecurseFindItemByType(this, recurse, predicate);
return RecurseFindItemByType<T>(this, recurse);
}
private static T RecurseFindItemByType<T>(Item current, bool recurse, Predicate<T> predicate) where T : Item
private static T RecurseFindItemByType<T>(Item current, bool recurse = true, Predicate<T> predicate = null) where T : Item
{
if (current == null || current.Items.Count == 0)
return null;