diff --git a/code/game/objects/items/weapons/id cards/cards.dm b/code/game/objects/items/weapons/id cards/cards.dm index 4831d92e56f..260eff8539b 100644 --- a/code/game/objects/items/weapons/id cards/cards.dm +++ b/code/game/objects/items/weapons/id cards/cards.dm @@ -116,7 +116,6 @@ else log_and_message_admins("attempted to emag \an [A].") // Vorestation Edit: End of Edit - log_and_message_admins("emagged \an [A].") if(uses<1) user.visible_message("\The [src] fizzles and sparks - it seems it's been used once too often, and is now spent.") diff --git a/code/modules/client/preference_setup/loadout/loadout_utility_vr.dm b/code/modules/client/preference_setup/loadout/loadout_utility_vr.dm index 8695d74c63a..1d30864d520 100644 --- a/code/modules/client/preference_setup/loadout/loadout_utility_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_utility_vr.dm @@ -69,3 +69,8 @@ display_name = "contractor identification card" path = /obj/item/weapon/card/id/event/polymorphic/altcard cost = 1 + +/datum/gear/utility/bs_bracelet + display_name = "bluespace bracelet" + path = /obj/item/clothing/gloves/bluespace + cost = 5 diff --git a/code/modules/clothing/under/miscellaneous_vr.dm b/code/modules/clothing/under/miscellaneous_vr.dm index cc386822868..eb53f9e1383 100644 --- a/code/modules/clothing/under/miscellaneous_vr.dm +++ b/code/modules/clothing/under/miscellaneous_vr.dm @@ -115,6 +115,66 @@ 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 + glove_level = 1 + var/original_size + var/last_activated + var/emagged = FALSE + var/target_size = 1 + +/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 != target_size) + 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(target_size, uncapped = emagged, 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, uncapped = emagged, 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.") + +/obj/item/clothing/gloves/bluespace/examine(var/mob/user) + . = ..() + var/cooldowntime = round((10 SECONDS - (world.time - last_activated)) * 0.1) + if(Adjacent(user)) + if(cooldowntime >= 0) + . += "It appears to be recharging." + if(emagged) + . += "The crystal is flickering." + +/obj/item/clothing/gloves/bluespace/emag_act(R_charges, var/mob/user, emag_source) + . = ..() + if(!emagged) + emagged = TRUE + target_size = (rand(1,300)) /100 + if(target_size < 0.1) + target_size = 0.1 + user.visible_message("\The [user] swipes the [emag_source] over the \the [src].","You swipes the [emag_source] over the \the [src].") + return 1 + //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