git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2504 c06c8d41-db1a-0410-9941-cceddc491573
MLZSEZWNNZMSIDQNAAIOJJR4K7VSVJICL5SAGHD3ROM7SYDVZABAC
F77HEHFP26LGS3LSDB6J7ZWZUU4X6DMYPMQEAL2JXM4Y3KJU2UDQC
FCB6QLN5VMVEH5G6PHSP5J5SOPMQRUWHAB5J37MLY2EMWMU4OUZAC
736HRWOCKZH7GETIX4TTNLYR4SHV42THVUAERWKL6KK252U7DWPAC
7HMVMNBIRU5WDSIWYK6RX57E4LA35N3HLT7RPIAGCDLEKAEEDX2QC
KBBSDMAXAGEDFMIVL6BSPMMSOBZKWPJTFCLBGCHRLE5DGTVAACSAC
AVCMVFA3MKCXHO6H44UK5KJNIHTGQV7UA7GYXM26VI6TXXU5ZN6QC
UFNXOEBCAUO3QMYOF6EXYILHZ44AXVMCOV76SFV3VV7DMVUPZWBAC
Y4ZNLX7ZW3DDSUXXQSQ235EHKVLLEFOTG2J2FOT7Z6HM6OMPY2OAC
6RJVKSL7RVZIZIZIC4TWIYJQ24RUSB346ODS3NYGDHUIRTC4Z5FQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
LIBWXPN6HLJAIGEFJYLOL4HLIUD236U3WM5QPHIZ3DSB4CCUJERAC
43ZTEB57FU7KE5EVMYWZONNVJBZCGF3JEAJZIY25LC4LGE65PG5QC
UA567W6JTM5YXHN7ASN6KU3K66JCXPLTKSAOK5ZEXQMEI6K2SHZAC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
Z2KSBD2LWXDNFJPIIYS3GGXHBXQLTLDYGPAJY4T3LNNSOVT5ALZAC
7NDXS36TE7QVXTXJWMYSVG5UHCCLPIO4VL6NXFGTDK3ZNKE3A2IAC
JR2RAQ523LOWNDYJNK6AZVKI6WVMI622PIV72XWOVZYPXPUKSQWAC
RGWUYJO74FDGTH22CYSHBKFDGJ4S76WTLIULKPXA4QT5ZCNOB4LQC
22QXEMVWB4WB7NRHBLXMRVAYNG36KKTJJABENPBRXYERXEYVBLFQC
XD27UUFYG5CXSQMTO5TMCAND5QUDNGLNGZFNISRFWCNO7R2ODAPQC
X6JLXMSRNWRGP2PVQYX6Z4OUZLDSSQ2VL3EQQM5Q427MXBMRILEQC
ZCRK2DJ5VKECRQXZTWT4NUDL2VT5ZHUK7NT6NQPLRJ56TDX5PJSAC
AQ36MO7VNGSGQ5KK7JCQA2WEHUELAFLSU2QBUWROVJFOTPMGFGMQC
PGTE3JC4J5U536IJTCJFXTUOSRE73JXZJINWAGCANOQOCGC7J6AAC
3BYA46OYLVN6ZPGAZD5OGIMMH5PRWGNSU3ITJRCVBE6P5HYYYAYQC
LABXKXWWQY2V4FUDLGVTDYHXINAP6KRHZDHBQ2FE22FFOEIZPL6QC
P2ZCF3BBG523ZEOD6XQA4X5YEHBTWH3IM33YVHXP2SQ5POXZIH4QC
UVJBHQ5KGUIEFRHKTYQPKSXYDUDKTRAXINUXGJJJ6QGNCR6JO7ZAC
JK3HFJG76OOQHJMXJUSZRTR5CX5ZMS52LRVBLOR7E2NBI6PRSHHAC
NR7PW3FTNYTZEM7RSWVNMWB5NQHRDMMY3TB6L5II5VCW76OAMT6QC
KBTDCQ7GYBRPB346ZEOJ4OM2XHOHN6FJMVMTOJ42EDK5KJX7VLIAC
CMNLYUECIMEZSOYG4KOSINOPER5OM7PPCGIHCM7LQVWEO77XFUYQC
KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC
EHCZCD3WGKXB4KDQKZXE7FZQHJ6E4IHHCM7GZJBRMDEQSDC223YAC
QDTVLBRGHDTRUVT7I3O72K6TMOYAUSAJBZUHGOEFU2RKJNUPWZSQC
X2FMEN4E345XD26Z2X7JMJ7VGHOGCGIELMHQRE2ITLVNQACP3NOQC
RYT42Z6CED4KV5CCJ45CHZ3DQGLFMDCVH6CSQZNXOILULDG4MXVQC
5BJPWUPLJFS34FUTFJVKA4A52YMIGV6EWDXLNSDCWBJWBGVSQFGQC
3FBKOX4Y5QYPMBOCSAMHNZXCY7Z75YDQDL4EJZHZIGDXL7RMZ7TAC
TTHOIZMSG2GWUO5IQWOPYK5V5DS6HIPD7ULFI6P6E7LQ6MMKPMHAC
int saplevel = 0;
switch (you.species)
{
case SP_GHOUL:
saplevel = 3;
snprintf(buf, sizeof buf, "%sSaprovore : %s",
determine_color_string(3), itosym3(3) );
break;
case SP_KOBOLD:
case SP_TROLL:
saplevel = 2;
snprintf(buf, sizeof buf, "%sSaprovore : %s",
determine_color_string(2), itosym3(2) );
break;
int saplevel = 0;
switch (you.species)
{
case SP_GHOUL:
saplevel = 3;
snprintf(buf, sizeof buf, "%sSaprovore : %s",
determine_color_string(3), itosym3(3) );
break;
case SP_KOBOLD:
case SP_TROLL:
saplevel = 2;
snprintf(buf, sizeof buf, "%sSaprovore : %s",
determine_color_string(2), itosym3(2) );
break;
case SP_HILL_ORC:
case SP_OGRE:
saplevel = 1;
break;
default:
saplevel = 0;
break;
}
int saplevel = you.mutation[MUT_SAPROVOROUS];
// XXX: should probably still notice?
case SP_MUMMY: // no smell
case SP_TROLL: // stupid, living in mess - doesn't care about it
break;
switch (you.mutation[MUT_SAPROVOROUS])
{
// level 1 and level 2 saprovores aren't so touchy
case 1:
case 2:
temp_rand = random2(8);
mpr( ((temp_rand < 5) ? "You smell something rotten." :
(temp_rand == 5) ? "You smell rotting flesh." :
(temp_rand == 6) ? "You smell decay."
: "There is something rotten in your inventory."),
MSGCH_ROTTEN_MEAT );
break;
case SP_GHOUL: //likes it
temp_rand = random2(8);
mpr( ((temp_rand < 5) ? "You smell something rotten." :
(temp_rand == 5) ? "The smell of rotting flesh makes you hungry." :
(temp_rand == 6) ? "You smell decay. Yum-yum."
: "Wow! There is something tasty in your inventory."),
MSGCH_ROTTEN_MEAT );
break;
// level 3 saprovores like it
case 3:
temp_rand = random2(8);
mpr( ((temp_rand < 5) ? "You smell something rotten." :
(temp_rand == 5) ? "The smell of rotting flesh makes you hungry." :
(temp_rand == 6) ? "You smell decay. Yum-yum."
: "Wow! There is something tasty in your inventory."),
MSGCH_ROTTEN_MEAT );
break;
case SP_KOBOLD: //mv: IMO these race aren't so "touchy"
case SP_OGRE:
case SP_MINOTAUR:
case SP_HILL_ORC:
temp_rand = random2(8);
mpr( ((temp_rand < 5) ? "You smell something rotten." :
(temp_rand == 5) ? "You smell rotting flesh." :
(temp_rand == 6) ? "You smell decay."
: "There is something rotten in your inventory."),
MSGCH_ROTTEN_MEAT );
break;
default:
temp_rand = random2(8);
mpr( ((temp_rand < 5) ? "You smell something rotten." :
(temp_rand == 5) ? "The smell of rotting flesh makes you sick." :
(temp_rand == 6) ? "You smell decay. Yuck!"
: "Ugh! There is something really disgusting in your inventory."),
MSGCH_ROTTEN_MEAT );
break;
default:
temp_rand = random2(8);
mpr( ((temp_rand < 5) ? "You smell something rotten." :
(temp_rand == 5) ? "The smell of rotting flesh makes you sick." :
(temp_rand == 6) ? "You smell decay. Yuck!"
: "Ugh! There is something really disgusting in your inventory."),
MSGCH_ROTTEN_MEAT );
break;
}
bool likes_chunks = (you.species == SP_OGRE || you.species == SP_TROLL ||
you.mutation[MUT_CARNIVOROUS] > 0);
bool likes_chunks = (you.omnivorous() ||
you.mutation[MUT_CARNIVOROUS]);
int nutrition = chunk_nutrition(likes_chunks);
int hp_amt = 0;
bool suppress_msg = false; // do we display the chunk nutrition message?
bool do_eat = false;
ghoul_consume_flesh(chunk_effect);
start_delay( DELAY_EAT, 2 );
lessen_hunger( CHUNK_BASE_NUTRITION, true );
nutrition = CHUNK_BASE_NUTRITION;
hp_amt = 1 + random2(5) + random2(1 + you.experience_level);
suppress_msg = true;
switch (chunk_effect)
{
case CE_MUTAGEN_RANDOM:
mpr("This meat tastes really weird.");
mutate(RANDOM_MUTATION);
xom_is_stimulated(100);
break;
case CE_MUTAGEN_RANDOM:
mpr("This meat tastes really weird.");
mutate(RANDOM_MUTATION);
xom_is_stimulated(100);
break;
case CE_MUTAGEN_BAD:
mpr("This meat tastes *really* weird.");
give_bad_mutation();
xom_is_stimulated(random2(200));
break;
case CE_HCL:
rot_player( 10 + random2(10) );
if (disease_player( 50 + random2(100) ))
xom_is_stimulated(random2(100));
break;
case CE_MUTAGEN_BAD:
mpr("This meat tastes *really* weird.");
give_bad_mutation();
xom_is_stimulated(random2(200));
break;
case CE_POISONOUS:
mpr("Yeeuch - this meat is poisonous!");
if (poison_player( 3 + random2(4) ))
xom_is_stimulated(random2(128));
break;
case CE_HCL:
rot_player( 10 + random2(10) );
if (disease_player( 50 + random2(100) ))
xom_is_stimulated(random2(100));
break;
case CE_ROTTEN:
case CE_CONTAMINATED:
if (you.mutation[MUT_SAPROVOROUS] == 3)
{
mprf("This %sflesh tastes delicious!",
(chunk_effect == CE_ROTTEN) ? "rotting " : "");
case CE_POISONOUS:
mpr("Yeeuch - this meat is poisonous!");
if (poison_player( 3 + random2(4) ))
xom_is_stimulated(random2(128));
break;
if (you.species == SP_GHOUL)
heal_from_food(hp_amt, 0, !one_chance_in(4),
one_chance_in(5));
say_chunk_flavour(likes_chunks);
const int nutrition = chunk_nutrition(likes_chunks);
start_delay( DELAY_EAT, 2, nutrition );
lessen_hunger( nutrition, true );
break;
}
}
}
mpr("This raw flesh tastes good.");
mpr("This raw flesh tastes good.");
heal_from_food((!one_chance_in(5)) ? hp_amt : 0, 0,
!one_chance_in(3), false);
start_delay( DELAY_EAT, 2, (suppress_msg) ? 0 : nutrition );
lessen_hunger( nutrition, true );
case SP_HILL_ORC:
case SP_OGRE:
if (!one_chance_in(15))
this_chunk_effect = CE_CLEAN;
case 3:
// Doing this here causes a odd message later. -- bwr
// this_chunk_effect = CE_ROTTEN;
// the amulet of the gourmad will permit consumption of
// contaminated meat as though it were "clean" meat - ghouls get
// rotting meat effect from clean chunks, since they love rotting
// meat.
// The amulet of the gourmand will permit consumption of
// contaminated meat as though it were "clean" meat - level 3
// saprovores get rotting meat effect from clean chunks, since they
// love rotting meat.
if (you.species == SP_GHOUL)
description << "It smells great!";
else if (player_can_smell())
description << "It stinks.";
if (player_can_smell())
{
if (you.mutation[MUT_SAPROVOROUS] == 3)
description << "It smells great!";
else
description << "It stinks.";
}