Changes properties to use automatic property initializers

This commit is contained in:
Kamron Batman 2018-09-14 15:23:29 -07:00
parent f0a48ad431
commit 06fa31a7bf
623 changed files with 13072 additions and 19304 deletions

View file

@ -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 ) );
}