Files
abysmal-isle/Scripts/SubSystem/LotterySystem/Scratchers/ScratcherLottoSatellite.cs
Unstable Kitsune b918192e4e Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
2023-11-28 23:20:26 -05:00

111 lines
3.4 KiB
C#

using System;
using Server;
using Server.Items;
using Server.Mobiles;
using Server.Targeting;
using Server.Gumps;
using Server.Network;
using System.Collections.Generic;
namespace Server.Engines.LotterySystem
{
public class ScratcherLottoSatellite : Item
{
private ScratcherLotto m_Stone;
[CommandProperty(AccessLevel.GameMaster)]
public ScratcherLotto LottoStone { get { return m_Stone; } set { m_Stone = value; } }
[Constructable]
public ScratcherLottoSatellite()
: base(0xED4)
{
Name = "Lottery Scratch Tickets";
Hue = Utility.RandomSlimeHue();
Movable = false;
if (ScratcherLotto.Stone != null)
{
m_Stone = ScratcherLotto.Stone;
m_Stone.AddToSatList(this);
}
else Delete();
}
public override void OnDoubleClick(Mobile from)
{
if (m_Stone == null || (!m_Stone.IsActive && from.AccessLevel == AccessLevel.Player))
from.SendMessage("Scratch tickets are currenlty inactive at this time.");
else if (from.InRange(Location, 3))
{
if (from.HasGump(typeof(ScratcherStoneGump)))
from.CloseGump(typeof(ScratcherStoneGump));
from.SendGump(new ScratcherStoneGump(m_Stone, from));
}
else if (from.AccessLevel > AccessLevel.Player)
from.SendGump( new PropertiesGump( from, m_Stone ) );
else
from.SendLocalizedMessage(500446); // That is too far away.
}
public override void GetProperties(ObjectPropertyList list)
{
base.GetProperties(list);
if (m_Stone == null || !m_Stone.IsActive)
list.Add(1060658, "Status\tOffline");
else
list.Add(1060658, "Status\tActive");
if (ScratcherStats.Stats.Count > 0)
{
try
{
int index = ScratcherStats.Stats.Count - 1;
string jackpotAmount = String.Format("{0:##,###,###}", ScratcherStats.Stats[index].Payout);
list.Add(1060659, "Last Big Win\t{0}", ScratcherStats.Stats[index].Winner.Name);
list.Add(1060660, "Date\t{0}", ScratcherStats.Stats[index].WinTime);
list.Add(1060661, "Amount\t{0}", jackpotAmount);
list.Add(1060662, "Game\t{0}", ScratcherLotto.GetGameType(ScratcherStats.Stats[index].Type));
}
catch
{
}
}
}
public override void OnAfterDelete()
{
if (m_Stone != null)
m_Stone.RemoveFromSatList(this);
base.OnAfterDelete();
}
public ScratcherLottoSatellite(Serial serial) : base( serial )
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0); //Version
writer.Write(m_Stone);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
m_Stone = (ScratcherLotto)reader.ReadItem();
if (m_Stone != null)
m_Stone.AddToSatList(this);
}
}
}