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,145 @@
using System;
using Server;
using Server.Mobiles;
using Server.Accounting;
using Server.Gumps;
using Server.Network;
namespace Server.Items
{
public class StableSlotIncreaseToken : Item, IAccountRestricted, IPromotionalToken
{
public const int SlotIncrease = 3;
public const int MaxPerChar = 21;
public override int LabelNumber { get { return 1070997; } } // A promotional token
public TextDefinition ItemName { get { return 1157618; } } // your Stable Slot Increase (Account-Bound)
public Type GumpType { get { return typeof(StableSlotIncreaseToken.InternalGump); } }
[CommandProperty(AccessLevel.GameMaster)]
public string Account { get; set; }
[Constructable]
public StableSlotIncreaseToken()
: this(null)
{
}
[Constructable]
public StableSlotIncreaseToken(string account)
: base(0x2AAA)
{
Account = account;
LootType = LootType.Blessed;
Light = LightType.Circle300;
Weight = 5.0;
}
public override void GetProperties(ObjectPropertyList list)
{
base.GetProperties(list);
list.Add(1070998, ItemName.ToString()); // Use this to redeem<br>your Stable Slot Increase (Account-Bound)
}
public override void OnDoubleClick(Mobile m)
{
if (!IsChildOf(m.Backpack))
{
m.SendLocalizedMessage(1062334); // This item must be in your backpack to be used.
}
else
{
Account acct = m.Account as Account;
if (acct == null || acct.Username != Account)
{
m.SendLocalizedMessage(1157610); // You may not use this item as it is an account-bound item that is bound to a different account.
return;
}
m.CloseGump(typeof(InternalGump));
m.SendGump(new InternalGump(this));
}
}
public void OnUsed(Mobile from)
{
PlayerMobile pm = from as PlayerMobile;
if (pm != null)
{
if (pm.RewardStableSlots >= 21)
{
pm.SendLocalizedMessage(1157612); // You cannot increase the number of stable slots on this character. You have already reached the cap of 21 additional token stable slots or 42 total stable slots.
}
else
{
pm.RewardStableSlots += SlotIncrease;
pm.SendLocalizedMessage(1157611, AnimalTrainer.GetMaxStabled(from).ToString()); // You have increased your stable slot count by 3. Your total stable count is now ~1_VAL~.
Delete();
}
}
}
private class InternalGump : Gump
{
private StableSlotIncreaseToken m_Token;
public InternalGump(StableSlotIncreaseToken token)
: base(10, 10)
{
m_Token = token;
AddPage(0);
AddBackground(0, 0, 240, 235, 0x2422);
AddHtmlLocalized(15, 15, 210, 175, 1157609, 0x0, true, false); // This account-bound token will increase the maximum number of creatures a character can house at the stables by 3, up to a maximum of 42 total stables slots from all sources. A character may use a total of 7 tokens.
AddButton(160, 195, 0xF7, 0xF8, 1, GumpButtonType.Reply, 0); //Okay
AddButton(90, 195, 0xF2, 0xF1, 0, GumpButtonType.Reply, 0); //Cancel
}
public override void OnResponse(NetState sender, RelayInfo info)
{
if (info.ButtonID != 1)
return;
Mobile from = sender.Mobile;
if (!m_Token.IsChildOf(from.Backpack))
{
from.SendLocalizedMessage(1062334); // This item must be in your backpack to be used.
}
else
{
m_Token.OnUsed(from);
}
}
}
public StableSlotIncreaseToken(Serial serial)
: base(serial)
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
writer.Write(Account);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
Account = reader.ReadString();
}
}
}