ModernUO/Scripts/Engines/Factions/Core/MerchantTitles.cs
2018-09-14 08:46:14 -07:00

85 lines
No EOL
3 KiB
C#

namespace Server.Factions
{
public enum MerchantTitle
{
None,
Scribe,
Carpenter,
Blacksmith,
Bowyer,
Tialor
}
public class MerchantTitleInfo
{
private SkillName m_Skill;
private double m_Requirement;
private TextDefinition m_Title;
private TextDefinition m_Label;
private TextDefinition m_Assigned;
public SkillName Skill => m_Skill;
public double Requirement => m_Requirement;
public TextDefinition Title => m_Title;
public TextDefinition Label => m_Label;
public TextDefinition Assigned => m_Assigned;
public MerchantTitleInfo( SkillName skill, double requirement, TextDefinition title, TextDefinition label, TextDefinition assigned )
{
m_Skill = skill;
m_Requirement = requirement;
m_Title = title;
m_Label = label;
m_Assigned = assigned;
}
}
public class MerchantTitles
{
private static MerchantTitleInfo[] m_Info = new MerchantTitleInfo[]
{
new MerchantTitleInfo( SkillName.Inscribe, 90.0, new TextDefinition( 1060773, "Scribe" ), new TextDefinition( 1011468, "SCRIBE" ), new TextDefinition( 1010121, "You now have the faction title of scribe" ) ),
new MerchantTitleInfo( SkillName.Carpentry, 90.0, new TextDefinition( 1060774, "Carpenter" ), new TextDefinition( 1011469, "CARPENTER" ), new TextDefinition( 1010122, "You now have the faction title of carpenter" ) ),
new MerchantTitleInfo( SkillName.Tinkering, 90.0, new TextDefinition( 1022984, "Tinker" ), new TextDefinition( 1011470, "TINKER" ), new TextDefinition( 1010123, "You now have the faction title of tinker" ) ),
new MerchantTitleInfo( SkillName.Blacksmith, 90.0, new TextDefinition( 1023016, "Blacksmith" ), new TextDefinition( 1011471, "BLACKSMITH" ), new TextDefinition( 1010124, "You now have the faction title of blacksmith" ) ),
new MerchantTitleInfo( SkillName.Fletching, 90.0, new TextDefinition( 1023022, "Bowyer" ), new TextDefinition( 1011472, "BOWYER" ), new TextDefinition( 1010125, "You now have the faction title of Bowyer" ) ),
new MerchantTitleInfo( SkillName.Tailoring, 90.0, new TextDefinition( 1022982, "Tailor" ), new TextDefinition( 1018300, "TAILOR" ), new TextDefinition( 1042162, "You now have the faction title of Tailor" ) ),
};
public static MerchantTitleInfo[] Info => m_Info;
public static MerchantTitleInfo GetInfo( MerchantTitle title )
{
int idx = (int)title - 1;
if ( idx >= 0 && idx < m_Info.Length )
return m_Info[idx];
return null;
}
public static bool HasMerchantQualifications( Mobile mob )
{
for ( int i = 0; i < m_Info.Length; ++i )
{
if ( IsQualified( mob, m_Info[i] ) )
return true;
}
return false;
}
public static bool IsQualified( Mobile mob, MerchantTitle title )
{
return IsQualified( mob, GetInfo( title ) );
}
public static bool IsQualified( Mobile mob, MerchantTitleInfo info )
{
if ( mob == null || info == null )
return false;
return ( mob.Skills[info.Skill].Value >= info.Requirement );
}
}
}