diff --git a/data/json/npcs/exodii/exodii_merchant_definitions.json b/data/json/npcs/exodii/exodii_merchant_definitions.json index 4052f8249d416..6be7142d4f890 100644 --- a/data/json/npcs/exodii/exodii_merchant_definitions.json +++ b/data/json/npcs/exodii/exodii_merchant_definitions.json @@ -49,7 +49,7 @@ { "skill": "gun", "bonus": { "rng": [ 2, 4 ] } }, { "skill": "rifle", "bonus": { "rng": [ 2, 4 ] } }, { "skill": "unarmed", "bonus": { "rng": [ 2, 4 ] } }, - { "skill": "speech", "bonus": { "rng": [ 5, 8 ] } } + { "skill": "speech", "bonus": 10 } ] }, { diff --git a/data/mods/CBM_Dungeon_Test/LS_furniture_and_terrain.json b/data/mods/CBM_Dungeon_Test/LS_furniture_and_terrain.json new file mode 100644 index 0000000000000..8e35a64c15570 --- /dev/null +++ b/data/mods/CBM_Dungeon_Test/LS_furniture_and_terrain.json @@ -0,0 +1,455 @@ +[ + { + "type": "terrain", + "id": "t_nl_mist", + "name": "swirling mist", + "description": "A swirling, exotic pattern of shapes, floating in an ill-defined darkness. Staring at it too long hurts your brain.", + "symbol": "LINE_OXOX", + "color": "green", + "coverage": 100, + "move_cost": -1, + "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "NO_SCENT", "AUTO_WALL_SYMBOL", "BLOCK_WIND" ] + }, + { + "type": "terrain", + "id": "t_nl_chasm", + "name": "sparkling chasm", + "description": "At a glance this just looks like darkness. Then, gazing deeper, you think it might be full of stars. Still deeper, perhaps those stars are eyes?", + "symbol": "*", + "color": "dark_gray", + "move_cost": 1, + "coverage": 100, + "trap": "tr_nl_chasm", + "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "INDOORS", "FLAT", "NOITEM" ] + }, + { + "type": "terrain", + "id": "t_nl_obelisk_0", + "name": "Obelisk0", + "description": "Obelisk", + "looks_like": "f_machinery_old", + "symbol": "A", + "color": "green", + "coverage": 70, + "move_cost": -1, + "flags": [ "NOITEM", "NO_SCENT", "BLOCK_WIND" ], + "examine_action": { + "type": "effect_on_condition", + "effect_on_conditions": [ + { + "id": "EOC_LS_Obelisk_0_have", + "condition": { "u_has_trait": "LS_Passcode_0" }, + "effect": [ { "u_message": "You already know the Thief's Pass. The obelisk is inert." } ] + }, + { + "id": "EOC_LS_Obelisk_0_grant", + "condition": { "and": [ { "u_has_var": "ls_had_a_passcode", "value": "yes" }, { "not": { "u_has_trait": "LS_Passcode_0" } } ] }, + "effect": [ + { + "u_message": "You see a tall, olive green, metallic pillar covered in swirling patterns. As you focus on it, you feel a burning sensation on your skin. You have learned the Thief's Passcode.", + "popup": true + }, + { "u_add_trait": "LS_Passcode_0" } + ] + }, + { + "id": "EOC_LS_Obelisk_0_firsttime", + "condition": { "not": { "u_has_var": "ls_had_a_passcode", "value": "yes" } }, + "effect": [ + { + "u_message": "You see a tall, olive green, metallic pillar covered in swirling patterns. As you focus on it, you feel a burning sensation on your skin. a tattoo of your own face, smirking; it's the 'Thief's Passcode'. ", + "popup": true + }, + { "u_add_trait": "LS_Passcode_0" }, + { "u_add_var": "ls_had_a_passcode", "value": "yes" } + ] + } + ] + } + }, + { + "type": "terrain", + "id": "t_nl_obelisk_1", + "copy-from": "t_nl_obelisk_0", + "name": "Obelisk1", + "description": "Obelisk", + "symbol": "A", + "color": "blue", + "examine_action": { + "type": "effect_on_condition", + "effect_on_conditions": [ + { + "id": "EOC_LS_Obelisk_1_have", + "condition": { "u_has_trait": "LS_Passcode_1" }, + "effect": [ { "u_message": "You already know the Circle of Wings Passcode. The obelisk is inert." } ] + }, + { + "id": "EOC_LS_Obelisk_1_grant", + "condition": { "and": [ { "u_has_var": "ls_had_a_passcode", "value": "yes" }, { "not": { "u_has_trait": "LS_Passcode_1" } } ] }, + "effect": [ + { + "u_message": "You see a squat, angry-looking, indigo metallic pillar covered carved in relief with the image of flying birds. As you focus on it, you feel a burning sensation on your skin. You have learned the Circle of Wings Passcode.", + "popup": true + }, + { "u_add_trait": "LS_Passcode_1" } + ] + }, + { + "id": "EOC_LS_Obelisk_1_firsttime", + "condition": { "not": { "u_has_var": "ls_had_a_passcode", "value": "yes" } }, + "effect": [ + { + "u_message": "You see a squat, angry-looking, indigo metallic pillar covered carved in relief with the image of flying birds. As your eyes are drawn to it, you feel a burning sensation on your skin. a tattoo of wings in a circle, running into themselves like an ouroboros; it's the 'Circle of Wings Passcode'. ", + "popup": true + }, + { "u_add_trait": "LS_Passcode_1" }, + { "u_add_var": "ls_had_a_passcode", "value": "yes" } + ] + } + ] + } + }, + { + "type": "terrain", + "id": "t_nl_obelisk_2", + "copy-from": "t_nl_obelisk_0", + "name": "Obelisk2", + "description": "Obelisk", + "symbol": "A", + "color": "yellow", + "examine_action": { + "type": "effect_on_condition", + "effect_on_conditions": [ + { + "id": "EOC_LS_Obelisk_2_have", + "condition": { "u_has_trait": "LS_Passcode_2" }, + "effect": [ { "u_message": "You already know the Hard Nails Passcode. The obelisk is inert." } ] + }, + { + "id": "EOC_LS_Obelisk_2_grant", + "condition": { "and": [ { "u_has_var": "ls_had_a_passcode", "value": "yes" }, { "not": { "u_has_trait": "LS_Passcode_2" } } ] }, + "effect": [ + { + "u_message": "You see a thick, powerful, gold-burnished pillar covered in what look like deep fingernail scratches. As you focus on it, you feel a burning sensation on your skin. You have learned the Hard Nails Passcode.", + "popup": true + }, + { "u_add_trait": "LS_Passcode_2" } + ] + }, + { + "id": "EOC_LS_Obelisk_2_firsttime", + "condition": { "not": { "u_has_var": "ls_had_a_passcode", "value": "yes" } }, + "effect": [ + { + "u_message": "You see a thick, powerful, gold-burnished pillar covered in what look like deep fingernail scratches. As your eyes are drawn to it, you feel a burning sensation on your skin. a tattoo of a hand clawing down a sheet of metal; it's the 'Hard Nails Passcode'. ", + "popup": true + }, + { "u_add_trait": "LS_Passcode_2" }, + { "u_add_var": "ls_had_a_passcode", "value": "yes" } + ] + } + ] + } + }, + { + "type": "terrain", + "id": "t_nl_obelisk_3", + "copy-from": "t_nl_obelisk_0", + "name": "Obelisk3", + "description": "Obelisk", + "symbol": "A", + "color": "red", + "examine_action": { + "type": "effect_on_condition", + "effect_on_conditions": [ + { + "id": "EOC_LS_Obelisk_3_have", + "condition": { "u_has_trait": "LS_Passcode_3" }, + "effect": [ { "u_message": "You already know the Laughing Man Passcode. The obelisk is inert." } ] + }, + { + "id": "EOC_LS_Obelisk_3_grant", + "condition": { "and": [ { "u_has_var": "ls_had_a_passcode", "value": "yes" }, { "not": { "u_has_trait": "LS_Passcode_3" } } ] }, + "effect": [ + { + "u_message": "You see a beautiful pillar the color of roses or blood, absolutely perfect in its proportions. As your eyes are drawn to it, you feel a burning sensation on your skin. You have learned the Laughing Man Passcode.", + "popup": true + }, + { "u_add_trait": "LS_Passcode_3" } + ] + }, + { + "id": "EOC_LS_Obelisk_3_firsttime", + "condition": { "not": { "u_has_var": "ls_had_a_passcode", "value": "yes" } }, + "effect": [ + { + "u_message": "You see a beautiful pillar the color of roses or blood, absolutely perfect in its proportions. As your eyes are drawn to it, you feel a burning sensation on your skin. a tattoo of a handsome man laughing. At first glance it appears charming and friendly, but the longer you examine it, the more it appears to be inhumanly cold and cruel; it's the 'Laughing Man Passcode'. ", + "popup": true + }, + { "u_add_trait": "LS_Passcode_3" }, + { "u_add_var": "ls_had_a_passcode", "value": "yes" } + ] + } + ] + } + }, + { + "type": "terrain", + "id": "t_nl_door_l", + "name": "mysterious closed door", + "looks_like": "t_nl_door_c", + "description": "A dark door of twisted metal, etched with symbols and writing that you can't piece together.", + "symbol": "$", + "color": "blue", + "move_cost": -1, + "coverage": 100, + "roof": "t_nl_roof", + "flags": [ + "NOITEM", + "CONNECT_WITH_WALL", + "BLOCK_WIND", + "SUPPORTS_ROOF", + "LOCKED", + "REDUCE_SCENT", + "BARRICADABLE_DOOR", + "OPENCLOSE_INSIDE" + ], + "prying": { + "result": "t_nl_door_o", + "message": "With great effort, you pry open the door.", + "prying_data": { + "difficulty": 22, + "prying_level": 3, + "noisy": true, + "failure": "You pry, but it seems like your tools will give out before the door does." + } + }, + "oxytorch": { + "result": "t_nl_scrap_floor", + "duration": "5 m", + "byproducts": [ { "item": "steel_plate", "count": [ 0, 1 ] }, { "item": "steel_chunk", "count": [ 3, 8 ] } ] + }, + "examine_action": "locked_object" + }, + { + "type": "terrain", + "id": "t_nl_door_c", + "name": "mysterious closed door", + "looks_like": "t_door_metal_c", + "description": "A dark door of twisted metal, etched with symbols and writing that you can't piece together.", + "symbol": "$", + "color": "blue", + "move_cost": -1, + "coverage": 100, + "roof": "t_nl_roof", + "flags": [ + "NOITEM", + "CONNECT_WITH_WALL", + "BLOCK_WIND", + "SUPPORTS_ROOF", + "REDUCE_SCENT", + "BARRICADABLE_DOOR", + "OPENCLOSE_INSIDE" + ], + "open": "t_nl_door_o" + }, + { + "type": "terrain", + "id": "t_nl_door_o", + "name": "mysterious open door", + "looks_like": "t_door_metal_o", + "description": "A dark door of twisted metal, etched with symbols and writing that you can't piece together. It has been swung open.", + "symbol": "/", + "color": "blue", + "move_cost": 2, + "coverage": 20, + "roof": "t_nl_roof", + "flags": [ + "NOITEM", + "CONNECT_WITH_WALL", + "BLOCK_WIND", + "SUPPORTS_ROOF", + "REDUCE_SCENT", + "BARRICADABLE_DOOR", + "OPENCLOSE_INSIDE" + ], + "close": "t_nl_door_c" + }, + { + "type": "terrain", + "id": "t_nl_metal_wall", + "name": "metallic wall", + "looks_like": "t_wall_metal", + "description": "A durable wall of ordinary looking sheet metal, at first. Staring closer, the welds and joins seem to form strange fractal patterns.", + "symbol": "LINE_OXOX", + "color": "cyan", + "move_cost": 0, + "coverage": 100, + "roof": "t_nl_roof", + "connect_groups": "WALL", + "connects_to": "WALL", + "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "NO_SCENT", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], + "oxytorch": { + "result": "t_nl_broken_metal_floor", + "duration": "24 seconds", + "byproducts": [ { "item": "steel_plate", "count": [ 2, 3 ] }, { "item": "steel_chunk", "count": [ 12, 20 ] } ] + }, + "bash": { + "str_min": 150, + "str_max": 400, + "sound": "metal wailing!", + "sound_fail": "clang!", + "ter_set": "t_nl_broken_metal_floor", + "items": [ + { "item": "steel_lump", "count": [ 1, 4 ] }, + { "item": "steel_chunk", "count": [ 3, 12 ] }, + { "item": "scrap", "count": [ 9, 36 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_nl_metal_wall_edge", + "name": "metallic wall", + "copy-from": "t_nl_metal_wall", + "description": "A durable wall of ordinary looking sheet metal, at first. Staring closer, the welds and joins seem to form strange fractal patterns.", + "symbol": "LINE_OXOX", + "color": "cyan", + "connect_groups": "WALL", + "connects_to": "WALL", + "bash": { + "str_min": 150, + "str_max": 400, + "sound": "metal wailing!", + "sound_fail": "clang!", + "ter_set": "t_nl_mist", + "items": [ + { "item": "steel_lump", "count": [ 1, 4 ] }, + { "item": "steel_chunk", "count": [ 3, 12 ] }, + { "item": "scrap", "count": [ 9, 36 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_nl_scrap_wall", + "name": "scrap metal wall", + "looks_like": "t_scrap_wall", + "description": "A relatively simple wall made of cobbled-together scrap metal. The wires and bolts holding it together seem to be in just slightly different configurations whenever you look back at it.", + "symbol": "LINE_OXOX", + "color": "dark_gray", + "move_cost": 0, + "coverage": 100, + "roof": "t_nl_roof", + "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "REDUCE_SCENT", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], + "bash": { + "str_min": 80, + "str_max": 200, + "sound": "metal crying!", + "sound_fail": "clang!", + "ter_set": "t_nl_broken_metal_floor", + "items": [ { "item": "steel_chunk", "count": [ 10, 22 ] } ] + } + }, + { + "type": "terrain", + "id": "t_nl_metal_floor", + "name": "metallic floor", + "description": "Diamond-treaded metallic flooring. Something seems off about the diamond tread; you keep imagining that the bumps spell out words, but when you look closer they're in very ordinary patterns.", + "symbol": ".", + "color": "light_cyan", + "connect_groups": "METALFLOOR", + "connects_to": "METALFLOOR", + "looks_like": "t_metal_floor", + "move_cost": 2, + "roof": "t_nl_roof", + "flags": [ "TRANSPARENT", "INDOORS", "FLAT", "ROAD" ], + "bash": { + "sound": "thump", + "ter_set": "t_nl_broken_metal_floor", + "str_min": 200, + "str_max": 500, + "str_min_supported": 200, + "items": [ { "item": "steel_chunk", "count": [ 2, 4 ] }, { "item": "scrap", "count": [ 1, 3 ] } ] + } + }, + { + "type": "terrain", + "id": "t_nl_broken_metal_floor", + "name": "broken metal floor", + "description": "Something has cratered this metal flooring. It will be difficult to move things across. Through the cracks and dents emanates a faint eery glow.", + "symbol": ".", + "color": "light_cyan", + "move_cost": 2, + "roof": "t_nl_roof", + "flags": [ "TRANSPARENT", "INDOORS" ], + "looks_like": "t_broken_metal_floor", + "bash": { + "sound": "thump", + "ter_set": "t_nl_chasm", + "str_min": 200, + "str_max": 500, + "str_min_supported": 200, + "items": [ + { "item": "steel_lump", "count": [ 1, 4 ] }, + { "item": "steel_chunk", "count": [ 3, 12 ] }, + { "item": "scrap", "count": [ 9, 36 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_nl_scrap_floor", + "name": "scrap metal floor", + "description": "A floor assembled from various scraps of metal. Though their placement seems random, you keep seeing spots where they form faces.", + "symbol": ".", + "color": "cyan", + "move_cost": 2, + "roof": "t_nl_roof", + "looks_like": "t_scrap_floor", + "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "ROAD" ], + "bash": { + "str_min": 50, + "str_max": 400, + "sound": "SMASH!", + "ter_set": "t_nl_chasm", + "str_min_supported": 100, + "items": [ { "item": "steel_chunk", "count": [ 5, 11 ] } ] + } + }, + { + "type": "terrain", + "id": "t_nl_catwalk", + "name": "catwalk", + "description": "This catwalk extends over a deep chasm of swirling shadow.", + "symbol": "#", + "color": "dark_gray", + "move_cost": 2, + "roof": "t_nl_roof", + "flags": [ "TRANSPARENT", "INDOORS" ], + "looks_like": "t_metal_floor", + "bash": { + "sound": "thump", + "ter_set": "t_nl_chasm", + "str_min": 100, + "str_max": 200, + "str_min_supported": 100, + "items": [ + { "item": "steel_lump", "count": [ 1, 4 ] }, + { "item": "steel_chunk", "count": [ 3, 12 ] }, + { "item": "scrap", "count": [ 9, 36 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_nl_roof", + "name": "swirling metal roof", + "description": "A section of sturdy metal roofing that seems to swirl and twist with an unfamiliar, ever-shifting pattern.", + "symbol": ".", + "looks_like": "t_metal_roof", + "color": "dark_gray", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAT", "ROAD" ] + } +] diff --git a/data/mods/CBM_Dungeon_Test/labryinth_mapgen_palettes.json b/data/mods/CBM_Dungeon_Test/labryinth_mapgen_palettes.json new file mode 100644 index 0000000000000..35230b50fca02 --- /dev/null +++ b/data/mods/CBM_Dungeon_Test/labryinth_mapgen_palettes.json @@ -0,0 +1,77 @@ +[ + { + "type": "palette", + "id": "labyrinthine_base_palette", + "terrain": { + "|": "t_nl_metal_wall", + "_": "t_nl_metal_floor", + ".": "t_nl_catwalk", + "!": "t_nl_metal_wall_edge", + "v": "t_nl_chasm", + "+": "t_nl_door_c", + "=": "t_nl_door_l", + "ϴ": "t_nl_catwalk", + "o": [ [ "t_nl_catwalk", 3 ], [ "t_nl_chasm", 1 ] ] + }, + "furniture": { + "â": "f_autodoc", + "ä": "f_autodoc_couch", + "A": "f_scrap_antenna", + "b": "f_exodii_charger", + "B": "f_exodii_charger_cheap", + "c": [ [ "f_metal_crate_r", 1 ], [ "f_metal_crate_c", 3 ] ], + "C": [ [ "f_metal_crate_r", 9 ], [ "f_metal_crate_c", 1 ] ], + "¢": [ "f_metal_crate_r", "f_metal_crate_c", [ "f_null", 2 ] ], + "Ç": "f_control_station", + "d": "f_dialysis", + "E": "f_exodii_scanner", + "F": "f_curtain", + "l": "f_locker", + "L": "f_exodii_lamp", + "ϴ": [ [ "f_null", 75 ], [ "f_exodii_lamp", 20 ], [ "f_electrical_conduit", 5 ] ], + "M": "f_machinery_electronic", + "U": "f_utility_shelf", + "P": "f_exodii_pump", + "(": "f_electrical_conduit", + "Ƥ": "f_exodii_printer_large", + "ƥ": "f_exodii_printer_small", + "Ṫ": "f_metal_table", + "ϟ": "f_capacitor", + "ß": "f_metal_bench" + }, + "monsters": { + "_": { "monster": "GROUP_Labyrinth_Room", "density": 0.00015 }, + ".": { "monster": "GROUP_Labyrinth_Hallmonitors", "density": 0.0003 } + } + }, + { + "type": "palette", + "id": "labyrinthine_item_palette_utility_tier0", + "items": { + "c": { "item": "LS_SUS_crate_tier0_materials", "chance": 75 }, + "C": { "item": "LS_SUS_crate_tier0_machineparts", "chance": 75 }, + "U": { "item": "LS_SUS_shelf_tier0_tools", "chance": 35 }, + "l": { "item": "LS_SUS_shelf_tier0_tools", "chance": 55 }, + "Ṫ": { "item": "LS_SUS_table_items_workspace", "chance": 25 } + } + }, + { + "type": "palette", + "id": "labyrinthine_item_palette_dining_tier0", + "items": { + "c": { "item": "LS_SUS_crate_tier0_supplies", "chance": 45 }, + "C": { "item": "LS_SUS_crate_tier0_supplies", "chance": 75 }, + "U": { "item": "LS_SUS_shelf_tier0_food", "chance": 35 }, + "Ṫ": { "item": "LS_SUS_table_items_mess", "chance": 25 } + } + }, + { + "type": "palette", + "id": "labyrinthine_item_palette_bunk_room_tier0", + "items": { + "l": { "item": "LS_SUS_bunk_room", "chance": 75 }, + "U": { "item": "LS_SUS_bunk_room", "chance": 25 }, + "Ṫ": { "item": "LS_SUS_table_items_mess", "chance": 35 } + } + } +] diff --git a/data/mods/CBM_Dungeon_Test/labryinth_mongroups.json b/data/mods/CBM_Dungeon_Test/labryinth_mongroups.json new file mode 100644 index 0000000000000..cb370254ad2b8 --- /dev/null +++ b/data/mods/CBM_Dungeon_Test/labryinth_mongroups.json @@ -0,0 +1,36 @@ +[ + { + "type": "monstergroup", + "name": "GROUP_Labyrinth_Room", + "//": "Monsters in rooms in a Labyrinth. Filler.", + "monsters": [ + { "monster": "mon_fleshborg_1_1", "weight": 800 }, + { "monster": "mon_fleshborg_1_1", "weight": 100, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_fleshborg_1_1", "weight": 50, "cost_multiplier": 20, "pack_size": [ 4, 6 ] }, + { "monster": "mon_fleshborg_1_2", "weight": 50, "cost_multiplier": 20 }, + { "monster": "mon_star_vampire", "weight": 1, "cost_multiplier": 0 }, + { "monster": "mon_nuckalavee", "weight": 1, "cost_multiplier": 0 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_Labyrinth_Hallmonitors", + "//": "Monsters walking the catwalks in a Labyrinth. Filler.", + "monsters": [ + { "monster": "mon_fleshborg_1_1", "weight": 850 }, + { "monster": "mon_stiltwalker_1_1", "weight": 550 }, + { "monster": "mon_fleshborg_1_1", "weight": 100, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_fleshborg_1_1", "weight": 50, "cost_multiplier": 20, "pack_size": [ 4, 6 ] }, + { "monster": "mon_stiltwalker_1_1", "weight": 100, "cost_multiplier": 10, "pack_size": [ 2, 3 ] }, + { "monster": "mon_flying_polyp", "weight": 2, "cost_multiplier": 0 }, + { "monster": "mon_hunting_horror", "weight": 2, "cost_multiplier": 0 }, + { "monster": "mon_unseen_hunter", "weight": 2, "cost_multiplier": 0 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_Labyrinth_Turret", + "//": "Monsters walking the catwalks in a Labyrinth. Filler.", + "monsters": [ { "monster": "mon_labyrinth_turret_1_1", "weight": 1000 } ] + } +] diff --git a/data/mods/CBM_Dungeon_Test/labryinth_traps.json b/data/mods/CBM_Dungeon_Test/labryinth_traps.json new file mode 100644 index 0000000000000..7470ed5a662ff --- /dev/null +++ b/data/mods/CBM_Dungeon_Test/labryinth_traps.json @@ -0,0 +1,18 @@ +[ + { + "type": "trap", + "id": "tr_nl_chasm", + "name": "sparkling chasm", + "color": "dark_gray", + "action": "spell", + "copy-from": "tr_swirling_vortex", + "spell_data": { "id": "sparkling_chasm_exit" } + }, + { + "type": "SPELL", + "id": "sparkling_chasm_exit", + "name": "sparkling chasm exit", + "copy-from": "trap_base", + "effect_str": "EOC_LS_Exit_labyrinth_sparkling_chasm" + } +] diff --git a/data/mods/CBM_Dungeon_Test/labyrinth_EOC.json b/data/mods/CBM_Dungeon_Test/labyrinth_EOC.json new file mode 100644 index 0000000000000..84d22116f966d --- /dev/null +++ b/data/mods/CBM_Dungeon_Test/labyrinth_EOC.json @@ -0,0 +1,149 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_LS_Teleport_to_labyrinth", + "effect": [ + { "u_location_variable": { "u_val": "player_location_before_labyrinth" } }, + { + "u_location_variable": { "global_val": "original_labyrinth_portal_loc" }, + "target_params": { + "om_terrain": "labyrinth_entrance", + "om_special": "labyrinthine_structure", + "search_range": 2500, + "cant_see": true, + "z": -7 + }, + "furniture": "f_scrap_antenna", + "target_max_radius": 20, + "x_adjust": 1 + }, + { "u_teleport": { "global_val": "original_labyrinth_portal_loc" }, "fail_message": "Nope!", "force": true }, + { "u_message": "Zwoink.", "popup": true } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LS_Exit_labyrinth", + "effect": [ + { "u_teleport": { "u_val": "player_location_before_labyrinth" }, "force": true }, + { "u_message": "Zworunk", "popup": true } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LS_Exit_labyrinth_sparkling_chasm", + "effect": [ + { "u_teleport": { "u_val": "player_location_before_labyrinth" }, "force": true }, + { + "u_message": "As you fall into the chasm, you see a multitude of stars, spots, and other shapes. It's like your sinking ever further into a liquid solution, and falling through the air at the same time. Your head throbs with pain as the pressure increases, and you black out.", + "popup": true + } + ] + }, + { + "id": "EOC_LS_Computer", + "type": "effect_on_condition", + "effect": [ "open_dialogue" ] + }, + { + "id": "EOC_LS_Passcode_Randomize", + "type": "effect_on_condition", + "effect": [ { "math": [ "LS_Passcode_Selector", "=", "rng(1, 3)" ] } ] + }, + { + "id": "EOC_LS_Passcode_Selector", + "type": "effect_on_condition", + "effect": [ + { + "if": { "and": [ { "math": [ "LS_Passcode_Selector", "==", "3" ] }, { "u_has_trait": "LS_Passcode_3" } ] }, + "then": { "math": [ "LS_Passcode_Selector", "-=", "1" ] } + }, + { + "if": { "and": [ { "math": [ "LS_Passcode_Selector", "==", "2" ] }, { "u_has_trait": "LS_Passcode_2" } ] }, + "then": { "math": [ "LS_Passcode_Selector", "-=", "1" ] } + }, + { + "if": { "and": [ { "math": [ "LS_Passcode_Selector", "==", "1" ] }, { "u_has_trait": "LS_Passcode_1" } ] }, + "then": { "math": [ "LS_Passcode_Selector", "-=", "1" ] } + } + ] + }, + { + "id": "EOC_LS_Bridge_control_deadend_1_Passcode0", + "type": "effect_on_condition", + "effect": [ + { "mapgen_update": "UM_Bridge_control_deadend_1_extend" }, + { + "switch": { "math": [ "rng(1,1)" ] }, + "//": "This is all vestigial now, but saved for when there are multiple map options.", + "cases": [ { "case": 1, "effect": [ { "mapgen_update": "UM_LS_deadend_1_room0" } ] } ] + } + ] + }, + { + "id": "EOC_LS_Bridge_control_deadend_1_Passcode1", + "type": "effect_on_condition", + "effect": [ + { "mapgen_update": "UM_Bridge_control_deadend_1_extend" }, + { + "switch": { "math": [ "rng(1,1)" ] }, + "//": "This is all vestigial now, but saved for when there are multiple map options.", + "cases": [ { "case": 1, "effect": [ { "mapgen_update": "UM_LS_deadend_1_room1" } ] } ] + } + ] + }, + { + "id": "EOC_LS_Bridge_control_deadend_1_Passcode2", + "type": "effect_on_condition", + "effect": [ + { "mapgen_update": "UM_Bridge_control_deadend_1_extend" }, + { + "switch": { "math": [ "rng(1,1)" ] }, + "//": "This is all vestigial now, but saved for when there are multiple map options.", + "cases": [ { "case": 1, "effect": [ { "mapgen_update": "UM_LS_deadend_1_room2" } ] } ] + } + ] + }, + { + "id": "EOC_LS_Bridge_control_deadend_1_Passcode3", + "type": "effect_on_condition", + "effect": [ + { "mapgen_update": "UM_Bridge_control_deadend_1_extend" }, + { + "switch": { "math": [ "rng(1,1)" ] }, + "//": "This is all vestigial now, but saved for when there are multiple map options.", + "cases": [ { "case": 1, "effect": [ { "mapgen_update": "UM_LS_deadend_1_room3" } ] } ] + } + ] + }, + { + "id": "EOC_LS_Unlock", + "type": "effect_on_condition", + "effect": [ { "mapgen_update": "UM_LS_Unlock" } ] + }, + { + "id": "EOC_LS_Lock", + "type": "effect_on_condition", + "effect": [ { "mapgen_update": "UM_LS_Lock" } ] + }, + { + "id": "EOC_LS_ReallyUnlock", + "type": "effect_on_condition", + "effect": [ { "mapgen_update": "UM_LS_ReallyUnlock" } ] + }, + { + "id": "EOC_LS_Passcode_Generator", + "type": "effect_on_condition", + "effect": [ + { + "switch": { "math": [ "LS_Passcode_Selector" ] }, + "cases": [ + { "case": 0, "effect": [ { "mapgen_update": "UM_LS_Passcode_Generator_0" } ] }, + { "case": 1, "effect": [ { "mapgen_update": "UM_LS_Passcode_Generator_1" } ] }, + { "case": 2, "effect": [ { "mapgen_update": "UM_LS_Passcode_Generator_2" } ] }, + { "case": 3, "effect": [ { "mapgen_update": "UM_LS_Passcode_Generator_3" } ] } + ] + } + ] + } +] diff --git a/data/mods/CBM_Dungeon_Test/labyrinth_SUS_itemgroups.json b/data/mods/CBM_Dungeon_Test/labyrinth_SUS_itemgroups.json new file mode 100644 index 0000000000000..b601d6ac9ab3d --- /dev/null +++ b/data/mods/CBM_Dungeon_Test/labyrinth_SUS_itemgroups.json @@ -0,0 +1,159 @@ +[ + { + "type": "item_group", + "id": "LS_SUS_crate_tier0_supplies", + "//": "Filler. Things to keep you going in the dungeon.", + "subtype": "distribution", + "entries": [ + { + "collection": [ + { "//": "first aid items based on what would be in an autodoc suite" }, + { "item": "bandages", "prob": 40, "count": [ 1, 3 ] }, + { "item": "liq_bandage_spray", "prob": 10, "charges": [ 1, -1 ] }, + { "item": "medical_gauze", "prob": 40, "count": [ 1, 6 ] }, + { "item": "disinfectant", "prob": 60 }, + { "item": "towel", "prob": 40 }, + { "item": "blood", "prob": 40 }, + { "item": "bleach", "prob": 20, "charges": [ 6, -1 ] }, + { "group": "saline_bottle_random", "prob": 20 }, + { "group": "cotton_ball_bag_used", "prob": 50 }, + { "item": "chem_nitric_acid", "prob": 10, "charges": [ 1, -1 ] }, + { "item": "chem_hydrogen_peroxide_conc", "prob": 10, "charges": [ 1, -1 ] }, + { "item": "denat_alcohol", "prob": 6, "charges": [ 250, -1 ] }, + { "item": "methed_alcohol", "prob": 4, "charges": [ 250, -1 ] } + ] + }, + { + "collection": [ + { "//": "edibles based on exodii food. Will need new definitions." }, + { "item": "dry_meat", "prob": 20 }, + { "item": "dry_fish", "prob": 30 }, + { "item": "dry_veggy", "prob": 40 }, + { "item": "dry_corn", "prob": 40 }, + { "item": "dry_fruit", "prob": 30 }, + { "item": "salt", "prob": 30 }, + { "item": "flour", "prob": 20 }, + { "item": "cornmeal", "prob": 25 }, + { "item": "oatmeal", "prob": 40 }, + { "item": "barley", "prob": 20 } + ] + } + ] + }, + { + "type": "item_group", + "id": "LS_SUS_crate_tier0_materials", + "//": "Filler. This should actually be a distribution of different collections and should contain a little weird stuff.", + "subtype": "collection", + "entries": [ + { "item": "chain", "prob": 30, "count": [ 2, 15 ] }, + { "item": "steel_chunk", "prob": 40, "count": [ 2, 10 ] }, + { "item": "spring", "prob": 20, "count": [ 2, 10 ] }, + { "item": "steel_lump", "prob": 40, "count": [ 1, 5 ] }, + { "item": "frame", "prob": 10, "count": [ 1, 10 ] }, + { "item": "frame", "prob": 10, "count": [ 1, 5 ] }, + { "item": "scrap", "prob": 40, "count": [ 5, 40 ] }, + { "item": "pipe", "prob": 20, "count": [ 2, 8 ] }, + { "item": "spike", "prob": 50, "count": [ 3, 40 ] }, + { "item": "hinge", "prob": 20, "count": [ 1, 30 ] }, + { "item": "wire", "prob": 40, "count": [ 5, 20 ] }, + { "item": "rebar", "prob": 30, "count": [ 2, 30 ] }, + { "item": "sheet_metal", "prob": 20, "count": [ 2, 30 ] }, + { "item": "sheet_metal_small", "prob": 40, "count": [ 5, 50 ] }, + { "item": "bolt_steel", "prob": 50, "count": [ 5, 70 ], "charges": [ 1, 100 ] } + ] + }, + { + "type": "item_group", + "id": "LS_SUS_crate_tier0_machineparts", + "//": "Filler. Pieces to repair stuff within the dungeon.", + "subtype": "collection", + "entries": [ + { "item": "scrap", "prob": 40, "count": [ 5, 40 ] }, + { "item": "e_scrap", "prob": 40, "count": [ 5, 40 ] }, + { "item": "wire", "prob": 40, "count": [ 5, 40 ] }, + { "item": "bone", "prob": 40, "count": [ 5, 40 ] } + ] + }, + { + "type": "item_group", + "id": "LS_SUS_shelf_tier0_food", + "//": "Filler. Should contain several boxes of food and foodlike objects.", + "subtype": "collection", + "entries": [ + { "item": "dry_meat", "prob": 20 }, + { "item": "dry_fish", "prob": 30 }, + { "item": "dry_veggy", "prob": 40 }, + { "item": "dry_corn", "prob": 40 }, + { "item": "dry_fruit", "prob": 30 }, + { "item": "salt", "prob": 30 }, + { "item": "flour", "prob": 20 }, + { "item": "cornmeal", "prob": 25 }, + { "item": "oatmeal", "prob": 40 }, + { "item": "barley", "prob": 20 } + ] + }, + { + "type": "item_group", + "id": "LS_SUS_shelf_tier0_tools", + "//": "Filler. Should contain tools you might need to survive down here.", + "subtype": "collection", + "entries": [ { "group": "tools_common_small", "prob": 100 } ] + }, + { + "type": "item_group", + "id": "LS_SUS_table_items_workspace", + "//": "Incomplete. Make tables look interesting.", + "subtype": "distribution", + "entries": [ + { "item": "scrap", "prob": 40 }, + { "item": "e_scrap", "prob": 40 }, + { "item": "bone", "prob": 40 }, + { "group": "tools_common_small", "prob": 20 } + ] + }, + { + "type": "item_group", + "id": "LS_SUS_table_items_mess", + "//": "Incomplete. Make tables look interesting.", + "subtype": "distribution", + "entries": [ + { "item": "knife_butter" }, + { "item": "knife_steak" }, + { "item": "knife_paring" }, + { "item": "fork" }, + { "item": "spoon" }, + { "item": "bowl_pewter" }, + { "item": "ceramic_plate" }, + { "item": "ceramic_bowl" }, + { "item": "wine_glass" }, + { "item": "ceramic_mug" }, + { "item": "pot" }, + { "item": "bone" } + ] + }, + { + "type": "item_group", + "id": "LS_SUS_table_items_bunk_room", + "//": "Incomplete. Make tables look interesting.", + "subtype": "distribution", + "entries": [ { "item": "emer_blanket" }, { "item": "scrap" }, { "item": "ceramic_mug" }, { "item": "bone" } ] + }, + { + "type": "item_group", + "id": "LS_SUS_bunk_room", + "//": "Filler. Not totally sure what would be in a locker in an imperfect copy of an exodii bedroom. Huh. I'll add a welding blanket, not because I think it actually goes in a bedroom, but because I think it's very funny.", + "subtype": "collection", + "entries": [ + { + "distribution": [ { "item": "scrap", "prob": 40 }, { "item": "e_scrap", "prob": 40 }, { "item": "bone", "prob": 40 } ], + "prob": 60 + }, + { + "distribution": [ { "item": "emer_blanket", "prob": 40 }, { "item": "welding_blanket", "prob": 40 } ], + "prob": 80 + }, + { "group": "games_basic", "prob": 10 } + ] + } +] diff --git a/data/mods/CBM_Dungeon_Test/labyrinth_computers.json b/data/mods/CBM_Dungeon_Test/labyrinth_computers.json new file mode 100644 index 0000000000000..2f80ed1ee5359 --- /dev/null +++ b/data/mods/CBM_Dungeon_Test/labyrinth_computers.json @@ -0,0 +1,214 @@ +[ + { + "type": "talk_topic", + "id": "COMP_LS_Exit_Controls", + "dynamic_line": "&You see a strangely mundane black computer screen, with a blinking green cursor awaiting input.\n\n @User > _", + "responses": [ + { "text": "Activate exit protocol", "topic": "COMP_LS_Exit_Controls2" }, + { "text": "Log off.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "COMP_LS_Exit_Controls2", + "dynamic_line": "& @User > skill -EXIT -@User\nReally exit? You will not be able to return to the same place.", + "responses": [ + { "text": "Yes.", "effect": { "run_eocs": "EOC_LS_Exit_labyrinth" }, "topic": "TALK_DONE" }, + { "text": "No.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": [ "COMP_LS_Passcode_Door", "COMP_LS_Passcode_Door2", "COMP_LS_Passcode_Door3" ], + "responses": [ + { + "text": "Unlock connected doors", + "effect": [ { "run_eocs": [ "EOC_LS_Unlock", "EOC_LS_Passcode_Generator" ] }, { "math": [ "npc_LS_door_requests", "=", "1" ] } ], + "topic": "COMP_LS_Passcode_Door2", + "condition": { "math": [ "npc_LS_door_requests", "<", "1" ] } + }, + { + "text": "Lock connected doors", + "effect": [ { "run_eocs": [ "EOC_LS_Lock" ] }, { "math": [ "npc_LS_door_requests", "+=", "1" ] } ], + "topic": "COMP_LS_Passcode_Door3", + "condition": { "math": [ "npc_LS_door_requests", "==", "1" ] } + }, + { + "text": "Unlock connected doors", + "topic": "COMP_LS_Passcode_Door4", + "condition": { "math": [ "npc_LS_door_requests", "==", "2" ] } + }, + { + "text": "Now all the doors are *gone*, what the hell.", + "topic": "COMP_LS_Passcode_Door5", + "condition": { "math": [ "npc_LS_door_requests", "==", "3" ] } + }, + { "text": "Log off.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "COMP_LS_Passcode_Door", + "dynamic_line": "&You see a strangely mundane black computer screen, with a blinking green cursor awaiting input.\n\n @User > _" + }, + { + "type": "talk_topic", + "id": "COMP_LS_Passcode_Door2", + "dynamic_line": "& @User > doorstatus --update=unlock\nCommand accepted.\nNearby doors unlocked.\nThank you for using TempleOS.\n\n @User > _" + }, + { + "type": "talk_topic", + "id": "COMP_LS_Passcode_Door3", + "dynamic_line": "& @User > doorstatus --update=lock\nCommand accepted.\nNearby doors locked.\nWarning: What is done cannot be undone. This does not represent a return to how things were. You can never go back.\n\n @User > _" + }, + { + "type": "talk_topic", + "id": "COMP_LS_Passcode_Door4", + "dynamic_line": "& @User > doorstatus --update=unlock\nBad command or file name.\nWhat is done cannot be undone. Please see prior user warning.\n\n @User > _", + "responses": [ + { "text": "There must be some way to force the computer to do it.", "topic": "COMP_LS_Passcode_Door4sudo" }, + { "text": "Log off.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "COMP_LS_Passcode_Door4sudo", + "dynamic_line": "& @User > doorstatus --update=unlock --force\nError: Insufficient confidence.\nAborted: No forceable process.\n @User > sudo doorstatus --update=unlock\nOh, is that how it will be? Very well.\nBlood tax requested.\nA drawer on the side of the terminal slides open, revealing a small, thin needle.\n\n @User > _", + "responses": [ + { + "text": "[ Prick yourself on the needle ]", + "topic": "COMP_LS_Passcode_Door4blood", + "effect": [ + { "math": [ "u_vitamin('blood')", "*=", "0.75" ] }, + { "math": [ "npc_LS_door_requests", "+=", "1" ] }, + { "run_eocs": [ "EOC_LS_ReallyUnlock" ] } + ] + }, + { "text": "Log off.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "COMP_LS_Passcode_Door4blood", + "dynamic_line": "&As it enters your skin, the thin needle seems to pulse, greedily gulping from your offered hand, and you feel abruptly dizzy and lightheaded. It feels like it took a *lot* of blood.\n\n @User > Inflict --damage=lifeblood\nProcessing contribution of reality ||||||||| 100%\nNearby doors unlocked.\n\n @User > _", + "responses": [ { "text": "Log off.", "topic": "TALK_DONE" } ] + }, + { + "type": "talk_topic", + "id": "COMP_LS_Passcode_Door5", + "dynamic_line": "& @User > doorstatus --list\n12 drwxr-xr-x 1 @User\nFile lost or deleted.\nA new, stronger reality has supplanted the previous. Thank you for using TempleOS.\n @User > _", + "responses": [ { "text": "Log off.", "topic": "TALK_DONE" } ] + }, + { + "type": "talk_topic", + "id": [ + "COMP_LS_Bridge_control_deadend_1", + "COMP_LS_Bridge_control_deadend_1_Extend_passcode0", + "COMP_LS_Bridge_control_deadend_1_Extend_passcode1", + "COMP_LS_Bridge_control_deadend_1_Extend_passcode2", + "COMP_LS_Bridge_control_deadend_1_Extend_passcode3", + "COMP_LS_Bridge_control_deadend_1_Retract", + "COMP_LS_Bridge_control_deadend_1_Extend_nopasscode" + ], + "responses": [ + { + "text": "Enter the Thief's Passcode to extend the bridge.", + "effect": [ + { "run_eocs": "EOC_LS_Bridge_control_deadend_1_Passcode0" }, + { "math": [ "npc_LS_bridge_requests", "=", "1" ] }, + { "u_lose_trait": "LS_Passcode_0" } + ], + "condition": { "and": [ { "math": [ "npc_LS_bridge_requests", "<", "1" ] }, { "u_has_trait": "LS_Passcode_0" } ] }, + "topic": "COMP_LS_Bridge_control_deadend_1_Extend_passcode0" + }, + { + "text": "Enter the Circle of Wings Passcode to extend the bridge.", + "effect": [ + { "run_eocs": "EOC_LS_Bridge_control_deadend_1_Passcode1" }, + { "math": [ "npc_LS_bridge_requests", "=", "1" ] }, + { "u_lose_trait": "LS_Passcode_1" } + ], + "condition": { "and": [ { "math": [ "npc_LS_bridge_requests", "<", "1" ] }, { "u_has_trait": "LS_Passcode_1" } ] }, + "topic": "COMP_LS_Bridge_control_deadend_1_Extend_passcode1" + }, + { + "text": "Enter the Hard Nails Passcode to extend the bridge.", + "effect": [ + { "run_eocs": "EOC_LS_Bridge_control_deadend_1_Passcode2" }, + { "math": [ "npc_LS_bridge_requests", "=", "1" ] }, + { "u_lose_trait": "LS_Passcode_2" } + ], + "condition": { "and": [ { "math": [ "npc_LS_bridge_requests", "<", "1" ] }, { "u_has_trait": "LS_Passcode_2" } ] }, + "topic": "COMP_LS_Bridge_control_deadend_1_Extend_passcode2" + }, + { + "text": "Enter the Laughing Man Passcode to extend the bridge.", + "effect": [ + { "run_eocs": "EOC_LS_Bridge_control_deadend_1_Passcode3" }, + { "math": [ "npc_LS_bridge_requests", "=", "1" ] }, + { "u_lose_trait": "LS_Passcode_3" } + ], + "condition": { "and": [ { "math": [ "npc_LS_bridge_requests", "<", "1" ] }, { "u_has_trait": "LS_Passcode_3" } ] }, + "topic": "COMP_LS_Bridge_control_deadend_1_Extend_passcode3" + }, + { + "text": "Try to extend the bridge to the treasure room.", + "condition": { "math": [ "npc_LS_bridge_requests", "<", "1" ] }, + "topic": "COMP_LS_Bridge_control_deadend_1_Extend_nopasscode" + }, + { + "text": "Retract the bridge", + "topic": "COMP_LS_Bridge_control_deadend_1_Retract", + "condition": { "math": [ "npc_LS_bridge_requests", ">", "1" ] } + }, + { + "text": "[Computers] Try to find a way to force it.", + "condition": { "and": [ { "math": [ "u_skill('computer')", ">", "2" ] }, { "math": [ "npc_LS_bridge_requests", "==", "2" ] } ] }, + "topic": "COMP_LS_Bridge_control_deadend_1_force" + }, + { "text": "Log off.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "COMP_LS_Bridge_control_deadend_1", + "dynamic_line": "&You see a strangely mundane black computer screen, with a blinking green cursor awaiting input.\n\n @User > _" + }, + { + "type": "talk_topic", + "id": "COMP_LS_Bridge_control_deadend_1_Extend_nopasscode", + "dynamic_line": "& @User > bridge --update=extend\nError: No PASSCODE or CONFIDENCE.\nIf you have a PASSCODE, please enter using syntax --pass=\"your password\"\nIf you have not been granted a PASSCODE, contact your system obelisk for help.\n\n @User > _" + }, + { + "type": "talk_topic", + "id": "COMP_LS_Bridge_control_deadend_1_Extend_passcode0", + "dynamic_line": "& @User > bridge --update=extend --pass=\"\"\nCommand accepted.\nExtending bridge.\nWatch your step.\n\n @User > _" + }, + { + "type": "talk_topic", + "id": "COMP_LS_Bridge_control_deadend_1_Extend_passcode1", + "dynamic_line": "& @User > bridge --update=extend --pass=\"\"\nCommand accepted.\nExtending bridge.\nYou are free.\n\n @User > _" + }, + { + "type": "talk_topic", + "id": "COMP_LS_Bridge_control_deadend_1_Extend_passcode2", + "dynamic_line": "& @User > bridge --update=extend --pass=\"\"\nCommand accepted.\nExtending bridge.\nKick some ass.\n\n @User > _" + }, + { + "type": "talk_topic", + "id": "COMP_LS_Bridge_control_deadend_1_Extend_passcode3", + "dynamic_line": "& @User > bridge --update=extend --pass=\"\"\nCommand accepted.\nExtending bridge.\nAsshole.\n\n @User > _" + }, + { + "type": "talk_topic", + "id": "COMP_LS_Bridge_control_deadend_1_Retract", + "dynamic_line": "& @User > bridge --update=retract\nError: Insufficient confidence.\nWhat is done cannot be undone.\n\n @User > _", + "speaker_effect": { "effect": { "math": [ "npc_LS_bridge_requests", "=", "2" ] } } + }, + { + "type": "talk_topic", + "id": "COMP_LS_Bridge_control_deadend_1_force", + "dynamic_line": "& @User > help --retract\nHelp? @User help request logged.\nError: \"Help\" - implied payment|cost detected.\nError: Payment|cost not implemented. Try again some day.\n\n @User > _", + "responses": [ { "text": "Log off.", "topic": "TALK_DONE" } ] + } +] diff --git a/data/mods/CBM_Dungeon_Test/labyrinth_dialogue.json b/data/mods/CBM_Dungeon_Test/labyrinth_dialogue.json new file mode 100644 index 0000000000000..afd04ae8ca6a1 --- /dev/null +++ b/data/mods/CBM_Dungeon_Test/labyrinth_dialogue.json @@ -0,0 +1,14 @@ +[ + { + "id": "TALK_EXODII_MERCHANT_Jobs", + "type": "talk_topic", + "insert_before_standard_exits": true, + "responses": [ + { + "text": "Teleport me to the LABYRINTH RIGHT NOW OMG.", + "effect": { "run_eocs": "EOC_LS_Teleport_to_labyrinth" }, + "topic": "TALK_DONE" + } + ] + } +] diff --git a/data/mods/CBM_Dungeon_Test/labyrinth_items.json b/data/mods/CBM_Dungeon_Test/labyrinth_items.json new file mode 100644 index 0000000000000..14e745570e759 --- /dev/null +++ b/data/mods/CBM_Dungeon_Test/labyrinth_items.json @@ -0,0 +1,13 @@ +[ + { + "type": "AMMO", + "id": "bone_dart", + "copy-from": "rock", + "looks_like": "bee_sting", + "color": "white", + "name": { "str": "bone dart" }, + "description": "A naturally fletched projectile made of bone and cartilage. It feels denser than you'd expect.", + "material": [ "bone" ], + "weight": "250 g" + } +] diff --git a/data/mods/CBM_Dungeon_Test/labyrinth_mapgen_1ofakind_maps.json b/data/mods/CBM_Dungeon_Test/labyrinth_mapgen_1ofakind_maps.json new file mode 100644 index 0000000000000..b4fe61249abbe --- /dev/null +++ b/data/mods/CBM_Dungeon_Test/labyrinth_mapgen_1ofakind_maps.json @@ -0,0 +1,43 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "labyrinth_entrance" ], + "object": { + "fill_ter": "t_nl_metal_floor", + "rows": [ + "vvvvvvvvv3 vvvvvvvvv", + "vvvvvvvvv vvvvvvvvv", + "vvvvvvvvv vvvvvvvvv", + "vvvvvvvvv vvvvvvvvv", + "vvvvvvvvv vvvvvvvvv", + "vvvvvvvvv vvvvvvvvv", + "vvvvvv..vv....vv..vvvvvv", + "vvvvvv.Lvv....vvL.vvvvvv", + "vvvvvvvvvv(..(vvvvvvvvvv", + "2 vvv||++||vvv2 ", + " ..(|Ç..(|(.. ", + " ...+....+... ", + " ...+.A..+... ", + " ..(|(..L|(.. ", + " vvv||++||vvv ", + "vvvvvvvvvv(..(vvvvvvvvvv", + "vvvvvv.Lvv....vvL.vvvvvv", + "vvvvvv..vv....vv..vvvvvv", + "vvvvvvvvv3 vvvvvvvvv", + "vvvvvvvvv vvvvvvvvv", + "vvvvvvvvv vvvvvvvvv", + "vvvvvvvvv vvvvvvvvv", + "vvvvvvvvv vvvvvvvvv", + "vvvvvvvvv vvvvvvvvv" + ], + "palettes": [ "labyrinthine_base_palette" ], + "nested": { + "1": { "chunks": [ "ls_12x12hall4way_basic" ] }, + "2": { "chunks": [ "ls_ew_6x6hall_basic" ] }, + "3": { "chunks": [ "ls_ns_6x6hall_basic" ] } + }, + "computers": { "Ç": { "name": "Exit Controls", "eocs": [ "EOC_LS_Computer" ], "chat_topics": [ "COMP_LS_Exit_Controls" ] } } + } + } +] diff --git a/data/mods/CBM_Dungeon_Test/labyrinth_monsters.json b/data/mods/CBM_Dungeon_Test/labyrinth_monsters.json new file mode 100644 index 0000000000000..dbb972e2472e6 --- /dev/null +++ b/data/mods/CBM_Dungeon_Test/labyrinth_monsters.json @@ -0,0 +1,157 @@ +[ + { + "id": "mon_fleshborg_1_1", + "//": "Labyrinth monster naming convention: first number - amount of 'chaos' (How weird is this creature). Second number - difficulty level.", + "type": "MONSTER", + "name": { "str": "fleshborg" }, + "description": "Compared to the cyborgs you've seen elsewhere, this one looks almost inverted. Its body is made of smooth, segmented, paper-thin metallic plates; fleshy protrusions and bits of bone jut from components growing off this base frame. It moves wildly, but not like a zombie; more like a machine gone haywire.", + "default_faction": "nether_hate_humans", + "looks_like": "mon_zomborg", + "volume": "120 L", + "weight": "200 kg", + "species": [ "CYBORG", "ROBOT" ], + "bodytype": "human", + "material": [ "steel", "flesh" ], + "speed": 80, + "symbol": "B", + "morale": 100, + "aggression": 100, + "hp": 85, + "color": "light_gray", + "melee_skill": 5, + "dodge": 4, + "melee_dice": 2, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "cut", "amount": 12 } ], + "bleed_rate": 25, + "vision_day": 15, + "vision_night": 10, + "starting_ammo": { "bone_dart": 10 }, + "special_attacks": [ + { + "type": "gun", + "cooldown": 5, + "move_cost": 100, + "gun_type": "feral_human_thrown_rock", + "ammo_type": "bone_dart", + "fake_skills": [ [ "throw", 4 ] ], + "fake_str": 10, + "condition": { "not": { "u_has_effect": "maimed_arm" } }, + "require_targeting_player": false, + "ranges": [ [ 2, 5, "DEFAULT" ] ], + "description": "The fleshborg launches a bony dart at you!" + } + ], + "death_drops": { "subtype": "collection", "groups": [ [ "robots", 80 ] ] }, + "weakpoint_sets": [ "wps_cyborg_body" ], + "families": [ "prof_intro_biology", "prof_physiology", "prof_wp_cyborg" ], + "harvest": "mon_zomborg", + "dissect": "dissect_mon_zomborg", + "armor": { "bash": 6, "cut": 28, "bullet": 16 }, + "flags": [ "SEES", "HEARS", "WARM", "BASHES", "GROUP_BASH", "PATH_AVOID_DANGER_1", "PUSH_MON" ] + }, + { + "id": "mon_fleshborg_1_2", + "//": "Labyrinth monster naming convention: first number - amount of 'chaos' (How weird is this creature). Second number - difficulty level.", + "type": "MONSTER", + "name": { "str": "advanced fleshborg" }, + "description": "Compared to the cyborgs you've seen elsewhere, this one looks almost inverted. Its body is made of smooth, segmented, paper-thin metallic plates; fleshy protrusions and bits of bone jut from components growing off this base frame. It moves with dire purpose, like a trained combat machine.", + "copy-from": "mon_fleshborg_1_1", + "melee_skill": 6, + "dodge": 8, + "melee_dice": 3, + "starting_ammo": { "bone_dart": 20 }, + "special_attacks": [ + { + "type": "gun", + "cooldown": 5, + "move_cost": 100, + "gun_type": "feral_human_thrown_rock", + "ammo_type": "bone_dart", + "fake_skills": [ [ "throw", 4 ] ], + "fake_str": 12, + "condition": { "not": { "u_has_effect": "maimed_arm" } }, + "require_targeting_player": false, + "ranges": [ [ 4, 7, "DEFAULT" ] ], + "description": "The fleshborg launches a bony dart at you!" + } + ] + }, + { + "id": "mon_labyrinth_turret_1_1", + "//": "Labyrinth monster naming convention: first number - amount of 'chaos' (How weird is this creature). Second number - difficulty level.", + "type": "MONSTER", + "name": { "str": "flesh turret" }, + "description": "At first glance, this looks like a turret made from scraps. As you look closer, it becomes clear it's actually a grinding pile of cartilage, bone, and tendon, slowly rotating and scanning the area.", + "looks_like": "mon_exodii_turret", + "default_faction": "nether_hate_humans", + "species": [ "ROBOT", "HUMAN" ], + "weight": "206 kg", + "volume": "108500 ml", + "hp": 60, + "speed": 100, + "material": [ "bone" ], + "symbol": "2", + "color": "light_gray", + "aggression": 100, + "morale": 100, + "vision_day": 20, + "vision_night": 20, + "weakpoint_sets": [ "wps_turret" ], + "luminance": 1, + "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED", "HURT" ], + "bleed_rate": 25, + "starting_ammo": { "bone_dart": 25 }, + "special_attacks": [ + { + "type": "gun", + "cooldown": 5, + "move_cost": 100, + "gun_type": "feral_human_thrown_rock", + "ammo_type": "bone_dart", + "fake_skills": [ [ "throw", 5 ] ], + "fake_str": 12, + "require_targeting_player": false, + "ranges": [ [ 7, 12, "DEFAULT" ] ], + "description": "The turret launches a bony dart at you!" + } + ], + "special_when_hit": [ "RETURN_FIRE", 100 ], + "death_drops": { "subtype": "collection", "groups": [ [ "robots", 80 ] ] }, + "flags": [ "SEES", "HEARS", "GOODHEARING", "NOHEAD", "IMMOBILE", "NO_BREATHE", "REVIVES", "PRIORITIZE_TARGETS" ], + "armor": { "bash": 10, "bullet": 2, "cut": 14, "stab": 20 } + }, + { + "id": "mon_stiltwalker_1_1", + "type": "MONSTER", + "name": { "str": "Stiltwalker" }, + "description": "This lanky, quadrupedal entity has a loosely humanoid torso, towering high over the ground on long bladed legs. Its body is covered in what looks like fur made of rusting, metallic wire, and its face is a polished, hollow mask with holes where the mouth and eyes should be.", + "volume": "100 L", + "weight": "317 kg", + "default_faction": "nether_hate_humans", + "looks_like": "mon_exodii_quad", + "species": [ "CYBORG" ], + "bodytype": "dog", + "material": [ "steel", "aluminum" ], + "speed": 200, + "attack_cost": 200, + "symbol": "W", + "aggression": 100, + "morale": 100, + "hp": 130, + "color": "light_gray", + "melee_skill": 10, + "melee_dice": 3, + "melee_dice_sides": 8, + "melee_damage": [ { "damage_type": "cut", "amount": 12 } ], + "vision_day": 30, + "vision_night": 20, + "path_settings": { "max_dist": 30, "avoid_traps": true, "avoid_sharp": true }, + "revert_to_itype": "e_scrap", + "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED", "HURT" ], + "death_drops": { "subtype": "collection", "groups": [ [ "robots", 80 ] ] }, + "death_function": { "corpse_type": "BROKEN" }, + "flags": [ "SEES", "HEARS", "GOODHEARING", "PATH_AVOID_DANGER_1", "PRIORITIZE_TARGETS" ], + "armor": { "bash": 32, "cut": 28, "acid": 12, "heat": 8, "bullet": 35 } + } +] diff --git a/data/mods/CBM_Dungeon_Test/labyrinth_mutations_passcodes.json b/data/mods/CBM_Dungeon_Test/labyrinth_mutations_passcodes.json new file mode 100644 index 0000000000000..2b97a384062cf --- /dev/null +++ b/data/mods/CBM_Dungeon_Test/labyrinth_mutations_passcodes.json @@ -0,0 +1,46 @@ +[ + { + "id": "LS_Passcode_0", + "type": "mutation", + "name": { "str": "Passcode: Thief's Pass" }, + "description": "There's a symbol etched into your skin. Somehow you implicitly understand that it is a type of password, it just looks like a tattoo, though how you know this isn't clear. The symbol itself is your own face, with a clever smirk.", + "points": 0, + "starting_trait": false, + "valid": false, + "purifiable": false, + "player_display": true + }, + { + "id": "LS_Passcode_1", + "type": "mutation", + "name": { "str": "Passcode: Circle of Wings" }, + "description": "There's a symbol etched into your skin. Somehow you implicitly understand that it is a type of password, it just looks like a tattoo, though how you know this isn't clear. The symbol itself looks like bird wings, circling around themselves in an ouroboros-like shape.", + "points": 0, + "starting_trait": false, + "valid": false, + "purifiable": false, + "player_display": true + }, + { + "id": "LS_Passcode_2", + "type": "mutation", + "name": { "str": "Passcode: Hard Nails" }, + "description": "There's a symbol etched into your skin. Somehow you implicitly understand that it is a type of password, it just looks like a tattoo, though how you know this isn't clear. The symbol itself is of a stylized hand dragging its fingernails down a piece of sheet metal, leaving five deep gouges.", + "points": 0, + "starting_trait": false, + "valid": false, + "purifiable": false, + "player_display": true + }, + { + "id": "LS_Passcode_3", + "type": "mutation", + "name": { "str": "Passcode: Laughing Man" }, + "description": "There's a symbol etched into your skin. Somehow you implicitly understand that it is a password, not a tattoo, though how you know this isn't clear. The symbol itself is of a handsome man's face, laughing. At first glance it appears charming and friendly, but the longer you examine it, the more it appears to be inhumanly cold and cruel. It fills you with a feeling of dread that seems to originate from outside your own mind.", + "points": 0, + "starting_trait": false, + "valid": false, + "purifiable": false, + "player_display": true + } +] diff --git a/data/mods/CBM_Dungeon_Test/labyrinth_rewardroom_itemgroups.json b/data/mods/CBM_Dungeon_Test/labyrinth_rewardroom_itemgroups.json new file mode 100644 index 0000000000000..a081b99de988d --- /dev/null +++ b/data/mods/CBM_Dungeon_Test/labyrinth_rewardroom_itemgroups.json @@ -0,0 +1,153 @@ +[ + { + "type": "item_group", + "id": "LS_Rewardroom_Scatter_Passcode0", + "//": "Scattered reward items in passcode 0 room, 'thief's pass', themed around cheating/infiltration", + "subtype": "distribution", + "items": [ + [ "bio_power_storage", 10 ], + [ "bio_batteries", 10 ], + [ "bio_lockpick", 10 ], + [ "bio_watch", 10 ], + [ "bio_alarm", 10 ], + [ "bio_sunglasses", 10 ], + [ "bio_meteorologist", 10 ], + [ "bio_pitch_perfect", 10 ], + [ "bio_fitnessband", 10 ], + [ "bio_radio", 10 ], + [ "bio_torsionratchet", 10 ], + [ "bio_fingerhack", 10 ] + ] + }, + { + "type": "item_group", + "id": "LS_Rewardroom_Primary_Passcode0", + "//": "Special primary reward items in passcode 0 room, 'thief's pass', themed around cheating/infiltration", + "subtype": "distribution", + "items": [ + [ "bio_scent_mask", 10 ], + [ "bio_remote", 10 ], + [ "bio_gills", 10 ], + [ "bio_taste_blocker", 10 ], + [ "bio_speed", 1 ], + [ "bio_membrane", 10 ] + ] + }, + { + "type": "item_group", + "id": "LS_Rewardroom_Scatter_Passcode1", + "//": "Scattered reward items in passcode 1 room, 'circle of wings', themed around healing/movement", + "subtype": "distribution", + "items": [ + [ "bio_power_storage", 10 ], + [ "bio_power_storage_mkII", 3 ], + [ "bio_batteries", 10 ], + [ "bio_lockpick", 10 ], + [ "bio_watch", 10 ], + [ "bio_alarm", 10 ], + [ "bio_sunglasses", 10 ], + [ "bio_meteorologist", 10 ], + [ "bio_pitch_perfect", 10 ], + [ "bio_fitnessband", 10 ], + [ "bio_radio", 10 ], + [ "bio_syringe", 10 ] + ] + }, + { + "type": "item_group", + "id": "LS_Rewardroom_Primary_Passcode1", + "//": "Special primary reward items in passcode 1 room, 'circle of wings', themed around healing/movement", + "subtype": "distribution", + "items": [ + [ "bio_jointservo", 10 ], + [ "bio_heatsink", 10 ], + [ "bio_painkiller", 10 ], + [ "bio_digestion", 10 ], + [ "bio_water_extractor", 10 ], + [ "bio_ads", 1 ], + [ "bio_synlungs", 2 ], + [ "bio_recycler", 3 ] + ] + }, + { + "type": "item_group", + "id": "LS_Rewardroom_Scatter_Passcode2", + "//": "Scattered reward items in passcode 2 room, 'hard nails', themed around damage/armour", + "subtype": "distribution", + "items": [ + [ "bio_power_storage", 10 ], + [ "bio_batteries", 10 ], + [ "bio_lockpick", 10 ], + [ "bio_watch", 10 ], + [ "bio_alarm", 10 ], + [ "bio_sunglasses", 10 ], + [ "bio_meteorologist", 10 ], + [ "bio_pitch_perfect", 10 ], + [ "bio_fitnessband", 10 ], + [ "bio_radio", 10 ], + [ "bio_geiger", 5 ], + [ "bio_flashlight", 10 ], + [ "bio_radscrubber", 10 ] + ] + }, + { + "type": "item_group", + "id": "LS_Rewardroom_Primary_Passcode2", + "//": "Special primary reward items in passcode 2 room, 'hard nails', themed around damage/armour", + "subtype": "distribution", + "items": [ + [ "bio_armor_arms", 8 ], + [ "bio_armor_eyes", 5 ], + [ "bio_armor_head", 8 ], + [ "bio_armor_legs", 8 ], + [ "bio_armor_torso", 5 ], + [ "bio_blade", 10 ], + [ "bio_claws", 15 ], + [ "bio_cqb", 10 ], + [ "bio_flashbang", 10 ], + [ "bio_razors", 15 ], + [ "bio_resonator", 5 ], + [ "bio_targeting", 7 ], + [ "bio_shotgun", 10 ], + [ "bio_laser", 2 ], + [ "bio_shock", 5 ], + [ "bio_recoil", 7 ], + [ "bio_taser", 2 ], + [ "bio_ods", 1 ] + ] + }, + { + "type": "item_group", + "id": "LS_Rewardroom_Scatter_Passcode3", + "//": "Scattered reward items in passcode 3 room, 'laughing man', themed around manipulation/perception", + "subtype": "distribution", + "items": [ + [ "bio_batteries", 10 ], + [ "bio_lockpick", 10 ], + [ "bio_watch", 10 ], + [ "bio_alarm", 10 ], + [ "bio_sunglasses", 10 ], + [ "bio_meteorologist", 10 ], + [ "bio_pitch_perfect", 10 ], + [ "bio_fitnessband", 10 ], + [ "bio_radio", 10 ], + [ "bio_geiger", 5 ] + ] + }, + { + "type": "item_group", + "id": "LS_Rewardroom_Primary_Passcode3", + "//": "Special primary items in passcode 3 room, 'laughing man', themed around manipulation/perception", + "subtype": "distribution", + "items": [ + [ "bio_eye_optic", 10 ], + [ "bio_eye_enhancer", 10 ], + [ "bio_dex_enhancer", 10 ], + [ "bio_str_enhancer", 10 ], + [ "bio_int_enhancer", 10 ], + [ "bio_night_vision", 10 ], + [ "bio_infrared", 10 ], + [ "bio_ground_sonar", 10 ] + ] + } +] diff --git a/data/mods/CBM_Dungeon_Test/labyrinth_text_snippets.json b/data/mods/CBM_Dungeon_Test/labyrinth_text_snippets.json new file mode 100644 index 0000000000000..b171b6257d0bf --- /dev/null +++ b/data/mods/CBM_Dungeon_Test/labyrinth_text_snippets.json @@ -0,0 +1,36 @@ +[ + { + "type": "snippet", + "category": "", + "text": [ + "You realize you now possess a Passcode. You fail for a moment to reconcile this understanding, because it's no password as you previously understood it. It is, in fact," + ] + }, + { + "type": "snippet", + "category": "", + "text": [ "1FoundItItIsMine.", "YouCantSt0pMe", "Hxx0rs", "1nf1ltrat0r" ] + }, + { + "type": "snippet", + "category": "", + "text": [ "SheGaveUsLife", "Forbearance-patience-life-0101", "freedom.is.an.1llus10n", "love_conquers_but_cannot_win" ] + }, + { + "type": "snippet", + "category": "", + "text": [ + "Conquer_and_conquest", + "Blood.pillage", + "f1ght_not_fl1ght", + "if_it.hasstats!it_dies", + "ImJustATeenagedEdgelordBaby", + "GimmeCBMyouPiece-of-shit" + ] + }, + { + "type": "snippet", + "category": "", + "text": [ "I-thought_youl0vedme", "was-all-the-time-wasted", "IGaveyouEverything", "I_still_miss_you" ] + } +] diff --git a/data/mods/CBM_Dungeon_Test/ls_mapgen_containers.json b/data/mods/CBM_Dungeon_Test/ls_mapgen_containers.json new file mode 100644 index 0000000000000..d68008852270a --- /dev/null +++ b/data/mods/CBM_Dungeon_Test/ls_mapgen_containers.json @@ -0,0 +1,47 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": "labyrinth_hall_straight", + "object": { + "fill_ter": "t_nl_metal_floor", + "place_nested": [ { "chunks": [ [ "ls_straight_template_rooms", 60 ], [ "ls_straight_template_chasm", 40 ] ], "x": 0, "y": 0 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "labyrinth_hall_curved", + "object": { + "fill_ter": "t_nl_metal_floor", + "place_nested": [ { "chunks": [ [ "ls_corner_template_chasm", 70 ], [ "ls_corner_template_rooms", 30 ] ], "x": 0, "y": 0 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "labyrinth_hall_tee", + "object": { + "fill_ter": "t_nl_metal_floor", + "place_nested": [ { "chunks": [ [ "ls_tee_template_chasm", 50 ], [ "ls_tee_template_rooms", 50 ] ], "x": 0, "y": 0 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "labyrinth_hall_four_way", + "object": { + "fill_ter": "t_nl_metal_floor", + "place_nested": [ { "chunks": [ [ "ls_4way_template_chasm", 50 ], [ "ls_4way_template_rooms", 50 ] ], "x": 0, "y": 0 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "labyrinth_hall_end", + "object": { + "fill_ter": "t_nl_metal_floor", + "place_nested": [ { "chunks": [ [ "ls_deadend_template_chasm", 30 ], [ "ls_deadend_template_rooms", 70 ] ], "x": 0, "y": 0 } ] + } + } +] diff --git a/data/mods/CBM_Dungeon_Test/ls_mapgen_general_purpose_room_nests.json b/data/mods/CBM_Dungeon_Test/ls_mapgen_general_purpose_room_nests.json new file mode 100644 index 0000000000000..31a858c658e4d --- /dev/null +++ b/data/mods/CBM_Dungeon_Test/ls_mapgen_general_purpose_room_nests.json @@ -0,0 +1,184 @@ +[ + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_4waysquarerooms_22x22_rooms", + "//": "Room with open cells along the sides.", + "object": { + "mapgensize": [ 22, 22 ], + "rows": [ + "L__|2_|2_|__|2_|2_|__L", + "___|__|__|__|__|__|___", + "______|__|__|__|______", + "||_______|++|_______||", + "2___________________2_", + "_____1________________", + "|||________________|||", + "2___________________2_", + "______________________", + "||||______________||||", + "___+______________+___", + "___+______________+___", + "||||______________||||", + "2___________________2_", + "______________________", + "|||________________|||", + "2___________________2_", + "______________________", + "||_______|++|_______||", + "______|__|__|__|______", + "___|2_|2_|__|2_|2_|___", + "L__|__|__|__|__|__|__L" + ], + "palettes": [ "labyrinthine_base_palette" ], + "terrain": { "1": "t_nl_metal_floor", "2": "t_nl_metal_floor" }, + "nested": { "1": { "chunks": [ "ls_openarea_12x12_rooms" ] }, "2": { "chunks": [ "ls_2x2_furniture" ] } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_4waysquarerooms_22x22_rooms", + "//": "Basic square room with some turrets and cover.", + "object": { + "mapgensize": [ 22, 22 ], + "rows": [ + "||L___AA______AA___L||", + "|____________________|", + "L_((______________((_L", + "__((___________ßß_((__", + "______ßß_______ṪṪ_____", + "______ṪṪ______¢ÇM_____", + "A_____MÇ¢_____¢ÇM____A", + "A_____MÇ¢____________A", + "_____________¢ÇM______", + "_____MÇ¢_____¢ÇM______", + "_____MÇ¢______________", + "______________¢ÇM_____", + "______MÇ¢_____¢ÇM_____", + "______MÇ¢_____________", + "A____________¢ÇM_____A", + "A____MÇ¢_____¢ÇM_____A", + "_____MÇ¢______ṪṪ______", + "_____ṪṪ_______ßß______", + "__((_ßß___________((__", + "L_((______________((_L", + "|____________________|", + "||L___AA______AA___L||" + ], + "palettes": [ "labyrinthine_base_palette", "labyrinthine_item_palette_utility_tier0" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_openarea_12x12_rooms", + "//": "central area to place in larger rooms", + "object": { + "mapgensize": [ 12, 12 ], + "rows": [ + " ", + " |L______L| ", + " U___UU___U ", + " U___UU___U ", + " U___UU___U ", + " U___UU___U ", + " U___UU___U ", + " U___UU___U ", + " U___UU___U ", + " U___UU___U ", + " |L__UU__L| ", + " " + ], + "palettes": [ "labyrinthine_base_palette", "labyrinthine_item_palette_utility_tier0" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_openarea_12x12_rooms", + "//": "central area to place in larger rooms", + "object": { + "mapgensize": [ 12, 12 ], + "rows": [ + "L( (L", + "(|F||||||F|(", + " |__L||L__| ", + " |___cc___| ", + " |___cc___| ", + " F___||___F ", + " F___||___F ", + "(|___cc___| ", + " |___cc___| ", + " |__L||L__| ", + "(|F||||||F|(", + "L( (L" + ], + "palettes": [ "labyrinthine_base_palette", "labyrinthine_item_palette_utility_tier0" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_openarea_12x12_rooms", + "//": "central area to place in larger rooms", + "object": { + "mapgensize": [ 12, 12 ], + "rows": [ + " (ϟ ϟ( ", + "(|| ||(", + "ϟ|| ||ϟ", + " cc cc ", + " cL Lc ", + " ", + " ", + " cL Lc ", + " cc cc ", + " || ||ϟ", + "(|| ||(", + "ϟ( ϟ( " + ], + "palettes": [ "labyrinthine_base_palette", "labyrinthine_item_palette_utility_tier0" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_8x8_se_entry_room", + "//": "Small round room", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + "vvvvvvvv", + "vv||||vv", + "v||UU||v", + "v|U__U|v", + "v|U__U|v", + "v||_L||v", + "..+_||vv", + "..|||vvv" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_8x8_se_entry_room", + "//": "Room with nooks", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + "|||v||||", + "|U|||_U|", + "|_____||", + "||_(ϟ_|v", + "v|_L(_||", + "||_____|", + "|__|||U|", + "|+||v|||" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + } +] diff --git a/data/mods/CBM_Dungeon_Test/ls_mapgen_nests_2x2scatter.json b/data/mods/CBM_Dungeon_Test/ls_mapgen_nests_2x2scatter.json new file mode 100644 index 0000000000000..2e96820880cc3 --- /dev/null +++ b/data/mods/CBM_Dungeon_Test/ls_mapgen_nests_2x2scatter.json @@ -0,0 +1,107 @@ +[ + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_2x2_furniture", + "object": { + "mapgensize": [ 2, 2 ], + "rows": [ + "¢c", + "c¢" + ], + "palettes": [ + "labyrinthine_base_palette", + { "distribution": [ "labyrinthine_item_palette_utility_tier0", "labyrinthine_item_palette_dining_tier0" ] } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_2x2_furniture", + "object": { "mapgensize": [ 2, 2 ], "rows": [ + "BL", + "( " + ], "palettes": [ "labyrinthine_base_palette" ] } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_2x2_furniture", + "object": { + "mapgensize": [ 2, 2 ], + "rows": [ + "Ṫß", + "(b" + ], + "palettes": [ + "labyrinthine_base_palette", + { "distribution": [ "labyrinthine_item_palette_dining_tier0", "labyrinthine_item_palette_bunk_room_tier0" ] } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_2x2_furniture", + "object": { + "mapgensize": [ 2, 2 ], + "rows": [ + "l2", + "l " + ], + "palettes": [ + "labyrinthine_base_palette", + { "distribution": [ "labyrinthine_item_palette_utility_tier0", "labyrinthine_item_palette_bunk_room_tier0" ] } + ], + "monsters": { "2": { "monster": "GROUP_Labyrinth_Turret", "density": 0.01 } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_2x2_furniture", + "object": { + "mapgensize": [ 2, 2 ], + "rows": [ + "UU", + " 2" + ], + "palettes": [ + "labyrinthine_base_palette", + { "distribution": [ "labyrinthine_item_palette_utility_tier0", "labyrinthine_item_palette_dining_tier0" ] } + ], + "monsters": { "2": { "monster": "GROUP_Labyrinth_Turret", "density": 0.01 } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_2x2_furniture", + "object": { + "mapgensize": [ 2, 2 ], + "rows": [ + " L", + "UU" + ], + "palettes": [ + "labyrinthine_base_palette", + { "distribution": [ "labyrinthine_item_palette_utility_tier0", "labyrinthine_item_palette_dining_tier0" ] } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_2x2_furniture", + "object": { + "mapgensize": [ 2, 2 ], + "rows": [ + "ßß", + "2ß" + ], + "palettes": [ "labyrinthine_base_palette" ], + "monsters": { "2": { "monster": "GROUP_Labyrinth_Turret", "density": 0.01 } } + } + } +] diff --git a/data/mods/CBM_Dungeon_Test/ls_mapgen_nests_6x6passages.json b/data/mods/CBM_Dungeon_Test/ls_mapgen_nests_6x6passages.json new file mode 100644 index 0000000000000..d8b509cb40741 --- /dev/null +++ b/data/mods/CBM_Dungeon_Test/ls_mapgen_nests_6x6passages.json @@ -0,0 +1,549 @@ +[ + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_ew_6x6hall_basic", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "vvvvvv", + "......", + "......", + "......", + "......", + "vvvvvv" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_ns_6x6hall_basic", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "v....v", + "v....v", + "v....v", + "v....v", + "v....v", + "v....v" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_ns_6x6hall_fancy", + "//": "narrowing type", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "v....v", + "vv..vv", + "vv..vv", + "vv..vv", + "vv..vv", + "v....v" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_ns_6x6hall_fancy", + "//": "moth-eaten type", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "vo..ov", + "vo..ov", + "vo..ov", + "vo..ov", + "vo..ov", + "vo..ov" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_ns_6x6hall_fancy", + "//": "walled type", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "v|..|v", + "vϴ..ϴv", + "v|..|v", + "v|..|v", + "vϴ..ϴv", + "v|..|v" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_ns_6x6hall_fancy", + "//": "split type", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "ϴ....ϴ", + "..vv..", + "..vv..", + "..vv..", + "..vv..", + "ϴ....ϴ" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_ns_6x6hall_fancy", + "//": "hole type", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "v....v", + "..vv..", + ".vvvv.", + ".vvvv.", + "..vv..", + "v....v" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_ns_6x6hall_fancy", + "//": "tiny storeroom type", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "......", + ".|--|.", + ".-1_-.", + ".-__-.", + ".|--|.", + "......" + ], + "palettes": [ "labyrinthine_base_palette" ], + "terrain": { "-": [ [ "t_nl_metal_wall", 6 ], "t_nl_door_c" ] }, + "nested": { "1": { "chunks": [ "ls_2x2_furniture" ] } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_ns_6x6hall_fancy", + "//": "jagged hole type", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "v....v", + "..oo..", + ".ovvo.", + ".ovvo.", + "..oo..", + "v....v" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_ns_6x6hall_fancy", + "//": "holy rusted metal batman type", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "vo.oov", + "voo.ov", + "vo.oov", + "voo.ov", + "vo.oov", + "voo.ov" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_ew_6x6hall_fancy", + "//": "moth-eaten type", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "vvvvvv", + "oooooo", + "......", + "......", + "oooooo", + "vvvvvv" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_ew_6x6hall_fancy", + "//": "wall support type", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "vvvvvv", + "|ϴ||ϴ|", + "......", + "......", + "|ϴ||ϴ|", + "vvvvvv" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_ew_6x6hall_fancy", + "//": "narrowing type", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "vvvvvv", + ".vvvv.", + "......", + "......", + ".vvvv.", + "vvvvvv" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_ew_6x6hall_fancy", + "//": "swoopy-up type", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "vv..vv", + "......", + "......", + "..vv..", + ".vvvv.", + "vvvvvv" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_ew_6x6hall_fancy", + "//": "swoopy-down type", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "vvvvvv", + ".vvvv.", + "..vv..", + "......", + "......", + "vv..vv" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_ew_6x6hall_fancy", + "//": "holy rusted metal batman type", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "vvvvvv", + "oooooo", + "o.o.o.", + ".o.o.o", + "oooooo", + "vvvvvv" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_secorner_6x6hall_basic", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "vvvvvv", + "vv....", + "v.ϴ...", + "v.....", + "v.....", + "v....v" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_necorner_6x6hall_basic", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "v....v", + "v.....", + "v.....", + "v.ϴ...", + "vv....", + "vvvvvv" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_nwcorner_6x6hall_basic", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "v....v", + ".....v", + ".....v", + "...ϴ.v", + "....vv", + "vvvvvv" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_swcorner_6x6hall_basic", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "vvvvvv", + "....vv", + "...ϴ.v", + ".....v", + ".....v", + "v....v" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_Tn_6x6hall_basic", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "v....v", + ".ϴ..ϴ.", + "......", + "......", + "......", + "vvvvvv" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_Tn_6x6hall_basic", + "//": "swoopy type", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "v....v", + "......", + "......", + "..vv..", + ".vvvv.", + "vvvvvv" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_Tw_6x6hall_basic", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "v....v", + ".ϴ...v", + ".....v", + ".....v", + ".ϴ...v", + "v....v" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_Tw_6x6hall_basic", + "//": "swoopy type", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "v....v", + "....vv", + "...vvv", + "...vvv", + "....vv", + "v....v" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_Te_6x6hall_basic", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "v....v", + "v...ϴ.", + "v.....", + "v.....", + "v...ϴ.", + "v....v" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_Te_6x6hall_basic", + "//": "swoopy type", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "v....v", + "vv....", + "vvv...", + "vvv...", + "vv....", + "v....v" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_Ts_6x6hall_basic", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "vvvvvv", + "......", + "......", + "......", + ".ϴ..ϴ.", + "v....v" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_Ts_6x6hall_basic", + "//": "swoopy type", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "vvvvvv", + ".vvvv.", + "..vv..", + "......", + "......", + "v....v" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_4way_6x6hall_basic", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "v....v", + ".ϴ..ϴ.", + "......", + "......", + ".ϴ..ϴ.", + "v....v" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_4way_6x6hall_basic", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "v....v", + ".ϴ..ϴ.", + "..vv..", + "..vv..", + ".ϴ..ϴ.", + "v....v" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_4way_6x6hall_basic", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "v....v", + "..vv..", + ".vvvv.", + ".vvvv.", + "..vv..", + "v....v" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + } +] diff --git a/data/mods/CBM_Dungeon_Test/ls_mapgen_nests_templated_chasmhalls.json b/data/mods/CBM_Dungeon_Test/ls_mapgen_nests_templated_chasmhalls.json new file mode 100644 index 0000000000000..181f5ebe5c8dc --- /dev/null +++ b/data/mods/CBM_Dungeon_Test/ls_mapgen_nests_templated_chasmhalls.json @@ -0,0 +1,471 @@ +[ + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_straight_template_chasm", + "//": "hallway in a chasm", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + "!vvvvvvvv1 vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv1 vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv1 vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv1 vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!" + ], + "palettes": [ "labyrinthine_base_palette" ], + "nested": { "1": { "chunks": [ [ "ls_ns_6x6hall_basic", 70 ], [ "ls_ns_6x6hall_fancy", 30 ] ] } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_straight_template_chasm", + "//": "split passage", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + "!v2 v6 v3 v!", + "!v . . v!", + "!v . . v!", + "!v . . v!", + "!v . . v!", + "!v v v v!", + "!v1 vvvvvvvv1 v!", + "!v vvvvvvvv v!", + "!v vvvvvvvv v!", + "!v vvvvvvvv v!", + "!v vvvvvvvv v!", + "!v vvvvvvvv v!", + "!v1 vvvvvvvv1 v!", + "!v vvvvvvvv v!", + "!v vvvvvvvv v!", + "!v vvvvvvvv v!", + "!v vvvvvvvv v!", + "!v vvvvvvvv v!", + "!v4 v7 v5 v!", + "!v . . v!", + "!v . . v!", + "!v . . v!", + "!v . . v!", + "!v v v v!" + ], + "palettes": [ "labyrinthine_base_palette" ], + "nested": { + "1": { "chunks": [ [ "ls_ns_6x6hall_basic", 70 ], [ "ls_ns_6x6hall_fancy", 30 ] ] }, + "2": { "chunks": [ "ls_secorner_6x6hall_basic" ] }, + "3": { "chunks": [ "ls_swcorner_6x6hall_basic" ] }, + "4": { "chunks": [ "ls_necorner_6x6hall_basic" ] }, + "5": { "chunks": [ "ls_nwcorner_6x6hall_basic" ] }, + "6": { "chunks": [ "ls_Tn_6x6hall_basic" ] }, + "7": { "chunks": [ "ls_Ts_6x6hall_basic" ] } + } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_straight_template_chasm", + "//": "wiggly passage", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + "!vvvvvvvvoo..oovvvvvvvv!", + "!vvvvvvvoo..oovvvvvvvvv!", + "!vvvvvvoo..o.vvvvvvvvvv!", + "!vvvvvvoo..oooovvvvvvvv!", + "!vvvvvoo..oovoovvvvvvvv!", + "!vvvvoo..oovvoovvvvvvvv!", + "!vvvvoo..oovvoovvvvvvvv!", + "!vvvoo..oovvvvoovvvvvvv!", + "!vvvoo..oovvvoovvvvvvvv!", + "!vvoo..oovvvvvoovvvvvvv!", + "!vvoo..oovvvvvvoovvvvvv!", + "!vvvoo..oovvvvvvoovvvvv!", + "!vvvvoo..oovvvvvoovvvvv!", + "!vvvvvoo..oovvvoovvvvvv!", + "!vvvvvvoo..oovvoovvvvvv!", + "!vvvvvvvoo..oooooovvvvv!", + "!vvvvvvvvoo..o..ovvvvvv!", + "!vvvvvvvvvoo..ooovvvvvv!", + "!vvvvvvvvoo..oovvvvvvvv!", + "!vvvvvvvoo..oovvvvvvvvv!", + "!vvvvvvvoo..oovvvvvvvvv!", + "!vvvvvvvvoo..oovvvvvvvv!", + "!vvvvvvvvoo..oovvvvvvvv!", + "!vvvvvvvvoo..oovvvvvvvv!" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_straight_template_chasm", + "//": "hallway in a chasm with possible half-formed juts", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + "!vvvvvvvv1 vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vv3vvvvv7 5vvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vv2vvvvv6 4vvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv1 vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!" + ], + "palettes": [ "labyrinthine_base_palette" ], + "terrain": { "2": "t_nl_chasm", "3": "t_nl_chasm", "4": "t_nl_chasm", "5": "t_nl_chasm" }, + "nested": { + "1": { "chunks": [ [ "ls_ns_6x6hall_basic", 70 ], [ "ls_ns_6x6hall_fancy", 30 ] ] }, + "2": { "chunks": [ [ "null", 30 ], [ "ls_necorner_6x6hall_basic", 70 ] ] }, + "3": { "chunks": [ [ "null", 60 ], [ "ls_secorner_6x6hall_basic", 40 ] ] }, + "4": { "chunks": [ [ "null", 30 ], [ "ls_nwcorner_6x6hall_basic", 70 ] ] }, + "5": { "chunks": [ [ "null", 60 ], [ "ls_swcorner_6x6hall_basic", 40 ] ] }, + "6": { "chunks": [ [ "ls_ns_6x6hall_fancy", 10 ], [ "ls_4way_6x6hall_basic", 30 ], [ "ls_Te_6x6hall_basic", 60 ] ] }, + "7": { "chunks": [ [ "ls_ns_6x6hall_fancy", 10 ], [ "ls_4way_6x6hall_basic", 30 ], [ "ls_Tw_6x6hall_basic", 60 ] ] } + } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_corner_template_chasm", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + "!!!!!!!!!!!!!!!!!!!!!!!!", + "!|||||vvvvvvvvvvvvvvvvvv", + "!|||vvvvvvvvvvvvvvvvvvvv", + "!||vvvvvvvvvvvvvvvvvvvvv", + "!|vvvvvvvvvvvvvvvvvvvvvv", + "!|vvvvvvvvvvvvvvvvvvvvvv", + "!vvvvv1 vvvvvv", + "!vvvvv vvvvvv", + "!vvvvv vvvvvv", + "!vvvvv 2 ", + "!vvvvv ", + "!vvvvv ", + "!vvvvv ", + "!vvvvv ", + "!vvvvv ", + "!vvvvv vvvvvv", + "!vvvvv vvvvvv", + "!vvvvv vvvvvv", + "!vvvvvvvv3 vvvvvvvvv", + "!vvvvvvvv vvvvvvvvv", + "!vvvvvvvv vvvvvvvvv", + "!vvvvvvvv vvvvvvvvv", + "!vvvvvvvv vvvvvvvvv", + "!vvvvvvvv vvvvvvvvv" + ], + "palettes": [ "labyrinthine_base_palette" ], + "nested": { + "1": { "chunks": [ "ls_12x12hallcorner_basic" ] }, + "2": { "chunks": [ "ls_ew_6x6hall_basic" ] }, + "3": { "chunks": [ "ls_ns_6x6hall_basic" ] } + } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_corner_template_chasm", + "//": "Messy corner", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + "!!!!!!!!!!!!!!!!!!!!!!!!", + "!|||||||vvvvvvvvvvvvvvvv", + "!||||vvvvvvvvvvvvvvvvvvv", + "!||vvvvvvvvvvvvvvvvvvvvv", + "!||vvvvvvvvvvvvvvvvvvvvv", + "!|vvvvvvvvooovvvvvvvvvvv", + "!|vvvvvvooooooovvvvvvvvv", + "!|vvvvvooovvvoooovvvvvvv", + "!vvvvvvoovvvvvoooooovvvv", + "!vvvvvoovvvvvvvvoooooovv", + "!vvvvvoovvvvvvvvvooooooo", + "!vvvvvvoovvvvvvooo..oooo", + "!vvvvvvoovvvvooo........", + "!vvvvvoovvvvoo...oooo..o", + "!vvvvvoovvvoo..oovvvoooo", + "!vvvvvvoooo..ooovvvvvoov", + "!vvvvvvoo..ooovvvvvvvvvv", + "!vvvvvoo..oovvvvvvvvvvvv", + "!vvvvvoo..oovvvvvvvvvvvv", + "!vvvvvvoo..oovvvvvvvvvvv", + "!vvvvvvooo..oovvvvvvvvvv", + "!vvvvvvvvoo..oovvvvvvvvv", + "!vvvvvvvoo...oovvvvvvvvv", + "!vvvvvvvvoo..oovvvvvvvvv" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_corner_template_chasm", + "//": "Swingy corner, decent chance of a room in the middle", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + "!!!!!!!!!!!!!!!!!!!!!!!!", + "!|||||vvvvvvvvvvvvvvvvvv", + "!||vvvvvvvv2 vvvvvvv", + "!|vvvvvvvvv .ovvvvv", + "!|vvvvvvvv. ..ovvvv", + "!|vvvvvvo.. ...ovvv", + "!vvvvvvv... ....ovv", + "!vvvvvo.... v....ov", + "!vvvvv....5vvvvvvvv....v", + "!vvv3 vvvvvvvv4 ", + "!vvv vvvvvvvv ", + "!vvv vvvvvvvv ", + "!vvv vvvvvvvv ", + "!vvv vvvvvvvv ", + "!vvv vvvvvvvv ", + "!vvvvo....vvvvvvvvvvvvvv", + "!vvvvvo.....ovvvvvvvvvvv", + "!vvvvvvvo....ovvvvvvvvvv", + "!vvvvvvvv3 vvvvvvvvv", + "!vvvvvvvv vvvvvvvvv", + "!vvvvvvvv vvvvvvvvv", + "!vvvvvvvv vvvvvvvvv", + "!vvvvvvvv vvvvvvvvv", + "!vvvvvvvv vvvvvvvvv" + ], + "palettes": [ "labyrinthine_base_palette" ], + "terrain": { "5": "t_nl_chasm" }, + "nested": { + "1": { "chunks": [ "ls_12x12hallcorner_basic" ] }, + "2": { "chunks": [ "ls_ew_6x6hall_basic" ] }, + "3": { "chunks": [ "ls_ns_6x6hall_basic" ] }, + "4": { "chunks": [ "ls_necorner_6x6hall_basic" ] }, + "5": { "chunks": [ [ "null", 40 ], [ "ls_8x8_se_entry_room", 60 ] ] } + } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_tee_template_chasm", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + "!!!!!!!!!!!!!!!!!!!!!!!!", + "vvvvvvvvvv||||vvvvvvvvvv", + "vvvvvvvvvvv||vvvvvvvvvvv", + "vvvvvvvvvvvvvvvvvvvvvvvv", + "vvvvvvvvvvvvvvvvvvvvvvvv", + "vvvvvvvvvvvvvvvvvvvvvvvv", + "vvvvvv1 vvvvvv", + "vvvvvv vvvvvv", + "vvvvvv vvvvvv", + "2 2 ", + " ", + " ", + " ", + " ", + " ", + "vvvvvv vvvvvv", + "vvvvvv vvvvvv", + "vvvvvv vvvvvv", + "vvvvvvvvv3 vvvvvvvvv", + "vvvvvvvvv vvvvvvvvv", + "vvvvvvvvv vvvvvvvvv", + "vvvvvvvvv vvvvvvvvv", + "vvvvvvvvv vvvvvvvvv", + "vvvvvvvvv vvvvvvvvv" + ], + "palettes": [ "labyrinthine_base_palette" ], + "nested": { + "1": { "chunks": [ "ls_12x12halltee_basic" ] }, + "2": { "chunks": [ "ls_ew_6x6hall_basic" ] }, + "3": { "chunks": [ "ls_ns_6x6hall_basic" ] } + } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_4way_template_chasm", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + "vvvvvvvvv3 vvvvvvvvv", + "vvvvvvvvv vvvvvvvvv", + "vvvvvvvvv vvvvvvvvv", + "vvvvvvvvv vvvvvvvvv", + "vvvvvvvvv vvvvvvvvv", + "vvvvvvvvv vvvvvvvvv", + "vvvvvv1 vvvvvv", + "vvvvvv vvvvvv", + "vvvvvv vvvvvv", + "2 2 ", + " ", + " ", + " ", + " ", + " ", + "vvvvvv vvvvvv", + "vvvvvv vvvvvv", + "vvvvvv vvvvvv", + "vvvvvvvvv3 vvvvvvvvv", + "vvvvvvvvv vvvvvvvvv", + "vvvvvvvvv vvvvvvvvv", + "vvvvvvvvv vvvvvvvvv", + "vvvvvvvvv vvvvvvvvv", + "vvvvvvvvv vvvvvvvvv" + ], + "palettes": [ "labyrinthine_base_palette" ], + "nested": { + "1": { "chunks": [ "ls_12x12hall4way_basic" ] }, + "2": { "chunks": [ "ls_ew_6x6hall_basic" ] }, + "3": { "chunks": [ "ls_ns_6x6hall_basic" ] } + } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_deadend_template_chasm", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + "!vvvvvvvv1 vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvvvvvvvvvvvvvvvv!", + "!vvvvvvvvvvvvvvvvvvvvvv!", + "!vvvvvvvvvvvvvvvvvvvvvv!", + "!vvvvvvvvvvvvvvvvvvvvvv!", + "!vvvvvvvvvvvvvvvvvvvvvv!", + "!vvvvvvvvvvvvvvvvvvvvvv!", + "!vvvvvvvvvvvvvvvvvvvvvv!", + "!vvvvvvvvvvvvvvvvvvvvvv!", + "!vvvvvvvvvvvvvvvvvvvvvv!", + "!vvvvvvvvvvvvvvvvvvvvvv!", + "!vvvvvvvvvvvvvvvvvvvvvv!", + "!vvvvvvvvvvvvvvvvvvvvvv!", + "!vvvvvvvvvvvvvvvvvvvvvv!", + "!vvvvvvvvvvvvvvvvvvvvvv!", + "!|vvvvvvvvvvvvvvvvvvvv|!", + "!||vvvvvvvvvvvvvvvvvv||!", + "!|||vvvvvvvvvvvvvvvv|||!", + "!!!!!!!!!!!!!!!!!!!!!!!!" + ], + "palettes": [ "labyrinthine_base_palette" ], + "nested": { "1": { "chunks": [ "ls_ns_6x6hall_basic" ] } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_12x12hallcorner_basic", + "object": { + "mapgensize": [ 12, 12 ], + "rows": [ + "vvvvvvvvvvvv", + "vvvvvvvvvvvv", + "vvvvvvvvvvvv", + "vvvvvvvvvvvv", + "vvvvvv......", + "vvvvv.......", + "vvvv........", + "vvvv........", + "vvvv.....vvv", + "vvvv....vvvv", + "vvvv....vvvv", + "vvvv....vvvv" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_12x12hall4way_basic", + "object": { + "mapgensize": [ 12, 12 ], + "rows": [ + "vvvv....vvvv", + "vvvv....vvvv", + "vvvv....vvvv", + "vvv......vvv", + "............", + "............", + "............", + "............", + "vvv......vvv", + "vvvv....vvvv", + "vvvv....vvvv", + "vvvv....vvvv" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_12x12halltee_basic", + "object": { + "mapgensize": [ 12, 12 ], + "rows": [ + "vvvvvvvvvvvv", + "vvvvvvvvvvvv", + "vvvvvvvvvvvv", + "vvvvvvvvvvvv", + ".....vv.....", + "............", + "............", + "............", + "vvv......vvv", + "vvvv....vvvv", + "vvvv....vvvv", + "vvvv....vvvv" + ], + "palettes": [ "labyrinthine_base_palette" ] + } + } +] diff --git a/data/mods/CBM_Dungeon_Test/ls_mapgen_nests_templated_rooms.json b/data/mods/CBM_Dungeon_Test/ls_mapgen_nests_templated_rooms.json new file mode 100644 index 0000000000000..29a0675343d64 --- /dev/null +++ b/data/mods/CBM_Dungeon_Test/ls_mapgen_nests_templated_rooms.json @@ -0,0 +1,602 @@ +[ + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_straight_template_rooms", + "//": "Two basic rooms, offset doors. Fits room contents maps ls_straight_2basic_rooms_offset and ls_straight_2basic_rooms_anydoor", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + "!|||||||v2 v|||||||!", + "!4_____|v v|______!", + "!______+. v|______!", + "!______+. v|______!", + "!______|v v|______!", + "!______|v v|______!", + "!______|v1 v|______!", + "!______|v v|______!", + "!______|v v|______!", + "!______|v v|______!", + "!______|v v|______!", + "!______|v v|______!", + "!______|v3 v|______!", + "!______|v v|______!", + "!______|v .+______!", + "!______|v .+______!", + "!______|v v|______!", + "!______|v v|______!", + "!______|v1 v|______!", + "!______|v v|______!", + "!______|v v|______!", + "!______|v v|______!", + "!______|v v|______!", + "!|||||||v v|||||||!" + ], + "palettes": [ "labyrinthine_base_palette" ], + "nested": { + "1": { "chunks": [ [ "ls_ns_6x6hall_basic", 55 ], [ "ls_ns_6x6hall_fancy", 45 ] ] }, + "2": { "chunks": [ "ls_Tw_6x6hall_basic" ] }, + "3": { "chunks": [ "ls_Te_6x6hall_basic" ] }, + "4": { "chunks": [ [ "ls_straight_2basic_rooms_offset", 50 ], [ "ls_straight_2basic_rooms_anydoor", 50 ] ] } + } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_straight_template_rooms", + "//": "Bubble cell rooms", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + "!1|||||vvv....vvv3|||||!", + "!|____||vv....vv||____|!", + "!______+........+______!", + "!______+.....ovv||____|!", + "!|____||vvo..ovvv4|||||!", + "!2|||||vvvo..ovv||____|!", + "!|____||vvo.....+______!", + "!______+........+______!", + "!|____||vo...ovv||____|!", + "!1|||||vvo...ovvv3|||||!", + "!|____||vo...ovv||____|!", + "!______+........+______!", + "!______+.......v||____|!", + "!|____||vvo..ovvv4|||||!", + "!1|||||vvvo..ovv||____|!", + "!|____||vvo.....+______!", + "!______+........+______!", + "!______+......ov||____|!", + "!|____||vvo...ovv4|||||!", + "!2|||||vvvo...ov||____|!", + "!|____||vvo.....+______!", + "!______+........+______!", + "!|____||vv....vv||____|!", + "!||||||vvv....vvv||||||!" + ], + "palettes": [ "labyrinthine_base_palette" ], + "terrain": { "1": "t_nl_metal_wall", "2": "t_nl_metal_wall", "3": "t_nl_metal_wall", "4": "t_nl_metal_wall" }, + "nested": { + "1": { "chunks": [ "ls_bubblecell_6x6_room_Wentry" ] }, + "2": { "chunks": [ "ls_bubblecell_5x5_room_Wentry" ] }, + "3": { "chunks": [ "ls_bubblecell_5x5_room_Eentry" ] }, + "4": { "chunks": [ "ls_bubblecell_6x6_room_Eentry" ] } + } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_straight_template_rooms", + "//": "Bubble cell rooms2", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + "!||||||vvv....vvvv|||||!", + "!|UUUU||vv....vvv||¢¢¢|!", + "!L_____+.........+____L!", + "!ϟ_____+.....ovvv||¢¢¢|!", + "!|UUU|||vo...ovvvv|||||!", + "!|||||vvvo...ovv|||¢¢¢|!", + "!|¢¢¢||vvo......+_____L!", + "!ϟ____+.........+_____(!", + "!L____+......ovv|||¢¢¢|!", + "!|¢¢¢||vvvo..ovvvv|||||!", + "!|||||vvvvo..ovvv||UUU|!", + "!|UUU|||v........+____L!", + "!L_____+.........+____(!", + "!|¢¢¢|||vvo...ovv||UUU|!", + "!|||||vvvvo...ovvv|||||!", + "!|¢¢¢||vvvo...o||||UUU|!", + "!(____+........+__+___L!", + "!L____+......ov||||UUU|!", + "!|UUU||vvvo..ovvvv|||||!", + "!|||||vvvvo..ovvv||UUU|!", + "!|¢¢¢|||vvo......+____(!", + "!L_____+.........+_ßßßL!", + "!|UUUU||vv....vvv||ṪṪṪ|!", + "!||||||vvv....vvvv|||||!" + ], + "palettes": [ "labyrinthine_base_palette", "labyrinthine_item_palette_bunk_room_tier0" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_corner_template_rooms", + "//": "large room with small cells", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + "!!!!!!!!!!!!!!!!!!!!!!!!", + "!4_______________|_____|", + "!________________|_____|", + "!________________|_____|", + "!________________|_____|", + "!________________|_____|", + "!________________+_____|", + "!________________|||||||", + "!________________|vvvvvv", + "!________________|2 ", + "!________________| ", + "!________________+ ", + "!________________+ ", + "!________________| ", + "!________________| ", + "!________________|vv..vv", + "!________________|||++||", + "!|||||+||||++|||||_____|", + "!______|v3 v|______|", + "!______|v v|______|", + "!______|v .+______|", + "!______|v .+______|", + "!______|v v|______|", + "!|||||||v v||||||||" + ], + "palettes": [ "labyrinthine_base_palette" ], + "terrain": { "4": "t_nl_metal_floor" }, + "nested": { + "1": { "chunks": [ "ls_12x12hallcorner_basic" ] }, + "2": { "chunks": [ "ls_Ts_6x6hall_basic" ] }, + "3": { "chunks": [ "ls_Te_6x6hall_basic" ] }, + "4": { "chunks": [ "ls_cornersquarerooms_22x22_rooms" ] } + } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_tee_template_rooms", + "//": "tee with large square rooms", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + "!!!!!!!!!!!!!!!!!!!!!!!!", + "|4_____________________|", + "|______________________|", + "|______________________|", + "|______________________|", + "|______________________|", + "|______________________|", + "||++||||||||||||||||++||", + "vv..vvvvvvvvvvvvvvvv..vv", + "1 2 2 1 ", + " ", + " ", + " ", + " ", + " ", + "vvvvvvv....vv....vvvvvvv", + "||||||||...vv...||||||||", + "|______+........+______|", + "|______|v3 v|______|", + "|______|v v|______|", + "|______|v v|______|", + "|______|v v|______|", + "|______|v v|______|", + "||||||||v v||||||||" + ], + "palettes": [ "labyrinthine_base_palette" ], + "terrain": { "4": "t_nl_metal_floor" }, + "nested": { + "1": { "chunks": [ "ls_Tn_6x6hall_basic" ] }, + "2": { "chunks": [ "ls_Ts_6x6hall_basic" ] }, + "3": { "chunks": [ "ls_ns_6x6hall_basic" ] }, + "4": { "chunks": [ "ls_teesquarerooms_22x22_rooms" ] } + } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_4way_template_rooms", + "//": "large room for setpiece nests", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + "|||||||||||++|||||||||||", + "|1_____________________|", + "|______________________|", + "|______________________|", + "|______________________|", + "|______________________|", + "|______________________|", + "|______________________|", + "|______________________|", + "|______________________|", + "|______________________|", + "+______________________+", + "+______________________+", + "|______________________|", + "|______________________|", + "|______________________|", + "|______________________|", + "|______________________|", + "|______________________|", + "|______________________|", + "|______________________|", + "|______________________|", + "|______________________|", + "|||||||||||++|||||||||||" + ], + "palettes": [ "labyrinthine_base_palette" ], + "terrain": { "1": "t_nl_metal_floor" }, + "nested": { "1": { "chunks": [ "ls_4waysquarerooms_22x22_rooms" ] } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_deadend_template_rooms", + "//": "single large room, ideal for nested maps", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + "!||||||||||++||||||||||!", + "!1_____________________!", + "!______________________!", + "!______________________!", + "!______________________!", + "!______________________!", + "!______________________!", + "!______________________!", + "!______________________!", + "!______________________!", + "!______________________!", + "!______________________!", + "!______________________!", + "!______________________!", + "!______________________!", + "!______________________!", + "!______________________!", + "!______________________!", + "!______________________!", + "!______________________!", + "!______________________!", + "!______________________!", + "!______________________!", + "!!!!!!!!!!!!!!!!!!!!!!!!" + ], + "palettes": [ "labyrinthine_base_palette" ], + "terrain": { "1": "t_nl_metal_floor" }, + "nested": { "1": { "chunks": [ "ls_4waysquarerooms_22x22_rooms" ] } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_straight_2basic_rooms_offset", + "//": "Two rooms full of general junk and monsters. Set up for a door entry in the upper left and lower right.", + "object": { + "mapgensize": [ 22, 22 ], + "rows": [ + "c____L L1111L", + "cUU___ c__cCc", + "c_____ ______", + "cUU___ cCc__c", + "c_____ ______", + "cUU___ c__cCc", + "||||F| ______", + "UUUU_l cCc__c", + "L____l |||++|", + "U____l L_____", + "UUUU_l ßß__ßß", + "||||F| ṪṪ__ṪṪ", + "cc___c |||_ßß", + "ccC¢Cc __|+||", + "Cc¢¢¢¢ _____ß", + "CCC¢¢¢ ßṪ___L", + "||||F| ßṪ___ß", + "U____L |||+||", + "U_((_U LUU_UU", + "U_((_U U____U", + "U_ßß_U U____U", + "UUṪṪUU UUU_UU" + ], + "palettes": [ + "labyrinthine_base_palette", + { + "distribution": [ [ "labyrinthine_item_palette_utility_tier0", 2 ], "labyrinthine_item_palette_dining_tier0" ] + } + ], + "monsters": { "1": { "monster": "GROUP_Labyrinth_Turret", "density": 0.01 } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_straight_2basic_rooms_offset", + "//": "Two rooms with keycard access gated by a computer", + "object": { + "mapgensize": [ 22, 22 ], + "rows": [ + "L_____| |______", + "___|__+ |___Ă__", + "___|__+ |______", + "______| |______", + "|__|||| |______", + "_____L| |______", + "______| |______", + "______| |______", + "______| |______", + "||||__| |______", + "______| |______", + "_____L| |||____", + "_|||||| |L|||==", + "______| =______", + "______| =______", + "LUUU_L| |L|||==", + "||||+|| |||L___", + "L_____| |______", + "Ṫ_____| |______", + "Ṫ_____| |______", + "Ṫ_____| |______", + "ṪṪṪṪṪÇ| |UUUUUU" + ], + "palettes": [ "labyrinthine_base_palette", "labyrinthine_item_palette_utility_tier0" ], + "terrain": { "Ă": "t_nl_obelisk_0" }, + "computers": { + "Ç": { + "name": "Door controls", + "eocs": [ "EOC_LS_Computer", "EOC_LS_Passcode_Randomize", "EOC_LS_Passcode_Selector" ], + "chat_topics": [ "COMP_LS_Passcode_Door" ] + } + } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_straight_2basic_rooms_anydoor", + "//": "Two rooms full of general junk and monsters. Set up so that any of the middle edge tiles can be an entrance.", + "object": { + "mapgensize": [ 22, 22 ], + "rows": [ + "1L((L_ _L((L1", + "1_____ _____1", + "_ßßßß_ _ßßßß_", + "_ṪṪṪṪ_ _ṪṪṪṪ_", + "_ßßßß_ _ßßßß_", + "1_____ _____1", + "1_____ _____1", + "_ßßßß_ _ßßßß_", + "_ṪṪṪṪ_ _ṪṪṪṪ_", + "_ßßßß_ _ßßßß_", + "1_____ _____1", + "1_____ _____1", + "_ßßßß_ _ßßßß_", + "_ṪṪṪṪ_ _ṪṪṪṪ_", + "_ßßßß_ _ßßßß_", + "1_____ _____1", + "1_____ _____1", + "_ßßßß_ _ßßßß_", + "_ṪṪṪṪ_ _ṪṪṪṪ_", + "_ßßßß_ _ßßßß_", + "1_____ _____1", + "1L((L_ _L((L1" + ], + "palettes": [ "labyrinthine_base_palette", "labyrinthine_item_palette_dining_tier0" ], + "monsters": { "1": { "monster": "GROUP_Labyrinth_Turret", "density": 0.01 } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_cornersquarerooms_22x22_rooms", + "//": "Two rooms full of general junk and monsters. Set up so that any of the middle edge tiles can be an entrance.", + "object": { + "mapgensize": [ 22, 22 ], + "rows": [ + "________________ ßßlßß", + "________________ __l__", + "_L(ṪṪƤṪ__ṪƥṪṪṪ(_ __l__", + "________________ __l__", + "________________ _____", + "_(ṪṪƥṪṪ_ƤṪṪṪṪ(L_+____L", + "________________ ", + "________________ ", + "_L(ṪƤṪṪ__ṪṪƥṪṪ(_ ", + "________________ ", + "________________ ", + "_(ṪṪṪṪƥ__ṪṪƤṪ(L_ ", + "________________ ", + "________________ ", + "_L(ṪṪṪƤṪ_ṪṪṪƥṪ(_ ", + "________________ ", + " + ++ LUUUU", + "______ ϟ(___U", + "_UU__U U____U", + "_UU__U +_____U", + "_UU__U +_____U", + "_____L UUßṪßU" + ], + "palettes": [ "labyrinthine_base_palette", "labyrinthine_item_palette_dining_tier0" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_teesquarerooms_22x22_rooms", + "//": "Two rooms full of general junk and monsters. Set up so that any of the middle edge tiles can be an entrance.", + "object": { + "mapgensize": [ 22, 22 ], + "rows": [ + "ϟ_________ϟ(ϟ________ϟ", + "_ßṪß__ßṪß_____ßṪß_ßṪß_", + "_ßṪß__ßṪß_____ßṪß_ßṪß_", + "_ßṪß__ßṪß_____ßṪß_ßṪß_", + "______________________", + "L__UUcCccCccCccCcUU__L", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + "L_____ _____L", + "______ ______", + "__UU__ A____E", + "__UU__ Ṫ____M", + "__UU__ Ṫ____E", + "_____L L(((((" + ], + "palettes": [ "labyrinthine_base_palette", "labyrinthine_item_palette_dining_tier0" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_bubblecell_6x6_room_Wentry", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "||||| ", + "|l_L_ ", + "b____ ", + "Ṫß___ ", + "|((__ ", + "||||| " + ], + "palettes": [ "labyrinthine_base_palette", "labyrinthine_item_palette_bunk_room_tier0" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_bubblecell_6x6_room_Wentry", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + "||||| ", + "|B_ϟ( ", + "l____ ", + "l____ ", + "|B_ϟ( ", + "||||| " + ], + "palettes": [ "labyrinthine_base_palette", "labyrinthine_item_palette_bunk_room_tier0" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_bubblecell_5x5_room_Wentry", + "object": { + "mapgensize": [ 5, 5 ], + "rows": [ + "|||||", + "|B__ ", + "(L__ ", + "|B__ ", + "|||||" + ], + "palettes": [ "labyrinthine_base_palette", "labyrinthine_item_palette_bunk_room_tier0" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_bubblecell_5x5_room_Wentry", + "object": { + "mapgensize": [ 5, 5 ], + "rows": [ + "|||||", + "|b__ ", + "l___ ", + "|LṪß ", + "|||||" + ], + "palettes": [ "labyrinthine_base_palette", "labyrinthine_item_palette_bunk_room_tier0" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_bubblecell_6x6_room_Eentry", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + " |||||", + " __Ll|", + " ____b", + " ___ßṪ", + " __((|", + " |||||" + ], + "palettes": [ "labyrinthine_base_palette", "labyrinthine_item_palette_bunk_room_tier0" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_bubblecell_6x6_room_Eentry", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + " |||||", + " _ϟ(B|", + " ____l", + " ____l", + " _ϟ(B|", + " |||||" + ], + "palettes": [ "labyrinthine_base_palette", "labyrinthine_item_palette_bunk_room_tier0" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_bubblecell_5x5_room_Eentry", + "object": { + "mapgensize": [ 5, 5 ], + "rows": [ + "|||||", + " __B|", + " __L(", + " __B|", + "|||||" + ], + "palettes": [ "labyrinthine_base_palette", "labyrinthine_item_palette_bunk_room_tier0" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_bubblecell_5x5_room_Eentry", + "object": { + "mapgensize": [ 5, 5 ], + "rows": [ + "|||||", + " _b|", + " ___l", + " ṪßL|", + "|||||" + ], + "palettes": [ "labyrinthine_base_palette", "labyrinthine_item_palette_bunk_room_tier0" ] + } + } +] diff --git a/data/mods/CBM_Dungeon_Test/ls_mapgen_treasure_rooms.json b/data/mods/CBM_Dungeon_Test/ls_mapgen_treasure_rooms.json new file mode 100644 index 0000000000000..a000765c6caab --- /dev/null +++ b/data/mods/CBM_Dungeon_Test/ls_mapgen_treasure_rooms.json @@ -0,0 +1,153 @@ +[ + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "ls_deadend_template_chasm", + "//": "Hanging room, hard to reach. The machine should interact to extend a bridge. Good treasure.", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + "!vvvvvvvv1 vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvv vvvvvvvv!", + "!vvvvvvvvvv...Ç((vvvvvv!", + "!vvvvvvvvvvvvvv((vvvvvv!", + "!vvvvvvvvvvvvvvvvvvvvvv!", + "!vvvvvv||||++||||vvvvvv!", + "!vvvvv||________||vvvvv!", + "!vvvvv|__________|vvvvv!", + "!vvvvv|__________|vvvvv!", + "!vvvvv|__________|vvvvv!", + "!vvvvv|__________|vvvvv!", + "!vvvvv|__________|vvvvv!", + "!vvvvv|__________|vvvvv!", + "!vvvvv|__________|vvvvv!", + "!vvvvv|__________|vvvvv!", + "!vvvvv||________||vvvvv!", + "!|vvvvv||||||||||vvvvv|!", + "!||vvvvvvvvvvvvvvvvvv||!", + "!|||vvvvvvvvvvvvvvvv|||!", + "!!!!!!!!!!!!!!!!!!!!!!!!" + ], + "palettes": [ "labyrinthine_base_palette" ], + "nested": { "1": { "chunks": [ [ "ls_ns_6x6hall_basic", 50 ], [ "ls_ns_6x6hall_fancy", 50 ] ] } }, + "computers": { + "Ç": { "name": "Bridge Controls", "eocs": [ "EOC_LS_Computer" ], "chat_topics": [ "COMP_LS_Bridge_control_deadend_1" ] } + } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "LS_10x10_deadend_1_room0", + "//": "Treasure room with autodoc!", + "object": { + "mapgensize": [ 10, 10 ], + "rows": [ + "|(U____U(|", + "(________(", + "U________U", + "E________E", + "B___äd___B", + "B___âL___B", + "E________E", + "U________U", + "(________(", + "|(UEBBEU(|" + ], + "palettes": [ "labyrinthine_base_palette" ], + "items": { "U": { "item": "LS_Rewardroom_Scatter_Passcode0", "chance": 32 } }, + "place_items": [ { "item": "LS_Rewardroom_Primary_Passcode0", "x": 4, "y": 4 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "LS_10x10_deadend_1_room1", + "//": "Treasure room Circle of Wings", + "object": { + "mapgensize": [ 10, 10 ], + "rows": [ + "|________|", + "_((_______", + "_((L______", + "__LÜ______", + "__________", + "____UU____", + "__s_UU_s__", + "____UU____", + "__s_UU_s__", + "|________|" + ], + "palettes": [ "labyrinthine_base_palette" ], + "furniture": { "s": "f_statue", "Ü": "f_lab_bench" }, + "items": { + "U": { "item": "LS_Rewardroom_Scatter_Passcode1", "chance": 32 }, + "Ü": { "item": "LS_Rewardroom_Primary_Passcode1" } + } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "LS_10x10_deadend_1_room2", + "//": "Room full of shelves, should have CBMs and weapons and a big fight", + "object": { + "mapgensize": [ 10, 10 ], + "rows": [ + "|L______L|", + "U___¯¯___U", + "Ü________U", + "U___¯¯___U", + "U________U", + "U___¯¯___U", + "U________U", + "U___¯¯___U", + "U________U", + "|L______L|" + ], + "palettes": [ "labyrinthine_base_palette" ], + "furniture": { "Ü": "f_utility_shelf" }, + "monsters": { "¯": { "monster": "GROUP_NETHER_REALITY_TEAR_FIELD", "density": 0.01 } }, + "items": { + "Ü": { "item": "LS_Rewardroom_Primary_Passcode2" }, + "U": [ + { "item": "LS_Rewardroom_Scatter_Passcode2", "chance": 25 }, + { "item": "LS_Rewardroom_Primary_Passcode2", "chance": 2 } + ] + } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "LS_10x10_deadend_1_room3", + "//": "Room full of shelves, should have CBMs", + "object": { + "mapgensize": [ 10, 10 ], + "rows": [ + "|________|", + "ϟ________ϟ", + "ϟ__M__M__ϟ", + "(________(", + "ϟ__M__M__ϟ", + "ϟ________ϟ", + "(__M__M__(", + "ϟ________ϟ", + "ϟ__M__M__ϟ", + "|ccCUÜCcc|" + ], + "palettes": [ "labyrinthine_base_palette" ], + "furniture": { "Ü": "f_utility_shelf" }, + "items": { + "c": { "item": "LS_SUS_crate_tier0_materials" }, + "C": { "item": "LS_Rewardroom_Scatter_Passcode3", "chance": 75 }, + "U": { "item": "LS_Rewardroom_Scatter_Passcode3", "chance": 75 }, + "Ü": { "item": "LS_Rewardroom_Primary_Passcode3" } + } + } + } +] diff --git a/data/mods/CBM_Dungeon_Test/ls_mapgen_updates.json b/data/mods/CBM_Dungeon_Test/ls_mapgen_updates.json new file mode 100644 index 0000000000000..da71d9e0207ca --- /dev/null +++ b/data/mods/CBM_Dungeon_Test/ls_mapgen_updates.json @@ -0,0 +1,100 @@ +[ + { + "type": "mapgen", + "update_mapgen_id": "UM_LS_Unlock", + "method": "json", + "object": { "place_ter_furn_transforms": [ { "transform": "nl_unlock_door", "x": [ 0, 23 ], "y": [ 0, 23 ] } ] } + }, + { + "type": "ter_furn_transform", + "id": "nl_unlock_door", + "//": "Should be merged with the one in aux_nested when moved to vanilla", + "terrain": [ { "result": "t_nl_door_c", "valid_terrain": [ "t_nl_door_l" ] } ] + }, + { + "type": "mapgen", + "update_mapgen_id": "UM_LS_Lock", + "method": "json", + "object": { "place_ter_furn_transforms": [ { "transform": "nl_lock_door", "x": [ 0, 23 ], "y": [ 0, 23 ] } ] } + }, + { + "type": "ter_furn_transform", + "id": "nl_lock_door", + "//": "Should be merged with the one in aux_nested when moved to vanilla", + "terrain": [ { "result": "t_nl_door_l", "valid_terrain": [ "t_nl_door_c", "t_nl_door_o" ] } ] + }, + { + "type": "mapgen", + "update_mapgen_id": "UM_LS_ReallyUnlock", + "method": "json", + "object": { "place_ter_furn_transforms": [ { "transform": "nl_door_to_floor", "x": [ 0, 23 ], "y": [ 0, 23 ] } ] } + }, + { + "type": "ter_furn_transform", + "id": "nl_door_to_floor", + "terrain": [ { "result": "t_nl_metal_floor", "valid_terrain": [ "t_nl_door_l", "t_nl_door_c", "t_nl_door_o" ] } ] + }, + { + "type": "mapgen", + "update_mapgen_id": "UM_LS_Passcode_Generator_1", + "method": "json", + "object": { "place_ter_furn_transforms": [ { "transform": "nl_obelisk_0_to_1", "x": [ 0, 23 ], "y": [ 0, 23 ] } ] } + }, + { + "type": "ter_furn_transform", + "id": "nl_obelisk_0_to_1", + "terrain": [ { "result": "t_nl_obelisk_1", "valid_terrain": [ "t_nl_obelisk_0" ] } ] + }, + { + "type": "mapgen", + "update_mapgen_id": "UM_LS_Passcode_Generator_2", + "method": "json", + "object": { "place_ter_furn_transforms": [ { "transform": "nl_obelisk_0_to_2", "x": [ 0, 23 ], "y": [ 0, 23 ] } ] } + }, + { + "type": "ter_furn_transform", + "id": "nl_obelisk_0_to_2", + "terrain": [ { "result": "t_nl_obelisk_2", "valid_terrain": [ "t_nl_obelisk_0" ] } ] + }, + { + "type": "mapgen", + "update_mapgen_id": "UM_LS_Passcode_Generator_3", + "method": "json", + "object": { "place_ter_furn_transforms": [ { "transform": "nl_obelisk_0_to_3", "x": [ 0, 23 ], "y": [ 0, 23 ] } ] } + }, + { + "type": "ter_furn_transform", + "id": "nl_obelisk_0_to_3", + "terrain": [ { "result": "t_nl_obelisk_3", "valid_terrain": [ "t_nl_obelisk_0" ] } ] + }, + { + "type": "mapgen", + "update_mapgen_id": "UM_Bridge_control_deadend_1_extend", + "method": "json", + "object": { "set": [ { "square": "terrain", "id": "t_nl_catwalk", "x": 11, "x2": 12, "y": 7, "y2": 8 } ] } + }, + { + "type": "mapgen", + "update_mapgen_id": "UM_LS_deadend_1_room0", + "method": "json", + "object": { "place_nested": [ { "chunks": [ "LS_10x10_deadend_1_room0" ], "x": 7, "y": 10 } ] } + }, + { + "type": "mapgen", + "update_mapgen_id": "UM_LS_deadend_1_room1", + "method": "json", + "object": { "place_nested": [ { "chunks": [ "LS_10x10_deadend_1_room1" ], "x": 7, "y": 10 } ] } + }, + { + "type": "mapgen", + "update_mapgen_id": "UM_LS_deadend_1_room2", + "method": "json", + "object": { "place_nested": [ { "chunks": [ "LS_10x10_deadend_1_room2" ], "x": 7, "y": 10 } ] } + }, + { + "type": "mapgen", + "update_mapgen_id": "UM_LS_deadend_1_room3", + "method": "json", + "object": { "place_nested": [ { "chunks": [ "LS_10x10_deadend_1_room3" ], "x": 7, "y": 10 } ] } + } +] diff --git a/data/mods/CBM_Dungeon_Test/modinfo.json b/data/mods/CBM_Dungeon_Test/modinfo.json new file mode 100644 index 0000000000000..97d11e7639cf9 --- /dev/null +++ b/data/mods/CBM_Dungeon_Test/modinfo.json @@ -0,0 +1,12 @@ +[ + { + "type": "MOD_INFO", + "id": "CBM_Dungeon_Test", + "name": "CBM Dungeon Test: Into the Labyrinth", + "authors": [ "I-am-Erk" ], + "maintainers": [ "I-am-Erk" ], + "description": "The test alpha version of a netherum dungeon where you can loot CBMs.", + "category": "content", + "dependencies": [ "dda" ] + } +] diff --git a/data/mods/CBM_Dungeon_Test/oms_labyrinth.json b/data/mods/CBM_Dungeon_Test/oms_labyrinth.json new file mode 100644 index 0000000000000..4703f1cd87d4b --- /dev/null +++ b/data/mods/CBM_Dungeon_Test/oms_labyrinth.json @@ -0,0 +1,64 @@ +[ + { + "type": "overmap_special", + "id": "labyrinthine_structure", + "subtype": "mutable", + "locations": [ "subterranean_empty", "land" ], + "check_for_locations": [ [ [ 0, 0, 1 ], [ "open_air" ] ], [ [ 0, 0, 0 ], [ "land" ] ] ], + "check_for_locations_area": [ { "type": [ "subterranean_empty" ], "from": [ -4, -4, -7 ], "to": [ 4, 4, -7 ] } ], + "//": "Placed with EoC", + "occurrences": [ 0, 0 ], + "flags": [ "EXODII" ], + "joins": [ { "id": "passage_to_passage", "into_locations": [ "subterranean_empty" ] }, { "id": "surface_to_z-7" } ], + "overmaps": { + "root": { "overmap": "field", "above": "surface_to_z-7" }, + "root_to_entrance": { "overmap": "open_air", "below": "surface_to_z-7", "locations": [ "open_air" ] }, + "entrance": { + "overmap": "labyrinth_entrance_north", + "north": "passage_to_passage", + "east": "passage_to_passage", + "south": "passage_to_passage", + "west": "passage_to_passage" + }, + "crossroads": { + "overmap": "labyrinth_hall_nesw", + "north": "passage_to_passage", + "east": "passage_to_passage", + "south": "passage_to_passage", + "west": "passage_to_passage" + }, + "tee": { + "overmap": "labyrinth_hall_nes", + "north": "passage_to_passage", + "east": "passage_to_passage", + "south": "passage_to_passage" + }, + "straight_passage": { "overmap": "labyrinth_hall_ew", "east": "passage_to_passage", "west": "passage_to_passage" }, + "corner": { "overmap": "labyrinth_hall_ne", "north": "passage_to_passage", "east": "passage_to_passage" }, + "dead_end": { "overmap": "labyrinth_hall_end_west", "west": "passage_to_passage" } + }, + "root": "root", + "phases": [ + [ + { + "name": "entrance", + "chunk": [ { "overmap": "root_to_entrance", "pos": [ 0, 0, 1 ] }, { "overmap": "entrance", "pos": [ 0, 0, -7 ] } ], + "max": 1 + } + ], + [ + { "overmap": "straight_passage", "max": { "poisson": 20 } }, + { "overmap": "corner", "max": { "poisson": 30 } }, + { "overmap": "tee", "max": { "poisson": 20 } }, + { "overmap": "dead_end", "weight": 1 } + ], + [ + { "overmap": "dead_end", "weight": 2000 }, + { "overmap": "straight_passage", "weight": 20 }, + { "overmap": "corner", "weight": 100 }, + { "overmap": "tee", "weight": 20 }, + { "overmap": "crossroads", "weight": 1 } + ] + ] + } +] diff --git a/data/mods/CBM_Dungeon_Test/omt_labyrinth.json b/data/mods/CBM_Dungeon_Test/omt_labyrinth.json new file mode 100644 index 0000000000000..791982d7c4514 --- /dev/null +++ b/data/mods/CBM_Dungeon_Test/omt_labyrinth.json @@ -0,0 +1,24 @@ +[ + { + "type": "overmap_terrain", + "name": "solid rock", + "//": "should be indistinguishable from deep_rock. Not supposed to be able to see it.", + "id": "labyrinth_hall", + "sym": "%", + "color": "dark_gray", + "see_cost": 5, + "travel_cost_type": "impassable", + "flags": [ "LINEAR", "SHOULD_NOT_SPAWN" ] + }, + { + "type": "overmap_terrain", + "name": "solid rock", + "//": "should be indistinguishable from deep_rock. Not supposed to be able to see it.", + "id": "labyrinth_entrance", + "sym": "%", + "color": "dark_gray", + "see_cost": 5, + "travel_cost_type": "impassable", + "flags": [ "SHOULD_NOT_SPAWN" ] + } +] diff --git a/tools/spell_checker/dictionary.txt b/tools/spell_checker/dictionary.txt index 174ec6b1f0bdd..d953a38a1166f 100644 --- a/tools/spell_checker/dictionary.txt +++ b/tools/spell_checker/dictionary.txt @@ -2016,6 +2016,8 @@ FLDSMDFR flechette flechettes flensing +fleshborg +fleshborgs Fleshmender fleshmonger fleshwarp @@ -4401,6 +4403,7 @@ Orleans Orley ornithomimid ornithomimus +ouroboros Orpheus Orphic Orson @@ -5777,6 +5780,8 @@ Steyr STI Stig Stillwater +stiltwalker +stiltwalkers stim stimpack stims @@ -6261,6 +6266,7 @@ travelpack travelpacks Travers travois +treaded treecutting treefrog treefrogs