-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
Allow EOCs to read item tool qualities #79511
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Auto-requesting reviews from non-collaborators: @andrei8l
andrei8l
reviewed
Feb 3, 2025
Rename Boiling to strict, Remove redundant branching and error throwing code
Thank you kindly. I've gone ahead and incorporated those revisions. |
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
BasicBuildPassed
This PR builds correctly, label assigned by github actions
[C++]
Changes (can be) made in C++. Previously named `Code`
Code: Infrastructure / Style / Static Analysis
Code internal infrastructure and style
<Documentation>
Design documents, internal info, guides and help.
json-styled
JSON lint passed, label assigned by github actions
[Markdown]
Markdown issues and PRs
NPC / Factions
NPCs, AI, Speech, Factions, Ownership
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Infrastructure "Allow EOCs to read item tool qualities"
Purpose of change
I'm reworking the hacking EOCs in Aftershock and I could get around a lot of jank and redundant code by reading the tool quality directly from the beta talker.
As opposed to the current solution of creating 6 redundant eocs that will become invalid the moment a tool has it's hacking quality changed without updating the backend eocs. In fact just factoring in tool quality into the condition statement basically eliminates the need to manually list out every possible hacking tool id. Further reducing jank.
While this change doesn't necessarily open any doors we didn't already have access to, it does allow us to write EOCs that utilize tool qualities in a more robust and clean way.
Describe the solution
Add a new math function quality(). This function is valid only on item talkers and returns the level of a specified quality ID. It takes the tool quality id as an argument and has an optional kwarg "boiling", which when true requires an item to be empty to have it's boiling quality.
Describe alternatives you've considered
Not doing this, thus leaving in the EOC Jank.
Testing
Created a test EOC. Verified function produced the correct number when checking a tool's quality.
Tested a quality the tool did not have. Verified produced result as expected.
Attempted to use the function on a non-item talker. Var was not assigned and debug message was correctly thrown.
Additional context