Replace the "Foo" in Foo Blade, Foo Porcupine, Foo Catapult, Foo Arbalest, Foo Ballista, and Foo Barricade with the capitalized genus (Elf, Orc, Draconian, …)
Merry Foo, Foo of Death, Placeless Foo and Shapeless Foo still use the species name, though that's debatable, of course.
Marksfoo uses the lowercase genus name, in particular "ogre" for Ogre and Ogre-Mage, both.
Add "Plane Glider" as "Plane Foo" variant for Kenku.
Clean up the skill title array a bit.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5262 c06c8d41-db1a-0410-9941-cceddc491573
2YL37AGHLFOMIF3GCTVQGGV2RNNWETWM6ZMUHO3QEWDVBFFSFAKQC
C7RRWT4OPLL3MLBTFYI2Z4PJX2DMS2QHKDLTLQBGR3LD6UCO6XEAC
5C7G5WNZ6USMI4TQFQGLIYOGKPM5H444H6HZV4XA3LRY2IIY4FIQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
7K5P2GRF6QUXTMERG2R3BB6DZFQYJQ6V2KNPMBPFDLOP36NQILPAC
77H4BWWPPGLM3PLZH4QTAJRXIZTSDVNCOKZE223I437FN2UJ34RQC
3ZUPHPFVGLZ6GPKZ4NSFUX5Z4FUQCE7NJX2EUNN2AXARWOXX7U7AC
LSFSENHBGYSW3C3OASCE4W3ISKOVVBR5INV4N7SLU4MD5HBD5CVQC
5YWWRDK5FK7BY5EPDN5YUHWM5MZUSHBARTQEQXGX3327OCM4O3AAC
3ZWALZFSTSIVYXY4BAY6ANGINTDACZC6RSSJTEMQSTSUIE66YOBQC
M5ZDZJBTOJ7SWQPZZQPC24JYZKP26MWSRDHXBWQE2MPPL6WCXOIQC
RISMOCQM6BKK4XSIRKYLOBB2UPDYJNDAL6OGIIR5GGNZQAK5YSZAC
VXSORUQOM2VZA4CAZDC6KPAY373NQIN3UT7CXQXTRCYXO2WM62DAC
6GSGCC5JQJ5NOKX36UHRNOCXNHDBS2A2TDMAR34UBOGWE2DORXIQC
EFWEYIB2R3DPD3JWIPU6LS6SFLPMYN7J7X4GBZR7DJWKHJ3UELSAC
BFCFMN2BXNLXJCYYCL2V2XTDQQNM3PJPSRB6CU76FM3332NC7GMAC
K2GMFKXUWN5R3KCW6OYVXHN47MIQZKEEIOSAU6LFFKBNKF6JBVWAC
HDJSYPW6GTSBM43QYCJQBEBDAUWWHFHUR6DC4ILGF6LJVL26CZPAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
IXLNOTBJGHKESBCTME6QAR6XVWFNCHYGMS62V62ZJEA7VLQHXO2QC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
XDJGQNFELURGXMUAOOVALQMSLAJVHMG63KPKVA33HTJFVZROGZ4AC
O6ZMFKDI3XO2SWPNEYHIPYFDWJR4TVDP5BAATK6LVCVETQID6E7AC
7YUGK5Q64KG5O7GJGTUBRRLHAHBCJ5YOE23YUPT6UBKUSB67CYAQC
QCUMH3C7GXV7ZW444WT5SFAXQOJKJSE2YCQCEHMRYXCWF4QI7UMAC
// Note: Even though %s could be used with most of these, remember that
// Replace @genus@ with lowercase genus, @Genus@ with uppercase, and %s
// with special cases defined below, including but not limited to species.
// NOTE: Even though %s could be used with most of these, remember that
{"Fighting", "Skirmisher", "Fighter", "Warrior", "Slayer", "Conqueror"}, // 0
{"Short Blades", "Cutter", "Slicer", "Swashbuckler", "Blademaster", "Eviscerator"},
{"Long Blades", "Slasher", "Carver", "Fencer", "%s Blade", "Swordmaster"},
{NULL}, // 3- was: great swords {dlb}
{"Axes", "Chopper", "Cleaver", "Hacker", "Severer", "Executioner"},
{"Maces & Flails", "Cudgeler", "Basher", "Bludgeoner", "Shatterer", "Skullcrusher"}, // 5
{"Polearms", "Poker", "Spear-Bearer", "Impaler", "Phalangite", "%s Porcupine"},
{"Staves", "Twirler", "Cruncher", "Stickfighter", "Pulverizer", "Chief of Staff"},
{"Slings", "Vandal", "Slinger", "Whirler", "Slingshot", "%s Catapult"},
{"Bows", "Shooter", "Archer", "Marks%s", "Crack Shot", "Merry %s"},
{"Crossbows", "Bolt Thrower", "Quickloader", "Sharpshooter", "Sniper", "%s Arbalest"}, // 10
{"Darts", "Dart Thrower", "Hurler", "Hedgehog", "Darts Champion", "Perforator"},
{"Throwing", "Chucker", "Thrower", "Deadly Accurate", "Hawkeye", "%s Ballista"},
{"Armour", "Covered", "Protected", "Tortoise", "Impregnable", "Invulnerable"},
{"Dodging", "Ducker", "Nimble", "Spry", "Acrobat", "Intangible"},
{"Stealth", "Sneak", "Covert", "Unseen", "Imperceptible", "Ninja"}, // 15
{"Stabbing", "Miscreant", "Blackguard", "Backstabber", "Cutthroat", "Politician"},
{"Shields", "Shield-Bearer", "Hoplite", "Blocker", "Peltast", "%s Barricade"},
{"Traps & Doors", "Scout", "Disarmer", "Vigilant", "Perceptive", "Dungeon Master"},
// Skill name levels 1-7 levels 8-14 levels 15-20 levels 21-26 level 27
{"Fighting", "Skirmisher", "Fighter", "Warrior", "Slayer", "Conqueror"}, // 0
{"Short Blades", "Cutter", "Slicer", "Swashbuckler", "Blademaster", "Eviscerator"},
{"Long Blades", "Slasher", "Carver", "Fencer", "@Genus@ Blade", "Swordmaster"},
{NULL}, // 3- was: great swords {dlb}
{"Axes", "Chopper", "Cleaver", "Hacker", "Severer", "Executioner"},
{"Maces & Flails", "Cudgeler", "Basher", "Bludgeoner", "Shatterer", "Skullcrusher"}, // 5
{"Polearms", "Poker", "Spear-Bearer", "Impaler", "Phalangite", "@Genus@ Porcupine"},
{"Staves", "Twirler", "Cruncher", "Stickfighter", "Pulverizer", "Chief of Staff"},
{"Slings", "Vandal", "Slinger", "Whirler", "Slingshot", "@Genus@ Catapult"},
{"Bows", "Shooter", "Archer", "Marks@genus@", "Crack Shot", "Merry %s"},
{"Crossbows", "Bolt Thrower", "Quickloader", "Sharpshooter", "Sniper", "@Genus@ Arbalest"}, // 10
{"Darts", "Dart Thrower", "Hurler", "Hedgehog", "Darts Champion", "Perforator"},
{"Throwing", "Chucker", "Thrower", "Deadly Accurate", "Hawkeye", "@Genus@ Ballista"},
{"Armour", "Covered", "Protected", "Tortoise", "Impregnable", "Invulnerable"},
{"Dodging", "Ducker", "Nimble", "Spry", "Acrobat", "Intangible"},
{"Stealth", "Sneak", "Covert", "Unseen", "Imperceptible", "Ninja"}, // 15
{"Stabbing", "Miscreant", "Blackguard", "Backstabber", "Cutthroat", "Politician"},
{"Shields", "Shield-Bearer", "Hoplite", "Blocker", "Peltast", "@Genus@ Barricade"},
{"Traps & Doors", "Scout", "Disarmer", "Vigilant", "Perceptive", "Dungeon Master"},
{"Spellcasting", "Magician", "Thaumaturge", "Eclecticist", "Sorcerer", "Archmage"}, // 25
{"Conjurations", "Ruinous", "Conjurer", "Destroyer", "Devastator", "Annihilator"},
{"Enchantments", "Charm-Maker", "Infuser", "Bewitcher", "Enchanter", "Spellbinder"},
{"Summonings", "Caller", "Summoner", "Convoker", "Demonologist", "Hellbinder"},
{"Necromancy", "Grave Robber", "Reanimator", "Necromancer", "Thanatomancer", "%s of Death"},
{"Translocations", "Grasshopper", "Placeless %s", "Blinker", "Portalist", "Plane %s"}, // 30
{"Transmigration", "Changer", "Transmogrifier", "Alchemist", "Malleable", "Shapeless %s"},
{"Divinations", "Seer", "Soothsayer", "Diviner", "Augur", "Oracle"},
{"Spellcasting", "Magician", "Thaumaturge", "Eclecticist", "Sorcerer", "Archmage"}, // 25
{"Conjurations", "Ruinous", "Conjurer", "Destroyer", "Devastator", "Annihilator"},
{"Enchantments", "Charm-Maker", "Infuser", "Bewitcher", "Enchanter", "Spellbinder"},
{"Summonings", "Caller", "Summoner", "Convoker", "Demonologist", "Hellbinder"},
{"Necromancy", "Grave Robber", "Reanimator", "Necromancer", "Thanatomancer", "%s of Death"},
{"Translocations", "Grasshopper", "Placeless %s", "Blinker", "Portalist", "Plane %s"}, // 30
{"Transmigration", "Changer", "Transmogrifier", "Alchemist", "Malleable", "Shapeless %s"},
{"Divinations", "Seer", "Soothsayer", "Diviner", "Augur", "Oracle"},
{"Fire Magic", "Firebug", "Arsonist", "Scorcher", "Pyromancer", "Infernalist"},
{"Ice Magic", "Chiller", "Frost Mage", "Gelid", "Cryomancer", "Englaciator"},
{"Air Magic", "Gusty", "Cloud Mage", "Aerator", "Anemomancer", "Meteorologist"}, // 35
{"Earth Magic", "Digger", "Geomancer", "Earth Mage", "Metallomancer", "Petrodigitator"},
{"Poison Magic", "Stinger", "Tainter", "Polluter", "Contaminator", "Envenomancer"},
{"Fire Magic", "Firebug", "Arsonist", "Scorcher", "Pyromancer", "Infernalist"},
{"Ice Magic", "Chiller", "Frost Mage", "Gelid", "Cryomancer", "Englaciator"},
{"Air Magic", "Gusty", "Cloud Mage", "Aerator", "Anemomancer", "Meteorologist"}, // 35
{"Earth Magic", "Digger", "Geomancer", "Earth Mage", "Metallomancer", "Petrodigitator"},
{"Poison Magic", "Stinger", "Tainter", "Polluter", "Contaminator", "Envenomancer"},
{"Invocations", "Believer", "Agitator", "Worldly Agent", "Theurge", "Avatar"}, // 38
{"Evocations", "Charlatan", "Prestidigitator", "Fetichist", "Evocator", "Talismancer"}, // 39
// for titles for godless characters, see below
{"Invocations", "Believer", "Agitator", "Worldly Agent", "Theurge", "Avatar"},
{"Evocations", "Charlatan", "Prestidigitator", "Fetichist", "Evocator", "Talismancer"}, // 39
{NULL}, // 40- empty
{NULL}, // 41- empty
{NULL}, // 42- empty
{NULL}, // 43- empty
{NULL}, // 44- empty
{NULL}, // 45- empty
{NULL}, // 46- empty
{NULL}, // 47- empty
{NULL}, // 48- empty
{NULL} // 49- empty {end of array}
{NULL}, // 40- empty
{NULL}, // 41- empty
{NULL}, // 42- empty
{NULL}, // 43- empty
{NULL}, // 44- empty
{NULL}, // 45- empty
{NULL}, // 46- empty
{NULL}, // 47- empty
{NULL}, // 48- empty
{NULL} // 49- empty {end of array}
3.10: but it never is, and CLASSES is probably broken now. Anyway,
the Spellcasting skill (25) is actually about 130% of what is shown here.
*/
// Spellcasting and In/Evocations form the exceptions here:
// Spellcasting skill is actually about 130%, the other two about 75%.
const std::string::size_type where = result.find("%s");
// Replace all occurrences of @genus@ with the player genus.
std::string genus = species_name(you.species, 1, true, false, true);
std::string::size_type where = result.find("@genus@");
if (where != std::string::npos)
{
lowercase(genus);
result = replace_all(result, "@genus@", genus);
}
else
{
if (you.species == SP_OGRE_MAGE)
genus = species_name(you.species, 1, true, false, false);
result = replace_all(result, "@Genus@", genus);
}
where = result.find("%s");