110 lines
No EOL
3.2 KiB
C#
110 lines
No EOL
3.2 KiB
C#
using System;
|
|
using Server;
|
|
using Server.Gumps;
|
|
using Server.Network;
|
|
|
|
namespace Server
|
|
{
|
|
public class VirtueInfoGump : Gump
|
|
{
|
|
private Mobile m_Beholder;
|
|
private int m_Desc;
|
|
private string m_Page;
|
|
private VirtueName m_Virtue;
|
|
|
|
public VirtueInfoGump( Mobile beholder, VirtueName virtue, int description ) : this( beholder, virtue, description, null )
|
|
{
|
|
}
|
|
|
|
public VirtueInfoGump( Mobile beholder, VirtueName virtue, int description, string webPage ) : base( 0, 0 )
|
|
{
|
|
m_Beholder = beholder;
|
|
m_Virtue = virtue;
|
|
m_Desc = description;
|
|
m_Page = webPage;
|
|
|
|
int value = beholder.Virtues.GetValue( (int)virtue );
|
|
|
|
AddPage( 0 );
|
|
|
|
AddImage( 30, 40, 2080 );
|
|
AddImage( 47, 77, 2081 );
|
|
AddImage( 47, 147, 2081 );
|
|
AddImage( 47, 217, 2081 );
|
|
AddImage( 47, 267, 2083 );
|
|
AddImage( 70, 213, 2091 );
|
|
|
|
AddPage( 1 );
|
|
|
|
int maxValue = VirtueHelper.GetMaxAmount( m_Virtue );
|
|
|
|
int valueDesc;
|
|
int dots;
|
|
|
|
if( value < 4000 )
|
|
dots = value / 400;
|
|
else if( value < 10000 )
|
|
dots = (value - 4000) / 600;
|
|
else if( value < maxValue )
|
|
dots = (value - 10000) / ((maxValue-10000)/10);
|
|
else
|
|
dots = 10;
|
|
|
|
for ( int i = 0; i < 10; ++i )
|
|
AddImage( 95 + (i * 17), 50, i < dots ? 2362 : 2360 );
|
|
|
|
|
|
if( value < 1 )
|
|
valueDesc = 1052044; // You have not started on the path of this Virtue.
|
|
else if( value < 400 )
|
|
valueDesc = 1052045; // You have barely begun your journey through the path of this Virtue.
|
|
else if( value < 2000 )
|
|
valueDesc = 1052046; // You have progressed in this Virtue, but still have much to do.
|
|
else if( value < 3600 )
|
|
valueDesc = 1052047; // Your journey through the path of this Virtue is going well.
|
|
else if( value < 4000 )
|
|
valueDesc = 1052048; // You feel very close to achieving your next path in this Virtue.
|
|
else if( dots < 1 )
|
|
valueDesc = 1052049; // You have achieved a path in this Virtue.
|
|
else if( dots < 9 )
|
|
valueDesc = 1052047; // Your journey through the path of this Virtue is going well.
|
|
else if( dots < 10 )
|
|
valueDesc = 1052048; // You feel very close to achieving your next path in this Virtue.
|
|
else
|
|
valueDesc = 1052050; // You have achieved the highest path in this Virtue.
|
|
|
|
|
|
AddHtmlLocalized( 157, 73, 200, 40, 1051000 + (int)virtue, false, false );
|
|
AddHtmlLocalized( 75, 95, 220, 140, description, false, false );
|
|
AddHtmlLocalized( 70, 224, 229, 60, valueDesc, false, false );
|
|
|
|
AddButton( 65, 277, 1209, 1209, 1, GumpButtonType.Reply, 0 );
|
|
|
|
AddButton( 280, 43, 4014, 4014, 2, GumpButtonType.Reply, 0 );
|
|
|
|
AddHtmlLocalized( 83, 275, 400, 40, (webPage == null) ? 1052055 : 1052052, false, false ); // This virtue is not yet defined. OR -click to learn more (opens webpage)
|
|
|
|
|
|
}
|
|
|
|
public override void OnResponse( NetState state, RelayInfo info )
|
|
{
|
|
switch ( info.ButtonID )
|
|
{
|
|
case 1:
|
|
{
|
|
m_Beholder.SendGump( new VirtueInfoGump( m_Beholder, m_Virtue, m_Desc, m_Page ) );
|
|
|
|
if( m_Page != null )
|
|
state.Send( new LaunchBrowser( m_Page ) ); //No message about web browser starting on OSI
|
|
break;
|
|
}
|
|
case 2:
|
|
{
|
|
m_Beholder.SendGump( new VirtueStatusGump( m_Beholder ) );
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |