Page 1 of 1

Armour spellcasting penalties

PostPosted: Thursday, 23rd July 2015, 11:34
by ThreeInvisibleDucks
To get a better overall understanding of how much different kinds of armour affect spellcasting, I made a script to calculate the approximate penalties for every body armour.

This is based on my interpretation of the function int raw_spell_fail(spell_type spell) in the file spl-cast.cc in Crawl version 0.16.1.

  Code:
#!/usr/bin/env python3
# Version: 0.1
# License: public domain, no warranty.

# Calculate player adjusted body armour penalty
def player_abap(er, armr, st_str):
    return 2.0 * er * er * (45 - armr) / (5 * (st_str + 3)) / 45

def player_armour_shield_spell_penalty(er, armr, st_str):
    abap = player_abap(er, armr, st_str)
    bap = max(19 * abap, 0)
    bsp = 0 # XXX ignore shield penalty for now
    return max(bap + bsp, 0)

def print_str_armr_spl_pen(er_armour):
    ARMR = (0,1,3,5,7,9,11,13,15,17,19,21,23,25,27)
    er = er_armour[0]
    print("ER %d (%s): Additional spell skill levels required to overcome armour penalty as a function of Armour skill (x-axis) and Str (y-axis):" % (er, er_armour[1]))
    print("[code]")
    print("S\\A", end="")
    for armr in ARMR:
        print("%5d" % armr, end="")
    print()

    for str1 in range(1, 51):
        print("%3d" % str1, end="")
        for armr in ARMR:
            assp = player_armour_shield_spell_penalty(er, armr, str1)
            skill_pen = assp / 12
            print("%5.1f" % skill_pen, end="")
        print()
    print("[/code]")

er_armours=((4, "(troll) leather armour"), (5, "mottled dragon armour"), (7, "ring mail, quicksilver/swamp dragon armour"), (10, "scale mail"), (11, "fire/ice/pearl dragon armour"), (15, "chain mail, shadow/storm dragon armour"), (18, "plate armour"), (23, "crystal plate armour, gold dragon armour"))

for er_armour in er_armours:
    print_str_armr_spl_pen(er_armour)

The tables below show the approximate additional spell skill levels one requires to overcome the casting penalty to get to the same fail % in armour than without one. In case of multi-school spells, this is the average of the skills one needs. Additionally, both 4 levels in Spellcasting skill and 6 points of Int are as effective in increasing spell success as one level of a spell skill.

Caveat: I've only tested this with a few random combinations. The results were close enough, within a skill level or so. If you find any errors, please let me know.

Output:

ER 4 ((troll) leather armour): Additional spell skill levels required to overcome armour penalty as a function of Armour skill (x-axis) and Str (y-axis):
  Code:
S\A    0    1    3    5    7    9   11   13   15   17   19   21   23   25   27
  1  2.5  2.5  2.4  2.3  2.1  2.0  1.9  1.8  1.7  1.6  1.5  1.4  1.2  1.1  1.0
  2  2.0  2.0  1.9  1.8  1.7  1.6  1.5  1.4  1.4  1.3  1.2  1.1  1.0  0.9  0.8
  3  1.7  1.7  1.6  1.5  1.4  1.4  1.3  1.2  1.1  1.1  1.0  0.9  0.8  0.8  0.7
  4  1.4  1.4  1.4  1.3  1.2  1.2  1.1  1.0  1.0  0.9  0.8  0.8  0.7  0.6  0.6
  5  1.3  1.2  1.2  1.1  1.1  1.0  1.0  0.9  0.8  0.8  0.7  0.7  0.6  0.6  0.5
  6  1.1  1.1  1.1  1.0  1.0  0.9  0.9  0.8  0.8  0.7  0.7  0.6  0.6  0.5  0.5
  7  1.0  1.0  0.9  0.9  0.9  0.8  0.8  0.7  0.7  0.6  0.6  0.5  0.5  0.5  0.4
  8  0.9  0.9  0.9  0.8  0.8  0.7  0.7  0.7  0.6  0.6  0.5  0.5  0.5  0.4  0.4
  9  0.8  0.8  0.8  0.8  0.7  0.7  0.6  0.6  0.6  0.5  0.5  0.5  0.4  0.4  0.3
 10  0.8  0.8  0.7  0.7  0.7  0.6  0.6  0.6  0.5  0.5  0.5  0.4  0.4  0.3  0.3
 11  0.7  0.7  0.7  0.6  0.6  0.6  0.5  0.5  0.5  0.5  0.4  0.4  0.4  0.3  0.3
 12  0.7  0.7  0.6  0.6  0.6  0.5  0.5  0.5  0.5  0.4  0.4  0.4  0.3  0.3  0.3
 13  0.6  0.6  0.6  0.6  0.5  0.5  0.5  0.5  0.4  0.4  0.4  0.3  0.3  0.3  0.3
 14  0.6  0.6  0.6  0.5  0.5  0.5  0.5  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.2
 15  0.6  0.6  0.5  0.5  0.5  0.5  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.2
 16  0.5  0.5  0.5  0.5  0.5  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.2  0.2
 17  0.5  0.5  0.5  0.5  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.2  0.2  0.2
 18  0.5  0.5  0.5  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2
 19  0.5  0.5  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2
 20  0.4  0.4  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2
 21  0.4  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2
 22  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2
 23  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2
 24  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2
 25  0.4  0.4  0.3  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2  0.1
 26  0.3  0.3  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1
 27  0.3  0.3  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1
 28  0.3  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1
 29  0.3  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1
 30  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1
 31  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1  0.1
 32  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1  0.1
 33  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1  0.1
 34  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1  0.1  0.1
 35  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1  0.1  0.1
 36  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1  0.1  0.1
 37  0.3  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1  0.1  0.1  0.1
 38  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1  0.1  0.1  0.1
 39  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1  0.1  0.1  0.1
 40  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1  0.1  0.1  0.1  0.1
 41  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1  0.1  0.1  0.1  0.1
 42  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1  0.1  0.1  0.1  0.1
 43  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1  0.1  0.1  0.1  0.1  0.1
 44  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1  0.1  0.1  0.1  0.1  0.1
 45  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1  0.1  0.1  0.1  0.1  0.1
 46  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1
 47  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1
 48  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1
 49  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1
 50  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1

ER 5 (mottled dragon armour): Additional spell skill levels required to overcome armour penalty as a function of Armour skill (x-axis) and Str (y-axis):
  Code:
