Skip to content

Lack of hard +300% productivity cap #12

@Rycieos

Description

@Rycieos

As explained in the FFF that introduced Quality, the game now has a hard cap at +300% productivity:

This is also why we created an overall machine limit on productivity to be +300% (modifiable by mods if needed), so even when some mods add machines with more module slots and/or better productivity modules, [the recycling loop] will always be prevented from getting broken accidentally.

This is important with the infinite technologies that give productivity, like steel, processing units, and low density structures, where it is possible to get +250% from research, and +50% from the foundry or electromagnetic plant.

I do not know if the linear solver handles this correctly (the math is way too complicated for me to manually test), but I know that the one step matrix solver does not:

$ python3 ./scripts/one_step_matrix_solver.py --additional-prod 0
q1 input per q5 output: 79.87855759632308
recipe q1 uses 2 quality modules and 2 prod modules
recipe q2 uses 2 quality modules and 2 prod modules
recipe q3 uses 2 quality modules and 2 prod modules
recipe q4 uses 2 quality modules and 2 prod modules
recipe q5 uses 0 quality modules and 4 prod modules

$ python3 ./scripts/one_step_matrix_solver.py --additional-prod 50
q1 input per q5 output: 24.24642624603618
recipe q1 uses 2 quality modules and 2 prod modules
recipe q2 uses 1 quality modules and 3 prod modules
recipe q3 uses 1 quality modules and 3 prod modules
recipe q4 uses 1 quality modules and 3 prod modules
recipe q5 uses 0 quality modules and 4 prod modules

$ python3 ./scripts/one_step_matrix_solver.py --additional-prod 300
q1 input per q5 output: 0.0003611924996120015
recipe q1 uses 0 quality modules and 4 prod modules
recipe q2 uses 0 quality modules and 4 prod modules
recipe q3 uses 0 quality modules and 4 prod modules
recipe q4 uses 0 quality modules and 4 prod modules
recipe q5 uses 0 quality modules and 4 prod modules

$ python3 ./scripts/one_step_matrix_solver.py --additional-prod 1000
q1 input per q5 output: 0.023587769271446946
recipe q1 uses 4 quality modules and 0 prod modules
recipe q2 uses 4 quality modules and 0 prod modules
recipe q3 uses 4 quality modules and 0 prod modules
recipe q4 uses 4 quality modules and 0 prod modules
recipe q5 uses 0 quality modules and 4 prod modules

The last two outputs are incorrect, as with the cap at +300%, no additional prod modules would do anything, and the --additional-prod 1000 should be capped to 300.

Arguably, this 300 value should be configurable, as it is a value configurable by mods.

I attempted to implement this in one_step_matrix_solver.py, but was unable to get it working.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions