switch to a neutral or evil god, they'll turn hostile. Also, TSO's god gifts will only turn neutral if you switch from him to another good god.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3630 c06c8d41-db1a-0410-9941-cceddc491573
FDMKFGCTWKKSBP3B5VE4BSVFHUVNX5BSDFRVD6E735DHPVYEQFGQC
MM5OWDOFQXT446ZNXJBJ67CKGEOC647BM6AH5GZOPW2EZRMVFA2QC
ECSAD7JJSOUJBCG2SA2R64YJWIGDDP6NHDX5QINBN75VTYDPVZSAC
4GOAJ76M52PYIX67SUMWWT7M6EKRNBAVTKMVMXYIZPZ5EZHIWO7QC
PEXHYCLRKDG2PVOJ3DDCMUZUK2HTSPU5WKH4MODFL4FTBQRQTY5QC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
TN2D3PHU7VSGUND2BDIC2F4U6O2HFSV3JXLF7HMYYMY7GZXM6IFAC
YMUDD3TCTXZ3U4W3AMKNCPO2K5VTOTSXSV34T36NIWMVDJXWA6TAC
6PAG7GHXHIYXJPPTEK4KZQZT4CL2SJDAGTVIUDB4KK66PVSTWUMAC
WVFKGV3AMOYUZ53MWH2RWRITRRCPKKNPTO7QASA5WVKWAUGDJ2OQC
PIGVTTBAQGNHOCX6IXJLGVVURBAT77SD6FQUVTTI5SFTV563GMZQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC
UFKLHUYL7WAQ3CI3D42T4C6KBGAUR63DSQAUQTTZG7GJMXSCVJWAC
SWOYPTHJAWFEDBMB3ROT33VQZIXGZD5UOXEV456DDUENW2HGA66QC
NLQNXH3SVJ52CWXEV35FSSZP32VHC4QFGN3HINF4KO5GZHZMOBKQC
CQ24AVAI6SW3AHTIDMLPSTRRBEU6FHRF5I5FD6G5QIYE6PO4BQMQC
KKEPQAZMWQFWPQ4P4KT5PWG2YFPG7H4JHL5K7USVHQ3Y6L4NWURQC
4O3VTUJT5T7NBNF3Q45XO2WHS6TCJXVLH6CKX4K36WUBDRT5F6KAC
// If you worship an evil god, you make all non-hostile holy
// beings hostile.
if (is_evil_god(you.religion))
// If you don't worship a good god, you make all non-hostile
// holy beings hostile.
else
}
// When abandoning the god in question, turn friendly god gifts neutral.
// If seen, only count monsters where the player can see the change, and
// output a message.
static bool make_god_gifts_on_level_neutral(bool seen = false)
{
int count = 0;
for ( int i = 0; i < MAX_MONSTERS; ++i )
{
monsters *monster = &menv[i];
if (monster->type != -1
&& monster->attitude == ATT_FRIENDLY
&& (monster->flags & MF_GOD_GIFT))
{
// monster changes attitude
monster->attitude = ATT_NEUTRAL;
if (!seen || simple_monster_message(monster, " becomes indifferent."))
count++;
}
}
return (count);
}
static bool god_gifts_neutral_wrapper()
{
return (make_god_gifts_on_level_neutral());
}
// Make friendly god gifts turn neutral on all levels, or on only the
// current one.
static bool make_god_gifts_neutral(bool level_only)
{
bool success = make_god_gifts_on_level_neutral(true);
if (level_only)
return (success);
return (apply_to_all_dungeons(god_gifts_neutral_wrapper) || success);
}
// When you leave one of the good gods for an evil god, you make
// all non-hostile holy beings hostile.
if (you.penance[GOD_ZIN] || you.penance[GOD_SHINING_ONE] ||
you.penance[GOD_ELYVILON])
{
if (holy_beings_attitude_change())
mpr("The divine host forsakes you.", MSGCH_MONSTER_ENCHANT);