#region Header
// Voxpire _,-'/-'/ SkillCodexBase.cs
// . __,-; ,'( '/
// \. `-.__`-._`:_,-._ _ , . ``
// `:-._,------' ` _,`--` -: `_ , ` ,' :
// `---..__,,--' (C) 2014 ` -'. -'
// # Vita-Nex [http://core.vita-nex.com] #
// {o)xxx|===============- # -===============|xxx(o}
// # The MIT License (MIT) #
#endregion
#region References
using Server.Mobiles;
using VitaNex.Items;
using VitaNex.SuperGumps;
#endregion
namespace Server.Items
{
public abstract class SkillCodexBase : SkillCodex
{
// private static readonly SkillName[] DefaultIgnoredSkills = {SkillName.Mysticism, SkillName.Imbuing};
private static readonly SkillName[] DefaultIgnoredSkills = { };
public SkillCodexBase(int count, double value, bool deleteWhenEmpty, SkillCodexMode mode, SkillCodexFlags flags)
: base(count, value, deleteWhenEmpty, mode, flags)
{
IgnoredSkills.AddRange(DefaultIgnoredSkills);
ItemValue = ItemValue.DonationReward;
}
public SkillCodexBase(Serial serial)
: base(serial)
{ }
public override bool ValidateSkill(Mobile user, Skill skill, bool message)
{
if (user is PlayerMobile)
{
var pm = (PlayerMobile)user;
if (skill.SkillName == SkillName.Spellweaving)
{
if (!pm.Spellweaving)
{
if (message)
{
pm.SendMessage(
SuperGump.DefaultErrorHue,
"You must complete the Patience or Discipline quest chains to unlock {0}.",
skill.Name);
}
return false;
}
}
}
return base.ValidateSkill(user, skill, message);
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
int version = 0;
writer.Write(version);
switch (version)
{
case 0:
{ }
break;
}
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
switch (version)
{
case 0:
{ }
break;
}
}
}
public abstract class SkillCodexFixedBase : SkillCodexBase
{
private static readonly SkillName[] DefaultIgnoredSkills =
{
SkillName.Alchemy, SkillName.Fletching, SkillName.Carpentry, SkillName.Cartography, SkillName.Cooking,
SkillName.Inscribe, SkillName.Lumberjacking, SkillName.Mining, SkillName.Lockpicking, SkillName.Poisoning,
SkillName.Spellweaving, SkillName.Tinkering, SkillName.Bushido, SkillName.Ninjitsu, SkillName.Mysticism,
SkillName.Imbuing, SkillName.Throwing, SkillName.Tailoring, SkillName.Blacksmith, SkillName.Fishing
};
private static readonly SkillName[] DefaultIgnoredSkillsT2A =
{
SkillName.Alchemy, SkillName.Fletching, SkillName.Carpentry, SkillName.Cartography, SkillName.Cooking,
SkillName.Inscribe, SkillName.Lumberjacking, SkillName.Mining, SkillName.Lockpicking, SkillName.Poisoning,
SkillName.Spellweaving, SkillName.Tinkering, SkillName.Bushido, SkillName.Ninjitsu, SkillName.Mysticism,
SkillName.Imbuing, SkillName.Throwing, SkillName.Tailoring, SkillName.Blacksmith, SkillName.Fishing,
SkillName.Necromancy, SkillName.Chivalry, SkillName.SpiritSpeak, SkillName.Focus
};
public SkillCodexFixedBase(int count, double value)
: base(count, value, true, SkillCodexMode.Fixed, SkillCodexFlags.Base)
{
if (Core.AOS)
{
IgnoredSkills.AddRange(DefaultIgnoredSkills);
}
else
{
IgnoredSkills.AddRange(DefaultIgnoredSkillsT2A);
}
}
public SkillCodexFixedBase(Serial serial)
: base(serial)
{ }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
int version = 0;
writer.Write(version);
switch (version)
{
case 0:
{ }
break;
}
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
switch (version)
{
case 0:
{ }
break;
}
}
}
public abstract class SkillCodexPowerFixedBase : SkillCodexBase
{
private static readonly SkillName[] DefaultIgnoredSkills =
{
SkillName.Alchemy, SkillName.ArmsLore, SkillName.Begging, SkillName.Fletching, SkillName.Camping,
SkillName.Carpentry, SkillName.Cartography, SkillName.Cooking, SkillName.DetectHidden, SkillName.Forensics,
SkillName.Herding, SkillName.Hiding, SkillName.Inscribe, SkillName.ItemID, SkillName.Lumberjacking, SkillName.Mining,
SkillName.Lockpicking, SkillName.Poisoning, SkillName.RemoveTrap, SkillName.Snooping, SkillName.TasteID,
SkillName.Tinkering, SkillName.Tracking, SkillName.Bushido, SkillName.Ninjitsu, SkillName.Mysticism
};
public SkillCodexPowerFixedBase(int count, double value)
: base(count, value, true, SkillCodexMode.Fixed, SkillCodexFlags.Base)
{
IgnoredSkills.AddRange(DefaultIgnoredSkills);
}
public SkillCodexPowerFixedBase(Serial serial)
: base(serial)
{ }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
int version = 0;
writer.Write(version);
switch (version)
{
case 0:
{ }
break;
}
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
switch (version)
{
case 0:
{ }
break;
}
}
}
}