Merge remote-tracking branch 'tgstation/master' into upstream-2025-11-29

# Conflicts:
#	_maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm
#	_maps/RandomRuins/SpaceRuins/garbagetruck2.dmm
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	_maps/map_files/tramstation/tramstation.dmm
#	code/_onclick/hud/new_player.dm
#	code/datums/components/squashable.dm
#	code/datums/diseases/advance/symptoms/heal.dm
#	code/datums/diseases/chronic_illness.dm
#	code/datums/status_effects/buffs.dm
#	code/datums/status_effects/debuffs/drunk.dm
#	code/datums/status_effects/debuffs/stamcrit.dm
#	code/game/machinery/computer/crew.dm
#	code/game/objects/items/devices/scanners/health_analyzer.dm
#	code/game/objects/items/wall_mounted.dm
#	code/game/turfs/closed/indestructible.dm
#	code/modules/admin/view_variables/filterrific.dm
#	code/modules/antagonists/heretic/influences.dm
#	code/modules/cargo/orderconsole.dm
#	code/modules/client/preferences.dm
#	code/modules/events/space_vines/vine_mutations.dm
#	code/modules/mob/dead/new_player/new_player.dm
#	code/modules/mob/living/carbon/human/death.dm
#	code/modules/mob/living/carbon/human/species_types/jellypeople.dm
#	code/modules/mob/living/damage_procs.dm
#	code/modules/mob/living/living.dm
#	code/modules/mob_spawn/ghost_roles/mining_roles.dm
#	code/modules/mob_spawn/mob_spawn.dm
#	code/modules/projectiles/ammunition/energy/laser.dm
#	code/modules/projectiles/guns/ballistic/launchers.dm
#	code/modules/projectiles/guns/energy/laser.dm
#	code/modules/reagents/chemistry/machinery/chem_dispenser.dm
#	code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
#	code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm
#	code/modules/reagents/chemistry/reagents/medicine_reagents.dm
#	code/modules/surgery/healing.dm
#	code/modules/unit_tests/designs.dm
#	icons/mob/inhands/items_lefthand.dmi
#	icons/mob/inhands/items_righthand.dmi
#	tgui/packages/tgui/interfaces/ChemDispenser.tsx
This commit is contained in:
nevimer
2025-11-29 22:49:21 -05:00
1185 changed files with 39068 additions and 32028 deletions
+1 -1
View File
@@ -264,7 +264,7 @@
// If we ain't starting, deal a tad bit of brute, as a treat
// Note, we attempt to process 10 times a second, so over 7 seconds this'll deal 14 brute
if(!before_work)
victim.adjustBruteLoss(0.2)
victim.adjust_brute_loss(0.2)
return TRUE
/datum/status_effect/choke/tick(seconds_between_ticks)
@@ -27,7 +27,7 @@
SIGNAL_HANDLER
// How much time is left in the duration, in seconds.
var/time_left = (duration - world.time) / 10
var/time_left = duration / 10
var/direction = move_args[MOVE_ARG_DIRECTION]
var/new_dir
+12 -13
View File
@@ -124,8 +124,8 @@
return ..()
/datum/status_effect/incapacitating/unconscious/tick(seconds_between_ticks)
if(owner.getStaminaLoss())
owner.adjustStaminaLoss(-0.3) //reduce stamina loss by 0.3 per tick, 6 per 2 seconds
if(owner.get_stamina_loss())
owner.adjust_stamina_loss(-0.3) //reduce stamina loss by 0.3 per tick, 6 per 2 seconds
//SLEEPING
@@ -233,10 +233,10 @@
to_chat(carbon_owner, span_notice("You feel your fitness improving!"))
if(health_ratio > 0.8) // only heals minor physical damage
need_mob_update += owner.adjustBruteLoss(-0.4 * sleep_quality * seconds_between_ticks, updating_health = FALSE, required_bodytype = BODYTYPE_ORGANIC)
need_mob_update += owner.adjustFireLoss(-0.4 * sleep_quality * seconds_between_ticks, updating_health = FALSE, required_bodytype = BODYTYPE_ORGANIC)
need_mob_update += owner.adjustToxLoss(-0.2 * sleep_quality * seconds_between_ticks, updating_health = FALSE, forced = TRUE, required_biotype = MOB_ORGANIC)
need_mob_update += owner.adjustStaminaLoss(min(-0.4 * sleep_quality * seconds_between_ticks, -0.4 * HEALING_SLEEP_DEFAULT * seconds_between_ticks), updating_stamina = FALSE)
need_mob_update += owner.adjust_brute_loss(-0.4 * sleep_quality * seconds_between_ticks, updating_health = FALSE, required_bodytype = BODYTYPE_ORGANIC)
need_mob_update += owner.adjust_fire_loss(-0.4 * sleep_quality * seconds_between_ticks, updating_health = FALSE, required_bodytype = BODYTYPE_ORGANIC)
need_mob_update += owner.adjust_tox_loss(-0.2 * sleep_quality * seconds_between_ticks, updating_health = FALSE, forced = TRUE, required_biotype = MOB_ORGANIC)
need_mob_update += owner.adjust_stamina_loss(min(-0.4 * sleep_quality * seconds_between_ticks, -0.4 * HEALING_SLEEP_DEFAULT * seconds_between_ticks), updating_stamina = FALSE)
if(need_mob_update)
owner.updatehealth()
// Drunkenness gets reduced by 0.3% per tick (6% per 2 seconds)
@@ -336,9 +336,9 @@
qdel(src)
return
var/need_mob_update
need_mob_update = owner.adjustBruteLoss(0.04 * seconds_between_ticks, updating_health = FALSE)
need_mob_update += owner.adjustFireLoss(0.04 * seconds_between_ticks, updating_health = FALSE)
need_mob_update += owner.adjustToxLoss(0.08 * seconds_between_ticks, updating_health = FALSE, forced = TRUE)
need_mob_update = owner.adjust_brute_loss(0.04 * seconds_between_ticks, updating_health = FALSE)
need_mob_update += owner.adjust_fire_loss(0.04 * seconds_between_ticks, updating_health = FALSE)
need_mob_update += owner.adjust_tox_loss(0.08 * seconds_between_ticks, updating_health = FALSE, forced = TRUE)
if(need_mob_update)
owner.updatehealth()
@@ -416,7 +416,7 @@
new /obj/effect/temp_visual/bleed(get_turf(owner))
/datum/status_effect/stacking/saw_bleed/threshold_cross_effect()
owner.adjustBruteLoss(bleed_damage)
owner.adjust_brute_loss(bleed_damage)
new /obj/effect/temp_visual/bleed/explode(get_turf(owner))
for(var/splatter_dir in GLOB.alldirs)
owner.create_splatter(splatter_dir)
@@ -528,7 +528,7 @@
wasting_effect.alpha = 255
animate(wasting_effect, alpha = 0, time = 32)
playsound(owner, 'sound/effects/curse/curse5.ogg', 20, TRUE, -1)
owner.adjustFireLoss(0.75)
owner.adjust_fire_loss(0.75)
if(curse_flags & CURSE_GRASPING)
if(effect_next_activation > world.time)
@@ -1073,8 +1073,7 @@
/datum/status_effect/midas_blight/tick(seconds_between_ticks)
var/mob/living/carbon/human/victim = owner
// We're transmuting blood, time to lose some.
if(victim.blood_volume > BLOOD_VOLUME_SURVIVE + 50 && !HAS_TRAIT(victim, TRAIT_NOBLOOD))
victim.blood_volume -= 5 * seconds_between_ticks
victim.adjust_blood_volume(-5 * seconds_between_ticks, minimum = BLOOD_VOLUME_SURVIVE + 50)
// This has been hell to try and balance so that you'll actually get anything out of it
victim.reagents.add_reagent(/datum/reagent/gold/cursed, amount = seconds_between_ticks * goldscale, no_react = TRUE)
var/current_gold_amount = victim.reagents.get_reagent_amount(/datum/reagent/gold, type_check = REAGENT_SUB_TYPE)
+6 -6
View File
@@ -231,21 +231,21 @@
// SKYRAT EDIT CHANGE END - ALCOHOL_PROCESSING
// Over 81, we will gain constant toxloss
if(drunk_value >= 83.4)
owner.adjustToxLoss(1)
if(drunk_value >= 81)
owner.adjust_tox_loss(1)
if(owner.stat == CONSCIOUS && prob(5))
to_chat(owner, span_warning("Maybe you should lie down for a bit..."))
// Over 91, we gain even more toxloss, brain damage, and have a chance of dropping into a long sleep
if(drunk_value >= 91)
owner.adjustToxLoss(1)
owner.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.4)
owner.adjust_tox_loss(1)
owner.adjust_organ_loss(ORGAN_SLOT_BRAIN, 0.4)
if(owner.stat == CONSCIOUS)
attempt_to_blackout()
// And finally, over 100 - let's be honest, you shouldn't be alive by now.
if(drunk_value >= 103.4)
owner.adjustToxLoss(2)
if(drunk_value >= 101)
owner.adjust_tox_loss(2)
/datum/status_effect/inebriated/drunk/proc/attempt_to_blackout()
/* SKYRAT EDIT REMOVAL - Blackout drunk begone
@@ -39,7 +39,7 @@
return
if(total_damage >= minimum_before_tox_damage)
owner.adjustToxLoss(toxin_damage_per_second * seconds_between_ticks)
owner.adjust_tox_loss(toxin_damage_per_second * seconds_between_ticks)
total_damage -= remove_per_second * seconds_between_ticks
if(total_damage <= 0)
@@ -47,12 +47,12 @@
if(time_until_stoppage > ATTACK_STAGE_THREE)
if(SPT_PROB(5, seconds_between_ticks))
owner.playsound_local(owner, 'sound/effects/singlebeat.ogg', 25, FALSE, use_reverb = FALSE)
owner.adjustStaminaLoss(5)
owner.adjust_stamina_loss(5)
if(time_until_stoppage <= ATTACK_STAGE_TWO && time_until_stoppage > ATTACK_STAGE_THREE) //This coughing gets replaced with worse coughing, no need to stack it.
if(SPT_PROB(10, seconds_between_ticks))
owner.emote("cough")
owner.adjustStaminaLoss(10)
owner.adjust_stamina_loss(10)
oxyloss_sum += 4
if(time_until_stoppage <= ATTACK_STAGE_THREE) //At this point, we start with chat messages and make it clear that something is very wrong.
@@ -69,7 +69,7 @@
if(SPT_PROB(8, seconds_between_ticks))
to_chat(owner, span_danger("You feel very weak and dizzy..."))
owner.adjust_confusion_up_to(6 SECONDS, 10 SECONDS)
owner.adjustStaminaLoss(20)
owner.adjust_stamina_loss(20)
owner.emote("cough")
oxyloss_sum += 8
@@ -79,7 +79,7 @@
to_chat(owner, span_userdanger("It feels like you're shutting down..."))
owner.adjust_dizzy_up_to(4 SECONDS, 10 SECONDS)
owner.adjust_eye_blur_up_to(4 SECONDS, 20 SECONDS)
owner.adjustStaminaLoss(20)
owner.adjust_stamina_loss(20)
if(SPT_PROB(5, seconds_between_ticks))
owner.emote("cough")
@@ -94,8 +94,8 @@
owner.Paralyze(1 SECONDS)
oxyloss_sum += 3
if(owner.getOxyLoss() < OXYLOSS_MAXIMUM) //A bad enough roll on the verge of passing out might still push you over into unconciousness for a few seconds...?
owner.adjustOxyLoss(oxyloss_sum)
if(owner.get_oxy_loss() < OXYLOSS_MAXIMUM) //A bad enough roll on the verge of passing out might still push you over into unconciousness for a few seconds...?
owner.adjust_oxy_loss(oxyloss_sum)
if(time_until_stoppage <= 0)
if(owner.stat == CONSCIOUS)
@@ -6,7 +6,7 @@
/datum/status_effect/rust_corruption/tick(seconds_between_ticks)
if(issilicon(owner) || isbot(owner))
owner.adjustBruteLoss(10 * seconds_between_ticks)
owner.adjust_brute_loss(10 * seconds_between_ticks)
return
owner.adjust_disgust(5 * seconds_between_ticks)
owner.reagents?.remove_all(0.75 * seconds_between_ticks)
@@ -60,18 +60,18 @@
var/totaldamage = 0 //total damage done to this unfortunate soul
if(iscarbon(owner))
totaldamage += owner.adjustBruteLoss(rand(2, 4) * 0.5 * seconds_between_ticks)
totaldamage += owner.adjustToxLoss(rand(1, 2) * 0.5 * seconds_between_ticks)
totaldamage += owner.adjust_brute_loss(rand(2, 4) * 0.5 * seconds_between_ticks)
totaldamage += owner.adjust_tox_loss(rand(1, 2) * 0.5 * seconds_between_ticks)
if(isanimal_or_basicmob(owner))
var/need_mob_update
need_mob_update = totaldamage += owner.adjustBruteLoss(rand(2, 4) * 0.5 * seconds_between_ticks, updating_health = FALSE)
need_mob_update += totaldamage += owner.adjustToxLoss(rand(1, 2) * 0.5 * seconds_between_ticks, updating_health = FALSE)
need_mob_update = totaldamage += owner.adjust_brute_loss(rand(2, 4) * 0.5 * seconds_between_ticks, updating_health = FALSE)
need_mob_update += totaldamage += owner.adjust_tox_loss(rand(1, 2) * 0.5 * seconds_between_ticks, updating_health = FALSE)
if(need_mob_update)
owner.updatehealth()
if(totaldamage >= 0) // AdjustBruteLoss returns a negative value on successful damage adjustment
if(totaldamage >= 0) // adjust_brute_loss returns a negative value on successful damage adjustment
our_slime.balloon_alert(our_slime, "not food!")
our_slime.stop_feeding()
return
@@ -95,4 +95,4 @@
our_slime.adjust_nutrition(-1 * 1.8 * totaldamage) //damage is already modified by seconds_between_ticks
//Heal yourself.
our_slime.adjustBruteLoss(-1.5 * seconds_between_ticks)
our_slime.adjust_brute_loss(-1.5 * seconds_between_ticks)
+3 -3
View File
@@ -41,7 +41,7 @@
if(seconds_in_nograv >= 3 MINUTES)
// This has some interesting side effects with gravitum or similar negating effects that may be worth nothing
owner.adjustStaminaLoss(-1 * stamina_heal_per_tick)
owner.adjust_stamina_loss(-1 * stamina_heal_per_tick)
owner.AdjustAllImmobility(-1 * stun_heal_per_tick)
// For comparison: Ephedrine heals 4 stamina per tick / 2 per second
// and Nicotine heals 5 seconds of stun per tick / 2.5 per second
@@ -74,8 +74,8 @@
var/minutes_active = round(seconds_active / (1 MINUTES))
// Sit at a passive amount of stamina damage depending on how long it's been
if(!the_spacer.getStaminaLoss())
the_spacer.adjustStaminaLoss(min(25, 5 * minutes_active))
if(!the_spacer.get_stamina_loss())
the_spacer.adjust_stamina_loss(min(25, 5 * minutes_active))
// Max disgust increases over time as well
max_disgust = min(DISGUST_LEVEL_VERYGROSS + 5, initial(max_disgust) + 5 * minutes_active)
// And your lungs can't really handle it good
@@ -16,9 +16,9 @@
// This should be in on apply but we need it to happen AFTER being added to the mob
// (Because we need to wait until the status effect is in their status effect list, or we'll add two)
if(owner.getStaminaLoss() < 162) // SKYRAT EDIT CHANGE
if(owner.get_stamina_loss() < 120)
// Puts you a little further into the initial stamcrit, makes stamcrit harder to outright counter with chems.
owner.adjustStaminaLoss(30, FALSE)
owner.adjust_stamina_loss(30, FALSE)
// Same
RegisterSignal(owner, COMSIG_LIVING_ADJUST_STAMINA_DAMAGE, PROC_REF(update_diminishing_return))
@@ -80,5 +80,5 @@
qdel(src)
return
if(owner.maxHealth - owner.getStaminaLoss() > owner.crit_threshold)
if(owner.maxHealth - owner.get_stamina_loss() > owner.crit_threshold)
qdel(src)