From df62120096e87f904776ba3eb5ff5efdd4c469b3 Mon Sep 17 00:00:00 2001 From: CHOMPStation2StaffMirrorBot <94713762+CHOMPStation2StaffMirrorBot@users.noreply.github.com> Date: Sat, 28 Jun 2025 19:17:55 -0700 Subject: [PATCH] [MIRROR] Gargoyle adjustments & fixes (#11123) Co-authored-by: Cameron Lennox Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com> --- code/datums/components/traits/gargoyle.dm | 98 +++++++++-------- code/game/objects/structures/gargoyle.dm | 103 ++++++++++-------- code/modules/mob/living/carbon/breathe.dm | 4 +- .../mob/living/carbon/human/examine.dm | 14 +-- .../game/objects/items/devices/mind_binder.dm | 2 +- 5 files changed, 117 insertions(+), 104 deletions(-) diff --git a/code/datums/components/traits/gargoyle.dm b/code/datums/components/traits/gargoyle.dm index 00ec3931e8..77cbb4367d 100644 --- a/code/datums/components/traits/gargoyle.dm +++ b/code/datums/components/traits/gargoyle.dm @@ -2,7 +2,6 @@ var/energy = 100 var/transformed = FALSE var/paused = FALSE - var/paused_loc var/cooldown var/mob/living/carbon/human/gargoyle //easy reference @@ -18,54 +17,61 @@ if (!ishuman(parent)) return COMPONENT_INCOMPATIBLE gargoyle = parent - add_verb(gargoyle,/mob/living/carbon/human/proc/gargoyle_transformation) - add_verb(gargoyle,/mob/living/carbon/human/proc/gargoyle_pause) - add_verb(gargoyle,/mob/living/carbon/human/proc/gargoyle_checkenergy) - RegisterSignal(gargoyle, COMSIG_GARGOYLE_TRANSFORMATION, PROC_REF(gargoyle_transformation)) - RegisterSignal(gargoyle, COMSIG_GARGOYLE_PAUSE, PROC_REF(gargoyle_pause)) - RegisterSignal(gargoyle, COMSIG_GARGOYLE_CHECK_ENERGY, PROC_REF(gargoyle_checkenergy)) + add_verb(parent,/mob/living/carbon/human/proc/gargoyle_transformation) + add_verb(parent,/mob/living/carbon/human/proc/gargoyle_pause) + add_verb(parent,/mob/living/carbon/human/proc/gargoyle_checkenergy) - RegisterSignal(gargoyle, COMSIG_LIVING_LIFE, PROC_REF(process_component)) +/datum/component/gargoyle/RegisterWithParent() + RegisterSignal(parent, COMSIG_GARGOYLE_TRANSFORMATION, PROC_REF(gargoyle_transformation)) + RegisterSignal(parent, COMSIG_GARGOYLE_PAUSE, PROC_REF(gargoyle_pause)) + RegisterSignal(parent, COMSIG_GARGOYLE_CHECK_ENERGY, PROC_REF(gargoyle_checkenergy)) + + RegisterSignal(parent, COMSIG_LIVING_LIFE, PROC_REF(process_component)) + +/datum/component/gargoyle/UnregisterFromParent() + UnregisterSignal(parent, COMSIG_GARGOYLE_TRANSFORMATION) + UnregisterSignal(parent, COMSIG_GARGOYLE_PAUSE) + UnregisterSignal(parent, COMSIG_GARGOYLE_CHECK_ENERGY) + UnregisterSignal(parent, COMSIG_LIVING_LIFE) + UnregisterSignal(parent, COMSIG_MOVABLE_MOVED) //happens if gargoyle_pause is used /datum/component/gargoyle/proc/process_component() - if (QDELETED(gargoyle)) + if(QDELETED(gargoyle)) return - if (paused && gargoyle.loc != paused_loc) - unpause() - if (energy > 0) - if (!transformed && !paused) - energy = max(0,energy-0.05) - else if (!transformed && isturf(gargoyle.loc)) - gargoyle.gargoyle_transformation() - if (transformed) - if (!statue) + if(transformed) + if(!statue) transformed = FALSE + if(paused) //We somehow lost our energy while paused. + unpause() statue.damage(-0.5) energy = min(energy+0.3, 100) + //This is where we do all the 'make sure we don't die in statue form' stuff (unless you succumb or take MASSIVE damage.) + //Bloodloss will still kill us, but if we are patient enough, we'll survive most other stuff. + //If we had 150 brute (crit for most species) it'll take 3000 seconds (50 minutes) to heal back to full hp...So yes, while you can heal, it's not a good idea. + if(gargoyle.health < gargoyle.getMaxHealth()) + gargoyle.adjustBruteLoss(-0.1) + gargoyle.adjustFireLoss(-0.1) + gargoyle.adjustOxyLoss(-1) //So you don't suffocate to death. + gargoyle.adjustToxLoss(-0.1) + gargoyle.adjustCloneLoss(-0.02) //yeah this is uber slow, no cheese allowed by combining it with bad genetics. + return //Early return. If we're transformed, we can stop, we don't need to check anything else. + if(energy > 0) + if(!transformed && !paused) + energy = max(0,energy-0.05) + else if(!transformed && isturf(gargoyle.loc)) + gargoyle.gargoyle_transformation() + /datum/component/gargoyle/Destroy(force = FALSE) - UnregisterSignal(gargoyle, COMSIG_GARGOYLE_TRANSFORMATION) - UnregisterSignal(gargoyle, COMSIG_GARGOYLE_PAUSE) - UnregisterSignal(gargoyle, COMSIG_GARGOYLE_CHECK_ENERGY) - UnregisterSignal(gargoyle, COMSIG_LIVING_LIFE) gargoyle = null statue = null . = ..() /datum/component/gargoyle/proc/unpause() SIGNAL_HANDLER - if (!paused || transformed) - paused = FALSE - paused_loc = null - UnregisterSignal(gargoyle, COMSIG_ATOM_ENTERING) - return - if (gargoyle?.loc != paused_loc) - paused = FALSE - paused_loc = null - energy = max(energy - 5, 0) - if (energy == 0) - gargoyle.gargoyle_transformation() - UnregisterSignal(gargoyle, COMSIG_ATOM_ENTERING) + paused = FALSE + UnregisterSignal(gargoyle, COMSIG_MOVABLE_MOVED) + return //verbs or action buttons...? /mob/living/carbon/human/proc/gargoyle_transformation() @@ -76,17 +82,18 @@ /datum/component/gargoyle/proc/gargoyle_transformation() - if (gargoyle.stat == DEAD) + SIGNAL_HANDLER + if(gargoyle.stat == DEAD) return - if (energy <= 0 && isturf(gargoyle.loc)) + if(energy <= 0 && isturf(gargoyle.loc)) to_chat(gargoyle, span_danger("You suddenly turn into a [identifier] as you run out of energy!")) - else if (cooldown > world.time) + else if(cooldown > world.time) var/time_to_wait = (cooldown - world.time) / (1 SECONDS) to_chat(gargoyle, span_warning("You can't transform just yet again! Wait for another [round(time_to_wait,0.1)] seconds!")) return - if (istype(gargoyle.loc, /obj/structure/gargoyle)) + if(istype(gargoyle.loc, /obj/structure/gargoyle)) qdel(gargoyle.loc) - else if (isturf(gargoyle.loc)) + else if(isturf(gargoyle.loc)) new /obj/structure/gargoyle(gargoyle.loc, gargoyle) /mob/living/carbon/human/proc/gargoyle_pause() @@ -96,14 +103,14 @@ SEND_SIGNAL(src, COMSIG_GARGOYLE_PAUSE) /datum/component/gargoyle/proc/gargoyle_pause() - if (gargoyle.stat) + SIGNAL_HANDLER + if(gargoyle.stat) return - if (!transformed && !paused) + if(!transformed && !paused) paused = TRUE - paused_loc = gargoyle.loc - RegisterSignal(gargoyle, COMSIG_ATOM_ENTERING, /datum/component/gargoyle/proc/unpause) - to_chat(gargoyle, span_notice("You start conserving your energy.")) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, /datum/component/gargoyle/proc/unpause) + to_chat(parent, span_notice("You start conserving your energy.")) /mob/living/carbon/human/proc/gargoyle_checkenergy() set name = "Gargoyle - Check Energy" @@ -112,4 +119,5 @@ SEND_SIGNAL(src, COMSIG_GARGOYLE_CHECK_ENERGY) /datum/component/gargoyle/proc/gargoyle_checkenergy() - to_chat(gargoyle, span_notice("You have [round(energy,0.01)] energy remaining. It is currently [paused ? "stable" : (transformed ? "increasing" : "decreasing")].")) + SIGNAL_HANDLER + to_chat(parent, span_notice("You have [round(energy,0.01)] energy remaining. It is currently [paused ? "stable" : (transformed ? "increasing" : "decreasing")].")) diff --git a/code/game/objects/structures/gargoyle.dm b/code/game/objects/structures/gargoyle.dm index 02d076ae3e..2d8310fd54 100644 --- a/code/game/objects/structures/gargoyle.dm +++ b/code/game/objects/structures/gargoyle.dm @@ -3,7 +3,7 @@ desc = "A very lifelike carving." density = TRUE anchored = TRUE - var/mob/living/carbon/human/gargoyle + var/datum/weakref/WR_gargoyle var/initial_sleep var/initial_blind var/initial_is_shifted @@ -27,13 +27,13 @@ /obj/structure/gargoyle/Initialize(mapload, var/mob/living/carbon/human/H, var/ident_ovr, var/mat_ovr, var/adj_ovr, var/tint_ovr, var/revert = TRUE, var/discard_clothes) . = ..() - if (isspace(loc) || isopenspace(loc)) + if(isspace(loc) || isopenspace(loc)) anchored = FALSE - if (!istype(H) || !isturf(H.loc)) + if(!istype(H) || !isturf(H.loc)) return var/datum/component/gargoyle/comp = H.GetComponent(/datum/component/gargoyle) var/tint = "#FFFFFF" - if (comp) + if(comp) comp.cooldown = world.time + (15 SECONDS) comp.statue = src comp.transformed = TRUE @@ -42,25 +42,25 @@ material = length(comp.material) > 0 ? comp.material : initial(material) tint = length(comp.tint) > 0 ? comp.tint : initial(comp.tint) adjective = length(comp.adjective) > 0 ? comp.adjective : initial(adjective) - if (copytext_char(adjective, -1) != "s") + if(copytext_char(adjective, -1) != "s") adjective += "s" - gargoyle = H + WR_gargoyle = WEAKREF(H) - if (H.get_effective_size(TRUE) < 0.5) // "So small! I can step over it!" + if(H.get_effective_size(TRUE) < 0.5) // "So small! I can step over it!" density = FALSE - if (ident_ovr) + if(ident_ovr) identifier = ident_ovr - if (mat_ovr) + if(mat_ovr) material = mat_ovr - if (adj_ovr) + if(adj_ovr) adjective = adj_ovr - if (tint_ovr) + if(tint_ovr) tint = tint_ovr - if (H.tail_style?.clip_mask_state) + if(H.tail_style?.clip_mask_state) tail_lower_dirs.Cut() - else if (H.tail_style) + else if(H.tail_style) tail_lower_dirs = H.tail_style.lower_layer_dirs.Copy() tail_alt = H.tail_alt ? TAIL_UPPER_LAYER_HIGH : TAIL_UPPER_LAYER @@ -72,7 +72,7 @@ stored_examine = H.examine(H) description_fluff = H.get_description_fluff() - if (H.buckled) + if(H.buckled) H.buckled.unbuckle_mob(H, TRUE) //icon = H.icon //copy_overlays(H) @@ -89,20 +89,20 @@ var/list/body_layers = HUMAN_BODY_LAYERS var/list/other_layers = HUMAN_OTHER_LAYERS for (var/i = 1; i <= length(H.overlays_standing); i++) - if (i in other_layers) + if(i in other_layers) continue - if (discard_clothes && !(i in body_layers)) + if(discard_clothes && !(i in body_layers)) continue - if (istype(H.overlays_standing[i], /image) && (i in body_layers)) + if(istype(H.overlays_standing[i], /image) && (i in body_layers)) var/image/old_image = H.overlays_standing[i] var/image/new_image = image(old_image) - if (i == TAIL_LOWER_LAYER || i == TAIL_UPPER_LAYER || i == TAIL_UPPER_LAYER_HIGH) + if(i == TAIL_LOWER_LAYER || i == TAIL_UPPER_LAYER || i == TAIL_UPPER_LAYER_HIGH) tail_image = new_image new_image.color = tint_color new_image.layer = old_image.layer add_overlay(new_image) else - if (!isnull(H.overlays_standing[i])) + if(!isnull(H.overlays_standing[i])) add_overlay(H.overlays_standing[i]) initial_sleep = H.sleeping @@ -116,10 +116,9 @@ initial_lying = H.lying initial_lying_prev = H.lying_prev H.sdisabilities |= MUTE - if (H.appearance_flags & PIXEL_SCALE) + if(H.appearance_flags & PIXEL_SCALE) appearance_flags |= PIXEL_SCALE wagging = H.wagging - H.transforming = TRUE flapping = H.flapping H.toggle_tail(FALSE, FALSE) H.toggle_wing(FALSE, FALSE) @@ -127,7 +126,6 @@ H.forceMove(src) H.SetBlinded(0) H.SetSleeping(0) - H.status_flags |= GODMODE H.updatehealth() H.canmove = 0 @@ -137,51 +135,66 @@ /obj/structure/gargoyle/Destroy() STOP_PROCESSING(SSprocessing, src) - if (!gargoyle) + var/mob/living/carbon/human/gargoyle = WR_gargoyle.resolve() + if(!gargoyle) return ..() - if (can_revert) + if(can_revert) unpetrify(deleting = FALSE) //don't delete if we're already deleting! else visible_message(span_warning("The [identifier] loses shape and crumbles into a pile of [material]!")) + WR_gargoyle = null . = ..() /obj/structure/gargoyle/process() - if (!gargoyle) + var/mob/living/carbon/human/gargoyle = WR_gargoyle.resolve() + if(!gargoyle) qdel(src) - if (gargoyle.loc != src) + return + if(gargoyle.stat == DEAD) //died while in statue state. + unpetrify(deal_damage = TRUE, deleting = TRUE) + return + if(gargoyle.loc != src) can_revert = TRUE //something's gone wrong, they escaped, lets not qdel them unpetrify(deal_damage = FALSE, deleting = TRUE) +/obj/structure/gargoyle/fire_act(datum/gas_mixture/air, temperature, volume) + if(temperature > T0C + 1600) //Bingle says the burning point of rock is between 600 to 1600C...Let's use the highest range. + damage(temperature/(T0C + 1600)) //1 damage per 1600C + return + /obj/structure/gargoyle/examine_icon() var/icon/examine_icon = icon(icon=src.icon, icon_state=src.icon_state, dir=SOUTH, frame=1, moving=0) examine_icon.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) return examine_icon /obj/structure/gargoyle/get_description_info() - if (gargoyle) - if (isspace(loc) || isopenspace(loc)) + var/mob/living/carbon/human/gargoyle = WR_gargoyle.resolve() + if(gargoyle) + if(isspace(loc) || isopenspace(loc)) return return "It can be [anchored ? "un" : ""]anchored with a wrench." /obj/structure/gargoyle/examine(mob/user) . = ..() - if (gargoyle && stored_examine) + var/mob/living/carbon/human/gargoyle = WR_gargoyle.resolve() + if(gargoyle && stored_examine) . += "The [identifier] seems to have a bit more to them..." . += stored_examine return /obj/structure/gargoyle/proc/unpetrify(var/deal_damage = TRUE, var/deleting = FALSE) - if (!gargoyle) + var/mob/living/carbon/human/gargoyle = WR_gargoyle.resolve() + if(!gargoyle) return var/datum/component/gargoyle/comp = gargoyle.GetComponent(/datum/component/gargoyle) - if (comp) + if(comp) comp.cooldown = world.time + (15 SECONDS) comp.statue = null comp.transformed = FALSE else - if (was_rayed) + if(was_rayed) remove_verb(gargoyle,/mob/living/carbon/human/proc/gargoyle_transformation) - if (gargoyle.loc == src) + if(gargoyle.loc == src) gargoyle.forceMove(loc) gargoyle.transform = transform gargoyle.pixel_x = pixel_x @@ -193,15 +206,13 @@ gargoyle.toggle_tail(wagging, FALSE) gargoyle.toggle_wing(flapping, FALSE) gargoyle.sdisabilities &= ~MUTE //why is there no ADD_TRAIT etc here that's actually ussssed - gargoyle.status_flags &= ~GODMODE gargoyle.SetBlinded(initial_blind) gargoyle.SetSleeping(initial_sleep) - gargoyle.transforming = FALSE gargoyle.canmove = 1 gargoyle.update_canmove() var/hurtmessage = "" - if (deal_damage) - if (obj_integrity < original_int) + if(deal_damage) + if(obj_integrity < original_int) var/f = (original_int - obj_integrity) / 10 for (var/x in 1 to 10) gargoyle.adjustBruteLoss(f) @@ -210,7 +221,7 @@ alpha = 0 gargoyle.visible_message(span_warning("[gargoyle]'s skin rapidly reverts, returning them to normal!"), span_warning("Your skin reverts, freeing your movement once more![hurtmessage]")) gargoyle = null - if (deleting) + if(deleting) qdel(src) /obj/structure/gargoyle/return_air() @@ -224,7 +235,7 @@ return air /obj/structure/gargoyle/proc/damage(var/damage) - if (was_rayed) + if(was_rayed) return //gargoyle quick regenerates, the others don't, so let's not have them getting too damaged obj_integrity = min(obj_integrity-damage, max_integrity) if(obj_integrity <= 0) @@ -239,13 +250,14 @@ damage(damage) /obj/structure/gargoyle/attackby(var/obj/item/W as obj, var/mob/living/user as mob) + var/mob/living/carbon/human/gargoyle = WR_gargoyle.resolve() if(W.is_wrench()) - if (isspace(loc) || isopenspace(loc)) + if(isspace(loc) || isopenspace(loc)) to_chat(user, span_warning("You can't anchor that here!")) anchored = FALSE return ..() playsound(src, W.usesound, 50, 1) - if (do_after(user, (2 SECONDS) * W.toolspeed, target = src)) + if(do_after(user, (2 SECONDS) * W.toolspeed, target = src)) to_chat(user, span_notice("You [anchored ? "un" : ""]anchor the [src].")) anchored = !anchored else if(!isrobot(user) && gargoyle && gargoyle.vore_selected && gargoyle.trash_catching) @@ -257,7 +269,7 @@ user.drop_item() W.forceMove(gargoyle.vore_selected) return - else if (!(W.flags & NOBLUDGEON)) + else if(!(W.flags & NOBLUDGEON)) user.setClickCooldown(user.get_attack_speed(W)) if(W.damtype == BRUTE || W.damtype == BURN) user.do_attack_animation(src) @@ -274,12 +286,15 @@ add_overlay(tail_image) /obj/structure/gargoyle/hitby(atom/movable/AM as mob|obj,var/speed = THROWFORCE_SPEED_DIVISOR) - if(istype(AM,/obj/item) && gargoyle && gargoyle.vore_selected && gargoyle.trash_catching) + var/mob/living/carbon/human/gargoyle = WR_gargoyle.resolve() + if(!gargoyle) + return + if(istype(AM,/obj/item) && gargoyle.vore_selected && gargoyle.trash_catching) var/obj/item/I = AM if(gargoyle.adminbus_trash || is_type_in_list(I, GLOB.edible_trash) && I.trash_eatable && !is_type_in_list(I, GLOB.item_vore_blacklist)) gargoyle.hitby(AM, speed) return - else if(isliving(AM) && gargoyle) + else if(isliving(AM)) var/mob/living/L = AM if(gargoyle.throw_vore && L.throw_vore && gargoyle.can_be_drop_pred && L.can_be_drop_prey) var/drop_prey_temp = FALSE diff --git a/code/modules/mob/living/carbon/breathe.dm b/code/modules/mob/living/carbon/breathe.dm index 5e2c99e975..7651e48cf1 100644 --- a/code/modules/mob/living/carbon/breathe.dm +++ b/code/modules/mob/living/carbon/breathe.dm @@ -17,18 +17,16 @@ if(losebreath>0) //Suffocating so do not take a breath AdjustLosebreath(-1) - if (prob(10) && !isbelly(loc)) //Gasp per 10 ticks? Sounds about right. //VOREStation Add + if (prob(10) && !isbelly(loc)) //Gasp per 10 ticks? Sounds about right. spawn emote("gasp") else //Okay, we can breathe, now check if we can get air breath = get_breath_from_internal() //First, check for air from internals - //VOREStation Add - Respirocytes as a NIF implant if(!breath && ishuman(src)) var/mob/living/carbon/human/H = src if(H.nif && H.nif.flag_check(NIF_H_SPAREBREATH,NIF_FLAGS_HEALTH)) var/datum/nifsoft/spare_breath/SB = H.nif.imp_check(NIF_SPAREBREATH) breath = SB.resp_breath() - //VOREStation Add End if(!breath) breath = get_breath_from_environment() //No breath from internals so let's try to get air from our location if(!breath) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 8943f860a5..d37a15e79d 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -86,11 +86,9 @@ var/name_ender = "" if(!((skip_gear & EXAMINE_SKIPJUMPSUIT) && (skip_body & EXAMINE_SKIPFACE))) - //VOREStation Add Start if(custom_species) name_ender = ", a " + span_bold("[src.custom_species]") else if(looks_synth) - //VOREStation Add End var/use_gender = "a synthetic" if(gender == MALE) use_gender = "an android" @@ -275,7 +273,6 @@ if(suiciding) msg += span_warning("[T.He] appears to have commited suicide... there is no hope of recovery.") - //VOREStation Add var/list/vorestrings = list() vorestrings += examine_weight() vorestrings += examine_nutrition() @@ -289,7 +286,6 @@ if(entry == "" || entry == null) vorestrings -= entry msg += vorestrings - //VOREStation Add End if(mSmallsize in mutations) msg += "[T.He] [T.is] very short!" @@ -318,14 +314,12 @@ msg += span_deadsay("[T.He] [T.is] [ssd_msg]. It doesn't look like [T.he] [T.is] waking up anytime soon.") else if(!client) msg += span_deadsay("[T.He] [T.is] [ssd_msg].") - //VOREStation Add Start if(client && away_from_keyboard && manual_afk) msg += "\[Away From Keyboard for [round((client.inactivity/10)/60)] minutes\]" else if(client && ((client.inactivity / 10) / 60 > 10)) //10 Minutes msg += "\[Inactive for [round((client.inactivity/10)/60)] minutes\]" else if(disconnect_time) msg += "\[Disconnected/ghosted [round(((world.realtime - disconnect_time)/10)/60)] minutes ago\]" - //VOREStation Add End var/list/wound_flavor_text = list() var/list/is_bleeding = list() @@ -366,7 +360,7 @@ wound_flavor_text["[temp.name]"] = span_warning("[T.He] [T.has] [temp.get_wounds_desc()] on [T.his] [temp.name].") else wound_flavor_text["[temp.name]"] = "" - if(temp.dislocated == 1) //VOREStation Edit Bugfix + if(temp.dislocated == 1) wound_flavor_text["[temp.name]"] += span_warning("[T.His] [temp.joint] is dislocated!") if(temp.brute_dam > temp.min_broken_damage || (temp.status & (ORGAN_BROKEN | ORGAN_MUTATED))) wound_flavor_text["[temp.name]"] += span_warning("[T.His] [temp.name] is dented and swollen!") @@ -442,14 +436,12 @@ flavor_text = replacetext(flavor_text, "||", "") msg += "[flavor_text]" - // VOREStation Start if(custom_link) msg += "Custom link: " + span_linkify("[custom_link]") if(ooc_notes) msg += "OOC Notes: \[View\] - \[Print\]" msg += "\[Mechanical Vore Preferences\]" - // VOREStation End msg = list(span_info(jointext(msg, "
"))) if(applying_pressure) msg += applying_pressure @@ -465,7 +457,7 @@ /proc/hasHUD(mob/M as mob, hudtype) if(ishuman(M)) var/mob/living/carbon/human/H = M - if(hasHUD_vr(H,hudtype)) return 1 //VOREStation Add - Added records access for certain modes of omni-hud glasses + if(hasHUD_vr(H,hudtype)) return 1 //Added records access for certain modes of omni-hud glasses switch(hudtype) if("security") return istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud) @@ -473,4 +465,4 @@ return istype(H.glasses, /obj/item/clothing/glasses/hud/health) else if(isrobot(M)) var/mob/living/silicon/robot/R = M - return R.sensor_type //VOREStation Add - Borgo sensors are now binary so just have them on or off + return R.sensor_type //Borgo sensors are now binary so just have them on or off diff --git a/modular_chomp/code/game/objects/items/devices/mind_binder.dm b/modular_chomp/code/game/objects/items/devices/mind_binder.dm index d8bb4d3393..9a1eeff536 100644 --- a/modular_chomp/code/game/objects/items/devices/mind_binder.dm +++ b/modular_chomp/code/game/objects/items/devices/mind_binder.dm @@ -34,7 +34,7 @@ /obj/item/mindbinder/pre_attack(atom/A) if(istype(A, /obj/structure/gargoyle)) var/obj/structure/gargoyle/G = A - A = G.gargoyle + A = G.WR_gargoyle?.resolve() if(istype(A, /obj/item/holder)) var/obj/item/holder/H = A A = H.held_mob