Skip to content

Soak#944

Open
Magisterium2022 wants to merge 151 commits into
DarkPack13:masterfrom
Magisterium2022:soak
Open

Soak#944
Magisterium2022 wants to merge 151 commits into
DarkPack13:masterfrom
Magisterium2022:soak

Conversation

@Magisterium2022
Copy link
Copy Markdown
Contributor

@Magisterium2022 Magisterium2022 commented Apr 20, 2026

About The Pull Request

Adds Soak mechanics.

On character spawn and transformations for Garou, alongside embraces and ghouling, soak values for Bashing, lethal, and Agg are updated depending on Stamina, depending on Character Splat, and Disciplines.

Bashing is non-projectile or sharp brute damage, and stamina damage .
Lethal is projectile and sharp brute damage, poison damage, and brain damage.
Aggravated Damage is Burn and Aggravated damage.

Humans can soak bashing with Stamina
Ghoul can soak Bashing and Lethal with Stamina (Ghouls and Revenants, v20, Page 42), and Agg with Fortitude if possessed.
Kindred can soak Bashing and Lethal, and Agg with Fortitude if possessed.
Garou can soak Bashing and Lethal in all forms, and Agg if outside of Breed form, or Metis.

Silver bullets ignore Soak values for Garou.

Currently, each soak roll success deducts 10 damage from an attack, to a minimum of 0 damage. This makes Kindred and Garou somewhat more bullet-resistant than previously, and renders Garou more fire resistant.

Adjusted direct brute and burn adjustments in the code to use the proper damage application system, alongside making unsoakable damage forced.

Added soak_difficulty variable to the human version of adjust_damage() for setting soak difficulty where applicable. This is currently only used on Levinbolt and Lure of Flames.

Stamina no longer impacts max health, as this was previously being used as a placeholder for Soak.

Removes active Fortitude.

Adjusts Visceratika 4 to provide 1 Agg and Lethal soak, and 2 bashing, alongside halved burn damage as per V20 core.

Adjusts runtimes to account for soak mechanics by setting testing target stamina to 0. This avoids false positive errors, and false negatives where soak might otherwise prevent a runtime from showing in testing properly.

Armour gives soak equal to:

Bullet / 20 rounded vs Lethal vs Bullets
Melee / 20 rounded vs Bashing
Melee / 20 rounded - 1 vs Lethal
Fire / 20 rounded vs Burn
Fire / 20 rounded - 1 vs Agg.

Why It's Good For The Game

Alongside introducing a core tabletop mechanic, this allows for more effective balancing of Disciplines such as Fortitude, and reflection of the benefits of Fortitude bonuses from Garou forms and other alternative forms.

Changelog

🆑
add: Adds Soak mechanics for various damage types. Humans can soak non-bullet or bladed brute, Kindred, Ghouls with Fortitude, and Garou can soak bullets and blades, Garou and those with Fortitude can soak Aggravated damage from Fire and the like. Silver bullets ignore Garou soak. Armour increases soak values.
balance: Stamina no longer impacts Max Health.
balance: Visceratika 4 now provides 1 Agg and Lethal soak, and 2 Bashing alongside halved burn damage.
del: Removes active Fortitude.
/:cl:

@FalloutFalcon
Copy link
Copy Markdown
Member

made changes i didnt feel like writing as a suggestion anymore. Magisterium2022#11

@chazzyjazzy chazzyjazzy dismissed their stale review May 9, 2026 05:48

im kinda busy with other stuff so im dismissing my own requested changes

@DorfGuy1
Copy link
Copy Markdown

how does this work with armor penetration?

var/datum/discipline/soak_fortitude = src.get_discipline(/datum/discipline/fortitude)
if(!soak_fortitude)
return
soak_dice_lethal = soak_fortitude.level //Ghouls can soak lethal and agg via fortitude.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Ghouls & Revenants page 42 means they should get lethal soak via stamina.

Image

@Magisterium2022
Copy link
Copy Markdown
Contributor Author

As per feedback from the TFN TM, I've implemented armour soaking using the values in the description.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants