HD-dependent random resistance check, replace it with an Invocations-dependent timeout, and restrict it to monsters that are no worse than lightly wounded/damaged.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10134 c06c8d41-db1a-0410-9941-cceddc491573
OY7HY5MTXM2OO43HM2GYUS5U3MBTKDM66IALE5OXAXF2EGYVAEGQC JOBNTX4QILB3BEPWWIQHKWPXXZJWUOOSRBKSYMRDOMNVTZKCSBNAC WRZPWGC3EX4FH2OSQHYKVLBUCYUNLHXFMSCWMBDMPVB3YAWNO4GAC KZWOHH536QBWAPWROR32EOXEK5LRY6I5VHVL7HHI7GOFKCMQTCSQC BNRY5YIXLFE2TDNU2JQHWWXJQVWNSEWQ52DU7XUWIT5DZWKGBDDAC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC 3HGELZU7NELOQ635HZO6IJIYLBSNCJ5VPH46IE22KA3OSLEFK7AQC 23PFLB2E4QHL5SF3Q2YV5FXRH6MFHENEU2ACVC572ZCYDXCBZVQAC 2G7MZ653N3JUHJ4DA5Q7VRO3S5T27DLPKDCJEKB6DGYSTXULUVWAC 5XSXMOBGXFLTIQE6WDXWWFVDOTUPZSIQ2FWT3YI5QMVU6D76IUYQC X5WLJCJVW55SXZVP7IKP7ADCJIGNKN4PKAXFECVR6TNK7XSMZR7QC T4FNOPMWYYJHJBTTY33PB43HTJPKEC46L62YERTWIX73HYZSELXQC HM6NOS7BN5665KWIFGBXOHZIDMRSVCESN72GMGI6NVBFZGCF3L6QC FD6T6JC5XCPO2PD335ZGQZUNGKQ6UVZH6DP23RSQXQWZESVYGJXAC OEHJJ5X5CBOHTXISZLJHVLCAPH77RYSVKKBGW3US2GGXZMZJ5CEQC UADYVV3UD5ERJTZZJGY4EUQ4NJ2JSBG7YYUJ75ZRBIXRQXQKOJPAC Mark a monster's living soul as yours, once the monster dies. The soul will retain at least some of the monster's innate healing ability and faculties, and sometimes even the monster's equipment. However, you can only enslave one soul at any given time. Note that enslaved souls, whether twisted or intact, can follow you beyond the level they were created on.
The soul will retain at least some of the monster's innate healing ability and faculties, and sometimes even the monster's equipment. However, only one soul can be enslaved at a time. Also, only a relatively uninjured monster can have its soul marked, and the duration of the mark is dependent on Invocations skill.Note that enslaved souls, whether twisted or intact, can follow you beyond the level they were created on.
if (mon->hit_dice >= random2(ench_power / 2))return (MON_RESIST);
// The monster can be no more than lightly wounded/damaged,// using the formula from monstuff.cc:mons_get_damage_level().if (mon->hit_points <= (mon->max_hit_points * 3) / 4){simple_monster_message(mon, "'s soul is too badly injured.");return (MON_OTHER);}