(Fixes 1967981: TSO punishes fighting back against "helpless" fleeing monsters.)
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5236 c06c8d41-db1a-0410-9941-cceddc491573
WQIEW3O4MANA2KKYRUWEZP44KHVJ4RRHEZTDXSF4EDELX66LO26QC
LTU7DTR46YNJX552LCOOSYHL33H24JW4F3ER524TDVQP7MEDNHWQC
TNZRAWGVN7WQEVRHRIZEOJRWLIPFPWAUSZWA2IHRGU6UOUUGP2BQC
64534WL35FKYVCX53LHIWA6GLZPK6BLDYKQ2SNQCP7DIIVHV6RKAC
IXRAAGS4HSSLICDTAJJTLUP3GFCKD2SPVOVVVFF5QEAATLFBRBPQC
SFWCESFCUEVKJ6ZQQX3Y5YTIQD5BC6MCVSLVZFRGRTU46BFLKKWAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
R22TTMI6WXWULC7ODKFF3QCB7MOTETQQ6IR4BUCUPOCQKQNCTT5AC
DOZORMA366M4HB5JKSS27BMCR6ET7QNZNND2B7KV3NVEEPR5H7EAC
6LT6USGJOTDMRJGXLAN2NSZXK2GKWEXDKKUV6SVV7ZC6WI6EKMDQC
UKYGZDI6PYZPXDACCQGVPHANUP5ADCSNROOZIE7LYIZQWSNFHJZAC
GUXTGUEMZYBRGV5QUAQSJHG3AOIQDWWCDIMOX4LASFJAZVGL2WQAC
JJULXW764V5C2HJKZNWQAEWB6QM5YZADD7ZCE35LYTBFEM6PMYCAC
LUNOTEIMYZJ7JL5P55GEHUVSDEZMYX3TWYUB2ABRHAYJEWQSSXIAC
VXSORUQOM2VZA4CAZDC6KPAY373NQIN3UT7CXQXTRCYXO2WM62DAC
5FECCMAC5QKG3SJ4ATZFE2QF7I3A4YKWKCU4XQEW2P2SWZ2J33YQC
EFWEYIB2R3DPD3JWIPU6LS6SFLPMYN7J7X4GBZR7DJWKHJ3UELSAC
RBC6SN3MFBHGSIHAMKBUD7S7ULXOW7AX3WLAB2DPFMHAADOEIL2QC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
X6JLXMSRNWRGP2PVQYX6Z4OUZLDSSQ2VL3EQQM5Q427MXBMRILEQC
TW7QOMTSLYPGUUWHGHLY5G5LV6QQRQIKK4BSE64RY7RDGKVDHCEAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
DDU4A3JGN5IUIPP5IASOODKPR2WBHSDSV4FITZ6HNXNSXXQACWAQC
GPEJOT73KMACP33IPAKFR5ROGHCOIP22VXZMQNYTGLEA2OSZUM2AC
MHHBLKFDEKM5CJ55ZCCFJEI4QH3WVLX673FWNJMXAKBG4FHXG4DAC
KVW54IFH4ZGUGFISE42UUJCACJRVV3ITFCCUYO3OVPHMQFHIHG7QC
TTCA2KKE56DAAKEVUGAP7ZRNF5KDLOWRVO37E3D6KDNMLDBVL7MAC
NUYXKJP5YXHRDUQW5QW7UC3D5U3VPANIOZAOHFCPWMSRYGMA3GCAC
X5WLJCJVW55SXZVP7IKP7ADCJIGNKN4PKAXFECVR6TNK7XSMZR7QC
5JS3QSE3EIXSBVI4DATH2EIFD7QN3POAFEUM7MK4NRMPH5JOPAAQC
BBQWA33DPXWEDYOOPO45VAYD4JQDZQVMZSEJ4RUI5LLC733IMIIQC
GRIODTWHFS4UV4ZKPP4RDHMPYYRUWX3H3JA3ZBINCKADKVEP5U3QC
LJK4ZQATLSB4MKZG3ARZX5V6RFGTN3NLCN6GTCUGJQKU26SOXMUAC
LFBNFE3PZBXTR2ROPKYPARUWLJAYWAKGTS7VBWADZWVVSJ5CLX6AC
SJDOBXECX7F3ZPPVR7FPURE53D47PP2TFIF4SB6XPS456PZV3DQAC
EJYK3CKIEMP4NMZUCMUYLHIBE7A3LPZOU7DUON5V7CPHY7QEKLEAC
PL4TZU6HM2KZA45CNHNHZZSBXB2VFWZWQULDSVS5G5GD5XVERFTAC
4UXFU3FZOCBSLDQ4S7MJKAE2H7VUHCNRDQMIY6NJ3PHYXWNGISDQC
ASH5CK6CPBKMLGGIRJ5GKTWMS5W3OBVHTL66RTYZIPFM6KFBYA3QC
KAOE5HB3THUKVGFZRO5EZESHEB3Q34WUO5DFMLWIKOBF47LZTIYAC
NVSFIV2ZKP44XHCSCXG6OZVGL67OIFINC34J2EMKTA4KULCERUEAC
CGYTZT5QWIEGYKUOLOK7MFXSLJKLYRZONER5ZCDZO5XYWSLG475QC
KS4WBDOLZ45T5Q742JZQIRN3H7XZTYDPM4TCIAILIRO3OV7ANR2AC
4LCVKF2K5AKIEAOU5GA7XURF4RSCFMTR4RDRW6Z7X5BHQOWGU6XQC
RKFHYYANUZQHOWOE6YHVFFJNCZU7X67FWUQPQFF6KJKMNIKXFWEAC
UZ5623MOLKBTGBSRBJ4OBOEI4IEZSPV3NCV2DRMUZ3CHHJQVHIIAC
CLIEHAE2PP7ZIGLLIMYCWM4FC54KBOAN5AILOLAZJ5S26GTJM4RQC
KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC
7EI4HMXZ7TAWZKFZG2SXHDAX3FWFBCZLUAKOALPRFF72FS7NKVBQC
ASSERT(is_global() ||
(level_type == LEVEL_DUNGEON && branch >= BRANCH_MAIN_DUNGEON &&
branch < NUM_BRANCHES) ||
(level_type > LEVEL_DUNGEON && level_type < NUM_LEVEL_AREA_TYPES &&
branch == -1));
ASSERT(is_global()
|| level_type == LEVEL_DUNGEON && branch >= BRANCH_MAIN_DUNGEON
&& branch < NUM_BRANCHES
|| level_type > LEVEL_DUNGEON && level_type < NUM_LEVEL_AREA_TYPES
&& branch == -1);
ASSERT((level_type2 == LEVEL_DUNGEON && branch >= BRANCH_MAIN_DUNGEON &&
branch < NUM_BRANCHES) ||
(level_type2 > LEVEL_DUNGEON && level_type < NUM_LEVEL_AREA_TYPES));
ASSERT(level_type2 == LEVEL_DUNGEON && branch >= BRANCH_MAIN_DUNGEON
&& branch < NUM_BRANCHES
|| level_type2 > LEVEL_DUNGEON && level_type < NUM_LEVEL_AREA_TYPES);
// before we get into the inventory init, set light radius based
// on species vision. currently, all species see out to 8 squares.
// Before we get into the inventory init, set light radius based
// on species vision. Currently, all species see out to 8 squares.
Options.prev_race = ng_race;
Options.prev_cls = ng_cls;
Options.prev_weapon = ng_weapon;
// ck, dk, pr and book are asked last
// --> don't need to be changed
Options.prev_race = ng_race;
Options.prev_cls = ng_cls;
Options.prev_weapon = ng_weapon;
// ck, dk, pr and book are asked last --> don't need to be changed
// we calculate hp and mp here; all relevant factors should be
// finalized by now (GDL)
// We calculate hp and mp here; all relevant factors should be
// finalized by now. (GDL)
// just set behaviour.. foe doesn't change.
if (mon->behaviour != BEH_CORNERED && !mon->has_ench(ENCH_FEAR))
// Just set behaviour.. foe doesn't change.
if (mon->behaviour != BEH_CORNERED)
// Won't sing if either of you silenced, or it's friendly or confused.
if (monster->has_ench(ENCH_CONFUSION) || mons_friendly(monster)
// Won't sing if either of you silenced, or it's friendly,
// confused or fleeing.
if (monster->has_ench(ENCH_CONFUSION) || monster->behaviour == BEH_FLEE
|| mons_friendly(monster)
&& (spell_cast == SPELL_NO_SPELL
|| (!_is_emergency_spell(hspell_pass, spell_cast)
&& one_chance_in(4)))
&& (spell_cast == SPELL_NO_SPELL
|| !_is_emergency_spell(hspell_pass, spell_cast)
&& one_chance_in(4))
pbolt.name = "hellfire";
pbolt.ex_size = 1;
pbolt.flavour = BEAM_HELLFIRE;
pbolt.aux_source = "burst of hellfire";
pbolt.name = "hellfire";
pbolt.ex_size = 1;
pbolt.flavour = BEAM_HELLFIRE;
pbolt.type = dchar_glyph(DCHAR_FIRED_ZAP);
pbolt.colour = RED;
pbolt.thrower = KILL_MON_MISSILE;
pbolt.type = dchar_glyph(DCHAR_FIRED_ZAP);
pbolt.colour = RED;
pbolt.thrower = KILL_MON_MISSILE;
pbolt.is_beam = false;
pbolt.is_tracer = false;
pbolt.hit = 20;
pbolt.damage = dice_def( 3, 20 );
pbolt.aux_source = "burst of hellfire";
pbolt.is_beam = false;
pbolt.is_tracer = false;
pbolt.hit = 20;
pbolt.damage = dice_def( 3, 20 );