Module:Affixes/data

From Idlescape Wiki
Revision as of 18:57, 19 October 2023 by Silent1 (talk | contribs) (Affix data)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

return {
  ["offense.strength"] = {
    type = "additive",
    hook = "stats",
    rarity = "common",
    name = "Strong",
    nametype = "prefix",
    minStrength = 10,
    maxStrength = 40,
    displaytype = "number",
    statBuffs = { {
      path = "weapon.strength",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_101"
  },
  ["offense.strength_rare"] = {
    type = "additive",
    hook = "stats",
    rarity = "rare",
    name = "Mighty",
    nametype = "prefix",
    minStrength = 40,
    maxStrength = 80,
    displaytype = "number",
    statBuffs = { {
      path = "weapon.strength",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_101",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.dexterity"] = {
    type = "additive",
    hook = "stats",
    rarity = "common",
    name = "Dextrous",
    nametype = "prefix",
    minStrength = 10,
    maxStrength = 40,
    displaytype = "number",
    statBuffs = { {
      path = "weapon.dexterity",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_102"
  },
  ["offense.dexterity_rare"] = {
    type = "additive",
    hook = "stats",
    rarity = "rare",
    name = "Agile",
    nametype = "prefix",
    minStrength = 40,
    maxStrength = 80,
    displaytype = "number",
    statBuffs = { {
      path = "weapon.dexterity",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_102",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.intellect"] = {
    type = "additive",
    hook = "stats",
    rarity = "common",
    name = "Wise",
    nametype = "prefix",
    minStrength = 10,
    maxStrength = 40,
    displaytype = "number",
    statBuffs = { {
      path = "weapon.intellect",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_103"
  },
  ["offense.intellect_rare"] = {
    type = "additive",
    hook = "stats",
    rarity = "rare",
    name = "Enlightened",
    nametype = "prefix",
    minStrength = 40,
    maxStrength = 80,
    displaytype = "number",
    statBuffs = { {
      path = "weapon.intellect",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_103",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.attack_speed"] = {
    type = "multiplicative",
    rarity = "legendary",
    hook = "afterStatBuffs",
    name = "of Haste",
    nametype = "suffix",
    minStrength = 0.1,
    maxStrength = 0.35,
    displaytype = "percent",
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_104",
    slots = { "weapon" }
  },
  ["offense.attack_speed_rare"] = {
    type = "multiplicative",
    rarity = "rare",
    hook = "afterStatBuffs",
    name = "of Speed",
    nametype = "suffix",
    minStrength = 0.01,
    maxStrength = 0.05,
    displaytype = "percent",
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_104",
    slots = { "weapon" }
  },
  ["offense.critical_chance"] = {
    type = "additive",
    hook = "stats",
    rarity = "rare",
    name = "of Precision",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.1,
    displaytype = "percent",
    statBuffs = { {
      path = "offensiveCritical.chance",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_105",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.critical_chance_epic"] = {
    type = "multiplicative",
    hook = "stats",
    rarity = "epic",
    name = "of Clarity",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.25,
    displaytype = "percent",
    statBuffs = { {
      path = "offensiveCritical.chance",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_105",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.critical_damage"] = {
    type = "additive",
    hook = "stats",
    rarity = "rare",
    name = "of Destruction",
    nametype = "suffix",
    minStrength = 0.25,
    maxStrength = 0.5,
    displaytype = "percent",
    statBuffs = { {
      path = "offensiveCritical.damageMultiplier",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_106",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.critical_damage_epic"] = {
    type = "multiplicative",
    hook = "stats",
    rarity = "epic",
    name = "of Ruination",
    nametype = "suffix",
    minStrength = 0.25,
    maxStrength = 0.5,
    displaytype = "percent",
    statBuffs = { {
      path = "offensiveCritical.damageMultiplier",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_106",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.additional_damage"] = {
    type = "additive",
    hook = "damageModifier",
    rarity = "uncommon",
    name = "of the Wolf",
    nametype = "suffix",
    minStrength = 10,
    maxStrength = 50,
    displaytype = "number",
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_107"
  },
  ["offense.additional_damage_epic"] = {
    type = "additive",
    hook = "damageModifier",
    rarity = "epic",
    name = "of the Direwolf",
    nametype = "suffix",
    minStrength = 100,
    maxStrength = 200,
    displaytype = "number",
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_107",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.damage_multiplier"] = {
    type = "multiplicative",
    hook = "damageModifier",
    rarity = "rare",
    name = "of the Hawk",
    nametype = "suffix",
    minStrength = 1.1,
    maxStrength = 1.25,
    displaytype = "multiplier",
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_108",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.elite_damage_multiplier"] = {
    type = "multiplicative",
    hook = "damageModifier",
    rarity = "rare",
    name = "of the Eagle",
    nametype = "suffix",
    minStrength = 1.05,
    maxStrength = 1.2,
    displaytype = "multiplier",
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_109"
  },
  ["offense.elite_damage_multiplier_epic"] = {
    type = "multiplicative",
    hook = "damageModifier",
    rarity = "epic",
    name = "of the Griffin",
    nametype = "suffix",
    minStrength = 1.2,
    maxStrength = 1.6,
    displaytype = "multiplier",
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_109",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.melee_affinities"] = {
    type = "additive",
    hook = "stats",
    rarity = "epic",
    name = "of the Gladiator",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.1,
    displaytype = "percent",
    statBuffs = { {
      path = "offensiveDamageAffinity.Melee",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "offensiveDamageAffinity.Piercing",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "offensiveDamageAffinity.Blunt",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "offensiveDamageAffinity.Slashing",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_110",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.magic_affinities"] = {
    type = "additive",
    hook = "stats",
    rarity = "epic",
    name = "of the Archmage",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.1,
    displaytype = "percent",
    statBuffs = { {
      path = "offensiveDamageAffinity.Magic",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "offensiveDamageAffinity.Chaos",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "offensiveDamageAffinity.Nature",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "offensiveDamageAffinity.Fire",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "offensiveDamageAffinity.Ice",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "offensiveDamageAffinity.Lightning",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_111",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.ranged_affinities"] = {
    type = "additive",
    hook = "stats",
    rarity = "epic",
    name = "of the Marksman",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.1,
    displaytype = "percent",
    statBuffs = { {
      path = "offensiveDamageAffinity.Range",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "offensiveDamageAffinity.Piercing",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "offensiveDamageAffinity.Blunt",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "offensiveDamageAffinity.Slashing",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_112",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.melee_affinities_uncommon"] = {
    type = "additive",
    hook = "stats",
    rarity = "uncommon",
    name = "of the Warrior",
    nametype = "suffix",
    minStrength = 0.01,
    maxStrength = 0.04,
    displaytype = "percent",
    statBuffs = { {
      path = "offensiveDamageAffinity.Melee",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "offensiveDamageAffinity.Piercing",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "offensiveDamageAffinity.Blunt",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "offensiveDamageAffinity.Slashing",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_110"
  },
  ["offense.magic_affinities_uncommon"] = {
    type = "additive",
    hook = "stats",
    rarity = "uncommon",
    name = "of the Student",
    nametype = "suffix",
    minStrength = 0.01,
    maxStrength = 0.04,
    displaytype = "percent",
    statBuffs = { {
      path = "offensiveDamageAffinity.Magic",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "offensiveDamageAffinity.Chaos",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "offensiveDamageAffinity.Nature",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "offensiveDamageAffinity.Fire",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "offensiveDamageAffinity.Ice",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "offensiveDamageAffinity.Lightning",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_111"
  },
  ["offense.ranged_affinities_uncommon"] = {
    type = "additive",
    hook = "stats",
    rarity = "uncommon",
    name = "of the Archer",
    nametype = "suffix",
    minStrength = 0.01,
    maxStrength = 0.04,
    displaytype = "percent",
    statBuffs = { {
      path = "offensiveDamageAffinity.Range",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "offensiveDamageAffinity.Piercing",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "offensiveDamageAffinity.Blunt",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "offensiveDamageAffinity.Slashing",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_112"
  },
  ["offense.chance_on_hit_stun"] = {
    type = "additive",
    hook = "hit",
    rarity = "rare",
    name = "Stunning",
    nametype = "prefix",
    minStrength = 0.1,
    maxStrength = 0.25,
    displaytype = "percent",
    targetBuff = {
      onlyOnHit = true,
      enchantmentApply = "enchantmentsIds.enhanced_stun",
      enchantmentAmount = 1,
      enchantmentStrength = 1,
      enchantmentChanceToApply = 1
    },
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_113",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.chance_on_hit_silence"] = {
    type = "additive",
    hook = "hit",
    rarity = "rare",
    name = "Silencing",
    nametype = "prefix",
    minStrength = 0.1,
    maxStrength = 0.25,
    displaytype = "percent",
    targetBuff = {
      onlyOnHit = true,
      enchantmentApply = "enchantmentsIds.enhanced_silence",
      enchantmentAmount = 1,
      enchantmentStrength = 1,
      enchantmentChanceToApply = 1
    },
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_114",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.chance_on_hit_blind"] = {
    type = "additive",
    hook = "hit",
    rarity = "rare",
    name = "Blinding",
    nametype = "prefix",
    minStrength = 0.1,
    maxStrength = 0.25,
    displaytype = "percent",
    targetBuff = {
      onlyOnHit = true,
      enchantmentApply = "enchantmentsIds.blind",
      enchantmentAmount = 1,
      enchantmentStrength = 5,
      enchantmentChanceToApply = 1
    },
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_115",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.chance_on_hit_vulnerability"] = {
    type = "additive",
    hook = "hit",
    rarity = "rare",
    name = "of Vulnerability",
    nametype = "suffix",
    minStrength = 0.1,
    maxStrength = 0.25,
    displaytype = "percent",
    targetBuff = {
      onlyOnHit = true,
      enchantmentApply = "enchantmentsIds.enhanced_vulnerability",
      enchantmentAmount = 1,
      enchantmentStrength = 3,
      enchantmentChanceToApply = 1
    },
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_116",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.chance_on_hit_weakness"] = {
    type = "additive",
    hook = "hit",
    rarity = "rare",
    name = "Weakening",
    nametype = "prefix",
    minStrength = 0.1,
    maxStrength = 0.25,
    displaytype = "percent",
    targetBuff = {
      onlyOnHit = true,
      enchantmentApply = "enchantmentsIds.weakness",
      enchantmentAmount = 1,
      enchantmentStrength = 3,
      enchantmentChanceToApply = 1
    },
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_117",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.melee_affinity"] = {
    type = "additive",
    hook = "stats",
    rarity = "epic",
    name = "of Melee",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.1,
    displaytype = "percent",
    statBuffs = { {
      path = "offensiveDamageAffinity.Melee",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_118",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.magic_affinity"] = {
    type = "additive",
    hook = "stats",
    rarity = "epic",
    name = "of Magic",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.1,
    displaytype = "percent",
    statBuffs = { {
      path = "offensiveDamageAffinity.Magic",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_119",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.ranged_affinity"] = {
    type = "additive",
    hook = "stats",
    rarity = "epic",
    name = "of Ranged",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.1,
    displaytype = "percent",
    statBuffs = { {
      path = "offensiveDamageAffinity.Range",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_120",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.slashing_affinity"] = {
    type = "additive",
    hook = "stats",
    rarity = "epic",
    name = "of Slashing",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.2,
    displaytype = "percent",
    statBuffs = { {
      path = "offensiveDamageAffinity.Slashing",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_2",
    imageCSS = "affix_rune_201",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.piercing_affinity"] = {
    type = "additive",
    hook = "stats",
    rarity = "epic",
    name = "of Piercing",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.2,
    displaytype = "percent",
    statBuffs = { {
      path = "offensiveDamageAffinity.Piercing",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_2",
    imageCSS = "affix_rune_202",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.blunt_affinity"] = {
    type = "additive",
    hook = "stats",
    rarity = "epic",
    name = "of Blunt",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.2,
    displaytype = "percent",
    statBuffs = { {
      path = "offensiveDamageAffinity.Blunt",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_2",
    imageCSS = "affix_rune_203",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.fire_affinity"] = {
    type = "additive",
    hook = "stats",
    rarity = "epic",
    name = "of Fire",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.2,
    displaytype = "percent",
    statBuffs = { {
      path = "offensiveDamageAffinity.Fire",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_2",
    imageCSS = "affix_rune_204",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.ice_affinity"] = {
    type = "additive",
    hook = "stats",
    rarity = "epic",
    name = "of Ice",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.2,
    displaytype = "percent",
    statBuffs = { {
      path = "offensiveDamageAffinity.Ice",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_2",
    imageCSS = "affix_rune_205",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.lightning_affinity"] = {
    type = "additive",
    hook = "stats",
    rarity = "epic",
    name = "of Lightning",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.2,
    displaytype = "percent",
    statBuffs = { {
      path = "offensiveDamageAffinity.Lightning",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_2",
    imageCSS = "affix_rune_206",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.chaos_affinity"] = {
    type = "additive",
    hook = "stats",
    rarity = "epic",
    name = "of Chaos",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.2,
    displaytype = "percent",
    statBuffs = { {
      path = "offensiveDamageAffinity.Chaos",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_2",
    imageCSS = "affix_rune_207",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["offense.nature_affinity"] = {
    type = "additive",
    hook = "stats",
    rarity = "epic",
    name = "of Nature",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.2,
    displaytype = "percent",
    statBuffs = { {
      path = "offensiveDamageAffinity.Nature",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_2",
    imageCSS = "affix_rune_208",
    slots = { "weapon" },
    reducedEffectSlots = { "shield" }
  },
  ["defense.protection_and_resistance"] = {
    type = "additive",
    hook = "stats",
    rarity = "common",
    name = "of the Turtle",
    nametype = "suffix",
    minStrength = 10,
    maxStrength = 30,
    displaytype = "number",
    statBuffs = { {
      path = "armor.protection",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "armor.resistance",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_2",
    imageCSS = "affix_rune_209"
  },
  ["defense.protection_and_resistance_rare"] = {
    type = "additive",
    hook = "stats",
    rarity = "rare",
    name = "of the Armadillo",
    nametype = "suffix",
    minStrength = 25,
    maxStrength = 75,
    displaytype = "number",
    statBuffs = { {
      path = "armor.protection",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "armor.resistance",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_2",
    imageCSS = "affix_rune_209",
    slots = { "body", "legs", "helm" }
  },
  ["defense.agility"] = {
    type = "additive",
    hook = "stats",
    rarity = "common",
    name = "of the Rat",
    nametype = "suffix",
    minStrength = 10,
    maxStrength = 25,
    displaytype = "number",
    statBuffs = { {
      path = "armor.agility",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_2",
    imageCSS = "affix_rune_210"
  },
  ["defense.agility_rare"] = {
    type = "additive",
    hook = "stats",
    rarity = "rare",
    name = "of the Rabbit",
    nametype = "suffix",
    minStrength = 25,
    maxStrength = 75,
    displaytype = "number",
    statBuffs = { {
      path = "armor.agility",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_2",
    imageCSS = "affix_rune_210",
    slots = { "legs" }
  },
  ["defense.melee_affinities"] = {
    type = "additive",
    hook = "stats",
    rarity = "uncommon",
    name = "of the Guard",
    nametype = "suffix",
    minStrength = 0.01,
    maxStrength = 0.02,
    displaytype = "percent",
    statBuffs = { {
      path = "defensiveDamageAffinity.Melee",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "defensiveDamageAffinity.Piercing",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "defensiveDamageAffinity.Blunt",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "defensiveDamageAffinity.Slashing",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_2",
    imageCSS = "affix_rune_211"
  },
  ["defense.melee_affinities_rare"] = {
    type = "additive",
    hook = "stats",
    rarity = "rare",
    name = "of the Knight",
    nametype = "suffix",
    minStrength = 0.03,
    maxStrength = 0.06,
    displaytype = "percent",
    statBuffs = { {
      path = "defensiveDamageAffinity.Melee",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "defensiveDamageAffinity.Piercing",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "defensiveDamageAffinity.Blunt",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "defensiveDamageAffinity.Slashing",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_2",
    imageCSS = "affix_rune_211",
    slots = { "body", "legs", "helm" }
  },
  ["defense.magic_affinities"] = {
    type = "additive",
    hook = "stats",
    rarity = "uncommon",
    name = "of the Druid",
    nametype = "suffix",
    minStrength = 0.01,
    maxStrength = 0.02,
    displaytype = "percent",
    statBuffs = { {
      path = "defensiveDamageAffinity.Magic",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "defensiveDamageAffinity.Chaos",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "defensiveDamageAffinity.Nature",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "defensiveDamageAffinity.Fire",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "defensiveDamageAffinity.Ice",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "defensiveDamageAffinity.Lightning",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_2",
    imageCSS = "affix_rune_212"
  },
  ["defense.magic_affinities_rare"] = {
    type = "additive",
    hook = "stats",
    rarity = "rare",
    name = "of the Magus",
    nametype = "suffix",
    minStrength = 0.03,
    maxStrength = 0.06,
    displaytype = "percent",
    statBuffs = { {
      path = "defensiveDamageAffinity.Magic",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "defensiveDamageAffinity.Chaos",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "defensiveDamageAffinity.Nature",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "defensiveDamageAffinity.Fire",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "defensiveDamageAffinity.Ice",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "defensiveDamageAffinity.Lightning",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_2",
    imageCSS = "affix_rune_212",
    slots = { "body", "legs", "helm" }
  },
  ["defense.ranged_affinities"] = {
    type = "additive",
    hook = "stats",
    rarity = "uncommon",
    name = "of the Militiaman",
    nametype = "suffix",
    minStrength = 0.01,
    maxStrength = 0.02,
    displaytype = "percent",
    statBuffs = { {
      path = "defensiveDamageAffinity.Range",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "defensiveDamageAffinity.Piercing",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "defensiveDamageAffinity.Blunt",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "defensiveDamageAffinity.Slashing",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_2",
    imageCSS = "affix_rune_213"
  },
  ["defense.ranged_affinities_rare"] = {
    type = "additive",
    hook = "stats",
    rarity = "rare",
    name = "of the Warden",
    nametype = "suffix",
    minStrength = 0.03,
    maxStrength = 0.06,
    displaytype = "percent",
    statBuffs = { {
      path = "defensiveDamageAffinity.Range",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "defensiveDamageAffinity.Piercing",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "defensiveDamageAffinity.Blunt",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    }, {
      path = "defensiveDamageAffinity.Slashing",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_2",
    imageCSS = "affix_rune_213",
    slots = { "body", "legs", "helm" }
  },
  ["defense.melee_affinity"] = {
    type = "additive",
    hook = "stats",
    rarity = "epic",
    name = "of Melee",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.1,
    displaytype = "percent",
    statBuffs = { {
      path = "defensiveDamageAffinity.Melee",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_1",
    imageCSS = "affix_rune_214",
    slots = { "body", "legs", "helm" }
  },
  ["defense.magic_affinity"] = {
    type = "additive",
    hook = "stats",
    rarity = "epic",
    name = "of Magic",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.1,
    displaytype = "percent",
    statBuffs = { {
      path = "defensiveDamageAffinity.Magic",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_2",
    imageCSS = "affix_rune_215",
    slots = { "body", "legs", "helm" }
  },
  ["defense.ranged_affinity"] = {
    type = "additive",
    hook = "stats",
    rarity = "epic",
    name = "of Ranged",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.1,
    displaytype = "percent",
    statBuffs = { {
      path = "defensiveDamageAffinity.Range",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_2",
    imageCSS = "affix_rune_216",
    slots = { "body", "legs", "helm" }
  },
  ["defense.slashing_affinity"] = {
    type = "additive",
    hook = "stats",
    rarity = "epic",
    name = "of Slashing",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.2,
    displaytype = "percent",
    statBuffs = { {
      path = "defensiveDamageAffinity.Slashing",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_2",
    imageCSS = "affix_rune_217",
    slots = { "body", "legs", "helm" }
  },
  ["defense.piercing_affinity"] = {
    type = "additive",
    hook = "stats",
    rarity = "epic",
    name = "of Piercing",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.2,
    displaytype = "percent",
    statBuffs = { {
      path = "defensiveDamageAffinity.Piercing",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_2",
    imageCSS = "affix_rune_218",
    slots = { "body", "legs", "helm" }
  },
  ["defense.blunt_affinity"] = {
    type = "additive",
    hook = "stats",
    rarity = "epic",
    name = "of Blunt",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.2,
    displaytype = "percent",
    statBuffs = { {
      path = "defensiveDamageAffinity.Blunt",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_2",
    imageCSS = "affix_rune_219",
    slots = { "body", "legs", "helm" }
  },
  ["defense.fire_affinity"] = {
    type = "additive",
    hook = "stats",
    rarity = "epic",
    name = "of Fire",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.2,
    displaytype = "percent",
    statBuffs = { {
      path = "defensiveDamageAffinity.Fire",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_2",
    imageCSS = "affix_rune_220",
    slots = { "body", "legs", "helm" }
  },
  ["defense.ice_affinity"] = {
    type = "additive",
    hook = "stats",
    rarity = "epic",
    name = "of Ice",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.2,
    displaytype = "percent",
    statBuffs = { {
      path = "defensiveDamageAffinity.Ice",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_3",
    imageCSS = "affix_rune_301",
    slots = { "body", "legs", "helm" }
  },
  ["defense.lightning_affinity"] = {
    type = "additive",
    hook = "stats",
    rarity = "epic",
    name = "of Lightning",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.2,
    displaytype = "percent",
    statBuffs = { {
      path = "defensiveDamageAffinity.Lightning",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_3",
    imageCSS = "affix_rune_302",
    slots = { "body", "legs", "helm" }
  },
  ["defense.chaos_affinity"] = {
    type = "additive",
    hook = "stats",
    rarity = "epic",
    name = "of Chaos",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.2,
    displaytype = "percent",
    statBuffs = { {
      path = "defensiveDamageAffinity.Chaos",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_3",
    imageCSS = "affix_rune_303",
    slots = { "body", "legs", "helm" }
  },
  ["defense.nature_affinity"] = {
    type = "additive",
    hook = "stats",
    rarity = "epic",
    name = "of Nature",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.2,
    displaytype = "percent",
    statBuffs = { {
      path = "defensiveDamageAffinity.Nature",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_3",
    imageCSS = "affix_rune_304",
    slots = { "body", "legs", "helm" }
  },
  ["defense.stamina"] = {
    type = "additive",
    hook = "stats",
    rarity = "common",
    name = "of the Boar",
    nametype = "suffix",
    minStrength = 10,
    maxStrength = 50,
    displaytype = "number",
    statBuffs = { {
      path = "armor.stamina",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_3",
    imageCSS = "affix_rune_305"
  },
  ["defense.stamina_rare"] = {
    type = "additive",
    hook = "stats",
    rarity = "rare",
    name = "of the Bear",
    nametype = "suffix",
    minStrength = 50,
    maxStrength = 100,
    displaytype = "number",
    statBuffs = { {
      path = "armor.stamina",
      additivePerLevel = 0,
      multiplicativePerLevel = 0
    } },
    imageSheetCSS = "affix_runes_sprite_3",
    imageCSS = "affix_rune_305",
    slots = { "shield" },
    reducedEffectSlots = { "body", "legs", "helm" }
  },
  ["defense.health"] = {
    type = "additive",
    hook = "afterStatBuffs",
    rarity = "common",
    name = "of the Monkey",
    nametype = "suffix",
    minStrength = 50,
    maxStrength = 150,
    displaytype = "number",
    imageSheetCSS = "affix_runes_sprite_3",
    imageCSS = "affix_rune_306"
  },
  ["defense.health_rare"] = {
    type = "additive",
    hook = "afterStatBuffs",
    rarity = "common",
    name = "of the Gorilla",
    nametype = "suffix",
    minStrength = 200,
    maxStrength = 1000,
    displaytype = "number",
    imageSheetCSS = "affix_runes_sprite_3",
    imageCSS = "affix_rune_306",
    slots = { "body" }
  },
  ["defense.health_multiplier"] = {
    type = "multiplicative",
    hook = "afterStatBuffs",
    rarity = "uncommon",
    name = "of the Whale",
    nametype = "suffix",
    minStrength = 1.05,
    maxStrength = 1.1,
    displaytype = "multiplier",
    imageSheetCSS = "affix_runes_sprite_3",
    imageCSS = "affix_rune_307"
  },
  ["defense.health_multiplier_legendary"] = {
    type = "multiplicative",
    hook = "afterStatBuffs",
    rarity = "uncommon",
    name = "of the Leviathan",
    nametype = "suffix",
    minStrength = 1.5,
    maxStrength = 2,
    displaytype = "multiplier",
    imageSheetCSS = "affix_runes_sprite_3",
    imageCSS = "affix_rune_307",
    slots = { "body" }
  },
  ["defense.health_regen"] = {
    type = "multiplicative",
    hook = "healthRegen",
    rarity = "rare",
    name = "Healthy",
    nametype = "prefix",
    minStrength = 1.05,
    maxStrength = 1.2,
    displaytype = "multiplier",
    imageSheetCSS = "affix_runes_sprite_3",
    imageCSS = "affix_rune_308"
  },
  ["defense.health_per_resource_spent"] = {
    type = "additive",
    hook = "resourceConsumption",
    rarity = "epic",
    name = "Gluttonous",
    nametype = "prefix",
    minStrength = 3,
    maxStrength = 9,
    displaytype = "number",
    imageSheetCSS = "affix_runes_sprite_3",
    imageCSS = "affix_rune_309",
    slots = { "weapon", "cape", "arrows" }
  },
  ["defense.health_per_kill"] = {
    type = "additive",
    hook = "kill",
    rarity = "epic",
    name = "Apothecary's",
    nametype = "prefix",
    minStrength = 10,
    maxStrength = 30,
    displaytype = "number",
    imageSheetCSS = "affix_runes_sprite_3",
    imageCSS = "affix_rune_310",
    slots = { "weapon", "cape", "arrows" }
  },
  ["defense.life_steal"] = {
    type = "multiplicative",
    hook = "damageInflicted",
    rarity = "epic",
    name = "of the Vampire",
    nametype = "suffix",
    minStrength = 0.05,
    maxStrength = 0.1,
    displaytype = "percent",
    imageSheetCSS = "affix_runes_sprite_3",
    imageCSS = "affix_rune_311",
    slots = { "weapon", "cape", "arrows" }
  },
  ["defense.elite_damage_reduction"] = {
    type = "multiplicative",
    hook = "damageModifier",
    rarity = "uncommon",
    name = "of the Champion",
    nametype = "suffix",
    minStrength = 0.02,
    maxStrength = 0.06,
    displaytype = "percent",
    imageSheetCSS = "affix_runes_sprite_3",
    imageCSS = "affix_rune_312"
  },
  ["defense.elite_damage_reduction_epic"] = {
    type = "multiplicative",
    hook = "damageModifier",
    rarity = "epic",
    name = "of the Conqueror",
    nametype = "suffix",
    minStrength = 0.1,
    maxStrength = 0.4,
    displaytype = "percent",
    imageSheetCSS = "affix_runes_sprite_3",
    imageCSS = "affix_rune_312",
    slots = { "cape" }
  },
  ["defense.thorns"] = {
    type = "additive",
    hook = "reactivePostHit",
    rarity = "rare",
    name = "of the Rose",
    nametype = "suffix",
    minStrength = 50,
    maxStrength = 300,
    displaytype = "number",
    imageSheetCSS = "affix_runes_sprite_3",
    imageCSS = "affix_rune_313",
    slots = { "shield" },
    reducedEffectSlots = { "body" }
  },
  ["wealth.junk_multiplier"] = {
    type = "multiplicative",
    hook = "loot",
    rarity = "uncommon",
    name = "Scavenger",
    nametype = "prefix",
    minStrength = 1.05,
    maxStrength = 1.3,
    displaytype = "multiplier",
    slots = { "necklace" },
    imageSheetCSS = "affix_runes_sprite_4",
    imageCSS = "affix_rune_401"
  },
  ["experience.skill_experience_multiplier"] = {
    type = "multiplicative",
    hook = "experience",
    rarity = "legendary",
    name = "Skillful",
    nametype = "prefix",
    minStrength = 1.05,
    maxStrength = 1.3,
    displaytype = "multiplier",
    slots = { "ring" },
    imageSheetCSS = "affix_runes_sprite_4",
    imageCSS = "affix_rune_402"
  }
}