with (hopefully) more useful variants. We tried to achieve a balance between shortness and and being easy to understand. I also moved around the order, so that the most important properties, esp. negative ones, come first, and added the terse ego descriptor for randarts weapons.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3409 c06c8d41-db1a-0410-9941-cceddc491573
5YYQEHOEBH6H4FXW3H6RAQ7U6VZ33BVP3S3I3BE3GM5IUL5DAKYQC
IXLNOTBJGHKESBCTME6QAR6XVWFNCHYGMS62V62ZJEA7VLQHXO2QC
6UPCB64Z2W243QR3JQD7WPQMPVNVBPYRG7GTGZK6LTKKBBSKBHZQC
TXVVUZNKI2O5YJXC2N4GPG3RJFNC6LSC5IJZKD5XLS4LGJHD2H7AC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
6GDKXNFXPKQ6AVNOSMJECN7CLELM2KCMVRM2A7BARLK2NNILN6SAC
7K5P2GRF6QUXTMERG2R3BB6DZFQYJQ6V2KNPMBPFDLOP36NQILPAC
KPU2SA6G7UECM5N6PNXOT5CCQAYFBN47K5JYBQMFBD25HL2A5GIAC
// Positive, quantative attributes
{ "AC", RAP_AC, 0 },
{ "EV", RAP_EVASION, 0 },
{ "Str", RAP_STRENGTH, 0 },
{ "Dex", RAP_DEXTERITY, 0 },
{ "Int", RAP_INTELLIGENCE, 0 },
{ "Acc", RAP_ACCURACY, 0 },
{ "Dam", RAP_DAMAGE, 0 },
// Resists
{ "RF", RAP_FIRE, 1 },
{ "RC", RAP_COLD, 1 },
{ "RE", RAP_ELECTRICITY, 1 },
{ "RP", RAP_POISON, 1 },
{ "RN", RAP_NEGATIVE_ENERGY, 1 },
{ "MR", RAP_MAGIC, 2 },
// (Generally) negative attributes
// These come first, so they don't get chopped off!
{ "-CAST", RAP_PREVENT_SPELLCASTING, 2 },
{ "-TELE", RAP_PREVENT_TELEPORTATION, 2 },
{ "MUT", RAP_MUTAGENIC, 2 },
{ "*Rage", RAP_ANGRY, 2 },
{ "*TELE", RAP_CAUSE_TELEPORTATION, 2 },
{ "Hunger", RAP_METABOLISM, 1 },
{ "Noisy", RAP_NOISES, 2 },
// Positive, qualitative attributes
{ "MP", RAP_MAGICAL_POWER, 0 },
{ "SInv", RAP_EYESIGHT, 2 },
{ "Stl", RAP_STEALTH, 2 },
// Evokable abilities come second
{ "+Blink", RAP_BLINK, 2 },
{ "+Tele", RAP_CAN_TELEPORT, 2 },
{ "+Rage", RAP_BERSERK, 2 },
{ "+Inv", RAP_INVISIBLE, 2 },
{ "+Lev", RAP_LEVITATE, 2 },
{ "+Map", RAP_MAPPING, 2 },
// (Generally) negative attributes
{ "Ang", RAP_BERSERK, 2 },
{ "Noi", RAP_NOISES, 2 },
{ "-Spl", RAP_PREVENT_SPELLCASTING, 2 },
{ "-Tp", RAP_PREVENT_TELEPORTATION, 2 },
{ "+Tp", RAP_CAUSE_TELEPORTATION, 2 },
{ "Hun", RAP_METABOLISM, 1 },
{ "Mut", RAP_MUTAGENIC, 2 },
// Resists, also really important
{ "rElec", RAP_ELECTRICITY, 1 },
{ "rPois", RAP_POISON, 2 },
{ "rF", RAP_FIRE, 1 },
{ "rC", RAP_COLD, 1 },
{ "rN", RAP_NEGATIVE_ENERGY, 1 },
{ "MR", RAP_MAGIC, 2 },
// Evokable abilities
{ "Inv", RAP_INVISIBLE, 2 },
{ "Lev", RAP_LEVITATE, 2 },
{ "Blk", RAP_BLINK, 2 },
{ "?Tp", RAP_CAN_TELEPORT, 2 },
{ "Map", RAP_MAPPING, 2 }
// Positive, quantative attributes
{ "AC", RAP_AC, 0 },
{ "EV", RAP_EVASION, 0 },
{ "Str", RAP_STRENGTH, 0 },
{ "Dex", RAP_DEXTERITY, 0 },
{ "Int", RAP_INTELLIGENCE, 0 },
{ "Acc", RAP_ACCURACY, 0 },
{ "Dam", RAP_DAMAGE, 0 },
const int sval = std::min(std::abs(val), 3);
work << std::string(sval, (val > 0 ? '+' : '-'))
<< propanns[i].name;
int sval = std::min(std::abs(val), 3);
// list one '+' less for hunger, stealth, and shock resistance
if ((propanns[i].prop == RAP_METABOLISM
|| propanns[i].prop == RAP_STEALTH
|| propanns[i].prop == RAP_ELECTRICITY) && sval > 0)
{
sval--;
}
work << propanns[i].name
<< std::string(sval, (val > 0 ? '+' : '-'));