DysonSphereMod / QOL

64 stars 36 forks source link

Update build to load from NuGet and update theoretical max amounts to consider Proliferator Points #125

Open mattsemar opened 2 years ago

mattsemar commented 2 years ago

A built version of these changes can be found here

mattsemar commented 2 years ago

I put this together while waiting for the release scheduled for today to actually go live. No idea whether the new version will actually break this mod, but I figured that if it does then this would make it quicker to get it working again.

mattsemar commented 2 years ago

@brokenmass I tacked on another change in a separate commit to fix the theoretical max calculation for advanced miners. Let me know if you'd prefer and I can do it as a separate PR.

Here's a link if you want to download an already built version.

mattsemar commented 2 years ago

I updated this again. Before I was just using whatever the assembler/lab had for its increased value, but that can vary if there are, for example, suddenly no sprayed items in the assembler. So it was fluctuating quite a bit in my own usage.

Since we're calculating the 'Theoretical max' value it seems better to use the multipliers based on the highest level proliferator that has been researched.

brokenmass commented 2 years ago

I think the productivity multiplier should be optional, possibly per item. something like a 3state toggle (none/speed/product) near the name/icon

mattsemar commented 2 years ago

I think the productivity multiplier should be optional, possibly per item. something like a 3state toggle (none/speed/product) near the name/icon

So we're on the same page, and at the risk of telling you things you already know, the game lets you choose which mode to use on a machine by machine basis. When you first unlock the tech, all machines with recipes that support productivity are set to productivity. Assemblers for ones that don't (things like inserters, belts, other assemblers, but also antimatter fuel rods) are set to speed mode.

The game just sort of looks at the machine's current mode + the presence of sprayed inputs and figures out what to do based on that.

So back to the recommendation. What if we have some UI that lets you either:

  1. Nothing, current machine selection is used
  2. Disable spray from consideration completely (can lead to showing theoretical max < current production for some items)
  3. Override setting for all assemblers to treat them like they are in speed mode.
  4. Override setting to treat all items as being in productivity mode. (can be misleading if it shows you something that isn't actually obtainable, productivity on AM fuel rods)

So this would let users see how much they could produce if they switched all assemblers to speed mode without forcing them to do it.

mattsemar commented 2 years ago

A added a screenshot of what the new mode buttons look like

mattsemar commented 2 years ago

Ok, @brokenmass I think this is good to go. The only outstanding item I can think of is some sort of config to let users choose whether or not we should assume that their sprays are sprayed before use. I didn't do it for now since spraying the sprays leads to lower consumption overall so it's not strictly necessary for the calculation of the max consumption value.