Skip to content

Soak#944

Open
Magisterium2022 wants to merge 144 commits intoDarkPack13:masterfrom
Magisterium2022:soak
Open

Soak#944
Magisterium2022 wants to merge 144 commits intoDarkPack13: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 with Stamina, and Lethal 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.

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

Comment on lines +414 to +418
if(isprojectile(attacking_item))
if(get_kindred_splat(src) && !def_zone == HEAD)
roll_used = soak_dice_bashing //Kindred take bullets as bashing unless they're to the head.
else
roll_used = soak_dice_lethal //Otherwise it's lethal damage.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I believe this duplataces the effects of

/datum/splat/vampire/kindred/proc/damage_resistance(datum/source, list/damage_mods, damage_amount, damagetype, def_zone, sharpness, attack_direction, obj/item/attacking_item)
	SIGNAL_HANDLER

	// Kindred take half "bashing" damage, which is normally blunt damage but includes pointy things like bullets because they're undead
	if ((damagetype == BRUTE) && (sharpness != SHARP_EDGED))
		damage_mods += 0.5

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Nope, kindred take half bashing damage still, post-soak.

@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

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.

5 participants