second round tweaking them some more.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5207 c06c8d41-db1a-0410-9941-cceddc491573
3ZUPHPFVGLZ6GPKZ4NSFUX5Z4FUQCE7NJX2EUNN2AXARWOXX7U7AC
LSFSENHBGYSW3C3OASCE4W3ISKOVVBR5INV4N7SLU4MD5HBD5CVQC
3ZWALZFSTSIVYXY4BAY6ANGINTDACZC6RSSJTEMQSTSUIE66YOBQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
77H4BWWPPGLM3PLZH4QTAJRXIZTSDVNCOKZE223I437FN2UJ34RQC
SJP5BHX6MFWF3OSQPEF4WUWZWPUGMOVURTT2CUVT6H3A66LETXUAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
7K5P2GRF6QUXTMERG2R3BB6DZFQYJQ6V2KNPMBPFDLOP36NQILPAC
/* jmf: some references for words I used below:
Peltast http://www.geocities.com/Athens/Aegean/9659/shields_main.htm
Phalangite http://www.users.cts.com/funtv/j/jjartist/EpiroteScenario1.htm
Yeoman: http://snt.student.utwente.nl/campus/sagi/artikel/longbow/longbow.html
/* Basic goals for titles:
The higher titles must be come last.
Referring to the skill itself is fine ("Transmuter") but not impressive.
No overlaps, high diversity.
{"Fighting", "Skirmisher", "Grunt", "Veteran", "Warrior", "Slayer"}, // 0
{"Short Blades", "Stabber", "Cutter", "Knifefighter", "Eviscerator", "Blademaster"},
{"Long Blades", "Slasher", "Slicer", "Fencer", "Swordfighter", "Swordmaster"},
{"Fighting", "Skirmisher", "Fighter", "Warrior", "Slayer", "Conqueror"}, // 0
{"Short Blades", "Cutter", "Slicer", "Swashbuckler", "Blademaster", "Eviscerator"},
{"Long Blades", "Slasher", "Carver", "Fencer", "%s Blade", "Swordmaster"},
{"Axes", "Chopper", "Cleaver", "Hacker", "Severer", "Axe Maniac"},
{"Maces & Flails", "Basher", "Cudgeler", "Shatterer", "Bludgeoner", "Skullcrusher"}, // 5
{"Polearms", "Spear-Bearer", "Pike-%s", "Phalangite", "Lancer", "Halberdier"},
{"Staves", "Twirler", "Cruncher", "Smasher", "Stickfighter", "Skullbreaker"},
{"Slings", "Vandal", "Slinger", "Whirler", "Crazy %s", "Very Crazy %s"},
{"Bows", "Shooter", "Yeoman", "Archer", "Merry %s", "Merry %s"},
{"Crossbows", "Shooter", "Sharpshooter", "Archer", "%s Ballista", "%s Ballista"}, // 10
{"Darts", "Dart Thrower", "Hurler", "Hurler, First Class", "%s Darts Champion", "Universal Darts Champion"},
{"Throwing", "Chucker", "Thrower", "Deadly Accurate", "Hawkeye", "Sniper"},
{"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", "Pulverizerr", "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"},
{"Dodging", "Ducker", "Dodger", "Nimble", "Spry", "Acrobat"},
{"Stealth", "Footpad", "Sneak", "Covert", "Unseen", "Imperceptible"},
{"Dodging", "Ducker", "Nimble", "Spry", "Acrobat", "Intangible"},
{"Stealth", "Sneak", "Covert", "Unseen", "Imperceptible", "Ninja"}, // 15
{"Shields", "Shield-Bearer", "Blocker", "%s Barricade", "Peltast", "Hoplite"},
{"Traps & Doors", "Disarmer", "Trapper", "Architect", "Engineer", "Dungeon Master"},
{"Shields", "Shield-Bearer", "Hoplite", "Blocker", "Peltast", "%s Barricade"},
{"Traps & Doors", "Scout", "Disarmer", "Vigilant", "Perceptive", "Dungeon Master"},
{"Translocations", "Jumper", "Blinker", "Shifter", "Portalist", "Plane Walker"}, // 30
{"Transmigration", "Changer", "Transmogrifier", "Transformer", "Alchemist", "Transmuter"},
{"Translocations", "Grasshopper", "Placeless %s", "Blinker", "Portalist", "Plane %s"}, // 30
{"Transmigration", "Changer", "Transmogrifier", "Alchemist", "Malleable", "Shapeless %s"},
{"Ice Magic", "Chiller", "Frost Mage", "Ice Mage", "Cryomancer", "Englaciator"},
{"Air Magic", "Wind Mage", "Cloud Mage", "Air Mage", "Sky Mage", "Storm Mage"}, // 35
{"Ice Magic", "Chiller", "Frost Mage", "Gelid", "Cryomancer", "Englaciator"},
{"Air Magic", "Gusty", "Cloud Mage", "Aerator", "Anemomancer", "Meteorologist"}, // 35
const bool need_cap = (where == 0 && best_skill != SK_NECROMANCY);
const std::string sp = species_name(static_cast<species_type>(species),
0, true, need_cap);
result.replace(where, 2, sp);
if (best_skill == SK_UNARMED_COMBAT)
{
std::string weightclass = "";
switch (species)
{
case SP_OGRE:
case SP_OGRE_MAGE:
case SP_TROLL:
weightclass = "Heavy";
break;
case SP_NAGA:
case SP_CENTAUR:
weightclass = "Cruiser";
break;
default:
weightclass = "Middle";
break;
case SP_HIGH_ELF:
case SP_GREY_ELF:
case SP_DEEP_ELF:
case SP_SLUDGE_ELF:
case SP_KENKU:
weightclass = "Little";
break;
case SP_HALFLING:
case SP_GNOME:
case SP_KOBOLD:
weightclass = "Feather";
break;
case SP_SPRIGGAN:
weightclass = "Fly";
break;
}
result.replace(where, 2, weightclass);
}
else if (best_skill == SK_TRANSLOCATIONS && skill_rank == 5)
{
result.replace(where, 2, (species == SP_NAGA ? "Slider"
: "Walker"));
}
else
{
const bool need_cap = (best_skill != SK_BOWS);
const std::string sp = species_name(static_cast<species_type>(species),
0, true, need_cap);
result.replace(where, 2, sp);
}