#W# Initial Commit: Avatars Conquest

This commit is contained in:
WarrentyExpired 2026-07-03 20:19:48 -04:00
commit 8eae46895e
7512 changed files with 416187 additions and 0 deletions

109
Scripts/Misc/NameList.cs Normal file
View file

@ -0,0 +1,109 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Xml;
using Server;
namespace Server
{
public class NameList
{
private string m_Type;
private string[] m_List;
public string Type{ get{ return m_Type; } }
public string[] List{ get{ return m_List; } }
public bool ContainsName( string name )
{
for ( int i = 0; i < m_List.Length; i++ )
if ( name == m_List[i] )
return true;
return false;
}
public NameList( string type, XmlElement xml )
{
m_Type = type;
m_List = xml.InnerText.Split( ',' );
for ( int i = 0; i < m_List.Length; ++i )
m_List[i] = Utility.Intern( m_List[i].Trim() );
}
public string GetRandomName()
{
if ( m_List.Length > 0 )
return m_List[Utility.Random( m_List.Length )];
return "";
}
public static NameList GetNameList( string type )
{
NameList n = null;
m_Table.TryGetValue( type, out n );
return n;
}
public static string RandomName( string type )
{
NameList list = GetNameList( type );
if ( list != null )
return list.GetRandomName();
return "";
}
private static Dictionary<string, NameList> m_Table;
static NameList()
{
m_Table = new Dictionary<string, NameList>( StringComparer.OrdinalIgnoreCase );
string filePath = Path.Combine( Core.BaseDirectory, "Data/Config/names.xml" );
if ( !File.Exists( filePath ) )
return;
try
{
Load( filePath );
}
catch ( Exception e )
{
Console.WriteLine( "Warning: Exception caught loading name lists:" );
Console.WriteLine( e );
}
}
private static void Load( string filePath )
{
XmlDocument doc = new XmlDocument();
doc.Load( filePath );
XmlElement root = doc["names"];
foreach ( XmlElement element in root.GetElementsByTagName( "namelist" ) )
{
string type = element.GetAttribute( "type" );
if ( String.IsNullOrEmpty( type ) )
continue;
try
{
NameList list = new NameList( type, element );
m_Table[type] = list;
}
catch
{
}
}
}
}
}