S\A    0    1    3    5    7    9   11   13   15   17   19   21   23   25   27
  1  4.0  3.9  3.7  3.5  3.3  3.2  3.0  2.8  2.6  2.5  2.3  2.1  1.9  1.8  1.6
  2  3.2  3.1  3.0  2.8  2.7  2.5  2.4  2.3  2.1  2.0  1.8  1.7  1.5  1.4  1.3
  3  2.6  2.6  2.5  2.3  2.2  2.1  2.0  1.9  1.8  1.6  1.5  1.4  1.3  1.2  1.1
  4  2.3  2.2  2.1  2.0  1.9  1.8  1.7  1.6  1.5  1.4  1.3  1.2  1.1  1.0  0.9
  5  2.0  1.9  1.8  1.8  1.7  1.6  1.5  1.4  1.3  1.2  1.1  1.1  1.0  0.9  0.8
  6  1.8  1.7  1.6  1.6  1.5  1.4  1.3  1.3  1.2  1.1  1.0  0.9  0.9  0.8  0.7
  7  1.6  1.5  1.5  1.4  1.3  1.3  1.2  1.1  1.1  1.0  0.9  0.8  0.8  0.7  0.6
  8  1.4  1.4  1.3  1.3  1.2  1.2  1.1  1.0  1.0  0.9  0.8  0.8  0.7  0.6  0.6
  9  1.3  1.3  1.2  1.2  1.1  1.1  1.0  0.9  0.9  0.8  0.8  0.7  0.6  0.6  0.5
 10  1.2  1.2  1.1  1.1  1.0  1.0  0.9  0.9  0.8  0.8  0.7  0.6  0.6  0.5  0.5
 11  1.1  1.1  1.1  1.0  1.0  0.9  0.9  0.8  0.8  0.7  0.7  0.6  0.6  0.5  0.5
 12  1.1  1.0  1.0  0.9  0.9  0.8  0.8  0.8  0.7  0.7  0.6  0.6  0.5  0.5  0.4
 13  1.0  1.0  0.9  0.9  0.8  0.8  0.7  0.7  0.7  0.6  0.6  0.5  0.5  0.4  0.4
 14  0.9  0.9  0.9  0.8  0.8  0.7  0.7  0.7  0.6  0.6  0.5  0.5  0.5  0.4  0.4
 15  0.9  0.9  0.8  0.8  0.7  0.7  0.7  0.6  0.6  0.5  0.5  0.5  0.4  0.4  0.4
 16  0.8  0.8  0.8  0.7  0.7  0.7  0.6  0.6  0.6  0.5  0.5  0.4  0.4  0.4  0.3
 17  0.8  0.8  0.7  0.7  0.7  0.6  0.6  0.6  0.5  0.5  0.5  0.4  0.4  0.4  0.3
 18  0.8  0.7  0.7  0.7  0.6  0.6  0.6  0.5  0.5  0.5  0.4  0.4  0.4  0.3  0.3
 19  0.7  0.7  0.7  0.6  0.6  0.6  0.5  0.5  0.5  0.4  0.4  0.4  0.4  0.3  0.3
 20  0.7  0.7  0.6  0.6  0.6  0.6  0.5  0.5  0.5  0.4  0.4  0.4  0.3  0.3  0.3
 21  0.7  0.6  0.6  0.6  0.6  0.5  0.5  0.5  0.4  0.4  0.4  0.4  0.3  0.3  0.3
 22  0.6  0.6  0.6  0.6  0.5  0.5  0.5  0.5  0.4  0.4  0.4  0.3  0.3  0.3  0.3
 23  0.6  0.6  0.6  0.5  0.5  0.5  0.5  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.2
 24  0.6  0.6  0.5  0.5  0.5  0.5  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.2
 25  0.6  0.6  0.5  0.5  0.5  0.5  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.2
 26  0.5  0.5  0.5  0.5  0.5  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.2  0.2
 27  0.5  0.5  0.5  0.5  0.4  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.2  0.2
 28  0.5  0.5  0.5  0.5  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.2  0.2  0.2
 29  0.5  0.5  0.5  0.4  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.2  0.2  0.2
 30  0.5  0.5  0.4  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2
 31  0.5  0.5  0.4  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2
 32  0.5  0.4  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2
 33  0.4  0.4  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2
 34  0.4  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2
 35  0.4  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2
 36  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2
 37  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2
 38  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2
 39  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2
 40  0.4  0.4  0.3  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2  0.1
 41  0.4  0.4  0.3  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2  0.1
 42  0.4  0.3  0.3  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2  0.1
 43  0.3  0.3  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1
 44  0.3  0.3  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1
 45  0.3  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1
 46  0.3  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1
 47  0.3  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1
 48  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1
 49  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1  0.1
 50  0.3  0.3  0.3  0.3  0.3  0.2  0.2  0.2  0.2  0.2  0.2  0.2  0.1  0.1  0.1

ER 7 (ring mail, quicksilver/swamp dragon armour): Additional spell skill levels required to overcome armour penalty as a function of Armour skill (x-axis) and Str (y-axis):
  Code:
S\A    0    1    3    5    7    9   11   13   15   17   19   21   23   25   27
  1  7.8  7.6  7.2  6.9  6.6  6.2  5.9  5.5  5.2  4.8  4.5  4.1  3.8  3.4  3.1
  2  6.2  6.1  5.8  5.5  5.2  5.0  4.7  4.4  4.1  3.9  3.6  3.3  3.0  2.8  2.5
  3  5.2  5.1  4.8  4.6  4.4  4.1  3.9  3.7  3.4  3.2  3.0  2.8  2.5  2.3  2.1
  4  4.4  4.3  4.1  3.9  3.7  3.5  3.3  3.2  3.0  2.8  2.6  2.4  2.2  2.0  1.8
  5  3.9  3.8  3.6  3.4  3.3  3.1  2.9  2.8  2.6  2.4  2.2  2.1  1.9  1.7  1.6
  6  3.4  3.4  3.2  3.1  2.9  2.8  2.6  2.5  2.3  2.1  2.0  1.8  1.7  1.5  1.4
  7  3.1  3.0  2.9  2.8  2.6  2.5  2.3  2.2  2.1  1.9  1.8  1.7  1.5  1.4  1.2
  8  2.8  2.8  2.6  2.5  2.4  2.3  2.1  2.0  1.9  1.8  1.6  1.5  1.4  1.3  1.1
  9  2.6  2.5  2.4  2.3  2.2  2.1  2.0  1.8  1.7  1.6  1.5  1.4  1.3  1.1  1.0
 10  2.4  2.3  2.2  2.1  2.0  1.9  1.8  1.7  1.6  1.5  1.4  1.3  1.2  1.1  1.0
 11  2.2  2.2  2.1  2.0  1.9  1.8  1.7  1.6  1.5  1.4  1.3  1.2  1.1  1.0  0.9
 12  2.1  2.0  1.9  1.8  1.7  1.7  1.6  1.5  1.4  1.3  1.2  1.1  1.0  0.9  0.8
 13  1.9  1.9  1.8  1.7  1.6  1.6  1.5  1.4  1.3  1.2  1.1  1.0  0.9  0.9  0.8
 14  1.8  1.8  1.7  1.6  1.5  1.5  1.4  1.3  1.2  1.1  1.1  1.0  0.9  0.8  0.7
 15  1.7  1.7  1.6  1.5  1.5  1.4  1.3  1.2  1.1  1.1  1.0  0.9  0.8  0.8  0.7
 16  1.6  1.6  1.5  1.5  1.4  1.3  1.2  1.2  1.1  1.0  0.9  0.9  0.8  0.7  0.7
 17  1.6  1.5  1.4  1.4  1.3  1.2  1.2  1.1  1.0  1.0  0.9  0.8  0.8  0.7  0.6
 18  1.5  1.4  1.4  1.3  1.2  1.2  1.1  1.1  1.0  0.9  0.9  0.8  0.7  0.7  0.6
 19  1.4  1.4  1.3  1.3  1.2  1.1  1.1  1.0  0.9  0.9  0.8  0.8  0.7  0.6  0.6
 20  1.3  1.3  1.3  1.2  1.1  1.1  1.0  1.0  0.9  0.8  0.8  0.7  0.7  0.6  0.5
 21  1.3  1.3  1.2  1.1  1.1  1.0  1.0  0.9  0.9  0.8  0.7  0.7  0.6  0.6  0.5
 22  1.2  1.2  1.2  1.1  1.0  1.0  0.9  0.9  0.8  0.8  0.7  0.7  0.6  0.6  0.5
 23  1.2  1.2  1.1  1.1  1.0  1.0  0.9  0.8  0.8  0.7  0.7  0.6  0.6  0.5  0.5
 24  1.1  1.1  1.1  1.0  1.0  0.9  0.9  0.8  0.8  0.7  0.7  0.6  0.6  0.5  0.5
 25  1.1  1.1  1.0  1.0  0.9  0.9  0.8  0.8  0.7  0.7  0.6  0.6  0.5  0.5  0.4
 26  1.1  1.0  1.0  1.0  0.9  0.9  0.8  0.8  0.7  0.7  0.6  0.6  0.5  0.5  0.4
 27  1.0  1.0  1.0  0.9  0.9  0.8  0.8  0.7  0.7  0.6  0.6  0.6  0.5  0.5  0.4
 28  1.0  1.0  0.9  0.9  0.8  0.8  0.8  0.7  0.7  0.6  0.6  0.5  0.5  0.4  0.4
 29  1.0  0.9  0.9  0.9  0.8  0.8  0.7  0.7  0.6  0.6  0.6  0.5  0.5  0.4  0.4
 30  0.9  0.9  0.9  0.8  0.8  0.8  0.7  0.7  0.6  0.6  0.5  0.5  0.5  0.4  0.4
 31  0.9  0.9  0.9  0.8  0.8  0.7  0.7  0.6  0.6  0.6  0.5  0.5  0.4  0.4  0.4
 32  0.9  0.9  0.8  0.8  0.7  0.7  0.7  0.6  0.6  0.6  0.5  0.5  0.4  0.4  0.4
 33  0.9  0.8  0.8  0.8  0.7  0.7  0.7  0.6  0.6  0.5  0.5  0.5  0.4  0.4  0.3
 34  0.8  0.8  0.8  0.7  0.7  0.7  0.6  0.6  0.6  0.5  0.5  0.4  0.4  0.4  0.3
 35  0.8  0.8  0.8  0.7  0.7  0.7  0.6  0.6  0.5  0.5  0.5  0.4  0.4  0.4  0.3
 36  0.8  0.8  0.7  0.7  0.7  0.6  0.6  0.6  0.5  0.5  0.5  0.4  0.4  0.4  0.3
 37  0.8  0.8  0.7  0.7  0.7  0.6  0.6  0.6  0.5  0.5  0.4  0.4  0.4  0.3  0.3
 38  0.8  0.7  0.7  0.7  0.6  0.6  0.6  0.5  0.5  0.5  0.4  0.4  0.4  0.3  0.3
 39  0.7  0.7  0.7  0.7  0.6  0.6  0.6  0.5  0.5  0.5  0.4  0.4  0.4  0.3  0.3
 40  0.7  0.7  0.7  0.6  0.6  0.6  0.5  0.5  0.5  0.4  0.4  0.4  0.4  0.3  0.3
 41  0.7  0.7  0.7  0.6  0.6  0.6  0.5  0.5  0.5  0.4  0.4  0.4  0.3  0.3  0.3
 42  0.7  0.7  0.6  0.6  0.6  0.6  0.5  0.5  0.5  0.4  0.4  0.4  0.3  0.3  0.3
 43  0.7  0.7  0.6  0.6  0.6  0.5  0.5  0.5  0.4  0.4  0.4  0.4  0.3  0.3  0.3
 44  0.7  0.6  0.6  0.6  0.6  0.5  0.5  0.5  0.4  0.4  0.4  0.4  0.3  0.3  0.3
 45  0.6  0.6  0.6  0.6  0.5  0.5  0.5  0.5  0.4  0.4  0.4  0.3  0.3  0.3  0.3
 46  0.6  0.6  0.6  0.6  0.5  0.5  0.5  0.5  0.4  0.4  0.4  0.3  0.3  0.3  0.3
 47  0.6  0.6  0.6  0.6  0.5  0.5  0.5  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.2
 48  0.6  0.6  0.6  0.5  0.5  0.5  0.5  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.2
 49  0.6  0.6  0.6  0.5  0.5  0.5  0.5  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.2
 50  0.6  0.6  0.5  0.5  0.5  0.5  0.4  0.4  0.4  0.4  0.3  0.3  0.3  0.3  0.2

