Files
Cody Brittain 3f62424312 [MDB Ignore] [IDB Ignore] Kills off /obj/item/device (#21774)
This has zero reason to exist in our code base. We have no procs or
variables tied to this. I removed it to make future modifications
cleaner.

---------

Signed-off-by: Cody Brittain <1779662+Generalcamo@users.noreply.github.com>
2026-02-01 05:14:26 +00:00

80 lines
2.3 KiB
Plaintext

#define HARDSUIT_MODE_MIDDLE_CLICK 0
#define HARDSUIT_MODE_ALT_CLICK 1
#define HARDSUIT_MODE_CTRL_CLICK 2
#define MAX_HARDSUIT_CLICK_MODE 2
/client
var/hardsuit_click_mode = HARDSUIT_MODE_MIDDLE_CLICK
/client/verb/toggle_hardsuit_mode()
set name = "Toggle Hardsuit Activation Mode"
set desc = "Switch between hardsuit activation modes."
set category = "OOC"
hardsuit_click_mode++
if(hardsuit_click_mode > MAX_HARDSUIT_CLICK_MODE)
hardsuit_click_mode = 0
switch(hardsuit_click_mode)
if(HARDSUIT_MODE_MIDDLE_CLICK)
to_chat(src, "Hardsuit activation mode set to middle-click.")
if(HARDSUIT_MODE_ALT_CLICK)
to_chat(src, "Hardsuit activation mode set to alt-click.")
if(HARDSUIT_MODE_CTRL_CLICK)
to_chat(src, "Hardsuit activation mode set to control-click.")
/// Should never get here, but just in case:
else
soft_assert(0, "Bad hardsuit click mode: [hardsuit_click_mode] - expected 0 to [MAX_HARDSUIT_CLICK_MODE]")
to_chat(src, "Somehow you bugged the system. Setting your hardsuit mode to middle-click.")
hardsuit_click_mode = HARDSUIT_MODE_MIDDLE_CLICK
/mob/living/MiddleClickOn(atom/A)
if(client && client.hardsuit_click_mode == HARDSUIT_MODE_MIDDLE_CLICK)
if(HardsuitClickOn(A))
return
..()
/mob/living/AltClickOn(atom/A)
if(client && client.hardsuit_click_mode == HARDSUIT_MODE_ALT_CLICK)
if(HardsuitClickOn(A))
return
..()
/mob/living/proc/can_use_rig()
return 0
/mob/living/carbon/human/can_use_rig()
return 1
/mob/living/carbon/brain/can_use_rig()
return istype(loc, /obj/item/mmi)
/mob/living/silicon/ai/can_use_rig()
return carded
/mob/living/silicon/pai/can_use_rig()
return loc == card
/mob/living/proc/HardsuitClickOn(var/atom/A, var/alert_ai = 0)
if(!can_use_rig())
return FALSE
// Return TRUE to stop the initial click from going through if we're just on cooldown
if(!canClick())
return TRUE
var/obj/item/rig/rig = get_rig()
if(istype(rig) && !rig.offline && rig.selected_module)
if(src != rig.wearer && !rig.ai_can_move_suit(src, TRUE))
return FALSE
rig.selected_module.do_engage(A, src, alert_ai)
// No instant mob attacking - though modules have their own cooldowns
if(ismob(A))
setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
return TRUE
return FALSE
#undef HARDSUIT_MODE_MIDDLE_CLICK
#undef HARDSUIT_MODE_ALT_CLICK
#undef HARDSUIT_MODE_CTRL_CLICK
#undef MAX_HARDSUIT_CLICK_MODE