git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1027 c06c8d41-db1a-0410-9941-cceddc491573
LIBWXPN6HLJAIGEFJYLOL4HLIUD236U3WM5QPHIZ3DSB4CCUJERAC UA567W6JTM5YXHN7ASN6KU3K66JCXPLTKSAOK5ZEXQMEI6K2SHZAC JR2RAQ523LOWNDYJNK6AZVKI6WVMI622PIV72XWOVZYPXPUKSQWAC 77H4BWWPPGLM3PLZH4QTAJRXIZTSDVNCOKZE223I437FN2UJ34RQC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC YWYXUCZKGNIAWAUKUESIPFCAL5HZOKOEWHUEUW7X4DMAX2HG2FSAC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC 43ZTEB57FU7KE5EVMYWZONNVJBZCGF3JEAJZIY25LC4LGE65PG5QC // can be found in player.cc, ie those that the player can tell by// using the '@' command. Things like confusion and sticky flame
// can be found in player.cc, ie those that the player can tell by// using the '@' command. Things like confusion and sticky flame
(ustealth < 10) ? "extremely un" :(ustealth < 20) ? "very un" :(ustealth < 30) ? "un" :(ustealth < 50) ? "fairly " :(ustealth < 80) ? "" :(ustealth < 120) ? "quite " :(ustealth < 160) ? "very " :(ustealth < 200) ? "extremely ": "incredibly " );
(ustealth < 10) ? "extremely un" :(ustealth < 20) ? "very un" :(ustealth < 30) ? "un" :(ustealth < 50) ? "fairly " :(ustealth < 80) ? "" :(ustealth < 120) ? "quite " :(ustealth < 160) ? "very " :(ustealth < 200) ? "extremely ": "incredibly " );text += info;
snprintf( info, INFO_SIZE,"%s in your current equipment.",(to_hit < 1) ? "You are completely incapable of fighting" :(to_hit < 5) ? "Hitting even clumsy monsters is extremely awkward" :(to_hit < 10) ? "Hitting average monsters is awkward" :(to_hit < 15) ? "Hitting average monsters is difficult" :(to_hit < 20) ? "Hitting average monsters is hard" :(to_hit < 30) ? "Very agile monsters are a bit awkward to hit" :(to_hit < 45) ? "Very agile monsters are a bit difficult to hit" :(to_hit < 60) ? "Very agile monsters are a bit hard to hit" :(to_hit < 100) ? "You feel comfortable with your ability to fight": "You feel confident with your ability to fight" );text += info;
snprintf( info, INFO_SIZE,"%s in your current equipment.",(to_hit < 1) ? "You are completely incapable of fighting" :(to_hit < 5) ? "Hitting even clumsy monsters is extremely awkward" :(to_hit < 10) ? "Hitting average monsters is awkward" :(to_hit < 15) ? "Hitting average monsters is difficult" :(to_hit < 20) ? "Hitting average monsters is hard" :(to_hit < 30) ? "Very agile monsters are a bit awkward to hit" :(to_hit < 45) ? "Very agile monsters are a bit difficult to hit" :(to_hit < 60) ? "Very agile monsters are a bit hard to hit" :(to_hit < 100) ? "You feel comfortable with your ability to fight": "You feel confident with your ability to fight" );text += info;
continue;int level = you.mutation[ i ];switch(i) {case MUT_TOUGH_SKIN:AC_change += level;break;case MUT_STRONG:Str_change += level;break;case MUT_CLEVER:Int_change += level;break;case MUT_AGILE:Dex_change += level;break;case MUT_GREEN_SCALES:AC_change += 2*level-1;break;case MUT_BLACK_SCALES:AC_change += 3*level;Dex_change -= level;break;case MUT_GREY_SCALES:AC_change += level;break;case MUT_BONEY_PLATES:AC_change += level+1;Dex_change -= level;break;case MUT_REPULSION_FIELD:EV_change += 2*level-1;if (level == 3) {if (have_any)text += ", ";text += "repel missiles";have_any = true;}break;case MUT_POISON_RESISTANCE:if (have_any)text += ", ";text += "poison resistance";have_any = true;break;case MUT_CARNIVOROUS:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "carnivore %d", level);text += info;have_any = true;break;case MUT_HERBIVOROUS:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "herbivore %d", level);text += info;have_any = true;break;case MUT_HEAT_RESISTANCE:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "fire resistance %d", level);text += info;have_any = true;break;case MUT_COLD_RESISTANCE:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "cold resistance %d", level);text += info;have_any = true;break;case MUT_SHOCK_RESISTANCE:if (have_any)text += ", ";text += "electricity resistance";have_any = true;break;case MUT_REGENERATION:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "regeneration %d", level);text += info;have_any = true;break;case MUT_FAST_METABOLISM:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "fast metabolism %d", level);text += info;have_any = true;break;case MUT_SLOW_METABOLISM:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "slow metabolism %d", level);text += info;have_any = true;break;case MUT_WEAK:Str_change -= level;break;case MUT_DOPEY:Int_change -= level;break;case MUT_CLUMSY:Dex_change -= level;break;case MUT_TELEPORT_CONTROL:if (have_any)text += ", ";text += "teleport control";have_any = true;break;case MUT_TELEPORT:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "teleportitis %d", level);text += info;have_any = true;break;case MUT_MAGIC_RESISTANCE:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "magic resistance %d", level);text += info;have_any = true;break;case MUT_FAST:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "speed %d", level);text += info;have_any = true;break;case MUT_ACUTE_VISION:if (have_any)text += ", ";text += "see invisible";have_any = true;break;case MUT_DEFORMED:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "deformed body %d", level);text += info;have_any = true;break;case MUT_TELEPORT_AT_WILL:snprintf(info, INFO_SIZE, "teleport at will %d", level);if (have_any)text += ", ";text += info;have_any = true;break;case MUT_SPIT_POISON:if (have_any)text += ", ";text += "spit poison";have_any = true;break;case MUT_MAPPING:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "sense surroundings %d", level);text += info;have_any = true;break;case MUT_BREATHE_FLAMES:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "breathe flames %d", level);text += info;have_any = true;break;case MUT_BLINK:if (have_any)text += ", ";text += "blink";have_any = true;break;case MUT_HORNS:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "horns %d", level);text += info;have_any = true;break;case MUT_STRONG_STIFF:Str_change += level;Dex_change -= level;break;case MUT_FLEXIBLE_WEAK:Str_change -= level;Dex_change += level;break;case MUT_LOST:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "forgetfulness %d", level);text += info;have_any = true;break;case MUT_CLARITY:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "clarity %d", level);text += info;have_any = true;break;case MUT_BERSERK:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "berserk %d", level);text += info;have_any = true;break;case MUT_DETERIORATION:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "deteriotation %d", level);text += info;have_any = true;break;case MUT_BLURRY_VISION:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "blurry vision %d", level);text += info;have_any = true;break;case MUT_MUTATION_RESISTANCE:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "mutation resistance %d", level);text += info;have_any = true;break;case MUT_FRAIL:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "-%d hp", level*10);text += info;have_any = true;break;case MUT_ROBUST:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "+%d hp", level*10);text += info;have_any = true;break;case MUT_TORMENT_RESISTANCE:if (have_any)text += ", ";text += "torment resistance";have_any = true;break;case MUT_NEGATIVE_ENERGY_RESISTANCE:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "life protection %d", level);text += info;have_any = true;break;case MUT_SUMMON_MINOR_DEMONS:if (have_any)text += ", ";text += "summon minor demons";have_any = true;break;case MUT_SUMMON_DEMONS:if (have_any)text += ", ";text += "summon demons";have_any = true;break;case MUT_HURL_HELLFIRE:if (have_any)text += ", ";text += "hurl hellfire";have_any = true;break;case MUT_CALL_TORMENT:if (have_any)text += ", ";text += "call torment";have_any = true;break;case MUT_RAISE_DEAD:if (have_any)text += ", ";text += "raise dead";have_any = true;break;case MUT_CONTROL_DEMONS:if (have_any)text += ", ";text += "control demons";have_any = true;break;case MUT_PANDEMONIUM:if (have_any)text += ", ";text += "portal to Pandemonium";have_any = true;break;case MUT_DEATH_STRENGTH:if (have_any)text += ", ";text += "draw strength from death and destruction";have_any = true;break;case MUT_CHANNEL_HELL:if (have_any)text += ", ";text += "channel magical energy from Hell";have_any = true;break;case MUT_DRAIN_LIFE:if (have_any)text += ", ";text += "drain life";have_any = true;break;case MUT_THROW_FLAMES:if (have_any)text += ", ";text += "throw flames of Gehenna";have_any = true;break;case MUT_THROW_FROST:if (have_any)text += ", ";text += "throw frost of Cocytus";have_any = true;break;case MUT_SMITE:if (have_any)text += ", ";text += "invoke powers of Tartarus";have_any = true;break;case MUT_CLAWS:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "claws %d", level);text += info;have_any = true;break;case MUT_HOOVES:if (have_any)text += ", ";text += "hooves";have_any = true;break;case MUT_BREATHE_POISON:if (have_any)text += ", ";text += "breathe poison";have_any = true;break;case MUT_STINGER:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "stinger %d", level);text += info;have_any = true;break;case MUT_BIG_WINGS:if (have_any)text += ", ";text += "large and strong wings";have_any = true;break;case MUT_BLUE_MARKS:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "blue evil mark %d", level);text += info;have_any = true;break;case MUT_GREEN_MARKS:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "green evil mark %d", level);text += info;have_any = true;break;case MUT_RED_SCALES:AC_change += level;if (level == 3)AC_change++;break;case MUT_NACREOUS_SCALES:AC_change += 2*level-1;break;case MUT_GREY2_SCALES:AC_change += 2*level;Dex_change -= 1;if (level == 3)Dex_change--;break;case MUT_METALLIC_SCALES:AC_change += 3*level+1;if (level == 1)AC_change--;Dex_change -= level + 1;break;case MUT_BLACK2_SCALES:AC_change += 2*level-1;break;case MUT_WHITE_SCALES:AC_change += 2*level-1;break;case MUT_YELLOW_SCALES:AC_change += 2*level;Dex_change -= level-1;break;case MUT_BROWN_SCALES:AC_change += 2*level;if (level == 3)AC_change--;break;case MUT_BLUE_SCALES:AC_change += level;break;case MUT_PURPLE_SCALES:AC_change += 2*level;break;case MUT_SPECKLED_SCALES:AC_change += level;break;case MUT_ORANGE_SCALES:AC_change += level;if (level > 1)AC_change++;break;case MUT_INDIGO_SCALES:AC_change += 2*level-1;if (level == 1)AC_change++;break;case MUT_RED2_SCALES:AC_change += 2*level;if (level > 1)AC_change++;Dex_change -= level - 1;break;case MUT_IRIDESCENT_SCALES:AC_change += level;break;case MUT_PATTERNED_SCALES:AC_change += level;break;default: break;}}if (AC_change)
continue;int level = you.mutation[ i ];switch(i) {case MUT_TOUGH_SKIN:AC_change += level;break;case MUT_STRONG:Str_change += level;break;case MUT_CLEVER:Int_change += level;break;case MUT_AGILE:Dex_change += level;break;case MUT_GREEN_SCALES:AC_change += 2*level-1;break;case MUT_BLACK_SCALES:AC_change += 3*level;Dex_change -= level;break;case MUT_GREY_SCALES:AC_change += level;break;case MUT_BONEY_PLATES:AC_change += level+1;Dex_change -= level;break;case MUT_REPULSION_FIELD:EV_change += 2*level-1;if (level == 3) {if (have_any)text += ", ";text += "repel missiles";have_any = true;}break;case MUT_POISON_RESISTANCE:if (have_any)text += ", ";text += "poison resistance";have_any = true;break;case MUT_CARNIVOROUS:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "carnivore %d", level);text += info;have_any = true;break;case MUT_HERBIVOROUS:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "herbivore %d", level);text += info;have_any = true;break;case MUT_HEAT_RESISTANCE:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "fire resistance %d", level);text += info;have_any = true;break;case MUT_COLD_RESISTANCE:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "cold resistance %d", level);text += info;have_any = true;break;case MUT_SHOCK_RESISTANCE:if (have_any)text += ", ";text += "electricity resistance";have_any = true;break;case MUT_REGENERATION:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "regeneration %d", level);text += info;have_any = true;break;case MUT_FAST_METABOLISM:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "fast metabolism %d", level);text += info;have_any = true;break;case MUT_SLOW_METABOLISM:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "slow metabolism %d", level);text += info;have_any = true;break;case MUT_WEAK:Str_change -= level;break;case MUT_DOPEY:Int_change -= level;break;case MUT_CLUMSY:Dex_change -= level;break;case MUT_TELEPORT_CONTROL:if (have_any)text += ", ";text += "teleport control";have_any = true;break;case MUT_TELEPORT:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "teleportitis %d", level);text += info;have_any = true;break;case MUT_MAGIC_RESISTANCE:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "magic resistance %d", level);text += info;have_any = true;break;case MUT_FAST:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "speed %d", level);text += info;have_any = true;break;case MUT_ACUTE_VISION:if (have_any)text += ", ";text += "see invisible";have_any = true;break;case MUT_DEFORMED:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "deformed body %d", level);text += info;have_any = true;break;case MUT_TELEPORT_AT_WILL:snprintf(info, INFO_SIZE, "teleport at will %d", level);if (have_any)text += ", ";text += info;have_any = true;break;case MUT_SPIT_POISON:if (have_any)text += ", ";text += "spit poison";have_any = true;break;case MUT_MAPPING:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "sense surroundings %d", level);text += info;have_any = true;break;case MUT_BREATHE_FLAMES:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "breathe flames %d", level);text += info;have_any = true;break;case MUT_BLINK:if (have_any)text += ", ";text += "blink";have_any = true;break;case MUT_HORNS:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "horns %d", level);text += info;have_any = true;break;case MUT_STRONG_STIFF:Str_change += level;Dex_change -= level;break;case MUT_FLEXIBLE_WEAK:Str_change -= level;Dex_change += level;break;case MUT_LOST:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "forgetfulness %d", level);text += info;have_any = true;break;case MUT_CLARITY:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "clarity %d", level);text += info;have_any = true;break;case MUT_BERSERK:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "berserk %d", level);text += info;have_any = true;break;case MUT_DETERIORATION:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "deteriotation %d", level);text += info;have_any = true;break;case MUT_BLURRY_VISION:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "blurry vision %d", level);text += info;have_any = true;break;case MUT_MUTATION_RESISTANCE:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "mutation resistance %d", level);text += info;have_any = true;break;case MUT_FRAIL:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "-%d hp", level*10);text += info;have_any = true;break;case MUT_ROBUST:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "+%d hp", level*10);text += info;have_any = true;break;case MUT_TORMENT_RESISTANCE:if (have_any)text += ", ";text += "torment resistance";have_any = true;break;case MUT_NEGATIVE_ENERGY_RESISTANCE:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "life protection %d", level);text += info;have_any = true;break;case MUT_SUMMON_MINOR_DEMONS:if (have_any)text += ", ";text += "summon minor demons";have_any = true;break;case MUT_SUMMON_DEMONS:if (have_any)text += ", ";text += "summon demons";have_any = true;break;case MUT_HURL_HELLFIRE:if (have_any)text += ", ";text += "hurl hellfire";have_any = true;break;case MUT_CALL_TORMENT:if (have_any)text += ", ";text += "call torment";have_any = true;break;case MUT_RAISE_DEAD:if (have_any)text += ", ";text += "raise dead";have_any = true;break;case MUT_CONTROL_DEMONS:if (have_any)text += ", ";text += "control demons";have_any = true;break;case MUT_PANDEMONIUM:if (have_any)text += ", ";text += "portal to Pandemonium";have_any = true;break;case MUT_DEATH_STRENGTH:if (have_any)text += ", ";text += "draw strength from death and destruction";have_any = true;break;case MUT_CHANNEL_HELL:if (have_any)text += ", ";text += "channel magical energy from Hell";have_any = true;break;case MUT_DRAIN_LIFE:if (have_any)text += ", ";text += "drain life";have_any = true;break;case MUT_THROW_FLAMES:if (have_any)text += ", ";text += "throw flames of Gehenna";have_any = true;break;case MUT_THROW_FROST:if (have_any)text += ", ";text += "throw frost of Cocytus";have_any = true;break;case MUT_SMITE:if (have_any)text += ", ";text += "invoke powers of Tartarus";have_any = true;break;case MUT_CLAWS:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "claws %d", level);text += info;have_any = true;break;case MUT_HOOVES:if (have_any)text += ", ";text += "hooves";have_any = true;break;case MUT_BREATHE_POISON:if (have_any)text += ", ";text += "breathe poison";have_any = true;break;case MUT_STINGER:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "stinger %d", level);text += info;have_any = true;break;case MUT_BIG_WINGS:if (have_any)text += ", ";text += "large and strong wings";have_any = true;break;case MUT_BLUE_MARKS:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "blue evil mark %d", level);text += info;have_any = true;break;case MUT_GREEN_MARKS:if (have_any)text += ", ";snprintf(info, INFO_SIZE, "green evil mark %d", level);text += info;have_any = true;break;case MUT_RED_SCALES:AC_change += level;if (level == 3)AC_change++;break;case MUT_NACREOUS_SCALES:AC_change += 2*level-1;break;case MUT_GREY2_SCALES:AC_change += 2*level;Dex_change -= 1;if (level == 3)Dex_change--;break;case MUT_METALLIC_SCALES:AC_change += 3*level+1;if (level == 1)AC_change--;Dex_change -= level + 1;break;case MUT_BLACK2_SCALES:AC_change += 2*level-1;break;case MUT_WHITE_SCALES:AC_change += 2*level-1;break;case MUT_YELLOW_SCALES:AC_change += 2*level;Dex_change -= level-1;break;case MUT_BROWN_SCALES:AC_change += 2*level;if (level == 3)AC_change--;break;case MUT_BLUE_SCALES:AC_change += level;break;case MUT_PURPLE_SCALES:AC_change += 2*level;break;case MUT_SPECKLED_SCALES:AC_change += level;break;case MUT_ORANGE_SCALES:AC_change += level;if (level > 1)AC_change++;break;case MUT_INDIGO_SCALES:AC_change += 2*level-1;if (level == 1)AC_change++;break;case MUT_RED2_SCALES:AC_change += 2*level;if (level > 1)AC_change++;Dex_change -= level - 1;break;case MUT_IRIDESCENT_SCALES:AC_change += level;break;case MUT_PATTERNED_SCALES:AC_change += level;break;default: break;}}if (AC_change)
output += formatted_string::parse_string(text.substr(start, oldpos-start));output += formatted_string::parse_string(EOL);start = oldpos;}oldpos = pos;
output += formatted_string::parse_string(text.substr(start, oldpos-start));output += formatted_string::parse_string(EOL);start = oldpos;}oldpos = pos;
output += formatted_string::parse_string(text.substr(start, oldpos-start));output += formatted_string::parse_string(EOL);start = oldpos;}oldpos = pos;
output += formatted_string::parse_string(text.substr(start, oldpos-start));output += formatted_string::parse_string(EOL);start = oldpos;}oldpos = pos;