ASSERT(!in_bounds(you.pos()) || !cell_is_solid(you.pos()) || you.wizmode_teleported_into_rock) in 'movement.cc' at line 799 failed.

Version: Dungeon Crawl Stone Soup 0.33-a0-443-g8f22220ccd
Platform: unix
Bits: 64
Game mode: tutorial
Tiles: online

Seed: 14432937412565998390, deterministic pregen: 1
Command line: /usr/games/crawl-git-8f22220ccd -name COINTELPRO -rc /dgldir/rcfiles/crawl-git/COINTELPRO.rc -macro /dgldir/rcfiles/crawl-git/COINTELPRO.macro -morgue /dgldir/morgue/COINTELPRO/ -tutorial -webtiles-socket /crawl-master/webserver/sockets/COINTELPRO:2024-11-21.03:29:06.sock -await-connection

RC options:
restart_after_game = false


Crash caused by signal #6: Aborted

Obtained 28 stack frames.
/usr/games/crawl-git-8f22220ccd(_Z17write_stack_traceP8_IO_FILE+0x3f) [0x5636b7662b4f]: write_stack_trace(_IO_FILE*)
/usr/games/crawl-git-8f22220ccd(_Z13do_crash_dumpv+0x418) [0x5636b766cfe8]: do_crash_dump()
/usr/games/crawl-git-8f22220ccd(_Z20crash_signal_handleri+0x1fa) [0x5636b7662fda]: crash_signal_handler(int)
/lib/x86_64-linux-gnu/libc.so.6(+0x46210) [0x7f4784d4b210]: 
/lib/x86_64-linux-gnu/libpthread.so.0(raise+0xcb) [0x7f4784f0c24b]: 
/usr/games/crawl-git-8f22220ccd(+0x4c372d) [0x5636b766c72d]: 
/usr/games/crawl-git-8f22220ccd(+0x4c38e5) [0x5636b766c8e5]: 
/usr/games/crawl-git-8f22220ccd(_Z18move_player_action9coord_def+0x6d9) [0x5636b7a9e609]: move_player_action(coord_def)
/usr/games/crawl-git-8f22220ccd(_Z15process_command12command_typeS_+0xf55) [0x5636b7d87fa5]: process_command(command_type, command_type)
/usr/games/crawl-git-8f22220ccd(_ZN14TilesFramework23_handle_control_messageE11sockaddr_unNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0xb31) [0x5636b7d7a441]: TilesFramework::_handle_control_message(sockaddr_un, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)
/usr/games/crawl-git-8f22220ccd(_ZN14TilesFramework24_receive_control_messageEv+0x184) [0x5636b7d7aa04]: TilesFramework::_receive_control_message()
/usr/games/crawl-git-8f22220ccd(_ZN14TilesFramework11await_inputERjb+0x188) [0x5636b7d7aee8]: TilesFramework::await_input(unsigned int&, bool)
/usr/games/crawl-git-8f22220ccd(_Z8getch_ckv+0x1e5) [0x5636b7d7d765]: getch_ck()
/usr/games/crawl-git-8f22220ccd(_ZN2ui11pump_eventsEi+0xcc) [0x5636b7cd0c2c]: ui::pump_events(int)
/usr/games/crawl-git-8f22220ccd(_Z8show_mapR9level_posbb+0x8fc) [0x5636b7ce827c]: show_map(level_pos&, bool, bool)
/usr/games/crawl-git-8f22220ccd(_Z21describe_feature_wideRK9coord_defb+0x2306) [0x5636b76a43e6]: describe_feature_wide(coord_def const&, bool)
/usr/games/crawl-git-8f22220ccd(_Z20full_describe_squareRK9coord_defb+0x658) [0x5636b7703ee8]: full_describe_square(coord_def const&, bool)
/usr/games/crawl-git-8f22220ccd(_ZN14TilesFramework23_handle_control_messageE11sockaddr_unNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0xabc) [0x5636b7d7a3cc]: TilesFramework::_handle_control_message(sockaddr_un, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)
/usr/games/crawl-git-8f22220ccd(_ZN14TilesFramework24_receive_control_messageEv+0x184) [0x5636b7d7aa04]: TilesFramework::_receive_control_message()
/usr/games/crawl-git-8f22220ccd(_ZN14TilesFramework11await_inputERjb+0x188) [0x5636b7d7aee8]: TilesFramework::await_input(unsigned int&, bool)
/usr/games/crawl-git-8f22220ccd(_Z8getch_ckv+0x1e5) [0x5636b7d7d765]: getch_ck()
/usr/games/crawl-git-8f22220ccd(+0x77a7b6) [0x5636b79237b6]: 
/usr/games/crawl-git-8f22220ccd(_Z25getch_with_command_macrosv+0x180) [0x5636b79283b0]: getch_with_command_macros()
/usr/games/crawl-git-8f22220ccd(+0xbdb8a4) [0x5636b7d848a4]: 
/usr/games/crawl-git-8f22220ccd(+0xbdc345) [0x5636b7d85345]: 
/usr/games/crawl-git-8f22220ccd(main+0x1ab) [0x5636b75a90bb]: 
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7f4784d2c0b3]: 
/usr/games/crawl-git-8f22220ccd(_start+0x2e) [0x5636b75a9c8e]: 

