-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
Create splash attacks and give them to Boomers #71964
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
github-actions
bot
added
<Enhancement / Feature>
New features, or enhancements on existing
[JSON]
Changes (can be) made in JSON
[C++]
Changes (can be) made in C++. Previously named `Code`
Monsters
Monsters both friendly and unfriendly.
Mechanics: Enchantments / Spells
Enchantments and spells
EOC: Effects On Condition
Anything concerning Effects On Condition
labels
Feb 25, 2024
github-actions
bot
added
json-styled
JSON lint passed, label assigned by github actions
BasicBuildPassed
This PR builds correctly, label assigned by github actions
labels
Feb 25, 2024
RenechCDDA
reviewed
Feb 25, 2024
github-actions
bot
added
the
astyled
astyled PR, label is assigned by github actions
label
Feb 25, 2024
github-actions
bot
added
Mutations / Traits / Professions/ Hobbies
Mutations / Traits / Professions/ Hobbies
and removed
json-styled
JSON lint passed, label assigned by github actions
BasicBuildPassed
This PR builds correctly, label assigned by github actions
labels
Feb 25, 2024
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
github-actions
bot
added
the
json-styled
JSON lint passed, label assigned by github actions
label
Feb 25, 2024
github-actions
bot
removed
the
json-styled
JSON lint passed, label assigned by github actions
label
Feb 25, 2024
github-actions
bot
added
the
BasicBuildPassed
This PR builds correctly, label assigned by github actions
label
Feb 26, 2024
Conflicts need resolving |
fixed 👍 |
github-actions
bot
removed
BasicBuildPassed
This PR builds correctly, label assigned by github actions
json-styled
JSON lint passed, label assigned by github actions
labels
Feb 28, 2024
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
github-actions
bot
added
the
json-styled
JSON lint passed, label assigned by github actions
label
Feb 28, 2024
github-actions
bot
added
the
BasicBuildPassed
This PR builds correctly, label assigned by github actions
label
Feb 29, 2024
15 tasks
kevingranade
added a commit
that referenced
this pull request
Mar 10, 2024
Revert "Create splash attacks and give them to Boomers (#71964)"
This was referenced Jul 2, 2024
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`
<Enhancement / Feature>
New features, or enhancements on existing
EOC: Effects On Condition
Anything concerning Effects On Condition
[JSON]
Changes (can be) made in JSON
json-styled
JSON lint passed, label assigned by github actions
Mechanics: Enchantments / Spells
Enchantments and spells
Monsters
Monsters both friendly and unfriendly.
Mutations / Traits / Professions/ Hobbies
Mutations / Traits / Professions/ Hobbies
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
Features "Creates functionality for liquid attacks and moves boomer bile to use it"
Purpose of change
Split from #71584
A lot of monsters attack the player by splashing liquid on them, but these attacks didn't really take gear into account very well. #69555 took steps to fix that by checking overall wetness protection, but given that our two main liquid attacks are bile (which should be able to make worn items filthy) and acid (which should be able to damage them), it would be better to have a system that could check worn items layer-by-layer.
Describe the solution
Adds splash_attack()
Any spell with the LIQUID flag is a splash attack, and will try to apply its effects to characters by getting on their skin/eyes/mouth. LIQUID spells that hit a body part check the coverage of each layer of armor, from the outside in, and are deflected or soak through according to that item's coverage and breathability. LIQUID spells have a liquid_volume defined in their json, and their effectiveness potentially decreases as each layer of armor reduces the remaining volume in turn.
Adds the DODGEABLE spell flag
DODGEABLE spells can be completely dodged by characters and monsters in the usual way, using the spell's level and accuracy. If a spell has this flag, this replaces the previous behavior where up to 2/3 of the damage could be avoided thanks to the character's blocking and dodging ability. It does not affect the further 1/3 that can be shaved off by spell resistance.
Adds max_dodge_training to spells
Dodging spells trains dodge as normal. If it is not appropriate for an attack to teach past a certain rank (as was previously done with boomer bile), spell jsons can now hold define what they should teach to instead.
Boomers and huge boomers now use bile_spew
Describe alternatives you've considered
Right now, boomers just hit a random BP which can include the eyes, and getting hit in the eyes causes the boomer blindness effect. They ought to be targeting eyes specifically, even if that's not where they always wind up hitting, and the easiest way to get that would be to give them a second spell that aims specifically for the eyes. I'd like to do that with an RNG condition, but I need to wait on #71956 to be merged, and this PR is probably big enough already.
In the future, the messaging to be a bit more descriptive regarding the breathability of items which are hit. Right now it says something like "The rain poncho is splashed with a glob of liquid!". It might be nice if a 0 breathability item read like "The rain poncho partially deflects a splashed glob of liquid!" and "A glob of liquid splashes against the faux fur trenchcoat, partially soaking through!" This would explain to players that their 0 breathability poncho is better at protecting them than their 30 breathability trenchcoat, but this would require a bit more jiu-jutsu than the strings are currently doing and seems out of scope for now.
Splashes currently only hit one body part. I would like to add support for very large amounts of fluid (say 200 and above) to automatically split the attack across multiple body parts. No attack currently splashes this much fluid, but that might be an appropriate consequence of, say, standing next to an exploding boomer glutton.
Waterproof items should be easier to wash.
The player should be able to wash fluid effects off of themselves if they have water handy. I have this partially coded and will submit it in a future PR.
Monsters should use their enviro resistance and armor values to protect themselves from splashes. Currently bile is the only splash effect, so this isn't really a big deal yet.
Testing
Spawned in, got barfed on until (eventually) my clothes got filthy. Spawned a huge boomer, saw it was barfing larger amounts. Killed a boomer and a huge boomer, saw that I got splashed. Let a boomer barf on a monster, saw that nothing strange happened.
Additional context
Boomer vs 0 Breathability Item = 2.75% chance to become filthy
Boomer vs 50 Breathability Item = 4.84% chance to become filthy
Boomer vs 100 Breathability Item = 10.89% chance to become filthy
Huge Boomer vs 0 Breathability Item = 7.56% chance to become filthy
Huge Boomer vs 50 Breathability Item = 13.46% chance to become filthy
Huge Boomer vs 100 Breathability Item = 30.25% chance to become filthy
It should be pretty simple to create tests for these.
The above amounts are only for if an item catches the full blast. If the bile was already partially deflected by a layer above, the chance will be reduced relative to the amount of the total fluid that was lost. This means, as you might logically expect, wearing something like a rain poncho over your terrycloth robe is likely to work out better than wearing the robe over the poncho.
In testing, the chances for an item to get filthy don't feel especially high, it's just something that happens sometimes if you're not careful or unlucky. The intent is that players consider using ranged attacks against boomers, something that their slippery bile should have already been encouraging.
augh
revenge