Fix 1971216: Kills by confused undead use LIVING_KILLED_BY_SERVANT instead because the message ("collateral kill") fits better and, though it's basically a hack, the distinction does fit somehow. Fix 1914948: Tweak message when you resist a spell cast by an invisible monster. Fix 1946608: Print "Nothing appears to happen." if reading ?EWI when unarmed.
I guess that's it, plus probably some more cleanup.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5378 c06c8d41-db1a-0410-9941-cceddc491573
NG53L53MSFQZAIVKHG54IEMXNJ33AYVPF2OZM4MMJFDKEJCGPBSAC YBYCTMIHQ2LLSLZNC6CLZ26KJVQZBNAM23ZVZKYSFC2DKTAXHVZAC UCEAWJ4I6AEFR64SSUFQSX6Q62JGLMJQ5BOO5MQSV3XIE7KAS6CQC BRNMISYGZGT3XGXA2VCDTPDDROEWX6O23VNEPWMHYVEQEKUVVWOQC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC AMFTO4UE74UYQBU3R2EYUU6BJ7SC4O4NOAFICRTLMT3MIFRQ6AKAC ED62QWGKBPORWVKDFOQRKJXEIWZVNGR3O4KWQBDSRNPT36AYOQYAC GZMPIDNMBXZ4B2ZWKREHBPAVN53J6WRVY5W5KY52KEBHKU6IW4IQC 25CH7HH4LKXFIZ75YNMXS3TSXO6O27DYSOPLOD45K4OCNFWLS4LQC 2TECJQA3PK7OYSSTOWZSQFWMTATJRHHA6JV3IGRHFGS3R7U27RZAC UH3CJQMQ3NPICXD34NTCTUZJWOCEF4P5XEGXFLLNDDFLZK7QPUBQC XHNJ2W4AQHIF32P2ENIMMDLWAIFWP442KJIZC6RKS4HBJNZIHHBAC AUXVWXWIFSTWFA6VZXN2FMG7FQEKRZVV6MD32VQQ7J2RKCXHAVGAC 4VK7VHWRVRO66BRSGTBPSYJGGXLRF6AG6G74UDTPHTPXR7ZRNINQC E7DV36ZR6TOGBD75BHGARCMIQQS6MSV7V3A7M7V4LOFHEC5NF6CQC AVCMVFA3MKCXHO6H44UK5KJNIHTGQV7UA7GYXM26VI6TXXU5ZN6QC 45EMD3KLQPMERNMIKU5G76H6556XOMIW352TSBP7VLWJX2YYGS7AC Z7SNXEH74EM5YJW3KVPVDQAQZB425M62AYB5GODBNVYMBRVJ4LSQC HKMVHUQLTDIDM3HGXCTLPHHT5YJHV5UMQPEVX5ZL4G7OLEICIOXQC LOJYD6QZRNLNDDZJKVBMKQIBPTKSRN2ETCYGNVV47M7L3QLUJUJAC WHY6LRRJ5T2NSBE3IUCR4X3TOAH7TTK5NPUPUIFT7TPNJ6J4HBDAC CQ24AVAI6SW3AHTIDMLPSTRRBEU6FHRF5I5FD6G5QIYE6PO4BQMQC 4HATGRJJE7Q6LXHJ3ZGYTNBLG542KAUEK6ERKARIYRKRWY6VTDKQC FCZSQBKDNMJZRJS2LWQQWLUFGOXSKXDJZQIHC7L5S7HXCXQPOMMAC W54GZBNFKPOF6DTOVK73PVASTQI5DXG42WQ6CXFDPXHFZOHUVVSQC MCBXXIV6GICTZB56APSXMJEI63FVQWVZR3H2DRNMMFDH2XCGK4JAC 77H4BWWPPGLM3PLZH4QTAJRXIZTSDVNCOKZE223I437FN2UJ34RQC HQTS3VQ6PNUZKHNVEWMML7JNAAAKL4DSW3KFSRCCSLGYTDHZFCCAC XDJGQNFELURGXMUAOOVALQMSLAJVHMG63KPKVA33HTJFVZROGZ4AC QYUAYEGK7WPBJLZRSWZVDWD5SMNAWWIJSQPWYA7BEYXMEBD2SDKAC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC LIBWXPN6HLJAIGEFJYLOL4HLIUD236U3WM5QPHIZ3DSB4CCUJERAC GMCNF7YBSN7WQJNHSF3RV2NTHTVP4TABCNP7S26UEIHPAKNCPWGAC 7Y5HSDFKA5TPLS2TWTRFMQVX6UXUDHXU5MUMXQSDFAIY4THQ3BIQC T5XERKCC6UL2UI2HKE34BTKNINTOXOSDCBYGC3A3JY7XMKIQW4GQC 2AHWXCB737Q3LL7NXDNWHWNGTZZQSB4FRXCLQV3UZGO2DDZNGT4QC LS3DAZVRDCXVN2BKBC6RGCKO3R43Z7HKG4GXJWLBK4AKBL2G6QDQC EO4FXWNFJRHPOSDHWH2Y6QNUP7KB5ANLX43GA3TJLXR3QOOJZ7VQC KEANRIMF5CGFVZ2XJYNFPOAKLXOSOJUOVA73IWBWOG576265ERHAC C5VA63WAQRWPENIMXRPUPZLZJMC77PL2B3A77HYFWDCZU5QDG7VQC HQSI2RK5QGNSOR5Y67GZDK4ZWFZ5DSRPASXAV4VHYVB5TUXFZWJQC F7QFSXE22UPQTBLYJLY26HJ3QPHFNBJMUOFJRV35R5YCHSGKTBYQC 2TFYJ7D72JY4DYQW3GSPEONA2WYIVHAJXTIQ2QRDIWF65XN2QFGAC J6APXOT4QOGQFONWB7G546VTVF6QG42HVOROMHF7YBDJPR4K26OAC RBAGQ2PB7V5YAM5KSHSZR2E3MLKDSRVM5XYGI2TIXP5QMVBOQHDQC W5VEC2PBIM5DMU5233HOWAZUEPTGWJRZZIA3H35YYQQW6BTP6XUAC VCG3BRIYRTNNWYC3LOXD6KFGXOX37HAFW2HNV7WXVG2V7EUHLDZQC 3WHI3KM43ZCN4ITJLFQQBQBC4OJPRS7QTBPIQ6QBCUVKRSK476SAC 4UXFU3FZOCBSLDQ4S7MJKAE2H7VUHCNRDQMIY6NJ3PHYXWNGISDQC IQ62EJHYKMOSPZ2M2S5KSYYLGPOQ5A6TDCXA3EHHCWBER7QVTFLAC KFWX5LI235XQYQOSUSSAKKQUNB2OCN3NOYP6E7D3HSM2UOSBGYHQC VEPHAIXR3GSPHBLOW5DWFFU4ULEMVWRQG4G5PKSKRA2I6RHYROUAC OQ4KB7QCJSK7GSW3DYBARH4DCB75HFKLUSOSOZZZ4IUFKNGFRUDQC 3ZWALZFSTSIVYXY4BAY6ANGINTDACZC6RSSJTEMQSTSUIE66YOBQC MDAJYB6STTZPNHRQ2X66MMMSONMKXTESLHJSFPGN7H3D3TOVBAVAC KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC 2H32CFFM2FNS63JJPNM2S6HMO543EX72GMPOU5GI6HTMQYPL6I3AC UZ5623MOLKBTGBSRBJ4OBOEI4IEZSPV3NCV2DRMUZ3CHHJQVHIIAC RQR4PTMGQLTRWLYRU3KXIIDGND7FBORESJWMWFVD3WYU5SISZXAAC EB2ECXZ3EQ6L2ZY42KLQV4QPE4YCNYENXFGUM7EDTCWC2LDZJYCAC JCWJWGMQIKQGSSFJUQRKNIWW3HBOJSHYDTOPPE5BWOJTIJTDYUTAC MLZSEZWNNZMSIDQNAAIOJJR4K7VSVJICL5SAGHD3ROM7SYDVZABAC YCL3W2PFE6ILTGBFODCSXNPDIA46KVSZP2TI7HDMYAOEJT65RIEAC 7V4DCKFJCNBXFODMKJ6H3MCDUTSD4XVQ7D4D6XFCD4JNF4HCE4KAC XRZPPYWPWUOM4SFNI6BHKH2UKJQNLKOV6Y7XIEPEZXE5QYRT26PAC H6ZPCZ7HN5UZTOS6QFAE4WUJR6BCDU4OB7ONQ7ELXIK65ASPJOTAC QXQE7C5XDYNF4JSHGDAVMS7HYLOC6YEZFOVFJ3RD7RB6U4AJSFIQC 6IY4YKTCKV4YYQKG7CUB6HNTGRUSP3BCZV2B6GEATTC4QN4TESNQC 557IY36VX2M4ERVCP5HNI3YTHHVTHPETZ5RWDX5BKDKXXIYCFUJAC F7Q7QRZACTDPP6KH3AB5J6B6B5PRVV4FURTOIGXHRHWNVSQT3TVAC RYT42Z6CED4KV5CCJ45CHZ3DQGLFMDCVH6CSQZNXOILULDG4MXVQC CA3UUPVVUCMU7V7AUUIG6LOPEQEQKNYRPCSKF7FECSCA6VCZYAAAC JZ4YC57SR2WQJIEIZSO3ZECA2FNMQUB7JYFKID4SIQ3RQ5NYXIVAC 7K5P2GRF6QUXTMERG2R3BB6DZFQYJQ6V2KNPMBPFDLOP36NQILPAC MBBPLL4SZUB3JUUYQYLZW7S5OXRCEGJX3WWADOQXGHWQ7BIKCY5QC LSAVA5BJQO4Z2MYXVQOM4AOXTCLKDNQMOS3DZ4SDNO4LI422LA3AC 72GIZBEMQLEF3TITOHABWHRLL5TE7KOUSVWOUEHFMO2OZQ4EIB7AC G5WLU3B4MR3ZDJLGR6OHNIMLZXGQS2EWBJ5YYY5J2GWM6DTD44BAC BMHUBADDGIOZRVN4P3O5QKIDUYD4RFWBS7MP5X6LZWAYHUBRVD2QC 5K2ANIEXD3CPJM4XNKNPZINP2G4NT7SJBKRN62WNBUKJXFERTILQC 5BJPWUPLJFS34FUTFJVKA4A52YMIGV6EWDXLNSDCWBJWBGVSQFGQC // can't use set_envmap_obj because that// will overwrite the gmap.env.tile_bk_bg[i][j] =tile_idx_unseen_terrain(i, j, grd[i][j]);
// Can't use set_envmap_obj because that would// overwrite the gmap.env.tile_bk_bg[i][j] = tile_idx_unseen_terrain(i, j, grd[i][j]);
Feature[i].dchar = NUM_DCHAR_TYPES;Feature[i].symbol = 0;Feature[i].colour = BLACK; // means must be set some other wayFeature[i].flags = FFT_NONE;Feature[i].magic_symbol = 0; // made equal to symbol if untouchedFeature[i].map_colour = DARKGREY;Feature[i].seen_colour = BLACK; // marks no special seen map handling
Feature[i].dchar = NUM_DCHAR_TYPES;Feature[i].symbol = 0;Feature[i].colour = BLACK; // means must be set some other wayFeature[i].flags = FFT_NONE;Feature[i].magic_symbol = 0; // set to symbol if unchangedFeature[i].map_colour = DARKGREY;Feature[i].seen_colour = BLACK; // -> no special seen map handling
// Note: get_secret_door_appearance means this probably isn't usedFeature[i].dchar = DCHAR_WALL;Feature[i].colour = EC_ROCK;
// Note: get_secret_door_appearance means this probably isn't used.Feature[i].dchar = DCHAR_WALL;Feature[i].colour = EC_ROCK;
Feature[i].dchar = DCHAR_ARCH;Feature[i].colour = LIGHTRED;Feature[i].map_colour = LIGHTGREY;
Feature[i].dchar = DCHAR_ARCH;Feature[i].colour = LIGHTRED;Feature[i].map_colour = LIGHTGREY;
Feature[i].dchar = DCHAR_ARCH;Feature[i].colour = RED;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = LIGHTGREY;
Feature[i].dchar = DCHAR_ARCH;Feature[i].colour = RED;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = LIGHTGREY;
Feature[i].dchar = DCHAR_ARCH;Feature[i].colour = YELLOW;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = LIGHTGREY;
Feature[i].dchar = DCHAR_ARCH;Feature[i].colour = YELLOW;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = LIGHTGREY;
Feature[i].dchar = DCHAR_ARCH;Feature[i].colour = CYAN;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = LIGHTGREY;
Feature[i].dchar = DCHAR_ARCH;Feature[i].colour = CYAN;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = LIGHTGREY;
Feature[i].dchar = DCHAR_STAIRS_UP;Feature[i].colour = LIGHTGREY;Feature[i].map_colour = GREEN;
Feature[i].dchar = DCHAR_STAIRS_UP;Feature[i].colour = LIGHTGREY;Feature[i].map_colour = GREEN;
Feature[i].colour = CYAN;Feature[i].dchar = DCHAR_ARCH;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = LIGHTGREY;
Feature[i].colour = CYAN;Feature[i].dchar = DCHAR_ARCH;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = LIGHTGREY;
Feature[i].colour = RED;Feature[i].dchar = DCHAR_ARCH;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = LIGHTGREY;
Feature[i].colour = RED;Feature[i].dchar = DCHAR_ARCH;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = LIGHTGREY;
Feature[i].colour = LIGHTCYAN;Feature[i].dchar = DCHAR_ARCH;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = LIGHTGREY;
Feature[i].colour = LIGHTCYAN;Feature[i].dchar = DCHAR_ARCH;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = LIGHTGREY;
Feature[i].colour = DARKGREY;Feature[i].dchar = DCHAR_ARCH;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = LIGHTGREY;
Feature[i].colour = DARKGREY;Feature[i].dchar = DCHAR_ARCH;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = LIGHTGREY;
Feature[i].colour = EC_RANDOM;Feature[i].dchar = DCHAR_ARCH;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = LIGHTGREY;
Feature[i].colour = EC_RANDOM;Feature[i].dchar = DCHAR_ARCH;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = LIGHTGREY;
Feature[i].colour = LIGHTBLUE;Feature[i].dchar = DCHAR_ARCH;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = LIGHTGREY;
Feature[i].colour = LIGHTBLUE;Feature[i].dchar = DCHAR_ARCH;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = LIGHTGREY;
// Note: has special handling for colouring with mutationFeature[i].colour = LIGHTBLUE;Feature[i].dchar = DCHAR_ARCH;Feature[i].map_colour = LIGHTGREY;
// Note: Has special handling for colouring with mutation.Feature[i].colour = LIGHTBLUE;Feature[i].dchar = DCHAR_ARCH;Feature[i].map_colour = LIGHTGREY;
Feature[i].colour = LIGHTGREEN;Feature[i].dchar = DCHAR_ARCH;Feature[i].map_colour = LIGHTGREY;
Feature[i].colour = LIGHTGREEN;Feature[i].dchar = DCHAR_ARCH;Feature[i].map_colour = LIGHTGREY;
Feature[i].colour = YELLOW;Feature[i].dchar = DCHAR_STAIRS_DOWN;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = RED;
Feature[i].colour = YELLOW;Feature[i].dchar = DCHAR_STAIRS_DOWN;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = RED;
Feature[i].colour = MAGENTA;Feature[i].dchar = DCHAR_ARCH;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = LIGHTGREY;
Feature[i].colour = MAGENTA;Feature[i].dchar = DCHAR_ARCH;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = LIGHTGREY;
Feature[i].colour = MAGENTA;Feature[i].dchar = DCHAR_ARCH;Feature[i].map_colour = LIGHTGREY;
Feature[i].colour = MAGENTA;Feature[i].dchar = DCHAR_ARCH;Feature[i].map_colour = LIGHTGREY;
Feature[i].colour = WHITE;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = WHITE;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = YELLOW;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = YELLOW;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = DARKGREY;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = DARKGREY;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = EC_UNHOLY;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = EC_UNHOLY;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = EC_RANDOM;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = EC_RANDOM;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = EC_VEHUMET;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = EC_VEHUMET;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = CYAN;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = CYAN;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = EC_FIRE;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = EC_FIRE;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = BLUE;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = BLUE;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = RED;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = RED;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = LIGHTMAGENTA;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = LIGHTMAGENTA;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = LIGHTGREY;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = LIGHTGREY;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = GREEN;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = GREEN;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = EC_BEOGH;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
Feature[i].colour = EC_BEOGH;Feature[i].dchar = DCHAR_ALTAR;Feature[i].flags |= FFT_NOTABLE;Feature[i].map_colour = DARKGREY;
if (longtext && wherey() <= get_number_of_lines() - 2){if (autoinscribe){formatted_string::parse_string("<cyan>So, do you wish to inscribe this item? ""('a' to autoinscribe) ").display();}else{formatted_string::parse_string("<cyan>So, do you wish to inscribe this item? ").display();}}
// special "wield slot" case - see if you can figure out why {dlb}:// because only cursed weapons in hand only count as cursed -- bwr
// Special "wield slot" case - see if you can figure out why {dlb}:// ... because only cursed weapons in hand count as cursed -- bwr
case GOD_LUGONU: return (long_name ? "Lugonu the Unformed" : "Lugonu");case GOD_BEOGH: return (long_name ? "Beogh the Brigand" : "Beogh");
case GOD_LUGONU: return (long_name ? "Lugonu the Unformed" : "Lugonu");case GOD_BEOGH: return (long_name ? "Beogh the Brigand" : "Beogh");
"Weapon","Cloak","Helmet","Gloves","Boots","Shield","Armour","Left Ring","Right Ring","Amulet",
"Weapon", "Cloak", "Helmet", "Gloves", "Boots","Shield", "Armour", "Left Ring", "Right Ring", "Amulet",
pbolt.name += "searing blast";#ifdef DEBUG_DIAGNOSTICSmprf( MSGCH_DIAGNOSTICS, "bolt name: '%s'", pbolt.name.c_str() );#endifpbolt.flavour = BEAM_FIRE;pbolt.colour = RED;
pbolt.name += "searing blast";
pbolt.name += "chilling blast";#ifdef DEBUG_DIAGNOSTICSmprf( MSGCH_DIAGNOSTICS, "bolt name: '%s'", pbolt.name.c_str() );#endifpbolt.flavour = BEAM_COLD;pbolt.colour = WHITE;
pbolt.name += "chilling blast";
notice |=did_god_conduct(DID_LIVING_KILLED_BY_UNDEAD_SLAVE,monster->hit_dice);
{// Yes, this is a hack, but it makes sure that confused// monsters doing the kill are not referred to as// "slave", and I think it's okay that Yredelemnul// ignores kills done by confused monsters as opposed// to enslaved or friendly ones. (jpeg)if (mons_friendly(&menv[i])){notice |=did_god_conduct(DID_LIVING_KILLED_BY_UNDEAD_SLAVE,monster->hit_dice);}else{notice |=did_god_conduct(DID_LIVING_KILLED_BY_SERVANT,monster->hit_dice);}}
// Provide the player with an ingame clue to Boris' return. -- bwrstd::string msg = getSpeakString("Boris return_speech");if (!msg.empty()){msg = do_mon_str_replacements(msg, monster);mpr(msg.c_str(), MSGCH_TALK);}
msg = do_mon_str_replacements(msg, monster);mpr(msg.c_str(), MSGCH_TALK);
beam.flavour = BEAM_FIRE;beam.target_x = you.x_pos;beam.target_y = you.y_pos;beam.name = "fiery explosion";beam.colour = RED;
beam.flavour = BEAM_FIRE;beam.type = dchar_glyph(DCHAR_FIRED_BURST);beam.damage = dice_def( 3, 10 );beam.target_x = you.x_pos;beam.target_y = you.y_pos;beam.name = "fiery explosion";beam.colour = RED;
switch (item_type){case FOOD_MEAT_RATION:mpr("That meat ration really hit the spot!");break;case FOOD_BEEF_JERKY:mprf("That beef jerky was %s!",one_chance_in(4) ? "jerk-a-riffic": "delicious");break;case FOOD_SAUSAGE:mpr("That sausage was delicious!");break;default:break;}
int duration = 1;if (item_type == FOOD_MEAT_RATION || item_type == FOOD_BREAD_RATION)duration = 3;start_delay( DELAY_EAT, 1, 0, item_type );lessen_hunger( food_value, true );
break;default:break;}return;} // end eating()// Handle messaging at the end of eating.// Some food types may not get a message.void finished_eating_message(int food_type){bool herbivorous = player_mutation_level(MUT_HERBIVOROUS) > 0;bool carnivorous = player_mutation_level(MUT_CARNIVOROUS) > 0;
switch (item_type){case FOOD_BREAD_RATION:mpr("That bread ration really hit the spot!");break;case FOOD_PEAR:case FOOD_APPLE:case FOOD_APRICOT:mprf("Mmmm... Yummy %s.",(item_type == FOOD_APPLE) ? "apple." :(item_type == FOOD_PEAR) ? "pear." :(item_type == FOOD_APRICOT) ? "apricot.": "fruit.");break;case FOOD_CHOKO:mpr("That choko was very bland.");break;case FOOD_SNOZZCUMBER:mpr("That snozzcumber tasted truly putrid!");break;case FOOD_ORANGE:mprf("That orange was delicious!%s",one_chance_in(8) ? " Even the peel tasted good!" : "");break;case FOOD_BANANA:mprf("That banana was delicious!%s",one_chance_in(8) ? " Even the peel tasted good!" : "");break;case FOOD_STRAWBERRY:mpr("That strawberry was delicious!");break;case FOOD_RAMBUTAN:mpr("That rambutan was delicious!");break;case FOOD_LEMON:mpr("That lemon was rather sour... But delicious nonetheless!");break;case FOOD_GRAPE:mpr("That grape was delicious!");break;case FOOD_SULTANA:mpr("That sultana was delicious! (but very small)");break;case FOOD_LYCHEE:mpr("That lychee was delicious!");break;default:break;}
case FOOD_MEAT_RATION:case FOOD_BEEF_JERKY:case FOOD_SAUSAGE:mpr("Blech - you need greens!");return;default:break;
case FOOD_HONEYCOMB:mpr("That honeycomb was delicious.");break;case FOOD_ROYAL_JELLY:mpr("That royal jelly was delicious!");restore_stat(STAT_ALL, 0, false);
case FOOD_MEAT_RATION:mpr("That meat ration really hit the spot!");return;case FOOD_BEEF_JERKY:mprf("That beef jerky was %s!",one_chance_in(4) ? "jerk-a-riffic": "delicious");return;case FOOD_SAUSAGE:mpr("That sausage was delicious!");return;default:
case FOOD_PIZZA:if (!SysEnv.crawl_pizza.empty() && !one_chance_in(3))mprf("Mmm... %s.", SysEnv.crawl_pizza.c_str());else{if (how_carnivorous >= 1) // non-vegetabletemp_rand = 5 + random2(4);else if (how_herbivorous >= 1) // non-meatytemp_rand = random2(6) + 2;elsetemp_rand = random2(9);
}}
mprf("Mmm... %s",(temp_rand == 0) ? "Ham and pineapple." :(temp_rand == 2) ? "Vegetable." :(temp_rand == 3) ? "Pepperoni." :(temp_rand == 4) ? "Yeuchh - Anchovies!" :(temp_rand == 5) ? "Cheesy." :(temp_rand == 6) ? "Supreme." :(temp_rand == 7) ? "Super Supreme!": "Chicken.");}
if (carnivorous){switch (food_type){case FOOD_BREAD_RATION:case FOOD_BANANA:case FOOD_ORANGE:case FOOD_LEMON:case FOOD_PEAR:case FOOD_APPLE:case FOOD_APRICOT:case FOOD_CHOKO:case FOOD_SNOZZCUMBER:case FOOD_RAMBUTAN:case FOOD_LYCHEE:case FOOD_STRAWBERRY:case FOOD_GRAPE:case FOOD_SULTANA:mpr("Blech - you need meat!");return;default:
case FOOD_CHEESE:temp_rand = random2(9);mprf("Mmm...%s.",(temp_rand == 0) ? "Cheddar" :(temp_rand == 1) ? "Edam" :(temp_rand == 2) ? "Wensleydale" :(temp_rand == 3) ? "Camembert" :(temp_rand == 4) ? "Goat cheese" :(temp_rand == 5) ? "Fruit cheese" :(temp_rand == 6) ? "Mozzarella" :(temp_rand == 7) ? "Sheep cheese": "Yak cheese");break;
}}else{switch (food_type){case FOOD_BREAD_RATION:mpr("That bread ration really hit the spot!");return;case FOOD_PEAR:case FOOD_APPLE:case FOOD_APRICOT:mprf("Mmmm... Yummy %s.",(food_type == FOOD_APPLE) ? "apple." :(food_type == FOOD_PEAR) ? "pear." :(food_type == FOOD_APRICOT) ? "apricot.": "fruit.");return;case FOOD_CHOKO:mpr("That choko was very bland.");return;case FOOD_SNOZZCUMBER:mpr("That snozzcumber tasted truly putrid!");return;case FOOD_ORANGE:mprf("That orange was delicious!%s",one_chance_in(8) ? " Even the peel tasted good!" : "");return;case FOOD_BANANA:mprf("That banana was delicious!%s",one_chance_in(8) ? " Even the peel tasted good!" : "");return;case FOOD_STRAWBERRY:mpr("That strawberry was delicious!");return;case FOOD_RAMBUTAN:mpr("That rambutan was delicious!");return;case FOOD_LEMON:mpr("That lemon was rather sour... but delicious nonetheless!");return;case FOOD_GRAPE:mpr("That grape was delicious!");return;case FOOD_SULTANA:mpr("That sultana was delicious! (but very small)");return;case FOOD_LYCHEE:mpr("That lychee was delicious!");return;
// finally, modify player's hunger level {dlb}:if (carnivore_modifier && how_carnivorous > 0)food_value += (carnivore_modifier * how_carnivorous);if (herbivore_modifier && how_herbivorous > 0)food_value += (herbivore_modifier * how_herbivorous);if (food_value > 0)
switch (food_type){case FOOD_HONEYCOMB:mpr("That honeycomb was delicious.");break;case FOOD_ROYAL_JELLY:mpr("That royal jelly was delicious!");restore_stat(STAT_ALL, 0, false);break;case FOOD_PIZZA:if (!SysEnv.crawl_pizza.empty() && !one_chance_in(3))mprf("Mmm... %s.", SysEnv.crawl_pizza.c_str());else
lessen_hunger( food_value, true );
mprf("Mmm... %s",(temp_rand == 0) ? "Ham and pineapple." :(temp_rand == 2) ? "Vegetable." :(temp_rand == 3) ? "Pepperoni." :(temp_rand == 4) ? "Yeuchh - Anchovies!" :(temp_rand == 5) ? "Cheesy." :(temp_rand == 6) ? "Supreme." :(temp_rand == 7) ? "Super Supreme!": "Chicken.");
case FOOD_CHEESE:{int temp_rand = random2(9);mprf("Mmm...%s.",(temp_rand == 0) ? "Cheddar" :(temp_rand == 1) ? "Edam" :(temp_rand == 2) ? "Wensleydale" :(temp_rand == 3) ? "Camembert" :(temp_rand == 4) ? "Goat cheese" :(temp_rand == 5) ? "Fruit cheese" :(temp_rand == 6) ? "Mozzarella" :(temp_rand == 7) ? "Sheep cheese": "Yak cheese");break;}
msg::stream << you.inv[you.equip[EQ_WEAPON]].name(DESC_CAP_YOUR)<< " glows " << weird_glowing_colour()<< " for a moment." << std::endl;
mprf("%s glows %s for a moment.",you.inv[you.equip[EQ_WEAPON]].name(DESC_CAP_YOUR).c_str(),weird_glowing_colour().c_str());
if (wherey() <= get_number_of_lines() - 2){if (allow_autoinscribe){formatted_string::parse_string("<cyan>So, do you wish to inscribe this item? ""('a' to autoinscribe) ").display();}else{formatted_string::parse_string("<cyan>So, do you wish to inscribe this item? ").display();}}}
/*Monster has probably failed save, now it gets enchanted somehow.returns MON_RESIST if monster is unaffected due to magic resist.returns MON_UNAFFECTED if monster is immune to enchantmentreturns MON_AFFECTED in all other cases (already enchanted, etc)*/
// Monster has probably failed save, now it gets enchanted somehow.// * Returns MON_RESIST if monster is unaffected due to magic resist.// * Returns MON_UNAFFECTED if monster is immune to enchantment.// * Returns MON_AFFECTED in all other cases (already enchanted, etc).
canned_msg(MSG_YOU_RESIST);
bool need_msg = true;if (beam.beam_source != -1){monsters *mon = &menv[beam.beam_source];if (!player_monster_visible(mon)){mpr("Something tries to affect you, but you resist.");need_msg = false;}}if (need_msg)canned_msg(MSG_YOU_RESIST);