Some cleanup of contains keys and try get values (#246)

This commit is contained in:
Kamron Batman 2020-09-13 20:20:44 -07:00 • committed by GitHub
parent 9cbb0cfd23
commit a236617ad9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
69 changed files with 3508 additions and 350 deletions

View file

@ -62,7 +62,10 @@ namespace Server.Items
{
base.OnDelete();
foreach (var key in Keys) key.Delete();
foreach (var key in Keys)
{
key.Delete();
}
Keys.Clear();
}
@ -78,14 +81,18 @@ namespace Server.Items
public void Open(Mobile from)
{
if (!(Parent is Container cont))
{
return;
}
for (var i = Keys.Count - 1; i >= 0; i--)
{
var key = Keys[i];
if (!key.Deleted && !cont.TryDropItem(from, key, true))
{
break;
}
Keys.RemoveAt(i);
}
@ -112,8 +119,12 @@ namespace Server.Items
public bool ContainsKey(uint keyValue)
{
foreach (var key in Keys)
{
if (key.KeyValue == keyValue)
{
return true;
}
}
return false;
}
@ -121,13 +132,21 @@ namespace Server.Items
private void UpdateItemID()
{
if (Keys.Count < 1)
{
ItemID = 0x1011;
}
else if (Keys.Count < 3)
{
ItemID = 0x1769;
}
else if (Keys.Count < 5)
{
ItemID = 0x176A;
}
else
{
ItemID = 0x176B;
}
}
public override void Serialize(IGenericWriter writer)
@ -170,8 +189,12 @@ namespace Server.Items
else if (targeted is ILockable o)
{
foreach (var key in m_KeyRing.Keys)
{
if (key.UseOn(from, o))
{
return;
}
}
from.SendLocalizedMessage(1008140); // You do not have a key for that.
}