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-511-g5569844878 Platform: unix Bits: 64 Game mode: seeded Tiles: online Seed: 15892485665631795351, deterministic pregen: 1 Command line: /usr/games/crawl-git-5569844878 -name tempest -rc /dgldir/rcfiles/crawl-git/tempest.rc -macro /dgldir/rcfiles/crawl-git/tempest.macro -morgue /dgldir/morgue/tempest/ -seed -webtiles-socket /crawl-master/webserver/sockets/tempest:2024-12-01.22:41:18.sock -await-connection RC options: restart_after_game = false Crash caused by signal #6: Aborted Obtained 34 stack frames. /usr/games/crawl-git-5569844878(_Z17write_stack_traceP8_IO_FILE+0x3e) [0x5e4b4c7fe62e]: write_stack_trace(_IO_FILE*) /usr/games/crawl-git-5569844878(_Z13do_crash_dumpv+0x43a) [0x5e4b4c80c78a]: do_crash_dump() /usr/games/crawl-git-5569844878(_Z20crash_signal_handleri+0x1fa) [0x5e4b4c7feb0a]: crash_signal_handler(int) /lib/x86_64-linux-gnu/libc.so.6(+0x42910) [0x721159642910]: /lib/x86_64-linux-gnu/libc.so.6(pthread_kill+0x11b) [0x72115969999b]: /lib/x86_64-linux-gnu/libc.so.6(raise+0x16) [0x721159642866]: /usr/games/crawl-git-5569844878(+0x4b9aad) [0x5e4b4c80baad]: /usr/games/crawl-git-5569844878(_Z12AssertFailedPKcS0_iS0_z+0x1a1) [0x5e4b4c80c041]: AssertFailed(char const*, char const*, int, char const*, ...) /usr/games/crawl-git-5569844878(_ZN4bolt15initialise_fireEv+0x37d) [0x5e4b4c7aa26d]: bolt::initialise_fire() /usr/games/crawl-git-5569844878(_ZN4bolt7do_fireEv+0x30) [0x5e4b4c7b9ab0]: bolt::do_fire() /usr/games/crawl-git-5569844878(_ZN4bolt4fireEv+0xa4) [0x5e4b4c7ba9f4]: bolt::fire() /usr/games/crawl-git-5569844878(_ZN13targeter_beam7set_aimE9coord_def+0x9d) [0x5e4b4ce683ed]: targeter_beam::set_aim(coord_def) /usr/games/crawl-git-5569844878(+0x54e0ea) [0x5e4b4c8a00ea]: /usr/games/crawl-git-5569844878(_ZN17direction_chooser6selectEbb+0x98) [0x5e4b4c8a0568]: direction_chooser::select(bool, bool) /usr/games/crawl-git-5569844878(_ZN17direction_chooser15process_commandE12command_type+0x65) [0x5e4b4c8a7625]: direction_chooser::process_command(command_type) /usr/games/crawl-git-5569844878(_ZN22UIDirectionChooserView15process_commandE12command_type+0x2b) [0x5e4b4c8b0d6b]: UIDirectionChooserView::process_command(command_type) /usr/games/crawl-git-5569844878(_ZN22UIDirectionChooserView8on_eventERKN2ui5EventE+0x18a) [0x5e4b4c8b109a]: UIDirectionChooserView::on_event(ui::Event const&) /usr/games/crawl-git-5569844878(_ZN2ui6UIRoot13deliver_eventERNS_5EventE+0x1b3) [0x5e4b4cebfd93]: ui::UIRoot::deliver_event(ui::Event&) /usr/games/crawl-git-5569844878(_ZN2ui6UIRoot8on_eventER8wm_event+0x77) [0x5e4b4cec0117]: ui::UIRoot::on_event(wm_event&) /usr/games/crawl-git-5569844878(_ZN2ui11pump_eventsEi+0xa5) [0x5e4b4cec5315]: ui::pump_events(int) /usr/games/crawl-git-5569844878(_ZN17direction_chooser16choose_directionEv+0x2ea) [0x5e4b4c8aa64a]: direction_chooser::choose_direction() /usr/games/crawl-git-5569844878(_Z9directionR4distRK22direction_chooser_args+0x80) [0x5e4b4c8aa930]: direction(dist&, direction_chooser_args const&) /usr/games/crawl-git-5569844878(_Z15spell_directionR4distR4boltP22direction_chooser_args+0x1cf) [0x5e4b4cdf71df]: spell_direction(dist&, bolt&, direction_chooser_args*) /usr/games/crawl-git-5569844878(_Z11your_spells10spell_typeibPK8item_defP4distb+0x66a) [0x5e4b4cd99f7a]: your_spells(spell_type, int, bool, item_def const*, dist*, bool) /usr/games/crawl-git-5569844878(_Z12cast_a_spellb10spell_typeP4distb+0x3c9) [0x5e4b4cd9cd39]: cast_a_spell(bool, spell_type, dist*, bool) /usr/games/crawl-git-5569844878(_ZN6quiver12spell_action7triggerER4dist+0x126) [0x5e4b4cd163e6]: quiver::spell_action::trigger(dist&) /usr/games/crawl-git-5569844878(_ZN6quiver13action_cycler9do_targetEv+0xf4) [0x5e4b4cd09344]: quiver::action_cycler::do_target() /usr/games/crawl-git-5569844878(_ZN6quiver13action_cycler6targetEv+0x9c) [0x5e4b4cd0e3dc]: quiver::action_cycler::target() /usr/games/crawl-git-5569844878(+0xc311ba) [0x5e4b4cf831ba]: /usr/games/crawl-git-5569844878(+0xc31cc5) [0x5e4b4cf83cc5]: /usr/games/crawl-git-5569844878(main+0x1f7) [0x5e4b4c736f97]: /lib/x86_64-linux-gnu/libc.so.6(+0x280d0) [0x7211596280d0]: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x89) [0x721159628189]: /usr/games/crawl-git-5569844878(_start+0x25) [0x5e4b4c7379b5]: Trying to run gdb. GNU gdb (Ubuntu 14.0.50.20230907-0ubuntu1) 14.0.50.20230907-git Copyright (C) 2023 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". 0x000072115970fbf7 in __GI___wait4 (pid=3424990, stat_loc=0x0, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30 #0 0x000072115970fbf7 in __GI___wait4 (pid=3424990, stat_loc=0x0, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30 sc_ret = -512 sc_ret = #1 0x00005e4b4c7fecdc in call_gdb (file=0x7211597ff6c0 <_IO_2_1_stderr_>) at crash.cc:438 gdb = attach_cmd = "attach 3424685\000\000\000\000\000" #2 0x00005e4b4c80c7a8 in do_crash_dump () at dbg-asrt.cc:692 t = 1733093116 dir = "/dgldir/morgue/tempest/" name = "/dgldir/morgue/tempest/crash-tempest-20241201-224516.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 = 0x7211597ff6c0 <_IO_2_1_stderr_> #3 0x00005e4b4c7feb0a in crash_signal_handler (sig_num=6) at crash.cc:198 No locals. #4 No locals. #5 __pthread_kill_implementation (no_tid=0, signo=6, threadid=) at ./nptl/pthread_kill.c:44 tid = ret = 0 pd = old_mask = {__val = {140728969243888}} ret = pd = old_mask = ret = tid = ret = resultvar = resultvar = __arg3 = __arg2 = __arg1 = _a3 = _a2 = _a1 = __futex = resultvar = __arg3 = __arg2 = __arg1 = _a3 = _a2 = _a1 = __futex = __private = __oldval = #6 __pthread_kill_internal (signo=6, threadid=) at ./nptl/pthread_kill.c:78 No locals. #7 __GI___pthread_kill (threadid=, signo=signo@entry=6) at ./nptl/pthread_kill.c:89 No locals. #8 0x0000721159642866 in __GI_raise (sig=6) at ../sysdeps/posix/raise.c:26 ret = #9 0x00005e4b4c80baad in _BreakStrToDebugger (mesg=mesg@entry=0x7ffe0438aef0 "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. #10 0x00005e4b4c80c041 in AssertFailed (expr=expr@entry=0x5e4b4cf97c91 "range >= 0", file=file@entry=0x5e4b4cf9754a "beam.cc", line=line@entry=747, text=text@entry=0x5e4b4d00ba80 "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\000\370\202UMK^\000\000\270:\355Y\021r\000\000\220\2728\004\376\177\000\000e\000\000\000\000\000\000\000P\001\000\000\000\000\000\000\217ϖLK^\000\000e", '\000' , "\360F\351MK^\000\000\340\2708\004\000\a\000\000\370\202UMK^\000\000\310\323eY\021r\000\000e\000\000\000\000\000\000\000\340\2628\004\376\177\000\000\002\000\000\000\000\000\000\000\210\277\374LK^\000\000\250\2638\004\376\177\000\000v"... final_mesg = "ASSERT(range >= 0) in 'beam.cc' at line 747 failed. (beam 'rocky spike', source 'player', item 'none'; has range -1)\000\000\000\000\352\220\371LK^\000\000\352\220\371LK^\000\000\000\000\000\000\000\000\000\000\377\377\377\377\377\377\377\377\370\202\000\000\000\000\000\000\002\000\000\000\000\000\000\000p#hNK^\000\000 \000\000\000\000\000\000\000\020\000\000\0000\000\000\000\300\2758\004\376\177\000\000"... mesg = "ASSERT(range >= 0) in 'beam.cc' at line 747 failed.\000\000\000\000\000\310\323eY\021r\000\000 \2548\004\000\000\000\000\310\323eY\021r\000\000\002\000\000\000\000\000\000\000\220\2608\004\376\177\000\000\002\000\000\000\000\000\000\000\310\323eY\021r\000\000X\2618\004\376\177\000\000\260\2608\004\376\177\000\000\000\000\000\000\000\000\000\000\354\220\371LK^\000\000x\2618\004\376\177\000\000\322UfY\021r\000\000\000\000\000\000\000\000\000\000\n\000\000\000K^\000\000 \2548\004", '\000' , "\002\000\000\000\000\000\000\000"... args = {{gp_offset = 48, fp_offset = 48, overflow_arg_area = 0x7ffe0438b3e8, reg_save_area = 0x7ffe0438b300}} fileName = #11 0x00005e4b4c7aa26d in bolt::initialise_fire (this=this@entry=0x7ffe0438b880) at /usr/include/c++/13/bits/basic_string.h:222 No locals. #12 0x00005e4b4c7b9ab0 in bolt::do_fire (this=this@entry=0x7ffe0438b880) at beam.cc:1237 coff = #13 0x00005e4b4c7ba9f4 in bolt::fire (this=this@entry=0x7ffe0438b880) 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 = 51, y = 31}, target = {x = 49, y = 31}, damage = {num = 2, size = 4}, ench_power = 16, hit = 13, 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} #14 0x00005e4b4ce683ed in targeter_beam::set_aim (this=0x5e4b4e29a890, 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 = 51, y = 31}, target = {x = 49, y = 31}, damage = {num = 2, size = 4}, ench_power = 16, hit = 13, 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} #15 0x00005e4b4c8a00ea in direction_chooser::update_previous_target (this=this@entry=0x7ffe0438ce00) at directn.cc:1310 old_m = 0x0 m = #16 0x00005e4b4c8a0568 in direction_chooser::update_previous_target (this=0x7ffe0438ce00) at directn.cc:1617 old_m = m = old_m = m = ri = mon = #17 direction_chooser::select (this=this@entry=0x7ffe0438ce00, allow_out_of_range=allow_out_of_range@entry=false, endpoint=endpoint@entry=false) at directn.cc:1620 mons = 0x0 #18 0x00005e4b4c8a7625 in direction_chooser::process_command (this=0x7ffe0438ce00, command=command@entry=CMD_TARGET_SELECT) at directn.cc:2285 loop_done = #19 0x00005e4b4c8b0d6b in UIDirectionChooserView::process_command (this=this@entry=0x5e4b4e0bcab0, cmd=cmd@entry=CMD_TARGET_SELECT) at directn.cc:2456 cc = {cstate = false} loop_done = #20 0x00005e4b4c8b109a in UIDirectionChooserView::on_event (this=0x5e4b4e0bcab0, ev=...) at directn.cc:2428 key = 32 command = CMD_TARGET_SELECT top_prompt = "Casting: Construct Spike Launcher (safe; 4% risk of failure)" #21 0x00005e4b4cebfd93 in ui::UIRoot::deliver_event (this=0x5e4b4d48c660 , event=...) at ui.cc:2933 w = 0x5e4b4e0bcab0 top = key = 32 #22 0x00005e4b4cec0117 in ui::UIRoot::on_event (this=this@entry=0x5e4b4d48c660 , event=...) at ui.cc:2857 key_event = { = {m_type = ui::Event::KeyDown, m_target = std::shared_ptr (use count 4, weak count 1) = {get() = 0x5e4b4e0bcab0}}, m_key = 32} #23 0x00005e4b4cec5315 in ui::pump_events (wait_event_timeout=wait_event_timeout@entry=2147483647) at ui.cc:3311 ev = {type = 2 '\002', active = {type = 0 '\000', gain = 0 '\000', state = 0 '\000'}, key = {type = 0 '\000', state = 0 '\000', keysym = {scancode = 0 '\000', sym = 32, key_mod = 0 '\000', unicode = 0}}, mouse_event = {type = 0 '\000', event = wm_mouse_event::PRESS, button = wm_mouse_event::NONE, held = 0, mod = 0 '\000', px = 0, py = 0}, resize = {type = 0 '\000', w = 0, h = 0}, expose = {type = 0 '\000'}, quit = {type = 0 '\000'}, custom = {type = 0 '\000', code = 0, data1 = 0x0, data2 = 0x0}} macro_key = k = #24 0x00005e4b4c8aa64a in direction_chooser::choose_direction (this=this@entry=0x7ffe0438ce00) at directn.cc:2634 ui_cutoff_point = ccon = {cstate = false} no_blinking = {prev = false} mc = {m_previous_mode = MOUSE_MODE_NORMAL} legacy_range = { = {_vptr.targeter = 0x5e4b4d2cb658 , origin = {x = 51, y = 31}, aim = {x = 51, y = 31}, agent = 0x5e4b4d4db580 , why_not = "", obeys_mesmerise = false}, exp_range_min = 0, exp_range_max = 0, exp_map_min = {mData = {mData = {{mData = {24139, 70828872, 32766, 70837016, 32766, 8, 0, 1500033949, 29201, 70828928, 32766, 70828950, 32766, 70836928, 32766, 0, 0, 2, 32766}}, {mData = {70828961, 32766, 70836960, 32766, 0, 0, 2, 32766, 70836944, 32766, 543516756, 1802466673, 1830838635, 1702065001, 1870209139, 1627401845, 1814062451, 1768186213, 1965057902}}, {mData = {1701322864, 3040626, 1918985582, 2193762, 32766, 1289945135, 24139, 23, 0, 70828928, 32766, 22, 0, 1504409068, 29201, 70837040, 32766, 1289945445, 24139}}, {mData = {22, 0, 16, 48, 70837296, 32766, 70837088, 32766, 1, 0, 24, 48, 70837328, 32766, 70837120, 32766, 543516756, 1802466673, 1830838635}}, {mData = {1702065001, 1870209139, 1627401845, 1814062451, 1768186213, 1965057902, 1701322864, 3040626, 32766, 65535, 0, 0, 0, 3357252, 65535, 0, 0, 774973472, 10544}}, {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, 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, 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, 1289935579, 24139, 0, 0, 1296944200, 24139, 0, 0}}, {mData = {1289935579, 24139, 70830048, 32766, 1289935579, 24139, 1296944192, 24139, 1289935579, 24139, 70830080, 32766, 1296944200, 24139, 70830096, 32766, 1289935579, 24139, 70830112}}, {mData = {32766, 1289935579, 24139, 1296944192, 24139, 1296944200, 24139, 70830144, 32766, 1289935579, 24139, 70830160, 32766, 1296944200, 24139, 1296944192, 24139, 1296944200, 24139}}}}}, exp_map_max = {mData = {mData = {{mData = {70830192, 32766, 70830192, 32766, 1296944192, 24139, 1316991489, 0, 1291411185, 24139, 1289922937, 24139, 1291411185, 24139, 1296944112, 24139, 70830208, 32766, 1282978037}}, {mData = {24139, 1291411185, 24139, 1296944112, 49, 70830240, 32766, 1282978037, 3235403, 70830208, 32766, 14, 0, 1702130273, 1952670054, 1869770847, 29552, 70830240, 32766}}, {mData = {-1500724992, 1534701816, 1702130273, 1952670054, 8, 0, 1, 0, 0, 0, 0, 0, 1296944112, 24139, 1296938368, 24139, 1288627213, 24139, 0}}, {mData = {0, 1296944112, 49, 1296938368, 24139, -1500724992, 1534701816, 1296938368, 24139, 1296938368, 24139, 0, 0, 1288544780, 24139, 0, 0, 463, 0}}, {mData = {463, 0, 1289750863, 24139, 463, 0, 1289714048, 24139, 1662, 0, 16, 0, 463, 0, 1296938368, 24139, 0, 0, 1289308864}}, {mData = {24139, 31, 2, 44, 24, 1, 0, -1500724992, 1534701816, 0, 0, -1500724992, 1534701816, 1296938368, 24139, 1, 0, 1296938368, 24139}}, {mData = {1, 0, 0, 0, 1289722726, 24139, 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, 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, 1284395652, 24139, 6}}, {mData = {0, -1500724992, 1534701816, 70831728, 32766, 70831696, 32766, 70832752, 32766, 1284404519, 24139, 0, 0, 1289935579, 24139, 70831552, 32766, 1296944200, 24139}}, {mData = {1291557043, 24139, 1296944200, 24139, 70831424, 32766, 70831424, 32766, 1296944192, 24139, 1316991489, 0, 1291411185, 24139, 1289922937, 24139, 1291411185, 24139, 1296944112}}, {mData = {24139, 70831440, 32766, 1289935579, 24139, 1291411185, 24139, 1296944200, 24139, 1291411185, 24139, 1296944200, 24139, 137, 0, 70831656, 32766, 16, 0}}, {mData = {1308391248, 24139, 70832608, 32766, 1504409068, 29201, 70831520, 32766, 1282729141, 24139, 70831616, 32766, 70831616, 32766, 70832016, 32766, 1284095431, 24139, 0}}}}}, 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 = #25 0x00005e4b4c8aa930 in direction (moves=..., args=...) at directn.cc:400 No locals. #26 0x00005e4b4cdf71df in spell_direction (spelld=..., pbolt=..., args=args@entry=0x7ffe0438d4f0) at spl-util.cc:861 newargs = {hitfunc = 0x5e4b4e29a890, 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; 4% risk of failure)", behaviour = 0x7ffe0438d1e0, 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 = 0x5e4b4dfc7750, _M_const_object = 0x5e4b4dfc7750, _M_function_pointer = 0x5e4b4dfc7750, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x5e4b4dfc7750}, _M_pod_data = "Pw\374MK^\000\000\000\000\000\000\000\000\000"}, _M_manager = 0x5e4b4c74e450 , 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_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)>}, _M_invoker = 0x5e4b4c74dfd0 , 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 = 51, y = 31}} #27 0x00005e4b4cd99f7a in your_spells (spell=spell@entry=SPELL_SPIKE_LAUNCHER, powc=, powc@entry=0, actual_spell=true, evoked_wand=evoked_wand@entry=0x0, target=target@entry=0x5e4b4e816868, force_failure=force_failure@entry=false) 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 = 0x5e4b4dcb3160, _M_const_object = 0x5e4b4dcb3160, _M_function_pointer = 0x5e4b4dcb3160, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x5e4b4dcb3160}, _M_pod_data = "`1\313MK^\000\000\000\000\000\000\000\000\000"}, _M_manager = 0x5e4b4c74e450 , 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_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)>}, _M_invoker = 0x5e4b4c74dfd0 , 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 = 0x5e4b4d2ebf78 , 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 = 0x5e4b4e3b4650, _M_const_object = 0x5e4b4e3b4650, _M_function_pointer = 0x5e4b4e3b4650, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x5e4b4e3b4650}, _M_pod_data = "PF;NK^\000\000\000\000\000\000\000\000\000"}, _M_manager = 0x5e4b4c74e450 , 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_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)>}, _M_invoker = 0x5e4b4c74dfd0 , 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 = Compilation info: <<<<<<<<<<< Compiled with GCC 13.2.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-5569844878/saves" -DSHARED_DIR_PATH="/crawl-master/crawl-git/saves" -DDATA_DIR_PATH="/crawl-master/crawl-git-5569844878/data/" -DWEB_DIR_PATH="/crawl-master/crawl-git-5569844878/data/web/" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 LDFLAGS: -rdynamic -fuse-ld=gold -O2 >>>>>>>>>>> Place info: branch = 0, depth = 3 Level id: D:3 Level build method = , level layout type = corridors, absdepth0 = 2 Level vaults: layout_loops_corners general_overflow_altar chequers_avenue Markers: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>> Messages: <<<<<<<<<<<<<<<<<<<<<< Welcome, tempest the Merfolk Forgewright. Game seed: 15892485665631795351 (custom seed) Press ? for a list of commands and other information. Found a staircase leading out of the dungeon. A bat comes into view. The bat moves out of view. You see here 9 gold pieces. A bat is nearby! You now have 9 gold pieces. The bat hits you but does no damage. Aiming: Kinetic Grapnel (safe; 4% risk of failure) Press: ? - help, Q - select action Shift-Dir - straight line Aim: a bat (57% to hit) The kinetic grapnel hits the bat. The bat is moderately wounded. The bat barely misses you. Unknown command. Aiming: Kinetic Grapnel (safe; 4% risk of failure) Press: ? - help, Q - select action Shift-Dir - straight line Aim: a bat (moderately wounded, grapneled, 57% to hit) You miscast Kinetic Grapnel. You are very lightly contaminated with residual magic. Nothing appears to happen. The bat closely misses you. Unknown command. Aiming: Kinetic Grapnel (safe; 4% risk of failure) Press: ? - help, Q - select action Shift-Dir - straight line Aim: a bat (moderately wounded, grapneled, 57% to hit) The kinetic grapnel hits the bat. The bat is severely wounded. The bat hits you. Unknown command. The bat hits you. The grapnel guides your strike. You sock the bat! You kill the bat! You see here a bat corpse. You start resting. Your magical contamination has completely faded away. You start resting. HP restored. Magic restored. You now have 11 gold pieces (gained 2). A bat comes into view. The bat completely misses you. Aiming: Kinetic Grapnel (safe; 4% risk of failure) Press: ? - help, Q - select action Shift-Dir - straight line Aim: a bat (57% to hit) The kinetic grapnel hits the bat. You kill the bat! Unknown command. Unknown command. You start resting. Magic restored. Found a stone staircase leading down. d - a scroll labelled TOFROA KURPH Found a stone staircase leading down. There is a stone staircase leading down here. You open the door. A rat and an endoplasm come into view. Found a sling. There is an open door here. Aiming: Kinetic Grapnel (safe; 4% risk of failure) Press: ? - help, Q - select action Shift-Dir - straight line Aim: a rat (asleep, 100% to hit) The kinetic grapnel hits the rat. The rat is severely wounded. The rat squeaks loudly. The grapnel guides your strike. You hit the rat. You kill the rat! Aiming: Kinetic Grapnel (safe; 4% risk of failure) Press: ? - help, Q - select action Shift-Dir - straight line Aim: an endoplasm (98% to hit) The kinetic grapnel hits the endoplasm. The endoplasm is severely wounded. Unknown command. The grapnel guides your strike. You sock the endoplasm! You kill the endoplasm! A rat comes into view. The rat squeaks loudly. There is an open door here. You see here a rat corpse. A rat is nearby! A rat is nearby! A rat is nearby! A rat is nearby! Aiming: Kinetic Grapnel (safe; 4% risk of failure) Press: ? - help, Q - select action Shift-Dir - straight line Aim: a rat (71% to hit) The kinetic grapnel hits the rat but does no damage. Unknown command. The rat barely misses you. You hit the rat but do no damage. The rat misses you. The rat barely misses you. You hit the rat. You kill the rat! You see here a rat corpse. You start resting. Magic restored. There is an open door here. You see here a rat corpse. You now have 22 gold pieces (gained 11). A hobgoblin comes into view. A giant cockroach comes into view. Found a peridot ring. Aiming: Kinetic Grapnel (safe; 4% risk of failure) Press: ? - help, Q - select action Shift-Dir - straight line Aim: a hobgoblin (asleep, 100% to hit) The kinetic grapnel hits the hobgoblin. The hobgoblin is lightly wounded. The hobgoblin shouts! You hear a shout! x3 The grapnel guides your strike. You hit the hobgoblin. You kill the hobgoblin! A hobgoblin comes into view. You see here a hobgoblin corpse. A hobgoblin is nearby! Found a scroll labelled SAUCUGATSU. You see here a ring of poison resistance. e - a ring of poison resistance e - a ring of poison resistance (left hand) Aiming: Kinetic Grapnel (safe; 4% risk of failure) Press: ? - help, Q - select action Shift-Dir - straight line Aim: a giant cockroach (71% to hit) The kinetic grapnel hits the giant cockroach. The giant cockroach is almost dead. The giant cockroach bites you. The grapnel guides your strike. You sock the giant cockroach! You kill the giant cockroach! You have reached level 2! Aiming: Kinetic Grapnel (safe; 4% risk of failure) Press: ? - help, Q - select action Shift-Dir - straight line Aim: a hobgoblin (71% to hit) The kinetic grapnel hits the hobgoblin. The hobgoblin is severely wounded. The hobgoblin hits you. The grapnel guides your strike. You hit the hobgoblin. You kill the hobgoblin! Unknown command. You start resting. HP restored. You start resting. Magic restored. You start memorising the spell. You continue memorising. x2 You finish memorising. Spell assigned to 'b'. Found a flux talisman. f - a scroll labelled SAUCUGATSU A kobold comes into view. It is wielding a +0 dagger. You see here an amulet of magic regeneration. g - an amulet of magic regeneration The kobold shouts! You hear an angry hiss. The kobold throws a stone. The stone barely misses you. You start putting on your amulet. You continue putting on your amulet of magic regeneration. x5 You finish putting on your amulet of magic regeneration. g - an amulet of magic regeneration (around neck) The amulet throbs as it attunes itself to your body. The kobold throws a stone. The stone barely misses you. The kobold hits you with a +0 dagger. You hit the kobold. The kobold is moderately wounded. The kobold hits you with a +0 dagger. x2 Casting: Construct Spike Launcher (safe; 6% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Dir - look around, f - activate You shape a spike launcher from a nearby wall. The rocky spike skewers the kobold. The kobold closely misses you. Unknown command. Unknown command. The rocky spike skewers the kobold. The kobold attacks as it pursues you! The kobold closely misses you. The rocky spike skewers the kobold. The kobold dies! Unknown command. You start resting. A goblin comes into view. It is wielding a +2 dagger of draining. A goblin is nearby! A goblin is nearby! Things that are here: a +0 dagger; 2 stones; a kobold corpse You start resting. HP restored. You start waiting. A goblin is nearby! A goblin is nearby! Casting: Construct Spike Launcher (safe; 6% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Dir - look around, f - activate You shape a spike launcher from a nearby wall. The goblin shouts! The rocky spike skewers the goblin! The goblin dies! Unknown command. You start resting. Magic restored. Things that are here: a +2 dagger of draining; a +0 ring mail; a goblin corpse h - a +2 dagger of draining You sense an unholy aura. h - a +2 dagger of draining (weapon) Unknown command. You drop a +0 hammer. As you open the door, it creaks loudly! A kobold comes into view. It is wielding a +0 whip. The kobold shouts! A ball python comes into view. The ball python hisses angrily. Found 11 gold pieces. Casting: Construct Spike Launcher (safe; 6% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Dir - look around, f - activate You shape a spike launcher from a nearby wall. The ball python bites you. Unknown command. The ball python attacks as it pursues you! The ball python bites you but does no damage. The ball python barely misses you. The rocky spike skewers the ball python! The ball python dies! You hit the kobold. You drain the kobold. You kill the kobold! Your Fighting skill increases to level 1! Unknown command. Things that are here: a +0 whip; a ball python corpse You start waiting. Found a stone staircase leading down. There is an open door here. Found 7 stones. You now have 33 gold pieces (gained 11). You now have 44 gold pieces (gained 11). You now have 55 gold pieces (gained 11). You see here 7 stones. a - a scroll labelled QAOKLU MANUU A kobold comes into view. It is wielding a +0 dagger. You see here 2 bubbling puce potions. i - 2 bubbling puce potions Found 10 gold pieces. The kobold hits you with a +0 dagger. Casting: Construct Spike Launcher (safe; 6% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Dir - look around, f - activate You shape a spike launcher from a nearby wall. The rocky spike skewers the kobold. The kobold barely misses you. Unknown command. The rocky spike skewers the kobold. The kobold dies! You start waiting. Done waiting. Found a faded altar of an unknown god. You now have 65 gold pieces (gained 10). There is a faded altar of an unknown god here. Things that are here: a +0 dagger; 2 stones; a kobold corpse You open the door. There is an open door here. There is an open door here. Found an escape hatch in the floor. You see here a flux talisman. A kobold comes into view. It is wielding a +2 dagger of venom and quivering poisoned darts. Found 2 stones. Casting: Construct Spike Launcher (safe; 6% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Dir - look around, f - activate You shape a spike launcher from a nearby wall. The rocky spike skewers the kobold. The kobold dies! Unknown command. You start resting. Magic restored. j - a ring of ice Things that are here: a +2 dagger of venom; 3 poisoned darts; a kobold corpse k - a +2 dagger of venom Your +2 dagger of venom begins to drip with poison! k - a +2 dagger of venom (weapon) Unknown command. You drop a +2 dagger of draining. A ball python comes into view. The ball python hisses angrily. A rat comes into view. The rat squeaks loudly. The ball python barely misses you. The ball python closely misses you. Casting: Construct Spike Launcher (safe; 6% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Dir - look around, f - activate You shape a spike launcher from a nearby wall. The rocky spike skewers the ball python. The ball python dies! Unknown command. The rocky spike skewers the rat! The rat dies! You see here a ball python corpse. You start waiting. Done waiting. Found 3 stones. A dart slug comes into view. You hit the dart slug. The dart slug is poisoned. The dart slug is heavily wounded. Casting: Construct Spike Launcher (safe; 6% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Dir - look around, f - activate You shape a spike launcher from a nearby wall. You kill the dart slug! Unknown command. You start resting. Magic restored. You see here a dart slug corpse. Your spike launcher falls apart as you grow too distant to maintain it. You now have 73 gold pieces (gained 8). Things that are here: a +0 whip; a ball python skeleton There is an open door here. Done exploring. Done exploring. There is a stone staircase leading down here. You climb downwards. Found an escape hatch in the ceiling. There is a stone staircase leading up here. Unknown command. There is an escape hatch in the ceiling here. Found a stone staircase leading up. You now have 83 gold pieces (gained 10). Found a stone staircase leading down. You open the door. A ball python comes into view. The ball python hisses angrily. The ball python barely misses you. The ball python completely misses you. The ball python misses you. The ball python closely misses you. There is an open door here. Casting: Construct Spike Launcher (safe; 6% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Dir - look around, f - activate You shape a spike launcher from a nearby wall. The ball python closely misses you. Unknown command. Unknown command. The rocky spike skewers the ball python. The ball python dies! Unknown command. There is an open door here. You start waiting. Done waiting. You open the door. There is an open door here. A bat comes into view. Casting: Construct Spike Launcher (safe; 6% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Dir - look around, f - activate Okay, then. Found a scroll labelled PAVVI OTIO. The bat hits you but does no damage. You hit the bat. You kill the bat! Casting: Construct Spike Launcher (safe; 6% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Dir - look around, f - activate You shape a spike launcher from a nearby wall. Unknown command. Unknown command. You start resting. Magic restored. A goblin comes into view. It is wielding a +0 club. The goblin shouts! Casting: Construct Spike Launcher (safe; 6% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Dir - look around, f - activate You shape a spike launcher from a nearby wall. A frilled lizard comes into view. Unknown command. The frilled lizard hisses angrily. The rocky spike skewers the goblin. The rocky spike skewers the goblin! The goblin dies! A ribbon worm comes into view. You see here a scroll labelled PAVVI OTIO. A ribbon worm is nearby! h - a scroll labelled PAVVI OTIO You start waiting. A frilled lizard is nearby! This is a scroll of acquirement! Casting: Construct Spike Launcher (safe; 6% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Dir - look around, f - activate You shape a spike launcher from a nearby wall. The frilled lizard bites you but does no damage. Unknown command. You closely miss the frilled lizard. The rocky spike skewers the frilled lizard. The frilled lizard dies! You start waiting. A ribbon worm is nearby! Okay, then. Your spike launcher falls apart as you grow too distant to maintain it. Casting: Construct Spike Launcher (safe; 6% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Dir - look around, f - activate You shape a spike launcher from a nearby wall. Unknown command. The ribbon worm expels a string of sticky webbing. The stream of webbing misses you. Unknown command. The ribbon worm closely misses you. You hit the ribbon worm. The ribbon worm is poisoned. The ribbon worm is moderately wounded. The ribbon worm barely misses you. You hit the ribbon worm. The ribbon worm is severely wounded. You hit the ribbon worm. The ribbon worm looks as sick as possible! The ribbon worm is almost dead. You kill the ribbon worm! You see here a ribbon worm corpse. You start waiting. Done waiting. Something appears at your feet! f - the ring "Itzuipti" {rF+ rCorr Dex+3 Stlth+} You feel agile. f - the ring "Itzuipti" (right hand) {rF+ rCorr Dex+3 Stlth+} Okay, then. Found a stone staircase leading up. Found an escape hatch in the floor. l - a scroll labelled OHAORI UWNIMP Found 4 poisoned darts. There is a stone staircase leading up here. m - a scroll labelled QETIAMN QIPHEU Found a serpent talisman. You see here a serpent talisman. n - a serpent talisman Found Kiodeiti's Antique Weapon Boutique. There is a fountain of clear blue water here. You briefly stop to wash your hands. There is an entrance to Kiodeiti's Antique Weapon Boutique here. You can access your shopping list by pressing '$'. You see here 4 poisoned darts. There is a stone staircase leading up here. Found a rapier. You see here a +0 rapier. A hobgoblin comes into view. The hobgoblin shouts! Found 11 gold pieces. You hit the hobgoblin. The hobgoblin is poisoned. The hobgoblin is almost dead. The hobgoblin hits you. You hit the hobgoblin. You kill the hobgoblin! You see here a hobgoblin corpse. You now have 94 gold pieces (gained 11). A kobold comes into view. It is wielding a +0 dagger of venom. The kobold shouts! You hit the kobold. The kobold is poisoned. The kobold is heavily wounded. You kill the kobold! Things that are here: a +0 dagger of venom; a kobold corpse You now have 98 gold pieces (gained 4). An endoplasm comes into view. The endoplasm moves out of view. No target in view! An endoplasm is nearby! Things that are here: a +0 club; a goblin skeleton Casting: Construct Spike Launcher (safe; 5% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Dir - look around, f - activate You shape a spike launcher from a nearby wall. The endoplasm quivers. The rocky spike skewers the endoplasm. The endoplasm freezes you. You are frozen. The rocky spike skewers the endoplasm. The endoplasm dies! You start resting. Magic restored. You start resting. HP restored. Things that are here: a +0 club; a goblin skeleton An endoplasm comes into view. Found a stone staircase leading down. The endoplasm quivers. Found 2 poisoned darts. The endoplasm attacks as it pursues you! The endoplasm closely misses you. Casting: Construct Spike Launcher (safe; 5% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Dir - look around, f - activate You shape a spike launcher from a nearby wall. The rocky spike skewers the endoplasm. The endoplasm barely misses you. Unknown command. The rocky spike skewers the endoplasm. The endoplasm dies! You start resting. Magic restored. You see here 2 poisoned darts. There is a stone staircase leading down here. Found a stone staircase leading down. There is a stone staircase leading down here. There is an open door here. There is an open door here. Done exploring. Okay, then. Unknown command. Unknown command. Done exploring. There is a stone staircase leading up here. There is a stone staircase leading down here. You climb downwards. Found a scroll of acquirement and a cloak. There is a stone staircase leading up here. A giant cockroach is nearby! Found a scimitar. The helpless giant cockroach fails to defend itself. You puncture the giant cockroach! You kill the giant cockroach! You see here a +0 cloak. o - a +0 cloak You start putting on your armour. You continue putting on your +0 cloak. x4 You finish putting on your +0 cloak. p - a scroll of acquirement Something appears at your feet! You now have enough gold to buy an iridescent mace on D:2, or buy a glowing battleaxe on D:2. You can access your shopping list by pressing '$'. You now have 1100 gold pieces (gained 1002). There is a stone staircase leading up here. You climb upwards. There is a stone staircase leading down here. There is a stone staircase leading up here. There is an entrance to Kiodeiti's Antique Weapon Boutique here. p - the +7 mace of Grace {flame, rElec rN++ Will+ Stlth-} Thank you for shopping at Kiodeiti's Antique Weapon Boutique! You can access your shopping list by pressing '$'. Your +2 dagger of venom stops dripping with poison. The +7 mace of Grace {flame, rElec rN++ Will+ Stlth-} bursts into flame! p - the +7 mace of Grace (weapon) {flame, rElec rN++ Will+ Stlth-} Unknown command. Done exploring. There is a stone staircase leading up here. There is a stone staircase leading down here. You climb downwards. There is a stone staircase leading up here. Found a stone staircase leading down. As you open the door, it creaks loudly! You hear an angry hiss. A jelly comes into view. Found a ring mail. A frilled lizard comes into view. There is an open door here. Casting: Construct Spike Launcher (safe; 5% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Dir - look around, f - activate You shape a spike launcher from a nearby wall. Unknown command. The rocky spike skewers the jelly. Unknown command. The rocky spike skewers the jelly. The jelly closely misses you. Unknown command. You sock the jelly! You burn the jelly. You kill the jelly! The rocky spike skewers the frilled lizard. The frilled lizard dies! You have reached level 3! Your experience leads to an increase in your attributes! Your base attributes are Str 10, Int 14, Dex 12. Increase (S)trength, (I)ntelligence, or (D)exterity? You feel clever. x2 You start waiting. Done waiting. There is an open door here. You open the door. There is an open door here. You see here a scarf of shadows. There is a stone staircase leading down here. You now have 932 gold pieces (gained 16). Found a stone staircase leading down. q - a scroll labelled YKICLA QYOWE r - a sedimented coppery potion A ball python comes into view. You see here a ring of protection from cold. s - a ring of protection from cold The ball python hisses angrily. The ball python barely misses you. The ball python grabs you. The ball python constricts you. The ball python bites you but does no damage. The ball python constricts you. Casting: Construct Spike Launcher (safe; 4% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Dir - look around, f - activate You shape a spike launcher from a nearby wall. The rocky spike skewers the ball python. The ball python bites you but does no damage. The ball python constricts you. The ball python's grasp on you weakens, but your attempt to escape fails. The rocky spike skewers the ball python. The ball python dies! You start waiting. Done waiting. You start waiting. Done waiting. Okay, then. Okay, then. Unknown command. Found a stone staircase leading up. t - a dark potion u - a scroll labelled LOEDEA FAESUEN An endoplasm comes into view. Casting: Construct Spike Launcher (safe; 4% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Dir - look around, f - activate You shape a spike launcher from a nearby wall. The rocky spike skewers the endoplasm. The endoplasm quivers. The endoplasm barely misses you. The rocky spike skewers the endoplasm. The endoplasm dies! You start resting. Magic restored. Your spike launcher falls apart as you grow too distant to maintain it. Found an opulent altar of Gozag. There is an open door here. An endoplasm comes into view. Found an escape hatch in the floor. Found 12 gold pieces. Casting: Construct Spike Launcher (safe; 4% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Dir - look around, f - activate You shape a spike launcher from a nearby wall. Unknown command. The rocky spike skewers the endoplasm. The endoplasm attacks as it pursues you! The endoplasm hits you but does no damage. You barely miss the endoplasm. The endoplasm is almost dead. The rocky spike skewers the endoplasm. The endoplasm dies! You start waiting. A goblin comes into view. It is wielding a +0 dagger. A goblin is nearby! The goblin shouts! The goblin closely misses you. Casting: Construct Spike Launcher (safe; 4% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Dir - look around, f - activate You shape a spike launcher from a nearby wall. The goblin hits you with a +0 dagger. The goblin throws a stone. The stone hits you. Unknown command. The rocky spike skewers the goblin. The goblin dies! Unknown command. You start resting. HP restored. Things that are here: a +0 dagger; 6 stones; a goblin corpse You now have 944 gold pieces (gained 12). Found a stone staircase leading up. Found 2 stones. A quokka comes into view. There is a stone staircase leading up here. The quokka misses you. Casting: Construct Spike Launcher (safe; 4% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Dir - look around, f - activate >>>>>>>>>>>>>>>>>>>>>> Version history: Game started: 0.33-a0-511-g5569844878 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: 9, arena_suspended: 0 prev_cmd = CMD_FIRE repeat_cmd = CMD_NO_CMD Player: {{{{{{{{{{{ Name: [tempest] Species: Merfolk Job: Forgewright HP: 26/26; mods: 0/0 MP: 4/6; mod: 0 Stats: 10 (10) 16 (16) 15 (15) Position: (51, 31), god: No God (0), turn_is_over: 0, banished: 0 Standing on/in/over feature: floor Skills (mode: manual) Name | can_currently_train | train | training | level | points | progress Fighting | X | 0 | 0 | 1 | 70 | 28/84 Short Blades | X | 0 | 0 | 0 | 0 | 0/35 Long Blades | X | 0 | 0 | 0 | 0 | 0/35 Axes | X | 0 | 0 | 0 | 0 | 0/70 Maces & Flails | X | 1 | 34 | 0 | 15 | 15/70 Polearms | X | 0 | 0 | 0 | 0 | 0/29 Staves | X | 0 | 0 | 0 | 0 | 0/70 Ranged Weapons | X | 0 | 0 | 0 | 0 | 0/70 Throwing | X | 0 | 0 | 0 | 0 | 0/50 Armour | X | 0 | 0 | 0 | 0 | 0/84 Dodging | X | 0 | 0 | 2 | 151 | 62/89 Stealth | X | 0 | 0 | 2 | 127 | 21/106 Shields | X | 0 | 0 | 0 | 0 | 0/50 Unarmed Combat | X | 0 | 0 | 0 | 0 | 0/42 Spellcasting | X | 0 | 0 | 2 | 179 | 1/178 Conjurations | X | 0 | 0 | 0 | 0 | 0/70 Hexes | X | 0 | 0 | 0 | 0 | 0/50 Summonings | X | 0 | 0 | 0 | 0 | 0/50 Necromancy | X | 0 | 0 | 0 | 0 | 0/70 Translocations | X | 0 | 0 | 0 | 0 | 0/70 Forgecraft | X | 2 | 66 | 4 | 674 | 174/250 Fire Magic | X | 0 | 0 | 0 | 0 | 0/84 Ice Magic | X | 0 | 0 | 0 | 0 | 0/42 Air Magic | X | 0 | 0 | 0 | 0 | 0/70 Earth Magic | X | 0 | 0 | 0 | 0 | 0/70 Alchemy | X | 0 | 0 | 0 | 0 | 0/29 Invocations | X | 0 | 0 | 0 | 0 | 0/42 Evocations | X | 0 | 0 | 0 | 0 | 0/50 Shapeshifting | X | 0 | 0 | 0 | 0 | 0/35 Spell bugs: Durations: Attributes: #12: 1128 #13: 184 #49: 154 Mutations: nimble swimmer: 2 (innate) mertail: 1 (innate) Inventory bugs: Equipment: eq slot #0, inv slot #15: +7 mace of Grace {flame, rElec rN++ Will+ Stlth-} eq slot #1, inv slot #14: +0 cloak eq slot #6, inv slot #2: +0 robe eq slot #7, inv slot #4: ring of poison resistance eq slot #8, inv slot #5: ring "Itzuipti" {rF+ rCorr Dex+3 Stlth+} eq slot #9, inv slot #6: amulet of magic regeneration }}}}}}}}}}} Webtiles message buffer: Webtiles JSON stack: Screenshot: #.# ..# .# ### #.# ##.## ##...## .....# #...#### #.#########....(.# #....r@....<..# ###########...# ##.## #.# #.# #.# #.# ## #.# .# #.# clua stack: dlua stack: Lua persistent data: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>> Lua marker contents: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>