[NON-MODULAR] Mostly reverts Skyrat grab/punch changes. (#242)

## About The Pull Request

Reverts some of the changes to grabs and punches made by Skyrat's combat
reworks over the last two years.

For **grabs:**
Resisting an aggro grab on tg has a base chance of 60% to escape.

_Previously,_ being prone (for any reason) would apply two penalties to
reduce this to 20%. Having stamina damage of over 80 (roughly half your
total before stamcrit at 150) or being a pushover would make this 15%
(for either one of the aforementioned effects) and then 12% for both.
Oversized grabbers would reduce it further to 10%. Every failed resist
roll at being grabbed imposes a four-second movement lock and deals
10-15 stamina damage.

_Now,_ being prone alone **does not decrease the chance of escape.**
Resting (deliberately laying down) now imposes one penalty (taking you
to 60% from 30% and punishing people who deliberately use crawl combat
to try to avoid getting knocked down/slipped.) The stamina damage
penalty for failing to escape a grab has been increased back to the old
tg values of 15-20 per failure. So, if you consistently fail - it can
still get you in trouble, but it's less likely to do so in a timeframe
allowing somebody to cuff you or otherwise murder you without first
having some reasonable chance to escape.

On Skyrat, the old grab mechanics made chain-shoves into aggro-grabs a
much-too-reliable fight-ender off of a single slip. Returning towards tg
balance means that you should, if you intend to really lock someone down
without having cuffs, go for a neck grab. It also weakens quickly
aggro-grabbing people out of a fight to try to disarm them, at which
point (if they failed the roll previously) they might be entirely
movement-locked while standing. It's a lot less goofy and fight-ending
with these values.


For **punches:**

They dealt 2.6 of their brute damage value as stamina damage. The tg
default value is 1.5. Punches really shouldn't be better than batons,
disablers, or any other weapon for a nonlethal takedown.

## Changelog

🆑
balance: Grab escape chances are now higher and don't rise precipitously
on becoming floored.
balance: Punch/kick stamina damage is now lower, making unarmed fighting
much less immediately decisive.
/🆑
This commit is contained in:
Higgin
2023-06-10 12:13:02 -04:00
committed by GitHub
parent 5544cec091
commit dbe730b4ba
2 changed files with 5 additions and 3 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
#define PUNCH_STAMINA_MULTIPLIER 2.6
#define PUNCH_STAMINA_MULTIPLIER 1.5 //BUBBER EDIT - original 2.6
//Stamina threshold from which resisting a grab becomes hard
#define STAMINA_THRESHOLD_HARD_RESIST 80
+4 -2
View File
@@ -1117,12 +1117,14 @@
. = TRUE
if(pulledby.grab_state || body_position == LYING_DOWN || HAS_TRAIT(src, TRAIT_GRABWEAKNESS) || staminaloss > STAMINA_THRESHOLD_HARD_RESIST) //SKYRAT EDIT CHANGE: if(pulledby.grab_state || resting || HAS_TRAIT(src, TRAIT_GRABWEAKNESS))
var/altered_grab_state = pulledby.grab_state
if(body_position == LYING_DOWN || HAS_TRAIT(src, TRAIT_GRABWEAKNESS) && pulledby.grab_state < GRAB_KILL) //If prone, resisting out of a grab is equivalent to 1 grab state higher. won't make the grab state exceed the normal max, however - SKYRAT EDIT CHANGE: if((resting || HAS_TRAIT(src, TRAIT_GRABWEAKNESS)) && pulledby.grab_state < GRAB_KILL) //If resting, resisting out of a grab is equivalent to 1 grab state higher. won't make the grab state exceed the normal max, however
if(resting || HAS_TRAIT(src, TRAIT_GRABWEAKNESS) && pulledby.grab_state < GRAB_KILL) //BUBBER EDIT CHANGE: if(body_position == LYING_DOWN || HAS_TRAIT(src, TRAIT_GRABWEAKNESS) && pulledby.grab_state < GRAB_KILL) //If prone, resisting out of a grab is equivalent to 1 grab state higher. won't make the grab state exceed the normal max, however
altered_grab_state++
if(staminaloss > STAMINA_THRESHOLD_HARD_RESIST)
altered_grab_state++
/* //BUBBER EDIT REMOVAL
if(body_position == LYING_DOWN)
altered_grab_state++
*/ //BUBBER EDIT REMOVAL END
var/mob/living/M = pulledby
if(M.staminaloss > STAMINA_THRESHOLD_HARD_RESIST)
altered_grab_state-- //SKYRAT EDIT END
@@ -1142,7 +1144,7 @@
pulledby.stop_pulling()
return FALSE
else
adjustStaminaLoss(rand(10,15))//failure to escape still imparts a pretty serious penalty //SKYRAT EDIT CHANGE: //adjustStaminaLoss(rand(15,20))//failure to escape still imparts a pretty serious penalty
adjustStaminaLoss(rand(15,20))//failure to escape still imparts a pretty serious penalty //SKYRAT EDIT CHANGE: //adjustStaminaLoss(rand(15,20))//failure to escape still imparts a pretty serious penalty//BUBBER EDIT CHANGE: adjustStaminaLoss(rand(10,15))
visible_message("<span class='danger'>[src] struggles as they fail to break free of [pulledby]'s grip!</span>", \
"<span class='warning'>You struggle as you fail to break free of [pulledby]'s grip!</span>", null, null, pulledby)
to_chat(pulledby, "<span class='danger'>[src] struggles as they fail to break free of your grip!</span>")