servuo/Server/Items/SecureTradeContainer.cs
VitaNex f840e50340 Updated .editorconfig file with advanced configuration settings that will help maintain user code style and best practices with most IDE's.
Complete core housekeeping operation using "Profile 1" with new .editorconfig settings.
2021-01-15 12:51:10 -08:00

130 lines
2.4 KiB
C#

#region References
using Server.Accounting;
using Server.Network;
#endregion
namespace Server.Items
{
public class SecureTradeContainer : Container
{
private readonly SecureTrade m_Trade;
public SecureTrade Trade => m_Trade;
public SecureTradeContainer(SecureTrade trade)
: base(0x1E5E)
{
m_Trade = trade;
Movable = false;
Layer = Layer.SecureTrade;
}
public SecureTradeContainer(Serial serial)
: base(serial)
{ }
public override bool CheckHold(Mobile m, Item item, bool message, bool checkItems, int plusItems, int plusWeight)
{
if (item == Trade.From.VirtualCheck || item == Trade.To.VirtualCheck)
{
return true;
}
var to = Trade.From.Container != this ? Trade.From.Mobile : Trade.To.Mobile;
return m.CheckTrade(to, item, this, message, checkItems, plusItems, plusWeight);
}
public override bool CheckLift(Mobile from, Item item, ref LRReason reject)
{
reject = LRReason.CannotLift;
return false;
}
public override bool IsAccessibleTo(Mobile check)
{
if (!IsChildOf(check) || m_Trade == null || !m_Trade.Valid)
{
return false;
}
return base.IsAccessibleTo(check);
}
public override void OnItemAdded(Item item)
{
if (!(item is VirtualCheck))
{
ClearChecks();
}
}
public override void OnItemRemoved(Item item)
{
if (!(item is VirtualCheck))
{
ClearChecks();
}
}
public override void OnSubItemAdded(Item item)
{
if (!(item is VirtualCheck))
{
ClearChecks();
}
}
public override void OnSubItemRemoved(Item item)
{
if (!(item is VirtualCheck))
{
ClearChecks();
}
}
public void ClearChecks()
{
if (m_Trade != null)
{
if (m_Trade.From != null && !m_Trade.From.IsDisposed)
{
m_Trade.From.Accepted = false;
}
if (m_Trade.To != null && !m_Trade.To.IsDisposed)
{
m_Trade.To.Accepted = false;
}
m_Trade.Update();
}
}
public override bool IsChildVisibleTo(Mobile m, Item child)
{
if (child is VirtualCheck)
{
return !AccountGold.Enabled;
}
return base.IsChildVisibleTo(m, child);
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.ReadInt();
}
}
}