mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-13 11:43:31 +00:00
[MIRROR] Bluespace Collars (#6951)
Co-authored-by: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Co-authored-by: CHOMPStation2 <chompsation2@gmail.com>
This commit is contained in:
@@ -1116,3 +1116,32 @@
|
|||||||
/obj/item/weapon/storage/box/donkpockets/honk,
|
/obj/item/weapon/storage/box/donkpockets/honk,
|
||||||
/obj/item/weapon/storage/box/donkpockets/gondola,
|
/obj/item/weapon/storage/box/donkpockets/gondola,
|
||||||
/obj/item/weapon/storage/box/donkpockets/berry)
|
/obj/item/weapon/storage/box/donkpockets/berry)
|
||||||
|
|
||||||
|
/obj/random/bluespace
|
||||||
|
name = "Random Bluespace Item"
|
||||||
|
desc = "This is a random Bluespace item."
|
||||||
|
icon_state = "bluespace"
|
||||||
|
|
||||||
|
/obj/random/bluespace/item_to_spawn()
|
||||||
|
return pick(
|
||||||
|
prob(20);/obj/item/weapon/gun/energy/sizegun,
|
||||||
|
prob(20);/obj/item/device/slow_sizegun,
|
||||||
|
prob(20);/obj/item/clothing/accessory/collar/shock/bluespace,
|
||||||
|
prob(4);/obj/item/weapon/reagent_containers/glass/beaker/bluespace,
|
||||||
|
prob(4);/obj/item/device/bodysnatcher,
|
||||||
|
prob(10);/obj/item/clothing/under/hyperfiber,
|
||||||
|
prob(10);/obj/item/clothing/under/hyperfiber/bluespace,
|
||||||
|
prob(20);/obj/item/weapon/implant/sizecontrol,
|
||||||
|
prob(2);/obj/item/weapon/storage/bag/ore/holding,
|
||||||
|
prob(2);/obj/item/weapon/storage/backpack/holding,
|
||||||
|
prob(2);/obj/item/weapon/storage/backpack/holding/duffle,
|
||||||
|
prob(2);/obj/item/weapon/storage/bag/trash/holding,
|
||||||
|
prob(2);/obj/item/weapon/storage/pouch/holding,
|
||||||
|
prob(2);/obj/item/weapon/storage/belt/medical/holding,
|
||||||
|
prob(2);/obj/item/weapon/storage/belt/utility/holding,
|
||||||
|
prob(2);/obj/item/device/perfect_tele,
|
||||||
|
prob(8);/obj/item/capture_crystal/random,
|
||||||
|
prob(10);/obj/item/weapon/bluespace_harpoon,
|
||||||
|
prob(10);/obj/item/weapon/bluespace_crystal,
|
||||||
|
prob(1);/obj/item/clothing/glasses/graviton
|
||||||
|
)
|
||||||
@@ -290,6 +290,7 @@
|
|||||||
prob(4);/obj/item/seeds/ambrosiavulgarisseed,
|
prob(4);/obj/item/seeds/ambrosiavulgarisseed,
|
||||||
prob(4);/obj/item/weapon/gun/energy/sizegun,
|
prob(4);/obj/item/weapon/gun/energy/sizegun,
|
||||||
prob(4);/obj/item/device/slow_sizegun,
|
prob(4);/obj/item/device/slow_sizegun,
|
||||||
|
prob(4);/obj/item/clothing/accessory/collar/shock/bluespace,
|
||||||
prob(3);/obj/item/weapon/material/butterfly,
|
prob(3);/obj/item/weapon/material/butterfly,
|
||||||
prob(3);/obj/item/weapon/material/butterfly/switchblade,
|
prob(3);/obj/item/weapon/material/butterfly/switchblade,
|
||||||
prob(3);/obj/item/clothing/gloves/knuckledusters,
|
prob(3);/obj/item/clothing/gloves/knuckledusters,
|
||||||
@@ -321,7 +322,8 @@
|
|||||||
prob(1);/obj/item/capture_crystal,
|
prob(1);/obj/item/capture_crystal,
|
||||||
prob(1);/obj/item/device/perfect_tele/one_beacon,
|
prob(1);/obj/item/device/perfect_tele/one_beacon,
|
||||||
prob(1);/obj/item/clothing/gloves/bluespace,
|
prob(1);/obj/item/clothing/gloves/bluespace,
|
||||||
prob(1);/obj/item/weapon/gun/energy/mouseray)
|
prob(1);/obj/item/weapon/gun/energy/mouseray,
|
||||||
|
prob(1);/obj/item/clothing/accessory/collar/shock/bluespace/modified)
|
||||||
|
|
||||||
var/obj/item/I = new path()
|
var/obj/item/I = new path()
|
||||||
return I
|
return I
|
||||||
|
|||||||
@@ -99,6 +99,7 @@
|
|||||||
CASINO_PRIZE("Cowboy costume", /obj/item/weapon/storage/box/casino/costume_cowboy, 1, 500, "clothing"),
|
CASINO_PRIZE("Cowboy costume", /obj/item/weapon/storage/box/casino/costume_cowboy, 1, 500, "clothing"),
|
||||||
CASINO_PRIZE("Golden Collar", /obj/item/clothing/accessory/collar/gold, 1, 250, "clothing"),
|
CASINO_PRIZE("Golden Collar", /obj/item/clothing/accessory/collar/gold, 1, 250, "clothing"),
|
||||||
CASINO_PRIZE("Decorative Casino Sentient Prize Collar", /obj/item/clothing/accessory/collar/casinosentientprize_fake, 1, 100, "clothing"),
|
CASINO_PRIZE("Decorative Casino Sentient Prize Collar", /obj/item/clothing/accessory/collar/casinosentientprize_fake, 1, 100, "clothing"),
|
||||||
|
CASINO_PRIZE("Bluespace Collar", /obj/item/clothing/accessory/collar/shock/bluespace, 1, 1000, "clothing"),
|
||||||
)
|
)
|
||||||
item_list["Donk Soft"] = list(
|
item_list["Donk Soft"] = list(
|
||||||
CASINO_PRIZE("Donk-Soft shotgun", /obj/item/weapon/gun/projectile/shotgun/pump/toy, 1, 1000, "misc"),
|
CASINO_PRIZE("Donk-Soft shotgun", /obj/item/weapon/gun/projectile/shotgun/pump/toy, 1, 1000, "misc"),
|
||||||
|
|||||||
@@ -376,6 +376,274 @@
|
|||||||
name = initial(name) + " ([str])"
|
name = initial(name) + " ([str])"
|
||||||
desc = initial(desc) + " Something has been [erasemethod] on the tag, and it now has \"[str]\" [writemethod] on it."
|
desc = initial(desc) + " Something has been [erasemethod] on the tag, and it now has \"[str]\" [writemethod] on it."
|
||||||
|
|
||||||
|
//Size collar remote
|
||||||
|
|
||||||
|
/obj/item/clothing/accessory/collar/shock/bluespace
|
||||||
|
name = "Bluespace collar"
|
||||||
|
desc = "A collar that can manipulate the size of the wearer, and can be modified when unequiped."
|
||||||
|
icon_state = "collar_size"
|
||||||
|
item_state = "collar_size"
|
||||||
|
overlay_state = "collar_size"
|
||||||
|
var/original_size
|
||||||
|
var/last_activated
|
||||||
|
var/target_size = 1
|
||||||
|
on = 1
|
||||||
|
|
||||||
|
/obj/item/clothing/accessory/collar/shock/bluespace/Topic(href, href_list)
|
||||||
|
if(usr.stat || usr.restrained())
|
||||||
|
return
|
||||||
|
if(((istype(usr, /mob/living/carbon/human) && ((!( ticker ) || (ticker && ticker.mode != "monkey")) && usr.contents.Find(src))) || (usr.contents.Find(master) || (in_range(src, usr) && istype(loc, /turf)))))
|
||||||
|
usr.set_machine(src)
|
||||||
|
if(href_list["freq"])
|
||||||
|
var/new_frequency = sanitize_frequency(frequency + text2num(href_list["freq"]))
|
||||||
|
set_frequency(new_frequency)
|
||||||
|
if(href_list["tag"])
|
||||||
|
var/str = copytext(reject_bad_text(tgui_input_text(usr,"Tag text?","Set tag","",MAX_NAME_LEN)),1,MAX_NAME_LEN)
|
||||||
|
if(!str || !length(str))
|
||||||
|
to_chat(usr,"<span class='notice'>[name]'s tag set to be blank.</span>")
|
||||||
|
name = initial(name)
|
||||||
|
desc = initial(desc)
|
||||||
|
else
|
||||||
|
to_chat(usr,"<span class='notice'>You set the [name]'s tag to '[str]'.</span>")
|
||||||
|
name = initial(name) + " ([str])"
|
||||||
|
desc = initial(desc) + " The tag says \"[str]\"."
|
||||||
|
else
|
||||||
|
if(href_list["code"])
|
||||||
|
code += text2num(href_list["code"])
|
||||||
|
code = round(code)
|
||||||
|
code = min(100, code)
|
||||||
|
code = max(1, code)
|
||||||
|
else
|
||||||
|
if(href_list["size"])
|
||||||
|
var/size_select = tgui_input_number(usr, "Put the desired size (25-200%), (1-600%) in dormitory areas.", "Set Size", target_size * 100, 200, 25)
|
||||||
|
if(!size_select)
|
||||||
|
return //cancelled
|
||||||
|
target_size = clamp((size_select/100), RESIZE_MINIMUM_DORMS, RESIZE_MAXIMUM_DORMS)
|
||||||
|
to_chat(usr, "<span class='notice'>You set the size to [size_select]%</span>")
|
||||||
|
if(target_size < RESIZE_MINIMUM || target_size > RESIZE_MAXIMUM)
|
||||||
|
to_chat(usr, "<span class='notice'>Note: Resizing limited to 25-200% automatically while outside dormatory areas.</span>") //hint that we clamp it in resize
|
||||||
|
if(!( master ))
|
||||||
|
if(istype(loc, /mob))
|
||||||
|
attack_self(loc)
|
||||||
|
else
|
||||||
|
for(var/mob/M in viewers(1, src))
|
||||||
|
if(M.client)
|
||||||
|
attack_self(M)
|
||||||
|
else
|
||||||
|
if(istype(master.loc, /mob))
|
||||||
|
attack_self(master.loc)
|
||||||
|
else
|
||||||
|
for(var/mob/M in viewers(1, master))
|
||||||
|
if(M.client)
|
||||||
|
attack_self(M)
|
||||||
|
else
|
||||||
|
usr << browse(null, "window=radio")
|
||||||
|
return
|
||||||
|
return
|
||||||
|
|
||||||
|
/obj/item/clothing/accessory/collar/shock/bluespace/attack_self(mob/user as mob, flag1)
|
||||||
|
if(!istype(user, /mob/living/carbon/human))
|
||||||
|
return
|
||||||
|
user.set_machine(src)
|
||||||
|
var/dat = {"<TT>
|
||||||
|
<B>Frequency/Code</B> for collar:<BR>
|
||||||
|
Frequency:
|
||||||
|
<A href='byond://?src=\ref[src];freq=-10'>-</A>
|
||||||
|
<A href='byond://?src=\ref[src];freq=-2'>-</A> [format_frequency(frequency)]
|
||||||
|
<A href='byond://?src=\ref[src];freq=2'>+</A>
|
||||||
|
<A href='byond://?src=\ref[src];freq=10'>+</A><BR>
|
||||||
|
|
||||||
|
Code:
|
||||||
|
<A href='byond://?src=\ref[src];code=-5'>-</A>
|
||||||
|
<A href='byond://?src=\ref[src];code=-1'>-</A> [code]
|
||||||
|
<A href='byond://?src=\ref[src];code=1'>+</A>
|
||||||
|
<A href='byond://?src=\ref[src];code=5'>+</A><BR>
|
||||||
|
|
||||||
|
Tag:
|
||||||
|
<A href='?src=\ref[src];tag=1'>Set tag</A><BR>
|
||||||
|
|
||||||
|
Size:
|
||||||
|
<A href='?src=\ref[src];size=100'>Set size</A><BR>
|
||||||
|
</TT>"}
|
||||||
|
user << browse(dat, "window=radio")
|
||||||
|
onclose(user, "radio")
|
||||||
|
return
|
||||||
|
|
||||||
|
/obj/item/clothing/accessory/collar/shock/bluespace/receive_signal(datum/signal/signal)
|
||||||
|
if(!signal || signal.encryption != code)
|
||||||
|
return
|
||||||
|
|
||||||
|
if(on)
|
||||||
|
var/mob/M = null
|
||||||
|
if(ismob(loc))
|
||||||
|
M = loc
|
||||||
|
if(ismob(loc.loc))
|
||||||
|
M = loc.loc // This is about as terse as I can make my solution to the whole 'collar won't work when attached as accessory' thing.
|
||||||
|
var/mob/living/carbon/human/H = M
|
||||||
|
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||||
|
if(!H.resizable)
|
||||||
|
H.visible_message("<span class='warning'>The space around [H] compresses for a moment but then nothing happens.</span>","<span class='notice'>The space around you distorts but nothing happens to you.</span>")
|
||||||
|
return
|
||||||
|
if(H.size_multiplier != target_size)
|
||||||
|
if(!(world.time - last_activated > 10 SECONDS))
|
||||||
|
to_chat(M, "<span class ='warning'>\The [src] flickers. It seems to be recharging.</span>")
|
||||||
|
return
|
||||||
|
last_activated = world.time
|
||||||
|
original_size = H.size_multiplier
|
||||||
|
H.resize(target_size, 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 collar.")
|
||||||
|
s.set_up(3, 1, M)
|
||||||
|
s.start()
|
||||||
|
else if(H.size_multiplier == target_size)
|
||||||
|
if(original_size == null)
|
||||||
|
H.visible_message("<span class='warning'>The space around [H] twists and turns for a moment but then nothing happens.</span>","<span class='notice'>The space around you distorts but stay the same size.</span>")
|
||||||
|
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 collar.")
|
||||||
|
to_chat(M, "<span class ='warning'>\The [src] flickers. It is now recharging and will be ready again in ten seconds.</span>")
|
||||||
|
s.set_up(3, 1, M)
|
||||||
|
s.start()
|
||||||
|
return
|
||||||
|
|
||||||
|
/obj/item/clothing/accessory/collar/shock/bluespace/relaymove(var/mob/living/user,var/direction)
|
||||||
|
return //For some reason equipping this item was triggering this proc, putting the wearer inside of the collars belly for some reason.
|
||||||
|
|
||||||
|
/obj/item/clothing/accessory/collar/shock/bluespace/attackby(var/obj/item/device/assembly/signaler/component, mob/user as mob)
|
||||||
|
if (!istype(component,/obj/item/device/assembly/signaler))
|
||||||
|
..()
|
||||||
|
return
|
||||||
|
to_chat(user, "<span class='notice'>You wire the signaler into the [src].</span>")
|
||||||
|
user.drop_item()
|
||||||
|
qdel(component)
|
||||||
|
var/turf/T = get_turf(src)
|
||||||
|
new /obj/item/clothing/accessory/collar/shock/bluespace/modified(T)
|
||||||
|
user.drop_from_inventory(src)
|
||||||
|
qdel(src)
|
||||||
|
return
|
||||||
|
|
||||||
|
// modified bluespace collar where the size is controlled by the signaller.
|
||||||
|
|
||||||
|
/obj/item/clothing/accessory/collar/shock/bluespace/modified
|
||||||
|
name = "Bluespace collar"
|
||||||
|
desc = "A collar that can manipulate the size of the wearer, and can be modified when unequiped. It has a little reciever attached."
|
||||||
|
icon_state = "collar_size_mod"
|
||||||
|
item_state = "collar_size"
|
||||||
|
overlay_state = "collar_size"
|
||||||
|
target_size = 1
|
||||||
|
on = 1
|
||||||
|
|
||||||
|
/obj/item/clothing/accessory/collar/shock/bluespace/modified/attackby(var/obj/item/device/assembly/signaler/component, mob/user as mob)
|
||||||
|
if (!istype(component,/obj/item/device/assembly/signaler))
|
||||||
|
..()
|
||||||
|
return
|
||||||
|
to_chat(user, "<span class='notice'>There is already a signaler wired to the [src].</span>")
|
||||||
|
return
|
||||||
|
|
||||||
|
/obj/item/clothing/accessory/collar/shock/bluespace/modified/attack_self(mob/user as mob, flag1)
|
||||||
|
if(!istype(user, /mob/living/carbon/human))
|
||||||
|
return
|
||||||
|
user.set_machine(src) //Doesn't need code or size options as the code now just defines the size.
|
||||||
|
var/dat = {"<TT>
|
||||||
|
<B>Frequency/Code</B> for collar:<BR>
|
||||||
|
Frequency:
|
||||||
|
<A href='byond://?src=\ref[src];freq=-10'>-</A>
|
||||||
|
<A href='byond://?src=\ref[src];freq=-2'>-</A> [format_frequency(frequency)]
|
||||||
|
<A href='byond://?src=\ref[src];freq=2'>+</A>
|
||||||
|
<A href='byond://?src=\ref[src];freq=10'>+</A><BR>
|
||||||
|
|
||||||
|
Tag:
|
||||||
|
<A href='?src=\ref[src];tag=1'>Set tag</A><BR>
|
||||||
|
|
||||||
|
The size control of the collar is determined by two times the value of the code it recieves, to a minimum of 26 (code 13).
|
||||||
|
</TT>"}
|
||||||
|
user << browse(dat, "window=radio")
|
||||||
|
onclose(user, "radio")
|
||||||
|
return
|
||||||
|
|
||||||
|
/obj/item/clothing/accessory/collar/shock/bluespace/modified/Topic(href, href_list)
|
||||||
|
if(usr.stat || usr.restrained())
|
||||||
|
return
|
||||||
|
if(((istype(usr, /mob/living/carbon/human) && ((!( ticker ) || (ticker && ticker.mode != "monkey")) && usr.contents.Find(src))) || (usr.contents.Find(master) || (in_range(src, usr) && istype(loc, /turf)))))
|
||||||
|
usr.set_machine(src)
|
||||||
|
if(href_list["freq"])
|
||||||
|
var/new_frequency = sanitize_frequency(frequency + text2num(href_list["freq"]))
|
||||||
|
set_frequency(new_frequency)
|
||||||
|
if(href_list["tag"])
|
||||||
|
var/str = copytext(reject_bad_text(tgui_input_text(usr,"Tag text?","Set tag","",MAX_NAME_LEN)),1,MAX_NAME_LEN)
|
||||||
|
if(!str || !length(str))
|
||||||
|
to_chat(usr,"<span class='notice'>[name]'s tag set to be blank.</span>")
|
||||||
|
name = initial(name)
|
||||||
|
desc = initial(desc)
|
||||||
|
else
|
||||||
|
to_chat(usr,"<span class='notice'>You set the [name]'s tag to '[str]'.</span>")
|
||||||
|
name = initial(name) + " ([str])"
|
||||||
|
desc = initial(desc) + " The tag says \"[str]\"."
|
||||||
|
if(!( master ))
|
||||||
|
if(istype(loc, /mob))
|
||||||
|
attack_self(loc)
|
||||||
|
else
|
||||||
|
for(var/mob/M in viewers(1, src))
|
||||||
|
if(M.client)
|
||||||
|
attack_self(M)
|
||||||
|
else
|
||||||
|
if(istype(master.loc, /mob))
|
||||||
|
attack_self(master.loc)
|
||||||
|
else
|
||||||
|
for(var/mob/M in viewers(1, master))
|
||||||
|
if(M.client)
|
||||||
|
attack_self(M)
|
||||||
|
else
|
||||||
|
usr << browse(null, "window=radio")
|
||||||
|
return
|
||||||
|
return
|
||||||
|
|
||||||
|
/obj/item/clothing/accessory/collar/shock/bluespace/modified/receive_signal(datum/signal/signal)
|
||||||
|
if(!signal)
|
||||||
|
return
|
||||||
|
target_size = (signal.encryption * 2)/100
|
||||||
|
if(on)
|
||||||
|
var/mob/M = null
|
||||||
|
if(ismob(loc))
|
||||||
|
M = loc
|
||||||
|
if(ismob(loc.loc))
|
||||||
|
M = loc.loc // This is about as terse as I can make my solution to the whole 'collar won't work when attached as accessory' thing.
|
||||||
|
var/mob/living/carbon/human/H = M
|
||||||
|
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||||
|
if(!H.resizable)
|
||||||
|
H.visible_message("<span class='warning'>The space around [H] compresses for a moment but then nothing happens.</span>","<span class='notice'>The space around you distorts but nothing happens to you.</span>")
|
||||||
|
return
|
||||||
|
if (target_size < 0.26)
|
||||||
|
H.visible_message("<span class='warning'>The collar on [H] flickers, but fizzles out.</span>","<span class='notice'>Your collar flickers, but is not powerful enough to shrink you that small.</span>")
|
||||||
|
return
|
||||||
|
if(H.size_multiplier != target_size)
|
||||||
|
if(!(world.time - last_activated > 10 SECONDS))
|
||||||
|
to_chat(M, "<span class ='warning'>\The [src] flickers. It seems to be recharging.</span>")
|
||||||
|
return
|
||||||
|
last_activated = world.time
|
||||||
|
original_size = H.size_multiplier
|
||||||
|
H.resize(target_size, 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 collar.")
|
||||||
|
s.set_up(3, 1, M)
|
||||||
|
s.start()
|
||||||
|
else if(H.size_multiplier == target_size)
|
||||||
|
if(original_size == null)
|
||||||
|
H.visible_message("<span class='warning'>The space around [H] twists and turns for a moment but then nothing happens.</span>","<span class='notice'>The space around you distorts but stay the same size.</span>")
|
||||||
|
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 collar.")
|
||||||
|
to_chat(M, "<span class ='warning'>\The [src] flickers. It is now recharging and will be ready again in ten seconds.</span>")
|
||||||
|
s.set_up(3, 1, M)
|
||||||
|
s.start()
|
||||||
|
return
|
||||||
|
|
||||||
//Machete Holsters
|
//Machete Holsters
|
||||||
/obj/item/clothing/accessory/holster/machete
|
/obj/item/clothing/accessory/holster/machete
|
||||||
name = "machete sheath"
|
name = "machete sheath"
|
||||||
|
|||||||
@@ -326,6 +326,7 @@
|
|||||||
/obj/item/device/chameleon = 25,
|
/obj/item/device/chameleon = 25,
|
||||||
/obj/item/weapon/gun/energy/sizegun = 25,
|
/obj/item/weapon/gun/energy/sizegun = 25,
|
||||||
/obj/item/device/slow_sizegun = 25,
|
/obj/item/device/slow_sizegun = 25,
|
||||||
|
/obj/item/clothing/accessory/collar/shock/bluespace = 25,
|
||||||
/obj/item/weapon/implant/sizecontrol = 25,
|
/obj/item/weapon/implant/sizecontrol = 25,
|
||||||
/obj/item/clothing/under/hyperfiber/bluespace = 25,
|
/obj/item/clothing/under/hyperfiber/bluespace = 25,
|
||||||
/obj/item/device/nif/authentic = 1,
|
/obj/item/device/nif/authentic = 1,
|
||||||
@@ -352,6 +353,7 @@
|
|||||||
/obj/item/device/chameleon = 20,
|
/obj/item/device/chameleon = 20,
|
||||||
/obj/item/weapon/gun/energy/sizegun = 10,
|
/obj/item/weapon/gun/energy/sizegun = 10,
|
||||||
/obj/item/device/slow_sizegun = 10,
|
/obj/item/device/slow_sizegun = 10,
|
||||||
|
/obj/item/clothing/accessory/collar/shock/bluespace = 10,
|
||||||
/obj/item/weapon/implant/sizecontrol = 10,
|
/obj/item/weapon/implant/sizecontrol = 10,
|
||||||
/obj/item/clothing/under/hyperfiber/bluespace = 10,
|
/obj/item/clothing/under/hyperfiber/bluespace = 10,
|
||||||
/obj/item/device/nif/authentic = 100,
|
/obj/item/device/nif/authentic = 100,
|
||||||
@@ -376,6 +378,7 @@
|
|||||||
/obj/item/capture_crystal/random = 2,
|
/obj/item/capture_crystal/random = 2,
|
||||||
/obj/item/weapon/gun/energy/sizegun = 2,
|
/obj/item/weapon/gun/energy/sizegun = 2,
|
||||||
/obj/item/device/slow_sizegun = 2,
|
/obj/item/device/slow_sizegun = 2,
|
||||||
|
/obj/item/clothing/accessory/collar/shock/bluespace = 2,
|
||||||
/obj/item/weapon/implant/sizecontrol = 2,
|
/obj/item/weapon/implant/sizecontrol = 2,
|
||||||
/obj/item/clothing/under/hyperfiber/bluespace = 2,
|
/obj/item/clothing/under/hyperfiber/bluespace = 2,
|
||||||
/obj/item/weapon/reagent_containers/food/snacks/jellyfishcore = 10
|
/obj/item/weapon/reagent_containers/food/snacks/jellyfishcore = 10
|
||||||
|
|||||||
@@ -30,6 +30,14 @@
|
|||||||
build_path = /obj/item/device/slow_sizegun
|
build_path = /obj/item/device/slow_sizegun
|
||||||
sort_string = "TAVBB"
|
sort_string = "TAVBB"
|
||||||
|
|
||||||
|
/datum/design/item/general/bluespace_collar
|
||||||
|
name = "Bluespace collar"
|
||||||
|
id = "bluespacecollar"
|
||||||
|
req_tech = list(TECH_BLUESPACE = 3, TECH_MATERIAL = 3, TECH_POWER = 2)
|
||||||
|
materials = list(MAT_STEEL = 2000, MAT_GLASS = 2000)
|
||||||
|
build_path = /obj/item/clothing/accessory/collar/shock/bluespace
|
||||||
|
sort_string = "TAVBC"
|
||||||
|
|
||||||
/datum/design/item/general/bodysnatcher
|
/datum/design/item/general/bodysnatcher
|
||||||
name = "Body Snatcher"
|
name = "Body Snatcher"
|
||||||
id = "bodysnatcher"
|
id = "bodysnatcher"
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 7.0 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
Reference in New Issue
Block a user