ModernUO/Server/ExpansionInfo.cs
asayre 2ad37d54aa Lots of fixes, changes, rewrites of various things, including but not limited to:
Logging of staff crafting items,
Fixes for the OSI client changes
The potion stacking stuff
BaseWeapon fix, so that damage increase things don't multiply themselves.
admin gump fixes for Firewall
Various display tweaks for weight
SoS no longer spawn in Tokuno
Hiryu hues happified to OSI standards
staff now see alliance chat correctly
Play barkeeper text increased per OSI
Various other OSI skill requirement changes
Various unimplemented features of the SE moves
EventSink for when the client version is received from client.
Client validation moved out of the core.
Client version validation now has options to ignore/kick/warn/annoy.  Automagically tries to detect current client.
Reverted the delayeddamagecontext back to OSI standards.
Can no longer use bags of sending in jail.

MagerySpell implemented. Now only Magery spells have a circle, and various other properties of 'em.
TransformationSpellHelper now implemented.  Things moved around for this.
Spells now need a Timespan for the cast delay, instead of arbitrarily based on Circle.  Circle doesn't make sense for non-Magery spells!
Alot of the spellweaving spells added to OSI standards.
2007-05-26 03:12:41 +00:00

106 lines
3.3 KiB
C#

/***************************************************************************
* ExpansionInfo.cs
* -------------------
* begin : May 1, 2002
* copyright : (C) The RunUO Software Team
* email : info@runuo.com
*
* $Id$
*
***************************************************************************/
/***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
***************************************************************************/
using System;
namespace Server
{
public enum Expansion
{
None,
/*
T2A,
UOR,
LBR,
UOTD,
*/
AOS,
SE,
ML
}
public class ExpansionInfo
{
private string m_Name;
private int m_ID, m_NetStateFlag, m_SupportedFeatures, m_CharListFlags, m_CustomHousingFlag;
private ClientVersion m_RequiredClient; //Used as an alternative to the flags
public string Name{ get{ return m_Name; } }
public int ID{ get{ return m_ID; } }
public int NetStateFlag{ get{ return m_NetStateFlag; } }
public int SupportedFeatures{ get{ return m_SupportedFeatures; } }
public int CharacterListFlags { get { return m_CharListFlags; } }
public int CustomHousingFlag { get{ return m_CustomHousingFlag; } }
public ClientVersion RequiredClient { get { return m_RequiredClient; } }
public ExpansionInfo( int id, string name, int netStateFlag, int supportedFeatures, int charListFlags, int customHousingFlag )
{
m_Name = name;
m_ID = id;
m_NetStateFlag = netStateFlag;
m_SupportedFeatures = supportedFeatures;
m_CharListFlags = charListFlags;
m_CustomHousingFlag = customHousingFlag;
}
public ExpansionInfo( int id, string name, ClientVersion requiredClient, int supportedFeatures, int charListFlags, int customHousingFlag )
{
m_Name = name;
m_ID = id;
m_SupportedFeatures = supportedFeatures;
m_CharListFlags = charListFlags;
m_CustomHousingFlag = customHousingFlag;
m_RequiredClient = requiredClient;
}
public static ExpansionInfo[] Table { get { return m_Table; } }
private static ExpansionInfo[] m_Table = new ExpansionInfo[]
{
new ExpansionInfo( 0, "None" , 0x00, 0x0003, 0x008, 0x00 ),
new ExpansionInfo( 1, "Age of Shadows" , 0x08, 0x801F, 0x028, 0x20 ),
new ExpansionInfo( 2, "Samurai Empire" , 0x10, 0x805F, 0x0A8, 0x60 ), //0x40 | 0x20 = 0x60
new ExpansionInfo( 3, "Mondain's Legacy", new ClientVersion( "5.0.0a" ), 0x82DF, 0x1A8, 0x2E0 ) //0x280 | 0x60 = 0x2E0
//0x200 + 0x400 for KR?
};
public static ExpansionInfo GetInfo( Expansion ex )
{
return GetInfo( (int)ex );
}
public static ExpansionInfo GetInfo( int ex )
{
int v = (int)ex;
if( v < 0 || v >= m_Table.Length )
v = 0;
return m_Table[v];
}
public static ExpansionInfo CurrentExpansion { get { return GetInfo( Core.Expansion ); } }
public override string ToString()
{
return m_Name;
}
}
}