diff --git a/code/datums/action.dm b/code/datums/action.dm index 8c97a38fe6..54c719a6d5 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -604,8 +604,8 @@ if (apc) apc.set_hijacked_lighting() apc.update_icon() - H.stealthcooldown = world.time + 30 SECONDS - H.toggle_eyes(H.toggled && !H.stealthmode) + H.stealthcooldown = world.time + 15 SECONDS + H.toggle_eyes() to_chat(owner,"You toggle the hijack implant's stealthmode [H.stealthmode ? "on" : "off"].") /datum/action/item_action/flash diff --git a/code/game/objects/items/implants/implant_hijack.dm b/code/game/objects/items/implants/implant_hijack.dm index 952f5f82e2..f40d5a4f9b 100644 --- a/code/game/objects/items/implants/implant_hijack.dm +++ b/code/game/objects/items/implants/implant_hijack.dm @@ -1,4 +1,4 @@ -#define HIJACK_APC_MAX_AMOUNT 4 +#define HIJACK_APC_MAX_AMOUNT 5 /obj/item/implant/hijack name = "hijack implant" @@ -17,11 +17,12 @@ imp_in.click_intercept = toggled ? src : null imp_in.siliconaccesstoggle = toggled ? TRUE : FALSE to_chat(imp_in,"You turn [toggled ? "on" : "off"] [src]'s silicon interactions.") - toggle_eyes(toggled && !stealthmode) + toggle_eyes() -/obj/item/implant/hijack/proc/toggle_eyes(on) +/obj/item/implant/hijack/proc/toggle_eyes() if (!ishuman(imp_in)) return + var/on = toggled && !stealthmode var/mob/living/carbon/human/H = imp_in H.eye_color = on ? "ff0" : eye_color H.dna.update_ui_block(DNA_EYE_COLOR_BLOCK) @@ -51,7 +52,7 @@ return TRUE /obj/item/implant/hijack/proc/InterceptClickOn(mob/living/user,params,atom/object) - if (user.get_active_held_item() || isitem(object) || !toggled || user.incapacitated()) + if (isitem(object) || !toggled || user.incapacitated()) return if (stealthmode == FALSE && istype(object,/obj/machinery/power/apc) && !user.CanReach(object)) if (hijack_remotely(object)) @@ -74,6 +75,8 @@ if (modifiers["alt"]) object.AIAltClick(imp_in) return TRUE + if (user.get_active_held_item()) + return object.attack_ai(imp_in) return TRUE @@ -97,7 +100,7 @@ imp_in.toggleSiliconAccessArea(apc.area) apc.update_icon() stealthcooldown = world.time + 3 MINUTES - toggle_eyes(TRUE) + toggle_eyes() else to_chat(imp_in, "Aborting.") imp_in.light_power = 0 diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index d7536aaa25..8ba866ab85 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -99,8 +99,10 @@ . += "[t_He] [t_has] [glasses.get_examine_string(user)] covering [t_his] eyes." else if(eye_color == BLOODCULT_EYE && iscultist(src) && HAS_TRAIT(src, TRAIT_CULT_EYES)) . += "[t_His] eyes are glowing an unnatural red!" - else if(eye_color == "ff0" && HAS_TRAIT(src, TRAIT_HIJACKER)) - . += "[t_His] eyes are flickering a bright yellow!" + else if(HAS_TRAIT(src, TRAIT_HIJACKER)) + var/obj/item/implant/hijack/H = user.getImplant(/obj/item/implant/hijack) + if (H && !H.stealthmode) + . += "[t_His] eyes are flickering a bright yellow!" //ears if(ears && !(SLOT_EARS in obscured)) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 26f4b4d164..81362a92ab 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -410,7 +410,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp return TRUE /atom/proc/hasSiliconAccessInArea(mob/user) - return user && (issilicon(user) || (user.siliconaccesstoggle && (get_base_area(src) in user.siliconaccessareas))) + return user && (issilicon(user) || (user.siliconaccesstoggle && (get_area(src) in user.siliconaccessareas))) /mob/proc/toggleSiliconAccessArea(area/area) if (area in siliconaccessareas) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index f686fa2b92..d07cc605d3 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -863,7 +863,7 @@ /obj/machinery/power/apc/ui_data(mob/user) var/obj/item/implant/hijack/H = user.getImplant(/obj/item/implant/hijack) var/abilitiesavail = FALSE - if (H && H.stealthmode) + if (H && !H.stealthmode) abilitiesavail = TRUE var/list/data = list( "locked" = locked && !(integration_cog && is_servant_of_ratvar(user)) && !area.hasSiliconAccessInArea(user),