Merge pull request #9333 from Tenryumi/nikki-fluff
Adds Nikki's Fluff Outfit For Nikki, + Rigsuit-Mounted Size Guns For Research
@@ -92,11 +92,11 @@
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/device/perfect_tele/proc/unload_ammo(mob/user)
|
||||
/obj/item/device/perfect_tele/proc/unload_ammo(mob/user, var/ignore_inactive_hand_check = 0)
|
||||
if(battery_lock)
|
||||
to_chat(user,"<span class='notice'>[src] does not have a battery port.</span>")
|
||||
return
|
||||
if(user.get_inactive_hand() == src && power_source)
|
||||
if((user.get_inactive_hand() == src || ignore_inactive_hand_check) && power_source)
|
||||
to_chat(user,"<span class='notice'>You eject \the [power_source] from \the [src].</span>")
|
||||
user.put_in_hands(power_source)
|
||||
power_source = null
|
||||
@@ -111,7 +111,7 @@
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/obj/item/device/perfect_tele/attack_self(mob/user)
|
||||
/obj/item/device/perfect_tele/attack_self(mob/user, var/radial_menu_anchor = src)
|
||||
if(loc_network)
|
||||
for(var/obj/item/device/perfect_tele_beacon/stationary/nb in GLOB.premade_tele_beacons)
|
||||
if(nb.tele_network == loc_network)
|
||||
@@ -124,8 +124,7 @@
|
||||
and tele-vore. Make sure you carefully examine someone's OOC prefs before teleporting them if you are \
|
||||
going to use this device for ERP purposes. This device records all warnings given and teleport events for \
|
||||
admin review in case of pref-breaking, so just don't do it.","OOC WARNING")
|
||||
|
||||
var/choice = show_radial_menu(user, src, radial_images, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE)
|
||||
var/choice = show_radial_menu(user, radial_menu_anchor, radial_images, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE)
|
||||
|
||||
if(!choice)
|
||||
return
|
||||
@@ -281,7 +280,7 @@
|
||||
//Seems okay to me!
|
||||
return TRUE
|
||||
|
||||
/obj/item/device/perfect_tele/afterattack(mob/living/target, mob/living/user, proximity)
|
||||
/obj/item/device/perfect_tele/afterattack(mob/living/target, mob/living/user, proximity, var/ignore_fail_chance = 0)
|
||||
//No, you can't teleport people from over there.
|
||||
if(!proximity)
|
||||
return
|
||||
@@ -312,6 +311,7 @@
|
||||
R.force_dismount(rider)
|
||||
|
||||
//Failure chance
|
||||
if (!ignore_fail_chance)
|
||||
if(prob(failure_chance) && beacons.len >= 2)
|
||||
var/list/wrong_choices = beacons - destination.tele_name
|
||||
var/wrong_name = pick(wrong_choices)
|
||||
|
||||
@@ -739,6 +739,12 @@
|
||||
character_name = list("Clara Mali")
|
||||
cost = 1
|
||||
|
||||
/datum/gear/fluff/nikki_dorky_outfit
|
||||
path = /obj/item/weapon/storage/box/fluff
|
||||
display_name = "Nikki's Witchy Outfit"
|
||||
ckeywhitelist = list("ryumi")
|
||||
character_name = list("Nikki Yumeno")
|
||||
|
||||
// S CKEYS
|
||||
/datum/gear/fluff/brynhild_medal
|
||||
path = /obj/item/clothing/accessory/medal/silver/valor
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
/obj/item/rig_module/mounted/sizegun
|
||||
icon = 'icons/obj/rig_modules.dmi'
|
||||
icon_state = "sizegun"
|
||||
name = "mounted size gun"
|
||||
desc = "A size gun to be mounted on a rig suit. Features interface-based target size adjustment for hands-free size-altering shenanigans."
|
||||
|
||||
engage_string = "Select Size"
|
||||
|
||||
interface_name = "mounted sizegun"
|
||||
interface_desc = "A wrist-mounted, hardsuit cell-powered, size gun. Features interface-based target size adjustment for hands-free size-altering shenanigans."
|
||||
|
||||
gun_type = /obj/item/weapon/gun/energy/sizegun/mounted
|
||||
@@ -5,3 +5,11 @@
|
||||
req_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 5, TECH_MAGNET = 5, TECH_BIO = 4)
|
||||
materials = list(MAT_PLASTEEL = 3000, MAT_GRAPHITE = 2000, MAT_PLASTIC = 3500, MAT_SILVER = 1750, MAT_GOLD = 1250)
|
||||
build_path = /obj/item/rig_module/rescue_pharm
|
||||
|
||||
/datum/design/item/mechfab/rigsuit/mounted_sizegun
|
||||
name = "hardsuit mounted size gun"
|
||||
desc = "A suit mounted size gun. Features interface-based target size adjustment for hands-free size-altering shenanigans."
|
||||
id = "rig_gun_sizegun"
|
||||
req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3, TECH_POWER = 2)
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 3000, MAT_GLASS = 2000, MAT_URANIUM = 2000)
|
||||
build_path = /obj/item/rig_module/mounted/sizegun
|
||||
@@ -217,6 +217,16 @@
|
||||
/obj/item/weapon/melee/fluffstuff/wolfgirlsword,
|
||||
/obj/item/weapon/shield/fluff/wolfgirlshield)
|
||||
|
||||
// Ryumi: Nikki Yumeno
|
||||
/obj/item/weapon/storage/box/fluff
|
||||
name = "Nikki's Outfit Box"
|
||||
desc = "Warning: Contains dangerous amounts of dork."
|
||||
has_items = list(
|
||||
/obj/item/weapon/rig/nikki,
|
||||
/obj/item/clothing/head/fluff/nikki,
|
||||
/obj/item/clothing/under/skirt/outfit/fluff/nikki,
|
||||
/obj/item/clothing/shoes/fluff/nikki)
|
||||
|
||||
/*
|
||||
Swimsuits, for general use, to avoid arriving to work with your swimsuit.
|
||||
*/
|
||||
|
||||
@@ -2008,3 +2008,221 @@ Departamental Swimsuits, for general use
|
||||
/obj/item/clothing/head/that/fluff/gettler
|
||||
name = "Charles' Top-Hat"
|
||||
desc = "A special hat, removed from its owner."
|
||||
|
||||
//Ryumi: Nikki Yumeno
|
||||
/obj/item/clothing/under/skirt/outfit/fluff/nikki
|
||||
name = "dorky outfit"
|
||||
desc = "A little witch costume that looks like it's been worn as ordinary clothes. Who in their right mind would...??"
|
||||
icon = 'icons/vore/custom_clothes_vr.dmi'
|
||||
icon_override = 'icons/vore/custom_onmob_vr.dmi'
|
||||
icon_state = "nikki_outfit"
|
||||
item_state = "nikki_outfit"
|
||||
item_icons = list()
|
||||
sensor_mode = 3 // I'm a dumbass and forget these all the time please understand :(
|
||||
|
||||
/obj/item/clothing/under/skirt/outfit/fluff/nikki/mob_can_equip(var/mob/living/carbon/human/M, slot, disable_warning = 0)
|
||||
if(..())
|
||||
if (M.ckey == "ryumi")
|
||||
return 1
|
||||
else if (M.get_active_hand() == src)
|
||||
to_chat(M, "<span class='warning'>What the heck? \The [src] doesn't fit!</span>")
|
||||
return 0
|
||||
|
||||
/obj/item/clothing/shoes/fluff/nikki
|
||||
name = "non-magical boots"
|
||||
desc = "Boots optimally built for a dork. They don't sparkle or anything, but you can imagine them doing that when you click the heels together."
|
||||
icon = 'icons/vore/custom_clothes_vr.dmi'
|
||||
icon_override = 'icons/vore/custom_onmob_vr.dmi'
|
||||
icon_state = "nikki_boots"
|
||||
item_state = "nikki_boots"
|
||||
|
||||
/obj/item/clothing/shoes/fluff/nikki/mob_can_equip(var/mob/living/carbon/human/M, slot, disable_warning = 0)
|
||||
if(..())
|
||||
if (M.ckey == "ryumi")
|
||||
return 1
|
||||
else if (M.get_active_hand() == src)
|
||||
to_chat(M, "<span class='warning'>What the heck? \The [src] doesn't fit!</span>")
|
||||
return 0
|
||||
|
||||
/obj/item/clothing/suit/fluff/nikki //see /obj/item/weapon/rig/nikki
|
||||
name = "cape"
|
||||
desc = "Snazzy!"
|
||||
flags = null
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) // It's not armor, it's a dorky frickin cape
|
||||
body_parts_covered = null // Cape ain't gonna cover a THING
|
||||
cold_protection = UPPER_TORSO|LOWER_TORSO|ARMS // It will keep you toasty tho, it's more than big enough to help with that! Just wrap the thing around you when on the surface, idk
|
||||
icon = 'icons/vore/custom_clothes_vr.dmi'
|
||||
icon_override = 'icons/vore/custom_onmob_vr.dmi'
|
||||
icon_state = "nikki"
|
||||
|
||||
/obj/item/clothing/head/fluff/nikki
|
||||
// I have never tryharded so much just to accomplish something so stupid as "Vore By Hat" in my entire life, and I apologize to each and every one of you.
|
||||
name = "oversized witch hat"
|
||||
desc = "A dork-shaped hat. Its long, pointed tip reaches far more than most hats had ought to, its wide brim complementing \
|
||||
this with its tendency to droop at the ends under its own weight."
|
||||
description_fluff = "Despite what Nikki Yumeno may believe, her hat is not in fact a magical artifact of teleportation magicks. \
|
||||
It is however the result of clever utilization of bluespace technology combined with style. Like a classic magician's trick, \
|
||||
the power of this hat lies in the hidden compartment hidden on the inside, into which a personal translocation device can be \
|
||||
snapped inside. Once installed, bluespace electronics inside the hat sync with the translocator and utilize its teleportation \
|
||||
technology to create a localized bluespace portal within the hole of the hat. This tiny portal will warp anything or anyone \
|
||||
who makes physical contact with it to whatever beacon the translocator within is locked onto."
|
||||
icon = 'icons/vore/custom_clothes_vr.dmi'
|
||||
icon_state = "nikki-hat"
|
||||
item_state = "nikki-hat"
|
||||
item_icons = list(
|
||||
slot_l_hand_str = 'icons/vore/custom_clothes_left_hand_vr.dmi',
|
||||
slot_r_hand_str = 'icons/vore/custom_clothes_right_hand_vr.dmi',
|
||||
slot_head_str = 'icons/vore/custom_onmob_32x48_vr.dmi'
|
||||
)
|
||||
flags_inv = HIDEEARS
|
||||
w_class = ITEMSIZE_LARGE // THIS HAT IS FUCKIN HUGE YO
|
||||
var/owner = "ryumi"
|
||||
var/obj/item/device/perfect_tele/translocator = null // The translocator installed inside, if there is one. Gotta go out and get it first!
|
||||
|
||||
/obj/item/clothing/head/fluff/nikki/verb/verb_translocator_unequip()
|
||||
set category = "Object"
|
||||
set name = "Nikki's Hat - Unequip Translocator"
|
||||
set src in usr
|
||||
translocator_unequip(translocator, usr)
|
||||
|
||||
/obj/item/clothing/head/fluff/nikki/proc/translocator_equip(var/obj/item/device/perfect_tele/T, var/mob/living/carbon/human/user)
|
||||
if (do_after(user, 2 SECONDS, T))
|
||||
user.unEquip(T)
|
||||
translocator_unequip(translocator, user)
|
||||
T.forceMove(src)
|
||||
translocator = T
|
||||
user.show_message("[bicon(src)]*click!*")
|
||||
playsound(src, 'sound/machines/click.ogg', 30, 1)
|
||||
|
||||
/obj/item/clothing/head/fluff/nikki/proc/translocator_unequip(var/obj/item/device/perfect_tele/T, var/mob/living/carbon/human/user)
|
||||
if (translocator)
|
||||
if (user)
|
||||
user.put_in_hands(T)
|
||||
user.show_message("[bicon(src)]*click!*")
|
||||
else
|
||||
translocator.forceMove(get_turf(src))
|
||||
translocator = null
|
||||
playsound(src, 'sound/machines/click.ogg', 30, 1)
|
||||
|
||||
/obj/item/clothing/head/fluff/nikki/proc/teleport_fail(mob/user, mob/target)
|
||||
if (target != user)
|
||||
user.visible_message("<span class='notice'>[user] harmlessly bops [target] with \the [src].</span>", \
|
||||
"<span class='notice'>\The [src] harmlessly bops [target]. The hat seems... unwilling?</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>\The [src] flops over [user]'s' head for a moment, but they seem alright.</span>", \
|
||||
"<span class='notice'>\The [src] flops over your head for a moment, but you correct it without issue. There we go!</span>")
|
||||
|
||||
/obj/item/clothing/head/fluff/nikki/proc/hat_warp_checks(var/mob/living/target, mob/user, proximity_flag)
|
||||
if (!proximity_flag)
|
||||
return 0
|
||||
|
||||
if (!translocator)
|
||||
to_chat(user, "<span class='warning'>\The [src] doesn't have a translocator inside it yet, you goof!</span>")
|
||||
return 0
|
||||
|
||||
if (target.ckey == owner && target != user) // ur not getting me that easy sonny jim......
|
||||
to_chat(user, "<span class='warning'>You think to turn \the [src] on its creator?! <b>FOOOOOOOOL.</b></span>")
|
||||
to_chat(user, "<span class='notice'>From seemingly nowhere you hear echoing, derisive laughter, accompanied by a stock laugh track and... Are those bike horns?</span>")
|
||||
return 0
|
||||
|
||||
if (!istype(target))
|
||||
to_chat(user, "<span class='warning'>\The [src] isn't a valid target!</span>")
|
||||
return 0
|
||||
|
||||
// Because other mobs (i.e. monkeys) apparently have dropnom prey set to 0, we check SPECIFICALLY for humans' dropnom setting.
|
||||
if (target.type == /mob/living/carbon/human && !target.can_be_drop_prey)
|
||||
teleport_fail(user, target)
|
||||
return 0
|
||||
|
||||
if (!translocator.teleport_checks(target, user))
|
||||
return 0
|
||||
|
||||
else return 1
|
||||
|
||||
/obj/item/clothing/head/fluff/nikki/attackby(obj/item/weapon/I as obj, mob/user as mob)
|
||||
if (istype(I, /obj/item/device/perfect_tele) && user.get_inactive_hand() == src)
|
||||
if (translocator)
|
||||
visible_message("<span class='notice'>[user] starts to pull \a [translocator] out of \the [src] to swap it out with \the [I]...</span>", \
|
||||
"<span class='notice'>You start pulling \the [translocator] pops out of its compartment with a soft 'click' as you replace it with \the [I]....</span>")
|
||||
else
|
||||
visible_message("<span class='notice'>[user] begins slipping \the [I] into \the [src]...</span>", \
|
||||
"<span class='notice'>You begin to snap \the [I] into a small, hidden compartment inside \the [src]...</span>")
|
||||
// This works for both adding and replacing a translocator
|
||||
translocator_equip(I, user)
|
||||
return
|
||||
else if (translocator)
|
||||
translocator.attackby(I, user)
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/clothing/head/fluff/nikki/get_description_interaction()
|
||||
. = ..()
|
||||
if (translocator)
|
||||
. += "It has \a [translocator] inside of it. Alt-click while holding it on your inactive hand to remove it."
|
||||
. += "Otherwise, this hat functions exactly as the translocator it has inside while still being a sweet head accessory."
|
||||
else
|
||||
. += "A translocator can be placed inside of it! While holding the hat in your inactive hand, use a translocator on it to slip it inside."
|
||||
. += "After doing this, it will function as both a head accessory and teleportation device."
|
||||
|
||||
|
||||
/obj/item/clothing/head/fluff/nikki/attack_hand(mob/user)
|
||||
if (translocator && (user.get_inactive_hand() == src))
|
||||
translocator.unload_ammo(user, ignore_inactive_hand_check = 1)
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/clothing/head/fluff/nikki/AltClick(mob/user)
|
||||
if (translocator && (user.get_inactive_hand() == src))
|
||||
translocator_unequip(translocator, user)
|
||||
|
||||
/obj/item/clothing/head/fluff/nikki/attack_self(mob/user)
|
||||
..()
|
||||
if (translocator)
|
||||
translocator.attack_self(user, user)
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span_class='warning'>\The [src] doesn't have a translocator inside it right now.</span>")
|
||||
return
|
||||
|
||||
/obj/item/clothing/head/fluff/nikki/examine(mob/user) // If it has a translocator installed, make it very obvious to viewers that something WEIRD is going on with this hat.
|
||||
. = ..()
|
||||
if (translocator)
|
||||
. += "Weird... <span class='danger'>You can't see the bottom of the hole inside the hat...</span>"
|
||||
|
||||
/obj/item/clothing/head/fluff/nikki/equipped(mob/living/carbon/human/user, slot)
|
||||
. = ..()
|
||||
if (slot == slot_head && translocator && user.ckey != owner) // This way we don't unnecessarily spam the chat with hat/translocator errors
|
||||
// hey, are we actually able to teleport this poor person?
|
||||
if (hat_warp_checks(user, user, proximity_flag = 1))
|
||||
// YOU FOOL! YOU HAVE ACTIVATED MY STAND, 「VORE BY HAT」!
|
||||
src.visible_message("<span class='danger'>\The [src] falls over [user]'s head... and somehow falls over the rest of their body, causing them to vanish inside. Where did they go?!</span>", \
|
||||
"<span class='danger'>The hat falls over your head as you put it on, enveloping you in a bright green light! <b>Uh oh.</b></span>")
|
||||
var/uh_oh = pick(translocator.beacons)
|
||||
user.remove_from_mob(src, get_turf(user))
|
||||
translocator.destination = translocator.beacons[uh_oh]
|
||||
translocator.afterattack(user, user, proximity = 1, ignore_fail_chance = 1)
|
||||
add_attack_logs(user, user, "Tried to put on \the [src] and was involuntarily teleported by it (via \the [translocator] within)!")
|
||||
return
|
||||
|
||||
/obj/item/clothing/head/fluff/nikki/afterattack(var/mob/living/target, mob/user, proximity_flag, click_parameters)
|
||||
// If the hat is willing to cooperate with the holder...
|
||||
if (hat_warp_checks(target, user, proximity_flag))
|
||||
// Silly fluffed up styles of teleporting people based on user intent.
|
||||
switch (user.a_intent)
|
||||
if (I_HELP)
|
||||
user.visible_message("<span class='notice'>[user] guides \the [target] to the bottomless hole within \the [src]. They begin to climb inside...</span>")
|
||||
if (do_after(user, 5 SECONDS, target))
|
||||
translocator.afterattack(target, user, proximity_flag)
|
||||
if (I_DISARM)
|
||||
user.visible_message("<span class='danger'>[user] plops \the [src] onto \the [target]'s head!</span>")
|
||||
translocator.afterattack(target, user, proximity_flag)
|
||||
if (I_GRAB)
|
||||
user.visible_message("<span class='danger'>[user] begins stuffing [target] into \the [src]!</span>")
|
||||
if (do_after(user, 5 SECONDS, target))
|
||||
translocator.afterattack(target, user, proximity_flag)
|
||||
if (I_HURT)
|
||||
user.visible_message("<span class='danger'>[user] swipes \the [src] over \the [target]!</span>")
|
||||
translocator.afterattack(target, user, proximity_flag)
|
||||
|
||||
add_attack_logs(user, target, "Teleported [target] with via \the [src]'s [translocator]!")
|
||||
else ..()
|
||||
|
||||
@@ -1250,6 +1250,52 @@
|
||||
else
|
||||
return 1
|
||||
|
||||
//Ryumi - Nikki Yumeno
|
||||
/obj/item/weapon/rig/nikki
|
||||
name = "weird necklace"
|
||||
desc = "A necklace with a brilliantly blue crystal encased in protective glass."
|
||||
icon = 'icons/vore/custom_clothes_vr.dmi'
|
||||
icon_override = 'icons/vore/custom_onmob_vr.dmi'
|
||||
suit_type = "probably not magical"
|
||||
icon_state = "nikki"
|
||||
w_class = ITEMSIZE_SMALL // It is after all only a necklace
|
||||
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0) // this isn't armor, it's a dorky frickin cape
|
||||
siemens_coefficient = 0.9
|
||||
slowdown = 0
|
||||
offline_slowdown = 0
|
||||
offline_vision_restriction = 0
|
||||
siemens_coefficient = 0.9
|
||||
chest_type = /obj/item/clothing/suit/fluff/nikki
|
||||
|
||||
req_access = list()
|
||||
req_one_access = list()
|
||||
|
||||
helm_type = null
|
||||
glove_type = null
|
||||
boot_type = null
|
||||
|
||||
allowed = list(
|
||||
/obj/item/device/flashlight,
|
||||
/obj/item/weapon/tank,
|
||||
/obj/item/device/suit_cooling_unit,
|
||||
/obj/item/weapon/storage,
|
||||
)
|
||||
|
||||
/obj/item/weapon/rig/nikki/attackby(obj/item/W, mob/living/user)
|
||||
//This thing accepts ONLY mounted sizeguns. That's IT. Nothing else!
|
||||
if(open && istype(W,/obj/item/rig_module) && !istype(W,/obj/item/rig_module/mounted/sizegun))
|
||||
to_chat(user, "<span class='danger'>\The [src] only accepts mounted size gun modules.</span>")
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/weapon/rig/nikki/mob_can_equip(var/mob/living/carbon/human/M, slot, disable_warning = 0) // Feel free to (try to) put Nikki's hat on! The necklace though is a flat-out no-go.
|
||||
if(..())
|
||||
if (M.ckey == "ryumi")
|
||||
return 1
|
||||
else if (M.get_active_hand() == src)
|
||||
to_chat(M, "<span class='warning'>For some reason, the necklace seems to never quite get past your head when you try to put it on... Weird, it looked like it would fit.</span>")
|
||||
return 0
|
||||
|
||||
//Nickcrazy - Damon Bones Xrim
|
||||
/obj/item/clothing/suit/storage/toggle/bomber/bombersec
|
||||
name = "Security Bomber Jacket"
|
||||
|
||||
@@ -82,3 +82,8 @@
|
||||
|
||||
/obj/item/projectile/beam/sizelaser/grow
|
||||
set_size = 2.0 //200% of current size
|
||||
|
||||
/obj/item/weapon/gun/energy/sizegun/mounted
|
||||
name = "mounted size gun"
|
||||
self_recharge = 1
|
||||
use_external_power = 1
|
||||
BIN
icons/obj/rig_modules_vr.dmi
Normal file
|
After Width: | Height: | Size: 455 B |
BIN
icons/vore/custom_clothes_left_hand_vr.dmi
Normal file
|
After Width: | Height: | Size: 409 B |
BIN
icons/vore/custom_clothes_right_hand_vr.dmi
Normal file
|
After Width: | Height: | Size: 413 B |
|
Before Width: | Height: | Size: 214 KiB After Width: | Height: | Size: 215 KiB |
BIN
icons/vore/custom_onmob_32x48_vr.dmi
Normal file
|
After Width: | Height: | Size: 542 B |
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 11 KiB |
@@ -2024,6 +2024,7 @@
|
||||
#include "code\modules\clothing\spacesuits\rig\modules\specific\jetpack.dm"
|
||||
#include "code\modules\clothing\spacesuits\rig\modules\specific\metalfoam_launcher.dm"
|
||||
#include "code\modules\clothing\spacesuits\rig\modules\specific\mounted_gun.dm"
|
||||
#include "code\modules\clothing\spacesuits\rig\modules\specific\mounted_gun_vr.dm"
|
||||
#include "code\modules\clothing\spacesuits\rig\modules\specific\pat_module_vr.dm"
|
||||
#include "code\modules\clothing\spacesuits\rig\modules\specific\powersink.dm"
|
||||
#include "code\modules\clothing\spacesuits\rig\modules\specific\rescue_pharm_vr.dm"
|
||||
|
||||