Trying to run gdb.
GNU gdb (Ubuntu 9.1-0ubuntu1) 9.1
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
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:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

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".
0x00007f4784deac2a in __GI___wait4 (pid=1343815, stat_loc=stat_loc@entry=0x0, options=options@entry=0, usage=usage@entry=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:27
#0  0x00007f4784deac2a in __GI___wait4 (pid=1343815, stat_loc=stat_loc@entry=0x0, options=options@entry=0, usage=usage@entry=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:27
        resultvar = 18446744073709551104
        sc_ret = <optimized out>
#1  0x00007f4784deabeb in __GI___waitpid (pid=<optimized out>, stat_loc=stat_loc@entry=0x0, options=options@entry=0) at waitpid.c:38
No locals.
#2  0x00005636b76629b5 in call_gdb (file=file@entry=0x7f4784ef15c0 <_IO_2_1_stderr_>) at crash.cc:438
        gdb = <optimized out>
        attach_cmd = "attach 1343090\000\000\000\000\000"
#3  0x00005636b766d006 in do_crash_dump () at dbg-asrt.cc:692
        t = 1732160183
        dir = "/dgldir/morgue/COINTELPRO/"
        name = "/dgldir/morgue/COINTELPRO/crash-COINTELPRO-20241121-033623.txt", '\000' <repeats 117 times>
        signal_info = "Crash caused by signal #6: Aborted"
        cause_msg = "ASSERT(!in_bounds(you.pos()) || !cell_is_solid(you.pos()) || you.wizmode_teleported_into_rock) in 'movement.cc' at line 799 failed."
        file = 0x7f4784ef15c0 <_IO_2_1_stderr_>
#4  0x00005636b7662fda in crash_signal_handler (sig_num=6) at crash.cc:198
No locals.
#5  <signal handler called>
No locals.
#6  raise (sig=<optimized out>) at ../sysdeps/unix/sysv/linux/raise.c:50
        set = {__val = {0, 94793012845365, 140721998791008, 94793013310680, 799, 0, 0, 139945148899363, 206158430240, 140721998790960, 140721998790768, 10231133858510961664, 94793016300752, 139945152015401, 94793016300736, 140721998791008}}
        pid = <optimized out>
        tid = <optimized out>
        ret = <optimized out>
#7  0x00005636b766c72d in _BreakStrToDebugger (mesg=mesg@entry=0x7ffc64c00160 "ASSERT(!in_bounds(you.pos()) || !cell_is_solid(you.pos()) || you.wizmode_teleported_into_rock) in 'movement.cc' at line 799 failed.", assert=true) at dbg-asrt.cc:818
No locals.
#8  0x00005636b766c8e5 in AssertFailed (expr=expr@entry=0x5636b7e2b4d8 "!in_bounds(you.pos()) || !cell_is_solid(you.pos()) || you.wizmode_teleported_into_rock", file=file@entry=0x5636b7db9b35 "movement.cc", line=line@entry=799, text=text@entry=0x0) at dbg-asrt.cc:856
        mesg = "ASSERT(!in_bounds(you.pos()) || !cell_is_solid(you.pos()) || you.wizmode_teleported_into_rock) in 'movement.cc' at line 799 failed.\000\000\000\000\000&\326(\205G\177\000\000\000\000\000\000\000\000\000\000\370$I\205G\177\000\000x8K\272\066V\000\000^%I\205\r", '\000' <repeats 11 times>, "\020\004\300d\374\177\000\000x8K\272\066V", '\000' <repeats 42 times>...
        args = {{gp_offset = 0, fp_offset = 0, overflow_arg_area = 0x0, reg_save_area = 0x0}}
        fileName = <optimized out>
#9  0x00005636b7a9e609 in move_player_action (move=...) at movement.cc:799
        attacking = false
        moving = true
        swap = false
        initial_position = {x = 0, y = 0}
        rampaged = <optimized out>
        did_wu_jian_attack = <optimized out>
        targ = {x = -1160852736, y = 22070}
        walkverb = <error reading variable: Cannot create a lazy string with address 0x0, and a non-zero length.>
        targ_monst = <optimized out>
        targ_pass = <optimized out>
        try_to_swap = <optimized out>
        beholder = <optimized out>
        fmonger = <optimized out>
        mon_swap_dest = {x = -1160377968, y = 22070}
        running = <optimized out>
        dug = <optimized out>
#10 0x00005636b7d87fa5 in process_command (cmd=cmd@entry=CMD_MOVE_DOWN, prev_cmd=prev_cmd@entry=CMD_NO_CMD) at coord-def.h:33
No locals.
#11 0x00005636b7d7a441 in _handle_cell_click (force=<optimized out>, button=<optimized out>, gc=...) at tileweb.cc:400
        c = 2003
#12 TilesFramework::_handle_control_message (this=<optimized out>, addr=..., data=...) at tileweb.cc:532
        y = {node = 0x5636bae42690, static malformed = <optimized out>}
        button = {node = 0x5636bae426d0, static malformed = <optimized out>}
        force = {node = 0x0, static malformed = <optimized out>}
        gc = {x = 33, y = 42}
        x = <optimized out>
        obj = {node = 0x5636bac9e610, static malformed = <optimized out>}
        msg = {node = 0x5636bae42710, static malformed = <optimized out>}
        msgtype = "click_cell"
        c = 0
#13 0x00005636b7d7aa04 in TilesFramework::_receive_control_message (this=0x5636b8257580 <tiles>) at /usr/include/c++/9/bits/basic_string.h:940
        buf = "{\"x\":0,\"y\":1,\"button\":1,\"msg\":\"click_cell\"}\000\000\000\000\000P\027\300d\374\177\000\000p\027\300d\374\177\000\000\347[ٷ6V\000\000\370\030\300d\374\177\000\000\001\000\000\000\000\000\000\000\362\352ׄG\177\000\000\001\000\000\000\000\000\000\000\n\000\000\000\374\177\000\000\030\000\000\000\002\000\000\000\000|\004\226\tJ\374\215", '\000' <repeats 16 times>, "\260\027\300d\374\177\000\000\320\027\300d\374\177\000\000@\024\300d\374\177\000\000?\034\300d\374\177\000\000P\024\300d\374\177\000\000?\034\300d\002\000\000\000\240\030\357\204G\177\000\000h\r"...
        srcaddr = {sun_family = 1, sun_path = "/tmp/crawlo27iaenh.socket", '\000' <repeats 82 times>}
        srcaddr_len = 28
        len = <optimized out>
        data = "{\"x\":0,\"y\":1,\"button\":1,\"msg\":\"click_cell\"}"
#14 0x00005636b7d7aee8 in TilesFramework::await_input (this=0x5636b8257580 <tiles>, c=@0x7ffc64c022b0: 11, block=block@entry=true) at tileweb.cc:650
        result = <optimized out>
        fds = {fds_bits = {8, 0 <repeats 15 times>}}
        maxfd = <optimized out>
        __d = <optimized out>
        __d = <optimized out>
#15 0x00005636b7d7d765 in _get_key_from_curses () at libunix.cc:528
        c = 11
        c = <optimized out>
        c = <optimized out>
#16 getch_ck () at libunix.cc:616
        c = <optimized out>
#17 0x00005636b7cd0c2c in ui::pump_events (wait_event_timeout=wait_event_timeout@entry=2147483647) at ui.cc:3292
        macro_key = -1
        k = <optimized out>
#18 0x00005636b7ce827c in show_map (lpos=..., travel_mode=travel_mode@entry=true, allow_offlevel=allow_offlevel@entry=true) at viewmap.cc:939
        ui_cutoff_point = <optimized out>
        ui = {m_new_state = UI_VIEW_MAP, m_old_state = UI_NORMAL}
        cc = {cstate = false}
        le = {<level_excursion> = {original = {branch = BRANCH_DUNGEON, depth = 1}, ever_changed_levels = true, allow_unvisited = 86}, travel_mode = true}
        result = <optimized out>
        map_view = std::shared_ptr<UIMapView> (use count 2, weak count 1) = {get() = 0x5636ba2b85d0}
#19 0x00005636b76a43e6 in _do_feat_action (action=<optimized out>, pos=...) at describe.cc:3678
        dest = {id = {branch = BRANCH_DUNGEON, depth = 2}, pos = {x = 42, y = 32}}
#20 describe_feature_wide (pos=..., do_actions=do_actions@entry=true) at describe.cc:3847
        feats = std::vector of length 1, capacity 1 = {{title = "A stone staircase leading down.", body = "A staircase leading further down.\n\nWhile standing here, you can traverse the stone staircase with the <w>></w> key. You can view the location it leads to by examining it with <w>X</w> and pressing <w>"..., quote = "", tile = {tile = 2757, ymax = 32}}}
        extra_descs = std::vector of length 0, capacity 0
        scroller = std::shared_ptr<ui::Scroller> (use count 1, weak count 1) = {get() = 0x5636bad39820}
        vbox = std::shared_ptr<ui::Box> (empty) = {get() = 0x5636ba607170}
        actions = std::vector of length 2, capacity 2 = {CMD_GO_DOWNSTAIRS, CMD_MAP_NEXT_LEVEL}
        footer_text = {ops = std::vector of length 3, capacity 4 = {{type = FSOP_COLOUR, colour = 3, text = ""}, {type = FSOP_TEXT, colour = -1, text = ""}, {type = FSOP_TEXT, colour = -1, text = "(>)go down, or (])view destination."}}}
        popup = std::shared_ptr<ui::Popup> (empty) = {get() = <optimized out>}
        done = true
        action = CMD_MAP_NEXT_LEVEL
#21 0x00005636b7703ee8 in full_describe_square (c=..., cleanup=cleanup@entry=false) at directn.cc:2711
        list_mons = std::vector of length 0, capacity 0
        list_items = std::vector of length 0, capacity 0
        list_features = std::vector of length 1, capacity 1 = {{x = 33, y = 41}}
        quantity = <optimized out>
        action_taken = false
        mi = 0x0
        feat = DNGN_STONE_STAIRS_DOWN_I
        stash_items = <optimized out>
#22 0x00005636b7d7a3cc in _handle_cell_click (force=<optimized out>, button=<optimized out>, gc=...) at tileweb.cc:389
No locals.
#23 TilesFramework::_handle_control_message (this=0x5636b8257580 <tiles>, addr=..., data=...) at tileweb.cc:532
        y = {node = 0x5636bad4ad00, static malformed = <optimized out>}
        button = {node = 0x5636bad4ad40, static malformed = <optimized out>}
        force = {node = 0x0, static malformed = <optimized out>}
        gc = {x = 33, y = 41}
        x = <optimized out>
        obj = {node = 0x5636bad4ac80, static malformed = <optimized out>}
        msg = {node = 0x5636bad4ad80, static malformed = <optimized out>}
        msgtype = "click_cell"
        c = 0
#24 0x00005636b7d7aa04 in TilesFramework::_receive_control_message (this=0x5636b8257580 <tiles>) at /usr/include/c++/9/bits/basic_string.h:940
        buf = "{\"x\":0,\"y\":0,\"button\":3,\"msg\":\"click_cell\"}d\374\177\000\000\020/\300d\374\177\000\000\017\067\300d\374\177\000\000\360.\300d\374\177\000\000\017\067\300d\374\177\000\000p-\300d\374\177\062\070\000|\004\226\tJ\374\215\020/\300d\374\177\000\000\002\000\000\000\000\000\000\000\377\a\000\000\000\000\000\000p-\300d\374\177\000\000\235Rٷ6V\000\000\370.\300d\374\177\000\000\020/\300d\374\177\000\000\032AلG\177\000\000\200/\300d\374\177\000\000\177\067\300d\374\177\000\000\001\200\255\373\374\177\000\000\177\067\300d\000\000\000\000\240\030\357\204G\177\000\000h\r"...
        srcaddr = {sun_family = 1, sun_path = "/tmp/crawlo27iaenh.socket", '\000' <repeats 82 times>}
        srcaddr_len = 28
        len = <optimized out>
        data = "{\"x\":0,\"y\":0,\"button\":3,\"msg\":\"click_cell\"}"
#25 0x00005636b7d7aee8 in TilesFramework::await_input (this=0x5636b8257580 <tiles>, c=@0x7ffc64c03df0: 1690320800, block=block@entry=true) at tileweb.cc:650
        result = <optimized out>
        fds = {fds_bits = {8, 0 <repeats 15 times>}}
        maxfd = <optimized out>
        __d = <optimized out>
        __d = <optimized out>
#26 0x00005636b7d7d765 in _get_key_from_curses () at libunix.cc:528
        c = 1690320800
        c = <optimized out>
        c = <optimized out>
#27 getch_ck () at libunix.cc:616
        c = <optimized out>
#28 0x00005636b79237b6 in _getch_mul () at macro.cc:841
        keys = std::deque with 0 elements
        a = 22016
#29 0x00005636b79283b0 in getch_with_command_macros () at macro.cc:900
        keys = std::deque with 0 elements
#30 0x00005636b7d848a4 in _get_next_keycode () at main.cc:2753
        keyin = <optimized out>
        mc = {m_previous_mode = MOUSE_MODE_NORMAL, static ms_current_mode = MOUSE_MODE_COMMAND}
        keyin = <optimized out>
        mc = <optimized out>
#31 _get_next_cmd () at main.cc:2707
        keyin = <optimized out>
        keyin = <optimized out>
#32 _input () at main.cc:1234
        cmd = <optimized out>
        real_prev_cmd = <optimized out>
        player_disabled = {was_disabled = false}
#33 0x00005636b7d85345 in _launch_game () at main.cc:492
        game_start = <optimized out>
        ccon = {cstate = false}
#34 0x00005636b75a90bb in _launch_game_loop () at main.cc:391
        game_ended = false
        game_ended = <optimized out>
        ge = <optimized out>
        fe = <optimized out>
        E = <optimized out>
#35 main (argc=<optimized out>, argv=0x7ffc64c04518) at main.cc:341
        echo = {prev_state = {value = maybe_bool::mbool_t::maybe, static maybe = {value = maybe_bool::mbool_t::maybe, static maybe = <same as static member of an already seen type>, static t = {value = maybe_bool::mbool_t::t, static maybe = <same as static member of an already seen type>, static t = <same as static member of an already seen type>, static f = {value = maybe_bool::mbool_t::f, static maybe = <same as static member of an already seen type>, static t = <same as static member of an already seen type>, static f = <same as static member of an already seen type>}}, static f = <same as static member of an already seen type>}, static t = <same as static member of an already seen type>, static f = <same as static member of an already seen type>}}
[Inferior 1 (process 1343090) detached]

Compilation info:
<<<<<<<<<<<
Compiled with GCC 9.4.0
Build platform: x86_64-linux-gnu
Platform: x86_64-linux-gnu
CFLAGS: -O2 -pipe -DUSE_TILE -DUSE_TILE_WEB -Wall -Wformat-security -Wundef -Wextra -Wno-missing-field-initializers -Wno-implicit-fallthrough -Wno-type-limits -Wno-uninitialized -Wno-array-bounds -Wno-format-zero-length -Wmissing-declarations -Wredundant-decls -Wno-parentheses -Wwrite-strings -Wshadow -pedantic -Wuninitialized -Iutil -I. -isystem /usr/include/lua5.1 -g -DWIZARD -DASSERTS -DREGEX_PCRE -DCLUA_BINDINGS -DDGAMELAUNCH -DSAVE_DIR_PATH="/crawl-master/crawl-git-8f22220ccd/saves" -DSHARED_DIR_PATH="/crawl-master/crawl-git/saves" -DDATA_DIR_PATH="/crawl-master/crawl-git-8f22220ccd/data/" -DWEB_DIR_PATH="/crawl-master/crawl-git-8f22220ccd/data/web/" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600
LDFLAGS: -rdynamic -fuse-ld=gold -O2 
>>>>>>>>>>>

Place info:
branch = 0, depth = 2

Level id: D:2
Level build method = random_map_for_place, level layout type  = encompass, absdepth0 = 1
Level vaults:
    tutorial_lesson2_level2

Markers:
<<<<<<<<<<<<<<<<<<<<<<
>>>>>>>>>>>>>>>>>>>>>>

Messages:
<<<<<<<<<<<<<<<<<<<<<<
This lesson will teach you about monsters and fighting. First, we need a
weapon! Go and grab the one lying over there.
You can reread all messages at any time with [Ctrl-P]. Also, press [Space] to
clear the --more-- prompts.
Found a quarterstaff.
Found a staircase leading out of the dungeon.
Pick up this weapon with [,] or [g] and then wield it with [e].
You see here a +0 quarterstaff.
There is a staircase leading out of the dungeon here.
There are no items here.
There are no items here.
There are no items here.
There are no items here.
Pick up this weapon with [,] or [g] and then wield it with [e].
You see here a +0 quarterstaff.
b - a +0 quarterstaff
There is a staircase leading out of the dungeon here.
Pick up this weapon with [,] or [g] and then wield it with [e].
As you open the door, it creaks loudly!
To attack a monster with your bare hands or wielded weapon, simply walk into
it.
There is an open door here.
The training dummy hits you with a +0 whip.
You hit the training dummy but do no damage.
The training dummy barely misses you.
You hit the training dummy.
The training dummy is heavily damaged.
The training dummy completely misses you.
You hit the training dummy.
The training dummy is severely damaged.
You hit the training dummy.
The training dummy is almost destroyed.
The training dummy hits you with a +0 whip.
You hit the training dummy.
The training dummy is almost destroyed.
The training dummy hits you with a +0 whip.
You hit the training dummy.
You destroy the training dummy!
You see here a +0 whip.
Very good! You can heal by resting with [5]. This will make you rest until your
health is full, but will be interrupted by important events.
You open the door.
A rat comes into view.
There is an open door here.
You hit the rat but do no damage. The rat barely misses you.
You hit the rat.
The rat is severely wounded.
The rat bites you.
You hit the rat but do no damage.
The rat is severely wounded.
The rat bites you but does no damage.
You barely miss the rat.
The rat is severely wounded.
The rat misses you.
You hit the rat but do no damage.
The rat is severely wounded.
The rat bites you.
You hit the rat.
You kill the rat!
You see here a rat corpse.
You open the door.
3 rats come into view.
The rat squeaks loudly. x3
Rather than storm the room and get swarmed by monsters, you can also step back
and wait (with [.]) for them to come to you.
The rat twitches its whiskers.
There is an open door here.
You see here a rat corpse.
There is an open door here.
Very good! You can heal by resting with [5]. This will make you rest until your
health is full, but will be interrupted by important events.
You see here a +0 whip.
c - a +0 whip
There are no items here.
There are no items here.
There are no items here.
The rat twitches its whiskers.
To attack a monster with your bare hands or wielded weapon, simply walk into
it.
There is an open door here.
To attack a monster with your bare hands or wielded weapon, simply walk into
it.
The rat bites you but does no damage.
There is an open door here.
Pick up this weapon with [,] or [g] and then wield it with [e].
b - a +0 quarterstaff (weapon)
The rat bites you but does no damage.
You hit the rat.
The rat is severely wounded.
The rat bites you but does no damage.
You sock the rat!
You kill the rat!
You sock the rat!
You kill the rat!
The rat bites you.
You hit the rat.
You kill the rat!
You see here a rat corpse.
To attack a monster with your bare hands or wielded weapon, simply walk into
it.
There is an open door here.
Very good! You can heal by resting with [5]. This will make you rest until your
health is full, but will be interrupted by important events.
There is an open door here.
You see here a rat corpse.
Rather than storm the room and get swarmed by monsters, you can also step back
and wait (with [.]) for them to come to you.
There is an open door here.
Examine these monsters (by pressing [x] to enter examine mode, and then [+] to
cycle through nearby monsters) and compare their descriptions (by pressing [v]
while selecting them in examine mode) to find out which of these cages is safer
to fight through.
The wyvern hisses angrily.
Found a stone staircase leading down.
The giant cockroach waves its antennae.
You open the door.
You sock the giant cockroach!
You kill the giant cockroach!
There is an open door here.
As you open the door, it creaks loudly!
There is an open door here.
Remember, you can rest up with [5].
You start waiting.
Done waiting.
Well done! After resting to full health continue to the next level with [>].
There is a stone staircase leading down here.
You climb downwards.
Remember: You can reread old messages with [Ctrl-P].
Found 10 boomerangs.
There is a stone staircase leading up here.
You can't go down here!
You climb upwards.
Well done! After resting to full health continue to the next level with [>].
There is a stone staircase leading down here.
Well done! After resting to full health continue to the next level with [>].
There is a stone staircase leading down here.
Well done! After resting to full health continue to the next level with [>].
There is a stone staircase leading down here.

>>>>>>>>>>>>>>>>>>>>>>

Version history:
Game started: 0.33-a0-443-g8f22220ccd

Game state:

mouse_enabled: 0, waiting_for_command: 1, terminal_resized: 0
io_inited: 1, need_save: 1, saving_game: 0, updating_scores: 0:
seen_hups: 1, map_stat_gen: 0, type: 2, arena_suspended: 0

prev_cmd = CMD_SWAP_QUIVER_RECENT
repeat_cmd = CMD_NO_CMD

Player:
{{{{{{{{{{{
Name:    [COINTELPRO]
Species: Human
Job:     Fighter

HP: 18/18; mods: 0/0
MP: 3/3; mod: 2
Stats: 16 (16) 8 (8) 12 (12)
Position: (33, 41), god: No God (0), turn_is_over: 0, banished: 0
Standing on/in/over feature: rock wall

Skills (mode: auto)
Name            | can_currently_train | train | training | level | points | progress
Fighting        |          X          |   1   |    37    |    3  |    324 | 24/200
Short Blades    |          X          |   1   |     0    |    0  |      0 | 0/50
Long Blades     |          X          |   1   |     0    |    0  |      0 | 0/50
Axes            |          X          |   1   |     0    |    0  |      0 | 0/50
Maces & Flails  |          X          |   1   |     0    |    0  |      0 | 0/50
Polearms        |          X          |   1   |     0    |    0  |      0 | 0/50
Staves          |          X          |   1   |     9    |    0  |      0 | 0/50
Ranged Weapons  |          X          |   1   |     0    |    0  |      0 | 0/50
Throwing        |          X          |   1   |     0    |    0  |      0 | 0/50
Armour          |          X          |   1   |    35    |    3  |    343 | 43/200
Dodging         |          X          |   1   |     2    |    0  |      0 | 0/50
Stealth         |          X          |   1   |     1    |    0  |      0 | 0/42
Shields         |          X          |   1   |     0    |    0  |      0 | 0/50
Unarmed Combat  |          X          |   1   |    16    |    2  |    166 | 16/150
Spellcasting    |          X          |   1   |     0    |    0  |      0 | 0/59
Conjurations    |          X          |   1   |     0    |    0  |      0 | 0/50
Hexes           |          X          |   1   |     0    |    0  |      0 | 0/50
Summonings      |          X          |   1   |     0    |    0  |      0 | 0/50
Necromancy      |          X          |   1   |     0    |    0  |      0 | 0/50
Translocations  |          X          |   1   |     0    |    0  |      0 | 0/50
Forgecraft      |          X          |   1   |     0    |    0  |      0 | 0/50
Fire Magic      |          X          |   1   |     0    |    0  |      0 | 0/50
Ice Magic       |          X          |   1   |     0    |    0  |      0 | 0/50
Air Magic       |          X          |   1   |     0    |    0  |      0 | 0/50
Earth Magic     |          X          |   1   |     0    |    0  |      0 | 0/50
Alchemy         |          X          |   1   |     0    |    0  |      0 | 0/50
Invocations     |          X          |   1   |     0    |    0  |      0 | 0/42
Evocations      |          X          |   1   |     0    |    0  |      0 | 0/50
Shapeshifting   |          X          |   1   |     0    |    0  |      0 | 0/59

Spell bugs:

Durations:

Attributes:

Mutations:
    explore regen: 1 (innate)

Inventory bugs:

Equipment:
    eq slot #0, inv slot #1: +0 quarterstaff
    eq slot #6, inv slot #0: +0 robe

}}}}}}}}}}}

Webtiles message buffer: 
Webtiles JSON stack:

Screenshot:
      #.......###
      #########






@

clua stack:


dlua stack:


Lua persistent data:
<<<<<<<<<<<<<<<<<<<<<<
>>>>>>>>>>>>>>>>>>>>>>

Lua marker contents:
<<<<<<<<<<<<<<<<<<<<<<
Lua marker 0 at (21, 25):
{{{{
CLASS: FogMachine
pow_min: 10
spread_buildup_time: 1
listeners: 

spread_rate: -1
size_min: 2
size_max: 3
pow_max: 10
start_clouds: 1
dgn_trigs_by_type: 
    1: 
        1: 1

    32: 
        1: 2


triggerers: 
    1: 
        CLASS: DgnTriggerer
        countdown: 2
        type: turn
        buildup_turns: 0
        sub_type: countdown
        delay_min: 10
        method: dgn_event
        listener_only: false
        delay_max: 10

    2: 
        CLASS: DgnTriggerer
        type: entered_level
        listener_only: false
        method: dgn_event


size_buildup_time: 1
kill_cat: other
excl_rad: 1
size_buildup_amnt: 0
buildup_turns: 1
spread_buildup_amnt: 0
cloud_type: thin mist
props: 

walk_dist: 0
pow_rolls: 3}}}}
Lua marker 1 at (22, 33):
{{{{
CLASS: TriggerableFunction
triggerers: 
    1: 
        CLASS: DgnTriggerer
        method: dgn_event
        type: player_move


data: 
    onetime: false
    text: tutorial2 explore
    exit: false

listeners: 

repeated: true
dgn_trigs_by_type: 
    4: 
        1: 1


func: 
    CLASS: FunctionWrapper
    name: tutorial_messenger_db
    fn: [type function]

props: 
}}}}
Lua marker 2 at (27, 35):
{{{{
CLASS: TriggerableFunction
triggerers: 
    1: 
        CLASS: DgnTriggerer
        method: dgn_event
        type: player_move


data: 
    onetime: false
    text: tutorial2 resting_reminder
    exit: false

listeners: 

repeated: true
dgn_trigs_by_type: 
    4: 
        1: 1


func: 
    CLASS: FunctionWrapper
    name: tutorial_messenger_db
    fn: [type function]

props: 
}}}}
Lua marker 3 at (30, 29):
{{{{
CLASS: FogMachine
pow_min: 10
spread_buildup_time: 1
listeners: 

spread_rate: -1
size_min: 2
size_max: 3
pow_max: 10
start_clouds: 1
dgn_trigs_by_type: 
    1: 
        1: 1

    32: 
        1: 2


triggerers: 
    1: 
        CLASS: DgnTriggerer
        countdown: 2
        type: turn
        buildup_turns: 0
        sub_type: countdown
        delay_min: 10
        method: dgn_event
        listener_only: false
        delay_max: 10

    2: 
        CLASS: DgnTriggerer
        type: entered_level
        listener_only: false
        method: dgn_event


size_buildup_time: 1
kill_cat: other
excl_rad: 1
size_buildup_amnt: 0
buildup_turns: 1
spread_buildup_amnt: 0
cloud_type: thin mist
props: 

walk_dist: 0
pow_rolls: 3}}}}
Lua marker 4 at (31, 42):
{{{{
CLASS: TriggerableFunction
triggerers: 
    1: 
        CLASS: DgnTriggerer
        method: dgn_event
        type: player_move


data: 
    onetime: false
    text: tutorial2 firing
    exit: false

listeners: 

repeated: true
dgn_trigs_by_type: 
    4: 
        1: 1


func: 
    CLASS: FunctionWrapper
    name: tutorial_messenger_db
    fn: [type function]

props: 
}}}}
Lua marker 5 at (37, 20):
{{{{
CLASS: TriggerableFunction
triggerers: 
    1: 
        CLASS: DgnTriggerer
        method: dgn_event
        type: player_move


data: 
    onetime: false
    text: tutorial2 tutorial_end
    exit: false

listeners: 

repeated: true
dgn_trigs_by_type: 
    4: 
        1: 1


func: 
    CLASS: FunctionWrapper
    name: tutorial_messenger_db
    fn: [type function]

props: 
}}}}
Lua marker 6 at (37, 20):
{{{{
CLASS: OneWayStair
props: 
    dst: tutorial_lesson2
    onclimb: 
        CLASS: FunctionWrapper
        name: tutorial2.win
        fn: [type function]

    desc: exit from the tutorial
}}}}
Lua marker 7 at (39, 21):
{{{{
CLASS: TriggerableFunction
triggerers: 
    1: 
        CLASS: DgnTriggerer
        method: dgn_event
        type: player_move


data: 
    onetime: false
    text: tutorial2 tutorial_end
    exit: false

listeners: 

repeated: true
dgn_trigs_by_type: 
    4: 
        1: 1


func: 
    CLASS: FunctionWrapper
    name: tutorial_messenger_db
    fn: [type function]

props: 
}}}}
Lua marker 8 at (39, 21):
{{{{
CLASS: OneWayStair
props: 
    dst: tutorial_lesson2
    onclimb: 
        CLASS: FunctionWrapper
        name: tutorial2.win
        fn: [type function]

    desc: exit from the tutorial
}}}}
Lua marker 9 at (40, 48):
{{{{
CLASS: TriggerableFunction
triggerers: 
    1: 
        CLASS: DgnTriggerer
        method: dgn_event
        type: player_move


data: 
    onetime: false
    text: tutorial2 wield_bow
    exit: false

listeners: 

repeated: true
dgn_trigs_by_type: 
    4: 
        1: 1


func: 
    CLASS: FunctionWrapper
    name: tutorial_messenger_db
    fn: [type function]

props: 
}}}}
Lua marker 10 at (41, 22):
{{{{
CLASS: TriggerableFunction
triggerers: 
    1: 
        CLASS: DgnTriggerer
        method: dgn_event
        type: player_move


data: 
    onetime: false
    text: tutorial2 tutorial_end
    exit: false

listeners: 

repeated: true
dgn_trigs_by_type: 
    4: 
        1: 1


func: 
    CLASS: FunctionWrapper
    name: tutorial_messenger_db
    fn: [type function]

props: 
}}}}
Lua marker 11 at (41, 22):
{{{{
CLASS: OneWayStair
props: 
    dst: tutorial_lesson2
    onclimb: 
        CLASS: FunctionWrapper
        name: tutorial2.win
        fn: [type function]

    desc: exit from the tutorial
}}}}
Lua marker 12 at (44, 32):
{{{{
CLASS: TriggerableFunction
triggerers: 
    1: 
        CLASS: DgnTriggerer
        method: dgn_event
        type: player_move


data: 
    onetime: false
    text: tutorial2 boomerangs
    exit: false

listeners: 

repeated: true
dgn_trigs_by_type: 
    4: 
        1: 1


func: 
    CLASS: FunctionWrapper
    name: tutorial_messenger_db
    fn: [type function]

props: 
}}}}
Lua marker 13 at (49, 32):
{{{{
CLASS: TriggerableFunction
triggerers: 
    1: 
        CLASS: DgnTriggerer
        method: dgn_event
        type: player_move


data: 
    onetime: false
    text: tutorial2 throwing
    exit: false

listeners: 

repeated: true
dgn_trigs_by_type: 
    4: 
        1: 1


func: 
    CLASS: FunctionWrapper
    name: tutorial_messenger_db
    fn: [type function]

props: 
}}}}
Lua marker 14 at (50, 43):
{{{{
CLASS: TriggerableFunction
triggerers: 
    1: 
        CLASS: DgnTriggerer
        method: dgn_event
        type: player_move


data: 
    onetime: false
    text: tutorial2 resting_reminder
    exit: false

listeners: 

repeated: true
dgn_trigs_by_type: 
    4: 
        1: 1


func: 
    CLASS: FunctionWrapper
    name: tutorial_messenger_db
    fn: [type function]

props: 
}}}}
Lua marker 15 at (50, 46):
{{{{
CLASS: TriggerableFunction
triggerers: 
    1: 
        CLASS: DgnTriggerer
        method: dgn_event
        type: player_move


data: 
    onetime: false
    text: tutorial2 travel_reminder
    exit: false

listeners: 

repeated: true
dgn_trigs_by_type: 
    4: 
        1: 1


func: 
    CLASS: FunctionWrapper
    name: tutorial_messenger_db
    fn: [type function]

props: 
}}}}
>>>>>>>>>>>>>>>>>>>>>>