From 7a34aa86431d8c2e39480e35cea99ceb08d47eaf Mon Sep 17 00:00:00 2001 From: CHOMPStation2StaffMirrorBot <94713762+CHOMPStation2StaffMirrorBot@users.noreply.github.com> Date: Thu, 10 Jul 2025 04:58:26 -0700 Subject: [PATCH] [MIRROR] Minor fixes (#11160) Co-authored-by: Cameron Lennox --- .../species/shadekin/powers/phase_shift.dm | 1 - .../shadekin/powers/regenerate_other.dm | 2 +- code/game/area/areas.dm | 8 ++---- code/game/objects/structures/girders.dm | 5 +++- .../equipment_vendor.dm | 3 +++ .../species/shadekin/shadekin_abilities.dm | 5 ---- .../silicon/robot/robot_simple_items.dm | 27 +++++++++++++++++-- vorestation.dme | 1 - 8 files changed, 35 insertions(+), 17 deletions(-) delete mode 100644 code/modules/mob/living/carbon/human/species/shadekin/shadekin_abilities.dm diff --git a/code/datums/components/species/shadekin/powers/phase_shift.dm b/code/datums/components/species/shadekin/powers/phase_shift.dm index 73597d2dc6..a314c72d36 100644 --- a/code/datums/components/species/shadekin/powers/phase_shift.dm +++ b/code/datums/components/species/shadekin/powers/phase_shift.dm @@ -101,7 +101,6 @@ else phase_out(T, SK) - /mob/living/proc/phase_in(var/turf/T, var/datum/component/shadekin/SK) if(SK.in_phase) diff --git a/code/datums/components/species/shadekin/powers/regenerate_other.dm b/code/datums/components/species/shadekin/powers/regenerate_other.dm index 2d910a0d0f..96e895e20c 100644 --- a/code/datums/components/species/shadekin/powers/regenerate_other.dm +++ b/code/datums/components/species/shadekin/powers/regenerate_other.dm @@ -17,7 +17,7 @@ var/datum/component/shadekin/SK = get_shadekin_component() if(!SK) return FALSE - if(SK.special_considerations()) + if(SK.special_considerations(TRUE)) return FALSE if(stat) to_chat(src, span_warning("Can't use that ability in your state!")) diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 74bbcf278c..ef48b132db 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -141,21 +141,17 @@ GLOBAL_LIST_EMPTY(areas_by_type) if(fire || party || atmosalm) firedoors_close() arfgs_activate() - // VOREStation Edit - Make the lights colored! if(fire) for(var/obj/machinery/light/L in src) L.set_alert_fire() else if(atmosalm) for(var/obj/machinery/light/L in src) L.set_alert_atmos() - // VOREStation Edit End else firedoors_open() arfgs_deactivate() - // VOREStation Edit - Put the lights back! for(var/obj/machinery/light/L in src) L.reset_alert() - // VOREStation Edit End // Close all firedoors in the area /area/proc/firedoors_close() @@ -396,7 +392,7 @@ var/list/mob/living/forced_ambiance_list = list() play_ambience(L, initial = TRUE) if(flag_check(AREA_NO_SPOILERS)) L.disable_spoiler_vision() - check_phase_shift(M) //RS Port #658 + check_phase_shift(M) // Update the area's color grading if(L.client && L.client.color != get_color_tint()) // Try to check if we should bother changing before doing blending @@ -452,7 +448,7 @@ var/list/mob/living/forced_ambiance_list = list() return // Being buckled to something solid keeps you in place. if(istype(H.shoes, /obj/item/clothing/shoes/magboots) && (H.shoes.item_flags & NOSLIP)) return - if(H.is_incorporeal()) // VOREstation edit - Phaseshifted beings should not be affected by gravity + if(H.is_incorporeal()) // Phaseshifted beings should not be affected by gravity return if(H.species.can_zero_g_move || H.species.can_space_freemove) return diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index 84c47d5e12..eb6aa12be5 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -231,6 +231,9 @@ /obj/structure/girder/proc/construct_wall(obj/item/stack/material/S, mob/user) var/amount_to_use = reinf_material ? 1 : 2 + var/time_to_reinforce = 4 SECONDS + if(isrobot(user)) //Robots get a speed boost. + time_to_reinforce = 1.5 SECONDS if(S.get_amount() < amount_to_use) to_chat(user, span_notice("There isn't enough material here to construct a wall.")) return FALSE @@ -248,7 +251,7 @@ to_chat(user, span_notice("You begin adding the plating...")) - if(!do_after(user,40) || !S.use(amount_to_use)) + if(!do_after(user,time_to_reinforce) || !S.use(amount_to_use)) return TRUE //once we've gotten this far don't call parent attackby() if(anchored) diff --git a/code/modules/mining/ore_redemption_machine/equipment_vendor.dm b/code/modules/mining/ore_redemption_machine/equipment_vendor.dm index b17e0fb8ff..aa68cbc690 100644 --- a/code/modules/mining/ore_redemption_machine/equipment_vendor.dm +++ b/code/modules/mining/ore_redemption_machine/equipment_vendor.dm @@ -317,6 +317,9 @@ if(!selection) to_chat(redeemer, span_notice("You decide not to redeem anything for now.")) return + if(QDELETED(voucher)) + to_chat(redeemer, span_warning("The voucher has already been redeemed.")) + return switch(selection) if("Kinetic Accelerator + KA Addon") //1250-2100 points worth diff --git a/code/modules/mob/living/carbon/human/species/shadekin/shadekin_abilities.dm b/code/modules/mob/living/carbon/human/species/shadekin/shadekin_abilities.dm deleted file mode 100644 index 0aaff0e9dd..0000000000 --- a/code/modules/mob/living/carbon/human/species/shadekin/shadekin_abilities.dm +++ /dev/null @@ -1,5 +0,0 @@ -/mob/living/carbon/human/is_incorporeal() - var/datum/component/shadekin/SK = get_shadekin_component() - if(SK && SK.in_phase) //Shadekin - return TRUE - return ..() diff --git a/code/modules/mob/living/silicon/robot/robot_simple_items.dm b/code/modules/mob/living/silicon/robot/robot_simple_items.dm index 9ca16ceb48..e9282ed249 100644 --- a/code/modules/mob/living/silicon/robot/robot_simple_items.dm +++ b/code/modules/mob/living/silicon/robot/robot_simple_items.dm @@ -531,14 +531,22 @@ . += wrapped.examine(user) /obj/item/gripper/CtrlClick(mob/user) - if(wrapped) + if(wrapped && !is_in_use()) wrapped.attack_self(user) return /obj/item/gripper/AltClick(mob/user) - drop_item() + if(!is_in_use()) + drop_item() return +//This is used to check if the gripper is currently being used. +//If it is, we don't allow any other actions to be performed. +/obj/item/gripper/proc/is_in_use() + if(wrapped) + if(istype(wrapped.loc, /obj/item/storage/internal/gripper)) + return FALSE //We are in a gripper storage or another gripper, so we are not in use. + return TRUE //This is the code that updates our pockets and decides if they should have icons or not. //This should be called every time we use the gripper and our wrapped item is used up. @@ -565,6 +573,9 @@ photo_images["[pocket_to_check.name]" + "[pocket_content.name]"] = pocket_image /obj/item/gripper/attack_self(mob/user as mob) + if(is_in_use()) + to_chat(user, span_danger("You are currently using the gripper on something!")) + return generate_icons() var/list/options = list() @@ -588,6 +599,9 @@ return ..() /obj/item/gripper/attackby(var/obj/item/O, var/mob/user) + if(is_in_use()) + to_chat(user, span_danger("You are currently using the gripper on something!")) + return FALSE if(wrapped) wrapped.loc = src.loc //Place it in to the robot. var/resolved = wrapped.attackby(O, user) @@ -621,6 +635,9 @@ if(!wrapped) to_chat(src, span_warning("You have nothing to drop!")) return + if(is_in_use()) + to_chat(src, span_danger("You are currently using the gripper on something!")) + return if((wrapped == current_pocket && !istype(wrapped.loc, /obj/item/storage/internal/gripper))) //We have wrapped selected as our current_pocket AND wrapped is not in a gripper storage wrapped = null current_pocket = pick(pockets) @@ -643,6 +660,9 @@ wrapped = null /obj/item/gripper/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) + if(is_in_use()) + to_chat(user, span_danger("You are currently using the gripper on something!")) + return FALSE if(wrapped) //The force of the wrapped obj gets set to zero during the attack() and afterattack(). if(QDELETED(wrapped) || (wrapped.loc != src.loc && !istype(wrapped.loc,/obj/item/storage/internal/gripper))) //If our wrapper was deleted OR it's no longer in our internal gripper storage wrapped = null //we become null @@ -659,6 +679,9 @@ /obj/item/gripper/afterattack(var/atom/target, var/mob/living/user, proximity, params) if(!proximity) return // This will prevent them using guns at range but adminbuse can add them directly to modules, so eh. + if(is_in_use()) + to_chat(user, span_danger("You are currently using the gripper on something!")) + return var/current_pocket_full = FALSE //There's some weirdness with items being lost inside the arm. Trying to fix all cases. ~Z if(wrapped == current_pocket) diff --git a/vorestation.dme b/vorestation.dme index 60fb590346..722eedff05 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -3367,7 +3367,6 @@ #include "code\modules\mob\living\carbon\human\species\outsider\skeleton.dm" #include "code\modules\mob\living\carbon\human\species\outsider\vox.dm" #include "code\modules\mob\living\carbon\human\species\shadekin\shadekin.dm" -#include "code\modules\mob\living\carbon\human\species\shadekin\shadekin_abilities.dm" #include "code\modules\mob\living\carbon\human\species\shadekin\shadekin_hud.dm" #include "code\modules\mob\living\carbon\human\species\station\alraune.dm" #include "code\modules\mob\living\carbon\human\species\station\custom.dm"