diff --git a/data/json/itemgroups/item_groups.json b/data/json/itemgroups/item_groups.json index 40b2af5509f2f..a42a2d835d307 100644 --- a/data/json/itemgroups/item_groups.json +++ b/data/json/itemgroups/item_groups.json @@ -5160,6 +5160,47 @@ [ "chem_nitric_acid", 5 ] ] }, + { + "type": "item_group", + "id": "mutagens", + "items": [ + [ "mutagen", 8 ], + [ "mutagen_plant", 2 ], + [ "mutagen_insect", 2 ], + [ "mutagen_spider", 2 ], + [ "mutagen_fish", 2 ], + [ "mutagen_slime", 2 ], + [ "mutagen_rat", 2 ], + [ "mutagen_beast", 2 ], + [ "mutagen_cattle", 2 ], + [ "mutagen_cephalopod", 2 ], + [ "mutagen_bird", 2 ], + [ "mutagen_lizard", 2 ], + [ "mutagen_troglobite", 2 ], + [ "mutagen_ursine", 2 ], + [ "mutagen_feline", 2 ], + [ "mutagen_lupine", 2 ], + [ "iv_mutagen", 6 ], + [ "iv_mutagen_plant", 2 ], + [ "iv_mutagen_insect", 2 ], + [ "iv_mutagen_spider", 2 ], + [ "iv_mutagen_fish", 2 ], + [ "iv_mutagen_slime", 2 ], + [ "iv_mutagen_rat", 2 ], + [ "iv_mutagen_beast", 2 ], + [ "iv_mutagen_cattle", 2 ], + [ "iv_mutagen_cephalopod", 2 ], + [ "iv_mutagen_bird", 2 ], + [ "iv_mutagen_lizard", 2 ], + [ "iv_mutagen_troglobite", 2 ], + [ "iv_mutagen_ursine", 2 ], + [ "iv_mutagen_feline", 2 ], + [ "iv_mutagen_lupine", 2 ], + [ "purifier", 10 ], + [ "iv_purifier", 8 ], + [ "syringe", 8 ] + ] + }, { "type": "item_group", "id": "mut_iv", diff --git a/data/json/itemgroups/tools.json b/data/json/itemgroups/tools.json index 80806cb9b1c5b..88c900ff246bc 100644 --- a/data/json/itemgroups/tools.json +++ b/data/json/itemgroups/tools.json @@ -383,6 +383,45 @@ [ "acetylene_machine", 1 ] ] }, + { + "type": "item_group", + "id": "tools_robotics", + "//": "tools and equipment you might find on robotics laboratories.", + "items": [ + [ "recipe_lab_elec", 4 ], + [ "UPS_off", 6 ], + [ "file", 10 ], + [ "atomic_lamp", 1 ], + [ "control_laptop", 1 ], + [ "bot_manhack", 2 ], + [ "teleporter", 1 ], + [ "laptop", 4 ], + [ "plut_cell", 4 ], + [ "superglue", 30 ], + [ "pliers", 10 ], + [ "matches", 10 ], + [ "glasses_safety", 20 ], + [ "duct_tape", 8 ], + [ "misc_repairkit", 15 ], + [ "welder", 10 ], + [ "soldering_iron", 8 ], + [ "extinguisher", 10 ], + [ "magnifying_glass", 10 ], + [ "multitool", 20 ], + [ "screwdriver_set", 20 ], + [ "flashlight", 20 ], + [ "mobile_memory_card_science", 40 ], + [ "camera_pro", 2 ], + [ "element", 5 ], + [ "battery", 10 ], + [ "goggles_welding", 20 ], + [ "sm_extinguisher", 10 ], + [ "toolbox", 5 ], + [ "tool_belt", 10 ], + [ "hand_vice", 10 ], + [ "wrench", 10 ] + ] + }, { "id": "hand_tools", "type": "item_group", diff --git a/data/json/mapgen/microlab/microlab_connector.json b/data/json/mapgen/microlab/microlab_connector.json new file mode 100644 index 0000000000000..816b7828222ce --- /dev/null +++ b/data/json/mapgen/microlab/microlab_connector.json @@ -0,0 +1,274 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "microlab_sub_connector" ], + "weight": 1000, + "object": { + "fill_ter": "t_concrete", + "rows": [ + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################" + ], + "palettes": [ "microlab" ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "microlab_rock_border" ], + "weight": 1000, + "object": { + "fill_ter": "t_concrete", + "rows": [ + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################" + ], + "palettes": [ "microlab" ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "microlab_sub_station" ], + "weight": 1000, + "object": { + "fill_ter": "t_concrete", + "rows": [ + "##| |##", + "##|^ |##", + "##|^ hhhh YY hhhh |##", + "##|^ |##", + "##|^ hhhh hhhh |##", + "##|^ |##", + "##|^ |^^^^^^|##", + "##||(((((| ||||||||##", + "###|l h ( YY |#########", + "###|l ( YY |#########", + "###|l ( |#########", + "###||2|||| |#########", + "###| | |#########", + "###| hd|G55||#########", + "###| ddd| ^|#########", + "###||5(((| ^|||||||###", + "###|B VV ^^|###", + "###|B YY ?|###", + "###|B dddd YY t ?|###", + "###|B d hd ?|###", + "###|B t? ^^|###", + "###|||||||| ||||||||###", + "##########|22|##########", + "##########| |##########" + ], + "palettes": [ "microlab" ], + "terrain": { "G": "t_card_science" }, + "items": { + "l": [ { "item": "guns_milspec", "chance": 10 }, { "item": "ammo_milspec", "chance": 70 } ], + "t": { "item": "magazines", "chance": 90 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "microlab_generic_sub_entry" ], + "weight": 1000, + "object": { + "fill_ter": "t_concrete", + "rows": [ + "||||||||||| |||||||||||", + " cc c | |^BBB| ", + " cc c c| | h|r i ", + " c| | dd|r c ", + " FFFFccccc| | h|r c ", + "|||||||||||YY|[===|| ", + " FF c|^???^ v| c ", + " c|? V| c ", + " c|? tt | i ", + " c| | ", + "|5|||| dddd |==2|", + " Y2 d hd 2Y ", + " Y2 ^^^^ 2Y ", + "|2|||| |||| ^|((2|", + " r| ^| ", + "cc r|n^^^ ^|^ ", + "cc hc||||||YY|[====| h ", + " c|FFFF| | h ^B|6tt ", + "|||||||22||22|dd B|||||", + " | |h nB|FFF ", + " c6 6c | ||||||| ", + " cc cc | |6h ", + " cc cc 2 |c ccccc ", + " | | " + ], + "palettes": [ "microlab" ], + "terrain": { "G": "t_card_science" }, + "items": { + "l": [ { "item": "guns_milspec", "chance": 10 }, { "item": "ammo_milspec", "chance": 70 } ], + "t": { "item": "magazines", "chance": 90 } + } + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic_surface_connector" ] ], + "method": "json", + "object": { + "fill_ter": "t_concrete", + "rows": [ + " | | |cccc| ", + " |=[==| |||||| ", + " ((2| | 2 2 i ", + " ( | cci| 2 2 c ", + " (@@| | |||||| c ", + "|||||| cci| |rrrr| ", + " F|F ( | | 2 c ", + " F|F ( cci| |||||| c ", + " F|F 2 | |rrrr| i ", + " |F |rrrr| | 2 ", + "|5|||||||||22|||||||||||", + " 2 YY 5TYY ", + " 2 YY 5 YY ", + "|2||||^??? yyyyy|(((|", + " r|t y 5 dd|", + "cc r|V tt yyyyy| hl|", + "cc hc|t y |||||", + " c|^??? yyyyy|###|", + "||||||||||| ^|((22|||#|", + " rrcc| hd^= ^|eeeeee|#|", + " c| dd = ^|eeeeee|#|", + " c6 6|B = ^|EeeeeE|#|", + " cc r|B [ ^|eeeeee|#|", + " | |22|||||||||||" + ], + "palettes": [ "microlab" ], + "terrain": { "e": "t_elevator", "E": "t_elevator_control" }, + "items": { + "l": [ { "item": "guns_milspec", "chance": 10 }, { "item": "ammo_milspec", "chance": 70 } ], + "t": { "item": "magazines", "chance": 90 } + } + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic_surface" ] ], + "method": "json", + "object": { + "fill_ter": "t_concrete", + "rows": [ + " yyyyyyyyyyyyyyyyyyyyyy ", + " yyyyyyyyyyyyyyyyyyyyyy ", + " y____________________y ", + " y____________________y ", + " y____________________y ", + " ||||||||||22|yyyyyyyyy ", + " | SS|________y ", + " | SS|________y ", + " | SS|________y ", + " | SS|________y ", + " | |((((|22||555555|y ", + " | |........|yyyyyy|. ", + " | |..dddd..|......|. ", + " | |^.d.hd..5yyyyyy| ", + " | |||||||..5......| ", + " | (V.??....Gyyyyyy| ", + " | (t.......|......| ", + " | (^???....|yyyyyy| ", + " | ||||||..^|yyyyyy| ", + " | |.hd^=..^|eeeeee| ", + " | |.dd.=..^|eeeeee| ", + " | |B...=..^|EeeeeE| ", + " | |B...[..^|eeeeee| ", + " ||||||||||||||||||||| " + ], + "palettes": [ "microlab" ], + "terrain": { + "e": "t_elevator", + "E": "t_elevator_control", + " ": "t_grass", + "_": "t_pavement", + ".": "t_thconc_floor", + "G": "t_card_science" + } + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic_surface_roof" ] ], + "method": "json", + "object": { + "fill_ter": "t_concrete", + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ................. ", + " ................. ", + " ................. ", + " ................. ", + " ................. ", + " ................. ", + " ................. ", + " ................. ", + " ................. ", + " ................. ", + " ................. ", + " ................. ", + " ................. ", + " ................. " + ], + "terrain": { " ": "t_open_air", ".": "t_concrete" } + } + } +] diff --git a/data/json/mapgen/microlab/microlab_generic.json b/data/json/mapgen/microlab/microlab_generic.json new file mode 100644 index 0000000000000..cd651cb2b5868 --- /dev/null +++ b/data/json/mapgen/microlab/microlab_generic.json @@ -0,0 +1,497 @@ +[ + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " cc | 2 |rrrr| ", + " cc ==[==| |||||| ", + " = | |i l|r i ", + " [ |22|i l|r c ", + " FFFF= | |i l|r c ", + "||||||||||| ||2|||| ", + " F|F |####| | c ", + " F|F |||||| | c ", + " F|F |???? | i ", + " | | Y", + "|5|||| dddddd |2|||", + " 2 Y dh^ d | ", + " 2 Y d ^hd | ", + "|2|||| dddddd |(((|", + " r| 2 ", + "cc r|???? |^ ", + "cc hc|||||| | h ", + " c|FFFF| | |6tt ", + "|||||||22|| ||((22|||||", + " | | |FF| ", + " c6 6c | |c | | ", + " cc cc | |6h ", + " cc cc | |c ccccc ", + " |22| " + ], + "palettes": [ "microlab" ], + "items": { "l": { "item": "cleaning", "chance": 50, "repeat": [ 1, 3 ] } } + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " cc | | |FFFF|6 ", + " cc F| ||||||6 h ", + " F| 2 |^ ", + "c= dd ||||||||r |6h ", + "c= dh |;|;| ;|r |6 ", + "|||22||||2|2|2||r |||||2", + " F| |##| |F =FFFF ", + " F| |||||| |F = ", + " F| |ll|i |F 2 cc ", + " 2 |i |i |F = cc ", + "||| ||2||||||2||||22|||", + " 2 Y ", + " 2 Y ", + "||2||||2||||||2| |||", + " r|i |iiiY | |c ", + "cc r|ll| | =[==c ", + "cc hc|||| | = =c ", + " c|@@|2|2|2|| = [ ", + "||2||| |;|;| ;| =[==||", + " =[=|||||||| | c c ", + " c Y 6| | c c ", + " iccc 6| | i i ", + " c 6| |||2|| ", + " c c|c |22| | c c " + ], + "palettes": [ "microlab" ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " cc | c| |c c| c ", + " cc | c| |||||| c ", + " | h 6| c| ", + " dd |==||||||| ?|6h ", + " hd |tt|^ = ?|6 ", + "|||=[|||| hth =Y ?||||||", + " c| |##| hth =Y V|h = ", + " c| |##| hth = c|dd = ", + " c|=[|##| hth = a| ] ", + " | |##|^ [ | = ", + "||| |||||||||| |=[=||", + " 2 ", + " 2 ", + "||2||||||======[[=| ||2", + " r|##|^ ^| |r ", + "cc r|##| htth hh| |r ", + "cc h6|||| htth tt| |r ", + " c| 2 tt| |r ", + "||||||;i|foee hh| |||", + " |||||||||||||| |c ", + " c 6| |c ", + " iccc 6| 2 ", + " c 6| ||||||||| ", + " c c|c |22|6hh6|cc " + ], + "palettes": [ "microlab" ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " cc c|c | |r F| ", + " cc | |r F| c ", + " FF| 2 F| c ", + " dd |||22|||||| ", + " hd rrr| 2 2 ", + "|||22|||| |||||||||||", + " c| |l 2 2 2 d^= ", + " c| |||| | | d = ", + " c| 2 | cc | ] ", + " 2 2 | cc | = ", + "|||||||||||22|||||||||||", + " |FFccFF| c | ", + " |F F| T | ", + "||2|| || c | |||", + " | c | 2 ", + "cc cc cc| 6 | 2 ", + "cc cc cc| | | ", + " h | | | ", + "||||||6tcc|^ ^| |2|", + " ||||||22|||||| | ", + " c 2 | c", + " iccc 2 | c", + " c || ||||||||| ", + " c c|c | |6hh6|cFc " + ], + "palettes": [ "microlab" ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " cc c|c | |c F|c ", + " cc | |c F|c c ", + " | | 2 c ", + " dd |||22|||||| ", + " hd FFF|hd c| ", + "|||5||||| d iccc|2===|", + " c| c| dh= ", + " c|cci cic iccc| d = ", + " c| c| ] ", + " |cci |FFF|66cccc| = ", + "2|||||||||||||||||||||||", + " ", + " ", + "||22((((((|||||22|||||||", + " |^hd rrr| ", + "cc cc cc| d r| ", + "cc cc cc| rrr| ", + " YY |W W| ", + "|| |6tcc||555||555||2|", + " |||||| | | ", + " c ccccc| X X|X X X| c", + " i c|XXXX|X X X| c", + " c c|||||||||||| ", + " c|c |^^|6hh6|cFc " + ], + "palettes": [ "microlab" ], + "furniture": { "X": "f_crate_c" }, + "terrain": { "W": "t_gates_mech_control_lab" }, + "items": { "X": { "item": "tools_science", "repeat": [ 2, 6 ] } } + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " cc c|r r| | c|c ", + " |||||||||| | ccc|c c ", + " |Y ||||||c c ", + " | 2 2 ", + " | ||||||| ||||||| ", + "|| |l+ +l|2||||", + " | ||| ||||||| ||| ccc ", + " 2 |;+ i|i +;| ", + " | ||| i|i ||| ", + " | |;+ i|i +;|FFrr ", + "|| ||||||||||||||||||||", + " ", + " ", + "||||||||||||||||||||||||", + " |ll| ( c| ", + " 2 dh 2 tt c| ", + " 2 d cccc ( c| ", + " | ||||||||| ", + "|| cccc ccc |rrr|F F|2|", + "F| h h 2 |F F| ", + " |FFccc ccrr|rrr|F F| c", + " ||||||||||||||||||2|| c", + " cFFc|cccc|^^|cccc| ", + " 2 | 2 | " + ], + "palettes": [ "microlab" ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " cc c|c c| | cc | ", + " |||||||||| | cc | c c ", + " |Y 2 | c c ", + " | |ccrr| c c ", + " | ||||||||||||||| ", + "|| |OO |2||||", + " | |O RRRRRRRR | ccc ", + " 2 ||| | ", + " | |th RRRRRRRR | ", + " | |tt |FFrr ", + "|| |((| RRRRRRRR ||||||", + " 2 2 Y 6|^ ", + " 2 2 Y 6|^ ", + "|| |((| RRRRRR66 R||2", + " | |O O|c ", + " 2 |O RRRRRRRR |||c ", + " 2 |O h6|c ", + " | |O RR6RRRRR 6|c ", + "|| ||||||||||||||||||||", + "F| |rcc|FF|ccr", + "c|Y | ", + "||2((|||||| | cci icc ", + " c|cccc| | ccc ccc ", + " c| | | " + ], + "palettes": [ "microlab" ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " cc c| | | cc | ", + " ||||||22|| | cc | c c ", + " 2 | 2 c c ", + " ( |ccrr| c c ", + " | ||||||||||||||| ", + "|| 2 2 6||||||", + " | 2 2 tt6RRRt O| ccc ", + " 2 |(( O| ", + " | |th 6RRRttt R| ", + " | |tt 6|FFrr ", + "|| ||||(((((((((|||||||", + " 2 2 ", + " 2 2 ", + "||22|||||||||||||||||||2", + " | |???^ dd^dd6ddd6d|c ", + "c| | 6h d hd hd|c ", + "c| 2 dd 2 ", + " | 2 2 ", + "||22||||||||||||||22||||", + "F| |ccc| |ccr", + "c|Y | ", + "||2((|||||| | ccc ", + " |cccc| | ccc ccc ", + " | | | " + ], + "palettes": [ "microlab" ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " cc c|cccc| | cc | ", + " |||||||||| | cc c c c ", + " F|UUUUUU| | cc c c c ", + " F| | | cc c c c ", + " F| cc | 2 ", + "|||| cc | | |2||||", + " cc | |c c| ccc ", + " cc | |t ht| ", + " | |ch c| ", + " |FFFFF|22|c66c|FFrr ", + "||22||||||| |||||||||||", + " 2 Y 2 ", + " 2 Y 2 ", + "||22||||||| a ?|||", + " ( |F U| tt ?|c ", + " ( |F U| a tt ?|c ", + " 2 |F U| ?|c ", + " | |F U| ^???tV??|c ", + "|| |||2((| |||||||||||", + " | |22|UUU|FF|ccr", + " | | | ", + " |2((|2(((| | cci icc ", + " c| ccc| | ccc ccc ", + " c| | | " + ], + "palettes": [ "microlab" ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " | | | cc | ", + " | cc | | cc | c c ", + " cc | cc 2 2 | c c ", + " cc | cc | | h h| c c ", + " | | |6666| ", + "||22||||||| ||||||2||||", + "c| |htth | ccc ", + " | |htth | ", + " | | ", + "c| |FFrr ", + "|| dddd ||||||", + "2 Y d hd 2 ", + "2 Y d d 2 ", + "|| dddd ||||2|", + "F| |ccr ", + "F| B|c ", + "F| |htth htth B|c ", + "F| |htth htth B|cc ", + "||22||||||||||||||||||2|", + "F| |ccc YY( UUU|ccc ", + "c|Y |c 2 |c ", + " |c |22| |F cc ", + " |ccc | |2(((|F cc ", + " cc| | | | " + ], + "palettes": [ "microlab" ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " | | | cc | ", + " cc | cc | | cc | c c ", + " c6 2 cc 2 2 | c c ", + " cc | | | h h| c c ", + " |FFFF| |6666| ", + "|||||||||||22|||||||2|||", + " t c|Y Y| |c ", + " t c| | Y|c ", + " || | Y|c ", + " i| | |c ", + "2|||| ddd ^|22||2||2", + " 2 d | 2 ", + " 2 6h | 2 ", + "2|||| ddd ^|22||||||", + " th6| |ccr ", + " t c| |c ", + " c| |c ", + " th6|Y Y|cc ", + "|||||||||||22|||||||||2|", + " |ccc | ( |ccc ", + " ccc |c | 2 Y |c ", + " c6c |ccc | ( |F cc ", + " ccc |c 2 |2(((|F cc ", + " |c | | | " + ], + "palettes": [ "microlab" ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " | | | cc | ", + " cc | cc | |||||| c c ", + " c6 2 cc 2 2 | c c ", + " cc | YY | | h h| c c ", + " |FFFF| |6666| ", + "|||||||||||22||||||2||||", + " t c| c| |B 6d |c ", + " t c| cc 6| |B hd Y|c ", + " || cc 6| |B d Y|c ", + " i| cc r| |B 2 ", + "2|||| cc r| |||||||||||", + " 2 2 | 2 Y 5 T ", + " ( ( Y | 2 Y 5 ", + "2||||c c c| |((((G |||", + " th6|c c 6| |dddd| |cc", + " t c|c c c| |Mh | | ", + " c|c c| | |2|| 2 ", + " th6|FFFFF| | | l|^^| ", + "||||||||||| |2|||||||2|", + " |ccc | |#####| ", + " ccc |c | |#####| ", + " c6c |ccc |YY|||||||||c ", + " ccc |c 2 |FFcc|F cc ", + " |c | | | " + ], + "palettes": [ "microlab" ], + "monster": { "T": { "monster": "mon_turret_rifle" }, "M": { "monster": "mon_zombie_bio_op" } } + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " | | | | ", + " 2 c| |cccc| cc ", + " c((2| cc| |||||| cc ", + " c( 2 6| |l l| ", + "cc( ( cc| |l l|FFc6 ", + "|||(2|||||| |||2||||||2", + " F| tttt( ^| ", + " c|r t( ^|c ", + " c|r t( |((((2((|c ", + " F| tttt( | Y 2 ", + "2|||2|||||| | RRR |||||", + " YY| | ", + " YY| RRR | ", + "||||||||||| |ORRRO| ||", + " |R66RRRR ( ||||||| |c", + " |R 2 |#| | ", + " || RRRR ( |#| | ", + "c|l ( |#| |||||c", + "||| RRRR ( |#| |FFF||", + " 2 2 |#| 2 ", + " |R66ROOOO( |#| | ccc ", + " |||||||||| |||22| ", + " cccc|cccc| | | ccc ", + " c|c 2 5 2 " + ], + "palettes": [ "microlab" ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " |c c| | | ", + " cccc|c c| | | c c ", + " c|||||22|| ||22|| c c ", + " 6| |t | ", + "cc| |t | ccc ", + "||| |||||||||t ||||||", + "rr| | R c RRR|FF", + " 2 | R c 6| ", + " 2 | 6| ", + "FF| |yyy RRR66RRRRR|FF", + "||| | y R||||||", + " |6 y RRRRR R| ", + " | y O| ", + "|2||||yyy RRRRR O| |||", + " |l o| |c ", + " c|l |R ttttt R| |c ", + " c|l |R R| | ", + " c|l RRR66RRR| | ", + "|||||||22||||||||||22|2|", + " 66 |l l| 2 | ", + " 66 |l l| 2 | ", + " 66 ||22|| ||||||||| ", + " 66 | | |c66c|ccc ", + " | | | | " + ], + "palettes": [ "microlab" ] + } + } +] diff --git a/data/json/mapgen/microlab/microlab_generic_edge.json b/data/json/mapgen/microlab/microlab_generic_edge.json new file mode 100644 index 0000000000000..13cdfd99ece20 --- /dev/null +++ b/data/json/mapgen/microlab/microlab_generic_edge.json @@ -0,0 +1,512 @@ +[ + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "concrete_wall_ew", + "object": { + "mapgensize": [ 24, 24 ], + "set": [ { "line": "terrain", "id": "t_concrete_wall", "x": 0, "y": 0, "x2": 23, "y2": 0 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "concrete_wall_ns", + "object": { + "mapgensize": [ 24, 24 ], + "set": [ { "line": "terrain", "id": "t_concrete_wall", "x": 0, "y": 0, "x2": 0, "y2": 23 } ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic_edge" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " | | | ", + " cc c 2 2 2 ", + " cc c c| | cc |r i ", + " c| | |r c ", + " FFFFccccc| |cccc|r c ", + "||||||||||| ||||||| ", + " FF c|h ^| ??? t| c ", + " c|dd | V| c ", + " c|h = V| i ", + " c| = ??? t| ", + "|5||||===[= |==2|", + " YY 2 ", + " YY 2 ", + "|2|||| |((2|", + " r| | ", + " c r| |^ ", + " c hc|||||| ||((22| h ", + " c|FFFF| | |6tt ", + "|||||||22||22||((22|||||", + " | | |FFF ", + " c6 6c | |c | ", + " cc cc | |6h ", + " cc cc 2 |c ccccc ", + " | | " + ], + "place_nested": [ + { "chunks": [ "concrete_wall_ew" ], "x": 0, "y": 0, "neighbors": { "north": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ns" ], "x": 23, "y": 0, "neighbors": { "east": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ew" ], "x": 0, "y": 23, "neighbors": { "south": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ns" ], "x": 0, "y": 0, "neighbors": { "west": "microlab_rock_border" } } + ], + "palettes": [ "microlab" ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic_edge" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " | | | ", + " cc c 2 2 2 ", + " cc c c| | 66 |r i ", + " c| 2 2 c ", + " F Fccccc| |6666|r c ", + "||22||||||| ||||||| ", + " |yyyy( | c ", + " 2yyyy( 6 | c ", + " 2yyyy( 6h | i ", + " |yyyy( 6 | ", + "|5||||((((( |==2|", + " 2 YY 2 ", + " 2 YY 2 ", + "|2|||| 6h |((2|", + " r| 6 | ", + "cc r|^^^^ |^ ", + "cc hc|||||| ||((22| h ", + " c2 2 | |6tt ", + "|||||| | ||((22|||||", + " | | |FFF ", + " c6 6c |22|c | ", + " cc cc | |6h ", + " cc cc | |c ccccc ", + " | 5 " + ], + "place_nested": [ + { "chunks": [ "concrete_wall_ew" ], "x": 0, "y": 0, "neighbors": { "north": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ns" ], "x": 23, "y": 0, "neighbors": { "east": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ew" ], "x": 0, "y": 23, "neighbors": { "south": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ns" ], "x": 0, "y": 0, "neighbors": { "west": "microlab_rock_border" } } + ], + "palettes": [ "microlab" ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic_edge_edge" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + "||||||||||| | | ", + "|#########| 2 2 ", + "|##|||||||| |||||||| ", + "|##| hth VV |6 ", + "|##| ^ |dh ", + "|||| hth ^ hth |d ", + " FF| ^ hth || ", + " | hth hth |d ", + " ||=====| |====||dh ", + " |^?? ^ ^ ?? ^|6 ", + "|5|| |||2|", + " YY ", + " YY ", + "|2||||||||| |22||||((2|", + " r|D | | D| ", + " c r|@@ | | @@| ", + " c hc|D | | D| ", + " c|@@ | | @@| ", + "||2|||D |22| D|((2|", + " 6|@@ | | @@| ", + " 6|D 2 | D|c ", + " c|@@ 2 | @@|c ", + " c| ll| |ll |c ", + " |||||| ||||||| " + ], + "place_nested": [ + { "chunks": [ "concrete_wall_ew" ], "x": 0, "y": 0, "neighbors": { "north": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ns" ], "x": 23, "y": 0, "neighbors": { "east": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ew" ], "x": 0, "y": 23, "neighbors": { "south": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ns" ], "x": 0, "y": 0, "neighbors": { "west": "microlab_rock_border" } } + ], + "palettes": [ "microlab" ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic_edge" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + "||||||||||| | | ", + "|tRt yyyy| 2 2 ", + "| y y| |||||||| ", + "|tRt y y| |UUUUU|6 ", + "| y y| | |dh ", + "|RRR yyyy| | ccc ||| ", + "| 66 | 2 |UU ", + "|RRR | 2 |d ", + "| | |F6ccF|dh ", + "|OOOO | |||||||6 ", + "||||||||22| ^^^|||2|", + " ", + " ", + "|2||||||||| |||||||((2|", + " 6|hdh 2 2 hdh|U ", + " t t| dh = = hd |U ", + " t t|^ = = ^|cc ", + " t|||||| |||||||c ", + "||2|||^ 2 2 ^|((2|", + " 6|^hd = = d B|c ", + " c 6|^ dh= = hdhB|c ", + " c c|||||| |||||||c ", + " c c| 2 2 FF|UU ", + " | | | | " + ], + "place_nested": [ + { "chunks": [ "concrete_wall_ew" ], "x": 0, "y": 0, "neighbors": { "north": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ns" ], "x": 23, "y": 0, "neighbors": { "east": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ew" ], "x": 0, "y": 23, "neighbors": { "south": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ns" ], "x": 0, "y": 0, "neighbors": { "west": "microlab_rock_border" } } + ], + "palettes": [ "microlab" ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic_edge" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + "||||||||||| | | ", + "|OOOOOOOOO| 2 2 ", + "|O O| |||||||| ", + "|O RRR 5 |66666|6 ", + "|OOOOOOOOO| 2 |dh ", + "||||||||||| |(((((||| |", + " ttRRRttO| ^|6 ", + " hO| V|6 ", + " h | ^|6 ", + " tRRt | V|6 ", + "||||||||22| ^|||2|", + " ", + " ", + "|2||||||||| |||||||((2|", + " 6|hdh 2 2 hdh|c ", + " t t| dh = = hd |c ", + " t t|^ = = ^|cc ", + " t|||||| |||||||c ", + "||2|||^ 2 2 ^|((2|", + " 6|^hd = = d B|c ", + " c 6|^ dh= = hdhB|c ", + " c c|||||| |||||||c ", + " c c| 2 2 F|c ", + " | | | | " + ], + "place_nested": [ + { "chunks": [ "concrete_wall_ew" ], "x": 0, "y": 0, "neighbors": { "north": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ns" ], "x": 23, "y": 0, "neighbors": { "east": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ew" ], "x": 0, "y": 23, "neighbors": { "south": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ns" ], "x": 0, "y": 0, "neighbors": { "west": "microlab_rock_border" } } + ], + "palettes": [ "microlab" ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic_edge" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " | | | | ", + " U|||||||| |tt 2 ", + " U|D@D@D@| |||||||||||", + " U| @ @ @| htth ^V |", + " U| | htth ^ |", + "|||| 2 |", + " FF| 2 htth ^ |", + " U| | htth ^ |", + " U| @ @ @| |", + " U|D@D@D@| htth ^ |", + "|5||||||||| htth ^ |", + " YY ", + " YY ", + "|2||||||||| |22(((|((2|", + " |D@D@D@| | ^| ", + " c | @ @ @| | hh|cc ", + " c | | | tt|cc ", + " | @ @ 2 | hh| ", + "||2| @ @ | | |((2|", + " | | |||2|||U ", + " U| @ @ @| | |U ", + " U|D@D@D@| |@ h|U ", + " U|||||||| |@D t|U ", + " | | ||||||| " + ], + "place_nested": [ + { "chunks": [ "concrete_wall_ew" ], "x": 0, "y": 0, "neighbors": { "north": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ns" ], "x": 23, "y": 0, "neighbors": { "east": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ew" ], "x": 0, "y": 23, "neighbors": { "south": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ns" ], "x": 0, "y": 0, "neighbors": { "west": "microlab_rock_border" } } + ], + "palettes": [ "microlab" ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic_edge" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " | | | ", + " cccc U| |c hc|UUU ", + " cUUc U| |c c||||||", + " c c 2 |6h lll|", + " 2 |6h |", + "||||((((((( |||||||((2|", + " ( ( nn^^^^( |", + " 2 RR ( YY( |", + " 2 ( YY( |", + " ( 6666 ( ( |", + "|5||||||||| ||||((2|", + " ", + " ", + "||||| || |22(((|((2|", + " | | | ^| ", + " U | | | hh|cc ", + " U | | | tt|cc ", + " | | | hh| ", + "||2|||22||| | |((2|", + " Uc UU( |||2|||U ", + " c ( | |U ", + " ch h h( |@ h|U ", + " c UUUcc| |@D t|U ", + " |||||||| ||||||| " + ], + "place_nested": [ + { "chunks": [ "concrete_wall_ew" ], "x": 0, "y": 0, "neighbors": { "north": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ns" ], "x": 23, "y": 0, "neighbors": { "east": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ew" ], "x": 0, "y": 23, "neighbors": { "south": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ns" ], "x": 0, "y": 0, "neighbors": { "west": "microlab_rock_border" } } + ], + "palettes": [ "microlab" ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic_edge" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " | | | ", + " U h U| |U U|U ", + " U ccc U| |U U|U |", + " ||||||||22|U |", + " 2 2 |6h UU |", + "||||((((((( |||||||((2|", + " ( cc ( nn^^^^( |", + " 2 2 YY( |", + " 2 2 YY( |", + " ( cc ( ( |", + "|5||((((((| ^^||||((2|", + " ", + " ", + "||||====[|| |22(((|((2|", + " |dddd B| | R| ", + " U | h B| | hR|hc ", + " U | B| |O 6|cc ", + " |^^ B| |O 6| ", + "||2|||22||| | hR|((2|", + " Uc UU( | R|U ", + " c 2 |yyyyy|U ", + " c ( | |U ", + " c |c cc c| | |U ", + " | | ||||||| " + ], + "place_nested": [ + { "chunks": [ "concrete_wall_ew" ], "x": 0, "y": 0, "neighbors": { "north": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ns" ], "x": 23, "y": 0, "neighbors": { "east": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ew" ], "x": 0, "y": 23, "neighbors": { "south": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ns" ], "x": 0, "y": 0, "neighbors": { "west": "microlab_rock_border" } } + ], + "palettes": [ "microlab" ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic_edge" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " | cc | | | ", + " 6|||||||| |U U|c hc ", + " 6| iii 2 |U U|c hc ", + " 6| | |((((|h ", + " 66||+|+|+| | ", + "||||& |&|&| |UUUUUU ||", + " FF|||||||| |||||||22| ", + " c|^^^ | ", + " 6| | ", + " 6| | ", + "|5|| |||||||||||||| ||", + " YY ", + " YY ", + "|2|| ||||||||22(((|((2|", + " | | h 2 6| ", + " c | |ccc|U cc h6|cc ", + " c | |ccc|U cc 6|cc ", + " | | h 2 h6| ", + "||2| |||||||| 6|((2|", + " U | |22(((|U ", + " c | | cc6|U ", + " c |||||2|| | h |U ", + " 2 c|U U| |FFFFF|U ", + " | | ||||||| " + ], + "place_nested": [ + { "chunks": [ "concrete_wall_ew" ], "x": 0, "y": 0, "neighbors": { "north": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ns" ], "x": 23, "y": 0, "neighbors": { "east": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ew" ], "x": 0, "y": 23, "neighbors": { "south": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ns" ], "x": 0, "y": 0, "neighbors": { "west": "microlab_rock_border" } } + ], + "palettes": [ "microlab" ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic_edge" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " | cc | | | ", + " 6|||||||| |U U|c hc ", + " 6| iii 2YY|U U|c hc ", + " 6| | |(22(|h ", + " 66||+|+|+| | YY ", + "||||& |&|&| |UUUUUU ||", + " FF||||||||22|||||||22| ", + " c|B^^ [ 2 F| | ", + " 6|B hd= |c F| | ", + " 6|B dd6= |ccc | | ", + "|5||=[===== |||(((| ||", + " 2YY YY 2YY ", + " 2YY YY 2YY ", + "|2|| ||||| |22(((|((2|", + " c| ( h 2 ( 6| ", + " c| (ccc( (ccYh6|cc ", + " c| (ccc( (ccY 6|cc ", + " c| ( h 2 ( h6| ", + "|2|| ||||| | 6|((2|", + " U| YY|22(((|U ", + " U| YY| cc6|U ", + " U|2|||2||22| h |U ", + " | c|U U| |FFFFF|U ", + " | | ||||||| " + ], + "place_nested": [ + { "chunks": [ "concrete_wall_ew" ], "x": 0, "y": 0, "neighbors": { "north": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ns" ], "x": 23, "y": 0, "neighbors": { "east": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ew" ], "x": 0, "y": 23, "neighbors": { "south": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ns" ], "x": 0, "y": 0, "neighbors": { "west": "microlab_rock_border" } } + ], + "palettes": [ "microlab" ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic_edge" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " | cc | | | ", + " 6|||||||| |U U|c hc ", + " 6|U 2YY|U U|c hc ", + " 6|U ccci| |(22(|h ", + " 66|U | | YY ", + "||||U ccci| |UUUUUU ||", + " FF||2|||||22|||||||22| ", + " c| |U | 2 F| | ", + " 6| |U | |c F| | ", + " 6| |ch | |ccc | | ", + "|5|| |c | |||(((| ||", + " 2YY|ch | 2YY ", + " 2YY|cc | 2YY ", + "|2|| |||2| |22(((|((2|", + " c| ( h ( ( 6|h ", + " c| (cc ( (ccYh6|66 ", + " c| (cc ( (ccY 6|66 ", + " c| ( h ( ( h6|h ", + "|2|| |||2| | 6|((2|", + " U| YY|22(((|6 ", + " U| YY| 666|c ", + " U|2|||2||22| h |c ", + " | c|U U| |^BBB^|U ", + " | | ||||||| " + ], + "place_nested": [ + { "chunks": [ "concrete_wall_ew" ], "x": 0, "y": 0, "neighbors": { "north": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ns" ], "x": 23, "y": 0, "neighbors": { "east": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ew" ], "x": 0, "y": 23, "neighbors": { "south": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ns" ], "x": 0, "y": 0, "neighbors": { "west": "microlab_rock_border" } } + ], + "palettes": [ "microlab" ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic_edge" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " | cc | | | ", + " 6|||||||| |U U|c hc ", + " 6|U 2YY|U U|c hc ", + " 6|U ccci| |(22(|h ", + " 66|U | | YY ", + "||||U ccci| |UUUUUU ||", + " FF||2|||||2||||||||||| ", + " c| 2 FUUU ", + " 6|^ hhh ^|c FU U ", + " 6|^ ttt ^|ccc ", + "|5|| hh h|||(((|||||", + " 2Y YY ", + " 2Y YY ", + "|2||=======[=|22(((|((2|", + " c|? t ? Y6| c ", + " c|? t ? Y^| cc ", + " c|? t ? ^| cc c ", + " c|^ ^| c ", + "|2||v ^| |((2|", + " U| Y^|22(((|6 ", + " U| ^^ Y^| 666|c ", + " U|2|||2||2|| h |c ", + " U |UU U| |^BBB^|U ", + " | | ||||||| " + ], + "place_nested": [ + { "chunks": [ "concrete_wall_ew" ], "x": 0, "y": 0, "neighbors": { "north": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ns" ], "x": 23, "y": 0, "neighbors": { "east": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ew" ], "x": 0, "y": 23, "neighbors": { "south": "microlab_rock_border" } }, + { "chunks": [ "concrete_wall_ns" ], "x": 0, "y": 0, "neighbors": { "west": "microlab_rock_border" } } + ], + "palettes": [ "microlab" ] + } + } +] diff --git a/data/json/mapgen/microlab/microlab_special_tiles.json b/data/json/mapgen/microlab/microlab_special_tiles.json new file mode 100644 index 0000000000000..3cb252a95d5eb --- /dev/null +++ b/data/json/mapgen/microlab/microlab_special_tiles.json @@ -0,0 +1,176 @@ +[ + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " cc | c| |c c|r ", + " cc | c| |c c|r c ", + " | h 6| 2 2 c ", + " dd |==|||22||||||6h ", + " hd |tt|-- -----|6 ", + "|||22||||- -fYf-||||||", + " c| |##|-dd -f f-|hd^= ", + " c| ||||-h -f f-| d = ", + " c| c|-G55-f f-| ] ", + " 2 c|- --2--| = ", + "||| c|- -||||||", + " ?|-Y cc c-| ", + " ?|- cc c-| ", + "||2||||||-h c-| |||", + " r|-tt- c-| |r ", + "cc c r||((- Y-| |r ", + "cc c rr|-@;-5- h-| |r ", + " r|-@M5 -dd-| |r ", + "||||||rr|---------| |||", + " |||||||||||||| |c ", + " c 6| |c ", + " iccc 6| 2 ", + " c 6| ||22||||| ", + " c c|c |22| |cc " + ], + "palettes": [ "microlab" ], + "terrain": { "G": "t_card_science" }, + "items": { "f": { "item": "mutagens", "chance": 60, "repeat": [ 1, 4 ] } }, + "monster": { "M": { "monster": "mon_mutant_experimental" } }, + "place_monsters": [ { "monster": "GROUP_LAB", "chance": 2, "x": [ 2, 21 ], "y": [ 2, 21 ], "repeat": [ 1, 5 ] } ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " | cc | | cc | ", + " 2 2 2 | c c ", + " F||||||| |||||||c c ", + " F|m 5 |22|0c7c0|c c ", + " F|((( ( | | ", + "|||||m 5 ( |((2((| ||", + " 66|((( ( c| ", + " |m 5 ( 6| c ", + " cc|||| |(((( c| c ", + " | 2 5 ( | ", + "2((||2||((| m( ||2||", + " 2 ((((( 2 ", + " 2 2 ", + "2((|| ||2||", + " c| d6d |c ", + " c c| d6d h d6d|c c ", + " c c| h h |c c ", + " c| |F ", + "||||| |||2|", + "c66c|FFFFFF |ccccc|cc ", + " c c|||||||22||||||| ", + " c cc(ccc | |FFFF| cc ", + " c 2 ||22|| cc ", + " ( | | | " + ], + "palettes": [ "microlab" ], + "terrain": { "0": "t_vat" }, + "monster": { "T": { "monster": "mon_mutant_experimental" } }, + "place_items": [ ], + "place_monsters": [ { "monster": "GROUP_LAB", "chance": 2, "x": [ 2, 21 ], "y": [ 2, 21 ], "repeat": [ 1, 5 ] } ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + " | cc 2 2 cc | ", + " | |^^| |cccc ", + " ||||||||||||||||||||c ", + " |------------------|6 ", + " |-F cccccc -lll -|r ", + "|||-F 2 c-||2", + " |--- cc cc - h6-| ", + " |-F cc cc - h c-|c ", + " |-F cc cc -cccc-|c ", + " |--- -((((-| ", + "2|G 2 7-|||", + " 5 T----22---- @@-| ", + " 5 T-h 5 7-| ", + "||-lll-66 5 -|||", + " |-----(((222---------|c", + " |-0 0 0 0 0 0 0 0 -| ", + " |-0 0 0 0 0 0 0 0 -| ", + "c|- -|c", + "||-0 0 0 0 0 0 0 0 0 -||", + "c|-0 0 0 0 0 0 0 0 0 -|F", + " |--------------------|F", + " |||||||||||||||||||||||", + " cccc|c |^^| | cc ", + " c|c 2 2 | " + ], + "palettes": [ "microlab" ], + "terrain": { "0": "t_vat", "G": "t_card_science" }, + "monster": { "T": { "monster": "mon_turret_rifle" } }, + "place_monsters": [ { "monster": "GROUP_LAB", "chance": 2, "x": [ 2, 21 ], "y": [ 2, 21 ], "repeat": [ 1, 5 ] } ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "microlab_generic" ] ], + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + "^|FFF|c c| |c c| ", + " |||||||||| |||||||||| ", + " |D D| |^^^^|ccc| ", + " |@@ @@| 2 2 ", + "^|D T D| | | ", + "||@@ @@| |2(((||||||", + "r| 2 | O| ", + "r|||||2|||| | RR O| ", + "r|l | | l| | RR O| ", + " |l | 2 l| | O| ", + "2||||||||||22| |-tt-|||", + " YY| |-((--|^", + " YY| |-@Ti-|^", + "|||||2||||||||5G|-@ ;-||", + " | |---5----2--| ", + " | cc cc |-p Y p-| ", + " | cc cc |-p 7 p-|t", + " | cc |-p / T p-|t", + "|| cc |- -||", + " |2||| |-(- -(- -| ", + " | |dh d|-T-6-T-ppp-| ", + " 2 |dddd|-----------| ", + " |||||||||||||||||||||| ", + " |ttt |^^| cc | " + ], + "palettes": [ "microlab" ], + "terrain": { "G": "t_card_science" }, + "furniture": { "7": "f_autodoc", "/": "f_autodoc_couch", "T": "f_counter", "p": "f_counter" }, + "items": { + "p": { "item": "bionics", "chance": 20 }, + "T": [ + { "item": "bionics_sci", "chance": 100, "repeat": [ 1, 2 ] }, + { "item": "bionics", "chance": 100, "repeat": [ 1, 3 ] } + ] + }, + "place_loot": [ { "item": "anesthetic_kit", "x": 20, "y": 15 } ], + "place_monsters": [ { "monster": "GROUP_LAB", "x": [ 2, 21 ], "y": [ 2, 21 ], "repeat": [ 1, 5 ] } ], + "monster": { "T": { "monster": "mon_prototype_cyborg" } }, + "computers": { + "6": { + "name": "Surgery room computer", + "security": 3, + "options": [ + { "name": "Open Storage Chambers", "security": 5, "action": "release_bionics" }, + { "name": "Manifest", "action": "list_bionics" } + ], + "failures": [ { "action": "manhacks" }, { "action": "secubots" } ] + } + } + } + } +] diff --git a/data/json/mapgen_palettes/microlab.json b/data/json/mapgen_palettes/microlab.json new file mode 100644 index 0000000000000..e60bcc3cc3e90 --- /dev/null +++ b/data/json/mapgen_palettes/microlab.json @@ -0,0 +1,81 @@ +[ + { + "type": "palette", + "id": "microlab", + "terrain": { + "+": "t_door_c", + ".": "t_metal_floor", + "3": "t_door_locked", + "2": "t_door_glass_frosted_lab_c", + "4": "t_door_metal_pickable", + "5": "t_door_metal_locked", + "6": "t_console_broken", + "[": "t_door_glass_c", + "-": "t_wall_metal", + "y": "t_pavement_y", + "|": "t_concrete_wall", + "=": "t_wall_glass", + "(": "t_reinforced_glass", + "e": "t_elevator", + "E": "t_elevator_control", + "<": "t_stairs_up", + ">": "t_stairs_down", + "Y": "t_utility_light", + "#": "t_rock" + }, + "furniture": { + "&": "f_toilet", + "~": "f_shower", + "@": "f_bed", + "a": "f_armchair", + "k": "f_cupboard", + "D": "f_dresser", + "h": "f_chair", + "b": "f_bench", + "B": "f_bookcase", + "c": "f_counter", + "l": "f_locker", + "n": "f_trashcan", + "d": "f_desk", + "f": "f_fridge", + "F": "f_glass_fridge", + "o": "f_oven", + "O": "f_utility_shelf", + "U": "f_utility_shelf", + "i": "f_sink", + "r": "f_rack", + "?": "f_sofa", + "t": "f_table", + "R": "f_table", + "^": "f_indoor_plant", + "x": "f_safe_l" + }, + "toilets": { ";": { } }, + "items": { + "d": { "item": "office", "chance": 70, "repeat": [ 1, 3 ] }, + "B": [ { "item": "textbooks", "chance": 50 }, { "item": "manuals", "chance": 50 } ], + "F": [ + { "item": "supplies_reagents_lab", "chance": 70, "repeat": [ 2, 5 ] }, + { "item": "supplies_samples_lab", "chance": 40, "repeat": [ 1, 3 ] } + ], + "U": [ + { "item": "tools_science", "chance": 30, "repeat": [ 1, 3 ] }, + { "item": "supplies_reagents_lab", "chance": 70, "repeat": [ 1, 3 ] }, + { "item": "supplies_samples_lab", "chance": 10, "repeat": [ 1, 2 ] } + ], + "c": [ + { "item": "tools_science", "chance": 30, "repeat": [ 1, 3 ] }, + { "item": "supplies_reagents_lab", "chance": 70, "repeat": [ 1, 3 ] }, + { "item": "supplies_samples_lab", "chance": 10, "repeat": [ 1, 2 ] } + ], + "R": [ + { "item": "tools_robotics", "chance": 20, "repeat": [ 1, 3 ] }, + { "item": "robots", "chance": 40, "repeat": [ 1, 3 ] }, + { "item": "supplies_electronics", "chance": 40, "repeat": [ 1, 3 ] } + ], + "O": [ { "item": "tools_robotics", "chance": 40, "repeat": [ 1, 3 ] }, { "item": "schematics", "chance": 2 } ], + "i": { "item": "cleaning", "chance": 20 } + }, + "vendingmachines": { "V": { } } + } +] diff --git a/data/json/monstergroups/lab.json b/data/json/monstergroups/lab.json index 7f50e81061b6b..6d185f3415842 100644 --- a/data/json/monstergroups/lab.json +++ b/data/json/monstergroups/lab.json @@ -107,5 +107,31 @@ "name": "GROUP_LAB_CYBORG", "default": "mon_broken_cyborg", "monsters": [ { "monster": "mon_prototype_cyborg", "freq": 400, "cost_multiplier": 0 } ] + }, + { + "type": "monstergroup", + "name": "GROUP_MICROLAB", + "default": "mon_zombie_scientist", + "monsters": [ + { "monster": "mon_blob_small", "freq": 40, "cost_multiplier": 0, "pack_size": [ 3, 6 ] }, + { "monster": "mon_zombie_scientist", "freq": 40, "cost_multiplier": 0, "pack_size": [ 1, 5 ] }, + { "monster": "mon_science_bot", "freq": 40, "cost_multiplier": 2 }, + { "monster": "mon_zombie_labsecurity", "freq": 40, "cost_multiplier": 0, "pack_size": [ 2, 3 ] }, + { "monster": "mon_zombie_hazmat", "freq": 40, "cost_multiplier": 1, "pack_size": [ 1, 3 ] }, + { "monster": "mon_manhack", "freq": 20, "cost_multiplier": 1, "pack_size": [ 3, 12 ] }, + { "monster": "mon_mutant_experimental", "freq": 10, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_skitterbot", "freq": 10, "cost_multiplier": 0, "pack_size": [ 2, 3 ] }, + { "monster": "mon_secubot", "freq": 2, "cost_multiplier": 5 }, + { "monster": "mon_zombie_bio_op", "freq": 10, "cost_multiplier": 3 }, + { "monster": "mon_zombie", "freq": 40, "cost_multiplier": 1, "pack_size": [ 2, 7 ] }, + { "monster": "mon_zombie_fat", "freq": 40, "cost_multiplier": 1, "pack_size": [ 2, 4 ] }, + { "monster": "mon_zombie_tough", "freq": 20, "cost_multiplier": 2, "pack_size": [ 2, 4 ] }, + { "monster": "mon_zombie_crawler", "freq": 10, "cost_multiplier": 1 }, + { "monster": "mon_zombie_technician", "freq": 10, "cost_multiplier": 2 }, + { "monster": "mon_zombie_armored", "freq": 1, "cost_multiplier": 5 }, + { "monster": "mon_zombie_electric", "freq": 10, "cost_multiplier": 3 }, + { "monster": "mon_zombie_necro", "freq": 1, "cost_multiplier": 15 }, + { "monster": "mon_zombie_brute_shocker", "freq": 1, "cost_multiplier": 5 } + ] } ] diff --git a/data/json/overmap/overmap_special/specials.json b/data/json/overmap/overmap_special/specials.json index 7be59921c8a90..844df613f9a87 100644 --- a/data/json/overmap/overmap_special/specials.json +++ b/data/json/overmap/overmap_special/specials.json @@ -3995,6 +3995,101 @@ "occurrences": [ 1, 1 ], "flags": [ "UNIQUE" ] }, + { + "type": "overmap_special", + "id": "4x4_microlab", + "overmaps": [ + { "point": [ 2, -2, -2 ], "overmap": "microlab_sub_connector_north" }, + { "point": [ 2, -1, -2 ], "overmap": "microlab_sub_station_north" }, + { "point": [ 0, -1, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ 1, -1, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ 3, -1, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ 4, -1, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ -1, 0, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ 0, 0, -2 ], "overmap": "microlab_generic_edge" }, + { "point": [ 1, 0, -2 ], "overmap": "microlab_generic_edge" }, + { "point": [ 2, 0, -2 ], "overmap": "microlab_generic_sub_entry_north" }, + { "point": [ 3, 0, -2 ], "overmap": "microlab_generic_edge" }, + { "point": [ 4, 0, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ -1, 1, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ 0, 1, -2 ], "overmap": "microlab_generic_edge" }, + { "point": [ 1, 1, -2 ], "overmap": "microlab_generic" }, + { "point": [ 2, 1, -2 ], "overmap": "microlab_generic" }, + { "point": [ 3, 1, -2 ], "overmap": "microlab_generic_edge" }, + { "point": [ 4, 1, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ -1, 2, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ 0, 2, -2 ], "overmap": "microlab_generic_edge" }, + { "point": [ 1, 2, -2 ], "overmap": "microlab_generic" }, + { "point": [ 2, 2, -2 ], "overmap": "microlab_generic" }, + { "point": [ 3, 2, -2 ], "overmap": "microlab_generic_edge" }, + { "point": [ 4, 2, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ -1, 3, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ 0, 3, -2 ], "overmap": "microlab_generic_edge" }, + { "point": [ 1, 3, -2 ], "overmap": "microlab_generic_edge" }, + { "point": [ 2, 3, -2 ], "overmap": "microlab_generic_edge" }, + { "point": [ 3, 3, -2 ], "overmap": "microlab_generic_edge" }, + { "point": [ 4, 3, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ -1, 4, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ 0, 4, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ 1, 4, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ 2, 4, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ 3, 4, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ 4, 4, -2 ], "overmap": "microlab_rock_border" } + ], + "locations": [ "wilderness" ], + "city_distance": [ 3, -1 ], + "city_sizes": [ 1, 16 ], + "occurrences": [ 4, 8 ] + }, + { + "type": "overmap_special", + "id": "4x4_microlab_surface", + "overmaps": [ + { "point": [ 2, 1, 1 ], "overmap": "microlab_generic_surface_roof_north" }, + { "point": [ 2, 1, 0 ], "overmap": "microlab_generic_surface_north" }, + { "point": [ 2, -2, -2 ], "overmap": "microlab_sub_connector_north" }, + { "point": [ 2, -1, -2 ], "overmap": "microlab_sub_station_north" }, + { "point": [ 0, -1, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ 1, -1, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ 3, -1, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ 4, -1, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ -1, 0, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ 0, 0, -2 ], "overmap": "microlab_generic_edge" }, + { "point": [ 1, 0, -2 ], "overmap": "microlab_generic_edge" }, + { "point": [ 2, 0, -2 ], "overmap": "microlab_generic_sub_entry_north" }, + { "point": [ 3, 0, -2 ], "overmap": "microlab_generic_edge" }, + { "point": [ 4, 0, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ -1, 1, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ 0, 1, -2 ], "overmap": "microlab_generic_edge" }, + { "point": [ 1, 1, -2 ], "overmap": "microlab_generic" }, + { "point": [ 2, 1, -2 ], "overmap": "microlab_generic_surface_connector" }, + { "point": [ 3, 1, -2 ], "overmap": "microlab_generic_edge" }, + { "point": [ 4, 1, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ -1, 2, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ 0, 2, -2 ], "overmap": "microlab_generic_edge" }, + { "point": [ 1, 2, -2 ], "overmap": "microlab_generic" }, + { "point": [ 2, 2, -2 ], "overmap": "microlab_generic" }, + { "point": [ 3, 2, -2 ], "overmap": "microlab_generic_edge" }, + { "point": [ 4, 2, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ -1, 3, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ 0, 3, -2 ], "overmap": "microlab_generic_edge" }, + { "point": [ 1, 3, -2 ], "overmap": "microlab_generic_edge" }, + { "point": [ 2, 3, -2 ], "overmap": "microlab_generic_edge" }, + { "point": [ 3, 3, -2 ], "overmap": "microlab_generic_edge" }, + { "point": [ 4, 3, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ -1, 4, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ 0, 4, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ 1, 4, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ 2, 4, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ 3, 4, -2 ], "overmap": "microlab_rock_border" }, + { "point": [ 4, 4, -2 ], "overmap": "microlab_rock_border" } + ], + "connections": [ { "point": [ 2, 0, 0 ], "terrain": "road", "connection": "local_road", "from": [ 2, 1, 0 ] } ], + "locations": [ "wilderness" ], + "city_distance": [ 3, -1 ], + "city_sizes": [ 1, 16 ], + "occurrences": [ 0, 2 ] + }, { "type": "overmap_special", "id": "ws_survivor_bunker_place", diff --git a/data/json/overmap/overmap_terrain/overmap_terrain_microlab.json b/data/json/overmap/overmap_terrain/overmap_terrain_microlab.json new file mode 100644 index 0000000000000..c97adcce3a1eb --- /dev/null +++ b/data/json/overmap/overmap_terrain/overmap_terrain_microlab.json @@ -0,0 +1,65 @@ +[ + { + "type": "overmap_terrain", + "id": "microlab_generic", + "name": "science lab", + "sym": "L", + "color": "light_blue", + "spawns": { "group": "GROUP_MICROLAB", "population": [ 40, 45 ], "chance": 80 }, + "see_cost": 5, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "microlab_rock_border", + "name": "solid rock", + "sym": "%", + "color": "dark_gray", + "see_cost": 5, + "flags": [ "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "id": "microlab_generic_edge", + "copy-from": "microlab_generic" + }, + { + "type": "overmap_terrain", + "id": "microlab_generic_surface_connector", + "copy-from": "microlab_generic" + }, + { + "type": "overmap_terrain", + "id": "microlab_sub_station", + "name": "subway station?", + "sym": "S", + "color": "light_blue", + "spawns": { "group": "GROUP_LAB", "population": [ 12, 25 ], "chance": 80 }, + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": "microlab_sub_connector", + "copy-from": "microlab_sub_station" + }, + { + "type": "overmap_terrain", + "id": "microlab_generic_sub_entry", + "name": "science lab", + "sym": "L", + "copy-from": "microlab_sub_connector" + }, + { + "type": "overmap_terrain", + "id": "microlab_generic_surface", + "name": "lab", + "sym": "L", + "color": "blue", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": "microlab_generic_surface_roof", + "copy-from": "microlab_generic_surface" + } +] diff --git a/src/overmap.cpp b/src/overmap.cpp index 6fdf1bc8888d5..2a6f4dd45a57f 100644 --- a/src/overmap.cpp +++ b/src/overmap.cpp @@ -1493,6 +1493,12 @@ bool overmap::generate_sub( const int z ) //oter_id oter_sewer = ter(i, j, -1); //oter_id oter_underground = ter(i, j, -2); + if( is_ot_match( "microlab_sub_connector", ter( p ), ot_match_type::type ) ) { + om_direction::type rotation = ter( p )->get_dir(); + ter( p ) = oter_id( "subway_end_north" )->get_rotated( rotation );; + subway_points.emplace_back( p.xy() ); + } + // implicitly skip skip_above oter_ids bool skipme = false; for( auto &elem : skip_above ) {