Skip to content

May Moody Fixes #6732

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
May 19, 2025
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions code/modules/mining/fulton.dm
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,10 @@ GLOBAL_LIST_EMPTY(total_extraction_beacons)
icon_state = "folded_extraction"

/obj/item/fulton_core/attack_self(mob/user)
if(istype(get_area(user), /area/misc/hilbertshotel))
to_chat(user, span_userdanger("Something about this place is interfering with the beacon. It is unsafe to deploy."))
return .

if(do_after(user,15,target = user) && !QDELETED(src))
new /obj/structure/extraction_point(get_turf(user))
playsound(src, 'sound/items/deconstruct.ogg', vol = 50, vary = TRUE, extrarange = MEDIUM_RANGE_SOUND_EXTRARANGE)
Expand Down
3 changes: 3 additions & 0 deletions code/modules/surgery/bodyparts/dismemberment.dm
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,9 @@
continue
var/obj/item/bodypart/head/oozeling/oozhead = src
oozhead.eyes = null // Need this otherwise qdel on head deletes the eyes.
if(istype(lmbimplant, /obj/item/organ/internal/brain)) // Go figure rare interactions give humans oozling heads. This stops rr's for head dismemeberment.
var/obj/item/bodypart/head/oozeling/oozhead = src
oozhead.brain = null // Similar to eyes
to_chat(phantom_owner, span_notice("Something small falls out the [src]."))
qdel(src)
return
Expand Down
2 changes: 1 addition & 1 deletion code/modules/surgery/bodyparts/head.dm
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@


/obj/item/bodypart/head/can_dismember(obj/item/item)
if(owner.stat < HARD_CRIT)
if(owner.stat < HARD_CRIT && !(limb_id == SPECIES_OOZELING))
return FALSE
return ..()

Expand Down
3 changes: 1 addition & 2 deletions code/modules/surgery/organs/internal/heart/_heart.dm
Original file line number Diff line number Diff line change
Expand Up @@ -385,14 +385,13 @@
stop_crystalization_process(victim)
return


if(QDELETED(victim) || HAS_TRAIT(victim, TRAIT_SUICIDED))
return //lol rip

if(!COOLDOWN_FINISHED(src, crystalize_cooldown))
return //lol double rip

if(HAS_TRAIT(victim, TRAIT_CANNOT_CRYSTALIZE))
if(HAS_TRAIT(victim, TRAIT_CANNOT_CRYSTALIZE) || HAS_TRAIT(victim, TRAIT_DEFIB_BLACKLISTED))
return // no reviving during mafia, or other inconvenient times.

to_chat(victim, span_nicegreen("Crystals start forming around your dead body."))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@

/datum/component/plant_growing/proc/try_plant_seed(datum/source, obj/item/seeds/seed, mob/living/user)
SIGNAL_HANDLER
if(istype(seed, /obj/item/storage/bag/plants))
if(istype(seed, /obj/item/storage/bag/plants) && !istype(seed, /obj/item/seeds/sample))
for(var/id as anything in managed_seeds)
var/obj/item/seeds/harvest = managed_seeds[id]
if(!harvest)
Expand Down
7 changes: 6 additions & 1 deletion monkestation/code/modules/surgery/organs/internal/brain.dm
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@
/obj/item/organ/external/antennae,
/obj/item/organ/external/spines,
/obj/item/organ/internal/eyes/robotic/glow,
/obj/item/organ/external/plumage,
/obj/item/organ/internal/ears/cat/super,
))
//Quirks that roll unique effects or gives items to each new body should be saved between bodies.
var/static/list/saved_quirks = typecacheof(list(
Expand Down Expand Up @@ -109,7 +111,10 @@
. += span_notice("A dim light lowly pulsates from the center of the core, indicating an outgoing signal from a tracking microchip.")
. += span_red("You could probably snuff that out.")
if((brainmob && (brainmob.client || brainmob.get_ghost())) || decoy_override)
. += span_hypnophrase("You remember that pouring plasma on it, if it's non-embodied, would make it regrow one.")
if(isnull(stored_dna))
. += span_hypnophrase("Something looks wrong with this core, you don't think plasma will fix this one, maybe there's another way?")
else
. += span_hypnophrase("You remember that pouring a big beaker of ground plasma on it, if it's non-embodied, would make it regrow one.")

/obj/item/organ/internal/brain/slime/attack_self(mob/living/user) // Allows a player (presumably an antag) to deactivate the GPS signal on a slime core
user.visible_message(
Expand Down
4 changes: 2 additions & 2 deletions monkestation/code/modules/surgery/organs/internal/heart.dm
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@
to_chat(H, span_notice("You focus intently on your missing [length(limbs_to_heal) >= 2 ? "limbs" : "limb"]..."))
if(H.blood_volume >= 40*length(limbs_to_heal)+BLOOD_VOLUME_OKAY)
H.regenerate_limbs()
if((BODY_ZONE_HEAD in limbs_to_heal) && H.get_bodypart(BODY_ZONE_HEAD)) // We have a head now so we should make eyes.
if((BODY_ZONE_HEAD in limbs_to_heal) && istype(H.get_bodypart(BODY_ZONE_HEAD), /obj/item/bodypart/head/oozeling)) // We have a head now so we should make eyes.
new_organ = H.dna.species.get_mutant_organ_type_for_slot(ORGAN_SLOT_EYES)
new_organ = SSwardrobe.provide_type(new_organ)
new_organ.Insert(H)
Expand All @@ -121,7 +121,7 @@
while(H.blood_volume >= BLOOD_VOLUME_OKAY+40)
var/healed_limb = pick(limbs_to_heal)
H.regenerate_limb(healed_limb)
if(H.regenerate_limb(healed_limb) && istype(healed_limb, /obj/item/bodypart/head)) // We have a head now so we should make eyes.
if(istype(H.get_bodypart(BODY_ZONE_HEAD), /obj/item/bodypart/head/oozeling)) // We have a head now so we should make eyes.
new_organ = H.dna.species.get_mutant_organ_type_for_slot(ORGAN_SLOT_EYES)
new_organ = SSwardrobe.provide_type(new_organ)
new_organ.Insert(H)
Expand Down