Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tailoring recipe audit #54256

Merged

Conversation

a-chancey
Copy link
Contributor

@a-chancey a-chancey commented Jan 10, 2022

Summary

Balance "Tailoring Recipe Audit"

Purpose of change

Continues progress on #53436. This does the following:

  • Standardizes fabric material naming conventions with regards to surface area.
  • reviews recipes that utilize the fabrics to ensure they use a reasonable quantity.
  • audit tailoring requirements lists to ensure they also use a reasonable quantity
  • re-genericize fabrics so they're no longer ammo. This will make them stack differently, but will use them in a very predictable manner while crafting.
  • Pull rags out of recipes in preparation for a future obsoletion of rags and replace them with cotton patches. Oops, I got it done here.

Ultimately should: resolve and close #58327, close #53059, close #53436, close #57802

Describe the solution

As part of this entire audit the following is happening:

Standardize (most of) the fabric materials to the following 3 rough sizes across 4 items per fabric:

  • 24"x12" (60.96cm x 30.48cm): Sheet, Patchwork Sheet, pelt (leather, fur). Sheet indicated a solid sheet made through traditional manufacturing processes (weaving/loom/spinning/etc), and will usually be able to be exchanged with patchwork sheets with few exceptions.
    - 12"x12" (30.48cm x 30.48cm): Patchwork clothing parts see comment below. As it turns out, I couldn't find a reason that these exist other than we are maintaining an unfinished overhaul that's only confusing things.
  • 6"x6" (15.24cm x 15.24cm): Patches
  • Remnants: Scraps

24"x12" was chosen as the standard sheet size for a few reasons. Fabric bolts are typically 30-36" tall, with thinner fabrics sometimes being folded so they're actually 60"-72" tall. This means three sheets will roughly equal 2 feet of fabric length on a bolt. The second reason is that 24"x12" is a commonly available size for Kevlar sheets and rigid panels in real life, so it was easiest to standardize based on that.

Patchwork clothing parts are being have been renamed and resized to patchwork sheets. Their existing IDs actually listed them as patchwork sheets (not clothing parts), so for consistency's sake, it wasn't a big issue. The only exception to this is cotton. Cotton already had a patchwork sheet, so the patchwork clothing parts became cotton patches - as they and synthetic fabric were the only two to not have patches.

The 3 added fabric items are: patchwork leather sheets, patchwork fur sheets, and synthetic fabric patches.

Recipes that utilize each fabric are being reviewed individually to ensure the area and volume match what's expected in the final product. Some are migrating to use requirements where they make sense. New requirements are being added to give small options as seen in fur and leather. Not all will be used, but they will be available for future use.

I'm planning to add cardboard fabric bolt containers that will only hold fabric sheets once this is all done. I'll have to figure out what I can do to pull this together after I'm done.

This standardization also means creating a few new items - most materials are missing patchwork sheets, though their internal IDs indicate the patchwork clothing parts should be patchwork sheets. These items will change to patchwork sheets, and patchwork clothing parts will be added with appropriate IDs.

Patchwork clothing parts became patchwork sheets in most cases, except cotton, which became patches. Patches are used to make repairs, craft patchwork sheets and are used in the small tailoring requirements.

Kevlar is a special case. Kevlar's strength is derived from the way it is manufactured, and the research I've done shows that kevlar fabrics are typically not repairable - the entire fabric panel would need replaced. Kevlar layered panels are the same as Kevlar sheets - they are just 16 layers thick, sewn together. Rigid Kevlar plates are layered panels covered in epoxy - and in real life, these are repairable with Kevlar patches and epoxy.

Materials weight and volume calculations use the following stats, based on averages found from multiple sources online and measurements I verified with calipers at local fabric stores. Cotton is based on average "medium weight" cotton. Kevlar and Nomex stats are pulled from Dupont's datasheets, as they are standardized fabrics. Fur and faux fur are rough estimates due to a massive variety in the available fabrics and compressibility of the fur on the pelt.

Material Thickness (mm) Grams/square meter
Cotton .254 203
Faux Fur 2.5 2000
Felt .78125 150
Fur 2.5 2000
Kevlar .275 144
Leather 1 1595
Lycra .63 180
Neoprene 1 138
Nomex .405 170
Synthetic Fabric/nylon .5 250

Progress:
Files:
Recipes:

  • armor/arms.json
  • armor/feet.json
  • armor/hands.json
  • armor/head.json
  • armor/legs.json
  • armor/other.json
  • armor/pets_dog.json
  • armor/pets_horse.json
  • armor/storage.json
  • armor/suit.json
  • armor/torso.json
  • armor/bespoke_armor/nomad.json
  • armor/bespoke_armor/survivor.json
  • any of the other recipe files where fabrics are used...
  • deconstruct recipes
  • remove rags from everythingj
  • migrate rags to cotton_patches

Materials:

