to avoid attacking e.g. friendly monsters in melee when not confused (usually via the Ctrl-key combinations while trying to disarm traps).
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5140 c06c8d41-db1a-0410-9941-cceddc491573
JBMC2XNV3DNWMMLKUDRKBPDCPVRITY6L3WRQSD2SJMWNZUSIBMRQC R7B6DUQQPRHSTBC5HT363VYF4ZCXDDSXOQQJOVCFPLP52P4NMTCAC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC 6YQRV6WDHJU3CQSXGZLXLNOKGLBCTMOIU4ZWZVFSQULY7OUFX7AQC 25ZIRUIA4L47VVI3CHNJ66VZZDPJLTYC5KHEMD6BROGKLQNC5G5AC R22TTMI6WXWULC7ODKFF3QCB7MOTETQQ6IR4BUCUPOCQKQNCTT5AC U24V52ZGVQ2XGYA4RNKT26VIIEKUYC6AUEWZSDYJFXB5ZWMMXTPAC 5HGMULU7IWTFJJH35S6XTCW3YZEMCORXHQL6NVY2TO4DUMVITNJAC if (mons_friendly(def))conduct.set(DID_ATTACK_FRIEND, 5, true, def);else if (mons_neutral(def))conduct.set(DID_ATTACK_NEUTRAL, 5, true, def);
const bool wontAttack = mons_wont_attack(def);const bool isFriendly = mons_friendly(def);const bool isNeutral = mons_neutral(def);const bool isUnchivalric = is_unchivalric_attack(&you, def, def);const bool isHoly = mons_is_holy(def);
if (mons_is_holy(def))did_god_conduct(DID_ATTACK_HOLY, def->hit_dice, true, def);
if (wontAttack|| (is_good_god(you.religion) && (isNeutral || isHoly))|| (you.religion == GOD_SHINING_ONE && isUnchivalric)){snprintf(info, INFO_SIZE, "Really attack this %s%s creature?",(isFriendly) ? "friendly " :(wontAttack) ? "non-hostile " :(isNeutral) ? "neutral " :(isUnchivalric) ? "helpless ": "",(isHoly) ? "holy": "");if (you.confused() || yesno(info, false, 'n')){if (isFriendly)conduct.set(DID_ATTACK_FRIEND, 5, true, def);else if (isNeutral)conduct.set(DID_ATTACK_NEUTRAL, 5, true, def);if (isUnchivalric)conduct.set(DID_UNCHIVALRIC_ATTACK, 4, true, def);if (isHoly)conduct.set(DID_ATTACK_HOLY, def->hit_dice, true, def);}elsecancel_attack = true;}
if (unchivalric){if (you.religion == GOD_SHINING_ONE&& !tso_unchivalric_attack_safe_monster(defender)){if (!you.confused()&& !yesno("Really attack this helpless creature?", false, 'n')){cancel_attack = true;return;}}did_god_conduct(DID_UNCHIVALRIC_ATTACK, 4, true, def);}