1[ 2 { 3 "type": "mapgen", 4 "method": "json", 5 "om_terrain": [ "bunker" ], 6 "object": { 7 "rows": [ 8 " ", 9 " -----------------------", 10 " | |", 11 " | |", 12 " | |", 13 " | |", 14 " | |", 15 " | MMMMMMMMMM |", 16 " | MMMMMMMMMM |", 17 " | MMMM>>MMMM |", 18 " | MM,,,,,,MM |", 19 " | MMMM,,MMMM |", 20 " | MM,,,,,,MM |", 21 " //*/ MMMM,,MMMM /*//", 22 " I#,/ MM,,,,,,MM /,#I", 23 " I00/ MMMMDDMMMM /00I", 24 " | MMMM 6MMM |", 25 " + +", 26 " + +", 27 " + +", 28 " + +", 29 " + +", 30 " +-------++++++--------+", 31 " " 32 ], 33 "terrain": { 34 " ": [ "t_grass", "t_grass", "t_grass", "t_dirt" ], 35 "#": "t_floor", 36 "*": "t_door_c", 37 "+": "t_chaingate_l", 38 ",": "t_floor", 39 "-": "t_chainfence_h", 40 "/": "t_concrete_wall", 41 "0": "t_window", 42 "6": "t_card_military", 43 ">": "t_stairs_down", 44 "D": "t_door_metal_locked", 45 "I": "t_ballistic_glass", 46 "M": "t_wall_metal", 47 "|": "t_chainfence_v" 48 }, 49 "furniture": { "#": "f_table" }, 50 "place_monster": [ 51 { "monster": "mon_turret_rifle", "x": 9, "y": 10 }, 52 { "monster": "mon_turret_rifle", "x": 14, "y": 10 }, 53 { "monster": "mon_turret_rifle", "x": 9, "y": 12 }, 54 { "monster": "mon_turret_rifle", "x": 14, "y": 12 }, 55 { "monster": "mon_turret_rifle", "x": 9, "y": 14 }, 56 { "monster": "mon_turret_rifle", "x": 14, "y": 14 } 57 ] 58 } 59 }, 60 { 61 "type": "mapgen", 62 "method": "json", 63 "om_terrain": [ "bunker_basement" ], 64 "weight": 1000, 65 "object": { 66 "//": "TODO: When it was hardcoded, each room had at most one of the bots, grenades, etc. groups in it, but the way it is now, it's possible for a room to have items from both the bots and grenades group in it.", 67 "rows": [ 68 "########################", 69 "#MMMMMMMMMMMMMMMMMMMMMM#", 70 "#Mrrrrrrr6 6rrrrrrrM#", 71 "#M + + M#", 72 "#M | | M#", 73 "#M | | M#", 74 "#M | | M#", 75 "#MrrrrrrrM MrrrrrrrM#", 76 "#MMMMMMMMM MMMMMMMMM#", 77 "#Mrrrrrrr6 6rrrrrrrM#", 78 "#M + + M#", 79 "#M | | M#", 80 "#M | | M#", 81 "#M | | M#", 82 "#MrrrrrrrM MrrrrrrrM#", 83 "#MMMMMMMMM MMMMMMMMM#", 84 "#Mrrrrrrr6 6rrrrrrrM#", 85 "#M + + M#", 86 "#M | | M#", 87 "#M | | M#", 88 "#M | | M#", 89 "#MrrrrrrrM << MrrrrrrrM#", 90 "#MMMMMMMMMMMMMMMMMMMMMM#", 91 "########################" 92 ], 93 "terrain": { 94 " ": "t_floor", 95 "r": "t_floor", 96 "#": "t_rock", 97 "+": "t_door_metal_locked", 98 "6": "t_card_military", 99 "<": "t_stairs_up", 100 "M": "t_wall_metal", 101 "|": "t_ballistic_glass" 102 }, 103 "furniture": { "r": "f_rack" }, 104 "items": { "r": { "item": "bunker_basement_loot", "chance": 15, "repeat": [ 2, 8 ] } }, 105 "place_monster": [ 106 { "monster": "mon_mech_combat", "x": 5, "y": 5, "chance": 2 }, 107 { "monster": "mon_mech_lifter", "x": 6, "y": 6, "chance": 5 }, 108 { "monster": "mon_mech_recon", "x": 7, "y": 6, "chance": 3 } 109 ] 110 } 111 }, 112 { 113 "type": "mapgen", 114 "method": "json", 115 "om_terrain": [ "bunker_basement" ], 116 "weight": 250, 117 "object": { 118 "fill_ter": "t_floor", 119 "rows": [ 120 "########################", 121 "#MMMMMMMMMMMMMMMMMMMMMM#", 122 "#Ms 6 {{M3 5M ?A2MbCbM#", 123 "#Ms ct ^ + / M#", 124 "#Mt 2M MCCCgMbCbM#", 125 "#MMMMMMMMM MMMMMMMMMM#", 126 "#MrrrrrrrM 2Mb 23 bM#", 127 "#M + Ml lM#", 128 "#MLLLLLLLM5 * bM#", 129 "#MMMMMMMMMM Mb lM#", 130 "#Mc t t t2M Ml bM#", 131 "#Mt c c cWM Mlb bl lM#", 132 "#Mc * MMMMMMMMM#", 133 "#MMMM*MMMMM M} 2 %M#", 134 "#M2 TM * M#", 135 "#MSBOCCfCCM MYsssY{{M#", 136 "#MMMMMMMMMM ~ MMMMMMMMM#", 137 "#ML * * SM#", 138 "#MMMMM^MMMMM+MMM*MM2 SM#", 139 "#Ms Mr cd| 5M M M#", 140 "#Ms Mr cd| M*M*M*M*M#", 141 "#Mt * 2M << M1M1M&M&M#", 142 "#MMMMMMMMMMMMMMMMMMMMMM#", 143 "########################" 144 ], 145 "palettes": [ "basement_bunker" ], 146 "furniture": { 147 "r": "f_rack", 148 "f": "f_fridge", 149 "s": "f_sofa", 150 "t": "f_table", 151 "d": "f_desk", 152 "c": "f_chair", 153 "b": "f_bunkbed", 154 "1": "f_shower", 155 "S": "f_sink", 156 "O": "f_oven", 157 "C": "f_counter", 158 "T": "f_trashcan", 159 "B": "f_cupboard", 160 "l": "f_locker", 161 "L": "f_locker", 162 "Y": "f_table", 163 "A": "f_autodoc", 164 "?": "f_autodoc_couch", 165 "g": "f_glass_fridge", 166 "{": "f_bookcase", 167 "}": "f_pinball_machine", 168 "%": "f_floor_canvas", 169 "2": "f_air_conditioner", 170 "3": "f_speaker_cabinet" 171 }, 172 "items": { 173 "b": { "item": "bed", "chance": 60 }, 174 "{": { "item": "bunker_basement_books", "chance": 70 }, 175 "T": { "item": "trash_cart", "chance": 50 }, 176 "l": { "item": "bunker_basement_clothing", "chance": 50 }, 177 "t": { "item": "dining", "chance": 45 }, 178 "A": { "item": "autodoc_supplies", "chance": 100 } 179 }, 180 "place_fields": [ { "field": "fd_blood", "x": 2, "y": 3 }, { "field": "fd_blood", "x": 3, "y": 3 } ], 181 "place_loot": [ 182 { "group": "surgery", "x": [ 14, 16 ], "y": 4, "chance": 70, "repeat": [ 1, 3 ] }, 183 { "group": "bunker_basement_drugs", "x": [ 14, 16 ], "y": 4, "chance": 80, "repeat": [ 1, 3 ] }, 184 { "group": "mags_milspec", "x": [ 2, 6 ], "y": 8, "chance": 100, "repeat": [ 3, 5 ] }, 185 { "group": "ammo_milspec", "x": [ 2, 6 ], "y": 8, "chance": 100, "repeat": [ 30, 250 ] }, 186 { "group": "grenades", "x": [ 2, 6 ], "y": 8, "chance": 100, "repeat": [ 5, 15 ] }, 187 { "group": "mil_hw", "x": [ 7, 8 ], "y": 8, "chance": 100, "repeat": [ 15, 40 ] }, 188 { "group": "mil_armor", "x": [ 7, 8 ], "y": 6, "chance": 65, "repeat": [ 1, 2 ] }, 189 { "group": "guns_rifle_milspec", "x": [ 2, 6 ], "y": 6, "chance": 80, "repeat": [ 1, 3 ] }, 190 { "group": "guns_rifle_milspec", "x": 5, "y": [ 19, 20 ], "chance": 80, "repeat": [ 1, 3 ] }, 191 { "group": "guns_launcher_milspec", "x": [ 2, 6 ], "y": 6, "chance": 80, "repeat": [ 1, 3 ] }, 192 { "group": "gear_soldier_sidearm", "x": [ 2, 6 ], "y": 6, "chance": 90, "repeat": [ 1, 3 ] }, 193 { "group": "fridge", "x": 7, "y": 15, "chance": 70, "repeat": 3 }, 194 { "group": "bunker_basement_food", "x": [ 5, 6 ], "y": 15, "chance": 75, "repeat": [ 1, 10 ] }, 195 { "group": "dining", "x": [ 8, 9 ], "y": 15, "chance": 75, "repeat": [ 1, 2 ] }, 196 { "group": "oven", "x": 4, "y": 15, "chance": 70 }, 197 { "group": "cleaning", "x": 2, "y": 17, "chance": 70 }, 198 { "group": "bionics_mil", "x": 16, "y": 4, "chance": 65 }, 199 { "group": "bunker_basement_suicide", "x": 3, "y": 3 }, 200 { "item": "mess_tray", "x": [ 5, 6 ], "y": 15, "chance": 50, "repeat": [ 4, 5 ] }, 201 { "item": "whiskey", "x": 5, "y": 3 }, 202 { "item": "glass", "x": 5, "y": 3 }, 203 { "item": "militarymap", "x": 5, "y": 3 }, 204 { "item": "anesthetic_kit", "x": 17, "y": 4, "ammo": 100 }, 205 { "item": "television", "x": 17, "y": 13, "chance": 95 }, 206 { "item": "stereo", "x": 19, "y": 15, "chance": 80 } 207 ], 208 "monster": { "~": { "monster": "mon_turret_rifle" } } 209 } 210 }, 211 { 212 "type": "mapgen", 213 "method": "json", 214 "om_terrain": [ "bunker_basement" ], 215 "weight": 500, 216 "object": { 217 "fill_ter": "t_floor", 218 "rows": [ 219 "########################", 220 "#MMMMMMMMMMMMMMMMMMMMMM#", 221 "#Ms 6 {{M3 5M ?A2MbCbM#", 222 "#Ms cY ^ + / M#", 223 "#Mt 2M MCCCgMbCbM#", 224 "#MMMMMMMMM MMMMMMMMMM#", 225 "#MrrrrrrrM 2Mb 23 bM#", 226 "#M + Ml lM#", 227 "#MLLLLLLLM5 * bM#", 228 "#MMMMMMMMMM Mb lM#", 229 "#Mc t t t2M Ml bM#", 230 "#Mt c c cWM Mlb bl lM#", 231 "#Mc * MMMMMMMMM#", 232 "#MMMM*MMMMM M} 2 %M#", 233 "#M2 TM * M#", 234 "#MSBOCCfCCM MYsssY{{M#", 235 "#MMMMMMMMMM ~ MMMMMMMMM#", 236 "#ML * * SM#", 237 "#MMMMM^MMMMM+MMM*MM2 SM#", 238 "#Ms Mr cd| 5M M M#", 239 "#Ms Mr cd| M*M*M*M*M#", 240 "#Mt * 2M << M1M1M&M&M#", 241 "#MMMMMMMMMMMMMMMMMMMMMM#", 242 "########################" 243 ], 244 "palettes": [ "basement_bunker" ], 245 "furniture": { 246 "r": "f_rack", 247 "f": "f_fridge", 248 "s": "f_sofa", 249 "t": "f_table", 250 "d": "f_desk", 251 "c": "f_chair", 252 "b": "f_bunkbed", 253 "1": "f_shower", 254 "S": "f_sink", 255 "O": "f_oven", 256 "C": "f_counter", 257 "T": "f_trashcan", 258 "B": "f_cupboard", 259 "l": "f_locker", 260 "L": "f_locker", 261 "A": "f_autodoc", 262 "Y": "f_table", 263 "?": "f_autodoc_couch", 264 "g": "f_glass_fridge", 265 "{": "f_bookcase", 266 "}": "f_pinball_machine", 267 "%": "f_floor_canvas", 268 "2": "f_air_conditioner", 269 "3": "f_speaker_cabinet" 270 }, 271 "items": { 272 "b": { "item": "bed", "chance": 60 }, 273 "{": { "item": "bunker_basement_books", "chance": 80 }, 274 "T": { "item": "trash_cart", "chance": 50 }, 275 "l": { "item": "bunker_basement_clothing", "chance": 50 }, 276 "t": { "item": "dining", "chance": 45 }, 277 "A": { "item": "autodoc_supplies", "chance": 100 } 278 }, 279 "place_loot": [ 280 { "group": "surgery", "x": [ 14, 16 ], "y": 4, "chance": 70, "repeat": [ 1, 3 ] }, 281 { "group": "bunker_basement_drugs", "x": [ 14, 16 ], "y": 4, "chance": 80, "repeat": [ 1, 3 ] }, 282 { "group": "mags_milspec", "x": [ 2, 6 ], "y": 8, "chance": 100, "repeat": [ 2, 6 ] }, 283 { "group": "ammo_milspec", "x": [ 2, 6 ], "y": 8, "chance": 100, "repeat": [ 30, 150 ] }, 284 { "group": "grenades", "x": [ 2, 6 ], "y": 8, "chance": 100, "repeat": [ 10, 30 ] }, 285 { "group": "mil_hw", "x": [ 7, 8 ], "y": 8, "chance": 100, "repeat": [ 5, 10 ] }, 286 { "group": "mil_armor", "x": [ 7, 8 ], "y": 6, "chance": 65, "repeat": [ 1, 2 ] }, 287 { "group": "guns_rifle_milspec", "x": [ 2, 6 ], "y": 6, "chance": 80, "repeat": [ 1, 2 ] }, 288 { "group": "guns_rifle_milspec", "x": 5, "y": [ 19, 20 ], "chance": 80, "repeat": [ 1, 2 ] }, 289 { "group": "guns_launcher_milspec", "x": [ 2, 6 ], "y": 6, "chance": 90, "repeat": [ 1, 2 ] }, 290 { "group": "gear_soldier_sidearm", "x": [ 2, 6 ], "y": 6, "chance": 90, "repeat": [ 1, 2 ] }, 291 { "group": "fridge", "x": 7, "y": 15, "chance": 70, "repeat": 3 }, 292 { "group": "bunker_basement_food", "x": [ 5, 6 ], "y": 15, "chance": 75, "repeat": [ 1, 2 ] }, 293 { "group": "dining", "x": [ 8, 9 ], "y": 15, "chance": 75, "repeat": [ 1, 2 ] }, 294 { "group": "oven", "x": 4, "y": 15, "chance": 70 }, 295 { "group": "cleaning", "x": 2, "y": 17, "chance": 70 }, 296 { "group": "bionics_mil", "x": 16, "y": 4, "chance": 65 }, 297 { "group": "alcohol", "x": 5, "y": 3 }, 298 { "item": "glass", "x": 5, "y": 3 }, 299 { "item": "militarymap", "x": 5, "y": 3, "chance": 80 }, 300 { "item": "anesthetic_kit", "x": 17, "y": 4, "ammo": 100 }, 301 { "item": "television", "x": 17, "y": 13, "chance": 95 }, 302 { "item": "stereo", "x": 19, "y": 15, "chance": 80 } 303 ], 304 "monster": { "~": { "monster": "mon_turret_rifle" } } 305 } 306 }, 307 { 308 "id": "bunker_basement_loot", 309 "type": "item_group", 310 "subtype": "distribution", 311 "ammo": 100, 312 "entries": [ 313 { "group": "bots", "prob": 1 }, 314 { "group": "guns_launcher_milspec", "prob": 1 }, 315 { "group": "guns_rifle_milspec", "prob": 2 }, 316 { "group": "energy_weapon_armory", "prob": 1 }, 317 { "group": "mags_milspec", "prob": 1 }, 318 { "group": "ammo_milspec", "prob": 120 }, 319 { "group": "grenades", "prob": 30 }, 320 { "group": "mil_armor", "prob": 1 }, 321 { "group": "mil_hw", "prob": 30 }, 322 { "group": "mil_food", "prob": 5 }, 323 { "group": "bionics_mil", "prob": 1 } 324 ] 325 }, 326 { 327 "type": "item_group", 328 "id": "bunker_basement_books", 329 "items": [ 330 { "group": "book_military", "prob": 50 }, 331 { "group": "book_survival", "prob": 50 }, 332 { "group": "magazines", "prob": 80 } 333 ] 334 }, 335 { 336 "type": "item_group", 337 "id": "bunker_basement_drugs", 338 "items": [ { "group": "drugs_pharmacy", "prob": 70 }, { "group": "drugs_soldier", "prob": 50 } ] 339 }, 340 { 341 "type": "item_group", 342 "id": "bunker_basement_food", 343 "items": [ { "group": "cannedfood", "prob": 80 }, { "group": "pasta", "prob": 50 } ] 344 }, 345 { 346 "type": "item_group", 347 "id": "bunker_basement_suicide", 348 "subtype": "collection", 349 "items": [ 350 { "item": "m1911", "charges": 6, "ammo-item": "45_acp" }, 351 { "item": "45_casing", "charges-min": 1, "charges-max": 1 }, 352 { "group": "underwear" }, 353 { "item": "corpse" } 354 ] 355 }, 356 { 357 "id": "bunker_basement_clothing", 358 "type": "item_group", 359 "items": [ 360 { "group": "clothing_soldier_shirt", "prob": 20 }, 361 { "item": "jacket_army", "prob": 20 }, 362 { "item": "pants_army", "prob": 20 }, 363 { "item": "boots_combat", "prob": 20 }, 364 { "item": "helmet_army", "prob": 20 }, 365 { "item": "gloves_tactical", "prob": 10 }, 366 { "item": "elbow_pads", "prob": 10 }, 367 { "group": "clothing_tactical_leg", "prob": 15 }, 368 { "group": "clothing_tactical_torso", "prob": 15 }, 369 { "group": "underwear" }, 370 { "distribution": [ { "item": "socks", "prob": 95 }, { "item": "socks_wool", "prob": 5 } ] }, 371 { 372 "distribution": [ 373 { "group": "clothing_glasses", "prob": 60 }, 374 { "item": "glasses_bal", "prob": 30 }, 375 { "item": "goggles_nv", "prob": 5 }, 376 { "item": "goggles_ir", "prob": 5 } 377 ], 378 "prob": 20 379 }, 380 { "group": "clothing_watch", "prob": 5 } 381 ] 382 } 383] 384