Have excess quality act like a durability bonus
Posted: Thu Dec 12, 2024 11:37 pm
There are several threads talking about ways to deal with excess quality materials:
Ability to craft lower quality with higher quality
Allow Quality Downgrade
Output more fluid when using higher quality recipes (i.e. for Holmium Solution)
I was thinking about what if the solution to all of this is simply to "downgrade" ingredients right when they are input to crafting machines, but also impart a bonus from the excess quality. It's similar to how labs will accept any quality of science pack, where quality science packs just have more "durability".
The idea is that higher quality ingredients just get instantly turned into the expected quality upon insertion (lower than expected quality are still ignored). However, the net quantity of items inserted into the machine would be multiplied by some factor based on the quality difference, so the quality behaves kind of like the durability on science packs. To avoid fractions complicating things, I'd go with a super simple formula like this:
Here are a few tables to help visualize the effect better, for various qualities (noting that legendary quality is actually 2 tiers above epic):
That first table might seem like a big bonus, but remember that higher qualities are pretty rare. Here's a table showing the aggregate impact over 1000 items produced with a 24.8% quality bonus:
So overall it's a 27.5% bonus. That means quality items would impart a kind of watered-down productivity bonus if you choose to "waste" higher quality ingredients in lower quality recipes.
For example, let's say you are producing common quality green circuits. You're always feeding common quality copper wire into the assembler, but the iron plates are always uncommon quality. Each time an uncommon iron plate is inserted into the machine, two common iron plates show up in the input buffer. So instead of 1 iron plate per 3 copper wire, you'd only need 1 iron plate per 6 copper wire. Basically the higher quality ingredient "goes farther" than the lower quality ones do. But the end result is still the same exact number of green circuits, because it doesn't affect the actual output rate of the crafting machine.
Another example would be producing holmium solution. If you insert 10 uncommon holmium ore into the chemical plant, 20 common holmium ore show up in the input buffer. This in turn results in more holmium solution being produced, so you're actually getting something out of the higher quality ore. Per the table above, if you use all qualities of holmium ore your recyclers produce, this would result in about a 27.5% overall bonus, which doesn't seem overpowered.
This really nice things about this approach are:
Ability to craft lower quality with higher quality
Allow Quality Downgrade
Output more fluid when using higher quality recipes (i.e. for Holmium Solution)
I was thinking about what if the solution to all of this is simply to "downgrade" ingredients right when they are input to crafting machines, but also impart a bonus from the excess quality. It's similar to how labs will accept any quality of science pack, where quality science packs just have more "durability".
The idea is that higher quality ingredients just get instantly turned into the expected quality upon insertion (lower than expected quality are still ignored). However, the net quantity of items inserted into the machine would be multiplied by some factor based on the quality difference, so the quality behaves kind of like the durability on science packs. To avoid fractions complicating things, I'd go with a super simple formula like this:
Code: Select all
ItemsNet = ItemsInserted * ((QualityInserted - QualityExpected) + 1)
Code: Select all
Recipe quality is common, 2 items inserted:
Inserted Quality Bonus Net Items in Input Buffer
---------------- ----- -------------------------
Common 1x 2
Uncommon 2x 4
Rare 3x 6
Epic 4x 8
Legendary 6x 12
Code: Select all
Recipe quality is rare, 3 items inserted:
Inserted Quality Bonus Net Items in Input Buffer
---------------- ----- -------------------------
Common N/A Nothing inserted
Uncommon N/A Nothing inserted
Rare 1x 3
Epic 2x 6
Legendary 4x 12
Code: Select all
Recipe quality is epic, 1 item inserted:
Inserted Quality Bonus Net Items in Input Buffer
---------------- ----- -------------------------
Common N/A Nothing inserted
Uncommon N/A Nothing inserted
Rare N/A Nothing inserted
Epic 1x 1
Legendary 3x 3
Code: Select all
Quality Count With Bonus
--------- --------- ----------
Common 752.000 752.000
Uncommon 223.200 446.400
Rare 22.320 66.960
Epic 2.232 8.928
Legendary 0.248 1.488
TOTAL 1000.000 1275.776
For example, let's say you are producing common quality green circuits. You're always feeding common quality copper wire into the assembler, but the iron plates are always uncommon quality. Each time an uncommon iron plate is inserted into the machine, two common iron plates show up in the input buffer. So instead of 1 iron plate per 3 copper wire, you'd only need 1 iron plate per 6 copper wire. Basically the higher quality ingredient "goes farther" than the lower quality ones do. But the end result is still the same exact number of green circuits, because it doesn't affect the actual output rate of the crafting machine.
Another example would be producing holmium solution. If you insert 10 uncommon holmium ore into the chemical plant, 20 common holmium ore show up in the input buffer. This in turn results in more holmium solution being produced, so you're actually getting something out of the higher quality ore. Per the table above, if you use all qualities of holmium ore your recyclers produce, this would result in about a 27.5% overall bonus, which doesn't seem overpowered.
This really nice things about this approach are:
- It doesn't require a separate "downgrading" step (so you don't need extra machines and all the downsides that go along with that)
- It doesn't just "waste" the higher quality items (you at least get something extra out of it)
- It doesn't require any complex quality averaging in the crafting machines
- It doesn't require multiple input buffers for different qualities in the crafting machines
- It doesn't require keeping track of extra fractional inputs/outputs/productivity in the crafting machines
- It allows different qualities to be inserted into a crafting machine asynchronously
- I would have to assume it's relatively trivial to implement in the game code