git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8017 c06c8d41-db1a-0410-9941-cceddc491573
QXI6JLO5RGDKUG5H7RBMQTTT3234L2NGHJTMWAF6UJEBJDBDMMNAC
NK6Y3YSEW5BLQ7YE4JV3KGQ3ZFS4NSW6LMSHVFHKFS6QI7M4CKCAC
UADYVV3UD5ERJTZZJGY4EUQ4NJ2JSBG7YYUJ75ZRBIXRQXQKOJPAC
3DQXSE4YGFBBDUWK4YEOFWW4UPWILWELFSLP37SL6BERGAZJC5YAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
BY6T2KQBNMPI54QVEI4QRI6GOCMKAPDEY543VTX7PWXFNNQF25MQC
37NLMXYLDTNPWXKWZ4F3TBMNA7CKL5L6TSUJMA2JY26TCJUUE54AC
AREBCIU2RU2RNHBWD4GARWEBKSL7HDFGDLII22H56OJO2AQUOMLQC
ZSW72OXJ3ZHULVRLHEIJTD6HA5LCH6PX46TSSM65A3O45RI7L2SAC
7O3C7BZXXFHJQQMLE636R26QJPETYRADNLVJWQDJYGWLQFEG2ISAC
QDTVLBRGHDTRUVT7I3O72K6TMOYAUSAJBZUHGOEFU2RKJNUPWZSQC
JI4NDSOXGGZ7QHXXFB3ZTHAKHABXYBZXPDGLUFV5SKYEOL5FT7JQC
SVY2PTCLXR3KNPQAWXVXTTGCC5DR334HOAKHYO3VDDRWM2BWMALAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
557IY36VX2M4ERVCP5HNI3YTHHVTHPETZ5RWDX5BKDKXXIYCFUJAC
I2OEVGXBBJ3MFLF7GCYA73LMKUFXMZ72YQER66VGJ4HJM5WK5ZIAC
ZUV76RGZDBOY745YXVMGFUOWEH2B47J74BCT5MDKHIDHC4URGMKAC
Y2NYY7HWFZ2LQDK3ACSLGS37F2J2IJ5LRGCIMZYXLEOSVPD3A4DAC
3HGELZU7NELOQ635HZO6IJIYLBSNCJ5VPH46IE22KA3OSLEFK7AQC
W6JMQP26KNVIZOJTITBWR447OX63DUKBIQE442Q7QYLUUKJVBELAC
7AMQN7MITMXBNVDAK5VOXTQ4TZIAOD6ZLOFJG7GQMBTY23Y2BKSAC
OP6CTAKWCAU64JXQ3USQYR5E5IFHQHNCACII5UMVRXUTZXJQOAZAC
GTXKQTORYHZ7XB2VIH6372UM5GMWAN7IVRXWY5FGBCHFGBV6D6NAC
Q6WLX2VTRJ3LGDPWBH5WKQM7CIIJ5H6AEIKMXPF2PJA5JX5ZLUZQC
TFNFP2YQA4EOVE4VIXBEQSGACZSXHWIQ2T4TIPQ46R2MJW2C4B5AC
MINMR3UAVXGVNIGZKS3SRYFCYDMCVEJZN7AGDWJNHQLR36FDXU7QC
3GSAVTNKEG45AT2U734R5STSRP22WJZL3H6KUFRUWCIA6A4CZE5QC
KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC
X5WLJCJVW55SXZVP7IKP7ADCJIGNKN4PKAXFECVR6TNK7XSMZR7QC
WBAFNYODKTL3YSG3UOJITBJSTFYGJLIWKRNK6NMGIIP5TPC2BDGQC
B7DNCNY7SXL5WAW5B3XZP5KIQSBWOJ3N2YW46WOUQKTRBRRZ7YOQC
UZ6N6HOUPGVSPC5NQROEEDWMEGJA5XUWUY2AKH5QG65AZ25PVXDAC
TQLWCGVXVZ75H7MDBJD3DJDUFNW62WOAEDJUVKCHQTAXKBP47CSAC
5FHWTG7M6FW4B3I33YI7QSM3OZIB6ZGC6TI6JISSLY5Y43HI56VAC
// XXX: Monsters currently have no divination miscasts.
do
{
int exp = (random2(SPTYP_LAST_EXPONENT));
sp_type = (spschool_flag_type) (1 << exp);
} while (sp_type == SPTYP_DIVINATION
&& target->atype() == ACT_MONSTER);
int exp = (random2(SPTYP_LAST_EXPONENT));
sp_type = (spschool_flag_type) (1 << exp);
switch (severity)
{
case 0: // just a harmless message
mon_msg_seen = "@The_monster@ looks momentarily confused.";
break;
case 1: // more annoying things
switch (random2(2))
{
case 0:
mon_msg_seen = "@The_monster@ looks slightly disoriented.";
break;
case 1:
mon_target->confuse(
act_source,
1 + random2(3 + act_source->get_experience_level()));
break;
}
break;
case 2: // even more annoying things
mon_msg_seen = "@The_monster@ shudders.";
mon_target->confuse(
act_source,
5 + random2(3 + act_source->get_experience_level()));
break;
case 3: // nasty
mon_msg_seen = "@The_monster@ reels.";
if (one_chance_in(7))
mon_target->forget_random_spell();
mon_target->confuse(
act_source,
8 + random2(3 + act_source->get_experience_level()));
break;
}
mpr("A hostile presence attacks your mind!", MSGCH_WARN);
if (you.can_see(foe))
{
if (foe == &you)
mprf(MSGCH_WARN, "A hostile presence attacks your mind!");
else if (you.can_see(mons))
mprf(MSGCH_WARN, "%s fixes %s piercing gaze on %s.",
mons->name(DESC_CAP_THE).c_str(),
mons->pronoun(PRONOUN_NOCAP_POSSESSIVE).c_str(),
foe->name(DESC_NOCAP_THE).c_str());
}
virtual void paralyse(int strength) = 0;
virtual void petrify(int strength) = 0;
virtual void slow_down(int strength) = 0;
virtual void confuse(int strength) = 0;
virtual void paralyse(actor *attacker, int strength) = 0;
virtual void petrify(actor *attacker, int strength) = 0;
virtual void slow_down(actor *attacker, int strength) = 0;
virtual void confuse(actor *attacker, int strength) = 0;
void paralyse(int str);
void petrify(int str);
void slow_down(int str);
void confuse(int strength);
void paralyse(actor *, int str);
void petrify(actor *, int str);
void slow_down(actor *, int str);
void confuse(actor *, int strength);
void paralyse(int str);
void petrify(int str);
void slow_down(int str);
void confuse(int strength);
void paralyse(actor *, int str);
void petrify(actor *, int str);
void slow_down(actor *, int str);
void confuse(actor *, int strength);