ER 10 (scale mail): Additional spell skill levels required to overcome armour penalty as a function of Armour skill (x-axis) and Str (y-axis):
  Code:
S\A    0    1    3    5    7    9   11   13   15   17   19   21   23   25   27
  1 15.8 15.5 14.8 14.1 13.4 12.7 12.0 11.3 10.6  9.9  9.1  8.4  7.7  7.0  6.3
  2 12.7 12.4 11.8 11.3 10.7 10.1  9.6  9.0  8.4  7.9  7.3  6.8  6.2  5.6  5.1
  3 10.6 10.3  9.9  9.4  8.9  8.4  8.0  7.5  7.0  6.6  6.1  5.6  5.2  4.7  4.2
  4  9.0  8.8  8.4  8.0  7.6  7.2  6.8  6.4  6.0  5.6  5.2  4.8  4.4  4.0  3.6
  5  7.9  7.7  7.4  7.0  6.7  6.3  6.0  5.6  5.3  4.9  4.6  4.2  3.9  3.5  3.2
  6  7.0  6.9  6.6  6.3  5.9  5.6  5.3  5.0  4.7  4.4  4.1  3.8  3.4  3.1  2.8
  7  6.3  6.2  5.9  5.6  5.3  5.1  4.8  4.5  4.2  3.9  3.7  3.4  3.1  2.8  2.5
  8  5.8  5.6  5.4  5.1  4.9  4.6  4.4  4.1  3.8  3.6  3.3  3.1  2.8  2.6  2.3
  9  5.3  5.2  4.9  4.7  4.5  4.2  4.0  3.8  3.5  3.3  3.0  2.8  2.6  2.3  2.1
 10  4.9  4.8  4.5  4.3  4.1  3.9  3.7  3.5  3.2  3.0  2.8  2.6  2.4  2.2  1.9
 11  4.5  4.4  4.2  4.0  3.8  3.6  3.4  3.2  3.0  2.8  2.6  2.4  2.2  2.0  1.8
 12  4.2  4.1  3.9  3.8  3.6  3.4  3.2  3.0  2.8  2.6  2.4  2.3  2.1  1.9  1.7
 13  4.0  3.9  3.7  3.5  3.3  3.2  3.0  2.8  2.6  2.5  2.3  2.1  1.9  1.8  1.6
 14  3.7  3.6  3.5  3.3  3.1  3.0  2.8  2.6  2.5  2.3  2.2  2.0  1.8  1.7  1.5
 15  3.5  3.4  3.3  3.1  3.0  2.8  2.7  2.5  2.3  2.2  2.0  1.9  1.7  1.6  1.4
 16  3.3  3.3  3.1  3.0  2.8  2.7  2.5  2.4  2.2  2.1  1.9  1.8  1.6  1.5  1.3
 17  3.2  3.1  3.0  2.8  2.7  2.5  2.4  2.3  2.1  2.0  1.8  1.7  1.5  1.4  1.3
 18  3.0  2.9  2.8  2.7  2.5  2.4  2.3  2.1  2.0  1.9  1.7  1.6  1.5  1.3  1.2
 19  2.9  2.8  2.7  2.6  2.4  2.3  2.2  2.0  1.9  1.8  1.7  1.5  1.4  1.3  1.2
 20  2.8  2.7  2.6  2.4  2.3  2.2  2.1  2.0  1.8  1.7  1.6  1.5  1.3  1.2  1.1
 21  2.6  2.6  2.5  2.3  2.2  2.1  2.0  1.9  1.8  1.6  1.5  1.4  1.3  1.2  1.1
 22  2.5  2.5  2.4  2.3  2.1  2.0  1.9  1.8  1.7  1.6  1.5  1.4  1.2  1.1  1.0
 23  2.4  2.4  2.3  2.2  2.1  1.9  1.8  1.7  1.6  1.5  1.4  1.3  1.2  1.1  1.0
 24  2.3  2.3  2.2  2.1  2.0  1.9  1.8  1.7  1.6  1.5  1.4  1.3  1.1  1.0  0.9
 25  2.3  2.2  2.1  2.0  1.9  1.8  1.7  1.6  1.5  1.4  1.3  1.2  1.1  1.0  0.9
 26  2.2  2.1  2.0  1.9  1.8  1.7  1.7  1.6  1.5  1.4  1.3  1.2  1.1  1.0  0.9
 27  2.1  2.1  2.0  1.9  1.8  1.7  1.6  1.5  1.4  1.3  1.2  1.1  1.0  0.9  0.8
 28  2.0  2.0  1.9  1.8  1.7  1.6  1.5  1.5  1.4  1.3  1.2  1.1  1.0  0.9  0.8
 29  2.0  1.9  1.8  1.8  1.7  1.6  1.5  1.4  1.3  1.2  1.1  1.1  1.0  0.9  0.8
 30  1.9  1.9  1.8  1.7  1.6  1.5  1.5  1.4  1.3  1.2  1.1  1.0  0.9  0.9  0.8
 31  1.9  1.8  1.7  1.7  1.6  1.5  1.4  1.3  1.2  1.2  1.1  1.0  0.9  0.8  0.7
 32  1.8  1.8  1.7  1.6  1.5  1.4  1.4  1.3  1.2  1.1  1.0  1.0  0.9  0.8  0.7
 33  1.8  1.7  1.6  1.6  1.5  1.4  1.3  1.3  1.2  1.1  1.0  0.9  0.9  0.8  0.7
 34  1.7  1.7  1.6  1.5  1.4  1.4  1.3  1.2  1.1  1.1  1.0  0.9  0.8  0.8  0.7
 35  1.7  1.6  1.6  1.5  1.4  1.3  1.3  1.2  1.1  1.0  1.0  0.9  0.8  0.7  0.7
 36  1.6  1.6  1.5  1.4  1.4  1.3  1.2  1.2  1.1  1.0  0.9  0.9  0.8  0.7  0.6
 37  1.6  1.5  1.5  1.4  1.3  1.3  1.2  1.1  1.1  1.0  0.9  0.8  0.8  0.7  0.6
 38  1.5  1.5  1.4  1.4  1.3  1.2  1.2  1.1  1.0  1.0  0.9  0.8  0.8  0.7  0.6
 39  1.5  1.5  1.4  1.3  1.3  1.2  1.1  1.1  1.0  0.9  0.9  0.8  0.7  0.7  0.6
 40  1.5  1.4  1.4  1.3  1.2  1.2  1.1  1.0  1.0  0.9  0.9  0.8  0.7  0.7  0.6
 41  1.4  1.4  1.3  1.3  1.2  1.2  1.1  1.0  1.0  0.9  0.8  0.8  0.7  0.6  0.6
 42  1.4  1.4  1.3  1.3  1.2  1.1  1.1  1.0  0.9  0.9  0.8  0.8  0.7  0.6  0.6
 43  1.4  1.3  1.3  1.2  1.2  1.1  1.0  1.0  0.9  0.9  0.8  0.7  0.7  0.6  0.6
 44  1.3  1.3  1.3  1.2  1.1  1.1  1.0  1.0  0.9  0.8  0.8  0.7  0.7  0.6  0.5
 45  1.3  1.3  1.2  1.2  1.1  1.1  1.0  0.9  0.9  0.8  0.8  0.7  0.6  0.6  0.5
 46  1.3  1.3  1.2  1.1  1.1  1.0  1.0  0.9  0.9  0.8  0.7  0.7  0.6  0.6  0.5
 47  1.3  1.2  1.2  1.1  1.1  1.0  1.0  0.9  0.8  0.8  0.7  0.7  0.6  0.6  0.5
 48  1.2  1.2  1.2  1.1  1.0  1.0  0.9  0.9  0.8  0.8  0.7  0.7  0.6  0.6  0.5
 49  1.2  1.2  1.1  1.1  1.0  1.0  0.9  0.9  0.8  0.8  0.7  0.6  0.6  0.5  0.5
 50  1.2  1.2  1.1  1.1  1.0  1.0  0.9  0.8  0.8  0.7  0.7  0.6  0.6  0.5  0.5

