diff --git a/code/modules/client/preference_setup/loadout/loadout_utility.dm b/code/modules/client/preference_setup/loadout/loadout_utility.dm index 4a945f442c2..c773b81468b 100644 --- a/code/modules/client/preference_setup/loadout/loadout_utility.dm +++ b/code/modules/client/preference_setup/loadout/loadout_utility.dm @@ -141,6 +141,11 @@ ) gear_tweaks += new/datum/gear_tweak/path(wheelchairs) +/datum/gear/utility/bs_bracelet + display_name = "bluespace bracelet" + path = /obj/item/clothing/gloves/bluespace + cost = 5 + /**************** modular computers ****************/ diff --git a/code/modules/clothing/under/miscellaneous_vr.dm b/code/modules/clothing/under/miscellaneous_vr.dm index cc386822868..8787cac22b5 100644 --- a/code/modules/clothing/under/miscellaneous_vr.dm +++ b/code/modules/clothing/under/miscellaneous_vr.dm @@ -115,6 +115,44 @@ original_size = null H.visible_message("The space around [H] distorts as they return to their original size!","The space around you distorts as you return to your original size!") +/obj/item/clothing/gloves/bluespace + name = "size standardization bracelet" + desc = "A somewhat bulky metal bracelet featuring a crystal, glowing blue. The outer side of the bracelet has an elongated case that one might imagine contains electronic components. This bracelet is used to standardize the size of crewmembers who may need a non-permanent size assist." + icon = 'icons/inventory/accessory/item_vr.dmi' + icon_state = "bs_bracelet" + w_class = ITEMSIZE_TINY + var/original_size + var/last_activated + +/obj/item/clothing/gloves/bluespace/mob_can_equip(mob/M, gloves, disable_warning = 0) + . = ..() + if(. && ishuman(M)) + var/mob/living/carbon/human/H = M + if(!H.resizable) + return + if(H.size_multiplier != 1) + if(!(world.time - last_activated > 10 SECONDS)) + to_chat(M, "\The [src] flickers. It seems to be recharging.") + return + last_activated = world.time + original_size = H.size_multiplier + H.resize(1, ignore_prefs = FALSE) //In case someone else tries to put it on you. + H.visible_message("The space around [H] distorts as they change size!","The space around you distorts as you change size!") + log_admin("Admin [key_name(M)]'s size was altered by a bluespace bracelet.") + +/obj/item/clothing/gloves/bluespace/mob_can_unequip(mob/M, gloves, disable_warning = 0) + . = ..() + if(. && ishuman(M) && original_size) + var/mob/living/carbon/human/H = M + if(!H.resizable) + return + last_activated = world.time + H.resize(original_size, ignore_prefs = FALSE) + original_size = null + H.visible_message("The space around [H] distorts as they return to their original size!","The space around you distorts as you return to your original size!") + log_admin("Admin [key_name(M)]'s size was altered by a bluespace bracelet.") + to_chat(M, "\The [src] flickers. It is now recharging and will be ready again in thirty seconds.") + //Same as Nanotrasen Security Uniforms /obj/item/clothing/under/ert armor = list(melee = 5, bullet = 10, laser = 10, energy = 5, bomb = 5, bio = 0, rad = 0) diff --git a/code/modules/economy/vending_machines_vr.dm b/code/modules/economy/vending_machines_vr.dm index d0874234970..d5420d20000 100644 --- a/code/modules/economy/vending_machines_vr.dm +++ b/code/modules/economy/vending_machines_vr.dm @@ -1043,7 +1043,8 @@ /obj/item/device/walkpod = 5, /obj/item/device/juke_remote = 1, /obj/item/instrument/piano_synth/headphones = 2, // You're making a subsystem do work, I don't want it TOO busy - /obj/item/instrument/piano_synth/headphones/spacepods = 2) + /obj/item/instrument/piano_synth/headphones/spacepods = 2, + /obj/item/clothing/gloves/bluespace = 5) prices = list(/obj/item/clothing/suit/circuitry = 100, /obj/item/clothing/head/circuitry = 100, /obj/item/clothing/shoes/circuitry = 100, @@ -1067,7 +1068,8 @@ /obj/item/device/walkpod = 300, /obj/item/device/juke_remote = 1000, /obj/item/instrument/piano_synth/headphones = 200, - /obj/item/instrument/piano_synth/headphones/spacepods = 600) + /obj/item/instrument/piano_synth/headphones/spacepods = 600, + /obj/item/clothing/gloves/bluespace = 500) premium = list(/obj/item/device/perfect_tele/one_beacon = 1) contraband = list(/obj/item/weapon/disk/nifsoft/compliance = 1) diff --git a/code/modules/vore/resizing/sizegun_vr.dm b/code/modules/vore/resizing/sizegun_vr.dm index efd27d30dda..9d2b73d7cbc 100644 --- a/code/modules/vore/resizing/sizegun_vr.dm +++ b/code/modules/vore/resizing/sizegun_vr.dm @@ -102,8 +102,12 @@ /obj/item/projectile/beam/sizelaser/on_hit(var/atom/target) var/mob/living/M = target var/ignoring_prefs = (target == firer ? TRUE : FALSE) // Resizing yourself - if(istype(M)) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(istype(H.gloves, /obj/item/clothing/gloves/bluespace)) + M.visible_message("\The [H]'s bracelet flashes and absorbs the beam!","Your bracelet flashes and absorbs the beam!") + return if(!M.resize(set_size, uncapped = M.has_large_resize_bounds(), ignore_prefs = ignoring_prefs)) to_chat(M, "The beam fires into your body, changing your size!") M.updateicon() diff --git a/icons/inventory/accessory/item_vr.dmi b/icons/inventory/accessory/item_vr.dmi index c39fad32927..2f4624f1cfe 100644 Binary files a/icons/inventory/accessory/item_vr.dmi and b/icons/inventory/accessory/item_vr.dmi differ