ASSERT(range >= 0) in 'beam.cc' at line 747 failed. (beam 'rocky spike', source 'player', item 'none'; has range -1) Version: Dungeon Crawl Stone Soup 0.33-a0-520-g0c05a917f8 Platform: unix Bits: 64 Game mode: normal Tiles: online Seed: 18411348333999625624, deterministic pregen: 1 Command line: /usr/games/crawl-git-0c05a917f8 -name Azoth -rc /dgldir/rcfiles/crawl-git/Azoth.rc -macro /dgldir/rcfiles/crawl-git/Azoth.macro -morgue /dgldir/morgue/Azoth/ -webtiles-socket /crawl-master/webserver/sockets/Azoth:2024-12-05.01:42:48.sock -await-connection RC options: restart_after_game = false Crash caused by signal #6: Aborted Obtained 34 stack frames. /usr/games/crawl-git-0c05a917f8(_Z17write_stack_traceP8_IO_FILE+0x3f) [0x5639719c28df]: write_stack_trace(_IO_FILE*) /usr/games/crawl-git-0c05a917f8(_Z13do_crash_dumpv+0x418) [0x5639719ccd78]: do_crash_dump() /usr/games/crawl-git-0c05a917f8(_Z20crash_signal_handleri+0x1fa) [0x5639719c2d6a]: crash_signal_handler(int) /lib/x86_64-linux-gnu/libc.so.6(+0x46210) [0x7fbae1a86210]: /lib/x86_64-linux-gnu/libpthread.so.0(raise+0xcb) [0x7fbae1c4724b]: /usr/games/crawl-git-0c05a917f8(+0x4c44bd) [0x5639719cc4bd]: /usr/games/crawl-git-0c05a917f8(_Z12AssertFailedPKcS0_iS0_z+0x18e) [0x5639719cc65e]: AssertFailed(char const*, char const*, int, char const*, ...) /usr/games/crawl-git-0c05a917f8(_ZN4bolt15initialise_fireEv+0x323) [0x563971970c03]: bolt::initialise_fire() /usr/games/crawl-git-0c05a917f8(_ZN4bolt7do_fireEv+0x30) [0x56397197fb10]: bolt::do_fire() /usr/games/crawl-git-0c05a917f8(_ZN4bolt4fireEv+0xa8) [0x563971980b88]: bolt::fire() /usr/games/crawl-git-0c05a917f8(_ZN13targeter_beam7set_aimE9coord_def+0xa5) [0x563971fde8b5]: targeter_beam::set_aim(coord_def) /usr/games/crawl-git-0c05a917f8(+0x555c13) [0x563971a5dc13]: /usr/games/crawl-git-0c05a917f8(_ZN17direction_chooser6selectEbb+0x98) [0x563971a5e0c8]: direction_chooser::select(bool, bool) /usr/games/crawl-git-0c05a917f8(_ZN17direction_chooser15process_commandE12command_type+0x64) [0x563971a63a14]: direction_chooser::process_command(command_type) /usr/games/crawl-git-0c05a917f8(_Z22targeting_mouse_selectRK9coord_def+0xa2) [0x563971a64192]: targeting_mouse_select(coord_def const&) /usr/games/crawl-git-0c05a917f8(_ZN14TilesFramework23_handle_control_messageE11sockaddr_unNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0xad6) [0x5639720db7b6]: TilesFramework::_handle_control_message(sockaddr_un, std::__cxx11::basic_string, std::allocator >) /usr/games/crawl-git-0c05a917f8(_ZN14TilesFramework24_receive_control_messageEv+0x184) [0x5639720dbdd4]: TilesFramework::_receive_control_message() /usr/games/crawl-git-0c05a917f8(_ZN14TilesFramework11await_inputERjb+0x188) [0x5639720dc2b8]: TilesFramework::await_input(unsigned int&, bool) /usr/games/crawl-git-0c05a917f8(_Z8getch_ckv+0x1e5) [0x5639720deb35]: getch_ck() /usr/games/crawl-git-0c05a917f8(_ZN2ui11pump_eventsEi+0xcc) [0x5639720326cc]: ui::pump_events(int) /usr/games/crawl-git-0c05a917f8(_ZN17direction_chooser16choose_directionEv+0x31a) [0x563971a673ea]: direction_chooser::choose_direction() /usr/games/crawl-git-0c05a917f8(_Z9directionR4distRK22direction_chooser_args+0x82) [0x563971a67782]: direction(dist&, direction_chooser_args const&) /usr/games/crawl-git-0c05a917f8(_Z15spell_directionR4distR4boltP22direction_chooser_args+0x1b6) [0x563971f762f6]: spell_direction(dist&, bolt&, direction_chooser_args*) /usr/games/crawl-git-0c05a917f8(_Z11your_spells10spell_typeibPK8item_defP4distb+0x5ae) [0x563971f1ed3e]: your_spells(spell_type, int, bool, item_def const*, dist*, bool) /usr/games/crawl-git-0c05a917f8(_Z12cast_a_spellb10spell_typeP4distb+0x155) [0x563971f217c5]: cast_a_spell(bool, spell_type, dist*, bool) /usr/games/crawl-git-0c05a917f8(_ZN6quiver12spell_action7triggerER4dist+0x126) [0x563971ea9116]: quiver::spell_action::trigger(dist&) /usr/games/crawl-git-0c05a917f8(_ZN6quiver13action_cycler9do_targetEv+0xbc) [0x563971e9c21c]: quiver::action_cycler::do_target() /usr/games/crawl-git-0c05a917f8(_ZN6quiver13action_cycler6targetEv+0x107) [0x563971ea0f07]: quiver::action_cycler::target() /usr/games/crawl-git-0c05a917f8(_Z15process_command12command_typeS_+0xc9a) [0x5639720e90ba]: process_command(command_type, command_type) /usr/games/crawl-git-0c05a917f8(+0xbddb22) [0x5639720e5b22]: /usr/games/crawl-git-0c05a917f8(+0xbde715) [0x5639720e6715]: /usr/games/crawl-git-0c05a917f8(main+0x1ab) [0x563971908d3b]: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7fbae1a670b3]: /usr/games/crawl-git-0c05a917f8(_start+0x2e) [0x56397190990e]: 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". 0x00007fbae1b25c2a in __GI___wait4 (pid=3606742, stat_loc=stat_loc@entry=0x0, options=options@entry=0, usage=usage@entry=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:27 #0 0x00007fbae1b25c2a in __GI___wait4 (pid=3606742, 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 0x00007fbae1b25beb in __GI___waitpid (pid=, stat_loc=stat_loc@entry=0x0, options=options@entry=0) at waitpid.c:38 No locals. #2 0x00005639719c2745 in call_gdb (file=file@entry=0x7fbae1c2c5c0 <_IO_2_1_stderr_>) at crash.cc:438 gdb = attach_cmd = "attach 3606733\000\000\000\000\000" #3 0x00005639719ccd96 in do_crash_dump () at dbg-asrt.cc:692 t = 1733362972 dir = "/dgldir/morgue/Azoth/" name = "/dgldir/morgue/Azoth/crash-Azoth-20241205-014252.txt", '\000' signal_info = "Crash caused by signal #6: Aborted" cause_msg = "ASSERT(range >= 0) in 'beam.cc' at line 747 failed. (beam 'rocky spike', source 'player', item 'none'; has range -1)" file = 0x7fbae1c2c5c0 <_IO_2_1_stderr_> #4 0x00005639719c2d6a 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, 140722796988944, 140722796988432, 94804726745897, 747, 94804746493408, 140722796989456, 140440627515427, 206158430240, 140722796988384, 140722796988192, 6388559495545007360, 0, 116, 94804746544944, 140722796989456}} pid = tid = ret = #7 0x00005639719cc4bd in _BreakStrToDebugger (mesg=mesg@entry=0x7ffc94538c10 "ASSERT(range >= 0) in 'beam.cc' at line 747 failed. (beam 'rocky spike', source 'player', item 'none'; has range -1)", assert=true) at dbg-asrt.cc:818 No locals. #8 0x00005639719cc65e in AssertFailed (expr=expr@entry=0x5639720f8b29 "range >= 0", file=file@entry=0x5639720f8627 "beam.cc", line=line@entry=747, text=text@entry=0x56397216bbd8 "beam '%s', source '%s', item '%s'; has range -1") at dbg-asrt.cc:851 detail = "beam 'rocky spike', source 'player', item 'none'; has range -1\000\000ht.\000\000\000\000\000\240\321\302\341\272\177\000\000\377\377\377\377", '\000' , "\300\214S\224\374\177\000\000\377\253S\224\374\177\000\000\000\000\000\000\000\000\000\000\377\253S\224\374\177\000\000\360\212S\224\374\177\000\000\000\255h^\003\271\250X\300\214S\224\374\177\000\000\002\000\000\000\000\000\000\000?\037\000\000\000\000\000\000\360\212S\224\374\177\000\000\330b\017r9V\000\000\210\214S\224\374\177\000\000\300\214S\224\374\177\000\000"... final_mesg = "ASSERT(range >= 0) in 'beam.cc' at line 747 failed. (beam 'rocky spike', source 'player', item 'none'; has range -1)\000\177\000\000\030\000\000\000\060\000\000\000p\255S\224\374\177\000\000\240\254S\224\374\177\000\000o\255S\224\374\177", '\000' , "Construct Spike Launcher"... mesg = "ASSERT(range >= 0) in 'beam.cc' at line 747 failed.\000\377\377\377\377\000\000\000\000\000\000\000\000\377\377\377\377\377\377\377\377\240\321\302\341\272\177\000\000\000\000\000\000\000\000\000\000\240\321\302\341\272\177\000\000\000\000\000\000\000\000\000\000\240\321\302\341\272\177\000\000\000\000\000\000\000\000\000\000\240\321\302\341\272\177\000\000\000\000\000\000\000\000\000\000\240\321\302\341\272\177\000\000 \000\000\000\000\000\000\000P\211S\224\374\177\000\000\037\000\000\000\000\000\000\000)\234\346\341\272\177\000\000\000\251S\224\374\177\000\000\366\344\221q9V\000\000\037\000\000\000\000\000\000\000\000"... args = {{gp_offset = 48, fp_offset = 48, overflow_arg_area = 0x7ffc94539108, reg_save_area = 0x7ffc94539020}} fileName = #9 0x0000563971970c03 in bolt::initialise_fire (this=0x7ffc945395b0) at /usr/include/c++/9/bits/basic_string.h:2304 No locals. #10 0x000056397197fb10 in bolt::do_fire (this=0x7ffc945395b0) at beam.cc:1237 coff = #11 0x0000563971980b88 in bolt::fire (this=this@entry=0x7ffc945395b0) at beam.cc:1211 boltcopy = {origin_spell = SPELL_SPIKE_LAUNCHER, range = -1, glyph = 96 U'`', colour = 7 '\a', flavour = BEAM_MMISSILE, real_flavour = BEAM_MMISSILE, drop_item = false, item_mulches = false, item = 0x0, launcher = 0x0, source = {x = 30, y = 62}, target = {x = 31, y = 62}, damage = {num = 2, size = 4}, ench_power = 21, hit = 14, thrower = KILL_YOU_MISSILE, ex_size = 0, source_id = 4294967295, source_name = "", name = "rocky spike", short_name = "", hit_verb = "", loudness = 2, hit_noise_msg = "", explode_noise_msg = "", pierce = false, is_explosion = false, is_death_effect = false, aimed_at_spot = true, aux_source = "", affects_nothing = false, effect_known = true, effect_wanton = false, no_saving_throw = false, draw_delay = 15, explode_delay = 50, redraw_per_cell = true, special_explosion = 0x0, was_missile = false, animate = true, ac_rule = ac_type::normal, obvious_effect = false, seen = false, heard = false, path_taken = std::vector of length 0, capacity 0, extra_range_used = 0, is_tracer = true, is_targeting = true, aimed_at_feet = false, msg_generated = false, noise_generated = false, passed_target = false, in_explosion_phase = false, attitude = ATT_FRIENDLY, foe_ratio = 0, hit_count = std::map with 0 elements, foe_info = {count = 0, power = 0, hurt = 0, helped = 0, dont_stop = true}, friend_info = {count = 0, power = 0, hurt = 0, helped = 0, dont_stop = true}, chose_ray = false, beam_cancelled = false, dont_stop_player = true, overshoot_prompt = true, friendly_past_target = false, bounces = 0, bounce_pos = {x = 0, y = 0}, reflections = 0, reflector = 0, use_target_as_pos = false, ray = {r = {start = {x = 0, y = 0}, dir = {x = 0, y = 0}}, on_corner = false, cycle_idx = -1}, tile_beam = 0, tile_explode = 0, can_see_invis = false, nightvision = false, can_trigger_bullseye = false, message_cache = std::set with 0 elements} #12 0x0000563971fde8b5 in targeter_beam::set_aim (this=0x5639733e1120, a=...) at target.cc:228 tempbeam = {origin_spell = SPELL_SPIKE_LAUNCHER, range = -1, glyph = 96 U'`', colour = 7 '\a', flavour = BEAM_MMISSILE, real_flavour = BEAM_MMISSILE, drop_item = false, item_mulches = false, item = 0x0, launcher = 0x0, source = {x = 30, y = 62}, target = {x = 31, y = 62}, damage = {num = 2, size = 4}, ench_power = 21, hit = 14, thrower = KILL_YOU_MISSILE, ex_size = 0, source_id = 4294967295, source_name = "", name = "rocky spike", short_name = "", hit_verb = "", loudness = 2, hit_noise_msg = "", explode_noise_msg = "", pierce = false, is_explosion = false, is_death_effect = false, aimed_at_spot = true, aux_source = "", affects_nothing = false, effect_known = true, effect_wanton = false, no_saving_throw = false, draw_delay = 15, explode_delay = 50, redraw_per_cell = true, special_explosion = 0x0, was_missile = false, animate = true, ac_rule = ac_type::normal, obvious_effect = false, seen = false, heard = false, path_taken = std::vector of length 0, capacity 0, extra_range_used = 0, is_tracer = true, is_targeting = true, aimed_at_feet = false, msg_generated = false, noise_generated = false, passed_target = false, in_explosion_phase = false, attitude = ATT_FRIENDLY, foe_ratio = 0, hit_count = std::map with 0 elements, foe_info = {count = 0, power = 0, hurt = 0, helped = 0, dont_stop = true}, friend_info = {count = 0, power = 0, hurt = 0, helped = 0, dont_stop = true}, chose_ray = false, beam_cancelled = false, dont_stop_player = true, overshoot_prompt = true, friendly_past_target = false, bounces = 0, bounce_pos = {x = 0, y = 0}, reflections = 0, reflector = 0, use_target_as_pos = false, ray = {r = {start = {x = 0, y = 0}, dir = {x = 0, y = 0}}, on_corner = false, cycle_idx = -1}, tile_beam = 0, tile_explode = 0, can_see_invis = false, nightvision = false, can_trigger_bullseye = false, message_cache = std::set with 0 elements} #13 0x0000563971a5dc13 in direction_chooser::update_previous_target (this=this@entry=0x7ffc9453bda0) at directn.cc:1566 old_m = 0x0 m = #14 0x0000563971a5e0c8 in direction_chooser::update_previous_target (this=0x7ffc9453bda0) at directn.cc:1617 old_m = m = old_m = m = ri = mon = #15 direction_chooser::select (this=this@entry=0x7ffc9453bda0, allow_out_of_range=allow_out_of_range@entry=false, endpoint=endpoint@entry=false) at directn.cc:1620 mons = 0x0 #16 0x0000563971a63a14 in direction_chooser::process_command (this=0x7ffc9453bda0, command=) at directn.cc:2285 loop_done = #17 0x0000563971a64192 in UIDirectionChooserView::process_command (cmd=CMD_TARGET_MOUSE_SELECT, this=0x5639730672f0) at directn.cc:2456 cc = loop_done = cc = loop_done = #18 UIDirectionChooserView::mouse_select (gc=..., this=0x5639730672f0) at directn.cc:2509 No locals. #19 UIDirectionChooserView::mouse_select (gc=..., this=0x5639730672f0) at directn.cc:2501 No locals. #20 targeting_mouse_select (gc=...) at directn.cc:2538 view = 0x5639730672f0 l = std::shared_ptr (use count 3, weak count 1) = {get() = 0x5639730672f0} #21 0x00005639720db7b6 in _handle_cell_click (force=, button=, gc=...) at tileweb.cc:411 No locals. #22 TilesFramework::_handle_control_message (this=, addr=..., data=...) at tileweb.cc:532 y = {node = 0x563972dc5e20, static malformed = } button = {node = 0x5639733cdde0, static malformed = } force = {node = 0x0, static malformed = } gc = {x = 31, y = 62} x = obj = {node = 0x563972d76f50, static malformed = } msg = {node = 0x5639733cde20, static malformed = } msgtype = "click_cell" c = 0 #23 0x00005639720dbdd4 in TilesFramework::_receive_control_message (this=0x5639725ba220 ) at /usr/include/c++/9/bits/basic_string.h:940 buf = "{\"x\":2,\"y\":-1,\"button\":1,\"msg\":\"click_cell\"}\374\177\000\000\300\241S\224\374\177\000\000\277\251S\224\374\177\000\000\240\241S\224\374\177\000\000\277\251S\224\374\177\000\000 \240S\224\374\177\000\061\000\255h^\003\271\250X\300\241S\224\374\177\000\000\002\000\000\000\000\000\000\000\377\a\000\000\000\000\000\000 \240S\224\374\177\000\000}f\017r9V\000\000\250\241S\224\374\177\000\000\300\241S\224\374\177\000\000\032\361\254\341\272\177\000\000\060\242S\224\374\177\000\000/\252S\224\374\177\000\000@\242S\224\374\177\000\000/\252S\224\000\000\000\000\240\310\302\341\272\177\000\000"... srcaddr = {sun_family = 1, sun_path = "/tmp/crawlgx9xkpv6.socket", '\000' } srcaddr_len = 28 len = data = "{\"x\":2,\"y\":-1,\"button\":1,\"msg\":\"click_cell\"}" #24 0x00005639720dc2b8 in TilesFramework::await_input (this=0x5639725ba220 , c=@0x7ffc9453b0a0: 2488512922, block=block@entry=true) at tileweb.cc:650 result = fds = {fds_bits = {8, 0 }} maxfd = __d = __d = #25 0x00005639720deb35 in _get_key_from_curses () at libunix.cc:528 c = 2488512922 c = c = #26 getch_ck () at libunix.cc:616 c = #27 0x00005639720326cc in ui::pump_events (wait_event_timeout=wait_event_timeout@entry=2147483647) at ui.cc:3292 macro_key = -1 k = #28 0x0000563971a673ea in direction_chooser::choose_direction (this=0x7ffc9453bda0) at directn.cc:2634 ui_cutoff_point = ccon = {cstate = false} no_blinking = {prev = false} mc = {m_previous_mode = MOUSE_MODE_NORMAL, static ms_current_mode = MOUSE_MODE_TARGET_PATH} legacy_range = { = {_vptr.targeter = 0x5639723f5518 , origin = {x = 30, y = 62}, aim = {x = 30, y = 62}, agent = 0x563972605da0 , why_not = "", obeys_mesmerise = false}, exp_range_min = 0, exp_range_max = 0, exp_map_min = {mData = {mData = {{mData = {1487452419, 0, 0, -1806454160, 32764, -1806446048, 32764, 1912261899, 22073, -1806453648, 32764, -1806445649, 32764, 39, 0, 24, 48, -1806445792, 32764}}, {mData = {-1806446000, 32764, -1806453648, 32764, 2, 0, 7999, 0, -1806454112, 32764, 1936617283, 1668641396, 1884495988, 543517545, 1853186380, 1919248483, -508759808, 32698, -1806453584}}, {mData = {32764, -1806453872, 32764, -72515583, 32764, -1806453648, 32764, -1806453648, 32764, -1806453648, 32764, -1806453648, 32764, -1806453630, 32764, -1806453472, 32764, -1806445473, 32764}}, {mData = {-1806453456, 32764, -1806445473, 32764, -1806453936, 32764, 1583918336, 1487452419, -1806453472, 32764, 2, 0, 7999, 0, -1806453936, 32764, 1913610968, 22073, -1806453528}}, {mData = {32764, -1806453472, 32764, -508759782, 32698, -1806453456, 32764, -1806453696, 32764, -72515583, 32764, -1806453472, 32764, -1806453472, 32764, -1806453472, 32764, -1806453472, 32764}}, {mData = {-1806453443, 32764, -1806453296, 32764, -1806445297, 32764, -1806453280, 32764, -1806445297, 32764, -1806453760, 32764, 1583918336, 1487452419, -1806453296, 32764, 2, 0, 7999}}, {mData = {0, -1806453760, 32764, 1913610968, 22073, -1806453352, 32764, -1806453296, 32764, -508759782, 32698, -1806453280, 32764, -1806453520, 32764, -72515583, -1, -1806453296, 32764}}, {mData = {-1806453296, 32764, -1806453296, 32764, -1806453296, 32764, -1806453267, 32764, -1806445297, 32764, -1806453296, 32764, -1806445297, 32764, 0, 0, 0, 0, 0}}, {mData = {0 , -1806499840, 32764, 0, 0, -1, -1}}, {mData = {0, 0, -1, -1, 0, 0, -1, 32764, 1912261899, 22073, -1, 32764, -507326048, 32698, 0, 0, -507326048, 32698, 0}}, {mData = {0, -1806445312, 32764, -1806445088, 32764, -1806445296, 32764, 43, 0, 1583918336, 1487452419, 30, 0, -1806453296, 32764, 29, 0, -504980439, 32698}}, {mData = {-1806445184, 32764, 1905386742, 22073, 29, 0, 1583918336, 1487452419, 32768, 0, -1806453296, 32764, -1806445184, 32764, 1912261899, 22073, -1806445168, 32764, 1912261899}}, {mData = {22073, 538976288, 538976288, 16, 48, -1806444944, 32764, -1806445136, 32764, -1806444912, 32764, -1806445120, 32764, 1936261152, 2112101, 691023409, 538976288, 543516756, 1819242087}}, {mData = {1818435692, 1818588015, 1768759417, 1936028531, 1970239776, 1701314606, 1852383346, 1836216166, 1869182049, 1728065134, 3044456, 0, 65535, 0, 0, 0, 0, 65535, 0}}, {mData = {0, 0, 0, 65535, 0, 0, 0, 0, 65535, 0, 0, 0, 0, 65535, 0, 0, 0, 0, 65535}}, {mData = {0, 0, 0, 0, 65535, 0, 0, 0, 0, 65535, 0, 0, 0, 0, 65535, 0, 0, 0, 0}}, {mData = {65535, 0, 0, 0, 0, 65535, 0, 0, 0, 0, 65535, 1912252733, 22073, 0, 0, 1918923496, 22073, 0, 0}}, {mData = {1912252733, 22073, -1806452880, 32764, 1912252733, 22073, 1928836609, 0, 1912252733, 22073, -1806452848, 32764, 1918923496, 22073, -1806452832, 32764, 1912252733, 22073, -1806452816}}, {mData = {32764, 1912252733, 22073, 1928836609, 0, 1918923496, 22073, -1806452784, 32764, 1912252733, 22073, -1806452768, 32764, 1918923496, 22073, 1928836609, 0, 1918923496, 22073}}}}}, exp_map_max = {mData = {mData = {{mData = {-1806452736, 32764, 49, 0, 1928836609, 0, 1918923488, 22073, -1806452736, 32764, 1912243481, 22073, -1806452736, 32764, 1918923408, 22073, -1806452720, 32764, 1905592604}}, {mData = {22073, -1806452704, 32764, 1918923408, 3233337, -1806452720, 32764, 14, 0, 1702130273, 1952670054, 1869770847, 29552, -1806452688, 32764, 1583918336, 1487452419, 1702130273, 1952670054}}, {mData = {8, 0, 1, 0, 0, 0, 1918923408, 22073, 1918918048, 22073, 9, 0, 1911022042, 22073, 1918923408, 22073, 0, 49, 9}}, {mData = {0, 1583918336, 1487452419, 1918918048, 22073, 0, 0, 1918918048, 22073, 1911580669, 22073, 0, 0, 1910527973, 22073, 0, 0, 1912077407, 22073}}, {mData = {0, 0, 1912041008, 22073, 21570, 0, 0, 0, 463, 0, 21, 0, 0, 0, 1911661227, 22073, 62, 2, 23}}, {mData = {55, 0, 0, 1583918336, 1487452419, 0, 0, 1583918336, 1487452419, 1, 0, 463, 0, 1, 0, 463, 0, 0, 0}}, {mData = {1912050688, 22073, 0, 0, 65535, 0, 0, 0, 0, 65535, 0, 0, 0, 0, 65535, 0, 0, 0, 0}}, {mData = {65535, 0, 0, 0, 0, 65535, 0, 0, 0, 0, 65535, 0, 0, 0, 0, 65535, 0, 0, 0}}, {mData = {0, 65535, 0, 0, 0, 0, 65535, 0, 0, 0, 0, 65535, 0, 0, 0, 0, 65535, 0, 0}}, {mData = {0, 0, 65535, 0, 0, 0, 0, 65535, 0, 0, 0, 0, 65535, 0, 0, 0, 0, 65535, 0}}, {mData = {0, 0, 0, 65535, 0, 0, 0, 0, 65535, 0, 0, 0, 0, 65535, 0, 0, 0, 0, 65535}}, {mData = {0, 0, 0, 0, 65535, 0, 0, 0, 0, -504974952, 32698, 0, 0, 0, 65535, -503716096, 32698, -504398502, 32698}}, {mData = {-503762520, 32698, 1583918336, 1487452419, 6, 255, 1, 0, 0, 0, -1806451376, 32764, 1924106032, 22073, 1583918336, 1487452419, -1806450496, 32764, -1806451048}}, {mData = {32764, -1806450944, 32764, 0, 0, -1806451424, 32764, 10, 0, -1806450496, 32764, -504364152, 32698, -1806451104, 32764, -1806450944, 32764, -1806451056, 32764}}, {mData = {10, 0, -1806451712, 32764, -504420539, 32698, -1806451424, 32764, -504974952, 32698, -1806451712, 32764, 0, 0, -503716096, 32698, -504398502, 32698, -503762520}}, {mData = {32698, 1912252733, 22073, 6, 252, 1918923496, 22073, 0, 0, 1918923496, 22073, -1806451552, 32764, 3, 0, 1928836609, 0, 1918923488, 22073}}, {mData = {-1806451552, 32764, 1912243481, 22073, -1806451552, 32764, 1918923408, 22073, -1806451536, 32764, 1905592604, 22073, -1806451472, 32764, 1911580669, 218681, -1806451536, 32764, 1912252733}}, {mData = {22073, 1702130273, 1952670054, 1918923496, 22073, 1918918048, 22073, 1918923496, 22073, -1806451408, 32764, 63, 0, 137, 0, 1924321536, 22073, 16, 0}}, {mData = {1923800096, 22073, -1806450336, 32764, -504980439, 32698, -1806451392, 32764, 1905378061, 22073, -1806451296, 32764, -1806451296, 32764, -1806450896, 32764, 1906658363, 22073, 2}}}}}, range = 7, cannot_harm_player = false, affects_walls = true, can_target_monsters = true, affects_pos = 0x0} rva = tmp = {previous = true} save_more = {val = , oldval = true} directn_view = #29 0x0000563971a67782 in direction (moves=..., args=...) at directn.cc:400 No locals. #30 0x0000563971f762f6 in spell_direction (spelld=..., pbolt=..., args=args@entry=0x7ffc9453c470) at spl-util.cc:861 newargs = {hitfunc = 0x5639733e1120, restricts = DIR_NONE, mode = TARG_HOSTILE, range = 7, just_looking = false, needs_path = true, prefer_farthest = false, try_multizap = false, unrestricted = false, allow_shift_dir = true, self = confirm_prompt_type::none, target_prefix = 0x0, top_prompt = "Casting: Construct Spike Launcher (safe; 1% risk of failure)", behaviour = 0x7ffc9453c160, show_floor_desc = false, show_boring_feats = true, get_desc_func = {, std::allocator >, std::allocator, std::allocator > > >, monster_info const&>> = {, std::allocator >, std::allocator, std::allocator > > > >> = {}, }, = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x563972aadc20, _M_const_object = 0x563972aadc20, _M_function_pointer = 0x563972aadc20, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x563972aadc20, this adjustment 140722797002736}, _M_pod_data = " ܪr9V\000\000\360\277S\224\374\177\000"}, _M_manager = 0x56397191c2b0 , std::allocator >, std::allocator, std::allocator > > > (*(std::_Placeholder<1>, targeter*))(monster_info const&, targeter*)> >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)>}, _M_invoker = 0x56397191bf50 , std::allocator >, std::allocator, std::allocator > > > (monster_info const&), std::_Bind, std::allocator >, std::allocator, std::allocator > > > (*(std::_Placeholder<1>, targeter*))(monster_info const&, targeter*)> >::_M_invoke(std::_Any_data const&, monster_info const&)>}, default_place = {x = 30, y = 62}} #31 0x0000563971f1ed3e in your_spells (spell=, powc=21, actual_spell=, evoked_wand=, target=, force_failure=) at spl-cast.cc:2130 prompt = additional_desc = {, std::allocator >, std::allocator, std::allocator > > >, monster_info const&>> = {, std::allocator >, std::allocator, std::allocator > > > >> = {}, }, = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x563972b54520, _M_const_object = 0x563972b54520, _M_function_pointer = 0x563972b54520, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x563972b54520, this adjustment 140722797004824}, _M_pod_data = " E\265r9V\000\000\030\310S\224\374\177\000"}, _M_manager = 0x56397191c2b0 , std::allocator >, std::allocator, std::allocator > > > (*(std::_Placeholder<1>, targeter*))(monster_info const&, targeter*)> >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)>}, _M_invoker = 0x56397191bf50 , std::allocator >, std::allocator, std::allocator > > > (monster_info const&), std::_Bind, std::allocator >, std::allocator, std::allocator > > > (*(std::_Placeholder<1>, targeter*))(monster_info const&, targeter*)> >::_M_invoke(std::_Any_data const&, monster_info const&)>} spell_title_color = verb = "Casting" needs_path = beh = { = {_vptr.targeting_behaviour = 0x563972416020 , prompt = "", just_looking = false, get_desc_func = {, std::allocator >, std::allocator, std::allocator > > >, monster_info const&>> = {, std::allocator >, std::allocator, std::allocator > > > >> = {}, }, = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x563972b541f0, _M_const_object = 0x563972b541f0, _M_function_pointer = 0x563972b541f0, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x563972b541f0, this adjustment 94804732048096}, _M_pod_data = "\360A\265r9V\000\000\340r`r9V\000"}, _M_manager = 0x56397191c2b0 , std::allocator >, std::allocator, std::allocator > > > (*(std::_Placeholder<1>, targeter*))(monster_info const&, targeter*)> >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)>}, _M_invoker = 0x56397191bf50 , std::allocator >, std::allocator, std::allocator > > > (monster_info const&), std::_Bind, std::allocator >, std::allocator, std::allocator > > > (*(std::_Placeholder<1>, targeter*))(monster_info const&, targeter*)> >::_M_invoke(std::_Any_data const&, monster_info const&)>}, needs_path = {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 = }}, spell = SPELL_SPIKE_LAUNCHER, err = ""} targ = dir = useless = title = "Casting: Construct Spike Launcher (safe; 1% risk of failure)" args = {hitfunc = 0x5639733e1120, restricts = DIR_NONE, mode = TARG_HOSTILE, range = -1, just_looking = false, needs_path = true, prefer_farthest = false, try_multizap = false, unrestricted = false, allow_shift_dir = true, self = confirm_prompt_type::none, target_prefix = 0x0, top_prompt = "Casting: Construct Spike Launcher (safe; 1% risk of failure)", behaviour = 0x7ffc9453c160, show_floor_desc = false, show_boring_feats = true, get_desc_func = {, std::allocator >, std::allocator, std::allocator > > >, monster_info const&>> = {, std::allocator >, std::allocator, std::allocator > > > >> = {}, }, = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x563972af2630, _M_const_object = 0x563972af2630, _M_function_pointer = 0x563972af2630, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x563972af2630, this adjustment 8589934592}, _M_pod_data = "0&\257r9V\000\000\000\000\000\000\002\000\000"}, _M_manager = 0x56397191c2b0 , std::allocator >, std::allocator, std::allocator > > > (*(std::_Placeholder<1>, targeter*))(monster_info const&, targeter*)> >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)>}, _M_invoker = 0x56397191bf50 , std::allocator >, std::allocator, std::allocator > > > (monster_info const&), std::_Bind, std::allocator >, std::allocator, std::allocator > > > (*(std::_Placeholder<1>, targeter*))(monster_info const&, targeter*)> >::_M_invoke(std::_Any_data const&, monster_info const&)>}, default_place = {x = 30, y = 62}} wiz_cast = target_local = {isValid = false, isTarget = false, isEndpoint = false, isCancel = false, choseRay = false, interactive = false, target = {x = 0, y = 0}, delta = {x = 0, y = 0}, ray = {r = {start = {x = 0, y = 0}, dir = {x = 0, y = 0}}, on_corner = false, cycle_idx = -1}, find_target = false, fire_context = 0x0, cmd_result = 2000} beam = {origin_spell = SPELL_SPIKE_LAUNCHER, range = -1, glyph = 42 U'*', colour = 0 '\000', flavour = BEAM_MAGIC, real_flavour = BEAM_MAGIC, drop_item = false, item_mulches = false, item = 0x0, launcher = 0x0, source = {x = 0, y = 0}, target = {x = 0, y = 0}, damage = {num = 0, size = 0}, ench_power = 0, hit = 0, thrower = KILL_NON_ACTOR, ex_size = 0, source_id = 0, source_name = "", name = "", short_name = "", hit_verb = "", loudness = 0, hit_noise_msg = "", explode_noise_msg = "", pierce = false, is_explosion = false, is_death_effect = false, aimed_at_spot = false, aux_source = "", affects_nothing = false, effect_known = true, effect_wanton = false, no_saving_throw = false, draw_delay = 15, explode_delay = 50, redraw_per_cell = true, special_explosion = 0x0, was_missile = false, animate = true, ac_rule = ac_type::normal, obvious_effect = false, seen = false, heard = false, path_taken = std::vector of length 0, capacity 0, extra_range_used = 0, is_tracer = false, is_targeting = false, aimed_at_feet = false, msg_generated = false, noise_generated = false, passed_target = false, in_explosion_phase = false, attitude = ATT_HOSTILE, foe_ratio = 0, hit_count = std::map with 0 elements, foe_info = {count = 0, power = 0, hurt = 0, helped = 0, dont_stop = false}, friend_info = {count = 0, power = 0, hurt = 0, helped = 0, dont_stop = false}, chose_ray = false, beam_cancelled = false, dont_stop_player = false, overshoot_prompt = true, friendly_past_target = false, bounces = 0, bounce_pos = {x = 0, y = 0}, reflections = 0, reflector = 0, use_target_as_pos = false, ray = {r = {start = {x = 0, y = 0}, dir = {x = 0, y = 0}}, on_corner = false, cycle_idx = -1}, tile_beam = 0, tile_explode = 0, can_see_invis = false, nightvision = false, can_trigger_bullseye = false, message_cache = std::set with 0 elements} flags = range = hitfunc = std::unique_ptr = {get() = 0x5639733e1120} is_targeted = god = use_targeter = true fail = orig_target_pos = cast_result = #32 0x0000563971f217c5 in cast_a_spell (check_range=check_range@entry=false, spell=SPELL_SPIKE_LAUNCHER, _target=_target@entry=0x563972d8f208, force_failure=force_failure@entry=false) at spl-cast.cc:943 reason = "" cost = 2 hp_cost = cast_result = #33 0x0000563971ea9116 in quiver::spell_action::trigger (this=0x563972d8f1f0, t=...) at quiver.cc:1186 do_range_check = #34 0x0000563971e9c21c in quiver::action_cycler::do_target (this=0x56397260d1f0 ) at quiver.cc:238 a = std::shared_ptr (use count 3, weak count 1) = {get() = 0x563972d8f1f0} #35 0x0000563971ea0f07 in quiver::action_cycler::target (this=0x56397260d1f0 ) at quiver.cc:2927 a = initial = std::shared_ptr (use count 3, weak count 1) = {get() = 0x563972d8f1f0} tmp = {previous = false} force_restore_initial = false what_happened = #36 0x00005639720e90ba in process_command (cmd=CMD_FIRE, prev_cmd=CMD_MOVE_UP_RIGHT) at main.cc:2174 No locals. #37 0x00005639720e5b22 in _input () at main.cc:1264 cmd = CMD_FIRE real_prev_cmd = CMD_MOVE_UP_RIGHT player_disabled = {was_disabled = false} #38 0x00005639720e6715 in _launch_game () at main.cc:492 game_start = ccon = {cstate = false} #39 0x0000563971908d3b in _launch_game_loop () at main.cc:391 game_ended = false game_ended = ge = fe = E = #40 main (argc=, argv=0x7ffc9453dd78) at main.cc:341 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 3606733) 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-git-0c05a917f8/saves" -DSHARED_DIR_PATH="/crawl-master/crawl-git/saves" -DDATA_DIR_PATH="/crawl-master/crawl-git-0c05a917f8/data/" -DWEB_DIR_PATH="/crawl-master/crawl-git-0c05a917f8/data/web/" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 LDFLAGS: -rdynamic -fuse-ld=gold -O2 >>>>>>>>>>> Place info: branch = 0, depth = 4 Level id: D:4 Level build method = , level layout type = corridors, absdepth0 = 3 Level vaults: layout_loops_cross nicolae_overflow_hidden_temple uniq_edmund Markers: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>> Messages: <<<<<<<<<<<<<<<<<<<<<< The kinetic grapnel hits the goblin. You kill the goblin! Your Fighting skill increases to level 1! A dart slug is nearby! The kinetic grapnel hits the dart slug. The dart slug is heavily wounded. The dart slug closely misses you. The grapnel guides your strike. You sock the dart slug! You kill the dart slug! You have reached level 2! You enter the shallow water. Moving in this stuff is going to be slow. You open the door. There is an open door here. You now have 51 gold pieces (gained 16). You pick up a book of Spatial Translocations and begin reading... You add the spells Blink, Momentum Strike and Lesser Beckoning to your library. You enter the shallow water. Moving in this stuff is going to be slow. You see here a bat skeleton. You enter the shallow water. Moving in this stuff is going to be slow. A kobold comes into view. It is wielding a +0 dagger. A kobold is nearby! The kobold shouts! The kobold throws a stone. The stone barely misses you. The kinetic grapnel hits the kobold but does no damage. You thump the kobold! You kill the kobold! Found a ring mail. Things that are here: a +0 dagger; 5 stones; a kobold corpse Found a stone staircase leading down. Found a hand axe. f - a pink potion g - an orange potion Found 4 stones. You see here a +0 hand axe. You open the door. There is an open door here. There is an open door here. You see here a +0 ring mail. You enter the shallow water. Moving in this stuff is going to be slow. You open the door. A goblin comes into view. It is wielding a +0 dagger. A goblin is nearby! The kinetic grapnel hits the goblin. The goblin is moderately wounded. The grapnel guides your strike. You hit the goblin. You kill the goblin! There is an open door here. You see here a +0 dagger. A goblin comes into view. It is wielding a +0 dagger. A goblin is nearby! A goblin is nearby! You enter the shallow water. Moving in this stuff is going to be slow. The goblin shouts! The goblin hits you with a +0 dagger. The kinetic grapnel hits the goblin. You kill the goblin! You hear a splash. Things that are here: a +0 dagger; a goblin corpse HP restored. A bat comes into view. A bat is nearby! A jackal, a rat and a hobgoblin come into view. The hobgoblin shouts! You hear a shout! A ball python comes into view. The bat misses you. The jackal attacks as it pursues you! The jackal closely misses you. The jackal barely misses you. A goblin comes into view. It is wielding a +0 dagger. The jackal closely misses you. The bat hits you but does no damage. The bat hits you but does no damage. The bat misses you. The jackal attacks as it pursues you! The jackal misses you. You enter the shallow water. Moving in this stuff is going to be slow. The jackal barely misses you. The jackal attacks as it pursues you! The jackal barely misses you. The bat hits you. The bat hits you but does no damage. The bat barely misses you. The jackal attacks as it pursues you! The jackal bites you but does no damage. There is an open door here. You see here a +0 dagger. The kinetic grapnel hits the jackal. The jackal is moderately wounded. The jackal bites you. The jackal misses you. The grapnel guides your strike. You sock the jackal! You kill the jackal! The bat hits you but does no damage. The bat barely misses you. The bat hits you. The kinetic grapnel hits the bat but does no damage. The bat hits you but does no damage. You hit the rat. You kill the rat! The bat closely misses you. The hobgoblin misses you. The kinetic grapnel hits the hobgoblin. The hobgoblin is almost dead. The hobgoblin hits you. The grapnel guides your strike. You hit the hobgoblin. You kill the hobgoblin! The bat hits you but does no damage. The bat completely misses you. The kinetic grapnel hits the bat. The bat is heavily wounded. The bat barely misses you. You closely miss the goblin. The goblin barely misses you. The goblin hits you with a +0 dagger. You closely miss the goblin. The goblin hits you with a +0 dagger. You completely miss the goblin. The grapnel comes loose from the bat. The goblin misses you. You closely miss the goblin. The goblin barely misses you. The goblin hits you with a +0 dagger. You barely miss the goblin. The goblin misses you. You barely miss the goblin. The goblin barely misses you. You closely miss the goblin. The goblin hits you with a +0 dagger. The goblin barely misses you. You closely miss the goblin. The goblin closely misses you. The kinetic grapnel hits the goblin. The goblin is almost dead. The goblin hits you with a +0 dagger. The grapnel guides your strike. You hit the goblin. You kill the goblin! The bat hits you but does no damage. The bat hits you but does no damage. There is an open door here. Items here: )) ††. You are too injured to fight recklessly! You are too injured to fight recklessly! You are too injured to fight recklessly! You are too injured to fight recklessly! You are too injured to fight recklessly! You are too injured to fight recklessly! You are too injured to fight recklessly! You are too injured to fight recklessly! You are too injured to fight recklessly! You are too injured to fight recklessly! You are too injured to fight recklessly! You are too injured to fight recklessly! You are too injured to fight recklessly! You are too injured to fight recklessly! You are too injured to fight recklessly! You are too injured to fight recklessly! You are too injured to fight recklessly! You barely miss the bat. The bat hits you but does no damage. The bat hits you but does no damage. You barely miss the bat. The bat hits you. The bat misses you. You hit the bat. You kill the bat! You start resting. Magic restored. You start resting. HP restored. There is an open door here. Items here: )) ††. There is an open door here. Items here: )) ††. You enter the shallow water. Moving in this stuff is going to be slow. A quokka comes into view. There are monsters nearby! There are monsters nearby! You enter the shallow water. Moving in this stuff is going to be slow. The ball python hisses angrily. The kinetic grapnel hits the quokka. The quokka is lightly wounded. Your unstable footing causes you to fumble your attack. The quokka bites you. A dart slug comes into view. The ball python bites you. Your unstable footing causes you to fumble your attack. The quokka closely misses you. The ball python bites you. The ball python closely misses you. The quokka splashes around in the water. The grapnel comes loose from the quokka. The ball python barely misses you. The ball python grabs you. The ball python constricts you. The quokka bites something. The ball python bites you but does no damage. The ball python constricts you. The quokka bites something. Your unstable footing causes you to fumble your attack. The quokka bites something. The ball python bites you but does no damage. The ball python constricts you. Unknown command. The kinetic grapnel misses the ball python. The kinetic grapnel hits the quokka. The quokka is almost dead. The quokka bites something. The ball python bites you but does no damage. The ball python constricts you. The ball python bites you but does no damage. The ball python constricts you. The quokka bites something. Your unstable footing causes you to fumble your attack. The quokka bites something. The ball python bites you but does no damage. The ball python constricts you. Unknown command. The kinetic grapnel hits the ball python. You kill the ball python! The grapnel comes loose from the quokka. Your unstable footing causes you to fumble your attack. The quokka bites you. The quokka misses you. The kinetic grapnel hits the quokka. You kill the quokka! A goblin comes into view. It is wielding a +0 club. Things that are here: a quokka corpse; a ball python corpse The kinetic grapnel hits the dart slug. The dart slug is moderately wounded. The grapnel guides your strike. You sock the dart slug! The dart slug is almost dead. The dart slug launches a dart at you. The slug dart hits you. A frilled lizard comes into view. The frilled lizard hisses angrily. You hit the dart slug but do no damage. The dart slug is almost dead. The dart slug splashes around in the water. Your unstable footing causes you to fumble your attack. The dart slug splashes around in the water. Your unstable footing causes you to fumble your attack. The dart slug launches a dart at you. The slug dart misses you. Your unstable footing causes you to fumble your attack. The dart slug launches a dart at you. The slug dart misses you. You sock the dart slug! You kill the dart slug! Your Spellcasting skill increases to level 2! Unknown command. The frilled lizard attacks as it pursues you! The frilled lizard closely misses you. The frilled lizard attacks as it pursues you! The frilled lizard closely misses you. There is an open door here. Items here: )) ††. The kinetic grapnel hits the frilled lizard. The frilled lizard is moderately wounded. The frilled lizard closely misses you. The grapnel guides your strike. You hit the frilled lizard. You kill the frilled lizard! You barely miss the goblin. The goblin closely misses you. The goblin hits you with a +0 club. You closely miss the goblin. The goblin hits you but does no damage. The kinetic grapnel hits the goblin. The goblin is severely wounded. The goblin hits you but does no damage. The grapnel guides your strike. You hit the goblin. You kill the goblin! There is an open door here. Items here: ))) †††. Magic restored. Found a sling. Found a pair of gloves and 6 stones. h - 2 scrolls labelled ALECLI YPOPN You see here a +0 pair of gloves. You start putting on your armour. You continue putting on your +0 pair of gloves. x4 You finish putting on your +0 pair of gloves. e - a +5 ring of evasion (left hand) You see here 6 stones. You enter the shallow water. Moving in this stuff is going to be slow. You enter the shallow water. Moving in this stuff is going to be slow. There is an open door here. A quokka comes into view. A quokka is nearby! A quokka is nearby! The kinetic grapnel misses the quokka. The quokka bites you. You hit the quokka. The quokka is almost dead. The quokka closely misses you. x2 The kinetic grapnel hits the quokka but does no damage. The quokka is almost dead. The quokka misses you. You closely miss the quokka. The quokka is almost dead. The quokka bites you. You hit the quokka but do no damage. The quokka is almost dead. The quokka completely misses you. The quokka bites you. You sock the quokka! You kill the quokka! You have reached level 3! Your experience leads to an increase in your attributes! Increase (S)trength, (I)ntelligence, or (D)exterity? You feel clever. x2 You enter the shallow water. Moving in this stuff is going to be slow. There is a fountain of clear blue water here. You briefly stop to clean your hammer. You open the door. There is an open door here. There is an open door here. You open the door. There is an open door here. There is an open door here. You enter the shallow water. Moving in this stuff is going to be slow. Done exploring. Done exploring. Done exploring. As you read the scroll labelled ALECLI YPOPN, it crumbles to dust. You feel strangely unstable. It was a scroll of teleportation. You start waiting. Your surroundings suddenly seem different. Splash! You fall into the shallow water. Moving in this stuff is going to be slow. You start waiting. Done waiting. You start waiting. Done waiting. There is an open door here. There is a stone staircase leading down here. You climb downwards. Found a stone staircase leading up. There is a stone staircase leading up here. A giant cockroach is nearby! The kinetic grapnel hits the giant cockroach. The giant cockroach is heavily wounded. The giant cockroach misses you. The grapnel guides your strike. You hit the giant cockroach. The giant cockroach is severely wounded. The giant cockroach misses you. A giant cockroach is nearby! You hit the giant cockroach. You kill the giant cockroach! You see here a giant cockroach corpse. Magic restored. A rat comes into view. A rat is nearby! The kinetic grapnel hits the rat! You kill the rat! j - a scroll labelled VULUYWKUXOWU Found 8 stones. You see here 8 stones. You pick up a book of Maladies and begin reading... You add the spells Sublimation of Blood, Curse of Agony and Rimeblight to your library. k - a viscous dark potion A kobold comes into view. It is wielding a +0 whip. A kobold is nearby! The kobold shouts! You hear a shout! The kinetic grapnel hits the kobold. You kill the kobold! Things that are here: a +0 whip; a kobold corpse A kobold comes into view. It is wielding a +0 dagger. A kobold is nearby! A kobold is nearby! A kobold comes into view. It is wielding a +0 short sword. The kobold moves out of view. The kobold hits you with a +0 dagger. An adder comes into view. The kobold attacks as it pursues you! The kobold completely misses you. The adder moves out of view. Things that are here: a +0 whip; a kobold corpse The kinetic grapnel hits the kobold. You kill the kobold! Things that are here: a +0 dagger; a kobold corpse Things that are here: a +0 whip; a kobold corpse The kobold shouts! The kobold throws a stone. The stone misses you. Found a stone staircase leading down. The kinetic grapnel hits the kobold. The kobold is moderately wounded. The kobold throws a stone. The stone misses you. The grapnel guides your strike. You hit the kobold. You kill the kobold! Things that are here: a +0 short sword; 4 stones; a kobold corpse A giant cockroach comes into view. A giant cockroach is nearby! The kinetic grapnel hits the giant cockroach. The giant cockroach is almost dead. The grapnel guides your strike. You hit the giant cockroach. You kill the giant cockroach! A goblin and an adder come into view. Found a scroll labelled JEUZOI WIPLI. The goblin shouts! There are monsters nearby! The adder closely misses you. x2 The adder attacks as it pursues you! The adder closely misses you. The adder attacks as it pursues you! The adder closely misses you. The adder bites you. You are poisoned. The adder poisons you! The kinetic grapnel hits the adder. The adder is moderately wounded. You feel sick. The adder bites you but does no damage. The grapnel guides your strike. You sock the adder! The adder is almost dead. You feel sick. The adder misses you. The adder closely misses you. You miss the adder. The adder is almost dead. You feel sick. The adder completely misses you. The adder misses you. The kinetic grapnel misses the adder. You feel sick. The adder misses you. You hit the adder. You kill the adder! You feel sick. You are no longer poisoned. You hit the goblin. The goblin is severely wounded. The goblin hits you with a +0 club. x2 The kinetic grapnel misses the goblin. The goblin hits you with a +0 club. You hit the goblin. You kill the goblin! You are too injured to fight recklessly! HP restored. Things that are here: a +0 club; a goblin corpse; an adder corpse l - a scroll labelled JEUZOI WIPLI Found a buckler. Found a dagger. You see here a +0 buckler. m - a +0 buckler Okay, then. You start putting on your armour. You continue putting on your +0 buckler. x4 You finish putting on your +0 buckler. Okay, then. You start removing your armour. You continue removing your +0 buckler. x4 You finish removing your +0 buckler. Okay, then. You start putting on your armour. You continue putting on your +0 buckler. x4 You finish putting on your +0 buckler. You start memorising the spell. You continue memorising. x2 You finish memorising. Spell assigned to 'b'. An adder is nearby! The adder hisses angrily. The kinetic grapnel misses the adder. You closely miss the adder. The adder completely misses you. The adder bites you. You are poisoned. The adder poisons you! You hit the adder but do no damage. You feel sick. The adder closely misses you. The adder misses you. The kinetic grapnel hits the adder. The adder is lightly wounded. You feel sick. The adder misses you. The grapnel guides your strike. You thump the adder! You kill the adder! You feel sick. You feel sick. You are no longer poisoned. You see here an adder corpse. A kobold comes into view. It is wielding a +0 club. Found a book of Cantrips. A kobold is nearby! You see here a book of Cantrips. A ribbon worm comes into view. The kinetic grapnel misses the kobold. You block the kobold's attack. You sock the kobold! You kill the kobold! You see here a book of Cantrips. You shape a spike launcher from a nearby wall. The kinetic grapnel hits the ribbon worm. The ribbon worm is moderately wounded. The grapnel guides your strike. You hit the ribbon worm. The ribbon worm is moderately wounded. The rocky spike skewers the ribbon worm. x2 The ribbon worm expels a string of sticky webbing. The stream of webbing hits you but does no damage. You are caught in a web! The web tears apart. The rocky spike skewers the ribbon worm. The ribbon worm barely misses you. You hit the ribbon worm. The ribbon worm is almost dead. The ribbon worm closely misses you. You completely miss the ribbon worm. The ribbon worm is severely wounded. The ribbon worm bites you. You hit the ribbon worm. The ribbon worm is almost dead. The ribbon worm barely misses you. You hit the ribbon worm but do no damage. The ribbon worm is almost dead. The ribbon worm expels a string of sticky webbing. The stream of webbing misses you. The ribbon worm bites you but does no damage. You hit the ribbon worm. The ribbon worm is almost dead. The ribbon worm closely misses you. You hit the ribbon worm. You kill the ribbon worm! You see here a book of Cantrips. n - an amethyst potion Found a pair of boots. You see here a +0 pair of boots. A giant cockroach comes into view. Found 12 gold pieces. The giant cockroach moves out of view. A giant cockroach is nearby! The kinetic grapnel hits the giant cockroach. The giant cockroach is heavily wounded. The giant cockroach misses you. The kinetic grapnel hits the giant cockroach but does no damage. The giant cockroach is heavily wounded. You block the giant cockroach's attack. The grapnel guides your strike. You hit the giant cockroach. You kill the giant cockroach! You see here a +0 pair of boots. You start putting on your armour. You continue putting on your +0 pair of boots. x4 You finish putting on your +0 pair of boots. You see here a giant cockroach corpse. Found a stone staircase leading down. You now have 63 gold pieces (gained 12). A dart slug comes into view. A dart slug is nearby! Found a runed ring mail. The kinetic grapnel hits the dart slug. The dart slug is moderately wounded. You block the dart slug's attack. The grapnel guides your strike. You thump the dart slug! You kill the dart slug! You see here a dart slug corpse. You see here a +1 ring mail of positive energy. You start removing your armour. You continue removing your +0 robe. x4 You finish removing your +0 robe. You start putting on your armour. You continue putting on your +1 ring mail of positive energy. x5 You finish putting on your +1 ring mail of positive energy. You feel more protected from negative energy. You drop a +0 robe. A hobgoblin comes into view. The hobgoblin shouts! A hobgoblin is nearby! You miscast Kinetic Grapnel. You are very lightly contaminated with residual magic. Nothing appears to happen. You hit the hobgoblin. The hobgoblin is moderately wounded. The hobgoblin closely misses you. You barely miss the hobgoblin. The hobgoblin is moderately wounded. The hobgoblin misses you. The hobgoblin closely misses you. You hit the hobgoblin. You kill the hobgoblin! You see here a hobgoblin corpse. Your magical contamination has completely faded away. Found a blade talisman and a leather armour. You now have 75 gold pieces (gained 12). Found a stone staircase leading down. Found 2 stones. Found a stone staircase leading up. There is a stone staircase leading up here. You are caught in the web! c - the ring of Xoisa {^Contam rPois Wiz Str+3 Stlth+} There is a web here. You struggle to detach yourself from the web. You disentangle yourself. You see here 2 stones. You see here a +0 dagger. Found a short sword. You see here a +0 leather armour. You see here a blade talisman. Things that are here: a +0 short sword; 4 stones; a kobold skeleton Found a short sword. You now have 80 gold pieces (gained 5). Done exploring. Done exploring. Done exploring. The air fills with toxic fumes! As you read the scroll labelled VULUYWKUXOWU, it crumbles to dust. It was a scroll of poison. As you read the scroll labelled JEUZOI WIPLI, it crumbles to dust. It is a scroll of identify. g - a potion of might You start waiting. Done waiting. You start waiting. Done waiting. There is a stone staircase leading down here. You climb downwards. Found a dented jade amulet and 5 large rocks. Found a stone staircase leading up. There is a stone staircase leading up here. There is a stone staircase leading up here. Found 6 stones. j - an amulet of guardian spirit You feel stronger. You feel a build-up of mutagenic energy. c - the ring of Xoisa (right hand) {^Contam rPois Wiz Str+3 Stlth+} This spell is dangerous to cast! You start memorising the spell. You continue memorising. x3 You finish memorising. Spell assigned to 'c'. Okay, then. Found 6 stones. Found a stone staircase leading down. You see here 6 stones. There is a stone staircase leading down here. l - a scroll labelled PIOTANOEFY Okay, then. Casting: Kinetic Grapnel (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Found 6 stones. q - a golden potion Found a spear. Found an ornate altar of the Wu Jian Council. Found 2 stones. Found 4 stones. You see here 2 stones. You see here a +0 spear. An orc comes into view. It is wielding a +0 dagger. An orc is nearby! An orc is nearby! The orc shouts! The kinetic grapnel hits the orc. The orc is lightly wounded. The orc hits you but does no damage. The grapnel guides your strike. You sock the orc! You kill the orc! Magic restored. A frilled lizard comes into view. Found 6 stones. A frilled lizard is nearby! Found a scroll labelled ZYZARUOQOC. The kinetic grapnel hits the frilled lizard! You kill the frilled lizard! A rat comes into view. You see here a scroll labelled ZYZARUOQOC. A rat is nearby! The kinetic grapnel hits the rat. You kill the rat! You have reached level 4! You feel stronger. A ribbon worm comes into view. A ribbon worm is nearby! The kinetic grapnel hits the ribbon worm. The ribbon worm is lightly wounded. An adder comes into view. The ribbon worm bites you. The grapnel guides your strike. You hit the ribbon worm but do no damage. The ribbon worm bites you. You hit the ribbon worm. The ribbon worm is moderately wounded. The adder hisses angrily. The ribbon worm misses you. A rat comes into view. The kinetic grapnel hits the ribbon worm! The ribbon worm is severely wounded. The rat squeaks loudly. An endoplasm comes into view. The ribbon worm bites you. The grapnel guides your strike. You hit the ribbon worm. You kill the ribbon worm! A kobold comes into view. It is wielding a +0 whip. You lock target on the adder and prepare to deploy your bee. (Press . to continue winding your bee.) The adder bites you. The adder misses you. You continue winding your clockwork bee... The adder bites you. You continue winding your clockwork bee... The adder completely misses you. With a metallic buzz, your clockwork bee launches itself at the adder. You block the adder's attack. You swap places. The adder completely misses your clockwork bee. Your clockwork bee stings the adder. The adder closely misses your clockwork bee. Okay, then. Your clockwork bee barely misses the adder. The adder misses your clockwork bee. Your clockwork bee misses the adder. The adder closely misses your clockwork bee. Your clockwork bee stings the adder! The adder dies! Your clockwork bee locks its sights upon the kobold. Your clockwork bee closely misses the rat. The rat misses your clockwork bee. Your clockwork bee stings the rat! The rat dies! The endoplasm barely misses your clockwork bee. The kobold closely misses your clockwork bee. Your clockwork bee barely misses the kobold. The endoplasm jiggles. The endoplasm misses your clockwork bee. The kobold barely misses your clockwork bee. Your clockwork bee stings the kobold! The kobold dies! An endoplasm comes into view. Your clockwork bee locks its sights upon the endoplasm. The endoplasm closely misses your clockwork bee. Your clockwork bee stings the endoplasm! The endoplasm dies! Your clockwork bee winds down and falls to the ground. The endoplasm hits your dormant clockwork bee but does no damage. You wind your clockwork bee back up and it locks its sights upon the endoplasm! Your clockwork bee stings the endoplasm! The endoplasm dies! You swap places. Your clockwork bee winds down and falls to the ground. Things that are here: a +0 whip; a kobold corpse r - a scroll labelled ZYZARUOQOC Your dormant clockwork bee falls apart. HP restored. An adder comes into view. An adder is nearby! The adder hisses angrily. Found a stone staircase leading up. The adder barely misses you. You shape a spike launcher from a nearby wall. The adder bites you but does no damage. You closely miss the adder. The rocky spike skewers the adder. x2 The adder dies! You see here a ribbon worm corpse. Found a stone staircase leading down. n - 2 amethyst potions (gained 1) Found a whip. s - a scroll of poison t - a +6 ring of dexterity Found a stone staircase leading down. Okay, then. n - 3 amethyst potions (gained 1) An orc comes into view. It is wielding a +0 club. Found a scroll labelled VUUH UP ESCH. An orc is nearby! An orc is nearby! You lock target on the orc and prepare to deploy your bee. (Press . to continue winding your bee.) The orc shouts! You continue winding your clockwork bee... You continue winding your clockwork bee... With a metallic buzz, your clockwork bee launches itself at the orc. Your clockwork bee stings the orc. You closely miss the orc. The orc is heavily wounded. Your clockwork bee barely misses the orc. The orc hits you but does no damage. Your clockwork bee misses the orc. The orc misses you. An orc comes into view. It is wielding a +0 morningstar. You hit the orc. You kill the orc! Your clockwork bee locks its sights upon the orc. Found a scroll of identify. Your clockwork bee stings the orc but does no damage. Things that are here: a +0 club; an orc corpse Your clockwork bee closely misses the orc. The orc misses your clockwork bee. Your clockwork bee completely misses the orc. The orc misses your clockwork bee. Your clockwork bee stings the orc but does no damage. Your clockwork bee completely misses the orc. The orc closely misses your clockwork bee. Your clockwork bee stings the orc. The orc dies! Your clockwork bee winds down and falls to the ground. You need a visible target to rewind your bee! (Use ctrl+direction or * direction to deconstruct it instead.) You need a visible target to rewind your bee! (Use ctrl+direction or * direction to deconstruct it instead.) You need a visible target to rewind your bee! (Use ctrl+direction or * direction to deconstruct it instead.) You need a visible target to rewind your bee! (Use ctrl+direction or * direction to deconstruct it instead.) You deconstruct your dormant clockwork bee. u - a scroll labelled VUUH UP ESCH v - a scroll of identify You now have 88 gold pieces (gained 8). v - 2 scrolls of identify (gained 1) An endoplasm comes into view. An endoplasm is nearby! You lock target on the endoplasm and prepare to deploy your bee. (Press . to continue winding your bee.) You continue winding your clockwork bee... You continue winding your clockwork bee... With a metallic buzz, your clockwork bee launches itself at the endoplasm. You swap places. Found 12 gold pieces. The endoplasm hits your clockwork bee but does no damage. Your clockwork bee stings the endoplasm. The endoplasm dies! Your Maces & Flails skill increases to level 1! Found 2 gold pieces. Your clockwork bee winds down and falls to the ground. Found a scroll labelled GIESSE KONAIR. You now have 100 gold pieces (gained 12). Your dormant clockwork bee falls apart. You now have 102 gold pieces (gained 2). w - a scroll labelled GIESSE KONAIR A kobold comes into view. It is wielding a +0 dagger. A kobold is nearby! You lock target on the kobold and prepare to deploy your bee. (Press . to continue winding your bee.) The kobold shouts! You continue winding your clockwork bee... You continue winding your clockwork bee... With a metallic buzz, your clockwork bee launches itself at the kobold. Your clockwork bee stings the kobold. The kobold hits your clockwork bee but does no damage. Your clockwork bee stings the kobold. The kobold closely misses your clockwork bee. Your clockwork bee stings the kobold. The kobold dies! What are your orders? t - Shout! Orders for allies: a - Attack new target. r - Retreat! s - Stop attacking. g - Guard the area. f - Follow me. Anything else - Cancel. You shout for attention! Your clockwork bee winds down and falls to the ground. You start resting. Your dormant clockwork bee falls apart. Magic restored. Found a robe. You see here 6 stones. A ball python comes into view. A ball python is nearby! A ball python is nearby! You lock target on the ball python and prepare to deploy your bee. (Press . to continue winding your bee.) The ball python hisses angrily. You continue winding your clockwork bee... You continue winding your clockwork bee... With a metallic buzz, your clockwork bee launches itself at the ball python. The ball python barely misses you. The ball python grabs you. The ball python constricts you. You escape the ball python's grasp. You swap places. Your clockwork bee stings the ball python. The ball python dies! Your clockwork bee winds down and falls to the ground. Your dormant clockwork bee falls apart. You see here a ball python corpse. A goblin comes into view. It is wielding a +0 dagger. A goblin is nearby! You lock target on the goblin and prepare to deploy your bee. (Press . to continue winding your bee.) The goblin shouts! You continue winding your clockwork bee... You continue winding your clockwork bee... The goblin hits you but does no damage. With a metallic buzz, your clockwork bee launches itself at the goblin. The goblin misses you. The goblin attacks as it pursues you! The goblin hits you but does no damage. Your clockwork bee barely misses the goblin. Your clockwork bee stings the goblin. The goblin barely misses you. Your clockwork bee stings the goblin. The goblin hits you but does no damage. Your clockwork bee stings the goblin. The goblin dies! Your clockwork bee winds down and falls to the ground. Your dormant clockwork bee falls apart. Things that are here: a +0 dagger; a goblin corpse There is a stone staircase leading down here. x - a coppery potion Done exploring. Done exploring. Done exploring. You see here 6 stones. There is a stone staircase leading down here. You climb downwards. The orc priest shouts! The orc shouts! The orc wizard shouts! There is a stone staircase leading up here. There are monsters nearby! There are monsters nearby! There are monsters nearby! There are monsters nearby! You lock target on the orc and prepare to deploy your bee. (Press . to continue winding your bee.) The orc misses you. You continue winding your clockwork bee... The orc closely misses you. You continue winding your clockwork bee... The orc priest calls down the wrath of Beogh upon you. Beogh smites you! The orc hits you with a +0 whip. The orc wizard hits you but does no damage. The orc priest shouts, "The Pantheon deserves no one's loyalty. Let us show you the true path!" (press Y on the ability menu to convert to Beogh) With a metallic buzz, your clockwork bee launches itself at the orc. Your clockwork bee stings the orc. The orc priest hits your clockwork bee with a +0 dagger. The orc barely misses you. The orc hits your clockwork bee with a +0 war axe. The orc misses you. The orc wizard casts a spell. The orc wizard flickers and vanishes! Deactivating autopickup; reactivate with Ctrl-A. Unknown command. You barely miss the orc. The orc is moderately wounded. Your clockwork bee stings the orc! The orc dies! The orc barely misses you. The orc hits your clockwork bee with a +0 war axe. The orc priest barely misses your clockwork bee. Something hits you. You hit the orc. The orc is almost dead. Your clockwork bee locks its sights upon the orc. Your clockwork bee stings the orc. The orc dies! Something hits you but does no damage. The orc priest completely misses your clockwork bee. Your clockwork bee barely misses something. You hit something. Your clockwork bee locks its sights upon the orc priest. Your clockwork bee stings the orc priest. Your clockwork bee winds down and falls to the ground. The orc priest hits your dormant clockwork bee but does no damage. Something hits you. Something hits you but does no damage. The orc priest calls down the wrath of Beogh upon your dormant clockwork bee. Your dormant clockwork bee is smitten. You miss something. You hear some strange, mumbled words. You are confused. The orc priest mumbles some strange prayers to Beogh against you. Beogh smites you! Okay, then. The orc priest hits your dormant clockwork bee with a +0 dagger. Something hits you but does no damage. You climb upwards. Your mindless puppet stays behind. Reactivating autopickup. There is a stone staircase leading down here. Unknown command. It was a potion of curing. You feel better. Something barely misses you. You block something's attack. Deactivating autopickup; reactivate with Ctrl-A. Something barely misses you. Something hits you. You shape a spike launcher from a nearby wall. The rocky spike skewers something. You hear some strange, mumbled words. A puff of flame appears from out of thin air! The puff of flame hits you. You hit something. Reactivating autopickup. You feel a bit more experienced. Things that are here: a +0 dagger; a +0 robe You start resting. Magic restored. You start resting. HP restored. There is a stone staircase leading down here. You climb downwards. There is a stone staircase leading up here. The orc priest mumbles some strange prayers to Beogh against you. Pain shoots through your body! You shape a spike launcher from a nearby wall. The orc priest invokes the aid of Beogh against you. Beogh smites you! There is a stone staircase leading up here. The rocky spike misses the orc priest. The rocky spike skewers the orc priest. The orc priest shouts, "Beogh offers mercy even to people such as you. Join us and be reborn!" You hit the orc priest. The orc priest is severely wounded. The rocky spike skewers the orc priest. The orc priest shouts, "The Pantheon deserves no one's loyalty. Let us show you the true path!" The rocky spike skewers the orc priest. The orc priest dies! Your Fighting skill increases to level 2! You start resting. Magic restored. You start resting. HP restored. You start waiting. Done waiting. You now have 111 gold pieces (gained 9). z - a metallic white potion A gnoll comes into view. It is wielding a +0 halberd. You see here 17 gold pieces. A gnoll comes into view. It is wielding a +0 halberd. The gnoll shouts! You shape a spike launcher from a nearby wall. Your spike launcher falls apart as you grow too distant to maintain it. You shape a spike launcher from a nearby wall. Your spike launcher falls apart as you grow too distant to maintain it. The gnoll closely misses you. The gnoll attacks as it pursues you! The gnoll hits you from afar with a +0 halberd! There is a stone staircase leading up here. The gnoll barely misses you. You shape a spike launcher from a nearby wall. The gnoll barely misses you. The gnoll hits you from afar with a +0 halberd! The gnoll closely misses you. You climb upwards. There is a stone staircase leading down here. You start resting. Magic restored. You start resting. HP restored. Welcome back, Azoth the Mountain Dwarf Forgewright. Press ? for a list of commands and other information. The gnoll closely misses you. Casting: Construct Spike Launcher (safe; 1% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Dir - look around, f - activate >>>>>>>>>>>>>>>>>>>>>> Version history: Game started: 0.33-a0-520-g0c05a917f8 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_FIRE repeat_cmd = CMD_NO_CMD Player: {{{{{{{{{{{ Name: [Azoth] Species: Mountain Dwarf Job: Forgewright HP: 36/36; mods: 0/0 MP: 6/8; mod: 0 Stats: 16 (16) 17 (17) 8 (8) Position: (30, 62), god: No God (0), turn_is_over: 0, banished: 0 Standing on/in/over feature: floor Skills (mode: auto) Name | can_currently_train | train | training | level | points | progress Fighting | X | 2 | 16 | 2 | 151 | 25/126 Short Blades | X | 1 | 0 | 0 | 0 | 0/70 Long Blades | X | 1 | 0 | 0 | 0 | 0/59 Axes | X | 1 | 0 | 0 | 0 | 0/35 Maces & Flails | X | 1 | 9 | 1 | 44 | 9/71 Polearms | X | 1 | 0 | 0 | 0 | 0/50 Staves | X | 1 | 0 | 0 | 0 | 0/42 Ranged Weapons | X | 1 | 0 | 0 | 0 | 0/70 Throwing | X | 1 | 0 | 0 | 0 | 0/70 Armour | X | 1 | 13 | 0 | 8 | 8/42 Dodging | X | 1 | 3 | 1 | 203 | 119/168 Stealth | X | 1 | 2 | 1 | 155 | 85/142 Shields | X | 1 | 1 | 0 | 0 | 0/42 Unarmed Combat | X | 1 | 0 | 0 | 0 | 0/50 Spellcasting | X | 2 | 40 | 2 | 355 | 143/212 Conjurations | X | 1 | 0 | 0 | 0 | 0/59 Hexes | X | 1 | 0 | 0 | 0 | 0/50 Summonings | X | 1 | 0 | 0 | 0 | 0/70 Necromancy | X | 1 | 0 | 0 | 0 | 0/42 Translocations | X | 1 | 0 | 0 | 0 | 0/70 Forgecraft | X | 1 | 16 | 5 | 675 | 145/212 Fire Magic | X | 1 | 0 | 0 | 0 | 0/35 Ice Magic | X | 1 | 0 | 0 | 0 | 0/59 Air Magic | X | 1 | 0 | 0 | 0 | 0/84 Earth Magic | X | 1 | 0 | 0 | 0 | 0/42 Alchemy | X | 1 | 0 | 0 | 0 | 0/70 Invocations | X | 1 | 0 | 0 | 0 | 0/29 Evocations | X | 1 | 0 | 0 | 0 | 0/42 Shapeshifting | X | 1 | 0 | 0 | 0 | 0/70 Spell bugs: Durations: #114: 9 Attributes: #12: 111 #23: 3305 #24: 336077130 #34: 1 #49: 191 Mutations: runic magic: 1 (innate) artefact enchanting: 1 (innate) Inventory bugs: Equipment: eq slot #0, inv slot #0: +0 hammer eq slot #3, inv slot #8: +0 pair of gloves eq slot #4, inv slot #14: +0 pair of boots eq slot #5, inv slot #12: +0 buckler eq slot #6, inv slot #15: +1 ring mail of positive energy eq slot #7, inv slot #4: +5 ring of evasion eq slot #8, inv slot #2: ring of Xoisa {^Contam rPois Wiz Str+3 Stlth+} }}}}}}}}}}} Webtiles message buffer: Webtiles JSON stack: Screenshot: #.......# ####.#### ####.#### #.......# #.##.##.# #.##.# # #.##.##.# #..g....# #[@#.##.# #<).....# ##)#....... #.####.### #.# .# #.. # ### clua stack: dlua stack: Lua persistent data: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>> Lua marker contents: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>