using ACE.Entity.Enum.Properties;
namespace ACE.Entity.Enum
{
public enum AugmentationType
{
None = 0,
///
/// Reinforcement of the Lugians - +5 strength
///
Strength = 1,
///
/// Bleeargh's Fortitude - +5 endurance
///
Endurance = 2,
///
/// Oswald's Enhancement - +5 coordination
///
Coordination = 3,
///
/// Siraluun's Blessing - +5 quickness
///
Quickness = 4,
///
/// Enduring Calm - +5 focus
///
Focus = 5,
///
/// Steadfast Will - +5 self
///
Self = 6,
///
/// Ciandra's Essence - specialize salvaging
///
Salvage = 7,
///
/// Yoshi's Essence - specialize item tinkering
///
ItemTinkering = 8,
///
/// Jibril's Essence - specialize armor tinkering
///
ArmorTinkering = 9,
///
/// Celdiseth's Essence - specialize magic tinkering
///
MagicItemTinkering = 10,
///
/// Koga's Essence - specialize weapon tinkering
///
WeaponTinkering = 11,
///
/// Shadow of The Seventh Mule - extra pack slot
///
PackSlot = 12,
///
/// Might of The Seventh Mule - increased burden capacity
///
BurdenLimit = 13,
///
/// Clutch of the Miser - reduced death item loss
///
DeathItemLoss = 14,
///
/// Enduring Enchantment - retain spells on death
///
DeathSpellLoss = 15,
///
/// Critical Protection - chance to nullify critical damage
///
CritProtect = 16,
///
/// Quick Learner - increased XP via hunting / killing creatures
///
BonusXP = 17,
///
/// Ciandra's Fortune - increase salvaging material output
///
BonusSalvage = 18,
///
/// Charmed Smith - increased chance of success for imbuing items
///
ImbueChance = 19,
///
/// Innate Renewal - faster vial regeneration rate
///
RegenBonus = 20,
///
/// Archmage's Endurance - increased spell duration
///
SpellDuration = 21,
///
/// Enhancement of the Blade Turner - reduced slash damage
///
ResistSlash = 22,
///
/// Enhancement of the Arrow Turner - reduced pierce damage
///
ResistPierce = 23,
///
/// Enhancement of the Mace Turner - reduced bludgeon damage
///
ResistBludgeon = 24,
///
/// Caustic Enhancement - reduced acid damage
///
ResistAcid = 25,
///
/// Fiery Enhancement - reduced fire damage
///
ResistFire = 26,
///
/// Icy Enhancement - reduced cold damage
///
ResistCold = 27,
///
/// Storm's Enhancement - reduced lightning damage
///
ResistElectric = 28,
///
/// Infused Creature Magic - foci for creature magic
///
FociCreature = 29,
///
/// Infused Item Magic - foci for item magic
///
FociItem = 30,
///
/// Infused Life Magic - foci for life magic
///
FociLife = 31,
///
/// Infused War Magic - foci for war magic
///
FociWar = 32,
///
/// Eye of the Remorseless - increased critical hit chance
///
CritChance = 33,
///
/// Hand of the Remorseless - increased critical hit damage
///
CritDamage = 34,
///
/// Master of The Steel Circle - +10 to all melee skills
///
Melee = 35,
///
/// Master of the Focused Eye - +10 to all missile skills
///
Missile = 36,
///
/// Master of The Five Fold Path - +10 to all magic skills
///
Magic = 37,
///
/// Frenzy of the Slayer - increased damage rating
///
Damage = 38,
///
/// Iron Skin of the Invincible - increased damage resistance rating
///
DamageResist = 39,
///
/// Jack of All Trades - +5 to all skills
///
AllStats = 40,
// missing 41?
///
/// Infused Void Magic - foci for void magic
///
FociVoid = 42,
}
public static class AugTypeHelper
{
///
/// Returns TRUE if this AugmentationType belongs to the 'innate attribute' family,
/// which has a shared cap of 10
///
public static bool IsAttribute(AugmentationType type)
{
return type >= AugmentationType.Strength && type <= AugmentationType.Self;
}
///
/// Returns TRUE if this AugmentationType belongs to the 'resistance' family,
/// which has a shared cap of 2
///
public static bool IsResist(AugmentationType type)
{
return type >= AugmentationType.ResistSlash && type <= AugmentationType.ResistElectric;
}
///
/// Returns TRUE if this AugmentationType specializes a skill
///
public static bool IsSkill(AugmentationType type)
{
switch (type)
{
case AugmentationType.Salvage:
case AugmentationType.ItemTinkering:
case AugmentationType.ArmorTinkering:
case AugmentationType.MagicItemTinkering:
case AugmentationType.WeaponTinkering:
return true;
default:
return false;
}
}
public static PropertyAttribute GetAttribute(AugmentationType type)
{
switch (type)
{
case AugmentationType.Strength:
return PropertyAttribute.Strength;
case AugmentationType.Endurance:
return PropertyAttribute.Endurance;
case AugmentationType.Coordination:
return PropertyAttribute.Coordination;
case AugmentationType.Quickness:
return PropertyAttribute.Quickness;
case AugmentationType.Focus:
return PropertyAttribute.Focus;
case AugmentationType.Self:
return PropertyAttribute.Self;
default:
return PropertyAttribute.Undef;
}
}
public static Skill GetSkill(AugmentationType type)
{
switch (type)
{
case AugmentationType.Salvage:
return Skill.Salvaging;
case AugmentationType.ItemTinkering:
return Skill.ItemTinkering;
case AugmentationType.ArmorTinkering:
return Skill.ArmorTinkering;
case AugmentationType.MagicItemTinkering:
return Skill.MagicItemTinkering;
case AugmentationType.WeaponTinkering:
return Skill.WeaponTinkering;
default:
return Skill.None;
}
}
public static PlayScript GetEffect(AugmentationType type)
{
if (IsAttribute(type))
return PlayScript.AugmentationUseAttribute;
else if (IsResist(type))
return PlayScript.AugmentationUseResistances;
else if (IsSkill(type))
return PlayScript.AugmentationUseSkill;
else
return PlayScript.AugmentationUseOther;
}
}
}