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

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

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

Conversation

mattsemar
Copy link
Contributor

@mattsemar mattsemar commented Jan 20, 2022

A built version of these changes can be found here

…ire copying in files from the game directory
<ItemGroup>
<PackageReference Include="BepInEx.Analyzers" Version="1.*" PrivateAssets="all" />
<PackageReference Include="BepInEx.Core" Version="5.*" />
<PackageReference Include="BepInEx.PluginInfoProps" Version="1.*" />
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This package creates a temporary PluginInfo file with the plugin version coming from the csproj file and that can be referenced from the Plugin code.

https://github.com/BepInEx/BepInEx.Templates/tree/master/BepInEx.PluginInfoProps

@@ -0,0 +1,71 @@
param ($vertype = 'patch')
Copy link
Contributor Author

Choose a reason for hiding this comment

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

A build script I use in my own projects. Seems to make packaging releases a little less error prone.

@mattsemar
Copy link
Contributor Author

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
Copy link
Contributor Author

@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.

BetterStats/BetterStats.cs Outdated Show resolved Hide resolved
…ation and to account for labs in extra products mode
@mattsemar mattsemar changed the title Update BetterStats build to load dependencies from NuGet and not require copying in files from the game directory Update build to load from NuGet and update theoretical max amounts to consider Proliferator Points Jan 25, 2022
…level of proliferator unlocked instead of observed amounts
@mattsemar
Copy link
Contributor Author

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
Copy link
Contributor

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

@mattsemar
Copy link
Contributor Author

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:
0. Nothing, current machine selection is used

  1. Disable spray from consideration completely (can lead to showing theoretical max < current production for some items)
  2. Override setting for all assemblers to treat them like they are in speed mode.
  3. 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
Copy link
Contributor Author

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

@mattsemar
Copy link
Contributor Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants