mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-23 05:00:55 +01:00
Every so slightly buffs airlock crushing (#92403)
## About The Pull Request +5 damage to airlock crushing Now uses apply damage (which means it can wound and is affected by physiology) Has a wound bonus so it has the potential to cause wounds. In testing it seems super uncommon unless you're frail though. ## Why It's Good For The Game 15 damage for being smashed in a door? Insane ## Changelog 🆑 Melbert balance: Airlock crushing now does 20 damage, up from 15. Also may uncommonly cause wounds. Also is properly affected by damage reduction or modifiers. /🆑
This commit is contained in:
@@ -27,6 +27,8 @@
|
||||
#define COMSIG_LIVING_ENTER_STAMCRIT "living_enter_stamcrit"
|
||||
///from /obj/structure/door/crush(): (mob/living/crushed, /obj/machinery/door/crushing_door)
|
||||
#define COMSIG_LIVING_DOORCRUSHED "living_doorcrush"
|
||||
/// Stop the door from causing wounds (damage still applies though)
|
||||
#define DOORCRUSH_NO_WOUND (1<<0)
|
||||
///from base of mob/living/resist() (/mob/living)
|
||||
#define COMSIG_LIVING_RESIST "living_resist"
|
||||
///from base of mob/living/ignite_mob() (/mob/living)
|
||||
|
||||
@@ -465,7 +465,7 @@
|
||||
#define APPRENTICE_AGE_MIN 29 //youngest an apprentice can be
|
||||
#define SHOES_SLOWDOWN 0 //How much shoes slow you down by default. Negative values speed you up
|
||||
#define POCKET_STRIP_DELAY (4 SECONDS) //time taken to search somebody's pockets
|
||||
#define DOOR_CRUSH_DAMAGE 15 //the amount of damage that airlocks deal when they crush you
|
||||
#define DOOR_CRUSH_DAMAGE 20 //the amount of damage that airlocks deal when they crush you
|
||||
|
||||
#define HUNGER_FACTOR 0.05 //factor at which mob nutrition decreases
|
||||
#define ETHEREAL_DISCHARGE_RATE (1e-3 * STANDARD_ETHEREAL_CHARGE) // Rate at which ethereal stomach charge decreases
|
||||
|
||||
@@ -279,6 +279,8 @@
|
||||
if(prob(40))
|
||||
victim.visible_message(span_danger("[victim]'s dislocated [limb.plaintext_zone] pops back into place!"), span_userdanger("Your dislocated [limb.plaintext_zone] pops back into place! Ow!"))
|
||||
remove_wound()
|
||||
return DOORCRUSH_NO_WOUND
|
||||
return NONE
|
||||
|
||||
/datum/wound/blunt/bone/moderate/try_handling(mob/living/user)
|
||||
if(user.usable_hands <= 0 || user.pulling != victim)
|
||||
|
||||
@@ -584,24 +584,23 @@
|
||||
for(var/turf/checked_turf in locs)
|
||||
for(var/mob/living/future_pancake in checked_turf)
|
||||
future_pancake.visible_message(span_warning("[src] closes on [future_pancake], crushing [future_pancake.p_them()]!"), span_userdanger("[src] closes on you and crushes you!"))
|
||||
SEND_SIGNAL(future_pancake, COMSIG_LIVING_DOORCRUSHED, src)
|
||||
var/sig_return = SEND_SIGNAL(future_pancake, COMSIG_LIVING_DOORCRUSHED, src)
|
||||
future_pancake.add_splatter_floor(loc)
|
||||
log_combat(src, future_pancake, "crushed")
|
||||
var/door_wounding = (sig_return & DOORCRUSH_NO_WOUND) ? CANT_WOUND : 10
|
||||
if(isalien(future_pancake)) //For xenos
|
||||
future_pancake.adjustBruteLoss(DOOR_CRUSH_DAMAGE * 1.5) //Xenos go into crit after aproximately the same amount of crushes as humans.
|
||||
future_pancake.apply_damage(DOOR_CRUSH_DAMAGE * 1.5, BRUTE, BODY_ZONE_CHEST, wound_bonus = door_wounding, attacking_item = src) //Xenos go into crit after aproximately the same amount of crushes as humans.
|
||||
future_pancake.emote("roar")
|
||||
else if(ismonkey(future_pancake)) //For monkeys
|
||||
future_pancake.emote("screech")
|
||||
future_pancake.adjustBruteLoss(DOOR_CRUSH_DAMAGE)
|
||||
future_pancake.Paralyze(100)
|
||||
future_pancake.apply_damage(DOOR_CRUSH_DAMAGE, BRUTE, BODY_ZONE_CHEST, wound_bonus = door_wounding, attacking_item = src)
|
||||
future_pancake.Paralyze(10 SECONDS)
|
||||
else if(ishuman(future_pancake)) //For humans
|
||||
future_pancake.adjustBruteLoss(DOOR_CRUSH_DAMAGE)
|
||||
future_pancake.emote("scream")
|
||||
future_pancake.Paralyze(100)
|
||||
future_pancake.apply_damage(DOOR_CRUSH_DAMAGE, BRUTE, BODY_ZONE_CHEST, wound_bonus = door_wounding, attacking_item = src)
|
||||
future_pancake.Paralyze(10 SECONDS)
|
||||
else //for simple_animals & borgs
|
||||
future_pancake.adjustBruteLoss(DOOR_CRUSH_DAMAGE)
|
||||
var/turf/location = get_turf(src)
|
||||
//add_blood doesn't work for borgs/xenos, but add_blood_floor does.
|
||||
future_pancake.add_splatter_floor(location)
|
||||
log_combat(src, future_pancake, "crushed")
|
||||
future_pancake.apply_damage(DOOR_CRUSH_DAMAGE, BRUTE, BODY_ZONE_CHEST, wound_bonus = door_wounding, attacking_item = src)
|
||||
for(var/obj/vehicle/sealed/mecha/mech in get_turf(src)) // Your fancy metal won't save you here!
|
||||
mech.take_damage(DOOR_CRUSH_DAMAGE)
|
||||
log_combat(src, mech, "crushed")
|
||||
|
||||
@@ -159,19 +159,14 @@
|
||||
for(var/turf/checked_turf in locs)
|
||||
for(var/mob/living/future_pancake in checked_turf)
|
||||
future_pancake.visible_message(span_warning("[src] beeps angrily and closes on [future_pancake]!"), span_userdanger("[src] beeps angrily and closes on you!"))
|
||||
SEND_SIGNAL(future_pancake, COMSIG_LIVING_DOORCRUSHED, src)
|
||||
var/sig_return = SEND_SIGNAL(future_pancake, COMSIG_LIVING_DOORCRUSHED, src)
|
||||
future_pancake.add_splatter_floor(loc)
|
||||
log_combat(src, future_pancake, "crushed")
|
||||
var/door_wounding = (sig_return & DOORCRUSH_NO_WOUND) ? CANT_WOUND : 10
|
||||
future_pancake.apply_damage(DOOR_CRUSH_DAMAGE * 2, BRUTE, BODY_ZONE_CHEST, wound_bonus = door_wounding, attacking_item = src)
|
||||
future_pancake.Paralyze(2 SECONDS)
|
||||
if(ishuman(future_pancake))
|
||||
future_pancake.emote("scream")
|
||||
future_pancake.adjustBruteLoss(DOOR_CRUSH_DAMAGE * 2)
|
||||
future_pancake.Paralyze(2 SECONDS)
|
||||
|
||||
else //for simple_animals & borgs
|
||||
future_pancake.adjustBruteLoss(DOOR_CRUSH_DAMAGE * 2)
|
||||
var/turf/location = get_turf(src)
|
||||
//add_blood doesn't work for borgs/xenos, but add_blood_floor does.
|
||||
future_pancake.add_splatter_floor(location)
|
||||
|
||||
log_combat(src, future_pancake, "crushed")
|
||||
|
||||
for(var/obj/vehicle/sealed/mecha/mech in checked_turf) // Your fancy metal won't save you here!
|
||||
mech.take_damage(DOOR_CRUSH_DAMAGE)
|
||||
|
||||
Reference in New Issue
Block a user