Size Standardization Bracelet

It makes you 100% size when worn. Similar to a bluespace jumpsuit, it only works when worn, but dis-similarly to bluespace jumpsuits, this has no control over what size you can be. 

You might say its

one size fits all.

I put this in the loadout and in the gadgets vendor, as I feel like the limitation to only changing your size to 100% and back doesn't offer the same utility as something that actually gives you full control over your size, like the bluespace jumpsuit and sizeguns. 

I think that this limitation, and somewhat expensive loadout cost, makes it not as likely to be abused for powergaming as the other size changing items would be.
This commit is contained in:
VerySoft
2022-02-09 16:32:03 -05:00
parent 436abda64f
commit a0f4c14759
5 changed files with 52 additions and 3 deletions
@@ -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
****************/
@@ -115,6 +115,44 @@
original_size = null
H.visible_message("<span class='warning'>The space around [H] distorts as they return to their original size!</span>","<span class='notice'>The space around you distorts as you return to your original size!</span>")
/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, "<span class ='warning'>\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("<span class='warning'>The space around [H] distorts as they change size!</span>","<span class='notice'>The space around you distorts as you change size!</span>")
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("<span class='warning'>The space around [H] distorts as they return to their original size!</span>","<span class='notice'>The space around you distorts as you return to your original size!</span>")
log_admin("Admin [key_name(M)]'s size was altered by a bluespace bracelet.")
to_chat(M, "<span class ='warning'>\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)
+4 -2
View File
@@ -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)
+5 -1
View File
@@ -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("<span class='warning'>\The [H]'s bracelet flashes and absorbs the beam!</span>","<span class='notice'>Your bracelet flashes and absorbs the beam!</span>")
return
if(!M.resize(set_size, uncapped = M.has_large_resize_bounds(), ignore_prefs = ignoring_prefs))
to_chat(M, "<font color='blue'>The beam fires into your body, changing your size!</font>")
M.updateicon()
Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB