Overwrite

Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
Unstable Kitsune
2023-11-28 23:20:26 -05:00
parent 3cd54811de
commit b918192e4e
11608 changed files with 2644205 additions and 47 deletions

View File

@@ -0,0 +1,121 @@
using System;
using System.Collections;
using Server.Items;
using Server.Multis;
using Server.Mobiles;
using Server.Network;
namespace Server.Custom
{
public class LinkedBag : Bag
{
private LinkedBag mate;
[CommandProperty(AccessLevel.GameMaster)]
public LinkedBag Mate { get { return mate; } set { mate = value; } }
[Constructable]
public LinkedBag()
: base()
{
Name = "Linked Bag";
Weight = 2.0;
}
public LinkedBag(Serial serial)
: base(serial)
{
}
public override bool OnDragDrop(Mobile from, Item dropped)
{
return OnDragDropInto(from, dropped, new Point3D(20, 100, 0));
}
public override bool OnDragDropInto(Mobile from, Item item, Point3D p)
{
if (item is LinkedBag) return false;
if (mate == null) return base.OnDragDropInto(from, item, p);
if (!mate.CheckHold(from, item, true, true))
return false;
try
{
mate.DropItem(item);
}
catch
{
from.SendMessage("Unable to do that.");
return false;
}
return true;
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0); // version
writer.Write(mate);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
mate = reader.ReadItem() as LinkedBag;
}
}
public class LinkedBagsBag : Bag
{
public override string DefaultName
{
get { return "a Bag of Linked Bags"; }
}
[Constructable]
public LinkedBagsBag()
: base()
{
Movable = true;
Hue = Utility.RandomBlueHue();
}
public override void OnDoubleClick(Mobile from)
{
if (Items.Count == 0 && from.AccessLevel >= AccessLevel.Counselor)
{
LinkedBag bagA = new LinkedBag();
LinkedBag bagB = new LinkedBag();
bagA.Mate = bagB;
bagB.Mate = bagA;
bagA.Name = string.Format("{0}'s Linked Bag", from.Name);
bagB.Name = string.Format("{0}'s Linked Bag", from.Name);
DropItem(bagA);
DropItem(bagB);
}
base.OnDoubleClick(from);
}
public LinkedBagsBag(Serial serial)
: base(serial)
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}