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

move lathe recipes into packs (easier for forks and maintaining) #33095

Open
wants to merge 29 commits into
base: master
Choose a base branch
from

Conversation

deltanedas
Copy link
Contributor

@deltanedas deltanedas commented Oct 31, 2024

About the PR

packs are shared between lathes to:

  • dedupe things like emag recipes and ammofab which even had mistakes from their copy pasta
  • make forks editing these much much simpler since you dont have to worry about it being in 4 different places
  • if downstreams want to make department techfabs like engifab its much much much easier, just select the engi related packs and its done (assuming future prs dont add random shit to wrong packs :trollface:)
  • avoid conflicts downstream by using parenting to have a single changed line, or add your own pack to a specific lathe also a single line. makes mainting forks recipes 100x easier
  • because themed recipes are mostly in their own files there will be less conflicts between prs (unless they add to the same pack of course)

ingame changes are below

Why / Balance

  • emagged autolathe can print flash and batong for ease of implementation, gives traitors more options especially for kidnapping :trollface:
  • ammofab can no longer print tranq shells, theyre a researched item and ammofab was otherwise purely roundstart ammo
  • ammofab can now make wt550 and drozd mags to be consistent, balance wise you can just refill them from .35 auto boxes anyway
  • secfab can now make chemical payloads, for emp bombs and such
  • fixes some roundstart recipes like beakers being in dynamic in the protolathe instead of static
  • added recipes for uranium and incendiary drozd mags to secfab, you can make them by hand with empty + 35 auto boxes so this is just pure qol

Technical details

  • made GetAvailableRecipes use a cached hashset for performance
  • lathes without TechnologyDatabase can now have static emag recipes, changed order of a check

Media

roundstart circuit printer
09:55:03

roundstart protolathe, has sci tools and more chem stuff
09:56:30

autolathe is still random shit
09:57:23
and has batong :trollface:
09:57:52

valid uniform printer still prints centcomm and syndie clothes (which can now trivially be made normal recipes for a special centcomm or syndie printer prototype :trollface:)
09:55:23

i would show research but funny interaction debug assert trolling

Requirements

Breaking changes

LatheComponent and EmagLatheComponent static/dynamic recipes have been replaced with a list of pack ids. (Static/DynamicRecipes -> Index(∑ Static/DynamicPacks).Recipes

if you are adding things to them instead of adding recipes to upstream packs make your own pack and either make an upstream pack inherit it, or add it to an upstream lathe's pack list

example below

# define a recipe pack
- type: latheRecipePack
  id: SecurityWeaponsFork
  recipes:
  - # list the forks gun recipes for the secfab/emagged protolathe here

# and either make it a parent of an upstream recipe pack so it gets added to whatever lathes it is used by
- type: latheRecipePack
  parent: SecurityWeaponsFork # Fork: add it to any usage of SecurityWeapons, this is futureproof
  id: SecurityWeapons
  ...

# or add it to 1 (or more) lathes
- type: Lathe
  dynamicPacks:
  ...
  - SecurityWeapons
  - SecurityWeaponsFork # Fork: example to add the pack to a specific lathe
  
- type: EmagLatheRecipes
  emagDynamicPacks:
  ...
  - SecurityWeaponsFork # Fork: add it to the protolathes emagged recipes

Changelog
ingame changes are too minor for cl

@github-actions github-actions bot added S: Needs Review Status: Requires additional reviews before being fully accepted Changes: UI Changes: Might require knowledge of UI design or code. S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted labels Oct 31, 2024
Copy link
Contributor

github-actions bot commented Nov 1, 2024

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions github-actions bot removed the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Nov 1, 2024
Copy link
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions github-actions bot added the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Nov 11, 2024
@github-actions github-actions bot removed the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Nov 12, 2024
@SlamBamActionman SlamBamActionman added the S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. label Nov 14, 2024
@github-actions github-actions bot added the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Nov 14, 2024
@SaphireLattice SaphireLattice added D2: Medium Difficulty: A good amount of codebase knowledge required. T: Balance Change Type: Balance changes through direct value changes, or changes to mechanics that affect it A: Core Tech Area: Underlying core tech for the game and the Github repository. A: General Interactions Area: General in-game interactions that don't relate to another area. labels Nov 15, 2024
@SaphireLattice
Copy link
Contributor

Really think the roundstart/balance changes need to be split off from this. I love the technical details of the PR and would instantly approve it, but the fact that there's balancing changes make it a bit more difficult to review. That and having to go through the list sucks on its own already.

@SaphireLattice SaphireLattice added P2: Raised Priority: Item has a raised priority, indicating it might get increased maintainer attention. and removed P1: High Priority: Higher priority than other items, but isn't an emergency. labels Nov 15, 2024
@deltanedas
Copy link
Contributor Author

some of the changes like for ammofab would mean a lot of duplication
prs already been waiting for ages another month to discuss the balance for these wont change anything

Copy link
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions github-actions bot added the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Nov 18, 2024
Copy link
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@beck-thompson beck-thompson added the A: Integration Tests Area: Integration tests, adding or fixing them label Jan 18, 2025
Copy link
Contributor

@sowelipililimute sowelipililimute left a comment

Choose a reason for hiding this comment

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

some minor nits

Content.Shared/Lathe/LatheComponent.cs Outdated Show resolved Hide resolved
Co-authored-by: pathetic meowmeow <[email protected]>
@github-actions github-actions bot added size/L Denotes a PR that changes 1000-4999 lines. and removed size/XL Denotes a PR that changes 5000+ lines. labels Jan 23, 2025
deltanedas and others added 2 commits January 23, 2025 18:26
@github-actions github-actions bot removed the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Jan 23, 2025
@beck-thompson beck-thompson self-assigned this Jan 23, 2025
@github-actions github-actions bot added the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Jan 24, 2025
Copy link
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions github-actions bot removed the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Jan 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A: Core Tech Area: Underlying core tech for the game and the Github repository. A: General Interactions Area: General in-game interactions that don't relate to another area. A: Integration Tests Area: Integration tests, adding or fixing them Changes: UI Changes: Might require knowledge of UI design or code. D2: Medium Difficulty: A good amount of codebase knowledge required. Merge Conflict P2: Raised Priority: Item has a raised priority, indicating it might get increased maintainer attention. S: Needs Review Status: Requires additional reviews before being fully accepted size/L Denotes a PR that changes 1000-4999 lines. T: Balance Change Type: Balance changes through direct value changes, or changes to mechanics that affect it T: Refactor Type: Refactor of notable amount of codebase
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants