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,316 @@
#region References
using System.Collections;
using Server;
using Server.Multis;
using Server.Targeting;
#endregion
namespace Knives.TownHouses
{
public enum HammerJob
{
Flip,
Swap
}
public class SignHammer : Item
{
private static readonly Hashtable s_Table = new Hashtable();
private static readonly ArrayList s_List = new ArrayList();
public static void Initialize()
{
// Signs
s_Table[0xB95] = 0xB96;
s_Table[0xB96] = 0xB95;
s_Table[0xBA3] = 0xBA4;
s_Table[0xBA4] = 0xBA3;
s_Table[0xBA5] = 0xBA6;
s_Table[0xBA6] = 0xBA5;
s_Table[0xBA7] = 0xBA8;
s_Table[0xBA8] = 0xBA7;
s_Table[0xBA9] = 0xBAA;
s_Table[0xBAA] = 0xBA9;
s_Table[0xBAB] = 0xBAC;
s_Table[0xBAC] = 0xBAB;
s_Table[0xBAD] = 0xBAE;
s_Table[0xBAE] = 0xBAD;
s_Table[0xBAF] = 0xBB0;
s_Table[0xBB0] = 0xBAF;
s_Table[0xBB1] = 0xBB2;
s_Table[0xBB2] = 0xBB1;
s_Table[0xBB3] = 0xBB4;
s_Table[0xBB4] = 0xBB3;
s_Table[0xBB5] = 0xBB6;
s_Table[0xBB6] = 0xBB5;
s_Table[0xBB7] = 0xBB8;
s_Table[0xBB8] = 0xBB7;
s_Table[0xBB9] = 0xBBA;
s_Table[0xBBA] = 0xBB9;
s_Table[0xBBB] = 0xBBC;
s_Table[0xBBC] = 0xBBB;
s_Table[0xBBD] = 0xBBE;
s_Table[0xBBE] = 0xBBD;
s_Table[0xBBF] = 0xBC0;
s_Table[0xBC0] = 0xBBF;
s_Table[0xBC1] = 0xBC2;
s_Table[0xBC2] = 0xBC1;
s_Table[0xBC3] = 0xBC4;
s_Table[0xBC4] = 0xBC3;
s_Table[0xBC5] = 0xBC6;
s_Table[0xBC6] = 0xBC5;
s_Table[0xBC7] = 0xBC8;
s_Table[0xBC8] = 0xBC7;
s_Table[0xBC9] = 0xBCA;
s_Table[0xBCA] = 0xBC9;
s_Table[0xBCB] = 0xBCC;
s_Table[0xBCC] = 0xBCB;
s_Table[0xBCD] = 0xBCE;
s_Table[0xBCE] = 0xBCD;
s_Table[0xBCF] = 0xBD0;
s_Table[0xBD0] = 0xBCF;
s_Table[0xBD1] = 0xBD2;
s_Table[0xBD2] = 0xBD1;
s_Table[0xBD3] = 0xBD4;
s_Table[0xBD4] = 0xBD3;
s_Table[0xBD5] = 0xBD6;
s_Table[0xBD6] = 0xBD5;
s_Table[0xBD7] = 0xBD8;
s_Table[0xBD8] = 0xBD7;
s_Table[0xBD9] = 0xBDA;
s_Table[0xBDA] = 0xBD9;
s_Table[0xBDB] = 0xBDC;
s_Table[0xBDC] = 0xBDB;
s_Table[0xBDD] = 0xBDE;
s_Table[0xBDE] = 0xBDD;
s_Table[0xBDF] = 0xBE0;
s_Table[0xBE0] = 0xBDF;
s_Table[0xBE1] = 0xBE2;
s_Table[0xBE2] = 0xBE1;
s_Table[0xBE3] = 0xBE4;
s_Table[0xBE4] = 0xBE3;
s_Table[0xBE5] = 0xBE6;
s_Table[0xBE6] = 0xBE5;
s_Table[0xBE7] = 0xBE8;
s_Table[0xBE8] = 0xBE7;
s_Table[0xBE9] = 0xBEA;
s_Table[0xBEA] = 0xBE9;
s_Table[0xBEB] = 0xBEC;
s_Table[0xBEC] = 0xBEB;
s_Table[0xBED] = 0xBEE;
s_Table[0xBEE] = 0xBED;
s_Table[0xBEF] = 0xBF0;
s_Table[0xBF0] = 0xBEF;
s_Table[0xBF1] = 0xBF2;
s_Table[0xBF2] = 0xBF1;
s_Table[0xBF3] = 0xBF4;
s_Table[0xBF4] = 0xBF3;
s_Table[0xBF5] = 0xBF6;
s_Table[0xBF6] = 0xBF5;
s_Table[0xBF7] = 0xBF8;
s_Table[0xBF8] = 0xBF7;
s_Table[0xBF9] = 0xBFA;
s_Table[0xBFA] = 0xBF9;
s_Table[0xBFB] = 0xBFC;
s_Table[0xBFC] = 0xBFB;
s_Table[0xBFD] = 0xBFE;
s_Table[0xBFE] = 0xBFD;
s_Table[0xBFF] = 0xC00;
s_Table[0xC00] = 0xBFF;
s_Table[0xC01] = 0xC02;
s_Table[0xC02] = 0xC01;
s_Table[0xC03] = 0xC04;
s_Table[0xC04] = 0xC03;
s_Table[0xC05] = 0xC06;
s_Table[0xC06] = 0xC05;
s_Table[0xC07] = 0xC08;
s_Table[0xC08] = 0xC07;
s_Table[0xC09] = 0xC0A;
s_Table[0xC0A] = 0xC09;
s_Table[0xC0B] = 0xC0C;
s_Table[0xC0C] = 0xC0B;
s_Table[0xC0D] = 0xC0E;
s_Table[0xC0E] = 0xC0D;
// Hangers
s_Table[0xB97] = 0xB98;
s_Table[0xB98] = 0xB97;
s_Table[0xB99] = 0xB9A;
s_Table[0xB9A] = 0xB99;
s_Table[0xB9B] = 0xB9C;
s_Table[0xB9C] = 0xB9B;
s_Table[0xB9D] = 0xB9E;
s_Table[0xB9E] = 0xB9D;
s_Table[0xB9F] = 0xBA0;
s_Table[0xBA0] = 0xB9F;
s_Table[0xBA1] = 0xBA2;
s_Table[0xBA2] = 0xBA1;
// Hangers for swapping
s_List.Add(0xB97);
s_List.Add(0xB98);
s_List.Add(0xB99);
s_List.Add(0xB9A);
s_List.Add(0xB9B);
s_List.Add(0xB9C);
s_List.Add(0xB9D);
s_List.Add(0xB9E);
s_List.Add(0xB9F);
s_List.Add(0xBA0);
s_List.Add(0xBA1);
s_List.Add(0xBA2);
}
public HammerJob Job { get; set; }
[Constructable]
public SignHammer()
: base(0x13E3)
{
Name = "Sign Hammer";
}
public int GetFlipFor(int id)
{
return (s_Table[id] == null ? id : (int)s_Table[id]);
}
public int GetNextSign(int id)
{
if (!s_List.Contains(id))
{
return id;
}
var idx = s_List.IndexOf(id);
if (idx + 2 < s_List.Count)
{
return (int)s_List[idx + 2];
}
if (idx % 2 == 0)
{
return (int)s_List[0];
}
return (int)s_List[1];
}
public override void OnDoubleClick(Mobile m)
{
if (RootParent != m)
{
m.SendMessage("That item must be in your backpack to use.");
return;
}
var house = BaseHouse.FindHouseAt(m);
if (m.AccessLevel < AccessLevel.Counselor && (house == null || house.Owner != m))
{
m.SendMessage("You have to be inside your house to use this.");
return;
}
m.BeginTarget(3, false, TargetFlags.None, OnTarget);
}
protected void OnTarget(Mobile m, object obj)
{
var item = obj as Item;
if (item == null)
{
m.SendMessage("You cannot change that with this.");
return;
}
if (item == this)
{
new SignHammerGump(m, this);
return;
}
if (Job == HammerJob.Flip)
{
var id = GetFlipFor(item.ItemID);
if (id == item.ItemID)
{
m.SendMessage("You cannot change that with this.");
}
else
{
item.ItemID = id;
}
}
else
{
var id = GetNextSign(item.ItemID);
if (id == item.ItemID)
{
m.SendMessage("You cannot change that with this.");
}
else
{
item.ItemID = id;
}
}
}
public SignHammer(Serial serial)
: base(serial)
{ }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.ReadInt();
}
}
public class SignHammerGump : GumpPlusLight
{
private readonly SignHammer c_Hammer;
public SignHammerGump(Mobile m, SignHammer hammer)
: base(m, 100, 100)
{
c_Hammer = hammer;
NewGump();
}
protected override void BuildGump()
{
AddBackground(0, 0, 200, 200, 2600);
AddButton(50, 45, 2152, 2154, "Swap", Swap);
AddHtml(90, 50, 70, "Swap Hanger");
AddButton(50, 95, 2152, 2154, "Flip", Flip);
AddHtml(90, 100, 70, "Flip Sign or Hanger");
}
private void Swap()
{
c_Hammer.Job = HammerJob.Swap;
}
private void Flip()
{
c_Hammer.Job = HammerJob.Flip;
}
}
}