diff --git a/code/modules/client/preference_setup/loadout/loadout_utility.dm b/code/modules/client/preference_setup/loadout/loadout_utility.dm index 02ee9517c7..d92786e7a0 100644 --- a/code/modules/client/preference_setup/loadout/loadout_utility.dm +++ b/code/modules/client/preference_setup/loadout/loadout_utility.dm @@ -305,7 +305,12 @@ modular computers /datum/gear/utility/bs_bracelet display_name = "bluespace bracelet" path = /obj/item/clothing/gloves/bluespace - cost = 2 + cost = 1 + +/datum/gear/utility/bs_bracelet_deluxe + display_name = "deluxe bluespace bracelet" + path = /obj/item/clothing/gloves/bluespace/deluxe + cost = 3 /datum/gear/utility/walkpod display_name = "podzu music player" diff --git a/code/modules/clothing/under/miscellaneous_vr.dm b/code/modules/clothing/under/miscellaneous_vr.dm index a80b25c4d5..3079bc4e37 100644 --- a/code/modules/clothing/under/miscellaneous_vr.dm +++ b/code/modules/clothing/under/miscellaneous_vr.dm @@ -191,6 +191,72 @@ if(target_size < 0.1) target_size = 0.1 +/obj/item/clothing/gloves/bluespace/deluxe + name = "deluxe 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. This one appears \ + to be a deluxe edition and contains a wheel that allows for adjustment of what the 'standard' size is!" + +/obj/item/clothing/gloves/bluespace/deluxe/examine(mob/user) + . = ..() + if(Adjacent(user)) + . += "The dial seems to be set to [target_size*100]%" + +/obj/item/clothing/gloves/bluespace/deluxe/verb/turn_dial() + set name = "Adjust Bluespace Dial" + set desc = "Adjust your bracelet's standard size setting. Effect is limited to when you have the bracelet on." + set category = "Object" + set src in usr + bluespace_size(usr) + +/obj/item/clothing/gloves/bluespace/deluxe/proc/bluespace_size(mob/user) //Taken from HYPER suit + if(!ishuman(user)) + return + + var/mob/living/carbon/human/H = user + + var/cooldowntime = round((10 SECONDS - (world.time - last_activated)) * 0.1) //Anti Spam + if(cooldowntime >= 0) + to_chat(H, span_warning("The bracelet is currently recharging!")) + return + + if (H.stat || H.restrained()) + return + + if (src != H.gloves) + to_chat(H, span_warning("You must be WEARING the bracelet and have it uncovered to change your size.")) + return + + var/new_size = tgui_input_number(user, "Put the desired size you wish to be while wearing the bracelet ([RESIZE_MINIMUM*100]-[RESIZE_MAXIMUM*100]%).", "Set Size", H.size_multiplier*100, RESIZE_MAXIMUM*100, RESIZE_MINIMUM*100) + if(!new_size) + return + + //Check AGAIN because we accepted user input which is blocking. + if (src != H.gloves) + to_chat(H, span_warning("You must be WEARING the bracelet and have it uncovered to change your size.")) + return + + if (H.stat || H.restrained()) + return + + if (isnull(H.size_multiplier)) // Why would this ever be the case? + to_chat(H, span_warning("The gloves panics and corrects your apparently microscopic size.")) + H.resize(RESIZE_NORMAL, ignore_prefs = TRUE) + H.update_icons() //Just want the matrix transform + return + + if(new_size) + if(new_size != H.size_multiplier) + if(!original_size) + original_size = H.size_multiplier + H.resize(new_size/100, ignore_prefs = TRUE) // Ignores prefs because you can only resize yourself + H.visible_message(span_notice("The space around [H] distorts as they change size!"), span_notice("The space around you distorts as you change size!")) + target_size = new_size/100 + last_activated = world.time + else //They chose their current size. + return + + //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)