git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7400 c06c8d41-db1a-0410-9941-cceddc491573
ISUJEAPPWKP2UIYPT6BJUUNSVH52NEXWGXNUATL7I3IO7TPO32HAC
HMSK6FJSDXLDH3WOSX4V77GBZRW7DLMHHWI2XM53M4CQ2FQFIV2QC
PWY4VZVHDLYL7UVNCCOW7BM7LYK2BOGTL23P75HXUJ33MHJPEJPQC
7UGAJF4UGMMSSPMNT3A7KWHADGIYPEVSQ64SIVZ4HNBJ3DIVSVVAC
KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
SVY2PTCLXR3KNPQAWXVXTTGCC5DR334HOAKHYO3VDDRWM2BWMALAC
LFBNFE3PZBXTR2ROPKYPARUWLJAYWAKGTS7VBWADZWVVSJ5CLX6AC
74LQ7JXVLAFSHLI7LCBKFX47CNTYSKGUQSXNX5FCIUIGCC2JTR3QC
S34LKQDIQJLIWVIPASOJBBZ6ZCXDHP5KPS7TRBZJSCDRVNCLK6UAC
QDTVLBRGHDTRUVT7I3O72K6TMOYAUSAJBZUHGOEFU2RKJNUPWZSQC
I2B33Z7NZGC33AMDSSK446AZZYWKPHWLAGULVHKKZU4MVB4BNJOAC
NVSFIV2ZKP44XHCSCXG6OZVGL67OIFINC34J2EMKTA4KULCERUEAC
UDYVF65OZSNPANLHDI3ODBEGUAKAVZ4KH4OZFAKR2CQJPO4AXU6QC
NO2HRD7RZS42S55UG4FQ5EFQDY6WYWKGIXHUKYLWF36HHE3VZ7WAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
BPSH3LUDUTXMK2QZKSMFDTBNDD6HPILMCBLZNMCRLZZQKPS5QOQQC
OVM7ZULJJ6Q23AQ747AWBGISGDQYCGF2NT5YTXKW633I56WIYZPQC
RWCCZ64BG3HSOTM54ANIGENC3F3AIR42LJFRYSAKMCPCIUSOZY5QC
BRGAZR5AXWC2IALBVXO5SB354IRQEIRHSK55RZPGFI4AGIOD4LUQC
2WVP47RBNL5OVYMAZH7TKRYD7F2TGSZ5X74PWVGAYCQP26G3JUHQC
R22TTMI6WXWULC7ODKFF3QCB7MOTETQQ6IR4BUCUPOCQKQNCTT5AC
X5WLJCJVW55SXZVP7IKP7ADCJIGNKN4PKAXFECVR6TNK7XSMZR7QC
IT3NSSLR756K7TZ7S7DOMS7DZUVGIFS5EAR22PEERAF5ZRBICV4AC
L254F6ZIU2HWGLFFGPIORTN4C3TDQ3E5JZ7Z7GQA5AEDIKL6PKDAC
3JKKL6VSKQHBBTKEBSADZVCNXZLL4S6KN2W7G2CY5OBOMMUTIWXQC
UAJN2CFA2QHYDHW2UFAVPPHDQFCD54RKM6V2UC4AMEDJUBBLNWIQC
5FMXUX2ZFIF6NQZCS54W7ZOCVSH7XR6UIMQ5FW2UZLEN4EWP5PSAC
32PXX2XJVV7YSLLYNAVS7RYKYRAOQ565TZMTITSEPSSXOYPB5M2AC
X6W4FXCQ72PYSDPGMQCZ44QQANZFGTXPUHDC5GW4YFSJ2KPBVAMAC
7YUGK5Q64KG5O7GJGTUBRRLHAHBCJ5YOE23YUPT6UBKUSB67CYAQC
PI5BATR2SER3RFE76IUGHM2AGXVFOUM3PLU7WC2K2Q2BA5K2E73QC
bool poison_player( int amount, bool force = false );
void reduce_poison_player( int amount );
void curare_hits_player(int agent, int degree);
bool poison_player(int amount, bool force = false);
void reduce_poison_player(int amount);
bool poison_player( int amount, bool force )
void curare_hits_player(int agent, int degree)
{
const bool res_poison = player_res_poison();
poison_player(degree);
if (!player_res_asphyx())
{
int hurted = roll_dice(2, 6);
// Note that the hurtage is halved by poison resistance.
if (res_poison)
hurted /= 2;
if (hurted)
{
mpr("You have difficulty breathing.");
ouch(hurted, agent, KILLED_BY_CURARE, "curare-induced apnoea");
}
potion_effect(POT_SLOWING, 2 + random2(4 + degree));
}
}
bool poison_player(int amount, bool force)
if (!player_res_asphyx())
{
int hurted = roll_dice(2, 6);
// Note that the hurtage is halved by poison resistance.
if (res_poison)
hurted /= 2;
if (hurted)
{
mpr("You have difficulty breathing.");
ouch(hurted, agent, KILLED_BY_CURARE, "curare-induced apnoea");
}
potion_effect(POT_SLOWING, 2 + random2(4 + degree));
}
}
bool poison_monster( monsters *monster, kill_category who,
int levels = 1, bool force = false, bool verbose = true );
bool curare_hits_monster(const bolt &beam, monsters *monster,
kill_category who, int levels = 1);
bool poison_monster(monsters *monster, kill_category who, int levels = 1,
bool force = false, bool verbose = true);
// Actually poisons a monster (w/ message).
bool poison_monster( monsters *monster,
kill_category from_whom,
int levels,
bool force,
bool verbose)
// Actually poisons a monster (with message).
bool poison_monster(monsters *monster, kill_category who, int levels,
bool force, bool verbose)
// Actually do the poisoning.
// Note: order important here.
if (verbose && new_pois.degree > old_pois.degree)
// Actually do the poisoning. The order is important here.
if (new_pois.degree > old_pois.degree)
simple_monster_message( monster,
!old_pois.degree? " is poisoned."
: " looks even sicker." );
if (verbose)
{
simple_monster_message(monster,
old_pois.degree > 0 ? " looks even sicker."
: " is poisoned.");
}