From 414d97c5039c626dc7b569e71de5dc5712312370 Mon Sep 17 00:00:00 2001 From: Jason Date: Sat, 13 Jan 2024 23:51:07 -0500 Subject: [PATCH] [Content] [Balance] Thread, yarn, and fabric audit and additions. (#70850) * Thread and Yarn Audit Removed Felt to Thread recipes: you can't actually do that without carding the felt back into something you can draft onto a spindle. Added a carding recipe to turn felt patches back into wool staples. Multiplied the time factor for spinning thread with no proficiency by 6. I had hands on experience doing this with a professional hobbyist. Looks easy; isn't. Removed Fiber Twisting from yarn recipes. There is no difference between spinning thread and spinning yarn except how much you get per inch for the same amount of work. (Tested with alpaca, wool, and cotton.) * Creation of a Fabric Store It was noted that a dedicated supply store for all things fabric didn't exist. You can find both tailoring supplies and a low chance of fur related supplies. * Linting Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Linting Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * More Linting Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Lint for the Lint Lord Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Linted? Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * More Lint for the pocket Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * I should json_format before I commit Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Linted Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Linted again Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Misplaced , * Missing seperator * Missing /n at EOF * Missing /n at EOF * Changed name of fabric store roof TO fabric store roof * Added missing bits to spawn the building and roof * Added wool to thread and cotton to yarn First steps at divorcing the distinction between material and finished product. * Revert change to respect allergy I totally forgot about wool allergies. * Spelling Co-authored-by: Procyonae <45432782+Procyonae@users.noreply.github.com> * Commiting this since it seems benign Co-authored-by: Procyonae <45432782+Procyonae@users.noreply.github.com> --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Procyonae <45432782+Procyonae@users.noreply.github.com> --- data/json/mapgen/s_fabricstore.json | 90 +++++++++++++++++++ .../mapgen_palettes/fabric_store_palette.json | 36 ++++++++ .../overmap/multitile_city_buildings.json | 9 ++ .../overmap_terrain_commercial.json | 17 ++++ data/json/recipes/other/materials.json | 40 +++------ data/json/regional_map_settings.json | 1 + 6 files changed, 164 insertions(+), 29 deletions(-) create mode 100644 data/json/mapgen/s_fabricstore.json create mode 100644 data/json/mapgen_palettes/fabric_store_palette.json diff --git a/data/json/mapgen/s_fabricstore.json b/data/json/mapgen/s_fabricstore.json new file mode 100644 index 0000000000000..c0946ddf1e4ea --- /dev/null +++ b/data/json/mapgen/s_fabricstore.json @@ -0,0 +1,90 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_fabricstore" ], + "//": "Fabric Outlet", + "object": { + "fill_ter": "t_floor", + "rows": [ + "------------------------", + "------------------------", + "------------------------", + "..p--####:::++:::#......", + "..p--#JJ| #......", + "..p--# | #......", + "..p--#+|| #......", + "..p--# [Q ccc C#......", + "..p--# Q C#......", + "..p--# Q CCC C#......", + "..p--# c #......", + "..p--# c #......", + "..p--#+|||i|ccccc#......", + "..p--# [[[ | s%#......", + "..p--# s | #......", + "..p--; s |+||||#......", + ".....0 [[ +___#......", + "....z#|+||i|||_St#......", + "....z#d | #####......", + "....z#ds|LlLl#4zzz......", + "....z##0######z.........", + "........................", + "........................", + "........................" + ], + "palettes": [ "standard_building_palette", "fabric_store_pallete" ], + "terrain": { "t": "t_linoleum_white", "S": "t_linoleum_white", "_": "t_linoleum_white" }, + "place_loot": [ { "group": "cash_register_random", "x": 7, "y": 7 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "s_fabricstore_roof", + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + " ", + " ", + " ", + " ------------- ", + " -...........- ", + " -...........- ", + " -...........- ", + " -...........- ", + " -...........- ", + " -...........- ", + " -...........- ", + " -...........- ", + " -...........- ", + " -...........- ", + " -...........- ", + " -...........- ", + " -...........- ", + " -...........- ", + " -.......5---- ", + " -...&...- ", + " --------- ", + " ", + " ", + " " + ], + "palettes": [ "roof_palette" ], + "place_items": [ { "item": "roof_trash", "x": [ 7, 13 ], "y": [ 5, 15 ], "chance": 50, "repeat": [ 1, 3 ] } ], + "place_nested": [ + { + "chunks": [ + [ "null", 20 ], + [ "roof_2x2_utilities_b", 15 ], + [ "roof_2x2_utilities_c", 5 ], + [ "roof_2x2_utilities_d", 20 ], + [ "roof_4x4_utility", 20 ], + [ "roof_2x2_utilities", 30 ] + ], + "x": [ 7, 12 ], + "y": [ 5, 13 ] + } + ] + } + } +] diff --git a/data/json/mapgen_palettes/fabric_store_palette.json b/data/json/mapgen_palettes/fabric_store_palette.json new file mode 100644 index 0000000000000..71844d8d26918 --- /dev/null +++ b/data/json/mapgen_palettes/fabric_store_palette.json @@ -0,0 +1,36 @@ +[ + { + "type": "palette", + "id": "fabric_store_pallete", + "terrain": { + ";": [ "t_door_locked", "t_door_elocked_alarm" ], + "i": "t_door_locked_interior", + "0": "t_window_alarm", + "z": "t_region_shrub_decorative", + "p": "t_region_groundcover_urban" + }, + "furniture": { + "%": "f_console_broken", + "c": "f_rack", + "C": "f_rack", + "Q": "f_rack", + "s": "f_stool", + "d": "f_desk", + "[": "f_table", + "p": "f_region_flower", + "L": "f_locker", + "l": "f_locker", + "J": "f_locker" + }, + "items": { + "c": [ { "item": "SUS_tailoring_materials", "chance": 50 }, { "item": "SUS_tailoring_materials", "chance": 50 } ], + "C": { "item": "SUS_fur_tailoring_materials", "chance": 30 }, + "Q": { "item": "SUS_tailoring_tool_drawer", "chance": 80 }, + "d": { "item": "SUS_office_desk", "chance": 60 }, + "[": { "item": "SUS_tailoring_tool_drawer", "chance": 30 }, + "L": [ { "item": "SUS_fur_tailoring_materials", "chance": 50 }, { "item": "SUS_tailoring_fasteners", "chance": 50 } ], + "l": [ { "item": "SUS_tailoring_materials", "chance": 30 }, { "item": "SUS_tailoring_fasteners", "chance": 50 } ], + "J": { "item": "SUS_janitors_closet", "chance": 60 } + } + } +] diff --git a/data/json/overmap/multitile_city_buildings.json b/data/json/overmap/multitile_city_buildings.json index add5b41a6ee2b..d1de372a05bf5 100644 --- a/data/json/overmap/multitile_city_buildings.json +++ b/data/json/overmap/multitile_city_buildings.json @@ -5242,5 +5242,14 @@ { "point": [ 0, 0, 0 ], "overmap": "barber_shop_north" }, { "point": [ 0, 0, 1 ], "overmap": "barber_shop_roof_north" } ] + }, + { + "type": "city_building", + "id": "s_fabricstore", + "locations": [ "land" ], + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "s_fabricstore_north" }, + { "point": [ 0, 0, 1 ], "overmap": "s_fabricstore_roof_north" } + ] } ] diff --git a/data/json/overmap/overmap_terrain/overmap_terrain_commercial.json b/data/json/overmap/overmap_terrain/overmap_terrain_commercial.json index 0550fe78043c3..d5fb9b73c8dce 100644 --- a/data/json/overmap/overmap_terrain/overmap_terrain_commercial.json +++ b/data/json/overmap/overmap_terrain/overmap_terrain_commercial.json @@ -379,6 +379,23 @@ "name": "clothing store", "color": "blue" }, + { + "type": "overmap_terrain", + "id": [ "s_fabricstore" ], + "copy-from": "generic_city_building", + "looks_like": "s_clothes", + "name": "fabric store", + "color": "blue", + "extend": { "flags": [ "SOURCE_TAILORING" ] } + }, + { + "type": "overmap_terrain", + "id": [ "s_fabricstore_roof" ], + "copy-from": "generic_city_building", + "looks_like": "s_clothes_roof", + "name": "fabric store roof", + "color": "blue" + }, { "type": "overmap_terrain", "id": [ "s_bookstore", "s_bookstore_1", "s_bookstore_2" ], diff --git a/data/json/recipes/other/materials.json b/data/json/recipes/other/materials.json index eff299415d615..6dab3e60e2f5c 100644 --- a/data/json/recipes/other/materials.json +++ b/data/json/recipes/other/materials.json @@ -286,31 +286,13 @@ { "type": "recipe", "activity_level": "LIGHT_EXERCISE", - "result": "thread", - "id_suffix": "with_spinningwheel_from_felt", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_MATERIALS", - "skill_used": "fabrication", - "batch_time_factors": [ 70, 1 ], - "time": "15 s", - "charges": 50, - "autolearn": true, - "tools": [ [ [ "spinwheelitem", -1 ] ] ], - "components": [ [ [ "felt_patch", 1 ] ] ] - }, - { - "type": "recipe", - "activity_level": "NO_EXERCISE", - "result": "thread", - "id_suffix": "with_electric_spinwheel_from_felt", + "result": "wool_staple", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", - "skill_used": "fabrication", - "batch_time_factors": [ 70, 1 ], - "time": "15 s", - "charges": 50, + "skill_used": "tailor", + "time": "10 m", "autolearn": true, - "tools": [ [ [ "electric_spinwheel", 1 ] ] ], + "tools": [ [ [ "carding_paddles", -1 ] ] ], "components": [ [ [ "felt_patch", 1 ] ] ] }, { @@ -370,7 +352,7 @@ "skills_required": [ "fabrication", 1 ], "time": "10 m", "autolearn": true, - "proficiencies": [ { "proficiency": "prof_spinning", "skill_penalty": 0.5 } ], + "proficiencies": [ { "proficiency": "prof_spinning", "skill_penalty": 0.5, "time_multiplier": 6 } ], "tools": [ [ [ "distaff_spindle", -1 ] ] ], "components": [ [ [ "cotton_ball", 3 ] ] ] }, @@ -385,7 +367,7 @@ "skill_used": "tailor", "time": "30 s", "autolearn": true, - "proficiencies": [ { "proficiency": "prof_spinning", "skill_penalty": 0.5 } ], + "proficiencies": [ { "proficiency": "prof_spinning", "skill_penalty": 0.5, "time_multiplier": 6 } ], "tools": [ [ [ "spinwheelitem", -1 ] ] ], "components": [ [ [ "cotton_ball", 3 ] ] ] }, @@ -400,7 +382,7 @@ "skill_used": "tailor", "time": "30 s", "autolearn": true, - "proficiencies": [ { "proficiency": "prof_spinning", "skill_penalty": 0.5 } ], + "proficiencies": [ { "proficiency": "prof_spinning", "skill_penalty": 0.5, "time_multiplier": 6 } ], "tools": [ [ [ "electric_spinwheel", 2 ] ] ], "components": [ [ [ "cotton_ball", 3 ] ] ] }, @@ -503,9 +485,9 @@ "subcategory": "CSC_OTHER_MATERIALS", "skill_used": "tailor", "difficulty": 1, - "time": "30 m", + "time": "10 m", "autolearn": true, - "proficiencies": [ { "proficiency": "prof_spinning" }, { "proficiency": "prof_fibers" } ], + "proficiencies": [ { "proficiency": "prof_spinning", "time_multiplier": 6 } ], "qualities": [ { "id": "CUT", "level": 2 } ], "tools": [ [ [ "distaff_spindle", -1 ] ] ], "components": [ [ [ "wool_staple", 1 ] ] ] @@ -521,7 +503,7 @@ "batch_time_factors": [ 70, 1 ], "time": "90 s", "autolearn": true, - "proficiencies": [ { "proficiency": "prof_spinning" }, { "proficiency": "prof_fibers" } ], + "proficiencies": [ { "proficiency": "prof_spinning", "time_multiplier": 6 } ], "qualities": [ { "id": "CUT", "level": 1 } ], "tools": [ [ [ "spinwheelitem", -1 ] ] ], "components": [ [ [ "wool_staple", 1 ] ] ] @@ -537,7 +519,7 @@ "batch_time_factors": [ 70, 1 ], "time": "90 s", "autolearn": true, - "proficiencies": [ { "proficiency": "prof_spinning" }, { "proficiency": "prof_fibers" } ], + "proficiencies": [ { "proficiency": "prof_spinning", "time_multiplier": 6 } ], "qualities": [ { "id": "CUT", "level": 1 } ], "tools": [ [ [ "electric_spinwheel", 4 ] ] ], "components": [ [ [ "wool_staple", 1 ] ] ] diff --git a/data/json/regional_map_settings.json b/data/json/regional_map_settings.json index 2ecadcfcf4221..ed514c3c1649b 100644 --- a/data/json/regional_map_settings.json +++ b/data/json/regional_map_settings.json @@ -1110,6 +1110,7 @@ "s_clothes_4": 300, "s_clothes_5": 100, "s_clothes_6": 450, + "s_fabricstore": 200, "s_library": 200, "s_library_1": 200, "s_library_2": 200,