Skip to content

Conversation

@RenechCDDA
Copy link
Member

Summary

Bugfixes "Butchery proficiencies give their benefits below 100% learned"

Purpose of change

Butchery proficiencies didn't work at all before 100% learned, because they were being cast to int.

Describe the solution

Properly handle them as a (double-precision) float.

Also add some debug plumbing to check this in the future.

Extracted from #83314

Describe alternatives you've considered

Testing

Additional context

@github-actions github-actions bot added [C++] Changes (can be) made in C++. Previously named `Code` <Bugfix> This is a fix for a bug (or closes open issue) json-styled JSON lint passed, label assigned by github actions astyled astyled PR, label is assigned by github actions labels Oct 19, 2025
@RenechCDDA
Copy link
Member Author

The test did not expect this 😆

Looks like I'll need to resolve that

@RenechCDDA
Copy link
Member Author

RenechCDDA commented Oct 19, 2025

Actually is that my fault? It seems they took too long.

Oh of course it's my "fault". Previously we discarded the extra penalty above the integer value, now we're not.

@RenechCDDA RenechCDDA force-pushed the fix_butchery_profs branch 2 times, most recently from f2ff584 to 7212255 Compare October 19, 2025 13:36
@github-actions github-actions bot added the Code: Tests Measurement, self-control, statistics, balancing. label Oct 19, 2025
@RenechCDDA
Copy link
Member Author

RenechCDDA commented Oct 19, 2025

Looks like it is related to my changes, somehow. The integer casting was rounding up before, maybe? Is that possible? Previously we discarded the extra penalty above the integer value, now we're not.

@kevingranade Is this 8 hour test time for a deer expecting proficiencies or completely amateur? Is there a target time for the other scenario?

@kevingranade
Copy link
Member

kevingranade commented Oct 20, 2025

Yea this surfaced a bug.
Easy option: just dial down the base numbers to get the result roughly to 8h.
Harder: tease out the penalty and adjust the test to avoid it, yeah if it's a missing proficiency just add it.
Incorrect I think: increase the threshold?

@RenechCDDA
Copy link
Member Author

RenechCDDA commented Oct 20, 2025

Okay so with all the relevant proficiencies we take around ~4 hours, 51 minutes to full butcher a deer.

With only the basic butcher proficiency + skinning proficiencies, it takes ~5 hours, 49 minutes.

With only the basic butcher proficiency (and missing both of the skinning proficiencies), it takes ~6 hours, 48 minutes.

...And then I found out our corpse is always "underfed", further skewing the results. (This affects weight, which only matters for butchery results, not time.) Ugh, okay, sorting this mess out.

AND it looks like we're learning on the job, so that further skews things.

Update/cleanup/build guard rails for test
@kevingranade
Copy link
Member

AND it looks like we're learning on the job, so that further skews things.

Maybe just fix focus? Could either be some nominal value to at least flatten gain speed or 0 to eliminate it.

I'd say pick any one of those proficiency sets and adjust the expected time to match, about 6 hours is not at all out of line.

Ideally you would pass in a list of proficiencies to grant along with the expected time, and just have 3-4 different scenarios represented, but I'm not asking for that to call the PR done.

@kevingranade kevingranade mentioned this pull request Oct 20, 2025
Co-authored-by: Anton Simakov <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

astyled astyled PR, label is assigned by github actions <Bugfix> This is a fix for a bug (or closes open issue) [C++] Changes (can be) made in C++. Previously named `Code` Code: Tests Measurement, self-control, statistics, balancing. json-styled JSON lint passed, label assigned by github actions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants