ASSERT((duration[DUR_MESMERISED] > 0) == !beholders.empty()) in 'behold.cc' at line 66 failed. Version: Dungeon Crawl Stone Soup 0.32.1-5-gba85492886 Platform: unix Bits: 64 Game mode: normal Tiles: online Seed: 9534753357420983061, deterministic pregen: 1 Command line: /usr/games/crawl-0.32 -name FattymcFatterson -rc /dgldir/rcfiles/crawl-0.32/FattymcFatterson.rc -macro /dgldir/rcfiles/crawl-0.32/FattymcFatterson.macro -morgue /dgldir/morgue/FattymcFatterson/ -webtiles-socket /crawl-master/webserver/sockets/FattymcFatterson:2025-01-14.18:34:40.sock -await-connection RC options: restart_after_game = false Crash caused by signal #6: Aborted Obtained 29 stack frames. /usr/games/crawl-0.32(_Z17write_stack_traceP8_IO_FILE+0x3f) [0x55d8e8d2100f]: write_stack_trace(_IO_FILE*) /usr/games/crawl-0.32(_Z13do_crash_dumpv+0x418) [0x55d8e8d2b498]: do_crash_dump() /usr/games/crawl-0.32(_Z20crash_signal_handleri+0x1fa) [0x55d8e8d2149a]: crash_signal_handler(int) /lib/x86_64-linux-gnu/libc.so.6(+0x46210) [0x7f2ba2c9f210]: /lib/x86_64-linux-gnu/libpthread.so.0(raise+0xcb) [0x7f2ba2e6024b]: /usr/games/crawl-0.32(+0x4b1bdd) [0x55d8e8d2abdd]: /usr/games/crawl-0.32(+0x4b1d95) [0x55d8e8d2ad95]: /usr/games/crawl-0.32(+0x46c8b2) [0x55d8e8ce58b2]: /usr/games/crawl-0.32(+0x46c8eb) [0x55d8e8ce58eb]: /usr/games/crawl-0.32(_Z16fill_status_infoiR11status_info+0x1356) [0x55d8e92ec2d6]: fill_status_info(int, status_info&) /usr/games/crawl-0.32(_ZN14TilesFramework12_send_playerEb+0x230a) [0x55d8e9419f0a]: TilesFramework::_send_player(bool) /usr/games/crawl-0.32(_ZN14TilesFramework6redrawEv+0xa6) [0x55d8e941e666]: TilesFramework::redraw() /usr/games/crawl-0.32(_ZN14TilesFramework17update_input_modeE10mouse_modeb+0x1a8) [0x55d8e941e918]: TilesFramework::update_input_mode(mouse_mode, bool) /usr/games/crawl-0.32(_ZN13mouse_controlC1E10mouse_mode+0x1d) [0x55d8e8fc595d]: mouse_control::mouse_control(mouse_mode) /usr/games/crawl-0.32(+0x7ef573) [0x55d8e9068573]: /usr/games/crawl-0.32(_ZN14message_window4moreEbb+0x204) [0x55d8e906a5f4]: message_window::more(bool, bool) /usr/games/crawl-0.32(_ZN14message_window8add_itemENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE11prefix_typeb+0x3d0) [0x55d8e906ab80]: message_window::add_item(std::__cxx11::basic_string, std::allocator >, prefix_type, bool) /usr/games/crawl-0.32(_ZN13message_store10flush_prevEv+0x34a) [0x55d8e906b13a]: message_store::flush_prev() /usr/games/crawl-0.32(+0x7ec0fc) [0x55d8e90650fc]: /usr/games/crawl-0.32(_Z16do_message_print16msg_channel_typeibbPKcP13__va_list_tag+0xe9) [0x55d8e90658d9]: do_message_print(msg_channel_type, int, bool, bool, char const*, __va_list_tag*) /usr/games/crawl-0.32(_Z4mprf16msg_channel_typePKcz+0xb4) [0x55d8e9065df4]: mprf(msg_channel_type, char const*, ...) /usr/games/crawl-0.32(+0x93bb46) [0x55d8e91b4b46]: /usr/games/crawl-0.32(_Z13player_reactsv+0x798) [0x55d8e91b72f8]: player_reacts() /usr/games/crawl-0.32(_Z12world_reactsv+0x6f5) [0x55d8e9428aa5]: world_reacts() /usr/games/crawl-0.32(+0xbb0a35) [0x55d8e9429a35]: /usr/games/crawl-0.32(+0xbb18f5) [0x55d8e942a8f5]: /usr/games/crawl-0.32(main+0x1ab) [0x55d8e8c6895b]: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7f2ba2c800b3]: /usr/games/crawl-0.32(_start+0x2e) [0x55d8e8c6952e]: Trying to run gdb. GNU gdb (Ubuntu 9.1-0ubuntu1) 9.1 Copyright (C) 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: . Find the GDB manual and other documentation resources online at: . For help, type "help". Type "apropos word" to search for commands related to "word". [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". 0x00007f2ba2d3ec2a in __GI___wait4 (pid=3020773, stat_loc=stat_loc@entry=0x0, options=options@entry=0, usage=usage@entry=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:27 #0 0x00007f2ba2d3ec2a in __GI___wait4 (pid=3020773, stat_loc=stat_loc@entry=0x0, options=options@entry=0, usage=usage@entry=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:27 resultvar = 18446744073709551104 sc_ret = #1 0x00007f2ba2d3ebeb in __GI___waitpid (pid=, stat_loc=stat_loc@entry=0x0, options=options@entry=0) at waitpid.c:38 No locals. #2 0x000055d8e8d20e75 in call_gdb (file=file@entry=0x7f2ba2e455c0 <_IO_2_1_stderr_>) at crash.cc:438 gdb = attach_cmd = "attach 3017735\000\000\000\000\000" #3 0x000055d8e8d2b4b6 in do_crash_dump () at dbg-asrt.cc:692 t = 1736880818 dir = "/dgldir/morgue/FattymcFatterson/" name = "/dgldir/morgue/FattymcFatterson/crash-FattymcFatterson-20250114-185338.txt", '\000' signal_info = "Crash caused by signal #6: Aborted" cause_msg = "ASSERT((duration[DUR_MESMERISED] > 0) == !beholders.empty()) in 'behold.cc' at line 66 failed." file = 0x7f2ba2e455c0 <_IO_2_1_stderr_> #4 0x000055d8e8d2149a in crash_signal_handler (sig_num=6) at crash.cc:198 No locals. #5 No locals. #6 raise (sig=) at ../sysdeps/unix/sysv/linux/raise.c:50 set = {__val = {0, 94390114834614, 140737399524208, 94390115294320, 66, 140737399526744, 0, 139825392427043, 206158430240, 140737399524160, 140737399523968, 17952580353494698752, 94390118361360, 139825395543081, 94390118361344, 140737399524208}} pid = tid = ret = #7 0x000055d8e8d2abdd in _BreakStrToDebugger (mesg=mesg@entry=0x7ffffab48b70 "ASSERT((duration[DUR_MESMERISED] > 0) == !beholders.empty()) in 'behold.cc' at line 66 failed.", assert=true) at dbg-asrt.cc:818 No locals. #8 0x000055d8e8d2ad95 in AssertFailed (expr=expr@entry=0x55d8e94adc70 "(duration[DUR_MESMERISED] > 0) == !beholders.empty()", file=file@entry=0x55d8e943d8b6 "behold.cc", line=line@entry=66, text=text@entry=0x0) at dbg-asrt.cc:856 mesg = "ASSERT((duration[DUR_MESMERISED] > 0) == !beholders.empty()) in 'behold.cc' at line 66 failed.", '\000' , "\260\017\354\000\000\000\000\000\240[\344\242+\177\000\000\000\000\377\377\377\377\377\377\000\000\000\000\000\000\000\000\260\017\354\000\331U\000\000\240a\344\242+\177\000\000\377\377\377\377\377\377\377\377\000\000\000\000\000\000\000\000\300\221\264\372\377\177\000\000\240a\344\242+\177\000\000\377\377\377\377\000\000\000\000\000\000\000\000"... args = {{gp_offset = 2731442458, fp_offset = 32555, overflow_arg_area = 0x7ffffab48cf0, reg_save_area = 0x7ffffab48c60}} fileName = #9 0x000055d8e8ce58b2 in player::beheld (this=) at behold.cc:66 No locals. #10 0x000055d8e8ce58eb in player::beheld (this=) at /usr/include/c++/9/bits/stl_iterator.h:803 No locals. #11 0x000055d8e92ec2d6 in fill_status_info (status=status@entry=192, inf=...) at status.cc:312 found = false #12 0x000055d8e9419f0a in _update_statuses (c=...) at tileweb.cc:1009 status = 192 changed = false counter = inf = {light_colour = 0, light_text = "", short_text = "", long_text = ""} changed = counter = inf = status = #13 TilesFramework::_send_player (this=0x55d8e98ec620 , force_full=false) at tileweb.cc:1202 c = @0x55d8e9918998: {_state_ever_synced = true, name = "FattymcFatterson", job_title = "the Magician", wizard = false, explore = false, species = "Mummy", god = "", under_penance = false, piety_rank = 0, form = 0 '\000', hp = 36, hp_max = 48, real_hp_max = 48, poison_survival = 36, mp = 6, mp_max = 17, dd_real_mp_max = 0, contam = 0, noise = -1, adjusted_noise = 380, armour_class = 7, evasion = 11, shield_class = 0, strength = 11 '\v', strength_max = 11 '\v', intel = 16 '\020', intel_max = 16 '\020', dex = 13 '\r', dex_max = 13 '\r', experience_level = 7, exp_progress = 99 'c', gold = 206, zot_points = 0, elapsed_time = 57935, num_turns = 5795, lives = 0, deaths = 0, place = "Dungeon", depth = 6, position = {x = 10, y = -5}, status = std::vector of length 3, capacity 4 = {{light_colour = 13, light_text = "Reap", short_text = "animating dead", long_text = "You are reanimating the dead."}, {light_colour = 15, light_text = "Fly", short_text = "flying", long_text = "You are flying."}, {light_colour = 4, light_text = "Mesm", short_text = "mesmerised", long_text = "You are mesmerised."}}, inv = {mData = {{base_type = OBJ_WEAPONS, sub_type = 10 '\n', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 199 '\307', quantity = 1, flags = 15, pos = {x = -1, y = -1}, link = 0, slot = 97, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = -102, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_ARMOUR, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 80 'P', quantity = 1, flags = 15, pos = {x = -1, y = -1}, link = 1, slot = 98, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = -102, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_JEWELLERY, sub_type = 1 '\001', {plus = 4, mon_type = MONS_KOMODO_DRAGON, skill = SK_MACES_FLAILS, charges = 4, net_durability = 4, tithe_state = 4}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 357, unrand_idx = 357, subtype_rnd = 357, brand = 357, freshness = 357}, rnd = 226 '\342', quantity = 1, flags = 15, pos = {x = -1, y = -1}, link = 2, slot = 99, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_SCROLLS, sub_type = 28 '\034', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 349002, unrand_idx = 349002, subtype_rnd = 349002, brand = 349002, freshness = 349002}, rnd = 70 'F', quantity = 2, flags = 0, pos = {x = -1, y = -1}, link = 3, slot = 100, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_ARMOUR, sub_type = 9 '\t', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 82 'R', quantity = 1, flags = 15, pos = {x = -1, y = -1}, link = 4, slot = 101, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_SCROLLS, sub_type = 28 '\034', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 358472, unrand_idx = 358472, subtype_rnd = 358472, brand = 358472, freshness = 358472}, rnd = 91 '[', quantity = 1, flags = 0, pos = {x = -1, y = -1}, link = 5, slot = 102, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_SCROLLS, sub_type = 28 '\034', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 345455, unrand_idx = 345455, subtype_rnd = 345455, brand = 345455, freshness = 345455}, rnd = 110 'n', quantity = 1, flags = 0, pos = {x = -1, y = -1}, link = 6, slot = 103, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_JEWELLERY, sub_type = 18 '\022', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 17, unrand_idx = 17, subtype_rnd = 17, brand = 17, freshness = 17}, rnd = 221 '\335', quantity = 1, flags = 15, pos = {x = -1, y = -1}, link = 7, slot = 104, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_WANDS, sub_type = 0 '\000', {plus = 40, mon_type = MONS_DEATH_YAK, skill = 40, charges = 40, net_durability = 40, tithe_state = 40}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 62, unrand_idx = 62, subtype_rnd = 62, brand = 62, freshness = 62}, rnd = 26 '\032', quantity = 1, flags = 6, pos = {x = -1, y = -1}, link = 8, slot = 105, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_TALISMANS, sub_type = 5 '\005', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 31 '\037', quantity = 1, flags = 15, pos = {x = -1, y = -1}, link = 9, slot = 106, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_WEAPONS, sub_type = 10 '\n', {plus = 1, mon_type = MONS_FRILLED_LIZARD, skill = SK_SHORT_BLADES, charges = 1, net_durability = 1, tithe_state = 1}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 8, unrand_idx = 8, subtype_rnd = 8, brand = 8, freshness = 8}, rnd = 16 '\020', quantity = 1, flags = 131087, pos = {x = -1, y = -1}, link = 10, slot = 107, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_SCROLLS, sub_type = 28 '\034', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 360289, unrand_idx = 360289, subtype_rnd = 360289, brand = 360289, freshness = 360289}, rnd = 155 '\233', quantity = 1, flags = 0, pos = {x = -1, y = -1}, link = 11, slot = 108, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_SCROLLS, sub_type = 28 '\034', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 331100, unrand_idx = 331100, subtype_rnd = 331100, brand = 331100, freshness = 331100}, rnd = 151 '\227', quantity = 1, flags = 0, pos = {x = -1, y = -1}, link = 12, slot = 109, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_JEWELLERY, sub_type = 5 '\005', {plus = 6, mon_type = MONS_BAT, skill = SK_STAVES, charges = 6, net_durability = 6, tithe_state = 6}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 324, unrand_idx = 324, subtype_rnd = 324, brand = 324, freshness = 324}, rnd = 112 'p', quantity = 1, flags = 15, pos = {x = -1, y = -1}, link = 13, slot = 110, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_WEAPONS, sub_type = 13 '\r', {plus = 1, mon_type = MONS_FRILLED_LIZARD, skill = SK_SHORT_BLADES, charges = 1, net_durability = 1, tithe_state = 1}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 212 '\324', quantity = 1, flags = 4111, pos = {x = -1, y = -1}, link = 14, slot = 111, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 4 elements = {["artefact_appearance"] = {type = SV_STR, flags = 0 '\000', val = {boolean = 48, byte = 48 '0', _short = -18640, _int = 29013808, _float = 6.85884703e-38, _int64 = 94390525278000, ptr = 0x55d901bab730}}, ["artefact_known_props"] = {type = SV_VEC, flags = 0 '\000', val = {boolean = 192, byte = -64 '\300', _short = 9664, _int = 21243328, _float = 3.60265988e-38, _int64 = 94390517507520, ptr = 0x55d9014425c0}}, ["artefact_name"] = {type = SV_STR, flags = 0 '\000', val = {boolean = 48, byte = 48 '0', _short = 23088, _int = 29121072, _float = 6.91897058e-38, _int64 = 94390525385264, ptr = 0x55d901bc5a30}}, ["artefact_props"] = {type = SV_VEC, flags = 0 '\000', val = {boolean = 48, byte = 48 '0', _short = -26576, _int = 27236400, _float = 5.86257539e-38, _int64 = 94390523500592, ptr = 0x55d9019f9830}}}, }}, {base_type = OBJ_SCROLLS, sub_type = 28 '\034', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 360736, unrand_idx = 360736, subtype_rnd = 360736, brand = 360736, freshness = 360736}, rnd = 14 '\016', quantity = 1, flags = 0, pos = {x = -1, y = -1}, link = 15, slot = 112, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_WANDS, sub_type = 15 '\017', {plus = 2, mon_type = MONS_LEOPARD_GECKO, skill = SK_LONG_BLADES, charges = 2, net_durability = 2, tithe_state = 2}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 174, unrand_idx = 174, subtype_rnd = 174, brand = 174, freshness = 174}, rnd = 198 '\306', quantity = 1, flags = 15, pos = {x = -1, y = -1}, link = 16, slot = 113, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_WEAPONS, sub_type = 4 '\004', {plus = 2, mon_type = MONS_LEOPARD_GECKO, skill = SK_LONG_BLADES, charges = 2, net_durability = 2, tithe_state = 2}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 8, unrand_idx = 8, subtype_rnd = 8, brand = 8, freshness = 8}, rnd = 99 'c', quantity = 1, flags = 131087, pos = {x = -1, y = -1}, link = 17, slot = 114, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_SCROLLS, sub_type = 28 '\034', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 352857, unrand_idx = 352857, subtype_rnd = 352857, brand = 352857, freshness = 352857}, rnd = 236 '\354', quantity = 1, flags = 0, pos = {x = -1, y = -1}, link = 18, slot = 115, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_SCROLLS, sub_type = 28 '\034', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 348490, unrand_idx = 348490, subtype_rnd = 348490, brand = 348490, freshness = 348490}, rnd = 124 '|', quantity = 1, flags = 0, pos = {x = -1, y = -1}, link = 19, slot = 116, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_STAVES, sub_type = 7 '\a', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 22, unrand_idx = 22, subtype_rnd = 22, brand = 22, freshness = 22}, rnd = 29 '\035', quantity = 1, flags = 15, pos = {x = -1, y = -1}, link = 20, slot = 117, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_SCROLLS, sub_type = 28 '\034', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 347775, unrand_idx = 347775, subtype_rnd = 347775, brand = 347775, freshness = 347775}, rnd = 154 '\232', quantity = 1, flags = 0, pos = {x = -1, y = -1}, link = 21, slot = 118, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}, {base_type = OBJ_UNASSIGNED, sub_type = 0 '\000', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, net_durability = 0, tithe_state = 0}, {plus2 = 0, net_placed = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 1 '\001', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }}}}, inv_uselessness = {mData = {false, false, false, false, false, false, false, false, false, true, false }}, equip = {mData = "\024\377\004\377\377\377\001\002\a", '\377' }, offhand_weapon = false, quiver_item = 8 '\b', quiver_desc = "Zap: wand of flame (40)", unarmed_attack = "Nothing wielded", unarmed_attack_colour = 7 '\a', quiver_available = true} spectator = god = "" prank = max_max_hp = place = short_name = "Dungeon" pos = #14 0x000055d8e941e666 in TilesFramework::redraw (this=0x55d8e98ec620 ) at tileweb.cc:2209 No locals. #15 0x000055d8e941e918 in TilesFramework::update_input_mode (this=0x55d8e98ec620 , mode=mode@entry=MOUSE_MODE_MORE, force=force@entry=false) at tileweb.cc:947 prev_mode = #16 0x000055d8e8fc595d in mouse_control::mouse_control (this=0x7ffffab49954, mode=MOUSE_MODE_MORE) at libutil.cc:492 No locals. #17 0x000055d8e9068573 in readkey_more (user_forced=user_forced@entry=false) at message.cc:1890 keypress = 0 unwind_more = {val = @0x55d8e988bdc1, oldval = false} mc = {m_previous_mode = 21977, static ms_current_mode = MOUSE_MODE_NORMAL} #18 0x000055d8e906a5f4 in message_window::more (this=this@entry=0x55d8e9895a80 , full=full@entry=true, user=user@entry=false) at message.cc:729 rng = {previous = rng::UI} last_row = 7 #19 0x000055d8e906ab80 in message_window::make_space (n=1, this=0x55d8e9895a80 ) at message.cc:480 space = 0 s = space = s = #20 message_window::add_item (this=this@entry=0x55d8e9895a80 , text="You feel life coursing into your body. The dead are walking!", first_col=first_col@entry=prefix_type::none, temporary=temporary@entry=false) at message.cc:631 line = {ops = std::vector of length 2359763136460, capacity 0 = { nl = @0x55d90152b810: {ops = std::vector of length 6, capacity 8 = {{type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = "You feel life coursing into your body."}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = " "}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = "The dead are walking!"}}} __for_range = std::vector of length 1, capacity 1 = {{ops = std::vector of length 6, capacity 8 = {{type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = "You feel life coursing into your body."}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = " "}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = "The dead are walking!"}}}} __for_begin = __for_end = newlines = std::vector of length 1, capacity 1 = {{ops = std::vector of length 6, capacity 8 = {{type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = "You feel life coursing into your body."}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = " "}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = "The dead are walking!"}}}} #21 0x000055d8e906b13a in message_store::store_msg (msg=..., this=0x55d8e988bde0 ) at message.cc:821 p = prefix_type::none dontsend = p = dontsend = #22 message_store::flush_prev (this=this@entry=0x55d8e988bde0 ) at message.cc:851 msg = {channel = MSGCH_PLAIN, param = 0, messages = std::vector of length 2, capacity 2 = {{text = "You feel life coursing into your body.", repeats = 1}, {text = "The dead are walking!", repeats = 1}}, turn = 5795, join = true} #23 0x000055d8e90650fc in message_store::add (msg=..., this=0x55d8e988bde0 ) at message.cc:785 orig_full_text = "You break out of your daze." orig_full_text = #24 _mpr (text=..., channel=MSGCH_RECOVERY, param=, nojoin=, cap=) at message.cc:1595 _doing_c_message_hook = false rng = {previous = rng::GAMEPLAY} colour = col = "lightgreen" domore = do_flash_screen = false join = 255 fs = {ops = std::vector of length 3, capacity 4 = {{type = FSOP_COLOUR, colour = 10, text = ""}, {type = FSOP_TEXT, colour = -1, text = "You break out of your daze."}, {type = FSOP_COLOUR, colour = 7, text = ""}}} msg = {channel = MSGCH_RECOVERY, param = 0, messages = std::vector of length 1, capacity 1 = {{text = "You break out of your daze.", repeats = 1}}, turn = 5795, join = true} #25 0x000055d8e90658d9 in do_message_print (channel=MSGCH_RECOVERY, param=0, cap=, nojoin=, format=, argp=) at /usr/include/c++/9/bits/basic_string.h:267 ap = {{gp_offset = 16, fp_offset = 48, overflow_arg_area = 0x7ffffab49f60, reg_save_area = 0x7ffffab49ea0}} buff = "You break out of your daze.\000\000\000\000\000\220\372\366\000\331U\000\000\340 /\002\331U\000\000\320!@\243+\177\000\000\274M\376\000\331U\000\000\005\000\000\000\000\000\000\000i\261>\243+\177\000\000\220\372\366\000\331U\000\000\260M\376\000\331U\000\000\320!@\243+\177\000\000\020\000\000\000\000\000\000\000\220\372\366\000\331U\000\000\277Y?\243+\177\000\000\000\000\000\000\000\000\000\000\060O\376\000\331U\000\000\320\367\373\000\331U\000\000P\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000K\265\363\000\000\000\000@\237\264\372\377\177\000\000P\237\264\372\377\177\000\000\340\377\366\000\331U\000" len = #26 0x000055d8e9065df4 in mprf (channel=channel@entry=MSGCH_RECOVERY, format=format@entry=0x55d8e943a491 "%s") at message.cc:1309 argp = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7ffffab49f60, reg_save_area = 0x7ffffab49ea0}} #27 0x000055d8e91b4b46 in _decrement_a_duration (dur=, delay=10, endmsg=0x55d8e946a8a9 "You break out of your daze.", exploss=, expmsg=0x0, chan=MSGCH_RECOVERY) at player-reacts.cc:164 exppoint = 0 old_dur = #28 0x000055d8e91b72f8 in _decrement_simple_duration (delay=10, dur=DUR_MESMERISED) at player-reacts.cc:903 No locals. #29 _decrement_durations () at player-reacts.cc:903 i = 4 delay = 10 melted = pbd_str = sanguine_armour_is_valid = delay = melted = pbd_str = sanguine_armour_is_valid = i = s = near_ghost = mi = old_recite = new_recite = i = #30 player_reacts () at player-reacts.cc:1112 stealth = #31 0x000055d8e9428aa5 in world_reacts () at main.cc:2600 No locals. #32 0x000055d8e9429a35 in _input () at main.cc:1301 player_disabled = {was_disabled = false} #33 0x000055d8e942a8f5 in _launch_game () at main.cc:493 game_start = ccon = {cstate = false} #34 0x000055d8e8c6895b in _launch_game_loop () at main.cc:392 game_ended = false game_ended = ge = fe = E = #35 main (argc=, argv=0x7ffffab4a878) at main.cc:342 echo = {prev_state = {value = maybe_bool::mbool_t::maybe, static maybe = {value = maybe_bool::mbool_t::maybe, static maybe = , static t = {value = maybe_bool::mbool_t::t, static maybe = , static t = , static f = {value = maybe_bool::mbool_t::f, static maybe = , static t = , static f = }}, static f = }, static t = , static f = }} [Inferior 1 (process 3017735) detached] Compilation info: <<<<<<<<<<< Compiled with GCC 9.4.0 Build platform: x86_64-linux-gnu Platform: x86_64-linux-gnu CFLAGS: -O2 -pipe -DUSE_TILE -DUSE_TILE_WEB -Wall -Wformat-security -Wundef -Wextra -Wno-missing-field-initializers -Wno-implicit-fallthrough -Wno-type-limits -Wno-uninitialized -Wno-array-bounds -Wno-format-zero-length -Wmissing-declarations -Wredundant-decls -Wno-parentheses -Wwrite-strings -Wshadow -pedantic -Wuninitialized -Iutil -I. -isystem /usr/include/lua5.1 -g -DWIZARD -DASSERTS -DREGEX_PCRE -DCLUA_BINDINGS -DDGAMELAUNCH -DSAVE_DIR_PATH="/crawl-master/crawl-0.32/saves" -DDATA_DIR_PATH="/crawl-master/crawl-0.32/data/" -DWEB_DIR_PATH="/crawl-master/crawl-0.32/data/web/" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 LDFLAGS: -rdynamic -fuse-ld=gold -O2 >>>>>>>>>>> Place info: branch = 0, depth = 6 Level id: D:6 Level build method = random_map_in_depth, level layout type = open_caves, absdepth0 = 5 Level vaults: minmay_spotlight layout_cave_pools mainiacjoe_overflow_two_lobes pdpol_wu_jian_five_deadly_venoms serial_park_tiny_pond uniq_duvessa uniq_maggie Markers: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>> Messages: <<<<<<<<<<<<<<<<<<<<<< The last of your harvested death is exhausted. Casting: Grave Claw (safe; 3% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Edmund hits Natasha with a +2 flail of protection. Natasha claws Edmund but does no damage. Edmund hits Natasha with a +2 flail of protection! Your scorpion zombie hits Edmund but does no damage. You swap places. Edmund barely misses you. Your scorpion zombie hits Edmund but does no damage. Casting: Grave Claw (safe; 3% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Vampiric Draining (dangerous; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - Edmund Aim: Edmund, wielding a +2 flail of protection, wearing a +0 chain mail and carrying a wand of polymorph (moderately wounded, ally target) You feel a surge of power! You draw life force from Edmund. Edmund closely misses you. Your scorpion zombie hits Edmund but does no damage. Casting: Vampiric Draining (dangerous; 6% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Vampiric Draining (dangerous; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - Edmund Aim: Edmund, wielding a +2 flail of protection, wearing a +0 chain mail and carrying a wand of polymorph (moderately wounded, ally target) You feel a surge of power! You draw life force from Edmund! Edmund closely misses you. Your scorpion zombie hits Edmund but does no damage. Casting: Vampiric Draining (dangerous; 6% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Vampiric Draining (dangerous; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - Edmund Aim: Edmund, wielding a +2 flail of protection, wearing a +0 chain mail and carrying a wand of polymorph (severely wounded, ally target) You feel a surge of power! You draw life force from Edmund! Edmund hits you with a +2 flail of protection. Your scorpion zombie hits Edmund. Edmund dies! Your Spellcasting skill increases to level 5! Your Necromancy skill increases to level 5! Your Evocations skill increases to level 1! You now have 154 gold pieces (gained 11). q - a wand of polymorph (4) Things that are here: a +2 flail of protection; a +0 chain mail; the human corpse of Edmund Okay, then. r - a +2 flail of protection You swap places. You swap places. You swap places. You swap places. A kobold comes into view. It is wielding a +0 club and quivering poisoned darts. Casting: Vampiric Draining (dangerous; 5% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Casting: Vampiric Draining (dangerous; 5% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Soul Splinter (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f - kobold Aim: a kobold, wielding a +0 club and quivering poisoned darts (asleep, ally target, chance to affect: 68%) You feel a surge of power! A fragment of the kobold's soul is dislodged from its body. The kobold looks weaker. The kobold shouts! Your soul wisp touches the kobold. The kobold dies! You swap places. Things that are here: a +0 club; 7 poisoned darts; a kobold corpse s - a scroll labelled MULIURA ZAUNG You swap places. You swap places. Things that are here: a +0 club; 7 poisoned darts; a kobold corpse A jelly comes into view. Found a scroll labelled LOEB FOSOLE. Casting: Soul Splinter (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Soul Splinter (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f - jelly Aim: a jelly (asleep, ally target, chance to affect: 60%) You feel a surge of power! The jelly resists with significant effort. Casting: Soul Splinter (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You must harvest more living souls to recharge this spell. Casting: Grave Claw (safe; 2% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Vampiric Draining (dangerous; 5% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - jelly Aim: a jelly (ally target) You feel a surge of power! You draw life force from the jelly! The jelly hits you but does no damage. Unknown command. Casting: Vampiric Draining (dangerous; 5% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You don't know that spell. You hit the jelly. Your weapon exudes an aura of protection. The acid corrodes you! Your hands burn! The jelly is almost dead. The jelly hits you but does no damage. You hit the jelly but do no damage. Your hands burn! The jelly is almost dead. The jelly hits you but does no damage. You hit the jelly but do no damage. The acid corrodes you! Your hands burn! The jelly is almost dead. The jelly closely misses you. You hit the jelly. You kill the jelly! Your Stealth skill increases to level 2! You are no longer corroded. t - a scroll labelled LOEB FOSOLE Found an escape hatch in the floor. There is an escape hatch in the floor here. You swap places. You swap places. An ice beast comes into view. Casting: Vampiric Draining (dangerous; 5% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Casting: Vampiric Draining (dangerous; 5% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Casting: Vampiric Draining (dangerous; 5% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You conjure some foxfire! Your foxfire dissipates! Your foxfire dissipates! Casting: Foxfire (safe; 9% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You conjure some foxfire! Natasha closely misses the ice beast. Your foxfire dissipates! The foxfire hits the ice beast. The ice beast melts! The ice beast is lightly wounded. The ice beast hits your scorpion zombie but does no damage. Natasha claws the ice beast. Aiming: Throw Flame Press: ? - help, Q - select action, (/) - cycle Shift-Dir - straight line, f - ice beast Aim: an ice beast (lightly wounded, ally target, 68% to hit) Okay, then. You swap places. The ice beast hits you but does no damage. Natasha closely misses the ice beast. Casting: Foxfire (safe; 9% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You don't know that spell. You hit the ice beast but do no damage. Your weapon exudes an aura of protection. The ice beast is lightly wounded. The ice beast closely misses you. Natasha claws the ice beast but does no damage. You hit the ice beast but do no damage. The ice beast is lightly wounded. The ice beast barely misses you. You hit the ice beast but do no damage. The ice beast is lightly wounded. The ice beast closely misses you. Natasha claws the ice beast. You closely miss the ice beast. The ice beast is lightly wounded. The ice beast hits you but does no damage. Natasha barely misses the ice beast. You closely miss the ice beast. The ice beast is lightly wounded. The ice beast barely misses you. Natasha barely misses the ice beast. Aiming: Throw Flame Press: ? - help, Q - select action, (/) - cycle Shift-Dir - straight line, f - ice beast Aim: an ice beast (lightly wounded, ally target, 68% to hit) The puff of flame hits the ice beast. The ice beast melts! The ice beast is moderately wounded. The ice beast closely misses you. Natasha barely misses the ice beast. Aiming: Throw Flame Press: ? - help, Q - select action, (/) - cycle Shift-Dir - straight line, f/p - ice beast Aim: an ice beast (moderately wounded, ally target, 68% to hit) The puff of flame hits the ice beast. The ice beast melts! The ice beast is heavily wounded. The ice beast hits you but does no damage. You hit the ice beast. Your weapon exudes an aura of protection. The ice beast is heavily wounded. The ice beast closely misses you. Natasha claws the ice beast. You hit the ice beast but do no damage. The ice beast is severely wounded. The ice beast closely misses you. Natasha claws the ice beast. Aiming: Throw Flame Press: ? - help, Q - select action, (/) - cycle Shift-Dir - straight line, f/p - ice beast Aim: an ice beast (severely wounded, ally target, 68% to hit) The puff of flame misses the ice beast. The ice beast hits you but does no damage. Natasha claws the ice beast. Unknown command. You closely miss the ice beast. The ice beast is almost dead. The ice beast hits you but does no damage. Natasha closely misses the ice beast. You hit the ice beast. You kill the ice beast! You have harvested enough death to cast Grave Claw an additional time. You have reached level 7! You now have 165 gold pieces (gained 11). A kobold comes into view. It is wielding a +0 short sword. A kobold is nearby! Casting: Foxfire (safe; 9% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Soul Splinter (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f - kobold Aim: a kobold, wielding a +0 short sword and quivering stones (asleep, ally target, chance to affect: 68%) You feel a surge of power! The kobold struggles to resist. The kobold shouts! You hear an angry hiss. The kobold hits you with a +0 short sword. Casting: Soul Splinter (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You conjure some foxfire! The kobold hits you but does no damage. Your foxfire dissipates! The foxfire hits the kobold. The kobold is heavily wounded. The kobold hits your scorpion zombie with a +0 short sword. You swap places. The kobold closely misses you. You closely miss the kobold. The kobold is heavily wounded. Your scorpion zombie hits the kobold. The kobold dies! Things that are here: a +0 short sword; 2 stones You swap places. Things that are here: a +0 short sword; 2 stones Found a stone staircase leading down. A jelly comes into view. Found an escape hatch in the ceiling. A jelly is nearby! Casting: Foxfire (safe; 9% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. This spell is extremely dangerous to cast! The jelly quivers. You start memorising the spell. You continue memorising. x4 The jelly hits you but does no damage. Your memorisation is interrupted. Casting: Foxfire (safe; 9% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Casting: Foxfire (safe; 9% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Casting: Foxfire (safe; 9% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Soul Splinter (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f - jelly Aim: a jelly (ally target, chance to affect: 60%) You feel a surge of power! A fragment of the jelly's soul is dislodged from its body. The jelly looks weaker. The jelly hits you but does no damage. Your soul wisp touches the jelly. Your soul wisp is burned by acid! Casting: Soul Splinter (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Vampiric Draining (dangerous; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - jelly Aim: a jelly (lightly wounded, weak, ally target, soul-splintered) You feel a surge of power! You draw life force from the jelly. The jelly hits you but does no damage. Your soul wisp touches the jelly. Your soul wisp is burned by acid! Your soul wisp returns to where it belongs. The jelly is no longer weakened. Casting: Vampiric Draining (dangerous; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Vampiric Draining (dangerous; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - jelly Aim: a jelly (severely wounded, ally target) You feel a surge of power! You draw life force from the jelly! You kill the jelly! Your Fighting skill increases to level 1! Unknown command. There is an escape hatch in the ceiling here. An adder comes into view. Casting: Vampiric Draining (dangerous; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Soul Splinter (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f - adder Aim: an adder (asleep, ally target, chance to affect: 60%) You feel a surge of power! A fragment of the adder's soul is dislodged from its body. The adder looks weaker. The adder bites your soul wisp but does no damage. Your soul wisp completely misses the adder. The adder bites your soul wisp but does no damage. The adder barely misses your soul wisp. Your soul wisp touches the adder. The adder bites your soul wisp but does no damage. Your soul wisp closely misses the adder. Casting: Soul Splinter (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You don't know that spell. The adder bites your soul wisp but does no damage. Your soul wisp misses the adder. You swap places. The adder closely misses you. The adder barely misses you. Casting: Soul Splinter (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Vampiric Draining (dangerous; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - adder Aim: an adder (lightly wounded, weak, ally target, soul-splintered) You feel a surge of power! You draw life force from the adder! The adder closely misses you. Unknown command. Casting: Vampiric Draining (dangerous; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Vampiric Draining (dangerous; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - adder Aim: an adder (severely wounded, weak, ally target, soul-splintered) You feel a surge of power! You draw life force from the adder! You kill the adder! Your Spellcasting skill increases to level 6! You see here an adder corpse. Unknown command. Natasha, Servant of Life and Death comes into view. You swap places. Natasha claws Natasha! Natasha claws Natasha. Natasha claws Natasha! Natasha is destroyed! Casting: Vampiric Draining (dangerous; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Soul Splinter (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f - Natasha Aim: Natasha (lightly wounded, ally target, chance to affect: 50%) You feel a surge of power! Natasha resists with significant effort. Natasha claws you. Casting: Soul Splinter (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Grave Claw (safe; 2% risk of failure) (1/3 uses available) Press: ? - help, Dir - move target, f/p - Natasha Aim: Natasha (lightly wounded, ally target) Okay, then. Casting: Grave Claw (safe; 2% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Vampiric Draining (dangerous; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - Natasha Aim: Natasha (lightly wounded, ally target) You feel a surge of power! You miscast Vampiric Draining. You are very lightly contaminated with residual magic. Nothing appears to happen. Natasha claws you. Unknown command. Casting: Vampiric Draining (dangerous; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Vampiric Draining (dangerous; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - Natasha Aim: Natasha (lightly wounded, ally target) You feel a surge of power! You draw life force from Natasha. You feel life coursing into your body. Natasha claws you. Unknown command. Casting: Vampiric Draining (dangerous; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Vampiric Draining (dangerous; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - Natasha Aim: Natasha (heavily wounded, ally target) You feel a surge of power! You draw life force from Natasha. You feel life coursing into your body. Natasha claws you! Unknown command. Casting: Vampiric Draining (dangerous; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Vampiric Draining (dangerous; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - Natasha Aim: Natasha (severely wounded, ally target) You feel a surge of power! You draw life force from Natasha! You kill Natasha! You feel Natasha's spirit has finally been put to rest. You have harvested enough death to cast Grave Claw an additional time. You feel life coursing into your body. Your magical contamination has completely faded away. You see here a staff of conjuration. u - a staff of conjuration You can't go up here! This spell is impossible to cast! You start memorising the spell. You continue memorising. x6 You finish memorising. Spell assigned to 'f'. There are no items here. There are no items here. There are no items here. You swap places. You swap places. Your +1 dagger of protection goes still. u - a staff of conjuration (weapon) Casting: Vampiric Draining (dangerous; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You can't see any susceptible monsters within range! (Use Z to cast anyway.) Sorry, you're not good enough to have a special ability. Casting: Vampiric Draining (dangerous; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Casting: Vampiric Draining (dangerous; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You don't know that spell. You swap places. You swap places. Things that are here: a +0 club; 7 poisoned darts; a kobold skeleton Done exploring. Done exploring. Done exploring. Things that are here: a +0 club; 7 poisoned darts; a kobold skeleton There is a stone staircase leading down here. You fly downwards. Your mindless puppet stays behind to rot. Found a stone staircase leading down. There is a stone staircase leading up here. Casting: Vampiric Draining (dangerous; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You feel a surge of power! You conjure some foxfire! The foxfire hits the orc. The orc is moderately wounded. The orc shouts! The foxfire hits the orc. You kill the orc! Casting: Foxfire (safe; 9% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Magic restored. There is a stone staircase leading down here. You now have 176 gold pieces (gained 11). v - a scroll labelled PECIMI KIATZY Found a basalt altar of Yredelemnul. Found 8 stones. An iguana comes into view. Found a stone staircase leading down. An ice beast comes into view. Casting: Foxfire (safe; 9% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You don't know that spell. Casting: Foxfire (safe; 9% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You feel a surge of power! You call upon the dead to rise. Casting: Animate Dead (quite dangerous; 16% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Casting: Animate Dead (quite dangerous; 16% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Soul Splinter (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f - iguana Aim: an iguana (chance to affect: 60%) You feel a surge of power! A fragment of the iguana's soul is dislodged from its body. The iguana looks weaker. Your soul wisp touches the iguana but does no damage. Casting: Soul Splinter (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Casting: Soul Splinter (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You feel a surge of power! You conjure some foxfire! Your soul wisp touches the iguana. Your foxfire dissipates! The foxfire hits the iguana but does no damage. The iguana is heavily wounded. Casting: Foxfire (safe; 9% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You don't know that spell. Casting: Foxfire (safe; 9% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You don't know that spell. Casting: Foxfire (safe; 9% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You feel a surge of power! You conjure some foxfire! You hit the iguana. The iguana is heavily wounded. The foxfire hits the iguana. The iguana is severely wounded. The foxfire hits the iguana. The iguana is almost dead. The iguana barely misses you. Aiming: Throw Flame Press: ? - help, Q - select action, (/) - cycle Shift-Dir - straight line, f - ice beast, p - iguana Aim: an ice beast (68% to hit) The puff of flame hits the ice beast. The ice beast melts! The ice beast is lightly wounded. The iguana bites you. The ice beast closely misses you. Your soul wisp touches the iguana but does no damage. Casting: Foxfire (safe; 9% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Vampiric Draining (dangerous; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f - iguana, p - ice beast Aim: an iguana (almost dead, weak, ally target, soul-splintered) You feel a surge of power! You draw life force from the iguana! You kill the iguana! The dead are walking! The ice beast misses you. Your soul wisp touches the ice beast. Casting: Vampiric Draining (dangerous; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Vampiric Draining (dangerous; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f - ice beast Aim: an ice beast (moderately wounded, ally target) You feel a surge of power! You draw life force from the ice beast! You feel life coursing into your body. The ice beast misses you. Your soul wisp closely misses the ice beast. Unknown command. Casting: Vampiric Draining (dangerous; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Vampiric Draining (dangerous; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - ice beast Aim: an ice beast (severely wounded, ally target) You feel a surge of power! You draw life force from the ice beast. The ice beast barely misses you. Your soul wisp touches the ice beast. The ice beast dies! The dead are walking! Your reaping aura is weakening. Your reaping aura expires. You swap places. i - a wand of flame (48) (gained 29 charges) Found a stone staircase leading up. Okay, then. You swap places. You swap places. Found a stone staircase leading up. Menkaure, Prince of Dust comes into view. Menkaure is nearby! Casting: Vampiric Draining (dangerous; 3% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Casting: Vampiric Draining (dangerous; 3% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Grave Claw (safe; 1% risk of failure) (2/3 uses available) Press: ? - help, Dir - move target, f - Menkaure Aim: Menkaure (ally target) You feel a surge of power! You unleash the spiteful dead! The jagged bones skewer Menkaure! Menkaure is heavily damaged. Menkaure is pinned in place! Casting: Grave Claw (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Casting: Grave Claw (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Grave Claw (safe; 1% risk of failure) (1/3 uses available) Press: ? - help, Dir - move target, f/p - Menkaure Aim: Menkaure (heavily damaged, ally target, bound in place) You feel a surge of power! You unleash the spiteful dead! The jagged bones skewer Menkaure. Menkaure is severely damaged. The last of your harvested death is exhausted. Unknown command. Casting: Grave Claw (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Aiming: Throw Flame Press: ? - help, Q - select action, (/) - cycle Shift-Dir - straight line, f/p - Menkaure Aim: Menkaure (severely damaged, ally target, bound in place, 85% to hit) The puff of flame hits Menkaure but does no damage. Menkaure is severely damaged. Unknown command. Aiming: Throw Flame Press: ? - help, Q - select action, (/) - cycle Shift-Dir - straight line, f/p - Menkaure Aim: Menkaure (severely damaged, ally target, bound in place, 85% to hit) Okay, then. Your iguana zombie bites Menkaure! Menkaure is destroyed! You swap places. Found a stone staircase leading down. A bombardier beetle comes into view. The bombardier beetle moves out of view. A bombardier beetle is nearby! Aiming: Throw Flame Press: ? - help, Q - select action, (/) - cycle Shift-Dir - straight line Okay, then. Casting: Grave Claw (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Casting: Grave Claw (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Soul Splinter (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f - bombardier beetle Aim: a bombardier beetle (chance to affect: 50%) You feel a surge of power! The bombardier beetle resists with significant effort. The bombardier beetle sprays incendiary fluid at you. The burning spray hits you. You are covered in liquid fire! You shake off some of the fire as you move. The liquid fire burns you terribly! Casting: Soul Splinter (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You feel a surge of power! You conjure some foxfire! The liquid fire burns you terribly! The bombardier beetle sprays incendiary fluid at you. The burning spray hits you. You are even more covered in liquid fire! Unknown command. Casting: Foxfire (safe; 8% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Soul Splinter (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - bombardier beetle Aim: a bombardier beetle (ally target, chance to affect: 50%) You feel a surge of power! A fragment of the bombardier beetle's soul is dislodged from its body. The bombardier beetle looks weaker. The liquid fire burns you terribly! The foxfire hits the bombardier beetle. The bombardier beetle is moderately wounded. The foxfire hits the bombardier beetle but does no damage. The bombardier beetle is moderately wounded. The bombardier beetle sprays incendiary fluid at you. The burning spray misses you. Your soul wisp barely misses the bombardier beetle. Casting: Soul Splinter (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You can't see any susceptible monsters within range! (Use Z to cast anyway.) Unknown command. You shake off some of the fire as you move. The liquid fire burns you terribly! Your soul wisp touches the bombardier beetle but does no damage. Casting: Soul Splinter (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You feel a surge of power! You conjure some foxfire! The liquid fire burns you terribly! The foxfire hits the bombardier beetle. The bombardier beetle is moderately wounded. Your iguana zombie bites the bombardier beetle! You swap places. Found a broken altar of Ashenzari. You shake off some of the fire as you move. The liquid fire burns you terribly! The foxfire hits the bombardier beetle. The bombardier beetle is almost dead. Your ice beast zombie hits the bombardier beetle but does no damage. Your soul wisp touches the bombardier beetle. The bombardier beetle dies! Your Necromancy skill increases to level 6! Casting: Foxfire (safe; 8% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You feel a surge of power! You conjure some foxfire! The liquid fire burns you terribly! Unknown command. You shake off the liquid fire. Your foxfire dissipates! HP restored. You now have 181 gold pieces (gained 5). You swap places. You swap places. You swap places. Found a blossoming altar of Fedhas. You now have 193 gold pieces (gained 12). You swap places. You swap places. You swap places. You swap places. You swap places. You swap places. You swap places. You swap places. You swap places. Found a hand axe. You swap places. Found a shadowy altar of Dithmenos. You swap places. You swap places. You swap places. You swap places. Found 4 stones. There is a broken altar of Ashenzari here. You hover solemnly before the altar of Ashenzari. Found 7 stones. You see here 4 stones. You swap places. You swap places. You swap places. You swap places. You swap places. You swap places. You swap places. You swap places. You swap places. You swap places. You swap places. You swap places. You swap places. You swap places. You swap places. You swap places. You swap places. Blorkula the Orcula comes into view. He is wielding a +0 mace. Found an escape hatch in the floor. Blorkula the Orcula shouts! Casting: Foxfire (safe; 8% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Aiming: Throw Flame Press: ? - help, Q - select action, (/) - cycle Shift-Dir - straight line, f - Blorkula the Orcula Aim: Blorkula the Orcula, wielding a +0 mace and wearing a +0 robe (ally target, 72% to hit) Unknown command. Unknown command. Blorkula the Orcula gestures at you while chanting. The zap hits you. Aiming: Throw Flame Press: ? - help, Q - select action, (/) - cycle Shift-Dir - straight line, f/p - Blorkula the Orcula Aim: Blorkula the Orcula, wielding a +0 mace and wearing a +0 robe (moderately damaged, ally target, 72% to hit) Unknown command. Aiming: Throw Flame Press: ? - help, Q - select action, (/) - cycle Shift-Dir - straight line, f/p - Blorkula the Orcula Aim: Blorkula the Orcula, wielding a +0 mace and wearing a +0 robe (heavily damaged, wandering, hasn't noticed you, 72% to hit) Okay, then. Casting: Foxfire (safe; 8% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Aiming: Polymorph Press: ? - help, Q - select action, (/) - cycle Shift-Dir - straight line, p - Blorkula the Orcula Okay, then. You swap places. Aiming: Polymorph Press: ? - help, Q - select action, (/) - cycle Shift-Dir - straight line, p - Blorkula the Orcula Okay, then. Blorkula the Orcula gestures at you while chanting. The puff of flame hits your ice beast zombie. Blorkula the Orcula gestures at you while chanting. The blast of sand hits your ice beast zombie! Aiming: Polymorph Press: ? - help, Q - select action, (/) - cycle Shift-Dir - straight line, f/p - Blorkula the Orcula Aim: Blorkula the Orcula, wielding a +0 mace and wearing a +0 robe (heavily damaged, ally target, not susceptible) Blorkula the Orcula is unaffected. Your ice beast zombie is engulfed in a cloud of scalding steam. Casting: Foxfire (safe; 8% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You feel a surge of power! You conjure some foxfire! Blorkula the Orcula barely misses your ice beast zombie. Blorkula the Orcula completely misses your ice beast zombie. Your ice beast zombie hits Blorkula the Orcula but does no damage. The foxfire hits Blorkula the Orcula. Blorkula the Orcula is heavily damaged. The foxfire hits Blorkula the Orcula. Blorkula the Orcula is heavily damaged. Blorkula the Orcula hits your ice beast zombie with a +0 mace! Blorkula the Orcula bites your ice beast zombie but does no damage. Your iguana zombie bites Blorkula the Orcula! Your ice beast zombie hits Blorkula the Orcula. Your ice beast zombie barely misses Blorkula the Orcula. Casting: Foxfire (safe; 8% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Aiming: Throw Flame Press: ? - help, Shift-Dir - straight line, f/p - Blorkula the Orcula Aim: Blorkula the Orcula, wielding a +0 mace and wearing a +0 robe (almost destroyed, ally target, 72% to hit) Okay, then. Unknown command. Aiming: Polymorph Press: ? - help, Q - select action, (/) - cycle Shift-Dir - straight line, f/p - Blorkula the Orcula Aim: Blorkula the Orcula, wielding a +0 mace and wearing a +0 robe (almost destroyed, ally target, not susceptible) Blorkula the Orcula is unaffected. Your iguana zombie barely misses Blorkula the Orcula. Aiming: Throw Flame Press: ? - help, Q - select action, (/) - cycle Shift-Dir - straight line, f/p - Blorkula the Orcula Aim: Blorkula the Orcula, wielding a +0 mace and wearing a +0 robe (almost destroyed, ally target, 72% to hit) Your ice beast zombie hits the vampire bat. Your iguana zombie completely misses the vampire bat. Unknown command. Aiming: Throw Flame Press: ? - help, Q - select action, (/) - cycle Shift-Dir - straight line, f - vampire bat Aim: a vampire bat (water, 52% to hit) Okay, then. Casting: Foxfire (safe; 8% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You feel a surge of power! You conjure some foxfire! A vampire bat comes into view. The vampire bat bites you. The vampire bat barely misses you. Casting: Foxfire (safe; 8% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Casting: Foxfire (safe; 8% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Casting: Foxfire (safe; 8% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You feel a surge of power! You conjure some foxfire! The foxfire hits the vampire bat. The vampire bat is moderately damaged. The foxfire hits the vampire bat. The vampire bat is heavily damaged. The vampire bat bites you. The vampire bat misses you. The vampire bat closely misses you. The vampire bat completely misses you. Casting: Foxfire (safe; 8% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You don't know that spell. Your foxfire dissipates! The foxfire hits the vampire bat. The vampire bat is moderately damaged. The vampire bat misses you. The vampire bat barely misses you. The vampire bat closely misses you. The vampire bat bites your iguana zombie. Casting: Foxfire (safe; 8% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You feel a surge of power! You miscast Foxfire. You are very lightly contaminated with residual magic. Nothing appears to happen. The vampire bat barely misses you. The vampire bat bites you. The vampire bat bites you but does no damage. The vampire bat bites you. The vampire bat barely misses you. The vampire bat bites your iguana zombie but does no damage. Casting: Foxfire (safe; 8% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You feel a surge of power! You conjure some foxfire! The vampire bat bites you but does no damage. x2 The foxfire hits the vampire bat. The vampire bat is severely damaged. The vampire bat bites your iguana zombie but does no damage. The vampire bat bites your ice beast zombie. The vampire bat barely misses you. The foxfire hits the vampire bat. The vampire bat is almost destroyed. The vampire bat bites your ice beast zombie. Your ice beast zombie is destroyed! The vampire bat barely misses you. x3 The vampire bat bites your iguana zombie. Casting: Foxfire (safe; 8% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You feel a surge of power! You conjure some foxfire! The vampire bat barely misses you. x3; The vampire bat completely misses you. The vampire bat closely misses you. Your iguana zombie barely misses the vampire bat. The vampire bat bites your iguana zombie. The foxfire hits the vampire bat. The vampire bat is moderately damaged. The foxfire hits the vampire bat. You destroy the vampire bat! That felt strangely unrewarding. The vampire bat barely misses you. The vampire bat bites you but does no damage. The vampire bat misses you. The vampire bat bites you. The vampire bat bites your iguana zombie but does no damage. The vampire bat closely misses you. Casting: Foxfire (safe; 8% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You feel a surge of power! You conjure some foxfire! The vampire bat bites your iguana zombie. The vampire bat barely misses you. The vampire bat closely misses you. Your magical contamination has completely faded away. The foxfire hits the vampire bat. The vampire bat is heavily damaged. The foxfire hits the vampire bat. The vampire bat is almost destroyed. Casting: Foxfire (safe; 8% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You feel a surge of power! You conjure some foxfire! The vampire bat closely misses you. The vampire bat bites you. x3 Your foxfire dissipates! The foxfire hits the vampire bat. The vampire bat is severely damaged. The vampire bat bites you but does no damage. Casting: Foxfire (safe; 8% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You feel a surge of power! You conjure some foxfire! The vampire bat bites you. The vampire bat bites you but does no damage. The vampire bat barely misses you. The vampire bat closely misses you. The vampire bat bites you. Your foxfire dissipates! The foxfire hits the vampire bat. The vampire bat is almost destroyed. The vampire bat attacks as it pursues you! The vampire bat bites you but does no damage. The vampire bat bites you. The vampire bat misses you. The vampire bat bites you but does no damage. Casting: Foxfire (safe; 8% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You feel a surge of power! You miscast Foxfire. You are very lightly contaminated with residual magic. Nothing appears to happen. The vampire bat barely misses you. The bats swarm back together and Blorkula the Orcula reappears in a puff of iridescent mist. Casting: Foxfire (safe; 8% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Casting: Foxfire (safe; 8% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Casting: Foxfire (safe; 8% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You can't see any susceptible monsters within range! (Use Z to cast anyway.) You hit Blorkula the Orcula. Blorkula the Orcula is moderately damaged. Blorkula the Orcula hits you with a +0 mace. Blorkula the Orcula closely misses you. Your iguana zombie bites Blorkula the Orcula! You hit Blorkula the Orcula but do no damage. Blorkula the Orcula is severely damaged. Blorkula the Orcula hits you with a +0 mace. Blorkula the Orcula misses you. Your iguana zombie barely misses Blorkula the Orcula. Blorkula the Orcula hits you with a +0 mace! * * * LOW HITPOINT WARNING * * * Blorkula the Orcula misses you. Casting: Foxfire (safe; 8% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You feel a surge of power! You conjure some foxfire! Your iguana zombie bites Blorkula the Orcula! Blorkula the Orcula attempts to avoid another deathblow, but is too exhausted to transform. Blorkula the Orcula is destroyed! A faint prismatic mist rises from Blorkula's broken form and then dissipates. Your Spellcasting skill increases to level 7! Your foxfire dissipates! x2 Your magical contamination has completely faded away. You swap places. Things that are here: a +0 mace; a +0 robe Found a shimmering blue altar of Sif Muna. There is an escape hatch in the floor here. You swap places. You swap places. There is a stone staircase leading up here. You swap places. You swap places. Partly explored, can't reach some places. Sorry, I don't know how to get there. Sorry, I don't know how to get there. You see here a +0 hand axe. Partly explored, can't reach some places. Sorry, I don't know how to get there. Sorry, I don't know how to get there. Partly explored, can't reach some places. Partly explored, can't reach some places. You swap places. There is a stone staircase leading down here. You fly downwards. Your mindless puppet stays behind to rot. Found 13 gold pieces. There is a stone staircase leading up here. You now have 206 gold pieces (gained 13). Found a stone staircase leading down. A hound comes into view. The hound barks! You hear a shout! Casting: Foxfire (safe; 7% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You feel a surge of power! You call upon the dead to rise. Maggie the Vainglorious comes into view. She is wielding a +4 vampiric morningstar. Casting: Animate Dead (quite dangerous; 10% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Soul Splinter (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f - hound Aim: a hound (chance to affect: 60%) You feel a surge of power! A fragment of the hound's soul is dislodged from its body. The hound looks weaker. The hound bites your soul wisp but does no damage. Your soul wisp touches the hound. Maggie mumbles some strange words. Maggie attempts to bespell you! You are mesmerised by Maggie! Casting: Soul Splinter (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Aiming: Throw Flame Press: ? - help, Q - select action, (/) - cycle Shift-Dir - straight line, f - Maggie, p - hound Aim: Maggie, wielding a +4 vampiric morningstar and wearing +0 steam dragon scales (mesmerising, 71% to hit) The puff of flame hits Maggie! Maggie is lightly wounded. The hound bites your soul wisp. Your soul wisp completely misses the hound. The hound bites your soul wisp. Aiming: Throw Flame Press: ? - help, Q - select action, (/) - cycle Shift-Dir - straight line, f/p - Maggie Aim: Maggie, wielding a +4 vampiric morningstar and wearing +0 steam dragon scales (lightly wounded, mesmerising, 71% to hit) The puff of flame hits Maggie. Maggie is moderately wounded. The hound bites your soul wisp but does no damage. Your soul wisp touches the hound. Casting: Soul Splinter (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. It is impossible to cast this spell (100% risk of failure)! Unknown command. Sorry, you're not good enough to have a special ability. Casting: Starburst (astonishingly dangerous; 100% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Casting: Starburst (astonishingly dangerous; 100% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You feel a surge of power! You conjure some foxfire! The hound bites your soul wisp. x2; Your soul wisp barely misses the hound. Aiming: Throw Flame Press: ? - help, Q - select action, (/) - cycle Shift-Dir - straight line, f/p - Maggie Aim: Maggie, wielding a +4 vampiric morningstar and wearing +0 steam dragon scales (moderately wounded, mesmerising, 71% to hit) The puff of flame hits Maggie. Maggie is moderately wounded. The foxfire hits the hound. The hound is severely wounded. The hound bites your soul wisp. Your soul wisp returns to where it belongs. The hound is no longer weakened. Aiming: Throw Flame Press: ? - help, Q - select action, (/) - cycle Shift-Dir - straight line, f/p - Maggie Aim: Maggie, wielding a +4 vampiric morningstar and wearing +0 steam dragon scales (moderately wounded, mesmerising, 71% to hit) The puff of flame hits Maggie! Maggie is moderately wounded. The foxfire hits Maggie. Maggie is heavily wounded. Casting: Foxfire (safe; 7% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Vampiric Draining (dangerous; 2% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - Maggie Aim: Maggie, wielding a +4 vampiric morningstar and wearing +0 steam dragon scales (heavily wounded, mesmerising) You feel a surge of power! You draw life force from Maggie. Maggie gives herself a magical halo, but it quickly sputters out. Maggie gestures at you while chanting. The bolt of fire hits you! The fire burns you terribly! Casting: Vampiric Draining (dangerous; 2% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Vampiric Draining (dangerous; 2% risk of failure) Press: ? - help, Shift-Dir - straight line, f - hound, p - Maggie Aim: a hound (severely wounded) You feel a surge of power! You draw life force from the hound! You kill the hound! You have harvested enough death to cast Grave Claw an additional time. You feel life coursing into your body. The dead are walking! >>>>>>>>>>>>>>>>>>>>>> Version history: Game started: 0.32.1-5-gba85492886 Game state: mouse_enabled: 0, waiting_for_command: 0, terminal_resized: 0 io_inited: 1, need_save: 1, saving_game: 0, updating_scores: 0: seen_hups: 1, map_stat_gen: 0, type: 1, arena_suspended: 0 prev_cmd = CMD_CAST_SPELL repeat_cmd = CMD_NO_CMD Player: {{{{{{{{{{{ Name: [FattymcFatterson] Species: Mummy Job: Necromancer HP: 36/48; mods: 0/0 MP: 6/17; mod: 0 Stats: 11 (11) 16 (16) 13 (13) Position: (31, 38), god: No God (0), turn_is_over: 1, banished: 0 Standing on/in/over feature: floor Skills (mode: auto) Name | can_currently_train | train | training | level | points | progress Fighting | X | 1 | 6 | 1 | 68 | 18/100 Short Blades | X | 1 | 0 | 0 | 32 | 32/70 Long Blades | X | 1 | 0 | 0 | 0 | 0/70 Axes | X | 1 | 0 | 0 | 0 | 0/70 Maces & Flails | X | 1 | 0 | 0 | 0 | 0/70 Polearms | X | 1 | 0 | 0 | 0 | 0/70 Staves | X | 1 | 0 | 0 | 0 | 0/70 Ranged Weapons | X | 1 | 0 | 0 | 0 | 0/70 Throwing | X | 1 | 0 | 0 | 0 | 0/70 Armour | X | 1 | 0 | 0 | 0 | 0/70 Dodging | X | 1 | 7 | 2 | 419 | 207/212 Stealth | X | 1 | 6 | 2 | 227 | 49/178 Shields | X | 1 | 0 | 0 | 0 | 0/70 Unarmed Combat | X | 1 | 0 | 0 | 0 | 0/70 Spellcasting | X | 1 | 35 | 7 | 1016 | 27/283 Conjurations | X | 1 | 7 | 1 | 115 | 45/142 Hexes | X | 1 | 0 | 0 | 0 | 0/59 Summonings | X | 1 | 0 | 0 | 0 | 0/70 Necromancy | X | 1 | 22 | 6 | 1154 | 104/350 Translocations | X | 1 | 0 | 0 | 0 | 0/70 Fire Magic | X | 1 | 7 | 1 | 155 | 85/142 Ice Magic | X | 1 | 0 | 0 | 0 | 0/70 Air Magic | X | 1 | 0 | 0 | 0 | 0/70 Earth Magic | X | 1 | 0 | 0 | 0 | 0/70 Alchemy | X | 1 | 0 | 0 | 0 | 0/70 Invocations | X | 1 | 0 | 0 | 0 | 0/59 Evocations | X | 1 | 10 | 1 | 144 | 74/142 Spell bugs: Durations: #159: 470 #185: 6 Attributes: #12: 206 #22: 1 #23: 2934 #24: 1586431953 #34: 1 #49: 350 Mutations: cold resistance: 1 (innate) negative energy resistance: 3 (innate) torment resistance: 2 (innate) heat vulnerability: 1 (innate) in touch with death: 1 (innate) no potions: 1 (innate) faith: 1 (innate) Inventory bugs: Equipment: eq slot #0, inv slot #20: staff of conjuration eq slot #2, inv slot #4: +0 helmet eq slot #6, inv slot #1: +0 robe eq slot #7, inv slot #2: +4 ring of protection eq slot #8, inv slot #7: ring of flight }}}}}}}}}}} Webtiles message buffer: {"msg":"player" Webtiles JSON stack: start: 0 end: 15 type: } Screenshot: .. . .##. .. ... .#. .# ..# .... ..### ..## ...^. # .......## ..##..... .. #........ #.......? ..###. ......###@@...... #..#.. #........#..... .....######.........#.. ......## ##..#.##..# #....###...#.# #..# #..#.<..##......## #... #................# ... #...###.......#...# #. ..... #.......>..... clua stack: dlua stack: Lua persistent data: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>> Lua marker contents: <<<<<<<<<<<<<<<<<<<<<< Lua marker 0 at (5, 29): {{{{ CLASS: FogMachine pow_min: 3 spread_buildup_time: 1 listeners: spread_rate: -1 size_min: 1 size_max: 1 pow_max: 3 start_clouds: 0 dgn_trigs_by_type: 1: 1: 1 32: 1: 2 triggerers: 1: CLASS: DgnTriggerer countdown: 2 type: turn sub_type: countdown delay_min: 10 buildup_turns: 0 listener_only: false delay_max: 10 2: CLASS: DgnTriggerer type: entered_level listener_only: false size_buildup_time: 1 kill_cat: other activated: true activating: false buildup_turns: 1 size_buildup_amnt: 0 excl_rad: 1 spread_buildup_amnt: 0 cloud_type: thin mist props: walk_dist: 0 pow_rolls: 3}}}} Lua marker 1 at (5, 29): {{{{ CLASS: PortalDescriptor props: positions: five_deadly_venoms }}}} Lua marker 2 at (8, 26): {{{{ CLASS: FogMachine pow_min: 3 spread_buildup_time: 1 listeners: spread_rate: -1 size_min: 1 size_max: 1 pow_max: 3 start_clouds: 0 dgn_trigs_by_type: 1: 1: 1 32: 1: 2 triggerers: 1: CLASS: DgnTriggerer countdown: 2 type: turn sub_type: countdown delay_min: 10 buildup_turns: 0 listener_only: false delay_max: 10 2: CLASS: DgnTriggerer type: entered_level listener_only: false size_buildup_time: 1 kill_cat: other activated: true activating: false buildup_turns: 1 size_buildup_amnt: 0 excl_rad: 1 spread_buildup_amnt: 0 cloud_type: thin mist props: walk_dist: 0 pow_rolls: 3}}}} Lua marker 3 at (8, 26): {{{{ CLASS: PortalDescriptor props: positions: five_deadly_venoms }}}} Lua marker 4 at (8, 29): {{{{ CLASS: TriggerableFunction repeated: false listeners: func: CLASS: FunctionWrapper name: callback.five_deadly_venoms fn: [type function] props: triggerers: 1: CLASS: DgnTriggerer type: player_move activating: false dgn_trigs_by_type: 4: 1: 1 activated: true data: venoms: 1: spectral demonic crawler name:centipede name_species name_replace name_descriptor 2: spectral black mamba 3: spectral scorpion 4: spectral frilled lizard 5: spectral cane toad }}}} Lua marker 5 at (8, 32): {{{{ CLASS: FogMachine pow_min: 3 spread_buildup_time: 1 listeners: spread_rate: -1 size_min: 1 size_max: 1 pow_max: 3 start_clouds: 0 dgn_trigs_by_type: 1: 1: 1 32: 1: 2 triggerers: 1: CLASS: DgnTriggerer countdown: 2 type: turn sub_type: countdown delay_min: 10 buildup_turns: 0 listener_only: false delay_max: 10 2: CLASS: DgnTriggerer type: entered_level listener_only: false size_buildup_time: 1 kill_cat: other activated: true activating: false buildup_turns: 1 size_buildup_amnt: 0 excl_rad: 1 spread_buildup_amnt: 0 cloud_type: thin mist props: walk_dist: 0 pow_rolls: 3}}}} Lua marker 6 at (8, 32): {{{{ CLASS: PortalDescriptor props: positions: five_deadly_venoms }}}} Lua marker 7 at (10, 27): {{{{ CLASS: FogMachine pow_min: 3 spread_buildup_time: 1 listeners: spread_rate: -1 size_min: 1 size_max: 1 pow_max: 3 start_clouds: 0 dgn_trigs_by_type: 1: 1: 1 32: 1: 2 triggerers: 1: CLASS: DgnTriggerer countdown: 2 type: turn sub_type: countdown delay_min: 10 buildup_turns: 0 listener_only: false delay_max: 10 2: CLASS: DgnTriggerer type: entered_level listener_only: false size_buildup_time: 1 kill_cat: other activated: true activating: false buildup_turns: 1 size_buildup_amnt: 0 excl_rad: 1 spread_buildup_amnt: 0 cloud_type: thin mist props: walk_dist: 0 pow_rolls: 3}}}} Lua marker 8 at (10, 27): {{{{ CLASS: PortalDescriptor props: positions: five_deadly_venoms }}}} Lua marker 9 at (10, 31): {{{{ CLASS: FogMachine pow_min: 3 spread_buildup_time: 1 listeners: spread_rate: -1 size_min: 1 size_max: 1 pow_max: 3 start_clouds: 0 dgn_trigs_by_type: 1: 1: 1 32: 1: 2 triggerers: 1: CLASS: DgnTriggerer countdown: 2 type: turn sub_type: countdown delay_min: 10 buildup_turns: 0 listener_only: false delay_max: 10 2: CLASS: DgnTriggerer type: entered_level listener_only: false size_buildup_time: 1 kill_cat: other activated: true activating: false buildup_turns: 1 size_buildup_amnt: 0 excl_rad: 1 spread_buildup_amnt: 0 cloud_type: thin mist props: walk_dist: 0 pow_rolls: 3}}}} Lua marker 10 at (10, 31): {{{{ CLASS: PortalDescriptor props: positions: five_deadly_venoms }}}} >>>>>>>>>>>>>>>>>>>>>> ASSERT((duration[DUR_MESMERISED] > 0) == !beholders.empty()) in 'behold.cc' at line 66 failed. Recursive crash.