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