diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm
index b053c5176c..0aaeba8e39 100644
--- a/_maps/map_files/PubbyStation/PubbyStation.dmm
+++ b/_maps/map_files/PubbyStation/PubbyStation.dmm
@@ -807,6 +807,11 @@
},
/turf/open/floor/plasteel/cafeteria,
/area/crew_quarters/fitness/pool)
+"abU" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/landmark/xmastree,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/bar)
"abV" = (
/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/plasteel/white,
@@ -824,6 +829,13 @@
"abY" = (
/turf/open/floor/plasteel/white,
/area/ai_monitored/turret_protected/ai)
+"abZ" = (
+/obj/structure/flora/ausbushes/ywflowers,
+/obj/structure/flora/ausbushes/ppflowers,
+/obj/structure/flora/ausbushes/sparsegrass,
+/obj/effect/landmark/xmastree,
+/turf/open/floor/grass,
+/area/hydroponics/garden/monastery)
"acc" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -47489,12 +47501,6 @@
},
/turf/open/floor/plasteel/dark,
/area/chapel/main/monastery)
-"cgj" = (
-/obj/structure/flora/ausbushes/ywflowers,
-/obj/structure/flora/ausbushes/ppflowers,
-/obj/structure/flora/ausbushes/sparsegrass,
-/turf/open/floor/grass,
-/area/hydroponics/garden/monastery)
"cgk" = (
/obj/structure/flora/ausbushes/ywflowers,
/obj/structure/flora/ausbushes/sparsegrass,
@@ -79792,7 +79798,7 @@ cuE
cgK
cgJ
cgH
-cgj
+abZ
cvj
bWV
cfn
@@ -94890,7 +94896,7 @@ aYg
aZd
beB
bbq
-beB
+abU
bdx
beB
bft
@@ -110827,7 +110833,7 @@ bcQ
aaa
aaa
aaa
-abN
+bBW
aaa
aEj
aEj
@@ -111084,7 +111090,7 @@ bcQ
aaa
aaa
aaa
-aaa
+cFB
aaa
aEl
bnl
diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm
index ef3979d822..f4a53d5c72 100644
--- a/code/datums/status_effects/buffs.dm
+++ b/code/datums/status_effects/buffs.dm
@@ -438,12 +438,19 @@
return
else
linked_alert.icon_state = "fleshmend"
- owner.adjustBruteLoss(-10, FALSE)
- owner.adjustFireLoss(-5, FALSE)
owner.adjustOxyLoss(-10)
if(!iscarbon(owner))
+ owner.adjustBruteLoss(-10, FALSE)
+ owner.adjustFireLoss(-5, FALSE)
return
var/mob/living/carbon/C = owner
+ var/list/damaged_parts = C.get_damaged_bodyparts(TRUE,TRUE, status = list(BODYPART_ORGANIC, BODYPART_HYBRID, BODYPART_NANITES))
+ if(damaged_parts.len)
+ for(var/obj/item/bodypart/part in damaged_parts)
+ part.heal_damage(10/damaged_parts.len, 5/damaged_parts.len, only_organic = FALSE, updating_health = FALSE)
+ C.updatehealth()
+ C.update_damage_overlays()
+
QDEL_LIST(C.all_scars)
/obj/screen/alert/status_effect/fleshmend
@@ -599,7 +606,7 @@
//Heal brain damage and toxyloss, alongside trauma
owner.adjustOrganLoss(ORGAN_SLOT_BRAIN, -8)
- owner.adjustToxLoss(-6, forced = TRUE)
+ owner.adjustToxLoss(-6, forced = TRUE, toxins_type = TOX_OMNI)
M.cure_trauma_type(resilience = TRAUMA_RESILIENCE_BASIC)
//Purges 50 rads per tick
if(owner.radiation > 0)
diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm
index fe27cc2baf..3cbf4b3cd2 100644
--- a/code/datums/traits/negative.dm
+++ b/code/datums/traits/negative.dm
@@ -137,12 +137,18 @@ GLOBAL_LIST_EMPTY(family_heirlooms)
var/lums = T.get_lumcount()
if(lums <= 0.2)
if(quirk_holder.m_intent == MOVE_INTENT_RUN)
- to_chat(quirk_holder, "Easy, easy, take it slow... you're in the dark...")
- quirk_holder.toggle_move_intent()
+ addtimer(CALLBACK(src, .proc/recheck),2) //0.2 seconds of being in the dark
SEND_SIGNAL(quirk_holder, COMSIG_ADD_MOOD_EVENT, "nyctophobia", /datum/mood_event/nyctophobia)
else
SEND_SIGNAL(quirk_holder, COMSIG_CLEAR_MOOD_EVENT, "nyctophobia")
+/datum/quirk/nyctophobia/proc/recheck()
+ var/turf/T = get_turf(quirk_holder)
+ var/lums = T.get_lumcount()
+ if(lums <= 0.2) //check again, did they remain in the dark for 0.2 seconds?
+ to_chat(quirk_holder, "Easy, easy, take it slow... you're in the dark...")
+ quirk_holder.toggle_move_intent()
+
/datum/quirk/lightless
name = "Light Sensitivity"
desc = "Bright lights irritate you. Your eyes start to water, your skin feels itchy against the photon radiation, and your hair gets dry and frizzy. Maybe it's a medical condition. If only Nanotrasen was more considerate of your needs..."
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index 46eb82342a..52082637a3 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -446,8 +446,11 @@
var/mob/living/L = O
if(!issilicon(L))
L.DefaultCombatKnockdown(40)
- O.forceMove(T)
- close()
+ if(istype(src, /obj/structure/closet/supplypod/extractionpod))
+ O.forceMove(src)
+ else
+ O.forceMove(T)
+ close()
else
O.forceMove(T)
return 1
diff --git a/code/modules/admin/view_variables/topic.dm b/code/modules/admin/view_variables/topic.dm
index af412a6caa..d7e893ec03 100644
--- a/code/modules/admin/view_variables/topic.dm
+++ b/code/modules/admin/view_variables/topic.dm
@@ -98,7 +98,7 @@
L.adjustFireLoss(amount)
newamt = L.getFireLoss()
if("toxin")
- L.adjustToxLoss(amount, toxins_type = TOX_OMNI)
+ L.adjustToxLoss(amount, toxins_type = TOX_OMNI, forced = TRUE)
newamt = L.getToxLoss()
if("oxygen")
L.adjustOxyLoss(amount)
diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm
index 4117fc2b36..3e358cd795 100644
--- a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm
+++ b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm
@@ -120,9 +120,14 @@
if(bruteheal + fireheal + toxinheal > 0) // Just a check? Don't heal/spend, and return.
if(mult == 0)
return TRUE
+
// We have damage. Let's heal (one time)
- C.adjustBruteLoss(-bruteheal * mult, forced = TRUE)// Heal BRUTE / BURN in random portions throughout the body.
- C.adjustFireLoss(-fireheal * mult, forced = TRUE)
+ var/list/damaged_parts = C.get_damaged_bodyparts(TRUE,TRUE, status = list(BODYPART_ORGANIC, BODYPART_HYBRID, BODYPART_NANITES))
+ if(damaged_parts.len)
+ for(var/obj/item/bodypart/part in damaged_parts) // Heal BRUTE / BURN equally distibuted over all damaged bodyparts.
+ part.heal_damage((bruteheal * mult)/damaged_parts.len, (fireheal * mult)/damaged_parts.len, only_organic = FALSE, updating_health = FALSE)
+ C.updatehealth()
+ C.update_damage_overlays()
C.adjustToxLoss(-toxinheal * mult * 2, forced = TRUE) //Toxin healing because vamps arent immune
//C.heal_overall_damage(bruteheal * mult, fireheal * mult) // REMOVED: We need to FORCE this, because otherwise, vamps won't heal EVER. Swapped to above.
AddBloodVolume((bruteheal * -0.5 + fireheal * -1 + toxinheal * -0.2) / mult * costMult) // Costs blood to heal
@@ -276,7 +281,7 @@
/datum/antagonist/bloodsucker/proc/FinalDeath()
//Dont bother if we are already supposed to be dead
if(FinalDeath)
- return
+ return
FinalDeath = TRUE //We are now supposed to die. Lets not spam it.
if(!iscarbon(owner.current)) //Check for non carbons.
owner.current.gib()
diff --git a/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm b/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm
index f5c54dd7bf..9d65396c63 100644
--- a/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm
+++ b/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm
@@ -69,7 +69,7 @@
var/mob/living/living_user = user
living_user.adjustBruteLoss(-3, FALSE)
living_user.adjustFireLoss(-3, FALSE)
- living_user.adjustToxLoss(-3, FALSE)
+ living_user.adjustToxLoss(-3, FALSE, TRUE)
living_user.adjustOxyLoss(-1, FALSE)
living_user.adjustStaminaLoss(-6)
diff --git a/code/modules/cargo/supplypod.dm b/code/modules/cargo/supplypod.dm
index 6169c4d3f0..efac62c930 100644
--- a/code/modules/cargo/supplypod.dm
+++ b/code/modules/cargo/supplypod.dm
@@ -74,7 +74,6 @@
bluespace = TRUE
explosionSize = list(0,0,1,2)
landingDelay = 25 //Longer than others
- reverseOptionList = list("Mobs"=TRUE,"Objects"=FALSE,"Anchored"=FALSE,"Underfloor"=FALSE,"Wallmounted"=FALSE,"Floors"=FALSE,"Walls"=FALSE)
/obj/structure/closet/supplypod/centcompod
style = STYLE_CENTCOM
diff --git a/html/changelogs/AutoChangeLog-pr-13846.yml b/html/changelogs/AutoChangeLog-pr-13846.yml
new file mode 100644
index 0000000000..68e013acf0
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-13846.yml
@@ -0,0 +1,4 @@
+author: "DeltaFire15"
+delete-after: True
+changes:
+ - balance: "Fleshmend, Anatomic Panacea and bloodsucker healing now work for Synths / IPCs."
diff --git a/html/changelogs/AutoChangeLog-pr-13873.yml b/html/changelogs/AutoChangeLog-pr-13873.yml
new file mode 100644
index 0000000000..320a5b69a4
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-13873.yml
@@ -0,0 +1,4 @@
+author: "BlueWildrose"
+delete-after: True
+changes:
+ - tweak: "Nyctophobia quirk now has some light lag compensation."
diff --git a/html/changelogs/AutoChangeLog-pr-13881.yml b/html/changelogs/AutoChangeLog-pr-13881.yml
new file mode 100644
index 0000000000..0ad2d3afc8
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-13881.yml
@@ -0,0 +1,4 @@
+author: "BlueWildrose"
+delete-after: True
+changes:
+ - rscadd: "PubbyStation now has two Christmas Tree spawners."