monster draining take multiple levels of negative energy resistance into account, and only set the necromancy conduct if draining actually took place, as with draining beams.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8551 c06c8d41-db1a-0410-9941-cceddc491573
WBNFHKUIC3JAIE5ZN6FZ5WIKBGET4U2JJGUDLDZNYQRLQLUYQYGQC
VUAH6WZ6MW4P2HNX5PUURZ2ISLYYCSRIW2DI5OIINGPD66P7OPZQC
IOYA3OMA3WCNR6AFR4LKE6EGK2TN23YWCRPPRRBKKQ43DS6MKIZQC
QDTVLBRGHDTRUVT7I3O72K6TMOYAUSAJBZUHGOEFU2RKJNUPWZSQC
LRNA65FNZCSZBRU64O3UBUQ72J6ZL6WCWANADSL5VUAURQXJL6GQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
QJXVVCY2SB3JOFTGVYQBBIIIJRLBTUJCBWOTAX44VEJ4ZK5JD2JQC
RWCCZ64BG3HSOTM54ANIGENC3F3AIR42LJFRYSAKMCPCIUSOZY5QC
6F2N65KCUDLW5BUBJ4WXDKSLAPK4OWPKRGUKYZYEI3CC26EYBPJQC
UHQOJDGGYP6MUXC2PMAGZJYJIUSHIVYIX6D4WGOTTSZKWASRAFNQC
6CWMT6I76TMTHT7BVOVZJ7ATDMZ3VBKKICIRRZBOSGLHJMDS2DWQC
6L4EP4ZRWWYLT55PD5KTTJON5J2JB5VV5MWNHF5VPZQZ5BKEYZ4QC
NXIVXEHVXS22UDSQL4KZQ4VHK3XTW7DAGA5LLL3EXY5MHPIUXL7AC
PI5BATR2SER3RFE76IUGHM2AGXVFOUM3PLU7WC2K2Q2BA5K2E73QC
S3AAI5UNOZ72DWBQ4QZQ2IODUI6ZC5X2RIPAPNZ7CPQCIAAT7EKQC
KBNY5FWKTEAKABFCLPC3QFKFSVZKAGXINPCIFV6WDSWFO4VCKNTAC
L4PKJZERR7WADKWHY3MR6J6OZFREVPL3CB43I6MLJ2BVKWCUTE7AC
EQDLV5OMIFO5ZPYNE27VQLLZEIRMSALGNEFWVSCFXJN22A43GCWQC
2KKHQWC5ML42HRY3UCOOEU7CUKAZMPDDD35OARA6HVXU4GDJ3P4QC
QXI6JLO5RGDKUG5H7RBMQTTT3234L2NGHJTMWAF6UJEBJDBDMMNAC
{
// What to do, they're different...
if (defender->atype() == ACT_PLAYER)
{
drain_player();
obvious_effect = true;
}
else
drain_monster();
}
void melee_attack::drain_player()
{
defender->drain_exp(attacker);
special_damage = random2(damage_done) /
(2 + defender->res_negative_energy()) + 1;
}
void melee_attack::drain_monster()