existing mutagenic glow stronger (piety loss, no penalty). At the same time go easier on the "eat souled being" misbehaviour: increased piety loss, but give penance only for eating very intelligent monsters, so that eating goblins and the like is an option again. (Cannibalism is checked first, and has worse effects.)
Also fix restriction for items offered for ?recharging.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3789 c06c8d41-db1a-0410-9941-cceddc491573
ENOQQ6DEA6ECRNTBGYYNK7G3DFEILMKQBNKP4SUQIZW2L6HWVR7QC
ST3CXDUDCT4LYUREVQE6YDKTGM3XZTSGGNCHWKMYJDQVZ2VSFYZQC
2U47I7M3TKXUM3KHMO3UH7KGMRKOGHJQFVYPC4CTAWBV22T2HTEQC
XGHRLF5KASEHD5UTAT7XBQFET3EXXFBYNT5KM6VGWVW4URJNKAYQC
MDAJYB6STTZPNHRQ2X66MMMSONMKXTESLHJSFPGN7H3D3TOVBAVAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
AUXVWXWIFSTWFA6VZXN2FMG7FQEKRZVV6MD32VQQ7J2RKCXHAVGAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
CGYTZT5QWIEGYKUOLOK7MFXSLJKLYRZONER5ZCDZO5XYWSLG475QC
6PAG7GHXHIYXJPPTEK4KZQZT4CL2SJDAGTVIUDB4KK66PVSTWUMAC
YCL3W2PFE6ILTGBFODCSXNPDIA46KVSZP2TI7HDMYAOEJT65RIEAC
6GT5JAWOIIL4SQ5MWIID6ZVO3KKQFWDQDZNVFHZ6DNK5QCBXJ4UAC
JK3HFJG76OOQHJMXJUSZRTR5CX5ZMS52LRVBLOR7E2NBI6PRSHHAC
HIRKGUMNJPWKSVTR6TVBPD3MWNA63CEHCLCIPWEMGDFHVB3NPLDQC
3IJHKZOTXLU7B6F4UIKXCQCPXEVLKRX2M3VWAAPGRLL24IIP2T2QC
if (!known)
if (thing_done == DID_CAUSE_GLOWING)
{
static long last_glowing_lecture = -1L;
if (last_glowing_lecture != you.num_turns)
{
simple_god_message(" does not appreciate the mutagenic glow "
"surrounding you!");
last_glowing_lecture = you.num_turns;
}
if (!known)
break;
}
else if (!known)
static const char * _get_rotting_how()
{
ASSERT(you.rotting > 0 || you.species == SP_GHOUL);
if (you.rotting > 15)
return (" before your eyes");
if (you.rotting > 8)
return (" away quickly");
if (you.rotting > 4)
return (" badly");
if (you.species == SP_GHOUL)
return (" faster than usual");
return("");
}
{
// I apologize in advance for the horrendous ugliness about to
// transpire. Avert your eyes!
mprf("Your flesh is rotting%s",
(you.rotting > 15) ? " before your eyes." :
(you.rotting > 8) ? " away quickly." :
(you.rotting > 4) ? " badly." :
((you.species == SP_GHOUL && you.rotting) ?
" faster than usual." : ".") );
}
mprf("Your flesh is rotting%s.", _get_rotting_how());
// get current contamination level
int old_level;
int new_level;
const int glow = you.magic_contamination;
if (glow > 60)
return (glow / 20 + 2);
if (glow > 40)
return 4;
if (glow > 25)
return 3;
if (glow > 15)
return 2;
if (glow > 5)
return 1;
return 0;
}
// controlled is true if the player actively did something to cause
// contamination (such as drink a known potion of resistance),
// status_only is true only for the status output
void contaminate_player(int change, bool controlled, bool status_only)
{
// get current contamination level
int old_level = _get_contamination_level();
int new_level = 0;
new_level = (you.magic_contamination > 60)?(you.magic_contamination / 20 + 2) :
(you.magic_contamination > 40)?4 :
(you.magic_contamination > 25)?3 :
(you.magic_contamination > 15)?2 :
(you.magic_contamination > 5)?1 : 0;
new_level = _get_contamination_level();
mprf((change > 0) ? MSGCH_WARN : MSGCH_RECOVERY,
"You feel %s contaminated with magical energies.",
(change > 0) ? "more" : "less" );
// Zin doesn't like mutations or mutagenic radiation.
if (you.religion == GOD_ZIN)
{
// Whenever the glow status is first reached, give a warning message.
if (old_level < 1 && new_level >= 1)
did_god_conduct(DID_CAUSE_GLOWING, 0, false);
// If the player actively did something to increase glowing,
// Zin is displeased.
else if (controlled && change > 0 && old_level > 0)
did_god_conduct(DID_CAUSE_GLOWING, 1 + new_level, true);
}