ASSERT(in_bounds(source)) in 'beam.cc' at line 738 failed. (source = (0,0)) Version: Dungeon Crawl Stone Soup 0.32-a0-1582-g76dddd7891 Platform: unix Bits: 64 Game mode: seeded Tiles: online Seed: 14438778251615919812, deterministic pregen: 1 Command line: /usr/games/crawl-git-76dddd7891 -name mmoncure -rc /dgldir/rcfiles/crawl-git/mmoncure.rc -macro /dgldir/rcfiles/crawl-git/mmoncure.macro -webtiles-socket /crawl-master/webserver/sockets/mmoncure:dcss-git.sock -morgue /dgldir/morgue/mmoncure/ RC options: restart_after_game = false Crash caused by signal #6: Aborted Obtained 23 stack frames. /usr/games/crawl-git-76dddd7891(_Z17write_stack_traceP8_IO_FILE+0x3e) [0x64c5054ef8ee]: write_stack_trace(_IO_FILE*) /usr/games/crawl-git-76dddd7891(_Z13do_crash_dumpv+0x43a) [0x64c5054fda4a]: do_crash_dump() /usr/games/crawl-git-76dddd7891(_Z20crash_signal_handleri+0x1fa) [0x64c5054efdca]: crash_signal_handler(int) /lib/x86_64-linux-gnu/libc.so.6(+0x42910) [0x71f6aa642910]: /lib/x86_64-linux-gnu/libc.so.6(pthread_kill+0x11b) [0x71f6aa69999b]: /lib/x86_64-linux-gnu/libc.so.6(raise+0x16) [0x71f6aa642866]: /usr/games/crawl-git-76dddd7891(+0x48ed6d) [0x64c5054fcd6d]: /usr/games/crawl-git-76dddd7891(_Z12AssertFailedPKcS0_iS0_z+0x1a1) [0x64c5054fd301]: AssertFailed(char const*, char const*, int, char const*, ...) /usr/games/crawl-git-76dddd7891(_ZN4bolt15initialise_fireEv+0x230) [0x64c50549b990]: bolt::initialise_fire() /usr/games/crawl-git-76dddd7891(_ZN4bolt7do_fireEv+0x30) [0x64c5054ab4e0]: bolt::do_fire() /usr/games/crawl-git-76dddd7891(_ZN4bolt4fireEv+0x298) [0x64c5054ac618]: bolt::fire() /usr/games/crawl-git-76dddd7891(+0x811d99) [0x64c50587fd99]: /usr/games/crawl-git-76dddd7891(_Z9mons_castP7monster4bolt10spell_type13enum_bitfieldI19mon_spell_slot_flagLi12EEb+0x48e) [0x64c50588396e]: mons_cast(monster*, bolt, spell_type, enum_bitfield, bool) /usr/games/crawl-git-76dddd7891(_Z22dithmenos_shadow_spell10spell_type+0xb66) [0x64c505659966]: dithmenos_shadow_spell(spell_type) /usr/games/crawl-git-76dddd7891(_Z11your_spells10spell_typeibPK8item_defP4distb+0x2978) [0x64c505a70468]: your_spells(spell_type, int, bool, item_def const*, dist*, bool) /usr/games/crawl-git-76dddd7891(_Z12cast_a_spellb10spell_typeP4distb+0x349) [0x64c505a71299]: cast_a_spell(bool, spell_type, dist*, bool) /usr/games/crawl-git-76dddd7891(_Z17do_cast_spell_cmdb+0x1a) [0x64c505a71c8a]: do_cast_spell_cmd(bool) /usr/games/crawl-git-76dddd7891(+0xbd317a) [0x64c505c4117a]: /usr/games/crawl-git-76dddd7891(+0xbd3c85) [0x64c505c41c85]: /usr/games/crawl-git-76dddd7891(main+0x1f7) [0x64c50542aa57]: /lib/x86_64-linux-gnu/libc.so.6(+0x280d0) [0x71f6aa6280d0]: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x89) [0x71f6aa628189]: /usr/games/crawl-git-76dddd7891(_start+0x25) [0x64c50542b475]: 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". 0x000071f6aa70fbf7 in __GI___wait4 (pid=1148657, stat_loc=0x0, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30 #0 0x000071f6aa70fbf7 in __GI___wait4 (pid=1148657, stat_loc=0x0, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30 sc_ret = -512 sc_ret = #1 0x000064c5054eff9c in call_gdb (file=0x71f6aa7ff6c0 <_IO_2_1_stderr_>) at crash.cc:438 gdb = attach_cmd = "attach 1143729\000\000\000\000\000" #2 0x000064c5054fda68 in do_crash_dump () at dbg-asrt.cc:692 t = 1719530916 dir = "/dgldir/morgue/mmoncure/" name = "/dgldir/morgue/mmoncure/crash-mmoncure-20240627-232836.txt", '\000' signal_info = "Crash caused by signal #6: Aborted" cause_msg = "ASSERT(in_bounds(source)) in 'beam.cc' at line 738 failed. (source = (0,0))" file = 0x71f6aa7ff6c0 <_IO_2_1_stderr_> #3 0x000064c5054efdca 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 = {140729486379600}} 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 0x000071f6aa642866 in __GI_raise (sig=6) at ../sysdeps/posix/raise.c:26 ret = #9 0x000064c5054fcd6d in _BreakStrToDebugger (mesg=mesg@entry=0x7ffe230b8c50 "ASSERT(in_bounds(source)) in 'beam.cc' at line 738 failed. (source = (0,0))", assert=true) at dbg-asrt.cc:818 No locals. #10 0x000064c5054fd301 in AssertFailed (expr=expr@entry=0x64c505c55a09 "in_bounds(source)", file=file@entry=0x64c505c55465 "beam.cc", line=line@entry=738, text=text@entry=0x64c505c539a7 "%s = (%d,%d)") at dbg-asrt.cc:851 detail = "source = (0,0)\000\000@,\342\a\305d\000\000\220,\342\a\305d\000\000\220,\342\a\305d\000\000\220\222\v#\376\177\000\000\340\203\222\t\305d\000\0000\204\222\t\305d\000\0000\204\222\t\305d\000\000\000\237LU\235\217\334x\000\000\000\000\000\000\000\000\200\3067\t\305d\000\000\250\3067\t\305d\000\000\250\3067\t\305d\000\000\206\335\000\000\000\000\000\000\360\213\v#\376\177\000\000\340\212\v#\376\177\000\000\t\000\000\000\000\000\000\000lightgrey\000\v#\376\177\000\000\000\213\v#\376\177", '\000' , "lightgrey>\000\000\000\000\000\240@\230\a\305d\000\000"... final_mesg = "ASSERT(in_bounds(source)) in 'beam.cc' at line 738 failed. (source = (0,0))\000\305d\000\000\210g\037\006\305d\000\000\241ɐ\005xi", '\000' , "\210g\037\006\305d\000\000\000\237LU\235\217\334x\210g\037\006\305d\000\000\023\000\000\000\000\000\000\000\320:\037\006\305d\000\000\\\244\222\005\305d\000\000\002\000\000\000\000\000\000\000\210g\037\006\305d\000\000\023\000\000\000\000\000\000\000-w\223\005\305d\000\000h\377\377\377\377\377\377\377\002"... mesg = "ASSERT(in_bounds(source)) in 'beam.cc' at line 738 failed.\000\005\305d\000\000@j\r\006\305d\000\000\250`H\b\305d\000\000P0\004\b\305d\000\000\177\216\265\252\366q\000\000\300\210\v#\376\177\000\000\000\000\000\000\000\000\000\000\220`H\b\305d\000\000\250`H\b\305d\000\000\250`H\b\305d\000\000+\000\000\000\000\000\000\000\020\025\034\a\305d\000\000\024\000\000\000\000\000\000\000\024\000\000\000\000\000\000\000damage\000\000\240\211\v#\376\177\000\000\363\207j\252\366q\000\000(\342\031\b\305d\000\000"... args = {{gp_offset = 48, fp_offset = 48, overflow_arg_area = 0x7ffe230b9148, reg_save_area = 0x7ffe230b9060}} fileName = #11 0x000064c50549b990 in bolt::initialise_fire (this=this@entry=0x7ffe230b9e90) at beam.cc:738 No locals. #12 0x000064c5054ab4e0 in bolt::do_fire (this=this@entry=0x7ffe230b9e90) at beam.cc:1194 coff = #13 0x000064c5054ac618 in bolt::fire (this=this@entry=0x7ffe230b9e90) at beam.cc:1179 No locals. #14 0x000064c50587fd99 in operator() (__closure=, beam=..., caster=...) at mon-cast.cc:767 i = 1 targs = std::vector of length 4, capacity 4 = {0x64c5061f6788 , 0x64c5061f3928 , 0x64c5061f6290 , 0x64c5061f3c78 } num_targs = 2 draw_delay = #15 std::__invoke_impl&, monster&, mon_spell_slot, bolt&> (__f=...) at /usr/include/c++/13/bits/invoke.h:61 No locals. #16 std::__invoke_r&, monster&, mon_spell_slot, bolt&> (__fn=...) at /usr/include/c++/13/bits/invoke.h:150 No locals. #17 std::_Function_handler >::_M_invoke(const std::_Any_data &, monster &, mon_spell_slot &&, bolt &) (__functor=..., __args#0=..., __args#1=..., __args#2=...) at /usr/include/c++/13/bits/std_function.h:290 No locals. #18 0x000064c50588396e in std::function::operator()(monster&, mon_spell_slot, bolt&) const (__args#2=..., __args#1=..., __args#0=..., this=) at /usr/include/c++/13/bits/std_function.h:587 No locals. #19 mons_cast (mons=0x64c5061f3ad0 , pbolt=..., spell_cast=SPELL_SHADOW_TEMPEST, slot_flags=..., do_noise=) at mon-cast.cc:6499 evoke = false flags = foe = 0x64c5061f6788 logic = slot = {spell = SPELL_SHADOW_TEMPEST, freq = 0 '\000', flags = {<_enum_bitfield_exponent_base<12, true>> = {static last_exponent = 12}, flags = 16}} sumcount = 0 sumcount2 = duration = 0 god = splpow = #20 0x000064c505659966 in dithmenos_shadow_spell (spell=spell@entry=SPELL_AIRSTRIKE) at god-passive.cc:1834 shadow_spell = SPELL_SHADOW_TEMPEST pos = aim = {x = 0, y = 0} mon = 0x64c5061f3ad0 spell_hd = 11 beam = {origin_spell = SPELL_SHADOW_TEMPEST, range = 7, glyph = 42 U'*', colour = 5 '\005', flavour = BEAM_MMISSILE, real_flavour = BEAM_MAGIC, drop_item = false, item_mulches = false, item = 0x0, launcher = 0x0, source = {x = 9, y = 32}, target = {x = 0, y = 0}, damage = {num = 3, size = 12}, ench_power = 132, hit = 20, thrower = KILL_MON_MISSILE, ex_size = 0, source_id = 4677, source_name = "a shadow", name = "shadowy lightning", short_name = "", hit_verb = "", loudness = 0, hit_noise_msg = "", explode_noise_msg = "", pierce = false, is_explosion = false, is_death_effect = false, aimed_at_spot = true, aux_source = "shadowy lightning", 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_FRIENDLY, 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, auto_hit = false, ray = {r = {start = {x = 0, y = 0}, dir = {x = 0, y = 0}}, on_corner = false, cycle_idx = -1}, tile_beam = 96872039, can_see_invis = false, nightvision = false, can_trigger_bullseye = false, message_cache = std::set with 0 elements} #21 0x000064c505a70468 in your_spells (spell=spell@entry=SPELL_AIRSTRIKE, powc=, powc@entry=0, actual_spell=, evoked_wand=evoked_wand@entry=0x0, target=0x7ffe230ba3f0, target@entry=0x0, force_failure=force_failure@entry=false) at spl-cast.cc:2192 demonic_magic = wiz_cast = target_local = {isValid = true, isTarget = true, isEndpoint = true, isCancel = false, choseRay = true, interactive = true, target = {x = 12, y = 27}, delta = {x = 0, y = 0}, ray = {r = {start = {x = 12.5, y = 29.5}, dir = {x = 0, y = -1}}, on_corner = false, cycle_idx = 0}, find_target = false, fire_context = 0x0, cmd_result = 2061} beam = {origin_spell = SPELL_AIRSTRIKE, range = 7, 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 = 12, y = 29}, target = {x = 12, y = 27}, damage = {num = 0, size = 0}, ench_power = 0, hit = 0, thrower = KILL_MISC, 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 = 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 = 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 = true, 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, auto_hit = false, ray = {r = {start = {x = 12.5, y = 29.5}, dir = {x = 0, y = -1}}, on_corner = false, cycle_idx = 0}, tile_beam = 1818585463, can_see_invis = false, nightvision = false, can_trigger_bullseye = false, message_cache = std::set with 0 elements} flags = range = hitfunc = std::unique_ptr = {get() = 0x64c508328990} is_targeted = god = use_targeter = fail = orig_target_pos = cast_result = #22 0x000064c505a71299 in cast_a_spell (check_range=, spell=, spell@entry=SPELL_NO_SPELL, _target=_target@entry=0x0, force_failure=force_failure@entry=false) at spl-cast.cc:934 reason = "" cost = 4 hp_cost = cast_result = #23 0x000064c505a71c8a in do_cast_spell_cmd (force=) at spl-cast.cc:690 No locals. #24 0x000064c505c4117a in _input () at main.cc:1265 cmd = CMD_FORCE_CAST_SPELL real_prev_cmd = CMD_FORCE_CAST_SPELL player_disabled = {was_disabled = false} #25 0x000064c505c41c85 in _launch_game () at main.cc:493 game_start = ccon = {cstate = false} #26 0x000064c50542aa57 in _launch_game_loop () at main.cc:392 game_ended = false game_ended = ge = fe = E = #27 main (argc=11, argv=0x7ffe230bbd18) at main.cc:342 echo = {prev_state = {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-76dddd7891/saves" -DSHARED_DIR_PATH="/crawl-master/crawl-git/saves" -DDATA_DIR_PATH="/crawl-master/crawl-git-76dddd7891/data/" -DWEB_DIR_PATH="/crawl-master/crawl-git-76dddd7891/data/web/" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 LDFLAGS: -rdynamic -fuse-ld=gold -O2 >>>>>>>>>>> Place info: branch = 3, depth = 1 Level id: Elf:1 Level build method = , level layout type = corridors, absdepth0 = 15 Level vaults: layout_loops_corners mu_enter_wizlab_4 elven_spread minmay_elf_annihilation hangedman_decor_cross_pass Markers: <<<<<<<<<<<<<<<<<<<<<< Marker #0, type 0 at (15, 10): feature (stone_stairs_up_i) >>>>>>>>>>>>>>>>>>>>>> Messages: <<<<<<<<<<<<<<<<<<<<<< Press: ? - help, Dir - move target, f - deep elf zephyrmancer Aim: a deep elf zephyrmancer, wielding a +0 rapier (wandering, hasn't noticed you, empty space bonus: 7/8) The air twists around and strikes the deep elf zephyrmancer!! The deep elf zephyrmancer shouts! The deep elf zephyrmancer is severely wounded. The deep elf zephyrmancer gestures wildly while chanting. The deep elf zephyrmancer blinks! Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f/p - deep elf zephyrmancer Aim: a deep elf zephyrmancer, wielding a +0 rapier (severely wounded, empty space bonus: 6/8) The air twists around and strikes the deep elf zephyrmancer!! You kill the deep elf zephyrmancer! Unknown command. Unknown command. H - a potion of lignification You enter the shallow water. You enter the shallow water. You now have 2172 gold pieces (gained 13). You open the door. There is an open door here. Found 4 stones. You see here 4 stones. You see here 4 stones. Items here: )) [ ÷. You now have 2184 gold pieces (gained 12). You now have 2200 gold pieces (gained 16). You open the door. There is an open door here. A raiju comes into view. A raiju is nearby! Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f - raiju Aim: a raiju (wandering, hasn't noticed you, empty space bonus: 2/8) The air twists around and strikes the raiju. The raiju barks! The raiju is lightly wounded. Unknown command. Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f/p - raiju Aim: a raiju (lightly wounded, empty space bonus: 4/8) The air twists around and strikes the raiju!! You kill the raiju! Unknown command. Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f - you That would be overly suicidal. Okay, then. Unknown command. A water elemental comes into view. Unknown command. You see here a scroll of teleportation. o - 8 scrolls of teleportation (gained 1) Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f - water elemental Aim: a water elemental (empty space bonus: 5/8) The air twists around and strikes the water elemental! The water elemental is heavily damaged. Your shadow mumbles some strange words. The shadowy lightning hits the water elemental!! You catch the helpless water elemental completely off-guard! You hit the water elemental. Your headbutt misses the water elemental. The water elemental is almost destroyed. Your shadow hits the water elemental with a demon whip! You destroy the water elemental! Unknown command. Your shadow disappears in a puff of smoke! s - 4 scrolls of poison (gained 1) A yak and a +0 mace of holy wrath come into view. There is an open door here. The yak bellows! You block the +0 mace of holy wrath's attack. You block the yak's attack. You miss the +0 mace of holy wrath. Your +5 spectral demon whip completely misses the +0 mace of holy wrath. The +0 mace of holy wrath hits you but does no damage. You miss the +0 mace of holy wrath. Your headbutt misses the +0 mace of holy wrath. Your shadow completely misses the +0 mace of holy wrath. Your +5 spectral demon whip eviscerates the +0 mace of holy wrath. The +0 mace of holy wrath completely misses you. You block the yak's attack. You whack the +0 mace of holy wrath! You headbutt the +0 mace of holy wrath. The +0 mace of holy wrath is severely damaged. Your +5 spectral demon whip eviscerates the +0 mace of holy wrath! The +0 mace of holy wrath eviscerates your +5 spectral demon whip. Your spectral weapon shares its damage with you! Unknown command. There are monsters nearby! You catch the helpless +0 mace of holy wrath completely off-guard! You hit the +0 mace of holy wrath but do no damage. The +0 mace of holy wrath is almost destroyed. Your +5 spectral demon whip eviscerates the +0 mace of holy wrath! The +0 mace of holy wrath falls from the air. The yak barely misses you. Unknown command. Unknown command. You thrash the yak!! You headbutt the yak, but do no damage. The yak is almost dead. Your +5 spectral demon whip closely misses the yak. You block the yak's attack. A yak is nearby! You closely miss the yak. You headbutt the yak. The yak is almost dead. Your shadow hits the yak with a demon whip! You kill the yak! The yak's shape twists and changes as it dies. Unknown command. No target in view! Your +5 spectral demon whip disappears. You see here a +0 mace of holy wrath. Your shadow disappears in a puff of smoke! N - a scroll of enchant weapon You now have 2210 gold pieces (gained 10). You open the door. A deep elf elementalist and a deep elf zephyrmancer come into view. The deep elf zephyrmancer shouts! The deep elf elementalist shouts! The deep elf elementalist gestures wildly while chanting. The deep elf elementalist sculpts a pair of cannons out of ice! 2 hoarfrost cannons come into view. Okay, then. Unknown command. You whack the hoarfrost cannon! You headbutt the hoarfrost cannon. The hoarfrost cannon is moderately damaged. Your +5 spectral demon whip completely misses the hoarfrost cannon. The deep elf elementalist gestures wildly while chanting. The deep elf elementalist seems to speed up. Unknown command. You whack the hoarfrost cannon! You headbutt the hoarfrost cannon, but do no damage. The hoarfrost cannon is heavily damaged. Your +5 spectral demon whip eviscerates the hoarfrost cannon. Unknown command. You whack the hoarfrost cannon! You headbutt the hoarfrost cannon! You destroy the hoarfrost cannon! Your +5 spectral demon whip disappears. Unknown command. The deep elf zephyrmancer mumbles some strange words. The deep elf zephyrmancer blinks! The hoarfrost cannon fires a salvo of icy shards. The shard of alchemical ice misses you. Unknown command. You hit the deep elf zephyrmancer. You headbutt the deep elf zephyrmancer! The deep elf zephyrmancer is heavily wounded. Your shadow hits the deep elf zephyrmancer with a demon whip!! You kill the deep elf zephyrmancer! Unknown command. You thrash the hoarfrost cannon!! You headbutt the hoarfrost cannon, but do no damage. The hoarfrost cannon is heavily damaged. Your shadow hits the hoarfrost cannon with a demon whip. Your +5 spectral demon whip eviscerates the hoarfrost cannon! The hoarfrost cannon fires a salvo of icy shards. You block the shard of alchemical ice. The hoarfrost cannon is destroyed! You enter the shallow water. Your +5 spectral demon whip disappears. Unknown command. You swap places. The deep elf elementalist points next to you and mumbles some strange words. The wall shatters! The blast of rock fragments hits your shadow!! The blast of rock fragments hits you! The deep elf elementalist gestures at you while chanting. The fireball explodes! The fireball engulfs your shadow!!! Your shadow is destroyed! The fireball engulfs you!! You resist. The fireball engulfs the deep elf elementalist!! You enter the shallow water. The deep elf elementalist mumbles some strange words. The deep elf elementalist sculpts a pair of cannons out of ice! 2 hoarfrost cannons come into view. Unknown command. You thrash the deep elf elementalist!! The deep elf elementalist is severely wounded. Your +5 spectral demon whip closely misses the deep elf elementalist. You block the deep elf elementalist's attack. Unknown command. You miss the deep elf elementalist. The deep elf elementalist is severely wounded. Your +5 spectral demon whip eviscerates the deep elf elementalist! The deep elf elementalist is engulfed in a cloud of scalding steam. The deep elf elementalist hits you but does no damage. Unknown command. You whack the deep elf elementalist! You kill the deep elf elementalist! The hoarfrost cannon melts away. x2 Your +5 spectral demon whip disappears. Unknown command. You start resting. Magic restored. As you read the scroll of enchant weapon, it crumbles to dust. Your +5 spectral demon whip glows red for a moment. HP restored. Things that are here: a +0 long sword; a +0 leather armour There is an open door here. You open the door. There is an open door here. Found a scroll of identify. A thermic dynamo comes into view. A wild whirl of fire shoots out from the thermic dynamo at you. The rebounding bolt of fire misses you. Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f - thermic dynamo Aim: a thermic dynamo (empty space bonus: 3/8) The air twists around and strikes the thermic dynamo! The thermic dynamo is moderately damaged. The thermic dynamo overflows with ice and vents excess cold at you. The rebounding bolt of cold misses you. Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f/p - thermic dynamo Aim: a thermic dynamo (moderately damaged, empty space bonus: 3/8) The air twists around and strikes the thermic dynamo! The thermic dynamo is severely damaged. The thermic dynamo overflows with ice and vents excess cold at you. The rebounding bolt of cold hits you! You resist. Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f/p - thermic dynamo Aim: a thermic dynamo (severely damaged, empty space bonus: 3/8) The air twists around and strikes the thermic dynamo! You destroy the thermic dynamo! Unknown command. A deep elf zephyrmancer comes into view. It is wielding a +0 long sword of protection. Unknown command. Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f - deep elf zephyrmancer Aim: a deep elf zephyrmancer, wielding a +0 long sword of protection (asleep, empty space bonus: 3/8) The air twists around and strikes the deep elf zephyrmancer! The deep elf zephyrmancer shouts! The deep elf zephyrmancer is moderately wounded. Your shadow mumbles some strange words. The shadowy lightning hits the deep elf zephyrmancer! The deep elf zephyrmancer casts a spell at your shadow. The bolt of lightning hits your shadow! You hear a shout! x2 Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f/p - deep elf zephyrmancer Aim: a deep elf zephyrmancer, wielding a +0 long sword of protection (heavily wounded, not watching you, ally target, empty space bonus: 3/8) The air twists around and strikes the deep elf zephyrmancer! The deep elf zephyrmancer is severely wounded. The deep elf zephyrmancer gestures at you while chanting. The bolt of lightning hits you! Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f/p - deep elf zephyrmancer Aim: a deep elf zephyrmancer, wielding a +0 long sword of protection (severely wounded, ally target, empty space bonus: 3/8) The air twists around and strikes the deep elf zephyrmancer!! You kill the deep elf zephyrmancer! Unknown command. Your shadow disappears in a puff of smoke! A deep elf zephyrmancer comes into view. It is wielding a +0 rapier. Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f - deep elf zephyrmancer Aim: a deep elf zephyrmancer, wielding a +0 rapier and wearing a +0 chain mail (wandering, hasn't noticed you, empty space bonus: 3/8) The air twists around and strikes the deep elf zephyrmancer. The deep elf zephyrmancer shouts! The deep elf zephyrmancer is lightly wounded. Your shadow gestures wildly while chanting. The shadowy lightning hits the deep elf zephyrmancer. The deep elf zephyrmancer points at you and mumbles some strange words. The bolt of lightning hits you!! You hear a shout! Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f/p - deep elf zephyrmancer Aim: a deep elf zephyrmancer, wielding a +0 rapier and wearing a +0 chain mail (moderately wounded, ally target, empty space bonus: 3/8) The air twists around and strikes the deep elf zephyrmancer!! The deep elf zephyrmancer is almost dead. Your shadow casts a spell. You hear a shout! Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f/p - deep elf zephyrmancer Aim: a deep elf zephyrmancer, wielding a +0 rapier and wearing a +0 chain mail (almost dead, ally target, empty space bonus: 7/8) The air twists around and strikes the deep elf zephyrmancer! You kill the deep elf zephyrmancer! A deep elf zephyrmancer comes into view. It is wielding a +0 long sword. A deep elf zephyrmancer is nearby! Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f - deep elf zephyrmancer Aim: a deep elf zephyrmancer, wielding a +0 long sword and wearing a +0 leather armour (moderately wounded, empty space bonus: 3/8) The air twists around and strikes the deep elf zephyrmancer!! The deep elf zephyrmancer is severely wounded. Your shadow mumbles some strange words. Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f/p - deep elf zephyrmancer Aim: a deep elf zephyrmancer, wielding a +0 long sword and wearing a +0 leather armour (severely wounded, ally target, empty space bonus: 7/8) The air twists around and strikes the deep elf zephyrmancer!! You kill the deep elf zephyrmancer! A +2 halberd of distortion comes into view. A deep elf pyromancer comes into view. It is wielding a +0 short sword of venom. Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f - +2 halberd of distortion Aim: a +2 halberd of distortion (empty space bonus: 6/8) The air twists around and strikes the +2 halberd of distortion! The +2 halberd of distortion is moderately damaged. Unknown command. Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f/p - +2 halberd of distortion Aim: a +2 halberd of distortion (moderately damaged, ally target, empty space bonus: 5/8) The air twists around and strikes the +2 halberd of distortion!! The +2 halberd of distortion falls from the air. Your shadow gestures wildly while chanting. The shadowy lightning hits the deep elf pyromancer!! The deep elf pyromancer gestures at your shadow while chanting. The bolt of fire misses your shadow. A deep elf pyromancer is nearby! Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f - deep elf pyromancer Aim: a deep elf pyromancer, wielding a +0 short sword of venom (heavily wounded, not watching you, ally target, empty space bonus: 7/8) The air twists around and strikes the deep elf pyromancer!! You kill the deep elf pyromancer! Unknown command. Your shadow disappears in a puff of smoke! You see here a +2 halberd of distortion. Items here: ))) [[ ††. You see here a +0 long sword of protection. There is an open door here. You open the door. A deep elf annihilator comes into view. It is wielding a +0 long sword. Found the Notes on Damage and 14 gold pieces. Unknown command. Found a potion of curing. There is an open door here. The deep elf annihilator shouts! The deep elf annihilator gestures wildly while chanting. The deep elf annihilator blinks! You see here the Notes on Damage. Unknown command. As you open the door, it creaks loudly! You see here a potion of curing. You whack the deep elf annihilator! You headbutt the deep elf annihilator. The deep elf annihilator is lightly wounded. Your shadow hits the deep elf annihilator with a demon whip. Your +6 spectral demon whip barely misses the deep elf annihilator. The deep elf annihilator hits you with a +0 long sword. Unknown command. You whack the deep elf annihilator! You headbutt the deep elf annihilator. The deep elf annihilator is moderately wounded. Your +6 spectral demon whip completely misses the deep elf annihilator. Unknown command. You whack the deep elf annihilator! The deep elf annihilator is heavily wounded. Your +6 spectral demon whip eviscerates the deep elf annihilator. You block the deep elf annihilator's attack. Unknown command. You thrash the deep elf annihilator!! The deep elf annihilator is severely wounded. Your +6 spectral demon whip eviscerates the deep elf annihilator. You closely miss the deep elf annihilator. The deep elf annihilator is almost dead. Your shadow hits the deep elf annihilator with a demon whip! Your +6 spectral demon whip eviscerates the deep elf annihilator. The deep elf annihilator casts a spell. The deep elf annihilator blinks! Your +6 spectral demon whip disappears. The deep elf annihilator eviscerates you with a +0 long sword. You catch the helpless deep elf annihilator completely off-guard! You thrash the deep elf annihilator!! You kill the deep elf annihilator! Unknown command. There is an open door here. Things that are here: a +0 long sword; an elf corpse Unknown command. Your shadow disappears in a puff of smoke! There is an open door here. Things that are here: a +0 long sword; an elf corpse You pick up the Notes on Damage and begin reading... You add the spells Searing Ray and Mephitic Cloud to your library. n - 7 potions of curing (gained 1) You now have 2224 gold pieces (gained 14). You open the door. There is an open door here. You open the door. There is an open door here. A deep elf pyromancer comes into view. It is wielding a +0 long sword. Unknown command. A deep elf pyromancer is nearby! A deep elf knight and a deep elf zephyrmancer come into view. Found a potion of curing. The deep elf knight shouts! The deep elf pyromancer shouts! A deep elf death mage comes into view. It is wielding a +0 dagger. The deep elf knight wields a +0 shortbow. The deep elf knight shoots an arrow. You block the arrow. A deep elf knight comes into view. It is wielding a +0 short sword. The deep elf knight shouts! The deep elf death mage shouts! Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f - deep elf pyromancer Aim: a deep elf pyromancer, wielding a +0 long sword and wearing a +0 ring mail (empty space bonus: 7/8) The air twists around and strikes the deep elf pyromancer!! The deep elf pyromancer is heavily wounded. Your shadow gestures wildly while chanting. The deep elf knight shoots an arrow. The arrow hits you! Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f/p - deep elf pyromancer Aim: a deep elf pyromancer, wielding a +0 long sword and wearing a +0 ring mail (heavily wounded, ally target, empty space bonus: 6/8) The air twists around and strikes the deep elf pyromancer!! You kill the deep elf pyromancer! A +4 heavy war axe comes into view. A deep elf knight comes into view. It is wielding a +0 scimitar. Unknown command. Your shadow disappears in a puff of smoke! The deep elf zephyrmancer casts a spell. The deep elf zephyrmancer blinks! Found a stone staircase leading down. There are monsters nearby! Unknown command. Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Electricity surges outward! The deep elf death mage is struck by an electric surge! The deep elf death mage is moderately wounded. The deep elf knight is struck by an electric surge!!! The deep elf knight is almost dead. The deep elf knight is struck by an electric surge!!! The deep elf knight is almost dead. The deep elf death mage hits you but does no damage. The deep elf knight mumbles some strange words. The deep elf knight seems to speed up. The deep elf knight misses you. Unknown command. Casting: Arcjolt (mildly dangerous; 3% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Electricity surges outward! The deep elf death mage is struck by an electric surge! The deep elf death mage is heavily wounded. The deep elf knight is struck by an electric surge!!! You kill the deep elf knight! The deep elf knight is struck by an electric surge!! You kill the deep elf knight! The deep elf death mage casts a spell at you. The bolt of negative energy hits you! You feel drained. Unknown command. Casting: Arcjolt (mildly dangerous; 3% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Electricity surges outward! The deep elf death mage is struck by an electric surge!!! The deep elf death mage is almost dead. The deep elf knight is struck by an electric surge!! The deep elf knight is severely wounded. The deep elf death mage casts a spell at you. The bolt of negative energy hits you!!! You feel drained. The deep elf knight unwields a +0 shortbow. You block the deep elf knight's attack. Casting: Arcjolt (mildly dangerous; 3% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Electricity surges outward! The deep elf death mage is struck by an electric surge!! You kill the deep elf death mage! The deep elf knight is struck by an electric surge!! You kill the deep elf knight! The deep elf zephyrmancer is struck by an electric surge. The deep elf zephyrmancer is lightly wounded. The deep elf zephyrmancer points at you and mumbles some strange words. The bolt of lightning hits you! x2 Unknown command. You block the deep elf zephyrmancer's attack. Items here: )) [[ †. You whack the deep elf zephyrmancer! You headbutt the deep elf zephyrmancer. The deep elf zephyrmancer is heavily wounded. Your shadow hits the deep elf zephyrmancer with a demon whip!! You kill the deep elf zephyrmancer! Items here: )) [[ ††. Unknown command. You swap places. Your shadow disappears in a puff of smoke! A deep elf zephyrmancer comes into view. It is wielding a +0 dagger. The deep elf zephyrmancer shouts! The +4 heavy war axe barely misses you. The +4 heavy war axe barely misses you. The deep elf zephyrmancer gestures at you while chanting. The bolt of lightning hits you!! You hear a shout! You see here a potion of curing. Casting: Arcjolt (mildly dangerous; 3% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f - +4 heavy war axe Aim: a +4 heavy war axe (empty space bonus: 7/8) The air twists around and strikes the +4 heavy war axe!! The +4 heavy war axe is almost destroyed. Your shadow mumbles some strange words. The shadowy lightning hits the deep elf zephyrmancer! You block the +4 heavy war axe's attack. The deep elf zephyrmancer gestures at you while chanting. The bolt of lightning misses you. The bolt of lightning misses your shadow. Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f/p - +4 heavy war axe Aim: a +4 heavy war axe (almost destroyed, ally target, empty space bonus: 7/8) The air twists around and strikes the +4 heavy war axe!! The +4 heavy war axe falls from the air. Unknown command. Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f - deep elf zephyrmancer Aim: a deep elf zephyrmancer, wielding a +0 dagger (lightly wounded, ally target, empty space bonus: 8/8) The air twists around and strikes the deep elf zephyrmancer!!! You kill the deep elf zephyrmancer! Unknown command. You start resting. Your shadow disappears in a puff of smoke! A deep elf zephyrmancer comes into view. It is wielding a +0 rapier. Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f - deep elf zephyrmancer Aim: a deep elf zephyrmancer, wielding a +0 rapier (empty space bonus: 5/8) The air twists around and strikes the deep elf zephyrmancer!! The deep elf zephyrmancer is heavily wounded. Unknown command. Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f/p - deep elf zephyrmancer Aim: a deep elf zephyrmancer, wielding a +0 rapier (heavily wounded, empty space bonus: 6/8) The air twists around and strikes the deep elf zephyrmancer! The deep elf zephyrmancer is almost dead. The deep elf zephyrmancer casts a spell. The deep elf zephyrmancer blinks! Unknown command. You start resting. A deep elf zephyrmancer is nearby! Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f/p - deep elf zephyrmancer Aim: a deep elf zephyrmancer, wielding a +0 rapier (almost dead, empty space bonus: 5/8) The air twists around and strikes the deep elf zephyrmancer!! You kill the deep elf zephyrmancer! Unknown command. You start resting. HP restored. You start resting. Magic restored. n - 8 potions of curing (gained 1) You see here a +4 heavy war axe. You see here a +0 rapier. 2 deep elf knights come into view. The deep elf knight shouts! x2 The deep elf knight hits you! You hit the deep elf knight. The deep elf knight is lightly wounded. Your shadow hits the deep elf knight with a demon whip! Your +6 spectral demon whip eviscerates the deep elf knight. The deep elf knight closely misses your shadow. The deep elf knight misses you. You whack the deep elf knight! The deep elf knight is severely wounded. Your shadow hits the deep elf knight with a demon whip!! You kill the deep elf knight! The deep elf knight gestures at you while chanting. The shard of ice hits you. You partially resist. Your +6 spectral demon whip disappears. The deep elf knight points at you and mumbles some strange words. The shard of ice hits your shadow!!! Your shadow is destroyed! Things that are here: a +0 longbow; a +0 leather armour; an elf corpse Unknown command. The deep elf knight misses you. Unknown command. You whack the deep elf knight! You headbutt the deep elf knight, but do no damage. The deep elf knight is moderately wounded. Your +6 spectral demon whip eviscerates the deep elf knight! Unknown command. Unknown command. You barely miss the deep elf knight. You headbutt the deep elf knight, but do no damage. The deep elf knight is heavily wounded. Your +6 spectral demon whip completely misses the deep elf knight. You block the deep elf knight's attack. Unknown command. You hit the deep elf knight. Your headbutt misses the deep elf knight. The deep elf knight is severely wounded. Your +6 spectral demon whip eviscerates the deep elf knight! The deep elf knight hits you but does no damage. Unknown command. You whack the deep elf knight! You kill the deep elf knight! Your +6 spectral demon whip disappears. Unknown command. No target in view! Unknown command. HP restored. Things that are here: a +0 shortbow; a +0 chain mail; an elf corpse A deep elf archer comes into view. It is wielding a +2 vampiric short sword. Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f - deep elf archer Aim: a deep elf archer, wielding a +2 vampiric short sword and wearing a +0 leather armour (wandering, repelling missiles, hasn't noticed you, empty space bonus: 6/8) The air twists around and strikes the deep elf archer! The deep elf archer shouts! The deep elf archer is moderately wounded. Your shadow gestures wildly while chanting. The deep elf archer unwields a +2 vampiric short sword. The deep elf archer wields a +0 longbow. The deep elf archer shoots an arrow. The arrow hits you. The deep elf archer gestures at you while chanting. You resist with almost no effort. There is an open door here. The deep elf archer shoots an arrow. The arrow hits you. Unknown command. Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f/p - deep elf archer Aim: a deep elf archer, wielding a +0 longbow and wearing a +0 leather armour (moderately wounded, repelling missiles, empty space bonus: 6/8) The air twists around and strikes the deep elf archer. The deep elf archer is moderately wounded. The deep elf archer shoots an arrow. You block the arrow. Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f/p - deep elf archer Aim: a deep elf archer, wielding a +0 longbow and wearing a +0 leather armour (moderately wounded, repelling missiles, empty space bonus: 6/8) The air twists around and strikes the deep elf archer! The deep elf archer is heavily wounded. Your shadow mumbles some strange words. The shadowy lightning hits the deep elf archer!! The deep elf archer unwields a +0 longbow. The deep elf archer wields a +2 vampiric short sword. The deep elf archer misses your shadow. The deep elf archer closely misses your shadow. Your shadow disappears in a puff of smoke! The deep elf archer casts a spell. The deep elf archer blinks! The deep elf archer unwields a +2 vampiric short sword. The deep elf archer wields a +0 longbow. The deep elf archer shoots an arrow. The arrow hits you but does no damage. Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f/p - deep elf archer Aim: a deep elf archer, wielding a +0 longbow and wearing a +0 leather armour (almost dead, repelling missiles, empty space bonus: 6/8) The air twists around and strikes the deep elf archer! You kill the deep elf archer! Unknown command. Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f - you That would be overly suicidal. Okay, then. Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f - you That would be overly suicidal. Okay, then. You now have 2262 gold pieces (gained 38). Things that are here: a +0 longbow; a +2 vampiric short sword; a +0 leather armour There is an open door here. An earth elemental comes into view. An earth elemental is nearby! Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f - earth elemental Aim: an earth elemental (dormant, empty space bonus: 8/8) The air twists around and strikes the earth elemental! The earth elemental is heavily damaged. Unknown command. Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f/p - earth elemental Aim: an earth elemental (heavily damaged, empty space bonus: 6/8) The air twists around and strikes the earth elemental! The earth elemental is heavily damaged. Unknown command. An earth elemental is nearby! Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f/p - earth elemental Aim: an earth elemental (heavily damaged, empty space bonus: 6/8) The air twists around and strikes the earth elemental. The earth elemental is severely damaged. Your shadow gestures wildly while chanting. Unknown command. An earth elemental is nearby! Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f/p - earth elemental Aim: an earth elemental (severely damaged, ally target, empty space bonus: 7/8) The air twists around and strikes the earth elemental!! You destroy the earth elemental! Unknown command. Your shadow disappears in a puff of smoke! I - a wand of flame (72) (gained 5 charges) There is an open door here. Found a long sword. You now have 2292 gold pieces (gained 30). You see here a +0 long sword. An air elemental comes into view. The helpless air elemental fails to defend itself. You thrash the air elemental!! Your headbutt misses the air elemental. The air elemental is severely damaged. Your shadow hits the air elemental with a demon whip!! You destroy the air elemental! No target in view! No target in view! No target in view! Your shadow disappears in a puff of smoke! A deep elf zephyrmancer comes into view. It is wielding a +0 long sword. The deep elf zephyrmancer shouts! You thrash the deep elf zephyrmancer!! You headbutt the deep elf zephyrmancer! The deep elf zephyrmancer is almost dead. Your shadow hits the deep elf zephyrmancer with a demon whip. You kill the deep elf zephyrmancer! No target in view! No target in view! Things that are here: a +0 long sword; an elf corpse Your shadow disappears in a puff of smoke! You open the door. Found a leather armour. There is an open door here. You open the door. There is an open door here. You pick up a Compendium of Siegecraft and begin reading... You add the spells Brom's Barrelling Boulder, Hoarfrost Cannonade and Bombard to your library. A water elemental comes into view. A water elemental is nearby! You hit the water elemental. You headbutt the water elemental. The water elemental is moderately damaged. Your shadow hits the water elemental with a demon whip! Your +6 spectral demon whip eviscerates the water elemental! You hit the water elemental. Your headbutt misses the water elemental. The water elemental is almost destroyed. Your +6 spectral demon whip eviscerates the water elemental! You destroy the water elemental! No target in view! No target in view! Unknown command. Your +6 spectral demon whip disappears. Your shadow disappears in a puff of smoke! Found an escape hatch in the floor. There is an escape hatch in the floor here. o - 9 scrolls of teleportation (gained 1) A +7 glaive of venom comes into view. Found 17 gold pieces. A +7 glaive of venom is nearby! The +7 glaive of venom eviscerates you from afar!! You are poisoned. You feel very sick. The +7 glaive of venom misses you. You block the +7 glaive of venom's attack. You thrash the +7 glaive of venom!! You headbutt the +7 glaive of venom, but do no damage. The +7 glaive of venom is severely damaged. Your shadow barely misses the +7 glaive of venom. Your +6 spectral demon whip misses the +7 glaive of venom. You feel sick. You completely miss the +7 glaive of venom. Your headbutt misses the +7 glaive of venom. The +7 glaive of venom is severely damaged. Your +6 spectral demon whip barely misses the +7 glaive of venom. You feel sick. The +7 glaive of venom hits you!! Unknown command. You hit the +7 glaive of venom but do no damage. Your headbutt misses the +7 glaive of venom. The +7 glaive of venom is severely damaged. Your shadow hits the +7 glaive of venom with a demon whip! The +7 glaive of venom falls from the air. Unknown command. No target in view! No target in view! Unknown command. Your +6 spectral demon whip disappears. You feel sick. You feel sick. You feel sick. You feel sick. Your shadow disappears in a puff of smoke! You feel sick. You are no longer poisoned. You see here a +7 glaive of venom. You now have 2309 gold pieces (gained 17). A +1 dire flail of protection comes into view. A +1 dire flail of protection is nearby! You block the +1 dire flail of protection's attack. You barely miss the +1 dire flail of protection. You headbutt the +1 dire flail of protection! The +1 dire flail of protection is heavily damaged. Your shadow barely misses the +1 dire flail of protection. Your +6 spectral demon whip eviscerates the +1 dire flail of protection but does no damage. The +1 dire flail of protection hits you but does no damage. A +1 dire flail of protection is nearby! You miss the +1 dire flail of protection. You headbutt the +1 dire flail of protection, but do no damage. The +1 dire flail of protection is heavily damaged. Your +6 spectral demon whip eviscerates the +1 dire flail of protection. The +1 dire flail of protection eviscerates your +6 spectral demon whip! Your spectral weapon shares its damage with you! Unknown command. You hit the +1 dire flail of protection. Your headbutt misses the +1 dire flail of protection. The +1 dire flail of protection is severely damaged. Your shadow hits the +1 dire flail of protection with a demon whip!! The +1 dire flail of protection falls from the air. Unknown command. Your +6 spectral demon whip disappears. Your shadow disappears in a puff of smoke! You see here a +1 dire flail of protection. No target in view! A deep elf pyromancer comes into view. It is wielding a +1 dagger of protection. A deep elf pyromancer is nearby! A deep elf zephyrmancer comes into view. It is wielding a +0 short sword. Found a scroll of blinking. The deep elf pyromancer shouts! The deep elf pyromancer gestures wildly while chanting. The deep elf pyromancer blinks! The deep elf zephyrmancer shouts! You hear a shout! A deep elf pyromancer comes into view. It is wielding a +0 long sword. The deep elf pyromancer casts a spell at you. The pyre arrow hits you. You are covered in intense liquid fire! The deep elf pyromancer shouts! You hit the deep elf pyromancer. The deep elf pyromancer is lightly wounded. Your shadow misses the deep elf pyromancer. Your +6 spectral demon whip eviscerates the deep elf pyromancer but does no damage. The liquid fire burns you! You hear a shout! The deep elf pyromancer gestures wildly while chanting. The deep elf pyromancer blinks! The deep elf pyromancer mumbles some strange words. The deep elf pyromancer blinks! Unknown command. Unknown command. Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f - deep elf pyromancer Aim: a deep elf pyromancer, wielding a +0 long sword (empty space bonus: 6/8) The air twists around and strikes the deep elf pyromancer!!! The deep elf pyromancer is almost dead. Your +6 spectral demon whip disappears. The liquid fire burns you! Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f/p - deep elf pyromancer Aim: a deep elf pyromancer, wielding a +0 long sword (almost dead, empty space bonus: 5/8) The air twists around and strikes the deep elf pyromancer!! You kill the deep elf pyromancer! The liquid fire burns you! A deep elf knight comes into view. It is wielding a +0 short sword. Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f - deep elf pyromancer Aim: a deep elf pyromancer, wielding a +1 dagger of protection (lightly wounded, ally target, empty space bonus: 6/8) The air twists around and strikes the deep elf pyromancer! The deep elf pyromancer is moderately wounded. The liquid fire burns you! Your shadow disappears in a puff of smoke! You hit the deep elf pyromancer. The deep elf pyromancer is heavily wounded. Your shadow hits the deep elf pyromancer with a demon whip. Your +6 spectral demon whip eviscerates the deep elf pyromancer. The liquid fire burns you! Unknown command. You catch the helpless deep elf pyromancer completely off-guard! You whack the deep elf pyromancer! You headbutt the deep elf pyromancer, but do no damage. The deep elf pyromancer is almost dead. Your +6 spectral demon whip eviscerates the deep elf pyromancer! You kill the deep elf pyromancer! The liquid fire burns you! You whack the deep elf zephyrmancer! The deep elf zephyrmancer is moderately wounded. Your shadow hits the deep elf zephyrmancer with a demon whip!! Your +6 spectral demon whip misses the deep elf zephyrmancer. The liquid fire burns you! Unknown command. You miss the deep elf zephyrmancer. The deep elf zephyrmancer is severely wounded. Your +6 spectral demon whip barely misses the deep elf zephyrmancer. The liquid fire burns you! A deep elf archer comes into view. It is wielding a +0 short sword. The deep elf knight gestures wildly while chanting. The deep elf knight flickers and vanishes! Deactivating autopickup; reactivate with Ctrl-A. The deep elf zephyrmancer gestures at you while chanting. The bolt of lightning hits you!! The bolt of lightning hits you! You closely miss the deep elf zephyrmancer. You headbutt the deep elf zephyrmancer! The deep elf zephyrmancer is almost dead. Your +6 spectral demon whip closely misses the deep elf zephyrmancer. The liquid fire burns you! The deep elf archer unwields a +0 short sword. The deep elf archer wields a +0 shortbow. The deep elf archer shoots an arrow. The arrow hits your shadow! You block the deep elf zephyrmancer's attack. You whack the deep elf zephyrmancer! You kill the deep elf zephyrmancer! Your +6 spectral demon whip disappears. The liquid fire burns you! Unknown command. You shake off the liquid fire. You hear some strange, mumbled words. The deep elf archer shoots an arrow. The arrow closely misses your shadow. You block the arrow. You see here a +0 short sword. Unknown command. You swap places. The deep elf archer shoots an arrow. You block the arrow. Something hits you. Unknown command. You whack something! Your +6 spectral demon whip eviscerates something. Your shadow disappears in a puff of smoke! A deep elf pyromancer comes into view. It is wielding a +0 dagger. Something hits you! The deep elf archer shoots an arrow. You completely miss something. You headbutt something! Your +6 spectral demon whip eviscerates something!! Reactivating autopickup. You feel a bit more experienced. The deep elf pyromancer mumbles some strange words. Unknown command. Unknown command. Your +6 spectral demon whip disappears. The deep elf archer shoots an arrow. You block the arrow. The deep elf archer shoots an arrow. You block the arrow. Items here: ) [[ †. The deep elf archer shoots an arrow. The arrow hits you. Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f - deep elf pyromancer Aim: a deep elf pyromancer, wielding a +0 dagger and wearing a +0 ring mail (empty space bonus: 6/8) The air twists around and strikes the deep elf pyromancer! The deep elf pyromancer is moderately wounded. Your shadow gestures wildly while chanting. The shadowy lightning hits the fire elemental! The deep elf archer repels the shadowy lightning! Casting: Airstrike (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Airstrike (safe; 1% risk of failure) Press: ? - help, Dir - move target, f/p - deep elf pyromancer Aim: a deep elf pyromancer, wielding a +0 dagger and wearing a +0 ring mail (moderately wounded, empty space bonus: 6/8) The air twists around and strikes the deep elf pyromancer. The deep elf pyromancer is heavily wounded. Your shadow gestures wildly while chanting. The shadowy lightning hits the deep elf pyromancer!! You kill the deep elf pyromancer! The fire elemental disappears in a puff of smoke! x2 >>>>>>>>>>>>>>>>>>>>>> Version history: Game started: 0.32-a0-1582-g76dddd7891 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: 0, map_stat_gen: 0, type: 9, arena_suspended: 0 prev_cmd = CMD_FORCE_CAST_SPELL repeat_cmd = CMD_NO_CMD Player: {{{{{{{{{{{ Name: [mmoncure] Species: Oni Job: Air Elementalist HP: 194/230; mods: -1/0 MP: 34/62; mod: 0 Stats: 18 (18) 33 (33) 17 (17) Position: (12, 29), god: Dithmenos (19), 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 | 1 | 15 | 18 | 6157 | 405/729 Short Blades | X | 0 | 0 | 0 | 0 | 0/59 Long Blades | X | 0 | 0 | 0 | 0 | 0/59 Axes | X | 0 | 0 | 0 | 0 | 0/50 Maces & Flails | X | 0 | 0 | 14 | 5633 | 8/900 Polearms | X | 0 | 0 | 0 | 0 | 0/50 Staves | X | 0 | 0 | 0 | 0 | 0/50 Ranged Weapons | X | 0 | 0 | 0 | 0 | 0/84 Throwing | X | 0 | 0 | 0 | 0 | 0/50 Armour | X | 0 | 0 | 8 | 2348 | 208/535 Dodging | X | 1 | 15 | 6 | 1475 | 227/416 Stealth | X | 0 | 0 | 2 | 330 | 118/212 Shields | X | 1 | 14 | 11 | 4578 | 565/803 Unarmed Combat | X | 0 | 0 | 0 | 0 | 0/59 Spellcasting | X | 1 | 14 | 15 | 6261 | 775/820 Conjurations | X | 0 | 0 | 5 | 891 | 0/357 Hexes | X | 0 | 0 | 0 | 0 | 0/59 Summonings | X | 0 | 0 | 0 | 0 | 0/59 Necromancy | X | 0 | 0 | 0 | 0 | 0/59 Translocations | X | 0 | 0 | 0 | 0 | 0/59 Fire Magic | X | 0 | 0 | 0 | 0 | 0/59 Ice Magic | X | 0 | 0 | 0 | 0 | 0/59 Air Magic | X | 2 | 28 | 15 | 8298 | 539/1160 Earth Magic | X | 1 | 14 | 8 | 2567 | 427/535 Alchemy | X | 0 | 0 | 0 | 0 | 0/59 Invocations | X | 0 | 0 | 14 | 4543 | 566/636 Evocations | X | 0 | 0 | 0 | 0 | 0/70 Shapeshifting | X | 0 | 0 | 0 | 0 | 0/59 Spell bugs: Durations: Attributes: #12: 4149 #13: 1840 #23: 56706 #24: -11561639 #49: 4358 Mutations: horns: 2 (1 innate) fire resistance: 1 tough skin: 1 (innate) wild magic: 1 double potion healing: 1 (innate) drunken brawling: 1 (innate) Inventory bugs: Equipment: eq slot #0, inv slot #28: +6 spectral demon whip eq slot #1, inv slot #43: +2 cloak of preservation eq slot #2, inv slot #31: +3 hat of Pondering {ponderous, Will+ MP+10 Int+5} eq slot #5, inv slot #16: +2 kite shield of protection eq slot #6, inv slot #26: +5 moon troll leather armour {Spirit, Regen++ MP+5} eq slot #7, inv slot #6: ring "Afugh" {MP+7 AC+4 Int+4} eq slot #8, inv slot #40: ring of Moodiness {rPois rC+ Int+2 Dex+6} eq slot #9, inv slot #37: amulet of magic regeneration }}}}}}}}}}} Webtiles message buffer: Webtiles JSON stack: Screenshot: ***,***,**,*##.....#.. #....☼°.#*,* ##....... #.#.##○°**,* ##'#.#.. *.#.#○.○**,*####...### #,#.#○○##*,*#......... #.#..§.?,,,*###'##.... *,...)e#*****#...#.... ***#...# ****#...#.... ####.@.#######...####. #....)....#...#.....#. #...................#. #....)....#.....#...#. ####..)#######...##### ##...#######.......# *#.......####.......# *#.#.#.....#######...# *#.###..^....###....#.. clua stack: dlua stack: Lua persistent data: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>> Lua marker contents: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>