Files
abysmal-isle/Scripts/Scripts-master/Games/Bomberman/Base/Gumps/OfferNewGameGump.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

104 lines
2.8 KiB
C#

using System;
using Server;
using Server.Items;
using Server.Network;
using Solaris.BoardGames;
namespace Server.Gumps
{
//offers a new game to a player
public class OfferNewGameGump : BoardGameGump
{
protected bool _ControlNumberOfPlayers;
public override int Height{ get{ return 500; } }
public override int Width{ get{ return 400; } }
public OfferNewGameGump( Mobile owner, BoardGameControlItem controlitem, bool controlnumberofplayers ) : base( owner, controlitem )
{
_ControlNumberOfPlayers = controlnumberofplayers;
AddLabel( 40, 20, 1152, "Game:" );
AddLabel( 140, 20, 1172, _ControlItem.GameName );
AddLabel( 40, 50, 1152, "Description:" );
AddHtml( 40, 70, 300, 100, _ControlItem.GameDescription, true, true );
AddLabel( 40, 180, 1152, "Rules:" );
AddHtml( 40, 200, 300, 150, _ControlItem.GameRules, true, true );
if( _ControlItem.CostToPlay > 0 )
{
AddLabel( 40, 370, 1152, "Cost to play:" );
AddLabel( 240, 370, 1172, _ControlItem.CostToPlay.ToString() + " gold" );
}
if( _ControlItem.MaxPlayers != _ControlItem.MinPlayers )
{
AddLabel( 40, 430, 1152, "# of players (" + _ControlItem.MinPlayers.ToString() + "-" + _ControlItem.MaxPlayers.ToString() + "):" );
if( _ControlNumberOfPlayers )
{
AddLabel( 60, 410, 1172, "Pick the number of players" );
AddTextField( 240, 430, 30, 20, 0, _ControlItem.CurrentMaxPlayers.ToString() );
}
else
{
AddLabel( 240, 430, 1152, _ControlItem.CurrentMaxPlayers.ToString() );
}
}
AddLabel( 40, 470, 1152, "Play this game?" );
AddButton( 200, 460, 0xF7, 0xF8, 1, GumpButtonType.Reply, 0 );
AddButton( 300, 460, 0xF1, 0xF2, 0, GumpButtonType.Reply, 0 );
}
protected override void DeterminePageLayout()
{
}
public override void OnResponse( NetState sender, RelayInfo info )
{
int buttonid = info.ButtonID;
//cancel or right click
if( buttonid == 0 )
{
_ControlItem.RemovePlayer( _Owner );
_Owner.SendMessage( "You decide not to play this game" );
}
else
{
if( _ControlItem.MaxPlayers != _ControlItem.MinPlayers && _ControlNumberOfPlayers )
{
try
{
_ControlItem.CurrentMaxPlayers = Int32.Parse( GetTextField( info, 0 ) );
if( _ControlItem.CurrentMaxPlayers > _ControlItem.MaxPlayers || _ControlItem.CurrentMaxPlayers < _ControlItem.MinPlayers )
{
throw( new Exception() );
}
}
catch
{
_Owner.SendMessage( "Invalid number of players selected. Please try again." );
_Owner.SendGump( new OfferNewGameGump( _Owner, _ControlItem, _ControlNumberOfPlayers ) );
return;
}
}
_Owner.SendMessage( "You have signed up for this game." );
_ControlItem.AddPlayer( _Owner );
}
}
}
}