diff --git a/.clang-tidy b/.clang-tidy index 2877990ea56e9..c99681aa461fd 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -35,7 +35,6 @@ readability-*,\ -modernize-use-default-member-init,\ -modernize-use-emplace,\ -modernize-use-transparent-functors,\ --modernize-use-trailing-return-type,\ -performance-for-range-copy,\ -performance-inefficient-vector-operation,\ -performance-noexcept-move-constructor,\ diff --git a/data/json/furniture_and_terrain/terrain-fences-gates.json b/data/json/furniture_and_terrain/terrain-fences-gates.json index 9950ed113ddd5..13b5c0657c27d 100644 --- a/data/json/furniture_and_terrain/terrain-fences-gates.json +++ b/data/json/furniture_and_terrain/terrain-fences-gates.json @@ -237,12 +237,12 @@ { "type": "terrain", "id": "t_screen_door_o", - "name": "open screen door", + "name": "closed screen door", "description": "A simple wooden doorway with screen mesh.", "symbol": "+", "color": "brown", "looks_like": "t_chickenwire_gate_o", - "move_cost": 2, + "move_cost": 0, "flags": [ "TRANSPARENT", "DOOR", "PERMEABLE", "BURROWABLE", "CONNECT_TO_WALL" ], "close": "t_screen_door_c", "deconstruct": { diff --git a/data/json/items/armor.json b/data/json/items/armor.json index f958df9cc43ea..d4c73b4c85fbe 100644 --- a/data/json/items/armor.json +++ b/data/json/items/armor.json @@ -5499,7 +5499,7 @@ "warmth": 35, "material_thickness": 4, "environmental_protection": 2, - "flags": [ "VARSIZE", "WATERPROOF" ] + "flags": [ "VARSIZE", "RAINPROOF" ] }, { "id": "motorbike_pants", @@ -5520,7 +5520,7 @@ "warmth": 35, "material_thickness": 3, "environmental_protection": 2, - "flags": [ "VARSIZE", "WATERPROOF" ] + "flags": [ "VARSIZE", "RAINPROOF" ] }, { "id": "mouthpiece", diff --git a/data/json/items/armor/boots.json b/data/json/items/armor/boots.json index 20813cc3a0273..7a4270f2bea8c 100644 --- a/data/json/items/armor/boots.json +++ b/data/json/items/armor/boots.json @@ -927,11 +927,11 @@ "color": "dark_gray", "covers": [ "FEET" ], "coverage": 95, - "encumbrance": 30, + "encumbrance": 18, "warmth": 35, "material_thickness": 4, "environmental_protection": 3, - "flags": [ "VARSIZE", "WATERPROOF" ] + "flags": [ "VARSIZE", "RAINPROOF" ] }, { "id": "roller_blades", diff --git a/data/json/items/book/maps.json b/data/json/items/book/maps.json index 3fc047e8688d2..c791a93d37992 100644 --- a/data/json/items/book/maps.json +++ b/data/json/items/book/maps.json @@ -43,7 +43,7 @@ "copy-from": "abstractmap", "type": "GENERIC", "name": "survivor's map", - "description": "This is a hand-drawn map of the local area. Whoever created it has marked down the locations of nearby supply sources including gun stores and gas stations. Using it will add points of interest to your map.", + "description": "This is a hand-drawn map of the local area. Whomever created it has marked down the locations of nearby supply sources including gun stores and gas stations. Using it will add points of interest to your map.", "color": "white", "use_action": { "type": "reveal_map", diff --git a/data/json/mapgen/house/detached_house.json b/data/json/mapgen/house/detached_house.json new file mode 100644 index 0000000000000..933f3797a767e --- /dev/null +++ b/data/json/mapgen/house/detached_house.json @@ -0,0 +1,853 @@ +[ + { + "method": "json", + "object": { + "place_item": [ { "item": "television", "repeat": 1, "x": 14, "y": 7 }, { "item": "lawnmower", "repeat": 1, "x": 12, "y": 12 } ], + "furniture": { + "#": "f_null", + "&": "f_sink", + "+": "f_null", + "-": "f_null", + ".": "f_null", + "4": "f_null", + "7": "f_null", + "A": "f_armchair", + "B": "f_bed", + "C": "f_chair", + "D": "f_dresser", + "F": "f_fridge", + "H": "f_sofa", + "P": "f_mailbox", + "S": "f_null", + "T": "f_table", + "W": "f_null", + "_": "f_null", + "a": "f_null", + "b": "f_bluebell", + "c": "f_null", + "d": "f_null", + "e": "f_counter", + "f": "f_null", + "g": "f_cupboard", + "h": "f_chair", + "i": "f_chair", + "j": "f_desk", + "k": "f_trashcan", + "l": "f_toilet", + "m": "f_bathtub", + "n": "f_null", + "o": "f_brazier", + "r": "f_null", + "s": "f_null", + "t": "f_null", + "w": "f_null", + "{": "f_bookcase", + "|": "f_null" + }, + "items": { "P": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] } }, + "place_items": [ + { "chance": 25, "item": "cubical_office", "x": 8, "y": 2 }, + { "chance": 20, "item": "clutter_bedroom", "x": 3, "y": 8 }, + { "chance": 20, "item": "clutter_bedroom", "x": 18, "y": 4 }, + { "chance": 25, "item": "novels", "x": 6, "y": 14 }, + { "chance": 65, "item": "alcohol", "x": 2, "y": 3 }, + { "chance": 75, "item": "cannedfood", "x": 2, "y": 2 }, + { "chance": 15, "item": "bags", "x": 12, "y": 9 }, + { "chance": 30, "item": "softdrugs", "x": 19, "y": 9 }, + { "chance": 65, "item": "trash", "x": 2, "y": 4 }, + { "chance": 20, "item": "clutter_bathroom", "x": 20, "y": 10 }, + { "chance": 40, "item": "novels", "x": 10, "y": 10 }, + { "chance": 40, "item": "novels", "x": 16, "y": 4 }, + { "chance": 20, "item": "clutter_yard", "x": 19, "y": 20 }, + { "chance": 20, "item": "clutter_yard", "x": 5, "y": 17 }, + { "chance": 20, "item": "clutter_yard", "x": 17, "y": 14 }, + { "chance": 25, "item": "textbooks", "x": 10, "y": 2 }, + { "chance": 25, "item": "snacks", "x": 13, "y": 7 }, + { "chance": 75, "item": "dresser_stack", "x": 4, "y": 10 }, + { "chance": 75, "item": "dresser_stack", "x": 18, "y": 2 }, + { "chance": 65, "item": "bed", "x": 2, "y": [ 7, 8 ] }, + { "chance": 65, "item": "bed", "x": 21, "y": [ 2, 3 ] }, + { "chance": 85, "item": "dining", "x": 5, "y": 2 }, + { "chance": 65, "item": "magazines", "x": 10, "y": 9 } + ], + "place_monsters": [ + { "chance": 10, "density": 1, "monster": "GROUP_DOGS", "x": 14, "y": 15 }, + { "chance": 8, "density": 1, "monster": "GROUP_DOGS", "x": 8, "y": 6 } + ], + "place_toilets": [ { "x": 18, "y": 9 } ], + "rows": [ + "..s.s.s.s.s.SSSSSPs.s...", + ".||w|w||||||SSSSS||w|||.", + ".|gg&eF|_hj|w|+|w|D__B|.", + "d|e____|___|____T|___B|.", + ".|k____||+||____{|____|.", + ".|Th_____________|||+||.", + ".|||||________________w.", + ".|B__+_______TTT______|d", + "d|B__|___________|||+||.", + ".w___|T___{|H___H|l__e|.", + ".|__D|A___{|H___H|m__&|.", + ".||w||||nW|||w|w||w||||.", + ".-b..tittttt.dsdsdsd.b-.", + ".-b..rtttttr.........b-.", + ".-b..tittttt.........b-.", + "#-...rtrtrtr........#.-d", + ".-......c....cccc..#4#-.", + ".-b.....c...cc..cc....-#", + ".-b.....c.cccC..Cc...#-#", + ".-b.aa..cc....o..c..#4-.", + "#-..aa...cc..C.Ccc...#-.", + ".-#d......ccccccc..4.#-#", + ".-##d....d......7.d.#s-.", + ".ffffffffffffffffffffff." + ], + "terrain": { + "#": "t_underbrush", + "&": "t_floor", + "+": "t_door_c", + "-": "t_fence_v", + ".": "t_grass", + "4": "t_tree_pine", + "7": "t_tree_maple", + "A": "t_floor", + "B": "t_floor", + "C": "t_grass", + "D": "t_floor", + "F": "t_floor", + "H": "t_floor", + "P": "t_grass", + "S": "t_sidewalk", + "T": "t_floor", + "W": "t_wall_glass", + "_": "t_floor", + "a": "t_sandbox", + "b": "t_grass", + "c": "t_concrete", + "d": "t_dirt", + "e": "t_floor", + "f": "t_fence_h", + "g": "t_floor", + "h": "t_floor", + "i": "t_thconc_floor", + "j": "t_floor", + "k": "t_floor", + "l": "t_floor", + "m": "t_floor", + "n": "t_door_glass_c", + "o": "t_grass", + "r": "t_rock_wall", + "s": "t_shrub", + "t": "t_thconc_floor", + "w": "t_window_domestic", + "{": "t_floor", + "|": "t_wall" + } + }, + "om_terrain": "house", + "type": "mapgen", + "weight": 100 + }, + { + "method": "json", + "object": { + "place_item": [ + { "item": "television", "repeat": 1, "x": 4, "y": 4 }, + { "item": "cannabis", "repeat": 1, "x": 18, "y": 14 }, + { "item": "cannabis", "repeat": 1, "x": 18, "y": 15 } + ], + "furniture": { + "&": "f_sink", + "+": "f_null", + "-": "f_null", + ".": "f_null", + "7": "f_pinball_machine", + "A": "f_armchair", + "B": "f_bookcase", + "C": "f_null", + "D": "f_null", + "F": "f_fridge", + "H": "f_sofa", + "P": "f_mailbox", + "S": "f_null", + "T": "f_table", + "W": "f_null", + "^": "f_indoor_plant", + "_": "f_null", + "a": "f_counter", + "b": "f_bed", + "c": "f_null", + "d": "f_null", + "e": "f_null", + "f": "f_null", + "g": "f_null", + "h": "f_shower", + "i": "f_toilet", + "j": "f_null", + "k": "f_null", + "l": "f_null", + "o": "f_oven", + "r": "f_null", + "s": "f_null", + "t": "f_table", + "u": "f_null", + "w": "f_null", + "{": "f_dresser", + "|": "f_null" + }, + "items": { "P": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] } }, + "place_items": [ + { "chance": 75, "item": "misc_smoking", "x": 4, "y": 13 }, + { "chance": 75, "item": "misc_smoking", "x": 2, "y": 10 }, + { "chance": 65, "item": "tools_earthworking", "x": 19, "y": 16 }, + { "chance": 65, "item": "tools_earthworking", "x": 17, "y": 12 }, + { "chance": 75, "item": "cannedfood", "x": 11, "y": 3 }, + { "chance": 35, "item": "tools_home", "x": 21, "y": 18 }, + { "chance": 35, "item": "tools_home", "x": 21, "y": 16 }, + { "chance": 50, "item": "stoner", "x": 4, "y": 11 }, + { "chance": 50, "item": "stoner", "x": 5, "y": [ 10, 11 ] }, + { "chance": 50, "item": "stoner", "x": 4, "y": 5 }, + { "chance": 15, "item": "magazines", "x": 2, "y": [ 12, 13 ] }, + { "chance": 30, "item": "softdrugs", "x": 9, "y": 8 }, + { "chance": 75, "item": "fridge", "x": 10, "y": 2 }, + { "chance": 50, "item": "kitchen", "x": 9, "y": 3 }, + { "chance": 50, "item": "homebooks", "x": 6, "y": 13 }, + { "chance": 50, "item": "homebooks", "x": 13, "y": 7 }, + { "chance": 15, "item": "stash_drugs", "x": 4, "y": 10 }, + { "chance": 75, "item": "dresser_stack", "x": 17, "y": [ 2, 3 ] }, + { "chance": 65, "item": "bed", "x": [ 20, 21 ], "y": [ 2, 3 ] }, + { "chance": 30, "item": "snacks", "x": 2, "y": 3 } + ], + "sealed_item": { + "#": { "item": { "item": "seed_weed" }, "furniture": "f_plant_harvest" }, + "p": { "item": { "item": "seed_weed" }, "furniture": "f_plant_harvest" } + }, + "place_toilets": [ { "x": 11, "y": 8 } ], + "rows": [ + "....s.s.s....SSSP..s.s..", + ".||W|||||||W||g|||W||||.", + ".|_____7|&Fo|^_^|{__bb|.", + ".|H_t___|a_a|___|{__bb|.", + ".|H_t___________|^____|.", + ".|H_t___________||||+||.", + ".|______||+||_________W.", + ".|A____^|&_h|BA_______|.", + ".|||__|||a_i|||||||||||.", + ".|_____^|||||s.......uc.", + ".|H_tt__|CC.........uucu", + ".|H_tt__jCC...|www|www|u", + ".|H_____kCC...wddddddd|.", + ".|tHHHB_|CCSSSldpdpdpd|.", + ".|||W||||rr...wdpdddpd|.", + ".c............|dpdddpd|.", + ".c.#####D#D...wdpdpdpT|.", + ".c.DDDDDDDD...weddpdpd|.", + ".c.##D#s###...weeddddT|.", + ".c.DDDDDDDD...|www|www|.", + ".c.###D##D#.........ffc.", + ".c...................fc.", + ".----------------------.", + "........................" + ], + "terrain": { + "#": "t_dirt", + "&": "t_floor", + "+": "t_door_c", + "-": "t_chainfence_h", + ".": "t_grass", + "7": "t_floor", + "A": "t_floor", + "B": "t_floor", + "C": "t_concrete", + "D": "t_dirt", + "F": "t_floor", + "H": "t_floor", + "P": "t_grass", + "S": "t_sidewalk", + "T": "t_dirtfloor", + "W": "t_window_alarm", + "^": "t_floor", + "_": "t_floor", + "a": "t_floor", + "b": "t_floor", + "c": "t_chainfence_v", + "d": "t_dirtfloor", + "e": "t_dirtmoundfloor", + "f": "t_dirtmound", + "g": "t_door_locked_alarm", + "h": "t_floor", + "i": "t_floor", + "j": "t_door_metal_locked", + "k": "t_wall_glass_alarm", + "l": "t_door_glass_c", + "o": "t_floor", + "p": "t_dirtfloor", + "r": "t_railing_h", + "s": "t_shrub", + "t": "t_floor", + "u": "t_underbrush", + "w": "t_wall_glass", + "{": "t_floor", + "|": "t_wall" + } + }, + "om_terrain": "house", + "type": "mapgen", + "weight": 100 + }, + { + "method": "json", + "object": { + "place_item": [ + { "item": "television", "repeat": 1, "x": 7, "y": 8 }, + { "item": "splinter", "repeat": 1, "x": 22, "y": 9 }, + { "item": "lawnmower", "repeat": 1, "x": 20, "y": 19 }, + { "item": "splinter", "repeat": 1, "x": 17, "y": 21 }, + { "item": "splinter", "repeat": 1, "x": 21, "y": 21 } + ], + "furniture": { + "#": "f_null", + "&": "f_trashcan", + "+": "f_null", + "-": "f_null", + ".": "f_null", + "4": "f_null", + "A": "f_armchair", + "B": "f_bed", + "C": "f_null", + "D": "f_dresser", + "F": "f_fridge", + "H": "f_sofa", + "P": "f_mailbox", + "S": "f_null", + "T": "f_toilet", + "W": "f_null", + "^": "f_indoor_plant", + "_": "f_null", + "a": "f_null", + "b": "f_counter", + "c": "f_null", + "d": "f_null", + "e": "f_chair", + "f": "f_null", + "g": "f_bathtub", + "h": "f_bench", + "i": "f_cupboard", + "j": "f_null", + "k": "f_sink", + "l": "f_null", + "m": "f_null", + "n": "f_sink", + "o": "f_oven", + "p": "f_counter", + "q": "f_null", + "r": "f_null", + "s": "f_null", + "t": "f_table", + "w": "f_null", + "{": "f_bookcase", + "|": "f_null" + }, + "items": { "P": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] } }, + "place_items": [ + { "chance": 75, "item": "trash", "x": 10, "y": 4 }, + { "chance": 75, "item": "fridge", "x": 5, "y": 5 }, + { "chance": 35, "item": "magazines", "x": 13, "y": 12 }, + { "chance": 35, "item": "magazines", "x": 5, "y": 9 }, + { "chance": 35, "item": "magazines", "x": 5, "y": 7 }, + { "chance": 45, "item": "child_items", "x": 3, "y": 19 }, + { "chance": 45, "item": "child_items", "x": 5, "y": 18 }, + { "chance": 65, "item": "tools_earthworking", "x": 19, "y": 19 }, + { "chance": 75, "item": "novels", "x": 12, "y": [ 4, 5 ] }, + { "chance": 15, "item": "stoner", "x": 8, "y": 11 }, + { "chance": 65, "item": "cannedfood", "x": 7, "y": 4 }, + { "chance": 65, "item": "cannedfood", "x": 5, "y": 4 }, + { "chance": 65, "item": "pantry", "x": 6, "y": 6 }, + { "chance": 75, "item": "dresser_stack", "x": 20, "y": 6 }, + { "chance": 25, "item": "book_military", "x": 13, "y": 9 }, + { "chance": 35, "item": "alcohol", "x": 8, "y": 4 }, + { "chance": 35, "item": "bedroom", "x": 17, "y": 5 }, + { "chance": 35, "item": "softdrugs", "x": 19, "y": 9 }, + { "chance": 75, "item": "bed", "x": [ 19, 20 ], "y": 4 } + ], + "rows": [ + "......d.....Pf...d......", + "d............f..........", + ".......dsssd|+a|dsssd..d", + "..d.|||a|||||__|||||||..", + "....|iobbe&|{__t|^_BB|..", + "..C#|F_____|{___|____ad.", + "-cjc||bkb_______+___D|c-", + "-.C#|H__________||||||#-", + "-.C#aH_t________+lllg|#-", + "-.C#|H_t_____tA_|Tnpg|.-", + "-.C.|||||a|+|||a||||||.-", + "-.C.d..|hh___e|###..#..-", + "-.C....w_____tw.d.....#-", + "-.CCCCCq_____ew.....d..-", + "-......|wwwwww|........-", + "-d..........d.........#-", + "-....d...........d.....-", + "-.....................d-", + "-..SS....d....4...WrWW#-", + "-..SS............#WmmWs-", + "-#......s.s.s...##WWWW#-", + "-##s#......d...###s#s##-", + "cccccccccccccccccccccccc", + "........................" + ], + "terrain": { + "#": "t_underbrush", + "&": "t_floor", + "+": "t_door_c", + "-": "t_chainfence_v", + ".": "t_grass", + "4": "t_tree_pine", + "A": "t_floor", + "B": "t_floor", + "C": "t_concrete", + "D": "t_floor", + "F": "t_floor", + "H": "t_floor", + "P": "t_grass", + "S": "t_sandbox", + "T": "t_linoleum_white", + "W": "t_wall_metal", + "^": "t_floor", + "_": "t_floor", + "a": "t_window_domestic", + "b": "t_floor", + "c": "t_chainfence_h", + "d": "t_dirt", + "e": "t_floor", + "f": "t_sidewalk", + "g": "t_linoleum_white", + "h": "t_floor", + "i": "t_floor", + "j": "t_chaingate_c", + "k": "t_floor", + "l": "t_linoleum_white", + "m": "t_metal_floor", + "n": "t_linoleum_white", + "o": "t_floor", + "p": "t_linoleum_white", + "q": "t_door_glass_c", + "r": "t_door_metal_c", + "s": "t_shrub", + "t": "t_floor", + "w": "t_wall_glass", + "{": "t_floor", + "|": "t_wall" + } + }, + "om_terrain": "house", + "type": "mapgen", + "weight": 100 + }, + { + "method": "json", + "object": { + "place_item": [ + { "item": "television", "repeat": 1, "x": 13, "y": 8 }, + { "item": "splinter", "repeat": 1, "x": 4, "y": 9 }, + { "item": "splinter", "repeat": 1, "x": 17, "y": 9 }, + { "item": "splinter", "repeat": 1, "x": 18, "y": 19 }, + { "item": "splinter", "repeat": 1, "x": 5, "y": 20 }, + { "item": "lawnmower", "repeat": 1, "x": 7, "y": 22 } + ], + "furniture": { + "#": "f_null", + "&": "f_sink", + "+": "f_null", + "-": "f_null", + ".": "f_null", + "4": "f_null", + "7": "f_null", + "B": "f_bench", + "C": "f_counter", + "D": "f_null", + "F": "f_fridge", + "H": "f_sofa", + "P": "f_mailbox", + "S": "f_null", + "T": "f_toilet", + "^": "f_indoor_plant", + "_": "f_null", + "a": "f_armchair", + "b": "f_bed", + "c": "f_null", + "d": "f_dresser", + "e": "f_bathtub", + "f": "f_null", + "g": "f_null", + "m": "f_null", + "o": "f_oven", + "s": "f_null", + "t": "f_table", + "w": "f_null", + "{": "f_bookcase", + "|": "f_null" + }, + "items": { "P": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] } }, + "place_items": [ + { "chance": 15, "item": "bags", "x": 15, "y": 9 }, + { "chance": 40, "item": "alcohol", "x": 15, "y": 7 }, + { "chance": 75, "item": "fridge", "x": 8, "y": 12 }, + { "chance": 45, "item": "magazines", "x": 12, "y": 5 }, + { "chance": 75, "item": "garden_shed", "x": 8, "y": 20 }, + { "chance": 75, "item": "trash", "x": 8, "y": 11 }, + { "chance": 35, "item": "softdrugs", "x": 14, "y": 12 }, + { "chance": 75, "item": "dresser_stack", "x": 8, "y": 9 }, + { "chance": 65, "item": "cannedfood", "x": 10, "y": 12 }, + { "chance": 65, "item": "tools_earthworking", "x": 9, "y": 20 }, + { "chance": 55, "item": "book_survival", "x": 12, "y": 6 }, + { "chance": 75, "item": "bed", "x": [ 8, 9 ], "y": 7 }, + { "chance": 65, "item": "kitchen_nonfood", "x": 10, "y": 13 } + ], + "place_monsters": [ { "chance": 6, "density": 1, "monster": "GROUP_HOUSE", "x": 12, "y": 10 } ], + "place_toilets": [ { "x": 15, "y": 12 } ], + "rows": [ + "...........S.._.........", + "...........SP........._.", + "_...#.4..__SS...4#......", + "......s.__|+w|..#.....#.", + "......___.|ft|......_...", + "......_..#|f{|sss..#....", + "...#.#_||||f{||w|.#7#...", + "..._s#_wbb|fffat|#..#...", + "....#7_|ff|fftfH|.##..._", + ".....#_|df+fftfHw.#7#...", + ".#..#._||||ffff^|#.#....", + "..#7#s_w&ffff|+||s_..#..", + "._.###_|FfCff|fT|#......", + "....#7_|ofCff|e&|##.....", + ".....#_||w|D|||||#_.....", + "......___BBccc.s##...#..", + "..._#.#__ccccc7##.......", + ".......7__...###7#......", + "........._......#....._.", + "..#....--g-#.._....#....", + "_.....#-mm-##.....#s#...", + "...#..s----s#.#...##....", + "...._...s####......._...", + "............_..........." + ], + "terrain": { + "#": "t_underbrush", + "&": "t_floor", + "+": "t_door_c", + "-": "t_wall_metal", + ".": "t_grass", + "4": "t_tree_pine", + "7": "t_tree", + "B": "t_concrete", + "C": "t_floor", + "D": "t_door_locked", + "F": "t_floor", + "H": "t_floor", + "P": "t_grass", + "S": "t_sidewalk", + "T": "t_floor", + "^": "t_floor", + "_": "t_dirt", + "a": "t_floor", + "b": "t_floor", + "c": "t_concrete", + "d": "t_floor", + "e": "t_floor", + "f": "t_floor", + "g": "t_door_metal_c", + "m": "t_metal_floor", + "o": "t_floor", + "s": "t_shrub", + "t": "t_floor", + "w": "t_window_domestic", + "{": "t_floor", + "|": "t_wall" + } + }, + "om_terrain": "house", + "type": "mapgen", + "weight": 100 + }, + { + "method": "json", + "object": { + "place_item": [ + { "item": "cig_butt", "repeat": 1, "x": 9, "y": 8 }, + { "item": "pet_carrier", "repeat": 1, "x": 13, "y": 11 }, + { "item": "splinter", "repeat": 1, "x": 22, "y": 16 }, + { "item": "splinter", "repeat": 1, "x": 2, "y": 19 }, + { "item": "lawnmower", "repeat": 1, "x": 10, "y": 21 } + ], + "furniture": { + "#": "f_null", + "&": "f_sink", + "+": "f_null", + "-": "f_null", + ".": "f_null", + "4": "f_null", + "7": "f_null", + "A": "f_armchair", + "B": "f_bathtub", + "C": "f_null", + "D": "f_null", + "F": "f_fridge", + "H": "f_sofa", + "P": "f_mailbox", + "S": "f_null", + "T": "f_trashcan", + "W": "f_null", + "^": "f_indoor_plant_y", + "_": "f_null", + "a": "f_cupboard", + "b": "f_bed", + "c": "f_null", + "d": "f_null", + "e": "f_counter", + "f": "f_bookcase", + "g": "f_null", + "h": "f_washer", + "i": "f_chair", + "j": "f_toilet", + "k": "f_dryer", + "l": "f_null", + "m": "f_null", + "n": "f_null", + "o": "f_oven", + "p": "f_null", + "s": "f_null", + "t": "f_table", + "w": "f_null", + "{": "f_dresser", + "|": "f_null" + }, + "items": { "P": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] } }, + "place_items": [ + { "chance": 35, "item": "knifeblock", "x": 4, "y": 11 }, + { "chance": 25, "item": "fridge", "x": 4, "y": 8 }, + { "chance": 15, "item": "bags", "x": 15, "y": 10 }, + { "chance": 75, "item": "bed", "x": [ 16, 17 ], "y": [ 6, 7 ] }, + { "chance": 65, "item": "dresser_stack", "x": 16, "y": 10 }, + { "chance": 10, "item": "cannedfood", "x": 5, "y": 6 }, + { "chance": 99, "item": "house_suicide_shotgun", "x": 10, "y": 9 }, + { "chance": 35, "item": "bedroom", "x": 17, "y": 8 }, + { "chance": 35, "item": "bedroom", "x": 15, "y": 6 }, + { "chance": 45, "item": "softdrugs", "x": 16, "y": 14 }, + { "chance": 45, "item": "softdrugs", "x": 16, "y": 12 }, + { "chance": 35, "item": "trash", "x": 13, "y": 14 }, + { "chance": 35, "item": "trash", "x": 11, "y": 11 }, + { "chance": 35, "item": "trash", "x": 6, "y": [ 10, 11 ] }, + { "chance": 35, "item": "trash", "x": 12, "y": 9 }, + { "chance": 35, "item": "trash", "x": 11, "y": 8 }, + { "chance": 35, "item": "trash", "x": 7, "y": 7 }, + { "chance": 35, "item": "trash", "x": 8, "y": 5 }, + { "chance": 75, "item": "camping", "x": 11, "y": 21 } + ], + "place_monsters": [ { "chance": 3, "density": 1, "monster": "GROUP_ZOMBIE", "x": 8, "y": 18 } ], + "place_toilets": [ { "x": 15, "y": 12 } ], + "place_traps": [ { "trap": "tr_nailboard", "x": 9, "y": 4 } ], + "rows": [ + ".....d...s.P.........d..", + ".........s..d...d.......", + "...d....sss...d..dd.d...", + ".......|gDW|....dddd....", + "......#|___|#d#..d.dd.##", + "...|||||__^|||||W||.d#7-", + ".cc|aa_|___|_h|_bb|#d.#-", + "d-#Wa_________|_bb|.d..-", + ".-#|F______H__|___|.d#.-", + "#-#|o______H__+___W#dd.-", + "#-#W&______H__|_{i|#7d#-", + ".-#|e_T|______|||||.#d.-", + ".-.|||||______|j_B|.#d#-", + ".-...##|Atkt__+__B|#dd#-", + ".-....#|f{{fA_|&e_|Sd7#-", + ".-d....||ln||||||||#d#.-", + ".-.#...dCCCCddd..d#dd#.-", + "d-..7#.dCCCCdddddddd4S.-", + ".-#.#..dddddd......##..-", + ".-.......ddd...........-", + ".-.......wwpw#.....7...-", + ".-...d..#wmmw##7d.....#-", + ".-.....##wwww###.....##-", + ".-cccccccccccccccccccccc" + ], + "terrain": { + "#": "t_underbrush", + "&": "t_floor", + "+": "t_door_c", + "-": "t_chainfence_v", + ".": "t_grass", + "4": "t_tree_pine", + "7": "t_tree", + "A": "t_floor", + "B": "t_floor", + "C": "t_concrete", + "D": "t_door_locked", + "F": "t_floor", + "H": "t_floor", + "P": "t_grass", + "S": "t_shrub", + "T": "t_floor", + "W": "t_window_boarded_noglass", + "^": "t_floor", + "_": "t_floor", + "a": "t_floor", + "b": "t_floor", + "c": "t_chainfence_h", + "d": "t_dirt", + "e": "t_floor", + "f": "t_floor", + "g": "t_window_boarded", + "h": "t_floor", + "i": "t_floor", + "j": "t_floor", + "k": "t_floor", + "l": "t_door_glass_c", + "m": "t_metal_floor", + "n": "t_wall_glass", + "o": "t_floor", + "p": "t_door_metal_c", + "s": "t_sidewalk", + "t": "t_floor", + "w": "t_wall_metal", + "{": "t_floor", + "|": "t_wall" + } + }, + "om_terrain": "house", + "type": "mapgen", + "weight": 100 + }, + { + "method": "json", + "object": { + "place_item": [ + { "item": "splinter", "repeat": 1, "x": 2, "y": 4 }, + { "item": "splinter", "repeat": 1, "x": 17, "y": 9 }, + { "item": "television", "repeat": 1, "x": 13, "y": 13 }, + { "item": "television", "repeat": 1, "x": 20, "y": 17 }, + { "item": "splinter", "repeat": 1, "x": 1, "y": 19 }, + { "item": "splinter", "repeat": 1, "x": 10, "y": 22 } + ], + "furniture": { + "#": "f_null", + "&": "f_sink", + "+": "f_null", + "-": "f_null", + ".": "f_null", + "4": "f_null", + "7": "f_null", + "B": "f_bathtub", + "C": "f_cupboard", + "D": "f_null", + "H": "f_sofa", + "P": "f_mailbox", + "S": "f_null", + "T": "f_table", + "^": "f_indoor_plant_y", + "_": "f_null", + "a": "f_armchair", + "b": "f_bed", + "c": "f_counter", + "d": "f_null", + "e": "f_toilet", + "f": "f_fridge", + "g": "f_null", + "h": "f_chair", + "o": "f_oven", + "s": "f_null", + "t": "f_null", + "w": "f_null", + "{": "f_dresser", + "|": "f_null" + }, + "items": { "P": { "item": "mail", "chance": 30, "repeat": [ 2, 5 ] } }, + "place_items": [ + { "chance": 25, "item": "harddrugs", "x": 12, "y": 15 }, + { "chance": 25, "item": "harddrugs", "x": 10, "y": 14 }, + { "chance": 75, "item": "methchef", "x": [ 13, 14 ], "y": 20 }, + { "chance": 75, "item": "methchef", "x": 15, "y": [ 17, 18 ] }, + { "chance": 75, "item": "methchef", "x": 13, "y": [ 17, 18 ] }, + { "chance": 65, "item": "floor_trash", "x": 16, "y": 20 }, + { "chance": 65, "item": "floor_trash", "x": 16, "y": 17 }, + { "chance": 65, "item": "floor_trash", "x": 9, "y": 17 }, + { "chance": 65, "item": "floor_trash", "x": 15, "y": 15 }, + { "chance": 65, "item": "floor_trash", "x": 19, "y": 13 }, + { "chance": 65, "item": "floor_trash", "x": 11, "y": 13 }, + { "chance": 65, "item": "floor_trash", "x": 6, "y": 12 }, + { "chance": 65, "item": "floor_trash", "x": 17, "y": 11 }, + { "chance": 75, "item": "bed", "x": [ 10, 11 ], "y": 17 }, + { "chance": 75, "item": "bed", "x": [ 20, 21 ], "y": [ 14, 15 ] }, + { "chance": 75, "item": "bed", "x": [ 13, 14 ], "y": 11 }, + { "chance": 35, "item": "alcohol", "x": 4, "y": 11 }, + { "chance": 65, "item": "dresser_stack", "x": 21, "y": 11 }, + { "chance": 75, "item": "magazines", "x": 13, "y": 15 }, + { "chance": 65, "item": "cannedfood", "x": 4, "y": 14 } + ], + "place_monsters": [ { "chance": 6, "density": 0.05, "monster": "GROUP_ZOMBIE", "x": 13, "y": 4 } ], + "place_toilets": [ { "x": 5, "y": 17 } ], + "rows": [ + ".....d...ss..P.d........", + "........#ss.............", + "........#ss...#...4.....", + ".4.d.#...ss#...7...S.4..", + ".........ss#.....#.d...d", + "....7.S.#ss...S.4.......", + "..#......ss.#..d...#..#.", + ".....#d#|tt|tt|...#7#...", + "...##4##ttttttt#........", + "d...####ttttttt##.d#S...", + "...||||||D||-|||-|||-||.", + ".#.|C__|___^_bb___|__{|.", + "...-o_____________+___|#", + "..d|f________TT___|___|#", + "...|c&c|__a_______|_bb|d", + "..#|||||____HHH___|_bb|.", + "..#|B__+____||||__|||||.", + ".#.|Be&|__bb|T_T____TT|.", + "..#|||||g||||T_T_____h|.", + "d...#d##..##|_________w.", + "..S..####7.d|TT_______|.", + ".....#4#S#..|||||||w|||.", + "..#...#........##d..#...", + "........d............d.." + ], + "terrain": { + "#": "t_underbrush", + "&": "t_floor", + "+": "t_door_curtain_c", + "-": "t_window_domestic_taped", + ".": "t_grass", + "4": "t_tree_pine", + "7": "t_tree", + "B": "t_floor", + "C": "t_floor", + "D": "t_door_c", + "H": "t_floor", + "P": "t_grass", + "S": "t_shrub", + "T": "t_floor", + "^": "t_floor", + "_": "t_floor", + "a": "t_floor", + "b": "t_floor", + "c": "t_floor", + "d": "t_dirt", + "e": "t_floor", + "f": "t_floor", + "g": "t_door_boarded_damaged", + "h": "t_floor", + "o": "t_floor", + "s": "t_sidewalk", + "t": "t_thconc_floor", + "w": "t_window_boarded_noglass", + "{": "t_floor", + "|": "t_wall" + } + }, + "om_terrain": "house", + "type": "mapgen", + "weight": 100 + } +] diff --git a/data/json/mapgen/house/house_detatched10.json b/data/json/mapgen/house/house_detatched10.json deleted file mode 100644 index 0f009b53a8c60..0000000000000 --- a/data/json/mapgen/house/house_detatched10.json +++ /dev/null @@ -1,121 +0,0 @@ -[ - { - "method": "json", - "om_terrain": "house_detatched10", - "type": "mapgen", - "weight": 200, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".........``..p..........", - "........%``.............", - "........%``...%...[.....", - ".[...%...``%...[...!.[..", - ".........``%.....%......", - "....[.!.%``...!.[.......", - "..%......``.%......%..%.", - ".....%.%#~~#~~#...%[%...", - "...%%[%%~~~~~~~%........", - "....%%%%~~~G~G~%%..%!...", - "...######*##&###&###&##.", - ".%.#247| y @@ | d#.", - "...&O ? #%", - "...#F ss | #%", - "...#153| E | @@#.", - "..%#|||| HHH | @@#.", - "..%#B--? |||| ||||#.", - ".%.#BSt| @@|r r rr#.", - "..%#####/####r r h#.", - "....%.%%..%%# =.", - "..!..%%%%[..#rr #.", - ".....%[%!%..#######=###.", - "..%...%........%%...%^..", - "........................" - ], - "palettes": [ "standard_domestic_palette" ], - "terrain": { - "%": [ "t_region_shrub", "t_region_shrub_fruit", "t_region_shrub_decorative" ], - "[": [ [ "t_region_tree_fruit", 2 ], [ "t_region_tree_nut", 2 ], "t_region_tree_shade" ], - "!": "t_region_groundcover_urban", - "`": "t_concrete", - "t": "t_linoleum_gray", - "S": "t_linoleum_gray", - "B": "t_linoleum_gray", - "-": "t_linoleum_gray", - "~": "t_thconc_floor", - "G": "t_thconc_floor", - "&": "t_window_domestic_taped", - "/": "t_door_boarded_damaged", - "=": "t_window_boarded_noglass" - }, - "furniture": { "?": "f_beaded_door", "!": "f_region_flower" }, - "place_item": [ - { "item": "splinter", "repeat": 1, "x": 2, "y": 4 }, - { "item": "splinter", "repeat": 1, "x": 17, "y": 9 }, - { "item": "television", "repeat": 1, "x": 13, "y": 13 }, - { "item": "television", "repeat": 1, "x": 20, "y": 17 }, - { "item": "splinter", "repeat": 1, "x": 1, "y": 19 }, - { "item": "splinter", "repeat": 1, "x": 10, "y": 22 } - ], - "place_items": [ - { "chance": 25, "item": "harddrugs", "x": 12, "y": 15 }, - { "chance": 25, "item": "harddrugs", "x": 10, "y": 14 }, - { "chance": 75, "item": "methchef", "x": [ 13, 14 ], "y": 20 }, - { "chance": 75, "item": "methchef", "x": 15, "y": [ 17, 18 ] }, - { "chance": 75, "item": "methchef", "x": 13, "y": [ 17, 18 ] }, - { "chance": 65, "item": "floor_trash", "x": 16, "y": 20 }, - { "chance": 65, "item": "floor_trash", "x": 16, "y": 17 }, - { "chance": 65, "item": "floor_trash", "x": 9, "y": 17 }, - { "chance": 65, "item": "floor_trash", "x": 15, "y": 15 }, - { "chance": 65, "item": "floor_trash", "x": 19, "y": 13 }, - { "chance": 65, "item": "floor_trash", "x": 11, "y": 13 }, - { "chance": 65, "item": "floor_trash", "x": 6, "y": 12 }, - { "chance": 65, "item": "floor_trash", "x": 17, "y": 11 }, - { "chance": 75, "item": "bed", "x": [ 10, 11 ], "y": 17 }, - { "chance": 75, "item": "bed", "x": [ 20, 21 ], "y": [ 14, 15 ] }, - { "chance": 75, "item": "bed", "x": [ 13, 14 ], "y": 11 }, - { "chance": 35, "item": "alcohol", "x": 4, "y": 11 }, - { "chance": 65, "item": "dresser_stack", "x": 21, "y": 11 }, - { "chance": 75, "item": "magazines", "x": 13, "y": 15 }, - { "chance": 65, "item": "cannedfood", "x": 4, "y": 14 } - ], - "place_monsters": [ { "chance": 6, "density": 0.05, "monster": "GROUP_ZOMBIE", "x": 13, "y": 4 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": "house_detatched10_roof", - "object": { - "fill_ter": "t_shingle_flat_roof", - "rows": [ - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " |222223 ", - " |.....3 ", - " |.....3 ", - " |2222|.....322222223 ", - " |..................3 ", - " |......N...........3 ", - " |..................3 ", - " |..........X.......3 ", - " |..................3 ", - " |..............&...3 ", - " |..................3 ", - " |---------....=....3 ", - " |.........3 ", - " |.........3 ", - " |--------53 ", - " ", - " " - ], - "palettes": [ "roof_palette" ], - "terrain": { ".": "t_shingle_flat_roof" } - } - } -] diff --git a/data/json/mapgen/house/house_detatched5.json b/data/json/mapgen/house/house_detatched5.json deleted file mode 100644 index b1c90e6d54b4b..0000000000000 --- a/data/json/mapgen/house/house_detatched5.json +++ /dev/null @@ -1,123 +0,0 @@ -[ - { - "method": "json", - "om_terrain": "house_detatched5", - "type": "mapgen", - "weight": 200, - "object": { - "fill_ter": "t_floor", - "rows": [ - "..%.%.%.%.%.!```!p%.%...", - ".##o#o####o##```!##o###.", - ".#35O1F2|PEr#o*o##d @#.", - ".#4----J|y r| L|IA @#^", - ".#n----J||?|| R|I E#.", - ".#766Y-- ||+||#.", - ".#|||| hfh >o.", - ".#@sb| hfh xxx |U#.", - ".#@ + ||+||#.", - ".o |s R|H l H|t--8#.", - ".#d D|E R|H l H|9--S#.", - ".##o####])###o#o####o##.", - ".$!..#~~~~(#..%.%^%..!$.", - ".$!../(~~~~/.........!$.", - ".$!../~~~~~/.........!$.", - "%$...#//=//#........%.$.", - ".$......`....````..%[%$.", - ".$!.....`...``..``....$%", - ".$!.....`.```G..G`...%$%", - ".$!.&&..``....,..`..%[$.", - "%$..&&...``..G.G``...%$.", - ".$%.......```````..[.%$%", - ".$%%............[...%%$.", - ".$$$$$$$$$$$$$$$$$$$$$$." - ], - "palettes": [ "standard_domestic_palette" ], - "terrain": { - "%": [ "t_region_shrub", "t_region_shrub_fruit", "t_region_shrub_decorative" ], - "[": [ [ "t_region_tree_fruit", 2 ], [ "t_region_tree_nut", 2 ], "t_region_tree_shade" ], - "!": "t_region_groundcover_urban", - ",": "t_region_groundcover_urban", - "K": "t_region_groundcover_urban", - "G": "t_region_groundcover_urban", - "`": "t_concrete", - "#": "t_rock_wall", - "t": "t_linoleum_gray", - "S": "t_linoleum_gray", - "Q": "t_linoleum_gray", - "J": "t_linoleum_gray", - "N": "t_linoleum_gray", - "1": "t_linoleum_gray", - "2": "t_linoleum_gray", - "3": "t_linoleum_gray", - "4": "t_linoleum_gray", - "5": "t_linoleum_gray", - "6": "t_linoleum_gray", - "7": "t_linoleum_gray", - "8": "t_linoleum_gray", - "9": "t_linoleum_gray", - "F": "t_linoleum_gray", - "O": "t_linoleum_gray", - "-": "t_linoleum_gray", - "Y": "t_linoleum_gray", - "~": "t_thconc_floor", - "(": "t_thconc_floor", - "$": "t_privacy_fence", - ";": "t_privacy_fencegate_c", - "/": "t_screened_porch_wall", - "=": "t_screen_door_c", - ")": "t_wall_glass", - "]": "t_door_glass_c", - "&": "t_sandbox" - }, - "furniture": { "?": "f_beaded_door", "!": "f_region_flower", ",": "f_brazier", "(": "f_camp_chair" }, - "place_item": [ { "item": "television", "repeat": 1, "x": 14, "y": 7 }, { "item": "lawnmower", "repeat": 1, "x": 12, "y": 12 } ], - "place_items": [ - { "chance": 20, "item": "clutter_yard", "x": 19, "y": 20 }, - { "chance": 20, "item": "clutter_yard", "x": 5, "y": 17 }, - { "chance": 20, "item": "clutter_yard", "x": 17, "y": 14 }, - { "chance": 25, "item": "textbooks", "x": 10, "y": 2 } - ], - "place_monsters": [ - { "chance": 10, "density": 1, "monster": "GROUP_DOGS", "x": 14, "y": 15 }, - { "chance": 8, "density": 1, "monster": "GROUP_DOGS", "x": 8, "y": 6 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": "house_detatched5_roof", - "object": { - "fill_ter": "t_shingle_flat_roof", - "rows": [ - " ", - " |222222222222222222223 ", - " |....................3 ", - " |..............X.....5 ", - " |....................3 ", - " |....................3 ", - " |.........N..........3 ", - " |....................3 ", - " |...=...........&....3 ", - " |....................3 ", - " |....................3 ", - " |---|.....3-----5----3 ", - " |.....3 ", - " |.....3 ", - " |.....3 ", - " |-----3 ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " " - ], - "palettes": [ "roof_palette" ], - "terrain": { ".": "t_shingle_flat_roof" } - } - } -] diff --git a/data/json/mapgen/house/house_detatched6.json b/data/json/mapgen/house/house_detatched6.json deleted file mode 100644 index 1f537615d915a..0000000000000 --- a/data/json/mapgen/house/house_detatched6.json +++ /dev/null @@ -1,121 +0,0 @@ -[ - { - "method": "json", - "om_terrain": "house_detatched6", - "type": "mapgen", - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "....%.%.%....```p..%.%..", - ".##o#######o##]###o####.", - ".# ,|5FO|y L|D @@#.", - ".#H x |2 7| |d @@#.", - ".#H x |y #.", - ".#H x |||?||#.", - ".# ||+|| o.", - ".#E y|S-9|R> rrE #.", - ".#|| |||8-t###########.", - ".# y#####^%..%...%$.", - ".#H ll #``.........%%$%", - ".#H ll ]``.[.#}}}#}}}#%", - ".#H }``...}===G===#.", - ".#sHHHR #`````{=~=~=~=#.", - ".###o####.....}=~===~=#.", - ".$^...........#=~===~=#.", - ".$.(((((&(&...}=~=~=~K#.", - ".$.&&&&&&&&...}/==~=~=#.", - ".$.((&(%(((...}//==G=K#.", - ".$.&&&&&&&&...#}}}#}}}#.", - ".$.(((&((&(..[........$.", - ".$.................[..$.", - ".$$$$$$$$$$$$$$$$$$$$$$.", - "........................" - ], - "palettes": [ "standard_domestic_palette" ], - "terrain": { - "%": [ "t_region_shrub", "t_region_shrub_fruit", "t_region_shrub_decorative" ], - "[": [ [ "t_region_tree_fruit", 2 ], [ "t_region_tree_nut", 2 ], "t_region_tree_shade" ], - "!": "t_region_groundcover_urban", - "K": "t_dirtfloor", - "G": "t_dirtfloor", - "=": "t_dirtfloor", - "/": "t_dirtmoundfloor", - "~": "t_dirtmoundfloor", - "&": "t_dirtmound", - "(": "t_dirt", - "`": "t_concrete", - "#": "t_adobe_brick_wall", - "t": "t_linoleum_gray", - "S": "t_linoleum_gray", - "Q": "t_linoleum_gray", - "8": "t_linoleum_gray", - "9": "t_linoleum_gray", - "-": "t_linoleum_gray", - "$": "t_privacy_fence", - ";": "t_privacy_fencegate_c", - "{": "t_reinforced_door_glass_c", - "}": "t_reinforced_glass_shutter", - ")": "t_wall_glass", - "]": "t_door_metal_pickable" - }, - "furniture": { "?": "f_beaded_door", "!": "f_region_flower", ",": "f_pinball_machine" }, - "place_item": [ - { "item": "television", "repeat": 1, "x": 4, "y": 4 }, - { "item": "cannabis", "repeat": 1, "x": 18, "y": 14 }, - { "item": "cannabis", "repeat": 1, "x": 18, "y": 15 } - ], - "place_items": [ - { "chance": 75, "item": "misc_smoking", "x": 4, "y": 13 }, - { "chance": 75, "item": "misc_smoking", "x": 2, "y": 10 }, - { "chance": 65, "item": "tools_earthworking", "x": 19, "y": 16 }, - { "chance": 65, "item": "tools_earthworking", "x": 17, "y": 12 }, - { "chance": 35, "item": "tools_home", "x": 21, "y": 18 }, - { "chance": 35, "item": "tools_home", "x": 21, "y": 16 }, - { "chance": 50, "item": "stoner", "x": 4, "y": 11 }, - { "chance": 50, "item": "stoner", "x": 5, "y": [ 10, 11 ] }, - { "chance": 50, "item": "stoner", "x": 4, "y": 5 } - ], - "sealed_item": { - "~": { "item": { "item": "seed_weed" }, "furniture": "f_plant_harvest" }, - "&": { "item": { "item": "seed_weed" }, "furniture": "f_plant_harvest" } - } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": "house_detatched6_roof", - "object": { - "fill_ter": "t_shingle_flat_roof", - "rows": [ - " ", - " |222222222222222222223 ", - " |....................3 ", - " |....................3 ", - " |..:...N.....=.......3 ", - " |....................3 ", - " |..................&.3 ", - " |....................3 ", - " |..........5---------3 ", - " |......3---3 ", - " |......3 ", - " |..X...3 ......... ", - " |......3 .ooooooo. ", - " |......3 .ooooooo. ", - " |5-----3 .ooooooo. ", - " .ooooooo. ", - " .ooooooo. ", - " .ooooooo. ", - " .ooooooo. ", - " ......... ", - " ", - " ", - " ", - " " - ], - "palettes": [ "roof_palette" ], - "terrain": { ".": "t_shingle_flat_roof" } - } - } -] diff --git a/data/json/mapgen/house/house_detatched7.json b/data/json/mapgen/house/house_detatched7.json deleted file mode 100644 index da41af10d0a66..0000000000000 --- a/data/json/mapgen/house/house_detatched7.json +++ /dev/null @@ -1,111 +0,0 @@ -[ - { - "method": "json", - "om_terrain": "house_detatched7", - "type": "mapgen", - "weight": 200, - "object": { - "fill_ter": "t_floor", - "rows": [ - "............p``.........", - "..`````````````......[..", - "..`.....!!!.#*o#.!!!....", - "..`.###o##### #######..", - "..`^#1O2347|R s|D @@#..", - "..`%#F 6|R L|y o..", - "$$;$#|J5J ||> + d#$$", - "$.`%#H |||||#%$", - "$.`%oH x +---B#%$", - "$.`%#H x TsER|tS8B#.$", - "$.`.#####o#*###o######.$", - "$.`...^#ii G#%%%..%..$", - "$.`..../ K/.......%$", - "$.`````= G/........$", - "$......#//////#........$", - "$.....................%$", - "$......................$", - "$......................$", - "$..&&.........[...?,??%$", - "$..&&............%?qq?!$", - "$%......!.!.!...%%????%$", - "$%%!%..........%%%!%!%%$", - "$$$$$$$$$$$$$$$$$$$$$$$$", - "........................" - ], - "palettes": [ "standard_domestic_palette" ], - "terrain": { - "%": [ "t_region_shrub", "t_region_shrub_fruit", "t_region_shrub_decorative" ], - "[": [ [ "t_region_tree_fruit", 2 ], [ "t_region_tree_nut", 2 ], "t_region_tree_shade" ], - "!": "t_region_groundcover_urban", - "`": "t_concrete", - "t": "t_linoleum_gray", - "S": "t_linoleum_gray", - "Q": "t_linoleum_gray", - "8": "t_linoleum_gray", - "B": "t_linoleum_gray", - "-": "t_linoleum_gray", - "~": "t_thconc_floor", - "q": "t_thconc_floor", - "$": "t_privacy_fence", - "?": "t_wall_metal", - ",": "t_door_metal_c", - ";": "t_privacy_fencegate_c", - "/": "t_screened_porch_wall", - "=": "t_screen_door_c", - "&": "t_sandbox" - }, - "furniture": { "!": "f_region_flower" }, - "place_item": [ - { "item": "television", "repeat": 1, "x": 7, "y": 8 }, - { "item": "splinter", "repeat": 1, "x": 22, "y": 9 }, - { "item": "lawnmower", "repeat": 1, "x": 20, "y": 19 }, - { "item": "splinter", "repeat": 1, "x": 17, "y": 21 }, - { "item": "splinter", "repeat": 1, "x": 21, "y": 21 } - ], - "place_items": [ - { "chance": 45, "item": "child_items", "x": 3, "y": 19 }, - { "chance": 45, "item": "child_items", "x": 5, "y": 18 }, - { "chance": 65, "item": "tools_earthworking", "x": 19, "y": 19 }, - { "chance": 15, "item": "stoner", "x": 8, "y": 11 }, - { "chance": 25, "item": "book_military", "x": 13, "y": 9 }, - { "chance": 35, "item": "alcohol", "x": 8, "y": 4 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": "house_detatched7_roof", - "object": { - "fill_ter": "t_shingle_flat_roof", - "rows": [ - " ", - " ", - " 2222 ", - " |22222222..2222223 ", - " 5................3 ", - " |................3 ", - " |...&........N...3 ", - " |................3 ", - " |.......=........3 ", - " |................3 ", - " |--5......3------3 ", - " |......3 ", - " |......3 ", - " |......3 ", - " |------3 ", - " ", - " ", - " ", - " .... ", - " .... ", - " .... ", - " ", - " ", - " " - ], - "palettes": [ "roof_palette" ], - "terrain": { ".": "t_shingle_flat_roof" } - } - } -] diff --git a/data/json/mapgen/house/house_detatched8.json b/data/json/mapgen/house/house_detatched8.json deleted file mode 100644 index 11a9580399c14..0000000000000 --- a/data/json/mapgen/house/house_detatched8.json +++ /dev/null @@ -1,109 +0,0 @@ -[ - { - "method": "json", - "om_terrain": "house_detatched8", - "type": "mapgen", - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - "...........`............", - "...........`p...........", - "....%.[....``...[%......", - "......!...#*o#..%.....%.", - "..........# L#..........", - ".........%# R#!!!..%....", - "...%.%.#### R##o#.%[%...", - "....!%.o@@| Es#%..%...", - "....%[.#I | x H#.%%....", - ".....%.#d + x Ho.%[%...", - ".%..%..#||| y#%.%....", - "..%[%!.o5 2|+##...%..", - "...%%%^#F JA 6|-t#^.....", - "....%[.#O4JA >|BS#%.....", - ".....%.##o##*#####......", - ".........jj```.!%%...%..", - "....%.%..`````[%%.......", - ".......[.....%%%[%......", - "................%.......", - "..%....??,?%...X...%....", - "......%?qq?%%.....%!%...", - "...%..!????!%.%...%%....", - "........!%%%%...........", - "........................" - ], - "palettes": [ "standard_domestic_palette" ], - "terrain": { - "%": [ "t_region_shrub", "t_region_shrub_fruit", "t_region_shrub_decorative" ], - "[": [ [ "t_region_tree_fruit", 2 ], [ "t_region_tree_nut", 2 ], "t_region_tree_shade" ], - "!": "t_region_groundcover_urban", - "`": "t_concrete", - "j": "t_concrete", - "t": "t_linoleum_gray", - "S": "t_linoleum_gray", - "Q": "t_linoleum_gray", - "8": "t_linoleum_gray", - "B": "t_linoleum_gray", - "-": "t_linoleum_gray", - "~": "t_thconc_floor", - "q": "t_thconc_floor", - "$": "t_privacy_fence", - "?": "t_wall_metal", - ",": "t_door_metal_c", - ";": "t_privacy_fencegate_c" - }, - "furniture": { "!": "f_region_flower" }, - "place_item": [ - { "item": "television", "repeat": 1, "x": 13, "y": 8 }, - { "item": "splinter", "repeat": 1, "x": 4, "y": 9 }, - { "item": "splinter", "repeat": 1, "x": 17, "y": 9 }, - { "item": "splinter", "repeat": 1, "x": 18, "y": 19 }, - { "item": "splinter", "repeat": 1, "x": 5, "y": 20 }, - { "item": "lawnmower", "repeat": 1, "x": 7, "y": 22 } - ], - "place_items": [ - { "chance": 40, "item": "alcohol", "x": 15, "y": 7 }, - { "chance": 75, "item": "garden_shed", "x": 8, "y": 20 }, - { "chance": 65, "item": "tools_earthworking", "x": 9, "y": 20 }, - { "chance": 55, "item": "book_survival", "x": 12, "y": 6 } - ], - "place_monsters": [ { "chance": 6, "density": 1, "monster": "GROUP_HOUSE", "x": 12, "y": 10 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": "house_detatched8_roof", - "object": { - "fill_ter": "t_shingle_flat_roof", - "rows": [ - " ", - " ", - " ", - " |223 ", - " |..3 ", - " |..3 ", - " |222..3223 ", - " |........3 ", - " |......N.3 ", - " |..&.....3 ", - " |........3 ", - " |........33 ", - " 5.....=...5 ", - " |.........3 ", - " |---------3 ", - " ", - " ", - " ", - " ", - " .... ", - " .... ", - " .... ", - " ", - " " - ], - "palettes": [ "roof_palette" ], - "terrain": { ".": "t_shingle_flat_roof" } - } - } -] diff --git a/data/json/mapgen/house/house_detatched9.json b/data/json/mapgen/house/house_detatched9.json deleted file mode 100644 index a60f2f5d01eb4..0000000000000 --- a/data/json/mapgen/house/house_detatched9.json +++ /dev/null @@ -1,116 +0,0 @@ -[ - { - "method": "json", - "om_terrain": "house_detatched9", - "type": "mapgen", - "weight": 100, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".........`.p............", - ".........`..............", - "........```.............", - ".......#_=_#............", - "......%# L#%.%.......%%", - "...##### Y#####_##..%[$", - ".$$#347| | Z|I@@#%..%$", - ".$%_2 | @@#^...$", - ".$%#F H | #$$;$$", - "%$%#O H + _%...$", - "%$%_5 H |TdE#%[.%$", - ".$%#1 Y| ||||#.%..$", - ".$.##### |t-B#.%.%$", - ".$...%%#EsWs +--B#%..%$", - ".$....%#RdDRE>|S8-#!.[%$", - ".$.....##])########%.%.$", - ".$.%....````..^...%..%.$", - ".$..[%..````........[!.$", - ".$%.%..............%%..$", - ".$.....................$", - ".$.......??,?%.....[...$", - ".$......%?qq?%%[......%$", - ".$.....%%????%%%.....%%$", - ".$$$$$$$$$$$$$$$$$$$$$$$" - ], - "palettes": [ "standard_domestic_palette" ], - "terrain": { - "%": [ "t_region_shrub", "t_region_shrub_fruit", "t_region_shrub_decorative" ], - "[": [ [ "t_region_tree_fruit", 2 ], [ "t_region_tree_nut", 2 ], "t_region_tree_shade" ], - "!": "t_region_groundcover_urban", - "`": "t_concrete", - "t": "t_linoleum_gray", - "S": "t_linoleum_gray", - "8": "t_linoleum_gray", - "B": "t_linoleum_gray", - "-": "t_linoleum_gray", - "q": "t_thconc_floor", - "$": "t_privacy_fence", - "?": "t_wall_metal", - ",": "t_door_metal_c", - ";": "t_privacy_fencegate_c", - "_": "t_window_boarded", - "=": "t_door_boarded", - ")": "t_wall_glass", - "]": "t_door_glass_c" - }, - "furniture": { "!": "f_region_flower" }, - "place_item": [ - { "item": "cig_butt", "repeat": 1, "x": 9, "y": 8 }, - { "item": "pet_carrier", "repeat": 1, "x": 13, "y": 11 }, - { "item": "splinter", "repeat": 1, "x": 22, "y": 16 }, - { "item": "splinter", "repeat": 1, "x": 2, "y": 19 }, - { "item": "lawnmower", "repeat": 1, "x": 10, "y": 21 } - ], - "place_items": [ - { "chance": 99, "item": "house_suicide_shotgun", "x": 10, "y": 9 }, - { "chance": 35, "item": "trash", "x": 13, "y": 14 }, - { "chance": 35, "item": "trash", "x": 11, "y": 11 }, - { "chance": 35, "item": "trash", "x": 6, "y": [ 10, 11 ] }, - { "chance": 35, "item": "trash", "x": 12, "y": 9 }, - { "chance": 35, "item": "trash", "x": 11, "y": 8 }, - { "chance": 35, "item": "trash", "x": 7, "y": 7 }, - { "chance": 35, "item": "trash", "x": 8, "y": 5 }, - { "chance": 75, "item": "camping", "x": 11, "y": 21 } - ], - "place_monsters": [ { "chance": 3, "density": 1, "monster": "GROUP_ZOMBIE", "x": 8, "y": 18 } ], - "place_toilets": [ { "x": 15, "y": 12 } ], - "place_traps": [ { "trap": "tr_nailboard", "x": 9, "y": 4 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": "house_detatched9_roof", - "object": { - "fill_ter": "t_shingle_flat_roof", - "rows": [ - " ", - " ", - " ", - " |2223 ", - " |...3 ", - " |222|...32222223 ", - " |..............3 ", - " |..............5 ", - " |..............3 ", - " |..N..=........3 ", - " |..............3 ", - " |.......&......3 ", - " |----..........3 ", - " |..........3 ", - " |..........3 ", - " |------5---3 ", - " ", - " ", - " ", - " ", - " .... ", - " .... ", - " .... ", - " " - ], - "palettes": [ "roof_palette" ], - "terrain": { ".": "t_shingle_flat_roof" } - } - } -] diff --git a/data/json/mutations/mutations.json b/data/json/mutations/mutations.json index 28a0298329ba9..b2133a8bc5454 100644 --- a/data/json/mutations/mutations.json +++ b/data/json/mutations/mutations.json @@ -74,16 +74,16 @@ "starting_trait": true, "valid": false, "wet_protection": [ - { "part": "HEAD", "neutral": 6 }, - { "part": "LEG_L", "neutral": 8 }, - { "part": "LEG_R", "neutral": 8 }, - { "part": "FOOT_L", "neutral": 2 }, - { "part": "FOOT_R", "neutral": 2 }, - { "part": "ARM_L", "neutral": 8 }, - { "part": "ARM_R", "neutral": 8 }, - { "part": "HAND_L", "neutral": 12 }, - { "part": "HAND_R", "neutral": 12 }, - { "part": "TORSO", "neutral": 10 } + { "part": "HEAD", "ignored": 6 }, + { "part": "LEG_L", "ignored": 8 }, + { "part": "LEG_R", "ignored": 8 }, + { "part": "FOOT_L", "ignored": 2 }, + { "part": "FOOT_R", "ignored": 2 }, + { "part": "ARM_L", "ignored": 8 }, + { "part": "ARM_R", "ignored": 8 }, + { "part": "HAND_L", "ignored": 12 }, + { "part": "HAND_R", "ignored": 12 }, + { "part": "TORSO", "ignored": 10 } ] }, { diff --git a/data/json/overmap/multitile_city_buildings.json b/data/json/overmap/multitile_city_buildings.json index 772179ed6fa8b..da6f47e766217 100644 --- a/data/json/overmap/multitile_city_buildings.json +++ b/data/json/overmap/multitile_city_buildings.json @@ -2966,65 +2966,5 @@ { "point": [ 0, 0, 1 ], "overmap": "house_detatched4_roof_north" }, { "point": [ 0, 0, -1 ], "overmap": "basement" } ] - }, - { - "type": "city_building", - "id": "house_detatched5", - "locations": [ "land" ], - "overmaps": [ - { "point": [ 0, 0, 0 ], "overmap": "house_detatched5_north" }, - { "point": [ 0, 0, 1 ], "overmap": "house_detatched5_roof_north" }, - { "point": [ 0, 0, -1 ], "overmap": "basement" } - ] - }, - { - "type": "city_building", - "id": "house_detatched6", - "locations": [ "land" ], - "overmaps": [ - { "point": [ 0, 0, 0 ], "overmap": "house_detatched6_north" }, - { "point": [ 0, 0, 1 ], "overmap": "house_detatched6_roof_north" }, - { "point": [ 0, 0, -1 ], "overmap": "basement" } - ] - }, - { - "type": "city_building", - "id": "house_detatched7", - "locations": [ "land" ], - "overmaps": [ - { "point": [ 0, 0, 0 ], "overmap": "house_detatched7_north" }, - { "point": [ 0, 0, 1 ], "overmap": "house_detatched7_roof_north" }, - { "point": [ 0, 0, -1 ], "overmap": "basement" } - ] - }, - { - "type": "city_building", - "id": "house_detatched8", - "locations": [ "land" ], - "overmaps": [ - { "point": [ 0, 0, 0 ], "overmap": "house_detatched8_north" }, - { "point": [ 0, 0, 1 ], "overmap": "house_detatched8_roof_north" }, - { "point": [ 0, 0, -1 ], "overmap": "basement" } - ] - }, - { - "type": "city_building", - "id": "house_detatched9", - "locations": [ "land" ], - "overmaps": [ - { "point": [ 0, 0, 0 ], "overmap": "house_detatched9_north" }, - { "point": [ 0, 0, 1 ], "overmap": "house_detatched9_roof_north" }, - { "point": [ 0, 0, -1 ], "overmap": "basement" } - ] - }, - { - "type": "city_building", - "id": "house_detatched10", - "locations": [ "land" ], - "overmaps": [ - { "point": [ 0, 0, 0 ], "overmap": "house_detatched10_north" }, - { "point": [ 0, 0, 1 ], "overmap": "house_detatched10_roof_north" }, - { "point": [ 0, 0, -1 ], "overmap": "basement" } - ] } ] diff --git a/data/json/overmap/overmap_terrain/overmap_terrain_residential.json b/data/json/overmap/overmap_terrain/overmap_terrain_residential.json index 890637abc9f58..3ba9f9d1e6c7b 100644 --- a/data/json/overmap/overmap_terrain/overmap_terrain_residential.json +++ b/data/json/overmap/overmap_terrain/overmap_terrain_residential.json @@ -1184,107 +1184,5 @@ "copy-from": "generic_city_building", "color": "light_green", "see_cost": 2 - }, - { - "type": "overmap_terrain", - "id": "house_detatched5", - "name": "house", - "copy-from": "generic_city_building", - "color": "light_green", - "see_cost": 2, - "flags": [ "SIDEWALK", "GENERIC_LOOT" ] - }, - { - "type": "overmap_terrain", - "id": "house_detatched5_roof", - "name": "house", - "copy-from": "generic_city_building", - "color": "light_green", - "see_cost": 2 - }, - { - "type": "overmap_terrain", - "id": "house_detatched6", - "name": "house", - "copy-from": "generic_city_building", - "color": "light_green", - "see_cost": 2, - "flags": [ "SIDEWALK", "GENERIC_LOOT" ] - }, - { - "type": "overmap_terrain", - "id": "house_detatched6_roof", - "name": "house", - "copy-from": "generic_city_building", - "color": "light_green", - "see_cost": 2 - }, - { - "type": "overmap_terrain", - "id": "house_detatched7", - "name": "house", - "copy-from": "generic_city_building", - "color": "light_green", - "see_cost": 2, - "flags": [ "SIDEWALK", "GENERIC_LOOT" ] - }, - { - "type": "overmap_terrain", - "id": "house_detatched7_roof", - "name": "house", - "copy-from": "generic_city_building", - "color": "light_green", - "see_cost": 2 - }, - { - "type": "overmap_terrain", - "id": "house_detatched8", - "name": "house", - "copy-from": "generic_city_building", - "color": "light_green", - "see_cost": 2, - "flags": [ "SIDEWALK", "GENERIC_LOOT" ] - }, - { - "type": "overmap_terrain", - "id": "house_detatched8_roof", - "name": "house", - "copy-from": "generic_city_building", - "color": "light_green", - "see_cost": 2 - }, - { - "type": "overmap_terrain", - "id": "house_detatched9", - "name": "house", - "copy-from": "generic_city_building", - "color": "light_green", - "see_cost": 2, - "flags": [ "SIDEWALK", "GENERIC_LOOT" ] - }, - { - "type": "overmap_terrain", - "id": "house_detatched9_roof", - "name": "house", - "copy-from": "generic_city_building", - "color": "light_green", - "see_cost": 2 - }, - { - "type": "overmap_terrain", - "id": "house_detatched10", - "name": "house", - "copy-from": "generic_city_building", - "color": "light_green", - "see_cost": 2, - "flags": [ "SIDEWALK", "GENERIC_LOOT" ] - }, - { - "type": "overmap_terrain", - "id": "house_detatched10_roof", - "name": "house", - "copy-from": "generic_city_building", - "color": "light_green", - "see_cost": 2 } ] diff --git a/data/json/professions.json b/data/json/professions.json index 8a92dacd5db8c..526e293de8856 100644 --- a/data/json/professions.json +++ b/data/json/professions.json @@ -1953,11 +1953,10 @@ "bio_targeting", "bio_climate", "bio_evap", - "bio_eye_optic", + "bio_lighter", "bio_power_storage_mkII", "bio_torsionratchet", - "bio_lighter", - "bio_night_vision" + "bio_taste_blocker" ], "skills": [ { "level": 5, "name": "gun" }, diff --git a/data/json/recipes/recipe_food.json b/data/json/recipes/recipe_food.json index 2d99137ca4069..ed71f8644f5ca 100644 --- a/data/json/recipes/recipe_food.json +++ b/data/json/recipes/recipe_food.json @@ -1022,7 +1022,6 @@ "skills_required": [ "survival", 2 ], "time": "24 m", "autolearn": true, - "batch_time_factors": [ 30, 1 ], "qualities": [ { "id": "COOK", "level": 2 }, { "id": "CUT", "level": 1 } ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ], [ [ "rock_quern", -1 ], [ "clay_quern", -1 ], [ "food_processor", 20 ] ] ], "components": [ [ [ "acorns", 1 ] ], [ [ "water", 2 ], [ "water_clean", 2 ] ] ] @@ -1093,7 +1092,6 @@ "difficulty": 1, "time": "8 m", "autolearn": true, - "batch_time_factors": [ 80, 1 ], "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], "components": [ [ [ "seed_weed", 4 ], [ "seed_pumpkin", 4 ], [ "seed_sunflower", 4 ] ] ] @@ -1193,7 +1191,6 @@ "skill_used": "cooking", "time": "3 m", "autolearn": true, - "batch_time_factors": [ 80, 1 ], "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 2, "LIST" ] ] ], "components": [ [ [ "kernels", 1 ] ] ] @@ -1207,7 +1204,6 @@ "skill_used": "cooking", "time": "18 s", "autolearn": true, - "batch_time_factors": [ 80, 1 ], "components": [ [ [ "popcorn", 1 ] ], [ [ "salt", 1 ], [ "seasoning_salt", 1 ] ] ] }, { @@ -1436,7 +1432,6 @@ "qualities": [ { "id": "CONTAIN", "level": 1 } ], "tools": [ [ [ "rag", -1 ] ], [ [ "mortar_pestle", -1 ] ] ], "autolearn": true, - "batch_time_factors": [ 30, 1 ], "components": [ [ [ "almond_unshelled", 2 ] ], [ [ "water_clean", 3 ] ] ] }, { @@ -1452,7 +1447,6 @@ "qualities": [ { "id": "CONTAIN", "level": 1 } ], "tools": [ [ [ "food_processor", 20 ] ], [ [ "rag", -1 ] ] ], "autolearn": true, - "batch_time_factors": [ 80, 1 ], "components": [ [ [ "almond_unshelled", 2 ] ], [ [ "water_clean", 3 ] ] ] }, { @@ -2575,7 +2569,7 @@ "qualities": [ { "id": "COOK", "level": 2 }, { "id": "CUT", "level": 1 } ], "tools": [ [ [ "surface_heat", 2, "LIST" ] ] ], "components": [ - [ [ "can_beans", 1 ], [ "dry_beans", 1 ], [ "raw_beans", 1 ] ], + [ [ "dry_beans", 1 ], [ "raw_beans", 1 ] ], [ [ "dry_rice", 1 ] ], [ [ "veggy_any", 1, "LIST" ], @@ -2698,7 +2692,6 @@ "charges": 1, "time": "1 m 30 s", "autolearn": true, - "batch_time_factors": [ 80, 1 ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], "components": [ [ [ "pinecone", 1 ] ] ] }, @@ -2713,7 +2706,6 @@ "charges": 1, "time": "24 m", "autolearn": true, - "batch_time_factors": [ 80, 1 ], "qualities": [ { "id": "COOK", "level": 1 } ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], "components": [ [ [ "walnut_unshelled", 1 ] ] ] @@ -2729,7 +2721,6 @@ "charges": 1, "time": "24 m", "autolearn": true, - "batch_time_factors": [ 80, 1 ], "qualities": [ { "id": "COOK", "level": 1 } ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], "components": [ [ [ "soybean", 1 ] ] ] @@ -2745,7 +2736,6 @@ "charges": 1, "time": "24 m", "autolearn": true, - "batch_time_factors": [ 80, 1 ], "qualities": [ { "id": "COOK", "level": 1 } ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], "components": [ [ [ "raw_edamame", 1 ] ] ] @@ -2761,7 +2751,6 @@ "charges": 1, "time": "24 m", "autolearn": true, - "batch_time_factors": [ 80, 1 ], "qualities": [ { "id": "COOK", "level": 1 } ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], "components": [ [ [ "pecan_unshelled", 1 ] ] ] @@ -2777,7 +2766,6 @@ "charges": 1, "time": "24 m", "autolearn": true, - "batch_time_factors": [ 80, 1 ], "qualities": [ { "id": "COOK", "level": 1 } ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], "components": [ [ [ "pistachio_unshelled", 1 ] ] ] @@ -2793,7 +2781,6 @@ "charges": 1, "time": "24 m", "autolearn": true, - "batch_time_factors": [ 80, 1 ], "qualities": [ { "id": "COOK", "level": 1 } ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], "components": [ [ [ "almond_unshelled", 1 ] ] ] @@ -2809,7 +2796,6 @@ "charges": 1, "time": "24 m", "autolearn": true, - "batch_time_factors": [ 80, 1 ], "qualities": [ { "id": "COOK", "level": 1 } ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], "components": [ [ [ "chestnut_unshelled", 1 ] ] ] @@ -2825,7 +2811,6 @@ "charges": 1, "time": "24 m", "autolearn": true, - "batch_time_factors": [ 80, 1 ], "qualities": [ { "id": "COOK", "level": 1 } ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], "components": [ [ [ "hazelnut_unshelled", 1 ] ] ] @@ -2841,7 +2826,6 @@ "charges": 1, "time": "24 m", "autolearn": true, - "batch_time_factors": [ 80, 1 ], "qualities": [ { "id": "COOK", "level": 1 } ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], "components": [ [ [ "acorns", 1 ] ] ] @@ -2857,7 +2841,6 @@ "charges": 1, "time": "24 m", "autolearn": true, - "batch_time_factors": [ 80, 1 ], "qualities": [ { "id": "COOK", "level": 1 } ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], "components": [ [ [ "hickory_nut_unshelled", 1 ] ] ] @@ -2870,7 +2853,6 @@ "skill_used": "cooking", "difficulty": 5, "time": "48 m", - "batch_time_factors": [ 80, 1 ], "charges": 10, "book_learn": [ [ "family_cookbook", 5 ], @@ -6004,7 +5986,6 @@ "skills_required": [ "survival", 2 ], "time": "1 h 7 m 30 s", "autolearn": true, - "batch_time_factors": [ 30, 1 ], "qualities": [ { "id": "COOK", "level": 2 }, { "id": "CUT", "level": 1 } ], "tools": [ [ [ "surface_heat", 5, "LIST" ] ], [ [ "mortar_pestle", -1 ] ] ], "components": [ [ [ "acorns", 1 ] ], [ [ "water", 2 ], [ "water_clean", 2 ] ] ] diff --git a/data/json/regional_map_settings.json b/data/json/regional_map_settings.json index 7c504b5d41dd6..c70e1b151d8b3 100644 --- a/data/json/regional_map_settings.json +++ b/data/json/regional_map_settings.json @@ -537,7 +537,7 @@ "houses": { "house_w_1": 50, "house_two_story_basement": 1, - "house": 400, + "house": 700, "house_prepper": 20, "house_base": 333, "duplex": 40, @@ -585,12 +585,6 @@ "house_detatched2": 50, "house_detatched3": 50, "house_detatched4": 50, - "house_detatched5": 50, - "house_detatched6": 50, - "house_detatched7": 50, - "house_detatched8": 50, - "house_detatched9": 50, - "house_detatched10": 50, "house_dogs": 50, "house_gardener": 50, "house_inner_garden": 50, diff --git a/data/mods/Aftershock/items/armor.json b/data/mods/Aftershock/items/armor.json index 8f02505c2f85f..f0aec8f9a3b08 100644 --- a/data/mods/Aftershock/items/armor.json +++ b/data/mods/Aftershock/items/armor.json @@ -22,6 +22,209 @@ "material_thickness": 2, "flags": [ "BELTED", "ONLY_ONE", "LEAK_DAM" ] }, + { + "id": "afs_boot_quiver", + "type": "ARMOR", + "name": "boot quiver", + "description": "This is a makeshift quiver made from a thigh-high boot with the heel removed and patched shut, and strings used as a strap run through a hole punched into its side. It can hold 40 arrows or bolts for easy access.", + "weight": "770 g", + "volume": "2 L", + "price": 500, + "bashing": 4, + "material": [ "leather" ], + "symbol": "[", + "looks_like": "quiver", + "color": "dark_gray", + "covers": [ "TORSO" ], + "coverage": 20, + "encumbrance": 5, + "material_thickness": 1, + "use_action": { "type": "bandolier", "capacity": 40, "ammo": [ "arrow", "bolt" ], "draw_cost": 20 }, + "flags": [ "BELTED", "OVERSIZE", "WATER_FRIENDLY" ] + }, + { + "id": "afs_blatant_half_life_reference", + "type": "ARMOR", + "name": "hazardous environment suit", + "description": "Developed for the exploration of alien planes, the lightweight, orange-black HEV suit covers everything below the neck. While it possesses only modest physical protection, it provides excellent protection from most environmental hazards. A hatch in the front opens to provide a small amount of storage.", + "symbol": "[", + "color": "yellow", + "weight": "3501 g", + "volume": "2500 ml", + "price": 100000000, + "price_postapoc": 50000, + "material": [ "superalloy", "kevlar" ], + "covers": [ "TORSO", "ARMS", "HANDS", "LEGS", "FEET" ], + "coverage": 100, + "material_thickness": 2, + "encumbrance": 9, + "storage": "3 L", + "warmth": 20, + "environmental_protection": 5, + "flags": [ + "CLIMATE_CONTROL", + "ELECTRIC_IMMUNE", + "RAD_PROOF", + "WATERPROOF", + "COLLAR", + "THERMOMETER", + "ONLY_ONE", + "OUTER", + "STURDY" + ], + "looks_like": "depowered_armor" + }, + { + "id": "afs_hev_helmet", + "type": "TOOL_ARMOR", + "name": "hazardous environment helmet", + "description": "Meant to pair with a compatible HEV suit, this helmet's physical protection is basic at best, but makes up for it with an air recycler that provides excellent protection from airborne contaminants. It has a mounted LED headlamp, powered by standard batteries.", + "symbol": "[", + "color": "yellow", + "weight": "581 g", + "volume": "2 L", + "price": 10000000, + "price_postapoc": 5000, + "material": [ "superalloy", "plastic" ], + "covers": [ "HEAD", "EYES", "MOUTH" ], + "coverage": 100, + "material_thickness": 2, + "encumbrance": 15, + "warmth": 20, + "environmental_protection": 11, + "qualities": [ [ "GLARE", 3 ] ], + "charges_per_use": 1, + "ammo": "battery", + "use_action": { + "type": "transform", + "msg": "You turn the helmet's headlamp on.", + "target": "afs_hev_helmet_on", + "active": true, + "need_charges": 1, + "need_charges_msg": "The helmet's batteries are dead." + }, + "flags": [ "WATERPROOF", "FLASH_PROTECTION", "ONLY_ONE", "STURDY" ], + "looks_like": "depowered_helmet", + "magazines": [ + [ + "battery", + [ + "light_battery_cell", + "light_minus_battery_cell", + "light_plus_battery_cell", + "light_minus_atomic_battery_cell", + "light_atomic_battery_cell", + "light_minus_disposable_cell", + "light_disposable_cell" + ] + ] + ], + "magazine_well": 1 + }, + { + "id": "afs_hev_helmet_on", + "type": "TOOL_ARMOR", + "copy-from": "afs_hev_helmet", + "name": { "str": "hazardous environment helmet (on)", "str_pl": "hazardous environment helmets (on)" }, + "description": "Meant to pair with a compatible HEV suit, this helmet's physical protection is basic at best, but makes up for it with an air recycler that provides excellent protection from airborne contaminants. Its light is on, illuminating the area at a cost of batteries.", + "revert_to": "afs_hev_helmet", + "turns_per_charge": 20, + "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "The %s flicks off.", "target": "afs_hev_helmet" }, + "flags": [ "LIGHT_500", "WATERPROOF", "FLASH_PROTECTION", "ONLY_ONE", "STURDY" ], + "looks_like": "depowered_helmet" + }, + { + "id": "afs_quilt", + "type": "ARMOR", + "name": "quilt", + "description": "A big, comfy quilt made of thick wool in a triangle pattern. Extremely cozy!", + "weight": "1814 g", + "volume": "5 L", + "price": 5500, + "to_hit": -1, + "material": [ "wool" ], + "symbol": "[", + "color": "white", + "covers": [ "TORSO", "ARMS", "HANDS", "LEGS", "FEET" ], + "coverage": 100, + "encumbrance": 40, + "warmth": 100, + "material_thickness": 3, + "environmental_protection": 2, + "flags": [ "OVERSIZE", "OUTER", "ALLOWS_NATURAL_ATTACKS" ], + "looks_like": "down_blanket" + }, + { + "id": "afs_quilt_patchwork", + "type": "ARMOR", + "copy-from": "afs_quilt", + "name": "patchwork quilt", + "description": "A huge, patchwork wool quilt. Very, very warm.", + "encumbrance": 50, + "warmth": 90 + }, + { + "id": "afs_survivor_belt", + "copy-from": "survivor_belt", + "type": "ARMOR", + "name": { "str": "survivor utility belt (holster)", "str_pl": "survivor utility belts (holster)" }, + "description": "A custom-built leather utility belt covered with straps and pouches containing many useful hand tools and a clip for holding various equipment. Durable and carefully crafted to be comfortable to wear. Activate to clip something to it.", + "use_action": { + "type": "holster", + "holster_prompt": "Attach what to belt loop?", + "holster_msg": "You clip your %s to your %s", + "max_volume": "1500 ml", + "max_weight": 2000, + "draw_cost": 50, + "flags": [ "BELT_CLIP" ] + } + }, + { + "id": "survivor_belt", + "copy-from": "survivor_belt", + "type": "ARMOR", + "name": { "str": "survivor utility belt (sheath)", "str_pl": "survivor utility belts (sheath)" } + }, + { + "id": "afs_brigandine", + "type": "ARMOR", + "name": "brigandine", + "description": "A piece of body armor from the Middle Ages consisting of boiled leather with riveted metal plates lying underneath. Typically used to protect from arrows, it has very good protection against cuts.", + "weight": "3268 g", + "volume": "1500 ml", + "price": 5000, + "to_hit": -3, + "material": [ "leather", "steel" ], + "symbol": "[", + "looks_like": "armor_blarmor", + "color": "brown", + "covers": [ "TORSO" ], + "coverage": 100, + "encumbrance": 16, + "warmth": 25, + "material_thickness": 3, + "flags": [ "RAINPROOF", "STURDY", "OUTER", "ONLY_ONE", "VARSIZE" ] + }, + { + "id": "afs_brigandine_crafted", + "type": "ARMOR", + "name": "crafted brigandine", + "description": "Modelled after a proper brigandine from medieval times, this makeshift piece of body armor consists of layered cloth with small pieces of sheet metal affixed to the underside. While not as protective as a proper piece of armor, it'll still keep you relatively safe.", + "weight": "3268 g", + "volume": "1500 ml", + "price": 1000, + "to_hit": -3, + "material": [ "cotton", "steel" ], + "symbol": "[", + "looks_like": "armor_blarmor", + "color": "white", + "covers": [ "TORSO" ], + "coverage": 95, + "encumbrance": 14, + "warmth": 20, + "material_thickness": 2, + "flags": [ "OUTER", "VARSIZE" ] + }, { "id": "afs_titanium_vest", "type": "ARMOR", @@ -40,6 +243,40 @@ "encumbrance": 4, "material_thickness": 2 }, + { + "id": "afs_mbr_titanium", + "type": "ARMOR", + "category": "armor", + "name": "MBR vest (titanium)", + "name_plural": "MBR vests (titanium)", + "description": "A Modular Bullet Resistant Vest. Titanium scraps have been inserted to improve its protection. It has four pouches capable of carrying magazines.", + "weight": "3108 g", + "volume": "6 L", + "price": 110000, + "to_hit": -3, + "bashing": 6, + "material": [ "kevlar", "titanium" ], + "symbol": "[", + "looks_like": "kevlar", + "color": "light_gray", + "covers": [ "TORSO" ], + "coverage": 85, + "encumbrance": 7, + "storage": "2500 ml", + "warmth": 15, + "material_thickness": 3, + "use_action": { + "type": "holster", + "holster_prompt": "Stash ammo", + "holster_msg": "You stash your %s.", + "multi": 4, + "min_volume": "250 ml", + "max_volume": "1 L", + "draw_cost": 60, + "flags": [ "MAG_COMPACT" ] + }, + "flags": [ "STURDY", "OUTER" ] + }, { "id": "afs_holo_cloak_mk2", "type": "TOOL_ARMOR", diff --git a/data/mods/Aftershock/items/obsolete.json b/data/mods/Aftershock/items/obsolete.json index 7d56651b12f54..88966e1568b0c 100644 --- a/data/mods/Aftershock/items/obsolete.json +++ b/data/mods/Aftershock/items/obsolete.json @@ -1,257 +1,20 @@ -[ - { - "id": "afs_dough", - "type": "COMESTIBLE", - "name": "dough", - "weight": "226 g", - "color": "yellow", - "comestible_type": "FOOD", - "symbol": "%", - "calories": 86, - "quench": -5, - "description": "Flour mixed with water, kneaded into a gooey paste. This dough can be used to bake bread more efficiently than with just flour.", - "price": 100, - "volume": "500 ml", - "charges": 2, - "flags": [ "EATEN_HOT" ], - "looks_like": "flour", - "fun": -5 - }, - { - "id": "afs_blatant_half_life_reference", - "type": "ARMOR", - "name": "hazardous environment suit", - "description": "Developed for the exploration of alien planes, the lightweight, orange-black HEV suit covers everything below the neck. While it possesses only modest physical protection, it provides excellent protection from most environmental hazards. A hatch in the front opens to provide a small amount of storage.", - "symbol": "[", - "color": "yellow", - "weight": "3501 g", - "volume": "2500 ml", - "price": 100000000, - "price_postapoc": 50000, - "material": [ "superalloy", "kevlar" ], - "covers": [ "TORSO", "ARMS", "HANDS", "LEGS", "FEET" ], - "coverage": 100, - "material_thickness": 2, - "encumbrance": 9, - "storage": "3 L", - "warmth": 20, - "environmental_protection": 5, - "flags": [ - "CLIMATE_CONTROL", - "ELECTRIC_IMMUNE", - "RAD_PROOF", - "WATERPROOF", - "COLLAR", - "THERMOMETER", - "ONLY_ONE", - "OUTER", - "STURDY" - ], - "looks_like": "depowered_armor" - }, - { - "id": "afs_hev_helmet", - "type": "TOOL_ARMOR", - "name": "hazardous environment helmet", - "description": "Meant to pair with a compatible HEV suit, this helmet's physical protection is basic at best, but makes up for it with an air recycler that provides excellent protection from airborne contaminants. It has a mounted LED headlamp, powered by standard batteries.", - "symbol": "[", - "color": "yellow", - "weight": "581 g", - "volume": "2 L", - "price": 10000000, - "price_postapoc": 5000, - "material": [ "superalloy", "plastic" ], - "covers": [ "HEAD", "EYES", "MOUTH" ], - "coverage": 100, - "material_thickness": 2, - "encumbrance": 15, - "warmth": 20, - "environmental_protection": 11, - "qualities": [ [ "GLARE", 3 ] ], - "charges_per_use": 1, - "ammo": "battery", - "use_action": { - "type": "transform", - "msg": "You turn the helmet's headlamp on.", - "target": "afs_hev_helmet_on", - "active": true, - "need_charges": 1, - "need_charges_msg": "The helmet's batteries are dead." - }, - "flags": [ "WATERPROOF", "FLASH_PROTECTION", "ONLY_ONE", "STURDY" ], - "looks_like": "depowered_helmet", - "magazines": [ - [ - "battery", - [ - "light_battery_cell", - "light_minus_battery_cell", - "light_plus_battery_cell", - "light_minus_atomic_battery_cell", - "light_atomic_battery_cell", - "light_minus_disposable_cell", - "light_disposable_cell" - ] - ] - ], - "magazine_well": 1 - }, - { - "id": "afs_hev_helmet_on", - "type": "TOOL_ARMOR", - "copy-from": "afs_hev_helmet", - "name": { "str": "hazardous environment helmet (on)", "str_pl": "hazardous environment helmets (on)" }, - "description": "Meant to pair with a compatible HEV suit, this helmet's physical protection is basic at best, but makes up for it with an air recycler that provides excellent protection from airborne contaminants. Its light is on, illuminating the area at a cost of batteries.", - "revert_to": "afs_hev_helmet", - "turns_per_charge": 20, - "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "The %s flicks off.", "target": "afs_hev_helmet" }, - "flags": [ "LIGHT_500", "WATERPROOF", "FLASH_PROTECTION", "ONLY_ONE", "STURDY" ], - "looks_like": "depowered_helmet" - }, - { - "id": "afs_boot_quiver", - "type": "ARMOR", - "name": "boot quiver", - "description": "This is a makeshift quiver made from a thigh-high boot with the heel removed and patched shut, and strings used as a strap run through a hole punched into its side. It can hold 40 arrows or bolts for easy access.", - "weight": "770 g", - "volume": "2 L", - "price": 500, - "bashing": 4, - "material": [ "leather" ], - "symbol": "[", - "looks_like": "quiver", - "color": "dark_gray", - "covers": [ "TORSO" ], - "coverage": 20, - "encumbrance": 5, - "material_thickness": 1, - "use_action": { "type": "bandolier", "capacity": 40, "ammo": [ "arrow", "bolt" ], "draw_cost": 20 }, - "flags": [ "BELTED", "OVERSIZE", "WATER_FRIENDLY" ] - }, - { - "id": "afs_quilt", - "type": "ARMOR", - "name": "quilt", - "description": "A big, comfy quilt made of thick wool in a triangle pattern. Extremely cozy!", - "weight": "1814 g", - "volume": "5 L", - "price": 5500, - "to_hit": -1, - "material": [ "wool" ], - "symbol": "[", - "color": "white", - "covers": [ "TORSO", "ARMS", "HANDS", "LEGS", "FEET" ], - "coverage": 100, - "encumbrance": 40, - "warmth": 100, - "material_thickness": 3, - "environmental_protection": 2, - "flags": [ "OVERSIZE", "OUTER", "ALLOWS_NATURAL_ATTACKS" ], - "looks_like": "down_blanket" - }, - { - "id": "afs_quilt_patchwork", - "type": "ARMOR", - "copy-from": "afs_quilt", - "name": "patchwork quilt", - "description": "A huge, patchwork wool quilt. Very, very warm.", - "encumbrance": 50, - "warmth": 90 - }, - { - "id": "afs_survivor_belt", - "copy-from": "survivor_belt", - "type": "ARMOR", - "name": { "str": "survivor utility belt (holster)", "str_pl": "survivor utility belts (holster)" }, - "description": "A custom-built leather utility belt covered with straps and pouches containing many useful hand tools and a clip for holding various equipment. Durable and carefully crafted to be comfortable to wear. Activate to clip something to it.", - "use_action": { - "type": "holster", - "holster_prompt": "Attach what to belt loop?", - "holster_msg": "You clip your %s to your %s", - "max_volume": "1500 ml", - "max_weight": 2000, - "draw_cost": 50, - "flags": [ "BELT_CLIP" ] - } - }, - { - "id": "survivor_belt", - "copy-from": "survivor_belt", - "type": "ARMOR", - "name": { "str": "survivor utility belt (sheath)", "str_pl": "survivor utility belts (sheath)" } - }, - { - "id": "afs_brigandine", - "type": "ARMOR", - "name": "brigandine", - "description": "A piece of body armor from the Middle Ages consisting of boiled leather with riveted metal plates lying underneath. Typically used to protect from arrows, it has very good protection against cuts.", - "weight": "3268 g", - "volume": "1500 ml", - "price": 5000, - "to_hit": -3, - "material": [ "leather", "steel" ], - "symbol": "[", - "looks_like": "armor_blarmor", - "color": "brown", - "covers": [ "TORSO" ], - "coverage": 100, - "encumbrance": 16, - "warmth": 25, - "material_thickness": 3, - "flags": [ "RAINPROOF", "STURDY", "OUTER", "ONLY_ONE", "VARSIZE" ] - }, - { - "id": "afs_mbr_titanium", - "type": "ARMOR", - "category": "armor", - "name": "MBR vest (titanium)", - "name_plural": "MBR vests (titanium)", - "description": "A Modular Bullet Resistant Vest. Titanium scraps have been inserted to improve its protection. It has four pouches capable of carrying magazines.", - "weight": "3108 g", - "volume": "6 L", - "price": 110000, - "to_hit": -3, - "bashing": 6, - "material": [ "kevlar", "titanium" ], - "symbol": "[", - "looks_like": "kevlar", - "color": "light_gray", - "covers": [ "TORSO" ], - "coverage": 85, - "encumbrance": 7, - "storage": "2500 ml", - "warmth": 15, - "material_thickness": 3, - "use_action": { - "type": "holster", - "holster_prompt": "Stash ammo", - "holster_msg": "You stash your %s.", - "multi": 4, - "min_volume": "250 ml", - "max_volume": "1 L", - "draw_cost": 60, - "flags": [ "MAG_COMPACT" ] - }, - "flags": [ "STURDY", "OUTER" ] - }, - { - "id": "afs_brigandine_crafted", - "type": "ARMOR", - "name": "crafted brigandine", - "description": "Modelled after a proper brigandine from medieval times, this makeshift piece of body armor consists of layered cloth with small pieces of sheet metal affixed to the underside. While not as protective as a proper piece of armor, it'll still keep you relatively safe.", - "weight": "3268 g", - "volume": "1500 ml", - "price": 1000, - "to_hit": -3, - "material": [ "cotton", "steel" ], - "symbol": "[", - "looks_like": "armor_blarmor", - "color": "white", - "covers": [ "TORSO" ], - "coverage": 95, - "encumbrance": 14, - "warmth": 20, - "material_thickness": 2, - "flags": [ "OUTER", "VARSIZE" ] - } -] +{ + "id": "afs_dough", + "type": "COMESTIBLE", + "name": "dough", + "weight": "226 g", + "color": "yellow", + "comestible_type": "FOOD", + "symbol": "%", + "calories": 86, + "quench": -5, + "description": "Flour mixed with water, kneaded into a gooey paste. This dough can be used to bake bread more efficiently than with just flour.", + "price": 100, + "volume": "500 ml", + "charges": 2, + "flags": [ + "EATEN_HOT" + ], + "looks_like": "flour", + "fun": -5 +} diff --git a/data/mods/Aftershock/player/professions.json b/data/mods/Aftershock/player/professions.json index d3cdf1d773450..71a4266ce0769 100644 --- a/data/mods/Aftershock/player/professions.json +++ b/data/mods/Aftershock/player/professions.json @@ -165,8 +165,8 @@ "items": { "both": { "items": [ - "phase_immersion_suit", - "dimensional_anchor", + "afs_blatant_half_life_reference", + "afs_hev_helmet", "socks", "afs_calorie_pill", "crowbar", diff --git a/data/mods/Aftershock/recipes/armor_recipes.json b/data/mods/Aftershock/recipes/armor_recipes.json index 07ae86937da5a..70d2e9dfe36d4 100644 --- a/data/mods/Aftershock/recipes/armor_recipes.json +++ b/data/mods/Aftershock/recipes/armor_recipes.json @@ -1,4 +1,121 @@ [ + { + "result": "armguard_bone", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_ARMS", + "skill_used": "tailor", + "difficulty": 4, + "time": 30000, + "autolearn": true, + "using": [ [ "sewing_standard", 11 ] ], + "components": [ + [ [ "bone", 10 ], [ "bone_human", 10 ], [ "bone_tainted", 20 ] ], + [ [ "leather", 6 ], [ "tanned_hide", 1 ], [ "fur", 6 ], [ "tanned_pelt", 1 ] ] + ] + }, + { + "result": "boots_bone", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_FEET", + "skill_used": "tailor", + "difficulty": 3, + "time": 40000, + "autolearn": true, + "using": [ [ "sewing_standard", 18 ] ], + "components": [ [ [ "bone", 18 ], [ "bone_human", 18 ], [ "bone_tainted", 36 ] ], [ [ "leather", 6 ], [ "fur", 6 ] ] ] + }, + { + "result": "gauntlets_bone", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_HANDS", + "skill_used": "tailor", + "difficulty": 3, + "time": 30000, + "autolearn": true, + "using": [ [ "sewing_standard", 12 ], [ "cordage", 1 ] ], + "components": [ [ [ "bone", 12 ], [ "bone_human", 12 ], [ "bone_tainted", 24 ] ], [ [ "leather", 2 ] ] ] + }, + { + "result": "helmet_bone", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_HEAD", + "skill_used": "tailor", + "difficulty": 5, + "time": 60000, + "autolearn": true, + "qualities": [ { "id": "CUT", "level": 1 } ], + "components": [ [ [ "bone", 24 ], [ "bone_human", 24 ], [ "bone_tainted", 48 ] ] ] + }, + { + "result": "armor_bone", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_SUIT", + "skill_used": "tailor", + "difficulty": 6, + "time": 30000, + "autolearn": true, + "using": [ [ "sewing_standard", 43 ] ], + "components": [ + [ [ "bone", 40 ], [ "bone_human", 40 ], [ "bone_tainted", 80 ] ], + [ [ "leather", 12 ], [ "tanned_hide", 2 ], [ "fur", 12 ], [ "tanned_pelt", 2 ] ] + ] + }, + { + "result": "afs_quilt_patchwork", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_SUIT", + "skill_used": "tailor", + "difficulty": 1, + "time": 120000, + "autolearn": true, + "reversible": true, + "using": [ [ "sewing_standard", 80 ] ], + "components": [ [ [ "felt_patch", 30 ] ] ] + }, + { + "result": "afs_boot_quiver", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_STORAGE", + "skill_used": "fabrication", + "time": 10000, + "autolearn": true, + "using": [ [ "sewing_standard", 25 ] ], + "byproducts": [ [ "leather", 8 ] ], + "components": [ [ [ "thigh_high_boots", 1 ] ], [ [ "string_6", 3 ], [ "rope_6", 1 ] ] ] + }, + { + "result": "afs_brigandine_crafted", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_TORSO", + "skill_used": "tailor", + "difficulty": 3, + "time": 25000, + "autolearn": true, + "book_learn": [ [ "textbook_armwest", 1 ] ], + "using": [ [ "sewing_standard", 30 ] ], + "components": [ [ [ "rag", 15 ] ], [ [ "sheet_metal_small", 6 ] ], [ [ "adhesive", 1, "LIST" ] ] ] + }, + { + "result": "afs_brigandine", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_TORSO", + "skill_used": "tailor", + "difficulty": 4, + "time": 60000, + "book_learn": [ [ "textbook_armwest", 3 ] ], + "tools": [ [ [ "cordless_drill", 20 ] ] ], + "using": [ [ "sewing_standard", 40 ] ], + "components": [ [ [ "leather", 14 ] ], [ [ "sheet_metal_small", 8 ] ] ] + }, { "result": "afs_titanium_vest", "type": "recipe", @@ -11,5 +128,31 @@ "reversible": true, "using": [ [ "sewing_standard", 14 ] ], "components": [ [ [ "afs_scrap_titanium", 8 ] ], [ [ "rag", 6 ] ] ] + }, + { + "result": "afs_mbr_titanium", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_TORSO", + "skill_used": "tailor", + "time": 5000, + "reversible": true, + "decomp_learn": 0, + "autolearn": true, + "components": [ [ [ "modularvest", 1 ] ], [ [ "afs_scrap_titanium", 6 ] ] ], + "flags": [ "BLIND_EASY" ] + }, + { + "result": "ear_plugs", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_HEAD", + "skill_used": "fabrication", + "difficulty": 2, + "time": 10000, + "autolearn": true, + "using": [ [ "surface_heat", 5, "LIST" ] ], + "tools": [ [ [ "mold_plastic", -1 ] ] ], + "components": [ [ [ "plastic_chunk", 1 ] ] ] } ] diff --git a/data/mods/Aftershock/recipes/obsolete.json b/data/mods/Aftershock/recipes/obsolete.json index 6d099960e84e7..32737674d3019 100644 --- a/data/mods/Aftershock/recipes/obsolete.json +++ b/data/mods/Aftershock/recipes/obsolete.json @@ -21,61 +21,5 @@ "id_suffix": "afs_from_dough", "result": "hardtack", "obsolete": true - }, - { - "result": "armguard_bone", - "type": "recipe", - "obsolete": true - }, - { - "result": "boots_bone", - "type": "recipe", - "obsolete": true - }, - { - "result": "gauntlets_bone", - "type": "recipe", - "obsolete": true - }, - { - "result": "helmet_bone", - "type": "recipe", - "obsolete": true - }, - { - "result": "armor_bone", - "type": "recipe", - "obsolete": true - }, - { - "type": "recipe", - "result": "survivor_belt", - "id_suffix": "afs_convert", - "obsolete": true - }, - { - "result": "afs_quilt_patchwork", - "type": "recipe", - "obsolete": true - }, - { - "result": "afs_boot_quiver", - "type": "recipe", - "obsolete": true - }, - { - "result": "afs_brigandine_crafted", - "type": "recipe", - "obsolete": true - }, - { - "result": "afs_brigandine", - "type": "recipe", - "obsolete": true - }, - { - "result": "afs_mbr_titanium", - "type": "recipe", - "obsolete": true } ] diff --git a/data/mods/Aftershock/recipes/recipes.json b/data/mods/Aftershock/recipes/recipes.json index 61cfedba89796..b7be85086e213 100644 --- a/data/mods/Aftershock/recipes/recipes.json +++ b/data/mods/Aftershock/recipes/recipes.json @@ -136,6 +136,17 @@ "autolearn": true, "components": [ [ [ "survivor_belt", 1 ] ] ] }, + { + "type": "recipe", + "result": "survivor_belt", + "id_suffix": "afs_convert", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_STORAGE", + "skill_used": "fabrication", + "time": 1000, + "autolearn": true, + "components": [ [ [ "afs_survivor_belt", 1 ] ] ] + }, { "type": "recipe", "result": "afs_basin", diff --git a/data/mods/Graphical_Overmap/overmap_terrain.json b/data/mods/Graphical_Overmap/overmap_terrain.json index d1cf495fe15d5..d50b10f6650cf 100644 --- a/data/mods/Graphical_Overmap/overmap_terrain.json +++ b/data/mods/Graphical_Overmap/overmap_terrain.json @@ -21581,8 +21581,8 @@ }, { "type": "overmap_terrain", - "id": "rural_house1", - "copy-from": "rural_house1", + "id": "rural_house", + "copy-from": "rural_house", "sym": "\u00E2" }, { diff --git a/data/mods/Magiclysm/Spells/classless.json b/data/mods/Magiclysm/Spells/classless.json index 5bc71c76b263e..2c44d083014d2 100644 --- a/data/mods/Magiclysm/Spells/classless.json +++ b/data/mods/Magiclysm/Spells/classless.json @@ -1,38 +1,4 @@ [ - { - "id": "crystallize_mana", - "type": "SPELL", - "name": "Crystallize Mana", - "description": "Crystallizes mana into solid form", - "valid_targets": [ "self" ], - "spell_class": "NONE", - "flags": [ "PERMANENT", "NO_LEGS", "CONCENTRATE" ], - "difficulty": 3, - "min_damage": 1, - "max_damage": 1, - "duration_increment": 1, - "effect": "spawn_item", - "effect_str": "crystallized_mana", - "energy_source": "MANA", - "base_energy_cost": 1000, - "final_energy_cost": 1000, - "base_casting_time": 720000, - "final_casting_time": 720000, - "extra_effects": [ { "id": "mana_fatigue" } ] - }, - { - "id": "mana_fatigue", - "type": "SPELL", - "name": "Mana Fatigue", - "description": "Secondary effect of Crystallize Mana", - "valid_targets": [ "self" ], - "effect": "target_attack", - "effect_str": "mana_fatigue", - "max_level": 1, - "min_duration": 6000, - "max_duration": 6000, - "//": "actual fatigue gained is 1/100th duration, at 6000 you get 60 fatigue." - }, { "id": "dark_sight", "type": "SPELL", diff --git a/data/mods/Magiclysm/effects/effects.json b/data/mods/Magiclysm/effects/effects.json index 31cc5fee3114f..004ce713a8bc8 100644 --- a/data/mods/Magiclysm/effects/effects.json +++ b/data/mods/Magiclysm/effects/effects.json @@ -1,14 +1,4 @@ [ - { - "type": "effect_type", - "id": "mana_fatigue", - "name": [ "Mana Fatigue" ], - "desc": [ "You are exhausted from channeling a lot of mana." ], - "apply_message": "Channeling so much mana is making you tired", - "remove_message": "The burden of mana fatigue has faded", - "rating": "bad", - "base_mods": { "fatigue_amount": [ 1 ], "fatigue_min": [ 1 ] } - }, { "type": "effect_type", "id": "enchant_windrun", diff --git a/data/mods/Magiclysm/itemgroups/spellbooks.json b/data/mods/Magiclysm/itemgroups/spellbooks.json index 01dcb80e21a76..fb5a696259608 100644 --- a/data/mods/Magiclysm/itemgroups/spellbooks.json +++ b/data/mods/Magiclysm/itemgroups/spellbooks.json @@ -25,8 +25,7 @@ [ "spell_scroll_laze", 25 ], [ "spell_scroll_lightning_blast", 20 ], [ "spell_scroll_x-ray", 30 ], - [ "spell_scroll_necrotic_gaze", 50 ], - [ "spell_scroll_crystallize_mana", 20 ] + [ "spell_scroll_necrotic_gaze", 50 ] ] }, { @@ -60,8 +59,7 @@ [ "spell_scroll_spirit_armor", 25 ], [ "spell_scroll_quantum_tunnel_lesser", 50 ], [ "spell_scroll_synaptic_stimulation", 20 ], - [ "spell_scroll_purification_seed", 40 ], - [ "spell_scroll_crystallize_mana", 50 ] + [ "spell_scroll_purification_seed", 40 ] ] }, { diff --git a/data/mods/Magiclysm/items/spell_scrolls.json b/data/mods/Magiclysm/items/spell_scrolls.json index 6cf64037c852a..db87110388fcd 100644 --- a/data/mods/Magiclysm/items/spell_scrolls.json +++ b/data/mods/Magiclysm/items/spell_scrolls.json @@ -10,14 +10,6 @@ "symbol": "?", "color": "white" }, - { - "type": "GENERIC", - "copy-from": "spell_scroll", - "id": "spell_scroll_crystallize_mana", - "name": { "str": "Scroll of Crystallize Mana", "str_pl": "Scrolls of Crystallize Mana" }, - "description": "A proper wizard is always prepared, crystallize your mana for the future!", - "use_action": { "type": "learn_spell", "spells": [ "crystallize_mana" ] } - }, { "type": "GENERIC", "copy-from": "spell_scroll", diff --git a/data/raw/keybindings.json b/data/raw/keybindings.json index 25b800291d147..b9add66ac7a5f 100644 --- a/data/raw/keybindings.json +++ b/data/raw/keybindings.json @@ -731,13 +731,6 @@ "name": "Edit Note", "bindings": [ { "input_method": "keyboard", "key": "E" } ] }, - { - "type": "keybinding", - "id": "MARK_DANGER", - "category": "OVERMAP_NOTES", - "name": "Mark as Dangerous", - "bindings": [ { "input_method": "keyboard", "key": "M" } ] - }, { "type": "keybinding", "id": "DELETE_NOTE", diff --git a/doc/MONSTERS.md b/doc/MONSTERS.md index eb4a24e2babf8..21a5c93379935 100644 --- a/doc/MONSTERS.md +++ b/doc/MONSTERS.md @@ -177,17 +177,9 @@ Monster melee skill, ranges from 0 - 10, with 4 being an average mob. See GAME_B Monster dodge skill. See GAME_BALANCE.txt for an explanation of dodge mechanics. ## "melee_damage" -(array of objects, optional) +(integer, optional) -List of damage instances added to die roll on monster melee attack. - - `damage_type` valid entries are : "true", "biological", "bash", "cut", "acid", "stab", "heat", "cold" and "electric". - - `amount` amount of damage. - - `armor_penetration` how much of the armor the damage instance ignores. - - `armor_multiplier` is a multiplier on `armor_penetration`. - - `damage_multiplier` is a multiplier on `amount`. -```JSON - "melee_damage": [ { "damage_type": "electric", "amount": 4.0, "armor_penetration": 1, "armor_multiplier": 1.2, "damage_multiplier": 1.4 } ], -``` +Amount of bash damage added to die roll on monster melee attack. ## "melee_dice", "melee_dice_sides" (integer, optional) diff --git a/src/action.cpp b/src/action.cpp index c0d32af0e2293..9ae8bc1fb953f 100644 --- a/src/action.cpp +++ b/src/action.cpp @@ -501,15 +501,6 @@ std::string press_x( action_id act, const std::string &key_bound_pre, input_context ctxt = get_default_mode_input_context(); return ctxt.press_x( action_ident( act ), key_bound_pre, key_bound_suf, key_unbound ); } -cata::optional press_x_if_bound( action_id act ) -{ - input_context ctxt = get_default_mode_input_context(); - std::string description = action_ident( act ); - if( ctxt.keys_bound_to( description ).empty() ) { - return cata::nullopt; - } - return press_x( act ); -} action_id get_movement_action_from_delta( const tripoint &d, const iso_rotate rot ) { diff --git a/src/action.h b/src/action.h index a832550917c96..a5591ccd33155 100644 --- a/src/action.h +++ b/src/action.h @@ -493,8 +493,6 @@ std::string press_x( action_id act, const std::string &key_bound_pre, const std::string &key_bound_suf, const std::string &key_unbound ); // ('Z'ing|zing) (X( or Y))) std::string press_x( action_id act, const std::string &act_desc ); -// Return "Press X" or nullopt if not bound -cata::optional press_x_if_bound( action_id act ); // only has effect in iso mode enum class iso_rotate { diff --git a/src/activity_item_handling.cpp b/src/activity_item_handling.cpp index b7651fea8e802..da168f52642df 100644 --- a/src/activity_item_handling.cpp +++ b/src/activity_item_handling.cpp @@ -2350,9 +2350,7 @@ static bool chop_tree_activity( player &p, const tripoint &src_loc ) return false; } int moves = chop_moves( p, best_qual ); - if( best_qual->type->can_have_charges() ) { - p.consume_charges( *best_qual, best_qual->type->charges_to_use() ); - } + p.consume_charges( *best_qual, best_qual->type->charges_to_use() ); const ter_id ter = g->m.ter( src_loc ); if( g->m.has_flag( "TREE", src_loc ) ) { p.assign_activity( activity_id( "ACT_CHOP_TREE" ), moves, -1, p.get_item_position( best_qual ) ); diff --git a/src/crafting.cpp b/src/crafting.cpp index 4618bca03ac21..b59dc912788d3 100644 --- a/src/crafting.cpp +++ b/src/crafting.cpp @@ -498,8 +498,7 @@ const inventory &Character::crafting_inventory( bool clear_path ) return crafting_inventory( tripoint_zero, PICKUP_RANGE, clear_path ); } -const inventory &Character::crafting_inventory( const tripoint &src_pos, int radius, - bool clear_path ) +const inventory &Character::crafting_inventory( const tripoint &src_pos, int radius, bool clear_path ) { tripoint inv_pos = src_pos; if( src_pos == tripoint_zero ) { diff --git a/src/game.cpp b/src/game.cpp index 9fe86b62eb54b..4fa8c85ab501d 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -7789,7 +7789,14 @@ void game::drop_in_direction() // Used to set up the first Hotkey in the display set static int get_initial_hotkey( const size_t menu_index ) { - return ( menu_index == 0 ) ? hotkey_for_action( ACTION_BUTCHER ) : -1; + int hotkey = -1; + if( menu_index == 0 ) { + const int butcher_key = inp_mngr.get_previously_pressed_key(); + if( butcher_key != 0 ) { + hotkey = butcher_key; + } + } + return hotkey; } // Returns a vector of pairs. diff --git a/src/handle_action.cpp b/src/handle_action.cpp index 323f0fc3092c1..cbaab245dafba 100644 --- a/src/handle_action.cpp +++ b/src/handle_action.cpp @@ -1568,12 +1568,9 @@ bool game::handle_action() const std::string &&name = inp_mngr.get_keyname( ch, evt.type, true ); if( !get_option( "NO_UNKNOWN_COMMAND_MSG" ) ) { add_msg( m_info, _( "Unknown command: \"%s\" (%ld)" ), name, ch ); - if( const cata::optional hint = - press_x_if_bound( ACTION_KEYBINDINGS ) ) { - add_msg( m_info, _( "%s at any time to see and edit keybindings relevant to " - "the current context." ), - *hint ); - } + add_msg( m_info, _( "%s at any time to see and edit keybindings relevant to " + "the current context." ), + press_x( ACTION_KEYBINDINGS ) ); } } return false; diff --git a/src/item.cpp b/src/item.cpp index 2bbbb27882ef7..534ebedf07964 100644 --- a/src/item.cpp +++ b/src/item.cpp @@ -158,34 +158,24 @@ item &null_item_reference() namespace item_internal { bool goes_bad_temp_cache = false; -const item *goes_bad_temp_cache_for = nullptr; +bool goes_bad_temp_cache_set = false; inline bool goes_bad_cache_fetch() { return goes_bad_temp_cache; } -inline void goes_bad_cache_set( const item *i ) +inline void goes_bad_cache_set( bool v ) { - goes_bad_temp_cache = i->goes_bad(); - goes_bad_temp_cache_for = i; + goes_bad_temp_cache = v; + goes_bad_temp_cache_set = true; } inline void goes_bad_cache_unset() { - goes_bad_temp_cache = false; - goes_bad_temp_cache_for = nullptr; + goes_bad_temp_cache_set = goes_bad_temp_cache = false; } -inline bool goes_bad_cache_is_for( const item *i ) +inline bool goes_bad_cache_is_set() { - return goes_bad_temp_cache_for == i; + return goes_bad_temp_cache_set; } - -struct scoped_goes_bad_cache { - scoped_goes_bad_cache( item *i ) { - goes_bad_cache_set( i ); - } - ~scoped_goes_bad_cache() { - goes_bad_cache_unset(); - } -}; } // namespace item_internal const int item::INFINITE_CHARGES = INT_MAX; @@ -4716,7 +4706,7 @@ int item::get_comestible_fun() const bool item::goes_bad() const { - if( item_internal::goes_bad_cache_is_for( this ) ) { + if( item_internal::goes_bad_cache_is_set() ) { return item_internal::goes_bad_cache_fetch(); } if( has_flag( "PROCESSING" ) ) { @@ -8290,7 +8280,7 @@ void item::process_temperature_rot( float insulation, const tripoint &pos, } time_point time; - item_internal::scoped_goes_bad_cache _( this ); + item_internal::goes_bad_cache_set( goes_bad() ); if( goes_bad() ) { time = std::min( last_rot_check, last_temp_check ); } else { @@ -8369,6 +8359,7 @@ void item::process_temperature_rot( float insulation, const tripoint &pos, if( has_rotten_away() || ( is_corpse() && rot > 10_days ) ) { // No need to track item that will be gone + item_internal::goes_bad_cache_unset(); return; } } @@ -8380,6 +8371,7 @@ void item::process_temperature_rot( float insulation, const tripoint &pos, if( now - time > smallest_interval ) { calc_temp( temp, insulation, now ); calc_rot( now, temp ); + item_internal::goes_bad_cache_unset(); return; } @@ -8387,6 +8379,7 @@ void item::process_temperature_rot( float insulation, const tripoint &pos, if( specific_energy < 0 ) { set_item_temperature( temp_to_kelvin( temp ) ); } + item_internal::goes_bad_cache_unset(); } void item::calc_temp( const int temp, const float insulation, const time_point &time ) diff --git a/src/magic.cpp b/src/magic.cpp index b64d2d9b52472..cfc21ffb1d0bb 100644 --- a/src/magic.cpp +++ b/src/magic.cpp @@ -1061,23 +1061,6 @@ std::string spell::enumerate_targets() const return ret; } -std::string spell::list_targeted_monster_names() const -{ - if( type->targeted_monster_ids.empty() ) { - return ""; - } - std::vector all_valid_monster_names; - for( const mtype_id &mon_id : type->targeted_monster_ids ) { - all_valid_monster_names.emplace_back( mon_id->nname() ); - } - //remove repeat names - all_valid_monster_names.erase( std::unique( all_valid_monster_names.begin(), - all_valid_monster_names.end() ), all_valid_monster_names.end() ); - std::string ret = enumerate_as_string( all_valid_monster_names ); - return ret; -} - - damage_type spell::dmg_type() const { return type->dmg_type; @@ -1632,13 +1615,6 @@ void spellcasting_callback::draw_spell_info( const spell &sp, const uilist *menu print_colored_text( w_menu, point( h_col1, line++ ), gray, gray, string_format( "%s: %s", _( "Valid Targets" ), targets ) ); - std::string target_ids; - target_ids = sp.list_targeted_monster_names(); - if( !target_ids.empty() ) { - fold_and_print( w_menu, point( h_col1, line++ ), info_width, gray, - _( "Only affects the monsters: %s" ), target_ids ); - } - if( line <= win_height * 3 / 4 ) { line++; } diff --git a/src/magic.h b/src/magic.h index 3119061009b5c..fa5a15ba0e127 100644 --- a/src/magic.h +++ b/src/magic.h @@ -370,9 +370,6 @@ class spell std::string energy_cur_string( const player &p ) const; // prints out a list of valid targets separated by commas std::string enumerate_targets() const; - // returns the name string of all list of all targeted monster id - //if targeted_monster_ids is empty, it returns an empty string - std::string list_targeted_monster_names() const; std::string damage_string() const; std::string aoe_string() const; diff --git a/src/overmap.cpp b/src/overmap.cpp index 2fb5d65289d6f..34268bb425814 100644 --- a/src/overmap.cpp +++ b/src/overmap.cpp @@ -1272,30 +1272,6 @@ bool overmap::has_note( const tripoint &p ) const return false; } -bool overmap::is_marked_dangerous( const tripoint &p ) const -{ - for( auto &i : layer[p.z + OVERMAP_DEPTH].notes ) { - if( !i.dangerous ) { - continue; - } else if( p.xy() == i.p ) { - return true; - } - const int radius = i.danger_radius; - if( i.danger_radius == 0 && i.p != p.xy() ) { - continue; - } - for( int x = -radius; x <= radius; x++ ) { - for( int y = -radius; y <= radius; y++ ) { - const tripoint rad_point = tripoint( i.p, p.z ) + point( x, y ); - if( p.xy() == rad_point.xy() ) { - return true; - } - } - } - } - return false; -} - const std::string &overmap::note( const tripoint &p ) const { static const std::string fallback {}; @@ -1333,17 +1309,6 @@ void overmap::add_note( const tripoint &p, std::string message ) } } -void overmap::mark_note_dangerous( const tripoint &p, int radius, bool is_dangerous ) -{ - for( auto &i : layer[p.z + OVERMAP_DEPTH].notes ) { - if( p.xy() == i.p ) { - i.dangerous = is_dangerous; - i.danger_radius = radius; - return; - } - } -} - void overmap::delete_note( const tripoint &p ) { add_note( p, std::string{} ); diff --git a/src/overmap.h b/src/overmap.h index caaa2f5040eec..b5ba0b8dbc6b6 100644 --- a/src/overmap.h +++ b/src/overmap.h @@ -59,8 +59,6 @@ struct city { struct om_note { std::string text; point p; - bool dangerous = false; - int danger_radius = 0; }; struct om_map_extra { @@ -235,11 +233,9 @@ class overmap bool is_explored( const tripoint &p ) const; bool has_note( const tripoint &p ) const; - bool is_marked_dangerous( const tripoint &p ) const; const std::string ¬e( const tripoint &p ) const; void add_note( const tripoint &p, std::string message ); void delete_note( const tripoint &p ); - void mark_note_dangerous( const tripoint &p, int radius, bool is_dangerous ); bool has_extra( const tripoint &p ) const; const string_id &extra( const tripoint &p ) const; diff --git a/src/overmap_ui.cpp b/src/overmap_ui.cpp index 2b6b08df78c92..46300c3d73ba9 100644 --- a/src/overmap_ui.cpp +++ b/src/overmap_ui.cpp @@ -343,26 +343,6 @@ class map_notes_callback : public uilist_callback menu->ret = UILIST_MAP_NOTE_EDITED; return true; } - if( action == "MARK_DANGER" ) { - if( query_yn( _( "Mark area as dangerous ( to avoid on automove paths? )" ) ) ) { - const int max_amount = 20; - const std::string popupmsg = _( "Danger radius in overmap squares? ( 0-20 )" ); - int amount = string_input_popup() - .title( popupmsg ) - .width( 20 ) - .text( to_string( 0 ) ) - .only_digits( true ) - .query_int(); - if( amount > -1 && amount <= max_amount ) { - overmap_buffer.mark_note_dangerous( note_location(), amount, true ); - menu->ret = UILIST_MAP_NOTE_EDITED; - return true; - } - } else if( overmap_buffer.is_marked_dangerous( note_location() ) && - query_yn( _( "Remove dangerous mark?" ) ) ) { - overmap_buffer.mark_note_dangerous( note_location(), 0, false ); - } - } } return false; } @@ -396,13 +376,11 @@ static point draw_notes( const tripoint &origin ) nmenu.input_category = "OVERMAP_NOTES"; nmenu.additional_actions.emplace_back( "DELETE_NOTE", "" ); nmenu.additional_actions.emplace_back( "EDIT_NOTE", "" ); - nmenu.additional_actions.emplace_back( "MARK_DANGER", "" ); const input_context ctxt( nmenu.input_category ); nmenu.text = string_format( - _( "<%s> - center on note, <%s> - edit note, <%s> - mark as dangerous, <%s> - delete note, <%s> - close window" ), + _( "<%s> - center on note, <%s> - edit note, <%s> - delete note, <%s> - close window" ), colorize( "RETURN", c_yellow ), colorize( ctxt.key_bound_to( "EDIT_NOTE" ), c_yellow ), - colorize( ctxt.key_bound_to( "MARK_DANGER" ), c_red ), colorize( ctxt.key_bound_to( "DELETE_NOTE" ), c_yellow ), colorize( "ESCAPE", c_yellow ) ); @@ -426,13 +404,11 @@ static point draw_notes( const tripoint &origin ) const point p_om = omt_to_om_remain( p_omt ); const std::string location_desc = overmap_buffer.get_description_at( tripoint( sm_pos, origin.z ) ); - const bool is_dangerous = overmap_buffer.is_marked_dangerous( tripoint( p, origin.z ) ); nmenu.addentry_desc( string_format( _( "[%s] %s" ), colorize( note_symbol, note_color ), note_text ), string_format( - _( "LEVEL %i, %d'%d, %d'%d: %s (Distance: %d) %s" ), - origin.z, p_om.x, p_omt.x, p_om.y, p_omt.y, location_desc, distance_player, - is_dangerous ? "DANGEROUS AREA!" : "" ) ); + _( "LEVEL %i, %d'%d, %d'%d: %s (Distance: %d)" ), + origin.z, p_om.x, p_omt.x, p_om.y, p_omt.y, location_desc, distance_player ) ); nmenu.entries[row].ctxt = string_format( _( "Distance: %d" ), distance_player ); row++; @@ -839,9 +815,6 @@ void draw( const catacurses::window &w, const catacurses::window &wbar, const tr if( pos != std::string::npos ) { corner_text.emplace_back( std::get<1>( note_info ), note_text.substr( pos ) ); } - if( overmap_buffer.is_marked_dangerous( center ) ) { - corner_text.emplace_back( c_red, _( "DANGEROUS AREA!" ) ); - } } } @@ -1225,22 +1198,13 @@ static void place_ter_or_special( tripoint &curs, const tripoint &orig, const bo if( terrain ) { pmenu.title = _( "Select terrain to place:" ); for( const oter_t &oter : overmap_terrains::get_all() ) { - const std::string entry_text = string_format( - _( "sym: [ %s %s ], color: [ %s %s], name: [ %s ], id: [ %s ]" ), - colorize( oter.get_symbol(), oter.get_color() ), - colorize( oter.get_symbol( true ), oter.get_color( true ) ), - colorize( string_from_color( oter.get_color() ), oter.get_color() ), - colorize( string_from_color( oter.get_color( true ) ), oter.get_color( true ) ), - colorize( oter.get_name(), oter.get_color() ), - colorize( oter.id.str(), c_white ) ); - pmenu.addentry( oter.id.id(), true, 0, entry_text ); + pmenu.addentry( oter.id.id(), true, 0, oter.id.str() ); } } else { pmenu.title = _( "Select special to place:" ); for( const overmap_special &elem : overmap_specials::get_all() ) { oslist.push_back( &elem ); - const std::string entry_text = elem.id.str(); - pmenu.addentry( oslist.size() - 1, true, 0, entry_text ); + pmenu.addentry( oslist.size() - 1, true, 0, elem.id.str() ); } } pmenu.query(); @@ -1365,6 +1329,7 @@ static tripoint display( const tripoint &orig, const draw_data_t &data = draw_da if( data.select != tripoint( -1, -1, -1 ) ) { curs = tripoint( data.select ); } + bool chosen_water_option = false; // Configure input context for navigating the map. input_context ictxt( "OVERMAP" ); ictxt.register_action( "ANY_INPUT" ); @@ -1464,7 +1429,6 @@ static tripoint display( const tripoint &orig, const draw_data_t &data = draw_da } } else if( action == "CHOOSE_DESTINATION" ) { path_type ptype; - ptype.avoid_danger = true; bool in_vehicle = g->u.in_vehicle && g->u.controlling_vehicle; const optional_vpart_position vp = g->m.veh_at( g->u.pos() ); if( vp && in_vehicle ) { @@ -1473,9 +1437,14 @@ static tripoint display( const tripoint &orig, const draw_data_t &data = draw_da ptype.only_road = !ptype.only_water; } else { const oter_id oter = overmap_buffer.ter( curs ); - // going to or coming from a water tile - if( is_river_or_lake( oter ) || g->m.has_flag( "SWIMMABLE", g->u.pos() ) ) { + // if we choose a water tile, then we dont need to be prompted if we want to swim + if( is_river_or_lake( oter ) ) { ptype.amphibious = true; + } else if( !chosen_water_option ) { + if( query_yn( _( "Allow swimming to get to destination?" ) ) ) { + ptype.amphibious = true; + } + chosen_water_option = true; } } const tripoint player_omt_pos = g->u.global_omt_location(); diff --git a/src/overmapbuffer.cpp b/src/overmapbuffer.cpp index fab2fc6830b27..8200154ca4e6c 100644 --- a/src/overmapbuffer.cpp +++ b/src/overmapbuffer.cpp @@ -221,14 +221,6 @@ void overmapbuffer::delete_note( const tripoint &p ) } } -void overmapbuffer::mark_note_dangerous( const tripoint &p, int radius, bool is_dangerous ) -{ - if( has_note( p ) ) { - overmap_with_local_coords om_loc = get_om_global( p ); - om_loc.om->mark_note_dangerous( om_loc.local, radius, is_dangerous ); - } -} - void overmapbuffer::add_extra( const tripoint &p, const string_id &id ) { overmap_with_local_coords om_loc = get_om_global( p ); @@ -330,14 +322,6 @@ bool overmapbuffer::has_note( const tripoint &p ) return false; } -bool overmapbuffer::is_marked_dangerous( const tripoint &p ) -{ - if( const overmap_with_local_coords om_loc = get_existing_om_global( p ) ) { - return om_loc.om->is_marked_dangerous( p ); - } - return false; -} - const std::string &overmapbuffer::note( const tripoint &p ) { if( const overmap_with_local_coords om_loc = get_existing_om_global( p ) ) { @@ -714,10 +698,6 @@ std::vector overmapbuffer::get_npc_path( const tripoint &src, const tr int res = 0; const oter_id oter = get_ter_at( cur.pos ); int travel_cost = static_cast( oter->get_travel_cost() ); - tripoint convert_result = base + tripoint( cur.pos, 0 ); - if( ptype.avoid_danger && is_marked_dangerous( convert_result ) ) { - return pf::rejected; - } if( ptype.only_road && ( !is_ot_match( "road", oter, ot_match_type::type ) && !is_ot_match( "bridge", oter, ot_match_type::type ) && !is_ot_match( "road_nesw_manhole", oter, ot_match_type::type ) ) ) { @@ -739,11 +719,7 @@ std::vector overmapbuffer::get_npc_path( const tripoint &src, const tr is_ot_match( "road_nesw_manhole", oter, ot_match_type::type ) ) { travel_cost = 1; } else if( is_river_or_lake( oter ) ) { - if( ptype.amphibious || ptype.only_water ) { - travel_cost = 1; - } else { - return pf::rejected; - } + travel_cost = ptype.only_water || ptype.amphibious ? 1 : 20; } res += travel_cost; res += manhattan_dist( finish, cur.pos ); diff --git a/src/overmapbuffer.h b/src/overmapbuffer.h index ca033bfc72e8c..274796fe0b57f 100644 --- a/src/overmapbuffer.h +++ b/src/overmapbuffer.h @@ -37,7 +37,6 @@ struct path_type { bool only_road = false; bool only_water = false; bool amphibious = false; - bool avoid_danger = false; }; struct radio_tower_reference { @@ -147,11 +146,9 @@ class overmapbuffer * Uses global overmap terrain coordinates. */ bool has_note( const tripoint &p ); - bool is_marked_dangerous( const tripoint &p ); const std::string ¬e( const tripoint &p ); void add_note( const tripoint &, const std::string &message ); void delete_note( const tripoint &p ); - void mark_note_dangerous( const tripoint &p, int radius, bool is_dangerous ); bool has_extra( const tripoint &p ); const string_id &extra( const tripoint &p ); void add_extra( const tripoint &p, const string_id &id ); diff --git a/src/savegame.cpp b/src/savegame.cpp index f8a5bfe265064..a337fecdc70a6 100644 --- a/src/savegame.cpp +++ b/src/savegame.cpp @@ -1175,8 +1175,6 @@ void overmap::unserialize_view( std::istream &fin ) jsin.read( tmp.p.x ); jsin.read( tmp.p.y ); jsin.read( tmp.text ); - jsin.read( tmp.dangerous ); - jsin.read( tmp.danger_radius ); jsin.end_array(); layer[z].notes.push_back( tmp ); @@ -1265,8 +1263,6 @@ void overmap::serialize_view( std::ostream &fout ) const json.write( i.p.x ); json.write( i.p.y ); json.write( i.text ); - json.write( i.dangerous ); - json.write( i.danger_radius ); json.end_array(); fout << std::endl; }