diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index b86c58ffcfb..08f999f8e68 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -948,4 +948,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. return "on [user.get_pronoun("his")] [ear_text] ear" /obj/item/proc/get_mask_examine_text(var/mob/user) - return "on [user.get_pronoun("his")] face" \ No newline at end of file + return "on [user.get_pronoun("his")] face" + +/obj/item/proc/should_equip() // when you press E with an empty hand, will this item be pulled from suit storage / back slot and put into your hand + return FALSE diff --git a/code/game/objects/items/weapons/material/material_weapons.dm b/code/game/objects/items/weapons/material/material_weapons.dm index 2262c5b787d..5f285eb7473 100644 --- a/code/game/objects/items/weapons/material/material_weapons.dm +++ b/code/game/objects/items/weapons/material/material_weapons.dm @@ -36,6 +36,9 @@ if(!isnull(matter[material_type])) matter[material_type] *= force_divisor // May require a new var instead. +/obj/item/material/should_equip() + return TRUE + /obj/item/material/get_material() return material diff --git a/code/game/objects/items/weapons/melee/misc.dm b/code/game/objects/items/weapons/melee/misc.dm index b6ec13ff74b..e453edda5d8 100644 --- a/code/game/objects/items/weapons/melee/misc.dm +++ b/code/game/objects/items/weapons/melee/misc.dm @@ -5,6 +5,9 @@ slot_r_hand_str = 'icons/mob/items/weapons/righthand_melee.dmi' ) +/obj/item/melee/should_equip() + return TRUE + /obj/item/melee/chainofcommand name = "chain of command" desc = "A tool used by great men to placate the frothing masses." diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 6bffda47def..15fad8f1b8e 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -11,7 +11,16 @@ This saves us from having to call add_fingerprint() any time something is put in var/mob/living/carbon/human/H = src var/obj/item/I = H.get_active_hand() if(!I) - to_chat(H, "You are not holding anything to equip.") + if(istype(s_store) && s_store.should_equip()) + var/obj/item/S = s_store + H.remove_from_mob(S) + H.put_in_active_hand(S) + return + if(istype(back) && back.should_equip()) + var/obj/item/B = back + H.remove_from_mob(B) + H.put_in_active_hand(B) + return return if(H.equip_to_appropriate_slot(I)) if(hand) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 4eb9f5ef417..d6fdcfdb6f3 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -154,6 +154,9 @@ queue_icon_update() +/obj/item/gun/should_equip() + return TRUE + /obj/item/gun/update_icon() ..() underlays.Cut() @@ -959,4 +962,4 @@ if(no_clear) . = "" . += "Burst: [burst]
" - . += "Reliability: [reliability]
" \ No newline at end of file + . += "Reliability: [reliability]
" diff --git a/html/changelogs/geeves-equipomatic.yml b/html/changelogs/geeves-equipomatic.yml new file mode 100644 index 00000000000..cb29d55d18d --- /dev/null +++ b/html/changelogs/geeves-equipomatic.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Hitting equip with an empty hand will now pull an eligible weapon out of your suit slot, if it doesn't find one, then it will pull from the back slot." \ No newline at end of file