Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
162
Scripts/Services/New Magincia/Housing Lotto/Items/WritOfLease.cs
Normal file
162
Scripts/Services/New Magincia/Housing Lotto/Items/WritOfLease.cs
Normal 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.
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user