it for holy word in order to generalize it. This way, monsters as well as players may be able to use it in the future.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8598 c06c8d41-db1a-0410-9941-cceddc491573
LFIEDWOSNPS5D6EUWPUPOBBN5CEHVF2MLNOSPXEIVMRZ77A5BH4AC 7Z4BW72WSXVYBFEPMJI5PCFAV7POF6JSCX4MAW47G3CGTQAAPQOAC ZNBSMRH6K5SUITIIOYG4NT6ZW63LDTT6ZPT6BLS7T3FS6KMKNNSQC HMEKK5ADDYNQQXI5JSYDVH5JPTLZCJQSG6PFBXQXXCRNYLGY57VQC C3MMW5WJAJNHNJIRNHFOYNIZ7NB3OKIKI2HXPS5PQS65FP3E76RQC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC LUH6GAJODIQXNPBEHMSUTKH3KA3DYVRCKZ6GJJ4HHNHOIMMUEP6QC SIDH2P7NBIG5KEOE27XHD3ZT2NQ2OJZFN6VZXWNWYFFY5YVXSSVQC AUXVWXWIFSTWFA6VZXN2FMG7FQEKRZVV6MD32VQQ7J2RKCXHAVGAC 3DQXSE4YGFBBDUWK4YEOFWW4UPWILWELFSLP37SL6BERGAZJC5YAC QKGDOYIYKE6B36ION5O2DRW65DWWPZMYNWJVH7LJJ7FPGGM2MYAQC B62ICMDTN5V7R7RBL4JALFVKEMVOOVLRSJASRNYS6CGFWBEEF5JQC ZLQAAP55CJ77XIJN3DZVPT4GTTVLIBFJLIJJKI6L5UBSHX7VUK6AC FIYBXLWALQINNQTHG2KNDUUTAQAZRDDLXW2XOVSKDKBADJ3XCJ4AC LMRRQE4ZXQYZPXVGBTDZP7LEIM6OGSSOOQ5FAOWXJCDCNCECX5VAC TJRYL3NXPW5IUGEV3YOC7JYWEXCZDBFPLT4AUG4P227WVKVB72ZAC U5SDF665RTV32CTKTC4QO3Q5B44IAE42MZYJSYUNZP3JZEUTO4KQC GJA3C5HTAVUBNX44QYQTPWQPTP5ER4J2VJA5GLHJ2R5WNVMWC3YQC PFEJ4LMDNEKLMGRCMWQ7EIRVU4JMYGICI4G7X4WVWOROVXQCBZ7QC UEI5JAVCMN7Y2SACTEZPZSNFJWOJTC55G24Q6LKQCT4XNDH5ZQIAC KATZLWENEIQMKKWIV4ZLXJ5HFUW6SU5K4ZU6NENBOL4XAAVTDUKAC KKEPQAZMWQFWPQ4P4KT5PWG2YFPG7H4JHL5K7USVHQ3Y6L4NWURQC CGYTZT5QWIEGYKUOLOK7MFXSLJKLYRZONER5ZCDZO5XYWSLG475QC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC Q7GGSLY6IUX2YPBQNRR7JL5HY7VEWLBQN3KCZGMS2WAA2LNXRI6QC WHY6LRRJ5T2NSBE3IUCR4X3TOAH7TTK5NPUPUIFT7TPNJ6J4HBDAC KYVZGUJXV23ELA4CKPVQZO3NTJCODXMCWYAZJYWVWJVLPETNHLGQC MJWFTUS66PTCNEYXEJA3CUJFXNWXIKDD6H3V24PW7HK64NSVOFSAC NDKS43E4XVAU3FDY276OF5JW7E5SF6F5EJD2XLV5JLKZ5W6N554QC 5HGMULU7IWTFJJH35S6XTCW3YZEMCORXHQL6NVY2TO4DUMVITNJAC GAUT326KHT3MMZPC7TJUOKGPZ6X624E7Z3IOFZEXYWUCORBCZTOAC C5WZ62XDFNON4HCJOXC6IL6SQYLE6TKX7DDSJX3MTWAZ4HHM27GQC BX6P2BQYNZH2FM4ADLPULHK5FCWEAVXFEUYNHYLCUTSQCOWGNWAQC FJCG7QPYI2ON5QIGUZDIA6KTJP2BOU45K5ZE6HOEUSLZTEW2YW6QC 33ZMPQC6OXTESW7SRW765GRNJUEJRSYONRVZVIEUDAUEJ2PPMB4AC JI4NDSOXGGZ7QHXXFB3ZTHAKHABXYBZXPDGLUFV5SKYEOL5FT7JQC KX6HOBTF5OBZLH2VNEFHH6YAX66FSE6JGBY5I2WIAW5IEJUGNL6AC RQFQSU37Y3ZBFR634JWYHE77LIOOINGBRNL4KUHPPRA3ZR6W5QIAC LRSBPYUTFVUVZ3QLP6VGQSWNTJYFJQGY5VQOUYYUSNYAQMJZ5C2QC JRMVNXBOAVFIEKN3AP3EN63PO5ATZPM2MWQYGWZJFP2LCDOLU36AC 3GQ4LKESL3LNEHHTXK334UMJJV75ZKL6O763V6RMYPDUBY5GUPZAC EADWOF6DJ7WTY3ZAFRVJ2VHFWNLDGX6W3JXESBTXJ6K4PM2AJVDQC CSC3SNU2QMWV5MJL6L2DJIQ5W7V3XXMZM6VULPSENTOT7R4DFQKAC 5FHWTG7M6FW4B3I33YI7QSM3OZIB6ZGC6TI6JISSLY5Y43HI56VAC IZZKCZ2TOAFFDUXYN3XRPNKEEO7GHD4UDBPDJ4ULH446KACLBSIAC YA7FBPKLDYEK5GKQUVIQNFXVNSEPGCQAOLM7MGVE4TIIOFOLTSBAC APZNEKBBSU2PFBU6BCASYZTXDQQGVLBQCPOME2MOVLK44SHQ3ZIAC IHRRXPRJZMKQHVYBZP3UWKWGBS47JCYB4H6L6K52C7UY3JAYC7MAC F3STYUG6GEHXQX54YE6ZXXDJE3HWJ77SKHPL3F4GNKOQ43MEIRJQC YVBTWF7VNCQ3MSY7YQFFSR4E35OCSP5JUB5ADODDB6V7W7K3TV4AC K7J2IGELTIQL5KAMBV62MFVIVMEZEWCOLZ7GHFXHYPANYIF7BRZAC RTB6BWX5OPHNXFSRXCQ34G5THZO4F6QZCW4GQBAL6JHVEMEMSPOAC 23PFLB2E4QHL5SF3Q2YV5FXRH6MFHENEU2ACVC572ZCYDXCBZVQAC G4TVXOLIF5X2MWV7I4UPT3MSQHRMGME6QRIIFAQ64C45JGYK7SIAC ERTQJ5ZXDBRGKC5N3GZ6U4MFFK5HB6737FVLVD4GSMGTIFCSJJJQC 6DNNPEMZGBQDMA7YG4LCTQUVZ7LYPC3R4A2XBYT5SDQ65GYOLJVAC CUB27EJDQG66FF2YCKOV4HU3LAJVJIHUJ5QYLURRDIEVGPK666DQC AVSWNOP23Z2QCLQGXFDZV7TI4RC3XSXHIX2HDXFHXGKDEZSSIGJQC int apply_random_around_square( cell_func cf, const coord_def& where,bool hole_in_middle, int power, int max_targs );
int apply_random_around_square(cell_func cf, const coord_def& where,bool hole_in_middle, int power, int max_targs,actor *agent = NULL);
void apply_area_cloud(cloud_func func, const coord_def& where,int pow, int number, cloud_type ctype,kill_category kc, killer_type killer,int spread_rate = -1);
// Effect up to max_targs monsters around a point, chosen randomly// Return varies with the function called; return values will be added up.int apply_random_around_square( cell_func cf, const coord_def& where,bool exclude_center, int power, int max_targs )
// Affect up to max_targs monsters around a point, chosen randomly.// Return varies with the function called; return values will be added up.int apply_random_around_square(cell_func cf, const coord_def& where,bool exclude_center, int power, int max_targs,actor *agent)
if (apply_area_around_square( disperse_monsters, you.pos(), pow ) == 0){mpr( "The air shimmers briefly around you." );}
if (apply_area_around_square(disperse_monsters, you.pos(), pow) == 0)mpr("The air shimmers briefly around you.");
if (!defender->cannot_fight() && attacker->can_see(defender))
if (defender->cannot_fight() || (attacker && !attacker->can_see(defender)))return (unchivalric);// Distracted (but not batty); this only applies to players.if (attacker && attacker->atype() == ACT_PLAYER && def->foe != MHITYOU&& !mons_is_batty(def))
// Distracted (but not batty); this only applies to players.if (attacker->atype() == ACT_PLAYER && def->foe != MHITYOU&& !mons_is_batty(def)){unchivalric = UCAT_DISTRACTED;}
unchivalric = UCAT_DISTRACTED;}
// confused (but not perma-confused)if (def->has_ench(ENCH_CONFUSION)&& !mons_class_flag(def->type, M_CONFUSED)){unchivalric = UCAT_CONFUSED;}
// confused (but not perma-confused)if (def->has_ench(ENCH_CONFUSION)&& !mons_class_flag(def->type, M_CONFUSED)){unchivalric = UCAT_CONFUSED;}
// invisibleif (!attacker->visible_to(defender))unchivalric = UCAT_INVISIBLE;
// invisibleif (attacker && !attacker->visible_to(defender))unchivalric = UCAT_INVISIBLE;
// held in a netif (mons_is_caught(def))unchivalric = UCAT_HELD_IN_NET;
// held in a netif (mons_is_caught(def))unchivalric = UCAT_HELD_IN_NET;
int holy_word_player(int pow, int caster);int holy_word_monsters(coord_def where, int pow, int caster);
int holy_word_player(int pow, int caster, actor *attacker = NULL);int holy_word_monsters(coord_def where, int pow, int caster,actor *attacker = NULL);
// Currently, holy word annoys the monsters it affects because it// can kill them, and because hostile monsters don't use it.behaviour_event(monster, ME_ANNOY, MHITYOU);simple_monster_message(monster, " convulses!");monster->hurt(&you, hploss);
if (hploss)simple_monster_message(monster, " convulses!");
if (monster->speed_increment >= 25)monster->speed_increment -= 20;
retval = 1;// Holy word won't annoy, slow, or frighten its user.if (monster->alive() && attacker != monster){// Currently, holy word annoys the monsters it affects// because it can kill them, and because hostile monsters// don't use it.behaviour_event(monster, ME_ANNOY, MHITYOU);