Material tailoring requirements to be added

  • tailoring_cotton_small
  • fabric_standard_small
  • fabric_standard_permeable_small
  • fabric_standard_nostretch_small
  • tailoring_faux_fur_small
  • tailoring_felt_small
  • tailoring_fur_patchwork
  • tailoring_lycra_small
  • tailoring_nomex_small
  • tailoring_nylon_small
  • advanced_filament

Describe alternatives you've considered

Letting someone else do this. Honestly, the insanity of the mixed item sizes, descriptions and amounts used in recipes were enough to work on this.

Testing

After making the changes, I've been testing tailoring on both a new and existing save, so as not to completely break updating the game for an existing character.

Additional context

We're out of draft! open to feedback on any decisions made.

We will likely still need more spawns added for Nomex and Kevlar sheets, as well as spawns for each of their threads.
WE'RE OUT OF DRAFT!

I'M A MADMAN. I just removed rags from everything and migrated them to cotton patches. Running tests before i commit.

… fabric weights and volumes, the materials, as well as any recipe using cotton_tailoring or cotton_patchwork_tailoring requirements. Next commit will be when I review the remaining cotton recipes.

this also adds cotton patches - i'll get to their recipes in the next pass.
This is the first pass of cotton, committing this for now.
This commit covers the recipes that use just the cotton fabrics
Removed some plurals i got warned about
Adds cotton patches and recipes.
@github-actions github-actions bot added astyled astyled PR, label is assigned by github actions json-styled JSON lint passed, label assigned by github actions labels Jan 10, 2022
@github-actions github-actions bot added the BasicBuildPassed This PR builds correctly, label assigned by github actions label Jan 10, 2022
@Maleclypse Maleclypse added [JSON] Changes (can be) made in JSON Crafting / Construction / Recipes Includes: Uncrafting / Disassembling Mechanics: Effects / Skills / Stats Effects / Skills / Stats labels Jan 11, 2022
@Maleclypse
Copy link
Member

You've listed the wrong issue you are continuing I think.

@a-chancey
Copy link
Contributor Author

a-chancey commented Jan 11, 2022

You've listed the wrong issue you are continuing I think.

D'oh. stupid me for having 50 tabs open. Correcting it now.

@a-chancey
Copy link
Contributor Author

Once #54308 is merged I'll be able to get the fabrics all set to the right weight and volume within a day and try to burn through these recipes.

@Shodan14
Copy link

Shodan14 commented Jan 11, 2022

A few weeks back it was very annoying to get synthetic fabric, despite like half the clothes in the real world being made of it. Plus, in a lot of cases, it doesn't really matter if you patch your nylon tshirt with cotton etc.

UmbralReaper added a commit to UmbralReaper/Cataclysm-DDA that referenced this pull request Jan 13, 2022
With the tailoring overhaul currently in progess in CleverRaven#54256, as well as
appliances being introduced in CleverRaven#51286, I figured this was the best time
to add sewing machines to cause the least amount of churn.

works towards CleverRaven#53647
@UmbralReaper UmbralReaper mentioned this pull request Jan 13, 2022
5 tasks
@a-chancey
Copy link
Contributor Author

Whew. Had some issues with the merge after the genericization was added in, but i'm back up and running now. I'll be hopefully working through the rest of the values this week and reviewing recipes.

@a-chancey
Copy link
Contributor Author

So I've been working on this, and I've come to the conclusion that patchwork clothing parts are unnecessary in the context of the game, and they only add an intermediary step that only frustrates players.

While their existence makes sense, because various sizes of fabric between 6" patches and 18"x24" sheets is realistic, it's also functionally useless at the level of abstraction we're at. We aren't cutting off "pair of cotton short sleeves (poor fit)" and sewing them back on later.

In reviewing recipes, I honestly can't come up with a use for them in game other than them being a weird intermediary size between the different fabric pieces, when they'd eventually become patches in real life. Let's cut out the confusion and the middle man.

I'm now proposing that each woven fabric has scraps, patches, patchwork sheets, and (manufactured) sheets. Sizes will remain as above - a patchwork sheet will be made of 8 6" square patches. Patches will be used for repairs and small crafting, sheets will be used for large crafting. Both scraps and patches can be byproduct based on what's used in a recipe. Need more sheets? Quilt some from your patches.

The best part? It's all just going to be a name, weight and volume changes in the json. Most of the patchwork clothing parts are already ID'd as patchwork_sheet. There's some patches I'd love to migrate to appropriate IDs, but I don't think it's worth the hassle. Interestingly, cotton doesn't have a patch, so the patchwork cotton clothing parts fit neatly into that missing item spot.

@a-chancey a-chancey changed the title [CR] [WIP] Tailoring recipe audit Tailoring recipe audit Jun 13, 2022
@a-chancey
Copy link
Contributor Author

Merged with latest earlier today, test failures appear to be unrelated to my changes. Going to pull again just to keep things up to date.

