git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3639 c06c8d41-db1a-0410-9941-cceddc491573
KOBNLIHIAHSV6IPA3R4HI2KB5HY5XIIJQPJ2GBETYB5AK73NAKJQC
GUUCEQSUVRDD6GIOYCMFPHMS7YORWLZQBVM4CSOXD6GD5F4OMTIAC
XOQT7UV34HL6343R7VDXA6LAOTQDAKUAF3IWOROKHSMXRYGO5G6AC
SQFABNVS6OSVRBMJAIV6KIIZW2TYIOQ5BZGLPYJ6BPFD2HMRH4MAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
TN2D3PHU7VSGUND2BDIC2F4U6O2HFSV3JXLF7HMYYMY7GZXM6IFAC
BWHU47MJ7KAVKMKMRBVYLOHUCASSNVCGPC3SPMNBAC7DLI6XX2YQC
PEXHYCLRKDG2PVOJ3DDCMUZUK2HTSPU5WKH4MODFL4FTBQRQTY5QC
A3QXTQ5RKIGDWIKA7JHIGIHQE5EVGO6WNNWF6XY2VZNP67JESDHQC
RW5UFKOQ5JYDVX7LEW26AWEFKFA4M5PTAIXWRCVESEQK3WKTY6VQC
FDMKFGCTWKKSBP3B5VE4BSVFHUVNX5BSDFRVD6E735DHPVYEQFGQC
UFKLHUYL7WAQ3CI3D42T4C6KBGAUR63DSQAUQTTZG7GJMXSCVJWAC
// If you don't worship a good god, you make all non-hostile
// holy beings hostile.
else
// If you don't worship a good god, you make all
// non-hostile holy beings hostile. If you do worship a
// good god, you make all non-hostile evil and unholy beings
// hostile.
else if ((mons_class_holiness(monster->type) == MH_HOLY &&
!is_good_god(you.religion)) ||
(mons_is_evil_or_unholy(monster) &&
is_good_god(you.religion)))
// for now WAS_NEUTRAL stays
success = true;
}
}
}
}
return success;
}
static bool holy_beings_attitude_change()
{
return apply_to_all_dungeons(holy_beings_on_level_attitude_change);
}
static bool evil_beings_on_level_attitude_change()
{
bool success = false;
for ( int i = 0; i < MAX_MONSTERS; ++i )
{
monsters *monster = &menv[i];
if (monster->type != -1
&& mons_is_evil_or_unholy(monster))
{
#ifdef DEBUG_DIAGNOSTICS
mprf(MSGCH_DIAGNOSTICS, "Attitude changing: %s on level %d, branch %d",
monster->name(DESC_PLAIN).c_str(),
static_cast<int>(you.your_level),
static_cast<int>(you.where_are_you));
#endif
// If you worship a good god, you make all non-hostile evil
// and unholy beings hostile.
if (is_good_god(you.religion))
{
if (monster->attitude != ATT_HOSTILE)
{
monster->attitude = ATT_HOSTILE;
behaviour_event(monster, ME_ALERT, MHITYOU);