ER 11 (fire/ice/pearl dragon armour): Additional spell skill levels required to overcome armour penalty as a function of Armour skill (x-axis) and Str (y-axis):
  Code:
S\A    0    1    3    5    7    9   11   13   15   17   19   21   23   25   27
  1 19.2 18.7 17.9 17.0 16.2 15.3 14.5 13.6 12.8 11.9 11.1 10.2  9.4  8.5  7.7
  2 15.3 15.0 14.3 13.6 12.9 12.3 11.6 10.9 10.2  9.5  8.9  8.2  7.5  6.8  6.1
  3 12.8 12.5 11.9 11.4 10.8 10.2  9.7  9.1  8.5  7.9  7.4  6.8  6.2  5.7  5.1
  4 10.9 10.7 10.2  9.7  9.2  8.8  8.3  7.8  7.3  6.8  6.3  5.8  5.4  4.9  4.4
  5  9.6  9.4  8.9  8.5  8.1  7.7  7.2  6.8  6.4  6.0  5.5  5.1  4.7  4.3  3.8
  6  8.5  8.3  7.9  7.6  7.2  6.8  6.4  6.1  5.7  5.3  4.9  4.5  4.2  3.8  3.4
  7  7.7  7.5  7.2  6.8  6.5  6.1  5.8  5.4  5.1  4.8  4.4  4.1  3.7  3.4  3.1
  8  7.0  6.8  6.5  6.2  5.9  5.6  5.3  5.0  4.6  4.3  4.0  3.7  3.4  3.1  2.8
  9  6.4  6.2  6.0  5.7  5.4  5.1  4.8  4.5  4.3  4.0  3.7  3.4  3.1  2.8  2.6
 10  5.9  5.8  5.5  5.2  5.0  4.7  4.5  4.2  3.9  3.7  3.4  3.1  2.9  2.6  2.4
 11  5.5  5.4  5.1  4.9  4.6  4.4  4.1  3.9  3.6  3.4  3.2  2.9  2.7  2.4  2.2
 12  5.1  5.0  4.8  4.5  4.3  4.1  3.9  3.6  3.4  3.2  3.0  2.7  2.5  2.3  2.0
 13  4.8  4.7  4.5  4.3  4.0  3.8  3.6  3.4  3.2  3.0  2.8  2.6  2.3  2.1  1.9
 14  4.5  4.4  4.2  4.0  3.8  3.6  3.4  3.2  3.0  2.8  2.6  2.4  2.2  2.0  1.8
 15  4.3  4.2  4.0  3.8  3.6  3.4  3.2  3.0  2.8  2.6  2.5  2.3  2.1  1.9  1.7
 16  4.0  3.9  3.8  3.6  3.4  3.2  3.0  2.9  2.7  2.5  2.3  2.2  2.0  1.8  1.6
 17  3.8  3.7  3.6  3.4  3.2  3.1  2.9  2.7  2.6  2.4  2.2  2.0  1.9  1.7  1.5
 18  3.6  3.6  3.4  3.2  3.1  2.9  2.8  2.6  2.4  2.3  2.1  1.9  1.8  1.6  1.5
 19  3.5  3.4  3.3  3.1  2.9  2.8  2.6  2.5  2.3  2.2  2.0  1.9  1.7  1.5  1.4
 20  3.3  3.3  3.1  3.0  2.8  2.7  2.5  2.4  2.2  2.1  1.9  1.8  1.6  1.5  1.3
 21  3.2  3.1  3.0  2.8  2.7  2.6  2.4  2.3  2.1  2.0  1.8  1.7  1.6  1.4  1.3
 22  3.1  3.0  2.9  2.7  2.6  2.5  2.3  2.2  2.0  1.9  1.8  1.6  1.5  1.4  1.2
 23  2.9  2.9  2.8  2.6  2.5  2.4  2.2  2.1  2.0  1.8  1.7  1.6  1.4  1.3  1.2
 24  2.8  2.8  2.6  2.5  2.4  2.3  2.1  2.0  1.9  1.8  1.6  1.5  1.4  1.3  1.1
 25  2.7  2.7  2.6  2.4  2.3  2.2  2.1  1.9  1.8  1.7  1.6  1.5  1.3  1.2  1.1
 26  2.6  2.6  2.5  2.3  2.2  2.1  2.0  1.9  1.8  1.6  1.5  1.4  1.3  1.2  1.1
 27  2.6  2.5  2.4  2.3  2.2  2.0  1.9  1.8  1.7  1.6  1.5  1.4  1.2  1.1  1.0
 28  2.5  2.4  2.3  2.2  2.1  2.0  1.9  1.8  1.6  1.5  1.4  1.3  1.2  1.1  1.0
 29  2.4  2.3  2.2  2.1  2.0  1.9  1.8  1.7  1.6  1.5  1.4  1.3  1.2  1.1  1.0
 30  2.3  2.3  2.2  2.1  2.0  1.9  1.8  1.7  1.5  1.4  1.3  1.2  1.1  1.0  0.9
 31  2.3  2.2  2.1  2.0  1.9  1.8  1.7  1.6  1.5  1.4  1.3  1.2  1.1  1.0  0.9
 32  2.2  2.1  2.0  1.9  1.8  1.8  1.7  1.6  1.5  1.4  1.3  1.2  1.1  1.0  0.9
 33  2.1  2.1  2.0  1.9  1.8  1.7  1.6  1.5  1.4  1.3  1.2  1.1  1.0  0.9  0.9
 34  2.1  2.0  1.9  1.8  1.7  1.7  1.6  1.5  1.4  1.3  1.2  1.1  1.0  0.9  0.8
 35  2.0  2.0  1.9  1.8  1.7  1.6  1.5  1.4  1.3  1.3  1.2  1.1  1.0  0.9  0.8
 36  2.0  1.9  1.8  1.7  1.7  1.6  1.5  1.4  1.3  1.2  1.1  1.0  1.0  0.9  0.8
 37  1.9  1.9  1.8  1.7  1.6  1.5  1.4  1.4  1.3  1.2  1.1  1.0  0.9  0.9  0.8
 38  1.9  1.8  1.7  1.7  1.6  1.5  1.4  1.3  1.2  1.2  1.1  1.0  0.9  0.8  0.7
 39  1.8  1.8  1.7  1.6  1.5  1.5  1.4  1.3  1.2  1.1  1.1  1.0  0.9  0.8  0.7
 40  1.8  1.7  1.7  1.6  1.5  1.4  1.3  1.3  1.2  1.1  1.0  1.0  0.9  0.8  0.7
 41  1.7  1.7  1.6  1.5  1.5  1.4  1.3  1.2  1.2  1.1  1.0  0.9  0.9  0.8  0.7
 42  1.7  1.7  1.6  1.5  1.4  1.4  1.3  1.2  1.1  1.1  1.0  0.9  0.8  0.8  0.7
 43  1.7  1.6  1.6  1.5  1.4  1.3  1.3  1.2  1.1  1.0  1.0  0.9  0.8  0.7  0.7
 44  1.6  1.6  1.5  1.4  1.4  1.3  1.2  1.2  1.1  1.0  0.9  0.9  0.8  0.7  0.7
 45  1.6  1.6  1.5  1.4  1.3  1.3  1.2  1.1  1.1  1.0  0.9  0.9  0.8  0.7  0.6
 46  1.6  1.5  1.5  1.4  1.3  1.3  1.2  1.1  1.0  1.0  0.9  0.8  0.8  0.7  0.6
 47  1.5  1.5  1.4  1.4  1.3  1.2  1.2  1.1  1.0  1.0  0.9  0.8  0.7  0.7  0.6
 48  1.5  1.5  1.4  1.3  1.3  1.2  1.1  1.1  1.0  0.9  0.9  0.8  0.7  0.7  0.6
 49  1.5  1.4  1.4  1.3  1.2  1.2  1.1  1.0  1.0  0.9  0.9  0.8  0.7  0.7  0.6
 50  1.4  1.4  1.3  1.3  1.2  1.2  1.1  1.0  1.0  0.9  0.8  0.8  0.7  0.6  0.6

