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