summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarshan Shaligram <dshaligram@users.sourceforge.net>2010-01-04 22:08:57 +0530
committerDarshan Shaligram <dshaligram@users.sourceforge.net>2010-01-04 22:48:24 +0530
commitb1ee54b1fe15e89838f70a64bedd9899b8fb3119 (patch)
tree6b656bb024a13992afa95037574ec2192f7bfdf4
parenta9610912e739807730c57a5f059e1158c4a496f5 (diff)
downloadcrawl-ref-b1ee54b1fe15e89838f70a64bedd9899b8fb3119.tar.gz
crawl-ref-b1ee54b1fe15e89838f70a64bedd9899b8fb3119.zip
Move to a more compile-safe way of defining species skill aptitudes.
This also fixes broken aptitudes after Darts skill was removed.
-rw-r--r--crawl-ref/source/skills2.cc2492
-rwxr-xr-xcrawl-ref/source/util/gen-apt.pl21
2 files changed, 1136 insertions, 1377 deletions
diff --git a/crawl-ref/source/skills2.cc b/crawl-ref/source/skills2.cc
index 6d51291ac8..3dd241f9fd 100644
--- a/crawl-ref/source/skills2.cc
+++ b/crawl-ref/source/skills2.cc
@@ -137,1378 +137,1122 @@ const char *martial_arts_titles[6] =
// The Human aptitude set of 100 for all skills allows to define all other
// species relative to Humans.
-// Traditionally, Spellcasting and In/Evocations formed the exceptions here:
-// Spellcasting skill was more expensive with about 130%, the other two got
-// a discount with about 75%.
-const int spec_skills[NUM_SPECIES][40] =
+struct species_skill_aptitude
{
- { // SP_HUMAN
- 100, // SK_FIGHTING
- 100, // SK_SHORT_BLADES
- 100, // SK_LONG_BLADES
- 100, // SK_AXES
- 100, // SK_MACES_FLAILS
- 100, // SK_POLEARMS
- 100, // SK_STAVES
- 100, // SK_SLINGS
- 100, // SK_BOWS
- 100, // SK_CROSSBOWS
- 100, // unused (was darts)
- 100, // SK_THROWING
- 100, // SK_ARMOUR
- 100, // SK_DODGING
- 100, // SK_STEALTH
- 100, // SK_STABBING
- 100, // SK_SHIELDS
- 100, // SK_TRAPS_DOORS
- 100, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 130, // SK_SPELLCASTING
- 100, // SK_CONJURATIONS
- 100, // SK_ENCHANTMENTS
- 100, // SK_SUMMONINGS
- 100, // SK_NECROMANCY
- 100, // SK_TRANSLOCATIONS
- 100, // SK_TRANSMUTATIONS
- 100, // SK_FIRE_MAGIC
- 100, // SK_ICE_MAGIC
- 100, // SK_AIR_MAGIC
- 100, // SK_EARTH_MAGIC
- 100, // SK_POISON_MAGIC
- 80, // SK_INVOCATIONS
- 80, // SK_EVOCATIONS
- },
-
- { // SP_HIGH_ELF
- 100, // SK_FIGHTING
- 70, // SK_SHORT_BLADES
- 70, // SK_LONG_BLADES
- 130, // SK_AXES
- 150, // SK_MACES_FLAILS
- 150, // SK_POLEARMS
- 100, // SK_STAVES
- 140, // SK_SLINGS
- 60, // SK_BOWS
- 100, // SK_CROSSBOWS
- 90, // unused (was darts)
- 80, // SK_THROWING
- 110, // SK_ARMOUR
- 90, // SK_DODGING
- 90, // SK_STEALTH
- 110, // SK_STABBING
- 110, // SK_SHIELDS
- 100, // SK_TRAPS_DOORS
- 130, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 90, // SK_SPELLCASTING
- 90, // SK_CONJURATIONS
- 70, // SK_ENCHANTMENTS
- 110, // SK_SUMMONINGS
- 130, // SK_NECROMANCY
- 90, // SK_TRANSLOCATIONS
- 90, // SK_TRANSMUTATIONS
- 100, // SK_FIRE_MAGIC
- 100, // SK_ICE_MAGIC
- 70, // SK_AIR_MAGIC
- 130, // SK_EARTH_MAGIC
- 130, // SK_POISON_MAGIC
- 80, // SK_INVOCATIONS
- 80, // SK_EVOCATIONS
- },
-
- { // SP_DEEP_ELF
- 150, // SK_FIGHTING
- 100, // SK_SHORT_BLADES
- 110, // SK_LONG_BLADES
- 150, // SK_AXES
- 170, // SK_MACES_FLAILS
- 170, // SK_POLEARMS
- 100, // SK_STAVES
- 140, // SK_SLINGS
- 80, // SK_BOWS
- 110, // SK_CROSSBOWS
- 80, // unused (was darts)
- 80, // SK_THROWING
- 140, // SK_ARMOUR
- 70, // SK_DODGING
- 70, // SK_STEALTH
- 80, // SK_STABBING
- 140, // SK_SHIELDS
- 100, // SK_TRAPS_DOORS
- 130, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 70, // SK_SPELLCASTING
- 80, // SK_CONJURATIONS
- 50, // SK_ENCHANTMENTS
- 80, // SK_SUMMONINGS
- 70, // SK_NECROMANCY
- 80, // SK_TRANSLOCATIONS
- 80, // SK_TRANSMUTATIONS
- 90, // SK_FIRE_MAGIC
- 90, // SK_ICE_MAGIC
- 80, // SK_AIR_MAGIC
- 100, // SK_EARTH_MAGIC
- 80, // SK_POISON_MAGIC
- 80, // SK_INVOCATIONS
- 70, // SK_EVOCATIONS
- },
-
- { // SP_SLUDGE_ELF
- 80, // SK_FIGHTING
- 110, // SK_SHORT_BLADES
- 110, // SK_LONG_BLADES
- 130, // SK_AXES
- 140, // SK_MACES_FLAILS
- 140, // SK_POLEARMS
- 100, // SK_STAVES
- 100, // SK_SLINGS
- 100, // SK_BOWS
- 100, // SK_CROSSBOWS
- 100, // unused (was darts)
- 70, // SK_THROWING
- 140, // SK_ARMOUR
- 70, // SK_DODGING
- 80, // SK_STEALTH
- 100, // SK_STABBING
- 130, // SK_SHIELDS
- 100, // SK_TRAPS_DOORS
- 80, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 90, // SK_SPELLCASTING
- 130, // SK_CONJURATIONS
- 130, // SK_ENCHANTMENTS
- 90, // SK_SUMMONINGS
- 90, // SK_NECROMANCY
- 100, // SK_TRANSLOCATIONS
- 60, // SK_TRANSMUTATIONS
- 80, // SK_FIRE_MAGIC
- 80, // SK_ICE_MAGIC
- 80, // SK_AIR_MAGIC
- 80, // SK_EARTH_MAGIC
- 80, // SK_POISON_MAGIC
- 80, // SK_INVOCATIONS
- 80, // SK_EVOCATIONS
- },
-
- { // SP_MOUNTAIN_DWARF
- 70, // SK_FIGHTING
- 80, // SK_SHORT_BLADES
- 90, // SK_LONG_BLADES
- 70, // SK_AXES
- 70, // SK_MACES_FLAILS
- 110, // SK_POLEARMS
- 120, // SK_STAVES
- 120, // SK_SLINGS
- 150, // SK_BOWS
- 90, // SK_CROSSBOWS
- 120, // unused (was darts)
- 120, // SK_THROWING
- 60, // SK_ARMOUR
- 110, // SK_DODGING
- 150, // SK_STEALTH
- 130, // SK_STABBING
- 70, // SK_SHIELDS
- 80, // SK_TRAPS_DOORS
- 100, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 210, // SK_SPELLCASTING
- 120, // SK_CONJURATIONS
- 150, // SK_ENCHANTMENTS
- 150, // SK_SUMMONINGS
- 160, // SK_NECROMANCY
- 150, // SK_TRANSLOCATIONS
- 120, // SK_TRANSMUTATIONS
- 70, // SK_FIRE_MAGIC
- 130, // SK_ICE_MAGIC
- 150, // SK_AIR_MAGIC
- 70, // SK_EARTH_MAGIC
- 130, // SK_POISON_MAGIC
- 80, // SK_INVOCATIONS
- 70, // SK_EVOCATIONS
- },
-
- { // SP_HALFLING
- 120, // SK_FIGHTING
- 60, // SK_SHORT_BLADES
- 100, // SK_LONG_BLADES
- 120, // SK_AXES
- 150, // SK_MACES_FLAILS
- 160, // SK_POLEARMS
- 130, // SK_STAVES
- 50, // SK_SLINGS
- 70, // SK_BOWS
- 90, // SK_CROSSBOWS
- 50, // unused (was darts)
- 60, // SK_THROWING
- 150, // SK_ARMOUR
- 70, // SK_DODGING
- 60, // SK_STEALTH
- 70, // SK_STABBING
- 90, // SK_SHIELDS
- 100, // SK_TRAPS_DOORS
- 140, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 170, // SK_SPELLCASTING
- 130, // SK_CONJURATIONS
- 100, // SK_ENCHANTMENTS
- 120, // SK_SUMMONINGS
- 150, // SK_NECROMANCY
- 100, // SK_TRANSLOCATIONS
- 150, // SK_TRANSMUTATIONS
- 100, // SK_FIRE_MAGIC
- 100, // SK_ICE_MAGIC
- 90, // SK_AIR_MAGIC
- 100, // SK_EARTH_MAGIC
- 120, // SK_POISON_MAGIC
- 80, // SK_INVOCATIONS
- 70, // SK_EVOCATIONS
- },
-
- { // SP_HILL_ORC
- 70, // SK_FIGHTING
- 100, // SK_SHORT_BLADES
- 80, // SK_LONG_BLADES
- 70, // SK_AXES
- 80, // SK_MACES_FLAILS
- 80, // SK_POLEARMS
- 110, // SK_STAVES
- 130, // SK_SLINGS
- 120, // SK_BOWS
- 120, // SK_CROSSBOWS
- 130, // unused (was darts)
- 100, // SK_THROWING
- 90, // SK_ARMOUR
- 140, // SK_DODGING
- 150, // SK_STEALTH
- 70, // SK_STABBING
- 80, // SK_SHIELDS
- 100, // SK_TRAPS_DOORS
- 90, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 200, // SK_SPELLCASTING
- 100, // SK_CONJURATIONS
- 120, // SK_ENCHANTMENTS
- 100, // SK_SUMMONINGS
- 100, // SK_NECROMANCY
- 150, // SK_TRANSLOCATIONS
- 160, // SK_TRANSMUTATIONS
- 100, // SK_FIRE_MAGIC
- 100, // SK_ICE_MAGIC
- 150, // SK_AIR_MAGIC
- 100, // SK_EARTH_MAGIC
- 110, // SK_POISON_MAGIC
- 80, // SK_INVOCATIONS
- 80, // SK_EVOCATIONS
- },
-
- { // SP_KOBOLD
- 80, // SK_FIGHTING
- 60, // SK_SHORT_BLADES
- 140, // SK_LONG_BLADES
- 110, // SK_AXES
- 100, // SK_MACES_FLAILS
- 150, // SK_POLEARMS
- 110, // SK_STAVES
- 70, // SK_SLINGS
- 90, // SK_BOWS
- 80, // SK_CROSSBOWS
- 50, // unused (was darts)
- 60, // SK_THROWING
- 140, // SK_ARMOUR
- 70, // SK_DODGING
- 60, // SK_STEALTH
- 70, // SK_STABBING
- 130, // SK_SHIELDS
- 100, // SK_TRAPS_DOORS
- 100, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 140, // SK_SPELLCASTING
- 110, // SK_CONJURATIONS
- 110, // SK_ENCHANTMENTS
- 110, // SK_SUMMONINGS
- 110, // SK_NECROMANCY
- 100, // SK_TRANSLOCATIONS
- 110, // SK_TRANSMUTATIONS
- 100, // SK_FIRE_MAGIC
- 100, // SK_ICE_MAGIC
- 100, // SK_AIR_MAGIC
- 100, // SK_EARTH_MAGIC
- 100, // SK_POISON_MAGIC
- 80, // SK_INVOCATIONS
- 60, // SK_EVOCATIONS
- },
-
- { // SP_MUMMY
- 100, // SK_FIGHTING
- 140, // SK_SHORT_BLADES
- 140, // SK_LONG_BLADES
- 140, // SK_AXES
- 140, // SK_MACES_FLAILS
- 140, // SK_POLEARMS
- 140, // SK_STAVES
- 140, // SK_SLINGS
- 140, // SK_BOWS
- 140, // SK_CROSSBOWS
- 140, // unused (was darts)
- 140, // SK_THROWING
- 140, // SK_ARMOUR
- 140, // SK_DODGING
- 140, // SK_STEALTH
- 140, // SK_STABBING
- 140, // SK_SHIELDS
- 140, // SK_TRAPS_DOORS
- 140, // SK_UNARMED_COMBAT
- 140, // undefined
- 140, // undefined
- 140, // undefined
- 140, // undefined
- 100, // undefined
- 140, // undefined
- 130, // SK_SPELLCASTING
- 140, // SK_CONJURATIONS
- 140, // SK_ENCHANTMENTS
- 140, // SK_SUMMONINGS
- 100, // SK_NECROMANCY
- 140, // SK_TRANSLOCATIONS
- 140, // SK_TRANSMUTATIONS
- 140, // SK_FIRE_MAGIC
- 140, // SK_ICE_MAGIC
- 140, // SK_AIR_MAGIC
- 140, // SK_EARTH_MAGIC
- 140, // SK_POISON_MAGIC
- 110, // SK_INVOCATIONS
- 110, // SK_EVOCATIONS
- },
-
- { // SP_NAGA
- 100, // SK_FIGHTING
- 100, // SK_SHORT_BLADES
- 100, // SK_LONG_BLADES
- 100, // SK_AXES
- 100, // SK_MACES_FLAILS
- 100, // SK_POLEARMS
- 120, // SK_STAVES
- 120, // SK_SLINGS
- 120, // SK_BOWS
- 120, // SK_CROSSBOWS
- 120, // unused (was darts)
- 120, // SK_THROWING
- 150, // SK_ARMOUR
- 150, // SK_DODGING
- 40, // SK_STEALTH
- 100, // SK_STABBING
- 140, // SK_SHIELDS
- 100, // SK_TRAPS_DOORS
- 100, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 130, // SK_SPELLCASTING
- 100, // SK_CONJURATIONS
- 100, // SK_ENCHANTMENTS
- 100, // SK_SUMMONINGS
- 100, // SK_NECROMANCY
- 100, // SK_TRANSLOCATIONS
- 100, // SK_TRANSMUTATIONS
- 100, // SK_FIRE_MAGIC
- 100, // SK_ICE_MAGIC
- 100, // SK_AIR_MAGIC
- 100, // SK_EARTH_MAGIC
- 60, // SK_POISON_MAGIC
- 80, // SK_INVOCATIONS
- 80, // SK_EVOCATIONS
- },
-
- { // SP_OGRE
- 70, // SK_FIGHTING
- 200, // SK_SHORT_BLADES
- 180, // SK_LONG_BLADES
- 180, // SK_AXES
- 90, // SK_MACES_FLAILS
- 110, // SK_POLEARMS
- 120, // SK_STAVES
- 180, // SK_SLINGS
- 180, // SK_BOWS
- 180, // SK_CROSSBOWS
- 180, // unused (was darts)
- 80, // SK_THROWING
- 150, // SK_ARMOUR
- 120, // SK_DODGING
- 150, // SK_STEALTH
- 150, // SK_STABBING
- 120, // SK_SHIELDS
- 150, // SK_TRAPS_DOORS
- 110, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 90, // SK_SPELLCASTING
- 160, // SK_CONJURATIONS
- 160, // SK_ENCHANTMENTS
- 160, // SK_SUMMONINGS
- 160, // SK_NECROMANCY
- 160, // SK_TRANSLOCATIONS
- 160, // SK_TRANSMUTATIONS
- 160, // SK_FIRE_MAGIC
- 160, // SK_ICE_MAGIC
- 160, // SK_AIR_MAGIC
- 160, // SK_EARTH_MAGIC
- 160, // SK_POISON_MAGIC
- 80, // SK_INVOCATIONS
- 120, // SK_EVOCATIONS
- },
-
- { // SP_TROLL
- 140, // SK_FIGHTING
- 150, // SK_SHORT_BLADES
- 150, // SK_LONG_BLADES
- 150, // SK_AXES
- 130, // SK_MACES_FLAILS
- 150, // SK_POLEARMS
- 150, // SK_STAVES
- 180, // SK_SLINGS
- 180, // SK_BOWS
- 180, // SK_CROSSBOWS
- 180, // unused (was darts)
- 130, // SK_THROWING
- 150, // SK_ARMOUR
- 130, // SK_DODGING
- 250, // SK_STEALTH
- 150, // SK_STABBING
- 150, // SK_SHIELDS
- 200, // SK_TRAPS_DOORS
- 100, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 260, // SK_SPELLCASTING
- 160, // SK_CONJURATIONS
- 200, // SK_ENCHANTMENTS
- 160, // SK_SUMMONINGS
- 150, // SK_NECROMANCY
- 160, // SK_TRANSLOCATIONS
- 160, // SK_TRANSMUTATIONS
- 160, // SK_FIRE_MAGIC
- 160, // SK_ICE_MAGIC
- 200, // SK_AIR_MAGIC
- 120, // SK_EARTH_MAGIC
- 160, // SK_POISON_MAGIC
- 110, // SK_INVOCATIONS
- 140, // SK_EVOCATIONS
- },
-
- { // SP_RED_DRACONIAN
- 90, // SK_FIGHTING
- 100, // SK_SHORT_BLADES
- 100, // SK_LONG_BLADES
- 100, // SK_AXES
- 100, // SK_MACES_FLAILS
- 100, // SK_POLEARMS
- 100, // SK_STAVES
- 120, // SK_SLINGS
- 120, // SK_BOWS
- 120, // SK_CROSSBOWS
- 120, // unused (was darts)
- 120, // SK_THROWING
- 200, // SK_ARMOUR
- 120, // SK_DODGING
- 120, // SK_STEALTH
- 100, // SK_STABBING
- 100, // SK_SHIELDS
- 100, // SK_TRAPS_DOORS
- 100, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 130, // SK_SPELLCASTING
- 100, // SK_CONJURATIONS
- 120, // SK_ENCHANTMENTS
- 100, // SK_SUMMONINGS
- 100, // SK_NECROMANCY
- 100, // SK_TRANSLOCATIONS
- 100, // SK_TRANSMUTATIONS
- 70, // SK_FIRE_MAGIC
- 140, // SK_ICE_MAGIC
- 100, // SK_AIR_MAGIC
- 100, // SK_EARTH_MAGIC
- 100, // SK_POISON_MAGIC
- 80, // SK_INVOCATIONS
- 80, // SK_EVOCATIONS
- },
-
- { // SP_WHITE_DRACONIAN
- 90, // SK_FIGHTING
- 100, // SK_SHORT_BLADES
- 100, // SK_LONG_BLADES
- 100, // SK_AXES
- 100, // SK_MACES_FLAILS
- 100, // SK_POLEARMS
- 100, // SK_STAVES
- 120, // SK_SLINGS
- 120, // SK_BOWS
- 120, // SK_CROSSBOWS
- 120, // unused (was darts)
- 120, // SK_THROWING
- 200, // SK_ARMOUR
- 120, // SK_DODGING
- 120, // SK_STEALTH
- 100, // SK_STABBING
- 100, // SK_SHIELDS
- 100, // SK_TRAPS_DOORS
- 100, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 130, // SK_SPELLCASTING
- 100, // SK_CONJURATIONS
- 120, // SK_ENCHANTMENTS
- 100, // SK_SUMMONINGS
- 100, // SK_NECROMANCY
- 100, // SK_TRANSLOCATIONS
- 100, // SK_TRANSMUTATIONS
- 140, // SK_FIRE_MAGIC
- 70, // SK_ICE_MAGIC
- 100, // SK_AIR_MAGIC
- 100, // SK_EARTH_MAGIC
- 100, // SK_POISON_MAGIC
- 80, // SK_INVOCATIONS
- 80, // SK_EVOCATIONS
- },
-
- { // SP_GREEN_DRACONIAN
- 90, // SK_FIGHTING
- 100, // SK_SHORT_BLADES
- 100, // SK_LONG_BLADES
- 100, // SK_AXES
- 100, // SK_MACES_FLAILS
- 100, // SK_POLEARMS
- 100, // SK_STAVES
- 120, // SK_SLINGS
- 120, // SK_BOWS
- 120, // SK_CROSSBOWS
- 120, // unused (was darts)
- 120, // SK_THROWING
- 200, // SK_ARMOUR
- 120, // SK_DODGING
- 120, // SK_STEALTH
- 100, // SK_STABBING
- 100, // SK_SHIELDS
- 100, // SK_TRAPS_DOORS
- 100, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 130, // SK_SPELLCASTING
- 100, // SK_CONJURATIONS
- 120, // SK_ENCHANTMENTS
- 100, // SK_SUMMONINGS
- 100, // SK_NECROMANCY
- 100, // SK_TRANSLOCATIONS
- 100, // SK_TRANSMUTATIONS
- 100, // SK_FIRE_MAGIC
- 100, // SK_ICE_MAGIC
- 100, // SK_AIR_MAGIC
- 100, // SK_EARTH_MAGIC
- 70, // SK_POISON_MAGIC
- 80, // SK_INVOCATIONS
- 80, // SK_EVOCATIONS
- },
-
- { // SP_YELLOW_DRACONIAN
- 90, // SK_FIGHTING
- 100, // SK_SHORT_BLADES
- 100, // SK_LONG_BLADES
- 100, // SK_AXES
- 100, // SK_MACES_FLAILS
- 100, // SK_POLEARMS
- 100, // SK_STAVES
- 120, // SK_SLINGS
- 120, // SK_BOWS
- 120, // SK_CROSSBOWS
- 120, // unused (was darts)
- 120, // SK_THROWING
- 200, // SK_ARMOUR
- 120, // SK_DODGING
- 120, // SK_STEALTH
- 100, // SK_STABBING
- 100, // SK_SHIELDS
- 100, // SK_TRAPS_DOORS
- 100, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 130, // SK_SPELLCASTING
- 100, // SK_CONJURATIONS
- 120, // SK_ENCHANTMENTS
- 100, // SK_SUMMONINGS
- 100, // SK_NECROMANCY
- 100, // SK_TRANSLOCATIONS
- 100, // SK_TRANSMUTATIONS
- 100, // SK_FIRE_MAGIC
- 100, // SK_ICE_MAGIC
- 100, // SK_AIR_MAGIC
- 100, // SK_EARTH_MAGIC
- 100, // SK_POISON_MAGIC
- 80, // SK_INVOCATIONS
- 80, // SK_EVOCATIONS
- },
-
- { // SP_GREY_DRACONIAN
- 90, // SK_FIGHTING
- 100, // SK_SHORT_BLADES
- 100, // SK_LONG_BLADES
- 100, // SK_AXES
- 100, // SK_MACES_FLAILS
- 100, // SK_POLEARMS
- 100, // SK_STAVES
- 120, // SK_SLINGS
- 120, // SK_BOWS
- 120, // SK_CROSSBOWS
- 120, // unused (was darts)
- 120, // SK_THROWING
- 200, // SK_ARMOUR
- 120, // SK_DODGING
- 120, // SK_STEALTH
- 100, // SK_STABBING
- 100, // SK_SHIELDS
- 100, // SK_TRAPS_DOORS
- 100, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 130, // SK_SPELLCASTING
- 100, // SK_CONJURATIONS
- 120, // SK_ENCHANTMENTS
- 100, // SK_SUMMONINGS
- 100, // SK_NECROMANCY
- 100, // SK_TRANSLOCATIONS
- 100, // SK_TRANSMUTATIONS
- 100, // SK_FIRE_MAGIC
- 100, // SK_ICE_MAGIC
- 100, // SK_AIR_MAGIC
- 100, // SK_EARTH_MAGIC
- 100, // SK_POISON_MAGIC
- 80, // SK_INVOCATIONS
- 80, // SK_EVOCATIONS
- },
-
- { // SP_BLACK_DRACONIAN
- 90, // SK_FIGHTING
- 100, // SK_SHORT_BLADES
- 100, // SK_LONG_BLADES
- 100, // SK_AXES
- 100, // SK_MACES_FLAILS
- 100, // SK_POLEARMS
- 100, // SK_STAVES
- 120, // SK_SLINGS
- 120, // SK_BOWS
- 120, // SK_CROSSBOWS
- 120, // unused (was darts)
- 120, // SK_THROWING
- 200, // SK_ARMOUR
- 120, // SK_DODGING
- 120, // SK_STEALTH
- 100, // SK_STABBING
- 100, // SK_SHIELDS
- 100, // SK_TRAPS_DOORS
- 100, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 130, // SK_SPELLCASTING
- 100, // SK_CONJURATIONS
- 120, // SK_ENCHANTMENTS
- 100, // SK_SUMMONINGS
- 100, // SK_NECROMANCY
- 100, // SK_TRANSLOCATIONS
- 100, // SK_TRANSMUTATIONS
- 100, // SK_FIRE_MAGIC
- 100, // SK_ICE_MAGIC
- 70, // SK_AIR_MAGIC
- 140, // SK_EARTH_MAGIC
- 100, // SK_POISON_MAGIC
- 80, // SK_INVOCATIONS
- 80, // SK_EVOCATIONS
- },
-
- { // SP_PURPLE_DRACONIAN
- 90, // SK_FIGHTING
- 100, // SK_SHORT_BLADES
- 100, // SK_LONG_BLADES
- 100, // SK_AXES
- 100, // SK_MACES_FLAILS
- 100, // SK_POLEARMS
- 100, // SK_STAVES
- 120, // SK_SLINGS
- 120, // SK_BOWS
- 120, // SK_CROSSBOWS
- 120, // unused (was darts)
- 120, // SK_THROWING
- 200, // SK_ARMOUR
- 120, // SK_DODGING
- 120, // SK_STEALTH
- 100, // SK_STABBING
- 100, // SK_SHIELDS
- 100, // SK_TRAPS_DOORS
- 100, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 90, // SK_SPELLCASTING
- 100, // SK_CONJURATIONS
- 90, // SK_ENCHANTMENTS
- 100, // SK_SUMMONINGS
- 100, // SK_NECROMANCY
- 100, // SK_TRANSLOCATIONS
- 100, // SK_TRANSMUTATIONS
- 100, // SK_FIRE_MAGIC
- 100, // SK_ICE_MAGIC
- 100, // SK_AIR_MAGIC
- 100, // SK_EARTH_MAGIC
- 100, // SK_POISON_MAGIC
- 80, // SK_INVOCATIONS
- 70, // SK_EVOCATIONS
- },
-
- { // SP_MOTTLED_DRACONIAN
- 90, // SK_FIGHTING
- 100, // SK_SHORT_BLADES
- 100, // SK_LONG_BLADES
- 100, // SK_AXES
- 100, // SK_MACES_FLAILS
- 100, // SK_POLEARMS
- 100, // SK_STAVES
- 120, // SK_SLINGS
- 120, // SK_BOWS
- 120, // SK_CROSSBOWS
- 120, // unused (was darts)
- 120, // SK_THROWING
- 200, // SK_ARMOUR
- 120, // SK_DODGING
- 120, // SK_STEALTH
- 100, // SK_STABBING
- 100, // SK_SHIELDS
- 100, // SK_TRAPS_DOORS
- 100, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 130, // SK_SPELLCASTING
- 100, // SK_CONJURATIONS
- 120, // SK_ENCHANTMENTS
- 100, // SK_SUMMONINGS
- 100, // SK_NECROMANCY
- 100, // SK_TRANSLOCATIONS
- 100, // SK_TRANSMUTATIONS
- 80, // SK_FIRE_MAGIC
- 100, // SK_ICE_MAGIC
- 100, // SK_AIR_MAGIC
- 100, // SK_EARTH_MAGIC
- 100, // SK_POISON_MAGIC
- 80, // SK_INVOCATIONS
- 80, // SK_EVOCATIONS
- },
-
- { // SP_PALE_DRACONIAN
- 90, // SK_FIGHTING
- 100, // SK_SHORT_BLADES
- 100, // SK_LONG_BLADES
- 100, // SK_AXES
- 100, // SK_MACES_FLAILS
- 100, // SK_POLEARMS
- 100, // SK_STAVES
- 120, // SK_SLINGS
- 120, // SK_BOWS
- 120, // SK_CROSSBOWS
- 120, // unused (was darts)
- 120, // SK_THROWING
- 200, // SK_ARMOUR
- 120, // SK_DODGING
- 120, // SK_STEALTH
- 100, // SK_STABBING
- 100, // SK_SHIELDS
- 100, // SK_TRAPS_DOORS
- 100, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 130, // SK_SPELLCASTING
- 100, // SK_CONJURATIONS
- 120, // SK_ENCHANTMENTS
- 100, // SK_SUMMONINGS
- 100, // SK_NECROMANCY
- 100, // SK_TRANSLOCATIONS
- 100, // SK_TRANSMUTATIONS
- 90, // SK_FIRE_MAGIC
- 100, // SK_ICE_MAGIC
- 90, // SK_AIR_MAGIC
- 100, // SK_EARTH_MAGIC
- 100, // SK_POISON_MAGIC
- 80, // SK_INVOCATIONS
- 70, // SK_EVOCATIONS
- },
-
- { // SP_BASE_DRACONIAN
- 90, // SK_FIGHTING
- 100, // SK_SHORT_BLADES
- 100, // SK_LONG_BLADES
- 100, // SK_AXES
- 100, // SK_MACES_FLAILS
- 100, // SK_POLEARMS
- 100, // SK_STAVES
- 120, // SK_SLINGS
- 120, // SK_BOWS
- 120, // SK_CROSSBOWS
- 120, // unused (was darts)
- 120, // SK_THROWING
- 200, // SK_ARMOUR
- 120, // SK_DODGING
- 120, // SK_STEALTH
- 100, // SK_STABBING
- 100, // SK_SHIELDS
- 100, // SK_TRAPS_DOORS
- 100, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 130, // SK_SPELLCASTING
- 100, // SK_CONJURATIONS
- 120, // SK_ENCHANTMENTS
- 100, // SK_SUMMONINGS
- 100, // SK_NECROMANCY
- 100, // SK_TRANSLOCATIONS
- 100, // SK_TRANSMUTATIONS
- 100, // SK_FIRE_MAGIC
- 100, // SK_ICE_MAGIC
- 100, // SK_AIR_MAGIC
- 100, // SK_EARTH_MAGIC
- 100, // SK_POISON_MAGIC
- 80, // SK_INVOCATIONS
- 80, // SK_EVOCATIONS
- },
-
- { // SP_CENTAUR
- 100, // SK_FIGHTING
- 120, // SK_SHORT_BLADES
- 110, // SK_LONG_BLADES
- 110, // SK_AXES
- 110, // SK_MACES_FLAILS
- 110, // SK_POLEARMS
- 110, // SK_STAVES
- 80, // SK_SLINGS
- 60, // SK_BOWS
- 90, // SK_CROSSBOWS
- 80, // unused (was darts)
- 60, // SK_THROWING
- 180, // SK_ARMOUR
- 170, // SK_DODGING
- 200, // SK_STEALTH
- 170, // SK_STABBING
- 180, // SK_SHIELDS
- 150, // SK_TRAPS_DOORS
- 100, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 180, // SK_SPELLCASTING
- 120, // SK_CONJURATIONS
- 110, // SK_ENCHANTMENTS
- 120, // SK_SUMMONINGS
- 120, // SK_NECROMANCY
- 120, // SK_TRANSLOCATIONS
- 120, // SK_TRANSMUTATIONS
- 120, // SK_FIRE_MAGIC
- 120, // SK_ICE_MAGIC
- 120, // SK_AIR_MAGIC
- 120, // SK_EARTH_MAGIC
- 130, // SK_POISON_MAGIC
- 80, // SK_INVOCATIONS
- 100, // SK_EVOCATIONS
- },
-
- { // SP_DEMIGOD
- 110, // SK_FIGHTING
- 110, // SK_SHORT_BLADES
- 110, // SK_LONG_BLADES
- 110, // SK_AXES
- 110, // SK_MACES_FLAILS
- 110, // SK_POLEARMS
- 110, // SK_STAVES
- 110, // SK_SLINGS
- 110, // SK_BOWS
- 110, // SK_CROSSBOWS
- 110, // unused (was darts)
- 110, // SK_THROWING
- 110, // SK_ARMOUR
- 110, // SK_DODGING
- 110, // SK_STEALTH
- 110, // SK_STABBING
- 110, // SK_SHIELDS
- 110, // SK_TRAPS_DOORS
- 110, // SK_UNARMED_COMBAT
- 110, // undefined
- 110, // undefined
- 110, // undefined
- 100, // undefined
- 110, // undefined
- 110, // undefined
- 140, // SK_SPELLCASTING
- 110, // SK_CONJURATIONS
- 110, // SK_ENCHANTMENTS
- 110, // SK_SUMMONINGS
- 110, // SK_NECROMANCY
- 110, // SK_TRANSLOCATIONS
- 110, // SK_TRANSMUTATIONS
- 110, // SK_FIRE_MAGIC
- 110, // SK_ICE_MAGIC
- 110, // SK_AIR_MAGIC
- 110, // SK_EARTH_MAGIC
- 110, // SK_POISON_MAGIC
- 80, // SK_INVOCATIONS
- 80, // SK_EVOCATIONS
- },
-
- { // SP_SPRIGGAN
- 150, // SK_FIGHTING
- 90, // SK_SHORT_BLADES
- 140, // SK_LONG_BLADES
- 150, // SK_AXES
- 160, // SK_MACES_FLAILS
- 180, // SK_POLEARMS
- 150, // SK_STAVES
- 70, // SK_SLINGS
- 70, // SK_BOWS
- 100, // SK_CROSSBOWS
- 70, // unused (was darts)
- 90, // SK_THROWING
- 170, // SK_ARMOUR
- 50, // SK_DODGING
- 50, // SK_STEALTH
- 50, // SK_STABBING
- 180, // SK_SHIELDS
- 60, // SK_TRAPS_DOORS
- 130, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 80, // SK_SPELLCASTING
- 160, // SK_CONJURATIONS
- 50, // SK_ENCHANTMENTS
- 150, // SK_SUMMONINGS
- 120, // SK_NECROMANCY
- 50, // SK_TRANSLOCATIONS
- 60, // SK_TRANSMUTATIONS
- 140, // SK_FIRE_MAGIC
- 140, // SK_ICE_MAGIC
- 120, // SK_AIR_MAGIC
- 120, // SK_EARTH_MAGIC
- 100, // SK_POISON_MAGIC
- 100, // SK_INVOCATIONS
- 50, // SK_EVOCATIONS
- },
-
- { // SP_MINOTAUR
- 70, // SK_FIGHTING
- 70, // SK_SHORT_BLADES
- 70, // SK_LONG_BLADES
- 70, // SK_AXES
- 70, // SK_MACES_FLAILS
- 70, // SK_POLEARMS
- 70, // SK_STAVES
- 90, // SK_SLINGS
- 90, // SK_BOWS
- 90, // SK_CROSSBOWS
- 90, // unused (was darts)
- 90, // SK_THROWING
- 80, // SK_ARMOUR
- 80, // SK_DODGING
- 130, // SK_STEALTH
- 100, // SK_STABBING
- 80, // SK_SHIELDS
- 120, // SK_TRAPS_DOORS
- 80, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 230, // SK_SPELLCASTING
- 170, // SK_CONJURATIONS
- 170, // SK_ENCHANTMENTS
- 170, // SK_SUMMONINGS
- 170, // SK_NECROMANCY
- 170, // SK_TRANSLOCATIONS
- 170, // SK_TRANSMUTATIONS
- 170, // SK_FIRE_MAGIC
- 170, // SK_ICE_MAGIC
- 170, // SK_AIR_MAGIC
- 170, // SK_EARTH_MAGIC
- 170, // SK_POISON_MAGIC
- 100, // SK_INVOCATIONS
- 130, // SK_EVOCATIONS
- },
-
- { // SP_DEMONSPAWN
- 100, // SK_FIGHTING
- 110, // SK_SHORT_BLADES
- 110, // SK_LONG_BLADES
- 110, // SK_AXES
- 110, // SK_MACES_FLAILS
- 110, // SK_POLEARMS
- 110, // SK_STAVES
- 110, // SK_SLINGS
- 110, // SK_BOWS
- 110, // SK_CROSSBOWS
- 110, // unused (was darts)
- 110, // SK_THROWING
- 110, // SK_ARMOUR
- 110, // SK_DODGING
- 110, // SK_STEALTH
- 110, // SK_STABBING
- 110, // SK_SHIELDS
- 110, // SK_TRAPS_DOORS
- 110, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 130, // SK_SPELLCASTING
- 100, // SK_CONJURATIONS
- 110, // SK_ENCHANTMENTS
- 100, // SK_SUMMONINGS
- 90, // SK_NECROMANCY
- 110, // SK_TRANSLOCATIONS
- 110, // SK_TRANSMUTATIONS
- 100, // SK_FIRE_MAGIC
- 110, // SK_ICE_MAGIC
- 110, // SK_AIR_MAGIC
- 110, // SK_EARTH_MAGIC
- 100, // SK_POISON_MAGIC
- 60, // SK_INVOCATIONS
- 80, // SK_EVOCATIONS
- },
-
- { // SP_GHOUL
- 80, // SK_FIGHTING
- 110, // SK_SHORT_BLADES
- 110, // SK_LONG_BLADES
- 110, // SK_AXES
- 110, // SK_MACES_FLAILS
- 110, // SK_POLEARMS
- 110, // SK_STAVES
- 130, // SK_SLINGS
- 130, // SK_BOWS
- 130, // SK_CROSSBOWS
- 130, // unused (was darts)
- 130, // SK_THROWING
- 110, // SK_ARMOUR
- 110, // SK_DODGING
- 80, // SK_STEALTH
- 100, // SK_STABBING
- 110, // SK_SHIELDS
- 120, // SK_TRAPS_DOORS
- 80, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 160, // SK_SPELLCASTING
- 130, // SK_CONJURATIONS
- 130, // SK_ENCHANTMENTS
- 120, // SK_SUMMONINGS
- 100, // SK_NECROMANCY
- 120, // SK_TRANSLOCATIONS
- 120, // SK_TRANSMUTATIONS
- 150, // SK_FIRE_MAGIC
- 90, // SK_ICE_MAGIC
- 150, // SK_AIR_MAGIC
- 90, // SK_EARTH_MAGIC
- 100, // SK_POISON_MAGIC
- 80, // SK_INVOCATIONS
- 100, // SK_EVOCATIONS
- },
-
- { // SP_KENKU
- 100, // SK_FIGHTING
- 80, // SK_SHORT_BLADES
- 80, // SK_LONG_BLADES
- 80, // SK_AXES
- 80, // SK_MACES_FLAILS
- 80, // SK_POLEARMS
- 80, // SK_STAVES
- 100, // SK_SLINGS
- 80, // SK_BOWS
- 80, // SK_CROSSBOWS
- 90, // unused (was darts)
- 90, // SK_THROWING
- 90, // SK_ARMOUR
- 90, // SK_DODGING
- 100, // SK_STEALTH
- 80, // SK_STABBING
- 100, // SK_SHIELDS
- 100, // SK_TRAPS_DOORS
- 80, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 130, // SK_SPELLCASTING
- 60, // SK_CONJURATIONS
- 160, // SK_ENCHANTMENTS
- 70, // SK_SUMMONINGS
- 80, // SK_NECROMANCY
- 150, // SK_TRANSLOCATIONS
- 150, // SK_TRANSMUTATIONS
- 90, // SK_FIRE_MAGIC
- 120, // SK_ICE_MAGIC
- 90, // SK_AIR_MAGIC
- 120, // SK_EARTH_MAGIC
- 100, // SK_POISON_MAGIC
- 120, // SK_INVOCATIONS
- 80, // SK_EVOCATIONS
- },
-
- { // SP_MERFOLK
- 80, // SK_FIGHTING
- 70, // SK_SHORT_BLADES
- 90, // SK_LONG_BLADES
- 140, // SK_AXES
- 150, // SK_MACES_FLAILS
- 50, // SK_POLEARMS
- 130, // SK_STAVES
- 150, // SK_SLINGS
- 140, // SK_BOWS
- 140, // SK_CROSSBOWS
- 100, // unused (was darts)
- 100, // SK_THROWING
- 160, // SK_ARMOUR
- 60, // SK_DODGING
- 90, // SK_STEALTH
- 70, // SK_STABBING
- 100, // SK_SHIELDS
- 120, // SK_TRAPS_DOORS
- 90, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 130, // SK_SPELLCASTING
- 140, // SK_CONJURATIONS
- 90, // SK_ENCHANTMENTS
- 100, // SK_SUMMONINGS
- 150, // SK_NECROMANCY
- 140, // SK_TRANSLOCATIONS
- 60, // SK_TRANSMUTATIONS
- 160, // SK_FIRE_MAGIC
- 80, // SK_ICE_MAGIC
- 150, // SK_AIR_MAGIC
- 150, // SK_EARTH_MAGIC
- 80, // SK_POISON_MAGIC
- 80, // SK_INVOCATIONS
- 80, // SK_EVOCATIONS
- },
-
- { // SP_VAMPIRE
- 110, // SK_FIGHTING
- 90, // SK_SHORT_BLADES
- 100, // SK_LONG_BLADES
- 110, // SK_AXES
- 140, // SK_MACES_FLAILS
- 110, // SK_POLEARMS
- 140, // SK_STAVES
- 140, // SK_SLINGS
- 140, // SK_BOWS
- 140, // SK_CROSSBOWS
- 140, // unused (was darts)
- 140, // SK_THROWING
- 140, // SK_ARMOUR
- 90, // SK_DODGING
- 50, // SK_STEALTH
- 90, // SK_STABBING
- 110, // SK_SHIELDS
- 100, // SK_TRAPS_DOORS
- 90, // SK_UNARMED_COMBAT
- 140, // undefined
- 140, // undefined
- 140, // undefined
- 140, // undefined
- 100, // undefined
- 140, // undefined
- 130, // SK_SPELLCASTING
- 160, // SK_CONJURATIONS
- 90, // SK_ENCHANTMENTS
- 100, // SK_SUMMONINGS
- 90, // SK_NECROMANCY
- 140, // SK_TRANSLOCATIONS
- 90, // SK_TRANSMUTATIONS
- 140, // SK_FIRE_MAGIC
- 100, // SK_ICE_MAGIC
- 100, // SK_AIR_MAGIC
- 120, // SK_EARTH_MAGIC
- 120, // SK_POISON_MAGIC
- 120, // SK_INVOCATIONS
- 90, // SK_EVOCATIONS
- },
-
- { // SP_DEEP_DWARF
- 110, // SK_FIGHTING
- 120, // SK_SHORT_BLADES
- 100, // SK_LONG_BLADES
- 90, // SK_AXES
- 100, // SK_MACES_FLAILS
- 120, // SK_POLEARMS
- 110, // SK_STAVES
- 90, // SK_SLINGS
- 180, // SK_BOWS
- 90, // SK_CROSSBOWS
- 120, // unused (was darts)
- 120, // SK_THROWING
- 90, // SK_ARMOUR
- 90, // SK_DODGING
- 70, // SK_STEALTH
- 110, // SK_STABBING
- 90, // SK_SHIELDS
- 80, // SK_TRAPS_DOORS
- 120, // SK_UNARMED_COMBAT
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 100, // undefined
- 160, // SK_SPELLCASTING
- 120, // SK_CONJURATIONS
- 120, // SK_ENCHANTMENTS
- 110, // SK_SUMMONINGS
- 80, // SK_NECROMANCY
- 90, // SK_TRANSLOCATIONS
- 120, // SK_TRANSMUTATION
- 110, // SK_FIRE_MAGIC
- 110, // SK_ICE_MAGIC
- 170, // SK_AIR_MAGIC
- 60, // SK_EARTH_MAGIC
- 130, // SK_POISON_MAGIC
- 60, // SK_INVOCATIONS
- 50, // SK_EVOCATIONS
- },
-
- // SP_HILL_DWARF placeholder.
- {
- },
-
- // SP_ELF placeholder.
- {
- },
-
- // SP_OGRE_MAGE placeholder.
- {
- },
-
- // SP_GREY_ELF placeholder.
- {
- },
-
- // SP_GNOME placeholder.
+ species_type species;
+ skill_type skill;
+ int aptitude;
+
+ species_skill_aptitude(species_type _species,
+ skill_type _skill,
+ int _aptitude)
+ : species(_species), skill(_skill), aptitude(_aptitude)
{
}
};
+static inline species_skill_aptitude APT(species_type sp,
+ skill_type sk,
+ int aptitude)
+{
+ return species_skill_aptitude(sp, sk, aptitude);
+}
+static const species_skill_aptitude species_skill_aptitudes[] =
+{
+ // SP_HUMAN
+ APT(SP_HUMAN, SK_FIGHTING, 100),
+ APT(SP_HUMAN, SK_SHORT_BLADES, 100),
+ APT(SP_HUMAN, SK_LONG_BLADES, 100),
+ APT(SP_HUMAN, SK_AXES, 100),
+ APT(SP_HUMAN, SK_MACES_FLAILS, 100),
+ APT(SP_HUMAN, SK_POLEARMS, 100),
+ APT(SP_HUMAN, SK_STAVES, 100),
+ APT(SP_HUMAN, SK_SLINGS, 100),
+ APT(SP_HUMAN, SK_BOWS, 100),
+ APT(SP_HUMAN, SK_CROSSBOWS, 100),
+ APT(SP_HUMAN, SK_THROWING, 100),
+ APT(SP_HUMAN, SK_ARMOUR, 100),
+ APT(SP_HUMAN, SK_DODGING, 100),
+ APT(SP_HUMAN, SK_STEALTH, 100),
+ APT(SP_HUMAN, SK_STABBING, 100),
+ APT(SP_HUMAN, SK_SHIELDS, 100),
+ APT(SP_HUMAN, SK_TRAPS_DOORS, 100),
+ APT(SP_HUMAN, SK_UNARMED_COMBAT, 100),
+ APT(SP_HUMAN, SK_SPELLCASTING, 130),
+ APT(SP_HUMAN, SK_CONJURATIONS, 100),
+ APT(SP_HUMAN, SK_ENCHANTMENTS, 100),
+ APT(SP_HUMAN, SK_SUMMONINGS, 100),
+ APT(SP_HUMAN, SK_NECROMANCY, 100),
+ APT(SP_HUMAN, SK_TRANSLOCATIONS, 100),
+ APT(SP_HUMAN, SK_TRANSMUTATIONS, 100),
+ APT(SP_HUMAN, SK_FIRE_MAGIC, 100),
+ APT(SP_HUMAN, SK_ICE_MAGIC, 100),
+ APT(SP_HUMAN, SK_AIR_MAGIC, 100),
+ APT(SP_HUMAN, SK_EARTH_MAGIC, 100),
+ APT(SP_HUMAN, SK_POISON_MAGIC, 100),
+ APT(SP_HUMAN, SK_INVOCATIONS, 80),
+ APT(SP_HUMAN, SK_EVOCATIONS, 80),
+
+ // SP_HIGH_ELF
+ APT(SP_HIGH_ELF, SK_FIGHTING, 100),
+ APT(SP_HIGH_ELF, SK_SHORT_BLADES, 70),
+ APT(SP_HIGH_ELF, SK_LONG_BLADES, 70),
+ APT(SP_HIGH_ELF, SK_AXES, 130),
+ APT(SP_HIGH_ELF, SK_MACES_FLAILS, 150),
+ APT(SP_HIGH_ELF, SK_POLEARMS, 150),
+ APT(SP_HIGH_ELF, SK_STAVES, 100),
+ APT(SP_HIGH_ELF, SK_SLINGS, 140),
+ APT(SP_HIGH_ELF, SK_BOWS, 60),
+ APT(SP_HIGH_ELF, SK_CROSSBOWS, 100),
+ APT(SP_HIGH_ELF, SK_THROWING, 80),
+ APT(SP_HIGH_ELF, SK_ARMOUR, 110),
+ APT(SP_HIGH_ELF, SK_DODGING, 90),
+ APT(SP_HIGH_ELF, SK_STEALTH, 90),
+ APT(SP_HIGH_ELF, SK_STABBING, 110),
+ APT(SP_HIGH_ELF, SK_SHIELDS, 110),
+ APT(SP_HIGH_ELF, SK_TRAPS_DOORS, 100),
+ APT(SP_HIGH_ELF, SK_UNARMED_COMBAT, 130),
+ APT(SP_HIGH_ELF, SK_SPELLCASTING, 90),
+ APT(SP_HIGH_ELF, SK_CONJURATIONS, 90),
+ APT(SP_HIGH_ELF, SK_ENCHANTMENTS, 70),
+ APT(SP_HIGH_ELF, SK_SUMMONINGS, 110),
+ APT(SP_HIGH_ELF, SK_NECROMANCY, 130),
+ APT(SP_HIGH_ELF, SK_TRANSLOCATIONS, 90),
+ APT(SP_HIGH_ELF, SK_TRANSMUTATIONS, 90),
+ APT(SP_HIGH_ELF, SK_FIRE_MAGIC, 100),
+ APT(SP_HIGH_ELF, SK_ICE_MAGIC, 100),
+ APT(SP_HIGH_ELF, SK_AIR_MAGIC, 70),
+ APT(SP_HIGH_ELF, SK_EARTH_MAGIC, 130),
+ APT(SP_HIGH_ELF, SK_POISON_MAGIC, 130),
+ APT(SP_HIGH_ELF, SK_INVOCATIONS, 80),
+ APT(SP_HIGH_ELF, SK_EVOCATIONS, 80),
+
+ // SP_DEEP_ELF
+ APT(SP_DEEP_ELF, SK_FIGHTING, 150),
+ APT(SP_DEEP_ELF, SK_SHORT_BLADES, 100),
+ APT(SP_DEEP_ELF, SK_LONG_BLADES, 110),
+ APT(SP_DEEP_ELF, SK_AXES, 150),
+ APT(SP_DEEP_ELF, SK_MACES_FLAILS, 170),
+ APT(SP_DEEP_ELF, SK_POLEARMS, 170),
+ APT(SP_DEEP_ELF, SK_STAVES, 100),
+ APT(SP_DEEP_ELF, SK_SLINGS, 140),
+ APT(SP_DEEP_ELF, SK_BOWS, 80),
+ APT(SP_DEEP_ELF, SK_CROSSBOWS, 110),
+ APT(SP_DEEP_ELF, SK_THROWING, 80),
+ APT(SP_DEEP_ELF, SK_ARMOUR, 140),
+ APT(SP_DEEP_ELF, SK_DODGING, 70),
+ APT(SP_DEEP_ELF, SK_STEALTH, 70),
+ APT(SP_DEEP_ELF, SK_STABBING, 80),
+ APT(SP_DEEP_ELF, SK_SHIELDS, 140),
+ APT(SP_DEEP_ELF, SK_TRAPS_DOORS, 100),
+ APT(SP_DEEP_ELF, SK_UNARMED_COMBAT, 130),
+ APT(SP_DEEP_ELF, SK_SPELLCASTING, 70),
+ APT(SP_DEEP_ELF, SK_CONJURATIONS, 80),
+ APT(SP_DEEP_ELF, SK_ENCHANTMENTS, 50),
+ APT(SP_DEEP_ELF, SK_SUMMONINGS, 80),
+ APT(SP_DEEP_ELF, SK_NECROMANCY, 70),
+ APT(SP_DEEP_ELF, SK_TRANSLOCATIONS, 80),
+ APT(SP_DEEP_ELF, SK_TRANSMUTATIONS, 80),
+ APT(SP_DEEP_ELF, SK_FIRE_MAGIC, 90),
+ APT(SP_DEEP_ELF, SK_ICE_MAGIC, 90),
+ APT(SP_DEEP_ELF, SK_AIR_MAGIC, 80),
+ APT(SP_DEEP_ELF, SK_EARTH_MAGIC, 100),
+ APT(SP_DEEP_ELF, SK_POISON_MAGIC, 80),
+ APT(SP_DEEP_ELF, SK_INVOCATIONS, 80),
+ APT(SP_DEEP_ELF, SK_EVOCATIONS, 70),
+
+ // SP_SLUDGE_ELF
+ APT(SP_SLUDGE_ELF, SK_FIGHTING, 80),
+ APT(SP_SLUDGE_ELF, SK_SHORT_BLADES, 110),
+ APT(SP_SLUDGE_ELF, SK_LONG_BLADES, 110),
+ APT(SP_SLUDGE_ELF, SK_AXES, 130),
+ APT(SP_SLUDGE_ELF, SK_MACES_FLAILS, 140),
+ APT(SP_SLUDGE_ELF, SK_POLEARMS, 140),
+ APT(SP_SLUDGE_ELF, SK_STAVES, 100),
+ APT(SP_SLUDGE_ELF, SK_SLINGS, 100),
+ APT(SP_SLUDGE_ELF, SK_BOWS, 100),
+ APT(SP_SLUDGE_ELF, SK_CROSSBOWS, 100),
+ APT(SP_SLUDGE_ELF, SK_THROWING, 70),
+ APT(SP_SLUDGE_ELF, SK_ARMOUR, 140),
+ APT(SP_SLUDGE_ELF, SK_DODGING, 70),
+ APT(SP_SLUDGE_ELF, SK_STEALTH, 80),
+ APT(SP_SLUDGE_ELF, SK_STABBING, 100),
+ APT(SP_SLUDGE_ELF, SK_SHIELDS, 130),
+ APT(SP_SLUDGE_ELF, SK_TRAPS_DOORS, 100),
+ APT(SP_SLUDGE_ELF, SK_UNARMED_COMBAT, 80),
+ APT(SP_SLUDGE_ELF, SK_SPELLCASTING, 90),
+ APT(SP_SLUDGE_ELF, SK_CONJURATIONS, 130),
+ APT(SP_SLUDGE_ELF, SK_ENCHANTMENTS, 130),
+ APT(SP_SLUDGE_ELF, SK_SUMMONINGS, 90),
+ APT(SP_SLUDGE_ELF, SK_NECROMANCY, 90),
+ APT(SP_SLUDGE_ELF, SK_TRANSLOCATIONS, 100),
+ APT(SP_SLUDGE_ELF, SK_TRANSMUTATIONS, 60),
+ APT(SP_SLUDGE_ELF, SK_FIRE_MAGIC, 80),
+ APT(SP_SLUDGE_ELF, SK_ICE_MAGIC, 80),
+ APT(SP_SLUDGE_ELF, SK_AIR_MAGIC, 80),
+ APT(SP_SLUDGE_ELF, SK_EARTH_MAGIC, 80),
+ APT(SP_SLUDGE_ELF, SK_POISON_MAGIC, 80),
+ APT(SP_SLUDGE_ELF, SK_INVOCATIONS, 80),
+ APT(SP_SLUDGE_ELF, SK_EVOCATIONS, 80),
+
+ // SP_MOUNTAIN_DWARF
+ APT(SP_MOUNTAIN_DWARF, SK_FIGHTING, 70),
+ APT(SP_MOUNTAIN_DWARF, SK_SHORT_BLADES, 80),
+ APT(SP_MOUNTAIN_DWARF, SK_LONG_BLADES, 90),
+ APT(SP_MOUNTAIN_DWARF, SK_AXES, 70),
+ APT(SP_MOUNTAIN_DWARF, SK_MACES_FLAILS, 70),
+ APT(SP_MOUNTAIN_DWARF, SK_POLEARMS, 110),
+ APT(SP_MOUNTAIN_DWARF, SK_STAVES, 120),
+ APT(SP_MOUNTAIN_DWARF, SK_SLINGS, 120),
+ APT(SP_MOUNTAIN_DWARF, SK_BOWS, 150),
+ APT(SP_MOUNTAIN_DWARF, SK_CROSSBOWS, 90),
+ APT(SP_MOUNTAIN_DWARF, SK_THROWING, 120),
+ APT(SP_MOUNTAIN_DWARF, SK_ARMOUR, 60),
+ APT(SP_MOUNTAIN_DWARF, SK_DODGING, 110),
+ APT(SP_MOUNTAIN_DWARF, SK_STEALTH, 150),
+ APT(SP_MOUNTAIN_DWARF, SK_STABBING, 130),
+ APT(SP_MOUNTAIN_DWARF, SK_SHIELDS, 70),
+ APT(SP_MOUNTAIN_DWARF, SK_TRAPS_DOORS, 80),
+ APT(SP_MOUNTAIN_DWARF, SK_UNARMED_COMBAT, 100),
+ APT(SP_MOUNTAIN_DWARF, SK_SPELLCASTING, 210),
+ APT(SP_MOUNTAIN_DWARF, SK_CONJURATIONS, 120),
+ APT(SP_MOUNTAIN_DWARF, SK_ENCHANTMENTS, 150),
+ APT(SP_MOUNTAIN_DWARF, SK_SUMMONINGS, 150),
+ APT(SP_MOUNTAIN_DWARF, SK_NECROMANCY, 160),
+ APT(SP_MOUNTAIN_DWARF, SK_TRANSLOCATIONS, 150),
+ APT(SP_MOUNTAIN_DWARF, SK_TRANSMUTATIONS, 120),
+ APT(SP_MOUNTAIN_DWARF, SK_FIRE_MAGIC, 70),
+ APT(SP_MOUNTAIN_DWARF, SK_ICE_MAGIC, 130),
+ APT(SP_MOUNTAIN_DWARF, SK_AIR_MAGIC, 150),
+ APT(SP_MOUNTAIN_DWARF, SK_EARTH_MAGIC, 70),
+ APT(SP_MOUNTAIN_DWARF, SK_POISON_MAGIC, 130),
+ APT(SP_MOUNTAIN_DWARF, SK_INVOCATIONS, 80),
+ APT(SP_MOUNTAIN_DWARF, SK_EVOCATIONS, 70),
+
+ // SP_HALFLING
+ APT(SP_HALFLING, SK_FIGHTING, 120),
+ APT(SP_HALFLING, SK_SHORT_BLADES, 60),
+ APT(SP_HALFLING, SK_LONG_BLADES, 100),
+ APT(SP_HALFLING, SK_AXES, 120),
+ APT(SP_HALFLING, SK_MACES_FLAILS, 150),
+ APT(SP_HALFLING, SK_POLEARMS, 160),
+ APT(SP_HALFLING, SK_STAVES, 130),
+ APT(SP_HALFLING, SK_SLINGS, 50),
+ APT(SP_HALFLING, SK_BOWS, 70),
+ APT(SP_HALFLING, SK_CROSSBOWS, 90),
+ APT(SP_HALFLING, SK_THROWING, 60),
+ APT(SP_HALFLING, SK_ARMOUR, 150),
+ APT(SP_HALFLING, SK_DODGING, 70),
+ APT(SP_HALFLING, SK_STEALTH, 60),
+ APT(SP_HALFLING, SK_STABBING, 70),
+ APT(SP_HALFLING, SK_SHIELDS, 90),
+ APT(SP_HALFLING, SK_TRAPS_DOORS, 100),
+ APT(SP_HALFLING, SK_UNARMED_COMBAT, 140),
+ APT(SP_HALFLING, SK_SPELLCASTING, 170),
+ APT(SP_HALFLING, SK_CONJURATIONS, 130),
+ APT(SP_HALFLING, SK_ENCHANTMENTS, 100),
+ APT(SP_HALFLING, SK_SUMMONINGS, 120),
+ APT(SP_HALFLING, SK_NECROMANCY, 150),
+ APT(SP_HALFLING, SK_TRANSLOCATIONS, 100),
+ APT(SP_HALFLING, SK_TRANSMUTATIONS, 150),
+ APT(SP_HALFLING, SK_FIRE_MAGIC, 100),
+ APT(SP_HALFLING, SK_ICE_MAGIC, 100),
+ APT(SP_HALFLING, SK_AIR_MAGIC, 90),
+ APT(SP_HALFLING, SK_EARTH_MAGIC, 100),
+ APT(SP_HALFLING, SK_POISON_MAGIC, 120),
+ APT(SP_HALFLING, SK_INVOCATIONS, 80),
+ APT(SP_HALFLING, SK_EVOCATIONS, 70),
+
+ // SP_HILL_ORC
+ APT(SP_HILL_ORC, SK_FIGHTING, 70),
+ APT(SP_HILL_ORC, SK_SHORT_BLADES, 100),
+ APT(SP_HILL_ORC, SK_LONG_BLADES, 80),
+ APT(SP_HILL_ORC, SK_AXES, 70),
+ APT(SP_HILL_ORC, SK_MACES_FLAILS, 80),
+ APT(SP_HILL_ORC, SK_POLEARMS, 80),
+ APT(SP_HILL_ORC, SK_STAVES, 110),
+ APT(SP_HILL_ORC, SK_SLINGS, 130),
+ APT(SP_HILL_ORC, SK_BOWS, 120),
+ APT(SP_HILL_ORC, SK_CROSSBOWS, 120),
+ APT(SP_HILL_ORC, SK_THROWING, 100),
+ APT(SP_HILL_ORC, SK_ARMOUR, 90),
+ APT(SP_HILL_ORC, SK_DODGING, 140),
+ APT(SP_HILL_ORC, SK_STEALTH, 150),
+ APT(SP_HILL_ORC, SK_STABBING, 70),
+ APT(SP_HILL_ORC, SK_SHIELDS, 80),
+ APT(SP_HILL_ORC, SK_TRAPS_DOORS, 100),
+ APT(SP_HILL_ORC, SK_UNARMED_COMBAT, 90),
+ APT(SP_HILL_ORC, SK_SPELLCASTING, 200),
+ APT(SP_HILL_ORC, SK_CONJURATIONS, 100),
+ APT(SP_HILL_ORC, SK_ENCHANTMENTS, 120),
+ APT(SP_HILL_ORC, SK_SUMMONINGS, 100),
+ APT(SP_HILL_ORC, SK_NECROMANCY, 100),
+ APT(SP_HILL_ORC, SK_TRANSLOCATIONS, 150),
+ APT(SP_HILL_ORC, SK_TRANSMUTATIONS, 160),
+ APT(SP_HILL_ORC, SK_FIRE_MAGIC, 100),
+ APT(SP_HILL_ORC, SK_ICE_MAGIC, 100),
+ APT(SP_HILL_ORC, SK_AIR_MAGIC, 150),
+ APT(SP_HILL_ORC, SK_EARTH_MAGIC, 100),
+ APT(SP_HILL_ORC, SK_POISON_MAGIC, 110),
+ APT(SP_HILL_ORC, SK_INVOCATIONS, 80),
+ APT(SP_HILL_ORC, SK_EVOCATIONS, 80),
+
+ // SP_KOBOLD
+ APT(SP_KOBOLD, SK_FIGHTING, 80),
+ APT(SP_KOBOLD, SK_SHORT_BLADES, 60),
+ APT(SP_KOBOLD, SK_LONG_BLADES, 140),
+ APT(SP_KOBOLD, SK_AXES, 110),
+ APT(SP_KOBOLD, SK_MACES_FLAILS, 100),
+ APT(SP_KOBOLD, SK_POLEARMS, 150),
+ APT(SP_KOBOLD, SK_STAVES, 110),
+ APT(SP_KOBOLD, SK_SLINGS, 70),
+ APT(SP_KOBOLD, SK_BOWS, 90),
+ APT(SP_KOBOLD, SK_CROSSBOWS, 80),
+ APT(SP_KOBOLD, SK_THROWING, 60),
+ APT(SP_KOBOLD, SK_ARMOUR, 140),
+ APT(SP_KOBOLD, SK_DODGING, 70),
+ APT(SP_KOBOLD, SK_STEALTH, 60),
+ APT(SP_KOBOLD, SK_STABBING, 70),
+ APT(SP_KOBOLD, SK_SHIELDS, 130),
+ APT(SP_KOBOLD, SK_TRAPS_DOORS, 100),
+ APT(SP_KOBOLD, SK_UNARMED_COMBAT, 100),
+ APT(SP_KOBOLD, SK_SPELLCASTING, 140),
+ APT(SP_KOBOLD, SK_CONJURATIONS, 110),
+ APT(SP_KOBOLD, SK_ENCHANTMENTS, 110),
+ APT(SP_KOBOLD, SK_SUMMONINGS, 110),
+ APT(SP_KOBOLD, SK_NECROMANCY, 110),
+ APT(SP_KOBOLD, SK_TRANSLOCATIONS, 100),
+ APT(SP_KOBOLD, SK_TRANSMUTATIONS, 110),
+ APT(SP_KOBOLD, SK_FIRE_MAGIC, 100),
+ APT(SP_KOBOLD, SK_ICE_MAGIC, 100),
+ APT(SP_KOBOLD, SK_AIR_MAGIC, 100),
+ APT(SP_KOBOLD, SK_EARTH_MAGIC, 100),
+ APT(SP_KOBOLD, SK_POISON_MAGIC, 100),
+ APT(SP_KOBOLD, SK_INVOCATIONS, 80),
+ APT(SP_KOBOLD, SK_EVOCATIONS, 60),
+
+ // SP_MUMMY
+ APT(SP_MUMMY, SK_FIGHTING, 100),
+ APT(SP_MUMMY, SK_SHORT_BLADES, 140),
+ APT(SP_MUMMY, SK_LONG_BLADES, 140),
+ APT(SP_MUMMY, SK_AXES, 140),
+ APT(SP_MUMMY, SK_MACES_FLAILS, 140),
+ APT(SP_MUMMY, SK_POLEARMS, 140),
+ APT(SP_MUMMY, SK_STAVES, 140),
+ APT(SP_MUMMY, SK_SLINGS, 140),
+ APT(SP_MUMMY, SK_BOWS, 140),
+ APT(SP_MUMMY, SK_CROSSBOWS, 140),
+ APT(SP_MUMMY, SK_THROWING, 140),
+ APT(SP_MUMMY, SK_ARMOUR, 140),
+ APT(SP_MUMMY, SK_DODGING, 140),
+ APT(SP_MUMMY, SK_STEALTH, 140),
+ APT(SP_MUMMY, SK_STABBING, 140),
+ APT(SP_MUMMY, SK_SHIELDS, 140),
+ APT(SP_MUMMY, SK_TRAPS_DOORS, 140),
+ APT(SP_MUMMY, SK_UNARMED_COMBAT, 140),
+ APT(SP_MUMMY, SK_SPELLCASTING, 130),
+ APT(SP_MUMMY, SK_CONJURATIONS, 140),
+ APT(SP_MUMMY, SK_ENCHANTMENTS, 140),
+ APT(SP_MUMMY, SK_SUMMONINGS, 140),
+ APT(SP_MUMMY, SK_NECROMANCY, 100),
+ APT(SP_MUMMY, SK_TRANSLOCATIONS, 140),
+ APT(SP_MUMMY, SK_TRANSMUTATIONS, 140),
+ APT(SP_MUMMY, SK_FIRE_MAGIC, 140),
+ APT(SP_MUMMY, SK_ICE_MAGIC, 140),
+ APT(SP_MUMMY, SK_AIR_MAGIC, 140),
+ APT(SP_MUMMY, SK_EARTH_MAGIC, 140),
+ APT(SP_MUMMY, SK_POISON_MAGIC, 140),
+ APT(SP_MUMMY, SK_INVOCATIONS, 110),
+ APT(SP_MUMMY, SK_EVOCATIONS, 110),
+
+ // SP_NAGA
+ APT(SP_NAGA, SK_FIGHTING, 100),
+ APT(SP_NAGA, SK_SHORT_BLADES, 100),
+ APT(SP_NAGA, SK_LONG_BLADES, 100),
+ APT(SP_NAGA, SK_AXES, 100),
+ APT(SP_NAGA, SK_MACES_FLAILS, 100),
+ APT(SP_NAGA, SK_POLEARMS, 100),
+ APT(SP_NAGA, SK_STAVES, 120),
+ APT(SP_NAGA, SK_SLINGS, 120),
+ APT(SP_NAGA, SK_BOWS, 120),
+ APT(SP_NAGA, SK_CROSSBOWS, 120),
+ APT(SP_NAGA, SK_THROWING, 120),
+ APT(SP_NAGA, SK_ARMOUR, 150),
+ APT(SP_NAGA, SK_DODGING, 150),
+ APT(SP_NAGA, SK_STEALTH, 40),
+ APT(SP_NAGA, SK_STABBING, 100),
+ APT(SP_NAGA, SK_SHIELDS, 140),
+ APT(SP_NAGA, SK_TRAPS_DOORS, 100),
+ APT(SP_NAGA, SK_UNARMED_COMBAT, 100),
+ APT(SP_NAGA, SK_SPELLCASTING, 130),
+ APT(SP_NAGA, SK_CONJURATIONS, 100),
+ APT(SP_NAGA, SK_ENCHANTMENTS, 100),
+ APT(SP_NAGA, SK_SUMMONINGS, 100),
+ APT(SP_NAGA, SK_NECROMANCY, 100),
+ APT(SP_NAGA, SK_TRANSLOCATIONS, 100),
+ APT(SP_NAGA, SK_TRANSMUTATIONS, 100),
+ APT(SP_NAGA, SK_FIRE_MAGIC, 100),
+ APT(SP_NAGA, SK_ICE_MAGIC, 100),
+ APT(SP_NAGA, SK_AIR_MAGIC, 100),
+ APT(SP_NAGA, SK_EARTH_MAGIC, 100),
+ APT(SP_NAGA, SK_POISON_MAGIC, 60),
+ APT(SP_NAGA, SK_INVOCATIONS, 80),
+ APT(SP_NAGA, SK_EVOCATIONS, 80),
+
+ // SP_OGRE
+ APT(SP_OGRE, SK_FIGHTING, 70),
+ APT(SP_OGRE, SK_SHORT_BLADES, 200),
+ APT(SP_OGRE, SK_LONG_BLADES, 180),
+ APT(SP_OGRE, SK_AXES, 180),
+ APT(SP_OGRE, SK_MACES_FLAILS, 90),
+ APT(SP_OGRE, SK_POLEARMS, 110),
+ APT(SP_OGRE, SK_STAVES, 120),
+ APT(SP_OGRE, SK_SLINGS, 180),
+ APT(SP_OGRE, SK_BOWS, 180),
+ APT(SP_OGRE, SK_CROSSBOWS, 180),
+ APT(SP_OGRE, SK_THROWING, 80),
+ APT(SP_OGRE, SK_ARMOUR, 150),
+ APT(SP_OGRE, SK_DODGING, 120),
+ APT(SP_OGRE, SK_STEALTH, 150),
+ APT(SP_OGRE, SK_STABBING, 150),
+ APT(SP_OGRE, SK_SHIELDS, 120),
+ APT(SP_OGRE, SK_TRAPS_DOORS, 150),
+ APT(SP_OGRE, SK_UNARMED_COMBAT, 110),
+ APT(SP_OGRE, SK_SPELLCASTING, 90),
+ APT(SP_OGRE, SK_CONJURATIONS, 160),
+ APT(SP_OGRE, SK_ENCHANTMENTS, 160),
+ APT(SP_OGRE, SK_SUMMONINGS, 160),
+ APT(SP_OGRE, SK_NECROMANCY, 160),
+ APT(SP_OGRE, SK_TRANSLOCATIONS, 160),
+ APT(SP_OGRE, SK_TRANSMUTATIONS, 160),
+ APT(SP_OGRE, SK_FIRE_MAGIC, 160),
+ APT(SP_OGRE, SK_ICE_MAGIC, 160),
+ APT(SP_OGRE, SK_AIR_MAGIC, 160),
+ APT(SP_OGRE, SK_EARTH_MAGIC, 160),
+ APT(SP_OGRE, SK_POISON_MAGIC, 160),
+ APT(SP_OGRE, SK_INVOCATIONS, 80),
+ APT(SP_OGRE, SK_EVOCATIONS, 120),
+
+ // SP_TROLL
+ APT(SP_TROLL, SK_FIGHTING, 140),
+ APT(SP_TROLL, SK_SHORT_BLADES, 150),
+ APT(SP_TROLL, SK_LONG_BLADES, 150),
+ APT(SP_TROLL, SK_AXES, 150),
+ APT(SP_TROLL, SK_MACES_FLAILS, 130),
+ APT(SP_TROLL, SK_POLEARMS, 150),
+ APT(SP_TROLL, SK_STAVES, 150),
+ APT(SP_TROLL, SK_SLINGS, 180),
+ APT(SP_TROLL, SK_BOWS, 180),
+ APT(SP_TROLL, SK_CROSSBOWS, 180),
+ APT(SP_TROLL, SK_THROWING, 130),
+ APT(SP_TROLL, SK_ARMOUR, 150),
+ APT(SP_TROLL, SK_DODGING, 130),
+ APT(SP_TROLL, SK_STEALTH, 250),
+ APT(SP_TROLL, SK_STABBING, 150),
+ APT(SP_TROLL, SK_SHIELDS, 150),
+ APT(SP_TROLL, SK_TRAPS_DOORS, 200),
+ APT(SP_TROLL, SK_UNARMED_COMBAT, 100),
+ APT(SP_TROLL, SK_SPELLCASTING, 260),
+ APT(SP_TROLL, SK_CONJURATIONS, 160),
+ APT(SP_TROLL, SK_ENCHANTMENTS, 200),
+ APT(SP_TROLL, SK_SUMMONINGS, 160),
+ APT(SP_TROLL, SK_NECROMANCY, 150),
+ APT(SP_TROLL, SK_TRANSLOCATIONS, 160),
+ APT(SP_TROLL, SK_TRANSMUTATIONS, 160),
+ APT(SP_TROLL, SK_FIRE_MAGIC, 160),
+ APT(SP_TROLL, SK_ICE_MAGIC, 160),
+ APT(SP_TROLL, SK_AIR_MAGIC, 200),
+ APT(SP_TROLL, SK_EARTH_MAGIC, 120),
+ APT(SP_TROLL, SK_POISON_MAGIC, 160),
+ APT(SP_TROLL, SK_INVOCATIONS, 110),
+ APT(SP_TROLL, SK_EVOCATIONS, 140),
+
+ // SP_RED_DRACONIAN
+ APT(SP_RED_DRACONIAN, SK_FIGHTING, 90),
+ APT(SP_RED_DRACONIAN, SK_SHORT_BLADES, 100),
+ APT(SP_RED_DRACONIAN, SK_LONG_BLADES, 100),
+ APT(SP_RED_DRACONIAN, SK_AXES, 100),
+ APT(SP_RED_DRACONIAN, SK_MACES_FLAILS, 100),
+ APT(SP_RED_DRACONIAN, SK_POLEARMS, 100),
+ APT(SP_RED_DRACONIAN, SK_STAVES, 100),
+ APT(SP_RED_DRACONIAN, SK_SLINGS, 120),
+ APT(SP_RED_DRACONIAN, SK_BOWS, 120),
+ APT(SP_RED_DRACONIAN, SK_CROSSBOWS, 120),
+ APT(SP_RED_DRACONIAN, SK_THROWING, 120),
+ APT(SP_RED_DRACONIAN, SK_ARMOUR, 200),
+ APT(SP_RED_DRACONIAN, SK_DODGING, 120),
+ APT(SP_RED_DRACONIAN, SK_STEALTH, 120),
+ APT(SP_RED_DRACONIAN, SK_STABBING, 100),
+ APT(SP_RED_DRACONIAN, SK_SHIELDS, 100),
+ APT(SP_RED_DRACONIAN, SK_TRAPS_DOORS, 100),
+ APT(SP_RED_DRACONIAN, SK_UNARMED_COMBAT, 100),
+ APT(SP_RED_DRACONIAN, SK_SPELLCASTING, 130),
+ APT(SP_RED_DRACONIAN, SK_CONJURATIONS, 100),
+ APT(SP_RED_DRACONIAN, SK_ENCHANTMENTS, 120),
+ APT(SP_RED_DRACONIAN, SK_SUMMONINGS, 100),
+ APT(SP_RED_DRACONIAN, SK_NECROMANCY, 100),
+ APT(SP_RED_DRACONIAN, SK_TRANSLOCATIONS, 100),
+ APT(SP_RED_DRACONIAN, SK_TRANSMUTATIONS, 100),
+ APT(SP_RED_DRACONIAN, SK_FIRE_MAGIC, 70),
+ APT(SP_RED_DRACONIAN, SK_ICE_MAGIC, 140),
+ APT(SP_RED_DRACONIAN, SK_AIR_MAGIC, 100),
+ APT(SP_RED_DRACONIAN, SK_EARTH_MAGIC, 100),
+ APT(SP_RED_DRACONIAN, SK_POISON_MAGIC, 100),
+ APT(SP_RED_DRACONIAN, SK_INVOCATIONS, 80),
+ APT(SP_RED_DRACONIAN, SK_EVOCATIONS, 80),
+
+ // SP_WHITE_DRACONIAN
+ APT(SP_WHITE_DRACONIAN, SK_FIGHTING, 90),
+ APT(SP_WHITE_DRACONIAN, SK_SHORT_BLADES, 100),
+ APT(SP_WHITE_DRACONIAN, SK_LONG_BLADES, 100),
+ APT(SP_WHITE_DRACONIAN, SK_AXES, 100),
+ APT(SP_WHITE_DRACONIAN, SK_MACES_FLAILS, 100),
+ APT(SP_WHITE_DRACONIAN, SK_POLEARMS, 100),
+ APT(SP_WHITE_DRACONIAN, SK_STAVES, 100),
+ APT(SP_WHITE_DRACONIAN, SK_SLINGS, 120),
+ APT(SP_WHITE_DRACONIAN, SK_BOWS, 120),
+ APT(SP_WHITE_DRACONIAN, SK_CROSSBOWS, 120),
+ APT(SP_WHITE_DRACONIAN, SK_THROWING, 120),
+ APT(SP_WHITE_DRACONIAN, SK_ARMOUR, 200),
+ APT(SP_WHITE_DRACONIAN, SK_DODGING, 120),
+ APT(SP_WHITE_DRACONIAN, SK_STEALTH, 120),
+ APT(SP_WHITE_DRACONIAN, SK_STABBING, 100),
+ APT(SP_WHITE_DRACONIAN, SK_SHIELDS, 100),
+ APT(SP_WHITE_DRACONIAN, SK_TRAPS_DOORS, 100),
+ APT(SP_WHITE_DRACONIAN, SK_UNARMED_COMBAT, 100),
+ APT(SP_WHITE_DRACONIAN, SK_SPELLCASTING, 130),
+ APT(SP_WHITE_DRACONIAN, SK_CONJURATIONS, 100),
+ APT(SP_WHITE_DRACONIAN, SK_ENCHANTMENTS, 120),
+ APT(SP_WHITE_DRACONIAN, SK_SUMMONINGS, 100),
+ APT(SP_WHITE_DRACONIAN, SK_NECROMANCY, 100),
+ APT(SP_WHITE_DRACONIAN, SK_TRANSLOCATIONS, 100),
+ APT(SP_WHITE_DRACONIAN, SK_TRANSMUTATIONS, 100),
+ APT(SP_WHITE_DRACONIAN, SK_FIRE_MAGIC, 140),
+ APT(SP_WHITE_DRACONIAN, SK_ICE_MAGIC, 70),
+ APT(SP_WHITE_DRACONIAN, SK_AIR_MAGIC, 100),
+ APT(SP_WHITE_DRACONIAN, SK_EARTH_MAGIC, 100),
+ APT(SP_WHITE_DRACONIAN, SK_POISON_MAGIC, 100),
+ APT(SP_WHITE_DRACONIAN, SK_INVOCATIONS, 80),
+ APT(SP_WHITE_DRACONIAN, SK_EVOCATIONS, 80),
+
+ // SP_GREEN_DRACONIAN
+ APT(SP_GREEN_DRACONIAN, SK_FIGHTING, 90),
+ APT(SP_GREEN_DRACONIAN, SK_SHORT_BLADES, 100),
+ APT(SP_GREEN_DRACONIAN, SK_LONG_BLADES, 100),
+ APT(SP_GREEN_DRACONIAN, SK_AXES, 100),
+ APT(SP_GREEN_DRACONIAN, SK_MACES_FLAILS, 100),
+ APT(SP_GREEN_DRACONIAN, SK_POLEARMS, 100),
+ APT(SP_GREEN_DRACONIAN, SK_STAVES, 100),
+ APT(SP_GREEN_DRACONIAN, SK_SLINGS, 120),
+ APT(SP_GREEN_DRACONIAN, SK_BOWS, 120),
+ APT(SP_GREEN_DRACONIAN, SK_CROSSBOWS, 120),
+ APT(SP_GREEN_DRACONIAN, SK_THROWING, 120),
+ APT(SP_GREEN_DRACONIAN, SK_ARMOUR, 200),
+ APT(SP_GREEN_DRACONIAN, SK_DODGING, 120),
+ APT(SP_GREEN_DRACONIAN, SK_STEALTH, 120),
+ APT(SP_GREEN_DRACONIAN, SK_STABBING, 100),
+ APT(SP_GREEN_DRACONIAN, SK_SHIELDS, 100),
+ APT(SP_GREEN_DRACONIAN, SK_TRAPS_DOORS, 100),
+ APT(SP_GREEN_DRACONIAN, SK_UNARMED_COMBAT, 100),
+ APT(SP_GREEN_DRACONIAN, SK_SPELLCASTING, 130),
+ APT(SP_GREEN_DRACONIAN, SK_CONJURATIONS, 100),
+ APT(SP_GREEN_DRACONIAN, SK_ENCHANTMENTS, 120),
+ APT(SP_GREEN_DRACONIAN, SK_SUMMONINGS, 100),
+ APT(SP_GREEN_DRACONIAN, SK_NECROMANCY, 100),
+ APT(SP_GREEN_DRACONIAN, SK_TRANSLOCATIONS, 100),
+ APT(SP_GREEN_DRACONIAN, SK_TRANSMUTATIONS, 100),
+ APT(SP_GREEN_DRACONIAN, SK_FIRE_MAGIC, 100),
+ APT(SP_GREEN_DRACONIAN, SK_ICE_MAGIC, 100),
+ APT(SP_GREEN_DRACONIAN, SK_AIR_MAGIC, 100),
+ APT(SP_GREEN_DRACONIAN, SK_EARTH_MAGIC, 100),
+ APT(SP_GREEN_DRACONIAN, SK_POISON_MAGIC, 70),
+ APT(SP_GREEN_DRACONIAN, SK_INVOCATIONS, 80),
+ APT(SP_GREEN_DRACONIAN, SK_EVOCATIONS, 80),
+
+ // SP_YELLOW_DRACONIAN
+ APT(SP_YELLOW_DRACONIAN, SK_FIGHTING, 90),
+ APT(SP_YELLOW_DRACONIAN, SK_SHORT_BLADES, 100),
+ APT(SP_YELLOW_DRACONIAN, SK_LONG_BLADES, 100),
+ APT(SP_YELLOW_DRACONIAN, SK_AXES, 100),
+ APT(SP_YELLOW_DRACONIAN, SK_MACES_FLAILS, 100),
+ APT(SP_YELLOW_DRACONIAN, SK_POLEARMS, 100),
+ APT(SP_YELLOW_DRACONIAN, SK_STAVES, 100),
+ APT(SP_YELLOW_DRACONIAN, SK_SLINGS, 120),
+ APT(SP_YELLOW_DRACONIAN, SK_BOWS, 120),
+ APT(SP_YELLOW_DRACONIAN, SK_CROSSBOWS, 120),
+ APT(SP_YELLOW_DRACONIAN, SK_THROWING, 120),
+ APT(SP_YELLOW_DRACONIAN, SK_ARMOUR, 200),
+ APT(SP_YELLOW_DRACONIAN, SK_DODGING, 120),
+ APT(SP_YELLOW_DRACONIAN, SK_STEALTH, 120),
+ APT(SP_YELLOW_DRACONIAN, SK_STABBING, 100),
+ APT(SP_YELLOW_DRACONIAN, SK_SHIELDS, 100),
+ APT(SP_YELLOW_DRACONIAN, SK_TRAPS_DOORS, 100),
+ APT(SP_YELLOW_DRACONIAN, SK_UNARMED_COMBAT, 100),
+ APT(SP_YELLOW_DRACONIAN, SK_SPELLCASTING, 130),
+ APT(SP_YELLOW_DRACONIAN, SK_CONJURATIONS, 100),
+ APT(SP_YELLOW_DRACONIAN, SK_ENCHANTMENTS, 120),
+ APT(SP_YELLOW_DRACONIAN, SK_SUMMONINGS, 100),
+ APT(SP_YELLOW_DRACONIAN, SK_NECROMANCY, 100),
+ APT(SP_YELLOW_DRACONIAN, SK_TRANSLOCATIONS, 100),
+ APT(SP_YELLOW_DRACONIAN, SK_TRANSMUTATIONS, 100),
+ APT(SP_YELLOW_DRACONIAN, SK_FIRE_MAGIC, 100),
+ APT(SP_YELLOW_DRACONIAN, SK_ICE_MAGIC, 100),
+ APT(SP_YELLOW_DRACONIAN, SK_AIR_MAGIC, 100),
+ APT(SP_YELLOW_DRACONIAN, SK_EARTH_MAGIC, 100),
+ APT(SP_YELLOW_DRACONIAN, SK_POISON_MAGIC, 100),
+ APT(SP_YELLOW_DRACONIAN, SK_INVOCATIONS, 80),
+ APT(SP_YELLOW_DRACONIAN, SK_EVOCATIONS, 80),
+
+ // SP_GREY_DRACONIAN
+ APT(SP_GREY_DRACONIAN, SK_FIGHTING, 90),
+ APT(SP_GREY_DRACONIAN, SK_SHORT_BLADES, 100),
+ APT(SP_GREY_DRACONIAN, SK_LONG_BLADES, 100),
+ APT(SP_GREY_DRACONIAN, SK_AXES, 100),
+ APT(SP_GREY_DRACONIAN, SK_MACES_FLAILS, 100),
+ APT(SP_GREY_DRACONIAN, SK_POLEARMS, 100),
+ APT(SP_GREY_DRACONIAN, SK_STAVES, 100),
+ APT(SP_GREY_DRACONIAN, SK_SLINGS, 120),
+ APT(SP_GREY_DRACONIAN, SK_BOWS, 120),
+ APT(SP_GREY_DRACONIAN, SK_CROSSBOWS, 120),
+ APT(SP_GREY_DRACONIAN, SK_THROWING, 120),
+ APT(SP_GREY_DRACONIAN, SK_ARMOUR, 200),
+ APT(SP_GREY_DRACONIAN, SK_DODGING, 120),
+ APT(SP_GREY_DRACONIAN, SK_STEALTH, 120),
+ APT(SP_GREY_DRACONIAN, SK_STABBING, 100),
+ APT(SP_GREY_DRACONIAN, SK_SHIELDS, 100),
+ APT(SP_GREY_DRACONIAN, SK_TRAPS_DOORS, 100),
+ APT(SP_GREY_DRACONIAN, SK_UNARMED_COMBAT, 100),
+ APT(SP_GREY_DRACONIAN, SK_SPELLCASTING, 130),
+ APT(SP_GREY_DRACONIAN, SK_CONJURATIONS, 100),
+ APT(SP_GREY_DRACONIAN, SK_ENCHANTMENTS, 120),
+ APT(SP_GREY_DRACONIAN, SK_SUMMONINGS, 100),
+ APT(SP_GREY_DRACONIAN, SK_NECROMANCY, 100),
+ APT(SP_GREY_DRACONIAN, SK_TRANSLOCATIONS, 100),
+ APT(SP_GREY_DRACONIAN, SK_TRANSMUTATIONS, 100),
+ APT(SP_GREY_DRACONIAN, SK_FIRE_MAGIC, 100),
+ APT(SP_GREY_DRACONIAN, SK_ICE_MAGIC, 100),
+ APT(SP_GREY_DRACONIAN, SK_AIR_MAGIC, 100),
+ APT(SP_GREY_DRACONIAN, SK_EARTH_MAGIC, 100),
+ APT(SP_GREY_DRACONIAN, SK_POISON_MAGIC, 100),
+ APT(SP_GREY_DRACONIAN, SK_INVOCATIONS, 80),
+ APT(SP_GREY_DRACONIAN, SK_EVOCATIONS, 80),
+
+ // SP_BLACK_DRACONIAN
+ APT(SP_BLACK_DRACONIAN, SK_FIGHTING, 90),
+ APT(SP_BLACK_DRACONIAN, SK_SHORT_BLADES, 100),
+ APT(SP_BLACK_DRACONIAN, SK_LONG_BLADES, 100),
+ APT(SP_BLACK_DRACONIAN, SK_AXES, 100),
+ APT(SP_BLACK_DRACONIAN, SK_MACES_FLAILS, 100),
+ APT(SP_BLACK_DRACONIAN, SK_POLEARMS, 100),
+ APT(SP_BLACK_DRACONIAN, SK_STAVES, 100),
+ APT(SP_BLACK_DRACONIAN, SK_SLINGS, 120),
+ APT(SP_BLACK_DRACONIAN, SK_BOWS, 120),
+ APT(SP_BLACK_DRACONIAN, SK_CROSSBOWS, 120),
+ APT(SP_BLACK_DRACONIAN, SK_THROWING, 120),
+ APT(SP_BLACK_DRACONIAN, SK_ARMOUR, 200),
+ APT(SP_BLACK_DRACONIAN, SK_DODGING, 120),
+ APT(SP_BLACK_DRACONIAN, SK_STEALTH, 120),
+ APT(SP_BLACK_DRACONIAN, SK_STABBING, 100),
+ APT(SP_BLACK_DRACONIAN, SK_SHIELDS, 100),
+ APT(SP_BLACK_DRACONIAN, SK_TRAPS_DOORS, 100),
+ APT(SP_BLACK_DRACONIAN, SK_UNARMED_COMBAT, 100),
+ APT(SP_BLACK_DRACONIAN, SK_SPELLCASTING, 130),
+ APT(SP_BLACK_DRACONIAN, SK_CONJURATIONS, 100),
+ APT(SP_BLACK_DRACONIAN, SK_ENCHANTMENTS, 120),
+ APT(SP_BLACK_DRACONIAN, SK_SUMMONINGS, 100),
+ APT(SP_BLACK_DRACONIAN, SK_NECROMANCY, 100),
+ APT(SP_BLACK_DRACONIAN, SK_TRANSLOCATIONS, 100),
+ APT(SP_BLACK_DRACONIAN, SK_TRANSMUTATIONS, 100),
+ APT(SP_BLACK_DRACONIAN, SK_FIRE_MAGIC, 100),
+ APT(SP_BLACK_DRACONIAN, SK_ICE_MAGIC, 100),
+ APT(SP_BLACK_DRACONIAN, SK_AIR_MAGIC, 70),
+ APT(SP_BLACK_DRACONIAN, SK_EARTH_MAGIC, 140),
+ APT(SP_BLACK_DRACONIAN, SK_POISON_MAGIC, 100),
+ APT(SP_BLACK_DRACONIAN, SK_INVOCATIONS, 80),
+ APT(SP_BLACK_DRACONIAN, SK_EVOCATIONS, 80),
+
+ // SP_PURPLE_DRACONIAN
+ APT(SP_PURPLE_DRACONIAN, SK_FIGHTING, 90),
+ APT(SP_PURPLE_DRACONIAN, SK_SHORT_BLADES, 100),
+ APT(SP_PURPLE_DRACONIAN, SK_LONG_BLADES, 100),
+ APT(SP_PURPLE_DRACONIAN, SK_AXES, 100),
+ APT(SP_PURPLE_DRACONIAN, SK_MACES_FLAILS, 100),
+ APT(SP_PURPLE_DRACONIAN, SK_POLEARMS, 100),
+ APT(SP_PURPLE_DRACONIAN, SK_STAVES, 100),
+ APT(SP_PURPLE_DRACONIAN, SK_SLINGS, 120),
+ APT(SP_PURPLE_DRACONIAN, SK_BOWS, 120),
+ APT(SP_PURPLE_DRACONIAN, SK_CROSSBOWS, 120),
+ APT(SP_PURPLE_DRACONIAN, SK_THROWING, 120),
+ APT(SP_PURPLE_DRACONIAN, SK_ARMOUR, 200),
+ APT(SP_PURPLE_DRACONIAN, SK_DODGING, 120),
+ APT(SP_PURPLE_DRACONIAN, SK_STEALTH, 120),
+ APT(SP_PURPLE_DRACONIAN, SK_STABBING, 100),
+ APT(SP_PURPLE_DRACONIAN, SK_SHIELDS, 100),
+ APT(SP_PURPLE_DRACONIAN, SK_TRAPS_DOORS, 100),
+ APT(SP_PURPLE_DRACONIAN, SK_UNARMED_COMBAT, 100),
+ APT(SP_PURPLE_DRACONIAN, SK_SPELLCASTING, 90),
+ APT(SP_PURPLE_DRACONIAN, SK_CONJURATIONS, 100),
+ APT(SP_PURPLE_DRACONIAN, SK_ENCHANTMENTS, 90),
+ APT(SP_PURPLE_DRACONIAN, SK_SUMMONINGS, 100),
+ APT(SP_PURPLE_DRACONIAN, SK_NECROMANCY, 100),
+ APT(SP_PURPLE_DRACONIAN, SK_TRANSLOCATIONS, 100),
+ APT(SP_PURPLE_DRACONIAN, SK_TRANSMUTATIONS, 100),
+ APT(SP_PURPLE_DRACONIAN, SK_FIRE_MAGIC, 100),
+ APT(SP_PURPLE_DRACONIAN, SK_ICE_MAGIC, 100),
+ APT(SP_PURPLE_DRACONIAN, SK_AIR_MAGIC, 100),
+ APT(SP_PURPLE_DRACONIAN, SK_EARTH_MAGIC, 100),
+ APT(SP_PURPLE_DRACONIAN, SK_POISON_MAGIC, 100),
+ APT(SP_PURPLE_DRACONIAN, SK_INVOCATIONS, 80),
+ APT(SP_PURPLE_DRACONIAN, SK_EVOCATIONS, 70),
+
+ // SP_MOTTLED_DRACONIAN
+ APT(SP_MOTTLED_DRACONIAN, SK_FIGHTING, 90),
+ APT(SP_MOTTLED_DRACONIAN, SK_SHORT_BLADES, 100),
+ APT(SP_MOTTLED_DRACONIAN, SK_LONG_BLADES, 100),
+ APT(SP_MOTTLED_DRACONIAN, SK_AXES, 100),
+ APT(SP_MOTTLED_DRACONIAN, SK_MACES_FLAILS, 100),
+ APT(SP_MOTTLED_DRACONIAN, SK_POLEARMS, 100),
+ APT(SP_MOTTLED_DRACONIAN, SK_STAVES, 100),
+ APT(SP_MOTTLED_DRACONIAN, SK_SLINGS, 120),
+ APT(SP_MOTTLED_DRACONIAN, SK_BOWS, 120),
+ APT(SP_MOTTLED_DRACONIAN, SK_CROSSBOWS, 120),
+ APT(SP_MOTTLED_DRACONIAN, SK_THROWING, 120),
+ APT(SP_MOTTLED_DRACONIAN, SK_ARMOUR, 200),
+ APT(SP_MOTTLED_DRACONIAN, SK_DODGING, 120),
+ APT(SP_MOTTLED_DRACONIAN, SK_STEALTH, 120),
+ APT(SP_MOTTLED_DRACONIAN, SK_STABBING, 100),
+ APT(SP_MOTTLED_DRACONIAN, SK_SHIELDS, 100),
+ APT(SP_MOTTLED_DRACONIAN, SK_TRAPS_DOORS, 100),
+ APT(SP_MOTTLED_DRACONIAN, SK_UNARMED_COMBAT, 100),
+ APT(SP_MOTTLED_DRACONIAN, SK_SPELLCASTING, 130),
+ APT(SP_MOTTLED_DRACONIAN, SK_CONJURATIONS, 100),
+ APT(SP_MOTTLED_DRACONIAN, SK_ENCHANTMENTS, 120),
+ APT(SP_MOTTLED_DRACONIAN, SK_SUMMONINGS, 100),
+ APT(SP_MOTTLED_DRACONIAN, SK_NECROMANCY, 100),
+ APT(SP_MOTTLED_DRACONIAN, SK_TRANSLOCATIONS, 100),
+ APT(SP_MOTTLED_DRACONIAN, SK_TRANSMUTATIONS, 100),
+ APT(SP_MOTTLED_DRACONIAN, SK_FIRE_MAGIC, 80),
+ APT(SP_MOTTLED_DRACONIAN, SK_ICE_MAGIC, 100),
+ APT(SP_MOTTLED_DRACONIAN, SK_AIR_MAGIC, 100),
+ APT(SP_MOTTLED_DRACONIAN, SK_EARTH_MAGIC, 100),
+ APT(SP_MOTTLED_DRACONIAN, SK_POISON_MAGIC, 100),
+ APT(SP_MOTTLED_DRACONIAN, SK_INVOCATIONS, 80),
+ APT(SP_MOTTLED_DRACONIAN, SK_EVOCATIONS, 80),
+
+ // SP_PALE_DRACONIAN
+ APT(SP_PALE_DRACONIAN, SK_FIGHTING, 90),
+ APT(SP_PALE_DRACONIAN, SK_SHORT_BLADES, 100),
+ APT(SP_PALE_DRACONIAN, SK_LONG_BLADES, 100),
+ APT(SP_PALE_DRACONIAN, SK_AXES, 100),
+ APT(SP_PALE_DRACONIAN, SK_MACES_FLAILS, 100),
+ APT(SP_PALE_DRACONIAN, SK_POLEARMS, 100),
+ APT(SP_PALE_DRACONIAN, SK_STAVES, 100),
+ APT(SP_PALE_DRACONIAN, SK_SLINGS, 120),
+ APT(SP_PALE_DRACONIAN, SK_BOWS, 120),
+ APT(SP_PALE_DRACONIAN, SK_CROSSBOWS, 120),
+ APT(SP_PALE_DRACONIAN, SK_THROWING, 120),
+ APT(SP_PALE_DRACONIAN, SK_ARMOUR, 200),
+ APT(SP_PALE_DRACONIAN, SK_DODGING, 120),
+ APT(SP_PALE_DRACONIAN, SK_STEALTH, 120),
+ APT(SP_PALE_DRACONIAN, SK_STABBING, 100),
+ APT(SP_PALE_DRACONIAN, SK_SHIELDS, 100),
+ APT(SP_PALE_DRACONIAN, SK_TRAPS_DOORS, 100),
+ APT(SP_PALE_DRACONIAN, SK_UNARMED_COMBAT, 100),
+ APT(SP_PALE_DRACONIAN, SK_SPELLCASTING, 130),
+ APT(SP_PALE_DRACONIAN, SK_CONJURATIONS, 100),
+ APT(SP_PALE_DRACONIAN, SK_ENCHANTMENTS, 120),
+ APT(SP_PALE_DRACONIAN, SK_SUMMONINGS, 100),
+ APT(SP_PALE_DRACONIAN, SK_NECROMANCY, 100),
+ APT(SP_PALE_DRACONIAN, SK_TRANSLOCATIONS, 100),
+ APT(SP_PALE_DRACONIAN, SK_TRANSMUTATIONS, 100),
+ APT(SP_PALE_DRACONIAN, SK_FIRE_MAGIC, 90),
+ APT(SP_PALE_DRACONIAN, SK_ICE_MAGIC, 100),
+ APT(SP_PALE_DRACONIAN, SK_AIR_MAGIC, 90),
+ APT(SP_PALE_DRACONIAN, SK_EARTH_MAGIC, 100),
+ APT(SP_PALE_DRACONIAN, SK_POISON_MAGIC, 100),
+ APT(SP_PALE_DRACONIAN, SK_INVOCATIONS, 80),
+ APT(SP_PALE_DRACONIAN, SK_EVOCATIONS, 70),
+
+ // SP_BASE_DRACONIAN
+ APT(SP_BASE_DRACONIAN, SK_FIGHTING, 90),
+ APT(SP_BASE_DRACONIAN, SK_SHORT_BLADES, 100),
+ APT(SP_BASE_DRACONIAN, SK_LONG_BLADES, 100),
+ APT(SP_BASE_DRACONIAN, SK_AXES, 100),
+ APT(SP_BASE_DRACONIAN, SK_MACES_FLAILS, 100),
+ APT(SP_BASE_DRACONIAN, SK_POLEARMS, 100),
+ APT(SP_BASE_DRACONIAN, SK_STAVES, 100),
+ APT(SP_BASE_DRACONIAN, SK_SLINGS, 120),
+ APT(SP_BASE_DRACONIAN, SK_BOWS, 120),
+ APT(SP_BASE_DRACONIAN, SK_CROSSBOWS, 120),
+ APT(SP_BASE_DRACONIAN, SK_THROWING, 120),
+ APT(SP_BASE_DRACONIAN, SK_ARMOUR, 200),
+ APT(SP_BASE_DRACONIAN, SK_DODGING, 120),
+ APT(SP_BASE_DRACONIAN, SK_STEALTH, 120),
+ APT(SP_BASE_DRACONIAN, SK_STABBING, 100),
+ APT(SP_BASE_DRACONIAN, SK_SHIELDS, 100),
+ APT(SP_BASE_DRACONIAN, SK_TRAPS_DOORS, 100),
+ APT(SP_BASE_DRACONIAN, SK_UNARMED_COMBAT, 100),
+ APT(SP_BASE_DRACONIAN, SK_SPELLCASTING, 130),
+ APT(SP_BASE_DRACONIAN, SK_CONJURATIONS, 100),
+ APT(SP_BASE_DRACONIAN, SK_ENCHANTMENTS, 120),
+ APT(SP_BASE_DRACONIAN, SK_SUMMONINGS, 100),
+ APT(SP_BASE_DRACONIAN, SK_NECROMANCY, 100),
+ APT(SP_BASE_DRACONIAN, SK_TRANSLOCATIONS, 100),
+ APT(SP_BASE_DRACONIAN, SK_TRANSMUTATIONS, 100),
+ APT(SP_BASE_DRACONIAN, SK_FIRE_MAGIC, 100),
+ APT(SP_BASE_DRACONIAN, SK_ICE_MAGIC, 100),
+ APT(SP_BASE_DRACONIAN, SK_AIR_MAGIC, 100),
+ APT(SP_BASE_DRACONIAN, SK_EARTH_MAGIC, 100),
+ APT(SP_BASE_DRACONIAN, SK_POISON_MAGIC, 100),
+ APT(SP_BASE_DRACONIAN, SK_INVOCATIONS, 80),
+ APT(SP_BASE_DRACONIAN, SK_EVOCATIONS, 80),
+
+ // SP_CENTAUR
+ APT(SP_CENTAUR, SK_FIGHTING, 100),
+ APT(SP_CENTAUR, SK_SHORT_BLADES, 120),
+ APT(SP_CENTAUR, SK_LONG_BLADES, 110),
+ APT(SP_CENTAUR, SK_AXES, 110),
+ APT(SP_CENTAUR, SK_MACES_FLAILS, 110),
+ APT(SP_CENTAUR, SK_POLEARMS, 110),
+ APT(SP_CENTAUR, SK_STAVES, 110),
+ APT(SP_CENTAUR, SK_SLINGS, 80),
+ APT(SP_CENTAUR, SK_BOWS, 60),
+ APT(SP_CENTAUR, SK_CROSSBOWS, 90),
+ APT(SP_CENTAUR, SK_THROWING, 60),
+ APT(SP_CENTAUR, SK_ARMOUR, 180),
+ APT(SP_CENTAUR, SK_DODGING, 170),
+ APT(SP_CENTAUR, SK_STEALTH, 200),
+ APT(SP_CENTAUR, SK_STABBING, 170),
+ APT(SP_CENTAUR, SK_SHIELDS, 180),
+ APT(SP_CENTAUR, SK_TRAPS_DOORS, 150),
+ APT(SP_CENTAUR, SK_UNARMED_COMBAT, 100),
+ APT(SP_CENTAUR, SK_SPELLCASTING, 180),
+ APT(SP_CENTAUR, SK_CONJURATIONS, 120),
+ APT(SP_CENTAUR, SK_ENCHANTMENTS, 110),
+ APT(SP_CENTAUR, SK_SUMMONINGS, 120),
+ APT(SP_CENTAUR, SK_NECROMANCY, 120),
+ APT(SP_CENTAUR, SK_TRANSLOCATIONS, 120),
+ APT(SP_CENTAUR, SK_TRANSMUTATIONS, 120),
+ APT(SP_CENTAUR, SK_FIRE_MAGIC, 120),
+ APT(SP_CENTAUR, SK_ICE_MAGIC, 120),
+ APT(SP_CENTAUR, SK_AIR_MAGIC, 120),
+ APT(SP_CENTAUR, SK_EARTH_MAGIC, 120),
+ APT(SP_CENTAUR, SK_POISON_MAGIC, 130),
+ APT(SP_CENTAUR, SK_INVOCATIONS, 80),
+ APT(SP_CENTAUR, SK_EVOCATIONS, 100),
+
+ // SP_DEMIGOD
+ APT(SP_DEMIGOD, SK_FIGHTING, 110),
+ APT(SP_DEMIGOD, SK_SHORT_BLADES, 110),
+ APT(SP_DEMIGOD, SK_LONG_BLADES, 110),
+ APT(SP_DEMIGOD, SK_AXES, 110),
+ APT(SP_DEMIGOD, SK_MACES_FLAILS, 110),
+ APT(SP_DEMIGOD, SK_POLEARMS, 110),
+ APT(SP_DEMIGOD, SK_STAVES, 110),
+ APT(SP_DEMIGOD, SK_SLINGS, 110),
+ APT(SP_DEMIGOD, SK_BOWS, 110),
+ APT(SP_DEMIGOD, SK_CROSSBOWS, 110),
+ APT(SP_DEMIGOD, SK_THROWING, 110),
+ APT(SP_DEMIGOD, SK_ARMOUR, 110),
+ APT(SP_DEMIGOD, SK_DODGING, 110),
+ APT(SP_DEMIGOD, SK_STEALTH, 110),
+ APT(SP_DEMIGOD, SK_STABBING, 110),
+ APT(SP_DEMIGOD, SK_SHIELDS, 110),
+ APT(SP_DEMIGOD, SK_TRAPS_DOORS, 110),
+ APT(SP_DEMIGOD, SK_UNARMED_COMBAT, 110),
+ APT(SP_DEMIGOD, SK_SPELLCASTING, 140),
+ APT(SP_DEMIGOD, SK_CONJURATIONS, 110),
+ APT(SP_DEMIGOD, SK_ENCHANTMENTS, 110),
+ APT(SP_DEMIGOD, SK_SUMMONINGS, 110),
+ APT(SP_DEMIGOD, SK_NECROMANCY, 110),
+ APT(SP_DEMIGOD, SK_TRANSLOCATIONS, 110),
+ APT(SP_DEMIGOD, SK_TRANSMUTATIONS, 110),
+ APT(SP_DEMIGOD, SK_FIRE_MAGIC, 110),
+ APT(SP_DEMIGOD, SK_ICE_MAGIC, 110),
+ APT(SP_DEMIGOD, SK_AIR_MAGIC, 110),
+ APT(SP_DEMIGOD, SK_EARTH_MAGIC, 110),
+ APT(SP_DEMIGOD, SK_POISON_MAGIC, 110),
+ APT(SP_DEMIGOD, SK_INVOCATIONS, 80),
+ APT(SP_DEMIGOD, SK_EVOCATIONS, 80),
+
+ // SP_SPRIGGAN
+ APT(SP_SPRIGGAN, SK_FIGHTING, 150),
+ APT(SP_SPRIGGAN, SK_SHORT_BLADES, 90),
+ APT(SP_SPRIGGAN, SK_LONG_BLADES, 140),
+ APT(SP_SPRIGGAN, SK_AXES, 150),
+ APT(SP_SPRIGGAN, SK_MACES_FLAILS, 160),
+ APT(SP_SPRIGGAN, SK_POLEARMS, 180),
+ APT(SP_SPRIGGAN, SK_STAVES, 150),
+ APT(SP_SPRIGGAN, SK_SLINGS, 70),
+ APT(SP_SPRIGGAN, SK_BOWS, 70),
+ APT(SP_SPRIGGAN, SK_CROSSBOWS, 100),
+ APT(SP_SPRIGGAN, SK_THROWING, 90),
+ APT(SP_SPRIGGAN, SK_ARMOUR, 170),
+ APT(SP_SPRIGGAN, SK_DODGING, 50),
+ APT(SP_SPRIGGAN, SK_STEALTH, 50),
+ APT(SP_SPRIGGAN, SK_STABBING, 50),
+ APT(SP_SPRIGGAN, SK_SHIELDS, 180),
+ APT(SP_SPRIGGAN, SK_TRAPS_DOORS, 60),
+ APT(SP_SPRIGGAN, SK_UNARMED_COMBAT, 130),
+ APT(SP_SPRIGGAN, SK_SPELLCASTING, 80),
+ APT(SP_SPRIGGAN, SK_CONJURATIONS, 160),
+ APT(SP_SPRIGGAN, SK_ENCHANTMENTS, 50),
+ APT(SP_SPRIGGAN, SK_SUMMONINGS, 150),
+ APT(SP_SPRIGGAN, SK_NECROMANCY, 120),
+ APT(SP_SPRIGGAN, SK_TRANSLOCATIONS, 50),
+ APT(SP_SPRIGGAN, SK_TRANSMUTATIONS, 60),
+ APT(SP_SPRIGGAN, SK_FIRE_MAGIC, 140),
+ APT(SP_SPRIGGAN, SK_ICE_MAGIC, 140),
+ APT(SP_SPRIGGAN, SK_AIR_MAGIC, 120),
+ APT(SP_SPRIGGAN, SK_EARTH_MAGIC, 120),
+ APT(SP_SPRIGGAN, SK_POISON_MAGIC, 100),
+ APT(SP_SPRIGGAN, SK_INVOCATIONS, 100),
+ APT(SP_SPRIGGAN, SK_EVOCATIONS, 50),
+
+ // SP_MINOTAUR
+ APT(SP_MINOTAUR, SK_FIGHTING, 70),
+ APT(SP_MINOTAUR, SK_SHORT_BLADES, 70),
+ APT(SP_MINOTAUR, SK_LONG_BLADES, 70),
+ APT(SP_MINOTAUR, SK_AXES, 70),
+ APT(SP_MINOTAUR, SK_MACES_FLAILS, 70),
+ APT(SP_MINOTAUR, SK_POLEARMS, 70),
+ APT(SP_MINOTAUR, SK_STAVES, 70),
+ APT(SP_MINOTAUR, SK_SLINGS, 90),
+ APT(SP_MINOTAUR, SK_BOWS, 90),
+ APT(SP_MINOTAUR, SK_CROSSBOWS, 90),
+ APT(SP_MINOTAUR, SK_THROWING, 90),
+ APT(SP_MINOTAUR, SK_ARMOUR, 80),
+ APT(SP_MINOTAUR, SK_DODGING, 80),
+ APT(SP_MINOTAUR, SK_STEALTH, 130),
+ APT(SP_MINOTAUR, SK_STABBING, 100),
+ APT(SP_MINOTAUR, SK_SHIELDS, 80),
+ APT(SP_MINOTAUR, SK_TRAPS_DOORS, 120),
+ APT(SP_MINOTAUR, SK_UNARMED_COMBAT, 80),
+ APT(SP_MINOTAUR, SK_SPELLCASTING, 230),
+ APT(SP_MINOTAUR, SK_CONJURATIONS, 170),
+ APT(SP_MINOTAUR, SK_ENCHANTMENTS, 170),
+ APT(SP_MINOTAUR, SK_SUMMONINGS, 170),
+ APT(SP_MINOTAUR, SK_NECROMANCY, 170),
+ APT(SP_MINOTAUR, SK_TRANSLOCATIONS, 170),
+ APT(SP_MINOTAUR, SK_TRANSMUTATIONS, 170),
+ APT(SP_MINOTAUR, SK_FIRE_MAGIC, 170),
+ APT(SP_MINOTAUR, SK_ICE_MAGIC, 170),
+ APT(SP_MINOTAUR, SK_AIR_MAGIC, 170),
+ APT(SP_MINOTAUR, SK_EARTH_MAGIC, 170),
+ APT(SP_MINOTAUR, SK_POISON_MAGIC, 170),
+ APT(SP_MINOTAUR, SK_INVOCATIONS, 100),
+ APT(SP_MINOTAUR, SK_EVOCATIONS, 130),
+
+ // SP_DEMONSPAWN
+ APT(SP_DEMONSPAWN, SK_FIGHTING, 100),
+ APT(SP_DEMONSPAWN, SK_SHORT_BLADES, 110),
+ APT(SP_DEMONSPAWN, SK_LONG_BLADES, 110),
+ APT(SP_DEMONSPAWN, SK_AXES, 110),
+ APT(SP_DEMONSPAWN, SK_MACES_FLAILS, 110),
+ APT(SP_DEMONSPAWN, SK_POLEARMS, 110),
+ APT(SP_DEMONSPAWN, SK_STAVES, 110),
+ APT(SP_DEMONSPAWN, SK_SLINGS, 110),
+ APT(SP_DEMONSPAWN, SK_BOWS, 110),
+ APT(SP_DEMONSPAWN, SK_CROSSBOWS, 110),
+ APT(SP_DEMONSPAWN, SK_THROWING, 110),
+ APT(SP_DEMONSPAWN, SK_ARMOUR, 110),
+ APT(SP_DEMONSPAWN, SK_DODGING, 110),
+ APT(SP_DEMONSPAWN, SK_STEALTH, 110),
+ APT(SP_DEMONSPAWN, SK_STABBING, 110),
+ APT(SP_DEMONSPAWN, SK_SHIELDS, 110),
+ APT(SP_DEMONSPAWN, SK_TRAPS_DOORS, 110),
+ APT(SP_DEMONSPAWN, SK_UNARMED_COMBAT, 110),
+ APT(SP_DEMONSPAWN, SK_SPELLCASTING, 130),
+ APT(SP_DEMONSPAWN, SK_CONJURATIONS, 100),
+ APT(SP_DEMONSPAWN, SK_ENCHANTMENTS, 110),
+ APT(SP_DEMONSPAWN, SK_SUMMONINGS, 100),
+ APT(SP_DEMONSPAWN, SK_NECROMANCY, 90),
+ APT(SP_DEMONSPAWN, SK_TRANSLOCATIONS, 110),
+ APT(SP_DEMONSPAWN, SK_TRANSMUTATIONS, 110),
+ APT(SP_DEMONSPAWN, SK_FIRE_MAGIC, 100),
+ APT(SP_DEMONSPAWN, SK_ICE_MAGIC, 110),
+ APT(SP_DEMONSPAWN, SK_AIR_MAGIC, 110),
+ APT(SP_DEMONSPAWN, SK_EARTH_MAGIC, 110),
+ APT(SP_DEMONSPAWN, SK_POISON_MAGIC, 100),
+ APT(SP_DEMONSPAWN, SK_INVOCATIONS, 60),
+ APT(SP_DEMONSPAWN, SK_EVOCATIONS, 80),
+
+ // SP_GHOUL
+ APT(SP_GHOUL, SK_FIGHTING, 80),
+ APT(SP_GHOUL, SK_SHORT_BLADES, 110),
+ APT(SP_GHOUL, SK_LONG_BLADES, 110),
+ APT(SP_GHOUL, SK_AXES, 110),
+ APT(SP_GHOUL, SK_MACES_FLAILS, 110),
+ APT(SP_GHOUL, SK_POLEARMS, 110),
+ APT(SP_GHOUL, SK_STAVES, 110),
+ APT(SP_GHOUL, SK_SLINGS, 130),
+ APT(SP_GHOUL, SK_BOWS, 130),
+ APT(SP_GHOUL, SK_CROSSBOWS, 130),
+ APT(SP_GHOUL, SK_THROWING, 130),
+ APT(SP_GHOUL, SK_ARMOUR, 110),
+ APT(SP_GHOUL, SK_DODGING, 110),
+ APT(SP_GHOUL, SK_STEALTH, 80),
+ APT(SP_GHOUL, SK_STABBING, 100),
+ APT(SP_GHOUL, SK_SHIELDS, 110),
+ APT(SP_GHOUL, SK_TRAPS_DOORS, 120),
+ APT(SP_GHOUL, SK_UNARMED_COMBAT, 80),
+ APT(SP_GHOUL, SK_SPELLCASTING, 160),
+ APT(SP_GHOUL, SK_CONJURATIONS, 130),
+ APT(SP_GHOUL, SK_ENCHANTMENTS, 130),
+ APT(SP_GHOUL, SK_SUMMONINGS, 120),
+ APT(SP_GHOUL, SK_NECROMANCY, 100),
+ APT(SP_GHOUL, SK_TRANSLOCATIONS, 120),
+ APT(SP_GHOUL, SK_TRANSMUTATIONS, 120),
+ APT(SP_GHOUL, SK_FIRE_MAGIC, 150),
+ APT(SP_GHOUL, SK_ICE_MAGIC, 90),
+ APT(SP_GHOUL, SK_AIR_MAGIC, 150),
+ APT(SP_GHOUL, SK_EARTH_MAGIC, 90),
+ APT(SP_GHOUL, SK_POISON_MAGIC, 100),
+ APT(SP_GHOUL, SK_INVOCATIONS, 80),
+ APT(SP_GHOUL, SK_EVOCATIONS, 100),
+
+ // SP_KENKU
+ APT(SP_KENKU, SK_FIGHTING, 100),
+ APT(SP_KENKU, SK_SHORT_BLADES, 80),
+ APT(SP_KENKU, SK_LONG_BLADES, 80),
+ APT(SP_KENKU, SK_AXES, 80),
+ APT(SP_KENKU, SK_MACES_FLAILS, 80),
+ APT(SP_KENKU, SK_POLEARMS, 80),
+ APT(SP_KENKU, SK_STAVES, 80),
+ APT(SP_KENKU, SK_SLINGS, 100),
+ APT(SP_KENKU, SK_BOWS, 80),
+ APT(SP_KENKU, SK_CROSSBOWS, 80),
+ APT(SP_KENKU, SK_THROWING, 90),
+ APT(SP_KENKU, SK_ARMOUR, 90),
+ APT(SP_KENKU, SK_DODGING, 90),
+ APT(SP_KENKU, SK_STEALTH, 100),
+ APT(SP_KENKU, SK_STABBING, 80),
+ APT(SP_KENKU, SK_SHIELDS, 100),
+ APT(SP_KENKU, SK_TRAPS_DOORS, 100),
+ APT(SP_KENKU, SK_UNARMED_COMBAT, 80),
+ APT(SP_KENKU, SK_SPELLCASTING, 130),
+ APT(SP_KENKU, SK_CONJURATIONS, 60),
+ APT(SP_KENKU, SK_ENCHANTMENTS, 160),
+ APT(SP_KENKU, SK_SUMMONINGS, 70),
+ APT(SP_KENKU, SK_NECROMANCY, 80),
+ APT(SP_KENKU, SK_TRANSLOCATIONS, 150),
+ APT(SP_KENKU, SK_TRANSMUTATIONS, 150),
+ APT(SP_KENKU, SK_FIRE_MAGIC, 90),
+ APT(SP_KENKU, SK_ICE_MAGIC, 120),
+ APT(SP_KENKU, SK_AIR_MAGIC, 90),
+ APT(SP_KENKU, SK_EARTH_MAGIC, 120),
+ APT(SP_KENKU, SK_POISON_MAGIC, 100),
+ APT(SP_KENKU, SK_INVOCATIONS, 120),
+ APT(SP_KENKU, SK_EVOCATIONS, 80),
+
+ // SP_MERFOLK
+ APT(SP_MERFOLK, SK_FIGHTING, 80),
+ APT(SP_MERFOLK, SK_SHORT_BLADES, 70),
+ APT(SP_MERFOLK, SK_LONG_BLADES, 90),
+ APT(SP_MERFOLK, SK_AXES, 140),
+ APT(SP_MERFOLK, SK_MACES_FLAILS, 150),
+ APT(SP_MERFOLK, SK_POLEARMS, 50),
+ APT(SP_MERFOLK, SK_STAVES, 130),
+ APT(SP_MERFOLK, SK_SLINGS, 150),
+ APT(SP_MERFOLK, SK_BOWS, 140),
+ APT(SP_MERFOLK, SK_CROSSBOWS, 140),
+ APT(SP_MERFOLK, SK_THROWING, 100),
+ APT(SP_MERFOLK, SK_ARMOUR, 160),
+ APT(SP_MERFOLK, SK_DODGING, 60),
+ APT(SP_MERFOLK, SK_STEALTH, 90),
+ APT(SP_MERFOLK, SK_STABBING, 70),
+ APT(SP_MERFOLK, SK_SHIELDS, 100),
+ APT(SP_MERFOLK, SK_TRAPS_DOORS, 120),
+ APT(SP_MERFOLK, SK_UNARMED_COMBAT, 90),
+ APT(SP_MERFOLK, SK_SPELLCASTING, 130),
+ APT(SP_MERFOLK, SK_CONJURATIONS, 140),
+ APT(SP_MERFOLK, SK_ENCHANTMENTS, 90),
+ APT(SP_MERFOLK, SK_SUMMONINGS, 100),
+ APT(SP_MERFOLK, SK_NECROMANCY, 150),
+ APT(SP_MERFOLK, SK_TRANSLOCATIONS, 140),
+ APT(SP_MERFOLK, SK_TRANSMUTATIONS, 60),
+ APT(SP_MERFOLK, SK_FIRE_MAGIC, 160),
+ APT(SP_MERFOLK, SK_ICE_MAGIC, 80),
+ APT(SP_MERFOLK, SK_AIR_MAGIC, 150),
+ APT(SP_MERFOLK, SK_EARTH_MAGIC, 150),
+ APT(SP_MERFOLK, SK_POISON_MAGIC, 80),
+ APT(SP_MERFOLK, SK_INVOCATIONS, 80),
+ APT(SP_MERFOLK, SK_EVOCATIONS, 80),
+
+ // SP_VAMPIRE
+ APT(SP_VAMPIRE, SK_FIGHTING, 110),
+ APT(SP_VAMPIRE, SK_SHORT_BLADES, 90),
+ APT(SP_VAMPIRE, SK_LONG_BLADES, 100),
+ APT(SP_VAMPIRE, SK_AXES, 110),
+ APT(SP_VAMPIRE, SK_MACES_FLAILS, 140),
+ APT(SP_VAMPIRE, SK_POLEARMS, 110),
+ APT(SP_VAMPIRE, SK_STAVES, 140),
+ APT(SP_VAMPIRE, SK_SLINGS, 140),
+ APT(SP_VAMPIRE, SK_BOWS, 140),
+ APT(SP_VAMPIRE, SK_CROSSBOWS, 140),
+ APT(SP_VAMPIRE, SK_THROWING, 140),
+ APT(SP_VAMPIRE, SK_ARMOUR, 140),
+ APT(SP_VAMPIRE, SK_DODGING, 90),
+ APT(SP_VAMPIRE, SK_STEALTH, 50),
+ APT(SP_VAMPIRE, SK_STABBING, 90),
+ APT(SP_VAMPIRE, SK_SHIELDS, 110),
+ APT(SP_VAMPIRE, SK_TRAPS_DOORS, 100),
+ APT(SP_VAMPIRE, SK_UNARMED_COMBAT, 90),
+ APT(SP_VAMPIRE, SK_SPELLCASTING, 130),
+ APT(SP_VAMPIRE, SK_CONJURATIONS, 160),
+ APT(SP_VAMPIRE, SK_ENCHANTMENTS, 90),
+ APT(SP_VAMPIRE, SK_SUMMONINGS, 100),
+ APT(SP_VAMPIRE, SK_NECROMANCY, 90),
+ APT(SP_VAMPIRE, SK_TRANSLOCATIONS, 140),
+ APT(SP_VAMPIRE, SK_TRANSMUTATIONS, 90),
+ APT(SP_VAMPIRE, SK_FIRE_MAGIC, 140),
+ APT(SP_VAMPIRE, SK_ICE_MAGIC, 100),
+ APT(SP_VAMPIRE, SK_AIR_MAGIC, 100),
+ APT(SP_VAMPIRE, SK_EARTH_MAGIC, 120),
+ APT(SP_VAMPIRE, SK_POISON_MAGIC, 120),
+ APT(SP_VAMPIRE, SK_INVOCATIONS, 120),
+ APT(SP_VAMPIRE, SK_EVOCATIONS, 90),
+
+ // SP_DEEP_DWARF
+ APT(SP_DEEP_DWARF, SK_FIGHTING, 110),
+ APT(SP_DEEP_DWARF, SK_SHORT_BLADES, 120),
+ APT(SP_DEEP_DWARF, SK_LONG_BLADES, 100),
+ APT(SP_DEEP_DWARF, SK_AXES, 90),
+ APT(SP_DEEP_DWARF, SK_MACES_FLAILS, 100),
+ APT(SP_DEEP_DWARF, SK_POLEARMS, 120),
+ APT(SP_DEEP_DWARF, SK_STAVES, 110),
+ APT(SP_DEEP_DWARF, SK_SLINGS, 90),
+ APT(SP_DEEP_DWARF, SK_BOWS, 180),
+ APT(SP_DEEP_DWARF, SK_CROSSBOWS, 90),
+ APT(SP_DEEP_DWARF, SK_THROWING, 120),
+ APT(SP_DEEP_DWARF, SK_ARMOUR, 90),
+ APT(SP_DEEP_DWARF, SK_DODGING, 90),
+ APT(SP_DEEP_DWARF, SK_STEALTH, 70),
+ APT(SP_DEEP_DWARF, SK_STABBING, 110),
+ APT(SP_DEEP_DWARF, SK_SHIELDS, 90),
+ APT(SP_DEEP_DWARF, SK_TRAPS_DOORS, 80),
+ APT(SP_DEEP_DWARF, SK_UNARMED_COMBAT, 120),
+ APT(SP_DEEP_DWARF, SK_SPELLCASTING, 160),
+ APT(SP_DEEP_DWARF, SK_CONJURATIONS, 120),
+ APT(SP_DEEP_DWARF, SK_ENCHANTMENTS, 120),
+ APT(SP_DEEP_DWARF, SK_SUMMONINGS, 110),
+ APT(SP_DEEP_DWARF, SK_NECROMANCY, 80),
+ APT(SP_DEEP_DWARF, SK_TRANSLOCATIONS, 90),
+ APT(SP_DEEP_DWARF, SK_TRANSMUTATIONS, 120),
+ APT(SP_DEEP_DWARF, SK_FIRE_MAGIC, 110),
+ APT(SP_DEEP_DWARF, SK_ICE_MAGIC, 110),
+ APT(SP_DEEP_DWARF, SK_AIR_MAGIC, 170),
+ APT(SP_DEEP_DWARF, SK_EARTH_MAGIC, 60),
+ APT(SP_DEEP_DWARF, SK_POISON_MAGIC, 130),
+ APT(SP_DEEP_DWARF, SK_INVOCATIONS, 60),
+ APT(SP_DEEP_DWARF, SK_EVOCATIONS, 50),
+};
+// Traditionally, Spellcasting and In/Evocations formed the exceptions here:
+// Spellcasting skill was more expensive with about 130%, the other two got
+// a discount with about 75%.
+static int _spec_skills[NUM_SPECIES][NUM_SKILLS];
/* *************************************************************
@@ -2108,7 +1852,23 @@ unsigned int skill_exp_needed(int lev)
int species_skills(int skill, species_type species)
{
- return spec_skills[species][skill];
+ static bool spec_skills_initialised = false;
+ if (!spec_skills_initialised)
+ {
+ // Setup sentinel values to find errors more easily.
+ const int sentinel = 999;
+ for (int sp = 0; sp < NUM_SPECIES; ++sp)
+ for (int sk = 0; sk < NUM_SKILLS; ++sk)
+ _spec_skills[sp][sk] = sentinel;
+ for (unsigned i = 0; i < ARRAYSZ(species_skill_aptitudes); ++i)
+ {
+ const species_skill_aptitude &ssa(species_skill_aptitudes[i]);
+ ASSERT(_spec_skills[ssa.species][ssa.skill] == sentinel);
+ _spec_skills[ssa.species][ssa.skill] = ssa.aptitude;
+ }
+ spec_skills_initialised = true;
+ }
+ return _spec_skills[species][skill];
}
void wield_warning(bool newWeapon)
diff --git a/crawl-ref/source/util/gen-apt.pl b/crawl-ref/source/util/gen-apt.pl
index a327ef61bc..6134b89152 100755
--- a/crawl-ref/source/util/gen-apt.pl
+++ b/crawl-ref/source/util/gen-apt.pl
@@ -184,24 +184,23 @@ sub load_aptitudes {
while (<$inf>) {
last if /\*{40,}/;
if (!$seen_skill_start) {
- $seen_skill_start = 1 if /spec_skills\[/;
+ $seen_skill_start = 1 if /species_skill_aptitudes\[/;
}
else {
- if (m{//\s*SP_(\w+)\s*$}) {
+ if (/APT\(\s*SP_(\w+)\s*,\s*SK_(\w+)\s*,\s*(\d+)\s*\)/) {
$species = propercase_string(fix_underscores($1));
- die "$skillfile:$.: Repeated skill def for $species.\n"
- if $SEEN_SPECIES{$species};
- $SEEN_SPECIES{$species} = 1;
- push @SPECIES, $species;
- }
- if (m{//\s*SK_(\w+)\s*$} && /^\s*\d+/) {
- m{//\s*SK_(\w+)\s*$};
- my $skill = skill_name($1);
+ if (!$SEEN_SPECIES{$species}) {
+ $SEEN_SPECIES{$species} = 1;
+ push @SPECIES, $species;
+ }
+
+ my $apt = $3;
+ my $skill = skill_name($2);
die "$skillfile:$.: Unknown skill: $skill\n"
unless $SKILL_ABBR{$skill};
die "$skillfile:$.: Repeated skill def $1 for $species.\n"
if $SPECIES_SKILLS{$species}{$skill};
- ($SPECIES_SKILLS{$species}{$skill}) = /^\s*(\d+)/;
+ ($SPECIES_SKILLS{$species}{$skill}) = $apt;
}
}
}