ER 15 (chain mail, shadow/storm dragon armour): Additional spell skill levels required to overcome armour penalty as a function of Armour skill (x-axis) and Str (y-axis):
  Code:
S\A    0    1    3    5    7    9   11   13   15   17   19   21   23   25   27
  1 35.6 34.8 33.2 31.7 30.1 28.5 26.9 25.3 23.8 22.2 20.6 19.0 17.4 15.8 14.2
  2 28.5 27.9 26.6 25.3 24.1 22.8 21.5 20.3 19.0 17.7 16.5 15.2 13.9 12.7 11.4
  3 23.8 23.2 22.2 21.1 20.1 19.0 17.9 16.9 15.8 14.8 13.7 12.7 11.6 10.6  9.5
  4 20.4 19.9 19.0 18.1 17.2 16.3 15.4 14.5 13.6 12.7 11.8 10.9 10.0  9.0  8.1
  5 17.8 17.4 16.6 15.8 15.0 14.2 13.5 12.7 11.9 11.1 10.3  9.5  8.7  7.9  7.1
  6 15.8 15.5 14.8 14.1 13.4 12.7 12.0 11.3 10.6  9.9  9.1  8.4  7.7  7.0  6.3
  7 14.2 13.9 13.3 12.7 12.0 11.4 10.8 10.1  9.5  8.9  8.2  7.6  7.0  6.3  5.7
  8 13.0 12.7 12.1 11.5 10.9 10.4  9.8  9.2  8.6  8.1  7.5  6.9  6.3  5.8  5.2
  9 11.9 11.6 11.1 10.6 10.0  9.5  9.0  8.4  7.9  7.4  6.9  6.3  5.8  5.3  4.8
 10 11.0 10.7 10.2  9.7  9.3  8.8  8.3  7.8  7.3  6.8  6.3  5.8  5.4  4.9  4.4
 11 10.2 10.0  9.5  9.0  8.6  8.1  7.7  7.2  6.8  6.3  5.9  5.4  5.0  4.5  4.1
 12  9.5  9.3  8.9  8.4  8.0  7.6  7.2  6.8  6.3  5.9  5.5  5.1  4.6  4.2  3.8
 13  8.9  8.7  8.3  7.9  7.5  7.1  6.7  6.3  5.9  5.5  5.1  4.8  4.4  4.0  3.6
 14  8.4  8.2  7.8  7.5  7.1  6.7  6.3  6.0  5.6  5.2  4.8  4.5  4.1  3.7  3.4
 15  7.9  7.7  7.4  7.0  6.7  6.3  6.0  5.6  5.3  4.9  4.6  4.2  3.9  3.5  3.2
 16  7.5  7.3  7.0  6.7  6.3  6.0  5.7  5.3  5.0  4.7  4.3  4.0  3.7  3.3  3.0
 17  7.1  7.0  6.6  6.3  6.0  5.7  5.4  5.1  4.8  4.4  4.1  3.8  3.5  3.2  2.9
 18  6.8  6.6  6.3  6.0  5.7  5.4  5.1  4.8  4.5  4.2  3.9  3.6  3.3  3.0  2.7
 19  6.5  6.3  6.0  5.8  5.5  5.2  4.9  4.6  4.3  4.0  3.7  3.5  3.2  2.9  2.6
 20  6.2  6.1  5.8  5.5  5.2  5.0  4.7  4.4  4.1  3.9  3.6  3.3  3.0  2.8  2.5
 21  5.9  5.8  5.5  5.3  5.0  4.8  4.5  4.2  4.0  3.7  3.4  3.2  2.9  2.6  2.4
 22  5.7  5.6  5.3  5.1  4.8  4.6  4.3  4.1  3.8  3.5  3.3  3.0  2.8  2.5  2.3
 23  5.5  5.4  5.1  4.9  4.6  4.4  4.1  3.9  3.7  3.4  3.2  2.9  2.7  2.4  2.2
 24  5.3  5.2  4.9  4.7  4.5  4.2  4.0  3.8  3.5  3.3  3.0  2.8  2.6  2.3  2.1
 25  5.1  5.0  4.8  4.5  4.3  4.1  3.8  3.6  3.4  3.2  2.9  2.7  2.5  2.3  2.0
 26  4.9  4.8  4.6  4.4  4.1  3.9  3.7  3.5  3.3  3.1  2.8  2.6  2.4  2.2  2.0
 27  4.8  4.6  4.4  4.2  4.0  3.8  3.6  3.4  3.2  3.0  2.7  2.5  2.3  2.1  1.9
 28  4.6  4.5  4.3  4.1  3.9  3.7  3.5  3.3  3.1  2.9  2.7  2.5  2.2  2.0  1.8
 29  4.5  4.4  4.2  4.0  3.8  3.6  3.4  3.2  3.0  2.8  2.6  2.4  2.2  2.0  1.8
 30  4.3  4.2  4.0  3.8  3.6  3.5  3.3  3.1  2.9  2.7  2.5  2.3  2.1  1.9  1.7
 31  4.2  4.1  3.9  3.7  3.5  3.4  3.2  3.0  2.8  2.6  2.4  2.2  2.0  1.9  1.7
 32  4.1  4.0  3.8  3.6  3.4  3.3  3.1  2.9  2.7  2.5  2.4  2.2  2.0  1.8  1.6
 33  4.0  3.9  3.7  3.5  3.3  3.2  3.0  2.8  2.6  2.5  2.3  2.1  1.9  1.8  1.6
 34  3.9  3.8  3.6  3.4  3.3  3.1  2.9  2.7  2.6  2.4  2.2  2.1  1.9  1.7  1.5
 35  3.8  3.7  3.5  3.3  3.2  3.0  2.8  2.7  2.5  2.3  2.2  2.0  1.8  1.7  1.5
 36  3.7  3.6  3.4  3.2  3.1  2.9  2.8  2.6  2.4  2.3  2.1  1.9  1.8  1.6  1.5
 37  3.6  3.5  3.3  3.2  3.0  2.9  2.7  2.5  2.4  2.2  2.1  1.9  1.7  1.6  1.4
 38  3.5  3.4  3.2  3.1  2.9  2.8  2.6  2.5  2.3  2.2  2.0  1.9  1.7  1.5  1.4
 39  3.4  3.3  3.2  3.0  2.9  2.7  2.6  2.4  2.3  2.1  2.0  1.8  1.7  1.5  1.4
 40  3.3  3.2  3.1  2.9  2.8  2.7  2.5  2.4  2.2  2.1  1.9  1.8  1.6  1.5  1.3
 41  3.2  3.2  3.0  2.9  2.7  2.6  2.4  2.3  2.2  2.0  1.9  1.7  1.6  1.4  1.3
 42  3.2  3.1  3.0  2.8  2.7  2.5  2.4  2.3  2.1  2.0  1.8  1.7  1.5  1.4  1.3
 43  3.1  3.0  2.9  2.8  2.6  2.5  2.3  2.2  2.1  1.9  1.8  1.7  1.5  1.4  1.2
 44  3.0  3.0  2.8  2.7  2.6  2.4  2.3  2.2  2.0  1.9  1.8  1.6  1.5  1.3  1.2
 45  3.0  2.9  2.8  2.6  2.5  2.4  2.2  2.1  2.0  1.8  1.7  1.6  1.5  1.3  1.2
 46  2.9  2.8  2.7  2.6  2.5  2.3  2.2  2.1  1.9  1.8  1.7  1.6  1.4  1.3  1.2
 47  2.9  2.8  2.7  2.5  2.4  2.3  2.2  2.0  1.9  1.8  1.6  1.5  1.4  1.3  1.1
 48  2.8  2.7  2.6  2.5  2.4  2.2  2.1  2.0  1.9  1.7  1.6  1.5  1.4  1.2  1.1
 49  2.7  2.7  2.6  2.4  2.3  2.2  2.1  1.9  1.8  1.7  1.6  1.5  1.3  1.2  1.1
 50  2.7  2.6  2.5  2.4  2.3  2.2  2.0  1.9  1.8  1.7  1.6  1.4  1.3  1.2  1.1

