ASSERT(is_weapon_brand_ok(item.sub_type, rc, true)) in 'makeitem.cc' at line 299 failed. Version: Dungeon Crawl Chili 1.0-a0-316-g3af901601f Platform: unix Bits: 64 Game mode: normal Tiles: online Seed: 7887434782741574041, deterministic pregen: 1 Version history: Game started: 1.0-a0-310-gda0cea5cd2 1.0-a0-312-gf5a5840f31 1.0-a0-313-gf14ee62d7b 1.0-a0-316-g3af901601f Command line: /usr/games/crawl-dcchili -name RoGGa -rc /dgldir/rcfiles/crawl-dcchili/RoGGa.rc -macro /dgldir/rcfiles/crawl-dcchili/RoGGa.macro -morgue /dgldir/morgue/RoGGa/ -webtiles-socket /crawl-master/webserver/sockets/RoGGa:2026-07-26.23:31:09.sock -await-connection RC options: restart_after_game = false Crash caused by signal #6: Aborted Obtained 31 stack frames. /usr/games/crawl-dcchili(_Z17write_stack_traceP8_IO_FILE+0x3f) [0x591b93719f7f]: write_stack_trace(_IO_FILE*) /usr/games/crawl-dcchili(_Z13do_crash_dumpv+0x43a) [0x591b937281fa]: do_crash_dump() /usr/games/crawl-dcchili(_Z20crash_signal_handleri+0x1fa) [0x591b9371a47a]: crash_signal_handler(int) /lib/x86_64-linux-gnu/libc.so.6(+0x45330) [0x77d223bf9330]: /lib/x86_64-linux-gnu/libc.so.6(pthread_kill+0x11c) [0x77d223c52b2c]: /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x1e) [0x77d223bf927e]: /usr/games/crawl-dcchili(+0x51b5cd) [0x591b937275cd]: /usr/games/crawl-dcchili(_Z12AssertFailedPKcS0_iS0_z+0x1c7) [0x591b93727ad7]: AssertFailed(char const*, char const*, int, char const*, ...) /usr/games/crawl-dcchili(+0x80a72a) [0x591b93a1672a]: /usr/games/crawl-dcchili(_Z5itemsb17object_class_typeiiiibNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK14CrawlHashTableP7monster+0x1b22) [0x591b93a1a172]: items(bool, object_class_type, int, int, int, int, bool, std::__cxx11::basic_string, std::allocator >, CrawlHashTable const*, monster*) /usr/games/crawl-dcchili(_Z16make_mons_weapon12monster_typeib+0x19a4) [0x591b93b1dc84]: make_mons_weapon(monster_type, int, bool) /usr/games/crawl-dcchili(+0x91dddc) [0x591b93b29ddc]: /usr/games/crawl-dcchili(_Z9give_itemP7monsterib+0x27d) [0x591b93b2afed]: give_item(monster*, int, bool) /usr/games/crawl-dcchili(+0x940fea) [0x591b93b4cfea]: /usr/games/crawl-dcchili(_Z13place_monster9mgen_databb+0x5ce) [0x591b93b4f50e]: place_monster(mgen_data, bool, bool) /usr/games/crawl-dcchili(+0x5d8650) [0x591b937e4650]: /usr/games/crawl-dcchili(+0x5ef5ee) [0x591b937fb5ee]: /usr/games/crawl-dcchili(_Z7builderb+0x2ba) [0x591b937fe39a]: builder(bool) /usr/games/crawl-dcchili(_Z14generate_levelRK8level_id+0x4d7) [0x591b93837307]: generate_level(level_id const&) /usr/games/crawl-dcchili(_Z14pregen_dungeonRK8level_id+0x427) [0x591b93838047]: pregen_dungeon(level_id const&) /usr/games/crawl-dcchili(_Z10load_level20dungeon_feature_type14load_mode_typeRK8level_id+0x34d) [0x591b93838b6d]: load_level(dungeon_feature_type, load_mode_type, level_id const&) /usr/games/crawl-dcchili(_Z16floor_transition20dungeon_feature_typeS_8level_idbbbb+0xe1b) [0x591b93d7089b]: floor_transition(dungeon_feature_type, dungeon_feature_type, level_id, bool, bool, bool, bool) /usr/games/crawl-dcchili(_Z11take_stairs20dungeon_feature_typebbb+0xb9) [0x591b93d72679]: take_stairs(dungeon_feature_type, bool, bool, bool) /usr/games/crawl-dcchili(_ZN5Delay6handleEv+0x46) [0x591b937459b6]: Delay::handle() /usr/games/crawl-dcchili(_Z12handle_delayv+0x39) [0x591b93745439]: handle_delay() /usr/games/crawl-dcchili(+0xcf2816) [0x591b93efe816]: /usr/games/crawl-dcchili(+0xcf31ed) [0x591b93eff1ed]: /usr/games/crawl-dcchili(main+0x1f7) [0x591b9364b987]: /lib/x86_64-linux-gnu/libc.so.6(+0x2a1ca) [0x77d223bde1ca]: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x8b) [0x77d223bde28b]: /usr/games/crawl-dcchili(_start+0x25) [0x591b9364c475]: Trying to run gdb. GNU gdb (Ubuntu 15.1-1ubuntu1~24.04.1) 15.1 Copyright (C) 2024 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". 0x000077d223cc47d7 in wait4 () from /lib/x86_64-linux-gnu/libc.so.6 #0 0x000077d223cc47d7 in wait4 () from /lib/x86_64-linux-gnu/libc.so.6 No symbol table info available. #1 0x0000591b9371a64c in call_gdb (file=0x77d223db84e0 <_IO_2_1_stderr_>) at crash.cc:434 gdb = attach_cmd = "attach 7419\000\000\000\000\000\000\000\000" #2 0x0000591b93728218 in do_crash_dump () at dbg-asrt.cc:682 t = 1785108732 dir = "/dgldir/morgue/RoGGa/" name = "/dgldir/morgue/RoGGa/crash-RoGGa-20260726-233212.txt", '\000' signal_info = "Crash caused by signal #6: Aborted" cause_msg = "ASSERT(is_weapon_brand_ok(item.sub_type, rc, true)) in 'makeitem.cc' at line 299 failed." file = 0x77d223db84e0 <_IO_2_1_stderr_> #3 0x0000591b9371a47a in crash_signal_handler (sig_num=6) at crash.cc:195 No locals. #4 No symbol table info available. #5 0x000077d223c52b2c in pthread_kill () from /lib/x86_64-linux-gnu/libc.so.6 No symbol table info available. #6 0x000077d223bf927e in raise () from /lib/x86_64-linux-gnu/libc.so.6 No symbol table info available. #7 0x0000591b937275cd in _BreakStrToDebugger (mesg=mesg@entry=0x7ffe02da2100 "ASSERT(is_weapon_brand_ok(item.sub_type, rc, true)) in 'makeitem.cc' at line 299 failed.", assert=true) at dbg-asrt.cc:820 No locals. #8 0x0000591b93727ad7 in AssertFailed (expr=expr@entry=0x591b93fd6920 "is_weapon_brand_ok(item.sub_type, rc, true)", file=file@entry=0x591b93f55f1f "makeitem.cc", line=line@entry=299, text=text@entry=0x0) at dbg-asrt.cc:861 mesg = "ASSERT(is_weapon_brand_ok(item.sub_type, rc, true)) in 'makeitem.cc' at line 299 failed.\000-\332\002\376\177\000\000\270,\332\002\376\177\000\000\210*\332\002\376\177\000\000\350)\332\002\376\177\000\000\230)\332\002\376\177\000\000H)\332\002\376\177\000\000\250(\332\002\376\177\000\000(&\332\002\376\177\000\000\210W\332\002\376\177\000\000p3\332\002\376\177\000\000\220T\332\002\376\177\000\00002\332\002\376\177\000\000\3600\332\002\376\177\000\000\0000\332\002\376\177\000\000"... args = {{gp_offset = 47854368, fp_offset = 32766, overflow_arg_area = 0x7ffe02da32d0, reg_save_area = 0x7ffe02da3280}} fileName = #9 0x0000591b93a1672a in determine_weapon_brand (item=..., item_level=item_level@entry=8) at makeitem.cc:299 wpn_type = WPN_WHIP tries = rc = #10 0x0000591b93a1a172 in determine_weapon_brand (item_level=8, item=...) at makeitem.cc:289 wpn_type = tries = rc = count = #11 _generate_weapon_item (mons=0x0, acquirement=false, agent=, item_level=8, force_type=, allow_uniques=false, item=...) at makeitem.cc:524 place = BRANCH_DUNGEON force_good = forced_ego = false no_brand = false place = force_good = forced_ego = no_brand = ego = i = #12 items (allow_uniques=allow_uniques@entry=false, force_class=force_class@entry=OBJ_WEAPONS, force_type=, force_type@entry=1, item_level=, force_ego=, agent=agent@entry=-1, acquirement=false, custom_name="", fixed_props=0x0, mons=0x0) at makeitem.cc:2140 item_rng = {current = {state_ = 11632038232966225767, inc_ = 15031659178517162383, count_ = 3}, previous = 0x7ffe02da32b0, previous_main = rng::SUB_GENERATOR} p = 45 item = @0x591b945028a8: {base_type = OBJ_WEAPONS, sub_type = 1 '\001', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, tithe_state = 0}, {plus2 = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 0 '\000', quantity = 1, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }} force_good = #13 0x0000591b93b1dc84 in make_mons_weapon (type=, level=, level@entry=8, melee_only=melee_only@entry=false) at mon-gear.cc:1507 item_rng = {current = {state_ = 6923597492267949818, inc_ = 11280952270288208855, count_ = 5}, previous = 0x7ffe02dab060, previous_main = rng::SUB_GENERATOR} GOBLIN_WEAPONS = std::vector of length 2, capacity 2 = {{first = WPN_DAGGER, second = 1}, {first = WPN_CLUB, second = 1}} GNOLL_WEAPONS = std::vector of length 5, capacity 5 = {{first = WPN_SPEAR, second = 8}, {first = WPN_HALBERD, second = 4}, {first = WPN_CLUB, second = 6}, {first = WPN_WHIP, second = 6}, {first = WPN_FLAIL, second = 6}} ORC_WEAPONS = std::vector of length 11, capacity 11 = {{first = WPN_CLUB, second = 100}, {first = WPN_DAGGER, second = 80}, {first = WPN_FLAIL, second = 60}, {first = WPN_SHORT_SWORD, second = 60}, {first = WPN_HAND_AXE, second = 80}, {first = WPN_WHIP, second = 45}, {first = WPN_MACE, second = 40}, {first = WPN_TRIDENT, second = 20}, {first = WPN_FALCHION, second = 20}, {first = WPN_WAR_AXE, second = 14}, {first = WPN_MORNINGSTAR, second = 6}} DE_KNIGHT_WEAPONS = std::vector of length 5, capacity 5 = {{first = WPN_LONG_SWORD, second = 22}, {first = WPN_SHORT_SWORD, second = 22}, {first = WPN_SCIMITAR, second = 17}, {first = WPN_SHORTBOW, second = 17}, {first = WPN_LONGBOW, second = 5}} DE_MAGE_WEAPONS = std::vector of length 4, capacity 4 = {{first = WPN_LONG_SWORD, second = 2}, {first = WPN_SHORT_SWORD, second = 1}, {first = WPN_RAPIER, second = 1}, {first = WPN_DAGGER, second = 1}} OCCULT_WEAPONS = std::vector of length 3, capacity 3 = {{first = WPN_DAGGER, second = 4}, {first = WPN_WHIP, second = 2}, {first = WPN_ATHAME, second = 1}} RITUAL_WEAPONS = std::vector of length 2, capacity 2 = {{first = WPN_DAGGER, second = 4}, {first = WPN_ATHAME, second = 1}} DRAC_MAGE_WEAPONS = std::vector of length 5, capacity 5 = {{first = WPN_LONG_SWORD, second = 2}, {first = WPN_SHORT_SWORD, second = 1}, {first = WPN_RAPIER, second = 1}, {first = WPN_DAGGER, second = 1}, {first = WPN_WHIP, second = 1}} NAGA_WEAPONS = std::vector of length 15, capacity 15 = {{first = WPN_LONG_SWORD, second = 10}, {first = WPN_SHORT_SWORD, second = 10}, {first = WPN_SCIMITAR, second = 10}, {first = WPN_BATTLEAXE, second = 10}, {first = WPN_HAND_AXE, second = 10}, {first = WPN_HALBERD, second = 10}, {first = WPN_GLAIVE, second = 10}, {first = WPN_MACE, second = 10}, {first = WPN_DIRE_FLAIL, second = 10}, {first = WPN_TRIDENT, second = 10}, {first = WPN_WAR_AXE, second = 9}, {first = WPN_FLAIL, second = 9}, {first = WPN_PARTISAN, second = 2}, {first = WPN_BROAD_AXE, second = 1}, {first = WPN_MORNINGSTAR, second = 1}} ORC_KNIGHT_WEAPONS = std::vector of length 11, capacity 11 = {{first = WPN_GREAT_SWORD, second = 8}, {first = WPN_LONG_SWORD, second = 8}, {first = WPN_BATTLEAXE, second = 8}, {first = WPN_WAR_AXE, second = 8}, {first = WPN_GREAT_MACE, second = 6}, {first = WPN_DIRE_FLAIL, second = 4}, {first = WPN_BARDICHE, second = 2}, {first = WPN_GLAIVE, second = 2}, {first = WPN_BROAD_AXE, second = 2}, {first = WPN_HALBERD, second = 2}, {first = WPN_PARTISAN, second = 1}} ORC_KNIGHT_WSPEC = {types = std::vector of length 11, capacity 11 = {{first = WPN_GREAT_SWORD, second = 8}, {first = WPN_LONG_SWORD, second = 8}, {first = WPN_BATTLEAXE, second = 8}, {first = WPN_WAR_AXE, second = 8}, {first = WPN_GREAT_MACE, second = 6}, {first = WPN_DIRE_FLAIL, second = 4}, {first = WPN_BARDICHE, second = 2}, {first = WPN_GLAIVE, second = 2}, {first = WPN_BROAD_AXE, second = 2}, {first = WPN_HALBERD, second = 2}, {first = WPN_PARTISAN, second = 1}}, plusses = {odds = 4, min = 1, max = 3, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0} ORC_WARLORD_WSPEC = {types = std::vector of length 11, capacity 11 = {{first = WPN_GREAT_SWORD, second = 8}, {first = WPN_LONG_SWORD, second = 8}, {first = WPN_BATTLEAXE, second = 8}, {first = WPN_WAR_AXE, second = 8}, {first = WPN_GREAT_MACE, second = 6}, {first = WPN_DIRE_FLAIL, second = 4}, {first = WPN_BARDICHE, second = 2}, {first = WPN_GLAIVE, second = 2}, {first = WPN_BROAD_AXE, second = 2}, {first = WPN_HALBERD, second = 2}, {first = WPN_PARTISAN, second = 1}}, plusses = {odds = 4, min = 1, max = 3, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 3} IRON_WEAPONS = std::vector of length 5, capacity 5 = {{first = WPN_GREAT_MACE, second = 3}, {first = WPN_DIRE_FLAIL, second = 2}, {first = WPN_FLAIL, second = 2}, {first = WPN_MORNINGSTAR, second = 2}, {first = WPN_MACE, second = 1}} OGRE_WEAPONS = std::vector of length 2, capacity 2 = {{first = WPN_GIANT_CLUB, second = 2}, {first = WPN_GIANT_SPIKED_CLUB, second = 1}} DOUBLE_OGRE_WEAPONS = std::vector of length 4, capacity 4 = {{first = WPN_GIANT_CLUB, second = 60}, {first = WPN_GIANT_SPIKED_CLUB, second = 30}, {first = WPN_DIRE_FLAIL, second = 9}, {first = WPN_GREAT_MACE, second = 1}} FAUN_WEAPONS = std::vector of length 3, capacity 3 = {{first = WPN_SPEAR, second = 2}, {first = WPN_CLUB, second = 1}, {first = WPN_QUARTERSTAFF, second = 1}} EFREET_WSPEC = {types = std::vector of length 1, capacity 1 = {{first = WPN_SCIMITAR, second = 1}}, plusses = {odds = 1, min = 0, max = 4, nrolls = 0}, brands = std::vector of length 1, capacity 1 = {{first = SPWPN_FLAMING, second = 1}}, good_chance = 0} DAEVA_WSPEC = {types = std::vector of length 3, capacity 3 = {{first = WPN_EUDEMON_BLADE, second = 1}, {first = WPN_SCIMITAR, second = 2}, {first = WPN_LONG_SWORD, second = 1}}, plusses = {odds = 1, min = 2, max = 5, nrolls = 0}, brands = std::vector of length 1, capacity 1 = {{first = SPWPN_HOLY_WRATH, second = 1}}, good_chance = 0} DE_VILE_MAGE_WEAPONS = {types = std::vector of length 4, capacity 4 = {{first = WPN_SCIMITAR, second = 2}, {first = WPN_FALCHION, second = 1}, {first = WPN_RAPIER, second = 1}, {first = WPN_ATHAME, second = 1}}, plusses = {odds = 1, min = 0, max = 4, nrolls = 0}, brands = std::vector of length 3, capacity 3 = {{first = SPWPN_FLAMING, second = 1}, {first = SPWPN_FREEZING, second = 1}, {first = NUM_SPECIAL_WEAPONS, second = 3}}, good_chance = 0} HELL_KNIGHT_BRANDS = std::vector of length 6, capacity 6 = {{first = SPWPN_FLAMING, second = 13}, {first = SPWPN_DRAINING, second = 4}, {first = SPWPN_HEAVY, second = 4}, {first = SPWPN_DISTORTION, second = 2}, {first = SPWPN_PAIN, second = 2}, {first = NUM_SPECIAL_WEAPONS, second = 20}} URUG_WEAPONS = std::vector of length 12, capacity 12 = {{first = WPN_HALBERD, second = 5}, {first = WPN_GLAIVE, second = 5}, {first = WPN_WAR_AXE, second = 6}, {first = WPN_GREAT_MACE, second = 6}, {first = WPN_BATTLEAXE, second = 7}, {first = WPN_LONG_SWORD, second = 8}, {first = WPN_SCIMITAR, second = 8}, {first = WPN_GREAT_SWORD, second = 8}, {first = WPN_BROAD_AXE, second = 9}, {first = WPN_DOUBLE_SWORD, second = 10}, {first = WPN_EVENINGSTAR, second = 13}, {first = WPN_PARTISAN, second = 15}} SP_DEFENDER_WEAPONS = std::vector of length 5, capacity 5 = {{first = WPN_LAJATANG, second = 1}, {first = WPN_QUICK_BLADE, second = 1}, {first = WPN_RAPIER, second = 1}, {first = WPN_DEMON_WHIP, second = 1}, {first = WPN_FLAIL, second = 1}} DS_WEAPONS = std::vector of length 7, capacity 7 = {{first = WPN_GREAT_SWORD, second = 3}, {first = WPN_DEMON_BLADE, second = 2}, {first = WPN_DIRE_FLAIL, second = 3}, {first = WPN_DEMON_WHIP, second = 2}, {first = WPN_GLAIVE, second = 3}, {first = WPN_DEMON_TRIDENT, second = 2}, {first = WPN_ATHAME, second = 3}} GARGOYLE_WEAPONS = std::vector of length 4, capacity 4 = {{first = WPN_MACE, second = 15}, {first = WPN_FLAIL, second = 10}, {first = WPN_MORNINGSTAR, second = 5}, {first = WPN_DIRE_FLAIL, second = 2}} primary_weapon_specs = std::map with 183 elements = {[MONS_DANCING_WEAPON] = {types = std::vector of length 15, capacity 15 = {{first = WPN_LONG_SWORD, second = 10}, {first = WPN_SHORT_SWORD, second = 10}, {first = WPN_SCIMITAR, second = 10}, {first = WPN_BATTLEAXE, second = 10}, {first = WPN_HAND_AXE, second = 10}, {first = WPN_HALBERD, second = 10}, {first = WPN_GLAIVE, second = 10}, {first = WPN_MACE, second = 10}, {first = WPN_DIRE_FLAIL, second = 10}, {first = WPN_TRIDENT, second = 10}, {first = WPN_WAR_AXE, second = 9}, {first = WPN_FLAIL, second = 9}, {first = WPN_PARTISAN, second = 2}, {first = WPN_BROAD_AXE, second = 1}, {first = WPN_MORNINGSTAR, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 1}, [MONS_GARGOYLE] = {types = std::vector of length 4, capacity 4 = {{first = WPN_MACE, second = 15}, {first = WPN_FLAIL, second = 10}, {first = WPN_MORNINGSTAR, second = 5}, {first = WPN_DIRE_FLAIL, second = 2}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_WAR_GARGOYLE] = {types = std::vector of length 5, capacity 5 = {{first = WPN_MORNINGSTAR, second = 10}, {first = WPN_FLAIL, second = 10}, {first = WPN_DIRE_FLAIL, second = 5}, {first = WPN_GREAT_MACE, second = 5}, {first = WPN_LAJATANG, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 4}, [MONS_MOLTEN_GARGOYLE] = {types = std::vector of length 4, capacity 4 = {{first = WPN_MACE, second = 15}, {first = WPN_FLAIL, second = 10}, {first = WPN_MORNINGSTAR, second = 5}, {first = WPN_DIRE_FLAIL, second = 2}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_GOBLIN] = {types = std::vector of length 2, capacity 2 = {{first = WPN_DAGGER, second = 1}, {first = WPN_CLUB, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_GNOLL] = {types = std::vector of length 5, capacity 5 = {{first = WPN_SPEAR, second = 8}, {first = WPN_HALBERD, second = 4}, {first = WPN_CLUB, second = 6}, {first = WPN_WHIP, second = 6}, {first = WPN_FLAIL, second = 6}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_GNOLL_BOUDA] = {types = std::vector of length 2, capacity 2 = {{first = WPN_CLUB, second = 1}, {first = WPN_WHIP, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_GNOLL_SERGEANT] = {types = std::vector of length 2, capacity 2 = {{first = WPN_SPEAR, second = 2}, {first = WPN_TRIDENT, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 3}, [MONS_KOBOLD_DEMONOLOGIST] = {types = std::vector of length 3, capacity 3 = {{first = WPN_DAGGER, second = 4}, {first = WPN_WHIP, second = 2}, {first = WPN_ATHAME, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_ORC] = {types = std::vector of length 11, capacity 11 = {{first = WPN_CLUB, second = 100}, {first = WPN_DAGGER, second = 80}, {first = WPN_FLAIL, second = 60}, {first = WPN_SHORT_SWORD, second = 60}, {first = WPN_HAND_AXE, second = 80}, {first = WPN_WHIP, second = 45}, {first = WPN_MACE, second = 40}, {first = WPN_TRIDENT, second = 20}, {first = WPN_FALCHION, second = 20}, {first = WPN_WAR_AXE, second = 14}, {first = WPN_MORNINGSTAR, second = 6}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_ORC_WARRIOR] = {types = std::vector of length 15, capacity 15 = {{first = WPN_LONG_SWORD, second = 10}, {first = WPN_SHORT_SWORD, second = 10}, {first = WPN_SCIMITAR, second = 10}, {first = WPN_BATTLEAXE, second = 10}, {first = WPN_HAND_AXE, second = 10}, {first = WPN_HALBERD, second = 10}, {first = WPN_GLAIVE, second = 10}, {first = WPN_MACE, second = 10}, {first = WPN_DIRE_FLAIL, second = 10}, {first = WPN_TRIDENT, second = 10}, {first = WPN_WAR_AXE, second = 9}, {first = WPN_FLAIL, second = 9}, {first = WPN_PARTISAN, second = 2}, {first = WPN_BROAD_AXE, second = 1}, {first = WPN_MORNINGSTAR, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_ORC_PRIEST] = {types = std::vector of length 11, capacity 11 = {{first = WPN_CLUB, second = 100}, {first = WPN_DAGGER, second = 80}, {first = WPN_FLAIL, second = 60}, {first = WPN_SHORT_SWORD, second = 60}, {first = WPN_HAND_AXE, second = 80}, {first = WPN_WHIP, second = 45}, {first = WPN_MACE, second = 40}, {first = WPN_TRIDENT, second = 20}, {first = WPN_FALCHION, second = 20}, {first = WPN_WAR_AXE, second = 14}, {first = WPN_MORNINGSTAR, second = 6}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_ORC_HIGH_PRIEST] = {types = std::vector of length 15, capacity 15 = {{first = WPN_LONG_SWORD, second = 10}, {first = WPN_SHORT_SWORD, second = 10}, {first = WPN_SCIMITAR, second = 10}, {first = WPN_BATTLEAXE, second = 10}, {first = WPN_HAND_AXE, second = 10}, {first = WPN_HALBERD, second = 10}, {first = WPN_GLAIVE, second = 10}, {first = WPN_MACE, second = 10}, {first = WPN_DIRE_FLAIL, second = 10}, {first = WPN_TRIDENT, second = 10}, {first = WPN_WAR_AXE, second = 9}, {first = WPN_FLAIL, second = 9}, {first = WPN_PARTISAN, second = 2}, {first = WPN_BROAD_AXE, second = 1}, {first = WPN_MORNINGSTAR, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_ORC_WIZARD] = {types = std::vector of length 1, capacity 1 = {{first = WPN_DAGGER, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_ORC_KNIGHT] = {types = std::vector of length 11, capacity 11 = {{first = WPN_GREAT_SWORD, second = 8}, {first = WPN_LONG_SWORD, second = 8}, {first = WPN_BATTLEAXE, second = 8}, {first = WPN_WAR_AXE, second = 8}, {first = WPN_GREAT_MACE, second = 6}, {first = WPN_DIRE_FLAIL, second = 4}, {first = WPN_BARDICHE, second = 2}, {first = WPN_GLAIVE, second = 2}, {first = WPN_BROAD_AXE, second = 2}, {first = WPN_HALBERD, second = 2}, {first = WPN_PARTISAN, second = 1}}, plusses = {odds = 4, min = 1, max = 3, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_ORC_SORCERER] = {types = std::vector of length 2, capacity 2 = {{first = WPN_DAGGER, second = 9}, {first = WPN_ATHAME, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_ORC_WARLORD] = {types = std::vector of length 11, capacity 11 = {{first = WPN_GREAT_SWORD, second = 8}, {first = WPN_LONG_SWORD, second = 8}, {first = WPN_BATTLEAXE, second = 8}, {first = WPN_WAR_AXE, second = 8}, {first = WPN_GREAT_MACE, second = 6}, {first = WPN_DIRE_FLAIL, second = 4}, {first = WPN_BARDICHE, second = 2}, {first = WPN_GLAIVE, second = 2}, {first = WPN_BROAD_AXE, second = 2}, {first = WPN_HALBERD, second = 2}, {first = WPN_PARTISAN, second = 1}}, plusses = {odds = 4, min = 1, max = 3, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 3}, [MONS_DEATH_KNIGHT] = {types = std::vector of length 6, capacity 6 = {{first = WPN_GREAT_MACE, second = 5}, {first = WPN_HALBERD, second = 6}, {first = WPN_GREAT_SWORD, second = 5}, {first = WPN_GLAIVE, second = 10}, {first = WPN_BROAD_AXE, second = 10}, {first = WPN_BATTLEAXE, second = 16}}, plusses = {odds = 2, min = 1, max = 4, nrolls = 0}, brands = std::vector of length 2, capacity 2 = {{first = SPWPN_DRAINING, second = 1}, {first = NUM_SPECIAL_WEAPONS, second = 1}}, good_chance = 0}, [MONS_DEEP_ELF_KNIGHT] = {types = std::vector of length 5, capacity 5 = {{first = WPN_LONG_SWORD, second = 22}, {first = WPN_SHORT_SWORD, second = 22}, {first = WPN_SCIMITAR, second = 17}, {first = WPN_SHORTBOW, second = 17}, {first = WPN_LONGBOW, second = 5}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_DEEP_ELF_PYROMANCER] = {types = std::vector of length 4, capacity 4 = {{first = WPN_LONG_SWORD, second = 2}, {first = WPN_SHORT_SWORD, second = 1}, {first = WPN_RAPIER, second = 1}, {first = WPN_DAGGER, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_DEEP_ELF_HIGH_PRIEST] = {types = std::vector of length 5, capacity 5 = {{first = WPN_LONG_SWORD, second = 22}, {first = WPN_SHORT_SWORD, second = 22}, {first = WPN_SCIMITAR, second = 17}, {first = WPN_SHORTBOW, second = 17}, {first = WPN_LONGBOW, second = 5}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_DEEP_ELF_DEMONOLOGIST] = {types = std::vector of length 4, capacity 4 = {{first = WPN_SCIMITAR, second = 2}, {first = WPN_FALCHION, second = 1}, {first = WPN_RAPIER, second = 1}, {first = WPN_ATHAME, second = 1}}, plusses = {odds = 1, min = 0, max = 4, nrolls = 0}, brands = std::vector of length 3, capacity 3 = {{first = SPWPN_FLAMING, second = 1}, {first = SPWPN_FREEZING, second = 1}, {first = NUM_SPECIAL_WEAPONS, second = 3}}, good_chance = 0}, [MONS_DEEP_ELF_ANNIHILATOR] = {types = std::vector of length 4, capacity 4 = {{first = WPN_LONG_SWORD, second = 2}, {first = WPN_SHORT_SWORD, second = 1}, {first = WPN_RAPIER, second = 1}, {first = WPN_DAGGER, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_DEEP_ELF_SORCERER] = {types = std::vector of length 4, capacity 4 = {{first = WPN_SCIMITAR, second = 2}, {first = WPN_FALCHION, second = 1}, {first = WPN_RAPIER, second = 1}, {first = WPN_ATHAME, second = 1}}, plusses = {odds = 1, min = 0, max = 4, nrolls = 0}, brands = std::vector of length 3, capacity 3 = {{first = SPWPN_FLAMING, second = 1}, {first = SPWPN_FREEZING, second = 1}, {first = NUM_SPECIAL_WEAPONS, second = 3}}, good_chance = 0}, [MONS_DEEP_ELF_DEATH_MAGE] = {types = std::vector of length 4, capacity 4 = {{first = WPN_SCIMITAR, second = 2}, {first = WPN_FALCHION, second = 1}, {first = WPN_RAPIER, second = 1}, {first = WPN_ATHAME, second = 1}}, plusses = {odds = 1, min = 0, max = 4, nrolls = 0}, brands = std::vector of length 3, capacity 3 = {{first = SPWPN_FLAMING, second = 1}, {first = SPWPN_FREEZING, second = 1}, {first = NUM_SPECIAL_WEAPONS, second = 3}}, good_chance = 0}, [MONS_DEEP_ELF_BLADEMASTER] = {types = std::vector of length 3, capacity 3 = {{first = WPN_RAPIER, second = 20}, {first = WPN_SHORT_SWORD, second = 5}, {first = WPN_QUICK_BLADE, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_DEEP_ELF_MASTER_ARCHER] = {types = std::vector of length 1, capacity 1 = {{first = WPN_LONGBOW, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_SPRIGGAN] = {types = std::vector of length 3, capacity 3 = {{first = WPN_DAGGER, second = 1}, {first = WPN_SHORT_SWORD, second = 1}, {first = WPN_RAPIER, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_SPRIGGAN_DRUID] = {types = std::vector of length 1, capacity 1 = {{first = WPN_QUARTERSTAFF, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 2, capacity 2 = {{first = SPWPN_SPECTRAL, second = 1}, {first = NUM_SPECIAL_WEAPONS, second = 5}}, good_chance = 0}, [MONS_SPRIGGAN_RIDER] = {types = std::vector of length 1, capacity 1 = {{first = WPN_SPEAR, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_SPRIGGAN_BERSERKER] = {types = std::vector of length 6, capacity 6 = {{first = WPN_QUARTERSTAFF, second = 10}, {first = WPN_HAND_AXE, second = 9}, {first = WPN_WAR_AXE, second = 12}, {first = WPN_BROAD_AXE, second = 5}, {first = WPN_FLAIL, second = 5}, {first = WPN_RAPIER, second = 10}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 2, capacity 2 = {{first = SPWPN_ANTIMAGIC, second = 1}, {first = NUM_SPECIAL_WEAPONS, second = 3}}, good_chance = 0}, [MONS_SPRIGGAN_DEFENDER] = {types = std::vector of length 5, capacity 5 = {{first = WPN_LAJATANG, second = 1}, {first = WPN_QUICK_BLADE, second = 1}, {first = WPN_RAPIER, second = 1}, {first = WPN_DEMON_WHIP, second = 1}, {first = WPN_FLAIL, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 1}, [MONS_TENGU] = {types = std::vector of length 15, capacity 15 = {{first = WPN_LONG_SWORD, second = 10}, {first = WPN_SHORT_SWORD, second = 10}, {first = WPN_SCIMITAR, second = 10}, {first = WPN_BATTLEAXE, second = 10}, {first = WPN_HAND_AXE, second = 10}, {first = WPN_HALBERD, second = 10}, {first = WPN_GLAIVE, second = 10}, {first = WPN_MACE, second = 10}, {first = WPN_DIRE_FLAIL, second = 10}, {first = WPN_TRIDENT, second = 10}, {first = WPN_WAR_AXE, second = 9}, {first = WPN_FLAIL, second = 9}, {first = WPN_PARTISAN, second = 2}, {first = WPN_BROAD_AXE, second = 1}, {first = WPN_MORNINGSTAR, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_NAGA] = {types = std::vector of length 15, capacity 15 = {{first = WPN_LONG_SWORD, second = 10}, {first = WPN_SHORT_SWORD, second = 10}, {first = WPN_SCIMITAR, second = 10}, {first = WPN_BATTLEAXE, second = 10}, {first = WPN_HAND_AXE, second = 10}, {first = WPN_HALBERD, second = 10}, {first = WPN_GLAIVE, second = 10}, {first = WPN_MACE, second = 10}, {first = WPN_DIRE_FLAIL, second = 10}, {first = WPN_TRIDENT, second = 10}, {first = WPN_WAR_AXE, second = 9}, {first = WPN_FLAIL, second = 9}, {first = WPN_PARTISAN, second = 2}, {first = WPN_BROAD_AXE, second = 1}, {first = WPN_MORNINGSTAR, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_NAGA_WARRIOR] = {types = std::vector of length 15, capacity 15 = {{first = WPN_LONG_SWORD, second = 10}, {first = WPN_SHORT_SWORD, second = 10}, {first = WPN_SCIMITAR, second = 10}, {first = WPN_BATTLEAXE, second = 10}, {first = WPN_HAND_AXE, second = 10}, {first = WPN_HALBERD, second = 10}, {first = WPN_GLAIVE, second = 10}, {first = WPN_MACE, second = 10}, {first = WPN_DIRE_FLAIL, second = 10}, {first = WPN_TRIDENT, second = 10}, {first = WPN_WAR_AXE, second = 9}, {first = WPN_FLAIL, second = 9}, {first = WPN_PARTISAN, second = 2}, {first = WPN_BROAD_AXE, second = 1}, {first = WPN_MORNINGSTAR, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_NAGA_MAGE] = {types = std::vector of length 5, capacity 5 = {{first = WPN_SPEAR, second = 8}, {first = WPN_HALBERD, second = 4}, {first = WPN_CLUB, second = 6}, {first = WPN_WHIP, second = 6}, {first = WPN_FLAIL, second = 6}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_NAGARAJA] = {types = std::vector of length 5, capacity 5 = {{first = WPN_SPEAR, second = 8}, {first = WPN_HALBERD, second = 4}, {first = WPN_CLUB, second = 6}, {first = WPN_WHIP, second = 6}, {first = WPN_FLAIL, second = 6}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_MERFOLK] = {types = std::vector of length 2, capacity 2 = {{first = WPN_TRIDENT, second = 1}, {first = WPN_LEIOMANO, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_MERFOLK_SIREN] = {types = std::vector of length 2, capacity 2 = {{first = WPN_TRIDENT, second = 1}, {first = WPN_LEIOMANO, second = 2}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_MERFOLK_IMPALER] = {types = std::vector of length 2, capacity 2 = {{first = WPN_TRIDENT, second = 20}, {first = WPN_DEMON_TRIDENT, second = 3}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_MERFOLK_AQUAMANCER] = {types = std::vector of length 1, capacity 1 = {{first = WPN_LEIOMANO, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 2}, [MONS_MERFOLK_JAVELINEER] = {types = std::vector of length 1, capacity 1 = {{first = WPN_SPEAR, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_CENTAUR] = {types = std::vector of length 2, capacity 2 = {{first = WPN_SHORTBOW, second = 1}, {first = WPN_ORCBOW, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_CENTAUR_WARRIOR] = {types = std::vector of length 2, capacity 2 = {{first = WPN_SHORTBOW, second = 1}, {first = WPN_ORCBOW, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_YAKTAUR] = {types = std::vector of length 1, capacity 1 = {{first = WPN_ARBALEST, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_YAKTAUR_CAPTAIN] = {types = std::vector of length 2, capacity 2 = {{first = WPN_ARBALEST, second = 19}, {first = WPN_HAND_CANNON, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_OGRE] = {types = std::vector of length 2, capacity 2 = {{first = WPN_GIANT_CLUB, second = 2}, {first = WPN_GIANT_SPIKED_CLUB, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_TWO_HEADED_OGRE] = {types = std::vector of length 4, capacity 4 = {{first = WPN_GIANT_CLUB, second = 60}, {first = WPN_GIANT_SPIKED_CLUB, second = 30}, {first = WPN_DIRE_FLAIL, second = 9}, {first = WPN_GREAT_MACE, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_OGRE_MAGE] = {types = std::vector of length 5, capacity 5 = {{first = WPN_SPEAR, second = 8}, {first = WPN_HALBERD, second = 4}, {first = WPN_CLUB, second = 6}, {first = WPN_WHIP, second = 6}, {first = WPN_FLAIL, second = 6}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_ETTIN] = {types = std::vector of length 2, capacity 2 = {{first = WPN_DIRE_FLAIL, second = 9}, {first = WPN_GREAT_MACE, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_FIRE_GIANT] = {types = std::vector of length 1, capacity 1 = {{first = WPN_GREAT_SWORD, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 1, capacity 1 = {{first = SPWPN_FLAMING, second = 1}}, good_chance = 0}, [MONS_FROST_GIANT] = {types = std::vector of length 1, capacity 1 = {{first = WPN_BATTLEAXE, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 1, capacity 1 = {{first = SPWPN_FREEZING, second = 1}}, good_chance = 0}, [MONS_HELL_KNIGHT] = {types = std::vector of length 13, capacity 13 = {{first = WPN_DEMON_WHIP, second = 1}, {first = WPN_DEMON_BLADE, second = 1}, {first = WPN_DEMON_TRIDENT, second = 1}, {first = WPN_HALBERD, second = 1}, {first = WPN_GLAIVE, second = 1}, {first = WPN_WAR_AXE, second = 1}, {first = WPN_GREAT_MACE, second = 1}, {first = WPN_BATTLEAXE, second = 1}, {first = WPN_LONG_SWORD, second = 1}, {first = WPN_SCIMITAR, second = 1}, {first = WPN_GREAT_SWORD, second = 1}, {first = WPN_PARTISAN, second = 1}, {first = WPN_BROAD_AXE, second = 1}}, plusses = {odds = 1, min = 0, max = 5, nrolls = 0}, brands = std::vector of length 6, capacity 6 = {{first = SPWPN_FLAMING, second = 13}, {first = SPWPN_DRAINING, second = 4}, {first = SPWPN_HEAVY, second = 4}, {first = SPWPN_DISTORTION, second = 2}, {first = SPWPN_PAIN, second = 2}, {first = NUM_SPECIAL_WEAPONS, second = 20}}, good_chance = 0}, [MONS_NECROMANCER] = {types = std::vector of length 3, capacity 3 = {{first = WPN_DAGGER, second = 4}, {first = WPN_WHIP, second = 2}, {first = WPN_ATHAME, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_OCCULTIST] = {types = std::vector of length 3, capacity 3 = {{first = WPN_DAGGER, second = 4}, {first = WPN_WHIP, second = 2}, {first = WPN_ATHAME, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_VAULT_GUARD] = {types = std::vector of length 11, capacity 11 = {{first = WPN_GREAT_SWORD, second = 8}, {first = WPN_LONG_SWORD, second = 8}, {first = WPN_BATTLEAXE, second = 8}, {first = WPN_WAR_AXE, second = 8}, {first = WPN_GREAT_MACE, second = 6}, {first = WPN_DIRE_FLAIL, second = 4}, {first = WPN_BARDICHE, second = 2}, {first = WPN_GLAIVE, second = 2}, {first = WPN_BROAD_AXE, second = 2}, {first = WPN_HALBERD, second = 2}, {first = WPN_PARTISAN, second = 1}}, plusses = {odds = 4, min = 1, max = 3, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_KILLER_KLOWN] = {types = std::vector of length 1, capacity 1 = {{first = WPN_CLUB, second = 10}}, plusses = {odds = 1, min = 8, max = 12, nrolls = 0}, brands = std::vector of length 13, capacity 13 = {{first = SPWPN_NORMAL, second = 20}, {first = SPWPN_FLAMING, second = 20}, {first = SPWPN_FREEZING, second = 10}, {first = SPWPN_HEAVY, second = 10}, {first = SPWPN_ELECTROCUTION, second = 10}, {first = SPWPN_VENOM, second = 10}, {first = SPWPN_VAMPIRISM, second = 5}, {first = SPWPN_ANTIMAGIC, second = 5}, {first = SPWPN_SPECTRAL, second = 5}, {first = SPWPN_PAIN, second = 4}, {first = SPWPN_HOLY_WRATH, second = 3}, {first = SPWPN_DISTORTION, second = 2}, {first = SPWPN_CHAOS, second = 1}}, good_chance = 0}, [MONS_DRACONIAN] = {types = std::vector of length 11, capacity 11 = {{first = WPN_CLUB, second = 100}, {first = WPN_DAGGER, second = 80}, {first = WPN_FLAIL, second = 60}, {first = WPN_SHORT_SWORD, second = 60}, {first = WPN_HAND_AXE, second = 80}, {first = WPN_WHIP, second = 45}, {first = WPN_MACE, second = 40}, {first = WPN_TRIDENT, second = 20}, {first = WPN_FALCHION, second = 20}, {first = WPN_WAR_AXE, second = 14}, {first = WPN_MORNINGSTAR, second = 6}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_BLACK_DRACONIAN] = {types = std::vector of length 15, capacity 15 = {{first = WPN_LONG_SWORD, second = 10}, {first = WPN_SHORT_SWORD, second = 10}, {first = WPN_SCIMITAR, second = 10}, {first = WPN_BATTLEAXE, second = 10}, {first = WPN_HAND_AXE, second = 10}, {first = WPN_HALBERD, second = 10}, {first = WPN_GLAIVE, second = 10}, {first = WPN_MACE, second = 10}, {first = WPN_DIRE_FLAIL, second = 10}, {first = WPN_TRIDENT, second = 10}, {first = WPN_WAR_AXE, second = 9}, {first = WPN_FLAIL, second = 9}, {first = WPN_PARTISAN, second = 2}, {first = WPN_BROAD_AXE, second = 1}, {first = WPN_MORNINGSTAR, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_YELLOW_DRACONIAN] = {types = std::vector of length 15, capacity 15 = {{first = WPN_LONG_SWORD, second = 10}, {first = WPN_SHORT_SWORD, second = 10}, {first = WPN_SCIMITAR, second = 10}, {first = WPN_BATTLEAXE, second = 10}, {first = WPN_HAND_AXE, second = 10}, {first = WPN_HALBERD, second = 10}, {first = WPN_GLAIVE, second = 10}, {first = WPN_MACE, second = 10}, {first = WPN_DIRE_FLAIL, second = 10}, {first = WPN_TRIDENT, second = 10}, {first = WPN_WAR_AXE, second = 9}, {first = WPN_FLAIL, second = 9}, {first = WPN_PARTISAN, second = 2}, {first = WPN_BROAD_AXE, second = 1}, {first = WPN_MORNINGSTAR, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_GREEN_DRACONIAN] = {types = std::vector of length 15, capacity 15 = {{first = WPN_LONG_SWORD, second = 10}, {first = WPN_SHORT_SWORD, second = 10}, {first = WPN_SCIMITAR, second = 10}, {first = WPN_BATTLEAXE, second = 10}, {first = WPN_HAND_AXE, second = 10}, {first = WPN_HALBERD, second = 10}, {first = WPN_GLAIVE, second = 10}, {first = WPN_MACE, second = 10}, {first = WPN_DIRE_FLAIL, second = 10}, {first = WPN_TRIDENT, second = 10}, {first = WPN_WAR_AXE, second = 9}, {first = WPN_FLAIL, second = 9}, {first = WPN_PARTISAN, second = 2}, {first = WPN_BROAD_AXE, second = 1}, {first = WPN_MORNINGSTAR, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_PURPLE_DRACONIAN] = {types = std::vector of length 15, capacity 15 = {{first = WPN_LONG_SWORD, second = 10}, {first = WPN_SHORT_SWORD, second = 10}, {first = WPN_SCIMITAR, second = 10}, {first = WPN_BATTLEAXE, second = 10}, {first = WPN_HAND_AXE, second = 10}, {first = WPN_HALBERD, second = 10}, {first = WPN_GLAIVE, second = 10}, {first = WPN_MACE, second = 10}, {first = WPN_DIRE_FLAIL, second = 10}, {first = WPN_TRIDENT, second = 10}, {first = WPN_WAR_AXE, second = 9}, {first = WPN_FLAIL, second = 9}, {first = WPN_PARTISAN, second = 2}, {first = WPN_BROAD_AXE, second = 1}, {first = WPN_MORNINGSTAR, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_RED_DRACONIAN] = {types = std::vector of length 15, capacity 15 = {{first = WPN_LONG_SWORD, second = 10}, {first = WPN_SHORT_SWORD, second = 10}, {first = WPN_SCIMITAR, second = 10}, {first = WPN_BATTLEAXE, second = 10}, {first = WPN_HAND_AXE, second = 10}, {first = WPN_HALBERD, second = 10}, {first = WPN_GLAIVE, second = 10}, {first = WPN_MACE, second = 10}, {first = WPN_DIRE_FLAIL, second = 10}, {first = WPN_TRIDENT, second = 10}, {first = WPN_WAR_AXE, second = 9}, {first = WPN_FLAIL, second = 9}, {first = WPN_PARTISAN, second = 2}, {first = WPN_BROAD_AXE, second = 1}, {first = WPN_MORNINGSTAR, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_WHITE_DRACONIAN] = {types = std::vector of length 15, capacity 15 = {{first = WPN_LONG_SWORD, second = 10}, {first = WPN_SHORT_SWORD, second = 10}, {first = WPN_SCIMITAR, second = 10}, {first = WPN_BATTLEAXE, second = 10}, {first = WPN_HAND_AXE, second = 10}, {first = WPN_HALBERD, second = 10}, {first = WPN_GLAIVE, second = 10}, {first = WPN_MACE, second = 10}, {first = WPN_DIRE_FLAIL, second = 10}, {first = WPN_TRIDENT, second = 10}, {first = WPN_WAR_AXE, second = 9}, {first = WPN_FLAIL, second = 9}, {first = WPN_PARTISAN, second = 2}, {first = WPN_BROAD_AXE, second = 1}, {first = WPN_MORNINGSTAR, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_GREY_DRACONIAN] = {types = std::vector of length 15, capacity 15 = {{first = WPN_LONG_SWORD, second = 10}, {first = WPN_SHORT_SWORD, second = 10}, {first = WPN_SCIMITAR, second = 10}, {first = WPN_BATTLEAXE, second = 10}, {first = WPN_HAND_AXE, second = 10}, {first = WPN_HALBERD, second = 10}, {first = WPN_GLAIVE, second = 10}, {first = WPN_MACE, second = 10}, {first = WPN_DIRE_FLAIL, second = 10}, {first = WPN_TRIDENT, second = 10}, {first = WPN_WAR_AXE, second = 9}, {first = WPN_FLAIL, second = 9}, {first = WPN_PARTISAN, second = 2}, {first = WPN_BROAD_AXE, second = 1}, {first = WPN_MORNINGSTAR, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_PALE_DRACONIAN] = {types = std::vector of length 15, capacity 15 = {{first = WPN_LONG_SWORD, second = 10}, {first = WPN_SHORT_SWORD, second = 10}, {first = WPN_SCIMITAR, second = 10}, {first = WPN_BATTLEAXE, second = 10}, {first = WPN_HAND_AXE, second = 10}, {first = WPN_HALBERD, second = 10}, {first = WPN_GLAIVE, second = 10}, {first = WPN_MACE, second = 10}, {first = WPN_DIRE_FLAIL, second = 10}, {first = WPN_TRIDENT, second = 10}, {first = WPN_WAR_AXE, second = 9}, {first = WPN_FLAIL, second = 9}, {first = WPN_PARTISAN, second = 2}, {first = WPN_BROAD_AXE, second = 1}, {first = WPN_MORNINGSTAR, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_DRACONIAN_STORMCALLER] = {types = std::vector of length 5, capacity 5 = {{first = WPN_LONG_SWORD, second = 2}, {first = WPN_SHORT_SWORD, second = 1}, {first = WPN_RAPIER, second = 1}, {first = WPN_DAGGER, second = 1}, {first = WPN_WHIP, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_DRACONIAN_SHIFTER] = {types = std::vector of length 5, capacity 5 = {{first = WPN_LONG_SWORD, second = 2}, {first = WPN_SHORT_SWORD, second = 1}, {first = WPN_RAPIER, second = 1}, {first = WPN_DAGGER, second = 1}, {first = WPN_WHIP, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_DRACONIAN_ANNIHILATOR] = {types = std::vector of length 5, capacity 5 = {{first = WPN_LONG_SWORD, second = 2}, {first = WPN_SHORT_SWORD, second = 1}, {first = WPN_RAPIER, second = 1}, {first = WPN_DAGGER, second = 1}, {first = WPN_WHIP, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_DRACONIAN_KNIGHT] = {types = std::vector of length 11, capacity 11 = {{first = WPN_GREAT_SWORD, second = 8}, {first = WPN_LONG_SWORD, second = 8}, {first = WPN_BATTLEAXE, second = 8}, {first = WPN_WAR_AXE, second = 8}, {first = WPN_GREAT_MACE, second = 6}, {first = WPN_DIRE_FLAIL, second = 4}, {first = WPN_BARDICHE, second = 2}, {first = WPN_GLAIVE, second = 2}, {first = WPN_BROAD_AXE, second = 2}, {first = WPN_HALBERD, second = 2}, {first = WPN_PARTISAN, second = 1}}, plusses = {odds = 4, min = 1, max = 3, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 3}, [MONS_DRACONIAN_SCORCHER] = {types = std::vector of length 5, capacity 5 = {{first = WPN_LONG_SWORD, second = 2}, {first = WPN_SHORT_SWORD, second = 1}, {first = WPN_RAPIER, second = 1}, {first = WPN_DAGGER, second = 1}, {first = WPN_WHIP, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_RED_DEVIL] = {types = std::vector of length 2, capacity 2 = {{first = WPN_TRIDENT, second = 4}, {first = WPN_DEMON_TRIDENT, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_REAPER] = {types = std::vector of length 1, capacity 1 = {{first = WPN_HALBERD, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 1}, [MONS_BALRUG] = {types = std::vector of length 1, capacity 1 = {{first = WPN_DEMON_WHIP, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_EFREET] = {types = std::vector of length 1, capacity 1 = {{first = WPN_SCIMITAR, second = 1}}, plusses = {odds = 1, min = 0, max = 4, nrolls = 0}, brands = std::vector of length 1, capacity 1 = {{first = SPWPN_FLAMING, second = 1}}, good_chance = 0}, [MONS_RAKSHASA] = {types = std::vector of length 3, capacity 3 = {{first = WPN_WHIP, second = 1}, {first = WPN_TRIDENT, second = 1}, {first = WPN_LONG_SWORD, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_VAMPIRE_KNIGHT] = {types = std::vector of length 11, capacity 11 = {{first = WPN_GREAT_SWORD, second = 8}, {first = WPN_LONG_SWORD, second = 8}, {first = WPN_BATTLEAXE, second = 8}, {first = WPN_WAR_AXE, second = 8}, {first = WPN_GREAT_MACE, second = 6}, {first = WPN_DIRE_FLAIL, second = 4}, {first = WPN_BARDICHE, second = 2}, {first = WPN_GLAIVE, second = 2}, {first = WPN_BROAD_AXE, second = 2}, {first = WPN_HALBERD, second = 2}, {first = WPN_PARTISAN, second = 1}}, plusses = {odds = 4, min = 1, max = 3, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_WIGHT] = {types = std::vector of length 16, capacity 16 = {{first = WPN_MORNINGSTAR, second = 4}, {first = WPN_DIRE_FLAIL, second = 4}, {first = WPN_WAR_AXE, second = 4}, {first = WPN_TRIDENT, second = 4}, {first = WPN_MACE, second = 7}, {first = WPN_FLAIL, second = 7}, {first = WPN_FALCHION, second = 7}, {first = WPN_DAGGER, second = 7}, {first = WPN_SHORT_SWORD, second = 7}, {first = WPN_LONG_SWORD, second = 7}, {first = WPN_SCIMITAR, second = 7}, {first = WPN_GREAT_SWORD, second = 7}, {first = WPN_HAND_AXE, second = 7}, {first = WPN_BATTLEAXE, second = 7}, {first = WPN_SPEAR, second = 7}, {first = WPN_HALBERD, second = 7}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_SKELETAL_WARRIOR] = {types = std::vector of length 15, capacity 15 = {{first = WPN_LONG_SWORD, second = 10}, {first = WPN_SHORT_SWORD, second = 10}, {first = WPN_SCIMITAR, second = 10}, {first = WPN_BATTLEAXE, second = 10}, {first = WPN_HAND_AXE, second = 10}, {first = WPN_HALBERD, second = 10}, {first = WPN_GLAIVE, second = 10}, {first = WPN_MACE, second = 10}, {first = WPN_DIRE_FLAIL, second = 10}, {first = WPN_TRIDENT, second = 10}, {first = WPN_WAR_AXE, second = 9}, {first = WPN_FLAIL, second = 9}, {first = WPN_PARTISAN, second = 2}, {first = WPN_BROAD_AXE, second = 1}, {first = WPN_MORNINGSTAR, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_PROFANE_SERVITOR] = {types = std::vector of length 2, capacity 2 = {{first = WPN_DEMON_WHIP, second = 1}, {first = WPN_WHIP, second = 3}}, plusses = {odds = 1, min = 1, max = 3, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_ANGEL] = {types = std::vector of length 2, capacity 2 = {{first = WPN_WHIP, second = 3}, {first = WPN_SACRED_SCOURGE, second = 1}}, plusses = {odds = 1, min = 1, max = 3, nrolls = 0}, brands = std::vector of length 1, capacity 1 = {{first = SPWPN_HOLY_WRATH, second = 1}}, good_chance = 0}, [MONS_DAEVA] = {types = std::vector of length 3, capacity 3 = {{first = WPN_EUDEMON_BLADE, second = 1}, {first = WPN_SCIMITAR, second = 2}, {first = WPN_LONG_SWORD, second = 1}}, plusses = {odds = 1, min = 2, max = 5, nrolls = 0}, brands = std::vector of length 1, capacity 1 = {{first = SPWPN_HOLY_WRATH, second = 1}}, good_chance = 0}, [MONS_CHERUB] = {types = std::vector of length 4, capacity 4 = {{first = WPN_FLAIL, second = 1}, {first = WPN_LONG_SWORD, second = 1}, {first = WPN_SCIMITAR, second = 1}, {first = WPN_FALCHION, second = 1}}, plusses = {odds = 1, min = 0, max = 4, nrolls = 0}, brands = std::vector of length 1, capacity 1 = {{first = SPWPN_FLAMING, second = 1}}, good_chance = 0}, [MONS_SERAPH] = {types = std::vector of length 1, capacity 1 = {{first = WPN_GREAT_SWORD, second = 1}}, plusses = {odds = 1, min = 3, max = 8, nrolls = 0}, brands = std::vector of length 1, capacity 1 = {{first = SPWPN_FLAMING, second = 1}}, good_chance = 0}, [MONS_ENCHANTRESS] = {types = std::vector of length 5, capacity 5 = {{first = WPN_LAJATANG, second = 1}, {first = WPN_QUICK_BLADE, second = 1}, {first = WPN_RAPIER, second = 1}, {first = WPN_DEMON_WHIP, second = 1}, {first = WPN_FLAIL, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 1}, [MONS_IJYB] = {types = std::vector of length 2, capacity 2 = {{first = WPN_DAGGER, second = 1}, {first = WPN_CLUB, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_JESSICA] = {types = std::vector of length 2, capacity 2 = {{first = WPN_DAGGER, second = 1}, {first = WPN_CLUB, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_SIGMUND] = {types = std::vector of length 1, capacity 1 = {{first = WPN_HALBERD, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_TERENCE] = {types = std::vector of length 7, capacity 7 = {{first = WPN_FLAIL, second = 30}, {first = WPN_HAND_AXE, second = 20}, {first = WPN_SHORT_SWORD, second = 20}, {first = WPN_MACE, second = 20}, {first = WPN_TRIDENT, second = 10}, {first = WPN_FALCHION, second = 10}, {first = WPN_MORNINGSTAR, second = 3}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_BLORKULA_THE_ORCULA] = {types = std::vector of length 15, capacity 15 = {{first = WPN_LONG_SWORD, second = 10}, {first = WPN_SHORT_SWORD, second = 10}, {first = WPN_SCIMITAR, second = 10}, {first = WPN_BATTLEAXE, second = 10}, {first = WPN_HAND_AXE, second = 10}, {first = WPN_HALBERD, second = 10}, {first = WPN_GLAIVE, second = 10}, {first = WPN_MACE, second = 10}, {first = WPN_DIRE_FLAIL, second = 10}, {first = WPN_TRIDENT, second = 10}, {first = WPN_WAR_AXE, second = 9}, {first = WPN_FLAIL, second = 9}, {first = WPN_PARTISAN, second = 2}, {first = WPN_BROAD_AXE, second = 1}, {first = WPN_MORNINGSTAR, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_EDMUND] = {types = std::vector of length 2, capacity 2 = {{first = WPN_DIRE_FLAIL, second = 1}, {first = WPN_FLAIL, second = 2}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 1}, [MONS_EROLCHA] = {types = std::vector of length 2, capacity 2 = {{first = WPN_GIANT_CLUB, second = 2}, {first = WPN_GIANT_SPIKED_CLUB, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_DONALD] = {types = std::vector of length 7, capacity 7 = {{first = WPN_SCIMITAR, second = 12}, {first = WPN_LONG_SWORD, second = 10}, {first = WPN_BROAD_AXE, second = 9}, {first = WPN_PARTISAN, second = 9}, {first = WPN_EVENINGSTAR, second = 7}, {first = WPN_DOUBLE_SWORD, second = 7}, {first = WPN_WAR_AXE, second = 3}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_URUG] = {types = std::vector of length 12, capacity 12 = {{first = WPN_HALBERD, second = 5}, {first = WPN_GLAIVE, second = 5}, {first = WPN_WAR_AXE, second = 6}, {first = WPN_GREAT_MACE, second = 6}, {first = WPN_BATTLEAXE, second = 7}, {first = WPN_LONG_SWORD, second = 8}, {first = WPN_SCIMITAR, second = 8}, {first = WPN_GREAT_SWORD, second = 8}, {first = WPN_BROAD_AXE, second = 9}, {first = WPN_DOUBLE_SWORD, second = 10}, {first = WPN_EVENINGSTAR, second = 13}, {first = WPN_PARTISAN, second = 15}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_JOSEPH] = {types = std::vector of length 1, capacity 1 = {{first = WPN_QUARTERSTAFF, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_ERICA] = {types = std::vector of length 1, capacity 1 = {{first = WPN_SCIMITAR, second = 1}}, plusses = {odds = 1, min = 0, max = 4, nrolls = 0}, brands = std::vector of length 1, capacity 1 = {{first = SPWPN_FLAMING, second = 1}}, good_chance = 0}, [MONS_JOSEPHINE] = {types = std::vector of length 2, capacity 2 = {{first = WPN_DAGGER, second = 4}, {first = WPN_ATHAME, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_HAROLD] = {types = std::vector of length 15, capacity 15 = {{first = WPN_LONG_SWORD, second = 10}, {first = WPN_SHORT_SWORD, second = 10}, {first = WPN_SCIMITAR, second = 10}, {first = WPN_BATTLEAXE, second = 10}, {first = WPN_HAND_AXE, second = 10}, {first = WPN_HALBERD, second = 10}, {first = WPN_GLAIVE, second = 10}, {first = WPN_MACE, second = 10}, {first = WPN_DIRE_FLAIL, second = 10}, {first = WPN_TRIDENT, second = 10}, {first = WPN_WAR_AXE, second = 9}, {first = WPN_FLAIL, second = 9}, {first = WPN_PARTISAN, second = 2}, {first = WPN_BROAD_AXE, second = 1}, {first = WPN_MORNINGSTAR, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_AGNES] = {types = std::vector of length 1, capacity 1 = {{first = WPN_LAJATANG, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_LOUISE] = {types = std::vector of length 5, capacity 5 = {{first = WPN_MORNINGSTAR, second = 1}, {first = WPN_EVENINGSTAR, second = 1}, {first = WPN_TRIDENT, second = 1}, {first = WPN_PARTISAN, second = 1}, {first = WPN_DEMON_TRIDENT, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 1}...} ORC_KNIGHT_BOWS = std::vector of length 2, capacity 2 = {{first = WPN_ARBALEST, second = 1}, {first = NUM_WEAPONS, second = 8}} secondary_weapon_specs = std::map with 17 elements = {[MONS_ORC_WARRIOR] = {types = std::vector of length 3, capacity 3 = {{first = WPN_ORCBOW, second = 3}, {first = WPN_ARBALEST, second = 1}, {first = NUM_WEAPONS, second = 32}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_ORC_KNIGHT] = {types = std::vector of length 2, capacity 2 = {{first = WPN_ARBALEST, second = 1}, {first = NUM_WEAPONS, second = 8}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_ORC_WARLORD] = {types = std::vector of length 2, capacity 2 = {{first = WPN_ARBALEST, second = 1}, {first = NUM_WEAPONS, second = 8}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_SALAMANDER] = {types = std::vector of length 5, capacity 5 = {{first = WPN_HALBERD, second = 5}, {first = WPN_TRIDENT, second = 5}, {first = WPN_SPEAR, second = 3}, {first = WPN_PARTISAN, second = 2}, {first = WPN_SHORTBOW, second = 5}}, plusses = {odds = 4, min = 0, max = 4, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_CHERUB] = {types = std::vector of length 3, capacity 3 = {{first = WPN_SLING, second = 1}, {first = WPN_SHORTBOW, second = 1}, {first = WPN_LONGBOW, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_JOSEPH] = {types = std::vector of length 1, capacity 1 = {{first = WPN_SLING, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_SAINT_ROKA] = {types = std::vector of length 2, capacity 2 = {{first = WPN_ARBALEST, second = 1}, {first = NUM_WEAPONS, second = 8}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_VAULT_SENTINEL] = {types = std::vector of length 3, capacity 3 = {{first = WPN_ARBALEST, second = 19}, {first = WPN_HAND_CANNON, second = 1}, {first = NUM_WEAPONS, second = 40}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_VAULT_WARDEN] = {types = std::vector of length 2, capacity 2 = {{first = WPN_ARBALEST, second = 1}, {first = NUM_WEAPONS, second = 8}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_FAUN] = {types = std::vector of length 1, capacity 1 = {{first = WPN_SLING, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_SATYR] = {types = std::vector of length 1, capacity 1 = {{first = WPN_LONGBOW, second = 1}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_TENGU_WARRIOR] = {types = std::vector of length 2, capacity 2 = {{first = WPN_ARBALEST, second = 1}, {first = NUM_WEAPONS, second = 8}}, plusses = {odds = 0, min = 0, max = 0, nrolls = 0}, brands = std::vector of length 0, capacity 0, good_chance = 0}, [MONS_DEMONSPAWN_WARMONGER] = {types = std::vector of length 4, capacity 4 = {{first = WPN_LONGBOW, second = 10}, {first Compilation info: <<<<<<<<<<< Compiled with GCC 13.3.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 contrib/install/x86_64-linux-gnu/include -g -DWIZARD -DASSERTS -DREGEX_PCRE -DCLUA_BINDINGS -DDGAMELAUNCH -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 LDFLAGS: -rdynamic -fuse-ld=gold -O2 >>>>>>>>>>> Place info: branch = 0, depth = 9 Level id: D:9 Currently generating level. Level build method = , level layout type = passages, absdepth0 = 8 Level vaults: layout_small_grid lair_entry_dummy nicolae_benzene_ring nicolae_specific_store kennysheep_kite_vault uniq_jeremiah Markers: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>> Messages: <<<<<<<<<<<<<<<<<<<<<< Press ? for a list of commands and other information. Things that are here: a +0 leather armour; a +0 long sword Things that are here: a +0 whip; a gnoll corpse Things that are here: a +0 whip; a gnoll skeleton There is an open door here. You enter the shallow water. Moving in this stuff is going to be slow. There is an open door here. d - a scroll labelled RIEHOE JUSES Okay, then. Unknown command. You encounter a gnoll. It is wielding a +0 spear. The gnoll leaves your sight. A gnoll comes into view. The gnoll shouts! You throw a boomerang. The boomerang barely misses the gnoll. You throw a boomerang. The boomerang barely misses the gnoll. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the gnoll. The gnoll is heavily wounded. The gnoll's fire resistance burns away. The gnoll hits you but does no damage. You slash the gnoll! You kill the gnoll! Things that are here: a +0 spear; a gnoll corpse There is an entrance to Deedduon's Armour Shop here. Unknown command. Magic restored. Things that are here: a +0 robe; a +0 dagger; an orc skeleton Things that are here: a +0 hand axe; an orc skeleton You see here a howler monkey skeleton. You see here a +0 dagger. h - a scroll labelled ACRUGIAFUST You pick up a parchment of Vampiric Draining and begin reading... You add the spell Vampiric Draining to your library. Done exploring. You see here 2 large rocks. There is a stone staircase leading down here. You climb downwards. There is a stone staircase leading up here. There is a stone staircase leading down here. You climb downwards. There is a stone staircase leading up here. You climb upwards. There is a stone staircase leading down here. There is a stone staircase leading up here. v - a +4 ring of protection Okay, then. Unknown command. Unknown command. Unknown command. As you open the large door, it creaks loudly! You encounter an iguana and a sleepcap. You hear a shout! Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the sleepcap. The sleepcap is lightly damaged. The sleepcap's fire resistance burns away. You slice the sleepcap!! The sleepcap is almost destroyed. The sleepcap releases spores at you but does no damage. You hit the sleepcap. You destroy the sleepcap! You encounter an ogre. It is wielding a +0 giant club. Your Dodging skill increases to level 5! Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the iguana. The iguana is moderately wounded. The iguana's fire resistance burns away. You barely miss the iguana. The iguana is moderately wounded. The iguana barely misses you. You closely miss the iguana. You tail-slap the iguana. The iguana is severely wounded. The iguana bites you. You closely miss the iguana. Your tail-slap misses the iguana. The iguana is severely wounded. The iguana is no longer more vulnerable to fire. The iguana bites you but does no damage. You slice the iguana!! You kill the iguana! You start resting. HP restored. You start resting. An ogre comes into view. You throw a boomerang. The boomerang hits the ogre and shatters for extra damage! The ogre shouts! The ogre is heavily wounded. You throw a boomerang. The boomerang barely misses the ogre. You throw a boomerang. The boomerang hits the ogre. The ogre is heavily wounded. You throw a boomerang. The boomerang completely misses the ogre. You encounter a scorpion. The scorpion leaves your sight. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the ogre. The ogre is severely wounded. The ogre's fire resistance burns away. You slash the ogre! You kill the ogre! You throw a boomerang. The boomerang barely misses the scorpion. You throw a boomerang. The boomerang hits the scorpion but does no damage. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the scorpion. The scorpion is severely wounded. The scorpion's fire resistance burns away. You closely miss the scorpion. Your tail-slap misses the scorpion. The scorpion is severely wounded. The scorpion stings you. You are poisoned. The scorpion poisons you! You slash the scorpion! You kill the scorpion! You feel very sick. You start resting. You feel sick. x7 You are no longer poisoned. You start resting. HP restored. You start resting. Magic restored. There is a large open door, spattered with blood here. Things that are here: a +0 giant club; an ogre corpse; an iguana corpse You enter the shallow water. Moving in this stuff is going to be slow. As you open the large door, it creaks loudly! There is a large open door here. w - a +1 long sword of holy wrath There is a stone staircase leading down here. You climb downwards. Found a stone staircase leading down. There is a stone staircase leading up here. You climb upwards. There is a stone staircase leading down here. You encounter an ogre. It is wielding a +0 giant club. You throw a boomerang. The boomerang closely misses the ogre. You throw a boomerang. The boomerang closely misses the ogre. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the ogre. The ogre is moderately wounded. The ogre's fire resistance burns away. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You miscast Scorch. Nothing appears to happen. You closely miss the ogre. The ogre is moderately wounded. The ogre hits you with a +0 giant club!! You barely miss the ogre. You tail-slap the ogre. The ogre is heavily wounded. The ogre closely misses you. You slash the ogre! The ogre is severely wounded. The ogre is no longer more vulnerable to fire. You barely miss the ogre. The ogre is severely wounded. The ogre barely misses you. You barely miss the ogre. The ogre is severely wounded. The ogre closely misses you. You completely miss the ogre. The ogre is severely wounded. You hit the ogre. The ogre is almost dead. The ogre hits you with a +0 giant club! You slice the ogre!! You kill the ogre! Your Axes skill increases to level 9! Unknown command. Unknown command. Unknown command. You start resting. Your magical contamination has completely faded away. You start resting. You encounter a sky beast. You throw a boomerang. The boomerang hits the sky beast! The sky beast is moderately wounded. You throw a boomerang. The boomerang hits the sky beast but does no damage. The sky beast is moderately wounded. You throw a boomerang. The boomerang hits the sky beast. The sky beast is heavily wounded. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the sky beast. The sky beast is almost dead. The sky beast's fire resistance burns away. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the sky beast. The sky beast is burned terribly! You kill the sky beast! HP restored. Magic restored. You see here a +0 giant club. There is a stone staircase leading up, spattered with blood here. You encounter a sleepcap. You throw a boomerang. The boomerang hits the sleepcap. The sleepcap is moderately damaged. You throw a boomerang. The boomerang hits the sleepcap. The sleepcap is moderately damaged. You throw a boomerang. The boomerang hits the sleepcap. The sleepcap is heavily damaged. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the sleepcap. The sleepcap is almost destroyed. The sleepcap's fire resistance burns away. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the sleepcap but do no damage. You slash the sleepcap! You destroy the sleepcap! Press: ? - help, v - describe, . - travel The floor. Press: ? - help, v - describe, . - travel The floor. Press: ? - help, v - describe, . - travel The floor. There is a stone staircase leading down here. You climb downwards. There is a stone staircase leading up here. k - a scroll labelled ANLOR SONWUC There is a stone staircase leading up here. You climb upwards. There is a stone staircase leading down here. Magic restored. You encounter a scorpion. You throw a boomerang. The boomerang hits the scorpion. The scorpion is moderately wounded. You throw a boomerang. The boomerang hits the scorpion. The scorpion is heavily wounded. You throw a boomerang. The boomerang hits the scorpion! The scorpion is almost dead. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the scorpion. You kill the scorpion! You now have 82 gold pieces (gained 8). g - 6 flux baubles (gained 3) p - a wand of polymorph (8) You open the door. Found a radiant altar of Vehumet and a shimmering altar of Xom. There is an open door here. You see here a +0 war axe. x - a +0 war axe There is an open door here. There is a large open door here. As you open the large door, it creaks loudly! There is a large open door here. The butterfly leaves your sight. Found a staircase to the Ecumenical Temple. l - a bubbling yellow potion b - a wand of quicksilver (12) There is a staircase to the Ecumenical Temple here. You climb downwards. Welcome to the Ecumenical Temple! Found seven altars. There is a staircase back to the Dungeon here. You climb upwards. Welcome back to the Dungeon! There is a staircase to the Ecumenical Temple here. Done exploring. The butterfly leaves your sight. There is a stone staircase leading down here. You climb downwards. There is a stone staircase leading up here. There is a stone staircase leading down here. You climb downwards. There is a stone staircase leading up here. You climb upwards. There is a stone staircase leading down here. o - 2 scrolls labelled LANNO TIL KAMIF (gained 1) You pick up a parchment of Iskenderun's Mystic Blast and begin reading... You add the spell Iskenderun's Mystic Blast to your library. You encounter a hound. You throw a boomerang. The boomerang hits the hound. The hound barks! The hound is lightly wounded. You throw a boomerang. The boomerang misses the hound. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You don't know that spell. Unknown command. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the hound. The hound is lightly wounded. The hound's fire resistance burns away. You slash the hound! The hound is poisoned. Your tail-slap misses the hound. The hound is severely wounded. The hound bites you. The hound bites you but does no damage. You closely miss the hound. The hound is severely wounded. The hound bites you but does no damage. The hound barely misses you. You slash the hound! You kill the hound! You encounter a scorpion. You throw a boomerang. The boomerang closely misses the scorpion. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the scorpion. The scorpion is lightly wounded. The scorpion's fire resistance burns away. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the scorpion. The scorpion is burned terribly! You kill the scorpion! Magic restored. You see here a hound corpse. Found a stone staircase leading down. t - 5 scrolls of teleportation (gained 1) You pick up a parchment of Alistair's Intoxication and begin reading... You add the spell Alistair's Intoxication to your library. Unknown command. i - a scroll of identify As you read the scroll of identify, it crumbles to dust. f -> e - 2 potions of enlightenment As you read the scroll labelled LANNO TIL KAMIF, it crumbles to dust. The air around you briefly surges with heat, but it dissipates. It was a scroll of immolation. o -> I - a scroll of immolation Found Diur's Magic Scroll Shop. Found Suaganez's Book Shop. t - 6 scrolls of teleportation (gained 1) Found a crooked runed staff. Found Dipeodgh's Armour Shop. You now have enough gold to buy a potion of ambrosia on D:2, buy a potion of cancellation on D:2, or buy a potion of heal wounds on D:2. You can access your shopping list by pressing '$'. You now have 97 gold pieces (gained 15). There is an entrance to Diur's Magic Scroll Shop here. h -> V - 2 scrolls of vulnerability (gained 1) i - a scroll of identify Thank you for shopping at Diur's Magic Scroll Shop! You can access your shopping list by pressing '$'. As you read the scroll of identify, it crumbles to dust. j -> M - a potion of mutation The shop is a mimic! The shop mimic cackles madly and vanishes in a puff of smoke! Found Kuup's Antique Armour Shop. f - a wand of mindburst (14) There is an entrance to Kuup's Antique Armour Shop here. Okay, then. There is an entrance to Suaganez's Book Shop here. You can access your shopping list by pressing '$'. Unknown command. Unknown command. There is a fountain of clear blue water here. You now have 19 gold pieces (gained 12). y - a staff of fire j - 8 curare-tipped darts (gained 2) You now have enough gold to buy a potion of curing on D:2. You can access your shopping list by pressing '$'. You now have 36 gold pieces (gained 17). You encounter a gnoll. It is wielding a +0 flail. You throw a boomerang. The boomerang hits the gnoll. The gnoll shouts! The gnoll is moderately wounded. You hear a shout! You throw a boomerang. The boomerang hits the gnoll. The gnoll is heavily wounded. You throw a boomerang. The boomerang hits the gnoll. The gnoll is severely wounded. You encounter a gnoll. It is wielding a +0 spear. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the gnoll. You kill the gnoll! You hear a shout! x4 You encounter an orc. It is wielding a +0 hand axe. You throw a boomerang. The boomerang closely misses the gnoll. The boomerang hits the orc! You kill the orc! You encounter an orc. It is wielding a +0 club. You throw a boomerang. The boomerang closely misses the gnoll. The boomerang hits the orc! You kill the orc! You encounter a gnoll. It is wielding a +0 club. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the gnoll. The gnoll is moderately wounded. The gnoll's fire resistance burns away. You encounter an orc. It is wielding a +0 dagger. You encounter a gnoll. It is wielding a +0 flail. The gnoll closely misses you. You hit the gnoll but do no damage. The gnoll is poisoned. Your tail-slap misses the gnoll. The gnoll is moderately wounded. The gnoll barely misses you. You completely miss the gnoll. The gnoll is moderately wounded. The gnoll is no longer more vulnerable to fire. The gnoll barely misses you. You slash the gnoll! You kill the gnoll! You hit the gnoll. The gnoll is poisoned. The gnoll is heavily wounded. The gnoll closely misses you. You hit the gnoll. You kill the gnoll! You slice the orc!! You kill the orc! You barely miss the gnoll. The gnoll hits you with a +0 flail. You hit the gnoll but do no damage. The gnoll closely misses you. You barely miss the gnoll. The gnoll hits you but does no damage. You slash the gnoll! The gnoll is poisoned. You tail-slap the gnoll. You kill the gnoll! No target in view! Items here: )))) †. You see here a +0 flail. Items here: )) [ ††. You encounter an orc. It is wielding a +0 club. You throw a boomerang. The boomerang hits the orc. The orc is severely wounded. You hear a shout! x2 You encounter an orc. It is wielding a +0 whip. You encounter an orc wizard. It is wielding a +0 dagger. You throw a boomerang. The boomerang hits the orc. You kill the orc! You throw a boomerang. The boomerang hits the orc wizard. The orc wizard is lightly wounded. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the orc wizard. The orc wizard is heavily wounded. The orc wizard's fire resistance burns away. You hear a shout! Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the orc wizard. The orc wizard is burned terribly! You kill the orc wizard! Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the orc. You kill the orc! You encounter an orc priest. It is wielding a +0 hand axe. You throw a boomerang. The boomerang barely misses the orc priest. You encounter an orc priest. It is wielding a +0 flail. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the orc priest. The orc priest is heavily wounded. The orc priest's fire resistance burns away. The orc priest calls upon Beogh to heal the orc priest. The orc priest is healed somewhat. You slash the orc priest! The orc priest looks as sick as possible! The orc priest is almost dead. You kill the orc priest! Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the orc priest. The orc priest is moderately wounded. The orc priest's fire resistance burns away. You throw a boomerang. The boomerang hits the orc priest. The orc priest is moderately wounded. You slash the orc priest! You kill the orc priest! Items here: )) [ ††. Items here: )) [[ †. Things that are here: a +0 club; an orc corpse You pick up a book of Armaments and begin reading... You add the spells Stone Arrow, Rending Blade and Lehudib's Crystal Spear to your library. Okay, then. Unknown command. Unknown command. This spell is dangerous to cast! You start memorising the spell. You continue memorising. x2 You finish memorising. Spell assigned to 'B'. You start memorising the spell. You continue memorising. You finish memorising. Spell assigned to 'A'. Unknown command. Unknown command. Unknown command. Unknown command. z - a ring of willpower You encounter a bullfrog. You throw a boomerang. The boomerang hits the bullfrog. The bullfrog gives a loud, deep croak! The bullfrog is moderately wounded. You throw a boomerang. The boomerang misses the bullfrog. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the bullfrog. The bullfrog is heavily wounded. The bullfrog's fire resistance burns away. The bullfrog barely misses you. You closely miss the bullfrog. The bullfrog is heavily wounded. The bullfrog closely misses you. You slice the bullfrog!! You kill the bullfrog! You see here a +0 robe. You see here a +0 great sword. You encounter Sprozz, Inventive Apiarist. He is wielding a +0 falchion and a +0 mace and carrying a wand of roots. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash Sprozz. Sprozz shouts! Sprozz is lightly wounded. Sprozz's fire resistance burns away. Sprozz casts a spell at you. Sprozz begins winding a clockwork bee! Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash Sprozz. Sprozz is burned terribly! Sprozz is moderately wounded. Sprozz continues winding his clockwork bee.... Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash Sprozz. Sprozz is burned terribly! Sprozz is heavily wounded. Sprozz continues winding his clockwork bee.... Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash Sprozz. Sprozz is burned terribly! Sprozz is heavily wounded. Sprozz continues winding his clockwork bee.... Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash Sprozz. Sprozz is burned terribly! Sprozz is severely wounded. With a metallic buzz, Sprozz's clockwork bee launches itself at you. The clockwork bee attacks as it pursues you! The clockwork bee closely misses you. You miss the clockwork bee. The clockwork bee misses you. The clockwork bee closely misses you. You barely miss the clockwork bee. You tail-slap the clockwork bee. The clockwork bee is lightly damaged. The clockwork bee closely misses you. Sprozz gestures at you while chanting. A magical hammer augments the clockwork bee in a flurry of sparks and slag. The blast engulfs you. You slash the clockwork bee! You tail-slap the clockwork bee. The clockwork bee is moderately damaged. The clockwork bee stings you but does no damage. The clockwork bee barely misses you. You slash the clockwork bee! Your tail-slap misses the clockwork bee. The clockwork bee is almost destroyed. The clockwork bee misses you. You slice the clockwork bee!! You destroy the clockwork bee! Sprozz casts a spell at you. Sprozz begins winding a clockwork bee! Sprozz continues winding his clockwork bee.... You barely miss Sprozz. Sprozz is severely wounded. Sprozz continues winding his clockwork bee.... You closely miss Sprozz. Sprozz is severely wounded. Sprozz continues winding his clockwork bee.... You barely miss Sprozz. Your tail-slap misses Sprozz. Sprozz is severely wounded. With a metallic buzz, Sprozz's clockwork bee launches itself at you. Sprozz hits you but does no damage. Sprozz hits you with a +0 mace. You slash Sprozz! Sprozz is almost dead. You hit the clockwork bee. The clockwork bee barely misses you. Sprozz mumbles, "Perhaps it could use a bit more zinc in the wings...." Sprozz hits you but does no damage. x2 You barely miss Sprozz. Sprozz is almost dead. You miss the clockwork bee. The clockwork bee stings you. Sprozz completely misses you. Sprozz hits you but does no damage. The clockwork bee stings you but does no damage. You slash Sprozz! You kill Sprozz! The clockwork bee runs out of power. Your Translocations skill gained 2 levels and is now at level 2! c - a wand of roots (11) (gained 6 charges) You pick up Sprozz's Tome of Clockwork and begin reading... You add the spells Launch Clockwork Bee and Nazja's Percussive Tempering to your library. Things that are here: a +0 falchion; a +0 mace; a +0 leather armour You start resting. Magic restored. You open the door. Found a bloodstained altar of Trog. There is an open door here. There is a bloodstained altar of Trog here. There is an open door here. You encounter a white imp. The white imp shouts, "Quit, thou yeasty mumble-news reprobate!" You now have enough gold to buy a potion of lignification on D:2, buy a scroll of teleportation on this level, or buy a potion of might on D:2. You can access your shopping list by pressing '$'. You now have 50 gold pieces (gained 14). Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the white imp. The white imp is burned terribly! The white imp is almost dead. The white imp's fire resistance burns away. The white imp gestures at you. The puff of frost hits you. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the white imp. The white imp is burned terribly! You kill the white imp! You start resting. HP restored. You start resting. Magic restored. Found a stone staircase leading down. f - a viscous brown potion You encounter Maggie the Vainglorious. She is wielding a +0 glaive. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash Maggie but do no damage. Maggie attempts to bespell you! You are mesmerised by Maggie! Aiming: Galvanic Breath Press: ? - help, Shift-Dir - straight line Aim: Maggie, wielding a +0 glaive and wearing +0 steam dragon scales (mesmerising, 100% to hit) The arc of electricity hits Maggie! Maggie is struck by an electric surge!! Maggie is moderately wounded. Maggie is severely wounded. Maggie gestures at you while chanting. The bolt of fire hits you. You resist. You closely miss Maggie. Maggie is severely wounded. Maggie hits you with a +0 glaive! You hit Maggie. Maggie is severely wounded. Maggie hits you with a +0 glaive. You slash Maggie! Maggie is poisoned. Maggie is almost dead. Maggie hits you with a +0 glaive. You closely miss Maggie. Maggie is almost dead. Maggie barely misses you. You closely miss Maggie. Maggie is almost dead. Maggie hits you with a +0 glaive! You hit Maggie. Maggie looks as sick as possible! Maggie is almost dead. Maggie barely misses you. You hit Maggie. You are no longer mesmerised. You kill Maggie! Your Fighting skill increases to level 8! Things that are here: a +0 glaive; +0 steam dragon scales; the human corpse of Maggie t - 7 scrolls of teleportation (gained 1) You now have enough gold to buy a scroll of amnesia on D:2, buy a scroll of immolation on D:2, buy a potion of berserk rage on D:2, or buy a scroll of fog on this level. You can access your shopping list by pressing '$'. You now have 63 gold pieces (gained 13). You now have 72 gold pieces (gained 9). You now have 92 gold pieces (gained 20). You now have enough gold to buy a potion of ambrosia on D:2, buy a potion of cancellation on D:2, or buy a potion of heal wounds on D:2. You can access your shopping list by pressing '$'. You now have 100 gold pieces (gained 8). You now have 115 gold pieces (gained 15). Things that are here: a +0 glaive; +0 steam dragon scales; the human corpse of Maggie There is a stone staircase leading down here. You climb downwards. There is a stone staircase leading up here. You climb upwards. There is a stone staircase leading down here. You see here a +0 halberd. You see here a +0 leather armour. Things that are here: a +0 mace; a +0 leather armour; a +0 falchion Items here: )) [ ÷÷. Items here: )) [ ÷÷. Items here: )) [[ ÷. You encounter a wight. It is wielding a +4 great sword. Unknown command. The helpless wight fails to defend itself. You slice the wight!! You destroy the wight! You encounter 3 wights. A wight is wielding a +4 scimitar of freezing. Things that are here: a +4 great sword; a +0 robe Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the wight. The wight is lightly damaged. The wight's fire resistance burns away. You completely miss the wight. The wight is lightly damaged. The wight closely misses you. You completely miss the wight. You tail-slap the wight. The wight is moderately damaged. The wight barely misses you. You closely miss the wight. The wight is moderately damaged. The wight is no longer more vulnerable to fire. The wight hits you with a +4 flail! You feel drained. You hit the wight. Your tail-slap misses the wight. The wight is heavily damaged. The wight closely misses you. You barely miss the wight. The wight is heavily damaged. The wight hits you with a +4 flail! You feel drained. You slash the wight! You destroy the wight! Your Axes skill increases to level 10! Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the wight but do no damage. The wight misses you. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the wight. The wight is moderately damaged. The wight's fire resistance burns away. The wight hits you with a +0 long sword! You feel drained. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the wight but do no damage. The wight misses you. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You miscast Scorch. Nothing appears to happen. The wight barely misses you. You closely miss the wight. The wight is moderately damaged. The wight hits you but does no damage. You slash the wight! The wight is severely damaged. The wight is no longer more vulnerable to fire. The wight barely misses you. You closely miss the wight. The wight is severely damaged. The wight closely misses you. You barely miss the wight. Your tail-slap misses the wight. The wight is severely damaged. The wight hits you with a +0 long sword. You feel drained. You slash the wight! You destroy the wight! You have reached level 10! You hit the wight. The wight is moderately damaged. The wight closely misses you. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the wight. The wight is heavily damaged. The wight's fire resistance burns away. The wight hits you but does no damage. You hit the wight. You tail-slap the wight. The wight is severely damaged. The wight hits you with a +4 scimitar of freezing. The wight freezes you. You slash the wight! You destroy the wight! Items here: )))) [[[[. A - a +4 scimitar of freezing Search for what [? for help]? shield Your magical contamination has completely faded away. There is a stone staircase leading up here. You climb upwards. HP restored. There is a stone staircase leading down here. You see here a +0 club. There is a stone staircase leading up, spattered with blood here. You climb upwards. There is a stone staircase leading down here. Things that are here: a +0 whip; a gnoll skeleton There is an escape hatch in the floor, spattered with blood here. You see here a +0 orcbow. You see here a +0 leather armour. There is a stone staircase leading up here. You climb upwards. There is a stone staircase leading down here. You see here an adder skeleton. There is a stone staircase leading up here. You climb upwards. There is a stone staircase leading down here. There is a stone staircase leading up here. You climb upwards. Level annotation: exclusion: grate There is a stone staircase leading down here. You enter the shallow water. Moving in this stuff is going to be slow. Magic restored. You see here an adder skeleton. There is an open translucent door here. There is an entrance to Toocim's Distillery here. C - a potion of cancellation Thank you for shopping at Toocim's Distillery! You can access your shopping list by pressing '$'. Unknown command. What level of the Dungeon? (default 2, ? - help) There is an open translucent door here. You enter the shallow water. Moving in this stuff is going to be slow. There is a stone staircase leading down here. You climb downwards. There is a stone staircase leading up here. Things that are here: a +0 club; a goblin skeleton There is a stone staircase leading down here. You climb downwards. There is a stone staircase leading up here. You see here a +0 spear. There is a stone staircase leading down here. You climb downwards. There is a stone staircase leading up here. There is a stone staircase leading down here. You climb downwards. The butterfly leaves your sight. There is a stone staircase leading up, spattered with blood here. Things that are here: an iguana skeleton; a black bear skeleton There is a stone staircase leading down here. You climb downwards. There is a stone staircase leading up here. Unknown command. There is a stone staircase leading down here. Items here: )) [ ÷÷. Things that are here: a +0 club; an orc skeleton Items here: ))) [[[[. Items here: ))) [[[[. Done exploring. There is a stone staircase leading down here. Saving game... please wait. Welcome back, RoGGa the Black Draconian Cinder Acolyte. The flames of Ignis gently warm you. Press ? for a list of commands and other information. You climb downwards. There is a stone staircase leading up here. You climb upwards. There is a stone staircase leading down here. You see here a +0 long sword. There is a stone staircase leading down here. You climb downwards. There is a stone staircase leading up here. Found a shadowy altar of Dithmenos. i - a scroll of identify As you read the scroll of identify, it crumbles to dust. f -> h - a potion of haste You open the door. There is an open door here. You encounter an orc wizard and an orc. You encounter an orc. It is wielding a +0 short sword. The orc leaves your sight. You throw a boomerang. The boomerang hits the orc. The orc shouts! The orc is almost dead. You hear a shout! You throw a boomerang. The boomerang closely misses the orc. You encounter an orc. It is wielding a +0 dagger. You throw a boomerang. The boomerang closely misses the orc wizard. The boomerang barely misses the orc. Cast which spell? (? or * to list) Flames lash the orc. You kill the orc! You encounter an orc. It is wielding a +0 mace. You slash the orc wizard! You kill the orc wizard! Your Translocations skill increases to level 3! Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the orc. You kill the orc! Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the orc. The orc is heavily wounded. The orc's fire resistance burns away. You slash the orc! You kill the orc! Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the orc. The orc is almost dead. The orc's fire resistance burns away. Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the orc. The orc is burned terribly! You kill the orc! You start resting. Magic restored. Items here: )) [[ ††. Things that are here: a +0 mace; a +0 ring mail; an orc corpse Things that are here: a +0 dagger; a +0 leather armour; a +0 club You now have enough gold to buy a potion of curing on D:2. You can access your shopping list by pressing '$'. You now have 37 gold pieces (gained 18). There is a stone staircase leading up here. You now have enough gold to buy a potion of lignification on D:2, buy a scroll of teleportation on D:7, buy a potion of might on D:2, buy a scroll of amnesia on D:2, or buy a scroll of immolation on D:2. You can access your shopping list by pressing '$'. You now have 57 gold pieces (gained 20). You encounter a yak. The yak bellows! You encounter a yak. x2 You throw a boomerang. The boomerang hits the yak. The yak is lightly wounded. The yak bellows! Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the yak. The yak is lightly wounded. The yak's fire resistance burns away. The yak bellows! Casting: Scorch (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Flames lash the yak. The yak is burned terribly! The yak is moderately wounded. You barely miss the yak. You tail-slap the yak! The yak is heavily wounded. The yak barely misses you. You slash the yak! The yak is almost dead. The yak gores you. You barely miss the yak. The yak is severely wounded. The yak gores you. You barely miss the yak. Your tail-slap misses the yak. The yak gores you but does no damage. You slash the yak! The yak looks as sick as possible! The yak is moderately wounded. The yak gores you but does no damage. You slash the yak! The yak looks as sick as possible! The yak is severely wounded. The yak is no longer more vulnerable to fire. The yak barely misses you. You barely miss the yak. The yak is almost dead. The yak barely misses you. You hit the yak. The yak looks as sick as possible! Your tail-slap misses the yak. The yak is almost dead. The yak barely misses you. You hit the yak. You kill the yak! You feel power welling in your lungs. You slash the yak! You kill the yak! Your life force feels restored. You hit the yak. The yak looks as sick as possible! The yak is lightly wounded. The yak completely misses you. You slash the yak! The yak is heavily wounded. The yak barely misses you. You hit the yak. The yak looks as sick as possible! Your tail-slap misses the yak. The yak is heavily wounded. The yak barely misses you. You slash the yak! The yak looks as sick as possible! The yak is almost dead. You kill the yak! Your Dodging skill increases to level 6! No target in view! No target in view! Things that are here: a yak corpse; a yak corpse As you open the door, it creaks loudly! You encounter a rock fish. x2 Found a stone staircase leading down. There is an open door here. You barely miss the rock fish. You tail-slap the rock fish, but do no damage. The rock fish closely misses you. You barely miss the rock fish. The rock fish bites you but does no damage. You barely miss the rock fish. Your tail-slap misses the rock fish. The rock fish barely misses you. You hit the rock fish. The rock fish is poisoned. You tail-slap the rock fish, but do no damage. The rock fish is heavily wounded. You hit the rock fish. The rock fish is poisoned. The rock fish bites you! The rock fish bites you but does no damage. You slice the rock fish!! You kill the rock fish! You hit the rock fish. The rock fish looks as sick as possible! The rock fish bites you. You hit the rock fish but do no damage. The rock fish looks as sick as possible! You tail-slap the rock fish, but do no damage. The rock fish is moderately wounded. The rock fish bites you but does no damage. You barely miss the rock fish. The rock fish is heavily wounded. The rock fish bites you. You slash the rock fish! You kill the rock fish! No target in view! There is a stone staircase leading down here. You start resting. HP restored. You climb downwards. >>>>>>>>>>>>>>>>>>>>>> Version history: Game started: 1.0-a0-310-gda0cea5cd2 1.0-a0-312-gf5a5840f31 1.0-a0-313-gf14ee62d7b 1.0-a0-316-g3af901601f 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: 1, arena_suspended: 0 prev_cmd = CMD_GO_DOWNSTAIRS repeat_cmd = CMD_NO_CMD Player: {{{{{{{{{{{ Name: [RoGGa] Species: Black Draconian Job: Cinder Acolyte HP: 88/88; mods: 0/0 MP: 11/11; mod: 0 Stats: 19 16 7 Position: (0, 0) , god: Ignis (27), turn_is_over: 0, banished: 0 Delayed (1): type: descending_stairs duration: 0 Skills (mode: manual) Name | can_currently_train | train | training | level | points | progress Fighting | X | 1 | 16 | 8 | 1601 | 88/379 Short Blades | X | 0 | 0 | 0 | 0 | 0/50 Long Blades | X | 0 | 0 | 0 | 0 | 0/50 Axes | X | 2 | 34 | 10 | 2924 | 149/600 Maces & Flails | X | 0 | 0 | 0 | 0 | 0/50 Polearms | X | 0 | 0 | 0 | 0 | 0/50 Staves | X | 0 | 0 | 0 | 0 | 0/50 Ranged Weapons | X | 0 | 0 | 0 | 0 | 0/59 Throwing | X | 0 | 0 | 0 | 0 | 0/59 Dodging | X | 1 | 16 | 6 | 1266 | 18/416 Stealth | X | 0 | 0 | 2 | 150 | 0/150 Shields | X | 0 | 0 | 0 | 0 | 0/50 Unarmed Combat | X | 0 | 0 | 0 | 0 | 0/50 Spellcasting | X | 0 | 0 | 1 | 60 | 1/119 Conjurations | X | 0 | 0 | 0 | 0 | 0/50 Hexes | X | 0 | 0 | 0 | 0 | 0/59 Summonings | X | 0 | 0 | 0 | 0 | 0/50 Necromancy | X | 0 | 0 | 0 | 0 | 0/50 Translocations | X | 2 | 34 | 3 | 423 | 123/200 Forgecraft | X | 0 | 0 | 0 | 0 | 0/50 Fire Magic | X | 0 | 0 | 5 | 750 | 0/300 Ice Magic | X | 0 | 0 | 0 | 0 | 0/50 Air Magic | X | 0 | 0 | 0 | 0 | 0/35 Earth Magic | X | 0 | 0 | 0 | 0 | 0/70 Alchemy | X | 0 | 0 | 0 | 0 | 0/50 Invocations | X | 0 | 0 | 0 | 0 | 0/42 Evocations | X | 0 | 0 | 0 | 0 | 0/50 Shapeshifting | X | 0 | 0 | 0 | 0 | 0/59 Spell bugs: Durations: #33: 1 #114: 35 Attributes: #12: 457 #13: 400 #49: 511 #73: 100038 Mutations: electricity resistance: 1 (innate) cold-blooded: 1 (innate) armoured tail: 1 (innate) Inventory bugs: Equipment: eq slot #9, inv slot #14: +4 ring of protection eq slot #5, inv slot #6: +0 pair of gloves eq slot #1, inv slot #0: +2 war axe of venom eq slot #10, inv slot #15: amulet of regeneration eq slot #8, inv slot #17: +0 cloak eq slot #9, inv slot #20: +4 ring of slaying }}}}}}}}}}} Unlinked item: pearl ring item #0: base: 6; sub: 2; plus: 0; plus2: 0; special: 21 quant: 1; ident: 0x00000000; ident_type: 0 x: 36; y: 28; link: 27000 env.igrid(36,28) = 27000 Unlinked item: 27 gold pieces item #1: base: 13; sub: 0; plus: 0; plus2: 0; special: 0 quant: 27; ident: 0x00000000; ident_type: 0 x: 66; y: 32; link: 27000 env.igrid(66,32) = 27000 Unlinked item: chain mail item #2: base: 2; sub: 4; plus: 0; plus2: 0; special: 0 quant: 1; ident: 0x00000000; ident_type: 0 x: 66; y: 36; link: 27000 env.igrid(66,36) = 27000 Unlinked item: scroll of teleportation item #3: base: 5; sub: 1; plus: 0; plus2: 0; special: 365939 quant: 1; ident: 0x00000000; ident_type: 1 x: 66; y: 38; link: 27000 env.igrid(66,38) = 27000 Unlinked item: potion of brilliance item #4: base: 7; sub: 4; plus: 0; plus2: 0; special: 179 quant: 1; ident: 0x00000000; ident_type: 1 x: 60; y: 40; link: 27000 env.igrid(60,40) = 27000 Unlinked item: broad axe item #5: base: 0; sub: 20; plus: 0; plus2: 0; special: 0 quant: 1; ident: 0x00000000; ident_type: 0 x: 64; y: 40; link: 27000 env.igrid(64,40) = 27000 Unlinked item: scroll of vulnerability item #6: base: 5; sub: 22; plus: 0; plus2: 0; special: 357244 quant: 1; ident: 0x00000000; ident_type: 1 x: 68; y: 40; link: 27000 env.igrid(68,40) = 27000 Unlinked item: 30 gold pieces item #7: base: 13; sub: 0; plus: 0; plus2: 0; special: 0 quant: 30; ident: 0x00000000; ident_type: 0 x: 66; y: 42; link: 27000 env.igrid(66,42) = 27000 Unlinked item: potion of heal wounds item #8: base: 7; sub: 1; plus: 0; plus2: 0; special: 18 quant: 1; ident: 0x00000000; ident_type: 1 x: 66; y: 44; link: 27000 env.igrid(66,44) = 27000 Unlinked item: 5 javelins item #9: base: 1; sub: 4; plus: 0; plus2: 0; special: 0 quant: 5; ident: 0x00000000; ident_type: 0 x: 66; y: 48; link: 27000 env.igrid(66,48) = 27000 Unlinked temporary item: whip item #45: base: 0; sub: 1; plus: 0; plus2: 0; special: 0 quant: 1; ident: 0x00000000; ident_type: 0 x: 0; y: 0; link: 27000 Webtiles message buffer: Webtiles JSON stack: Map: ################################################################################ ################################################################################ ################################################################################ #################..........................................................##### #################..........######.########>######.#######.######.#########.##### #################..........######.########.######.#######.######.#########.##### #################..........######.########.######.#######.################.##### #################..........######.########.######.#######.########∩#######.##### #################.........................................######.....#####.##### #################..........###############........#######...>........#####.##### #################........#####.............#####..#######.######.....#####.##### #################........#####.###.###.###.#####..#######.########∩#######.##### #################...^....####..##..###..##..####..#######.################.##### #################<.......####.###.#####.###.####..#######.######...........##### #################........###..##..#####..##..###..........######.#########.##### #################........###.###.#######.###.####.#######.######.#########.##### #################........##..##..#######..##..###.#######.######.#########.##### #################........##.###.#########.###.###.#######........#########.##### #################........#..##..#########..##..##.#######.######.#########.##### #################........#.###.###########.###.##.#######.######.#########.##### #################..........##..###########..##...<#######.######.#########.##### #################.........###.#############.###.#.#######.######.#########.##### #################..........#..#############..#....#######.######.#########.##### #################........#.#.###############.#.#..#######>######<#########.##### #################.########...###############...##.........######...........##### #################.#########.#################.###................#########.##### #################.#########..###############..###.........######.#########.##### #################.##########.###############.####.........######.#########.##### #################.##########.................####.........######.#########.##### #################.###########.#############.#####.........######.#########.##### #################.###########..###########..####..........######.#########.##### #################.############.###########.######.........######.###.......##### #################.############.............######.#######.########.#######.##### #################.########.################.#####.#######......##.#.######.##### #################.########.######.#########.#####.#######.....##.###.#####.##### #################.########.######.#########.#####.#######....##...#...####.##### #################.########..................#####.#######....#..#...#..###.##### #################.########.######.#########.#####...........##.###.###.##..##### #################.########.######.#########.#####.#######..##...#...#...##.##### #################.########.######.#########.#####.#######..#..#...#...#..+.##### #################.########.######.#########.#####.#######..#.###.###.###.+.##### #################.########.######.#########.#####.#######..#..#...#...#..+.##### #################.########.######...........#####.#######.###...#...#...##.##### #################.########........#########.#####.#######.####.###.###.##..##### #################.########.######.#########.......#######.####..#...#..###.##### #################.########.######.#########.#####.#######.#####...#...####.##### #################.########.######.#########.#####.........######.###.#####.##### #################.########.######.#########.#####.#######.#######.#.######.##### #################.########.######.#########.#####.#######.########.#######.##### #################.########........#########.#####.#######.######.#########.##### #################..........######.#########.#####.#######..................##### #################.########.######.#########.#####.#######.########.#######.##### #################.########.######.#########.#####.#######.########.#######.##### #################.########.######.#########.#####.#######.########.#######.##### #################.########.######.#########.#####.#######.########.#######.##### #################.########.######.#########.#####.#######.########.#######.##### #################.>........................................................##### ################################################################################ ################################################################################ ################################################################################ ################################################################################ ################################################################################ ################################################################################ ################################################################################ ################################################################################ ################################################################################ ################################################################################ ################################################################################ ################################################################################ ################################################################################ dlua errors: clua stack: dlua stack: Lua persistent data: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>> Lua marker contents: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>