RunUO/Scripts/Engines/Factions/Gumps/HorseBreederGump.cs

92 lines
No EOL
2.5 KiB
C#

using System;
using Server;
using Server.Items;
using Server.Gumps;
using Server.Mobiles;
using Server.Network;
namespace Server.Factions
{
public class HorseBreederGump : FactionGump
{
private PlayerMobile m_From;
private Faction m_Faction;
public HorseBreederGump( PlayerMobile from, Faction faction ) : base( 20, 30 )
{
m_From = from;
m_Faction = faction;
AddPage( 0 );
AddBackground( 0, 0, 320, 280, 5054 );
AddBackground( 10, 10, 300, 260, 3000 );
AddHtmlText( 20, 30, 300, 25, faction.Definition.Header, false, false );
AddHtmlLocalized( 20, 60, 300, 25, 1018306, false, false ); // Purchase a Faction War Horse
AddItem( 70, 120, 0x3FFE );
AddItem( 150, 120, 0xEF2 );
AddLabel( 190, 122, 0x3E3, FactionWarHorse.SilverPrice.ToString( "N0" ) ); // NOTE: Added 'N0'
AddItem( 150, 150, 0xEEF );
AddLabel( 190, 152, 0x3E3, FactionWarHorse.GoldPrice.ToString( "N0" ) ); // NOTE: Added 'N0'
AddHtmlLocalized( 55, 210, 200, 25, 1011011, false, false ); // CONTINUE
AddButton( 20, 210, 4005, 4007, 1, GumpButtonType.Reply, 0 );
AddHtmlLocalized( 55, 240, 200, 25, 1011012, false, false ); // CANCEL
AddButton( 20, 240, 4005, 4007, 0, GumpButtonType.Reply, 0 );
}
public override void OnResponse( NetState sender, RelayInfo info )
{
if ( info.ButtonID != 1 )
return;
if ( Faction.Find( m_From ) != m_Faction )
return;
Container pack = m_From.Backpack;
if ( pack == null )
return;
FactionWarHorse horse = new FactionWarHorse( m_Faction );
if ( (m_From.Followers + horse.ControlSlots) > m_From.FollowersMax )
{
// TODO: Message?
horse.Delete();
}
else
{
if ( pack.GetAmount( typeof( Silver ) ) < FactionWarHorse.SilverPrice )
{
sender.Mobile.SendLocalizedMessage( 1042204 ); // You do not have enough silver.
horse.Delete();
}
else if ( pack.GetAmount( typeof( Gold ) ) < FactionWarHorse.GoldPrice )
{
sender.Mobile.SendLocalizedMessage( 1042205 ); // You do not have enough gold.
horse.Delete();
}
else if ( pack.ConsumeTotal( typeof( Silver ), FactionWarHorse.SilverPrice ) && pack.ConsumeTotal( typeof( Gold ), FactionWarHorse.GoldPrice ) )
{
horse.Controlled = true;
horse.ControlMaster = m_From;
horse.ControlOrder = OrderType.Follow;
horse.ControlTarget = m_From;
horse.MoveToWorld( m_From.Location, m_From.Map );
}
else
{
horse.Delete();
}
}
}
}
}