ER 18 (plate armour): Additional spell skill levels required to overcome armour penalty as a function of Armour skill (x-axis) and Str (y-axis):
  Code:
S\A    0    1    3    5    7    9   11   13   15   17   19   21   23   25   27
  1 51.3 50.2 47.9 45.6 43.3 41.0 38.8 36.5 34.2 31.9 29.6 27.4 25.1 22.8 20.5
  2 41.0 40.1 38.3 36.5 34.7 32.8 31.0 29.2 27.4 25.5 23.7 21.9 20.1 18.2 16.4
  3 34.2 33.4 31.9 30.4 28.9 27.4 25.8 24.3 22.8 21.3 19.8 18.2 16.7 15.2 13.7
  4 29.3 28.7 27.4 26.1 24.8 23.5 22.1 20.8 19.5 18.2 16.9 15.6 14.3 13.0 11.7
  5 25.7 25.1 23.9 22.8 21.7 20.5 19.4 18.2 17.1 16.0 14.8 13.7 12.5 11.4 10.3
  6 22.8 22.3 21.3 20.3 19.3 18.2 17.2 16.2 15.2 14.2 13.2 12.2 11.1 10.1  9.1
  7 20.5 20.1 19.2 18.2 17.3 16.4 15.5 14.6 13.7 12.8 11.9 10.9 10.0  9.1  8.2
  8 18.7 18.2 17.4 16.6 15.8 14.9 14.1 13.3 12.4 11.6 10.8  9.9  9.1  8.3  7.5
  9 17.1 16.7 16.0 15.2 14.4 13.7 12.9 12.2 11.4 10.6  9.9  9.1  8.4  7.6  6.8
 10 15.8 15.4 14.7 14.0 13.3 12.6 11.9 11.2 10.5  9.8  9.1  8.4  7.7  7.0  6.3
 11 14.7 14.3 13.7 13.0 12.4 11.7 11.1 10.4  9.8  9.1  8.5  7.8  7.2  6.5  5.9
 12 13.7 13.4 12.8 12.2 11.6 10.9 10.3  9.7  9.1  8.5  7.9  7.3  6.7  6.1  5.5
 13 12.8 12.5 12.0 11.4 10.8 10.3  9.7  9.1  8.6  8.0  7.4  6.8  6.3  5.7  5.1
 14 12.1 11.8 11.3 10.7 10.2  9.7  9.1  8.6  8.0  7.5  7.0  6.4  5.9  5.4  4.8
 15 11.4 11.1 10.6 10.1  9.6  9.1  8.6  8.1  7.6  7.1  6.6  6.1  5.6  5.1  4.6
 16 10.8 10.6 10.1  9.6  9.1  8.6  8.2  7.7  7.2  6.7  6.2  5.8  5.3  4.8  4.3
 17 10.3 10.0  9.6  9.1  8.7  8.2  7.8  7.3  6.8  6.4  5.9  5.5  5.0  4.6  4.1
 18  9.8  9.6  9.1  8.7  8.3  7.8  7.4  6.9  6.5  6.1  5.6  5.2  4.8  4.3  3.9
 19  9.3  9.1  8.7  8.3  7.9  7.5  7.0  6.6  6.2  5.8  5.4  5.0  4.6  4.1  3.7
 20  8.9  8.7  8.3  7.9  7.5  7.1  6.7  6.3  5.9  5.6  5.2  4.8  4.4  4.0  3.6
 21  8.6  8.4  8.0  7.6  7.2  6.8  6.5  6.1  5.7  5.3  4.9  4.6  4.2  3.8  3.4
 22  8.2  8.0  7.7  7.3  6.9  6.6  6.2  5.8  5.5  5.1  4.7  4.4  4.0  3.6  3.3
 23  7.9  7.7  7.4  7.0  6.7  6.3  6.0  5.6  5.3  4.9  4.6  4.2  3.9  3.5  3.2
 24  7.6  7.4  7.1  6.8  6.4  6.1  5.7  5.4  5.1  4.7  4.4  4.1  3.7  3.4  3.0
 25  7.3  7.2  6.8  6.5  6.2  5.9  5.5  5.2  4.9  4.6  4.2  3.9  3.6  3.3  2.9
 26  7.1  6.9  6.6  6.3  6.0  5.7  5.3  5.0  4.7  4.4  4.1  3.8  3.5  3.1  2.8
 27  6.8  6.7  6.4  6.1  5.8  5.5  5.2  4.9  4.6  4.3  4.0  3.6  3.3  3.0  2.7
 28  6.6  6.5  6.2  5.9  5.6  5.3  5.0  4.7  4.4  4.1  3.8  3.5  3.2  2.9  2.6
 29  6.4  6.3  6.0  5.7  5.4  5.1  4.8  4.6  4.3  4.0  3.7  3.4  3.1  2.9  2.6
 30  6.2  6.1  5.8  5.5  5.3  5.0  4.7  4.4  4.1  3.9  3.6  3.3  3.0  2.8  2.5
 31  6.0  5.9  5.6  5.4  5.1  4.8  4.6  4.3  4.0  3.8  3.5  3.2  3.0  2.7  2.4
 32  5.9  5.7  5.5  5.2  5.0  4.7  4.4  4.2  3.9  3.6  3.4  3.1  2.9  2.6  2.3
 33  5.7  5.6  5.3  5.1  4.8  4.6  4.3  4.1  3.8  3.5  3.3  3.0  2.8  2.5  2.3
 34  5.5  5.4  5.2  4.9  4.7  4.4  4.2  3.9  3.7  3.5  3.2  3.0  2.7  2.5  2.2
 35  5.4  5.3  5.0  4.8  4.6  4.3  4.1  3.8  3.6  3.4  3.1  2.9  2.6  2.4  2.2
 36  5.3  5.1  4.9  4.7  4.4  4.2  4.0  3.7  3.5  3.3  3.0  2.8  2.6  2.3  2.1
 37  5.1  5.0  4.8  4.6  4.3  4.1  3.9  3.6  3.4  3.2  3.0  2.7  2.5  2.3  2.1
 38  5.0  4.9  4.7  4.4  4.2  4.0  3.8  3.6  3.3  3.1  2.9  2.7  2.4  2.2  2.0
 39  4.9  4.8  4.6  4.3  4.1  3.9  3.7  3.5  3.3  3.0  2.8  2.6  2.4  2.2  2.0
 40  4.8  4.7  4.5  4.2  4.0  3.8  3.6  3.4  3.2  3.0  2.8  2.5  2.3  2.1  1.9
 41  4.7  4.6  4.4  4.1  3.9  3.7  3.5  3.3  3.1  2.9  2.7  2.5  2.3  2.1  1.9
 42  4.6  4.5  4.3  4.1  3.9  3.6  3.4  3.2  3.0  2.8  2.6  2.4  2.2  2.0  1.8
 43  4.5  4.4  4.2  4.0  3.8  3.6  3.4  3.2  3.0  2.8  2.6  2.4  2.2  2.0  1.8
 44  4.4  4.3  4.1  3.9  3.7  3.5  3.3  3.1  2.9  2.7  2.5  2.3  2.1  1.9  1.7
 45  4.3  4.2  4.0  3.8  3.6  3.4  3.2  3.0  2.9  2.7  2.5  2.3  2.1  1.9  1.7
 46  4.2  4.1  3.9  3.7  3.5  3.4  3.2  3.0  2.8  2.6  2.4  2.2  2.0  1.9  1.7
 47  4.1  4.0  3.8  3.6  3.5  3.3  3.1  2.9  2.7  2.6  2.4  2.2  2.0  1.8  1.6
 48  4.0  3.9  3.8  3.6  3.4  3.2  3.0  2.9  2.7  2.5  2.3  2.1  2.0  1.8  1.6
 49  3.9  3.9  3.7  3.5  3.3  3.2  3.0  2.8  2.6  2.5  2.3  2.1  1.9  1.8  1.6
 50  3.9  3.8  3.6  3.4  3.3  3.1  2.9  2.8  2.6  2.4  2.2  2.1  1.9  1.7  1.5

ER 23 (crystal plate armour, gold dragon armour): Additional spell skill levels required to overcome armour penalty as a function of Armour skill (x-axis) and Str (y-axis):
  Code:
S\A    0    1    3    5    7    9   11   13   15   17   19   21   23   25   27
  1 83.8 81.9 78.2 74.5 70.7 67.0 63.3 59.6 55.8 52.1 48.4 44.7 40.9 37.2 33.5
  2 67.0 65.5 62.5 59.6 56.6 53.6 50.6 47.6 44.7 41.7 38.7 35.7 32.8 29.8 26.8
  3 55.8 54.6 52.1 49.6 47.2 44.7 42.2 39.7 37.2 34.7 32.3 29.8 27.3 24.8 22.3
  4 47.9 46.8 44.7 42.5 40.4 38.3 36.2 34.0 31.9 29.8 27.7 25.5 23.4 21.3 19.1
  5 41.9 40.9 39.1 37.2 35.4 33.5 31.6 29.8 27.9 26.1 24.2 22.3 20.5 18.6 16.8
  6 37.2 36.4 34.7 33.1 31.4 29.8 28.1 26.5 24.8 23.2 21.5 19.9 18.2 16.5 14.9
  7 33.5 32.8 31.3 29.8 28.3 26.8 25.3 23.8 22.3 20.8 19.4 17.9 16.4 14.9 13.4
  8 30.5 29.8 28.4 27.1 25.7 24.4 23.0 21.7 20.3 19.0 17.6 16.2 14.9 13.5 12.2
  9 27.9 27.3 26.1 24.8 23.6 22.3 21.1 19.9 18.6 17.4 16.1 14.9 13.6 12.4 11.2
 10 25.8 25.2 24.1 22.9 21.8 20.6 19.5 18.3 17.2 16.0 14.9 13.7 12.6 11.5 10.3
 11 23.9 23.4 22.3 21.3 20.2 19.1 18.1 17.0 16.0 14.9 13.8 12.8 11.7 10.6  9.6
 12 22.3 21.8 20.8 19.9 18.9 17.9 16.9 15.9 14.9 13.9 12.9 11.9 10.9  9.9  8.9
 13 20.9 20.5 19.5 18.6 17.7 16.8 15.8 14.9 14.0 13.0 12.1 11.2 10.2  9.3  8.4
 14 19.7 19.3 18.4 17.5 16.6 15.8 14.9 14.0 13.1 12.3 11.4 10.5  9.6  8.8  7.9
 15 18.6 18.2 17.4 16.5 15.7 14.9 14.1 13.2 12.4 11.6 10.8  9.9  9.1  8.3  7.4
 16 17.6 17.2 16.5 15.7 14.9 14.1 13.3 12.5 11.8 11.0 10.2  9.4  8.6  7.8  7.1
 17 16.8 16.4 15.6 14.9 14.1 13.4 12.7 11.9 11.2 10.4  9.7  8.9  8.2  7.4  6.7
 18 16.0 15.6 14.9 14.2 13.5 12.8 12.1 11.3 10.6  9.9  9.2  8.5  7.8  7.1  6.4
 19 15.2 14.9 14.2 13.5 12.9 12.2 11.5 10.8 10.2  9.5  8.8  8.1  7.4  6.8  6.1
 20 14.6 14.2 13.6 12.9 12.3 11.7 11.0 10.4  9.7  9.1  8.4  7.8  7.1  6.5  5.8
 21 14.0 13.6 13.0 12.4 11.8 11.2 10.5  9.9  9.3  8.7  8.1  7.4  6.8  6.2  5.6
 22 13.4 13.1 12.5 11.9 11.3 10.7 10.1  9.5  8.9  8.3  7.7  7.1  6.6  6.0  5.4
 23 12.9 12.6 12.0 11.5 10.9 10.3  9.7  9.2  8.6  8.0  7.4  6.9  6.3  5.7  5.2
 24 12.4 12.1 11.6 11.0 10.5  9.9  9.4  8.8  8.3  7.7  7.2  6.6  6.1  5.5  5.0
 25 12.0 11.7 11.2 10.6 10.1  9.6  9.0  8.5  8.0  7.4  6.9  6.4  5.8  5.3  4.8
 26 11.6 11.3 10.8 10.3  9.8  9.2  8.7  8.2  7.7  7.2  6.7  6.2  5.6  5.1  4.6
 27 11.2 10.9 10.4  9.9  9.4  8.9  8.4  7.9  7.4  6.9  6.5  6.0  5.5  5.0  4.5
 28 10.8 10.6 10.1  9.6  9.1  8.6  8.2  7.7  7.2  6.7  6.2  5.8  5.3  4.8  4.3
 29 10.5 10.2  9.8  9.3  8.8  8.4  7.9  7.4  7.0  6.5  6.0  5.6  5.1  4.7  4.2
 30 10.2  9.9  9.5  9.0  8.6  8.1  7.7  7.2  6.8  6.3  5.9  5.4  5.0  4.5  4.1
 31  9.9  9.6  9.2  8.8  8.3  7.9  7.4  7.0  6.6  6.1  5.7  5.3  4.8  4.4  3.9
 32  9.6  9.4  8.9  8.5  8.1  7.7  7.2  6.8  6.4  6.0  5.5  5.1  4.7  4.3  3.8
 33  9.3  9.1  8.7  8.3  7.9  7.4  7.0  6.6  6.2  5.8  5.4  5.0  4.5  4.1  3.7
 34  9.1  8.9  8.5  8.0  7.6  7.2  6.8  6.4  6.0  5.6  5.2  4.8  4.4  4.0  3.6
 35  8.8  8.6  8.2  7.8  7.4  7.1  6.7  6.3  5.9  5.5  5.1  4.7  4.3  3.9  3.5
 36  8.6  8.4  8.0  7.6  7.3  6.9  6.5  6.1  5.7  5.3  5.0  4.6  4.2  3.8  3.4
 37  8.4  8.2  7.8  7.4  7.1  6.7  6.3  6.0  5.6  5.2  4.8  4.5  4.1  3.7  3.4
 38  8.2  8.0  7.6  7.3  6.9  6.5  6.2  5.8  5.4  5.1  4.7  4.4  4.0  3.6  3.3
 39  8.0  7.8  7.4  7.1  6.7  6.4  6.0  5.7  5.3  5.0  4.6  4.3  3.9  3.5  3.2
 40  7.8  7.6  7.3  6.9  6.6  6.2  5.9  5.5  5.2  4.8  4.5  4.2  3.8  3.5  3.1
 41  7.6  7.4  7.1  6.8  6.4  6.1  5.8  5.4  5.1  4.7  4.4  4.1  3.7  3.4  3.0
 42  7.4  7.3  6.9  6.6  6.3  6.0  5.6  5.3  5.0  4.6  4.3  4.0  3.6  3.3  3.0
 43  7.3  7.1  6.8  6.5  6.2  5.8  5.5  5.2  4.9  4.5  4.2  3.9  3.6  3.2  2.9
 44  7.1  7.0  6.7  6.3  6.0  5.7  5.4  5.1  4.8  4.4  4.1  3.8  3.5  3.2  2.9
 45  7.0  6.8  6.5  6.2  5.9  5.6  5.3  5.0  4.7  4.3  4.0  3.7  3.4  3.1  2.8
 46  6.8  6.7  6.4  6.1  5.8  5.5  5.2  4.9  4.6  4.3  4.0  3.6  3.3  3.0  2.7
 47  6.7  6.6  6.3  6.0  5.7  5.4  5.1  4.8  4.5  4.2  3.9  3.6  3.3  3.0  2.7
 48  6.6  6.4  6.1  5.8  5.5  5.3  5.0  4.7  4.4  4.1  3.8  3.5  3.2  2.9  2.6
 49  6.4  6.3  6.0  5.7  5.4  5.2  4.9  4.6  4.3  4.0  3.7  3.4  3.1  2.9  2.6
 50  6.3  6.2  5.9  5.6  5.3  5.1  4.8  4.5  4.2  3.9  3.7  3.4  3.1  2.8  2.5