@github-actions github-actions bot removed the BasicBuildPassed This PR builds correctly, label assigned by github actions label Jun 15, 2022
Copy link
Contributor

@LyleSY LyleSY left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All of the DinoMod changes make sense and appear to be consistent with what you're doing here. Thanks!

@a-chancey
Copy link
Contributor Author

All of the DinoMod changes make sense and appear to be consistent with what you're doing here. Thanks!

No worries. I didn't dig too deep into the mod folders, so if I missed anything, I can open new issues once this is merged. I'm just trying to keep the branch up to date and conflict free so it's ready to merge without adding anything beyond what already here, since it is massive already.

After the merge maybe I'll give the mods another run through just to make sure things are still balanced. I didn't go through mod materials too finely, so I may have missed something that needs rebalanced in Magiclysm or Aftershock

@github-actions github-actions bot added the BasicBuildPassed This PR builds correctly, label assigned by github actions label Jun 15, 2022
@a-chancey a-chancey requested a review from LyleSY June 15, 2022 23:26
@a-chancey
Copy link
Contributor Author

@LyleSY sorry to ping you - didn't mean to request a second review, I bumped that little refresh button below the comment window while scrolling the screen earlier accidentally.

@dissociativity
Copy link
Contributor

just wanted to say that I greatly appreciate all work that went into this, having had contributed some changes to making tailoring stuff less button press consuming in the past, I know how much of a pain it is to have to go through so many recipes, I only had covered some early game stuff so the player didn't freeze to death, and maybe three complete limb json files, and my solution was probably more of a stop-gap than this one!

I'll probably start playing again because of this, I have nerve pain in my wrists and saving the button presses from converting between different cotton types will make the game a lot more playable!

Copy link
Member

@Maleclypse Maleclypse left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've reviewed every file. I'd love if someone else could check the test changes but everything looks good to me, including the mod changes.

data/json/recipes/other/materials.json Outdated Show resolved Hide resolved
@kevingranade kevingranade merged commit e465116 into CleverRaven:master Jun 17, 2022
@Inglonias
Copy link
Contributor

Let me say congratulations yet again. This has been a long journey to watch, but I think it will be well worth the effort.

@l29ah
Copy link
Contributor

l29ah commented Jun 18, 2022

Now an unfinished crafting state desires a rag, and rags are nowhere to be found :O

@Maleclypse
Copy link
Member

Now an unfinished crafting state desires a rag, and rags are nowhere to be found :O

Please in the future make an issue rather than commenting on a merged PR. Are you able to debug in rags to finish with?

@l29ah
Copy link
Contributor

l29ah commented Oct 11, 2022 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Appliance/Power Grid Anything to do with appliances and power grid astyled astyled PR, label is assigned by github actions BasicBuildPassed This PR builds correctly, label assigned by github actions Bionics CBM (Compact Bionic Modules) [C++] Changes (can be) made in C++. Previously named `Code` Code: Build Issues regarding different builds and build environments Code: Tests Measurement, self-control, statistics, balancing. Code: Tooling Tooling that is not part of the main game but is part of the repo. Crafting / Construction / Recipes Includes: Uncrafting / Disassembling <Documentation> Design documents, internal info, guides and help. Fields / Furniture / Terrain / Traps Objects that are part of the map or its features. Game: Balance Balancing of (existing) in-game features. Items: Ammo / Guns Ammunition for all kinds of weapons and these weapons themselves Items: Armor / Clothing Armor and clothing Items: Containers Things that hold other things Items: Food / Vitamins Comestibles and drinks [JSON] Changes (can be) made in JSON json-styled JSON lint passed, label assigned by github actions Limbs Limbs, mutable limbs, and code related to them. Lore Game lore, in-game communication. Also the Lore tab. Map / Mapgen Overmap, Mapgen, Map extras, Map display Mechanics: Effects / Skills / Stats Effects / Skills / Stats Missions Quests and missions Mods: Aftershock Anything to do with the Aftershock mod Mods: Dark Days of the Dead Anything related to the DDotD mod (classic style zombies) Mods: Dark Skies Anything to do with Dark Skies Above, alien invasion mod with no zombies Mods: Dinomod Anything to do with the Dinoclysm mod (DinoMod) Mods: Generic Guns Anything to do with Generic Guns Mods: Innawood 🌲 Anything to do with Innawood mod Mods: Magiclysm Anything to do with the Magiclysm mod Mods: MMA Mythical Martial Arts mod Mods: No Hope Relating to the mod No Hope Mods Issues related to mods or modding Monsters Monsters both friendly and unfriendly. NPC / Factions NPCs, AI, Speech, Factions, Ownership Player Faction Base / Camp All about the player faction base/camp/site [Python] Code made in Python SDL: Tiles / Sound Tiles visual interface and sounds. Spawn Creatures, items, vehicles, locations appearing on map Translation I18n Vehicles Vehicles, parts, mechanics & interactions
Projects
None yet