├── .gitattributes ├── .gitignore ├── Dorf_Life ├── cave_terrain.json ├── gates.json ├── harvest.json ├── itemgroups.json ├── items.json ├── mapgen_finales.json ├── mapgen_overlays.json ├── mod_tileset.json ├── mod_tileset.png ├── modinfo.json ├── obsolete.json ├── overmap_base.json ├── overmap_specials.json ├── overmap_terrain.json ├── recipes.json ├── vehiclegroups.json └── vehicles.json ├── Dorf_Life_BN ├── cave_terrain.json ├── gates.json ├── itemgroups.json ├── items.json ├── mapgen_finales.json ├── mapgen_overlays.json ├── mod_tileset.json ├── mod_tileset.png ├── modinfo.json ├── obsolete.json ├── overmap_base.json ├── overmap_specials.json ├── overmap_terrain.json ├── recipes.json ├── vehiclegroups.json └── vehicles.json └── README.md /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Windows thumbnail cache files 2 | Thumbs.db 3 | ehthumbs.db 4 | ehthumbs_vista.db 5 | 6 | # Folder config file 7 | Desktop.ini 8 | 9 | # Recycle Bin used on file shares 10 | $RECYCLE.BIN/ 11 | 12 | # Windows Installer files 13 | *.cab 14 | *.msi 15 | *.msm 16 | *.msp 17 | 18 | # Windows shortcuts 19 | *.lnk 20 | 21 | # ========================= 22 | # Operating System Files 23 | # ========================= 24 | -------------------------------------------------------------------------------- /Dorf_Life/cave_terrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "terrain", 4 | "id": "t_shrub_helmet_plump", 5 | "name": "patch of dark truffles", 6 | "description": "A patch of squat, dull purple mushrooms.", 7 | "looks_like": "t_underbrush", 8 | "symbol": "#", 9 | "color": "magenta_green", 10 | "move_cost": 2, 11 | "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT" ], 12 | "transforms_into": "t_shrub_helmet_plump_harvested", 13 | "examine_action": "harvest_ter", 14 | "harvest_by_season": [ 15 | { 16 | "seasons": [ "spring", "summer", "autumn", "winter" ], 17 | "id": "helmet_plump_harv" 18 | } 19 | ], 20 | "bash": { 21 | "str_min": 4, 22 | "str_max": 60, 23 | "sound": "crunch.", 24 | "sound_fail": "brush.", 25 | "ter_set": "t_moss_underground", 26 | "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] 27 | } 28 | }, 29 | { 30 | "type": "terrain", 31 | "id": "t_shrub_helmet_plump_harvested", 32 | "name": "uprooted cavern patch", 33 | "description": "A torn-up patch of bruised pink stalks.", 34 | "looks_like": "t_underbrush_harvested_spring", 35 | "symbol": "#", 36 | "color": "light_red_green", 37 | "move_cost": 2, 38 | "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "HARVESTED" ], 39 | "transforms_into": "t_shrub_helmet_plump", 40 | "examine_action": "harvested_plant", 41 | "bash": { 42 | "str_min": 4, 43 | "str_max": 60, 44 | "sound": "crunch.", 45 | "sound_fail": "brush.", 46 | "ter_set": "t_moss_underground", 47 | "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] 48 | } 49 | }, 50 | { 51 | "type": "terrain", 52 | "id": "t_shrub_pod_sweet", 53 | "name": "patch of vibrant bulbs", 54 | "description": "A patch of bright red plants resembling onions.", 55 | "looks_like": "t_underbrush", 56 | "symbol": "#", 57 | "color": [ "red_green", "red_green", "brown_green", "brown_green" ], 58 | "move_cost": 2, 59 | "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT" ], 60 | "transforms_into": "t_shrub_pod_sweet_harvested", 61 | "examine_action": "harvest_ter", 62 | "harvest_by_season": [ 63 | { 64 | "seasons": [ "spring", "summer" ], 65 | "id": "pod_sweet_harv" 66 | } 67 | ], 68 | "bash": { 69 | "str_min": 4, 70 | "str_max": 60, 71 | "sound": "crunch.", 72 | "sound_fail": "brush.", 73 | "ter_set": "t_moss_underground", 74 | "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] 75 | } 76 | }, 77 | { 78 | "type": "terrain", 79 | "id": "t_shrub_pod_sweet_harvested", 80 | "name": "uprooted cavern patch", 81 | "description": "An uprooted patch of leaves, leaking sweet-smelling sap.", 82 | "looks_like": "t_underbrush_harvested_spring", 83 | "symbol": "#", 84 | "color": "green", 85 | "move_cost": 2, 86 | "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "HARVESTED" ], 87 | "transforms_into": "t_shrub_pod_sweet", 88 | "examine_action": "harvested_plant", 89 | "bash": { 90 | "str_min": 4, 91 | "str_max": 60, 92 | "sound": "crunch.", 93 | "sound_fail": "brush.", 94 | "ter_set": "t_moss_underground", 95 | "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] 96 | } 97 | }, 98 | { 99 | "type": "terrain", 100 | "id": "t_shrub_wheat_cave", 101 | "name": "patch of cloudy brush", 102 | "description": "A patch of upright stalks covered in fluffy, cotton-like clumps.", 103 | "looks_like": "t_underbrush", 104 | "symbol": "#", 105 | "color": [ "brown_green", "white_green", "white_green", "brown_green" ], 106 | "move_cost": 2, 107 | "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT" ], 108 | "transforms_into": "t_shrub_wheat_cave_harvested", 109 | "examine_action": "harvest_ter", 110 | "harvest_by_season": [ 111 | { 112 | "seasons": [ "summer", "autumn" ], 113 | "id": "wheat_cave_harv" 114 | } 115 | ], 116 | "bash": { 117 | "str_min": 4, 118 | "str_max": 60, 119 | "sound": "crunch.", 120 | "sound_fail": "brush.", 121 | "ter_set": "t_moss_underground", 122 | "items": [ { "item": "straw_pile", "count": [ 1, 2 ] } ] 123 | } 124 | }, 125 | { 126 | "type": "terrain", 127 | "id": "t_shrub_wheat_cave_harvested", 128 | "name": "uprooted cavern patch", 129 | "description": "A patch of upright stalks, stripped bare.", 130 | "looks_like": "t_underbrush_harvested_spring", 131 | "symbol": "#", 132 | "color": "green", 133 | "move_cost": 2, 134 | "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "HARVESTED" ], 135 | "transforms_into": "t_shrub_wheat_cave", 136 | "examine_action": "harvested_plant", 137 | "bash": { 138 | "str_min": 4, 139 | "str_max": 60, 140 | "sound": "crunch.", 141 | "sound_fail": "brush.", 142 | "ter_set": "t_moss_underground", 143 | "items": [ { "item": "straw_pile", "count": [ 1, 2 ] } ] 144 | } 145 | }, 146 | { 147 | "type": "terrain", 148 | "id": "t_shrub_tails_pig", 149 | "name": "patch of spiral stalks", 150 | "description": "A patch of twisting, greenish stalks with short leaves.", 151 | "looks_like": "t_underbrush", 152 | "symbol": "#", 153 | "color": [ "green", "light_green", "light_green", "green" ], 154 | "move_cost": 2, 155 | "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT" ], 156 | "transforms_into": "t_shrub_tails_pig_harvested", 157 | "examine_action": "harvest_ter", 158 | "harvest_by_season": [ 159 | { 160 | "seasons": [ "summer", "autumn" ], 161 | "id": "tail_pig_harv" 162 | } 163 | ], 164 | "bash": { 165 | "str_min": 4, 166 | "str_max": 60, 167 | "sound": "crunch.", 168 | "sound_fail": "brush.", 169 | "ter_set": "t_moss_underground", 170 | "items": [ { "item": "plant_fibre", "count": [ 1, 4 ] } ] 171 | } 172 | }, 173 | { 174 | "type": "terrain", 175 | "id": "t_shrub_tails_pig_harvested", 176 | "name": "uprooted cavern patch", 177 | "description": "A thin patch of slightly-curled fungal shoots.", 178 | "looks_like": "t_underbrush_harvested_spring", 179 | "symbol": "#", 180 | "color": "green", 181 | "move_cost": 2, 182 | "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "HARVESTED" ], 183 | "transforms_into": "t_shrub_tails_pig", 184 | "examine_action": "harvested_plant", 185 | "bash": { 186 | "str_min": 4, 187 | "str_max": 60, 188 | "sound": "crunch.", 189 | "sound_fail": "brush.", 190 | "ter_set": "t_moss_underground", 191 | "items": [ { "item": "plant_fibre", "count": [ 1, 4 ] } ] 192 | } 193 | }, 194 | { 195 | "type": "terrain", 196 | "id": "t_shrub_bush_quarry", 197 | "name": "patch of hardened bramble", 198 | "description": "A patch of tangled, woody bramble laden with small growths.", 199 | "looks_like": "t_underbrush", 200 | "symbol": "#", 201 | "color": [ "green", "green", "green", "brown" ], 202 | "move_cost": 2, 203 | "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "SHARP" ], 204 | "transforms_into": "t_shrub_bush_quarry_harvested", 205 | "examine_action": "harvest_ter", 206 | "harvest_by_season": [ 207 | { 208 | "seasons": [ "spring", "summer", "autumn", "winter" ], 209 | "id": "bush_quarry_harv" 210 | } 211 | ], 212 | "bash": { 213 | "str_min": 4, 214 | "str_max": 60, 215 | "sound": "crunch.", 216 | "sound_fail": "brush.", 217 | "ter_set": "t_moss_underground", 218 | "items": [ { "item": "stick", "count": [ 0, 2 ] }, { "item": "splinter", "count": [ 1, 4 ] } ] 219 | } 220 | }, 221 | { 222 | "type": "terrain", 223 | "id": "t_shrub_bush_quarry_harvested", 224 | "name": "uprooted cavern patch", 225 | "description": "A patch of broken, tangled bramble stripped of its bounty.", 226 | "looks_like": "t_underbrush_harvested_spring", 227 | "symbol": "#", 228 | "color": "brown", 229 | "move_cost": 2, 230 | "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "HARVESTED", "SHARP" ], 231 | "transforms_into": "t_shrub_bush_quarry", 232 | "examine_action": "harvested_plant", 233 | "bash": { 234 | "str_min": 4, 235 | "str_max": 60, 236 | "sound": "crunch.", 237 | "sound_fail": "brush.", 238 | "ter_set": "t_moss_underground", 239 | "items": [ { "item": "stick", "count": [ 0, 2 ] }, { "item": "splinter", "count": [ 1, 4 ] } ] 240 | } 241 | }, 242 | { 243 | "type": "terrain", 244 | "id": "t_breach_stone_fake", 245 | "name": "smoothed rock?", 246 | "description": "A block of stone that's been smoothed and shaped, commonly granite or marble. Something seems suspicious here...", 247 | "symbol": "#", 248 | "looks_like": "t_rock_smooth", 249 | "color": "white", 250 | "move_cost": 0, 251 | "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "CONNECT_TO_WALL", "MINEABLE", "BLOCK_WIND" ], 252 | "roof": "t_rock_floor_no_roof", 253 | "connects_to": "WALL", 254 | "bash": { 255 | "str_min": 120, 256 | "str_max": 400, 257 | "sound": "crash!", 258 | "sound_fail": "a hollow-sounding whump!", 259 | "ter_set": "t_rock_floor", 260 | "items": [ { "item": "rock", "count": [ 6, 12 ] }, { "item": "material_rocksalt", "count": [ 0, 1 ], "prob": 10 } ] 261 | } 262 | }, 263 | { 264 | "type": "terrain", 265 | "id": "t_breach_stone_fake_lowered", 266 | "name": "rock floor?", 267 | "description": "A relatively flat area of rock and stone. Wasn't there a wall here previously?", 268 | "looks_like": "t_rock_floor", 269 | "symbol": ".", 270 | "color": "light_gray", 271 | "move_cost": 2, 272 | "roof": "t_flat_roof", 273 | "flags": [ "TRANSPARENT", "INDOORS", "COLLAPSES", "SUPPORTS_ROOF", "FLAT", "ROAD" ], 274 | "bash": { 275 | "str_min": 120, 276 | "str_max": 400, 277 | "sound": "crash!", 278 | "sound_fail": "whump!", 279 | "ter_set": "t_rock_floor", 280 | "items": [ { "item": "rock", "count": [ 6, 12 ] }, { "item": "material_rocksalt", "count": [ 0, 1 ], "prob": 10 } ] 281 | } 282 | }, 283 | { 284 | "type": "terrain", 285 | "id": "t_breach_lever", 286 | "name": "stone lever", 287 | "description": "A heavy lever carved out of and set into the surrounding natural stone. Wonder what it does...", 288 | "looks_like": "t_gates_control_concrete", 289 | "symbol": "6", 290 | "color": "cyan_red", 291 | "move_cost": 0, 292 | "flags": [ "NOITEM", "INDOORS", "PERMEABLE" ], 293 | "examine_action": "controls_gate" 294 | }, 295 | { 296 | "type": "terrain", 297 | "id": "t_breach_concrete_fake_c", 298 | "name": "reinforced concrete wall?", 299 | "description": "An extremely resilient wall, filled with concrete and rebar. Something seems suspicious here...", 300 | "looks_like": "t_strconc_wall", 301 | "symbol": "#", 302 | "color": "light_gray", 303 | "move_cost": 0, 304 | "flags": [ "NOITEM", "SUPPORTS_ROOF", "DOOR", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], 305 | "open": "t_breach_concrete_fake_o", 306 | "connects_to": "WALL", 307 | "bash": { 308 | "str_min": 120, 309 | "str_max": 460, 310 | "sound": "scrrrash!", 311 | "sound_fail": "a hollow-sounding whump!", 312 | "ter_set": "t_reb_cage", 313 | "items": [ { "item": "rock", "count": [ 10, 22 ] } ] 314 | } 315 | }, 316 | { 317 | "type": "terrain", 318 | "id": "t_breach_concrete_fake_o", 319 | "name": "reinforced concrete floor?", 320 | "description": "Extremely resilient floor made from carefully placed rebar and poured concrete. Turns out it was a secret door all along.", 321 | "looks_like": "t_strconc_floor", 322 | "symbol": ".", 323 | "color": "cyan", 324 | "move_cost": 2, 325 | "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "ROAD" ], 326 | "close": "t_breach_concrete_fake_c", 327 | "bash": { 328 | "str_min": 120, 329 | "str_max": 460, 330 | "sound": "scrrrash!", 331 | "sound_fail": "whump!", 332 | "ter_set": "t_reb_cage", 333 | "items": [ { "item": "rock", "count": [ 10, 22 ] } ] 334 | } 335 | } 336 | ] 337 | -------------------------------------------------------------------------------- /Dorf_Life/gates.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "gate", 4 | "id": "t_breach_lever", 5 | "door": "t_breach_stone_fake", 6 | "floor": "t_breach_stone_fake_lowered", 7 | "walls": [ "t_rock_smooth" ], 8 | "messages": { 9 | "pull": "You throw the lever...", 10 | "open": "The stones lower and open the way!", 11 | "close": "The stones rise back into place!", 12 | "fail": "The stones fail to move!" 13 | }, 14 | "moves": 2000, 15 | "bashing_damage": 200 16 | } 17 | ] 18 | -------------------------------------------------------------------------------- /Dorf_Life/harvest.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "helmet_plump_harv", 4 | "type": "harvest", 5 | "entries": [ { "drop": "caveyot_helmet_plump", "base_num": [ 2, 6 ] }, { "drop": "withered", "base_num": [ 0, 1 ] } ] 6 | }, 7 | { 8 | "id": "pod_sweet_harv", 9 | "type": "harvest", 10 | "entries": [ { "drop": "caveyot_pod_sweet", "base_num": [ 4, 8 ] }, { "drop": "withered", "base_num": [ 1, 3 ] } ] 11 | }, 12 | { 13 | "id": "wheat_cave_harv", 14 | "type": "harvest", 15 | "entries": [ { "drop": "caveyot_wheat_cave", "base_num": [ 4, 8 ] }, { "drop": "straw_pile", "base_num": [ 1, 3 ] } ] 16 | }, 17 | { 18 | "id": "tail_pig_harv", 19 | "type": "harvest", 20 | "entries": [ { "drop": "caveyot_tails_pig", "base_num": [ 4, 8 ] }, { "drop": "plant_fibre", "base_num": [ 1, 4 ] } ] 21 | }, 22 | { 23 | "id": "bush_quarry_harv", 24 | "type": "harvest", 25 | "entries": [ 26 | { "drop": "caveyot_bush_quarry", "base_num": [ 4, 8 ] }, 27 | { "drop": "stick", "base_num": [ 2, 3 ] }, 28 | { "drop": "stick_long", "base_num": [ 1, 2 ] }, 29 | { "drop": "log", "base_num": [ 0, 2 ] } 30 | ] 31 | } 32 | ] 33 | -------------------------------------------------------------------------------- /Dorf_Life/itemgroups.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "item_group", 4 | "id": "military", 5 | "subtype": "distribution", 6 | "entries": [ 7 | { "group": "mil_food", "prob": 1251 }, 8 | { "group": "mil_armor", "prob": 575 }, 9 | { "item": "m107a1", "prob": 1 }, 10 | { "item": "bipod", "prob": 1 }, 11 | { "item": "50bmg", "prob": 3 }, 12 | { "item": "50ss", "prob": 2 }, 13 | { "item": "50match", "prob": 1 }, 14 | { "item": "50_mk211", "prob": 1 }, 15 | { "item": "small_repairkit", "prob": 10 }, 16 | { "item": "50_incendiary", "prob": 2 }, 17 | { "item": "water_clean", "prob": 90 }, 18 | { "item": "battery_ups", "prob": 10 }, 19 | { "item": "bandages", "prob": 30, "count": [ 1, 3 ] }, 20 | { "group": "adhesive_bandages_box_used", "prob": 20 }, 21 | { "group": "cotton_ball_bag_used", "prob": 20 }, 22 | { "group": "cotton_ball_bag_full", "prob": 5 }, 23 | { "prob": 5, "group": "iodine_bottle_plastic_pill_supplement_10" }, 24 | { "prob": 5, "group": "prussian_blue_bottle_plastic_pill_supplement_10" }, 25 | { "item": "adrenaline_injector", "prob": 4 }, 26 | { "group": "tobacco_products", "prob": 146 }, 27 | { "group": "infantry_knives", "prob": 14 }, 28 | { "item": "throwing_knife", "prob": 7 }, 29 | { "item": "boots_steel", "prob": 50 }, 30 | { "item": "sneakers_steel", "prob": 35 }, 31 | { "item": "gloves_fingerless", "prob": 20 }, 32 | { "item": "glasses_safety", "prob": 40 }, 33 | { "item": "hat_boonie", "prob": 10 }, 34 | { "item": "nylon_holster", "prob": 15 }, 35 | { "item": "sholster", "prob": 10 }, 36 | { "item": "bandolier_shotgun", "prob": 12 }, 37 | { "item": "torso_bandolier_shotgun", "prob": 8 }, 38 | { "item": "torso_bandolier_grenade", "prob": 8 }, 39 | { "item": "bootstrap", "prob": 3 }, 40 | { "item": "legpouch", "prob": 8 }, 41 | { "item": "legpouch_large", "prob": 4 }, 42 | { "item": "chestpouch", "prob": 6 }, 43 | { "item": "ammo_satchel", "prob": 3 }, 44 | { "item": "ammo_pouch", "prob": 3 }, 45 | { "item": "gobag", "prob": 1 }, 46 | { "item": "mess_kit", "prob": 9 }, 47 | { "item": "tent_kit", "prob": 10 }, 48 | { "item": "large_tent_kit", "prob": 10 }, 49 | { "item": "9mm", "prob": 8 }, 50 | { "item": "9mmfmj", "prob": 4 }, 51 | { "item": "45_acp", "prob": 7 }, 52 | { "item": "45_jhp", "prob": 3 }, 53 | { "item": "556", "prob": 6 }, 54 | { "item": "556_incendiary", "prob": 2 }, 55 | { "item": "762_51", "prob": 6 }, 56 | { "item": "762_51_incendiary", "prob": 6 }, 57 | { "item": "40x46mm_m433", "prob": 10 }, 58 | { "item": "40x46mm_m433", "prob": 8 }, 59 | { "item": "40x46mm_m651", "prob": 5 }, 60 | { "item": "40x46mm_m576", "prob": 12 }, 61 | { "item": "40x53mm_m1001", "prob": 6 }, 62 | { "item": "m9", "variant": "m9", "prob": 6 }, 63 | { "item": "usp_45", "prob": 6 }, 64 | { "group": "modular_m4a1", "prob": 7 }, 65 | { "group": "m4_cqbr", "prob": 1 }, 66 | { "item": "modular_m16a4", "prob": 5 }, 67 | { "item": "modular_m16_auto_rifle", "variant": "modular_m16a3", "prob": 1 }, 68 | { "item": "colt_ro635", "prob": 1 }, 69 | { "item": "p226_9mm", "prob": 1 }, 70 | { "item": "sp2022", "prob": 1 }, 71 | { "item": "modular_m27_assault_rifle", "variant": "modular_h&k416a5", "prob": 7 }, 72 | { "item": "mossberg_930", "variant": "m1014", "prob": 2 }, 73 | { "item": "m26_mass_standalone", "prob": 1 }, 74 | { "item": "scar_l", "prob": 6 }, 75 | { "item": "scar_h", "prob": 5 }, 76 | { "item": "sig_mcx_rattler_sbr", "prob": 1 }, 77 | { "item": "m249", "prob": 1 }, 78 | { "item": "m240", "prob": 1 }, 79 | { "item": "modular_m27_assault_rifle", "variant": "modular_m27iar", "prob": 1 }, 80 | { "item": "modular_m27_assault_rifle", "variant": "modular_m38dmr", "contents-group": "m38dmr_mods", "prob": 1 }, 81 | { "item": "m320", "prob": 5 }, 82 | { "item": "m320_mod", "prob": 10 }, 83 | { "item": "ugl_buttstock", "prob": 10 }, 84 | { "item": "mgl", "prob": 6 }, 85 | { "item": "suppressor", "prob": 15 }, 86 | { "item": "shot_suppressor", "prob": 1 }, 87 | { "item": "lighter", "prob": 60, "charges": [ 0, 100 ] }, 88 | { "item": "small_lighter", "prob": 5, "charges": [ 0, 50 ] }, 89 | { "item": "ref_lighter", "prob": 5, "charges": [ 0, 50 ] }, 90 | { "item": "flashlight", "prob": 40, "charges": [ 0, 300 ] }, 91 | { "item": "heavy_flashlight", "prob": 40, "charges": [ 0, 300 ] }, 92 | { "item": "landmine", "prob": 3 }, 93 | { "item": "grenade", "prob": 3 }, 94 | { "item": "grenade_inc", "prob": 3 }, 95 | { "item": "flashbang", "prob": 3 }, 96 | { "item": "EMPbomb", "prob": 2 }, 97 | { "item": "gasbomb", "prob": 3 }, 98 | { "item": "smokebomb", "prob": 5 }, 99 | { "item": "c4", "prob": 5 }, 100 | { "item": "flamethrower", "prob": 1 }, 101 | { "item": "binoculars", "prob": 20 }, 102 | { "item": "masterkey", "prob": 2 }, 103 | { "item": "m26_mass", "prob": 3 }, 104 | { "item": "canteen", "prob": 15 }, 105 | { "item": "2lcanteen", "prob": 10 }, 106 | { "item": "camelbak", "prob": 5 }, 107 | { "item": "jerrycan", "prob": 10 }, 108 | { "item": "rucksack", "prob": 20 }, 109 | { "group": "molle_backpacks_and_accessories", "prob": 15 }, 110 | { "item": "LAW_Packed", "prob": 30 }, 111 | { "item": "m3_carlgustav", "prob": 1 }, 112 | { "item": "m4_carlgustav", "prob": 1 }, 113 | { "item": "84x246mm_he", "prob": 3 }, 114 | { "item": "84x246mm_hedp", "prob": 2 }, 115 | { "item": "84x246mm_smoke", "prob": 3 }, 116 | { "item": "atgm_launcher", "prob": 1 }, 117 | { "item": "atgm_heat", "prob": 1 }, 118 | { "item": "m202_flash", "prob": 2 }, 119 | { "item": "m74_clip", "prob": 3 }, 120 | { "item": "laser_sight", "prob": 15 }, 121 | { "item": "rail_laser_sight", "prob": 10 }, 122 | { "item": "tac_helmet", "prob": 10 }, 123 | { "item": "tac_fullhelmet", "prob": 5 }, 124 | { "item": "flight_helmet", "prob": 5 }, 125 | { "item": "mil_flight_suit", "prob": 5 }, 126 | { "item": "gum", "prob": 90, "count": 10 }, 127 | { "item": "caff_gum", "prob": 10, "count": 10 }, 128 | { "item": "nic_gum", "prob": 1, "count": 10 }, 129 | { "item": "improve_sights", "prob": 10 }, 130 | { "item": "waterproof_gunmod", "prob": 4 }, 131 | { "item": "cleansuit", "prob": 5 }, 132 | { "item": "hazmat_suit", "prob": 5 }, 133 | { "item": "e_tool", "prob": 20 }, 134 | { "item": "knife_trench", "prob": 14 }, 135 | { "item": "flaregun", "prob": 20 }, 136 | { "item": "signal_flare", "prob": 25 }, 137 | { "item": "militarymap", "prob": 4 }, 138 | { "item": "halligan", "prob": 10 }, 139 | { "item": "fire_ax", "prob": 5 }, 140 | { "prob": 2, "group": "antiparasitic_bottle_plastic_pill_prescription_5" }, 141 | { "item": "match_trigger", "prob": 2 }, 142 | { "item": "grapnel", "prob": 1 }, 143 | { "item": "bucket", "prob": 4 }, 144 | { "item": "bucket_5gal", "prob": 4 }, 145 | { "item": "sheath", "prob": 13 }, 146 | { "item": "bootsheath", "prob": 8 }, 147 | { "item": "leg_sheath6", "prob": 2 }, 148 | { "item": "throwing_knife", "count": [ 1, 6 ], "entry-wrapper": "leg_sheath6", "prob": 1 }, 149 | { "group": "tools_toolbox", "prob": 1 }, 150 | { "item": "survnote", "prob": 1 }, 151 | { "item": "shoulder_strap", "prob": 16 }, 152 | { "item": "shoulder_strap_simple", "prob": 4 }, 153 | { "item": "single_sling", "prob": 16 }, 154 | { "item": "bot_manhack", "prob": 1 }, 155 | { "item": "bot_grenade_hack", "prob": 1 }, 156 | { "item": "chem_hexamine", "prob": 5 }, 157 | { "item": "esbit_stove", "prob": 8 }, 158 | { "item": "bt_apc9k", "prob": 1 }, 159 | { "item": "kevlar_nape_protector", "prob": 5 }, 160 | { "item": "counterweight_pouch", "prob": 5 } 161 | ] 162 | }, 163 | { 164 | "type": "item_group", 165 | "id": "wreckage", 166 | "items": [ 167 | [ "chain", 20 ], 168 | [ "lc_steel_chunk", 30 ], 169 | [ "spring", 50 ], 170 | [ "lc_steel_lump", 30 ], 171 | [ "frame", 20 ], 172 | [ "hdframe", 20 ], 173 | [ "cu_pipe", 25 ], 174 | [ "scrap_copper", 62 ], 175 | [ "rock", 40 ], 176 | [ "survnote", 1 ] 177 | ] 178 | }, 179 | { 180 | "type": "item_group", 181 | "subtype": "collection", 182 | "id": "caveyot_miners", 183 | "entries": [ 184 | { "item": "corpse", "damage": 3 }, 185 | { "group": "clothing_work_set", "damage": [ 1, 4 ] }, 186 | { 187 | "distribution": [ 188 | { "item": "backpack", "prob": 40, "damage": [ 1, 4 ] }, 189 | { "item": "slingpack", "prob": 15, "damage": [ 1, 4 ] }, 190 | { "item": "briefcase", "prob": 5, "damage": [ 1, 4 ] }, 191 | { "item": "backpack_leather", "prob": 20, "damage": [ 1, 4 ] } 192 | ] 193 | }, 194 | { "group": "caveyot_mine_tools", "prob": 50, "count": [ 1, 2 ] } 195 | ] 196 | }, 197 | { 198 | "type": "item_group", 199 | "subtype": "collection", 200 | "id": "caveyot_survivors", 201 | "entries": [ 202 | { "item": "corpse", "damage": 3 }, 203 | { "group": "mon_zombie_survivor_death_drops" }, 204 | { "group": "caveyot_mine_tools", "prob": 50 } 205 | ] 206 | }, 207 | { 208 | "type": "item_group", 209 | "id": "caveyot_mine_tools", 210 | "items": [ 211 | [ "water_clean", 90 ], 212 | { "group": "used_1st_aid", "prob": 35 }, 213 | [ "rope_30", 35 ], 214 | [ "chain", 20 ], 215 | { "group": "ammo_any_batteries", "prob": 50 }, 216 | { "item": "flashlight", "prob": 40, "charges": [ 0, 300 ] }, 217 | { "item": "heavy_flashlight", "prob": 10, "charges": [ 0, 300 ] }, 218 | [ "pickaxe", 1 ], 219 | { "item": "jackhammer", "prob": 2, "charges": [ 0, 1200 ] }, 220 | { "item": "elec_jackhammer", "prob": 1, "charges": [ 0, 7920 ] }, 221 | [ "dynamite", 5 ], 222 | [ "UPS_off", 5 ], 223 | [ "bio_tools", 10 ], 224 | [ "bio_flashlight", 10 ], 225 | [ "bio_lighter", 10 ], 226 | [ "bio_magnet", 10 ], 227 | [ "bio_resonator", 10 ], 228 | [ "bio_hydraulics", 10 ], 229 | [ "bio_weight", 12 ], 230 | [ "jerrycan", 10 ], 231 | [ "jerrycan_big", 10 ], 232 | { "item": "gasoline_lantern", "prob": 5, "charges": [ 0, 500 ] }, 233 | { "item": "electric_lantern", "prob": 8, "charges": [ 0, 100 ] }, 234 | { "item": "oil_lamp", "prob": 5, "charges": [ 0, 750 ] }, 235 | [ "lamp_oil", 5 ], 236 | [ "shovel", 10 ], 237 | [ "e_tool", 5 ], 238 | [ "bucket", 10 ], 239 | [ "grapnel", 1 ], 240 | { "group": "tools_toolbox", "prob": 1 }, 241 | [ "remotevehcontrol", 10 ] 242 | ] 243 | }, 244 | { 245 | "type": "item_group", 246 | "id": "cavern_ruins", 247 | "//": "Construction litter for non-anomalous ruins, no artifacts as getting a fix on tools and clothes for any given time period can be difficult.", 248 | "items": [ 249 | { "item": "stick_long", "prob": 10, "count": [ 1, 2 ] }, 250 | { "item": "stick", "prob": 10, "count": [ 1, 4 ] }, 251 | { "item": "birchbark", "prob": 20, "count": [ 2, 8 ] }, 252 | { "item": "straw_pile", "prob": 10, "count": [ 1, 10 ] }, 253 | { "item": "leather", "prob": 5, "count": [ 1, 10 ] } 254 | ] 255 | }, 256 | { 257 | "type": "item_group", 258 | "id": "cavern_cabin", 259 | "subtype": "collection", 260 | "magazine": 100, 261 | "ammo": 100, 262 | "entries": [ 263 | { "item": "small_homemade_grenade", "prob": 33, "count": [ 2, 6 ] }, 264 | { "item": "rope_30", "prob": 33, "count": [ 1, 4 ] }, 265 | { 266 | "distribution": [ 267 | { "item": "steel_lump", "prob": 1, "count": [ 1, 5 ] }, 268 | { "item": "lead", "prob": 1, "count": [ 1, 5 ] }, 269 | { "item": "silver_small", "prob": 1, "count": [ 1, 5 ] }, 270 | { "item": "bismuth", "prob": 1, "count": [ 1, 5 ] } 271 | ], 272 | "prob": 50 273 | }, 274 | { 275 | "distribution": [ { "item": "arrow_wood", "prob": 1, "count": [ 1, 3 ] }, { "item": "throwing_knife", "prob": 1, "count": [ 1, 3 ] } ], 276 | "prob": 50 277 | }, 278 | { "group": "drugs_pharmacy", "prob": 67, "count": [ 1, 2 ] }, 279 | { "item": "torch", "prob": 10, "count": [ 2, 5 ] } 280 | ] 281 | }, 282 | { 283 | "type": "item_group", 284 | "subtype": "collection", 285 | "id": "cavern_shrine", 286 | "entries": [ 287 | { "item": "bone_human", "count": [ 4, 9 ] }, 288 | { 289 | "distribution": [ 290 | { 291 | "collection": [ 292 | { 293 | "distribution": [ { "item": "longshirt", "prob": 50, "damage": [ 1, 4 ] }, { "item": "tunic", "prob": 50, "damage": [ 1, 4 ] } ] 294 | }, 295 | { "item": "breeches", "damage": [ 1, 4 ] } 296 | ], 297 | "prob": 50 298 | }, 299 | { "item": "dress", "prob": 25, "damage": [ 1, 4 ] }, 300 | { "item": "robe", "prob": 25, "damage": [ 1, 4 ] } 301 | ] 302 | }, 303 | { 304 | "distribution": [ { "item": "cloak_wool", "prob": 75, "damage": [ 1, 4 ] }, { "item": "greatcoat", "prob": 25, "damage": [ 1, 4 ] } ], 305 | "prob": 50 306 | }, 307 | { 308 | "distribution": [ 309 | { "item": "armor_larmor", "prob": 25, "damage": [ 1, 4 ] }, 310 | { "item": "chainmail_suit", "prob": 25, "damage": [ 1, 4 ] }, 311 | { "item": "cuirass_lightplate", "prob": 50, "damage": [ 1, 4 ] } 312 | ], 313 | "prob": 50 314 | }, 315 | { 316 | "distribution": [ 317 | { "item": "helmet_larmor", "prob": 25, "damage": [ 1, 4 ] }, 318 | { "item": "helmet_barbute", "prob": 75, "damage": [ 1, 4 ] } 319 | ], 320 | "prob": 80 321 | }, 322 | { 323 | "distribution": [ 324 | { "item": "pickaxe", "prob": 10 }, 325 | { "item": "battleaxe", "prob": 15 }, 326 | { "item": "warhammer", "prob": 15 }, 327 | { "item": "arming_sword", "prob": 5 }, 328 | { "item": "spear_steel", "prob": 25 }, 329 | { "item": "mace", "prob": 5 }, 330 | { 331 | "collection": [ { "item": "crossbow" }, { "item": "quiver", "damage": [ 1, 4 ] }, { "item": "bolt_steel_bodkin", "count": [ 1, 3 ] } ], 332 | "prob": 25 333 | } 334 | ], 335 | "prob": 90 336 | } 337 | ] 338 | }, 339 | { 340 | "type": "item_group", 341 | "id": "cavern_dungeon", 342 | "subtype": "collection", 343 | "entries": [ { "group": "cavern_dungeon_2", "count": [ 1, 3 ] }, { "group": "cavern_dungeon_1", "prob": 50, "count": [ 1, 4 ] } ] 344 | }, 345 | { 346 | "type": "item_group", 347 | "id": "cavern_dungeon_1", 348 | "items": [ 349 | { "item": "wheat", "prob": 40, "count": [ 3, 6 ] }, 350 | { "item": "coal_lump", "prob": 15 }, 351 | { "item": "copper", "prob": 15, "count": [ 1, 4 ] }, 352 | { "item": "seed_sugar_beet", "prob": 10 }, 353 | { "item": "seed_blackberries", "prob": 10 }, 354 | { "item": "seed_pumpkin", "prob": 10 }, 355 | { "item": "steel_lump", "prob": 10, "count": [ 1, 4 ] }, 356 | { "item": "bucket", "prob": 10 }, 357 | { "item": "gold_small", "prob": 5, "count": [ 1, 4 ] } 358 | ] 359 | }, 360 | { 361 | "type": "item_group", 362 | "id": "cavern_dungeon_2", 363 | "items": [ 364 | { "item": "bone", "prob": 10, "count": [ 1, 8 ] }, 365 | { "item": "chem_black_powder", "prob": 10, "count": [ 1, 2 ] }, 366 | { "item": "slime_scrap", "prob": 10, "count": [ 1, 4 ] }, 367 | { "item": "string_36", "prob": 10, "count": [ 1, 8 ] } 368 | ] 369 | }, 370 | { 371 | "type": "item_group", 372 | "subtype": "collection", 373 | "id": "caveyot_forge_tools", 374 | "entries": [ 375 | { "item": "crucible_clay", "prob": 90 }, 376 | { "item": "tongs", "prob": 80 }, 377 | { "item": "hammer", "prob": 70 }, 378 | { "item": "chisel", "prob": 60 }, 379 | { "item": "swage", "prob": 50 } 380 | ] 381 | }, 382 | { 383 | "type": "item_group", 384 | "id": "caveyot_minetown_general", 385 | "//": "Random mishmash of shit.", 386 | "subtype": "distribution", 387 | "items": [ 388 | { "group": "museum_melee", "prob": 10 }, 389 | { "group": "museum_armor", "prob": 10 }, 390 | { "group": "cannedfood", "prob": 20 }, 391 | { "group": "caveyot_minetown_tools", "prob": 8 }, 392 | { "group": "drugs_pharmacy", "prob": 16 }, 393 | [ "survnote", 16 ], 394 | { "group": "mansion_books", "prob": 4 }, 395 | { "group": "homeguns", "prob": 4 }, 396 | { "group": "jewelry_front", "prob": 12 } 397 | ] 398 | }, 399 | { 400 | "type": "item_group", 401 | "id": "caveyot_minetown_tools", 402 | "//": "Real rough mimicry of tool selection in Nethack, excluding stuff with no obvious vanilla counterpart.", 403 | "items": [ 404 | [ "blindfold", 50 ], 405 | [ "glasses_reading", 5 ], 406 | [ "towel", 50 ], 407 | [ "rope_6", 65 ], 408 | [ "minifreezer", 5 ], 409 | [ "waterskin", 5 ], 410 | [ "bag_canvas", 35 ], 411 | [ "trumpet", 4 ], 412 | [ "flute", 4 ], 413 | [ "cow_bell", 2 ], 414 | [ "dog_whistle", 100 ], 415 | [ "gasoline_lantern", 30 ], 416 | [ "atomic_lamp", 15 ], 417 | [ "oil_lamp", 45 ], 418 | [ "candle", 25 ], 419 | [ "cash_card", 15 ], 420 | [ "picklocks", 60 ], 421 | [ "grapnel", 20 ], 422 | [ "pickaxe", 5 ], 423 | [ "camera", 15 ], 424 | [ "permanent_marker", 15 ], 425 | [ "mirror", 45 ], 426 | [ "stethoscope", 25 ], 427 | [ "can_sealer", 15 ] 428 | ] 429 | }, 430 | { 431 | "type": "item_group", 432 | "id": "caveyot_minetown_wands", 433 | "//": "Garbage-tier hack for Nethack wand shop, using guns in place of wands.", 434 | "subtype": "distribution", 435 | "magazine": 100, 436 | "ammo": 75, 437 | "items": [ { "group": "homeguns", "prob": 90 }, [ "gloves_leather", 5 ], [ "jedi_cloak", 5 ] ] 438 | }, 439 | { 440 | "type": "item_group", 441 | "id": "caveyot_minetown_food", 442 | "//": "Mimics food spawns in Nethack delicatessens, except food spawns are more CDDA-flavored instead of Nethack-specific.", 443 | "subtype": "distribution", 444 | "items": [ 445 | { "group": "cannedfood", "prob": 83 }, 446 | { "item": "juice", "prob": 5, "charges": 2, "container-item": "can_drink" }, 447 | [ "water_clean", 5 ], 448 | [ "beer", 4 ], 449 | [ "minifreezer", 3 ] 450 | ] 451 | }, 452 | { 453 | "type": "item_group", 454 | "id": "caveyot_minetown_light", 455 | "//": "Mimics item spawns in Izchak's light shop, Nethack.", 456 | "items": [ [ "candle", 78 ], [ "oil_lamp", 9 ], [ "gasoline_lantern", 5 ], [ "lamp_oil", 5 ], [ "atomic_lamp", 3 ] ] 457 | } 458 | ] 459 | -------------------------------------------------------------------------------- /Dorf_Life/items.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "COMESTIBLE", 4 | "id": "caveyot_helmet_plump", 5 | "name": { "str": "dark truffle" }, 6 | "weight": "120 g", 7 | "color": "magenta", 8 | "spoils_in": "270 days", 9 | "comestible_type": "FOOD", 10 | "symbol": "%", 11 | "quench": -4, 12 | "healthy": -1, 13 | "calories": 125, 14 | "description": "A mushroom vaguely resembling a black truffle, with a noticeable purple coloration instead. It seems to be edible raw, albeit bittersweet, and might be tastier cooked.", 15 | "price": "1 USD", 16 | "material": "mushroom", 17 | "volume": "250 ml", 18 | "flags": [ "EATEN_HOT", "EDIBLE_FROZEN", "NUTRIENT_OVERRIDE" ], 19 | "fun": -1, 20 | "vitamins": [ [ "vitC", 4 ], [ "iron", 7 ] ] 21 | }, 22 | { 23 | "type": "COMESTIBLE", 24 | "id": "caveyot_helmet_plump_cooked", 25 | "name": { "str": "cooked dark truffle" }, 26 | "weight": "120 g", 27 | "color": "magenta", 28 | "spoils_in": "180 days", 29 | "comestible_type": "FOOD", 30 | "symbol": "%", 31 | "quench": 2, 32 | "healthy": -1, 33 | "calories": 200, 34 | "description": "A mushroom vaguely resembling a black truffle, with a noticeable purple coloration instead. Much better now that it's been cooked.", 35 | "price": "2 USD", 36 | "material": "mushroom", 37 | "volume": "250 ml", 38 | "flags": [ "EATEN_HOT", "EDIBLE_FROZEN", "NUTRIENT_OVERRIDE" ] 39 | }, 40 | { 41 | "type": "COMESTIBLE", 42 | "id": "caveyot_pod_sweet", 43 | "name": { "str": "vibrant bulb" }, 44 | "weight": "115 g", 45 | "color": "red", 46 | "spoils_in": "360 days", 47 | "comestible_type": "FOOD", 48 | "symbol": "%", 49 | "description": "A bright red bulb resembling an onion, far more scarlet than the purple of any earthly red onion. Though it gives off a sweet aroma, its layers are tough and difficult to peel, making it inedible as-is.", 50 | "price": "150 cent", 51 | "material": [ "mushroom", "wood" ], 52 | "volume": "250 ml" 53 | }, 54 | { 55 | "type": "COMESTIBLE", 56 | "id": "caveyot_wheat_cave", 57 | "name": { "str": "cloudy brush", "str_pl": "cloudy brushes" }, 58 | "weight": "120 g", 59 | "color": "white", 60 | "comestible_type": "FOOD", 61 | "symbol": ",", 62 | "description": "A long stalk covered with fluffy clumps of powdery growth, vaguely resembling cotton bolls. The resemblance is merely visual, as it simply crumbles into powder if pulled apart.", 63 | "price": "300 cent", 64 | "material": [ "mushroom", "powder" ], 65 | "volume": "250 ml" 66 | }, 67 | { 68 | "type": "COMESTIBLE", 69 | "id": "caveyot_tails_pig", 70 | "name": { "str": "spiral stalk" }, 71 | "weight": "120 g", 72 | "color": "light_gray", 73 | "comestible_type": "FOOD", 74 | "symbol": ",", 75 | "description": "A stalk of plantlike growth that naturally curls in on itself in a spiral, covered with short, thin leaves. Every part of the \"plant\" is tough and stringy.", 76 | "price": "400 cent", 77 | "material": [ "mushroom", "powder" ], 78 | "volume": "250 ml" 79 | }, 80 | { 81 | "type": "COMESTIBLE", 82 | "id": "caveyot_bush_quarry", 83 | "name": { "str": "hardened bramble branch", "str_pl": "hardened bramble branches" }, 84 | "weight": "200 g", 85 | "color": "brown", 86 | "comestible_type": "FOOD", 87 | "symbol": "/", 88 | "description": "A woody, tangled branch covered in pods resembling overgrown pecans. Some of the growths are smaller, softer, and greener in color, but the whole thing seems inedible and useless as-is.", 89 | "price": "2 USD", 90 | "volume": "250 ml" 91 | }, 92 | { 93 | "type": "COMESTIBLE", 94 | "id": "caveyot_bush_quarry_cooked", 95 | "name": { "str_sp": "roasted bramble nuts" }, 96 | "looks_like": "hickory_nut_roasted", 97 | "weight": "120 g", 98 | "color": "brown", 99 | "spoils_in": "270 days", 100 | "comestible_type": "FOOD", 101 | "symbol": "%", 102 | "quench": -4, 103 | "calories": 400, 104 | "description": "A handful of pods stripped from a strange branch, roasted in their shells due to how rock-hard they were. Doing so softened and split open the shells, leaving nuts that seem to have been fried in the pod's own oil.", 105 | "price": "150 cent", 106 | "material": [ "mushroom", "nut" ], 107 | "volume": "125 ml", 108 | "flags": [ "EATEN_HOT", "EDIBLE_FROZEN", "NUTRIENT_OVERRIDE" ], 109 | "fun": 2, 110 | "vitamins": [ [ "calcium", 2 ], [ "iron", 4 ] ] 111 | } 112 | ] 113 | -------------------------------------------------------------------------------- /Dorf_Life/mapgen_finales.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "mapgen", 4 | "//": "Minetown, alley variant, from Nethack. Slapped right in the middle of our perfectly normal cave system.", 5 | "om_terrain": [ [ "breach_finale_1", "breach_finale_2", "breach_finale_3" ] ], 6 | "method": "json", 7 | "weight": 100, 8 | "object": { 9 | "rows": [ 10 | "###!!??..........................................................??!!###", 11 | "##!!??............................................................??!!##", 12 | "##!??..............................................................??!##", 13 | "##!??..............................................................??!##", 14 | "##!??...............|||||||||||||||||||||||||||||||||..............??!##", 15 | "##!??...............|_______________________________|..............??!##", 16 | "##!??...............|_||||____|||||_||||+||__|||||__|..............??!##", 17 | "##!??...............|_|__||||_|___|_|__|__|__|___|__|..............??!##", 18 | "##!??...............|_|__|__|_|_A_|_|__|__|__|___|__|..............??!##", 19 | "##!??...............|_|+||__|_|___|_||||||||_|___|__|..............??!##", 20 | "##!??...............|____|__|_|___|____|___|_|||||__|..............??!##", 21 | "##!??......<<.......+_{__||||_|||||____|___|________+..............??!##", 22 | "##!??......<<.......+__________|__||||_|||||__|||||_+..............??!##", 23 | "##!??...............|____||||__|__|__|________|___|_|..............??!##", 24 | "##!??...............|_||+|__|_|||||__|||||____|___|_|..............??!##", 25 | "##!??...............|_|__|__|_|___||||___||||_|||||_|..............??!##", 26 | "##!??...............|_|__||||_|___|__|___|__|_______|..............??!##", 27 | "##!??...............|_|__|____|___|__|___|__|_______|..............??!##", 28 | "##!??...............|_||||____|||||+|||||||||_____{_|..............??!##", 29 | "##!??...............|_______________________________|..............??!##", 30 | "##!??...............|||||||||||||||||||||||||||||||||..............??!##", 31 | "##!??..............................................................??!##", 32 | "##!!??............................................................??!!##", 33 | "###!!??..........................................................??!!###" 34 | ], 35 | "palettes": [ "breach" ], 36 | "terrain": { "|": "t_rock_smooth", "{": "t_water_pump", "+": "t_door_c", "A": "t_rock_floor" }, 37 | "furniture": { "A": "f_slab" }, 38 | "place_nested": [ 39 | { "chunks": [ [ "null", 50 ], [ "breach_spawn_standard", 50 ] ], "x": [ 9, 10 ], "y": [ 9, 10 ] }, 40 | { "chunks": [ [ "null", 75 ], [ "breach_chunk_1", 25 ] ], "x": [ 1, 15 ], "y": [ 0, 19 ], "repeat": 4 }, 41 | { "chunks": [ [ "null", 50 ], [ "breach_spawn_standard", 50 ] ], "x": [ 58, 59 ], "y": [ 9, 10 ] }, 42 | { "chunks": [ [ "null", 75 ], [ "breach_chunk_1", 25 ] ], "x": [ 53, 62 ], "y": [ 0, 19 ], "repeat": 4 }, 43 | { "chunks": [ [ "breach_finale_1_door", 1 ] ], "x": [ 26, 27 ], "y": 11 }, 44 | { "chunks": [ [ "breach_finale_1_door", 1 ] ], "x": [ 26, 27 ], "y": 13 }, 45 | { "chunks": [ [ "breach_finale_1_door", 1 ] ], "x": 31, "y": [ 12, 13 ] }, 46 | { "chunks": [ [ "breach_finale_1_door", 1 ] ], "x": 30, "y": [ 15, 17 ] }, 47 | { "chunks": [ [ "breach_finale_1_door", 1 ] ], "x": 34, "y": [ 7, 10 ] }, 48 | { "chunks": [ [ "breach_finale_1_door", 1 ] ], "x": 36, "y": [ 7, 8 ] }, 49 | { "chunks": [ [ "breach_finale_1_door", 1 ] ], "x": [ 35, 36 ], "y": 12 }, 50 | { "chunks": [ [ "breach_finale_1_door", 1 ] ], "x": 39, "y": [ 10, 11 ] }, 51 | { "chunks": [ [ "breach_finale_1_door", 1 ] ], "x": [ 38, 40 ], "y": 14 }, 52 | { "chunks": [ [ "breach_finale_1_door", 1 ] ], "x": [ 46, 47 ], "y": 10 }, 53 | { "chunks": [ [ "breach_finale_1_door", 1 ] ], "x": 46, "y": [ 13, 14 ] }, 54 | { "chunks": [ [ "breach_finale_1_door", 1 ] ], "x": 44, "y": [ 16, 17 ] } 55 | ], 56 | "place_loot": [ 57 | { "group": "caveyot_minetown_general", "x": [ 31, 33 ], "y": [ 15, 17 ], "chance": 90, "repeat": 12 }, 58 | { "group": "caveyot_minetown_tools", "x": [ 26, 27 ], "y": [ 8, 10 ], "chance": 90, "repeat": 8 }, 59 | { "group": "caveyot_minetown_wands", "x": [ 40, 42 ], "y": [ 10, 11 ], "chance": 90, "repeat": 8 }, 60 | { "group": "caveyot_minetown_food", "x": 47, "y": [ 13, 14 ], "chance": 90, "repeat": 5 }, 61 | { "group": "caveyot_minetown_food", "x": [ 48, 49 ], "y": [ 13, 14 ], "chance": 90, "repeat": 3 }, 62 | { "group": "caveyot_minetown_tools", "x": [ 38, 40 ], "y": [ 15, 17 ], "chance": 90, "repeat": 12 }, 63 | { "group": "caveyot_minetown_light", "x": [ 46, 47 ], "y": [ 7, 9 ], "chance": 90, "repeat": 8 }, 64 | { "group": "caveyot_minetown_light", "x": 48, "y": [ 7, 9 ], "chance": 90, "repeat": 4 } 65 | ], 66 | "place_monster": [ 67 | { "monster": "mon_dementia", "x": [ 24, 47 ], "y": [ 5, 19 ], "repeat": [ 5, 10 ] }, 68 | { "monster": "mon_zombie_soldier", "x": [ 24, 47 ], "y": [ 5, 19 ], "repeat": [ 2, 4 ] }, 69 | { "monster": "mon_zombie_necro", "x": 32, "y": 7 } 70 | ] 71 | } 72 | }, 73 | { 74 | "type": "mapgen", 75 | "om_terrain": [ [ "breach_finale_4", "breach_finale_5" ] ], 76 | "method": "json", 77 | "weight": 100, 78 | "object": { 79 | "rows": [ 80 | "################################################", 81 | "################################################", 82 | "#!!!?..............?!!!##!!!?..............?!!!#", 83 | "!???................???!!???................???!", 84 | "?......................??......................?", 85 | "................................................", 86 | "................................................", 87 | "................................................", 88 | "................................................", 89 | "................................................", 90 | ".................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", 91 | "...........<<....,ffffffffffffffffggggfffffffff,", 92 | "...........<<....,f,,,,,,,,,,,,,,,,,,,,,,,,,,,f,", 93 | ".................,f,,,,,,,,,,,,,,,,,,,,,,,,,,,f,", 94 | ",,,,,,,,,,,,,,,,,,f,,,,,,,,,,,,,,,,,,,,,,,,,,,f,", 95 | ",||||||||||||||||||WWW|,,,,,,,,,,,,,,,,,,,,,,,f,", 96 | ",|t__+__|BB__cc___|__dW,,,,,,,,,,,,,,,,,,,,,,,f,", 97 | ",|s__|_T|D__cee___+_cdW,,,,,,,,,||YXX|||,,,,,,f,", 98 | ",|s__||||BB_cee___|l6dW,,,,,,,,,|b____b|,,,,,,f,", 99 | ",|s__+__|D_______l|||||,,,,,,,,,|b____b|,,,,,,f,", 100 | ",|t__|_T|BB______l|[[[|,,,,,,,,,|b____b|,,,,,,f,", 101 | ",||+|||||||||=|||||___|,,,,,,,,,|______|,,,,,,f,", 102 | ",|____________________|,,,,,,,,,|u____u|,,,,,,f,", 103 | ",|____________________|||||||||||||++||||||WWW|," 104 | ], 105 | "palettes": [ "breach", "breach_lab" ], 106 | "place_loot": [ 107 | { "group": "swat_gear", "x": 19, "y": 18, "chance": 50, "repeat": 3 }, 108 | { "group": "ammo_swat", "x": 17, "y": [ 19, 20 ], "chance": 50, "repeat": 4 }, 109 | { "group": "snacks", "x": [ 13, 14 ], "y": [ 17, 18 ], "chance": 60 }, 110 | { "group": "mansion_books", "x": [ 19, 21 ], "y": 20, "chance": 50, "repeat": 6 } 111 | ], 112 | "place_monster": [ 113 | { "monster": "mon_turret", "x": 33, "y": 22 }, 114 | { "monster": "mon_turret", "x": 38, "y": 22 }, 115 | { "monster": "mon_mi_go", "x": [ 3, 4 ], "y": [ 16, 20 ] }, 116 | { "monster": "mon_kreck", "x": [ 5, 18 ], "y": [ 22, 23 ], "repeat": [ 2, 3 ] }, 117 | { "monster": "mon_hunting_horror", "x": [ 10, 16 ], "y": [ 17, 20 ] } 118 | ] 119 | } 120 | }, 121 | { 122 | "type": "mapgen", 123 | "om_terrain": [ [ "breach_finale_6", "breach_finale_7" ] ], 124 | "method": "json", 125 | "weight": 100, 126 | "object": { 127 | "rows": [ 128 | ",|____________________|_______________Wd6l|ddd|,", 129 | ",|____________________+_u___________u_Wdc_|_c6|,", 130 | ",|____________________|_______________Wd__|__l|,", 131 | ",||||||||||||||||++|||||||||||||||||||||+|||+||,", 132 | ",,,|333_____rrr|u__u|_________________|______l|,", 133 | "..,|4__________|____+_u____________du_=___u__l|,", 134 | "..,|4___GGG____+____|______________dc_|______l|,", 135 | "..,|____GGG____+____||+|||||||||||||||||WWWWW||,", 136 | "..,|6c_________|____|__t|v___________u|,,,,,,,f,", 137 | "..,|6_______rrr|____|s__|v_beeb__beeb_W,mmmmm,f,", 138 | "..,||||||+||||||____|s__C__beeb__beeb_W,mmmmm,f,", 139 | "..,|6________ll|____|n__C__beeb__beeb_W,mmmmm,f,", 140 | "..,|6c_^^C_____+____|n__C__beeb__beeb_W,mmmmm,f,", 141 | "..,|C__^^C_____+____|C__C___bb___beeb_W,mmmmm,f,", 142 | "..,|C________ll|____|C__C________beeb_W,mmmmm,f,", 143 | "..,||||||+||||||____|___|v_______beec_W,mmmmm,f,", 144 | "..,|C__________|____|FFF|V__tt_______u|,,,,,,,f,", 145 | "..,|C__________|____|||||||||||++|||||||WWWWW||,", 146 | "..,|C_1________+____|________________________[|,", 147 | "..,|C_2________+____+________________________[|,", 148 | "..,|C__________|u__u|________________________[|,", 149 | ",,,|C__________||++||||||+||||||||||+|||||+||||,", 150 | ",||||||||+||||||_____[|l____|_S|T_|__t|BB___BB|,", 151 | ",|___________________[|l_b__+__|__+__s|D_____D|," 152 | ], 153 | "palettes": [ "breach", "breach_lab" ], 154 | "place_traps": [ 155 | { "trap": "tr_dissector", "x": 7, "y": 17 }, 156 | { "trap": "tr_dissector", "x": 7, "y": 20 }, 157 | { "trap": "tr_dissector", "x": 11, "y": 17 }, 158 | { "trap": "tr_dissector", "x": 11, "y": 20 } 159 | ], 160 | "place_fields": [ { "field": "fd_shock_vent", "x": 9, "y": 7 } ], 161 | "place_loot": [ 162 | { "group": "swat_gear", "x": 41, "y": 0, "chance": 40, "repeat": 3 }, 163 | { "group": "swat_gear", "x": 45, "y": 2, "chance": 40, "repeat": 3 }, 164 | { "group": "guns_swat", "x": 35, "y": [ 5, 6 ], "chance": 40, "repeat": 3 }, 165 | { "group": "ammo_swat", "x": 45, "y": [ 4, 6 ], "chance": 30, "repeat": 6 }, 166 | { "group": "supplies_electronics", "x": [ 12, 14 ], "y": 4, "chance": 70, "repeat": 6 }, 167 | { "group": "energy_weapon_armory", "x": [ 12, 14 ], "y": 9, "chance": 50, "repeat": 4 }, 168 | { "group": "tools_medical", "x": [ 13, 14 ], "y": 11, "chance": 60, "repeat": 5 }, 169 | { "group": "drugs_rare", "x": [ 13, 14 ], "y": 14, "chance": 50, "repeat": 5 }, 170 | { "group": "chem_lab", "x": 4, "y": [ 13, 14 ], "chance": 50, "repeat": 6 }, 171 | { "group": "dissection", "x": 4, "y": [ 16, 21 ], "chance": 40, "repeat": 10 }, 172 | { "group": "SUS_fridge_survivor", "x": [ 21, 23 ], "y": 16, "chance": 50, "repeat": 8 }, 173 | { "group": "kitchen", "x": 21, "y": [ 13, 14 ], "chance": 50, "repeat": 4 }, 174 | { "group": "vending_food_items", "x": 25, "y": [ 8, 9 ], "chance": 50, "repeat": 8 }, 175 | { "group": "vending_drink_items", "x": 25, "y": [ 15, 16 ], "chance": 50, "repeat": 8 }, 176 | { "group": "lab_dorm", "x": 21, "y": [ 22, 23 ], "chance": 50, "repeat": 4 }, 177 | { "group": "mansion_books", "x": 23, "y": [ 22, 23 ], "chance": 50, "repeat": 4 } 178 | ], 179 | "place_monster": [ 180 | { "monster": "mon_mi_go", "x": [ 16, 19 ], "y": [ 4, 20 ], "repeat": [ 1, 2 ] }, 181 | { "monster": "mon_mi_go", "x": [ 26, 32 ], "y": [ 22, 23 ] }, 182 | { "monster": "mon_mi_go", "x": [ 24, 27 ], "y": [ 9, 15 ], "repeat": [ 1, 2 ] }, 183 | { "monster": "mon_mi_go", "x": [ 41, 43 ], "y": [ 22, 23 ], "repeat": [ 1, 2 ] }, 184 | { "monster": "mon_mi_go", "x": [ 10, 12 ], "y": [ 12, 15 ] }, 185 | { "monster": "mon_kreck", "x": [ 22, 23 ], "y": [ 9, 15 ], "repeat": [ 2, 4 ] }, 186 | { "monster": "mon_hunting_horror", "x": 40, "y": 1 }, 187 | { "monster": "mon_hunting_horror", "x": 36, "y": 6 }, 188 | { "monster": "mon_hunting_horror", "x": [ 16, 19 ], "y": [ 4, 20 ] }, 189 | { "monster": "mon_darkman", "x": 36, "y": 16, "chance": 50 } 190 | ] 191 | } 192 | }, 193 | { 194 | "type": "mapgen", 195 | "om_terrain": [ [ "breach_finale_8", "breach_finale_9" ] ], 196 | "method": "json", 197 | "weight": 100, 198 | "object": { 199 | "rows": [ 200 | ",|_A__A______________[|l_b__|||||||__s|BB___BB|,", 201 | ",|_A__A______________[|l_b__|_S|T_|__s|D_____D|,", 202 | ",|___________________[|l____+__|__+__t|BB___BB|,", 203 | ",|||WWWWWWWWW||||==|||||||||||||||||||||||=||||,", 204 | ",,f,,,,,,,,,,,,|____Wd6l|_rrrrrrrr_|l6dW____|,,,", 205 | ".,f,mmmmmmmmmm,|____Wdc_+__________+_cdW____|,..", 206 | ".,f,mmmmmmmmmm,|____Wd__|__________|__dW____|,..", 207 | ".,f,mmmmmmmmmm,||++||WWW|||||==|||||WWW||++||,..", 208 | ".,f,,,,,,,,,,,,|C_________u______u_________C|,..", 209 | ".,fffffffffffff|C__________________________C|,..", 210 | ".,,,,,,,,,,,,,,||__________________________||,..", 211 | "..............,,|__44______WWwwWW______44__|,,..", 212 | "...............,|__44__c6__W____W__6c__44__|,...", 213 | "...............,||_____c6__W____W__6c_____||,...", 214 | "...............,,|_33__c6__W____W__6c__33_|,,...", 215 | "................,|u________WWWWWW________u|,....", 216 | "................,|||||||||________|||||||||,....", 217 | "................,,,,,,,,,||||||||||,,,,,,,,,....", 218 | "........................,,,,,,,,,,,,............", 219 | "?......................??......................?", 220 | "!???................???!!???................???!", 221 | "#!!!?..............?!!!##!!!?..............?!!!#", 222 | "################################################", 223 | "################################################" 224 | ], 225 | "palettes": [ "breach", "breach_lab" ], 226 | "place_traps": [ { "trap": "tr_portal", "x": [ 28, 31 ], "y": [ 12, 14 ], "repeat": [ 1, 2 ] } ], 227 | "place_loot": [ 228 | { "group": "gear_soldier_sidearm", "x": 23, "y": 4, "chance": 70, "repeat": 2 }, 229 | { "group": "gear_soldier_sidearm", "x": 36, "y": 4, "chance": 70, "repeat": 2 }, 230 | { "group": "military", "x": [ 26, 33 ], "y": 4, "chance": 40, "repeat": 8 }, 231 | { "group": "teleport", "x": 16, "y": [ 8, 9 ], "chance": 50, "repeat": 6 }, 232 | { "group": "spiral", "x": 43, "y": [ 8, 9 ], "chance": 75, "repeat": 4 }, 233 | { "group": "lab_dorm", "x": 23, "y": [ 0, 2 ], "chance": 50, "repeat": 6 }, 234 | { "group": "mansion_books", "x": 21, "y": [ 0, 2 ], "chance": 50, "repeat": 6 } 235 | ], 236 | "place_monster": [ 237 | { "monster": "mon_mi_go", "x": [ 24, 35 ], "y": [ 8, 10 ], "repeat": [ 2, 4 ] }, 238 | { "monster": "mon_hunting_horror", "x": 18, "y": 5 }, 239 | { "monster": "mon_hunting_horror", "x": 40, "y": 9 }, 240 | { "monster": "mon_hunting_horror", "x": 30, "y": 5 } 241 | ] 242 | } 243 | }, 244 | { 245 | "type": "mapgen", 246 | "method": "json", 247 | "om_terrain": [ [ "breach_finale_10", "breach_finale_11" ] ], 248 | "weight": 100, 249 | "object": { 250 | "rows": [ 251 | ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", 252 | ",,,,,,,,,,,,,,,,,,,###,,,,###,,,,,,,,,,,,,,,,,,,", 253 | ",,,,,,,,,,,,,,,PPPP#^W,,,,W^#PPPP,,,,,,,,,,,,,,,", 254 | ",,,,,PPPPPPPPPPP,,,#W#,,,,#W#,,,PPPPPPPPPPP,,,,,", 255 | ",,,,PP,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,PP,,,,", 256 | ",,,PP,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,PP,,,", 257 | ",,,P,,,#####,,,,,,,,,,,,#####,,,,,,,,,,,,,,,P,,,", 258 | ",,,P,,,#K__##############_BB#,,,,,,,,,#W#,,,P,,,", 259 | ",,,P,,,#K___r#__W^^W__#D__BB#PPPPPPPPP#^W,,,P,,,", 260 | ",,,P,,,#K___r#__#WW#__#D___D#,,,,,,,,,###,,,P,,,", 261 | ",,,P,,,##r__r#________##___##,,,,,,,,,,P,,,,P,,,", 262 | ",,,P,,,,#r__##__cccc___##+##,,,,,|||||,P,,,,P,,,", 263 | ",,,P,,,,#C_____ceeeec______#,mmm,|ssd|,P,,,,P,,,", 264 | ",,,P,,,,#F_____ceeeec______#,mmm,+sss|,P,,,,P,,,", 265 | ",,,P,,,,#r______cccc_______#,mmm,|sbb|,P,,,,P,,,", 266 | ",,PP,,,,#r__##________##++##,,,,,|||||,P,,,,PP,,", 267 | ",,P,,,,##r__r#________#l___##,,,,,,,,,,P,,,,,P,,", 268 | ",,P,,,,#____r#________#l___C#,,,,,||||,P,,,,,P,,", 269 | ",,P,,,,#____r#________#l__cC#,mmm,|db|,P,,,,,P,,", 270 | ",,P,,,,#rrr######++######CCC#,mmm,|sb|,#W#,,,P,,", 271 | ",,P,,,,#####,,,,,,,,,,,,#####,,,,,|+||,W^W,,,P,,", 272 | ",,P,,,,,,P,,,,,,,,,,,,,,,,P,,,,,,,,,,,,#W#,,,P,,", 273 | ",,P,,,,,###,,,,,,,,,,,,,,,P,,,,,,,,,,,,,,,,,,P,,", 274 | ",,P,,,,,#^W,,,,,,,,,,,,,,,P,,,,,,,,,,,,,,,,,,P,," 275 | ], 276 | "palettes": [ "breach", "breach_camp" ], 277 | "place_traps": [ 278 | { "trap": "tr_landmine", "x": [ 6, 23 ], "y": [ 4, 5 ], "repeat": [ 1, 4 ] }, 279 | { "trap": "tr_landmine", "x": [ 4, 6 ], "y": [ 6, 23 ], "repeat": [ 1, 4 ] }, 280 | { "trap": "tr_landmine", "x": [ 24, 41 ], "y": [ 4, 5 ], "repeat": [ 1, 4 ] }, 281 | { "trap": "tr_landmine", "x": [ 41, 43 ], "y": [ 6, 18 ], "repeat": [ 1, 4 ] } 282 | ], 283 | "place_loot": [ 284 | { "group": "cannedfood", "x": 12, "y": [ 8, 10 ], "chance": 80, "repeat": 5 }, 285 | { "group": "pasta", "x": 12, "y": [ 16, 18 ], "chance": 80, "repeat": 5 }, 286 | { "group": "stash_food", "x": [ 8, 10 ], "y": 19, "chance": 80, "repeat": 5 }, 287 | { "group": "tools_common", "x": 9, "y": [ 14, 16 ], "chance": 70, "repeat": 6 }, 288 | { "group": "tools_tailor", "x": 9, "y": [ 10, 11 ], "chance": 70, "repeat": 4 }, 289 | { "group": "ammo_reloaded", "x": 23, "y": [ 16, 18 ], "chance": 50, "repeat": 8 }, 290 | { "group": "tools_gunsmith", "x": [ 25, 26 ], "y": 19, "chance": 60, "repeat": 6 }, 291 | { "group": "ammo_parts", "x": 27, "y": [ 17, 19 ], "chance": 60, "repeat": 6 }, 292 | { "group": "ammo_casings", "x": 27, "y": [ 17, 19 ], "chance": 50, "repeat": 4 } 293 | ], 294 | "place_npcs": [ 295 | { "class": "bandit", "x": 15, "y": 13 }, 296 | { "class": "bandit", "x": 20, "y": 12 }, 297 | { "class": "thug", "x": 20, "y": 20 }, 298 | { "class": "bandit", "x": 35, "y": 13 }, 299 | { "class": "bandit", "x": 39, "y": 22 } 300 | ] 301 | } 302 | }, 303 | { 304 | "type": "mapgen", 305 | "method": "json", 306 | "om_terrain": [ [ "breach_finale_12", "breach_finale_13" ] ], 307 | "weight": 100, 308 | "object": { 309 | "rows": [ 310 | ",,P,,,,,#^W,,,,,,,,,,||||,P,,,,,,,,,,,,,,,,,,P,,", 311 | ",,P,,,,,###,|||||,,,,|bb|,P,,,,,,,,,,,,,,,,,,P,,", 312 | ",,P,,,,,,P,,|bbs|,,,,+sd|,PP,,,,,,,,,,,#W#,,,P,,", 313 | ",,P,,,,,,P,,|sss+,,,,||||,,P,,,,#####,,W^W,,,P,,", 314 | ",,P,,,,,,P,,|dss|,,,,,,,,,,P,,P##rrr##P#W#,,,P,,", 315 | ",,P,,,,,,P,,|||||,,,,|||||,,,,,#_____#,P,,,,,P,,", 316 | ",,P,,,,,,P,,,,,,,,,,,|bsd|,,,,,#__A__#,P,,,,,P,,", 317 | ",,P,,,,,,P,||||,,,,,,|bss|,,,,,#__f__#,P,,,,,P,,", 318 | ",,PP,,,,,P,|bb|,,,,,,|sss|,,,,,+____r#,P,,,,PP,,", 319 | ",,,P,,,,,P,|ds+,,,,,,||+||,,,,,+____r#,P,,,,P,,,", 320 | ",,,P,,,,,P,||||,,,,,,,,,,,,,,,,#__C__#,P,,,,P,,,", 321 | ",,,P,,,,,P,,,,,,,,,,,,,,,,,,,,,#__k__#,P,,,,P,,,", 322 | ",,,P,,,,,P,,||||,,,,,,,,,,,,,,,#_____#,P,,,,P,,,", 323 | ",,,P,,,,,P,,|ds+,,mmmmmmmmmmm,,##rrr##,P,,,,P,,,", 324 | ",,,P,,,,,P,,|bb|,,mmmmmmmmmmm,,,#####,,P,,,,P,,,", 325 | ",,,P,,,,,P,,||||,,,,,,,,,,,,,,,,,,,,,,,P,,,,P,,,", 326 | ",,,P,,,,###,,,,,,,,,,,#WW#,,,,,,,,,,,,###,,,P,,,", 327 | ",,,P,,,,W^#PPPPPPPPPPP#^^#PPPPPPPPPPPP#^W,,,P,,,", 328 | ",,,PP,,,#W#,,,,,,,,,,,####,,,,,,,,,,,,#W#,,PP,,,", 329 | ",,,,PP,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,PP,,,,", 330 | ",,,,,PPPPPPPPPPP,,,,,,,,,,,,,,,,PPPPPPPPPPP,,,,,", 331 | ",,,,,,,,,,,,,,,PPPPPPPPPPPPPPPPPP,,,,,,,,,,,,,,,", 332 | ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", 333 | ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," 334 | ], 335 | "palettes": [ "breach", "breach_camp" ], 336 | "place_traps": [ 337 | { "trap": "tr_landmine", "x": [ 4, 7 ], "y": [ 0, 17 ], "repeat": [ 1, 4 ] }, 338 | { "trap": "tr_landmine", "x": [ 11, 21 ], "y": [ 18, 19 ], "repeat": [ 1, 4 ] }, 339 | { "trap": "tr_landmine", "x": [ 40, 43 ], "y": [ 5, 17 ], "repeat": [ 1, 4 ] }, 340 | { "trap": "tr_landmine", "x": [ 26, 37 ], "y": [ 18, 19 ], "repeat": [ 1, 4 ] } 341 | ], 342 | "place_loot": [ 343 | { "group": "tools_mechanic", "x": [ 33, 35 ], "y": 4, "chance": 65, "repeat": 3 }, 344 | { "group": "stash_wood", "x": 36, "y": [ 8, 9 ], "chance": 65, "repeat": 4 }, 345 | { "group": "wreckage", "x": [ 33, 35 ], "y": 13, "chance": 65, "repeat": 5 }, 346 | { "group": "tools_blacksmith", "x": 34, "y": 10, "chance": 65, "repeat": 3 } 347 | ], 348 | "place_npcs": [ 349 | { "class": "bandit", "x": 15, "y": 4 }, 350 | { "class": "bandit", "x": 16, "y": 8 }, 351 | { "class": "bandit", "x": 14, "y": 14 }, 352 | { "class": "thug", "x": 30, "y": 6 }, 353 | { "class": "bandit", "x": 30, "y": 11 }, 354 | { "class": "thug", "x": 39, "y": 1 } 355 | ] 356 | } 357 | }, 358 | { 359 | "type": "mapgen", 360 | "//": "Layout is based off of Phobos Anomaly from Doom, with concessions to available space, and a slight DoomRL twist.", 361 | "om_terrain": [ 362 | [ "breach_finale_14", "breach_finale_15", "breach_finale_16", "breach_finale_17" ], 363 | [ "breach_finale_18", "breach_finale_19", "breach_finale_20", "breach_finale_21" ], 364 | [ "breach_finale_22", "breach_finale_23", "breach_finale_24", "breach_finale_25" ] 365 | ], 366 | "method": "json", 367 | "weight": 100, 368 | "object": { 369 | "rows": [ 370 | "###!!??................/......................./......................./.................??!!###", 371 | "##!!??...............??????????????????????????????????????????????????????...............??!!##", 372 | "##!??...............?!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!?...............??!##", 373 | "##!??..............?!######################################################!?..............??!##", 374 | "##!??.............?!########################################################!?.............??!##", 375 | "##!??............?!##############MMMM########################################!?............??!##", 376 | "##!??...........?!##############MMmmMM-----------------------#################!?...........??!##", 377 | "##!??...........?!##############Mmmmmmtttttttttttttttttttttt--################!?...........??!##", 378 | "##!??...........?!##############Mmmmmmttttttttttttttttttttttt-################!?...........??!##", 379 | "##!??...........?!##############MMmmMM-T------------------ttt-################!?...........??!##", 380 | "##!??...........?!##############MM++MM-t-################--tt-################!?...........??!##", 381 | "##!??...........?!##############MmmmmM---################--tt--###############!?...........??!##", 382 | "##!??...........?!############MMMmmmmMMM################--tttt--#############!?,...........??!##", 383 | "##!??...........?!##MMMMMMMM##MummmmmmuM##MMMMMMMM#####--tttttt--###########!?,,,..........??!##", 384 | "##!??...........?!##M______M#MMmmmmmmmmMM#M______MMMMMM-ttt~~ttt------!!!!!!?,,,,..........??!##", 385 | "##!??...........?!##M______MMMmmmmmmmmmmMMM______MMEE6Mttt~~~~ttt-utt-??????,,,,,..........??!##", 386 | "##!??...........?!##M________+mmmmmmmmmm+________MMEEEmtt~~~~~~tt+tttt,,,,,,,,,,,..........??!##", 387 | "##!??...........?!##M________+mmmmmmmmmm+________MMEEEmtt~~~~~~tt+tttt,,,,,,,,,,,..........??!##", 388 | "##!??...........?!##M______MMMmmmmmmmmmmMMM______MMEEEMttt~~~~ttt-utt-??????,,,,,..........??!##", 389 | "##!??...........?!##M______M#MMmmmmmmmmMM#M______MMMMMM-ttt~~ttt------!!!!!!?,,,,..........??!##", 390 | "##!??...........?!##MMMMMMMM##MummmmmmuM##MMMMMMMM#####--tttttt--###########!?,,,..........??!##", 391 | "##!??...........?!############MMMmmmmMMM################--tttt--#############!?,...........??!##", 392 | "##!!??..........?!##############MMmmMM###################------###############!?..........??!!##", 393 | "###!!??.........?!#####/#########|__|##########/#######################/######!?.........??!!###", 394 | "###!?...........?!#####/########||__||#########/#######################/######!?.........??!!###", 395 | "##!?............?!#############||____||#######################################!?..........??!!##", 396 | "##!?............?!#############|______|#############||||||####################!?...........??!##", 397 | "##!?............?!#############|______|##########||||____||||#################!?...........??!##", 398 | "##?.............?!#############||____||########|||__________|||###############!?...........??!##", 399 | "##..............?!############||||__||#######|||u_____________|||#############!?...........??!##", 400 | "##..............?!############|__B__|#######||u||_______________||############!?...........??!##", 401 | "##..............?!############|__B__|######||___||_______________||###########!?...........??!##", 402 | "##..............?!############|__B__|#####||_____||_______________||##########!?...........??!##", 403 | "##..............?!############|__B__|#####|_______||_______________|##########!?...........??!##", 404 | "##..............?!############|__B__|####||________|_______________||#########!?...........??!##", 405 | "##.<<...........?!############|__B__|####|________|||B______________|#########!?...........??!##", 406 | "##.<<...........?!############||||__|###||____cccc|ccB______________||########!?...........??!##", 407 | "##..............?!##############|b__|###|___cccccc|ccB_______________|########!?...........??!##", 408 | "##..............?!##############||BB|###|_cccccccc|||B_______________|########!?...........??!##", 409 | "##..............?!##############MMmmMM#||ccccccccccccB_______________||#######!?...........??!##", 410 | "##..............?!##############MEEE6M||cccccccccccccB________________|----###!?...........??!##", 411 | "##..............?!##############MEEEEm+ccccccccccccccB________________,,,,-###!?...........??!##", 412 | "##..............?!##############MEEEEm+cccccccccccccb|________________,,,,-###!?...........??!##", 413 | "##?.............?!##############MEEEEM||cccccccccccccB________________|-,,-###!?...........??!##", 414 | "##!?............?!##############MMMMMM#||ccccccccccccB_______________||-,,-###!?...........??!##", 415 | "##!?............?!######################|_cccccccc|||B_______________|--,,-###!?...........??!##", 416 | "##!?............?!######################|___cccccc|ccB_______________|-,,,-###!?..........??!!##", 417 | "###!?...........?!#####/################||____cccc|ccB______________||-/,--###!?.........??!!###", 418 | "###!!??.........?!#####/#################|_____/__|||B______________|--/,-####!?.........??!!###", 419 | "##!!??..........?!#######################||________|_______________||-,,,-####!?..........??!!##", 420 | "##!??...........?!########################|_______||_______________|--,,--####!?...........??!##", 421 | "##!??...........?!########################||_____||_______________||-,,,-#####!?...........??!##", 422 | "##!??...........?!#########################||___||_______________||#-,,--#####!?...........??!##", 423 | "##!??...........?!##########################||u||_______________||##-,,-######!?...........??!##", 424 | "##!??...........?!###########################|||u_____________|||###MccM######!?...........??!##", 425 | "##!??...........?!#############################|||__________|||####MMccMM#####!?...........??!##", 426 | "##!??...........?!###############################||||____||||#####MMccccMM####!?...........??!##", 427 | "##!??...........?!##################################||||||########MccccccM####!?...........??!##", 428 | "##!??...........?!################################################MccccccM####!?...........??!##", 429 | "##!??...........?!################################################Mccmmc6M####!?...........??!##", 430 | "##!??...........?!################################################MMcmmcMM####!?...........??!##", 431 | "##!??...........?!#################################################MMuuMM#####!?...........??!##", 432 | "##!??...........?!##################################################MMMM######!?...........??!##", 433 | "##!??...........?!############################################################!?...........??!##", 434 | "##!??...........?!############################################################!?...........??!##", 435 | "##!??...........?!############################################################!?...........??!##", 436 | "##!??............?!##########################################################!?............??!##", 437 | "##!??.............?!########################################################!?.............??!##", 438 | "##!??..............?!######################################################!?..............??!##", 439 | "##!??...............?!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!?...............??!##", 440 | "##!!??...............??????????????????????????????????????????????????????...............??!!##", 441 | "###!!??................/......................./......................./.................??!!###" 442 | ], 443 | "palettes": [ "breach" ], 444 | "terrain": { 445 | "|": "t_rock_smooth", 446 | "-": "t_strconc_wall", 447 | "~": "t_sewage", 448 | "+": "t_door_metal_c", 449 | "6": "t_strconc_floor", 450 | "B": "t_breach_stone_fake", 451 | "E": "t_elevator", 452 | "M": "t_wall_metal", 453 | "T": "t_breach_concrete_fake_c", 454 | "b": "t_breach_lever", 455 | "c": "t_thconc_floor", 456 | "m": "t_metal_floor", 457 | "t": "t_strconc_floor", 458 | "u": "t_utility_light", 459 | "/": "t_strconc_floor" 460 | }, 461 | "furniture": { "6": "f_console_broken" }, 462 | "place_nested": [ 463 | { "chunks": [ [ "breach_finale_doot_rads", 1 ] ], "x": 58, "y": 15 }, 464 | { "chunks": [ [ "breach_spawn_doot_multiple_demons", 1 ] ], "x": 57, "y": 14 }, 465 | { "chunks": [ [ "breach_spawn_doot_single_demon", 1 ] ], "x": 25, "y": 19 }, 466 | { "chunks": [ [ "breach_spawn_doot_single_demon", 1 ] ], "x": 44, "y": 19 }, 467 | { "chunks": [ [ "breach_spawn_doot_pair_spectres", 1 ] ], "x": 45, "y": 31 }, 468 | { "chunks": [ [ "breach_spawn_doot_pair_spectres", 1 ] ], "x": 45, "y": 51 }, 469 | { "chunks": [ [ "breach_spawn_doot_pair_spectres", 1 ] ], "x": 45, "y": 31 }, 470 | { "chunks": [ [ "breach_spawn_doot_pair_spectres", 1 ] ], "x": 45, "y": 51 }, 471 | { "chunks": [ [ "breach_spawn_doot_pair_spectres", 1 ] ], "x": 54, "y": 53 }, 472 | { "chunks": [ [ "breach_spawn_doot_pair_spectres", 1 ] ], "x": 67, "y": 40 }, 473 | { "chunks": [ [ "breach_spawn_doot_pair_spectres", 1 ] ], "x": 54, "y": 30 }, 474 | { "chunks": [ [ "breach_spawn_doot_baron", 1 ] ], "x": 51, "y": 36 }, 475 | { "chunks": [ [ "breach_spawn_doot_baron", 1 ] ], "x": 51, "y": 46 }, 476 | { "chunks": [ [ "breach_spawn_doot_imp_surprise", 1 ] ], "x": 31, "y": 30 }, 477 | { "chunks": [ [ "breach_spawn_doot_imp_surprise", 1 ] ], "x": 31, "y": 34 } 478 | ], 479 | "place_traps": [ { "trap": "tr_portal", "x": [ 69, 70 ], "y": [ 59, 60 ] } ], 480 | "place_loot": [ 481 | { "item": "royal_jelly", "x": 39, "y": 10 }, 482 | { "item": "bandages", "x": [ 51, 52 ], "y": [ 15, 18 ], "chance": 50, "repeat": 8 }, 483 | { "item": "9mmfmj", "x": 51, "y": 16 }, 484 | { "item": "survivormap", "x": 51, "y": 17 }, 485 | { "group": "full_1st_aid", "x": [ 34, 35 ], "y": [ 14, 15 ] }, 486 | { "item": "ballistic_vest_esapi", "x": [ 34, 35 ], "y": [ 18, 19 ] }, 487 | { "item": "mp5bigmag", "x": 22, "y": 16 }, 488 | { "item": "hk_mp5", "x": 22, "y": 17 }, 489 | { "item": "9mmfmj", "x": [ 24, 26 ], "y": [ 15, 18 ], "chance": 50, "repeat": 4 }, 490 | { "item": "mossberg_500", "x": 47, "y": [ 16, 17 ] }, 491 | { "item": "shot_00", "x": [ 43, 45 ], "y": [ 15, 18 ], "chance": 75, "repeat": 3 }, 492 | { "item": "9mmfmj", "x": [ 42, 47 ], "y": [ 38, 47 ], "chance": 25, "repeat": 2 }, 493 | { "item": "shot_00", "x": [ 42, 47 ], "y": [ 38, 47 ], "chance": 25 }, 494 | { "item": "bandages", "x": [ 42, 47 ], "y": [ 38, 47 ], "chance": 25 }, 495 | { "item": "9mmfmj", "x": [ 50, 59 ], "y": [ 51, 54 ], "chance": 50 }, 496 | { "item": "optical_cloak", "x": [ 50, 59 ], "y": [ 51, 54 ] }, 497 | { "item": "shot_00", "x": [ 65, 68 ], "y": [ 37, 46 ], "chance": 50 }, 498 | { "group": "full_1st_aid", "x": [ 65, 68 ], "y": [ 37, 46 ], "chance": 50 }, 499 | { "item": "9mmfmj", "x": [ 50, 59 ], "y": [ 28, 31 ], "chance": 50 }, 500 | { "group": "full_1st_aid", "x": [ 50, 59 ], "y": [ 28, 31 ], "chance": 50 }, 501 | { "item": "shot_hull", "x": [ 68, 71 ], "y": [ 56, 60 ], "chance": 80, "repeat": 8 } 502 | ], 503 | "place_fields": [ { "field": "fd_blood", "x": [ 68, 71 ], "y": [ 56, 60 ], "repeat": [ 8, 18 ] } ] 504 | } 505 | } 506 | ] 507 | -------------------------------------------------------------------------------- /Dorf_Life/mod_tileset.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "mod_tileset", 4 | "compatibility": [ "ChestHole32", "MShock32Modded", "MshockXottoplus", "UltimateCataclysm" ], 5 | "tiles-new": [ 6 | { 7 | "file": "mod_tileset.png", 8 | "tiles": [ 9 | { 10 | "id": "t_cave_moss", 11 | "fg": 6, 12 | "bg": 0, 13 | "rotates": false, 14 | "multitile": true, 15 | "additional_tiles": [ 16 | { 17 | "id": "center", 18 | "fg": 1 19 | }, 20 | { 21 | "id": "corner", 22 | "fg": 2 23 | }, 24 | { 25 | "id": "edge", 26 | "fg": 3 27 | }, 28 | { 29 | "id": "end_piece", 30 | "fg": 4 31 | }, 32 | { 33 | "id": "t_connection", 34 | "fg": 5 35 | }, 36 | { 37 | "id": "unconnected", 38 | "fg": 6 39 | } 40 | ] 41 | }, 42 | { 43 | "id": "t_shrub_helmet_plump", 44 | "fg": 7, 45 | "bg": 0, 46 | "rotates": false 47 | }, 48 | { 49 | "id": "t_shrub_helmet_plump_harvested", 50 | "fg": 8, 51 | "bg": 0, 52 | "rotates": false 53 | }, 54 | { 55 | "id": [ "t_shrub_pod_sweet_season_autumn", "t_shrub_pod_sweet_season_winter" ], 56 | "fg": 9, 57 | "bg": 0, 58 | "rotates": false 59 | }, 60 | { 61 | "id": [ "t_shrub_pod_sweet_season_spring", "t_shrub_pod_sweet_season_summer" ], 62 | "fg": 10, 63 | "bg": 0, 64 | "rotates": false 65 | }, 66 | { 67 | "id": "t_shrub_pod_sweet_harvested", 68 | "fg": 11, 69 | "bg": 0, 70 | "rotates": false 71 | }, 72 | { 73 | "id": [ "t_shrub_wheat_cave_season_summer", "t_shrub_wheat_cave_season_autumn" ], 74 | "fg": 12, 75 | "bg": 0, 76 | "rotates": false 77 | }, 78 | { 79 | "id": [ "t_shrub_wheat_cave_season_spring", "t_shrub_wheat_cave_season_winter" ], 80 | "fg": 13, 81 | "bg": 0, 82 | "rotates": false 83 | }, 84 | { 85 | "id": "t_shrub_wheat_cave_harvested", 86 | "fg": 14, 87 | "bg": 0, 88 | "rotates": false 89 | }, 90 | { 91 | "id": [ "t_shrub_tails_pig_season_summer", "t_shrub_tails_pig_season_autumn" ], 92 | "fg": 15, 93 | "bg": 0, 94 | "rotates": false 95 | }, 96 | { 97 | "id": [ "t_shrub_tails_pig_season_spring", "t_shrub_tails_pig_season_winter" ], 98 | "fg": 16, 99 | "bg": 0, 100 | "rotates": false 101 | }, 102 | { 103 | "id": "t_shrub_tails_pig_harvested", 104 | "fg": 17, 105 | "bg": 0, 106 | "rotates": false 107 | }, 108 | { 109 | "id": "t_shrub_bush_quarry_season_winter", 110 | "fg": 18, 111 | "bg": 0, 112 | "rotates": false 113 | }, 114 | { 115 | "id": [ "t_shrub_bush_quarry_season_spring", "t_shrub_bush_quarry_season_summer", "t_shrub_bush_quarry_season_autumn" ], 116 | "fg": 19, 117 | "bg": 0, 118 | "rotates": false 119 | }, 120 | { 121 | "id": "t_shrub_bush_quarry_harvest", 122 | "fg": 20, 123 | "bg": 0, 124 | "rotates": false 125 | }, 126 | { 127 | "id": [ "caveyot_helmet_plump", "caveyot_helmet_plump_cooked" ], 128 | "fg": 21, 129 | "bg": 0, 130 | "rotates": false 131 | }, 132 | { 133 | "id": "caveyot_pod_sweet", 134 | "fg": 22, 135 | "bg": 0, 136 | "rotates": false 137 | }, 138 | { 139 | "id": "caveyot_wheat_cave", 140 | "fg": 23, 141 | "bg": 0, 142 | "rotates": false 143 | }, 144 | { 145 | "id": "caveyot_tails_pig", 146 | "fg": 24, 147 | "bg": 0, 148 | "rotates": false 149 | }, 150 | { 151 | "id": "caveyot_bush_quarry", 152 | "fg": 25, 153 | "bg": 0, 154 | "rotates": false 155 | } 156 | ] 157 | } 158 | ] 159 | } 160 | ] 161 | -------------------------------------------------------------------------------- /Dorf_Life/mod_tileset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chaosvolt/Dorf-Life-CDDA/0aa34ec1cd5b86d451314b03da91f20cc64e3fd5/Dorf_Life/mod_tileset.png -------------------------------------------------------------------------------- /Dorf_Life/modinfo.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "MOD_INFO", 4 | "id": "Dorf_Life", 5 | "name": "Dorf Life", 6 | "authors": [ "Chaosvolt" ], 7 | "description": "Adds multi-level caverns hidden away in the underground, breaching the subways to add various strange sights to explore.", 8 | "version": "DDA version, update 2/28/2025", 9 | "category": "buildings", 10 | "dependencies": [ "dda" ] 11 | } 12 | ] 13 | -------------------------------------------------------------------------------- /Dorf_Life/obsolete.json: -------------------------------------------------------------------------------- 1 | [ 2 | ] 3 | -------------------------------------------------------------------------------- /Dorf_Life/overmap_specials.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "overmap_special", 4 | "id": "Sewer Cave 3x3", 5 | "overmaps": [ 6 | { "point": [ 0, 0, -1 ], "overmap": "breach_corner_north" }, 7 | { "point": [ 1, 0, -1 ], "overmap": "breach_pocket_north" }, 8 | { "point": [ 2, 0, -1 ], "overmap": "breach_corner_east" }, 9 | { "point": [ 0, 1, -1 ], "overmap": "breach_edge_west" }, 10 | { "point": [ 1, 1, -1 ], "overmap": "breach_center_north" }, 11 | { "point": [ 2, 1, -1 ], "overmap": "breach_edge_east" }, 12 | { "point": [ 0, 2, -1 ], "overmap": "breach_corner_west" }, 13 | { "point": [ 1, 2, -1 ], "overmap": "breach_edge_south" }, 14 | { "point": [ 2, 2, -1 ], "overmap": "breach_corner_south" } 15 | 16 | ], 17 | "connections": [ 18 | { "point": [ 1, -1, -1 ], "terrain": "sewer", "connection": "sewer_tunnel", "from": [ 1, 0, -1 ] } 19 | ], 20 | "locations": [ "land" ], 21 | "city_distance": [ -1, 4 ], 22 | "city_sizes": [ 4, 20 ], 23 | "occurrences": [ 0, 10 ], 24 | "flags": [ "CLASSIC", "URBAN" ] 25 | }, 26 | { 27 | "type": "overmap_special", 28 | "id": "Sewer Cave 4x3", 29 | "overmaps": [ 30 | { "point": [ 0, 0, -1 ], "overmap": "breach_corner_north" }, 31 | { "point": [ 1, 0, -1 ], "overmap": "breach_pocket_north" }, 32 | { "point": [ 2, 0, -1 ], "overmap": "breach_edge_north" }, 33 | { "point": [ 3, 0, -1 ], "overmap": "breach_corner_east" }, 34 | { "point": [ 0, 1, -1 ], "overmap": "breach_edge_west" }, 35 | { "point": [ 1, 1, -1 ], "overmap": "breach_center_north" }, 36 | { "point": [ 2, 1, -1 ], "overmap": "breach_center_north" }, 37 | { "point": [ 3, 1, -1 ], "overmap": "breach_edge_east" }, 38 | { "point": [ 0, 2, -1 ], "overmap": "breach_corner_west" }, 39 | { "point": [ 1, 2, -1 ], "overmap": "breach_edge_south" }, 40 | { "point": [ 2, 2, -1 ], "overmap": "breach_edge_south" }, 41 | { "point": [ 3, 2, -1 ], "overmap": "breach_corner_south" } 42 | ], 43 | "connections": [ 44 | { "point": [ 1, -1, -1 ], "terrain": "sewer", "connection": "sewer_tunnel", "from": [ 1, 0, -1 ] } 45 | ], 46 | "locations": [ "land" ], 47 | "city_distance": [ -1, 4 ], 48 | "city_sizes": [ 4, 20 ], 49 | "occurrences": [ 0, 10 ], 50 | "flags": [ "CLASSIC", "URBAN" ] 51 | }, 52 | { 53 | "type": "overmap_special", 54 | "id": "Sewer Cave 4x4", 55 | "overmaps": [ 56 | { "point": [ 0, 0, -1 ], "overmap": "breach_corner_north" }, 57 | { "point": [ 1, 0, -1 ], "overmap": "breach_pocket_north" }, 58 | { "point": [ 2, 0, -1 ], "overmap": "breach_edge_north" }, 59 | { "point": [ 3, 0, -1 ], "overmap": "breach_corner_east" }, 60 | { "point": [ 0, 1, -1 ], "overmap": "breach_edge_west" }, 61 | { "point": [ 1, 1, -1 ], "overmap": "breach_center_north" }, 62 | { "point": [ 2, 1, -1 ], "overmap": "breach_center_north" }, 63 | { "point": [ 3, 1, -1 ], "overmap": "breach_edge_east" }, 64 | { "point": [ 0, 2, -1 ], "overmap": "breach_edge_west" }, 65 | { "point": [ 1, 2, -1 ], "overmap": "breach_center_north" }, 66 | { "point": [ 2, 2, -1 ], "overmap": "breach_center_north" }, 67 | { "point": [ 3, 2, -1 ], "overmap": "breach_edge_east" }, 68 | { "point": [ 0, 3, -1 ], "overmap": "breach_corner_west" }, 69 | { "point": [ 1, 3, -1 ], "overmap": "breach_edge_south" }, 70 | { "point": [ 2, 3, -1 ], "overmap": "breach_edge_south" }, 71 | { "point": [ 3, 3, -1 ], "overmap": "breach_corner_south" } 72 | ], 73 | "connections": [ 74 | { "point": [ 1, -1, -1 ], "terrain": "sewer", "connection": "sewer_tunnel", "from": [ 1, 0, -1 ] } 75 | ], 76 | "locations": [ "land" ], 77 | "city_distance": [ -1, 4 ], 78 | "city_sizes": [ 4, 20 ], 79 | "occurrences": [ 0, 10 ], 80 | "flags": [ "CLASSIC", "URBAN" ] 81 | }, 82 | { 83 | "type": "overmap_special", 84 | "id": "Underground Cave 3x3", 85 | "//": "NW uses north, NE uses east, SW uses west, SE uses south.", 86 | "overmaps": [ 87 | { "point": [ 1, 0, -2 ], "overmap": "breach_entry_north" }, 88 | { "point": [ 0, 0, -3 ], "overmap": "breach_corner_north" }, 89 | { "point": [ 1, 0, -3 ], "overmap": "breach_up_north" }, 90 | { "point": [ 2, 0, -3 ], "overmap": "breach_corner_east" }, 91 | { "point": [ 0, 1, -3 ], "overmap": "breach_edge_west" }, 92 | { "point": [ 1, 1, -3 ], "overmap": "breach_center_north" }, 93 | { "point": [ 2, 1, -3 ], "overmap": "breach_down_east" }, 94 | { "point": [ 0, 2, -3 ], "overmap": "breach_corner_west" }, 95 | { "point": [ 1, 2, -3 ], "overmap": "breach_edge_south" }, 96 | { "point": [ 2, 2, -3 ], "overmap": "breach_corner_south" }, 97 | { "point": [ 0, 0, -4 ], "overmap": "breach_corner_north" }, 98 | { "point": [ 1, 0, -4 ], "overmap": "breach_edge_north" }, 99 | { "point": [ 2, 0, -4 ], "overmap": "breach_corner_east" }, 100 | { "point": [ 0, 1, -4 ], "overmap": "breach_edge_west" }, 101 | { "point": [ 1, 1, -4 ], "overmap": "breach_center_north" }, 102 | { "point": [ 2, 1, -4 ], "overmap": "breach_up_east" }, 103 | { "point": [ 0, 2, -4 ], "overmap": "breach_corner_west" }, 104 | { "point": [ 1, 2, -4 ], "overmap": "breach_down_south" }, 105 | { "point": [ 2, 2, -4 ], "overmap": "breach_corner_south" }, 106 | { "point": [ 0, 0, -5 ], "overmap": "breach_corner_north" }, 107 | { "point": [ 1, 0, -5 ], "overmap": "breach_edge_north" }, 108 | { "point": [ 2, 0, -5 ], "overmap": "breach_corner_east" }, 109 | { "point": [ 0, 1, -5 ], "overmap": "breach_down_west" }, 110 | { "point": [ 1, 1, -5 ], "overmap": "breach_center_north" }, 111 | { "point": [ 2, 1, -5 ], "overmap": "breach_edge_east" }, 112 | { "point": [ 0, 2, -5 ], "overmap": "breach_corner_west" }, 113 | { "point": [ 1, 2, -5 ], "overmap": "breach_up_south" }, 114 | { "point": [ 2, 2, -5 ], "overmap": "breach_corner_south" }, 115 | { "point": [ 0, 0, -6 ], "overmap": "breach_corner_north" }, 116 | { "point": [ 1, 0, -6 ], "overmap": "breach_down_north" }, 117 | { "point": [ 2, 0, -6 ], "overmap": "breach_corner_east" }, 118 | { "point": [ 0, 1, -6 ], "overmap": "breach_up_west" }, 119 | { "point": [ 1, 1, -6 ], "overmap": "breach_center_north" }, 120 | { "point": [ 2, 1, -6 ], "overmap": "breach_edge_east" }, 121 | { "point": [ 0, 2, -6 ], "overmap": "breach_corner_west" }, 122 | { "point": [ 1, 2, -6 ], "overmap": "breach_edge_south" }, 123 | { "point": [ 2, 2, -6 ], "overmap": "breach_corner_south" }, 124 | { "point": [ 0, 0, -7 ], "overmap": "breach_corner_north" }, 125 | { "point": [ 1, 0, -7 ], "overmap": "breach_finale_1_east" }, 126 | { "point": [ 2, 0, -7 ], "overmap": "breach_corner_east" }, 127 | { "point": [ 0, 1, -7 ], "overmap": "breach_edge_west" }, 128 | { "point": [ 1, 1, -7 ], "overmap": "breach_finale_2_east" }, 129 | { "point": [ 2, 1, -7 ], "overmap": "breach_edge_east" }, 130 | { "point": [ 0, 2, -7 ], "overmap": "breach_corner_west" }, 131 | { "point": [ 1, 2, -7 ], "overmap": "breach_finale_3_east" }, 132 | { "point": [ 2, 2, -7 ], "overmap": "breach_corner_south" } 133 | ], 134 | "connections": [ 135 | { "point": [ 0, 1, -2 ], "terrain": "subway" }, 136 | { "point": [ 1, 1, -2 ], "terrain": "subway" }, 137 | { "point": [ 2, 1, -2 ], "terrain": "subway" } 138 | ], 139 | "locations": [ "land" ], 140 | "city_distance": [ -1, 4 ], 141 | "city_sizes": [ 6, 20 ], 142 | "occurrences": [ 0, 10 ], 143 | "flags": [ "CLASSIC", "URBAN" ] 144 | }, 145 | { 146 | "type": "overmap_special", 147 | "id": "Underground Cave 4x3", 148 | "//": "NW uses north, NE uses east, SW uses west, SE uses south.", 149 | "overmaps": [ 150 | { "point": [ 1, 0, -2 ], "overmap": "breach_entry_north" }, 151 | { "point": [ 0, 0, -3 ], "overmap": "breach_corner_north" }, 152 | { "point": [ 1, 0, -3 ], "overmap": "breach_up_north" }, 153 | { "point": [ 2, 0, -3 ], "overmap": "breach_edge_north" }, 154 | { "point": [ 3, 0, -3 ], "overmap": "breach_corner_east" }, 155 | { "point": [ 0, 1, -3 ], "overmap": "breach_down_west" }, 156 | { "point": [ 1, 1, -3 ], "overmap": "breach_center_north" }, 157 | { "point": [ 2, 1, -3 ], "overmap": "breach_center_north" }, 158 | { "point": [ 3, 1, -3 ], "overmap": "breach_edge_east" }, 159 | { "point": [ 0, 2, -3 ], "overmap": "breach_corner_west" }, 160 | { "point": [ 1, 2, -3 ], "overmap": "breach_edge_south" }, 161 | { "point": [ 2, 2, -3 ], "overmap": "breach_edge_south" }, 162 | { "point": [ 3, 2, -3 ], "overmap": "breach_corner_south" }, 163 | { "point": [ 0, 0, -4 ], "overmap": "breach_corner_north" }, 164 | { "point": [ 1, 0, -4 ], "overmap": "breach_edge_north" }, 165 | { "point": [ 2, 0, -4 ], "overmap": "breach_edge_north" }, 166 | { "point": [ 3, 0, -4 ], "overmap": "breach_corner_east" }, 167 | { "point": [ 0, 1, -4 ], "overmap": "breach_up_west" }, 168 | { "point": [ 1, 1, -4 ], "overmap": "breach_center_north" }, 169 | { "point": [ 2, 1, -4 ], "overmap": "breach_center_north" }, 170 | { "point": [ 3, 1, -4 ], "overmap": "breach_edge_east" }, 171 | { "point": [ 0, 2, -4 ], "overmap": "breach_corner_west" }, 172 | { "point": [ 1, 2, -4 ], "overmap": "breach_edge_south" }, 173 | { "point": [ 2, 2, -4 ], "overmap": "breach_down_south" }, 174 | { "point": [ 3, 2, -4 ], "overmap": "breach_corner_south" }, 175 | { "point": [ 0, 0, -5 ], "overmap": "breach_corner_north" }, 176 | { "point": [ 1, 0, -5 ], "overmap": "breach_edge_north" }, 177 | { "point": [ 2, 0, -5 ], "overmap": "breach_edge_north" }, 178 | { "point": [ 3, 0, -5 ], "overmap": "breach_corner_east" }, 179 | { "point": [ 0, 1, -5 ], "overmap": "breach_edge_west" }, 180 | { "point": [ 1, 1, -5 ], "overmap": "breach_center_north" }, 181 | { "point": [ 2, 1, -5 ], "overmap": "breach_center_north" }, 182 | { "point": [ 3, 1, -5 ], "overmap": "breach_down_east" }, 183 | { "point": [ 0, 2, -5 ], "overmap": "breach_corner_west" }, 184 | { "point": [ 1, 2, -5 ], "overmap": "breach_edge_south" }, 185 | { "point": [ 2, 2, -5 ], "overmap": "breach_up_south" }, 186 | { "point": [ 3, 2, -5 ], "overmap": "breach_corner_south" }, 187 | { "point": [ 0, 0, -6 ], "overmap": "breach_corner_north" }, 188 | { "point": [ 1, 0, -6 ], "overmap": "breach_down_north" }, 189 | { "point": [ 2, 0, -6 ], "overmap": "breach_edge_north" }, 190 | { "point": [ 3, 0, -6 ], "overmap": "breach_corner_east" }, 191 | { "point": [ 0, 1, -6 ], "overmap": "breach_edge_west" }, 192 | { "point": [ 1, 1, -6 ], "overmap": "breach_center_north" }, 193 | { "point": [ 2, 1, -6 ], "overmap": "breach_center_north" }, 194 | { "point": [ 3, 1, -6 ], "overmap": "breach_up_east" }, 195 | { "point": [ 0, 2, -6 ], "overmap": "breach_corner_west" }, 196 | { "point": [ 1, 2, -6 ], "overmap": "breach_edge_south" }, 197 | { "point": [ 2, 2, -6 ], "overmap": "breach_edge_south" }, 198 | { "point": [ 3, 2, -6 ], "overmap": "breach_corner_south" }, 199 | { "point": [ 0, 0, -7 ], "overmap": "breach_corner_north" }, 200 | { "point": [ 1, 0, -7 ], "overmap": "breach_finale_4_north" }, 201 | { "point": [ 2, 0, -7 ], "overmap": "breach_finale_5_north" }, 202 | { "point": [ 3, 0, -7 ], "overmap": "breach_corner_east" }, 203 | { "point": [ 0, 1, -7 ], "overmap": "breach_edge_west" }, 204 | { "point": [ 1, 1, -7 ], "overmap": "breach_finale_6_north" }, 205 | { "point": [ 2, 1, -7 ], "overmap": "breach_finale_7_north" }, 206 | { "point": [ 3, 1, -7 ], "overmap": "breach_edge_east" }, 207 | { "point": [ 0, 2, -7 ], "overmap": "breach_corner_west" }, 208 | { "point": [ 1, 2, -7 ], "overmap": "breach_finale_8_north" }, 209 | { "point": [ 2, 2, -7 ], "overmap": "breach_finale_9_north" }, 210 | { "point": [ 3, 2, -7 ], "overmap": "breach_corner_south" } 211 | ], 212 | "connections": [ 213 | { "point": [ 0, 1, -2 ], "terrain": "subway" }, 214 | { "point": [ 1, 1, -2 ], "terrain": "subway" }, 215 | { "point": [ 2, 1, -2 ], "terrain": "subway" } 216 | ], 217 | "locations": [ "land" ], 218 | "city_distance": [ -1, 4 ], 219 | "city_sizes": [ 6, 20 ], 220 | "occurrences": [ 0, 10 ], 221 | "flags": [ "CLASSIC", "URBAN" ] 222 | }, 223 | { 224 | "type": "overmap_special", 225 | "id": "Underground Cave 4x4", 226 | "//": "NW uses north, NE uses east, SW uses west, SE uses south.", 227 | "overmaps": [ 228 | { "point": [ 1, 0, -2 ], "overmap": "breach_entry_north" }, 229 | { "point": [ 0, 0, -3 ], "overmap": "breach_corner_north" }, 230 | { "point": [ 1, 0, -3 ], "overmap": "breach_up_north" }, 231 | { "point": [ 2, 0, -3 ], "overmap": "breach_edge_north" }, 232 | { "point": [ 3, 0, -3 ], "overmap": "breach_corner_east" }, 233 | { "point": [ 0, 1, -3 ], "overmap": "breach_edge_west" }, 234 | { "point": [ 1, 1, -3 ], "overmap": "breach_center_north" }, 235 | { "point": [ 2, 1, -3 ], "overmap": "breach_center_north" }, 236 | { "point": [ 3, 1, -3 ], "overmap": "breach_edge_east" }, 237 | { "point": [ 0, 2, -3 ], "overmap": "breach_edge_west" }, 238 | { "point": [ 1, 2, -3 ], "overmap": "breach_center_north" }, 239 | { "point": [ 2, 2, -3 ], "overmap": "breach_center_north" }, 240 | { "point": [ 3, 2, -3 ], "overmap": "breach_down_east" }, 241 | { "point": [ 0, 3, -3 ], "overmap": "breach_corner_west" }, 242 | { "point": [ 1, 3, -3 ], "overmap": "breach_edge_south" }, 243 | { "point": [ 2, 3, -3 ], "overmap": "breach_edge_south" }, 244 | { "point": [ 3, 3, -3 ], "overmap": "breach_corner_south" }, 245 | { "point": [ 0, 0, -4 ], "overmap": "breach_corner_north" }, 246 | { "point": [ 1, 0, -4 ], "overmap": "breach_edge_north" }, 247 | { "point": [ 2, 0, -4 ], "overmap": "breach_edge_north" }, 248 | { "point": [ 3, 0, -4 ], "overmap": "breach_corner_east" }, 249 | { "point": [ 0, 1, -4 ], "overmap": "breach_edge_west" }, 250 | { "point": [ 1, 1, -4 ], "overmap": "breach_center_north" }, 251 | { "point": [ 2, 1, -4 ], "overmap": "breach_center_north" }, 252 | { "point": [ 3, 1, -4 ], "overmap": "breach_edge_east" }, 253 | { "point": [ 0, 2, -4 ], "overmap": "breach_edge_west" }, 254 | { "point": [ 1, 2, -4 ], "overmap": "breach_center_north" }, 255 | { "point": [ 2, 2, -4 ], "overmap": "breach_center_north" }, 256 | { "point": [ 3, 2, -4 ], "overmap": "breach_up_east" }, 257 | { "point": [ 0, 3, -4 ], "overmap": "breach_corner_west" }, 258 | { "point": [ 1, 3, -4 ], "overmap": "breach_down_south" }, 259 | { "point": [ 2, 3, -4 ], "overmap": "breach_edge_south" }, 260 | { "point": [ 3, 3, -4 ], "overmap": "breach_corner_south" }, 261 | { "point": [ 0, 0, -5 ], "overmap": "breach_corner_north" }, 262 | { "point": [ 1, 0, -5 ], "overmap": "breach_edge_north" }, 263 | { "point": [ 2, 0, -5 ], "overmap": "breach_edge_north" }, 264 | { "point": [ 3, 0, -5 ], "overmap": "breach_corner_east" }, 265 | { "point": [ 0, 1, -5 ], "overmap": "breach_edge_west" }, 266 | { "point": [ 1, 1, -5 ], "overmap": "breach_center_north" }, 267 | { "point": [ 2, 1, -5 ], "overmap": "breach_center_north" }, 268 | { "point": [ 3, 1, -5 ], "overmap": "breach_edge_east" }, 269 | { "point": [ 0, 2, -5 ], "overmap": "breach_down_west" }, 270 | { "point": [ 1, 2, -5 ], "overmap": "breach_center_north" }, 271 | { "point": [ 2, 2, -5 ], "overmap": "breach_center_north" }, 272 | { "point": [ 3, 2, -5 ], "overmap": "breach_edge_east" }, 273 | { "point": [ 0, 3, -5 ], "overmap": "breach_corner_west" }, 274 | { "point": [ 1, 3, -5 ], "overmap": "breach_up_south" }, 275 | { "point": [ 2, 3, -5 ], "overmap": "breach_edge_south" }, 276 | { "point": [ 3, 3, -5 ], "overmap": "breach_corner_south" }, 277 | { "point": [ 0, 0, -6 ], "overmap": "breach_corner_north" }, 278 | { "point": [ 1, 0, -6 ], "overmap": "breach_edge_north" }, 279 | { "point": [ 2, 0, -6 ], "overmap": "breach_down_north" }, 280 | { "point": [ 3, 0, -6 ], "overmap": "breach_corner_east" }, 281 | { "point": [ 0, 1, -6 ], "overmap": "breach_edge_west" }, 282 | { "point": [ 1, 1, -6 ], "overmap": "breach_center_north" }, 283 | { "point": [ 2, 1, -6 ], "overmap": "breach_center_north" }, 284 | { "point": [ 3, 1, -6 ], "overmap": "breach_edge_east" }, 285 | { "point": [ 0, 2, -6 ], "overmap": "breach_up_west" }, 286 | { "point": [ 1, 2, -6 ], "overmap": "breach_center_north" }, 287 | { "point": [ 2, 2, -6 ], "overmap": "breach_center_north" }, 288 | { "point": [ 3, 2, -6 ], "overmap": "breach_edge_east" }, 289 | { "point": [ 0, 3, -6 ], "overmap": "breach_corner_west" }, 290 | { "point": [ 1, 3, -6 ], "overmap": "breach_edge_south" }, 291 | { "point": [ 2, 3, -6 ], "overmap": "breach_edge_south" }, 292 | { "point": [ 3, 3, -6 ], "overmap": "breach_corner_south" }, 293 | { "point": [ 0, 0, -7 ], "overmap": "breach_corner_north" }, 294 | { "point": [ 1, 0, -7 ], "overmap": "breach_edge_north" }, 295 | { "point": [ 2, 0, -7 ], "overmap": "breach_up_north" }, 296 | { "point": [ 3, 0, -7 ], "overmap": "breach_corner_east" }, 297 | { "point": [ 0, 1, -7 ], "overmap": "breach_edge_west" }, 298 | { "point": [ 1, 1, -7 ], "overmap": "breach_finale_10_north" }, 299 | { "point": [ 2, 1, -7 ], "overmap": "breach_finale_11_north" }, 300 | { "point": [ 3, 1, -7 ], "overmap": "breach_edge_east" }, 301 | { "point": [ 0, 2, -7 ], "overmap": "breach_edge_west" }, 302 | { "point": [ 1, 2, -7 ], "overmap": "breach_finale_12_north" }, 303 | { "point": [ 2, 2, -7 ], "overmap": "breach_finale_13_north" }, 304 | { "point": [ 3, 2, -7 ], "overmap": "breach_edge_east" }, 305 | { "point": [ 0, 3, -7 ], "overmap": "breach_corner_west" }, 306 | { "point": [ 1, 3, -7 ], "overmap": "breach_edge_south" }, 307 | { "point": [ 2, 3, -7 ], "overmap": "breach_edge_south" }, 308 | { "point": [ 3, 3, -7 ], "overmap": "breach_corner_south" } 309 | ], 310 | "connections": [ 311 | { "point": [ 0, 1, -2 ], "terrain": "subway" }, 312 | { "point": [ 1, 1, -2 ], "terrain": "subway" }, 313 | { "point": [ 2, 1, -2 ], "terrain": "subway" } 314 | ], 315 | "locations": [ "land" ], 316 | "city_distance": [ -1, 4 ], 317 | "city_sizes": [ 6, 20 ], 318 | "occurrences": [ 0, 10 ], 319 | "flags": [ "CLASSIC", "URBAN" ] 320 | }, 321 | { 322 | "type": "overmap_special", 323 | "id": "Underground Cave 5x4", 324 | "//": "NW uses north, NE uses east, SW uses west, SE uses south.", 325 | "overmaps": [ 326 | { "point": [ 2, 0, -2 ], "overmap": "breach_entry_north" }, 327 | { "point": [ 0, 0, -3 ], "overmap": "breach_corner_north" }, 328 | { "point": [ 1, 0, -3 ], "overmap": "breach_edge_north" }, 329 | { "point": [ 2, 0, -3 ], "overmap": "breach_up_north" }, 330 | { "point": [ 3, 0, -3 ], "overmap": "breach_edge_north" }, 331 | { "point": [ 4, 0, -3 ], "overmap": "breach_corner_east" }, 332 | { "point": [ 0, 1, -3 ], "overmap": "breach_down_west" }, 333 | { "point": [ 1, 1, -3 ], "overmap": "breach_center_north" }, 334 | { "point": [ 2, 1, -3 ], "overmap": "breach_center_north" }, 335 | { "point": [ 3, 1, -3 ], "overmap": "breach_center_north" }, 336 | { "point": [ 4, 1, -3 ], "overmap": "breach_edge_east" }, 337 | { "point": [ 0, 2, -3 ], "overmap": "breach_edge_west" }, 338 | { "point": [ 1, 2, -3 ], "overmap": "breach_center_south" }, 339 | { "point": [ 2, 2, -3 ], "overmap": "breach_center_south" }, 340 | { "point": [ 3, 2, -3 ], "overmap": "breach_center_south" }, 341 | { "point": [ 4, 2, -3 ], "overmap": "breach_edge_east" }, 342 | { "point": [ 0, 3, -3 ], "overmap": "breach_corner_west" }, 343 | { "point": [ 1, 3, -3 ], "overmap": "breach_edge_south" }, 344 | { "point": [ 2, 3, -3 ], "overmap": "breach_edge_south" }, 345 | { "point": [ 3, 3, -3 ], "overmap": "breach_edge_south" }, 346 | { "point": [ 4, 3, -3 ], "overmap": "breach_corner_south" }, 347 | { "point": [ 0, 0, -4 ], "overmap": "breach_corner_north" }, 348 | { "point": [ 1, 0, -4 ], "overmap": "breach_edge_north" }, 349 | { "point": [ 2, 0, -4 ], "overmap": "breach_edge_north" }, 350 | { "point": [ 3, 0, -4 ], "overmap": "breach_edge_north" }, 351 | { "point": [ 4, 0, -4 ], "overmap": "breach_corner_east" }, 352 | { "point": [ 0, 1, -4 ], "overmap": "breach_up_west" }, 353 | { "point": [ 1, 1, -4 ], "overmap": "breach_center_north" }, 354 | { "point": [ 2, 1, -4 ], "overmap": "breach_center_north" }, 355 | { "point": [ 3, 1, -4 ], "overmap": "breach_center_north" }, 356 | { "point": [ 4, 1, -4 ], "overmap": "breach_edge_east" }, 357 | { "point": [ 0, 2, -4 ], "overmap": "breach_edge_west" }, 358 | { "point": [ 1, 2, -4 ], "overmap": "breach_center_south" }, 359 | { "point": [ 2, 2, -4 ], "overmap": "breach_center_south" }, 360 | { "point": [ 3, 2, -4 ], "overmap": "breach_center_south" }, 361 | { "point": [ 4, 2, -4 ], "overmap": "breach_edge_east" }, 362 | { "point": [ 0, 3, -4 ], "overmap": "breach_corner_west" }, 363 | { "point": [ 1, 3, -4 ], "overmap": "breach_edge_south" }, 364 | { "point": [ 2, 3, -4 ], "overmap": "breach_down_south" }, 365 | { "point": [ 3, 3, -4 ], "overmap": "breach_edge_south" }, 366 | { "point": [ 4, 3, -4 ], "overmap": "breach_corner_south" }, 367 | { "point": [ 0, 0, -5 ], "overmap": "breach_corner_north" }, 368 | { "point": [ 1, 0, -5 ], "overmap": "breach_edge_north" }, 369 | { "point": [ 2, 0, -5 ], "overmap": "breach_edge_north" }, 370 | { "point": [ 3, 0, -5 ], "overmap": "breach_edge_north" }, 371 | { "point": [ 4, 0, -5 ], "overmap": "breach_corner_east" }, 372 | { "point": [ 0, 1, -5 ], "overmap": "breach_edge_west" }, 373 | { "point": [ 1, 1, -5 ], "overmap": "breach_center_north" }, 374 | { "point": [ 2, 1, -5 ], "overmap": "breach_center_north" }, 375 | { "point": [ 3, 1, -5 ], "overmap": "breach_center_north" }, 376 | { "point": [ 4, 1, -5 ], "overmap": "breach_down_east" }, 377 | { "point": [ 0, 2, -5 ], "overmap": "breach_edge_west" }, 378 | { "point": [ 1, 2, -5 ], "overmap": "breach_center_south" }, 379 | { "point": [ 2, 2, -5 ], "overmap": "breach_center_south" }, 380 | { "point": [ 3, 2, -5 ], "overmap": "breach_center_south" }, 381 | { "point": [ 4, 2, -5 ], "overmap": "breach_edge_east" }, 382 | { "point": [ 0, 3, -5 ], "overmap": "breach_corner_west" }, 383 | { "point": [ 1, 3, -5 ], "overmap": "breach_edge_south" }, 384 | { "point": [ 2, 3, -5 ], "overmap": "breach_up_south" }, 385 | { "point": [ 3, 3, -5 ], "overmap": "breach_edge_south" }, 386 | { "point": [ 4, 3, -5 ], "overmap": "breach_corner_south" }, 387 | { "point": [ 0, 0, -6 ], "overmap": "breach_corner_north" }, 388 | { "point": [ 1, 0, -6 ], "overmap": "breach_edge_north" }, 389 | { "point": [ 2, 0, -6 ], "overmap": "breach_down_north" }, 390 | { "point": [ 3, 0, -6 ], "overmap": "breach_edge_north" }, 391 | { "point": [ 4, 0, -6 ], "overmap": "breach_corner_east" }, 392 | { "point": [ 0, 1, -6 ], "overmap": "breach_edge_west" }, 393 | { "point": [ 1, 1, -6 ], "overmap": "breach_center_north" }, 394 | { "point": [ 2, 1, -6 ], "overmap": "breach_center_north" }, 395 | { "point": [ 3, 1, -6 ], "overmap": "breach_center_north" }, 396 | { "point": [ 4, 1, -6 ], "overmap": "breach_up_east" }, 397 | { "point": [ 0, 2, -6 ], "overmap": "breach_edge_west" }, 398 | { "point": [ 1, 2, -6 ], "overmap": "breach_center_south" }, 399 | { "point": [ 2, 2, -6 ], "overmap": "breach_center_south" }, 400 | { "point": [ 3, 2, -6 ], "overmap": "breach_center_south" }, 401 | { "point": [ 4, 2, -6 ], "overmap": "breach_edge_east" }, 402 | { "point": [ 0, 3, -6 ], "overmap": "breach_corner_west" }, 403 | { "point": [ 1, 3, -6 ], "overmap": "breach_edge_south" }, 404 | { "point": [ 2, 3, -6 ], "overmap": "breach_edge_south" }, 405 | { "point": [ 3, 3, -6 ], "overmap": "breach_edge_south" }, 406 | { "point": [ 4, 3, -6 ], "overmap": "breach_corner_south" }, 407 | { "point": [ 0, 0, -7 ], "overmap": "breach_corner_north" }, 408 | { "point": [ 1, 0, -7 ], "overmap": "breach_finale_22_east" }, 409 | { "point": [ 2, 0, -7 ], "overmap": "breach_finale_18_east" }, 410 | { "point": [ 3, 0, -7 ], "overmap": "breach_finale_14_east" }, 411 | { "point": [ 4, 0, -7 ], "overmap": "breach_corner_east" }, 412 | { "point": [ 0, 1, -7 ], "overmap": "breach_edge_west" }, 413 | { "point": [ 1, 1, -7 ], "overmap": "breach_finale_23_east" }, 414 | { "point": [ 2, 1, -7 ], "overmap": "breach_finale_19_east" }, 415 | { "point": [ 3, 1, -7 ], "overmap": "breach_finale_15_east" }, 416 | { "point": [ 4, 1, -7 ], "overmap": "breach_edge_east" }, 417 | { "point": [ 0, 2, -7 ], "overmap": "breach_edge_west" }, 418 | { "point": [ 1, 2, -7 ], "overmap": "breach_finale_24_east" }, 419 | { "point": [ 2, 2, -7 ], "overmap": "breach_finale_20_east" }, 420 | { "point": [ 3, 2, -7 ], "overmap": "breach_finale_16_east" }, 421 | { "point": [ 4, 2, -7 ], "overmap": "breach_edge_east" }, 422 | { "point": [ 0, 3, -7 ], "overmap": "breach_corner_west" }, 423 | { "point": [ 1, 3, -7 ], "overmap": "breach_finale_25_east" }, 424 | { "point": [ 2, 3, -7 ], "overmap": "breach_finale_21_east" }, 425 | { "point": [ 3, 3, -7 ], "overmap": "breach_finale_17_east" }, 426 | { "point": [ 4, 3, -7 ], "overmap": "breach_corner_south" } 427 | ], 428 | "connections": [ 429 | { "point": [ 1, 1, -2 ], "terrain": "subway" }, 430 | { "point": [ 2, 1, -2 ], "terrain": "subway" }, 431 | { "point": [ 3, 1, -2 ], "terrain": "subway" } 432 | ], 433 | "locations": [ "land" ], 434 | "city_distance": [ -1, 4 ], 435 | "city_sizes": [ 6, 20 ], 436 | "occurrences": [ 0, 10 ], 437 | "flags": [ "CLASSIC", "URBAN" ] 438 | }, 439 | { 440 | "type": "overmap_special", 441 | "id": "Underground Cave 5x5", 442 | "//": "NW uses north, NE uses east, SW uses west, SE uses south.", 443 | "overmaps": [ 444 | { "point": [ 2, 0, -2 ], "overmap": "breach_entry_north" }, 445 | { "point": [ 0, 0, -3 ], "overmap": "breach_corner_north" }, 446 | { "point": [ 1, 0, -3 ], "overmap": "breach_edge_north" }, 447 | { "point": [ 2, 0, -3 ], "overmap": "breach_up_north" }, 448 | { "point": [ 3, 0, -3 ], "overmap": "breach_edge_north" }, 449 | { "point": [ 4, 0, -3 ], "overmap": "breach_corner_east" }, 450 | { "point": [ 0, 1, -3 ], "overmap": "breach_edge_west" }, 451 | { "point": [ 1, 1, -3 ], "overmap": "breach_center_north" }, 452 | { "point": [ 2, 1, -3 ], "overmap": "breach_center_north" }, 453 | { "point": [ 3, 1, -3 ], "overmap": "breach_center_north" }, 454 | { "point": [ 4, 1, -3 ], "overmap": "breach_edge_east" }, 455 | { "point": [ 0, 2, -3 ], "overmap": "breach_edge_west" }, 456 | { "point": [ 1, 2, -3 ], "overmap": "breach_center_west" }, 457 | { "point": [ 2, 2, -3 ], "overmap": "breach_center_north" }, 458 | { "point": [ 3, 2, -3 ], "overmap": "breach_center_east" }, 459 | { "point": [ 4, 2, -3 ], "overmap": "breach_down_east" }, 460 | { "point": [ 0, 3, -3 ], "overmap": "breach_edge_west" }, 461 | { "point": [ 1, 3, -3 ], "overmap": "breach_center_south" }, 462 | { "point": [ 2, 3, -3 ], "overmap": "breach_center_south" }, 463 | { "point": [ 3, 3, -3 ], "overmap": "breach_center_south" }, 464 | { "point": [ 4, 3, -3 ], "overmap": "breach_edge_east" }, 465 | { "point": [ 0, 4, -3 ], "overmap": "breach_corner_west" }, 466 | { "point": [ 1, 4, -3 ], "overmap": "breach_edge_south" }, 467 | { "point": [ 2, 4, -3 ], "overmap": "breach_edge_south" }, 468 | { "point": [ 3, 4, -3 ], "overmap": "breach_edge_south" }, 469 | { "point": [ 4, 4, -3 ], "overmap": "breach_corner_south" }, 470 | { "point": [ 0, 0, -4 ], "overmap": "breach_corner_north" }, 471 | { "point": [ 1, 0, -4 ], "overmap": "breach_edge_north" }, 472 | { "point": [ 2, 0, -4 ], "overmap": "breach_edge_north" }, 473 | { "point": [ 3, 0, -4 ], "overmap": "breach_edge_north" }, 474 | { "point": [ 4, 0, -4 ], "overmap": "breach_corner_east" }, 475 | { "point": [ 0, 1, -4 ], "overmap": "breach_edge_west" }, 476 | { "point": [ 1, 1, -4 ], "overmap": "breach_center_north" }, 477 | { "point": [ 2, 1, -4 ], "overmap": "breach_center_north" }, 478 | { "point": [ 3, 1, -4 ], "overmap": "breach_center_north" }, 479 | { "point": [ 4, 1, -4 ], "overmap": "breach_edge_east" }, 480 | { "point": [ 0, 2, -4 ], "overmap": "breach_edge_west" }, 481 | { "point": [ 1, 2, -4 ], "overmap": "breach_center_west" }, 482 | { "point": [ 2, 2, -4 ], "overmap": "breach_center_north" }, 483 | { "point": [ 3, 2, -4 ], "overmap": "breach_center_east" }, 484 | { "point": [ 4, 2, -4 ], "overmap": "breach_up_east" }, 485 | { "point": [ 0, 3, -4 ], "overmap": "breach_edge_west" }, 486 | { "point": [ 1, 3, -4 ], "overmap": "breach_center_south" }, 487 | { "point": [ 2, 3, -4 ], "overmap": "breach_center_south" }, 488 | { "point": [ 3, 3, -4 ], "overmap": "breach_center_south" }, 489 | { "point": [ 4, 3, -4 ], "overmap": "breach_edge_east" }, 490 | { "point": [ 0, 4, -4 ], "overmap": "breach_corner_west" }, 491 | { "point": [ 1, 4, -4 ], "overmap": "breach_edge_south" }, 492 | { "point": [ 2, 4, -4 ], "overmap": "breach_down_south" }, 493 | { "point": [ 3, 4, -4 ], "overmap": "breach_edge_south" }, 494 | { "point": [ 4, 4, -4 ], "overmap": "breach_corner_south" }, 495 | { "point": [ 0, 0, -5 ], "overmap": "breach_corner_north" }, 496 | { "point": [ 1, 0, -5 ], "overmap": "breach_edge_north" }, 497 | { "point": [ 2, 0, -5 ], "overmap": "breach_edge_north" }, 498 | { "point": [ 3, 0, -5 ], "overmap": "breach_edge_north" }, 499 | { "point": [ 4, 0, -5 ], "overmap": "breach_corner_east" }, 500 | { "point": [ 0, 1, -5 ], "overmap": "breach_edge_west" }, 501 | { "point": [ 1, 1, -5 ], "overmap": "breach_center_north" }, 502 | { "point": [ 2, 1, -5 ], "overmap": "breach_center_north" }, 503 | { "point": [ 3, 1, -5 ], "overmap": "breach_center_north" }, 504 | { "point": [ 4, 1, -5 ], "overmap": "breach_edge_east" }, 505 | { "point": [ 0, 2, -5 ], "overmap": "breach_down_west" }, 506 | { "point": [ 1, 2, -5 ], "overmap": "breach_center_west" }, 507 | { "point": [ 2, 2, -5 ], "overmap": "breach_center_north" }, 508 | { "point": [ 3, 2, -5 ], "overmap": "breach_center_east" }, 509 | { "point": [ 4, 2, -5 ], "overmap": "breach_edge_east" }, 510 | { "point": [ 0, 3, -5 ], "overmap": "breach_edge_west" }, 511 | { "point": [ 1, 3, -5 ], "overmap": "breach_center_south" }, 512 | { "point": [ 2, 3, -5 ], "overmap": "breach_center_south" }, 513 | { "point": [ 3, 3, -5 ], "overmap": "breach_center_south" }, 514 | { "point": [ 4, 3, -5 ], "overmap": "breach_edge_east" }, 515 | { "point": [ 0, 4, -5 ], "overmap": "breach_corner_west" }, 516 | { "point": [ 1, 4, -5 ], "overmap": "breach_edge_south" }, 517 | { "point": [ 2, 4, -5 ], "overmap": "breach_up_south" }, 518 | { "point": [ 3, 4, -5 ], "overmap": "breach_edge_south" }, 519 | { "point": [ 4, 4, -5 ], "overmap": "breach_corner_south" }, 520 | { "point": [ 0, 0, -6 ], "overmap": "breach_corner_north" }, 521 | { "point": [ 1, 0, -6 ], "overmap": "breach_edge_north" }, 522 | { "point": [ 2, 0, -6 ], "overmap": "breach_down_north" }, 523 | { "point": [ 3, 0, -6 ], "overmap": "breach_edge_north" }, 524 | { "point": [ 4, 0, -6 ], "overmap": "breach_corner_east" }, 525 | { "point": [ 0, 1, -6 ], "overmap": "breach_edge_west" }, 526 | { "point": [ 1, 1, -6 ], "overmap": "breach_center_north" }, 527 | { "point": [ 2, 1, -6 ], "overmap": "breach_center_north" }, 528 | { "point": [ 3, 1, -6 ], "overmap": "breach_center_north" }, 529 | { "point": [ 4, 1, -6 ], "overmap": "breach_edge_east" }, 530 | { "point": [ 0, 2, -6 ], "overmap": "breach_up_west" }, 531 | { "point": [ 1, 2, -6 ], "overmap": "breach_center_west" }, 532 | { "point": [ 2, 2, -6 ], "overmap": "breach_center_north" }, 533 | { "point": [ 3, 2, -6 ], "overmap": "breach_center_east" }, 534 | { "point": [ 4, 2, -6 ], "overmap": "breach_edge_east" }, 535 | { "point": [ 0, 3, -6 ], "overmap": "breach_edge_west" }, 536 | { "point": [ 1, 3, -6 ], "overmap": "breach_center_south" }, 537 | { "point": [ 2, 3, -6 ], "overmap": "breach_center_south" }, 538 | { "point": [ 3, 3, -6 ], "overmap": "breach_center_south" }, 539 | { "point": [ 4, 3, -6 ], "overmap": "breach_edge_east" }, 540 | { "point": [ 0, 4, -6 ], "overmap": "breach_corner_west" }, 541 | { "point": [ 1, 4, -6 ], "overmap": "breach_edge_south" }, 542 | { "point": [ 2, 4, -6 ], "overmap": "breach_edge_south" }, 543 | { "point": [ 3, 4, -6 ], "overmap": "breach_edge_south" }, 544 | { "point": [ 4, 4, -6 ], "overmap": "breach_corner_south" }, 545 | { "point": [ 0, 0, -7 ], "overmap": "breach_corner_north" }, 546 | { "point": [ 1, 0, -7 ], "overmap": "breach_edge_north" }, 547 | { "point": [ 2, 0, -7 ], "overmap": "breach_up_north" }, 548 | { "point": [ 3, 0, -7 ], "overmap": "breach_edge_north" }, 549 | { "point": [ 4, 0, -7 ], "overmap": "breach_corner_east" }, 550 | { "point": [ 0, 1, -7 ], "overmap": "breach_edge_west" }, 551 | { "point": [ 1, 1, -7 ], "overmap": "breach_center_north" }, 552 | { "point": [ 2, 1, -7 ], "overmap": "breach_center_north" }, 553 | { "point": [ 3, 1, -7 ], "overmap": "breach_center_north" }, 554 | { "point": [ 4, 1, -7 ], "overmap": "breach_edge_east" }, 555 | { "point": [ 0, 2, -7 ], "overmap": "breach_edge_west" }, 556 | { "point": [ 1, 2, -7 ], "overmap": "breach_center_west" }, 557 | { "point": [ 2, 2, -7 ], "overmap": "breach_center_north" }, 558 | { "point": [ 3, 2, -7 ], "overmap": "breach_center_east" }, 559 | { "point": [ 4, 2, -7 ], "overmap": "breach_edge_east" }, 560 | { "point": [ 0, 3, -7 ], "overmap": "breach_edge_west" }, 561 | { "point": [ 1, 3, -7 ], "overmap": "breach_center_south" }, 562 | { "point": [ 2, 3, -7 ], "overmap": "breach_center_south" }, 563 | { "point": [ 3, 3, -7 ], "overmap": "breach_center_south" }, 564 | { "point": [ 4, 3, -7 ], "overmap": "breach_edge_east" }, 565 | { "point": [ 0, 4, -7 ], "overmap": "breach_corner_west" }, 566 | { "point": [ 1, 4, -7 ], "overmap": "breach_edge_south" }, 567 | { "point": [ 2, 4, -7 ], "overmap": "breach_edge_south" }, 568 | { "point": [ 3, 4, -7 ], "overmap": "breach_edge_south" }, 569 | { "point": [ 4, 4, -7 ], "overmap": "breach_corner_south" } 570 | ], 571 | "connections": [ 572 | { "point": [ 1, 1, -2 ], "terrain": "subway" }, 573 | { "point": [ 2, 1, -2 ], "terrain": "subway" }, 574 | { "point": [ 3, 1, -2 ], "terrain": "subway" } 575 | ], 576 | "locations": [ "land" ], 577 | "city_distance": [ -1, 4 ], 578 | "city_sizes": [ 6, 20 ], 579 | "occurrences": [ 0, 10 ], 580 | "flags": [ "CLASSIC", "URBAN" ] 581 | } 582 | ] 583 | -------------------------------------------------------------------------------- /Dorf_Life/overmap_terrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "overmap_terrain", 4 | "id": "breach_pocket", 5 | "name": "underground breach", 6 | "sym": "#", 7 | "color": "brown", 8 | "see_cost": "low", 9 | "extras": "subway", 10 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 11 | }, 12 | { 13 | "type": "overmap_terrain", 14 | "id": "breach_entry", 15 | "name": "underground breach", 16 | "sym": "#", 17 | "color": "brown", 18 | "see_cost": "low", 19 | "extras": "subway", 20 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 21 | }, 22 | { 23 | "type": "overmap_terrain", 24 | "id": "breach_up", 25 | "name": "underground cavern", 26 | "sym": "#", 27 | "color": "brown", 28 | "see_cost": "low", 29 | "extras": "subway", 30 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 31 | }, 32 | { 33 | "type": "overmap_terrain", 34 | "id": "breach_down", 35 | "name": "underground cavern", 36 | "sym": "#", 37 | "color": "brown", 38 | "see_cost": "low", 39 | "extras": "subway", 40 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 41 | }, 42 | { 43 | "type": "overmap_terrain", 44 | "id": "breach_edge", 45 | "name": "underground cavern", 46 | "sym": "#", 47 | "color": "brown", 48 | "see_cost": "low", 49 | "extras": "subway", 50 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 51 | }, 52 | { 53 | "type": "overmap_terrain", 54 | "id": "breach_corner", 55 | "name": "underground cavern", 56 | "sym": "#", 57 | "color": "brown", 58 | "see_cost": "low", 59 | "extras": "subway", 60 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 61 | }, 62 | { 63 | "type": "overmap_terrain", 64 | "id": "breach_center", 65 | "name": "underground cavern", 66 | "sym": "#", 67 | "color": "brown", 68 | "see_cost": "low", 69 | "extras": "subway", 70 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 71 | }, 72 | { 73 | "type": "overmap_terrain", 74 | "id": "breach_finale_1", 75 | "name": "underground cavern", 76 | "sym": "#", 77 | "color": "brown", 78 | "see_cost": "low", 79 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 80 | }, 81 | { 82 | "type": "overmap_terrain", 83 | "id": "breach_finale_2", 84 | "name": "abandoned market", 85 | "sym": "#", 86 | "color": "h_dark_gray", 87 | "see_cost": "low", 88 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 89 | }, 90 | { 91 | "type": "overmap_terrain", 92 | "id": "breach_finale_3", 93 | "name": "underground cavern", 94 | "sym": "#", 95 | "color": "brown", 96 | "see_cost": "low", 97 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 98 | }, 99 | { 100 | "type": "overmap_terrain", 101 | "id": "breach_finale_4", 102 | "name": "underground cavern", 103 | "sym": "#", 104 | "color": "brown", 105 | "see_cost": "low", 106 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 107 | }, 108 | { 109 | "type": "overmap_terrain", 110 | "id": "breach_finale_5", 111 | "name": "underground cavern", 112 | "sym": "#", 113 | "color": "brown", 114 | "see_cost": "low", 115 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 116 | }, 117 | { 118 | "type": "overmap_terrain", 119 | "id": "breach_finale_6", 120 | "name": "science lab", 121 | "sym": "#", 122 | "color": "blue", 123 | "see_cost": "low", 124 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 125 | }, 126 | { 127 | "type": "overmap_terrain", 128 | "id": "breach_finale_7", 129 | "name": "science lab", 130 | "sym": "#", 131 | "color": "blue", 132 | "see_cost": "low", 133 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 134 | }, 135 | { 136 | "type": "overmap_terrain", 137 | "id": "breach_finale_8", 138 | "name": "underground cavern", 139 | "sym": "#", 140 | "color": "brown", 141 | "see_cost": "low", 142 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 143 | }, 144 | { 145 | "type": "overmap_terrain", 146 | "id": "breach_finale_9", 147 | "name": "underground cavern", 148 | "sym": "#", 149 | "color": "brown", 150 | "see_cost": "low", 151 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 152 | }, 153 | { 154 | "type": "overmap_terrain", 155 | "id": "breach_finale_10", 156 | "name": "hidden camp", 157 | "sym": "#", 158 | "color": "dark_gray", 159 | "see_cost": "low", 160 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 161 | }, 162 | { 163 | "type": "overmap_terrain", 164 | "id": "breach_finale_11", 165 | "name": "hidden camp", 166 | "sym": "#", 167 | "color": "dark_gray", 168 | "see_cost": "low", 169 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 170 | }, 171 | { 172 | "type": "overmap_terrain", 173 | "id": "breach_finale_12", 174 | "name": "hidden camp", 175 | "sym": "#", 176 | "color": "dark_gray", 177 | "see_cost": "low", 178 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 179 | }, 180 | { 181 | "type": "overmap_terrain", 182 | "id": "breach_finale_13", 183 | "name": "hidden camp", 184 | "sym": "#", 185 | "color": "dark_gray", 186 | "see_cost": "low", 187 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 188 | }, 189 | { 190 | "type": "overmap_terrain", 191 | "id": "breach_finale_14", 192 | "name": "underground cavern", 193 | "sym": "#", 194 | "color": "brown", 195 | "see_cost": "low", 196 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 197 | }, 198 | { 199 | "type": "overmap_terrain", 200 | "id": "breach_finale_15", 201 | "name": "buried anomaly", 202 | "sym": "#", 203 | "color": "red", 204 | "see_cost": "low", 205 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 206 | }, 207 | { 208 | "type": "overmap_terrain", 209 | "id": "breach_finale_16", 210 | "name": "buried anomaly", 211 | "sym": "#", 212 | "color": "red", 213 | "see_cost": "low", 214 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 215 | }, 216 | { 217 | "type": "overmap_terrain", 218 | "id": "breach_finale_17", 219 | "name": "underground cavern", 220 | "sym": "#", 221 | "color": "brown", 222 | "see_cost": "low", 223 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 224 | }, 225 | { 226 | "type": "overmap_terrain", 227 | "id": "breach_finale_18", 228 | "name": "underground cavern", 229 | "sym": "#", 230 | "color": "brown", 231 | "see_cost": "low", 232 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 233 | }, 234 | { 235 | "type": "overmap_terrain", 236 | "id": "breach_finale_19", 237 | "name": "buried anomaly", 238 | "sym": "#", 239 | "color": "red", 240 | "see_cost": "low", 241 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 242 | }, 243 | { 244 | "type": "overmap_terrain", 245 | "id": "breach_finale_20", 246 | "name": "buried anomaly", 247 | "sym": "#", 248 | "color": "red", 249 | "see_cost": "low", 250 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 251 | }, 252 | { 253 | "type": "overmap_terrain", 254 | "id": "breach_finale_21", 255 | "name": "underground cavern", 256 | "sym": "#", 257 | "color": "brown", 258 | "see_cost": "low", 259 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 260 | }, 261 | { 262 | "type": "overmap_terrain", 263 | "id": "breach_finale_22", 264 | "name": "underground cavern", 265 | "sym": "#", 266 | "color": "brown", 267 | "see_cost": "low", 268 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 269 | }, 270 | { 271 | "type": "overmap_terrain", 272 | "id": "breach_finale_23", 273 | "name": "buried anomaly", 274 | "sym": "#", 275 | "color": "red", 276 | "see_cost": "low", 277 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 278 | }, 279 | { 280 | "type": "overmap_terrain", 281 | "id": "breach_finale_24", 282 | "name": "buried anomaly", 283 | "sym": "#", 284 | "color": "red", 285 | "see_cost": "low", 286 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 287 | }, 288 | { 289 | "type": "overmap_terrain", 290 | "id": "breach_finale_25", 291 | "name": "underground cavern", 292 | "sym": "#", 293 | "color": "brown", 294 | "see_cost": "low", 295 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 296 | } 297 | ] 298 | -------------------------------------------------------------------------------- /Dorf_Life/recipes.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "recipe", 4 | "result": "caveyot_helmet_plump_cooked", 5 | "activity_level": "LIGHT_EXERCISE", 6 | "category": "CC_FOOD", 7 | "subcategory": "CSC_FOOD_VEGGI", 8 | "skill_used": "cooking", 9 | "difficulty": 1, 10 | "time": "15 m", 11 | "autolearn": true, 12 | "batch_time_factors": [ 67, 5 ], 13 | "qualities": [ { "id": "COOK", "level": 1 } ], 14 | "tools": [ [ [ "surface_heat", 7, "LIST" ] ] ], 15 | "components": [ [ [ "caveyot_helmet_plump", 1 ] ] ] 16 | }, 17 | { 18 | "type": "recipe", 19 | "result": "caveyot_bush_quarry_cooked", 20 | "activity_level": "LIGHT_EXERCISE", 21 | "category": "CC_FOOD", 22 | "subcategory": "CSC_FOOD_VEGGI", 23 | "skill_used": "cooking", 24 | "skills_required": [ "survival", 1 ], 25 | "difficulty": 1, 26 | "time": "24 m", 27 | "charges": 2, 28 | "autolearn": true, 29 | "qualities": [ { "id": "COOK", "level": 2 } ], 30 | "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], 31 | "components": [ [ [ "caveyot_bush_quarry", 1 ] ] ] 32 | }, 33 | { 34 | "result": "yeast", 35 | "type": "recipe", 36 | "activity_level": "LIGHT_EXERCISE", 37 | "id_suffix": "dorf", 38 | "category": "CC_FOOD", 39 | "subcategory": "CSC_FOOD_SEEDS", 40 | "skill_used": "survival", 41 | "difficulty": 2, 42 | "time": "5 m", 43 | "autolearn": true, 44 | "qualities": [ { "id": "CUT", "level": 1 } ], 45 | "components": [ 46 | [ 47 | [ "caveyot_helmet_plump", 1 ], 48 | [ "caveyot_pod_sweet", 1 ], 49 | [ "caveyot_wheat_cave", 1 ], 50 | [ "caveyot_tails_pig", 1 ], 51 | [ "caveyot_bush_quarry", 1 ] 52 | ] 53 | ] 54 | }, 55 | { 56 | "type": "recipe", 57 | "result": "brew_rum", 58 | "activity_level": "LIGHT_EXERCISE", 59 | "id_suffix": "dorf", 60 | "result_mult": 3, 61 | "category": "CC_FOOD", 62 | "subcategory": "CSC_FOOD_BREW", 63 | "skill_used": "cooking", 64 | "difficulty": 6, 65 | "time": "15 m", 66 | "batch_time_factors": [ 50, 4 ], 67 | "autolearn": true, 68 | "book_learn": [ [ "brewing_cookbook", 5 ] ], 69 | "qualities": [ { "id": "COOK", "level": 2 } ], 70 | "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], 71 | "components": [ [ [ "water", 3 ], [ "water_clean", 3 ] ], [ [ "caveyot_pod_sweet", 1 ] ] ] 72 | }, 73 | { 74 | "type": "recipe", 75 | "result": "brew_fruit_wine", 76 | "activity_level": "LIGHT_EXERCISE", 77 | "id_suffix": "dorf", 78 | "result_mult": 3, 79 | "category": "CC_FOOD", 80 | "subcategory": "CSC_FOOD_BREW", 81 | "skill_used": "cooking", 82 | "difficulty": 4, 83 | "time": "40 m", 84 | "batch_time_factors": [ 50, 4 ], 85 | "autolearn": true, 86 | "book_learn": [ [ "brewing_cookbook", 2 ], [ "family_cookbook", 3 ] ], 87 | "qualities": [ { "id": "COOK", "level": 2 } ], 88 | "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], 89 | "components": [ [ [ "water", 3 ], [ "water_clean", 3 ] ], [ [ "caveyot_helmet_plump", 2 ] ] ] 90 | }, 91 | { 92 | "type": "recipe", 93 | "result": "brew_hb_beer", 94 | "activity_level": "LIGHT_EXERCISE", 95 | "id_suffix": "dorf", 96 | "result_mult": 15, 97 | "category": "CC_FOOD", 98 | "subcategory": "CSC_FOOD_BREW", 99 | "skill_used": "cooking", 100 | "difficulty": 5, 101 | "time": "80 m", 102 | "batch_time_factors": [ 50, 4 ], 103 | "autolearn": true, 104 | "book_learn": [ [ "brewing_cookbook", 4 ] ], 105 | "qualities": [ { "id": "COOK", "level": 2 } ], 106 | "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], 107 | "components": [ [ [ "water", 15 ], [ "water_clean", 15 ] ], [ [ "caveyot_wheat_cave", 3 ], [ "caveyot_tails_pig", 3 ] ] ] 108 | }, 109 | { 110 | "type": "recipe", 111 | "result": "molasses", 112 | "activity_level": "LIGHT_EXERCISE", 113 | "id_suffix": "dorf", 114 | "category": "CC_FOOD", 115 | "subcategory": "CSC_FOOD_DRINKS", 116 | "skill_used": "cooking", 117 | "difficulty": 5, 118 | "time": "80 m", 119 | "autolearn": true, 120 | "batch_time_factors": [ 60, 3 ], 121 | "qualities": [ { "id": "CUT", "level": 1 }, { "id": "BOIL", "level": 1 }, { "id": "CONTAIN", "level": 1 } ], 122 | "tools": [ [ [ "surface_heat", 12, "LIST" ] ] ], 123 | "components": [ [ [ "caveyot_pod_sweet", 1 ] ] ] 124 | }, 125 | { 126 | "type": "recipe", 127 | "result": "flour", 128 | "activity_level": "LIGHT_EXERCISE", 129 | "id_suffix": "dorf", 130 | "category": "CC_FOOD", 131 | "subcategory": "CSC_FOOD_OTHER", 132 | "skill_used": "cooking", 133 | "difficulty": 3, 134 | "//": "It doesn't matter which process you use, the limiting factor is removing the powder from the stalk, which is easily ground up afterward.", 135 | "time": "20 m", 136 | "autolearn": true, 137 | "batch_time_factors": [ 83, 3 ], 138 | "flags": [ "BLIND_EASY" ], 139 | "qualities": [ { "id": "CUT", "level": 1 }, { "id": "CONTAIN", "level": 1 } ], 140 | "tools": [ [ [ "rock_quern", -1 ], [ "clay_quern", -1 ], [ "mortar_pestle", -1 ], [ "food_processor", 10 ] ] ], 141 | "components": [ [ [ "caveyot_wheat_cave", 2 ] ] ] 142 | }, 143 | { 144 | "type": "recipe", 145 | "result": "plant_fibre", 146 | "activity_level": "MODERATE_EXERCISE", 147 | "result_mult": 10, 148 | "id_suffix": "dorf", 149 | "category": "CC_OTHER", 150 | "subcategory": "CSC_OTHER_MATERIALS", 151 | "skill_used": "survival", 152 | "difficulty": 2, 153 | "time": "12 m", 154 | "autolearn": true, 155 | "qualities": [ { "id": "CUT", "level": 1 }, { "id": "HAMMER", "level": 1 } ], 156 | "components": [ [ [ "caveyot_tails_pig", 1 ] ] ] 157 | }, 158 | { 159 | "type": "recipe", 160 | "result": "paper", 161 | "activity_level": "MODERATE_EXERCISE", 162 | "id_suffix": "dorf", 163 | "category": "CC_OTHER", 164 | "subcategory": "CSC_OTHER_MATERIALS", 165 | "skill_used": "fabrication", 166 | "skills_required": [ "survival", 5 ], 167 | "difficulty": 6, 168 | "time": "120 m", 169 | "autolearn": true, 170 | "qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CONTAIN", "level": 1 }, { "id": "CUT", "level": 1 } ], 171 | "tools": [ [ [ "sheet_metal", -1 ] ] ], 172 | "components": [ [ [ "caveyot_tails_pig", 4 ] ], [ [ "water", 4 ], [ "water_clean", 4 ] ] ] 173 | }, 174 | { 175 | "type": "recipe", 176 | "result": "cooking_oil", 177 | "activity_level": "LIGHT_EXERCISE", 178 | "id_suffix": "dorf", 179 | "category": "CC_FOOD", 180 | "subcategory": "CSC_FOOD_OTHER", 181 | "skill_used": "cooking", 182 | "difficulty": 5, 183 | "time": "10 m", 184 | "autolearn": true, 185 | "qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "COOK", "level": 2 } ], 186 | "tools": [ 187 | [ [ "rock_quern", -1 ], [ "clay_quern", -1 ], [ "mortar_pestle", -1 ], [ "food_processor", 10 ] ], 188 | [ [ "surface_heat", 10, "LIST" ] ], 189 | [ [ "rag", -1 ] ] 190 | ], 191 | "components": [ [ [ "caveyot_bush_quarry", 1 ] ] ] 192 | } 193 | ] 194 | -------------------------------------------------------------------------------- /Dorf_Life/vehiclegroups.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "vehicle_group", 4 | "id": "caveyot_miners", 5 | "vehicles": [ [ "wheelbarrow", 50 ], [ "welding_cart", 10 ], [ "excavator", 10 ], [ "trencher", 5 ] ] 6 | } 7 | ] 8 | -------------------------------------------------------------------------------- /Dorf_Life/vehicles.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "embark_wagon", 4 | "type": "vehicle", 5 | "name": "Wagon", 6 | "blueprint": [ [ "o---o " ], [ "====|-" ], [ "....# " ], [ "====|-" ], [ "o---o " ] ], 7 | "parts": [ 8 | { "x": 0, "y": 0, "parts": [ "frame_wood#horizontal_2" ] }, 9 | { "x": 0, "y": 0, "parts": [ "seat_wood" ] }, 10 | { "x": 0, "y": 0, "parts": [ "roof_cloth" ] }, 11 | { "x": 0, "y": 1, "parts": [ "frame_wood#horizontal_2" ] }, 12 | { "x": 0, "y": 1, "parts": [ "woodboard#horizontal" ] }, 13 | { "x": 0, "y": 1, "parts": [ "roof_cloth" ] }, 14 | { "x": 0, "y": -1, "parts": [ "frame_wood#horizontal_2" ] }, 15 | { "x": 0, "y": -1, "parts": [ "woodboard#horizontal" ] }, 16 | { "x": 0, "y": -1, "parts": [ "roof_cloth" ] }, 17 | { "x": 0, "y": 2, "parts": [ "frame_wood#horizontal_2" ] }, 18 | { "x": 0, "y": 2, "parts": [ "woodboard#ne" ] }, 19 | { "x": 0, "y": 2, "parts": [ "roof_cloth" ] }, 20 | { "x": 0, "y": 2, "parts": [ "wheel_mount_wood_steerable" ] }, 21 | { "x": 0, "y": 2, "parts": [ "wheel_wood" ] }, 22 | { "x": 0, "y": -2, "parts": [ "frame_wood#horizontal_2" ] }, 23 | { "x": 0, "y": -2, "parts": [ "woodboard#nw" ] }, 24 | { "x": 0, "y": -2, "parts": [ "roof_cloth" ] }, 25 | { "x": 0, "y": -2, "parts": [ "wheel_mount_wood_steerable" ] }, 26 | { "x": 0, "y": -2, "parts": [ "wheel_wood" ] }, 27 | { "x": -1, "y": 0, "parts": [ "frame_wood#vertical" ] }, 28 | { "x": -1, "y": 0, "parts": [ "wooden_aisle#vertical" ] }, 29 | { "x": -1, "y": 0, "parts": [ "roof_cloth" ] }, 30 | { "x": -1, "y": 1, "parts": [ "frame_wood#vertical" ] }, 31 | { "x": -1, "y": 1, "parts": [ "travois" ] }, 32 | { "x": -1, "y": 1, "parts": [ "roof_cloth" ] }, 33 | { "x": -1, "y": -1, "parts": [ "frame_wood#vertical" ] }, 34 | { "x": -1, "y": -1, "parts": [ "travois" ] }, 35 | { "x": -1, "y": -1, "parts": [ "roof_cloth" ] }, 36 | { "x": -1, "y": 2, "parts": [ "frame_wood#vertical" ] }, 37 | { "x": -1, "y": 2, "parts": [ "woodboard#vertical" ] }, 38 | { "x": -1, "y": 2, "parts": [ "roof_cloth" ] }, 39 | { "x": -1, "y": -2, "parts": [ "frame_wood#vertical" ] }, 40 | { "x": -1, "y": -2, "parts": [ "woodboard#vertical" ] }, 41 | { "x": -1, "y": -2, "parts": [ "roof_cloth" ] }, 42 | { "x": -2, "y": 0, "parts": [ "frame_wood#vertical" ] }, 43 | { "x": -2, "y": 0, "parts": [ "wooden_aisle#vertical" ] }, 44 | { "x": -2, "y": 0, "parts": [ "roof_cloth" ] }, 45 | { "x": -2, "y": 1, "parts": [ "frame_wood#vertical" ] }, 46 | { "x": -2, "y": 1, "parts": [ "travois" ] }, 47 | { "x": -2, "y": 1, "parts": [ "roof_cloth" ] }, 48 | { "x": -2, "y": -1, "parts": [ "frame_wood#vertical" ] }, 49 | { "x": -2, "y": -1, "parts": [ "travois" ] }, 50 | { "x": -2, "y": -1, "parts": [ "roof_cloth" ] }, 51 | { "x": -2, "y": 2, "parts": [ "frame_wood#vertical" ] }, 52 | { "x": -2, "y": 2, "parts": [ "woodboard#vertical" ] }, 53 | { "x": -2, "y": 2, "parts": [ "roof_cloth" ] }, 54 | { "x": -2, "y": -2, "parts": [ "frame_wood#vertical" ] }, 55 | { "x": -2, "y": -2, "parts": [ "woodboard#vertical" ] }, 56 | { "x": -2, "y": -2, "parts": [ "roof_cloth" ] }, 57 | { "x": -3, "y": 0, "parts": [ "frame_wood#vertical" ] }, 58 | { "x": -3, "y": 0, "parts": [ "wooden_aisle#vertical" ] }, 59 | { "x": -3, "y": 0, "parts": [ "roof_cloth" ] }, 60 | { "x": -3, "y": 1, "parts": [ "frame_wood#vertical" ] }, 61 | { "x": -3, "y": 1, "parts": [ "travois" ] }, 62 | { "x": -3, "y": 1, "parts": [ "roof_cloth" ] }, 63 | { "x": -3, "y": -1, "parts": [ "frame_wood#vertical" ] }, 64 | { "x": -3, "y": -1, "parts": [ "travois" ] }, 65 | { "x": -3, "y": -1, "parts": [ "roof_cloth" ] }, 66 | { "x": -3, "y": 2, "parts": [ "frame_wood#vertical" ] }, 67 | { "x": -3, "y": 2, "parts": [ "woodboard#vertical" ] }, 68 | { "x": -3, "y": 2, "parts": [ "roof_cloth" ] }, 69 | { "x": -3, "y": -2, "parts": [ "frame_wood#vertical" ] }, 70 | { "x": -3, "y": -2, "parts": [ "woodboard#vertical" ] }, 71 | { "x": -3, "y": -2, "parts": [ "roof_cloth" ] }, 72 | { "x": -4, "y": 0, "parts": [ "frame_wood#horizontal_2" ] }, 73 | { "x": -4, "y": 0, "parts": [ "wooden_aisle#vertical" ] }, 74 | { "x": -4, "y": 0, "parts": [ "roof_cloth" ] }, 75 | { "x": -4, "y": 1, "parts": [ "frame_wood#horizontal_2" ] }, 76 | { "x": -4, "y": 1, "parts": [ "travois" ] }, 77 | { "x": -4, "y": 1, "parts": [ "roof_cloth" ] }, 78 | { "x": -4, "y": -1, "parts": [ "frame_wood#horizontal_2" ] }, 79 | { "x": -4, "y": -1, "parts": [ "travois" ] }, 80 | { "x": -4, "y": -1, "parts": [ "roof_cloth" ] }, 81 | { "x": -4, "y": 2, "parts": [ "frame_wood#horizontal_2" ] }, 82 | { "x": -4, "y": 2, "parts": [ "woodboard#vertical" ] }, 83 | { "x": -4, "y": 2, "parts": [ "roof_cloth" ] }, 84 | { "x": -4, "y": 2, "parts": [ "wheel_mount_wood_steerable" ] }, 85 | { "x": -4, "y": 2, "parts": [ "wheel_wood" ] }, 86 | { "x": -4, "y": -2, "parts": [ "frame_wood#horizontal_2" ] }, 87 | { "x": -4, "y": -2, "parts": [ "woodboard#vertical" ] }, 88 | { "x": -4, "y": -2, "parts": [ "roof_cloth" ] }, 89 | { "x": -4, "y": -2, "parts": [ "wheel_mount_wood_steerable" ] }, 90 | { "x": -4, "y": -2, "parts": [ "wheel_wood" ] }, 91 | { "x": 1, "y": 1, "parts": [ "frame_wood_handle" ] }, 92 | { "x": 1, "y": -1, "parts": [ "frame_wood_handle" ] } 93 | ] 94 | } 95 | ] 96 | -------------------------------------------------------------------------------- /Dorf_Life_BN/cave_terrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "terrain", 4 | "id": "t_shrub_helmet_plump", 5 | "name": "patch of dark truffles", 6 | "description": "A patch of squat, dull purple mushrooms.", 7 | "looks_like": "t_underbrush", 8 | "symbol": "#", 9 | "color": "magenta_green", 10 | "move_cost": 2, 11 | "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT" ], 12 | "transforms_into": "t_shrub_helmet_plump_harvested", 13 | "examine_action": "harvest_ter", 14 | "harvest_by_season": [ 15 | { 16 | "seasons": [ "spring", "summer", "autumn", "winter" ], 17 | "entries": [ { "drop": "caveyot_helmet_plump", "base_num": [ 1, 2 ] }, { "drop": "withered", "base_num": [ 0, 1 ] } ] 18 | } 19 | ], 20 | "bash": { 21 | "str_min": 4, 22 | "str_max": 60, 23 | "sound": "crunch.", 24 | "sound_fail": "brush.", 25 | "ter_set": "t_moss_underground", 26 | "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] 27 | } 28 | }, 29 | { 30 | "type": "terrain", 31 | "id": "t_shrub_helmet_plump_harvested", 32 | "name": "uprooted cavern patch", 33 | "description": "A torn-up patch of bruised pink stalks.", 34 | "looks_like": "t_underbrush_harvested_spring", 35 | "symbol": "#", 36 | "color": "light_red_green", 37 | "move_cost": 2, 38 | "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "HARVESTED" ], 39 | "transforms_into": "t_shrub_helmet_plump", 40 | "examine_action": "harvested_plant", 41 | "bash": { 42 | "str_min": 4, 43 | "str_max": 60, 44 | "sound": "crunch.", 45 | "sound_fail": "brush.", 46 | "ter_set": "t_moss_underground", 47 | "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] 48 | } 49 | }, 50 | { 51 | "type": "terrain", 52 | "id": "t_shrub_pod_sweet", 53 | "name": "patch of vibrant bulbs", 54 | "description": "A patch of bright red plants resembling onions.", 55 | "looks_like": "t_underbrush", 56 | "symbol": "#", 57 | "color": [ "red_green", "red_green", "brown_green", "brown_green" ], 58 | "move_cost": 2, 59 | "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT" ], 60 | "transforms_into": "t_shrub_pod_sweet_harvested", 61 | "examine_action": "harvest_ter", 62 | "harvest_by_season": [ 63 | { 64 | "seasons": [ "spring", "summer" ], 65 | "entries": [ { "drop": "caveyot_pod_sweet", "base_num": [ 1, 3 ] }, { "drop": "withered", "base_num": [ 1, 3 ] } ] 66 | } 67 | ], 68 | "bash": { 69 | "str_min": 4, 70 | "str_max": 60, 71 | "sound": "crunch.", 72 | "sound_fail": "brush.", 73 | "ter_set": "t_moss_underground", 74 | "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] 75 | } 76 | }, 77 | { 78 | "type": "terrain", 79 | "id": "t_shrub_pod_sweet_harvested", 80 | "name": "uprooted cavern patch", 81 | "description": "An uprooted patch of leaves, leaking sweet-smelling sap.", 82 | "looks_like": "t_underbrush_harvested_spring", 83 | "symbol": "#", 84 | "color": "green", 85 | "move_cost": 2, 86 | "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "HARVESTED" ], 87 | "transforms_into": "t_shrub_pod_sweet", 88 | "examine_action": "harvested_plant", 89 | "bash": { 90 | "str_min": 4, 91 | "str_max": 60, 92 | "sound": "crunch.", 93 | "sound_fail": "brush.", 94 | "ter_set": "t_moss_underground", 95 | "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] 96 | } 97 | }, 98 | { 99 | "type": "terrain", 100 | "id": "t_shrub_wheat_cave", 101 | "name": "patch of cloudy brush", 102 | "description": "A patch of upright stalks covered in fluffy, cotton-like clumps.", 103 | "looks_like": "t_underbrush", 104 | "symbol": "#", 105 | "color": [ "brown_green", "white_green", "white_green", "brown_green" ], 106 | "move_cost": 2, 107 | "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT" ], 108 | "transforms_into": "t_shrub_wheat_cave_harvested", 109 | "examine_action": "harvest_ter", 110 | "harvest_by_season": [ 111 | { 112 | "seasons": [ "summer", "autumn" ], 113 | "entries": [ { "drop": "caveyot_wheat_cave", "base_num": [ 1, 3 ] }, { "drop": "straw_pile", "base_num": [ 1, 3 ] } ] 114 | } 115 | ], 116 | "bash": { 117 | "str_min": 4, 118 | "str_max": 60, 119 | "sound": "crunch.", 120 | "sound_fail": "brush.", 121 | "ter_set": "t_moss_underground", 122 | "items": [ { "item": "straw_pile", "count": [ 1, 2 ] } ] 123 | } 124 | }, 125 | { 126 | "type": "terrain", 127 | "id": "t_shrub_wheat_cave_harvested", 128 | "name": "uprooted cavern patch", 129 | "description": "A patch of upright stalks, stripped bare.", 130 | "looks_like": "t_underbrush_harvested_spring", 131 | "symbol": "#", 132 | "color": "green", 133 | "move_cost": 2, 134 | "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "HARVESTED" ], 135 | "transforms_into": "t_shrub_wheat_cave", 136 | "examine_action": "harvested_plant", 137 | "bash": { 138 | "str_min": 4, 139 | "str_max": 60, 140 | "sound": "crunch.", 141 | "sound_fail": "brush.", 142 | "ter_set": "t_moss_underground", 143 | "items": [ { "item": "straw_pile", "count": [ 1, 2 ] } ] 144 | } 145 | }, 146 | { 147 | "type": "terrain", 148 | "id": "t_shrub_tails_pig", 149 | "name": "patch of spiral stalks", 150 | "description": "A patch of twisting, greenish stalks with short leaves.", 151 | "looks_like": "t_underbrush", 152 | "symbol": "#", 153 | "color": [ "green", "light_green", "light_green", "green" ], 154 | "move_cost": 2, 155 | "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT" ], 156 | "transforms_into": "t_shrub_tails_pig_harvested", 157 | "examine_action": "harvest_ter", 158 | "harvest_by_season": [ 159 | { 160 | "seasons": [ "summer", "autumn" ], 161 | "entries": [ { "drop": "caveyot_tails_pig", "base_num": [ 1, 3 ] }, { "drop": "plant_fibre", "base_num": [ 1, 4 ] } ] 162 | } 163 | ], 164 | "bash": { 165 | "str_min": 4, 166 | "str_max": 60, 167 | "sound": "crunch.", 168 | "sound_fail": "brush.", 169 | "ter_set": "t_moss_underground", 170 | "items": [ { "item": "plant_fibre", "count": [ 1, 4 ] } ] 171 | } 172 | }, 173 | { 174 | "type": "terrain", 175 | "id": "t_shrub_tails_pig_harvested", 176 | "name": "uprooted cavern patch", 177 | "description": "A thin patch of slightly-curled fungal shoots.", 178 | "looks_like": "t_underbrush_harvested_spring", 179 | "symbol": "#", 180 | "color": "green", 181 | "move_cost": 2, 182 | "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "HARVESTED" ], 183 | "transforms_into": "t_shrub_tails_pig", 184 | "examine_action": "harvested_plant", 185 | "bash": { 186 | "str_min": 4, 187 | "str_max": 60, 188 | "sound": "crunch.", 189 | "sound_fail": "brush.", 190 | "ter_set": "t_moss_underground", 191 | "items": [ { "item": "plant_fibre", "count": [ 1, 4 ] } ] 192 | } 193 | }, 194 | { 195 | "type": "terrain", 196 | "id": "t_shrub_bush_quarry", 197 | "name": "patch of hardened bramble", 198 | "description": "A patch of tangled, woody bramble laden with small growths.", 199 | "looks_like": "t_underbrush", 200 | "symbol": "#", 201 | "color": [ "green", "green", "green", "brown" ], 202 | "move_cost": 2, 203 | "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "SHARP" ], 204 | "transforms_into": "t_shrub_bush_quarry_harvested", 205 | "examine_action": "harvest_ter", 206 | "harvest_by_season": [ 207 | { 208 | "seasons": [ "spring", "summer", "autumn", "winter" ], 209 | "entries": [ 210 | { "drop": "caveyot_bush_quarry", "base_num": [ 1, 3 ] }, 211 | { "drop": "stick", "base_num": [ 2, 3 ] }, 212 | { "drop": "stick_long", "base_num": [ 1, 2 ] }, 213 | { "drop": "log", "base_num": [ 0, 2 ] } 214 | ] 215 | } 216 | ], 217 | "bash": { 218 | "str_min": 4, 219 | "str_max": 60, 220 | "sound": "crunch.", 221 | "sound_fail": "brush.", 222 | "ter_set": "t_moss_underground", 223 | "items": [ { "item": "stick", "count": [ 0, 2 ] }, { "item": "splinter", "count": [ 1, 4 ] } ] 224 | } 225 | }, 226 | { 227 | "type": "terrain", 228 | "id": "t_shrub_bush_quarry_harvested", 229 | "name": "uprooted cavern patch", 230 | "description": "A patch of broken, tangled bramble stripped of its bounty.", 231 | "looks_like": "t_underbrush_harvested_spring", 232 | "symbol": "#", 233 | "color": "brown", 234 | "move_cost": 2, 235 | "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "HARVESTED", "SHARP" ], 236 | "transforms_into": "t_shrub_bush_quarry", 237 | "examine_action": "harvested_plant", 238 | "bash": { 239 | "str_min": 4, 240 | "str_max": 60, 241 | "sound": "crunch.", 242 | "sound_fail": "brush.", 243 | "ter_set": "t_moss_underground", 244 | "items": [ { "item": "stick", "count": [ 0, 2 ] }, { "item": "splinter", "count": [ 1, 4 ] } ] 245 | } 246 | }, 247 | { 248 | "type": "terrain", 249 | "id": "t_breach_stone_fake", 250 | "name": "smoothed rock?", 251 | "description": "A block of stone that's been smoothed and shaped, commonly granite or marble. Something seems suspicious here...", 252 | "symbol": "LINE_OXOX", 253 | "looks_like": "t_rock_smooth", 254 | "color": "white", 255 | "move_cost": 0, 256 | "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "CONNECT_TO_WALL", "MINEABLE", "BLOCK_WIND" ], 257 | "roof": "t_rock_floor_no_roof", 258 | "connects_to": "WALL", 259 | "bash": { 260 | "str_min": 120, 261 | "str_max": 400, 262 | "sound": "crash!", 263 | "sound_fail": "a hollow-sounding whump!", 264 | "ter_set": "t_rock_floor", 265 | "items": [ { "item": "rock", "count": [ 6, 12 ] }, { "item": "material_rocksalt", "count": [ 0, 1 ], "prob": 10 } ], 266 | "//": "Stone obstacles have double the expected reduction but lower destroy_threshold in return", 267 | "ranged": { "reduction": [ 240, 240 ], "destroy_threshold": 240 } 268 | } 269 | }, 270 | { 271 | "type": "terrain", 272 | "id": "t_breach_stone_fake_lowered", 273 | "name": "rock floor?", 274 | "description": "A relatively flat area of rock and stone. Wasn't there a wall here previously?", 275 | "looks_like": "t_rock_floor", 276 | "symbol": ".", 277 | "color": "light_gray", 278 | "move_cost": 2, 279 | "roof": "t_flat_roof", 280 | "flags": [ "TRANSPARENT", "INDOORS", "COLLAPSES", "SUPPORTS_ROOF", "FLAT", "ROAD" ], 281 | "bash": { 282 | "str_min": 120, 283 | "str_max": 400, 284 | "sound": "crash!", 285 | "sound_fail": "whump!", 286 | "ter_set": "t_rock_floor", 287 | "items": [ { "item": "rock", "count": [ 6, 12 ] }, { "item": "material_rocksalt", "count": [ 0, 1 ], "prob": 10 } ] 288 | } 289 | }, 290 | { 291 | "type": "terrain", 292 | "id": "t_breach_lever", 293 | "name": "stone lever", 294 | "description": "A heavy lever carved out of and set into the surrounding natural stone. Wonder what it does...", 295 | "looks_like": "t_gates_control_concrete", 296 | "symbol": "6", 297 | "color": "cyan_red", 298 | "move_cost": 0, 299 | "flags": [ "NOITEM", "INDOORS", "PERMEABLE" ], 300 | "examine_action": "controls_gate" 301 | }, 302 | { 303 | "type": "terrain", 304 | "id": "t_breach_concrete_fake_c", 305 | "name": "reinforced concrete wall?", 306 | "description": "An extremely resilient wall, filled with concrete and rebar. Something seems suspicious here...", 307 | "looks_like": "t_strconc_wall", 308 | "symbol": "LINE_OXOX", 309 | "color": "light_gray", 310 | "move_cost": 0, 311 | "flags": [ "NOITEM", "SUPPORTS_ROOF", "DOOR", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], 312 | "open": "t_breach_concrete_fake_o", 313 | "connects_to": "WALL", 314 | "bash": { 315 | "str_min": 120, 316 | "str_max": 460, 317 | "sound": "scrrrash!", 318 | "sound_fail": "a hollow-sounding whump!", 319 | "ter_set": "t_strconc_floor", 320 | "items": [ { "item": "rock", "count": [ 10, 22 ] } ], 321 | "//": "Stone obstacles have double the expected reduction but lower destroy_threshold in return", 322 | "ranged": { "reduction": [ 240, 240 ], "destroy_threshold": 240 } 323 | } 324 | }, 325 | { 326 | "type": "terrain", 327 | "id": "t_breach_concrete_fake_o", 328 | "name": "reinforced concrete floor?", 329 | "description": "Extremely resilient floor made from carefully placed rebar and poured concrete. Turns out it was a secret door all along.", 330 | "looks_like": "t_strconc_floor", 331 | "symbol": ".", 332 | "color": "cyan", 333 | "move_cost": 2, 334 | "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "ROAD" ], 335 | "close": "t_breach_concrete_fake_c", 336 | "bash": { 337 | "str_min": 120, 338 | "str_max": 460, 339 | "sound": "scrrrash!", 340 | "sound_fail": "whump!", 341 | "ter_set": "t_strconc_floor", 342 | "items": [ { "item": "rock", "count": [ 10, 22 ] } ] 343 | } 344 | } 345 | ] 346 | -------------------------------------------------------------------------------- /Dorf_Life_BN/gates.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "gate", 4 | "id": "t_breach_lever", 5 | "door": "t_breach_stone_fake", 6 | "floor": "t_breach_stone_fake_lowered", 7 | "walls": [ "t_rock_smooth" ], 8 | "messages": { 9 | "pull": "You throw the lever...", 10 | "open": "The stones lower and open the way!", 11 | "close": "The stones rise back into place!", 12 | "fail": "The stones fail to move!" 13 | }, 14 | "moves": 2000, 15 | "bashing_damage": 200 16 | } 17 | ] 18 | -------------------------------------------------------------------------------- /Dorf_Life_BN/itemgroups.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "item_group", 4 | "subtype": "collection", 5 | "id": "caveyot_miners", 6 | "entries": [ 7 | { "item": "corpse", "damage": 3 }, 8 | { "group": "clothing_work_set", "damage": [ 1, 4 ] }, 9 | { 10 | "distribution": [ 11 | { "item": "backpack", "prob": 40, "damage": [ 1, 4 ] }, 12 | { "item": "slingpack", "prob": 15, "damage": [ 1, 4 ] }, 13 | { "item": "briefcase", "prob": 5, "damage": [ 1, 4 ] }, 14 | { "item": "backpack_leather", "prob": 20, "damage": [ 1, 4 ] } 15 | ] 16 | }, 17 | { "group": "caveyot_mine_tools", "prob": 50, "count": [ 1, 2 ] } 18 | ] 19 | }, 20 | { 21 | "type": "item_group", 22 | "subtype": "collection", 23 | "id": "caveyot_survivors", 24 | "entries": [ 25 | { "item": "corpse", "damage": 3 }, 26 | { "group": "mon_zombie_survivor_death_drops" }, 27 | { "group": "caveyot_mine_tools", "prob": 50 } 28 | ] 29 | }, 30 | { 31 | "type": "item_group", 32 | "id": "caveyot_mine_tools", 33 | "items": [ 34 | [ "water_clean", 90 ], 35 | [ "1st_aid", 35 ], 36 | [ "rope_30", 35 ], 37 | [ "chain", 20 ], 38 | { "group": "ammo_any_batteries", "prob": 50 }, 39 | { "item": "flashlight", "prob": 40, "charges": [ 0, 300 ] }, 40 | { "item": "heavy_flashlight", "prob": 10, "charges": [ 0, 300 ] }, 41 | [ "pickaxe", 1 ], 42 | { "item": "jackhammer", "prob": 2, "charges": [ 0, 1200 ] }, 43 | { "item": "elec_jackhammer", "prob": 1, "charges": [ 0, 7920 ] }, 44 | [ "dynamite", 5 ], 45 | { "group": "charged_UPS", "prob": 5 }, 46 | [ "bio_tools", 10 ], 47 | [ "bio_flashlight", 10 ], 48 | [ "bio_lighter", 10 ], 49 | [ "bio_magnet", 10 ], 50 | [ "bio_resonator", 10 ], 51 | [ "bio_hydraulics", 10 ], 52 | [ "bio_weight", 12 ], 53 | [ "bio_shock_absorber", 10 ], 54 | [ "jerrycan", 10 ], 55 | [ "jerrycan_big", 10 ], 56 | { "item": "gasoline_lantern", "prob": 5, "charges": [ 0, 500 ] }, 57 | { "item": "electric_lantern", "prob": 8, "charges": [ 0, 100 ] }, 58 | { "item": "oil_lamp", "prob": 5, "charges": [ 0, 750 ] }, 59 | [ "lamp_oil", 5 ], 60 | [ "shovel", 10 ], 61 | [ "e_tool", 5 ], 62 | [ "bucket", 10 ], 63 | [ "grapnel", 1 ], 64 | [ "toolbox", 1 ], 65 | [ "tool_anfo_charge", 1 ], 66 | [ "remotevehcontrol", 10 ] 67 | ] 68 | }, 69 | { 70 | "type": "item_group", 71 | "id": "cavern_ruins", 72 | "//": "Construction litter for non-anomalous ruins, no artifacts as getting a fix on tools and clothes for any given time period can be difficult.", 73 | "items": [ 74 | { "item": "stick_long", "prob": 10, "count": [ 1, 2 ] }, 75 | { "item": "stick", "prob": 10, "count": [ 1, 4 ] }, 76 | { "item": "birchbark", "prob": 20, "count": [ 2, 8 ] }, 77 | { "item": "straw_pile", "prob": 10, "count": [ 1, 10 ] }, 78 | { "item": "leather", "prob": 5, "count": [ 1, 10 ] } 79 | ] 80 | }, 81 | { 82 | "type": "item_group", 83 | "id": "cavern_cabin", 84 | "subtype": "collection", 85 | "magazine": 100, 86 | "ammo": 100, 87 | "entries": [ 88 | { "item": "improvised_grenade", "prob": 33, "count": [ 2, 6 ] }, 89 | { "item": "rope_30", "prob": 33, "count": [ 1, 4 ] }, 90 | { 91 | "distribution": [ 92 | { "item": "steel_lump", "prob": 1, "count": [ 1, 5 ] }, 93 | { "item": "lead", "prob": 1, "count": [ 1, 5 ] }, 94 | { "item": "silver_small", "prob": 1, "count": [ 1, 5 ] }, 95 | { "item": "bismuth", "prob": 1, "count": [ 1, 5 ] } 96 | ], 97 | "prob": 50 98 | }, 99 | { 100 | "distribution": [ { "item": "arrow_wood", "prob": 1, "count": [ 1, 3 ] }, { "item": "throwing_knife", "prob": 1, "count": [ 1, 3 ] } ], 101 | "prob": 50 102 | }, 103 | { "group": "drugs_pharmacy", "prob": 67, "count": [ 1, 2 ] }, 104 | { "item": "torch", "prob": 10, "count": [ 2, 5 ] } 105 | ] 106 | }, 107 | { 108 | "type": "item_group", 109 | "subtype": "collection", 110 | "id": "cavern_shrine", 111 | "entries": [ 112 | { "item": "bone_human", "count": [ 4, 9 ] }, 113 | { 114 | "distribution": [ 115 | { 116 | "collection": [ 117 | { 118 | "distribution": [ { "item": "longshirt", "prob": 50, "damage": [ 1, 4 ] }, { "item": "tunic", "prob": 50, "damage": [ 1, 4 ] } ] 119 | }, 120 | { "item": "breeches", "damage": [ 1, 4 ] } 121 | ], 122 | "prob": 50 123 | }, 124 | { "item": "dress", "prob": 25, "damage": [ 1, 4 ] }, 125 | { "item": "robe", "prob": 25, "damage": [ 1, 4 ] } 126 | ] 127 | }, 128 | { 129 | "distribution": [ { "item": "cloak_wool", "prob": 75, "damage": [ 1, 4 ] }, { "item": "greatcoat", "prob": 25, "damage": [ 1, 4 ] } ], 130 | "prob": 50 131 | }, 132 | { 133 | "distribution": [ 134 | { "item": "armor_larmor", "prob": 25, "damage": [ 1, 4 ] }, 135 | { "item": "chainmail_suit", "prob": 25, "damage": [ 1, 4 ] }, 136 | { "item": "cuirass_lightplate", "prob": 50, "damage": [ 1, 4 ] } 137 | ], 138 | "prob": 50 139 | }, 140 | { 141 | "distribution": [ 142 | { "item": "helmet_larmor", "prob": 25, "damage": [ 1, 4 ] }, 143 | { "item": "helmet_barbute", "prob": 75, "damage": [ 1, 4 ] } 144 | ], 145 | "prob": 80 146 | }, 147 | { 148 | "distribution": [ 149 | { "item": "pickaxe", "prob": 10 }, 150 | { "item": "battleaxe", "prob": 15 }, 151 | { "item": "warhammer", "prob": 15 }, 152 | { "item": "arming_sword", "prob": 5 }, 153 | { "item": "spear_steel", "prob": 25 }, 154 | { "item": "mace", "prob": 5 }, 155 | { 156 | "collection": [ { "item": "crossbow" }, { "item": "quiver", "damage": [ 1, 4 ] }, { "item": "bolt_steel_bodkin", "count": [ 1, 3 ] } ], 157 | "prob": 25 158 | } 159 | ], 160 | "prob": 90 161 | } 162 | ] 163 | }, 164 | { 165 | "type": "item_group", 166 | "id": "cavern_dungeon", 167 | "subtype": "collection", 168 | "entries": [ { "group": "cavern_dungeon_2", "count": [ 1, 3 ] }, { "group": "cavern_dungeon_1", "prob": 50, "count": [ 1, 4 ] } ] 169 | }, 170 | { 171 | "type": "item_group", 172 | "id": "cavern_dungeon_1", 173 | "items": [ 174 | { "item": "wheat", "prob": 40, "count": [ 3, 6 ] }, 175 | { "item": "coal_lump", "prob": 15 }, 176 | { "item": "copper", "prob": 15, "count": [ 1, 4 ] }, 177 | { "item": "seed_sugar_beet", "prob": 10 }, 178 | { "item": "seed_blackberries", "prob": 10 }, 179 | { "item": "seed_pumpkin", "prob": 10 }, 180 | { "item": "steel_lump", "prob": 10, "count": [ 1, 4 ] }, 181 | { "item": "bucket", "prob": 10 }, 182 | { "item": "gold_small", "prob": 5, "count": [ 1, 4 ] } 183 | ] 184 | }, 185 | { 186 | "type": "item_group", 187 | "id": "cavern_dungeon_2", 188 | "items": [ 189 | { "item": "bone", "prob": 10, "count": [ 1, 8 ] }, 190 | { "item": "chem_black_powder", "prob": 10, "count": [ 1, 2 ] }, 191 | { "item": "slime_scrap", "prob": 10, "count": [ 1, 4 ] }, 192 | { "item": "string_36", "prob": 10, "count": [ 1, 8 ] } 193 | ] 194 | }, 195 | { 196 | "type": "item_group", 197 | "subtype": "collection", 198 | "id": "caveyot_forge_tools", 199 | "entries": [ 200 | { "item": "crucible_clay", "prob": 90 }, 201 | { "item": "tongs", "prob": 80 }, 202 | { "item": "hammer", "prob": 70 }, 203 | { "item": "chisel", "prob": 60 }, 204 | { "item": "swage", "prob": 50 } 205 | ] 206 | }, 207 | { 208 | "type": "item_group", 209 | "id": "caveyot_minetown_general", 210 | "//": "Random mishmash of shit.", 211 | "subtype": "distribution", 212 | "items": [ 213 | { "group": "museum_melee", "prob": 10 }, 214 | { "group": "museum_armor", "prob": 10 }, 215 | { "group": "cannedfood", "prob": 20 }, 216 | { "group": "caveyot_minetown_tools", "prob": 8 }, 217 | { "group": "drugs_pharmacy", "prob": 16 }, 218 | [ "survnote", 16 ], 219 | { "group": "mansion_books", "prob": 4 }, 220 | { "group": "homeguns", "prob": 4 }, 221 | { "group": "jewelry_front", "prob": 12 } 222 | ] 223 | }, 224 | { 225 | "type": "item_group", 226 | "id": "caveyot_minetown_tools", 227 | "//": "Real rough mimicry of tool selection in Nethack, excluding stuff with no obvious vanilla counterpart.", 228 | "items": [ 229 | [ "blindfold", 50 ], 230 | [ "glasses_reading", 5 ], 231 | [ "towel", 50 ], 232 | [ "rope_6", 65 ], 233 | [ "minifreezer", 5 ], 234 | [ "waterskin", 5 ], 235 | [ "bag_canvas", 35 ], 236 | [ "trumpet", 4 ], 237 | [ "flute", 4 ], 238 | [ "cow_bell", 2 ], 239 | [ "dog_whistle", 100 ], 240 | [ "gasoline_lantern", 30 ], 241 | [ "atomic_lamp", 15 ], 242 | [ "oil_lamp", 45 ], 243 | [ "candle", 25 ], 244 | [ "cash_card", 15 ], 245 | [ "picklocks", 60 ], 246 | [ "grapnel", 20 ], 247 | [ "pickaxe", 5 ], 248 | [ "camera", 15 ], 249 | [ "permanent_marker", 15 ], 250 | [ "mirror", 45 ], 251 | [ "stethoscope", 25 ], 252 | [ "can_sealer", 15 ] 253 | ] 254 | }, 255 | { 256 | "type": "item_group", 257 | "id": "caveyot_minetown_wands", 258 | "//": "Garbage-tier hack for Nethack wand shop, using guns in place of wands.", 259 | "subtype": "distribution", 260 | "magazine": 100, 261 | "ammo": 75, 262 | "items": [ { "group": "homeguns", "prob": 90 }, [ "gloves_leather", 5 ], [ "jedi_cloak", 5 ] ] 263 | }, 264 | { 265 | "type": "item_group", 266 | "id": "caveyot_minetown_food", 267 | "//": "Mimics food spawns in Nethack delicatessens, except food spawns are more CDDA-flavored instead of Nethack-specific.", 268 | "subtype": "distribution", 269 | "items": [ 270 | { "group": "cannedfood", "prob": 83 }, 271 | { "item": "juice", "prob": 5, "charges": 2, "container-item": "can_drink" }, 272 | [ "water_clean", 5 ], 273 | [ "beer", 4 ], 274 | [ "minifreezer", 3 ] 275 | ] 276 | }, 277 | { 278 | "type": "item_group", 279 | "id": "caveyot_minetown_light", 280 | "//": "Mimics item spawns in Izchak's light shop, Nethack.", 281 | "items": [ [ "candle", 78 ], [ "oil_lamp", 9 ], [ "gasoline_lantern", 5 ], [ "lamp_oil", 5 ], [ "atomic_lamp", 3 ] ] 282 | } 283 | ] 284 | -------------------------------------------------------------------------------- /Dorf_Life_BN/items.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "COMESTIBLE", 4 | "id": "caveyot_helmet_plump", 5 | "name": { "str": "dark truffle" }, 6 | "weight": "120 g", 7 | "color": "magenta", 8 | "spoils_in": "270 days", 9 | "comestible_type": "FOOD", 10 | "symbol": "%", 11 | "quench": -4, 12 | "healthy": -1, 13 | "calories": 125, 14 | "description": "A mushroom vaguely resembling a black truffle, with a noticeable purple coloration instead. It seems to be edible raw, albeit bittersweet, and might be tastier cooked.", 15 | "price": "1 USD", 16 | "material": "mushroom", 17 | "volume": "250 ml", 18 | "flags": [ "EATEN_HOT", "NUTRIENT_OVERRIDE" ], 19 | "fun": -1, 20 | "charges": 4, 21 | "vitamins": [ [ "vitC", 4 ], [ "iron", 7 ] ] 22 | }, 23 | { 24 | "type": "COMESTIBLE", 25 | "id": "caveyot_helmet_plump_cooked", 26 | "name": { "str": "cooked dark truffle" }, 27 | "weight": "120 g", 28 | "color": "magenta", 29 | "spoils_in": "180 days", 30 | "comestible_type": "FOOD", 31 | "symbol": "%", 32 | "quench": 2, 33 | "healthy": -1, 34 | "calories": 200, 35 | "description": "A mushroom vaguely resembling a black truffle, with a noticeable purple coloration instead. Much better now that it's been cooked.", 36 | "price": "2 USD", 37 | "material": "mushroom", 38 | "volume": "250 ml", 39 | "flags": [ "EATEN_HOT", "NUTRIENT_OVERRIDE" ] 40 | }, 41 | { 42 | "type": "COMESTIBLE", 43 | "id": "caveyot_pod_sweet", 44 | "name": { "str": "vibrant bulb" }, 45 | "weight": "115 g", 46 | "color": "red", 47 | "spoils_in": "360 days", 48 | "comestible_type": "FOOD", 49 | "symbol": "%", 50 | "description": "A bright red bulb resembling an onion, far more scarlet than the purple of any earthly red onion. Though it gives off a sweet aroma, its layers are tough and difficult to peel, making it inedible as-is.", 51 | "price": "150 cent", 52 | "material": [ "mushroom", "wood" ], 53 | "volume": "250 ml", 54 | "charges": 4 55 | }, 56 | { 57 | "type": "COMESTIBLE", 58 | "id": "caveyot_wheat_cave", 59 | "name": { "str": "cloudy brush", "str_pl": "cloudy brushes" }, 60 | "weight": "120 g", 61 | "color": "white", 62 | "comestible_type": "FOOD", 63 | "symbol": ",", 64 | "description": "A long stalk covered with fluffy clumps of powdery growth, vaguely resembling cotton bolls. The resemblance is merely visual, as it simply crumbles into powder if pulled apart.", 65 | "price": "300 cent", 66 | "material": [ "mushroom", "powder" ], 67 | "volume": "250 ml", 68 | "charges": 4 69 | }, 70 | { 71 | "type": "COMESTIBLE", 72 | "id": "caveyot_tails_pig", 73 | "name": { "str": "spiral stalk" }, 74 | "weight": "120 g", 75 | "color": "light_gray", 76 | "comestible_type": "FOOD", 77 | "symbol": ",", 78 | "description": "A stalk of plantlike growth that naturally curls in on itself in a spiral, covered with short, thin leaves. Every part of the \"plant\" is tough and stringy.", 79 | "price": "400 cent", 80 | "material": [ "mushroom", "powder" ], 81 | "volume": "250 ml", 82 | "charges": 4 83 | }, 84 | { 85 | "type": "COMESTIBLE", 86 | "id": "caveyot_bush_quarry", 87 | "name": { "str": "hardened bramble branch", "str_pl": "hardened bramble branches" }, 88 | "weight": "200 g", 89 | "color": "brown", 90 | "comestible_type": "FOOD", 91 | "symbol": "/", 92 | "description": "A woody, tangled branch covered in pods resembling overgrown pecans. Some of the growths are smaller, softer, and greener in color, but the whole thing seems inedible and useless as-is.", 93 | "price": "2 USD", 94 | "material": "wood", 95 | "volume": "250 ml", 96 | "charges": 4 97 | }, 98 | { 99 | "type": "COMESTIBLE", 100 | "id": "caveyot_bush_quarry_cooked", 101 | "name": { "str_sp": "roasted bramble nuts" }, 102 | "looks_like": "hickory_nut_roasted", 103 | "weight": "120 g", 104 | "color": "brown", 105 | "spoils_in": "270 days", 106 | "comestible_type": "FOOD", 107 | "symbol": "%", 108 | "quench": -4, 109 | "calories": 400, 110 | "description": "A handful of pods stripped from a strange branch, roasted in their shells due to how rock-hard they were. Doing so softened and split open the shells, leaving nuts that seem to have been fried in the pod's own oil.", 111 | "price": "150 cent", 112 | "material": [ "mushroom", "nut" ], 113 | "volume": "250 ml", 114 | "charges": 4, 115 | "flags": [ "EATEN_HOT", "NUTRIENT_OVERRIDE" ], 116 | "fun": 2, 117 | "vitamins": [ [ "calcium", 2 ], [ "iron", 4 ] ] 118 | }, 119 | { 120 | "id": "seed_caveyot_helmet_plump", 121 | "copy-from": "seed", 122 | "type": "COMESTIBLE", 123 | "name": { "str_sp": "dark truffle spores" }, 124 | "description": "Some dark truffle spores. You could probably \"plant\" this, but it would require tree trunks or dedicated mushroom racks for it to grow.", 125 | "seed_data": { "plant_name": "dark truffle", "fruit": "caveyot_helmet_plump", "byproducts": [ "withered" ], "required_terrain_flag": "MUSHROOM_PLANTABLE", "grow": "14 days" }, 126 | "extend": { "flags": [ "CAN_PLANT_UNDERGROUND" ] } 127 | }, 128 | { 129 | "id": "seed_caveyot_pod_sweet", 130 | "copy-from": "seed", 131 | "type": "COMESTIBLE", 132 | "name": { "str_sp": "vibrant bulb spores" }, 133 | "description": "Some vibrant bulb spores. You could probably \"plant\" this, but it would require tree trunks or dedicated mushroom racks for it to grow.", 134 | "seed_data": { "plant_name": "vibrant bulb", "fruit": "caveyot_pod_sweet", "byproducts": [ "withered" ], "required_terrain_flag": "MUSHROOM_PLANTABLE", "grow": "14 days" }, 135 | "extend": { "flags": [ "CAN_PLANT_UNDERGROUND" ] } 136 | }, 137 | { 138 | "id": "seed_caveyot_wheat_cave", 139 | "copy-from": "seed", 140 | "type": "COMESTIBLE", 141 | "name": { "str_sp": "cloudy brush spores" }, 142 | "description": "Some cloudy brush spores. You could probably \"plant\" this, but it would require tree trunks or dedicated mushroom racks for it to grow.", 143 | "seed_data": { "plant_name": "cloudy brush", "fruit": "caveyot_wheat_cave", "byproducts": [ "straw_pile" ], "required_terrain_flag": "MUSHROOM_PLANTABLE", "grow": "14 days" }, 144 | "extend": { "flags": [ "CAN_PLANT_UNDERGROUND" ] } 145 | }, 146 | { 147 | "id": "seed_caveyot_tails_pig", 148 | "copy-from": "seed", 149 | "type": "COMESTIBLE", 150 | "name": { "str_sp": "spiral stalk spores" }, 151 | "description": "Some spiral stalk spores. You could probably \"plant\" this, but it would require tree trunks or dedicated mushroom racks for it to grow.", 152 | "seed_data": { "plant_name": "spiral stalk", "fruit": "caveyot_tails_pig", "byproducts": [ "withered" ], "required_terrain_flag": "MUSHROOM_PLANTABLE", "grow": "14 days" }, 153 | "extend": { "flags": [ "CAN_PLANT_UNDERGROUND" ] } 154 | }, 155 | { 156 | "id": "seed_caveyot_bush_quarry", 157 | "copy-from": "seed", 158 | "type": "COMESTIBLE", 159 | "name": { "str_sp": "hardened bramble spores" }, 160 | "description": "Some hardened bramble spores. You could probably \"plant\" this, but it would require tree trunks or dedicated mushroom racks for it to grow.", 161 | "seed_data": { "plant_name": "hardened bramble", "fruit": "caveyot_bush_quarry", "byproducts": [ "stick" ], "required_terrain_flag": "MUSHROOM_PLANTABLE", "grow": "14 days" }, 162 | "extend": { "flags": [ "CAN_PLANT_UNDERGROUND" ] } 163 | } 164 | ] 165 | -------------------------------------------------------------------------------- /Dorf_Life_BN/mapgen_finales.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "mapgen", 4 | "//": "Minetown, alley variant, from Nethack. Slapped right in the middle of our perfectly normal cave system.", 5 | "om_terrain": [ [ "breach_finale_1", "breach_finale_2", "breach_finale_3" ] ], 6 | "method": "json", 7 | "weight": 100, 8 | "object": { 9 | "rows": [ 10 | "###!!??..........................................................??!!###", 11 | "##!!??............................................................??!!##", 12 | "##!??..............................................................??!##", 13 | "##!??..............................................................??!##", 14 | "##!??...............|||||||||||||||||||||||||||||||||..............??!##", 15 | "##!??...............|_______________________________|..............??!##", 16 | "##!??...............|_||||____|||||_||||+||__|||||__|..............??!##", 17 | "##!??...............|_|__||||_|___|_|__|__|__|___|__|..............??!##", 18 | "##!??...............|_|__|__|_|_A_|_|__|__|__|___|__|..............??!##", 19 | "##!??...............|_|+||__|_|___|_||||||||_|___|__|..............??!##", 20 | "##!??...............|____|__|_|___|____|___|_|||||__|..............??!##", 21 | "##!??......<<.......+_{__||||_|||||____|___|________+..............??!##", 22 | "##!??......<<.......+__________|__||||_|||||__|||||_+..............??!##", 23 | "##!??...............|____||||__|__|__|________|___|_|..............??!##", 24 | "##!??...............|_||+|__|_|||||__|||||____|___|_|..............??!##", 25 | "##!??...............|_|__|__|_|___||||___||||_|||||_|..............??!##", 26 | "##!??...............|_|__||||_|___|__|___|__|_______|..............??!##", 27 | "##!??...............|_|__|____|___|__|___|__|_______|..............??!##", 28 | "##!??...............|_||||____|||||+|||||||||_____{_|..............??!##", 29 | "##!??...............|_______________________________|..............??!##", 30 | "##!??...............|||||||||||||||||||||||||||||||||..............??!##", 31 | "##!??..............................................................??!##", 32 | "##!!??............................................................??!!##", 33 | "###!!??..........................................................??!!###" 34 | ], 35 | "palettes": [ "breach" ], 36 | "terrain": { "|": "t_rock_smooth", "{": "t_water_pump", "+": "t_door_c", "A": "t_rock_floor" }, 37 | "furniture": { "A": "f_slab" }, 38 | "place_nested": [ 39 | { "chunks": [ [ "null", 50 ], [ "breach_spawn_standard", 50 ] ], "x": [ 9, 10 ], "y": [ 9, 10 ] }, 40 | { "chunks": [ [ "null", 75 ], [ "breach_chunk_1", 25 ] ], "x": [ 1, 15 ], "y": [ 0, 19 ], "repeat": 4 }, 41 | { "chunks": [ [ "null", 50 ], [ "breach_spawn_standard", 50 ] ], "x": [ 58, 59 ], "y": [ 9, 10 ] }, 42 | { "chunks": [ [ "null", 75 ], [ "breach_chunk_1", 25 ] ], "x": [ 53, 62 ], "y": [ 0, 19 ], "repeat": 4 }, 43 | { "chunks": [ [ "breach_finale_1_door", 1 ] ], "x": [ 26, 27 ], "y": 11 }, 44 | { "chunks": [ [ "breach_finale_1_door", 1 ] ], "x": [ 26, 27 ], "y": 13 }, 45 | { "chunks": [ [ "breach_finale_1_door", 1 ] ], "x": 31, "y": [ 12, 13 ] }, 46 | { "chunks": [ [ "breach_finale_1_door", 1 ] ], "x": 30, "y": [ 15, 17 ] }, 47 | { "chunks": [ [ "breach_finale_1_door", 1 ] ], "x": 34, "y": [ 7, 10 ] }, 48 | { "chunks": [ [ "breach_finale_1_door", 1 ] ], "x": 36, "y": [ 7, 8 ] }, 49 | { "chunks": [ [ "breach_finale_1_door", 1 ] ], "x": [ 35, 36 ], "y": 12 }, 50 | { "chunks": [ [ "breach_finale_1_door", 1 ] ], "x": 39, "y": [ 10, 11 ] }, 51 | { "chunks": [ [ "breach_finale_1_door", 1 ] ], "x": [ 38, 40 ], "y": 14 }, 52 | { "chunks": [ [ "breach_finale_1_door", 1 ] ], "x": [ 46, 47 ], "y": 10 }, 53 | { "chunks": [ [ "breach_finale_1_door", 1 ] ], "x": 46, "y": [ 13, 14 ] }, 54 | { "chunks": [ [ "breach_finale_1_door", 1 ] ], "x": 44, "y": [ 16, 17 ] } 55 | ], 56 | "place_loot": [ 57 | { "group": "caveyot_minetown_general", "x": [ 31, 33 ], "y": [ 15, 17 ], "chance": 90, "repeat": 12 }, 58 | { "group": "caveyot_minetown_tools", "x": [ 26, 27 ], "y": [ 8, 10 ], "chance": 90, "repeat": 8 }, 59 | { "group": "caveyot_minetown_wands", "x": [ 40, 42 ], "y": [ 10, 11 ], "chance": 90, "repeat": 8 }, 60 | { "group": "caveyot_minetown_food", "x": 47, "y": [ 13, 14 ], "chance": 90, "repeat": 5 }, 61 | { "group": "caveyot_minetown_food", "x": [ 48, 49 ], "y": [ 13, 14 ], "chance": 90, "repeat": 3 }, 62 | { "group": "caveyot_minetown_tools", "x": [ 38, 40 ], "y": [ 15, 17 ], "chance": 90, "repeat": 12 }, 63 | { "group": "caveyot_minetown_light", "x": [ 46, 47 ], "y": [ 7, 9 ], "chance": 90, "repeat": 8 }, 64 | { "group": "caveyot_minetown_light", "x": 48, "y": [ 7, 9 ], "chance": 90, "repeat": 4 } 65 | ], 66 | "place_monster": [ 67 | { "monster": "mon_dementia", "x": [ 24, 47 ], "y": [ 5, 19 ], "repeat": [ 5, 10 ] }, 68 | { "monster": "mon_zombie_soldier", "x": [ 24, 47 ], "y": [ 5, 19 ], "repeat": [ 2, 4 ] }, 69 | { "monster": "mon_zombie_necro", "x": 32, "y": 7 }, 70 | { "monster": "mon_zombie_bio_op", "x": 36, "y": 16 } 71 | ] 72 | } 73 | }, 74 | { 75 | "type": "mapgen", 76 | "om_terrain": [ [ "breach_finale_4", "breach_finale_5" ] ], 77 | "method": "json", 78 | "weight": 100, 79 | "object": { 80 | "rows": [ 81 | "################################################", 82 | "################################################", 83 | "#!!!?..............?!!!##!!!?..............?!!!#", 84 | "!???................???!!???................???!", 85 | "?......................??......................?", 86 | "................................................", 87 | "................................................", 88 | "................................................", 89 | "................................................", 90 | "................................................", 91 | ".................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", 92 | "...........<<....,ffffffffffffffffggggfffffffff,", 93 | "...........<<....,f,,,,,,,,,,,,,,,,,,,,,,,,,,,f,", 94 | ".................,f,,,,,,,,,,,,,,,,,,,,,,,,,,,f,", 95 | ",,,,,,,,,,,,,,,,,,f,,,,,,,,,,,,,,,,,,,,,,,,,,,f,", 96 | ",||||||||||||||||||WWW|,,,,,,,,,,,,,,,,,,,,,,,f,", 97 | ",|t__+__|BB__cc___|__dW,,,,,,,,,,,,,,,,,,,,,,,f,", 98 | ",|s__|_T|D__cee___+_cdW,,,,,,,,,||YXX|||,,,,,,f,", 99 | ",|s__||||BB_cee___|l6dW,,,,,,,,,|b____b|,,,,,,f,", 100 | ",|s__+__|D_______l|||||,,,,,,,,,|b____b|,,,,,,f,", 101 | ",|t__|_T|BB______l|[[[|,,,,,,,,,|b____b|,,,,,,f,", 102 | ",||+|||||||||=|||||___|,,,,,,,,,|______|,,,,,,f,", 103 | ",|____________________|,,,,,,,,,|u____u|,,,,,,f,", 104 | ",|____________________|||||||||||||++||||||WWW|," 105 | ], 106 | "palettes": [ "breach", "breach_lab" ], 107 | "place_loot": [ 108 | { "group": "swat_gear", "x": 19, "y": 18, "chance": 50, "repeat": 3 }, 109 | { "group": "ammo_swat", "x": 17, "y": [ 19, 20 ], "chance": 50, "repeat": 4 }, 110 | { "group": "snacks", "x": [ 13, 14 ], "y": [ 17, 18 ], "chance": 60 }, 111 | { "group": "mansion_books", "x": [ 19, 21 ], "y": 20, "chance": 50, "repeat": 6 } 112 | ], 113 | "place_monster": [ 114 | { "monster": "mon_turret", "x": 33, "y": 22 }, 115 | { "monster": "mon_turret", "x": 38, "y": 22 }, 116 | { "monster": "mon_mi_go", "x": [ 3, 4 ], "y": [ 16, 20 ] }, 117 | { "monster": "mon_kreck", "x": [ 5, 18 ], "y": [ 22, 23 ], "repeat": [ 2, 3 ] }, 118 | { "monster": "mon_hunting_horror", "x": [ 10, 16 ], "y": [ 17, 20 ] } 119 | ] 120 | } 121 | }, 122 | { 123 | "type": "mapgen", 124 | "om_terrain": [ [ "breach_finale_6", "breach_finale_7" ] ], 125 | "method": "json", 126 | "weight": 100, 127 | "object": { 128 | "rows": [ 129 | ",|____________________|_______________Wd6l|ddd|,", 130 | ",|____________________+_u___________u_Wdc_|_c6|,", 131 | ",|____________________|_______________Wd__|__l|,", 132 | ",||||||||||||||||++|||||||||||||||||||||+|||+||,", 133 | ",,,|333_____rrr|u__u|_________________|______l|,", 134 | "..,|4__________|____+_u____________du_=___u__l|,", 135 | "..,|4___GGG____+____|______________dc_|______l|,", 136 | "..,|____GGG____+____||+|||||||||||||||||WWWWW||,", 137 | "..,|6c_________|____|__t|v___________u|,,,,,,,f,", 138 | "..,|6_______rrr|____|s__|v_beeb__beeb_W,mmmmm,f,", 139 | "..,||||||+||||||____|s__C__beeb__beeb_W,mmmmm,f,", 140 | "..,|6________ll|____|n__C__beeb__beeb_W,mmmmm,f,", 141 | "..,|6c_^^C_____+____|n__C__beeb__beeb_W,mmmmm,f,", 142 | "..,|C__^^C_____+____|C__C___bb___beeb_W,mmmmm,f,", 143 | "..,|C________ll|____|C__C________beeb_W,mmmmm,f,", 144 | "..,||||||+||||||____|___|v_______beec_W,mmmmm,f,", 145 | "..,|C__________|____|FFF|V__tt_______u|,,,,,,,f,", 146 | "..,|C__________|____|||||||||||++|||||||WWWWW||,", 147 | "..,|C_1________+____|________________________[|,", 148 | "..,|C_2________+____+________________________[|,", 149 | "..,|C__________|u__u|________________________[|,", 150 | ",,,|C__________||++||||||+||||||||||+|||||+||||,", 151 | ",||||||||+||||||_____[|l____|_S|T_|__t|BB___BB|,", 152 | ",|___________________[|l_b__+__|__+__s|D_____D|," 153 | ], 154 | "palettes": [ "breach", "breach_lab" ], 155 | "place_traps": [ 156 | { "trap": "tr_dissector", "x": 7, "y": 17 }, 157 | { "trap": "tr_dissector", "x": 7, "y": 20 }, 158 | { "trap": "tr_dissector", "x": 11, "y": 17 }, 159 | { "trap": "tr_dissector", "x": 11, "y": 20 } 160 | ], 161 | "place_fields": [ { "field": "fd_shock_vent", "x": 9, "y": 7 } ], 162 | "place_loot": [ 163 | { "group": "swat_gear", "x": 41, "y": 0, "chance": 40, "repeat": 3 }, 164 | { "group": "swat_gear", "x": 45, "y": 2, "chance": 40, "repeat": 3 }, 165 | { "group": "guns_swat", "x": 35, "y": [ 5, 6 ], "chance": 40, "repeat": 3 }, 166 | { "group": "ammo_swat", "x": 45, "y": [ 4, 6 ], "chance": 30, "repeat": 6 }, 167 | { "group": "supplies_electronics", "x": [ 12, 14 ], "y": 4, "chance": 70, "repeat": 6 }, 168 | { "group": "energy_weapon_armory", "x": [ 12, 14 ], "y": 9, "chance": 50, "repeat": 4 }, 169 | { "group": "tools_medical", "x": [ 13, 14 ], "y": 11, "chance": 60, "repeat": 5 }, 170 | { "group": "drugs_rare", "x": [ 13, 14 ], "y": 14, "chance": 50, "repeat": 5 }, 171 | { "group": "chem_lab", "x": 4, "y": [ 13, 14 ], "chance": 50, "repeat": 6 }, 172 | { "group": "dissection", "x": 4, "y": [ 16, 21 ], "chance": 40, "repeat": 10 }, 173 | { "group": "fridge", "x": [ 21, 23 ], "y": 16, "chance": 50, "repeat": 8 }, 174 | { "group": "kitchen", "x": 21, "y": [ 13, 14 ], "chance": 50, "repeat": 4 }, 175 | { "group": "vending_food_items", "x": 25, "y": [ 8, 9 ], "chance": 50, "repeat": 8 }, 176 | { "group": "vending_drink_items", "x": 25, "y": [ 15, 16 ], "chance": 50, "repeat": 8 }, 177 | { "group": "lab_dorm", "x": 21, "y": [ 22, 23 ], "chance": 50, "repeat": 4 }, 178 | { "group": "mansion_books", "x": 23, "y": [ 22, 23 ], "chance": 50, "repeat": 4 } 179 | ], 180 | "place_monster": [ 181 | { "monster": "mon_mi_go", "x": [ 16, 19 ], "y": [ 4, 20 ], "repeat": [ 1, 2 ] }, 182 | { "monster": "mon_mi_go", "x": [ 26, 32 ], "y": [ 22, 23 ] }, 183 | { "monster": "mon_mi_go", "x": [ 24, 27 ], "y": [ 9, 15 ], "repeat": [ 1, 2 ] }, 184 | { "monster": "mon_mi_go", "x": [ 41, 43 ], "y": [ 22, 23 ], "repeat": [ 1, 2 ] }, 185 | { "monster": "mon_mi_go", "x": [ 10, 12 ], "y": [ 12, 15 ] }, 186 | { "monster": "mon_kreck", "x": [ 22, 23 ], "y": [ 9, 15 ], "repeat": [ 2, 4 ] }, 187 | { "monster": "mon_hunting_horror", "x": 40, "y": 1 }, 188 | { "monster": "mon_hunting_horror", "x": 36, "y": 6 }, 189 | { "monster": "mon_hunting_horror", "x": [ 16, 19 ], "y": [ 4, 20 ] }, 190 | { "monster": "mon_darkman", "x": 36, "y": 16, "chance": 50 } 191 | ] 192 | } 193 | }, 194 | { 195 | "type": "mapgen", 196 | "om_terrain": [ [ "breach_finale_8", "breach_finale_9" ] ], 197 | "method": "json", 198 | "weight": 100, 199 | "object": { 200 | "rows": [ 201 | ",|_A__A______________[|l_b__|||||||__s|BB___BB|,", 202 | ",|_A__A______________[|l_b__|_S|T_|__s|D_____D|,", 203 | ",|___________________[|l____+__|__+__t|BB___BB|,", 204 | ",|||WWWWWWWWW||||==|||||||||||||||||||||||=||||,", 205 | ",,f,,,,,,,,,,,,|____Wd6l|_rrrrrrrr_|l6dW____|,,,", 206 | ".,f,mmmmmmmmmm,|____Wdc_+__________+_cdW____|,..", 207 | ".,f,mmmmmmmmmm,|____Wd__|__________|__dW____|,..", 208 | ".,f,mmmmmmmmmm,||++||WWW|||||==|||||WWW||++||,..", 209 | ".,f,,,,,,,,,,,,|C_________u______u_________C|,..", 210 | ".,fffffffffffff|C__________________________C|,..", 211 | ".,,,,,,,,,,,,,,||__________________________||,..", 212 | "..............,,|__44______WWwwWW______44__|,,..", 213 | "...............,|__44__c6__W____W__6c__44__|,...", 214 | "...............,||_____c6__W____W__6c_____||,...", 215 | "...............,,|_33__c6__W____W__6c__33_|,,...", 216 | "................,|u________WWWWWW________u|,....", 217 | "................,|||||||||________|||||||||,....", 218 | "................,,,,,,,,,||||||||||,,,,,,,,,....", 219 | "........................,,,,,,,,,,,,............", 220 | "?......................??......................?", 221 | "!???................???!!???................???!", 222 | "#!!!?..............?!!!##!!!?..............?!!!#", 223 | "################################################", 224 | "################################################" 225 | ], 226 | "palettes": [ "breach", "breach_lab" ], 227 | "place_traps": [ { "trap": "tr_portal", "x": [ 28, 31 ], "y": [ 12, 14 ], "repeat": [ 1, 2 ] } ], 228 | "place_loot": [ 229 | { "group": "gear_soldier_sidearm", "x": 23, "y": 4, "chance": 70, "repeat": 2 }, 230 | { "group": "gear_soldier_sidearm", "x": 36, "y": 4, "chance": 70, "repeat": 2 }, 231 | { "group": "military", "x": [ 26, 33 ], "y": 4, "chance": 40, "repeat": 8 }, 232 | { "group": "teleport", "x": 16, "y": [ 8, 9 ], "chance": 50, "repeat": 6 }, 233 | { "group": "spiral", "x": 43, "y": [ 8, 9 ], "chance": 75, "repeat": 4 }, 234 | { "group": "lab_dorm", "x": 23, "y": [ 0, 2 ], "chance": 50, "repeat": 6 }, 235 | { "group": "mansion_books", "x": 21, "y": [ 0, 2 ], "chance": 50, "repeat": 6 } 236 | ], 237 | "place_monster": [ 238 | { "monster": "mon_mi_go", "x": [ 24, 35 ], "y": [ 8, 10 ], "repeat": [ 2, 4 ] }, 239 | { "monster": "mon_hunting_horror", "x": 18, "y": 5 }, 240 | { "monster": "mon_hunting_horror", "x": 40, "y": 9 }, 241 | { "monster": "mon_hunting_horror", "x": 30, "y": 5 } 242 | ] 243 | } 244 | }, 245 | { 246 | "type": "mapgen", 247 | "method": "json", 248 | "om_terrain": [ [ "breach_finale_10", "breach_finale_11" ] ], 249 | "weight": 100, 250 | "object": { 251 | "rows": [ 252 | ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", 253 | ",,,,,,,,,,,,,,,,,,,###,,,,###,,,,,,,,,,,,,,,,,,,", 254 | ",,,,,,,,,,,,,,,PPPP#^W,,,,W^#PPPP,,,,,,,,,,,,,,,", 255 | ",,,,,PPPPPPPPPPP,,,#W#,,,,#W#,,,PPPPPPPPPPP,,,,,", 256 | ",,,,PP,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,PP,,,,", 257 | ",,,PP,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,PP,,,", 258 | ",,,P,,,#####,,,,,,,,,,,,#####,,,,,,,,,,,,,,,P,,,", 259 | ",,,P,,,#K__##############_BB#,,,,,,,,,#W#,,,P,,,", 260 | ",,,P,,,#K___r#__W^^W__#D__BB#PPPPPPPPP#^W,,,P,,,", 261 | ",,,P,,,#K___r#__#WW#__#D___D#,,,,,,,,,###,,,P,,,", 262 | ",,,P,,,##r__r#________##___##,,,,,,,,,,P,,,,P,,,", 263 | ",,,P,,,,#r__##__cccc___##+##,,,,,|||||,P,,,,P,,,", 264 | ",,,P,,,,#C_____ceeeec______#,mmm,|ssd|,P,,,,P,,,", 265 | ",,,P,,,,#F_____ceeeec______#,mmm,+sss|,P,,,,P,,,", 266 | ",,,P,,,,#r______cccc_______#,mmm,|sbb|,P,,,,P,,,", 267 | ",,PP,,,,#r__##________##++##,,,,,|||||,P,,,,PP,,", 268 | ",,P,,,,##r__r#________#l___##,,,,,,,,,,P,,,,,P,,", 269 | ",,P,,,,#____r#________#l___C#,,,,,||||,P,,,,,P,,", 270 | ",,P,,,,#____r#________#l__cC#,mmm,|db|,P,,,,,P,,", 271 | ",,P,,,,#rrr######++######CCC#,mmm,|sb|,#W#,,,P,,", 272 | ",,P,,,,#####,,,,,,,,,,,,#####,,,,,|+||,W^W,,,P,,", 273 | ",,P,,,,,,P,,,,,,,,,,,,,,,,P,,,,,,,,,,,,#W#,,,P,,", 274 | ",,P,,,,,###,,,,,,,,,,,,,,,P,,,,,,,,,,,,,,,,,,P,,", 275 | ",,P,,,,,#^W,,,,,,,,,,,,,,,P,,,,,,,,,,,,,,,,,,P,," 276 | ], 277 | "palettes": [ "breach", "breach_camp" ], 278 | "place_traps": [ 279 | { "trap": "tr_landmine", "x": [ 6, 23 ], "y": [ 4, 5 ], "repeat": [ 1, 4 ] }, 280 | { "trap": "tr_landmine", "x": [ 4, 6 ], "y": [ 6, 23 ], "repeat": [ 1, 4 ] }, 281 | { "trap": "tr_landmine", "x": [ 24, 41 ], "y": [ 4, 5 ], "repeat": [ 1, 4 ] }, 282 | { "trap": "tr_landmine", "x": [ 41, 43 ], "y": [ 6, 18 ], "repeat": [ 1, 4 ] } 283 | ], 284 | "place_loot": [ 285 | { "group": "cannedfood", "x": 12, "y": [ 8, 10 ], "chance": 80, "repeat": 5 }, 286 | { "group": "pasta", "x": 12, "y": [ 16, 18 ], "chance": 80, "repeat": 5 }, 287 | { "group": "stash_food", "x": [ 8, 10 ], "y": 19, "chance": 80, "repeat": 5 }, 288 | { "group": "tools_common", "x": 9, "y": [ 14, 16 ], "chance": 70, "repeat": 6 }, 289 | { "group": "tools_tailor", "x": 9, "y": [ 10, 11 ], "chance": 70, "repeat": 4 }, 290 | { "group": "ammo_reloaded", "x": 23, "y": [ 16, 18 ], "chance": 50, "repeat": 8 }, 291 | { "group": "tools_gunsmith", "x": [ 25, 26 ], "y": 19, "chance": 60, "repeat": 6 }, 292 | { "group": "ammo_parts", "x": 27, "y": [ 17, 19 ], "chance": 60, "repeat": 6 }, 293 | { "group": "ammo_casings", "x": 27, "y": [ 17, 19 ], "chance": 50, "repeat": 4 } 294 | ], 295 | "place_npcs": [ 296 | { "class": "bandit", "x": 15, "y": 13 }, 297 | { "class": "bandit", "x": 20, "y": 12 }, 298 | { "class": "thug", "x": 20, "y": 20 }, 299 | { "class": "bandit", "x": 35, "y": 13 }, 300 | { "class": "bandit", "x": 39, "y": 22 } 301 | ] 302 | } 303 | }, 304 | { 305 | "type": "mapgen", 306 | "method": "json", 307 | "om_terrain": [ [ "breach_finale_12", "breach_finale_13" ] ], 308 | "weight": 100, 309 | "object": { 310 | "rows": [ 311 | ",,P,,,,,#^W,,,,,,,,,,||||,P,,,,,,,,,,,,,,,,,,P,,", 312 | ",,P,,,,,###,|||||,,,,|bb|,P,,,,,,,,,,,,,,,,,,P,,", 313 | ",,P,,,,,,P,,|bbs|,,,,+sd|,PP,,,,,,,,,,,#W#,,,P,,", 314 | ",,P,,,,,,P,,|sss+,,,,||||,,P,,,,#####,,W^W,,,P,,", 315 | ",,P,,,,,,P,,|dss|,,,,,,,,,,P,,P##rrr##P#W#,,,P,,", 316 | ",,P,,,,,,P,,|||||,,,,|||||,,,,,#_____#,P,,,,,P,,", 317 | ",,P,,,,,,P,,,,,,,,,,,|bsd|,,,,,#__A__#,P,,,,,P,,", 318 | ",,P,,,,,,P,||||,,,,,,|bss|,,,,,#__f__#,P,,,,,P,,", 319 | ",,PP,,,,,P,|bb|,,,,,,|sss|,,,,,+____r#,P,,,,PP,,", 320 | ",,,P,,,,,P,|ds+,,,,,,||+||,,,,,+____r#,P,,,,P,,,", 321 | ",,,P,,,,,P,||||,,,,,,,,,,,,,,,,#__C__#,P,,,,P,,,", 322 | ",,,P,,,,,P,,,,,,,,,,,,,,,,,,,,,#__k__#,P,,,,P,,,", 323 | ",,,P,,,,,P,,||||,,,,,,,,,,,,,,,#_____#,P,,,,P,,,", 324 | ",,,P,,,,,P,,|ds+,,mmmmmmmmmmm,,##rrr##,P,,,,P,,,", 325 | ",,,P,,,,,P,,|bb|,,mmmmmmmmmmm,,,#####,,P,,,,P,,,", 326 | ",,,P,,,,,P,,||||,,,,,,,,,,,,,,,,,,,,,,,P,,,,P,,,", 327 | ",,,P,,,,###,,,,,,,,,,,#WW#,,,,,,,,,,,,###,,,P,,,", 328 | ",,,P,,,,W^#PPPPPPPPPPP#^^#PPPPPPPPPPPP#^W,,,P,,,", 329 | ",,,PP,,,#W#,,,,,,,,,,,####,,,,,,,,,,,,#W#,,PP,,,", 330 | ",,,,PP,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,PP,,,,", 331 | ",,,,,PPPPPPPPPPP,,,,,,,,,,,,,,,,PPPPPPPPPPP,,,,,", 332 | ",,,,,,,,,,,,,,,PPPPPPPPPPPPPPPPPP,,,,,,,,,,,,,,,", 333 | ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", 334 | ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," 335 | ], 336 | "palettes": [ "breach", "breach_camp" ], 337 | "place_traps": [ 338 | { "trap": "tr_landmine", "x": [ 4, 7 ], "y": [ 0, 17 ], "repeat": [ 1, 4 ] }, 339 | { "trap": "tr_landmine", "x": [ 11, 21 ], "y": [ 18, 19 ], "repeat": [ 1, 4 ] }, 340 | { "trap": "tr_landmine", "x": [ 40, 43 ], "y": [ 5, 17 ], "repeat": [ 1, 4 ] }, 341 | { "trap": "tr_landmine", "x": [ 26, 37 ], "y": [ 18, 19 ], "repeat": [ 1, 4 ] } 342 | ], 343 | "place_loot": [ 344 | { "group": "tools_mechanic", "x": [ 33, 35 ], "y": 4, "chance": 65, "repeat": 3 }, 345 | { "group": "stash_wood", "x": 36, "y": [ 8, 9 ], "chance": 65, "repeat": 4 }, 346 | { "group": "wreckage", "x": [ 33, 35 ], "y": 13, "chance": 65, "repeat": 5 }, 347 | { "group": "tools_blacksmith", "x": 34, "y": 10, "chance": 65, "repeat": 3 } 348 | ], 349 | "place_npcs": [ 350 | { "class": "bandit", "x": 15, "y": 4 }, 351 | { "class": "bandit", "x": 16, "y": 8 }, 352 | { "class": "bandit", "x": 14, "y": 14 }, 353 | { "class": "thug", "x": 30, "y": 6 }, 354 | { "class": "bandit", "x": 30, "y": 11 }, 355 | { "class": "thug", "x": 39, "y": 1 } 356 | ] 357 | } 358 | }, 359 | { 360 | "type": "mapgen", 361 | "//": "Layout is based off of Phobos Anomaly from Doom, with concessions to available space, and a slight DoomRL twist.", 362 | "om_terrain": [ 363 | [ "breach_finale_14", "breach_finale_15", "breach_finale_16", "breach_finale_17" ], 364 | [ "breach_finale_18", "breach_finale_19", "breach_finale_20", "breach_finale_21" ], 365 | [ "breach_finale_22", "breach_finale_23", "breach_finale_24", "breach_finale_25" ] 366 | ], 367 | "method": "json", 368 | "weight": 100, 369 | "object": { 370 | "rows": [ 371 | "###!!??................/......................./......................./.................??!!###", 372 | "##!!??...............??????????????????????????????????????????????????????...............??!!##", 373 | "##!??...............?!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!?...............??!##", 374 | "##!??..............?!######################################################!?..............??!##", 375 | "##!??.............?!########################################################!?.............??!##", 376 | "##!??............?!##############MMMM########################################!?............??!##", 377 | "##!??...........?!##############MMmmMM-----------------------#################!?...........??!##", 378 | "##!??...........?!##############Mmmmmmtttttttttttttttttttttt--################!?...........??!##", 379 | "##!??...........?!##############Mmmmmmttttttttttttttttttttttt-################!?...........??!##", 380 | "##!??...........?!##############MMmmMM-T------------------ttt-################!?...........??!##", 381 | "##!??...........?!##############MM++MM-t-################--tt-################!?...........??!##", 382 | "##!??...........?!##############MmmmmM---################--tt--###############!?...........??!##", 383 | "##!??...........?!############MMMmmmmMMM################--tttt--#############!?,...........??!##", 384 | "##!??...........?!##MMMMMMMM##MummmmmmuM##MMMMMMMM#####--tttttt--###########!?,,,..........??!##", 385 | "##!??...........?!##M______M#MMmmmmmmmmMM#M______MMMMMM-ttt~~ttt------!!!!!!?,,,,..........??!##", 386 | "##!??...........?!##M______MMMmmmmmmmmmmMMM______MMEE6Mttt~~~~ttt-utt-??????,,,,,..........??!##", 387 | "##!??...........?!##M________+mmmmmmmmmm+________MMEEEmtt~~~~~~tt+tttt,,,,,,,,,,,..........??!##", 388 | "##!??...........?!##M________+mmmmmmmmmm+________MMEEEmtt~~~~~~tt+tttt,,,,,,,,,,,..........??!##", 389 | "##!??...........?!##M______MMMmmmmmmmmmmMMM______MMEEEMttt~~~~ttt-utt-??????,,,,,..........??!##", 390 | "##!??...........?!##M______M#MMmmmmmmmmMM#M______MMMMMM-ttt~~ttt------!!!!!!?,,,,..........??!##", 391 | "##!??...........?!##MMMMMMMM##MummmmmmuM##MMMMMMMM#####--tttttt--###########!?,,,..........??!##", 392 | "##!??...........?!############MMMmmmmMMM################--tttt--#############!?,...........??!##", 393 | "##!!??..........?!##############MMmmMM###################------###############!?..........??!!##", 394 | "###!!??.........?!#####/#########|__|##########/#######################/######!?.........??!!###", 395 | "###!?...........?!#####/########||__||#########/#######################/######!?.........??!!###", 396 | "##!?............?!#############||____||#######################################!?..........??!!##", 397 | "##!?............?!#############|______|#############||||||####################!?...........??!##", 398 | "##!?............?!#############|______|##########||||____||||#################!?...........??!##", 399 | "##?.............?!#############||____||########|||__________|||###############!?...........??!##", 400 | "##..............?!############||||__||#######|||u_____________|||#############!?...........??!##", 401 | "##..............?!############|__B__|#######||u||_______________||############!?...........??!##", 402 | "##..............?!############|__B__|######||___||_______________||###########!?...........??!##", 403 | "##..............?!############|__B__|#####||_____||_______________||##########!?...........??!##", 404 | "##..............?!############|__B__|#####|_______||_______________|##########!?...........??!##", 405 | "##..............?!############|__B__|####||________|_______________||#########!?...........??!##", 406 | "##.<<...........?!############|__B__|####|________|||B______________|#########!?...........??!##", 407 | "##.<<...........?!############||||__|###||____cccc|ccB______________||########!?...........??!##", 408 | "##..............?!##############|b__|###|___cccccc|ccB_______________|########!?...........??!##", 409 | "##..............?!##############||BB|###|_cccccccc|||B_______________|########!?...........??!##", 410 | "##..............?!##############MMmmMM#||ccccccccccccB_______________||#######!?...........??!##", 411 | "##..............?!##############MEEE6M||cccccccccccccB________________|----###!?...........??!##", 412 | "##..............?!##############MEEEEm+ccccccccccccccB________________,,,,-###!?...........??!##", 413 | "##..............?!##############MEEEEm+cccccccccccccb|________________,,,,-###!?...........??!##", 414 | "##?.............?!##############MEEEEM||cccccccccccccB________________|-,,-###!?...........??!##", 415 | "##!?............?!##############MMMMMM#||ccccccccccccB_______________||-,,-###!?...........??!##", 416 | "##!?............?!######################|_cccccccc|||B_______________|--,,-###!?...........??!##", 417 | "##!?............?!######################|___cccccc|ccB_______________|-,,,-###!?..........??!!##", 418 | "###!?...........?!#####/################||____cccc|ccB______________||-/,--###!?.........??!!###", 419 | "###!!??.........?!#####/#################|_____/__|||B______________|--/,-####!?.........??!!###", 420 | "##!!??..........?!#######################||________|_______________||-,,,-####!?..........??!!##", 421 | "##!??...........?!########################|_______||_______________|--,,--####!?...........??!##", 422 | "##!??...........?!########################||_____||_______________||-,,,-#####!?...........??!##", 423 | "##!??...........?!#########################||___||_______________||#-,,--#####!?...........??!##", 424 | "##!??...........?!##########################||u||_______________||##-,,-######!?...........??!##", 425 | "##!??...........?!###########################|||u_____________|||###MccM######!?...........??!##", 426 | "##!??...........?!#############################|||__________|||####MMccMM#####!?...........??!##", 427 | "##!??...........?!###############################||||____||||#####MMccccMM####!?...........??!##", 428 | "##!??...........?!##################################||||||########MccccccM####!?...........??!##", 429 | "##!??...........?!################################################MccccccM####!?...........??!##", 430 | "##!??...........?!################################################Mccmmc6M####!?...........??!##", 431 | "##!??...........?!################################################MMcmmcMM####!?...........??!##", 432 | "##!??...........?!#################################################MMuuMM#####!?...........??!##", 433 | "##!??...........?!##################################################MMMM######!?...........??!##", 434 | "##!??...........?!############################################################!?...........??!##", 435 | "##!??...........?!############################################################!?...........??!##", 436 | "##!??...........?!############################################################!?...........??!##", 437 | "##!??............?!##########################################################!?............??!##", 438 | "##!??.............?!########################################################!?.............??!##", 439 | "##!??..............?!######################################################!?..............??!##", 440 | "##!??...............?!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!?...............??!##", 441 | "##!!??...............??????????????????????????????????????????????????????...............??!!##", 442 | "###!!??................/......................./......................./.................??!!###" 443 | ], 444 | "palettes": [ "breach" ], 445 | "terrain": { 446 | "|": "t_rock_smooth", 447 | "-": "t_strconc_wall", 448 | "~": "t_sewage", 449 | "+": "t_door_metal_c", 450 | "6": "t_console_broken", 451 | "B": "t_breach_stone_fake", 452 | "E": "t_elevator", 453 | "M": "t_wall_metal", 454 | "T": "t_breach_concrete_fake_c", 455 | "b": "t_breach_lever", 456 | "c": "t_thconc_floor", 457 | "m": "t_metal_floor", 458 | "t": "t_strconc_floor", 459 | "u": "t_utility_light", 460 | "/": "t_strconc_floor" 461 | }, 462 | "place_nested": [ 463 | { "chunks": [ [ "breach_finale_doot_rads", 1 ] ], "x": 58, "y": 15 }, 464 | { "chunks": [ [ "breach_spawn_doot_multiple_demons", 1 ] ], "x": 57, "y": 14 }, 465 | { "chunks": [ [ "breach_spawn_doot_single_demon", 1 ] ], "x": 25, "y": 19 }, 466 | { "chunks": [ [ "breach_spawn_doot_single_demon", 1 ] ], "x": 44, "y": 19 }, 467 | { "chunks": [ [ "breach_spawn_doot_pair_spectres", 1 ] ], "x": 45, "y": 31 }, 468 | { "chunks": [ [ "breach_spawn_doot_pair_spectres", 1 ] ], "x": 45, "y": 51 }, 469 | { "chunks": [ [ "breach_spawn_doot_pair_spectres", 1 ] ], "x": 45, "y": 31 }, 470 | { "chunks": [ [ "breach_spawn_doot_pair_spectres", 1 ] ], "x": 45, "y": 51 }, 471 | { "chunks": [ [ "breach_spawn_doot_pair_spectres", 1 ] ], "x": 54, "y": 53 }, 472 | { "chunks": [ [ "breach_spawn_doot_pair_spectres", 1 ] ], "x": 67, "y": 40 }, 473 | { "chunks": [ [ "breach_spawn_doot_pair_spectres", 1 ] ], "x": 54, "y": 30 }, 474 | { "chunks": [ [ "breach_spawn_doot_baron", 1 ] ], "x": 51, "y": 36 }, 475 | { "chunks": [ [ "breach_spawn_doot_baron", 1 ] ], "x": 51, "y": 46 }, 476 | { "chunks": [ [ "breach_spawn_doot_imp_surprise", 1 ] ], "x": 31, "y": 30 }, 477 | { "chunks": [ [ "breach_spawn_doot_imp_surprise", 1 ] ], "x": 31, "y": 34 } 478 | ], 479 | "place_traps": [ { "trap": "tr_portal", "x": [ 69, 70 ], "y": [ 59, 60 ] } ], 480 | "place_loot": [ 481 | { "item": "royal_jelly", "x": 39, "y": 10 }, 482 | { "item": "bandages", "x": [ 51, 52 ], "y": [ 15, 18 ], "chance": 50, "repeat": 8 }, 483 | { "item": "9mmfmj", "x": 51, "y": 16 }, 484 | { "item": "survivormap", "x": 51, "y": 17 }, 485 | { "item": "1st_aid", "x": [ 34, 35 ], "y": [ 14, 15 ] }, 486 | { "item": "modularvestkevlar", "x": [ 34, 35 ], "y": [ 18, 19 ] }, 487 | { "item": "mp5bigmag", "x": 22, "y": 16 }, 488 | { "item": "hk_mp5", "x": 22, "y": 17 }, 489 | { "item": "9mmfmj", "x": [ 24, 26 ], "y": [ 15, 18 ], "chance": 50, "repeat": 4 }, 490 | { "item": "mossberg_500", "x": 47, "y": [ 16, 17 ] }, 491 | { "item": "shot_00", "x": [ 43, 45 ], "y": [ 15, 18 ], "chance": 75, "repeat": 3 }, 492 | { "item": "9mmfmj", "x": [ 42, 47 ], "y": [ 38, 47 ], "chance": 25, "repeat": 2 }, 493 | { "item": "shot_00", "x": [ 42, 47 ], "y": [ 38, 47 ], "chance": 25 }, 494 | { "item": "bandages", "x": [ 42, 47 ], "y": [ 38, 47 ], "chance": 25 }, 495 | { "item": "9mmfmj", "x": [ 50, 59 ], "y": [ 51, 54 ], "chance": 50 }, 496 | { "item": "optical_cloak", "x": [ 50, 59 ], "y": [ 51, 54 ] }, 497 | { "item": "shot_00", "x": [ 65, 68 ], "y": [ 37, 46 ], "chance": 50 }, 498 | { "item": "1st_aid", "x": [ 65, 68 ], "y": [ 37, 46 ], "chance": 50 }, 499 | { "item": "9mmfmj", "x": [ 50, 59 ], "y": [ 28, 31 ], "chance": 50 }, 500 | { "item": "1st_aid", "x": [ 50, 59 ], "y": [ 28, 31 ], "chance": 50 }, 501 | { "item": "shot_hull", "x": [ 68, 71 ], "y": [ 56, 60 ], "chance": 80, "repeat": 8 } 502 | ], 503 | "place_fields": [ { "field": "fd_blood", "x": [ 68, 71 ], "y": [ 56, 60 ], "repeat": [ 8, 18 ] } ] 504 | } 505 | } 506 | ] 507 | -------------------------------------------------------------------------------- /Dorf_Life_BN/mod_tileset.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "mod_tileset", 4 | "compatibility": [ "ChestHole32", "MShock32Modded", "MshockXottoplus", "UltimateCataclysm" ], 5 | "tiles-new": [ 6 | { 7 | "file": "mod_tileset.png", 8 | "tiles": [ 9 | { 10 | "id": "t_cave_moss", 11 | "fg": 6, 12 | "bg": 0, 13 | "rotates": false, 14 | "multitile": true, 15 | "additional_tiles": [ 16 | { 17 | "id": "center", 18 | "fg": 1 19 | }, 20 | { 21 | "id": "corner", 22 | "fg": 2 23 | }, 24 | { 25 | "id": "edge", 26 | "fg": 3 27 | }, 28 | { 29 | "id": "end_piece", 30 | "fg": 4 31 | }, 32 | { 33 | "id": "t_connection", 34 | "fg": 5 35 | }, 36 | { 37 | "id": "unconnected", 38 | "fg": 6 39 | } 40 | ] 41 | }, 42 | { 43 | "id": "t_shrub_helmet_plump", 44 | "fg": 7, 45 | "bg": 0, 46 | "rotates": false 47 | }, 48 | { 49 | "id": "t_shrub_helmet_plump_harvested", 50 | "fg": 8, 51 | "bg": 0, 52 | "rotates": false 53 | }, 54 | { 55 | "id": [ "t_shrub_pod_sweet_season_autumn", "t_shrub_pod_sweet_season_winter" ], 56 | "fg": 9, 57 | "bg": 0, 58 | "rotates": false 59 | }, 60 | { 61 | "id": [ "t_shrub_pod_sweet_season_spring", "t_shrub_pod_sweet_season_summer" ], 62 | "fg": 10, 63 | "bg": 0, 64 | "rotates": false 65 | }, 66 | { 67 | "id": "t_shrub_pod_sweet_harvested", 68 | "fg": 11, 69 | "bg": 0, 70 | "rotates": false 71 | }, 72 | { 73 | "id": [ "t_shrub_wheat_cave_season_summer", "t_shrub_wheat_cave_season_autumn" ], 74 | "fg": 12, 75 | "bg": 0, 76 | "rotates": false 77 | }, 78 | { 79 | "id": [ "t_shrub_wheat_cave_season_spring", "t_shrub_wheat_cave_season_winter" ], 80 | "fg": 13, 81 | "bg": 0, 82 | "rotates": false 83 | }, 84 | { 85 | "id": "t_shrub_wheat_cave_harvested", 86 | "fg": 14, 87 | "bg": 0, 88 | "rotates": false 89 | }, 90 | { 91 | "id": [ "t_shrub_tails_pig_season_summer", "t_shrub_tails_pig_season_autumn" ], 92 | "fg": 15, 93 | "bg": 0, 94 | "rotates": false 95 | }, 96 | { 97 | "id": [ "t_shrub_tails_pig_season_spring", "t_shrub_tails_pig_season_winter" ], 98 | "fg": 16, 99 | "bg": 0, 100 | "rotates": false 101 | }, 102 | { 103 | "id": "t_shrub_tails_pig_harvested", 104 | "fg": 17, 105 | "bg": 0, 106 | "rotates": false 107 | }, 108 | { 109 | "id": "t_shrub_bush_quarry_season_winter", 110 | "fg": 18, 111 | "bg": 0, 112 | "rotates": false 113 | }, 114 | { 115 | "id": [ "t_shrub_bush_quarry_season_spring", "t_shrub_bush_quarry_season_summer", "t_shrub_bush_quarry_season_autumn" ], 116 | "fg": 19, 117 | "bg": 0, 118 | "rotates": false 119 | }, 120 | { 121 | "id": "t_shrub_bush_quarry_harvest", 122 | "fg": 20, 123 | "bg": 0, 124 | "rotates": false 125 | }, 126 | { 127 | "id": [ "caveyot_helmet_plump", "caveyot_helmet_plump_cooked" ], 128 | "fg": 21, 129 | "bg": 0, 130 | "rotates": false 131 | }, 132 | { 133 | "id": "caveyot_pod_sweet", 134 | "fg": 22, 135 | "bg": 0, 136 | "rotates": false 137 | }, 138 | { 139 | "id": "caveyot_wheat_cave", 140 | "fg": 23, 141 | "bg": 0, 142 | "rotates": false 143 | }, 144 | { 145 | "id": "caveyot_tails_pig", 146 | "fg": 24, 147 | "bg": 0, 148 | "rotates": false 149 | }, 150 | { 151 | "id": "caveyot_bush_quarry", 152 | "fg": 25, 153 | "bg": 0, 154 | "rotates": false 155 | } 156 | ] 157 | } 158 | ] 159 | } 160 | ] 161 | -------------------------------------------------------------------------------- /Dorf_Life_BN/mod_tileset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chaosvolt/Dorf-Life-CDDA/0aa34ec1cd5b86d451314b03da91f20cc64e3fd5/Dorf_Life_BN/mod_tileset.png -------------------------------------------------------------------------------- /Dorf_Life_BN/modinfo.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "MOD_INFO", 4 | "ident": "Dorf_Life", 5 | "name": "Dorf Life", 6 | "authors": [ "Chaosvolt" ], 7 | "description": "Adds multi-level caverns hidden away in the underground, breaching the subways to add various strange sights to explore.", 8 | "version": "BN version, update 10/16/2024", 9 | "category": "buildings", 10 | "dependencies": [ "bn" ] 11 | } 12 | ] 13 | -------------------------------------------------------------------------------- /Dorf_Life_BN/obsolete.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "terrain", 4 | "id": "t_cave_moss", 5 | "name": "cave moss", 6 | "description": "A sprawling bed of strange blueish moss, growing over a flat stone surface.", 7 | "looks_like": "t_moss_underground", 8 | "symbol": ".", 9 | "color": "cyan", 10 | "move_cost": 2, 11 | "roof": "t_flat_roof", 12 | "flags": [ "TRANSPARENT", "INDOORS", "FLAT" ], 13 | "bash": { "ter_set": "t_null", "str_min": 75, "str_max": 400, "str_min_supported": 100, "bash_below": true } 14 | } 15 | ] 16 | -------------------------------------------------------------------------------- /Dorf_Life_BN/overmap_terrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "overmap_terrain", 4 | "id": "breach_pocket", 5 | "name": "underground breach", 6 | "sym": "#", 7 | "color": "brown", 8 | "see_cost": 2, 9 | "extras": "subway", 10 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 11 | }, 12 | { 13 | "type": "overmap_terrain", 14 | "id": "breach_entry", 15 | "name": "underground breach", 16 | "sym": "#", 17 | "color": "brown", 18 | "see_cost": 2, 19 | "extras": "subway", 20 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 21 | }, 22 | { 23 | "type": "overmap_terrain", 24 | "id": "breach_up", 25 | "name": "underground cavern", 26 | "sym": "#", 27 | "color": "brown", 28 | "see_cost": 2, 29 | "extras": "subway", 30 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 31 | }, 32 | { 33 | "type": "overmap_terrain", 34 | "id": "breach_down", 35 | "name": "underground cavern", 36 | "sym": "#", 37 | "color": "brown", 38 | "see_cost": 2, 39 | "extras": "subway", 40 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 41 | }, 42 | { 43 | "type": "overmap_terrain", 44 | "id": "breach_edge", 45 | "name": "underground cavern", 46 | "sym": "#", 47 | "color": "brown", 48 | "see_cost": 2, 49 | "extras": "subway", 50 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 51 | }, 52 | { 53 | "type": "overmap_terrain", 54 | "id": "breach_corner", 55 | "name": "underground cavern", 56 | "sym": "#", 57 | "color": "brown", 58 | "see_cost": 2, 59 | "extras": "subway", 60 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 61 | }, 62 | { 63 | "type": "overmap_terrain", 64 | "id": "breach_center", 65 | "name": "underground cavern", 66 | "sym": "#", 67 | "color": "brown", 68 | "see_cost": 2, 69 | "extras": "subway", 70 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 71 | }, 72 | { 73 | "type": "overmap_terrain", 74 | "id": "breach_finale_1", 75 | "name": "underground cavern", 76 | "sym": "#", 77 | "color": "brown", 78 | "see_cost": 2, 79 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 80 | }, 81 | { 82 | "type": "overmap_terrain", 83 | "id": "breach_finale_2", 84 | "name": "abandoned market", 85 | "sym": "#", 86 | "color": "h_dark_gray", 87 | "see_cost": 2, 88 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 89 | }, 90 | { 91 | "type": "overmap_terrain", 92 | "id": "breach_finale_3", 93 | "name": "underground cavern", 94 | "sym": "#", 95 | "color": "brown", 96 | "see_cost": 2, 97 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 98 | }, 99 | { 100 | "type": "overmap_terrain", 101 | "id": "breach_finale_4", 102 | "name": "underground cavern", 103 | "sym": "#", 104 | "color": "brown", 105 | "see_cost": 2, 106 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 107 | }, 108 | { 109 | "type": "overmap_terrain", 110 | "id": "breach_finale_5", 111 | "name": "underground cavern", 112 | "sym": "#", 113 | "color": "brown", 114 | "see_cost": 2, 115 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 116 | }, 117 | { 118 | "type": "overmap_terrain", 119 | "id": "breach_finale_6", 120 | "name": "science lab", 121 | "sym": "#", 122 | "color": "blue", 123 | "see_cost": 2, 124 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 125 | }, 126 | { 127 | "type": "overmap_terrain", 128 | "id": "breach_finale_7", 129 | "name": "science lab", 130 | "sym": "#", 131 | "color": "blue", 132 | "see_cost": 2, 133 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 134 | }, 135 | { 136 | "type": "overmap_terrain", 137 | "id": "breach_finale_8", 138 | "name": "underground cavern", 139 | "sym": "#", 140 | "color": "brown", 141 | "see_cost": 2, 142 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 143 | }, 144 | { 145 | "type": "overmap_terrain", 146 | "id": "breach_finale_9", 147 | "name": "underground cavern", 148 | "sym": "#", 149 | "color": "brown", 150 | "see_cost": 2, 151 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 152 | }, 153 | { 154 | "type": "overmap_terrain", 155 | "id": "breach_finale_10", 156 | "name": "hidden camp", 157 | "sym": "#", 158 | "color": "dark_gray", 159 | "see_cost": 2, 160 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 161 | }, 162 | { 163 | "type": "overmap_terrain", 164 | "id": "breach_finale_11", 165 | "name": "hidden camp", 166 | "sym": "#", 167 | "color": "dark_gray", 168 | "see_cost": 2, 169 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 170 | }, 171 | { 172 | "type": "overmap_terrain", 173 | "id": "breach_finale_12", 174 | "name": "hidden camp", 175 | "sym": "#", 176 | "color": "dark_gray", 177 | "see_cost": 2, 178 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 179 | }, 180 | { 181 | "type": "overmap_terrain", 182 | "id": "breach_finale_13", 183 | "name": "hidden camp", 184 | "sym": "#", 185 | "color": "dark_gray", 186 | "see_cost": 2, 187 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 188 | }, 189 | { 190 | "type": "overmap_terrain", 191 | "id": "breach_finale_14", 192 | "name": "underground cavern", 193 | "sym": "#", 194 | "color": "brown", 195 | "see_cost": 2, 196 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 197 | }, 198 | { 199 | "type": "overmap_terrain", 200 | "id": "breach_finale_15", 201 | "name": "buried anomaly", 202 | "sym": "#", 203 | "color": "red", 204 | "see_cost": 2, 205 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 206 | }, 207 | { 208 | "type": "overmap_terrain", 209 | "id": "breach_finale_16", 210 | "name": "buried anomaly", 211 | "sym": "#", 212 | "color": "red", 213 | "see_cost": 2, 214 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 215 | }, 216 | { 217 | "type": "overmap_terrain", 218 | "id": "breach_finale_17", 219 | "name": "underground cavern", 220 | "sym": "#", 221 | "color": "brown", 222 | "see_cost": 2, 223 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 224 | }, 225 | { 226 | "type": "overmap_terrain", 227 | "id": "breach_finale_18", 228 | "name": "underground cavern", 229 | "sym": "#", 230 | "color": "brown", 231 | "see_cost": 2, 232 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 233 | }, 234 | { 235 | "type": "overmap_terrain", 236 | "id": "breach_finale_19", 237 | "name": "buried anomaly", 238 | "sym": "#", 239 | "color": "red", 240 | "see_cost": 2, 241 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 242 | }, 243 | { 244 | "type": "overmap_terrain", 245 | "id": "breach_finale_20", 246 | "name": "buried anomaly", 247 | "sym": "#", 248 | "color": "red", 249 | "see_cost": 2, 250 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 251 | }, 252 | { 253 | "type": "overmap_terrain", 254 | "id": "breach_finale_21", 255 | "name": "underground cavern", 256 | "sym": "#", 257 | "color": "brown", 258 | "see_cost": 2, 259 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 260 | }, 261 | { 262 | "type": "overmap_terrain", 263 | "id": "breach_finale_22", 264 | "name": "underground cavern", 265 | "sym": "#", 266 | "color": "brown", 267 | "see_cost": 2, 268 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 269 | }, 270 | { 271 | "type": "overmap_terrain", 272 | "id": "breach_finale_23", 273 | "name": "buried anomaly", 274 | "sym": "#", 275 | "color": "red", 276 | "see_cost": 2, 277 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 278 | }, 279 | { 280 | "type": "overmap_terrain", 281 | "id": "breach_finale_24", 282 | "name": "buried anomaly", 283 | "sym": "#", 284 | "color": "red", 285 | "see_cost": 2, 286 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 287 | }, 288 | { 289 | "type": "overmap_terrain", 290 | "id": "breach_finale_25", 291 | "name": "underground cavern", 292 | "sym": "#", 293 | "color": "brown", 294 | "see_cost": 2, 295 | "flags": [ "KNOWN_UP", "KNOWN_DOWN" ] 296 | } 297 | ] 298 | -------------------------------------------------------------------------------- /Dorf_Life_BN/recipes.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "recipe", 4 | "result": "caveyot_helmet_plump_cooked", 5 | "category": "CC_FOOD", 6 | "subcategory": "CSC_FOOD_VEGGI", 7 | "skill_used": "cooking", 8 | "difficulty": 1, 9 | "time": "15 m", 10 | "autolearn": true, 11 | "batch_time_factors": [ 67, 5 ], 12 | "qualities": [ { "id": "COOK", "level": 1 } ], 13 | "tools": [ [ [ "surface_heat", 7, "LIST" ] ] ], 14 | "components": [ [ [ "caveyot_helmet_plump", 1 ] ] ] 15 | }, 16 | { 17 | "type": "recipe", 18 | "result": "caveyot_bush_quarry_cooked", 19 | "category": "CC_FOOD", 20 | "subcategory": "CSC_FOOD_VEGGI", 21 | "skill_used": "cooking", 22 | "skills_required": [ "survival", 1 ], 23 | "difficulty": 1, 24 | "time": "24 m", 25 | "autolearn": true, 26 | "qualities": [ { "id": "COOK", "level": 2 } ], 27 | "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], 28 | "components": [ [ [ "caveyot_bush_quarry", 1 ] ] ] 29 | }, 30 | { 31 | "result": "yeast", 32 | "type": "recipe", 33 | "id_suffix": "dorf", 34 | "category": "CC_FOOD", 35 | "subcategory": "CSC_FOOD_SEEDS", 36 | "skill_used": "survival", 37 | "difficulty": 2, 38 | "time": "5 m", 39 | "autolearn": true, 40 | "qualities": [ { "id": "CUT", "level": 1 } ], 41 | "components": [ 42 | [ 43 | [ "caveyot_helmet_plump", 1 ], 44 | [ "caveyot_pod_sweet", 1 ], 45 | [ "caveyot_wheat_cave", 1 ], 46 | [ "caveyot_tails_pig", 1 ], 47 | [ "caveyot_bush_quarry", 1 ] 48 | ] 49 | ] 50 | }, 51 | { 52 | "type": "recipe", 53 | "result": "brew_rum", 54 | "id_suffix": "dorf", 55 | "result_mult": 3, 56 | "category": "CC_FOOD", 57 | "subcategory": "CSC_FOOD_BREW", 58 | "skill_used": "cooking", 59 | "difficulty": 6, 60 | "time": "15 m", 61 | "batch_time_factors": [ 50, 4 ], 62 | "autolearn": true, 63 | "book_learn": [ [ "brewing_cookbook", 5 ] ], 64 | "qualities": [ { "id": "COOK", "level": 2 } ], 65 | "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], 66 | "components": [ [ [ "water", 3 ], [ "water_clean", 3 ] ], [ [ "caveyot_pod_sweet", 1 ] ] ] 67 | }, 68 | { 69 | "type": "recipe", 70 | "result": "brew_fruit_wine", 71 | "id_suffix": "dorf", 72 | "result_mult": 3, 73 | "category": "CC_FOOD", 74 | "subcategory": "CSC_FOOD_BREW", 75 | "skill_used": "cooking", 76 | "difficulty": 4, 77 | "time": "40 m", 78 | "batch_time_factors": [ 50, 4 ], 79 | "autolearn": true, 80 | "book_learn": [ [ "brewing_cookbook", 2 ], [ "family_cookbook", 3 ] ], 81 | "qualities": [ { "id": "COOK", "level": 2 } ], 82 | "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], 83 | "components": [ [ [ "water", 3 ], [ "water_clean", 3 ] ], [ [ "caveyot_helmet_plump", 2 ] ] ] 84 | }, 85 | { 86 | "type": "recipe", 87 | "result": "brew_hb_beer", 88 | "id_suffix": "dorf", 89 | "result_mult": 15, 90 | "category": "CC_FOOD", 91 | "subcategory": "CSC_FOOD_BREW", 92 | "skill_used": "cooking", 93 | "difficulty": 5, 94 | "time": "80 m", 95 | "batch_time_factors": [ 50, 4 ], 96 | "autolearn": true, 97 | "book_learn": [ [ "brewing_cookbook", 4 ] ], 98 | "qualities": [ { "id": "COOK", "level": 2 } ], 99 | "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], 100 | "components": [ [ [ "water", 15 ], [ "water_clean", 15 ] ], [ [ "caveyot_wheat_cave", 3 ], [ "caveyot_tails_pig", 3 ] ] ] 101 | }, 102 | { 103 | "type": "recipe", 104 | "result": "molasses", 105 | "id_suffix": "dorf", 106 | "category": "CC_FOOD", 107 | "subcategory": "CSC_FOOD_DRINKS", 108 | "skill_used": "cooking", 109 | "difficulty": 5, 110 | "time": "80 m", 111 | "autolearn": true, 112 | "batch_time_factors": [ 60, 3 ], 113 | "qualities": [ { "id": "CUT", "level": 1 }, { "id": "BOIL", "level": 1 }, { "id": "CONTAIN", "level": 1 } ], 114 | "tools": [ [ [ "surface_heat", 12, "LIST" ] ] ], 115 | "components": [ [ [ "caveyot_pod_sweet", 1 ] ] ] 116 | }, 117 | { 118 | "type": "recipe", 119 | "result": "flour", 120 | "id_suffix": "dorf", 121 | "category": "CC_FOOD", 122 | "subcategory": "CSC_FOOD_OTHER", 123 | "skill_used": "cooking", 124 | "difficulty": 3, 125 | "//": "It doesn't matter which process you use, the limiting factor is removing the powder from the stalk, which is easily ground up afterward.", 126 | "time": "20 m", 127 | "autolearn": true, 128 | "batch_time_factors": [ 83, 3 ], 129 | "flags": [ "BLIND_EASY" ], 130 | "qualities": [ { "id": "CUT", "level": 1 }, { "id": "CONTAIN", "level": 1 } ], 131 | "tools": [ [ [ "rock_quern", -1 ], [ "clay_quern", -1 ], [ "mortar_pestle", -1 ], [ "food_processor", 10 ] ] ], 132 | "components": [ [ [ "caveyot_wheat_cave", 2 ] ] ] 133 | }, 134 | { 135 | "type": "recipe", 136 | "result": "plant_fibre", 137 | "result_mult": 10, 138 | "id_suffix": "dorf", 139 | "category": "CC_OTHER", 140 | "subcategory": "CSC_OTHER_MATERIALS", 141 | "skill_used": "survival", 142 | "difficulty": 2, 143 | "time": "12 m", 144 | "autolearn": true, 145 | "qualities": [ { "id": "CUT", "level": 1 }, { "id": "HAMMER", "level": 1 } ], 146 | "components": [ [ [ "caveyot_tails_pig", 1 ] ] ] 147 | }, 148 | { 149 | "type": "recipe", 150 | "result": "paper", 151 | "id_suffix": "dorf", 152 | "category": "CC_OTHER", 153 | "subcategory": "CSC_OTHER_MATERIALS", 154 | "skill_used": "fabrication", 155 | "skills_required": [ "survival", 5 ], 156 | "difficulty": 6, 157 | "time": "120 m", 158 | "autolearn": true, 159 | "qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CONTAIN", "level": 1 }, { "id": "CUT", "level": 1 } ], 160 | "tools": [ [ [ "sheet_metal", -1 ] ] ], 161 | "components": [ [ [ "caveyot_tails_pig", 4 ] ], [ [ "water", 4 ], [ "water_clean", 4 ] ] ] 162 | }, 163 | { 164 | "type": "recipe", 165 | "result": "cooking_oil", 166 | "id_suffix": "dorf", 167 | "category": "CC_FOOD", 168 | "subcategory": "CSC_FOOD_OTHER", 169 | "skill_used": "cooking", 170 | "difficulty": 5, 171 | "time": "10 m", 172 | "autolearn": true, 173 | "qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "COOK", "level": 2 } ], 174 | "tools": [ 175 | [ [ "rock_quern", -1 ], [ "clay_quern", -1 ], [ "mortar_pestle", -1 ], [ "food_processor", 10 ] ], 176 | [ [ "surface_heat", 10, "LIST" ] ], 177 | [ [ "rag", -1 ] ] 178 | ], 179 | "components": [ [ [ "caveyot_bush_quarry", 1 ] ] ] 180 | }, 181 | { 182 | "result": "seed_caveyot_helmet_plump", 183 | "type": "recipe", 184 | "category": "CC_FOOD", 185 | "subcategory": "CSC_FOOD_SEEDS", 186 | "skill_used": "survival", 187 | "difficulty": 2, 188 | "time": "5 m", 189 | "autolearn": true, 190 | "qualities": [ { "id": "CUT", "level": 1 } ], 191 | "components": [ [ [ "caveyot_helmet_plump", 1 ] ] ], 192 | "flags": [ "ALLOW_ROTTEN" ] 193 | }, 194 | { 195 | "result": "seed_caveyot_pod_sweet", 196 | "type": "recipe", 197 | "category": "CC_FOOD", 198 | "subcategory": "CSC_FOOD_SEEDS", 199 | "skill_used": "survival", 200 | "difficulty": 2, 201 | "time": "5 m", 202 | "autolearn": true, 203 | "qualities": [ { "id": "CUT", "level": 1 } ], 204 | "components": [ [ [ "caveyot_pod_sweet", 1 ] ] ], 205 | "flags": [ "ALLOW_ROTTEN" ] 206 | }, 207 | { 208 | "result": "seed_caveyot_wheat_cave", 209 | "type": "recipe", 210 | "category": "CC_FOOD", 211 | "subcategory": "CSC_FOOD_SEEDS", 212 | "skill_used": "survival", 213 | "difficulty": 2, 214 | "time": "5 m", 215 | "autolearn": true, 216 | "qualities": [ { "id": "CUT", "level": 1 } ], 217 | "components": [ [ [ "caveyot_wheat_cave", 1 ] ] ], 218 | "flags": [ "ALLOW_ROTTEN" ] 219 | }, 220 | { 221 | "result": "seed_caveyot_tails_pig", 222 | "type": "recipe", 223 | "category": "CC_FOOD", 224 | "subcategory": "CSC_FOOD_SEEDS", 225 | "skill_used": "survival", 226 | "difficulty": 2, 227 | "time": "5 m", 228 | "autolearn": true, 229 | "qualities": [ { "id": "CUT", "level": 1 } ], 230 | "components": [ [ [ "caveyot_tails_pig", 1 ] ] ], 231 | "flags": [ "ALLOW_ROTTEN" ] 232 | }, 233 | { 234 | "result": "seed_caveyot_bush_quarry", 235 | "type": "recipe", 236 | "category": "CC_FOOD", 237 | "subcategory": "CSC_FOOD_SEEDS", 238 | "skill_used": "survival", 239 | "difficulty": 3, 240 | "time": "10 m", 241 | "autolearn": true, 242 | "qualities": [ { "id": "CUT", "level": 1 }, { "id": "HAMMER", "level": 2 } ], 243 | "components": [ [ [ "caveyot_bush_quarry", 1 ] ] ], 244 | "flags": [ "ALLOW_ROTTEN" ] 245 | } 246 | ] 247 | -------------------------------------------------------------------------------- /Dorf_Life_BN/vehiclegroups.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "vehicle_group", 4 | "id": "caveyot_miners", 5 | "vehicles": [ [ "wheelbarrow", 50 ], [ "portable_generator", 25 ], [ "welding_cart", 10 ], [ "excavator", 10 ], [ "trencher", 5 ] ] 6 | } 7 | ] 8 | -------------------------------------------------------------------------------- /Dorf_Life_BN/vehicles.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "embark_wagon", 4 | "type": "vehicle", 5 | "name": "Wagon", 6 | "blueprint": [ [ "o---o " ], [ "====|-" ], [ "....# " ], [ "====|-" ], [ "o---o " ] ], 7 | "parts": [ 8 | { "x": 0, "y": 0, "part": "frame_wood_horizontal_2" }, 9 | { "x": 0, "y": 0, "part": "seat_wood" }, 10 | { "x": 0, "y": 0, "part": "roof_cloth" }, 11 | { "x": 0, "y": 1, "part": "frame_wood_horizontal_2" }, 12 | { "x": 0, "y": 1, "part": "woodboard_horizontal" }, 13 | { "x": 0, "y": 1, "part": "roof_cloth" }, 14 | { "x": 0, "y": -1, "part": "frame_wood_horizontal_2" }, 15 | { "x": 0, "y": -1, "part": "woodboard_horizontal" }, 16 | { "x": 0, "y": -1, "part": "roof_cloth" }, 17 | { "x": 0, "y": 2, "part": "frame_wood_horizontal_2" }, 18 | { "x": 0, "y": 2, "part": "woodboard_ne" }, 19 | { "x": 0, "y": 2, "part": "roof_cloth" }, 20 | { "x": 0, "y": 2, "part": "wheel_wood" }, 21 | { "x": 0, "y": -2, "part": "frame_wood_horizontal_2" }, 22 | { "x": 0, "y": -2, "part": "woodboard_nw" }, 23 | { "x": 0, "y": -2, "part": "roof_cloth" }, 24 | { "x": 0, "y": -2, "part": "wheel_wood" }, 25 | { "x": -1, "y": 0, "part": "frame_wood_vertical" }, 26 | { "x": -1, "y": 0, "part": "wooden_aisle_vertical" }, 27 | { "x": -1, "y": 0, "part": "roof_cloth" }, 28 | { "x": -1, "y": 1, "part": "frame_wood_vertical" }, 29 | { "x": -1, "y": 1, "part": "travois" }, 30 | { "x": -1, "y": 1, "part": "roof_cloth" }, 31 | { "x": -1, "y": -1, "part": "frame_wood_vertical" }, 32 | { "x": -1, "y": -1, "part": "travois" }, 33 | { "x": -1, "y": -1, "part": "roof_cloth" }, 34 | { "x": -1, "y": 2, "part": "frame_wood_vertical" }, 35 | { "x": -1, "y": 2, "part": "woodboard_vertical" }, 36 | { "x": -1, "y": 2, "part": "roof_cloth" }, 37 | { "x": -1, "y": -2, "part": "frame_wood_vertical" }, 38 | { "x": -1, "y": -2, "part": "woodboard_vertical" }, 39 | { "x": -1, "y": -2, "part": "roof_cloth" }, 40 | { "x": -2, "y": 0, "part": "frame_wood_vertical" }, 41 | { "x": -2, "y": 0, "part": "wooden_aisle_vertical" }, 42 | { "x": -2, "y": 0, "part": "roof_cloth" }, 43 | { "x": -2, "y": 1, "part": "frame_wood_vertical" }, 44 | { "x": -2, "y": 1, "part": "travois" }, 45 | { "x": -2, "y": 1, "part": "roof_cloth" }, 46 | { "x": -2, "y": -1, "part": "frame_wood_vertical" }, 47 | { "x": -2, "y": -1, "part": "travois" }, 48 | { "x": -2, "y": -1, "part": "roof_cloth" }, 49 | { "x": -2, "y": 2, "part": "frame_wood_vertical" }, 50 | { "x": -2, "y": 2, "part": "woodboard_vertical" }, 51 | { "x": -2, "y": 2, "part": "roof_cloth" }, 52 | { "x": -2, "y": -2, "part": "frame_wood_vertical" }, 53 | { "x": -2, "y": -2, "part": "woodboard_vertical" }, 54 | { "x": -2, "y": -2, "part": "roof_cloth" }, 55 | { "x": -3, "y": 0, "part": "frame_wood_vertical" }, 56 | { "x": -3, "y": 0, "part": "wooden_aisle_vertical" }, 57 | { "x": -3, "y": 0, "part": "roof_cloth" }, 58 | { "x": -3, "y": 1, "part": "frame_wood_vertical" }, 59 | { "x": -3, "y": 1, "part": "travois" }, 60 | { "x": -3, "y": 1, "part": "roof_cloth" }, 61 | { "x": -3, "y": -1, "part": "frame_wood_vertical" }, 62 | { "x": -3, "y": -1, "part": "travois" }, 63 | { "x": -3, "y": -1, "part": "roof_cloth" }, 64 | { "x": -3, "y": 2, "part": "frame_wood_vertical" }, 65 | { "x": -3, "y": 2, "part": "woodboard_vertical" }, 66 | { "x": -3, "y": 2, "part": "roof_cloth" }, 67 | { "x": -3, "y": -2, "part": "frame_wood_vertical" }, 68 | { "x": -3, "y": -2, "part": "woodboard_vertical" }, 69 | { "x": -3, "y": -2, "part": "roof_cloth" }, 70 | { "x": -4, "y": 0, "part": "frame_wood_horizontal_2" }, 71 | { "x": -4, "y": 0, "part": "wooden_aisle_vertical" }, 72 | { "x": -4, "y": 0, "part": "roof_cloth" }, 73 | { "x": -4, "y": 1, "part": "frame_wood_horizontal_2" }, 74 | { "x": -4, "y": 1, "part": "travois" }, 75 | { "x": -4, "y": 1, "part": "roof_cloth" }, 76 | { "x": -4, "y": -1, "part": "frame_wood_horizontal_2" }, 77 | { "x": -4, "y": -1, "part": "travois" }, 78 | { "x": -4, "y": -1, "part": "roof_cloth" }, 79 | { "x": -4, "y": 2, "part": "frame_wood_horizontal_2" }, 80 | { "x": -4, "y": 2, "part": "woodboard_vertical" }, 81 | { "x": -4, "y": 2, "part": "roof_cloth" }, 82 | { "x": -4, "y": 2, "part": "wheel_wood" }, 83 | { "x": -4, "y": -2, "part": "frame_wood_horizontal_2" }, 84 | { "x": -4, "y": -2, "part": "woodboard_vertical" }, 85 | { "x": -4, "y": -2, "part": "roof_cloth" }, 86 | { "x": -4, "y": -2, "part": "wheel_wood" }, 87 | { "x": 1, "y": 1, "part": "frame_wood_handle" }, 88 | { "x": 1, "y": -1, "part": "frame_wood_handle" } 89 | ] 90 | } 91 | ] 92 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Dorf Life, a mod for Cataclysm: Dark Days Ahead and Cataclysm: Bright Nights 2 | 3 | This mod focuses on adding caverns that randomly breach the depths of subway tunnels (if only sewers were an option, but they won't mesh up cleanly), expanding the underground with areas full of various flora, fauna, and strange encounters. 4 | 5 | If you are using Dark Days Ahead, place the included Dorf_Life folder in your data/mods folder. If you are using the Bright Nights fork, use the Dorf_Life_BN folder instead. In either case it is recommended that, if updating the mod, to delete the older version of the folder rather than just dumping the new one onto the old one. 6 | 7 | ## Features 8 | 9 | * Caverns of various sizes and randomized depths, with various debris, pillars, and other things to make the appearance more organic. 10 | * Pools (including magma, of course), pockets of radiation, evidence of failed expeditions, buried ruins (mundane or otherwise), and stranger things can show up. 11 | * Exotic underground "plants" that can be harvested at various periods of the year, with varied uses as well. 12 | * A wide variety of cavern critters that can show up, at a fairly consistent spawn rate. 13 | * Unique sprites for all terrain added (with a focus on still being visually distinct in the dark), and for almost all items added. 14 | 15 | ## Planned Features 16 | 17 | * Finales for caverns that reach maximum length. 18 | * Changing surface caves to use a similar system. 19 | * A scenario to allow diving into exploration. 20 | --------------------------------------------------------------------------------