Changes properties to use automatic property initializers
This commit is contained in:
parent
f0a48ad431
commit
06fa31a7bf
623 changed files with 13072 additions and 19304 deletions
368
Server/Skills.cs
368
Server/Skills.cs
|
|
@ -101,11 +101,8 @@ namespace Server
|
|||
[PropertyObject]
|
||||
public class Skill
|
||||
{
|
||||
private Skills m_Owner;
|
||||
private SkillInfo m_Info;
|
||||
private ushort m_Base;
|
||||
private ushort m_Cap;
|
||||
private SkillLock m_Lock;
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
|
|
@ -114,8 +111,8 @@ namespace Server
|
|||
|
||||
public Skill( Skills owner, SkillInfo info, GenericReader reader )
|
||||
{
|
||||
m_Owner = owner;
|
||||
m_Info = info;
|
||||
Owner = owner;
|
||||
Info = info;
|
||||
|
||||
int version = reader.ReadByte();
|
||||
|
||||
|
|
@ -125,7 +122,7 @@ namespace Server
|
|||
{
|
||||
m_Base = reader.ReadUShort();
|
||||
m_Cap = reader.ReadUShort();
|
||||
m_Lock = (SkillLock)reader.ReadByte();
|
||||
Lock = (SkillLock)reader.ReadByte();
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
@ -133,7 +130,7 @@ namespace Server
|
|||
{
|
||||
m_Base = 0;
|
||||
m_Cap = 1000;
|
||||
m_Lock = SkillLock.Up;
|
||||
Lock = SkillLock.Up;
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
@ -150,27 +147,27 @@ namespace Server
|
|||
m_Cap = 1000;
|
||||
|
||||
if ( (version & 0x4) != 0 )
|
||||
m_Lock = (SkillLock)reader.ReadByte();
|
||||
Lock = (SkillLock)reader.ReadByte();
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( m_Lock < SkillLock.Up || m_Lock > SkillLock.Locked )
|
||||
if ( Lock < SkillLock.Up || Lock > SkillLock.Locked )
|
||||
{
|
||||
Console.WriteLine( "Bad skill lock -> {0}.{1}", owner.Owner, m_Lock );
|
||||
m_Lock = SkillLock.Up;
|
||||
Console.WriteLine( "Bad skill lock -> {0}.{1}", owner.Owner, Lock );
|
||||
Lock = SkillLock.Up;
|
||||
}
|
||||
}
|
||||
|
||||
public Skill( Skills owner, SkillInfo info, int baseValue, int cap, SkillLock skillLock )
|
||||
{
|
||||
m_Owner = owner;
|
||||
m_Info = info;
|
||||
Owner = owner;
|
||||
Info = info;
|
||||
m_Base = (ushort)baseValue;
|
||||
m_Cap = (ushort)cap;
|
||||
m_Lock = skillLock;
|
||||
Lock = skillLock;
|
||||
}
|
||||
|
||||
public void SetLockNoRelay( SkillLock skillLock )
|
||||
|
|
@ -178,12 +175,12 @@ namespace Server
|
|||
if ( skillLock < SkillLock.Up || skillLock > SkillLock.Locked )
|
||||
return;
|
||||
|
||||
m_Lock = skillLock;
|
||||
Lock = skillLock;
|
||||
}
|
||||
|
||||
public void Serialize( GenericWriter writer )
|
||||
{
|
||||
if ( m_Base == 0 && m_Cap == 1000 && m_Lock == SkillLock.Up )
|
||||
if ( m_Base == 0 && m_Cap == 1000 && Lock == SkillLock.Up )
|
||||
{
|
||||
writer.Write( (byte) 0xFF ); // default
|
||||
}
|
||||
|
|
@ -197,7 +194,7 @@ namespace Server
|
|||
if ( m_Cap != 1000 )
|
||||
flags |= 0x2;
|
||||
|
||||
if ( m_Lock != SkillLock.Up )
|
||||
if ( Lock != SkillLock.Up )
|
||||
flags |= 0x4;
|
||||
|
||||
writer.Write( (byte) flags ); // version
|
||||
|
|
@ -208,24 +205,24 @@ namespace Server
|
|||
if ( m_Cap != 1000 )
|
||||
writer.Write( (short) m_Cap );
|
||||
|
||||
if ( m_Lock != SkillLock.Up )
|
||||
writer.Write( (byte) m_Lock );
|
||||
if ( Lock != SkillLock.Up )
|
||||
writer.Write( (byte) Lock );
|
||||
}
|
||||
}
|
||||
|
||||
public Skills Owner => m_Owner;
|
||||
public Skills Owner { get; }
|
||||
|
||||
public SkillName SkillName => (SkillName)m_Info.SkillID;
|
||||
public SkillName SkillName => (SkillName)Info.SkillID;
|
||||
|
||||
public int SkillID => m_Info.SkillID;
|
||||
public int SkillID => Info.SkillID;
|
||||
|
||||
[CommandProperty( AccessLevel.Counselor )]
|
||||
public string Name => m_Info.Name;
|
||||
public string Name => Info.Name;
|
||||
|
||||
public SkillInfo Info => m_Info;
|
||||
public SkillInfo Info { get; }
|
||||
|
||||
[CommandProperty( AccessLevel.Counselor )]
|
||||
public SkillLock Lock => m_Lock;
|
||||
public SkillLock Lock { get; private set; }
|
||||
|
||||
public int BaseFixedPoint
|
||||
{
|
||||
|
|
@ -243,13 +240,13 @@ namespace Server
|
|||
|
||||
if ( m_Base != sv )
|
||||
{
|
||||
m_Owner.Total = (m_Owner.Total - m_Base) + sv;
|
||||
Owner.Total = (Owner.Total - m_Base) + sv;
|
||||
|
||||
m_Base = sv;
|
||||
|
||||
m_Owner.OnSkillChange( this );
|
||||
Owner.OnSkillChange( this );
|
||||
|
||||
Mobile m = m_Owner.Owner;
|
||||
Mobile m = Owner.Owner;
|
||||
|
||||
m?.OnSkillChange( SkillName, (double)oldBase / 10 );
|
||||
}
|
||||
|
|
@ -279,7 +276,7 @@ namespace Server
|
|||
{
|
||||
m_Cap = sv;
|
||||
|
||||
m_Owner.OnSkillChange( this );
|
||||
Owner.OnSkillChange( this );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -291,11 +288,7 @@ namespace Server
|
|||
set => CapFixedPoint = (int)(value * 10.0);
|
||||
}
|
||||
|
||||
private static bool m_UseStatMods;
|
||||
|
||||
public static bool UseStatMods{ get => m_UseStatMods;
|
||||
set => m_UseStatMods = value;
|
||||
}
|
||||
public static bool UseStatMods { get; set; }
|
||||
|
||||
public int Fixed => (int)(Value * 10);
|
||||
|
||||
|
|
@ -307,7 +300,7 @@ namespace Server
|
|||
//There has to be this distinction between the racial values and not to account for gaining skills and these skills aren't displayed nor Totaled up.
|
||||
double value = NonRacialValue;
|
||||
|
||||
double raceBonus = m_Owner.Owner.RacialSkillBonus;
|
||||
double raceBonus = Owner.Owner.RacialSkillBonus;
|
||||
|
||||
if ( raceBonus > value )
|
||||
value = raceBonus;
|
||||
|
|
@ -328,8 +321,8 @@ namespace Server
|
|||
|
||||
inv /= 100.0;
|
||||
|
||||
double statsOffset = ((m_UseStatMods ? m_Owner.Owner.Str : m_Owner.Owner.RawStr) * m_Info.StrScale) + ((m_UseStatMods ? m_Owner.Owner.Dex : m_Owner.Owner.RawDex) * m_Info.DexScale) + ((m_UseStatMods ? m_Owner.Owner.Int : m_Owner.Owner.RawInt) * m_Info.IntScale);
|
||||
double statTotal = m_Info.StatTotal * inv;
|
||||
double statsOffset = ((UseStatMods ? Owner.Owner.Str : Owner.Owner.RawStr) * Info.StrScale) + ((UseStatMods ? Owner.Owner.Dex : Owner.Owner.RawDex) * Info.DexScale) + ((UseStatMods ? Owner.Owner.Int : Owner.Owner.RawInt) * Info.IntScale);
|
||||
double statTotal = Info.StatTotal * inv;
|
||||
|
||||
statsOffset *= inv;
|
||||
|
||||
|
|
@ -338,9 +331,9 @@ namespace Server
|
|||
|
||||
double value = baseValue + statsOffset;
|
||||
|
||||
m_Owner.Owner.ValidateSkillMods();
|
||||
Owner.Owner.ValidateSkillMods();
|
||||
|
||||
List<SkillMod> mods = m_Owner.Owner.SkillMods;
|
||||
List<SkillMod> mods = Owner.Owner.SkillMods;
|
||||
|
||||
double bonusObey = 0.0, bonusNotObey = 0.0;
|
||||
|
||||
|
|
@ -348,7 +341,7 @@ namespace Server
|
|||
{
|
||||
SkillMod mod = mods[i];
|
||||
|
||||
if ( mod.Skill == (SkillName)m_Info.SkillID )
|
||||
if ( mod.Skill == (SkillName)Info.SkillID )
|
||||
{
|
||||
if ( mod.Relative )
|
||||
{
|
||||
|
|
@ -382,185 +375,120 @@ namespace Server
|
|||
|
||||
public void Update()
|
||||
{
|
||||
m_Owner.OnSkillChange( this );
|
||||
Owner.OnSkillChange( this );
|
||||
}
|
||||
}
|
||||
|
||||
public class SkillInfo
|
||||
{
|
||||
private int m_SkillID;
|
||||
private string m_Name;
|
||||
private string m_Title;
|
||||
private double m_StrScale;
|
||||
private double m_DexScale;
|
||||
private double m_IntScale;
|
||||
private double m_StatTotal;
|
||||
private SkillUseCallback m_Callback;
|
||||
private double m_StrGain;
|
||||
private double m_DexGain;
|
||||
private double m_IntGain;
|
||||
private double m_GainFactor;
|
||||
|
||||
public SkillInfo( int skillID, string name, double strScale, double dexScale, double intScale, string title, SkillUseCallback callback, double strGain, double dexGain, double intGain, double gainFactor )
|
||||
{
|
||||
m_Name = name;
|
||||
m_Title = title;
|
||||
m_SkillID = skillID;
|
||||
m_StrScale = strScale / 100.0;
|
||||
m_DexScale = dexScale / 100.0;
|
||||
m_IntScale = intScale / 100.0;
|
||||
m_Callback = callback;
|
||||
m_StrGain = strGain;
|
||||
m_DexGain = dexGain;
|
||||
m_IntGain = intGain;
|
||||
m_GainFactor = gainFactor;
|
||||
Name = name;
|
||||
Title = title;
|
||||
SkillID = skillID;
|
||||
StrScale = strScale / 100.0;
|
||||
DexScale = dexScale / 100.0;
|
||||
IntScale = intScale / 100.0;
|
||||
Callback = callback;
|
||||
StrGain = strGain;
|
||||
DexGain = dexGain;
|
||||
IntGain = intGain;
|
||||
GainFactor = gainFactor;
|
||||
|
||||
m_StatTotal = strScale + dexScale + intScale;
|
||||
StatTotal = strScale + dexScale + intScale;
|
||||
}
|
||||
|
||||
public SkillUseCallback Callback
|
||||
public SkillUseCallback Callback { get; set; }
|
||||
|
||||
public int SkillID { get; }
|
||||
|
||||
public string Name { get; set; }
|
||||
|
||||
public string Title { get; set; }
|
||||
|
||||
public double StrScale { get; set; }
|
||||
|
||||
public double DexScale { get; set; }
|
||||
|
||||
public double IntScale { get; set; }
|
||||
|
||||
public double StatTotal { get; set; }
|
||||
|
||||
public double StrGain { get; set; }
|
||||
|
||||
public double DexGain { get; set; }
|
||||
|
||||
public double IntGain { get; set; }
|
||||
|
||||
public double GainFactor { get; set; }
|
||||
|
||||
public static SkillInfo[] Table { get; set; } = new SkillInfo[58]
|
||||
{
|
||||
get => m_Callback;
|
||||
set => m_Callback = value;
|
||||
}
|
||||
|
||||
public int SkillID => m_SkillID;
|
||||
|
||||
public string Name
|
||||
{
|
||||
get => m_Name;
|
||||
set => m_Name = value;
|
||||
}
|
||||
|
||||
public string Title
|
||||
{
|
||||
get => m_Title;
|
||||
set => m_Title = value;
|
||||
}
|
||||
|
||||
public double StrScale
|
||||
{
|
||||
get => m_StrScale;
|
||||
set => m_StrScale = value;
|
||||
}
|
||||
|
||||
public double DexScale
|
||||
{
|
||||
get => m_DexScale;
|
||||
set => m_DexScale = value;
|
||||
}
|
||||
|
||||
public double IntScale
|
||||
{
|
||||
get => m_IntScale;
|
||||
set => m_IntScale = value;
|
||||
}
|
||||
|
||||
public double StatTotal
|
||||
{
|
||||
get => m_StatTotal;
|
||||
set => m_StatTotal = value;
|
||||
}
|
||||
|
||||
public double StrGain
|
||||
{
|
||||
get => m_StrGain;
|
||||
set => m_StrGain = value;
|
||||
}
|
||||
|
||||
public double DexGain
|
||||
{
|
||||
get => m_DexGain;
|
||||
set => m_DexGain = value;
|
||||
}
|
||||
|
||||
public double IntGain
|
||||
{
|
||||
get => m_IntGain;
|
||||
set => m_IntGain = value;
|
||||
}
|
||||
|
||||
public double GainFactor
|
||||
{
|
||||
get => m_GainFactor;
|
||||
set => m_GainFactor = value;
|
||||
}
|
||||
|
||||
private static SkillInfo[] m_Table = new SkillInfo[58]
|
||||
{
|
||||
new SkillInfo( 0, "Alchemy", 0.0, 5.0, 5.0, "Alchemist", null, 0.0, 0.5, 0.5, 1.0 ),
|
||||
new SkillInfo( 1, "Anatomy", 0.0, 0.0, 0.0, "Biologist", null, 0.15, 0.15, 0.7, 1.0 ),
|
||||
new SkillInfo( 2, "Animal Lore", 0.0, 0.0, 0.0, "Naturalist", null, 0.0, 0.0, 1.0, 1.0 ),
|
||||
new SkillInfo( 3, "Item Identification", 0.0, 0.0, 0.0, "Merchant", null, 0.0, 0.0, 1.0, 1.0 ),
|
||||
new SkillInfo( 4, "Arms Lore", 0.0, 0.0, 0.0, "Weapon Master", null, 0.75, 0.15, 0.1, 1.0 ),
|
||||
new SkillInfo( 5, "Parrying", 7.5, 2.5, 0.0, "Duelist", null, 0.75, 0.25, 0.0, 1.0 ),
|
||||
new SkillInfo( 6, "Begging", 0.0, 0.0, 0.0, "Beggar", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 7, "Blacksmithy", 10.0, 0.0, 0.0, "Blacksmith", null, 1.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 8, "Bowcraft/Fletching", 6.0, 16.0, 0.0, "Bowyer", null, 0.6, 1.6, 0.0, 1.0 ),
|
||||
new SkillInfo( 9, "Peacemaking", 0.0, 0.0, 0.0, "Pacifier", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 10, "Camping", 20.0, 15.0, 15.0, "Explorer", null, 2.0, 1.5, 1.5, 1.0 ),
|
||||
new SkillInfo( 11, "Carpentry", 20.0, 5.0, 0.0, "Carpenter", null, 2.0, 0.5, 0.0, 1.0 ),
|
||||
new SkillInfo( 12, "Cartography", 0.0, 7.5, 7.5, "Cartographer", null, 0.0, 0.75, 0.75, 1.0 ),
|
||||
new SkillInfo( 13, "Cooking", 0.0, 20.0, 30.0, "Chef", null, 0.0, 2.0, 3.0, 1.0 ),
|
||||
new SkillInfo( 14, "Detecting Hidden", 0.0, 0.0, 0.0, "Scout", null, 0.0, 0.4, 0.6, 1.0 ),
|
||||
new SkillInfo( 15, "Discordance", 0.0, 2.5, 2.5, "Demoralizer", null, 0.0, 0.25, 0.25, 1.0 ),
|
||||
new SkillInfo( 16, "Evaluating Intelligence", 0.0, 0.0, 0.0, "Scholar", null, 0.0, 0.0, 1.0, 1.0 ),
|
||||
new SkillInfo( 17, "Healing", 6.0, 6.0, 8.0, "Healer", null, 0.6, 0.6, 0.8, 1.0 ),
|
||||
new SkillInfo( 18, "Fishing", 0.0, 0.0, 0.0, "Fisherman", null, 0.5, 0.5, 0.0, 1.0 ),
|
||||
new SkillInfo( 19, "Forensic Evaluation", 0.0, 0.0, 0.0, "Detective", null, 0.0, 0.2, 0.8, 1.0 ),
|
||||
new SkillInfo( 20, "Herding", 16.25, 6.25, 2.5, "Shepherd", null, 1.625, 0.625, 0.25, 1.0 ),
|
||||
new SkillInfo( 21, "Hiding", 0.0, 0.0, 0.0, "Shade", null, 0.0, 0.8, 0.2, 1.0 ),
|
||||
new SkillInfo( 22, "Provocation", 0.0, 4.5, 0.5, "Rouser", null, 0.0, 0.45, 0.05, 1.0 ),
|
||||
new SkillInfo( 23, "Inscription", 0.0, 2.0, 8.0, "Scribe", null, 0.0, 0.2, 0.8, 1.0 ),
|
||||
new SkillInfo( 24, "Lockpicking", 0.0, 25.0, 0.0, "Infiltrator", null, 0.0, 2.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 25, "Magery", 0.0, 0.0, 15.0, "Mage", null, 0.0, 0.0, 1.5, 1.0 ),
|
||||
new SkillInfo( 26, "Resisting Spells", 0.0, 0.0, 0.0, "Warder", null, 0.25, 0.25, 0.5, 1.0 ),
|
||||
new SkillInfo( 27, "Tactics", 0.0, 0.0, 0.0, "Tactician", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 28, "Snooping", 0.0, 25.0, 0.0, "Spy", null, 0.0, 2.5, 0.0, 1.0 ),
|
||||
new SkillInfo( 29, "Musicianship", 0.0, 0.0, 0.0, "Bard", null, 0.0, 0.8, 0.2, 1.0 ),
|
||||
new SkillInfo( 30, "Poisoning", 0.0, 4.0, 16.0, "Assassin", null, 0.0, 0.4, 1.6, 1.0 ),
|
||||
new SkillInfo( 31, "Archery", 2.5, 7.5, 0.0, "Archer", null, 0.25, 0.75, 0.0, 1.0 ),
|
||||
new SkillInfo( 32, "Spirit Speak", 0.0, 0.0, 0.0, "Medium", null, 0.0, 0.0, 1.0, 1.0 ),
|
||||
new SkillInfo( 33, "Stealing", 0.0, 10.0, 0.0, "Pickpocket", null, 0.0, 1.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 34, "Tailoring", 3.75, 16.25, 5.0, "Tailor", null, 0.38, 1.63, 0.5, 1.0 ),
|
||||
new SkillInfo( 35, "Animal Taming", 14.0, 2.0, 4.0, "Tamer", null, 1.4, 0.2, 0.4, 1.0 ),
|
||||
new SkillInfo( 36, "Taste Identification", 0.0, 0.0, 0.0, "Praegustator", null, 0.2, 0.0, 0.8, 1.0 ),
|
||||
new SkillInfo( 37, "Tinkering", 5.0, 2.0, 3.0, "Tinker", null, 0.5, 0.2, 0.3, 1.0 ),
|
||||
new SkillInfo( 38, "Tracking", 0.0, 12.5, 12.5, "Ranger", null, 0.0, 1.25, 1.25, 1.0 ),
|
||||
new SkillInfo( 39, "Veterinary", 8.0, 4.0, 8.0, "Veterinarian", null, 0.8, 0.4, 0.8, 1.0 ),
|
||||
new SkillInfo( 40, "Swordsmanship", 7.5, 2.5, 0.0, "Swordsman", null, 0.75, 0.25, 0.0, 1.0 ),
|
||||
new SkillInfo( 41, "Mace Fighting", 9.0, 1.0, 0.0, "Armsman", null, 0.9, 0.1, 0.0, 1.0 ),
|
||||
new SkillInfo( 42, "Fencing", 4.5, 5.5, 0.0, "Fencer", null, 0.45, 0.55, 0.0, 1.0 ),
|
||||
new SkillInfo( 43, "Wrestling", 9.0, 1.0, 0.0, "Wrestler", null, 0.9, 0.1, 0.0, 1.0 ),
|
||||
new SkillInfo( 44, "Lumberjacking", 20.0, 0.0, 0.0, "Lumberjack", null, 2.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 45, "Mining", 20.0, 0.0, 0.0, "Miner", null, 2.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 46, "Meditation", 0.0, 0.0, 0.0, "Stoic", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 47, "Stealth", 0.0, 0.0, 0.0, "Rogue", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 48, "Remove Trap", 0.0, 0.0, 0.0, "Trap Specialist", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 49, "Necromancy", 0.0, 0.0, 0.0, "Necromancer", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 50, "Focus", 0.0, 0.0, 0.0, "Driven", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 51, "Chivalry", 0.0, 0.0, 0.0, "Paladin", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 52, "Bushido", 0.0, 0.0, 0.0, "Samurai", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 53, "Ninjitsu", 0.0, 0.0, 0.0, "Ninja", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 54, "Spellweaving", 0.0, 0.0, 0.0, "Arcanist", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 55, "Mysticism", 0.0, 0.0, 0.0, "Mystic", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 56, "Imbuing", 0.0, 0.0, 0.0, "Artificer", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 57, "Throwing", 0.0, 0.0, 0.0, "Bladeweaver", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
};
|
||||
|
||||
public static SkillInfo[] Table
|
||||
{
|
||||
get => m_Table;
|
||||
set => m_Table = value;
|
||||
}
|
||||
new SkillInfo( 0, "Alchemy", 0.0, 5.0, 5.0, "Alchemist", null, 0.0, 0.5, 0.5, 1.0 ),
|
||||
new SkillInfo( 1, "Anatomy", 0.0, 0.0, 0.0, "Biologist", null, 0.15, 0.15, 0.7, 1.0 ),
|
||||
new SkillInfo( 2, "Animal Lore", 0.0, 0.0, 0.0, "Naturalist", null, 0.0, 0.0, 1.0, 1.0 ),
|
||||
new SkillInfo( 3, "Item Identification", 0.0, 0.0, 0.0, "Merchant", null, 0.0, 0.0, 1.0, 1.0 ),
|
||||
new SkillInfo( 4, "Arms Lore", 0.0, 0.0, 0.0, "Weapon Master", null, 0.75, 0.15, 0.1, 1.0 ),
|
||||
new SkillInfo( 5, "Parrying", 7.5, 2.5, 0.0, "Duelist", null, 0.75, 0.25, 0.0, 1.0 ),
|
||||
new SkillInfo( 6, "Begging", 0.0, 0.0, 0.0, "Beggar", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 7, "Blacksmithy", 10.0, 0.0, 0.0, "Blacksmith", null, 1.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 8, "Bowcraft/Fletching", 6.0, 16.0, 0.0, "Bowyer", null, 0.6, 1.6, 0.0, 1.0 ),
|
||||
new SkillInfo( 9, "Peacemaking", 0.0, 0.0, 0.0, "Pacifier", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 10, "Camping", 20.0, 15.0, 15.0, "Explorer", null, 2.0, 1.5, 1.5, 1.0 ),
|
||||
new SkillInfo( 11, "Carpentry", 20.0, 5.0, 0.0, "Carpenter", null, 2.0, 0.5, 0.0, 1.0 ),
|
||||
new SkillInfo( 12, "Cartography", 0.0, 7.5, 7.5, "Cartographer", null, 0.0, 0.75, 0.75, 1.0 ),
|
||||
new SkillInfo( 13, "Cooking", 0.0, 20.0, 30.0, "Chef", null, 0.0, 2.0, 3.0, 1.0 ),
|
||||
new SkillInfo( 14, "Detecting Hidden", 0.0, 0.0, 0.0, "Scout", null, 0.0, 0.4, 0.6, 1.0 ),
|
||||
new SkillInfo( 15, "Discordance", 0.0, 2.5, 2.5, "Demoralizer", null, 0.0, 0.25, 0.25, 1.0 ),
|
||||
new SkillInfo( 16, "Evaluating Intelligence", 0.0, 0.0, 0.0, "Scholar", null, 0.0, 0.0, 1.0, 1.0 ),
|
||||
new SkillInfo( 17, "Healing", 6.0, 6.0, 8.0, "Healer", null, 0.6, 0.6, 0.8, 1.0 ),
|
||||
new SkillInfo( 18, "Fishing", 0.0, 0.0, 0.0, "Fisherman", null, 0.5, 0.5, 0.0, 1.0 ),
|
||||
new SkillInfo( 19, "Forensic Evaluation", 0.0, 0.0, 0.0, "Detective", null, 0.0, 0.2, 0.8, 1.0 ),
|
||||
new SkillInfo( 20, "Herding", 16.25, 6.25, 2.5, "Shepherd", null, 1.625, 0.625, 0.25, 1.0 ),
|
||||
new SkillInfo( 21, "Hiding", 0.0, 0.0, 0.0, "Shade", null, 0.0, 0.8, 0.2, 1.0 ),
|
||||
new SkillInfo( 22, "Provocation", 0.0, 4.5, 0.5, "Rouser", null, 0.0, 0.45, 0.05, 1.0 ),
|
||||
new SkillInfo( 23, "Inscription", 0.0, 2.0, 8.0, "Scribe", null, 0.0, 0.2, 0.8, 1.0 ),
|
||||
new SkillInfo( 24, "Lockpicking", 0.0, 25.0, 0.0, "Infiltrator", null, 0.0, 2.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 25, "Magery", 0.0, 0.0, 15.0, "Mage", null, 0.0, 0.0, 1.5, 1.0 ),
|
||||
new SkillInfo( 26, "Resisting Spells", 0.0, 0.0, 0.0, "Warder", null, 0.25, 0.25, 0.5, 1.0 ),
|
||||
new SkillInfo( 27, "Tactics", 0.0, 0.0, 0.0, "Tactician", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 28, "Snooping", 0.0, 25.0, 0.0, "Spy", null, 0.0, 2.5, 0.0, 1.0 ),
|
||||
new SkillInfo( 29, "Musicianship", 0.0, 0.0, 0.0, "Bard", null, 0.0, 0.8, 0.2, 1.0 ),
|
||||
new SkillInfo( 30, "Poisoning", 0.0, 4.0, 16.0, "Assassin", null, 0.0, 0.4, 1.6, 1.0 ),
|
||||
new SkillInfo( 31, "Archery", 2.5, 7.5, 0.0, "Archer", null, 0.25, 0.75, 0.0, 1.0 ),
|
||||
new SkillInfo( 32, "Spirit Speak", 0.0, 0.0, 0.0, "Medium", null, 0.0, 0.0, 1.0, 1.0 ),
|
||||
new SkillInfo( 33, "Stealing", 0.0, 10.0, 0.0, "Pickpocket", null, 0.0, 1.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 34, "Tailoring", 3.75, 16.25, 5.0, "Tailor", null, 0.38, 1.63, 0.5, 1.0 ),
|
||||
new SkillInfo( 35, "Animal Taming", 14.0, 2.0, 4.0, "Tamer", null, 1.4, 0.2, 0.4, 1.0 ),
|
||||
new SkillInfo( 36, "Taste Identification", 0.0, 0.0, 0.0, "Praegustator", null, 0.2, 0.0, 0.8, 1.0 ),
|
||||
new SkillInfo( 37, "Tinkering", 5.0, 2.0, 3.0, "Tinker", null, 0.5, 0.2, 0.3, 1.0 ),
|
||||
new SkillInfo( 38, "Tracking", 0.0, 12.5, 12.5, "Ranger", null, 0.0, 1.25, 1.25, 1.0 ),
|
||||
new SkillInfo( 39, "Veterinary", 8.0, 4.0, 8.0, "Veterinarian", null, 0.8, 0.4, 0.8, 1.0 ),
|
||||
new SkillInfo( 40, "Swordsmanship", 7.5, 2.5, 0.0, "Swordsman", null, 0.75, 0.25, 0.0, 1.0 ),
|
||||
new SkillInfo( 41, "Mace Fighting", 9.0, 1.0, 0.0, "Armsman", null, 0.9, 0.1, 0.0, 1.0 ),
|
||||
new SkillInfo( 42, "Fencing", 4.5, 5.5, 0.0, "Fencer", null, 0.45, 0.55, 0.0, 1.0 ),
|
||||
new SkillInfo( 43, "Wrestling", 9.0, 1.0, 0.0, "Wrestler", null, 0.9, 0.1, 0.0, 1.0 ),
|
||||
new SkillInfo( 44, "Lumberjacking", 20.0, 0.0, 0.0, "Lumberjack", null, 2.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 45, "Mining", 20.0, 0.0, 0.0, "Miner", null, 2.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 46, "Meditation", 0.0, 0.0, 0.0, "Stoic", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 47, "Stealth", 0.0, 0.0, 0.0, "Rogue", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 48, "Remove Trap", 0.0, 0.0, 0.0, "Trap Specialist", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 49, "Necromancy", 0.0, 0.0, 0.0, "Necromancer", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 50, "Focus", 0.0, 0.0, 0.0, "Driven", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 51, "Chivalry", 0.0, 0.0, 0.0, "Paladin", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 52, "Bushido", 0.0, 0.0, 0.0, "Samurai", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 53, "Ninjitsu", 0.0, 0.0, 0.0, "Ninja", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 54, "Spellweaving", 0.0, 0.0, 0.0, "Arcanist", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 55, "Mysticism", 0.0, 0.0, 0.0, "Mystic", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 56, "Imbuing", 0.0, 0.0, 0.0, "Artificer", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
new SkillInfo( 57, "Throwing", 0.0, 0.0, 0.0, "Bladeweaver", null, 0.0, 0.0, 0.0, 1.0 ),
|
||||
};
|
||||
}
|
||||
|
||||
[PropertyObject]
|
||||
public class Skills : IEnumerable<Skill>
|
||||
{
|
||||
private Mobile m_Owner;
|
||||
private Skill[] m_Skills;
|
||||
private int m_Total, m_Cap;
|
||||
private Skill m_Highest;
|
||||
|
||||
#region Skill Getters & Setters
|
||||
|
|
@ -799,19 +727,11 @@ namespace Server
|
|||
#endregion
|
||||
|
||||
[CommandProperty( AccessLevel.Counselor, AccessLevel.GameMaster )]
|
||||
public int Cap
|
||||
{
|
||||
get => m_Cap;
|
||||
set => m_Cap = value;
|
||||
}
|
||||
public int Cap { get; set; }
|
||||
|
||||
public int Total
|
||||
{
|
||||
get => m_Total;
|
||||
set => m_Total = value;
|
||||
}
|
||||
public int Total { get; set; }
|
||||
|
||||
public Mobile Owner => m_Owner;
|
||||
public Mobile Owner { get; }
|
||||
|
||||
public int Length => m_Skills.Length;
|
||||
|
||||
|
|
@ -910,11 +830,11 @@ namespace Server
|
|||
|
||||
public void Serialize( GenericWriter writer )
|
||||
{
|
||||
m_Total = 0;
|
||||
Total = 0;
|
||||
|
||||
writer.Write( (int) 3 ); // version
|
||||
|
||||
writer.Write( (int) m_Cap );
|
||||
writer.Write( (int) Cap );
|
||||
writer.Write( (int) m_Skills.Length );
|
||||
|
||||
for ( int i = 0; i < m_Skills.Length; ++i )
|
||||
|
|
@ -928,15 +848,15 @@ namespace Server
|
|||
else
|
||||
{
|
||||
sk.Serialize( writer );
|
||||
m_Total += sk.BaseFixedPoint;
|
||||
Total += sk.BaseFixedPoint;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Skills( Mobile owner )
|
||||
{
|
||||
m_Owner = owner;
|
||||
m_Cap = 7000;
|
||||
Owner = owner;
|
||||
Cap = 7000;
|
||||
|
||||
SkillInfo[] info = SkillInfo.Table;
|
||||
|
||||
|
|
@ -948,7 +868,7 @@ namespace Server
|
|||
|
||||
public Skills( Mobile owner, GenericReader reader )
|
||||
{
|
||||
m_Owner = owner;
|
||||
Owner = owner;
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
|
|
@ -957,14 +877,14 @@ namespace Server
|
|||
case 3:
|
||||
case 2:
|
||||
{
|
||||
m_Cap = reader.ReadInt();
|
||||
Cap = reader.ReadInt();
|
||||
|
||||
goto case 1;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
if ( version < 2 )
|
||||
m_Cap = 7000;
|
||||
Cap = 7000;
|
||||
|
||||
if ( version < 3 )
|
||||
/*m_Total =*/ reader.ReadInt();
|
||||
|
|
@ -984,7 +904,7 @@ namespace Server
|
|||
if ( sk.BaseFixedPoint != 0 || sk.CapFixedPoint != 1000 || sk.Lock != SkillLock.Up )
|
||||
{
|
||||
m_Skills[i] = sk;
|
||||
m_Total += sk.BaseFixedPoint;
|
||||
Total += sk.BaseFixedPoint;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -1014,9 +934,9 @@ namespace Server
|
|||
else if ( m_Highest != null && skill.BaseFixedPoint > m_Highest.BaseFixedPoint )
|
||||
m_Highest = skill;
|
||||
|
||||
m_Owner.OnSkillInvalidated( skill );
|
||||
Owner.OnSkillInvalidated( skill );
|
||||
|
||||
NetState ns = m_Owner.NetState;
|
||||
NetState ns = Owner.NetState;
|
||||
|
||||
ns?.Send( new SkillChange( skill ) );
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue