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,81 @@
using System;
using Server;
using Server.Gumps;
using Server.Mobiles;
using Server.Items;
namespace Server.Engines.NewMagincia
{
public class MaginciaPlotStone : Item
{
public override bool ForceShowProperties { get { return true; } }
private MaginciaHousingPlot m_Plot;
[CommandProperty(AccessLevel.GameMaster)]
public MaginciaHousingPlot Plot
{
get { return m_Plot; }
set { m_Plot = value; }
}
[Constructable]
public MaginciaPlotStone() : base(3805)
{
Movable = false;
}
public override void AddNameProperty(ObjectPropertyList list)
{
list.Add(1150494, m_Plot != null ? m_Plot.Identifier : "Unknown"); // lot ~1_PLOTID~
}
public override void OnDoubleClick(Mobile from)
{
MaginciaLottoSystem system = MaginciaLottoSystem.Instance;
if (system == null || !system.Enabled || m_Plot == null)
return;
if (from.InRange(this.Location, 4))
{
if (m_Plot.LottoOngoing)
{
from.CloseGump(typeof(MaginciaLottoGump));
from.SendGump(new MaginciaLottoGump(from, m_Plot));
}
else if (!m_Plot.IsAvailable)
from.SendMessage("The lottory for this lot has ended.");
else
from.SendMessage("The lottory for this lot has expired. Check back soon!");
}
}
public override void OnAfterDelete()
{
if (m_Plot != null)
MaginciaLottoSystem.UnregisterPlot(m_Plot);
base.OnAfterDelete();
}
public MaginciaPlotStone(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();
}
}
}

View File

@@ -0,0 +1,162 @@
using System;
using Server;
using Server.Items;
using Server.Gumps;
namespace Server.Engines.NewMagincia
{
public class WritOfLease : Item
{
public override int LabelNumber { get { return 1150489; } } // a writ of lease
private MaginciaHousingPlot m_Plot;
private DateTime m_Expires;
private bool m_Expired;
private Map m_Facet;
private string m_Identifier;
private Point3D m_RecallLoc;
[CommandProperty(AccessLevel.GameMaster)]
public MaginciaHousingPlot Plot { get { return m_Plot; } set { m_Plot = value; } }
[CommandProperty(AccessLevel.GameMaster)]
public DateTime Expires { get { return m_Expires; } }
[CommandProperty(AccessLevel.GameMaster)]
public bool Expired { get { return m_Expired; } }
[CommandProperty(AccessLevel.GameMaster)]
public Map Facet { get { return m_Facet; } }
[CommandProperty(AccessLevel.GameMaster)]
public string Identifier { get { return m_Identifier; } }
[CommandProperty(AccessLevel.GameMaster)]
public Point3D RecallLoc { get { return m_RecallLoc; } }
public WritOfLease(MaginciaHousingPlot plot)
: base(5358)
{
Hue = 0x9A;
m_Plot = plot;
m_Expires = plot.Expires;
m_Expired = false;
if (plot != null)
{
m_Facet = plot.Map;
m_Identifier = plot.Identifier;
m_RecallLoc = plot.RecallLoc;
}
}
public override void GetProperties(ObjectPropertyList list)
{
base.GetProperties(list);
list.Add(1150547, m_Identifier != null ? m_Identifier : "Unkonwn"); // Lot: ~1_LOTNAME~
list.Add(m_Facet == Map.Trammel ? 1150549 : 1150548); // Facet: Felucca
list.Add(1150546, Server.Misc.ServerList.ServerName); // Shard: ~1_SHARDNAME~
if (m_Expired)
list.Add(1150487); // [Expired]
}
public override void OnDoubleClick(Mobile from)
{
if (from.InRange(this.GetWorldLocation(), 2))
{
from.CloseGump(typeof(WritNoteGump));
from.SendGump(new WritNoteGump(this));
}
}
public void CheckExpired()
{
if (DateTime.UtcNow > m_Expires)
OnExpired();
}
public void OnExpired()
{
MaginciaLottoSystem.UnregisterPlot(m_Plot);
m_Plot = null;
m_Expired = true;
m_Expires = DateTime.MinValue;
InvalidateProperties();
}
public override void Delete()
{
if (!m_Expired)
OnExpired();
base.Delete();
}
public WritOfLease(Serial serial)
: base(serial)
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0); // version
writer.Write(m_Expired);
writer.Write(m_Expires);
writer.Write(m_Facet);
writer.Write(m_Identifier);
writer.Write(m_RecallLoc);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
m_Expired = reader.ReadBool();
m_Expires = reader.ReadDateTime();
m_Facet = reader.ReadMap();
m_Identifier = reader.ReadString();
m_RecallLoc = reader.ReadPoint3D();
}
private class WritNoteGump : Gump
{
private WritOfLease m_Lease;
public WritNoteGump(WritOfLease lease)
: base(100, 100)
{
m_Lease = lease;
AddImage(0, 0, 9380);
AddImage(114, 0, 9381);
AddImage(171, 0, 9382);
AddImage(0, 140, 9386);
AddImage(114, 140, 9387);
AddImage(171, 140, 9388);
AddHtmlLocalized(90, 5, 200, 16, 1150484, 1, false, false); // WRIT OF LEASE
string args;
if (lease.Expired)
{
args = String.Format("{0}\t{1}\t{2}\t{3}\t{4}", lease.Identifier, lease.Facet.ToString(), Server.Misc.ServerList.ServerName, "", String.Format("{0} {1}", lease.RecallLoc.X, lease.RecallLoc.Y));
AddHtmlLocalized(38, 55, 215, 178, 1150488, args, 1, false, true);
//This deed once entitled the bearer to build a house on the plot of land designated "~1_PLOT~" (located at ~5_SEXTANT~) in the City of New Magincia on the ~2_FACET~ facet of the ~3_SHARD~ shard.<br><br>The deed has expired, and now the indicated plot of land is subject to normal house construction rules.<br><br>This deed was won by lottery, and while it is no longer valid for land ownership it does serve to commemorate the winning of land during the Rebuilding of Magincia.<br><br>This deed functions as a recall rune marked for the location of the plot it represents.
}
else
{
args = String.Format("{0}\t{1}\t{2}\t{3}\t{4}", lease.Identifier, lease.Facet.ToString(), Server.Misc.ServerList.ServerName, MaginciaLottoSystem.WritExpirePeriod.ToString(), String.Format("{0} {1}", lease.RecallLoc.X, lease.RecallLoc.Y));
AddHtmlLocalized(38, 55, 215, 178, 1150483, args, 1, false, true);
//This deed entitles the bearer to build a house on the plot of land designated "~1_PLOT~" (located at ~5_SEXTANT~) in the City of New Magincia on the ~2_FACET~ facet of the ~3_SHARD~ shard.<br><br>The deed will expire once it is used to construct a house, and thereafter the indicated plot of land will be subject to normal house construction rules. The deed will expire after ~4_DAYS~ more days have passed, and at that time the right to place a house reverts to normal house construction rules.<br><br>This deed functions as a recall rune marked for the location of the plot it represents.<br><br>To place a house on the deeded plot, you must simply have this deed in your backpack or bank box when using a House Placement Tool there.
}
}
}
}
}