Re: Armour spellcasting penalties

PostPosted: Thursday, 23rd July 2015, 15:49
by Berder
It checks out except I wonder about this line: skill_pen = assp / 12
Where in the crawl code does it divide the penalty by 12?

Re: Armour spellcasting penalties

PostPosted: Thursday, 23rd July 2015, 16:32
by ThreeInvisibleDucks
Berder wrote:It checks out except I wonder about this line: skill_pen = assp / 12
Where in the crawl code does it divide the penalty by 12?

A good question. My quick reading of the code was that calc_spell_power() would return twice the skill level, then multiplied by 6, and as some tests in wizard mode seemed to confirm the results, I just assumed it was correct. It may have been a happy accident that resulted in a good-enough approximation.

Re: Armour spellcasting penalties

PostPosted: Thursday, 23rd July 2015, 17:59
by Berder
calc_spell_power() puts the spellpower through a nonlinear stepdown. I tracked it down once before, and I believe where it's called from raw_spell_fail, the following gets calculated:
pow = (Spellcasting/2 + 2*avg school skill)
stepdown_pow = min(pow, 200, 50*log_2(1 + pow/50))
It's possible to make a direct comparison between encumbrance and magic skill levels, so long as pow < 50, which is most of the time. e.g. spellcasting 20, spell school 20, gives you a power of exactly 50. With that caveat I think it's correct. :)

Re: Armour spellcasting penalties

PostPosted: Thursday, 23rd July 2015, 18:23
by ThreeInvisibleDucks
Ok, thanks. I wasn't surprised it turned out to be more complicated than my simplistic approximation.

Re: Armour spellcasting penalties

PostPosted: Thursday, 23rd July 2015, 18:38
by tasonir
Berder wrote:calc_spell_power() puts the spellpower through a nonlinear stepdown. I tracked it down once before, and I believe where it's called from raw_spell_fail, the following gets calculated:
pow = (Spellcasting/2 + 2*avg school skill)
stepdown_pow = min(pow, 200, 50*log_2(1 + pow/50))
It's possible to make a direct comparison between encumbrance and magic skill levels, so long as pow < 50, which is most of the time. e.g. spellcasting 20, spell school 20, gives you a power of exactly 50. With that caveat I think it's correct. :)

The stepdown on power applies only to spellcasting/spell schools and not int? I thought it applied after your int took effect, which would mean it kicks in a lot earlier. Basically anytime you have 5 #'s on a spell, it's been stepped down, unless it's 50 exactly. So a conjurer with 10 spellcasting, 10 conjurations, and 20 int (a x2 int multiplier) casts IMB, hits 50 exactly, and gets 50 spellpower. But one with 13 conjurations would have had 56 spellpower, and gets reduced to some value I assume is roughly 53 but didn't calculate.

Re: Armour spellcasting penalties

PostPosted: Thursday, 23rd July 2015, 18:50
by ThreeInvisibleDucks
Int does not affect spellpower when the game calculates the chance of spell failure. Specifically, calc_spell_power() is called with apply_intel=false, fail_rate_check=true from raw_spell_fail().