diff --git a/code/__defines/species_languages_vr.dm b/code/__defines/species_languages_vr.dm
index 8c5c505f82a..224478646db 100644
--- a/code/__defines/species_languages_vr.dm
+++ b/code/__defines/species_languages_vr.dm
@@ -4,6 +4,7 @@
#define LANGUAGE_ECUREUILIAN "Ecureuilian"
#define LANGUAGE_DAEMON "Daemon"
#define LANGUAGE_ENOCHIAN "Enochian"
+#define LANGUAGE_VESPINAE "Vespinae"
#define LANGUAGE_CHIMPANZEE "Chimpanzee"
#define LANGUAGE_NEAERA "Neaera"
diff --git a/code/_helpers/global_lists_vr.dm b/code/_helpers/global_lists_vr.dm
index fa755e6eeb6..09911f47617 100644
--- a/code/_helpers/global_lists_vr.dm
+++ b/code/_helpers/global_lists_vr.dm
@@ -28,24 +28,17 @@ var/global/list/vantag_choices_list = list(
VANTAG_KIDNAP = "Be Kidnapped",
VANTAG_KILL = "Be Killed")
-/* Time to finally undo this. Replaced with digest_act on these items.
-//Important items that are preserved when people are digested, etc.
-//On Polaris, different from Cryo list as MMIs need to be removed for FBPs to be logged out.
-var/global/list/important_items = list(
+//Blacklist to exclude items from object ingestion. Digestion blacklist located in digest_act_vr.dm
+var/global/list/item_vore_blacklist = list(
/obj/item/weapon/hand_tele,
/obj/item/weapon/card/id/gold/captain/spare,
- /obj/item/device/aicard,
- /obj/item/device/mmi/digital/posibrain,
- /obj/item/device/paicard,
/obj/item/weapon/gun,
/obj/item/weapon/pinpointer,
/obj/item/clothing/shoes/magboots,
/obj/item/blueprints,
/obj/item/clothing/head/helmet/space,
/obj/item/weapon/disk/nuclear,
- /obj/item/clothing/suit/storage/hooded/wintercoat/roiz,
- /obj/item/device/perfect_tele_beacon)
-*/
+ /obj/item/clothing/suit/storage/hooded/wintercoat/roiz)
var/global/list/digestion_sounds = list(
'sound/vore/digest1.ogg',
diff --git a/code/controllers/Processes/scheduler.dm b/code/controllers/Processes/scheduler.dm
index c852264bb75..c68ef116b6e 100644
--- a/code/controllers/Processes/scheduler.dm
+++ b/code/controllers/Processes/scheduler.dm
@@ -137,6 +137,7 @@
var/datum/callback/callback
/datum/scheduled_task/callback/New(var/trigger_time, var/datum/callback, var/proc/task_after_process, var/list/task_after_process_args)
+ src.callback = callback
..(trigger_time = trigger_time, task_after_process = task_after_process, task_after_process_args = task_after_process_args)
/datum/scheduled_task/callback/process()
diff --git a/code/datums/autolathe/tools_vr.dm b/code/datums/autolathe/tools_vr.dm
new file mode 100644
index 00000000000..c89d768f0b1
--- /dev/null
+++ b/code/datums/autolathe/tools_vr.dm
@@ -0,0 +1,3 @@
+/datum/category_item/autolathe/tools/prybar
+ name = "prybar"
+ path =/obj/item/weapon/tool/prybar
diff --git a/code/datums/supplypacks/hospitality_vr.dm b/code/datums/supplypacks/hospitality_vr.dm
index 642032d46f1..95a921f8176 100644
--- a/code/datums/supplypacks/hospitality_vr.dm
+++ b/code/datums/supplypacks/hospitality_vr.dm
@@ -81,4 +81,4 @@
containername = "Chinese takeout crate"
/datum/supply_pack/randomised/hospitality/pizza
- cost = 50
\ No newline at end of file
+ cost = 25
diff --git a/code/datums/underwear/socks.dm b/code/datums/underwear/socks.dm
index fc1c96ce538..e1fe7e07f2f 100644
--- a/code/datums/underwear/socks.dm
+++ b/code/datums/underwear/socks.dm
@@ -56,4 +56,8 @@
/datum/category_item/underwear/socks/fishnet
name = "Fishnet"
- icon_state = "fishnet"
\ No newline at end of file
+ icon_state = "fishnet"
+
+/datum/category_item/underwear/socks/leggings
+ name = "Leggings"
+ icon_state = "leggings"
\ No newline at end of file
diff --git a/code/datums/underwear/top.dm b/code/datums/underwear/top.dm
index 72ac72c2320..28a17c3ab7b 100644
--- a/code/datums/underwear/top.dm
+++ b/code/datums/underwear/top.dm
@@ -62,4 +62,12 @@
/datum/category_item/underwear/top/striped_bra
name = "Striped Bra"
icon_state = "striped_bra"
- has_color = TRUE
\ No newline at end of file
+ has_color = TRUE
+
+/datum/category_item/underwear/top/binder
+ name = "Binder"
+ icon_state = "binder_s"
+
+/datum/category_item/underwear/top/straplessbinder
+ name = "Binder Strapless"
+ icon_state = "straplessbinder_s"
\ No newline at end of file
diff --git a/code/datums/underwear/undershirts.dm b/code/datums/underwear/undershirts.dm
index 1bbbae7fb5b..1f91d1222cc 100644
--- a/code/datums/underwear/undershirts.dm
+++ b/code/datums/underwear/undershirts.dm
@@ -165,4 +165,16 @@
/datum/category_item/underwear/undershirt/tiedye
name = "Tiedye Shirt"
- icon_state = "tiedye"
\ No newline at end of file
+ icon_state = "tiedye"
+
+/datum/category_item/underwear/undershirt/longstripe_pink
+ name = "Longsleeve Striped Shirt, Pink"
+ icon_state = "longstripe_pink_s"
+
+/datum/category_item/underwear/undershirt/wingshirt
+ name = "Pink Wing Shirt"
+ icon_state = "wing_shirt_s"
+
+/datum/category_item/underwear/undershirt/pinkblack_tshirt
+ name = "Pink and Black T-Shirt"
+ icon_state = "pinkblack_tshirt"
\ No newline at end of file
diff --git a/code/game/jobs/access_datum_vr.dm b/code/game/jobs/access_datum_vr.dm
new file mode 100644
index 00000000000..872db2ae73f
--- /dev/null
+++ b/code/game/jobs/access_datum_vr.dm
@@ -0,0 +1,12 @@
+//Moved from southern_cross_jobs.vr to fix a runtime
+var/const/access_explorer = 43
+/datum/access/explorer
+ id = access_explorer
+ desc = "Explorer"
+ region = ACCESS_REGION_GENERAL
+
+var/const/access_pilot = 67
+/datum/access/pilot
+ id = access_pilot
+ desc = "Pilot"
+ region = ACCESS_REGION_SUPPLY
diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm
index d9623d06e8e..0316f824c80 100644
--- a/code/game/jobs/job/security.dm
+++ b/code/game/jobs/job/security.dm
@@ -18,7 +18,7 @@
access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway, access_external_airlocks)//VOREStation Edit
minimal_access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory,
access_forensics_lockers, access_morgue, access_maint_tunnels, access_all_personal_lockers,
- access_research, access_engine, access_mining, access_medical, access_construction, access_mailsorting,
+ access_research, access_engine, access_mining, access_construction, access_mailsorting,
access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway, access_external_airlocks)//VOREStation Edit
minimum_character_age = 25
minimal_player_age = 14
diff --git a/code/game/jobs/jobs.dm b/code/game/jobs/jobs.dm
index 395b46e934f..cd698067f5d 100644
--- a/code/game/jobs/jobs.dm
+++ b/code/game/jobs/jobs.dm
@@ -73,7 +73,7 @@ var/list/medical_positions = list(
"Geneticist",
"Psychiatrist",
"Chemist",
- "Search and Rescue", // VOREStation Edit - Moved SAR from planetary -> medical
+ "Field Medic", // VOREStation Edit - Moved SAR from planetary -> medical
"Paramedic"
)
diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm
index fd1dbf529db..389901c2732 100644
--- a/code/game/machinery/cryopod.dm
+++ b/code/game/machinery/cryopod.dm
@@ -391,6 +391,13 @@
var/obj/belly/B = belly
for(var/mob/living/sub_L in B)
despawn_occupant(sub_L)
+ for(var/obj/item/W in B)
+ W.forceMove(src)
+ if(W.contents.len)
+ for(var/obj/item/O in W.contents)
+ if(istype(O,/obj/item/weapon/storage/internal))
+ continue
+ O.forceMove(src)
if(ishuman(to_despawn))
var/mob/living/carbon/human/H = to_despawn
if(H.nif)
diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm
index 4c447e91f30..fa808ea051a 100644
--- a/code/game/machinery/spaceheater.dm
+++ b/code/game/machinery/spaceheater.dm
@@ -132,7 +132,7 @@
if("cellremove")
if(panel_open && cell && !usr.get_active_hand())
- usr.visible_message("\The usr] removes \the [cell] from \the [src].", "You remove \the [cell] from \the [src].")
+ usr.visible_message("\The [usr] removes \the [cell] from \the [src].", "You remove \the [cell] from \the [src].")
cell.update_icon()
usr.put_in_hands(cell)
cell.add_fingerprint(usr)
diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm
index 672b0a2c4e9..480e613c27f 100644
--- a/code/game/machinery/washing_machine.dm
+++ b/code/game/machinery/washing_machine.dm
@@ -50,6 +50,7 @@
else
state = 5
update_icon()
+ playsound(src, 'sound/items/washingmachine.ogg', 50, 1, 1)
sleep(200)
for(var/atom/A in washing)
A.clean_blood()
diff --git a/code/game/mecha/combat/durand.dm b/code/game/mecha/combat/durand.dm
index 7b9eb676912..ab46a48fbc1 100644
--- a/code/game/mecha/combat/durand.dm
+++ b/code/game/mecha/combat/durand.dm
@@ -48,6 +48,7 @@
set popup_menu = 0
if(usr!=src.occupant)
return
+ playsound(src, 'sound/mecha/duranddefencemode.ogg', 50, 1)
defence = !defence
if(defence)
deflect_chance = defence_deflect
diff --git a/code/game/mecha/combat/gygax.dm b/code/game/mecha/combat/gygax.dm
index 591351032b3..978bbdeda87 100644
--- a/code/game/mecha/combat/gygax.dm
+++ b/code/game/mecha/combat/gygax.dm
@@ -37,6 +37,7 @@
wreckage = /obj/effect/decal/mecha_wreckage/gygax/dark
max_equip = 4
step_energy_drain = 5
+ mech_faction = MECH_FACTION_SYNDI
max_hull_equip = 1
max_weapon_equip = 2
@@ -84,6 +85,7 @@
step_energy_drain = step_energy_drain*overload_coeff
src.occupant_message("You enable leg actuators overload.")
src.log_message("Toggled leg actuators overload.")
+ playsound(src, 'sound/mecha/mechanical_toggle.ogg', 50, 1)
return
/obj/mecha/combat/gygax/dyndomove(direction)
diff --git a/code/game/mecha/combat/marauder.dm b/code/game/mecha/combat/marauder.dm
index 32366003097..27bdf905a94 100644
--- a/code/game/mecha/combat/marauder.dm
+++ b/code/game/mecha/combat/marauder.dm
@@ -22,6 +22,7 @@
internal_damage_threshold = 25
force = 45
max_equip = 4
+ mech_faction = MECH_FACTION_NT
max_hull_equip = 3
max_weapon_equip = 3
@@ -42,6 +43,7 @@
force = 55
max_equip = 5
+
/obj/mecha/combat/marauder/mauler
desc = "Heavy-duty, combat exosuit, developed off of the existing Marauder model."
name = "Mauler"
@@ -49,6 +51,7 @@
initial_icon = "mauler"
operation_req_access = list(access_syndicate)
wreckage = /obj/effect/decal/mecha_wreckage/mauler
+ mech_faction = MECH_FACTION_SYNDI
/obj/mecha/combat/marauder/New()
..()
diff --git a/code/game/mecha/equipment/mecha_equipment.dm b/code/game/mecha/equipment/mecha_equipment.dm
index fec8c18e1df..825dfde5f53 100644
--- a/code/game/mecha/equipment/mecha_equipment.dm
+++ b/code/game/mecha/equipment/mecha_equipment.dm
@@ -20,10 +20,13 @@
var/required_type = /obj/mecha //may be either a type or a list of allowed types
var/equip_type = null //mechaequip2
var/allow_duplicate = FALSE
+ var/ready_sound = 'sound/mecha/mech_reload_default.ogg' //Sound to play once the fire delay passed.
/obj/item/mecha_parts/mecha_equipment/proc/do_after_cooldown(target=1)
sleep(equip_cooldown)
set_ready_state(1)
+ if(ready_sound) //Kind of like the kinetic accelerator.
+ playsound(loc, ready_sound, 50, 1, -1)
if(target && chassis)
return 1
return 0
@@ -69,10 +72,22 @@
src.update_chassis_page()
chassis.occupant_message("The [src] is destroyed!")
chassis.log_append_to_last("[src] is destroyed.",1)
- if(istype(src, /obj/item/mecha_parts/mecha_equipment/weapon))
- chassis.occupant << sound('sound/mecha/weapdestr.ogg',volume=50)
- else
- chassis.occupant << sound('sound/mecha/critdestr.ogg',volume=50)
+ if(istype(src, /obj/item/mecha_parts/mecha_equipment/weapon))//Gun
+ switch(chassis.mech_faction)
+ if(MECH_FACTION_NT)
+ src.chassis.occupant << sound('sound/mecha/weapdestrnano.ogg',volume=70)
+ if(MECH_FACTION_SYNDI)
+ src.chassis.occupant << sound('sound/mecha/weapdestrsyndi.ogg',volume=60)
+ else
+ src.chassis.occupant << sound('sound/mecha/weapdestr.ogg',volume=50)
+ else //Not a gun
+ switch(chassis.mech_faction)
+ if(MECH_FACTION_NT)
+ src.chassis.occupant << sound('sound/mecha/critdestrnano.ogg',volume=70)
+ if(MECH_FACTION_SYNDI)
+ src.chassis.occupant << sound('sound/mecha/critdestrsyndi.ogg',volume=70)
+ else
+ src.chassis.occupant << sound('sound/mecha/critdestr.ogg',volume=50)
spawn
qdel(src)
return
diff --git a/code/game/mecha/equipment/tools/tools.dm b/code/game/mecha/equipment/tools/tools.dm
index 263bd93d7e2..8dcadc42b66 100644
--- a/code/game/mecha/equipment/tools/tools.dm
+++ b/code/game/mecha/equipment/tools/tools.dm
@@ -128,7 +128,7 @@
desc = "This is an upgraded version of the drill that'll pierce the heavens! (Can be attached to: Combat and Engineering Exosuits)"
icon_state = "mecha_diamond_drill"
origin_tech = list(TECH_MATERIAL = 4, TECH_ENGINEERING = 3)
- equip_cooldown = 20
+ equip_cooldown = 10
force = 15
/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill/action(atom/target)
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index edb275a2faa..2605e7e0eb0 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -7,6 +7,11 @@
#define MELEE 1
#define RANGED 2
+
+#define MECH_FACTION_NT "nano"
+#define MECH_FACTION_SYNDI "syndi"
+#define MECH_FACTION_NONE "none"
+
/obj/mecha
name = "Mecha"
desc = "Exosuit"
@@ -41,6 +46,10 @@
var/lights_power = 6
var/force = 0
+ var/mech_faction = null
+ var/firstactivation = 0 //It's simple. If it's 0, no one entered it yet. Otherwise someone entered it at least once.
+
+
//inner atmos
var/use_internal_tank = 0
var/internal_tank_valve = ONE_ATMOSPHERE
@@ -500,7 +509,7 @@
internal_damage |= int_dam_flag
pr_internal_damage.start()
log_append_to_last("Internal damage of type [int_dam_flag].",1)
- occupant << sound('sound/machines/warning-buzzer.ogg',wait=0)
+ occupant << sound('sound/mecha/internaldmgalarm.ogg',volume=50) //Better sounding.
return
/obj/mecha/proc/clearInternalDamage(int_dam_flag)
@@ -1008,6 +1017,7 @@
if(network && !(internal_tank.return_air() in network.gases))
network.gases += internal_tank.return_air()
network.update = 1
+ playsound(src, 'sound/mecha/gasconnected.ogg', 50, 1)
log_message("Connected to gas port.")
return 1
@@ -1021,6 +1031,7 @@
connected_port.connected_device = null
connected_port = null
+ playsound(src, 'sound/mecha/gasdisconnected.ogg', 50, 1)
src.log_message("Disconnected from gas port.")
return 1
@@ -1078,6 +1089,7 @@
else set_light(light_range - lights_power)
src.occupant_message("Toggled lights [lights?"on":"off"].")
log_message("Toggled lights [lights?"on":"off"].")
+ playsound(src, 'sound/mecha/heavylightswitch.ogg', 50, 1)
return
@@ -1178,8 +1190,22 @@
src.icon_state = src.reset_icon()
set_dir(dir_in)
playsound(src, 'sound/machines/windowdoor.ogg', 50, 1)
- if(!hasInternalDamage())
- src.occupant << sound('sound/mecha/nominal.ogg',volume=50)
+ if(!hasInternalDamage()) //Otherwise it's not nominal!
+ switch(mech_faction)
+ if(MECH_FACTION_NT)//The good guys category
+ if(firstactivation)//First time = long activation sound
+ firstactivation = 1
+ src.occupant << sound('sound/mecha/LongNanoActivation.ogg',volume=50)
+ else
+ src.occupant << sound('sound/mecha/nominalnano.ogg',volume=50)
+ if(MECH_FACTION_SYNDI)//Bad guys
+ if(firstactivation)
+ firstactivation = 1
+ src.occupant << sound('sound/mecha/LongSyndiActivation.ogg',volume=50)
+ else
+ src.occupant << sound('sound/mecha/nominalsyndi.ogg',volume=50)
+ else//Everyone else gets the normal noise
+ src.occupant << sound('sound/mecha/nominal.ogg',volume=50)
return 1
else
return 0
diff --git a/code/game/objects/items/devices/PDA/PDA_vr.dm b/code/game/objects/items/devices/PDA/PDA_vr.dm
index e21fcbea8b7..20558c965ca 100644
--- a/code/game/objects/items/devices/PDA/PDA_vr.dm
+++ b/code/game/objects/items/devices/PDA/PDA_vr.dm
@@ -6,4 +6,12 @@
/obj/item/device/pda/pathfinder
default_cartridge = /obj/item/weapon/cartridge/signal/science
+ icon_state = "pda-lawyer-old"
+
+/obj/item/device/pda/explorer
+ default_cartridge = /obj/item/weapon/cartridge/signal/science
+ icon_state = "pda-det"
+
+/obj/item/device/pda/sar
+ default_cartridge = /obj/item/weapon/cartridge/medical
icon_state = "pda-h"
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index 44d3c98c8c4..b25d86897fe 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -68,6 +68,7 @@
cell.charge = 0
visible_message("\The [src] flickers before going dull.")
set_light(0)
+ playsound(src.loc, 'sound/effects/sparks3.ogg', 10, 1, -3) //Small cue that your light went dull in your pocket.
on = 0
update_icon()
@@ -180,6 +181,7 @@
user.put_in_hands(cell)
cell = null
user << "You remove the cell from the [src]."
+ playsound(src, 'sound/machines/button.ogg', 30, 1, 0)
on = 0
update_icon()
return
@@ -228,6 +230,7 @@
W.loc = src
cell = W
user << "You install a cell in \the [src]."
+ playsound(src, 'sound/machines/button.ogg', 30, 1, 0)
update_icon()
else
user << "\The [src] already has a cell."
diff --git a/code/game/objects/items/devices/radio/jammer_vr.dm b/code/game/objects/items/devices/radio/jammer_vr.dm
new file mode 100644
index 00000000000..a92005621aa
--- /dev/null
+++ b/code/game/objects/items/devices/radio/jammer_vr.dm
@@ -0,0 +1,4 @@
+//Unlimited use, unlimited range jammer for admins. Turn it on, drop it somewhere, it works.
+/obj/item/device/radio_jammer/admin
+ jam_range = 255
+ tick_cost = 0
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index 231693305fe..9e03e7ff63e 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -1,4 +1,5 @@
// Access check is of the type requires one. These have been carefully selected to avoid allowing the janitor to see channels he shouldn't
+//VOREStation Edit Start - Updating this for Virgo
var/global/list/default_internal_channels = list(
num2text(PUB_FREQ) = list(),
num2text(AI_FREQ) = list(access_synth),
@@ -10,16 +11,18 @@ var/global/list/default_internal_channels = list(
num2text(MED_I_FREQ)=list(access_medical_equip),
num2text(SEC_FREQ) = list(access_security),
num2text(SEC_I_FREQ)=list(access_security),
- num2text(SCI_FREQ) = list(access_tox,access_robotics,access_xenobiology),
- num2text(SUP_FREQ) = list(access_cargo),
- num2text(SRV_FREQ) = list(access_janitor, access_hydroponics)
+ num2text(SCI_FREQ) = list(access_tox, access_robotics, access_xenobiology, access_explorer),
+ num2text(SUP_FREQ) = list(access_cargo, access_mining_station),
+ num2text(SRV_FREQ) = list(access_janitor, access_library, access_hydroponics, access_bar, access_kitchen),
+ num2text(EXP_FREQ) = list(access_explorer, access_pilot, access_rd)
)
var/global/list/default_medbay_channels = list(
num2text(PUB_FREQ) = list(),
- num2text(MED_FREQ) = list(access_medical_equip),
- num2text(MED_I_FREQ) = list(access_medical_equip)
+ num2text(MED_FREQ) = list(),
+ num2text(MED_I_FREQ) = list()
)
+//VOREStation Edit End
/obj/item/device/radio
icon = 'icons/obj/radio_vr.dmi' //VOREStation Edit
@@ -480,6 +483,13 @@ var/global/list/default_medbay_channels = list(
//THIS IS TEMPORARY. YEAH RIGHT
if(!connection) return 0 //~Carn
+//VOREStation Add Start
+ if(bluespace_radio)
+ return Broadcast_Message(connection, M, voicemask, pick(M.speak_emote),
+ src, message, displayname, jobname, real_name, M.voice_name,
+ 0, signal.data["compression"], list(0), connection.frequency,verb,speaking)
+//VOREStation Add End
+
return Broadcast_Message(connection, M, voicemask, pick(M.speak_emote),
src, message, displayname, jobname, real_name, M.voice_name,
filter_type, signal.data["compression"], list(position.z), connection.frequency,verb,speaking)
@@ -518,7 +528,8 @@ var/global/list/default_medbay_channels = list(
if(!(0 in level))
var/turf/position = get_turf(src)
if(!position || !(position.z in level))
- return -1
+ if(!bluespace_radio) //VOREStation Edit
+ return -1
if(freq in ANTAG_FREQS)
if(!(src.syndie))//Checks to see if it's allowed on that frequency, based on the encryption keys
return -1
diff --git a/code/game/objects/items/devices/radio/radio_vr.dm b/code/game/objects/items/devices/radio/radio_vr.dm
new file mode 100644
index 00000000000..d3681423f3b
--- /dev/null
+++ b/code/game/objects/items/devices/radio/radio_vr.dm
@@ -0,0 +1,146 @@
+/obj/item/device/radio
+ var/bluespace_radio = FALSE
+
+/obj/item/device/radio/phone
+ subspace_transmission = 1
+ canhear_range = 0
+ adhoc_fallback = TRUE
+
+/obj/item/device/radio/emergency
+ name = "Medbay Emergency Radio Link"
+ icon_state = "med_walkietalkie"
+ frequency = MED_I_FREQ
+ subspace_transmission = 1
+ adhoc_fallback = TRUE
+
+/obj/item/device/radio/emergency/New()
+ ..()
+ internal_channels = default_medbay_channels.Copy()
+
+//Pathfinder's Subspace Radio
+/obj/item/device/subspaceradio
+ name = "subspace radio"
+ desc = "A powerful new radio recently gifted to Nanotrasen from KHI, this communications device has the ability to send and recieve transmissions from anywhere."
+ icon = 'icons/vore/custom_items_vr.dmi'
+ icon_state = "radiopack"
+ item_state = "parachute"
+ slot_flags = SLOT_BACK
+ force = 5
+ throwforce = 6
+ preserve_item = 1
+ w_class = ITEMSIZE_LARGE
+ action_button_name = "Remove/Replace Handset"
+
+ var/obj/item/device/radio/subspacehandset/linked/handset
+
+/obj/item/device/subspaceradio/New() //starts without a cell for rnd
+ ..()
+ if(ispath(handset))
+ handset = new handset(src, src)
+ else
+ handset = new(src, src)
+
+/obj/item/device/subspaceradio/Destroy()
+ . = ..()
+ QDEL_NULL(handset)
+
+/obj/item/device/subspaceradio/ui_action_click()
+ toggle_handset()
+
+/obj/item/device/subspaceradio/attack_hand(mob/user)
+ if(loc == user)
+ toggle_handset()
+ else
+ ..()
+
+/obj/item/device/subspaceradio/MouseDrop()
+ if(ismob(loc))
+ if(!CanMouseDrop(src))
+ return
+ var/mob/M = loc
+ if(!M.unEquip(src))
+ return
+ add_fingerprint(usr)
+ M.put_in_any_hand_if_possible(src)
+
+/obj/item/device/subspaceradio/attackby(obj/item/weapon/W, mob/user, params)
+ if(W == handset)
+ reattach_handset(user)
+ else
+ return ..()
+
+/obj/item/device/subspaceradio/verb/toggle_handset()
+ set name = "Toggle Handset"
+ set category = "Object"
+
+ var/mob/living/carbon/human/user = usr
+ if(!handset)
+ to_chat(user, "The handset is missing!")
+ return
+
+ if(handset.loc != src)
+ reattach_handset(user) //Remove from their hands and back onto the defib unit
+ return
+
+ if(!slot_check())
+ to_chat(user, "You need to equip [src] before taking out [handset].")
+ else
+ if(!usr.put_in_hands(handset)) //Detach the handset into the user's hands
+ to_chat(user, "You need a free hand to hold the handset!")
+ update_icon() //success
+
+//checks that the base unit is in the correct slot to be used
+/obj/item/device/subspaceradio/proc/slot_check()
+ var/mob/M = loc
+ if(!istype(M))
+ return 0 //not equipped
+
+ if((slot_flags & SLOT_BACK) && M.get_equipped_item(slot_back) == src)
+ return 1
+ if((slot_flags & SLOT_BELT) && M.get_equipped_item(slot_belt) == src)
+ return 1
+
+ return 0
+
+/obj/item/device/subspaceradio/dropped(mob/user)
+ ..()
+ reattach_handset(user) //handset attached to a base unit should never exist outside of their base unit or the mob equipping the base unit
+
+/obj/item/device/subspaceradio/proc/reattach_handset(mob/user)
+ if(!handset) return
+
+ if(ismob(handset.loc))
+ var/mob/M = handset.loc
+ if(M.drop_from_inventory(handset, src))
+ to_chat(user, "\The [handset] snap back into the main unit.")
+ else
+ handset.forceMove(src)
+
+//Subspace Radio Handset
+/obj/item/device/radio/subspacehandset
+ name = "subspace radio handset"
+ desc = "A large walkie talkie attached to the subspace radio by a retractable cord. It sits comfortably on a slot in the radio when not in use."
+ bluespace_radio = TRUE
+ icon_state = "signaller"
+ slot_flags = null
+ w_class = ITEMSIZE_LARGE
+
+/obj/item/device/radio/subspacehandset/linked
+ var/obj/item/device/subspaceradio/base_unit
+
+/obj/item/device/radio/subspacehandset/linked/New(newloc, obj/item/device/subspaceradio/radio)
+ base_unit = radio
+ ..(newloc)
+
+/obj/item/device/radio/subspacehandset/linked/Destroy()
+ if(base_unit)
+ //ensure the base unit's icon updates
+ if(base_unit.handset == src)
+ base_unit.handset = null
+ base_unit = null
+ return ..()
+
+/obj/item/device/radio/subspacehandset/linked/dropped(mob/user)
+ ..() //update twohanding
+ if(base_unit)
+ base_unit.reattach_handset(user) //handset attached to a base unit should never exist outside of their base unit or the mob equipping the base unit
diff --git a/code/game/objects/items/weapons/RSF.dm b/code/game/objects/items/weapons/RSF.dm
index d404b5cd445..260a01b04de 100644
--- a/code/game/objects/items/weapons/RSF.dm
+++ b/code/game/objects/items/weapons/RSF.dm
@@ -7,55 +7,82 @@ RSF
/obj/item/weapon/rsf
name = "\improper Rapid-Service-Fabricator"
desc = "A device used to rapidly deploy service items."
- icon = 'icons/obj/items.dmi'
+ description_info = "Control Clicking on the device will allow you to choose the glass it dispenses when in the proper mode."
+ icon = 'icons/obj/tools.dmi'
icon_state = "rcd"
opacity = 0
density = 0
anchored = 0.0
var/stored_matter = 30
var/mode = 1
+ var/obj/item/weapon/reagent_containers/glasstype = /obj/item/weapon/reagent_containers/food/drinks/metaglass
+
+ var/list/container_types = list(
+ "metamorphic glass" = /obj/item/weapon/reagent_containers/food/drinks/metaglass,
+ "half-pint glass" = /obj/item/weapon/reagent_containers/food/drinks/glass2/square,
+ "rocks glass" = /obj/item/weapon/reagent_containers/food/drinks/glass2/rocks,
+ "milkshake glass" = /obj/item/weapon/reagent_containers/food/drinks/glass2/shake,
+ "cocktail glass" = /obj/item/weapon/reagent_containers/food/drinks/glass2/cocktail,
+ "shot glass" = /obj/item/weapon/reagent_containers/food/drinks/glass2/shot,
+ "pint glass" = /obj/item/weapon/reagent_containers/food/drinks/glass2/pint,
+ "mug" = /obj/item/weapon/reagent_containers/food/drinks/glass2/mug,
+ "wine glass" = /obj/item/weapon/reagent_containers/food/drinks/glass2/wine,
+ "condiment bottle" = /obj/item/weapon/reagent_containers/food/condiment
+ )
+
w_class = ITEMSIZE_NORMAL
/obj/item/weapon/rsf/examine(mob/user)
if(..(user, 0))
- user << "It currently holds [stored_matter]/30 fabrication-units."
+ to_chat(user,"It currently holds [stored_matter]/30 fabrication-units.")
/obj/item/weapon/rsf/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
if (istype(W, /obj/item/weapon/rcd_ammo))
if ((stored_matter + 10) > 30)
- user << "The RSF can't hold any more matter."
+ to_chat(user, "The RSF can't hold any more matter.")
return
qdel(W)
stored_matter += 10
playsound(src.loc, 'sound/machines/click.ogg', 10, 1)
- user << "The RSF now holds [stored_matter]/30 fabrication-units."
+ to_chat(user,"The RSF now holds [stored_matter]/30 fabrication-units.")
return
+/obj/item/weapon/rsf/CtrlClick(mob/living/user)
+ if(!Adjacent(user) || !istype(user))
+ to_chat(user,"You are too far away.")
+ return
+ var/glass_choice = input(user, "Please choose which type of glass you would like to produce.") as null|anything in container_types
+
+ if(glass_choice)
+ glasstype = container_types[glass_choice]
+ else
+ glasstype = /obj/item/weapon/reagent_containers/food/drinks/metaglass
+
/obj/item/weapon/rsf/attack_self(mob/user as mob)
playsound(src.loc, 'sound/effects/pop.ogg', 50, 0)
if (mode == 1)
mode = 2
- user << "Changed dispensing mode to 'Drinking Glass:Pint'"
+ to_chat(user,"Changed dispensing mode to 'Container'.")
return
if (mode == 2)
mode = 3
- user << "Changed dispensing mode to 'Paper'"
+ to_chat(user,"Changed dispensing mode to 'Paper'")
return
if (mode == 3)
mode = 4
- user << "Changed dispensing mode to 'Pen'"
+ to_chat(user,"Changed dispensing mode to 'Pen'")
return
if (mode == 4)
mode = 5
- user << "Changed dispensing mode to 'Dice Pack'"
+ to_chat(user,"Changed dispensing mode to 'Dice Pack'")
return
if (mode == 5)
mode = 1
- user << "Changed dispensing mode to 'Cigarette'"
+ to_chat(user,"Changed dispensing mode to 'Cigarette'")
return
/obj/item/weapon/rsf/afterattack(atom/A, mob/user as mob, proximity)
@@ -82,7 +109,7 @@ RSF
product = new /obj/item/clothing/mask/smokable/cigarette()
used_energy = 10
if(2)
- product = new /obj/item/weapon/reagent_containers/food/drinks/glass2/pint()
+ product = new glasstype()
used_energy = 50
if(3)
product = new /obj/item/weapon/paper()
@@ -94,7 +121,7 @@ RSF
product = new /obj/item/weapon/storage/pill_bottle/dice()
used_energy = 200
- user << "Dispensing [product ? product : "product"]..."
+ to_chat(user,"Dispensing [product ? product : "product"]...")
product.loc = get_turf(A)
if(isrobot(user))
@@ -103,4 +130,4 @@ RSF
R.cell.use(used_energy)
else
stored_matter--
- user << "The RSF now holds [stored_matter]/30 fabrication-units."
+ to_chat(user,"The RSF now holds [stored_matter]/30 fabrication-units.")
diff --git a/code/game/objects/items/weapons/implants/implant_vr.dm b/code/game/objects/items/weapons/implants/implant_vr.dm
index ebcc2d9f546..006c4884e1f 100644
--- a/code/game/objects/items/weapons/implants/implant_vr.dm
+++ b/code/game/objects/items/weapons/implants/implant_vr.dm
@@ -39,3 +39,101 @@
source.mind.store_memory("A implant can be activated by using the smile emote, say *smile to attempt to activate.", 0, 0)
to_chat(source,"The implanted language implant can be activated by using the smile emote, say *smile to attempt to activate.")
return 1
+
+//////////////////////////////
+// Size Control Implant
+//////////////////////////////
+/obj/item/weapon/implant/sizecontrol
+ name = "size control implant"
+ desc = "Implant which allows to control host size via voice commands."
+ icon_state = "implant_evil"
+ var/owner
+ var/active = TRUE
+
+/obj/item/weapon/implant/sizecontrol/get_data()
+ var/dat = {"
+Implant Specifications:
+Name:L3-WD Size Controlling Implant
+Life:1-2 weeks after implanting
+
+Function: Resizes the host whenever specific verbal command is received
"}
+ return dat
+
+/obj/item/weapon/implant/sizecontrol/hear_talk(mob/M, msg)
+ if(M == imp_in)
+ return
+ if(owner)
+ if(M != owner)
+ return
+ if(findtext(msg,"ignore"))
+ return
+ var/list/replacechars = list("'" = "",">" = "","<" = "","(" = "",")" = "", "~" = "")
+ msg = replace_characters(msg, replacechars)
+ hear(msg)
+ return
+
+/obj/item/weapon/implant/sizecontrol/see_emote(mob/living/M, message, m_type)
+ if(M == imp_in)
+ return
+ if(owner)
+ if(M != owner)
+ return
+ var/list/replacechars = list("'" = "",">" = "","<" = "","(" = "",")" = "", "~" = "")
+ message = replace_characters(message, replacechars)
+ var/static/regex/say_in_me = new/regex("(")(.*?)()", "g")
+ while(say_in_me.Find(message))
+ if(findtext(say_in_me.match,"ignore"))
+ return
+ hear(say_in_me.group[2])
+
+
+/obj/item/weapon/implant/sizecontrol/hear(var/msg)
+ if (malfunction)
+ return
+
+ if(istype(imp_in, /mob/living))
+ var/mob/living/H = imp_in
+ if(findtext(msg,"implant-toggle"))
+ active = !active
+ if(active)
+ if(findtext(msg,"grow"))
+ H.resize(min(H.size_multiplier*1.5, 2))
+ else if(findtext(msg,"shrink"))
+ H.resize(max(H.size_multiplier*0.5, 0.25))
+ else if(findtext(msg, "resize"))
+ var/static/regex/size_mult = new/regex("\\d+")
+ if(size_mult.Find(msg))
+ var/resizing_value = text2num(size_mult.match)
+ if(findtext(msg, "centimeter")) //Because metric system rules
+ H.resize(Clamp(resizing_value/170 , 0.25, 2)) //170 cm is average crewmember, I think
+ else
+ H.resize(Clamp(resizing_value , 0.25, 2))
+
+
+
+/obj/item/weapon/implant/sizecontrol/post_implant(mob/source, mob/living/user = usr)
+ if(source != user)
+ owner = user
+
+
+/obj/item/weapon/implant/sizecontrol/emp_act(severity)
+ if(istype(imp_in, /mob/living))
+ var/newsize = pick(RESIZE_HUGE,RESIZE_BIG,RESIZE_NORMAL,RESIZE_SMALL,RESIZE_TINY,RESIZE_A_HUGEBIG,RESIZE_A_BIGNORMAL,RESIZE_A_NORMALSMALL,RESIZE_A_SMALLTINY)
+ var/mob/living/H = imp_in
+ H.resize(newsize)
+
+/obj/item/weapon/implanter/sizecontrol
+ name = "size control implant"
+ desc = "Implant which allows to control host size via voice commands."
+ description_info = {"Only accessable by those who implanted the victim. Self-implanting allows everyone to change host size. The following special commands are available:
+'Shrink' - host size decreases.
+'Grow' - host size increases.
+'Resize (NUMBER)' or 'Resize (NUMBER) centimeter(s)' - for accurate size control.
+'Ignore' - keywords in the speech won't have any effect.
+'Implant-toggle' - toggles implant."}
+
+/obj/item/weapon/implanter/sizecontrol/New()
+ src.imp = new /obj/item/weapon/implant/sizecontrol( src )
+ ..()
+ update()
+ return
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/implants/implantreagent_vr.dm b/code/game/objects/items/weapons/implants/implantreagent_vr.dm
index 83a586d2ba1..0b227d95391 100644
--- a/code/game/objects/items/weapons/implants/implantreagent_vr.dm
+++ b/code/game/objects/items/weapons/implants/implantreagent_vr.dm
@@ -82,10 +82,11 @@
var/obj/item/weapon/implant/reagent_generator/rimplant
- for(var/I in src.contents)
- if(istype(I, /obj/item/weapon/implant/reagent_generator))
- rimplant = I
- break
+ for(var/obj/item/organ/external/E in organs)
+ for(var/obj/item/weapon/implant/I in E.implants)
+ if(istype(I, /obj/item/weapon/implant/reagent_generator))
+ rimplant = I
+ break
if(rimplant)
if(container.reagents.total_volume < container.volume)
var/container_name = container.name
diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm
index b6dde04e704..2dd06bc0bce 100644
--- a/code/game/objects/items/weapons/storage/boxes.dm
+++ b/code/game/objects/items/weapons/storage/boxes.dm
@@ -56,7 +56,6 @@
name = "emergency supply box"
desc = "A survival box issued to crew members for use in emergency situations."
starts_with = list(
- /obj/item/clothing/glasses/goggles, //VOREStation Add - Goggles for the phoron atmosphere,
/obj/item/clothing/mask/breath
)
@@ -64,7 +63,6 @@
name = "synthetic supply box"
desc = "A survival box issued to synthetic crew members for use in emergency situations."
starts_with = list(
- /obj/item/clothing/glasses/goggles //VOREStation Add - Goggles for the phoron atmosphere,
)
/obj/item/weapon/storage/box/survival/comp
@@ -72,7 +70,6 @@
desc = "A comprehensive survival box issued to crew members for use in emergency situations. Contains additional supplies."
icon_state = "survival"
starts_with = list(
- /obj/item/clothing/glasses/goggles, //VOREStation Add - Goggles for the phoron atmosphere,
/obj/item/weapon/reagent_containers/hypospray/autoinjector,
/obj/item/stack/medical/bruise_pack,
/obj/item/device/flashlight/glowstick,
diff --git a/code/game/objects/items/weapons/storage/boxes_vr.dm b/code/game/objects/items/weapons/storage/boxes_vr.dm
index d3dcd936dab..81833a29a11 100644
--- a/code/game/objects/items/weapons/storage/boxes_vr.dm
+++ b/code/game/objects/items/weapons/storage/boxes_vr.dm
@@ -1,3 +1,27 @@
+/obj/item/weapon/storage/box/survival
+ starts_with = list(
+ /obj/item/weapon/tool/prybar/red,
+ /obj/item/clothing/glasses/goggles,
+ /obj/item/clothing/mask/breath
+ )
+
+/obj/item/weapon/storage/box/survival/synth
+ starts_with = list(
+ /obj/item/weapon/tool/prybar/red,
+ /obj/item/clothing/glasses/goggles
+ )
+
+/obj/item/weapon/storage/box/survival/comp
+ starts_with = list(
+ /obj/item/weapon/tool/prybar/red,
+ /obj/item/clothing/glasses/goggles,
+ /obj/item/weapon/reagent_containers/hypospray/autoinjector,
+ /obj/item/stack/medical/bruise_pack,
+ /obj/item/device/flashlight/glowstick,
+ /obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar,
+ /obj/item/clothing/mask/breath
+ )
+
/obj/item/weapon/storage/box/explorerkeys
name = "box of volunteer headsets"
desc = "A box full of volunteer headsets, for issuing out to exploration volunteers."
diff --git a/code/game/objects/items/weapons/tools/crowbar_vr.dm b/code/game/objects/items/weapons/tools/crowbar_vr.dm
new file mode 100644
index 00000000000..49cbfa63a9f
--- /dev/null
+++ b/code/game/objects/items/weapons/tools/crowbar_vr.dm
@@ -0,0 +1,32 @@
+/*
+ * Prybar
+ */
+
+/obj/item/weapon/tool/prybar
+ name = "pry bar"
+ desc = "A steel bar with a wedge, designed specifically for opening unpowered doors in an emergency. It comes in a variety of configurations - collect them all!"
+ icon = 'icons/obj/tools_vr.dmi'
+ icon_state = "prybar"
+ flags = CONDUCT
+ slot_flags = SLOT_BELT
+ force = 4
+ throwforce = 5
+ pry = 1
+ item_state = "crowbar"
+ w_class = ITEMSIZE_SMALL
+ origin_tech = list(TECH_ENGINEERING = 1)
+ matter = list(DEFAULT_WALL_MATERIAL = 30)
+ attack_verb = list("whapped", "smacked", "swatted", "thwacked", "hit")
+ usesound = 'sound/items/crowbar.ogg'
+ toolspeed = 1
+ var/random_color = TRUE
+
+/obj/item/weapon/tool/prybar/red
+ icon_state = "prybar_red"
+ item_state = "crowbar_red"
+ random_color = FALSE
+
+/obj/item/weapon/tool/prybar/New()
+ if(random_color)
+ icon_state = "prybar[pick("","_green","_aubergine","_blue")]"
+ . = ..()
diff --git a/code/game/objects/structures/trash_pile.dm b/code/game/objects/structures/trash_pile.dm
index bdb8207cbd2..01c0554170d 100644
--- a/code/game/objects/structures/trash_pile.dm
+++ b/code/game/objects/structures/trash_pile.dm
@@ -221,6 +221,7 @@
prob(4);/obj/item/weapon/storage/pill_bottle/happy,
prob(4);/obj/item/weapon/storage/pill_bottle/zoom,
prob(4);/obj/item/weapon/gun/energy/sizegun,
+ prob(3);/obj/item/weapon/implanter/sizecontrol,
prob(3);/obj/item/weapon/material/butterfly,
prob(3);/obj/item/weapon/material/butterfly/switchblade,
prob(3);/obj/item/clothing/gloves/knuckledusters,
diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm
index 718b7da615a..0327e0c84a9 100644
--- a/code/modules/admin/verbs/adminhelp.dm
+++ b/code/modules/admin/verbs/adminhelp.dm
@@ -343,8 +343,8 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
return
var/msg = "- AdminHelp marked as IC issue! -
"
- msg += "Losing is part of the game!
"
- msg += "Your AdminHelp may also be unabled to be answered due to ongoing events."
+ msg += "This is something that can be solved ICly, and does not currently require admin intervention.
" //VOREStation Edit
+ msg += "Your AdminHelp may also be unable to be answered due to ongoing events." //VOREStation Edit
if(initiator)
to_chat(initiator, msg)
diff --git a/code/modules/client/preference_setup/loadout/loadout_accessories_vr.dm b/code/modules/client/preference_setup/loadout/loadout_accessories_vr.dm
index 86ea0381d07..c3d4adc34be 100644
--- a/code/modules/client/preference_setup/loadout/loadout_accessories_vr.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_accessories_vr.dm
@@ -30,11 +30,36 @@
display_name = "collar, holo"
path = /obj/item/clothing/accessory/collar/holo
-/datum/gear/accessory/white_drop_pouches
- allowed_roles = list("Paramedic","Chief Medical Officer","Medical Doctor","Chemist")
+/datum/gear/accessory/holster
+ display_name = "holster selection (Security, CD, HoP, Exploration)"
+ allowed_roles = list("Colony Director", "Head of Personnel", "Security Officer", "Warden", "Head of Security","Detective","Explorer","Pathfinder")
+
+/datum/gear/accessory/brown_vest
+ display_name = "webbing, brown"
+ allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer","Security Officer","Detective","Head of Security","Warden","Paramedic","Chief Medical Officer","Medical Doctor","Chemist","Field Medic","Pathfinder")
+
+/datum/gear/accessory/black_vest
+ display_name = "webbing, black"
+ allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer","Security Officer","Detective","Head of Security","Warden","Paramedic","Chief Medical Officer","Medical Doctor","Chemist","Field Medic","Pathfinder")
/datum/gear/accessory/white_vest
- allowed_roles = list("Paramedic","Chief Medical Officer","Medical Doctor","Chemist")
+ display_name = "webbing, white (Medical)"
+ allowed_roles = list("Paramedic","Chief Medical Officer","Medical Doctor","Chemist","Field Medic")
+
+/datum/gear/accessory/brown_drop_pouches
+ display_name = "drop pouches, brown"
+ allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer","Security Officer","Detective","Head of Security","Warden","Paramedic","Chief Medical Officer","Medical Doctor","Chemist","Field Medic","Pathfinder")
+
+/datum/gear/accessory/black_drop_pouches
+ display_name = "drop pouches, black"
+ allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer","Security Officer","Detective","Head of Security","Warden","Paramedic","Chief Medical Officer","Medical Doctor","Chemist","Field Medic","Pathfinder")
+
+/datum/gear/accessory/white_drop_pouches
+ display_name = "drop pouches, white (Medical)"
+ allowed_roles = list("Paramedic","Chief Medical Officer","Medical Doctor","Chemist","Field Medic")
+
+/datum/gear/accessory/stethoscope
+ allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Psychiatrist","Paramedic", "Field Medic")
/datum/gear/accessory/khcrystal
display_name = "KH Life Crystal"
diff --git a/code/modules/client/preference_setup/loadout/loadout_eyes_vr.dm b/code/modules/client/preference_setup/loadout/loadout_eyes_vr.dm
index 94094428c9c..da9ad9021db 100644
--- a/code/modules/client/preference_setup/loadout/loadout_eyes_vr.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_eyes_vr.dm
@@ -1,3 +1,10 @@
+/datum/gear/eyes/medical
+ allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist", "Field Medic")
+
+/datum/gear/eyes/meson
+ display_name = "Optical Meson Scanners (Engineering, Science)"
+ allowed_roles = list("Station Engineer","Chief Engineer","Atmospheric Technician", "Scientist", "Research Director", "Explorer", "Pathfinder")
+
/datum/gear/eyes/arglasses
display_name = "AR glasses"
path = /obj/item/clothing/glasses/omnihud
diff --git a/code/modules/client/preference_setup/loadout/loadout_shoes_vr.dm b/code/modules/client/preference_setup/loadout/loadout_shoes_vr.dm
index ff04b6a9897..73cce9a17e2 100644
--- a/code/modules/client/preference_setup/loadout/loadout_shoes_vr.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_shoes_vr.dm
@@ -1,3 +1,9 @@
+/datum/gear/shoes/boots/winter/science
+ allowed_roles = list("Research Director","Scientist", "Roboticist", "Xenobiologist", "Explorer", "Pathfinder")
+
+/datum/gear/shoes/boots/winter/medical
+ allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist", "Field Medic")
+
/datum/gear/shoes/black/cuffs
display_name = "legwraps, black"
path = /obj/item/clothing/shoes/black/cuffs
diff --git a/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm b/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm
index 002d032a3d3..719ba98a382 100644
--- a/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm
@@ -1,3 +1,21 @@
+/datum/gear/suit/roles/poncho/cloak/research
+ allowed_roles = list("Research Director","Scientist", "Roboticist", "Xenobiologist", "Explorer", "Pathfinder")
+
+/datum/gear/suit/roles/poncho/cloak/medical
+ allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist", "Field Medic")
+
+/datum/gear/suit/wintercoat/medical
+ allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist", "Field Medic")
+
+/datum/gear/suit/wintercoat/science
+ allowed_roles = list("Research Director","Scientist", "Roboticist", "Xenobiologist", "Explorer", "Pathfinder")
+
+/datum/gear/suit/snowsuit/medical
+ allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist", "Field Medic")
+
+/datum/gear/suit/snowsuit/science
+ allowed_roles = list("Research Director","Scientist", "Roboticist", "Xenobiologist", "Explorer", "Pathfinder")
+
/datum/gear/suit/labcoat_colorable
display_name = "labcoat, colorable"
path = /obj/item/clothing/suit/storage/toggle/labcoat
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 65bc2af8bd6..4edfe9246f7 100644
--- a/code/modules/client/preference_setup/loadout/loadout_utility_vr.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_utility_vr.dm
@@ -35,7 +35,7 @@
/datum/gear/utility/dufflebag/med
display_name = "medical dufflebag"
path = /obj/item/weapon/storage/backpack/dufflebag/med
- allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist","Psychiatrist","Search and Rescue")
+ allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist","Psychiatrist","Field Medic")
/datum/gear/utility/dufflebag/med/emt
display_name = "EMT dufflebag"
@@ -54,4 +54,4 @@
/datum/gear/utility/dufflebag/sci
display_name = "science dufflebag"
path = /obj/item/weapon/storage/backpack/dufflebag/sci
- allowed_roles = list("Research Director","Scientist","Roboticist","Xenobiologist","Explorer")
+ allowed_roles = list("Research Director","Scientist","Roboticist","Xenobiologist","Explorer","Pathfinder")
diff --git a/code/modules/clothing/suits/hooded_vr.dm b/code/modules/clothing/suits/hooded_vr.dm
new file mode 100644
index 00000000000..ef13979bdc9
--- /dev/null
+++ b/code/modules/clothing/suits/hooded_vr.dm
@@ -0,0 +1,3 @@
+// Field Medic Suit - Someone who can sprite should probably reskin this
+/obj/item/clothing/suit/storage/hooded/explorer/medic
+ starting_accessories = list(/obj/item/clothing/accessory/armband/med/cross)
diff --git a/code/modules/clothing/under/accessories/accessory_vr.dm b/code/modules/clothing/under/accessories/accessory_vr.dm
index 064f5b37b8b..25148b88132 100644
--- a/code/modules/clothing/under/accessories/accessory_vr.dm
+++ b/code/modules/clothing/under/accessories/accessory_vr.dm
@@ -6,6 +6,7 @@
slot_flags = SLOT_TIE | SLOT_OCLOTHING
icon = 'icons/obj/clothing/collars_vr.dmi'
icon_override = 'icons/obj/clothing/collars_vr.dmi'
+ var/writtenon = 0
/obj/item/clothing/accessory/collar/silver
name = "Silver tag collar"
@@ -27,6 +28,20 @@
icon_state = "collar_bell"
item_state = "collar_bell_overlay"
overlay_state = "collar_bell_overlay"
+ var/jingled = 0
+
+/obj/item/clothing/accessory/collar/bell/verb/jinglebell()
+ set name = "Jingle Bell"
+ set category = "Object"
+ set src in usr
+ if(!istype(usr, /mob/living)) return
+ if(usr.stat) return
+
+ if(!jingled)
+ usr.audible_message("[usr] jingles the [src]'s bell.")
+ jingled = 1
+ schedule_callback_in(5 SECONDS, VARSET_CALLBACK(src, jingled, 0))
+ return
/obj/item/clothing/accessory/collar/shock
name = "Shock collar"
@@ -164,8 +179,14 @@
item_state = "collar_holo_overlay"
overlay_state = "collar_holo_overlay"
-/obj/item/clothing/accessory/collar/holo/attack_self(mob/user as mob)
- to_chat(user,"[name]'s interface is projected onto your hand.")
+/obj/item/clothing/accessory/collar/attack_self(mob/user as mob)
+ if(istype(src,/obj/item/clothing/accessory/collar/holo))
+ to_chat(user,"[name]'s interface is projected onto your hand.")
+ else
+ if(writtenon)
+ to_chat(user,"You need a pen or a screwdriver to edit the tag on this collar.")
+ return
+ to_chat(user,"You adjust the [name]'s tag.")
var/str = copytext(reject_bad_text(input(user,"Tag text?","Set tag","")),1,MAX_NAME_LEN)
@@ -176,7 +197,49 @@
else
to_chat(user,"You set the [name]'s tag to '[str]'.")
name = initial(name) + " ([str])"
- desc = initial(desc) + " The tag says \"[str]\"."
+ if(istype(src,/obj/item/clothing/accessory/collar/holo))
+ desc = initial(desc) + " The tag says \"[str]\"."
+ else
+ desc = initial(desc) + " \"[str]\" has been engraved on the tag."
+ writtenon = 1
+
+/obj/item/clothing/accessory/collar/attackby(obj/item/I, mob/user)
+ if(istype(src,/obj/item/clothing/accessory/collar/holo))
+ return
+
+ if(istype(I,/obj/item/weapon/tool/screwdriver))
+ update_collartag(user, I, "scratched out", "scratch out", "engraved")
+ return
+
+ if(istype(I,/obj/item/weapon/pen))
+ update_collartag(user, I, "crossed out", "cross out", "written")
+ return
+
+ to_chat(user,"You need a pen or a screwdriver to edit the tag on this collar.")
+
+/obj/item/clothing/accessory/collar/proc/update_collartag(mob/user, obj/item/I, var/erasemethod, var/erasing, var/writemethod)
+ if(!(istype(user.get_active_hand(),I)) || !(istype(user.get_inactive_hand(),src)) || (user.stat))
+ return
+
+ var/str = copytext(reject_bad_text(input(user,"Tag text?","Set tag","")),1,MAX_NAME_LEN)
+
+ if(!str || !length(str))
+ if(!writtenon)
+ to_chat(user,"You don't write anything.")
+ else
+ to_chat(user,"You [erasing] the words with the [I].")
+ name = initial(name)
+ desc = initial(desc) + " The tag has had the words [erasemethod]."
+ else
+ if(!writtenon)
+ to_chat(user,"You write '[str]' on the tag with the [I].")
+ name = initial(name) + " ([str])"
+ desc = initial(desc) + " \"[str]\" has been [writemethod] on the tag."
+ writtenon = 1
+ else
+ to_chat(user,"You [erasing] the words on the tag with the [I], and write '[str]'.")
+ name = initial(name) + " ([str])"
+ desc = initial(desc) + " Something has been [erasemethod] on the tag, and it now has \"[str]\" [writemethod] on it."
//Machete Holsters
/obj/item/clothing/accessory/holster/machete
@@ -193,4 +256,4 @@
/obj/item/clothing/accessory/medal/silver/unity
name = "medal of unity"
- desc = "A silver medal awarded to a group which has demonstrated exceptional teamwork to achieve a notable feat."
\ No newline at end of file
+ desc = "A silver medal awarded to a group which has demonstrated exceptional teamwork to achieve a notable feat."
diff --git a/code/modules/food/food/snacks_vr.dm b/code/modules/food/food/snacks_vr.dm
index b8acc3377e2..13b6e2e88fc 100644
--- a/code/modules/food/food/snacks_vr.dm
+++ b/code/modules/food/food/snacks_vr.dm
@@ -308,3 +308,195 @@
/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/wolpincube
name = "wolpin cube"
monkey_type = "Wolpin"
+
+/obj/item/weapon/reagent_containers/food/snacks/pizza/margfrozen
+ name = "frozen margherita pizza"
+ desc = "It's frozen rock solid, better thaw it in a microwave."
+ icon = 'icons/obj/food_vr.dmi'
+ icon_state = "margharita_pizza_frozen"
+ center_of_mass = list("x"=16, "y"=11)
+ nutriment_amt = 15
+ nutriment_desc = list("ice" = 5, "toothache" = 1, "frozen cheese" = 5, "frozen tomato" = 5)
+
+/obj/item/weapon/reagent_containers/food/snacks/pizza/margfrozen/New()
+ ..()
+ bitesize = 20
+ reagents.add_reagent("frostoil",3)
+
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margcargo
+ name = "Margherita"
+ desc = "The golden standard of pizzas, it looks drowned in tomato sauce."
+ icon = 'icons/obj/food_vr.dmi'
+ icon_state = "margharita_pizza_cargo"
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/margcargo
+ slices_num = 6
+ center_of_mass = list("x"=16, "y"=11)
+ nutriment_desc = list("pizza crust" = 10, "tomato" = 15, "cheese" = 5)
+ nutriment_amt = 10
+
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margcargo/New()
+ ..()
+ reagents.add_reagent("protein", 2)
+ reagents.add_reagent("tomatojuice", 10)
+ bitesize = 2
+ reagents.remove_reagent("frostoil",3)
+
+/obj/item/weapon/reagent_containers/food/snacks/slice/margcargo
+ name = "Margherita slice"
+ desc = "A slice of the classic pizza, it's hard not to spill any tomato juice on yourself."
+ icon = 'icons/obj/food_vr.dmi'
+ icon_state = "margharita_pizza_slice_cargo"
+ filling_color = "#BAA14C"
+ bitesize = 2
+ center_of_mass = list("x"=16, "y"=13)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margcargo
+
+/obj/item/weapon/reagent_containers/food/snacks/slice/margcargo/filled
+ filled = TRUE
+
+/obj/item/weapon/reagent_containers/food/snacks/pizza/meatfrozen
+ name = "frozen meat pizza"
+ desc = "It's frozen rock solid, better thaw it in a microwave."
+ icon = 'icons/obj/food_vr.dmi'
+ icon_state = "meat_pizza_frozen"
+ center_of_mass = list("x"=16, "y"=11)
+ nutriment_amt = 15
+ nutriment_desc = list("ice" = 5, "toothache" = 1, "frozen meat" = 5, "frozen cow screams" = 5)
+
+/obj/item/weapon/reagent_containers/food/snacks/pizza/meatfrozen/New()
+ ..()
+ bitesize = 20
+ reagents.add_reagent("frostoil",3)
+
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatcargo
+ name = "Meatpizza"
+ desc = "A pizza with meat topping, some of it suspiciously pink."
+ icon = 'icons/obj/food_vr.dmi'
+ icon_state = "meat_pizza_cargo"
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/meatcargo
+ slices_num = 6
+ center_of_mass = list("x"=16, "y"=11)
+ nutriment_desc = list("meat" = 10, "beef" = 10, "squeaky pork" = 15, "longpig" = 5)
+ nutriment_amt = 10
+
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatcargo/New()
+ ..()
+ reagents.add_reagent("protein", 20)
+ reagents.add_reagent("tomatojuice", 6)
+ bitesize = 2
+ reagents.remove_reagent("frostoil",3)
+
+/obj/item/weapon/reagent_containers/food/snacks/slice/meatcargo
+ name = "Meatpizza slice"
+ desc = "A slice of a meaty pizza, there are some bits of supiciously pink meat."
+ icon = 'icons/obj/food_vr.dmi'
+ icon_state = "meat_pizza_slice_cargo"
+ filling_color = "#BAA14C"
+ bitesize = 2
+ center_of_mass = list("x"=16, "y"=13)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatcargo
+
+/obj/item/weapon/reagent_containers/food/snacks/slice/meatcargo/filled
+ filled = TRUE
+
+/obj/item/weapon/reagent_containers/food/snacks/pizza/mushfrozen
+ name = "frozen mushroom pizza"
+ desc = "It's frozen rock solid, better thaw it in a microwave."
+ icon = 'icons/obj/food_vr.dmi'
+ icon_state = "mushroom_pizza_frozen"
+ center_of_mass = list("x"=16, "y"=11)
+ nutriment_amt = 15
+ nutriment_desc = list("ice" = 5, "toothache" = 1, "frozen mushrooms" = 5, "frozen cream" = 5)
+
+/obj/item/weapon/reagent_containers/food/snacks/pizza/mushfrozen/New()
+ ..()
+ bitesize = 20
+ reagents.add_reagent("frostoil",3)
+
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushcargo
+ name = "Mushroompizza"
+ desc = "Very special pizza, it looks to be drowned in cream."
+ icon = 'icons/obj/food_vr.dmi'
+ icon_state = "mushroom_pizza_cargo"
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/mushcargo
+ slices_num = 6
+ center_of_mass = list("x"=16, "y"=11)
+ nutriment_desc = list("pizza crust" = 10, "cheese" = 5, "creamy sauce" = 5, "mushroom" = 5)
+ nutriment_amt = 10
+
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushcargo/New()
+ ..()
+ reagents.add_reagent("protein", 4)
+ bitesize = 2
+ reagents.remove_reagent("frostoil",3)
+
+/obj/item/weapon/reagent_containers/food/snacks/slice/mushcargo
+ name = "Mushroompizza slice"
+ desc = "Very special pizza slice, it looks to be drowned in cream."
+ icon = 'icons/obj/food_vr.dmi'
+ icon_state = "mushroom_pizza_slice_cargo"
+ filling_color = "#BAA14C"
+ bitesize = 2
+ center_of_mass = list("x"=16, "y"=13)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushcargo
+
+/obj/item/weapon/reagent_containers/food/snacks/slice/mushcargp/filled
+ filled = TRUE
+
+/obj/item/weapon/reagent_containers/food/snacks/pizza/vegfrozen
+ name = "frozen vegtable pizza"
+ desc = "It's frozen rock solid, better thaw it in a microwave."
+ icon = 'icons/obj/food_vr.dmi'
+ icon_state = "vegetable_pizza_frozen"
+ center_of_mass = list("x"=16, "y"=11)
+ nutriment_amt = 15
+ nutriment_desc = list("ice" = 5, "toothache" = 1, "frozen vegtable chunks" = 5)
+
+/obj/item/weapon/reagent_containers/food/snacks/pizza/vegfrozen/New()
+ ..()
+ bitesize = 20
+ reagents.add_reagent("frostoil",3)
+
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegcargo
+ name = "Vegetablepizza"
+ desc = "At least 10 of Tomato Sapiens were harmed during making this pizza."
+ icon = 'icons/obj/food_vr.dmi'
+ icon_state = "vegetable_pizza_cargo"
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/vegcargo
+ slices_num = 6
+ center_of_mass = list("x"=16, "y"=11)
+ nutriment_desc = list("pizza crust" = 10, "tomato" = 20, "cheese" = 5, "eggplant" = 5, "carrot" = 5, "corn" = 5)
+ nutriment_amt = 5
+
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegcargo/New()
+ ..()
+ reagents.add_reagent("protein", 4)
+ reagents.add_reagent("tomatojuice", 15)
+ reagents.add_reagent("imidazoline", 10)
+ bitesize = 2
+ reagents.remove_reagent("frostoil",3)
+
+/obj/item/weapon/reagent_containers/food/snacks/slice/vegcargo
+ name = "Vegtablepizza slice"
+ desc = "At least 10 of Tomato Sapiens were harmed during making this pizza."
+ icon = 'icons/obj/food_vr.dmi'
+ icon_state = "vegetable_pizza_slice_cargo"
+ filling_color = "#BAA14C"
+ bitesize = 2
+ center_of_mass = list("x"=16, "y"=13)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegcargo
+
+/obj/item/weapon/reagent_containers/food/snacks/slice/vegcargo/filled
+ filled = TRUE
+
+/obj/item/pizzabox/margherita/New()
+ pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/margfrozen(src)
+
+/obj/item/pizzabox/vegetable/New()
+ pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/vegfrozen(src)
+
+/obj/item/pizzabox/mushroom/New()
+ pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/mushfrozen(src)
+
+/obj/item/pizzabox/meat/New()
+ pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/meatfrozen(src)
diff --git a/code/modules/reagents/reagent_containers/glass/bottle_vr.dm b/code/modules/food/glass/bottle_vr.dm
similarity index 100%
rename from code/modules/reagents/reagent_containers/glass/bottle_vr.dm
rename to code/modules/food/glass/bottle_vr.dm
diff --git a/code/game/machinery/kitchen/smartfridge_vr.dm b/code/modules/food/kitchen/smartfridge_vr.dm
similarity index 100%
rename from code/game/machinery/kitchen/smartfridge_vr.dm
rename to code/modules/food/kitchen/smartfridge_vr.dm
diff --git a/code/modules/food/recipes_microwave_vr.dm b/code/modules/food/recipes_microwave_vr.dm
index ddf3a70de1c..f9aadda69db 100644
--- a/code/modules/food/recipes_microwave_vr.dm
+++ b/code/modules/food/recipes_microwave_vr.dm
@@ -152,3 +152,31 @@
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge
)
result = /obj/item/weapon/reagent_containers/food/snacks/makaroni
+
+/datum/recipe/margheritapizzacargo
+ reagents = list()
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/pizza/margfrozen
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margcargo
+
+/datum/recipe/mushroompizzacargo
+ reagents = list()
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/pizza/mushfrozen
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushcargo
+
+/datum/recipe/meatpizzacargo
+ reagents = list()
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/pizza/meatfrozen
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatcargo
+
+/datum/recipe/vegtablepizzacargo
+ reagents = list()
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/pizza/vegfrozen
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegcargo
diff --git a/code/modules/maps/tg/reader.dm b/code/modules/maps/tg/reader.dm
index 30de8067dc6..b8fbf2cab6f 100644
--- a/code/modules/maps/tg/reader.dm
+++ b/code/modules/maps/tg/reader.dm
@@ -99,6 +99,11 @@ var/global/use_preloader = FALSE
var/ycrd = text2num(dmmRegex.group[4]) + y_offset - 1
var/zcrd = text2num(dmmRegex.group[5]) + z_offset - 1
+ if(orientation & (EAST | WEST)) //VOREStation edit we just have to pray the upstream spacebrains take into consideration before their refator is done.
+ xcrd = ycrd // temp variable
+ ycrd = xcrdStart
+ xcrdStart = xcrd
+
var/zexpansion = zcrd > world.maxz
if(zexpansion && !measureOnly)
if(cropMap)
diff --git a/code/modules/mining/shelter_atoms.dm b/code/modules/mining/shelter_atoms.dm
index 25af7b13940..51b61cd5b1b 100644
--- a/code/modules/mining/shelter_atoms.dm
+++ b/code/modules/mining/shelter_atoms.dm
@@ -87,6 +87,11 @@
desc = "An exorbitantly expensive luxury suite programmed into construction nanomachines. There's a license for use printed on the bottom."
template_id = "shelter_beta"
+/obj/item/device/survivalcapsule/tabiranth
+ name = "silver-trimmed surfluid shelter capsule"
+ desc = "An exorbitantly expensive luxury suite programmed into construction nanomachines. This one is a particularly rare and expensive model. There's a license for use printed on the bottom."
+ template_id = "shelter_gamma"
+
//Pod objects
//Walls
/turf/simulated/shuttle/wall/voidcraft/survival
@@ -197,6 +202,9 @@
icon = 'icons/obj/survival_pod.dmi'
icon_state = "bed"
+/obj/structure/bed/pod/New(var/newloc)
+ ..(newloc,DEFAULT_WALL_MATERIAL,"cotton")
+
//Survival Storage Unit
/obj/machinery/smartfridge/survival_pod
name = "survival pod storage"
@@ -209,25 +217,13 @@
light_power = 1.2
light_color = "#DDFFD3"
pixel_y = -4
- max_n_of_items = 10
- var/empty = FALSE
+ max_n_of_items = 100
-/obj/machinery/smartfridge/survival_pod/initialize(mapload)
+/obj/machinery/smartfridge/survival_pod/initialize()
. = ..()
- if(empty)
- return
- for(var/i in 1 to 5)
- var/obj/item/weapon/reagent_containers/food/snacks/liquidfood/W = new(src)
- stock(W)
- for(var/i in 1 to 2)
- var/obj/item/device/fbp_backup_cell/W = new(src)
- stock(W)
- if(prob(50))
- var/obj/item/weapon/storage/pill_bottle/dice/D = new(src)
- stock(D)
- else
- var/obj/item/device/instrument/violin/V = new(src)
- stock(V)
+ for(var/obj/item/O in loc)
+ if(accept_check(O))
+ stock(O)
/obj/machinery/smartfridge/survival_pod/accept_check(obj/item/O)
return isitem(O)
@@ -235,7 +231,6 @@
/obj/machinery/smartfridge/survival_pod/empty
name = "dusty survival pod storage"
desc = "A heated storage unit. This one's seen better days."
- empty = TRUE
//Fans
/obj/structure/fans
diff --git a/code/modules/mining/shelters.dm b/code/modules/mining/shelters.dm
index 5ac1a7f6cd8..b68606f914b 100644
--- a/code/modules/mining/shelters.dm
+++ b/code/modules/mining/shelters.dm
@@ -70,3 +70,18 @@
whitelisted_turfs = typecacheof(/turf/simulated/mineral)
banned_objects = list()
+/datum/map_template/shelter/gamma
+ name = "Shelter Gamma"
+ shelter_id = "shelter_gamma"
+ description = "An heavily modified variant of the luxury shelter, \
+ this particular model has extra food, drinks, and other supplies. \
+ Originally designed for use by colonists on worlds with little to \
+ to no contact, the expense of these shelters have prevented them \
+ from seeing common use."
+ mappath = "maps/submaps/shelters/shelter_3.dmm"
+ roof = "roof_beta"
+
+/datum/map_template/shelter/gamma/New()
+ . = ..()
+ whitelisted_turfs = typecacheof(/turf/simulated/mineral)
+ banned_objects = list()
diff --git a/code/modules/mob/language/station_vr.dm b/code/modules/mob/language/station_vr.dm
index 7c610ab9a2c..488167dc178 100644
--- a/code/modules/mob/language/station_vr.dm
+++ b/code/modules/mob/language/station_vr.dm
@@ -70,6 +70,18 @@
syllables = list("salve","sum","loqui","operatur","iusta","et","permittit","facere","effercio","pluribus","enim","hoc",
"mihi","wan","six","salve","tartu")
machine_understands = FALSE
+
+/datum/language/bug
+ name = LANGUAGE_VESPINAE
+ desc = "A jarring and clicky language developed and used by Vasilissans, it is designed for use with mouthparts and as a result has become a common language for various arthropod species."
+ speech_verb = "clicks"
+ ask_verb = "chitters"
+ exclaim_verb = "rasps"
+ colour = "bug"
+ key = "x"
+ syllables = list("vaur","uyek","uyit","avek","sc'theth","k'ztak","teth","wre'ge","lii","dra'","zo'","ra'","kax'","zz","vh","ik","ak",
+ "uhk","zir","sc'orth","sc'er","thc'yek","th'zirk","th'esk","k'ayek","ka'mil","sc'","ik'yir","yol","kig","k'zit","'","'","zrk","krg","isk'yet","na'k",
+ "sc'azz","th'sc","nil","n'ahk","sc'yeth","aur'sk","iy'it","azzg","a'","i'","o'","u'","a","i","o","u","zz","kr","ak","nrk","tzzk","bz","xic'","k'lax'","histh")
/datum/language/unathi
flags = 0
diff --git a/code/modules/mob/living/carbon/human/examine_vr.dm b/code/modules/mob/living/carbon/human/examine_vr.dm
index 44488ae3190..fd6a4264476 100644
--- a/code/modules/mob/living/carbon/human/examine_vr.dm
+++ b/code/modules/mob/living/carbon/human/examine_vr.dm
@@ -113,7 +113,7 @@
message = "[t_He] [t_is] engorged with a huge stomach that sags and wobbles as they move. [t_He] must have consumed at least twice their body weight. It looks incredibly soft.\n"
if(3005 to 4074) // Three people.
message = "[t_His] stomach is firmly packed with digesting slop. [t_He] must have eaten at least a few times worth their body weight! It looks hard for them to stand, and [t_his] gut jiggles when they move.\n"
- if(4075 to 10000) // Four or more people.
+ if(4075 to INFINITY) // Four or more people.
message = "[t_He] [t_is] so absolutely stuffed that you aren't sure how it's possible to move. [t_He] can't seem to swell any bigger. The surface of [t_his] belly looks sorely strained!\n"
return message
diff --git a/code/modules/mob/living/carbon/human/life_vr.dm b/code/modules/mob/living/carbon/human/life_vr.dm
index 1dc37ff8cc1..46476a636a7 100644
--- a/code/modules/mob/living/carbon/human/life_vr.dm
+++ b/code/modules/mob/living/carbon/human/life_vr.dm
@@ -1,5 +1,5 @@
/mob/living/carbon/human/proc/weightgain()
- if (nutrition > 0 && stat != 2)
+ if (nutrition >= 0 && stat != 2)
if (nutrition > MIN_NUTRITION_TO_GAIN && weight < MAX_MOB_WEIGHT && weight_gain)
weight += species.metabolism*(0.01*weight_gain)
@@ -28,15 +28,16 @@
holder.icon_state = "hudblank"
- for(var/obj/item/weapon/implant/I in src)
- if(I.implanted)
- if(istype(I,/obj/item/weapon/implant/backup))
- if(!mind)
- holder.icon_state = "hud_backup_nomind"
- else if(!(mind.name in SStranscore.body_scans))
- holder.icon_state = "hud_backup_nobody"
- else
- holder.icon_state = "hud_backup_norm"
+ for(var/obj/item/organ/external/E in organs)
+ for(var/obj/item/weapon/implant/I in E.implants)
+ if(I.implanted)
+ if(istype(I,/obj/item/weapon/implant/backup))
+ if(!mind)
+ holder.icon_state = "hud_backup_nomind"
+ else if(!(mind.name in SStranscore.body_scans))
+ holder.icon_state = "hud_backup_nobody"
+ else
+ holder.icon_state = "hud_backup_norm"
apply_hud(BACKUP_HUD, holder)
@@ -67,6 +68,8 @@
M.nutrition -= M.species.hunger_factor/10
if(M.m_intent == "run")
M.nutrition -= M.species.hunger_factor/10
+ if(M.nutrition < 0)
+ M.nutrition = 0
else
src.nutrition -= DEFAULT_HUNGER_FACTOR/10
if(src.m_intent == "run")
diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm
index 6ecb93e2953..d3a50f3755b 100644
--- a/code/modules/mob/living/carbon/human/species/species.dm
+++ b/code/modules/mob/living/carbon/human/species/species.dm
@@ -61,7 +61,7 @@
// The languages the species can't speak without an assisted organ.
// This list is a guess at things that no one other than the parent species should be able to speak
- var/list/assisted_langs = list(LANGUAGE_EAL, LANGUAGE_TERMINUS, LANGUAGE_SKRELLIAN, LANGUAGE_SKRELLIANFAR, LANGUAGE_ROOTLOCAL, LANGUAGE_ROOTGLOBAL, LANGUAGE_VOX)
+ var/list/assisted_langs = list(LANGUAGE_EAL, LANGUAGE_SKRELLIAN, LANGUAGE_SKRELLIANFAR, LANGUAGE_ROOTLOCAL, LANGUAGE_ROOTGLOBAL, LANGUAGE_VOX) //VOREStation Edit
//Soundy emotey things.
var/scream_verb = "screams"
diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm
index f2342442403..1857e59bcdd 100644
--- a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm
+++ b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm
@@ -323,7 +323,7 @@
burn_mod = 1.15 //15% burn damage increase. They're spiders. Aerosol can+lighter = dead spiders.
num_alternate_languages = 2
- secondary_langs = list("Sol Common")
+ secondary_langs = list(LANGUAGE_VESPINAE)
color_mult = 1
tail = "tail" //Spider tail.
icobase_tail = 1
diff --git a/code/modules/mob/living/carbon/human/species/station/station_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_vr.dm
index 58cf208d0e5..2a6c9878f16 100644
--- a/code/modules/mob/living/carbon/human/species/station/station_vr.dm
+++ b/code/modules/mob/living/carbon/human/species/station/station_vr.dm
@@ -77,6 +77,7 @@
name_language = LANGUAGE_SKRELLIAN
color_mult = 1
inherent_verbs = list(/mob/living/proc/shred_limb)
+ assisted_langs = list(LANGUAGE_EAL, LANGUAGE_ROOTLOCAL, LANGUAGE_ROOTGLOBAL, LANGUAGE_VOX)
min_age = 18
max_age = 80
@@ -327,6 +328,7 @@
color_mult = 1
min_age = 18
reagent_tag = null
+ assisted_langs = list(LANGUAGE_EAL, LANGUAGE_ROOTLOCAL, LANGUAGE_ROOTGLOBAL, LANGUAGE_VOX)
/datum/species/diona
spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED
diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm
index 20db108099c..402c1928ddd 100644
--- a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm
+++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm
@@ -90,12 +90,6 @@
cost = -2
var_changes = list("siemens_coefficient" = 2.0) //This makes you extremely weak to tasers.
-/datum/trait/photosensitive
- name = "Photosensitive"
- desc = "Increases stun duration from flashes and other light-based stuns."
- cost = -1
- var_changes = list("flash_mod" = 2.0)
-
/datum/trait/hollow
name = "Hollow Bones/Aluminum Alloy"
desc = "Your bones and robot limbs are much easier to break."
diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm
index 44238cc16a3..a4154692158 100644
--- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm
+++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm
@@ -42,13 +42,13 @@
name = "Darksight"
desc = "Allows you to see a short distance in the dark."
cost = 1
- var_changes = list("darksight" = 3)
+ var_changes = list("darksight" = 3, "flash_mod" = 2.0)
/datum/trait/darksight_plus
name = "Darksight (Major)"
desc = "Allows you to see in the dark for the whole screen."
cost = 2
- var_changes = list("darksight" = 7)
+ var_changes = list("darksight" = 7, "flash_mod" = 3.0)
/datum/trait/melee_attack
name = "Sharp Melee"
diff --git a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm
index 360c805e047..934db0a1edd 100644
--- a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm
+++ b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm
@@ -60,6 +60,9 @@
return
if(compactor)
+ if(is_type_in_list(target,item_vore_blacklist))
+ to_chat(user, "You are hard-wired to not ingest this item.")
+ return
if(istype(target, /obj/item) || istype(target, /obj/effect/decal/remains))
var/obj/target_obj = target
if(target_obj.w_class > ITEMSIZE_LARGE)
@@ -224,7 +227,7 @@
dat += "Cargo compartment slot: Fuel.
"
dat += "([list2text(contents - (deliveryslot_1 + deliveryslot_2 + deliveryslot_3),", ")])
"
- if(analyzer && synced)
+ if(analyzer && !synced)
dat += "Sync Files
"
//Cleaning and there are still un-preserved items
@@ -666,4 +669,4 @@
desc = "A mounted cargo bay unit for tagged deliveries."
icon_state = "decompiler"
max_item_count = 20
- delivery = TRUE
\ No newline at end of file
+ delivery = TRUE
diff --git a/code/modules/mob/living/silicon/robot/robot_vr.dm b/code/modules/mob/living/silicon/robot/robot_vr.dm
index 332fabb19fb..e453f4c595a 100644
--- a/code/modules/mob/living/silicon/robot/robot_vr.dm
+++ b/code/modules/mob/living/silicon/robot/robot_vr.dm
@@ -29,7 +29,14 @@
"mechoid-Service",
"mechoid-Janitor",
"mechoid-Combat",
- "mechoid-Combat-roll"
+ "mechoid-Combat-roll",
+ "Noble-CLN",
+ "Noble-SRV",
+ "Noble-DIG",
+ "Noble-MED",
+ "Noble-SEC",
+ "Noble-ENG",
+ "Noble-STD"
) //List of all used sprites that are in robots_vr.dmi
@@ -133,13 +140,7 @@
only_one_driver = TRUE // If true, only the person in 'front' (first on list of riding mobs) can drive.
/datum/riding/dogborg/handle_vehicle_layer()
- if(ridden.has_buckled_mobs())
- if(ridden.dir != NORTH)
- ridden.layer = ABOVE_MOB_LAYER
- else
- ridden.layer = initial(ridden.layer)
- else
- ridden.layer = initial(ridden.layer)
+ ridden.layer = initial(ridden.layer)
/datum/riding/dogborg/ride_check(mob/living/M)
var/mob/living/L = ridden
@@ -158,10 +159,10 @@
var/scale = L.size_multiplier
var/list/values = list(
- "[NORTH]" = list(0, 8*scale, ABOVE_MOB_LAYER),
- "[SOUTH]" = list(0, 8*scale, BELOW_MOB_LAYER),
- "[EAST]" = list(-5*scale, 8*scale, ABOVE_MOB_LAYER),
- "[WEST]" = list(5*scale, 8*scale, ABOVE_MOB_LAYER))
+ "[NORTH]" = list(0, 10*scale, ABOVE_MOB_LAYER),
+ "[SOUTH]" = list(0, 10*scale, BELOW_MOB_LAYER),
+ "[EAST]" = list(-5*scale, 10*scale, ABOVE_MOB_LAYER),
+ "[WEST]" = list(5*scale, 10*scale, ABOVE_MOB_LAYER))
return values
@@ -172,7 +173,7 @@
buckle_movable = TRUE
buckle_lying = FALSE
-/mob/living/silicon/robot/New()
+/mob/living/silicon/robot/New(loc,var/unfinished = 0)
..()
riding_datum = new /datum/riding/dogborg(src)
diff --git a/code/modules/mob/living/simple_animal/simple_animal_vr.dm b/code/modules/mob/living/simple_animal/simple_animal_vr.dm
index 37ed5a6bf02..a116a9cf0ea 100644
--- a/code/modules/mob/living/simple_animal/simple_animal_vr.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal_vr.dm
@@ -33,6 +33,9 @@
var/vore_icons = 0 // Bitfield for which fields we have vore icons for.
var/life_disabled = 0 // For performance reasons
+ var/mount_offset_x = 5 // Horizontal riding offset.
+ var/mount_offset_y = 8 // Vertical riding offset
+
// Release belly contents before being gc'd!
/mob/living/simple_mob/Destroy()
release_vore_contents()
@@ -243,3 +246,89 @@
if(a_intent == I_GRAB && isliving(A) && !has_hands)
animal_nom(A)
+
+// Riding
+/datum/riding/simple_animal
+ keytype = /obj/item/weapon/material/twohanded/fluff/riding_crop // Crack!
+ nonhuman_key_exemption = FALSE // If true, nonhumans who can't hold keys don't need them, like borgs and simplemobs.
+ key_name = "a riding crop" // What the 'keys' for the thing being rided on would be called.
+ only_one_driver = TRUE // If true, only the person in 'front' (first on list of riding mobs) can drive.
+
+/datum/riding/simple_animal/handle_vehicle_layer()
+ ridden.layer = initial(ridden.layer)
+
+/datum/riding/simple_animal/ride_check(mob/living/M)
+ var/mob/living/L = ridden
+ if(L.stat)
+ force_dismount(M)
+ return FALSE
+ return TRUE
+
+/datum/riding/simple_animal/force_dismount(mob/M)
+ . =..()
+ ridden.visible_message("[M] stops riding [ridden]!")
+
+/datum/riding/simple_animal/get_offsets(pass_index) // list(dir = x, y, layer)
+ var/mob/living/simple_animal/L = ridden
+ var/scale = L.size_multiplier
+
+ var/list/values = list(
+ "[NORTH]" = list(0, L.mount_offset_y*scale, ABOVE_MOB_LAYER),
+ "[SOUTH]" = list(0, L.mount_offset_y*scale, BELOW_MOB_LAYER),
+ "[EAST]" = list(-L.mount_offset_x*scale, L.mount_offset_y*scale, ABOVE_MOB_LAYER),
+ "[WEST]" = list(L.mount_offset_x*scale, L.mount_offset_y*scale, ABOVE_MOB_LAYER))
+
+ return values
+
+/mob/living/simple_animal/buckle_mob(mob/living/M, forced = FALSE, check_loc = TRUE)
+ if(forced)
+ return ..() // Skip our checks
+ if(!riding_datum)
+ return FALSE
+ if(lying)
+ return FALSE
+ if(!ishuman(M))
+ return FALSE
+ if(M in buckled_mobs)
+ return FALSE
+ if(M.size_multiplier > size_multiplier * 1.2)
+ to_chat(src,"This isn't a pony show! You need to be bigger for them to ride.")
+ return FALSE
+
+ var/mob/living/carbon/human/H = M
+
+ if(H.loc != src.loc)
+ if(H.Adjacent(src))
+ H.forceMove(get_turf(src))
+
+ . = ..()
+ if(.)
+ buckled_mobs[H] = "riding"
+
+/mob/living/simple_animal/attack_hand(mob/user as mob)
+ if(riding_datum && LAZYLEN(buckled_mobs))
+ //We're getting off!
+ if(user in buckled_mobs)
+ riding_datum.force_dismount(user)
+ //We're kicking everyone off!
+ if(user == src)
+ for(var/rider in buckled_mobs)
+ riding_datum.force_dismount(rider)
+ else
+ . = ..()
+
+/mob/living/simple_animal/proc/animal_mount(var/mob/living/M in living_mobs(1))
+ set name = "Animal Mount/Dismount"
+ set category = "Abilities"
+ set desc = "Let people ride on you."
+
+ if(LAZYLEN(buckled_mobs))
+ for(var/rider in buckled_mobs)
+ riding_datum.force_dismount(rider)
+ return
+ if (stat != CONSCIOUS)
+ return
+ if(!can_buckle || !istype(M) || !M.Adjacent(src) || M.buckled)
+ return
+ if(buckle_mob(M))
+ visible_message("[M] starts riding [name]!")
diff --git a/code/modules/mob/living/simple_animal/vore/corrupt_hounds.dm b/code/modules/mob/living/simple_animal/vore/corrupt_hounds.dm
index d534205f7e3..bbf9c9f9d95 100644
--- a/code/modules/mob/living/simple_animal/vore/corrupt_hounds.dm
+++ b/code/modules/mob/living/simple_animal/vore/corrupt_hounds.dm
@@ -49,6 +49,11 @@
minbodytemp = 150
maxbodytemp = 900
+ max_buckled_mobs = 1 //Yeehaw
+ can_buckle = TRUE
+ buckle_movable = TRUE
+ buckle_lying = FALSE
+
var/image/eye_layer = null
@@ -114,3 +119,12 @@
remove_eyes()
if(stat == CONSCIOUS && !resting)
add_eyes()
+
+/mob/living/simple_animal/hostile/corrupthound/Login()
+ . = ..()
+ if(!riding_datum)
+ riding_datum = new /datum/riding/simple_animal(src)
+ verbs |= /mob/living/simple_animal/proc/animal_mount
+
+/mob/living/simple_animal/hostile/corrupthound/MouseDrop_T(mob/living/M, mob/living/user)
+ return
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/vore/deathclaw.dm b/code/modules/mob/living/simple_animal/vore/deathclaw.dm
index 4497e8b6eb5..e015c07b9e5 100644
--- a/code/modules/mob/living/simple_animal/vore/deathclaw.dm
+++ b/code/modules/mob/living/simple_animal/vore/deathclaw.dm
@@ -22,6 +22,13 @@
pixel_x = -16
pixel_y = 0
+ max_buckled_mobs = 1 //Yeehaw
+ can_buckle = TRUE
+ buckle_movable = TRUE
+ buckle_lying = FALSE
+ mount_offset_x = 5
+ mount_offset_y = 30
+
// Activate Noms!
/mob/living/simple_mob/hostile/deathclaw
vore_active = 1
@@ -30,3 +37,12 @@
vore_min_size = RESIZE_SMALL
vore_pounce_chance = 0 // Beat them into crit before eating.
vore_icons = SA_ICON_LIVING
+
+/mob/living/simple_animal/hostile/deathclaw/Login()
+ . = ..()
+ if(!riding_datum)
+ riding_datum = new /datum/riding/simple_animal(src)
+ verbs |= /mob/living/simple_animal/proc/animal_mount
+
+/mob/living/simple_animal/hostile/deathclaw/MouseDrop_T(mob/living/M, mob/living/user)
+ return
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/vore/dragon.dm b/code/modules/mob/living/simple_animal/vore/dragon.dm
index 3e6493d56d6..10934e4b38a 100644
--- a/code/modules/mob/living/simple_animal/vore/dragon.dm
+++ b/code/modules/mob/living/simple_animal/vore/dragon.dm
@@ -49,3 +49,12 @@
maxHealth = 200
health = 200
faction = "virgo3b"
+
+/mob/living/simple_animal/hostile/dragon/Login()
+ . = ..()
+ if(!riding_datum)
+ riding_datum = new /datum/riding/simple_animal(src)
+ verbs |= /mob/living/simple_animal/proc/animal_mount
+
+/mob/living/simple_animal/hostile/dragon/MouseDrop_T(mob/living/M, mob/living/user)
+ return
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/vore/hippo.dm b/code/modules/mob/living/simple_animal/vore/hippo.dm
index b18d14f7ef5..4366395d384 100644
--- a/code/modules/mob/living/simple_animal/vore/hippo.dm
+++ b/code/modules/mob/living/simple_animal/vore/hippo.dm
@@ -49,6 +49,12 @@
meat_amount = 10 //Infinite meat!
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+ max_buckled_mobs = 1 //Yeehaw
+ can_buckle = TRUE
+ buckle_movable = TRUE
+ buckle_lying = FALSE
+ mount_offset_y = 20
+
// Activate Noms!
/mob/living/simple_mob/retaliate/hippo //I don't know why it's in a seperate line but everyone does it so i do it
vore_active = 1
@@ -64,3 +70,12 @@
vore_stomach_name = "rumen" //First stomach of a ruminant. It's where the pre digestion bacteria stuff happens. Very warm.
vore_stomach_flavor = "You are squeezed into the sweltering insides of the herbivore rumen."
vore_icons = SA_ICON_LIVING
+
+/mob/living/simple_animal/retaliate/hippo/Login()
+ . = ..()
+ if(!riding_datum)
+ riding_datum = new /datum/riding/simple_animal(src)
+ verbs |= /mob/living/simple_animal/proc/animal_mount
+
+/mob/living/simple_animal/retaliate/hippo/MouseDrop_T(mob/living/M, mob/living/user)
+ return
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/vore/horse.dm b/code/modules/mob/living/simple_animal/vore/horse.dm
index f9bada661f7..9332ae043ce 100644
--- a/code/modules/mob/living/simple_animal/vore/horse.dm
+++ b/code/modules/mob/living/simple_animal/vore/horse.dm
@@ -31,7 +31,22 @@
meat_amount = 4
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+ max_buckled_mobs = 1 //Yeehaw
+ can_buckle = TRUE
+ buckle_movable = TRUE
+ buckle_lying = FALSE
+ mount_offset_x = 0
+
// Activate Noms!
/mob/living/simple_mob/horse
vore_active = 1
vore_icons = SA_ICON_LIVING
+
+/mob/living/simple_animal/horse/Login()
+ . = ..()
+ if(!riding_datum)
+ riding_datum = new /datum/riding/simple_animal(src)
+ verbs |= /mob/living/simple_animal/proc/animal_mount
+
+/mob/living/simple_animal/horse/MouseDrop_T(mob/living/M, mob/living/user)
+ return
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/vore/otie.dm b/code/modules/mob/living/simple_animal/vore/otie.dm
index f7d7dbbf8e1..c837ea7b12c 100644
--- a/code/modules/mob/living/simple_animal/vore/otie.dm
+++ b/code/modules/mob/living/simple_animal/vore/otie.dm
@@ -46,6 +46,12 @@
pixel_x = -16
pixel_y = 0
+ max_buckled_mobs = 1 //Yeehaw
+ can_buckle = TRUE
+ buckle_movable = TRUE
+ buckle_lying = FALSE
+ mount_offset_y = 10
+
var/glowyeyes = FALSE
var/image/eye_layer = null
var/eyetype
@@ -382,4 +388,13 @@
/mob/living/simple_mob/otie/death(gibbed, deathmessage = "dies!")
.=..()
resting = 0
- icon_state = icon_dead
\ No newline at end of file
+ icon_state = icon_dead
+
+/mob/living/simple_animal/otie/Login()
+ . = ..()
+ if(!riding_datum)
+ riding_datum = new /datum/riding/simple_animal(src)
+ verbs |= /mob/living/simple_animal/proc/animal_mount
+
+/mob/living/simple_animal/otie/MouseDrop_T(mob/living/M, mob/living/user)
+ return
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/vore/panther.dm b/code/modules/mob/living/simple_animal/vore/panther.dm
index 82e4b1e3447..fb992e49edd 100644
--- a/code/modules/mob/living/simple_animal/vore/panther.dm
+++ b/code/modules/mob/living/simple_animal/vore/panther.dm
@@ -27,9 +27,24 @@
pixel_x = -16
pixel_y = 0
+ max_buckled_mobs = 1 //Yeehaw
+ can_buckle = TRUE
+ buckle_movable = TRUE
+ buckle_lying = FALSE
+ mount_offset_y = 12
+
// Activate Noms!
/mob/living/simple_mob/hostile/panther
vore_active = 1
vore_capacity = 2
vore_pounce_chance = 10
vore_icons = SA_ICON_LIVING | SA_ICON_REST
+
+/mob/living/simple_animal/hostile/panther/Login()
+ . = ..()
+ if(!riding_datum)
+ riding_datum = new /datum/riding/simple_animal(src)
+ verbs |= /mob/living/simple_animal/proc/animal_mount
+
+/mob/living/simple_animal/hostile/panther/MouseDrop_T(mob/living/M, mob/living/user)
+ return
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/vore/rat.dm b/code/modules/mob/living/simple_animal/vore/rat.dm
index 8a865faea70..7cdd2c3bfd7 100644
--- a/code/modules/mob/living/simple_animal/vore/rat.dm
+++ b/code/modules/mob/living/simple_animal/vore/rat.dm
@@ -36,6 +36,12 @@
pixel_x = -16
pixel_y = 0
+ max_buckled_mobs = 1 //Yeehaw
+ can_buckle = TRUE
+ buckle_movable = TRUE
+ buckle_lying = FALSE
+ mount_offset_y = 10
+
vore_active = TRUE
vore_capacity = 1
vore_pounce_chance = 45
@@ -159,3 +165,12 @@
/mob/living/simple_mob/hostile/rat/death()
playsound(src, 'sound/effects/mouse_squeak_loud.ogg', 50, 1)
..()
+
+/mob/living/simple_animal/hostile/rat/Login()
+ . = ..()
+ if(!riding_datum)
+ riding_datum = new /datum/riding/simple_animal(src)
+ verbs |= /mob/living/simple_animal/proc/animal_mount
+
+/mob/living/simple_animal/hostile/rat/MouseDrop_T(mob/living/M, mob/living/user)
+ return
\ No newline at end of file
diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm
index 3835bbb144c..3a0499b7b25 100644
--- a/code/modules/mob/new_player/sprite_accessories.dm
+++ b/code/modules/mob/new_player/sprite_accessories.dm
@@ -750,9 +750,14 @@
icon_state = "hair_belenkotied"
flags = HAIR_TIEABLE
- belenkotied
- name = "Supernova"
- icon_state = "hair_supernova"
+ glossy
+ name = "Glossy"
+ icon_state = "hair_glossy"
+ flags = HAIR_TIEABLE
+
+ sharpponytail
+ name = "Sharp Ponytail"
+ icon_state = "hair_sharpponytail"
flags = HAIR_TIEABLE
/*
diff --git a/code/modules/projectiles/ammunition/magazines_vr.dm b/code/modules/projectiles/ammunition/magazines_vr.dm
new file mode 100644
index 00000000000..56221e2ddef
--- /dev/null
+++ b/code/modules/projectiles/ammunition/magazines_vr.dm
@@ -0,0 +1,3 @@
+/obj/item/ammo_magazine/m9mm/large/preban/hp // Hollow Point Version
+ name = "magazine (9mm hollow-point)"
+ ammo_type = /obj/item/ammo_casing/a9mm/hp
\ No newline at end of file
diff --git a/code/modules/projectiles/ammunition/rounds.dm b/code/modules/projectiles/ammunition/rounds.dm
index 406dbcae88b..e87c91409de 100644
--- a/code/modules/projectiles/ammunition/rounds.dm
+++ b/code/modules/projectiles/ammunition/rounds.dm
@@ -92,6 +92,11 @@
projectile_type = /obj/item/projectile/bullet/pistol/ap
matter = list(DEFAULT_WALL_MATERIAL = 80)
+/obj/item/ammo_casing/a9mm/hp
+ desc = "A 9mm hollow-point bullet casing."
+ projectile_type = /obj/item/projectile/bullet/pistol/hp
+
+
/obj/item/ammo_casing/a9mm/flash
desc = "A 9mm flash shell casing."
icon_state = "r-casing"
@@ -149,7 +154,7 @@
/obj/item/ammo_casing/a45/hp
desc = "A .45 hollow-point bullet casing."
- projectile_type = /obj/item/projectile/bullet/pistol/medium/hollow
+ projectile_type = /obj/item/projectile/bullet/pistol/medium/hp
/*
* 10mm
@@ -265,7 +270,7 @@
/obj/item/ammo_casing/a762/hp
desc = "A 7.62mm hollow-point bullet casing."
- projectile_type = /obj/item/projectile/bullet/rifle/a762/hollow
+ projectile_type = /obj/item/projectile/bullet/rifle/a762/hp
/obj/item/ammo_casing/a762/hunter
desc = "A 7.62mm hunting bullet casing."
@@ -311,7 +316,7 @@
/obj/item/ammo_casing/a545/hp
desc = "A 5.45mm hollow-point bullet casing."
- projectile_type = /obj/item/projectile/bullet/rifle/a545/hollow
+ projectile_type = /obj/item/projectile/bullet/rifle/a545/hp
/obj/item/ammo_casing/a545/hunter
desc = "A 5.45mm hunting bullet casing."
diff --git a/code/modules/projectiles/guns/energy/netgun_vr.dm b/code/modules/projectiles/guns/energy/netgun_vr.dm
index 8678d2c5dc7..3e82aef282a 100644
--- a/code/modules/projectiles/guns/energy/netgun_vr.dm
+++ b/code/modules/projectiles/guns/energy/netgun_vr.dm
@@ -1,6 +1,6 @@
/obj/item/weapon/gun/energy/netgun
- name = "\improper KHI \"Hunter\" capture gun"
- desc = "A Kitsuhana-designed 'non-lethal capture device' stunner and energy net launcher, \
+ name = "energy net gun"
+ desc = "A Kitsuhana-designed, usually dubbed 'Hunter' or 'non-lethal capture device' stunner and energy net launcher, \
for when you want criminals to stop acting like they're on a 20th century British comedy sketch show."
icon = 'icons/obj/gun_vr.dmi'
icon_state = "hunter"
diff --git a/code/modules/projectiles/guns/projectile/pistol_vr.dm b/code/modules/projectiles/guns/projectile/pistol_vr.dm
index e7e369cebfb..7a76b125527 100644
--- a/code/modules/projectiles/guns/projectile/pistol_vr.dm
+++ b/code/modules/projectiles/guns/projectile/pistol_vr.dm
@@ -6,4 +6,7 @@
/obj/item/weapon/gun/projectile/p92x/large/preban
icon_state = "p92x-brown"
- magazine_type = /obj/item/ammo_magazine/m9mm/large/preban // Spawns with big magazines that are legal.
\ No newline at end of file
+ magazine_type = /obj/item/ammo_magazine/m9mm/large/preban // Spawns with big magazines that are legal.
+
+/obj/item/weapon/gun/projectile/p92x/large/preban/hp
+ magazine_type = /obj/item/ammo_magazine/m9mm/large/preban/hp // Spawns with legal hollow-point mag
\ No newline at end of file
diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm
index e4b7241bb0a..ed161059396 100644
--- a/code/modules/projectiles/projectile/bullets.dm
+++ b/code/modules/projectiles/projectile/bullets.dm
@@ -64,38 +64,43 @@
/* short-casing projectiles, like the kind used in pistols or SMGs */
-/obj/item/projectile/bullet/pistol
- fire_sound = 'sound/weapons/gunshot/gunshot_pistol.ogg'
+/obj/item/projectile/bullet/pistol // 9mm pistols and most SMGs. Sacrifice power for capacity.
+ fire_sound = 'sound/weapons/gunshot/gunshot_pistol.ogg' // ToDo: Different shot sounds for different strength pistols. -Ace
damage = 20
/obj/item/projectile/bullet/pistol/ap
damage = 15
armor_penetration = 30
-/obj/item/projectile/bullet/pistol/medium
+/obj/item/projectile/bullet/pistol/hp
+ damage = 25
+ armor_penetration = -50
+
+/obj/item/projectile/bullet/pistol/medium // .45 (and maybe .40 if it ever gets added) caliber security pistols. Balance between capacity and power.
+ // fire_sound = 'sound/weapons/gunshot3.ogg' // ToDo: Different shot sounds for different strength pistols.
damage = 25
/obj/item/projectile/bullet/pistol/medium/ap
damage = 20
armor_penetration = 15
-/obj/item/projectile/bullet/pistol/medium/hollow
+/obj/item/projectile/bullet/pistol/medium/hp
damage = 30
armor_penetration = -50
-/obj/item/projectile/bullet/pistol/strong //revolvers and matebas
- fire_sound = 'sound/weapons/gunshot/gunshot_strong.ogg'
+/obj/item/projectile/bullet/pistol/strong // .357 and .44 caliber stuff. High power pistols like the Mateba or Desert Eagle. Sacrifice capacity for power.
+ fire_sound = 'sound/weapons/gunshot/gunshot_strong.ogg' // ToDo: Replace with something less ugly. I recommend weapons/gunshot3.ogg
damage = 60
-/obj/item/projectile/bullet/pistol/rubber/strong //"rubber" bullets for revolvers and matebas
- fire_sound = 'sound/weapons/gunshot/gunshot_strong.ogg'
+/obj/item/projectile/bullet/pistol/rubber/strong // "Rubber" bullets for high power pistols.
+ fire_sound = 'sound/weapons/gunshot/gunshot_strong.ogg' // ToDo: Same as above.
damage = 10
agony = 60
embed_chance = 0
sharp = 0
check_armour = "melee"
-/obj/item/projectile/bullet/pistol/rubber //"rubber" bullets
+/obj/item/projectile/bullet/pistol/rubber // "Rubber" bullets for all other pistols.
name = "rubber bullet"
damage = 5
agony = 40
@@ -167,7 +172,7 @@
damage = 30
armor_penetration = 50 // At 30 or more armor, this will do more damage than standard rounds.
-/obj/item/projectile/bullet/rifle/a762/hollow
+/obj/item/projectile/bullet/rifle/a762/hp
damage = 40
armor_penetration = -50
penetrating = 0
@@ -184,7 +189,7 @@
damage = 20
armor_penetration = 50 // At 40 or more armor, this will do more damage than standard rounds.
-/obj/item/projectile/bullet/rifle/a545/hollow
+/obj/item/projectile/bullet/rifle/a545/hp
damage = 35
armor_penetration = -50
penetrating = 0
diff --git a/code/modules/research/designs_vr.dm b/code/modules/research/designs_vr.dm
index cc9b649b751..94fbb9ce097 100644
--- a/code/modules/research/designs_vr.dm
+++ b/code/modules/research/designs_vr.dm
@@ -13,6 +13,14 @@
materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 2000)
build_path = /obj/item/weapon/implantcase/backup
+/datum/design/item/implant/sizecontrol
+ name = "Size control implant"
+ id = "implant_size"
+ req_tech = list(TECH_MATERIAL = 3, TECH_BIO = 4, TECH_DATA = 4, TECH_ENGINEERING = 3)
+ materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 2000, "silver" = 3000)
+ build_path = /obj/item/weapon/implanter/sizecontrol
+ sort_string = "TAAAA"
+
/datum/design/item/weapon/sizegun
name = "Size gun"
id = "sizegun"
diff --git a/code/modules/virus2/disease2.dm b/code/modules/virus2/disease2.dm
index 3670f60beac..9c0c80c28d8 100644
--- a/code/modules/virus2/disease2.dm
+++ b/code/modules/virus2/disease2.dm
@@ -88,6 +88,13 @@
else
resistance += rand(1,9)
+ //VOREStation Add Start - Corophazine can treat higher stages
+ var/antibiotics = mob.chem_effects[CE_ANTIBIOTIC]
+ if(antibiotics == ANTIBIO_SUPER)
+ if(prob(70))
+ src.cure(mob)
+ //VOREStation Add End
+
//Resistance is capped at 90 without being manually set to 100
if(resistance > 90 && resistance < 100)
resistance = 90
diff --git a/code/modules/vore/appearance/sprite_accessories_taur_vr.dm b/code/modules/vore/appearance/sprite_accessories_taur_vr.dm
index 6d0f63e95c9..301d0841be6 100644
--- a/code/modules/vore/appearance/sprite_accessories_taur_vr.dm
+++ b/code/modules/vore/appearance/sprite_accessories_taur_vr.dm
@@ -6,10 +6,7 @@
/datum/riding/taur/handle_vehicle_layer()
if(ridden.has_buckled_mobs())
- if(ridden.dir != NORTH)
- ridden.layer = ABOVE_MOB_LAYER
- else
- ridden.layer = initial(ridden.layer)
+ ridden.layer = initial(ridden.layer)
else
var/mob/living/L = ridden
if(!(istype(L) && (L.status_flags & HIDING)))
@@ -463,3 +460,12 @@
msg_owner_grab_fail = "You step down onto %prey with one of your vines, forcing them onto the ground!"
msg_prey_grab_fail = "%owner steps down onto you with one of their vines, squishing you and forcing you onto the ground!"
+
+/datum/sprite_accessory/tail/taur/alraune/alraune_2c
+ name = "Alraune (dual color)"
+ icon_state = "alraunecolor_s"
+ ani_state = "alraunecolor_closed_s"
+ ckeys_allowed = null
+ do_colouration = 1
+ extra_overlay = "alraunecolor_markings"
+ extra_overlay_w = "alraunecolor_closed_markings"
\ No newline at end of file
diff --git a/code/modules/vore/eating/contaminate_vr.dm b/code/modules/vore/eating/contaminate_vr.dm
index 7d09d1e245b..36ecb8f4707 100644
--- a/code/modules/vore/eating/contaminate_vr.dm
+++ b/code/modules/vore/eating/contaminate_vr.dm
@@ -90,6 +90,9 @@ var/image/gurgled_overlay = image('icons/effects/sludgeoverlay_vr.dmi')
digest_act(item_storage) //Digesting these anyway
return TRUE
+/obj/item/device/pda/gurgle_contaminate(var/atom/movable/item_storage = null)
+ return FALSE
+
/obj/item/weapon/reagent_containers/food/gurgle_contaminate(var/atom/movable/item_storage = null)
digest_act(item_storage)
return TRUE
diff --git a/code/modules/vore/eating/digest_act_vr.dm b/code/modules/vore/eating/digest_act_vr.dm
index f06cd1b7412..b78a91146d2 100644
--- a/code/modules/vore/eating/digest_act_vr.dm
+++ b/code/modules/vore/eating/digest_act_vr.dm
@@ -87,7 +87,8 @@
else if(isrobot(B.owner))
var/mob/living/silicon/robot/R = B.owner
R.cell.charge += 150
-
+ qdel(src)
+ return w_class
. = ..()
/obj/item/weapon/holder/digest_act(var/atom/movable/item_storage = null)
@@ -100,7 +101,11 @@
/obj/item/organ/digest_act(var/atom/movable/item_storage = null)
if((. = ..()))
- . += 70 //Organs give a little more
+ if(isbelly(item_storage))
+ var/obj/belly/B = item_storage
+ . += 5 * (B.digest_brute + B.digest_burn)
+ else
+ . += 70 //Organs give a little more
/obj/item/weapon/storage/digest_act(var/atom/movable/item_storage = null)
for(var/obj/item/I in contents)
@@ -117,4 +122,4 @@
// Gradual damage measurement
/obj/item
- var/digest_stage = null
\ No newline at end of file
+ var/digest_stage = null
diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm
index 98fac950aa7..cb0b64ba135 100644
--- a/code/modules/vore/eating/living_vr.dm
+++ b/code/modules/vore/eating/living_vr.dm
@@ -458,9 +458,9 @@
// This is about 0.896m^3 of atmosphere
/datum/gas_mixture/belly_air
- volume = 1000
+ volume = 2500
temperature = 293.150
- total_moles = 40
+ total_moles = 104
/datum/gas_mixture/belly_air/New()
. = ..()
@@ -553,6 +553,10 @@
to_chat(src, "You are not holding anything.")
return
+ if(is_type_in_list(I,item_vore_blacklist))
+ to_chat(src, "You are not allowed to eat this.")
+ return
+
if(is_type_in_list(I,edible_trash))
if(I.hidden_uplink)
to_chat(src, "You really should not be eating this.")
diff --git a/code/modules/vore/fluffstuff/custom_boxes_vr.dm b/code/modules/vore/fluffstuff/custom_boxes_vr.dm
index 68a31f06c95..ba0e72238c5 100644
--- a/code/modules/vore/fluffstuff/custom_boxes_vr.dm
+++ b/code/modules/vore/fluffstuff/custom_boxes_vr.dm
@@ -228,12 +228,13 @@
/obj/item/clothing/gloves/fluff/morsleeves,
/obj/item/clothing/under/fluff/morunder)
-// Mewchild: Phi Vietsi
-/obj/item/weapon/storage/box/fluff/vietsi
+// Mewchild: Phi Ahkeen
+/obj/item/weapon/storage/box/fluff/phi
name = "Phi's Personal Items"
has_items = list(
/obj/item/clothing/accessory/medal/bronze_heart,
/obj/item/clothing/gloves/ring/seal/signet/fluff/vietsi)
+
/* //VORESTATION AI TEMPORARY REMOVAL
// Tabiranth: Ascian
/obj/item/weapon/grenade/spawnergrenade/spirit
diff --git a/code/modules/vore/fluffstuff/custom_clothes_vr.dm b/code/modules/vore/fluffstuff/custom_clothes_vr.dm
index 4658c2b0f54..17c734e2405 100644
--- a/code/modules/vore/fluffstuff/custom_clothes_vr.dm
+++ b/code/modules/vore/fluffstuff/custom_clothes_vr.dm
@@ -780,6 +780,9 @@
/obj/item/clothing/head/fluff/pompom/digest_act(var/atom/movable/item_storage = null)
return FALSE
+/obj/item/clothing/head/fluff/pompom/gurgle_contaminate(var/atom/movable/item_storage = null)
+ return FALSE
+
/obj/item/clothing/head/fluff/pompom/attack_self(mob/user)
//if(!isturf(user.loc)) -- doesn't seem to cause problems to allow this and it's silly not to
// to_chat(user, "You cannot turn the light on while in this [user.loc]")
@@ -1686,16 +1689,15 @@ Departamental Swimsuits, for general use
icon_state = "kilanosuit_p"
item_state = "kilanosuit_p"
-//Mewchild: Phi Vietsi
-/obj/item/clothing/gloves/ring/seal/signet/fluff/vietsi
- name = "Phi Vietsi's Bone Signet Ring"
- desc = "A signet ring belonging to Phi Vietsi, carved from the bones of something long extinct, as a ward against bad luck."
- var/signet_name = "Phi Vietsi"
+//Mewchild: Phi Ahkeen
+/obj/item/clothing/gloves/ring/seal/signet/fluff/phi
+ name = "Phi's Bone Signet Ring"
+ desc = "A signet ring belonging to Phi, carved from the bones of something long extinct, as a ward against bad luck."
icon = 'icons/vore/custom_clothes_vr.dmi'
- icon_state = "vietsi_ring"
+ icon_state = "phi_ring"
-/obj/item/clothing/gloves/ring/seal/signet/fluff/vietsi/change_name(var/signet_name = "Unknown")
+/obj/item/clothing/gloves/ring/seal/signet/fluff/phi/change_name(var/signet_name = "Unknown")
name = "[signet_name]'s Bone Signet Ring"
desc = "A signet ring belonging to [signet_name], carved from the bones of something long extinct, as a ward against bad luck."
diff --git a/code/modules/vore/fluffstuff/custom_items_vr.dm b/code/modules/vore/fluffstuff/custom_items_vr.dm
index cdd2bb770fe..dbb99b910da 100644
--- a/code/modules/vore/fluffstuff/custom_items_vr.dm
+++ b/code/modules/vore/fluffstuff/custom_items_vr.dm
@@ -1948,3 +1948,9 @@
name = "nobel sciences award"
desc = "A bronze medal which represents significant contributions to the field of science or engineering, this one has Ashley Kifer engraved on it."
+//lm40 - Kenzie Houser
+/obj/item/weapon/reagent_containers/hypospray/vial/kenzie
+ name = "gold-trimmed hypospray"
+ desc = "A gold-trimmed MKII hypospray. The name 'Kenzie Houser' is engraved on the side."
+ icon = 'icons/vore/custom_items_vr.dmi'
+ icon_state = "kenziehypo"
\ No newline at end of file
diff --git a/code/modules/vore/fluffstuff/guns/dominator.dm b/code/modules/vore/fluffstuff/guns/dominator.dm
index 25ca2610f35..657ba95738e 100644
--- a/code/modules/vore/fluffstuff/guns/dominator.dm
+++ b/code/modules/vore/fluffstuff/guns/dominator.dm
@@ -1,7 +1,7 @@
// -------------- Dominator -------------
/obj/item/weapon/gun/energy/gun/fluff/dominator
- name = "\improper MWPSB Dominator"
- desc = "A MWPSB's Dominator from the Federation. Like the basic Energy Gun, this gun has two settings. It is used by the United Federation Public Safety Bureau's Criminal Investigation Division. The weapon can only be fired by the owner and is alert-level locked."
+ name = "bulky energy gun"
+ desc = "A MWPSB Dominator from the Federation. Like the basic Energy Gun, this gun has two settings. It is used by the United Federation Public Safety Bureau's Criminal Investigation Division. The weapon can only be fired by the owner and is alert-level locked."
icon = 'icons/vore/custom_guns_vr.dmi'
icon_state = "dominatorstun100"
diff --git a/code/modules/vore/fluffstuff/guns/gunsword.dm b/code/modules/vore/fluffstuff/guns/gunsword.dm
index 63be249006c..f6bb1a30263 100644
--- a/code/modules/vore/fluffstuff/guns/gunsword.dm
+++ b/code/modules/vore/fluffstuff/guns/gunsword.dm
@@ -1,6 +1,6 @@
/obj/item/weapon/gun/energy/gun/fluff/gunsword
name = "Sword Buster"
- desc = "A gun custom built using the science behind a Golden Empire pistol."
+ desc = "The Sword Buster gun is custom built using the science behind a Golden Empire pistol. The cell can be removed in close range and used as energy shortsword."
icon = 'icons/vore/custom_guns_vr.dmi'
icon_state = "gbuster100"
diff --git a/code/modules/vore/fluffstuff/guns/nsfw.dm b/code/modules/vore/fluffstuff/guns/nsfw.dm
index bc570697d6d..a0c7d89196e 100644
--- a/code/modules/vore/fluffstuff/guns/nsfw.dm
+++ b/code/modules/vore/fluffstuff/guns/nsfw.dm
@@ -1,7 +1,7 @@
// -------------- NSFW -------------
/obj/item/weapon/gun/projectile/nsfw
- name = "KHI-102b \'NSFW\'"
- desc = "Variety is the spice of life! The 'Nanotech Selectable-Fire Weapon' is an unholy hybrid of an ammo-driven \
+ name = "cell-loaded revolver"
+ desc = "Variety is the spice of life! The KHI-102b 'Nanotech Selectable-Fire Weapon', or NSFW for short, is an unholy hybrid of an ammo-driven \
energy weapon that allows the user to mix and match their own fire modes. Up to three combinations of \
energy beams can be configured at once. Ammo not included."
diff --git a/code/modules/vore/fluffstuff/guns/protector.dm b/code/modules/vore/fluffstuff/guns/protector.dm
index 173c00b637c..b1b39e6f2d3 100644
--- a/code/modules/vore/fluffstuff/guns/protector.dm
+++ b/code/modules/vore/fluffstuff/guns/protector.dm
@@ -1,7 +1,7 @@
// -------------- Protector -------------
/obj/item/weapon/gun/energy/protector
- name = "\improper KHI-98a \'Protector\'"
- desc = "The KHI-98a is the first firearm custom-designed for Nanotrasen by KHI. It features a powerful stun mode, and \
+ name = "small energy gun"
+ desc = "The KHI-98a 'Protector' is the first firearm custom-designed for Nanotrasen by KHI. It features a powerful stun mode, and \
an alert-level-locked lethal mode, only usable on code blue and higher. It also features an integrated flashlight!"
description_info = "This gun can only be fired in lethal mode while on higher security alert levels. It is legal for sec to carry for this reason, since it cannot be used for lethal force until SOP allows it, in essence."
diff --git a/code/modules/vore/fluffstuff/guns/pummeler.dm b/code/modules/vore/fluffstuff/guns/pummeler.dm
index b12ce223e8c..f3d6c546ee9 100644
--- a/code/modules/vore/fluffstuff/guns/pummeler.dm
+++ b/code/modules/vore/fluffstuff/guns/pummeler.dm
@@ -1,7 +1,7 @@
// -------------- Pummeler -------------
/obj/item/weapon/gun/energy/pummeler
- name = "\improper PML9 \'Pummeler\'"
- desc = "For when you want to get that pesky marketing guy out of your face ASAP. The pummeler fires one HUGE \
+ name = "hypersonic gun"
+ desc = "For when you want to get that pesky marketing guy out of your face ASAP. The PML9 'Pummeler' fires one HUGE \
sonic blast in the direction of fire, throwing the target away from you at high speed. Now you can REALLY \
turn up the bass to max."
diff --git a/code/modules/vore/fluffstuff/guns/sickshot.dm b/code/modules/vore/fluffstuff/guns/sickshot.dm
index ea0820a908c..6afda74a9c4 100644
--- a/code/modules/vore/fluffstuff/guns/sickshot.dm
+++ b/code/modules/vore/fluffstuff/guns/sickshot.dm
@@ -1,7 +1,7 @@
// -------------- Sickshot -------------
/obj/item/weapon/gun/energy/sickshot
- name = "\improper MPA6 \'Sickshot\'"
- desc = "Need to stun someone? Don't mind having to clean up the mess afterwards? The Sickshot is the answer to your prayers. \
+ name = "\'Sickshot\' revolver"
+ desc = "Need to stun someone? Don't mind having to clean up the mess afterwards? The MPA6 'Sickshot' is the answer to your prayers. \
Using a short-range concentrated blast of disruptive sound, the Sickshot will nauseate and confuse the target for several seconds. NOTE: Not suitable \
for use in vacuum. Usage on animals may cause panic and rage without stunning. May cause contraction and release of various 'things' from various 'orifices', even if the target is already dead."
@@ -44,7 +44,7 @@
var/mob/living/carbon/human/H = target
H.vomit()
H.Confuse(2)
-
+
return 1
//R&D Design
diff --git a/code/modules/xenoarcheaology/misc.dm b/code/modules/xenoarcheaology/misc.dm
index 0f51e4fd773..b457e98984c 100644
--- a/code/modules/xenoarcheaology/misc.dm
+++ b/code/modules/xenoarcheaology/misc.dm
@@ -65,6 +65,7 @@
/obj/item/clothing/under/rank/scientist,
/obj/item/clothing/suit/storage/toggle/labcoat,
/obj/item/clothing/shoes/white,
+ /obj/item/weapon/melee/umbrella, // vorestation addition,
/obj/item/clothing/glasses/science,
/obj/item/device/radio/headset/headset_sci,
/obj/item/weapon/storage/belt/archaeology,
diff --git a/code/stylesheet.dm b/code/stylesheet.dm
index dd992a62bf1..1a09a30f400 100644
--- a/code/stylesheet.dm
+++ b/code/stylesheet.dm
@@ -102,6 +102,7 @@ h1.alert, h2.alert {color: #000000;}
.vulpkanin {color: #B97A57;}
.enochian {color: #848A33; letter-spacing:-1pt; word-spacing:4pt; font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif;}
.daemon {color: #5E339E; letter-spacing:-1pt; word-spacing:0pt; font-family: "Courier New", Courier, monospace;}
+.bug {color: #9e9e39;}
.vox {color: #AA00AA;}
.rough {font-family: "Trebuchet MS", cursive, sans-serif;}
.say_quote {font-family: Georgia, Verdana, sans-serif;}
diff --git a/config/alienwhitelist.txt b/config/alienwhitelist.txt
index 76f2a9b1966..3db20fb9c1c 100644
--- a/config/alienwhitelist.txt
+++ b/config/alienwhitelist.txt
@@ -1,3 +1,5 @@
+some~user - Species
+
admiraldragon - Vox
aether_elemental - Daemon
arokha - Protean
@@ -16,6 +18,7 @@ ktccd - Diona
mewchild - Diona
mewchild - Vox
natje - Xenochimera
+oreganovulgaris - Xenochimera
paradoxspace - Xenochimera
rapidvalj - Vox
rikaru19xjenkins - Xenomorph Hybrid
@@ -29,8 +32,8 @@ silverTalismen - Diona
silverTalismen - Vox
silvertalismen - Xenochimera
singo - Gutter
-some~user - Species
tastypred - Xenochimera
+varonis - Xenochimera
verkister - Xenochimera
wickedtemp - Shadekin Empathy
wtfismyname - Xenomorph Hybrid
diff --git a/config/custom_items.txt b/config/custom_items.txt
index 2291f4c4104..dd83a67c10f 100644
--- a/config/custom_items.txt
+++ b/config/custom_items.txt
@@ -177,6 +177,18 @@ character_name: Diana Kuznetsova
item_path: /obj/item/clothing/head/fluff/pink_tiara
}
+{
+ckey: cross_exonar
+character_name: Sari-U
+item_path: /obj/item/weapon/disk/limb/eggnerdltd
+}
+
+{
+ckey: cross_exonar
+character_name: Sari-E
+item_path: /obj/item/weapon/disk/limb/eggnerdltd
+}
+
# ######## D CKEYS
{
ckey: deepindigo
@@ -390,14 +402,14 @@ req_access = 3
{
ckey: jertheace
character_name: Jeremiah Acacius
-item_path: /obj/item/weapon/gun/projectile/p92x/large/preban #Todo: Replace with HP version allowed in the application.
+item_path: /obj/item/weapon/gun/projectile/p92x/large/preban/hp
req_access = 3
}
{
ckey: jertheace
character_name: Jeremiah Acacius
-item_path: /obj/item/ammo_magazine/m9mm/large/preban #Spare ammo. #Todo: Replace with HP version allowed in the application.
+item_path: /obj/item/ammo_magazine/m9mm/large/preban/hp #Spare ammo
req_access = 3
}
@@ -543,6 +555,13 @@ item_path: /obj/item/clothing/accessory/medal/nobel_science/fluff/ashley
# ######## L CKEYS
+{
+ckey: lm40
+character_name: Kenzie Houser
+item_path: /obj/item/weapon/reagent_containers/hypospray/vial/kenzie
+req_access: 5
+}
+
#Weapon Box. Permit Expired
#{
#ckey: luminescentring
@@ -565,8 +584,8 @@ item_path: /obj/item/weapon/implanter/reagent_generator/savannah
# ######## M CKEYS
{
ckey: mewchild
-character_name: Phi Vietsi
-item_path: /obj/item/weapon/storage/box/fluff/vietsi
+character_name: Phi Ahkeen
+item_path: /obj/item/weapon/storage/box/fluff/phi
}
{
@@ -845,6 +864,18 @@ character_name: Ascian
item_path: /obj/item/clothing/accessory/medal/silver/unity
}
+{
+ckey: tabiranth
+character_name: Ascian
+item_path: /obj/item/weapon/grenade/spawnergrenade/spirit
+}
+
+{
+ckey: tabiranth
+character_name: Ascian
+item_path: /obj/item/device/survivalcapsule/tabiranth
+}
+
{
ckey: techtypes
character_name: Lasshseeki Korss
@@ -863,12 +894,6 @@ character_name: Tony Bingham
item_path: /obj/item/clothing/head/fluff/runac
}
-{
-ckey: tabiranth
-character_name: Ascian
-item_path: /obj/item/weapon/grenade/spawnergrenade/spirit
-}
-
# ######## U CKEYS
# ######## V CKEYS
{
diff --git a/config/names/first_female.txt b/config/names/first_female.txt
index b500f027efc..3f8c53a7a9d 100644
--- a/config/names/first_female.txt
+++ b/config/names/first_female.txt
@@ -306,7 +306,6 @@ Yolanda
Ysabel
Zelda
Zune
-Emma
Isabella
Emily
Madison
@@ -314,13 +313,11 @@ Ava
Olivia
Sophia
Abigail
-Elizabeth
Chloe
Samantha
Addison
Natalie
Mia
-Alexis
Alyssa
Hannah
Ashley
@@ -330,7 +327,6 @@ Grace
Taylor
Brianna
Lily
-Hailey
Anna
Victoria
Kayla
@@ -345,19 +341,13 @@ Sofia
Makayla
Avery
Riley
-Julia
Leah
-Aubrey
-Jasmine
Audrey
Katherine
Morgan
Brooklyn
Destiny
-Sydney
-Alexa
Kylie
-Brooke
Kaitlyn
Evelyn
Layla
@@ -379,7 +369,6 @@ Trinity
Andrea
Maya
Valeria
-Sophie
Rachel
Vanessa
Aaliyah
@@ -406,7 +395,6 @@ Zoey
Gracie
Megan
Haley
-Mya
Michelle
Molly
Stephanie
@@ -427,7 +415,6 @@ Rebecca
Lydia
Daniela
Bella
-Keira
Adriana
Lilly
Hayden
@@ -464,7 +451,6 @@ London
Juliana
Shelby
Cheyenne
-Angel
Daisy
Makenzie
Miranda
@@ -478,7 +464,6 @@ Mikayla
Summer
Piper
Adrianna
-Jillian
Sierra
Jayden
Sienna
@@ -493,7 +478,6 @@ Sabrina
Stella
Aniyah
Annabelle
-Alexandria
Kathryn
Skylar
Aliyah
@@ -501,7 +485,6 @@ Delilah
Julianna
Kelsey
Khloe
-Carly
Amaya
Mariana
Christina
@@ -516,7 +499,6 @@ Josephine
Delaney
Scarlett
Elena
-Cadence
Alexia
Maggie
Laura
@@ -543,7 +525,6 @@ Caitlin
Kendra
Karina
Kyra
-Kayleigh
Addyson
Kiara
Jazmine
@@ -554,11 +535,9 @@ Lola
Kyla
Kelly
Fatima
-Tiffany
Kira
Crystal
Mallory
-Esmeralda
Alejandra
Eleanor
Angelica
@@ -607,14 +586,12 @@ Lexi
Camille
Savanna
Dulce
-Daniella
Lucia
Emely
Joselyn
Kiley
Kailey
Miriam
-Cynthia
Rihanna
Georgia
Rylie
@@ -652,7 +629,6 @@ Rose
Malia
Shayla
Fiona
-Phoebe
Nayeli
Paola
Kaelyn
@@ -675,8 +651,6 @@ Hanna
Tatum
Marlee
Nataly
-Helen
-Janelle
Lizbeth
Serena
Anya
@@ -686,13 +660,11 @@ Jazlyn
Nancy
Lindsay
Desiree
-Hayley
Itzel
Imani
Madelynn
Asia
Kadence
-Madyson
Talia
Jane
Kayden
@@ -704,7 +676,6 @@ Jadyn
Celeste
Jimena
Luna
-Yasmin
Emilia
Annika
Estrella
@@ -718,7 +689,6 @@ Dayana
Lilah
Lilliana
Natasha
-Hadley
Harley
Priscilla
Claudia
@@ -753,7 +723,6 @@ Meredith
Kailyn
Lesly
Johanna
-Diamond
Evangeline
Juliet
Kathleen
@@ -786,22 +755,660 @@ Perla
Amiyah
Alyson
Rachael
-Shannon
Aileen
Miracle
Lillie
Danika
-Heather
Kassidy
Taryn
-Tori
Francesca
Kristen
Amya
-Elle
Kristina
Cheyanne
Haylie
Patricia
-Anne
-Samara
\ No newline at end of file
+Samara
+Balina
+Skiftere
+Albana
+Fatushe
+Vilna
+Hamia
+Kalila
+Noura
+Shadia
+Selima
+Herri
+Zwina
+Tanit
+Satna
+Batti
+Loula
+Nuja
+Kassu
+Aketa
+Pherenike
+Cyrene
+Megare
+Hekaline
+Axiothea
+Atheer
+Hamda
+Hakeema
+Nadeera
+Farha
+Nasreen
+Arwa
+Pilar
+Gezana
+Dukinea
+Reyna
+Gala
+Cira
+Violeta
+Arpi
+Noushig
+Zabel
+Nane
+Arev
+Asiah
+Ishtar
+Zaminy
+Durna
+Liboko
+Mathe
+Ratu
+Nana
+Ntsebo
+Uraburu
+Ino
+Itzalle
+Graziana
+Ixone
+Celien
+Jente
+Marianne
+Floriane
+Stefanie
+Eloise
+Anke
+Dristi
+Chitra
+Geeta
+Shila
+Suravi
+Rani
+Ekta
+Fullara
+Anasuya
+Manali
+Annapurna
+Vanita
+Belma
+Elmedina
+Zineta
+Habiba
+Yi
+Eka
+Thi
+New
+Aye
+Azah
+Hapsatou
+Aibell
+Bethan
+Carys
+Branwyn
+Alis
+Gwen
+Gwendolyn
+Caitriona
+Morag
+Muireall
+Khazan
+Yahita
+Yisa
+Sovbika
+Zheng
+Liuxian
+Chao
+Ping
+Yan
+Hai
+Ling
+Min
+Ru
+Bao
+Sanja
+Gordana
+Dorotea
+Ruzena
+Tatjana
+Vilma
+Dagmar
+Blanka
+Yvonne
+Hertha
+Lise
+Liv
+Randi
+Ester
+Ziba
+Taban
+Shireen
+Yasaman
+Karlien
+Saar
+Liene
+Khat
+Maat
+Tauret
+Sitra
+Anta
+Niut
+Ankhi
+Bennu
+Anku
+Sagira
+Kakra
+Safa
+Masika
+Salma
+Aya
+Nesma
+Myrrh
+Wynfride
+Millicent
+Sybell
+Inna
+Rebeka
+Esta
+Endla
+Nanni
+Awet
+Sisay
+Lakech
+Jaana
+Kirsi
+Roosa
+Saimi
+Hilda
+Berta
+Rauna
+Reeta
+Kanerva
+Germaine
+Sabine
+Laurette
+Yvette
+Mara
+Elsbeth
+Maike
+Agatha
+Nadja
+Gerda
+Thalia
+Dora
+Corinna
+Lambrini
+Vassia
+Panagoita
+Leena
+Dayita
+Purva
+Hardi
+Pani
+Vedi
+Lasya
+Charvi
+Yanina
+Eliora
+Shir
+Ayelet
+Fanya
+Liza
+Gaya
+Zimra
+Nehal
+Ananya
+Jyoti
+Neha
+Salani
+Ruhi
+Karnavati
+Jaya
+Padmini
+Anu
+Sa
+Sua
+Neng
+True
+Fridlin
+Silfa
+Iren
+Iva
+Tamara
+Solny
+Snaiborg
+Dagny
+Holmfridur
+Hellveig
+Thula
+Hjalta
+Alfdis
+Freygerdur
+Aldis
+Thorhalla
+Pala
+Ingis
+Grima
+Telma
+Yobanna
+Kambiri
+Adanna
+Oluchi
+Amachey
+Mgbeke
+Yuka
+Koken
+Chiho
+Akae
+Taka
+Ritsuko
+Hasumi
+Tama
+Yumako
+Haniko
+Kaori
+Setsu
+Shoken
+Sakura
+Sen
+Tane
+Yoshe
+Imari
+Cho
+Jupar
+Janna
+Albina
+Maira
+Aru
+Nazira
+Aliya
+Zubaira
+Sang
+Phan
+Preap
+Kim
+Jey
+Meang
+Moul
+Touch
+Rous
+Sok
+Priti
+Damini
+Ihita
+Amrita
+Kalyani
+Rashmi
+Kunda
+Vani
+Sarika
+Wacu
+Nduta
+Noni
+Muthoni
+Nyambura
+Mukondi
+Wandia
+Magiri
+Njoki
+Mun
+Ya
+Noe
+Kal
+Pak
+Ton
+Wi
+Fulcina
+Vibia
+Sextia
+Cania
+Modesta
+Cordia
+Lae
+Moana
+Oke
+Lilo
+Wanika
+Kalena
+Napua
+Kalama
+Alona
+Kalia
+Makani
+Kawena
+Lani
+Halina
+Asola
+Salitia
+Dianna
+Denisa
+Katre
+Gaiva
+Rima
+Apollonia
+Kornelia
+Zofia
+Vika
+Anyang
+Ambala
+Apudo
+Awuor
+Naamah
+Akoth
+Atuku
+Farhat
+Aisyah
+Jeelaan
+Rihaab
+Mayang
+Meriam
+Rona
+Uruewa
+Marama
+Ruihi
+Neni
+Manewa
+Tapu
+Shefali
+Vritika
+Namita
+Ena
+Manisha
+Akshata
+Aaruni
+Orbei
+Temulun
+Saran
+Chagur
+Ghoa
+Aysha
+Zaheda
+Nezha
+Ahlam
+Fiza
+Hafida
+Saida
+Awinita
+Tuwa
+Orenda
+Pamuya
+Tsomah
+Hola
+Washta
+Yutu
+Catori
+Tablita
+Kasa
+Muna
+Weeko
+Minku
+Seti
+Sajal
+Thaili
+Rajani
+Kopeela
+Pratik
+Erna
+Sonja
+Margrete
+Turid
+Evy
+Tordis
+Anette
+Kristin
+Elna
+Malin
+Bente
+Frida
+Magnhild
+Astrid
+Monika
+Hamna
+Yesim
+Nira
+Diba
+Salwa
+Arta
+Nakisa
+Sima
+Tumay
+Maryam
+Soraya
+Fariba
+Pouri
+Pari
+Nikou
+Soheila
+Nasim
+Hanieh
+Shamsi
+Nassim
+Maja
+Szarlota
+Kinga
+Marietta
+Donata
+Lidia
+Luiza
+Adelina
+Josefina
+Sonia
+Salome
+Dores
+Amor
+Bruna
+Jassi
+Avneet
+Livnoor
+Yasmine
+Hir
+Lakh
+Shaminder
+Mashaal
+Ruza
+Kostana
+Esma
+Masilda
+Viollca
+Lajaria
+Tsura
+Jeta
+Vai
+Melania
+Teodora
+Aurelia
+Viorica
+Dominique
+Mariutza
+Dumitra
+Uta
+Delia
+Ylenia
+Grusha
+Galka
+Valeriya
+Lera
+Mashka
+Nelya
+Feodora
+Jelena
+Sveta
+Jenya
+Lara
+Matryosha
+Matryona
+Tina
+Eseta
+Emere
+Pele
+Svetlana
+Stanislava
+Jasna
+Olga
+Anka
+Dragica
+Bogdana
+Bozena
+Petra
+Jaroslava
+Jolana
+Alena
+Nikola
+Sona
+Vanda
+Zawati
+Tisa
+Hawa
+Jaha
+Shauriana
+Rashida
+Koffi
+Satsobek
+Sigrid
+Tilda
+Oleana
+Nelly
+Kerstin
+Britt
+Maj
+Siv
+Siri
+Agneta
+Asgard
+Rishmeka
+Oppila
+Rajanitha
+Vyshu
+Rabika
+Shai
+Nirai
+Kayala
+Mae
+Yodman
+Kwanjai
+Praitun
+Choi
+Phajee
+Sumana
+Adak
+Sevil
+Gunes
+Isil
+Izel
+Latife
+Kieu
+Minh
+Le
+Cat
+Thu
+Tien
+Jofrid
+Vigdis
+Signy
+Arnora
+Fridgerd
+Skuld
+Brynhild
+Bolla
+Gyrd
+Fastvi
+Disai
+Zena
+Katha
+Nith
+Navpreet
+Izula
+Sihle
+Ethwasa
+Xolani
+Thando
+Neith
+Zamani
+Zinhle
+Msizi
+Amehlo
+Fatiha
+Aicha
+Fatma
+Khiera
+Dalal
+Gamalat
+Hana
+Rania
+Milagrosa
+Amahle
+Lesedi
+Reem
+Aria
+Noemi
+Concepcion
+Antonella
+Aadya
+Diya
+Jing
+Ying
+Xiaoyan
+Xinyi
+Tingting
+Tala
+Rimas
+Adi
+Noam
+Tamar
+Yael
+Zara
+Seo
+Shu
+Althea
+Kabita
+Nor
+Zeynep
+Aura
+Chastity
+Rebel
+Vixen
+Zero
+Nix
+Wren
+India
+Pearl
+Natuna
+Dawn
+Aditya
+Mio
+Discovery
+Cas
+Zee
+Rewi
+Lusia
+Olympia
+Freya
+Chani
+Ash
+Val
+Okra
+Verda
+Mania
+Peace
+Fortuna
+Hathor
+Lucky
+Wish
+Africa
+Proxima
+Ceti
+Sabik
\ No newline at end of file
diff --git a/config/names/first_male.txt b/config/names/first_male.txt
index f2b03e16868..84270df02eb 100644
--- a/config/names/first_male.txt
+++ b/config/names/first_male.txt
@@ -223,26 +223,21 @@ Woodrow
Zack
Zane
Zeke
-Jacob
-Michael
Ethan
Joshua
Daniel
Alexander
Anthony
-William
Christopher
Matthew
Jayden
Andrew
Joseph
David
-Noah
Aiden
James
Ryan
Logan
-John
Nathan
Elijah
Christian
@@ -265,15 +260,12 @@ Jack
Kevin
Jose
Isaiah
-Luke
Landon
Justin
-Lucas
Zachary
Jordan
Robert
Aaron
-Brayden
Thomas
Cameron
Hunter
@@ -285,9 +277,7 @@ Aidan
Jason
Julian
Wyatt
-Charles
Luis
-Carter
Juan
Chase
Diego
@@ -299,7 +289,6 @@ Carlos
Sebastian
Liam
Hayden
-Nathaniel
Henry
Jesus
Ian
@@ -307,18 +296,14 @@ Tristan
Bryan
Sean
Cole
-Alex
Eric
Brian
Jaden
Carson
-Blake
Ayden
Cooper
-Dominic
Brady
Caden
-Josiah
Kyle
Colton
Kaden
@@ -329,16 +314,11 @@ Parker
Steven
Alejandro
Riley
-Richard
-Timothy
-Devin
Jesse
Victor
-Jake
Joel
Colin
Kaleb
-Bryce
Levi
Oliver
Oscar
@@ -348,16 +328,12 @@ Cody
Micah
Preston
Marcus
-Max
-Patrick
Seth
Jeremy
Peyton
Nolan
Ivan
-Damian
Maxwell
-Alan
Kenneth
Jonah
Jorge
@@ -365,10 +341,8 @@ Mark
Giovanni
Eduardo
Grant
-Collin
Gage
Omar
-Emmanuel
Trevor
Edward
Ricardo
@@ -384,7 +358,6 @@ Andres
Derek
Garrett
Tanner
-Malachi
Conner
Fernando
Cesar
@@ -396,7 +369,6 @@ Leonardo
Santiago
Francisco
Cayden
-Shane
Edwin
Hudson
Travis
@@ -415,21 +387,18 @@ Damien
Kaiden
Spencer
Stephen
-Edgar
Wesley
Shawn
Trenton
Jared
Jeffrey
Landen
-Johnathan
Bradley
Braxton
Ryder
Camden
Roman
Asher
-Brendan
Maddox
Sergio
Israel
@@ -437,7 +406,6 @@ Andy
Lincoln
Erik
Donovan
-Raymond
Avery
Rylan
Dalton
@@ -447,7 +415,6 @@ Martin
Keegan
Marco
Jude
-Sawyer
Dakota
Leo
Calvin
@@ -457,7 +424,6 @@ Troy
Zion
Clayton
Roberto
-Zane
Gregory
Tucker
Rafael
@@ -468,7 +434,6 @@ Griffin
Devon
Drew
Lukas
-Johnny
Ty
Pedro
Tyson
@@ -478,12 +443,10 @@ Braylon
Cash
Aden
Chance
-Taylor
Marcos
Maximus
Ruben
Emanuel
-Simon
Corbin
Brennan
Dillon
@@ -499,8 +462,6 @@ Colby
Jonas
Joaquin
Payton
-Brock
-Frank
Enrique
Quinn
Emilio
@@ -516,7 +477,6 @@ Gerardo
Dante
Ezra
Armando
-Allen
Theodore
Gael
Amir
@@ -552,7 +512,6 @@ Anderson
Rodrigo
Pablo
Saul
-Danny
Donald
Elliot
Brayan
@@ -580,12 +539,9 @@ Felix
Jimmy
Cohen
Tony
-Holden
Reid
-Abel
Bennett
Zackary
-Arthur
Nehemiah
Ricky
Esteban
@@ -611,11 +567,9 @@ Darren
Elliott
Uriel
Alfredo
-Hugo
Alec
Jamari
Marshall
-Walter
Judah
Jay
Lance
@@ -629,13 +583,11 @@ Kobe
Bryant
Maurice
Russell
-Leland
Colten
Reed
Davis
Joe
Ernesto
-Desmond
Kade
Reece
Morgan
@@ -648,15 +600,12 @@ Paxton
Jacoby
Douglas
Kristopher
-Gary
Lawrence
Izaiah
Solomon
-Nikolas
Mekhi
Justice
Tate
-Jaydon
Salvador
Shaun
Alvin
@@ -664,7 +613,6 @@ Eddie
Kane
Davion
Zachariah
-Damien
Titus
Kellen
Camron
@@ -673,9 +621,7 @@ Javon
Nasir
Milo
Johan
-Byron
Jasper
-Jonathon
Chad
Marc
Kelvin
@@ -685,7 +631,6 @@ Cory
Deandre
River
Reese
-Roger
Quinton
Talon
Romeo
@@ -698,7 +643,6 @@ Damon
Jadon
Emerson
Micheal
-Bruce
Terry
Kolton
Melvin
@@ -712,7 +656,6 @@ Leonel
Karson
Zayden
Keagan
-Carl
Khalil
Cristopher
Nelson
@@ -722,4 +665,712 @@ Isaias
Roy
Triston
Walker
-Kale
\ No newline at end of file
+Kale
+Tafil
+Ismet
+Bardhal
+Valm
+Ermir
+Milosh
+Lunik
+Rahul
+Sabir
+Majed
+Bakri
+Feroz
+Taysir
+Hamal
+Mawel
+Amadsu
+Mastina
+Deren
+Ides
+Masar
+Belkin
+Kriton
+Aktis
+Lemnus
+Agastrophos
+Charax
+Cylon
+Theomestor
+Telephus
+Aatif
+Abdul
+Ridwaan
+Isaam
+Azmi
+Kaleem
+Akram
+Jafar
+Humaid
+Umar
+Masood
+Angelito
+Bautista
+Humberto
+Enzo
+Rey
+Taniel
+Matsag
+Movses
+Antog
+Moushegh
+Ismail
+Arseen
+Balishar
+Cavad
+Akif
+Orxun
+Thuso
+Malefane
+Makolo
+Refilwe
+Likotsi
+Mohau
+Amose
+Xurio
+Zipselo
+Patrizio
+Luze
+Benoit
+Emiel
+Bastien
+Anas
+Kylian
+Florent
+Rik
+Arjun
+Indranil
+Balinder
+Bimal
+Guru
+Hari
+Lalit
+Sudeep
+Sonu
+Subhash
+Anil
+Dipen
+Chandra
+Musa
+Vildan
+Hamza
+Mevludin
+Wai
+Linn
+Soe
+Kaung
+Khine
+Aung
+Phyo
+Thiha
+Entekele
+Leke
+Sakeh
+Dufach
+Rohan
+Glyn
+Elwyn
+Iver
+Berian
+Mercher
+Jesstin
+Ermid
+Dermid
+Dafydd
+Sion
+Conall
+Conn
+Alasdair
+Ruaraidh
+Rustam
+Asu
+Vakha
+Beksolta
+Nezh
+Illyas
+Tian
+Bai
+Delan
+Shun
+Gengxin
+Liang
+Jun
+Shui
+Chun
+Fang
+Zhenya
+Bo
+Dubravko
+Branko
+Davor
+Damir
+Mislav
+Lucijan
+Milovan
+Andrej
+Drahoslav
+Oluf
+Frans
+Rune
+Bernt
+Fardin
+Kalan
+Jebran
+Shapoor
+Klaas
+Siert
+Elco
+Jan
+Karst
+Aker
+Anum
+Kha
+Anhur
+Pakhrua
+Ahmes
+Hotep
+Tutamen
+Meri
+Sneferu
+Imhotep
+Nefer
+Pepi
+Hanif
+Odion
+Adel
+Aymn
+Mando
+Dodi
+Mustafa
+Adham
+Manu
+Darwishi
+Erasmus
+Cleeve
+Taaniel
+Kaljo
+Timmo
+Uno
+Nega
+Ayene
+Bekele
+Abenet
+Haile
+Mahmoud
+Aldo
+Benjam
+Sampo
+Oskari
+Mika
+Sampsa
+Risto
+Yves
+Antoine
+Theo
+Henri
+Maxime
+Mathis
+Eugene
+Jorg
+Ulrich
+Hubert
+Raimund
+Gunter
+Christoforos
+Markos
+Romanos
+Vasilios
+Valentinos
+Lambros
+Emmanouil
+Devnand
+Inesh
+Savit
+Yatnesh
+Vishay
+Manek
+Amit
+Munish
+Oris
+Jamiel
+Ahron
+Levey
+Yesochor
+Avidan
+Harrod
+Hanan
+Tabor
+Ephron
+Absolom
+Makis
+Ichabod
+Taaveti
+Sumit
+Vineet
+Rishnu
+Chand
+Madhavacharta
+Navin
+Pranav
+Tsim
+Fue
+Lung
+Pheng
+Sigbjorn
+Heidrekur
+Saimundur
+Jovin
+Ulfar
+Velaugur
+Hunn
+Edvald
+Sigurd
+Sigfinnur
+Bjarni
+Oddur
+Isar
+Vemundur
+Herluf
+Linberg
+Fenrir
+Uranus
+Skidi
+Gudgeir
+Geir
+Akuchi
+Okparo
+Chikere
+Chinou
+Jelani
+Chidy
+Natsuo
+Kyoden
+Kakuei
+Sotaro
+Masakado
+Kenji
+Konyo
+Kazuko
+Kenko
+Shogo
+Jo
+Shoji
+Kazi
+Shinji
+Akira
+Kakuzo
+Hiro
+Arman
+Nurbolat
+Alen
+Iskander
+Marat
+Lorn
+Moul
+Phann
+Pang
+Dith
+Chin
+Chim
+Aang
+Kovind
+Madhab
+Lalu
+Uttam
+Nayan
+Yasti
+Waigwa
+Theuri
+Chege
+Nyoro
+Ngure
+Kimaru
+Min
+Pak
+Changgok
+Gok
+Kim
+Nam
+Tycho
+Lycus
+Hadrius
+Cocus
+Augustus
+Virgo
+Hegio
+Leonida
+Leonid
+Nero
+Kanoa
+Loe
+Lilo
+Keon
+Makan
+Sommai
+Makaio
+Oke
+Kalei
+Alens
+Ruriks
+Falks
+Osvalds
+Godvars
+Gytis
+Naglis
+Mykolas
+Kestas
+Vaidas
+Mikas
+Artemas
+Okeyo
+Othiambo
+Onindo
+Odede
+Otiya
+Muda
+Jusoh
+Desa
+Raadi
+Raaji
+Jati
+Tuna
+Kingi
+Urutu
+Ruhi
+Taika
+Mahora
+Eteka
+Vivek
+Tarak
+Umanath
+Punit
+Dev
+Nirmal
+Kunal
+Tartu
+Bogen
+Yegu
+Bukdai
+Yul
+Ayoub
+Muslih
+Jaul
+Youssef
+Zamen
+Aqil
+Fala
+Tocho
+Wikvaya
+Wanahton
+Nantan
+Hinto
+Sugmuk
+Mikasi
+Alo
+Ouray
+Prakash
+Subodh
+Bishwa
+Mukesh
+Nikhil
+Dheer
+Yngvar
+Sivert
+Christer
+Age
+Svend
+Gudmund
+Tore
+Viggo
+Georg
+Torbjorn
+Vebjorn
+Isak
+Oystein
+Halvard
+Alf
+Helge
+Joar
+Thor
+Mats
+Husain
+Ziyaad
+Demir
+Sahand
+Sabahattin
+Hamood
+Birtan
+Ihsan
+Harun
+Balash
+Daud
+Jaffar
+Shahab
+Hossein
+Heshmat
+Arash
+Karim
+Sadeq
+Aref
+Parsa
+Abbas
+Aziz
+Morteza
+Hashem
+Feliks
+Prots
+Luboslaw
+Leslaw
+Urban
+Mieszko
+Hanusz
+Stojan
+Kasper
+Jozafat
+Wit
+Teobaldo
+Balbino
+Viriato
+Candido
+Ramiro
+Gaspar
+Godofredo
+Navjeev
+Uddam
+Kabir
+Sukhinidhan
+Biradol
+Mahanleen
+Harbeer
+Django
+Yanko
+Chal
+Lasho
+Tobar
+Durril
+Shandor
+Zale
+Bosnik
+Boiko
+Radu
+Vasile
+Marku
+Nicu
+Skender
+Grigore
+Toma
+Costache
+Catarino
+Sasha
+Aleksandr
+Filya
+Krasimir
+Kliment
+Vadim
+Rasim
+Vadik
+Iosif
+Danya
+Nikita
+Lukyan
+Petr
+Valentin
+Valya
+Ruslan
+Pili
+Malosi
+Losi
+Atini
+Vujadin
+Duro
+Miran
+Kalinik
+Jezdimir
+Gavrilo
+Lubos
+Henrich
+Silvester
+Miroslav
+Viliam
+Konrad
+Jakub
+Hodari
+Jamba
+Mosi
+Abasi
+Sefu
+Ayo
+Tamu
+Khalfani
+Ludvig
+Hakan
+Onne
+Zakarias
+Mikael
+Elton
+Sigge
+Roland
+Stefan
+Ovid
+Ravel
+Srinan
+Natheep
+Lithik
+Shikan
+Yasmith
+Sayan
+Venujayan
+Tadthon
+Chakan
+Vidura
+Trat
+Thorn
+Taat
+Vitaya
+Nattanan
+Somsak
+Pasat
+Ertek
+Haldun
+Eray
+Suat
+Erksun
+Mehmet
+Aytek
+Ergin
+Dogander
+Quang
+Quoc
+Tuan
+Viet
+Loc
+Khang
+Blann
+Skarf
+Thorvard
+Jorund
+Starolf
+Steinolf
+Haki
+Throst
+Rognvald
+Bolverk
+Vigi
+Odinkar
+Hjor
+Beinir
+Ingolf
+Ragnar
+Badahar
+Heru
+Abrik
+Darshanbir
+Baljeet
+Daldir
+Fakeer
+Puneet
+Maskeen
+Lungelo
+Phakama
+Horus
+Xeghu
+Ukuza
+Dundubala
+Thembelani
+Dumesani
+Mohamed
+Abdelkader
+Rachid
+Said
+Brahim
+Djamel
+Abdallah
+Habib
+Murad
+Fadi
+Mohammed
+Tareq
+Mamadou
+Junior
+Bandile
+Prince
+Mehdi
+Santino
+Keven
+Heitor
+Agustin
+Vicente
+Iker
+Jie
+Fenf
+Yong
+Bin
+Aarav
+Wei
+Reza
+Noam
+Itai
+Rahman
+Batkhaan
+Ichika
+So
+Minato
+Ren
+Hinata
+Haruta
+Ryo
+Somchai
+Prasert
+Maksim
+Cyrus
+Rip
+Ripley
+Colt
+Kilroy
+Zero
+Armitage
+Lucky
+Blitz
+Kroner
+Zak
+Basque
+Tau
+Kepler
+Neo
+Nova
+Cas
+Cypher
+Switch
+Thadeus
+Lock
+Morpheus
+Sifat
+Ose
+Havdid
+Bruno
+Jossen
+Tetsuo
+Talos
+Solo
+Tobor
+Huey
+Dewey
+Louie
+Ash
+Sonny
+Titan
+Bax
+Casper
+Finnegan
+Loki
+Odin
+Finley
+Flynn
+Shamus
+Ultan
+German
+Sirius
+Castor
+Pollux
\ No newline at end of file
diff --git a/config/names/last.txt b/config/names/last.txt
index 6080967e2da..926773a6727 100644
--- a/config/names/last.txt
+++ b/config/names/last.txt
@@ -36,7 +36,6 @@ Logue
Reichard
Day
Dugmore
-Murray
Greenawalt
Jyllian
Osterwise
@@ -224,13 +223,11 @@ Unk
Otis
Quinn
Bell
-Roberts
Wood
Ullman
Bicknell
Gibson
Rohtin
-James
Wallick
Eggbert
Losey
@@ -273,7 +270,6 @@ Hook
Reighner
Welty
Jenkins
-Bennett
Swarner
Hawker
Agg
@@ -341,7 +337,6 @@ Laurenzi
Minnie
Houser
Langston
-Anderson
Barrett
Wible
Hujsak
@@ -398,7 +393,6 @@ Ratcliff
Riggle
Newton
Sanders
-Mitchell
Lauffer
Aggley
Moberly
@@ -438,13 +432,9 @@ Smith
Steele
Leach
Armstrong
-Wheeler
Easter
Greenwood
-Woodward
-Pratt
Buzzard
-Cox
Eliza
Rockwell
Zeal
@@ -468,7 +458,6 @@ Digson
Byers
Hincken
Shaner
-Todd
Whiteman
Lineman
Albright
@@ -505,68 +494,36 @@ Dawkins
McShain
McDonohugh
Power
-Smith
Jones
Williams
Brown
Taylor
Davies
Wilson
-Evans
-Thomas
-Roberts
-Johnson
Walker
Wright
-Robinson
Thompson
-Hughes
-White
-Edwards
-Hall
Patel
-Green
Martins
Lewis
-Wood
-Jackson
-Clarke
Harris
Clark
-Scott
Turner
-Hill
-Moore
Cooper
Morris
-Ward
-Watson
Morgan
-Anderson
Harrison
-King
-Campbell
-Young
-Mitchell
-Baker
-James
Kelly
Allen
-Bell
Phillips
Lee
-Stewart
-Miller
Parker
Simpson
-Bennett
-Davis
Griffiths
Shaw
Price
Cook
Richardson
-Murray
Marshall
Begum
Murphy
@@ -577,9 +534,6 @@ Bailey
Carter
Robertson
Graham
-Adams
-Richards
-Cox
Singh
Hussain
Ellis
@@ -591,22 +545,18 @@ Ali
Reid
Rathens
Rathen
-Mason
Chapman
Powell
Owen
Ahmed
-Gibson
Rogers
Webb
Holmes
Mills
Matthews
-Hunt
Palmer
Lloyd
Kaur
-Fisher
Ivanov
Smirnov
Vasilyev
@@ -616,4 +566,1061 @@ Mikhaylov
Pavlov
Semenov
Andreev
-Alekseev
\ No newline at end of file
+Alekseev
+Mali
+Troshani
+Nano
+Kupi
+Syla
+Lucca
+Hasani
+Khalef
+Benita
+Fahas
+Seghir
+Ziani
+Saadi
+Beghal
+Yamin
+Mousa
+Bilal
+Khalaf
+Zafar
+Salman
+Naderi
+Usman
+Al-Hassen
+El-Salame
+Al-Fadel
+El-Shaer
+El-Amini
+Al-Miah
+Al-Meskin
+El-Nazar
+Villar
+Caceres
+Dominguez
+Ortiz
+Vidal
+Escobar
+Schiavone
+Hagopian
+Petrosian
+Baronian
+Kostanian
+Ismailyan
+Jamshidova
+Kyrimsoy
+Maharramova
+Jurio
+Zabalain
+Ilurdoz
+Menda
+Anchoverri
+Osteriz
+Basque
+Duquesne
+Peeters
+Blindeman
+Piat
+Raes
+Delporte
+Verplancke
+Vandevelde
+Carton
+Basak
+Khuro
+Sastri
+Thakur
+Chakraborty
+Paramahamsa
+Mazumdar
+Momen
+Sanu
+Chatterjee
+Saraswat
+Ghosh
+Rakib
+Majumder
+Terzic
+Alagic
+Topalovic
+Bajramovic
+Ivanovic
+Vidovic
+Yadanar
+Nway
+Myat
+Naing
+Ebot
+Njoya
+Ewaso
+Lekeaka
+Lukombo
+Masumbuku
+Mukendi
+Dimonekene
+Kosi
+Linzenge
+Nguo
+Boko
+Manoka
+Gower
+Pumphrey
+Priddy
+Clough
+Sealy
+Bethel
+Ros
+MacLeoir
+MacCrum
+Tsarnaeva
+Khadzhiev
+Maskhadov
+Hamidov
+Musaeva
+Usamova
+Xing
+Feng
+Qui
+Zhang
+Xun
+Teng
+Huang
+Deng
+Pan
+Zhou
+Kong
+Cheng
+Mao
+Zou
+Solic
+Kopic
+Paunovic
+Papratovic
+Spiljak
+Marek
+Capek
+Prusik
+Vecerova
+Karaskova
+Jansen
+Ludvigsen
+Bentsen
+Berg
+Jepsen
+Karlsen
+Ebbesen
+Dogger
+Bakker
+Keulen
+Harloff
+Ossen
+Storteboom
+Vermeer
+Gasner
+Dam
+Boer
+Hurmann
+Geerts
+Cheverton
+Goddard
+Harpham
+Ashpole
+Hillyard
+Lochty
+Relish
+Fernsby
+Khepera
+Nebka
+Amemu
+Neferu
+Horemhebi
+Kharatanekha
+Anuketma
+Cham
+Bata
+Tannous
+Tuma
+Asghar
+Mallouf
+Bishara
+Aswan
+Kouri
+Hackeman
+Bulstrode
+Fane
+Norwood
+Goodstone
+Milner
+Parn
+Teder
+Sirel
+Magi
+Kask
+Lepmets
+Jogi
+Girma
+Abebe
+Lebna
+Anom
+Feleke
+Bereket
+Selassie
+Panaligan
+Manalastas
+Zoleta
+Decatoria
+Solonen
+Paananen
+Latvala
+Kukkonen
+Waris
+Niemi
+Kallo
+Delon
+Allard
+Renaud
+Blanc
+Gerin
+Aubert
+Geiger
+Landry
+Vannier
+Saint-Yves
+Gauthier
+Ehrenfest
+Konig
+Kindler
+Ruhl
+Voigt
+Rickenbacker
+Strasburger
+Stratos
+Rota
+Economos
+Romanos
+Hallos
+Floros
+Fotopoulos
+Constantinos
+Stamou
+Demetrios
+Stavropoulos
+Demetriou
+Panagopoulou
+Desai
+Vyas
+Chudasama
+Kotak
+Tripathi
+Bhansali
+Chitalia
+Sarabhai
+Modi
+Adani
+Silberstein
+Dresner
+Cohen
+Metz
+Bashevis
+Laski
+Yedidyah
+Ginsberg
+Levinstein
+Abraham
+Federman
+Adler
+Gottesman
+Rabinowicz
+Seth
+Vad
+Mahanta
+Chadda
+Bhaumik
+Jadhav
+Dvivedi
+Lata
+Poddar
+Talavalakar
+Satavelekar
+Mudaliyar
+Nayar
+Nan
+Tsab
+Chue
+Wong
+Thao
+Thai
+Song
+Finnsson
+Finnsdottir
+Kristvinsson
+Krisovinsdottir
+Ingvaldsson
+Ingvaldsdottir
+Abelsson
+Abelsdottir
+Sigurdsson
+Sigurdsdottir
+Holmsson
+Holmsdottir
+Chidey
+Onuchukwu
+Akachi
+Mazzi
+Onyekachi
+Ndulu
+Ngozi
+Obasi
+Jajah
+Uchechea
+Zebenjo
+Ishida
+Ito
+Matsushita
+Yoshimi
+Horikiri
+Sakai
+Kase
+Watari
+Tano
+Fuji
+Okada
+Yadama
+Yagami
+Homura
+Tanimoto
+Kugo
+Fuse
+Sugita
+Naya
+Hamakawa
+Kobayashi
+Serikov
+Fauskeev
+Yerbolatev
+Ayatova
+Ericova
+Khazretgaliev
+Baurzhanova
+Khemera
+Nhean
+Narith
+Sourkea
+Visal
+Poeu
+Kalliyan
+Akara
+Chantou
+Rachana
+Kunthea
+Rasmey
+Nuon
+Akash
+Vrsiini
+Ijay
+Navin
+Ikshu
+Asheesh
+Harihar
+Paramartha
+Mukesh
+Ngendo
+Mumbi
+Murugi
+Kioni
+Nyagura
+Njambi
+Mugo
+Kiongo
+Mburu
+Sook
+Eon
+Ri
+So-Yung
+So-Ri
+Dae-Jung
+Jin
+Joon
+Yong
+Yung
+Scaro
+Decius
+Geta
+Nero
+Natalis
+Pollienus
+Docilus
+Castus
+Nerva
+Siyavong
+Chanthraphone
+Sengtavisouk
+Thonemany
+Vatthana
+Keobunta
+Savang
+Rattanavongsa
+Khanthavong
+Lapsina
+Lodina
+Caune
+Veiss
+Ozers
+Lielmanis
+Lidaks
+Rubenis
+Tucs
+Bekeryte
+Vaiciute
+Pakeryte
+Maczinskiene
+Pretkelis
+Naidicas
+Suksta
+Kanapickas
+Straksys
+Remeza
+Kantautine
+Leipute
+Ogutu
+Ondiek
+Were
+Kowa
+Sialo
+Ochola
+Obonyo
+Akelo
+Hongo
+Julu
+Oduyu
+Orombi
+Noh
+Che
+Dhareef
+Taufan
+Petera
+Witika
+Pikari
+Enoka
+Timoti
+Piripi
+Arona
+Romana
+Natana
+Kapale
+Agarkar
+Karve
+Rasam
+Deshmane
+Sonarkar
+Lagu
+Shinde
+Javkar
+Sawant
+Ranganakar
+Hardas
+Pawgi
+Sibari
+Khatibi
+Mernissi
+Bikri
+Samie
+Zniber
+Lemsih
+Wasti
+Subba
+Karkee
+Pandeya
+Belbase
+Rawal
+Osland
+Thygesen
+Reiten
+Davidsen
+Haller
+Tofte
+Pettersen
+Island
+Handeland
+Saltvik
+Bakke
+Hotvedt
+Kampen
+Vangsness
+Fjerstad
+Underberg
+Munch
+Lodhra
+Ansari
+Banday
+Karlal
+Hameed
+Sarpara
+Bhatti
+Tareen
+Marri
+Kirmani
+Daudpota
+Ghazali
+Mangi
+Vele
+Paiyo
+Apa
+Henao
+Kasi
+Injia
+Kewa
+Tajik
+Raad
+Vakili
+Mashayekhi
+Hosseini
+Panahi
+Rashidi
+Fallah
+Mostofi
+Kasebi
+Afshani
+Boromand
+Qaderi
+Safavi
+Golshani
+Barbarz
+Bina
+Raoufi
+Ahangar
+Kabat
+Loszowska
+Ras
+Murawska
+Kwasny
+Halas
+Kabacinska
+Maszowska
+Rojek
+Maczko
+Makos
+Hodor
+Kapitan
+Sirek
+Kopinski
+Cordeiro
+Seixas
+Tavares
+Carneiro
+Neves
+Queiroz
+Nunes
+Hind
+Abril
+Baptista
+Montenegro
+Azevedo
+Sousa
+Bandiera
+Barboza
+Dhir
+Gora
+Tott
+Tatran
+Jhaal
+Motsara
+Dhama
+Bhadu
+Bargoti
+Sherred
+Heron
+Jell
+Kitt
+Driskin
+Ilica
+Gupta
+Cristea
+Ragar
+Lascar
+Troester
+Rosetti
+Bus
+Dita
+Trelles
+Macek
+Moscovici
+Gavrikova
+Bylinkaina
+Stepnova
+Kaverina
+Antipov
+Vadimovich
+Pavlovich
+Victorovna
+Denisovna
+Panina
+Desyatkova
+Burkov
+Kuzkin
+Dmitrivich
+Rusakov
+Safenu
+Niu
+Savali
+Pelesa
+Tilo
+Pule
+Lotomau
+Milovic
+Jelic
+Pesic
+Zoric
+Ristovski
+Karanovic
+Pejakovski
+Janketic
+Kovacova
+Tesarova
+Botosova
+Bartos
+Holub
+Koren
+Mokry
+Ekholm
+Wikstrom
+Malmquist
+Almgren
+Westermark
+Dahlman
+Wallin
+Mattson
+Ostlund
+Bjork
+Linden
+Stenbeck
+Forslund
+Sandstrom
+Srinan
+Natheep
+Lithik
+Shikan
+Yasmith
+Sayan
+Venujayan
+Palapol
+Sudham
+Kitjakarn
+Montri
+Singhapat
+Gason
+Wongsawat
+Juntasa
+Yao
+Tahir
+Sakir
+Keles
+Usta
+Hasim
+Karaduman
+Bayat
+Korkut
+Altun
+Nguyen
+Chu
+Hoang
+Do
+Huynh
+Duong
+Vu
+Quang
+Gunnsteinssen
+Ketilssen
+Skialgssen
+Kotkelldottir
+Ufidottir
+Warydottir
+Ragnarssen
+Junhi
+Rakhya
+Bhander
+Sadho
+Rajwa
+Kes
+Dhesi
+Sohi
+Puriwal
+Jawia
+Hayre
+Wains
+Asar
+Bati
+Li
+Truong
+Jang
+Wang
+Ruan
+Smirnova
+Mammadov
+Ailyev
+Hasanov
+Kazi
+Mina
+Pal
+Saha
+Roy
+Dewan
+Hasan
+Islam
+Wazen
+Rohman
+Akter
+Banik
+Bishwas
+Chakma
+Dey
+Gazi
+Shekh
+Xu
+Ho
+Law
+Lam
+Zhu
+Bedrize
+Gill
+Joshi
+Babu
+Dutta
+Kumar
+Patil
+Mehta
+Mittal
+Pandit
+Levi
+Mizrachi
+Peretz
+Biton
+Sato
+Kato
+Suzuki
+Takahashi
+Tanaka
+Watanabe
+Nakamura
+Yamamoto
+Kimura
+Abe
+Endo
+Park
+Shreshtha
+Thapa
+Navarro
+Perara
+Kumara
+Gamage
+Kaya
+Demir
+Gruber
+Huber
+Bauer
+Wagner
+Pichler
+Moser
+Mayer
+Maier
+Schuster
+Ivanou
+Kazlou
+janssens
+Maes
+Jacobs
+Mertens
+Simon
+Hodzic
+Petrovic
+Jovanovic
+Dimitrov
+Boyanov
+Tasev
+Nikolov
+Gruev
+Horvat
+Kovacevic
+Babic
+Maric
+Novak
+Svoboda
+Nielsen
+Jensen
+Pedersen
+Sorensen
+Tamm
+Saar
+Sepp
+Joensen
+Korhonen
+Virtanen
+Makinen
+Laine
+Salo
+Dubois
+Martin
+Roux
+Laurent
+Mercier
+Dupont
+Lambert
+Francois
+Michel
+Nagy
+Giannopoulos
+Kovacs
+Horvath
+Kiss
+Byrne
+Reilly
+Doyle
+Doherty
+Rossi
+Russo
+Ferrari
+Esposito
+Bianchi
+Colombo
+Ricci
+Rizzo
+Leone
+Conte
+Neri
+Caputo
+Grassi
+Monti
+Krasniqi
+Morina
+Ozols
+Berzins
+Kazlauskas
+Petrauskas
+Jankauskas
+Borg
+Camilleri
+Andov
+Heaven
+Bozinov
+Rusu
+Ceban
+Popa
+Bos
+Vos
+Hendriks
+Dijkstra
+Smits
+Janse
+Hansen
+Johansen
+Dahl
+Lund
+Nowak
+Kowalski
+Wisniewski
+Wojak
+Mazur
+Wozniak
+Silva
+Jesus
+Freitas
+Radu
+Stoica
+Popov
+Haven
+Moreno
+Sanz
+Bernasconi
+Fontana
+Yilmaz
+Melnyk
+Shevchenko
+Boyko
+MacDonald
+Driscoll
+Mackintosh
+Craig
+MacLean
+Cormack
+Keenan
+MacCulloch
+Mackinnon
+Tremblay
+Jimenez
+Gagnon
+Mora
+Solis
+Tjon
+Mars
+Venus
+Mercury
+Luna
+Ceres
+Deimos
+Phobos
+Ganymede
+Io
+Europa
+Amalthea
+Himalia
+Thebe
+Elara
+Pasiphae
+Metis
+Carme
+Sinope
+Lysithea
+Ananke
+Leda
+Themisto
+Praxidike
+Locaste
+Kalyke
+Megaclite
+Taygete
+Callirrhoe
+Autonoe
+Harpalyke
+Thyone
+Hermippe
+Chalende
+Aoede
+Eukalade
+Isonoe
+Helike
+Carpo
+Aitne
+Eurydome
+Hegomone
+Arche
+Euanthe
+Sponde
+Euporie
+Mneme
+Kore
+Kallichore
+Valetudo
+Titan
+Thea
+Iapetus
+Dione
+Tethys
+Enceladus
+Mimas
+Hyperion
+Pheobe
+Janus
+Epimethus
+Prometheus
+Pandora
+Siarnaq
+Helene
+Albiorix
+Atlas
+Telesto
+Paaliaq
+Calypso
+Ymir
+Tarvos
+Skathi
+Narvi
+Kari
+Skoll
+Bestla
+Methone
+Pallene
+Anthe
+Titania
+Oberon
+Umbriel
+Ariel
+Miranda
+Sycorax
+Puck
+Portia
+Juliet
+Caliban
+Belinda
+Rosalina
+Bianca
+Cupid
+Mab
+Triton
+Proteus
+Larissa
+Halimede
+Sao
+Charon
+Hydra
+Nix
+Kerberos
+Styx
+Jupiter
+Saturn
+Uranus
+Neptune
+Pluto
+Orcus
+Haumea
+Quaoar
+Makemake
+Eris
+Salacia
+Sedna
+Nova
+Trask
+Ripley
+Kilroy
+Simms
+Winters
+Renard
+Reeves
+Looper
+Cassini
+Juno
+Dawn
+Kepler
+Akatsuki
+Ofako
+Zeng
+Fong
+Said
+Halward
+Tetsuo
+Onishi
+Link
+Score
+Asimov
+Strugatsky
+Gort
+Gallagher
+Nimrod
+Jovian
+Crichton
+Andromeda
+Llewellyn
+Naylor
+Thorax
+Curie
+Zisa
+Zax
+Aegis
+Bishop
+Alpha
+Omega
+Delta
+Ohm
+Cain
+Brax
+Bracket
+Bolt
+Weld
+Apogee
+Gliese
+Zeta
+Leporis
+Barnard
+Vega
+Altair
\ No newline at end of file
diff --git a/html/changelogs/Cerebulon - Namelists.yml b/html/changelogs/Cerebulon - Namelists.yml
new file mode 100644
index 00000000000..6fd79111319
--- /dev/null
+++ b/html/changelogs/Cerebulon - Namelists.yml
@@ -0,0 +1,7 @@
+
+author: Cerebulon
+
+delete-after: True
+
+changes:
+ - rscadd: "Added 1000+ surnames and 1200+ forenames from various world cultures to human namelists"
diff --git a/html/changelogs/Mechoid-RSFs.yml b/html/changelogs/Mechoid-RSFs.yml
new file mode 100644
index 00000000000..72c7ac0b09a
--- /dev/null
+++ b/html/changelogs/Mechoid-RSFs.yml
@@ -0,0 +1,37 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscadd (general adding of nice things)
+# rscdel (general deleting of nice things)
+# imageadd
+# imagedel
+# maptweak
+# spellcheck (typo fixes)
+# experiment
+#################################
+
+# Your name.
+author: Mechoid
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - rscadd: "Ctrl clicking a Rapid Service Fabricator when held will allow you to choose the container it deploys."
+ - bugfix: "The Rapid Service Fabricator's icon is correctly set."
diff --git a/html/changelogs/kartagrafi-NewHairAndUnderwear.yml b/html/changelogs/kartagrafi-NewHairAndUnderwear.yml
new file mode 100644
index 00000000000..f28a41c04ba
--- /dev/null
+++ b/html/changelogs/kartagrafi-NewHairAndUnderwear.yml
@@ -0,0 +1,39 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscadd (general adding of nice things)
+# rscdel (general deleting of nice things)
+# imageadd
+# imagedel
+# maptweak
+# spellcheck (typo fixes)
+# experiment
+#################################
+
+# Your name.
+author: kartagrafi
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - rscadd: "Adds new hairstyle ''Sharp Ponytail''"
+ - rscadd: "Adds several new underwear - ''Binder'', ''Strapless Binder'', ''Longsleeve Striped Shirt, Pink'', ''Pink Wing Shirt'', ''Pink and Black T-Shirt'', ''Leggings''"
+ - tweak: "Changes name of ''Supernova'' hairstyle to ''Glossy'', and makes the sprite somewhat neater"
+ - bugfix: "Fixes a hairstyle not appearing"
\ No newline at end of file
diff --git a/icons/mob/back_vr.dmi b/icons/mob/back_vr.dmi
index 4048e02bfea..84aec25ab3c 100644
Binary files a/icons/mob/back_vr.dmi and b/icons/mob/back_vr.dmi differ
diff --git a/icons/mob/human.dmi b/icons/mob/human.dmi
index fbea9c563e1..cbf20402e6b 100644
Binary files a/icons/mob/human.dmi and b/icons/mob/human.dmi differ
diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi
index 75929194f9f..a65de5defd5 100644
Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ
diff --git a/icons/mob/human_face_m.dmi b/icons/mob/human_face_m.dmi
index 457dd0e5df2..fe62645869e 100644
Binary files a/icons/mob/human_face_m.dmi and b/icons/mob/human_face_m.dmi differ
diff --git a/icons/mob/human_races/cyberlimbs/DSILizard/dsi_lizard.dmi b/icons/mob/human_races/cyberlimbs/DSILizard/dsi_lizard.dmi
index 7700cc1d177..ce86dcadfdc 100644
Binary files a/icons/mob/human_races/cyberlimbs/DSILizard/dsi_lizard.dmi and b/icons/mob/human_races/cyberlimbs/DSILizard/dsi_lizard.dmi differ
diff --git a/icons/mob/human_races/cyberlimbs/DSILizard/dsi_lizard_a.dmi b/icons/mob/human_races/cyberlimbs/DSILizard/dsi_lizard_a.dmi
index 4d3223b41ed..1361b9e5fba 100644
Binary files a/icons/mob/human_races/cyberlimbs/DSILizard/dsi_lizard_a.dmi and b/icons/mob/human_races/cyberlimbs/DSILizard/dsi_lizard_a.dmi differ
diff --git a/icons/mob/human_races/cyberlimbs/DSINevrean/dsi_nevrean.dmi b/icons/mob/human_races/cyberlimbs/DSINevrean/dsi_nevrean.dmi
index f19af52106e..5424d46b780 100644
Binary files a/icons/mob/human_races/cyberlimbs/DSINevrean/dsi_nevrean.dmi and b/icons/mob/human_races/cyberlimbs/DSINevrean/dsi_nevrean.dmi differ
diff --git a/icons/mob/human_races/markings_vr.dmi b/icons/mob/human_races/markings_vr.dmi
index 0abfa5e0cbb..300caaa9d83 100644
Binary files a/icons/mob/human_races/markings_vr.dmi and b/icons/mob/human_races/markings_vr.dmi differ
diff --git a/icons/mob/human_races/r_harpy_vr.dmi b/icons/mob/human_races/r_harpy_vr.dmi
index b4173fb818e..827e0d605f8 100644
Binary files a/icons/mob/human_races/r_harpy_vr.dmi and b/icons/mob/human_races/r_harpy_vr.dmi differ
diff --git a/icons/mob/human_races/r_human_vr.dmi b/icons/mob/human_races/r_human_vr.dmi
index 24413995a73..7a91929aad3 100644
Binary files a/icons/mob/human_races/r_human_vr.dmi and b/icons/mob/human_races/r_human_vr.dmi differ
diff --git a/icons/mob/human_races/r_lizard_vr.dmi b/icons/mob/human_races/r_lizard_vr.dmi
index b2b6dfac121..0bfbfb04eea 100644
Binary files a/icons/mob/human_races/r_lizard_vr.dmi and b/icons/mob/human_races/r_lizard_vr.dmi differ
diff --git a/icons/mob/human_races/r_nevrean.dmi b/icons/mob/human_races/r_nevrean.dmi
index d937299dc5f..d2bebc171a8 100644
Binary files a/icons/mob/human_races/r_nevrean.dmi and b/icons/mob/human_races/r_nevrean.dmi differ
diff --git a/icons/mob/taursuits_horse_vr.dmi b/icons/mob/taursuits_horse_vr.dmi
index 7a67ec72a22..12f309f9fec 100644
Binary files a/icons/mob/taursuits_horse_vr.dmi and b/icons/mob/taursuits_horse_vr.dmi differ
diff --git a/icons/mob/taursuits_naga_vr.dmi b/icons/mob/taursuits_naga_vr.dmi
index 49cc2360894..38640c904dd 100644
Binary files a/icons/mob/taursuits_naga_vr.dmi and b/icons/mob/taursuits_naga_vr.dmi differ
diff --git a/icons/mob/taursuits_wolf_vr.dmi b/icons/mob/taursuits_wolf_vr.dmi
index d5099056b5b..03ad5e3929c 100644
Binary files a/icons/mob/taursuits_wolf_vr.dmi and b/icons/mob/taursuits_wolf_vr.dmi differ
diff --git a/icons/mob/vore.dmi b/icons/mob/vore.dmi
index 0357739b9cf..4479212c1be 100644
Binary files a/icons/mob/vore.dmi and b/icons/mob/vore.dmi differ
diff --git a/icons/mob/vore/taurs_vr.dmi b/icons/mob/vore/taurs_vr.dmi
index 203119e9c32..0a1e2e48164 100644
Binary files a/icons/mob/vore/taurs_vr.dmi and b/icons/mob/vore/taurs_vr.dmi differ
diff --git a/icons/mob/vore/wings_vr.dmi b/icons/mob/vore/wings_vr.dmi
index 42d2cf426db..b290bfca7b3 100644
Binary files a/icons/mob/vore/wings_vr.dmi and b/icons/mob/vore/wings_vr.dmi differ
diff --git a/icons/mob/vore64x64.dmi b/icons/mob/vore64x64.dmi
index 8454da40d78..76c5830021a 100644
Binary files a/icons/mob/vore64x64.dmi and b/icons/mob/vore64x64.dmi differ
diff --git a/icons/obj/food_vr.dmi b/icons/obj/food_vr.dmi
index e7bd78f8bfe..95b293d9f41 100644
Binary files a/icons/obj/food_vr.dmi and b/icons/obj/food_vr.dmi differ
diff --git a/icons/obj/tools_vr.dmi b/icons/obj/tools_vr.dmi
new file mode 100644
index 00000000000..72316467dd6
Binary files /dev/null and b/icons/obj/tools_vr.dmi differ
diff --git a/icons/vore/custom_clothes_vr.dmi b/icons/vore/custom_clothes_vr.dmi
index 73e5e7f363b..be9148ca025 100644
Binary files a/icons/vore/custom_clothes_vr.dmi and b/icons/vore/custom_clothes_vr.dmi differ
diff --git a/icons/vore/custom_items_vr.dmi b/icons/vore/custom_items_vr.dmi
index aa2910fb65b..97578011b44 100644
Binary files a/icons/vore/custom_items_vr.dmi and b/icons/vore/custom_items_vr.dmi differ
diff --git a/maps/southern_cross/items/encryptionkey_sc.dm b/maps/southern_cross/items/encryptionkey_sc.dm
index 6896bf1c6c4..feb63e58943 100644
--- a/maps/southern_cross/items/encryptionkey_sc.dm
+++ b/maps/southern_cross/items/encryptionkey_sc.dm
@@ -6,7 +6,7 @@
/obj/item/device/encryptionkey/explorer
name = "explorer radio encryption key"
icon_state = "com_cypherkey"
- channels = list("Science" = 1, "Explorer" = 1) //VOREStation Edit
+ channels = list("Explorer" = 1)
/obj/item/device/encryptionkey/sar
name = "sar's encryption key"
diff --git a/maps/southern_cross/items/encryptionkey_vr.dm b/maps/southern_cross/items/encryptionkey_vr.dm
index 54f26ccebe5..94b12bdd2c6 100644
--- a/maps/southern_cross/items/encryptionkey_vr.dm
+++ b/maps/southern_cross/items/encryptionkey_vr.dm
@@ -1,3 +1,6 @@
/obj/item/device/encryptionkey/pilot
icon_state = "cypherkey"
channels = list("Explorer" = 1)
+
+/obj/item/device/encryptionkey/explorer
+ channels = list("Science" = 1, "Explorer" = 1)
diff --git a/maps/southern_cross/items/headset_sc.dm b/maps/southern_cross/items/headset_sc.dm
index ec73fbc7c77..eca7eeb27d3 100644
--- a/maps/southern_cross/items/headset_sc.dm
+++ b/maps/southern_cross/items/headset_sc.dm
@@ -1,30 +1,25 @@
/obj/item/device/radio/headset/pilot
name = "pilot's headset"
- desc = "A headset used by pilots, has access to the explorer channel." //VOREStation Edit
+ desc = "A headset used by pilots, has access to supply and explorer channels."
icon_state = "pilot_headset"
adhoc_fallback = TRUE
ks2type = /obj/item/device/encryptionkey/pilot
/obj/item/device/radio/headset/pilot/alt
name = "pilot's bowman headset"
- desc = "A bowman headset used by pilots, has access to the explorer channel." //VOREStation Edit
- icon_state = "pilot_headset_alt"
-
-/obj/item/device/radio/headset/pilot/alt
- name = "pilot's bowman headset"
- desc = "A bowman headset used by pilots, has access to the explorer channel." //VOREStation Edit
+ desc = "A bowman headset used by pilots, has access to supply and explorer channels."
icon_state = "pilot_headset_alt"
/obj/item/device/radio/headset/explorer
name = "explorer's headset"
- desc = "Headset used by explorers for exploring. Access to explorer and science channels." //VOREStation Edit
+ desc = "Headset used by explorers for exploring. Access to the explorer channel."
icon_state = "exp_headset"
adhoc_fallback = TRUE
ks2type = /obj/item/device/encryptionkey/explorer
/obj/item/device/radio/headset/explorer/alt
name = "explorer's bowman headset"
- desc = "Bowman headset used by explorers for exploring. Access to explorer and science channels." //VOREStation Edit
+ desc = "Bowman headset used by explorers for exploring. Access to the explorer channel."
icon_state = "exp_headset_alt"
/obj/item/device/radio/headset/sar
diff --git a/maps/southern_cross/items/headset_vr.dm b/maps/southern_cross/items/headset_vr.dm
index c100fcf4411..ac737845b5a 100644
--- a/maps/southern_cross/items/headset_vr.dm
+++ b/maps/southern_cross/items/headset_vr.dm
@@ -1,3 +1,23 @@
+/obj/item/device/radio/headset/pilot
+ desc = "A headset used by pilots, has access to the explorer channel."
+
+/obj/item/device/radio/headset/pilot/alt
+ desc = "A bowman headset used by pilots, has access to the explorer channel."
+
+/obj/item/device/radio/headset/explorer
+ desc = "Headset used by explorers for exploring. Access to explorer and science channels."
+
+/obj/item/device/radio/headset/explorer/alt
+ desc = "Bowman headset used by explorers for exploring. Access to explorer and science channels."
+
+/obj/item/device/radio/headset/sar
+ name = "fm radio headset"
+ desc = "A headset for field medics."
+
+/obj/item/device/radio/headset/sar/alt
+ name = "fm radio bowman headset"
+ desc = "A bowman headset for field medics."
+
/obj/item/device/radio/headset/volunteer
name = "volunteer's headset"
desc = "A headset used by volunteers to expedition teams, has access to the exploration channel."
diff --git a/maps/southern_cross/job/outfits.dm b/maps/southern_cross/job/outfits.dm
index a32b784c0d7..159701decd0 100644
--- a/maps/southern_cross/job/outfits.dm
+++ b/maps/southern_cross/job/outfits.dm
@@ -13,8 +13,8 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go
l_ear = /obj/item/device/radio/headset/explorer
id_slot = slot_wear_id
pda_slot = slot_l_store
- pda_type = /obj/item/device/pda/cargo // Brown looks more rugged
- id_type = /obj/item/weapon/card/id/civilian/explorer
+ pda_type = /obj/item/device/pda/explorer //VORESTation Edit - Better Brown
+ id_type = /obj/item/weapon/card/id/explorer/explorer //VOREStation Edit
id_pda_assignment = "Explorer"
flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL
backpack_contents = list(/obj/item/clothing/accessory/permit/gun/planetside = 1)
@@ -46,20 +46,21 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go
l_ear = /obj/item/device/radio/headset/pilot/alt
id_slot = slot_wear_id
pda_slot = slot_belt
- pda_type = /obj/item/device/pda/cargo // Brown looks more rugged
- id_type = /obj/item/weapon/card/id/civilian/pilot
+ pda_type = /obj/item/device/pda //VOREStation Edit - Civilian
+ id_type = /obj/item/weapon/card/id/explorer/pilot //VOREStation Edit
id_pda_assignment = "Pilot"
flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL
/decl/hierarchy/outfit/job/medical/sar
- name = OUTFIT_JOB_NAME("Search and Rescue")
+ name = OUTFIT_JOB_NAME("Field Medic") //VOREStation Edit
uniform = /obj/item/clothing/under/utility/blue
- suit = /obj/item/clothing/suit/storage/hooded/wintercoat/medical/sar
+ //suit = /obj/item/clothing/suit/storage/hooded/wintercoat/medical/sar //VOREStation Edit
shoes = /obj/item/clothing/shoes/boots/winter/explorer
l_ear = /obj/item/device/radio/headset/sar
l_hand = /obj/item/weapon/storage/firstaid/regular
belt = /obj/item/weapon/storage/belt/medical/emt
pda_slot = slot_l_store
+ pda_type = /obj/item/device/pda/sar //VOREStation Add
id_type = /obj/item/weapon/card/id/medical/sar
- id_pda_assignment = "Search and Rescue"
+ id_pda_assignment = "Field Medic" //VOREStation Edit
flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL|OUTFIT_COMPREHENSIVE_SURVIVAL
diff --git a/maps/southern_cross/job/outfits_vr.dm b/maps/southern_cross/job/outfits_vr.dm
index 51b3c3670ee..902a0658cc4 100644
--- a/maps/southern_cross/job/outfits_vr.dm
+++ b/maps/southern_cross/job/outfits_vr.dm
@@ -6,7 +6,7 @@
id_slot = slot_wear_id
pda_slot = slot_l_store
pda_type = /obj/item/device/pda/pathfinder
- id_type = /obj/item/weapon/card/id/science/head/pathfinder
+ id_type = /obj/item/weapon/card/id/explorer/head/pathfinder
id_pda_assignment = "Pathfinder"
flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL|OUTFIT_COMPREHENSIVE_SURVIVAL
backpack_contents = list(/obj/item/clothing/accessory/permit/gun/planetside = 1)
diff --git a/maps/southern_cross/southern_cross_jobs.dm b/maps/southern_cross/southern_cross_jobs.dm
index df8aae6e98b..12166d14787 100644
--- a/maps/southern_cross/southern_cross_jobs.dm
+++ b/maps/southern_cross/southern_cross_jobs.dm
@@ -1,9 +1,8 @@
-//VORESTATION EDIT!!! This whole file is being included by hand to get these jobs rather than using the map datum itself.
// Pilots
var/const/SAR =(1<<11)
-var/const/PILOT =(1<<15) //VOREStation Edit - Bumped up 2
-var/const/EXPLORER =(1<<12) //VOREStation Edit - Moved to science
+var/const/PILOT =(1<<13)
+var/const/EXPLORER =(1<<14)
var/const/access_pilot = 67
var/const/access_explorer = 43
@@ -77,28 +76,28 @@ var/const/access_explorer = 43
faction = "Station"
total_positions = 2
spawn_positions = 2
- supervisors = "the pathfinder and the head of personnel" //VOREStation Edit
+ supervisors = "the head of personnel"
selection_color = "#515151"
idtype = /obj/item/weapon/card/id/civilian/pilot
- economic_modifier = 5 //VOREStation Edit
- access = list(access_pilot) //VOREStation Edit
- minimal_access = list(access_pilot) //VOREStation Edit
+ economic_modifier = 4
+ access = list(access_pilot, access_cargo, access_mining, access_mining_station)
+ minimal_access = list(access_pilot, access_cargo, access_mining, access_mining_station)
outfit_type = /decl/hierarchy/outfit/job/pilot
/datum/job/explorer
title = "Explorer"
flag = EXPLORER
- department = "Science" //VOREStation Edit
- department_flag = MEDSCI //VOREStation Edit
+ department = "Civilian"
+ department_flag = CIVILIAN
faction = "Station"
- total_positions = 2 //VOREStation Edit
- spawn_positions = 2 //VOREStation Edit
- supervisors = "the pathfinder and the research director" //VOREStation Edit
- selection_color = "#633D63" //VOREStation Edit
+ total_positions = 4
+ spawn_positions = 4
+ supervisors = "the explorer leader and the head of personnel"
+ selection_color = "#515151"
idtype = /obj/item/weapon/card/id/civilian/explorer
- economic_modifier = 6 //VOREStation Edit
- access = list(access_pilot, access_explorer, access_research) //VOREStation Edit
- minimal_access = list(access_pilot, access_explorer, access_research) //VOREStation Edit
+ economic_modifier = 4
+ access = list(access_explorer)
+ minimal_access = list(access_explorer)
outfit_type = /decl/hierarchy/outfit/job/explorer2
/*
alt_titles = list(
@@ -114,10 +113,10 @@ var/const/access_explorer = 43
faction = "Station"
total_positions = 2
spawn_positions = 2
- supervisors = "the pathfinder and the chief medical officer" //VOREStation Edit
- selection_color = "#013D3B" //VOREStation Edit
+ supervisors = "the chief medical officer"
+ selection_color = "#515151"
idtype = /obj/item/weapon/card/id/medical
- economic_modifier = 6 //VOREStation Edit
+ economic_modifier = 4
access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_eva, access_maint_tunnels, access_external_airlocks, access_psychiatrist, access_explorer)
minimal_access = list(access_medical, access_medical_equip, access_morgue, access_explorer)
outfit_type = /decl/hierarchy/outfit/job/medical/sar
\ No newline at end of file
diff --git a/maps/southern_cross/southern_cross_jobs_vr.dm b/maps/southern_cross/southern_cross_jobs_vr.dm
index 600ace3885a..251417dbba5 100644
--- a/maps/southern_cross/southern_cross_jobs_vr.dm
+++ b/maps/southern_cross/southern_cross_jobs_vr.dm
@@ -1,7 +1,41 @@
-var/const/PATHFINDER =(1<<13) //VOREStation Edit - Added Pathfinder
+var/const/SAR =(1<<11)
+var/const/PILOT =(1<<15)
+var/const/EXPLORER =(1<<12)
+var/const/PATHFINDER =(1<<13)
-/obj/item/weapon/card/id/science/head/pathfinder
+/obj/item/weapon/card/id/medical/sar
+ assignment = "Field Medic"
+ rank = "Field Medic"
+ icon_state = "cyan"
+ primary_color = rgb(47,189,189)
+ secondary_color = rgb(127,223,223)
+ job_access_type = /datum/job/sar
+
+/obj/item/weapon/card/id/explorer
+ name = "identification card"
+ desc = "A card issued to station exploration staff."
+ icon_state = "green"
+ primary_color = rgb(47,189,0)
+ secondary_color = rgb(127,223,95)
+
+/obj/item/weapon/card/id/explorer/pilot
+ assignment = "Pilot"
+ rank = "Pilot"
+ job_access_type = /datum/job/pilot
+
+/obj/item/weapon/card/id/explorer/explorer
+ assignment = "Explorer"
+ rank = "Explorer"
+ job_access_type = /datum/job/explorer
+
+/obj/item/weapon/card/id/explorer/head/
+ name = "identification card"
desc = "A card which represents discovery of the unknown."
+ icon_state = "greenGold"
+ primary_color = rgb(47,189,0)
+ secondary_color = rgb(127,223,95)
+
+/obj/item/weapon/card/id/explorer/head/pathfinder
assignment = "Pathfinder"
rank = "Pathfinder"
job_access_type = /datum/job/pathfinder
@@ -16,9 +50,60 @@ var/const/PATHFINDER =(1<<13) //VOREStation Edit - Added Pathfinder
spawn_positions = 1
supervisors = "the research director"
selection_color = "#AD6BAD"
- idtype = /obj/item/weapon/card/id/science/head/pathfinder
+ idtype = /obj/item/weapon/card/id/explorer/head/pathfinder
economic_modifier = 7
-
+ minimal_player_age = 7
+
access = list(access_eva, access_maint_tunnels, access_external_airlocks, access_pilot, access_explorer, access_research, access_gateway)
minimal_access = list(access_eva, access_pilot, access_explorer, access_research, access_gateway)
outfit_type = /decl/hierarchy/outfit/job/pathfinder
+
+/datum/job/pilot
+ title = "Pilot"
+ flag = PILOT
+ department = "Civilian"
+ department_flag = CIVILIAN
+ faction = "Station"
+ total_positions = 2
+ spawn_positions = 2
+ supervisors = "the pathfinder and the head of personnel"
+ selection_color = "#515151"
+ idtype = /obj/item/weapon/card/id/explorer/pilot
+ economic_modifier = 5
+ minimal_player_age = 3
+ access = list(access_pilot)
+ minimal_access = list(access_pilot)
+ outfit_type = /decl/hierarchy/outfit/job/pilot
+
+/datum/job/explorer
+ title = "Explorer"
+ flag = EXPLORER
+ department = "Science"
+ department_flag = MEDSCI
+ faction = "Station"
+ total_positions = 2
+ spawn_positions = 2
+ supervisors = "the pathfinder and the research director"
+ selection_color = "#633D63"
+ idtype = /obj/item/weapon/card/id/explorer/explorer
+ economic_modifier = 6
+ access = list(access_explorer, access_research)
+ minimal_access = list(access_explorer, access_research)
+ outfit_type = /decl/hierarchy/outfit/job/explorer2
+
+/datum/job/sar
+ title = "Field Medic"
+ flag = SAR
+ department = "Medical"
+ department_flag = MEDSCI
+ faction = "Station"
+ total_positions = 2
+ spawn_positions = 2
+ supervisors = "the pathfinder and the chief medical officer"
+ selection_color = "#013D3B"
+ idtype = /obj/item/weapon/card/id/medical/sar
+ economic_modifier = 6
+ minimal_player_age = 3
+ access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_eva, access_maint_tunnels, access_external_airlocks, access_pilot)
+ minimal_access = list(access_medical, access_medical_equip, access_morgue, access_pilot)
+ outfit_type = /decl/hierarchy/outfit/job/medical/sar
diff --git a/maps/southern_cross/structures/closets/misc.dm b/maps/southern_cross/structures/closets/misc.dm
index 7fc5b62889b..82b2bd65cba 100644
--- a/maps/southern_cross/structures/closets/misc.dm
+++ b/maps/southern_cross/structures/closets/misc.dm
@@ -36,15 +36,6 @@
/obj/structure/closet/secure_closet/explorer
name = "explorer locker"
- //VOREStation Add begin
- icon = 'icons/obj/closet_vr.dmi' //VOREStation Add
- icon_state = "secureexp1"
- icon_closed = "secureexp"
- icon_locked = "secureexp1"
- icon_opened = "secureexpopen"
- icon_broken = "secureexpbroken"
- icon_off = "secureexpoff"
- //VOREStation Add end
req_access = list(access_explorer)
starts_with = list(
@@ -60,11 +51,7 @@
/obj/item/device/geiger,
/obj/item/weapon/cell/device,
/obj/item/device/radio,
- /obj/item/stack/marker_beacon/thirty,
- /obj/item/weapon/material/knife/tacknife/survival, //VOREStation Add,
- /obj/item/weapon/material/knife/machete, //VOREStation Add,
- /obj/item/clothing/accessory/holster/machete, //VOREStation Add,
- /obj/item/weapon/reagent_containers/food/snacks/liquidfood = 2) //VOREStation Add
+ /obj/item/stack/marker_beacon/thirty)
/obj/structure/closet/secure_closet/explorer/initialize()
if(prob(50))
@@ -99,7 +86,6 @@
/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,
/obj/item/weapon/reagent_containers/glass/bottle/antitoxin,
/obj/item/weapon/storage/belt/medical/emt,
- /obj/item/weapon/material/knife/tacknife/survival, //VOREStation Add,
/obj/item/clothing/mask/gas,
/obj/item/clothing/suit/storage/hooded/wintercoat/medical/sar,
/obj/item/clothing/shoes/boots/winter/explorer,
diff --git a/maps/southern_cross/structures/closets/misc_vr.dm b/maps/southern_cross/structures/closets/misc_vr.dm
index 48b2f88d5b1..07d98e84343 100644
--- a/maps/southern_cross/structures/closets/misc_vr.dm
+++ b/maps/southern_cross/structures/closets/misc_vr.dm
@@ -1,3 +1,85 @@
+/obj/structure/closet/secure_closet/explorer
+ icon = 'icons/obj/closet_vr.dmi'
+ icon_state = "secureexp1"
+ icon_closed = "secureexp"
+ icon_locked = "secureexp1"
+ icon_opened = "secureexpopen"
+ icon_broken = "secureexpbroken"
+ icon_off = "secureexpoff"
+
+ starts_with = list(
+ /obj/item/clothing/under/explorer,
+ /obj/item/clothing/suit/storage/hooded/explorer,
+ /obj/item/clothing/mask/gas/explorer,
+ /obj/item/clothing/shoes/boots/winter/explorer,
+ /obj/item/clothing/gloves/black,
+ /obj/item/device/radio/headset/explorer,
+ /obj/item/device/flashlight,
+ /obj/item/device/gps/explorer,
+ /obj/item/weapon/storage/box/flare,
+ /obj/item/device/geiger,
+ /obj/item/weapon/cell/device,
+ /obj/item/device/radio,
+ /obj/item/stack/marker_beacon/thirty,
+ /obj/item/weapon/material/knife/tacknife/survival,
+ /obj/item/weapon/material/knife/machete,
+ /obj/item/clothing/accessory/holster/machete,
+ /obj/item/weapon/reagent_containers/food/snacks/liquidfood = 2)
+
+/obj/structure/closet/secure_closet/sar
+ name = "field medic locker"
+
+ starts_with = list(
+ /obj/item/weapon/storage/backpack/dufflebag/emt,
+ /obj/item/weapon/storage/box/autoinjectors,
+ /obj/item/weapon/storage/box/syringes,
+ /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,
+ /obj/item/weapon/reagent_containers/glass/bottle/antitoxin,
+ /obj/item/weapon/storage/belt/medical/emt,
+ /obj/item/weapon/material/knife/tacknife/survival,
+ /obj/item/weapon/gun/energy/frontier/locked/holdout,
+ /obj/item/clothing/mask/gas/explorer,
+ /obj/item/clothing/suit/storage/hooded/explorer/medic,
+ /obj/item/clothing/suit/storage/hooded/wintercoat/medical/sar,
+ /obj/item/clothing/shoes/boots/winter/explorer,
+ /obj/item/device/radio/headset/sar,
+ /obj/item/weapon/cartridge/medical,
+ /obj/item/device/flashlight,
+ /obj/item/weapon/tank/emergency/oxygen/engi,
+ /obj/item/clothing/glasses/hud/health,
+ /obj/item/device/healthanalyzer,
+ /obj/item/device/radio/off,
+ /obj/random/medical,
+ /obj/item/weapon/reagent_containers/food/snacks/liquidfood = 3,
+ /obj/item/weapon/tool/crowbar,
+ /obj/item/weapon/extinguisher/mini,
+ /obj/item/weapon/storage/box/freezer,
+ /obj/item/clothing/accessory/storage/white_vest,
+ /obj/item/taperoll/medical,
+ /obj/item/device/gps,
+ /obj/item/device/geiger,
+ /obj/item/bodybag/cryobag)
+
+/obj/structure/closet/secure_closet/pilot
+ starts_with = list(
+ /obj/item/weapon/storage/backpack/parachute,
+ /obj/item/weapon/material/knife/tacknife/survival,
+ /obj/item/weapon/gun/energy/frontier/locked/holdout,
+ /obj/item/clothing/head/pilot,
+ /obj/item/clothing/under/rank/pilot1,
+ /obj/item/clothing/suit/storage/toggle/bomber/pilot,
+ /obj/item/clothing/shoes/boots/winter/explorer,
+ /obj/item/clothing/mask/gas/half,
+ /obj/item/clothing/shoes/black,
+ /obj/item/clothing/gloves/fingerless,
+ /obj/item/device/radio/headset/pilot/alt,
+ /obj/item/device/flashlight,
+ /obj/item/weapon/reagent_containers/food/snacks/liquidfood = 2,
+ /obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,
+ /obj/item/weapon/storage/box/flare,
+ /obj/item/weapon/cell/device,
+ /obj/item/device/radio)
+
/obj/structure/closet/secure_closet/pathfinder
name = "pathfinder locker"
icon = 'icons/obj/closet_vr.dmi'
@@ -23,6 +105,7 @@
/obj/item/device/geiger,
/obj/item/weapon/cell/device,
/obj/item/device/radio,
+ /obj/item/device/subspaceradio,
/obj/item/stack/marker_beacon/thirty,
/obj/item/weapon/material/knife/tacknife/survival,
/obj/item/weapon/material/knife/machete/deluxe,
diff --git a/maps/submaps/engine_submaps/engine_tesla.dmm b/maps/submaps/engine_submaps/engine_tesla.dmm
index 415b6de6b69..ea807840f48 100644
--- a/maps/submaps/engine_submaps/engine_tesla.dmm
+++ b/maps/submaps/engine_submaps/engine_tesla.dmm
@@ -13,8 +13,8 @@
"am" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/airless,/area/space)
"an" = (/obj/structure/cable/cyan{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless,/area/space)
"ao" = (/obj/structure/closet/emcloset,/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1379; id_tag = "eng_north_airlock"; pixel_x = 24; pixel_y = 0; req_one_access = list(10,11); tag_airpump = "eng_north_pump"; tag_chamber_sensor = "eng_north_sensor"; tag_exterior_door = "eng_north_outer"; tag_interior_door = "eng_north_inner"},/turf/simulated/floor/tiled/dark,/area/engineering/engine_room)
-"ap" = (/obj/machinery/portable_atmospherics/canister/phoron,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"},/turf/simulated/floor,/area/engineering/engine_gas)
-"aq" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/dispenser/phoron,/turf/simulated/floor,/area/engineering/engine_gas)
+"ap" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"},/turf/simulated/floor,/area/engineering/engine_gas)
+"aq" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/table/standard,/obj/item/stack/cable_coil/random,/obj/item/weapon/tool/wrench,/obj/item/weapon/tool/screwdriver,/turf/simulated/floor,/area/engineering/engine_gas)
"ar" = (/obj/structure/cable/cyan,/obj/machinery/power/emitter{anchored = 1; state = 1},/turf/simulated/floor/airless,/area/space)
"as" = (/obj/structure/cable/cyan{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/floor_decal/rust/mono_rusted1,/turf/simulated/floor/airless,/area/space)
"at" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "eng_north_airlock"; name = "exterior access button"; pixel_x = -5; pixel_y = -26; req_one_access = list(10,11,13)},/obj/machinery/door/airlock/glass_external{frequency = 1379; icon_state = "door_locked"; id_tag = "eng_north_outer"; locked = 1; name = "Engine North Airlock Exterior"},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/dark,/area/engineering/engine_room)
@@ -24,15 +24,15 @@
"ax" = (/obj/structure/cable/cyan{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/borderfloor{dir = 5},/obj/effect/floor_decal/corner/yellow/border{dir = 5},/turf/simulated/floor/tiled,/area/engineering/engine_room)
"ay" = (/obj/structure/cable/cyan{d1 = 0; d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -28},/turf/simulated/floor,/area/engineering/engine_gas)
"az" = (/obj/structure/cable/cyan{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/power/sensor{name = "Powernet Sensor - Engine Power"; name_tag = "Engine Power"},/obj/structure/cable/cyan{d2 = 2; icon_state = "0-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor,/area/engineering/engine_gas)
-"aA" = (/obj/machinery/camera/network/engine{dir = 1},/obj/structure/table/standard,/obj/item/weapon/circuitboard/tesla_coil{pixel_x = -2; pixel_y = -2},/obj/item/weapon/circuitboard/tesla_coil{pixel_x = 2; pixel_y = 2},/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/capacitor{pixel_x = -2; pixel_y = 2},/turf/simulated/floor,/area/engineering/engine_gas)
+"aA" = (/obj/machinery/camera/network/engine{dir = 1},/obj/structure/table/standard,/obj/item/weapon/circuitboard/grounding_rod{pixel_x = 2; pixel_y = 2},/obj/item/weapon/circuitboard/grounding_rod{pixel_x = -2; pixel_y = -2},/turf/simulated/floor,/area/engineering/engine_gas)
"aB" = (/obj/machinery/camera/network/engine{dir = 8},/turf/space,/area/space)
"aC" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/turf/simulated/wall/r_wall,/area/engineering/engine_room)
"aD" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled,/area/engineering/engine_room)
"aE" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/yellow/border{dir = 4},/turf/simulated/floor/tiled,/area/engineering/engine_room)
-"aF" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/engineering,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor,/area/engineering/engine_gas)
+"aF" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/engineering,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/firedoor/glass,/turf/simulated/floor,/area/engineering/engine_gas)
"aG" = (/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for the engine charging port."; dir = 1; id = "SupermatterPort"; name = "Observation Blast Doors"; pixel_x = -4; pixel_y = -24; req_access = list(10)},/turf/simulated/floor/tiled,/area/engineering/engine_room)
"aH" = (/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for the engine charging port."; id = "SupermatterPort"; name = "Observation Blast Doors"; pixel_x = -4; pixel_y = 24; req_access = list(10)},/turf/simulated/floor/tiled,/area/engineering/engine_room)
-"aI" = (/obj/machinery/power/tesla_coil,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/airless,/area/space)
+"aI" = (/obj/item/weapon/extinguisher,/turf/space,/area/space)
"aJ" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/engineering/engine_room)
"aK" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/cyan{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/yellow/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/engineering/engine_room)
"aL" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/yellow/border{dir = 1},/turf/simulated/floor/tiled,/area/engineering/engine_room)
@@ -56,14 +56,16 @@
"bd" = (/obj/structure/grille,/obj/structure/window/reinforced/full,/obj/machinery/door/firedoor/glass,/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/structure/window/reinforced,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "EngineRadiatorViewport"; name = "Engine Radiator Viewport Shutter"; opacity = 0},/turf/simulated/floor,/area/submap/pa_room)
"be" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/engineering/engine_room)
"bf" = (/turf/simulated/floor/tiled,/area/submap/pa_room)
+"bg" = (/obj/machinery/power/grounding_rod,/turf/simulated/floor/airless,/area/space)
"bh" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/turf/simulated/wall/r_wall,/area/submap/pa_room)
"bi" = (/turf/simulated/wall/r_wall,/area/submap/pa_room)
-"bj" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_engineering,/turf/simulated/floor/tiled,/area/submap/pa_room)
+"bj" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/power/tesla_coil,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/airless,/area/space)
"bk" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled,/area/engineering/engine_room)
"bl" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/yellow/border{dir = 4},/obj/effect/floor_decal/borderfloor/corner2{dir = 6},/obj/effect/floor_decal/corner/yellow/bordercorner2{dir = 6},/turf/simulated/floor/tiled,/area/engineering/engine_room)
"bm" = (/turf/simulated/wall/r_wall,/area/template_noop)
"bn" = (/obj/structure/grille,/obj/structure/window/reinforced/full,/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "EngineRadiatorViewport"; name = "Engine Radiator Viewport Shutter"; opacity = 0},/obj/machinery/door/firedoor/glass,/turf/simulated/floor,/area/submap/pa_room)
"bo" = (/obj/effect/floor_decal/techfloor/orange{dir = 5},/turf/simulated/floor/tiled/techfloor/grid,/area/submap/pa_room)
+"bp" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/item/clothing/head/hardhat,/turf/simulated/floor/airless,/area/space)
"bq" = (/obj/effect/floor_decal/steeldecal,/turf/simulated/floor/tiled,/area/submap/pa_room)
"br" = (/obj/machinery/light{dir = 1},/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for the engine charging port."; id = "EngineRadiatorViewport"; name = "Viewport Blast Doors"; pixel_x = -4; pixel_y = 24; req_access = list(10)},/turf/simulated/floor/tiled,/area/submap/pa_room)
"bs" = (/obj/structure/cable/cyan{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/submap/pa_room)
@@ -74,7 +76,7 @@
"bx" = (/obj/structure/particle_accelerator/particle_emitter/left{dir = 8},/obj/effect/floor_decal/techfloor/orange{dir = 1},/turf/simulated/floor/tiled/techfloor,/area/submap/pa_room)
"by" = (/obj/effect/floor_decal/techfloor/orange{dir = 1},/turf/simulated/floor/tiled/techfloor,/area/submap/pa_room)
"bz" = (/obj/machinery/particle_accelerator/control_box,/obj/effect/floor_decal/techfloor/orange{dir = 1},/turf/simulated/floor/tiled/techfloor,/area/submap/pa_room)
-"bA" = (/obj/effect/floor_decal/techfloor/orange{dir = 5},/obj/item/stack/cable_coil/random,/turf/simulated/floor/tiled/techfloor,/area/submap/pa_room)
+"bA" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_engineering,/obj/machinery/door/firedoor/glass,/turf/simulated/floor/tiled,/area/submap/pa_room)
"bB" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/submap/pa_room)
"bC" = (/obj/structure/grille,/obj/structure/window/reinforced/full,/obj/machinery/door/firedoor/glass,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor,/area/submap/pa_room)
"bD" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/borderfloor{dir = 8},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/engineering/engine_room)
@@ -99,6 +101,7 @@
"bW" = (/obj/effect/floor_decal/techfloor/orange/corner,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/techfloor/grid,/area/submap/pa_room)
"bX" = (/obj/effect/floor_decal/techfloor/orange{icon_state = "techfloororange_edges"; dir = 6},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled/techfloor/grid,/area/submap/pa_room)
"bY" = (/obj/machinery/alarm{dir = 8; pixel_x = 25; pixel_y = 0},/obj/effect/floor_decal/steeldecal/steel_decals8,/obj/structure/table/standard,/obj/item/weapon/book/manual/tesla_engine,/obj/item/weapon/book/manual/engineering_particle_accelerator{pixel_x = 5; pixel_y = 5},/turf/simulated/floor/tiled,/area/submap/pa_room)
+"bZ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/power/tesla_coil,/turf/simulated/floor/airless,/area/space)
"ca" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/submap/pa_room)
"cb" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/yellow/border{dir = 4},/obj/effect/floor_decal/borderfloor/corner2{dir = 5},/obj/effect/floor_decal/corner/yellow/bordercorner2{dir = 5},/turf/simulated/floor/tiled,/area/engineering/engine_room)
"cc" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/tiled,/area/engineering/engine_room)
@@ -117,7 +120,7 @@
"cp" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/yellow/border,/turf/simulated/floor/tiled,/area/engineering/engine_room)
"cq" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/yellow/border,/turf/simulated/floor/tiled,/area/engineering/engine_room)
"cr" = (/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/floor_decal/borderfloor{dir = 6},/obj/effect/floor_decal/corner/yellow/border{dir = 6},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/tiled,/area/engineering/engine_room)
-"cs" = (/obj/machinery/power/emitter{anchored = 1; dir = 1; state = 1},/obj/structure/cable/cyan{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/airless,/area/space)
+"cs" = (/obj/item/weapon/weldingtool,/turf/simulated/floor/airless,/area/space)
"ct" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "eng_south_airlock"; name = "exterior access button"; pixel_x = -5; pixel_y = 26; req_one_access = list(10,11,13)},/obj/machinery/door/airlock/glass_external{frequency = 1379; icon_state = "door_locked"; id_tag = "eng_south_outer"; locked = 1; name = "Engine South Airlock Exterior"},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/dark,/area/engineering/engine_room)
"cu" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "eng_south_pump"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "eng_south_sensor"; pixel_x = 0; pixel_y = 25},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled/dark,/area/engineering/engine_room)
"cv" = (/obj/machinery/door/airlock/glass_external{frequency = 1379; icon_state = "door_locked"; id_tag = "eng_south_inner"; locked = 1; name = "Engine South Airlock Interior"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "eng_south_airlock"; name = "interior access button"; pixel_x = 8; pixel_y = -26; req_one_access = list(10,11)},/turf/simulated/floor/tiled/dark,/area/engineering/engine_room)
@@ -128,14 +131,15 @@
"cA" = (/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/floor_decal/rust,/turf/simulated/floor/airless,/area/space)
"cB" = (/obj/structure/closet/emcloset,/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1379; id_tag = "eng_south_airlock"; pixel_x = 24; pixel_y = 0; req_one_access = list(10,11); tag_airpump = "eng_south_pump"; tag_chamber_sensor = "eng_south_sensor"; tag_exterior_door = "eng_south_outer"; tag_interior_door = "eng_south_inner"},/turf/simulated/floor/tiled/dark,/area/engineering/engine_room)
"cC" = (/turf/simulated/wall/r_wall,/area/space)
-"cD" = (/obj/structure/lattice,/obj/machinery/power/grounding_rod,/turf/space,/area/space)
+"cD" = (/obj/effect/floor_decal/techfloor/orange{dir = 5},/turf/simulated/floor/tiled/techfloor,/area/submap/pa_room)
"cE" = (/obj/machinery/door/blast/regular{density = 0; dir = 2; icon_state = "pdoor0"; id = "SupermatterPort"; layer = 2.7; name = "Reactor Blast Door"; opacity = 0},/obj/machinery/door/firedoor/glass,/obj/structure/grille,/obj/structure/window/reinforced/full,/obj/structure/window/reinforced{dir = 8; health = 1e+006},/turf/simulated/floor,/area/engineering/engine_room)
-"cF" = (/obj/machinery/power/emitter{anchored = 1; state = 1},/obj/structure/cable/cyan,/turf/simulated/floor/airless,/area/space)
+"cF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow,/obj/machinery/power/tesla_coil,/turf/simulated/floor/airless,/area/space)
"cG" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/submap/pa_room)
-"cH" = (/obj/machinery/door/airlock/glass_engineering,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/submap/pa_room)
+"cH" = (/obj/machinery/door/airlock/glass_engineering,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/glass,/turf/simulated/floor/tiled,/area/submap/pa_room)
"cI" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/engineering/engine_room)
+"cJ" = (/obj/item/weapon/tool/wirecutters,/turf/simulated/floor/airless,/area/space)
"cK" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/space)
-"cL" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless,/area/space)
+"cL" = (/obj/structure/cable/cyan{d2 = 2; icon_state = "0-2"},/obj/machinery/power/emitter{dir = 1; anchored = 1; state = 1},/turf/simulated/floor/airless,/area/space)
"cM" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/yellow/border,/turf/simulated/floor/tiled,/area/engineering/engine_room)
"cN" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/space)
"cQ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless,/area/space)
@@ -149,25 +153,25 @@ aaacababababababababababababababababababababababababababaaaa
aaacababababababababababababababababababababababababababaaaa
aaadabababababababababababababababababababaeaeaeaeaeababaaaa
aaacacacacacacacacacacacacacacacafafafababaeagahaiaeababaaaa
-aaacababajajajakalalalamalalalanafaoafafafaeagapaqaeababaaaa
-aaacabababajajcFajajajarajajadasatauavawaxaeayazaAaaaaaaaaaa
-aaacababababadabababababadababaBafafaCaDaEaeaeaFaeaaaaaaaaaa
-aaacababababcDabababababcDabababababcEaJaKaLaMaNaOaaaaaaaaaa
-aaacababababadabababababadabababababcEaQaRaSaUaVaWaaaaaaaaaa
-aaacadadadajcocKcKaIcKcKaIcLababababcEaGbabbbcaZbeaaaaaaaaaa
-aaacabababajadadadadadadadcNabaYbPbPbhbibjbibibkblbmbmaaaaaa
-aaacabababajadaXadadadaXadcNabbnbobfbqbrbsbtbibkaEaabubvaaaa
-aaacabababajadadajajajadadcNadbnbwbxbybzbAbBbCbDaEaaaaaaaaaa
-aaacabababajadadajbEajadadaPcKbFbQbGbHbIbJbKbLbMbNaaaabOaaaa
+aaacababajajakalalalalalamalalanafaoafafafaeagapaqaeababaaaa
+aaacabababajarajajajajajarajadasatauavawaxaeayazaAaaaaaaaaaa
+aaacababababadababadababadababaBafafaCaDaEaeaeaFaeaaaaaaaaaa
+aaacababababadababadababadabababababcEaJaKaLaMaNaOaaaaaaaaaa
+aaacababaIabadababadababadadbgabababcEaQaRaSaUaVaWaaaaaaaaaa
+aaacabababbgajcocKcKcKbjcKbpadabababcEaGbabbbcaZbeaaaaaaaaaa
+aaacadadadajaXabadabadabaXcNadaYbPbPbhbibAbibibkblbmbmaaaaaa
+aaacabababajababadabadababbZadbnbobfbqbrbsbtbibkaEaabubvaaaa
+aaacabababajadadcsajajadadcNadbnbwbxbybzcDbBbCbDaEaaaaaaaaaa
+aaacabababajababajbEajababaPcKbFbQbGbHbIbJbKbLbMbNaaaabOaaaa
aaacabababajadadajajajadadcNadbnbWbRbSbTbUbVbCbDaEaaaaaaaaaa
-aaacabababajadaXadadadaXadcNabbnbXcacacdcGbYbibkaEaaaaaaaaaa
-aaacabababajadadadadadadadcNabbdcmcmbhbicHbibibkcbbmbmaaaaaa
-aaacadadadajcocKcKaIcKcKaIcQababababcEaHcIcecfcgbaaaaaaaaaaa
-aaacababababadabababababadabababababcEccchaTcjckclaaaaaaaaaa
-aaacababababcDabababababcDabababababcEaJcncMcpcqcraaaaaaaaaa
-aaacababababadabababababadababaBafafaCciaEafafafafaaaaaaaaaa
-aaacabababajajcsajajajcsajajadakctcucvcwcxafaaaaaaaaaaaaaaaa
-aaacabadajajajcyalalalczalalalcAafcBafafafafaaaaaaaaaaaaaaaa
+aaacabababajababadabadababcFadbnbXcacacdcGbYbibkaEaaaaaaaaaa
+aaacadadadajaXabadabadabaXcNadbdcmcmbhbicHbibibkcbbmbmaaaaaa
+aaacabababbgajcocKcKcKbjcKcQadabababcEaHcIcecfcgbaaaaaaaaaaa
+aaacababababadababadababadadbgabababcEccchaTcjckclaaaaaaaaaa
+aaacababababadababadababadabababababcEaJcncMcpcqcraaaaaaaaaa
+aaacababababadababadababadababaBafafaCciaEafafafafaaaaaaaaaa
+aaacabababcJcLajajajajajcLajadakctcucvcwcxafaaaaaaaaaaaaaaaa
+aaacabadajajcyalalalalalczalalcAafcBafafafafaaaaaaaaaaaaaaaa
aaacadadcCcCcCcCcCcCcCcCcCcCcCcCafafaCaaaaaaaaaaaaaaaaaaaaaa
aaacababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/maps/submaps/shelters/shelter_1.dmm b/maps/submaps/shelters/shelter_1.dmm
index 8b85eea25e1..66eba3541de 100644
--- a/maps/submaps/shelters/shelter_1.dmm
+++ b/maps/submaps/shelters/shelter_1.dmm
@@ -14,6 +14,17 @@
/area/survivalpod)
"d" = (
/obj/machinery/smartfridge/survival_pod,
+/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
+/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
+/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
+/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
+/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
+/obj/item/device/fbp_backup_cell,
+/obj/item/device/fbp_backup_cell,
+/obj/item/device/fbp_backup_cell,
+/obj/item/device/fbp_backup_cell,
+/obj/item/device/fbp_backup_cell,
+/obj/item/weapon/storage/pill_bottle/dice,
/turf/simulated/shuttle/floor/voidcraft,
/area/survivalpod)
"e" = (
diff --git a/maps/submaps/shelters/shelter_2.dmm b/maps/submaps/shelters/shelter_2.dmm
index f06fb904205..b7e87215449 100644
--- a/maps/submaps/shelters/shelter_2.dmm
+++ b/maps/submaps/shelters/shelter_2.dmm
@@ -32,6 +32,24 @@
/area/survivalpod)
"f" = (
/obj/machinery/smartfridge/survival_pod,
+/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
+/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
+/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
+/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
+/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
+/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
+/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
+/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
+/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
+/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
+/obj/item/device/fbp_backup_cell,
+/obj/item/device/fbp_backup_cell,
+/obj/item/device/fbp_backup_cell,
+/obj/item/device/fbp_backup_cell,
+/obj/item/device/fbp_backup_cell,
+/obj/item/weapon/storage/pill_bottle/antitox,
+/obj/item/device/healthanalyzer,
+/obj/item/weapon/storage/pill_bottle/dice_nerd,
/turf/simulated/shuttle/floor/voidcraft,
/area/survivalpod)
"g" = (
@@ -87,9 +105,7 @@
/area/survivalpod)
"p" = (
/obj/structure/table/survival_pod,
-/obj/item/weapon/storage/firstaid/adv{
- pixel_x = 4
- },
+/obj/item/weapon/storage/firstaid/adv,
/turf/simulated/shuttle/floor/voidcraft,
/area/survivalpod)
"q" = (
diff --git a/maps/submaps/shelters/shelter_3.dmm b/maps/submaps/shelters/shelter_3.dmm
new file mode 100644
index 00000000000..4b7e36706fd
--- /dev/null
+++ b/maps/submaps/shelters/shelter_3.dmm
@@ -0,0 +1,336 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/simulated/shuttle/wall/voidcraft/survival,
+/area/survivalpod)
+"b" = (
+/obj/structure/sign/mining/survival{
+ dir = 1
+ },
+/turf/simulated/shuttle/wall/voidcraft/survival,
+/area/survivalpod)
+"c" = (
+/obj/structure/window/reinforced/survival_pod{
+ dir = 8;
+ layer = 2.6
+ },
+/obj/machinery/door/window/survival_pod{
+ dir = 1;
+ icon_state = "windoor"
+ },
+/turf/simulated/floor/carpet/sblucarpet,
+/area/survivalpod)
+"d" = (
+/obj/structure/sign/mining/survival{
+ dir = 8
+ },
+/turf/simulated/shuttle/wall/voidcraft/survival,
+/area/survivalpod)
+"e" = (
+/obj/structure/fans,
+/turf/simulated/shuttle/floor/voidcraft,
+/area/survivalpod)
+"f" = (
+/obj/machinery/smartfridge/survival_pod,
+/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
+/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
+/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
+/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
+/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
+/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
+/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
+/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
+/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
+/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
+/obj/item/device/fbp_backup_cell,
+/obj/item/device/fbp_backup_cell,
+/obj/item/device/fbp_backup_cell,
+/obj/item/device/fbp_backup_cell,
+/obj/item/device/fbp_backup_cell,
+/obj/item/weapon/storage/pill_bottle/dice_nerd,
+/obj/item/weapon/storage/pill_bottle/antitox,
+/obj/item/weapon/storage/firstaid/adv,
+/obj/item/weapon/storage/firstaid/regular,
+/obj/item/weapon/storage/box/survival/comp{
+ starts_with = list(/obj/item/weapon/tool/prybar/red,/obj/item/clothing/glasses/goggles,/obj/item/weapon/reagent_containers/hypospray/autoinjector,/obj/item/stack/medical/bruise_pack,/obj/item/device/flashlight/glowstick,/obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar,/obj/item/clothing/mask/breath,/obj/item/weapon/tank/emergency/oxygen/engi)
+ },
+/obj/item/weapon/extinguisher/mini,
+/obj/item/device/radio{
+ icon_state = "walkietalkieOLD";
+ name = "emergency radio"
+ },
+/obj/item/weapon/towel{
+ color = "#800080"
+ },
+/obj/item/weapon/towel{
+ color = "#800080"
+ },
+/obj/item/weapon/storage/box/donkpockets,
+/obj/item/weapon/storage/box/donkpockets,
+/obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask/proteinshake,
+/obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask/proteinshake,
+/obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask/proteinshake,
+/obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar,
+/obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar,
+/obj/item/weapon/reagent_containers/food/snacks/candy,
+/obj/item/weapon/reagent_containers/food/snacks/candy,
+/obj/item/weapon/reagent_containers/food/drinks/dry_ramen,
+/obj/item/weapon/reagent_containers/food/drinks/dry_ramen,
+/obj/item/weapon/reagent_containers/food/drinks/dry_ramen,
+/obj/item/weapon/reagent_containers/food/snacks/chips,
+/obj/item/weapon/reagent_containers/food/snacks/chips,
+/obj/item/weapon/reagent_containers/food/snacks/sosjerky,
+/obj/item/weapon/reagent_containers/food/snacks/sosjerky,
+/obj/item/weapon/reagent_containers/food/snacks/no_raisin,
+/obj/item/weapon/reagent_containers/food/snacks/no_raisin,
+/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie,
+/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie,
+/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers,
+/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers,
+/obj/item/weapon/reagent_containers/food/snacks/tastybread,
+/obj/item/weapon/reagent_containers/food/snacks/tastybread,
+/obj/item/weapon/reagent_containers/food/snacks/tastybread,
+/obj/item/weapon/reagent_containers/food/snacks/syndicake,
+/obj/item/weapon/reagent_containers/food/snacks/unajerky,
+/obj/item/weapon/storage/box/mixedglasses,
+/obj/item/weapon/reagent_containers/food/drinks/flask/vacuumflask,
+/obj/item/weapon/reagent_containers/food/drinks/flask/vacuumflask,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/tomatojuice,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/lemonjuice,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/applejuice,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/cola,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/space_up,
+/obj/item/weapon/reagent_containers/food/drinks/bottle/space_mountain_wind,
+/obj/item/weapon/reagent_containers/food/drinks/cans/grape_juice,
+/obj/item/weapon/reagent_containers/food/drinks/cans/grape_juice,
+/obj/item/weapon/reagent_containers/food/drinks/cans/sodawater,
+/obj/item/weapon/reagent_containers/food/drinks/cans/sodawater,
+/obj/item/weapon/reagent_containers/food/drinks/cans/gingerale,
+/obj/item/weapon/reagent_containers/food/drinks/cans/gingerale,
+/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,
+/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,
+/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,
+/obj/item/weapon/reagent_containers/food/drinks/ice,
+/obj/item/weapon/reagent_containers/food/drinks/ice,
+/obj/item/weapon/reagent_containers/food/drinks/tea,
+/obj/item/weapon/reagent_containers/food/drinks/tea,
+/obj/item/weapon/reagent_containers/food/drinks/h_chocolate,
+/obj/item/weapon/reagent_containers/food/drinks/h_chocolate,
+/obj/item/weapon/reagent_containers/food/drinks/h_chocolate,
+/obj/item/toy/plushie/kitten,
+/turf/simulated/shuttle/floor/voidcraft,
+/area/survivalpod)
+"g" = (
+/obj/item/device/gps/computer,
+/turf/simulated/shuttle/floor/voidcraft,
+/area/survivalpod)
+"h" = (
+/obj/machinery/shower,
+/obj/item/weapon/soap/deluxe,
+/obj/structure/curtain,
+/turf/simulated/shuttle/floor/voidcraft,
+/area/survivalpod)
+"i" = (
+/obj/structure/toilet,
+/turf/simulated/shuttle/floor/voidcraft,
+/area/survivalpod)
+"j" = (
+/obj/structure/sign/mining/survival{
+ dir = 4
+ },
+/turf/simulated/shuttle/wall/voidcraft/survival,
+/area/survivalpod)
+"k" = (
+/obj/machinery/sleeper/survival_pod,
+/turf/simulated/shuttle/floor/voidcraft,
+/area/survivalpod)
+"l" = (
+/turf/simulated/shuttle/floor/voidcraft,
+/area/survivalpod)
+"m" = (
+/obj/structure/bed/pod,
+/obj/item/weapon/bedsheet/hos,
+/turf/simulated/shuttle/floor/voidcraft,
+/area/survivalpod)
+"n" = (
+/obj/structure/window/reinforced/survival_pod{
+ icon_state = "pwindow";
+ dir = 1
+ },
+/obj/structure/bed/padded,
+/obj/item/weapon/bedsheet/hop,
+/turf/simulated/floor/carpet/sblucarpet,
+/area/survivalpod)
+"o" = (
+/obj/structure/window/reinforced/survival_pod{
+ dir = 8;
+ icon_state = "pwindow"
+ },
+/turf/simulated/floor/carpet/sblucarpet,
+/area/survivalpod)
+"p" = (
+/obj/structure/table/survival_pod,
+/obj/machinery/microwave{
+ pixel_y = 6
+ },
+/obj/structure/sink/kitchen{
+ icon_state = "sink_alt";
+ dir = 4;
+ pixel_x = -13
+ },
+/turf/simulated/shuttle/floor/voidcraft,
+/area/survivalpod)
+"q" = (
+/obj/structure/tubes,
+/obj/machinery/recharge_station,
+/turf/simulated/shuttle/floor/voidcraft,
+/area/survivalpod)
+"r" = (
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#DDFFD3"
+ },
+/obj/structure/flora/pottedplant/stoutbush,
+/turf/simulated/floor/carpet/sblucarpet,
+/area/survivalpod)
+"s" = (
+/obj/structure/window/reinforced/survival_pod{
+ icon_state = "pwindow";
+ dir = 1
+ },
+/obj/structure/bed/chair/comfy/black,
+/turf/simulated/floor/carpet/sblucarpet,
+/area/survivalpod)
+"t" = (
+/obj/machinery/door/window/survival_pod{
+ icon_state = "windoor";
+ dir = 1
+ },
+/turf/simulated/floor/carpet/sblucarpet,
+/area/survivalpod)
+"u" = (
+/obj/structure/window/reinforced/survival_pod{
+ icon_state = "pwindow";
+ dir = 1
+ },
+/turf/simulated/floor/carpet/sblucarpet,
+/area/survivalpod)
+"v" = (
+/obj/structure/window/reinforced/survival_pod{
+ density = 0;
+ dir = 9;
+ icon_state = "pwindow"
+ },
+/turf/simulated/floor/carpet/sblucarpet,
+/area/survivalpod)
+"w" = (
+/obj/structure/bed/chair/comfy/black,
+/turf/simulated/floor/carpet/sblucarpet,
+/area/survivalpod)
+"x" = (
+/obj/machinery/light,
+/obj/structure/bed/chair/comfy/black{
+ dir = 8
+ },
+/turf/simulated/floor/carpet/sblucarpet,
+/area/survivalpod)
+"y" = (
+/obj/structure/table/steel,
+/turf/simulated/floor/carpet/sblucarpet,
+/area/survivalpod)
+"z" = (
+/turf/simulated/floor/carpet/sblucarpet,
+/area/survivalpod)
+"A" = (
+/obj/machinery/button/remote/airlock/survival_pod{
+ dir = 10;
+ id = "shelter_gamma";
+ pixel_y = -24
+ },
+/obj/structure/bed/chair/comfy/black{
+ dir = 4
+ },
+/turf/simulated/floor/carpet/sblucarpet,
+/area/survivalpod)
+"C" = (
+/obj/structure/sign/mining/survival,
+/turf/simulated/shuttle/wall/voidcraft/survival,
+/area/survivalpod)
+"D" = (
+/obj/structure/fans/tiny,
+/obj/machinery/door/airlock/voidcraft/survival_pod{
+ id_tag = "shelter_gamma"
+ },
+/turf/simulated/shuttle/floor/voidcraft,
+/area/survivalpod)
+"E" = (
+/obj/structure/sign/mining,
+/turf/simulated/shuttle/wall/voidcraft/survival,
+/area/survivalpod)
+
+(1,1,1) = {"
+a
+d
+a
+d
+a
+d
+a
+"}
+(2,1,1) = {"
+b
+e
+k
+p
+s
+y
+C
+"}
+(3,1,1) = {"
+a
+f
+l
+l
+t
+x
+a
+"}
+(4,1,1) = {"
+b
+g
+m
+q
+u
+z
+D
+"}
+(5,1,1) = {"
+a
+i
+c
+o
+v
+A
+a
+"}
+(6,1,1) = {"
+b
+h
+n
+r
+w
+y
+E
+"}
+(7,1,1) = {"
+a
+j
+a
+j
+a
+j
+a
+"}
diff --git a/maps/tether/submaps/_tether_submaps.dm b/maps/tether/submaps/_tether_submaps.dm
index 5c30fad0dfb..11e6c44b2d0 100644
--- a/maps/tether/submaps/_tether_submaps.dm
+++ b/maps/tether/submaps/_tether_submaps.dm
@@ -37,12 +37,13 @@
name = "Underdark"
flags = MAP_LEVEL_CONTACT|MAP_LEVEL_PLAYER
base_turf = /turf/simulated/mineral/floor/virgo3b
+ z = Z_LEVEL_UNDERDARK
/datum/map_template/tether_lateload/tether_underdark/on_map_loaded(z)
. = ..()
- seed_submaps(list(z), 100, /area/mine/unexplored/underdark, /datum/map_template/underdark)
- new /datum/random_map/automata/cave_system/no_cracks(null, 1, 1, z, world.maxx, world.maxy) // Create the mining Z-level.
- new /datum/random_map/noise/ore(null, 1, 1, z, 64, 64) // Create the mining ore distribution map.
+ seed_submaps(list(Z_LEVEL_UNDERDARK), 100, /area/mine/unexplored/underdark, /datum/map_template/underdark)
+ new /datum/random_map/automata/cave_system/no_cracks(null, 1, 1, Z_LEVEL_UNDERDARK, world.maxx, world.maxy) // Create the mining Z-level.
+ new /datum/random_map/noise/ore(null, 1, 1, Z_LEVEL_UNDERDARK, 64, 64) // Create the mining ore distribution map.
//////////////////////////////////////////////////////////////////////////////
/// Away Missions
@@ -63,6 +64,7 @@
/datum/map_z_level/tether_lateload/away_beach
name = "Away Mission - Desert Beach"
+ z = Z_LEVEL_BEACH
/datum/map_template/tether_lateload/away_beach_cave
name = "Desert Planet - Z2 Cave"
@@ -70,8 +72,18 @@
mappath = 'beach/cave.dmm'
associated_map_datum = /datum/map_z_level/tether_lateload/away_beach_cave
+/datum/map_template/tether_lateload/away_beach_cave/on_map_loaded(z)
+ . = ..()
+ seed_submaps(list(Z_LEVEL_BEACH_CAVE), 50, /area/tether_away/cave/unexplored/normal, /datum/map_template/surface/mountains/normal)
+ seed_submaps(list(Z_LEVEL_BEACH_CAVE), 50, /area/tether_away/cave/unexplored/deep, /datum/map_template/surface/mountains/deep)
+
+ // Now for the tunnels.
+ new /datum/random_map/automata/cave_system/no_cracks(null, 1, 1, Z_LEVEL_BEACH_CAVE, world.maxx, world.maxy)
+ new /datum/random_map/noise/ore/beachmine(null, 1, 1, Z_LEVEL_BEACH_CAVE, 64, 64)
+
/datum/map_z_level/tether_lateload/away_beach_cave
name = "Away Mission - Desert Cave"
+ z = Z_LEVEL_BEACH_CAVE
/obj/effect/step_trigger/zlevel_fall/beach
var/static/target_z
@@ -86,6 +98,7 @@
/datum/map_z_level/tether_lateload/away_alienship
name = "Away Mission - Alien Ship"
+ z = Z_LEVEL_ALIENSHIP
#include "aerostat/_aerostat.dm"
@@ -97,6 +110,7 @@
/datum/map_z_level/tether_lateload/away_aerostat
name = "Away Mission - Aerostat"
+ z = Z_LEVEL_AEROSTAT
/datum/map_template/tether_lateload/away_aerostat_surface
name = "Remmi Aerostat - Z2 Surface"
@@ -104,8 +118,15 @@
mappath = 'aerostat/surface.dmm'
associated_map_datum = /datum/map_z_level/tether_lateload/away_aerostat_surface
+/datum/map_template/tether_lateload/away_aerostat_surface/on_map_loaded(z)
+ . = ..()
+ seed_submaps(list(Z_LEVEL_AEROSTAT_SURFACE), 50, /area/tether_away/aerostat/surface/unexplored, /datum/map_template/virgo2)
+ new /datum/random_map/automata/cave_system/no_cracks(null, 1, 1, Z_LEVEL_AEROSTAT_SURFACE, world.maxx, world.maxy)
+ new /datum/random_map/noise/ore/virgo2(null, 1, 1, Z_LEVEL_AEROSTAT_SURFACE, 64, 64)
+
/datum/map_z_level/tether_lateload/away_aerostat_surface
name = "Away Mission - Aerostat Surface"
+ z = Z_LEVEL_AEROSTAT_SURFACE
//////////////////////////////////////////////////////////////////////////////////////
@@ -144,7 +165,7 @@
flags = MAP_LEVEL_SEALED
/datum/map_z_level/tether_lateload/New(var/datum/map/map, mapZ)
- if(mapZ)
+ if(mapZ && !z)
z = mapZ
return ..(map)
diff --git a/maps/tether/submaps/aerostat/_aerostat.dm b/maps/tether/submaps/aerostat/_aerostat.dm
index b66caa5630b..a41331fe2ff 100644
--- a/maps/tether/submaps/aerostat/_aerostat.dm
+++ b/maps/tether/submaps/aerostat/_aerostat.dm
@@ -49,9 +49,9 @@
destinations = list(/datum/shuttle_destination/excursion/virgo2orbit, /datum/shuttle_destination/excursion/aerostat)
/obj/away_mission_init/aerostat/initialize()
- seed_submaps(list(z), 50, /area/tether_away/aerostat/surface/unexplored, /datum/map_template/virgo2)
- new /datum/random_map/automata/cave_system/no_cracks(null, 1, 1, z, world.maxx, world.maxy)
- new /datum/random_map/noise/ore/virgo2(null, 1, 1, z, 64, 64)
+ /*seed_submaps(list(Z_LEVEL_AEROSTAT_SURFACE), 50, /area/tether_away/aerostat/surface/unexplored, /datum/map_template/virgo2)
+ new /datum/random_map/automata/cave_system/no_cracks(null, 1, 1, Z_LEVEL_AEROSTAT_SURFACE, world.maxx, world.maxy)
+ new /datum/random_map/noise/ore/virgo2(null, 1, 1, Z_LEVEL_AEROSTAT_SURFACE, 64, 64)*/
initialized = TRUE
return INITIALIZE_HINT_QDEL
diff --git a/maps/tether/submaps/beach/_beach.dm b/maps/tether/submaps/beach/_beach.dm
index f90c5b5c3ad..bd43f82dde8 100644
--- a/maps/tether/submaps/beach/_beach.dm
+++ b/maps/tether/submaps/beach/_beach.dm
@@ -74,12 +74,12 @@
//In our case, it initializes the ores and random submaps in the beach's cave, then deletes itself
/obj/away_mission_init/beachcave/initialize()
// Cave submaps are first.
- seed_submaps(list(z), 50, /area/tether_away/cave/unexplored/normal, /datum/map_template/surface/mountains/normal)
+ /*seed_submaps(list(z), 50, /area/tether_away/cave/unexplored/normal, /datum/map_template/surface/mountains/normal)
seed_submaps(list(z), 50, /area/tether_away/cave/unexplored/deep, /datum/map_template/surface/mountains/deep)
// Now for the tunnels.
- new /datum/random_map/automata/cave_system/no_cracks(null, 1, 1, z, world.maxx, world.maxy)
- new /datum/random_map/noise/ore/beachmine(null, 1, 1, z, 64, 64)
+ new /datum/random_map/automata/cave_system/no_cracks(null, 1, 1, Z_LEVEL_BEACH_CAVE, world.maxx, world.maxy)
+ new /datum/random_map/noise/ore/beachmine(null, 1, 1, Z_LEVEL_BEACH_CAVE, 64, 64)*/
initialized = TRUE
return INITIALIZE_HINT_QDEL
diff --git a/maps/tether/tether-01-surface1.dmm b/maps/tether/tether-01-surface1.dmm
index 2f3d16e25a4..b7c6a777495 100644
--- a/maps/tether/tether-01-surface1.dmm
+++ b/maps/tether/tether-01-surface1.dmm
@@ -13773,11 +13773,7 @@
"aGx" = (
/obj/structure/table/glass,
/obj/item/weapon/storage/toolbox/emergency,
-/obj/item/device/radio{
- frequency = 1487;
- icon_state = "med_walkietalkie";
- name = "Medbay Emergency Radio Link"
- },
+/obj/item/device/radio/emergency,
/obj/machinery/recharger,
/turf/simulated/floor/tiled/white,
/area/tether/surfacebase/medical/first_aid_west)
@@ -14750,14 +14746,7 @@
/area/engineering/atmos/processing)
"aJj" = (
/obj/structure/table/glass,
-/obj/item/device/radio{
- anchored = 1;
- broadcasting = 0;
- canhear_range = 1;
- frequency = 1487;
- icon = 'icons/obj/items.dmi';
- icon_state = "red_phone";
- listening = 1;
+/obj/item/device/radio/phone/medbay{
name = "Medical Emergency Phone"
},
/obj/machinery/atmospherics/unary/vent_pump/on{
diff --git a/maps/tether/tether-02-surface2.dmm b/maps/tether/tether-02-surface2.dmm
index a4f35926d36..f95e5e4bf85 100644
--- a/maps/tether/tether-02-surface2.dmm
+++ b/maps/tether/tether-02-surface2.dmm
@@ -4381,6 +4381,7 @@
"jG" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/remains/human,
+/obj/random/action_figure,
/turf/simulated/floor/plating,
/area/maintenance/lower/rnd)
"jH" = (
@@ -4441,7 +4442,7 @@
"jP" = (
/obj/item/weapon/storage/fancy/cigar/havana,
/obj/effect/decal/cleanable/dirt,
-/mob/living/simple_animal/hostile/mimic/crate,
+/obj/random/drinkbottle,
/turf/simulated/floor/plating,
/area/maintenance/lower/rnd)
"jQ" = (
diff --git a/maps/tether/tether-05-station1.dmm b/maps/tether/tether-05-station1.dmm
index f8d7b4cf9fe..ac19de75b03 100644
--- a/maps/tether/tether-05-station1.dmm
+++ b/maps/tether/tether-05-station1.dmm
@@ -21787,7 +21787,7 @@
icon_state = "1-8"
},
/obj/effect/landmark/start{
- name = "Search and Rescue"
+ name = "Field Medic"
},
/turf/simulated/floor/tiled,
/area/tether/station/explorer_meeting)
@@ -21851,7 +21851,7 @@
dir = 1
},
/obj/effect/landmark/start{
- name = "Search and Rescue"
+ name = "Field Medic"
},
/turf/simulated/floor/tiled,
/area/tether/station/explorer_meeting)
@@ -21912,7 +21912,7 @@
dir = 4
},
/obj/effect/landmark/start{
- name = "Search and Rescue"
+ name = "Field Medic"
},
/turf/simulated/floor/tiled,
/area/tether/station/explorer_meeting)
diff --git a/maps/tether/tether-06-station2.dmm b/maps/tether/tether-06-station2.dmm
index 95bba7abe94..c2928919a61 100644
--- a/maps/tether/tether-06-station2.dmm
+++ b/maps/tether/tether-06-station2.dmm
@@ -16384,7 +16384,7 @@
/obj/effect/floor_decal/corner/paleblue/diagonal,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/effect/landmark/start{
- name = "Search and Rescue"
+ name = "Field Medic"
},
/turf/simulated/floor/tiled/white,
/area/crew_quarters/medbreak)
@@ -16500,7 +16500,7 @@
},
/obj/effect/floor_decal/corner/paleblue/diagonal,
/obj/effect/landmark/start{
- name = "Search and Rescue"
+ name = "Field Medic"
},
/turf/simulated/floor/tiled/white,
/area/crew_quarters/medbreak)
diff --git a/maps/tether/tether-07-station3.dmm b/maps/tether/tether-07-station3.dmm
index d911465a74a..f3de2446010 100644
--- a/maps/tether/tether-07-station3.dmm
+++ b/maps/tether/tether-07-station3.dmm
@@ -122,14 +122,6 @@
},
/turf/simulated/floor,
/area/security/eva)
-"an" = (
-/obj/machinery/door/firedoor/glass,
-/obj/machinery/door/airlock/security{
- name = "Security Restroom";
- req_one_access = list(1,38)
- },
-/turf/simulated/floor/tiled/white,
-/area/security/security_bathroom)
"ao" = (
/turf/simulated/wall/r_wall,
/area/security/armory/blue)
@@ -167,20 +159,12 @@
/turf/simulated/floor/tiled,
/area/security/briefing_room)
"ar" = (
-/obj/machinery/door/firedoor/glass,
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/cable/green{
- d1 = 1;
- d2 = 2;
- icon_state = "1-2"
+/obj/structure/table/woodentable,
+/obj/machinery/photocopier/faxmachine{
+ department = "Head of Security"
},
-/obj/machinery/door/airlock/security{
- name = "Security Restroom";
- req_one_access = list(1,38)
- },
-/turf/simulated/floor/tiled,
-/area/security/security_bathroom)
+/turf/simulated/floor/wood,
+/area/crew_quarters/heads/hos)
"as" = (
/obj/machinery/door/firedoor/glass,
/obj/machinery/door/airlock/glass_security{
@@ -222,15 +206,16 @@
d2 = 8;
icon_state = "4-8"
},
-/obj/machinery/door/airlock/glass_security{
- name = "Break Room";
- req_one_access = list(1,38)
- },
/obj/structure/disposalpipe/segment{
dir = 4
},
+/obj/machinery/door/airlock/command{
+ id_tag = "HoSdoor";
+ name = "Head of Security";
+ req_access = list(58)
+ },
/turf/simulated/floor/wood,
-/area/security/breakroom)
+/area/crew_quarters/heads/hos)
"aw" = (
/obj/machinery/door/window/northright,
/obj/effect/floor_decal/industrial/outline/yellow,
@@ -353,6 +338,18 @@
},
/turf/simulated/floor/tiled,
/area/security/range)
+"aF" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/table/rack{
+ dir = 1
+ },
+/obj/random/maintenance/cargo,
+/obj/random/maintenance/clean,
+/obj/random/maintenance/engineering,
+/turf/simulated/floor,
+/area/maintenance/station/ai)
"aG" = (
/obj/effect/floor_decal/borderfloor{
dir = 4
@@ -1206,6 +1203,12 @@
maxcharge = 15000
},
/obj/machinery/light/small,
+/obj/structure/sign/securearea{
+ desc = "A warning sign which reads 'HIGH VOLTAGE'";
+ icon_state = "shock";
+ name = "HIGH VOLTAGE";
+ pixel_y = -32
+ },
/turf/simulated/floor,
/area/maintenance/substation/security)
"bU" = (
@@ -1470,16 +1473,6 @@
/obj/structure/closet/bombcloset/double,
/turf/simulated/floor/tiled/dark,
/area/security/armory/blue)
-"cn" = (
-/obj/effect/floor_decal/borderfloor{
- dir = 8
- },
-/obj/effect/floor_decal/corner/red/border{
- dir = 8
- },
-/obj/machinery/door/firedoor/glass,
-/turf/simulated/floor/tiled,
-/area/security/hallwayaux)
"co" = (
/obj/effect/floor_decal/borderfloor{
dir = 4
@@ -1496,6 +1489,7 @@
},
/obj/structure/disposalpipe/segment,
/obj/machinery/door/firedoor/glass,
+/obj/machinery/door/airlock/glass_security,
/turf/simulated/floor/tiled,
/area/security/hallwayaux)
"cp" = (
@@ -1504,23 +1498,10 @@
},
/area/maintenance/cargo)
"cq" = (
-/obj/machinery/door/firedoor/glass,
-/obj/structure/cable/green{
- d2 = 4;
- icon_state = "0-4"
- },
-/obj/structure/cable/green{
- d2 = 2;
- icon_state = "0-2"
- },
/obj/structure/grille,
-/obj/structure/window/reinforced/polarized{
- dir = 10;
- icon_state = "fwindow";
- id = "hos_office"
- },
+/obj/structure/window/reinforced/full,
/turf/simulated/floor,
-/area/crew_quarters/heads/hos)
+/area/security/breakroom)
"cr" = (
/obj/effect/floor_decal/borderfloor{
dir = 4
@@ -1533,20 +1514,6 @@
},
/turf/simulated/floor/tiled,
/area/security/hallwayaux)
-"cs" = (
-/obj/machinery/door/firedoor/glass,
-/obj/structure/cable/green{
- d2 = 8;
- icon_state = "0-8"
- },
-/obj/structure/grille,
-/obj/structure/window/reinforced/polarized{
- dir = 10;
- icon_state = "fwindow";
- id = "hos_office"
- },
-/turf/simulated/floor,
-/area/crew_quarters/heads/hos)
"ct" = (
/obj/machinery/door/firedoor/glass,
/obj/machinery/door/blast/regular{
@@ -1571,16 +1538,6 @@
"cv" = (
/turf/simulated/wall/r_wall,
/area/security/range)
-"cw" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/door/airlock/engineering{
- name = "Security Substation";
- req_one_access = list(1,11,24)
- },
-/turf/simulated/floor,
-/area/maintenance/substation/security)
"cx" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 9
@@ -1606,14 +1563,13 @@
/turf/simulated/floor,
/area/maintenance/station/ai)
"cz" = (
-/obj/structure/cable{
- d1 = 1;
- d2 = 2;
- icon_state = "1-2";
- pixel_y = 0
- },
/obj/random/junk,
/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
/turf/simulated/floor,
/area/maintenance/substation/security)
"cA" = (
@@ -1757,33 +1713,21 @@
/turf/simulated/floor/tiled/dark,
/area/security/warden)
"cO" = (
-/obj/structure/bed/chair/comfy/black{
- dir = 8
+/obj/structure/table/woodentable,
+/obj/structure/cable/green{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
},
-/obj/machinery/button/remote/blast_door{
- id = "security_lockdown";
- name = "Brig Lockdown";
- pixel_x = -28;
- pixel_y = -36;
- req_access = list(2)
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
},
-/obj/machinery/button/remote/airlock{
- id = "HoSdoor";
- name = "Office Door";
- pixel_x = -28;
- pixel_y = -24
- },
-/obj/machinery/button/windowtint{
- id = "hos_office";
- pixel_x = -36;
- pixel_y = -26;
- req_access = list(58)
- },
-/obj/effect/landmark/start{
- name = "Head of Security"
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
},
+/obj/item/weapon/deck/cards,
/turf/simulated/floor/carpet,
-/area/crew_quarters/heads/hos)
+/area/security/breakroom)
"cP" = (
/turf/simulated/wall,
/area/security/observation)
@@ -1893,38 +1837,18 @@
/turf/simulated/floor/wood,
/area/crew_quarters/heads/hos)
"da" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/table/woodentable,
+/obj/structure/bed/chair/office/dark{
+ dir = 1
+ },
/turf/simulated/floor/carpet,
-/area/crew_quarters/heads/hos)
-"db" = (
-/obj/random/trash_pile,
-/turf/simulated/floor,
-/area/maintenance/station/sec_upper)
+/area/security/breakroom)
"dc" = (
/turf/simulated/floor/plating,
/area/maintenance/station/ai)
"dd" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/simulated/floor,
-/area/maintenance/station/sec_upper)
-"de" = (
-/obj/effect/floor_decal/rust,
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor,
-/area/maintenance/station/sec_upper)
-"df" = (
-/obj/structure/sign/securearea{
- desc = "A warning sign which reads 'HIGH VOLTAGE'";
- icon_state = "shock";
- name = "HIGH VOLTAGE";
- pixel_y = 0
- },
-/turf/simulated/wall,
-/area/maintenance/substation/security)
+/obj/machinery/recharge_station,
+/turf/simulated/floor/tiled/white,
+/area/security/security_bathroom)
"dg" = (
/obj/effect/floor_decal/borderfloorblack{
dir = 9
@@ -2006,44 +1930,36 @@
/obj/effect/floor_decal/industrial/outline/yellow,
/turf/simulated/floor/tiled,
/area/security/hallwayaux)
-"dq" = (
-/obj/machinery/door/firedoor/glass,
-/obj/structure/cable/green,
-/obj/structure/grille,
-/obj/structure/window/reinforced/polarized{
- dir = 10;
- icon_state = "fwindow";
- id = "hos_office"
+"ds" = (
+/obj/structure/bed/chair/office/dark{
+ dir = 8
},
-/turf/simulated/floor,
-/area/crew_quarters/heads/hos)
-"dr" = (
-/obj/structure/disposalpipe/segment,
/obj/structure/cable/green{
d1 = 1;
d2 = 2;
icon_state = "1-2"
},
-/turf/simulated/floor/tiled/dark,
-/area/crew_quarters/heads/hos)
-"ds" = (
-/turf/simulated/floor/wood,
-/area/crew_quarters/heads/hos)
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/turf/simulated/floor/carpet,
+/area/security/breakroom)
"dt" = (
-/obj/machinery/alarm{
- dir = 8;
- icon_state = "alarm0";
- pixel_x = 24
+/obj/structure/cable/green{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
},
-/turf/simulated/floor/wood,
-/area/crew_quarters/heads/hos)
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 6
+ },
+/turf/simulated/floor/carpet,
+/area/security/breakroom)
"du" = (
-/obj/structure/table/woodentable,
-/obj/machinery/newscaster/security_unit{
- pixel_y = -32
+/obj/structure/disposalpipe/trunk{
+ dir = 1
},
-/turf/simulated/floor/tiled/dark,
-/area/crew_quarters/heads/hos)
+/obj/machinery/disposal,
+/turf/simulated/floor/wood,
+/area/security/breakroom)
"dv" = (
/obj/machinery/atmospherics/pipe/simple/hidden/cyan,
/obj/machinery/door/firedoor/glass,
@@ -2055,19 +1971,14 @@
/obj/structure/catwalk,
/turf/simulated/floor,
/area/maintenance/station/sec_upper)
-"dx" = (
-/obj/structure/cable{
- icon_state = "1-4"
- },
+"dy" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/catwalk,
-/turf/simulated/floor,
-/area/maintenance/station/sec_upper)
-"dy" = (
/obj/structure/cable{
- icon_state = "4-8"
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
},
-/obj/structure/catwalk,
/turf/simulated/floor,
/area/maintenance/station/sec_upper)
"dz" = (
@@ -2079,6 +1990,10 @@
/area/security/security_equiptment_storage)
"dA" = (
/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/catwalk,
/turf/simulated/floor,
/area/maintenance/station/sec_upper)
"dB" = (
@@ -2266,17 +2181,6 @@
},
/turf/simulated/floor/tiled,
/area/security/hallwayaux)
-"dN" = (
-/obj/structure/table/woodentable,
-/obj/machinery/photocopier/faxmachine{
- department = "Head of Security"
- },
-/obj/item/device/radio/intercom{
- dir = 4;
- pixel_x = 24
- },
-/turf/simulated/floor/wood,
-/area/crew_quarters/heads/hos)
"dO" = (
/obj/effect/floor_decal/borderfloor{
dir = 9
@@ -2291,12 +2195,6 @@
"dP" = (
/turf/simulated/wall,
/area/security/security_bathroom)
-"dQ" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/turf/simulated/floor/tiled/white,
-/area/security/security_bathroom)
"dR" = (
/turf/simulated/wall/r_wall,
/area/security/breakroom)
@@ -2510,29 +2408,23 @@
/turf/simulated/floor/tiled,
/area/security/hallwayaux)
"el" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
+/obj/structure/disposalpipe/segment{
+ dir = 2;
+ icon_state = "pipe-c"
+ },
+/obj/structure/cable/green{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
-/obj/structure/disposalpipe/segment{
- dir = 8;
- icon_state = "pipe-c"
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
},
-/obj/structure/cable/green{
- d1 = 2;
- d2 = 8;
- icon_state = "2-8"
- },
-/obj/structure/cable/green{
- d1 = 1;
- d2 = 8;
- icon_state = "1-8"
- },
-/obj/machinery/hologram/holopad,
-/turf/simulated/floor/tiled/dark,
-/area/crew_quarters/heads/hos)
+/turf/simulated/floor/wood,
+/area/security/breakroom)
"em" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
@@ -2543,28 +2435,12 @@
/turf/simulated/wall,
/area/maintenance/station/ai)
"en" = (
-/obj/structure/table/woodentable,
-/obj/item/weapon/paper_bin{
- pixel_x = -3;
- pixel_y = 7
- },
-/obj/item/weapon/folder/red_hos,
-/obj/item/weapon/pen/multi,
-/obj/item/device/radio/intercom/department/security{
- dir = 4;
- icon_state = "secintercom";
- pixel_x = 24;
- pixel_y = 0
+/obj/machinery/camera/network/security{
+ c_tag = "SEC - Vault Exterior West";
+ dir = 8
},
/turf/simulated/floor/wood,
-/area/crew_quarters/heads/hos)
-"eo" = (
-/obj/machinery/light_switch{
- dir = 1;
- pixel_y = -24
- },
-/turf/simulated/floor/tiled/white,
-/area/security/security_bathroom)
+/area/security/breakroom)
"ep" = (
/turf/simulated/wall,
/area/security/security_lockerroom)
@@ -2600,15 +2476,11 @@
/turf/simulated/floor,
/area/maintenance/cargo)
"et" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/cable/green{
- d1 = 1;
- d2 = 2;
- icon_state = "1-2"
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
},
-/turf/simulated/floor/wood,
-/area/security/breakroom)
+/turf/simulated/floor/carpet,
+/area/crew_quarters/heads/hos)
"eu" = (
/obj/effect/floor_decal/borderfloorblack{
dir = 8
@@ -2748,51 +2620,32 @@
/obj/structure/window/reinforced/full,
/turf/simulated/floor,
/area/security/observation)
-"eE" = (
-/obj/machinery/computer/secure_data{
- dir = 1
- },
-/turf/simulated/floor/carpet,
-/area/crew_quarters/heads/hos)
"eF" = (
-/obj/structure/table/woodentable,
-/obj/item/clothing/accessory/permit/gun,
-/obj/item/clothing/accessory/permit/gun,
-/obj/item/clothing/accessory/permit/gun,
-/obj/item/clothing/accessory/permit/gun,
-/obj/item/clothing/accessory/permit/gun,
-/obj/item/weapon/paper{
- desc = "";
- info = "In the event that more weapon permits are needed, please fax Central Command to request more. Please also include a reason for the request. Blank permits will be shipped to cargo for pickup. If long-term permits are desired, please contact your NanoTrasen Employee Representitive for more information.";
- name = "note from CentCom about permits"
- },
-/obj/item/weapon/storage/secure/safe{
- pixel_x = 38;
- pixel_y = 0
- },
-/turf/simulated/floor/wood,
-/area/crew_quarters/heads/hos)
-"eG" = (
/obj/structure/cable/green{
- d1 = 1;
- d2 = 2;
- icon_state = "1-2"
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
},
-/obj/structure/table/woodentable,
-/obj/machinery/atmospherics/unary/vent_pump/on{
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
-/turf/simulated/floor/carpet,
-/area/security/breakroom)
-"eH" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/obj/structure/bed/chair{
- dir = 8
- },
-/turf/simulated/floor/carpet,
+/turf/simulated/floor/wood,
/area/security/breakroom)
+"eG" = (
+/obj/structure/table/woodentable,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/turf/simulated/floor/carpet,
+/area/crew_quarters/heads/hos)
+"eH" = (
+/obj/structure/table/woodentable,
+/obj/item/weapon/folder/red_hos,
+/obj/item/weapon/stamp/hos,
+/turf/simulated/floor/carpet,
+/area/crew_quarters/heads/hos)
"eI" = (
/obj/machinery/door/firedoor/glass,
/obj/structure/catwalk,
@@ -2820,15 +2673,12 @@
},
/turf/simulated/floor/tiled/dark,
/area/security/security_lockerroom)
-"eL" = (
-/turf/simulated/floor/tiled/white,
-/area/security/security_bathroom)
"eM" = (
-/obj/item/weapon/coin/gold,
-/obj/item/weapon/coin/silver,
-/obj/item/weapon/bone/skull,
-/mob/living/simple_animal/hostile/mimic/crate,
-/turf/simulated/mineral/floor/cave,
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/random/junk,
+/turf/simulated/floor,
/area/maintenance/station/ai)
"eN" = (
/obj/structure/cable{
@@ -2964,17 +2814,11 @@
/turf/simulated/floor,
/area/security/briefing_room)
"eY" = (
-/obj/machinery/power/apc{
- dir = 4;
- name = "east bump";
- pixel_x = 28
- },
-/obj/structure/cable/green{
- d2 = 8;
- icon_state = "0-8"
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 5
},
/turf/simulated/floor/wood,
-/area/crew_quarters/heads/hos)
+/area/security/breakroom)
"eZ" = (
/obj/effect/floor_decal/borderfloor{
dir = 5
@@ -2987,32 +2831,14 @@
/obj/structure/table/reinforced,
/turf/simulated/floor/tiled,
/area/security/briefing_room)
-"fa" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
- dir = 4
- },
-/obj/structure/cable/green{
- d1 = 1;
- d2 = 2;
- icon_state = "1-2"
- },
-/turf/simulated/floor/wood,
-/area/security/breakroom)
"fb" = (
-/obj/effect/floor_decal/rust,
-/obj/structure/railing{
- dir = 4
+/obj/machinery/light_switch{
+ dir = 4;
+ icon_state = "light1";
+ pixel_x = -24
},
-/obj/structure/table/rack{
- dir = 8;
- layer = 2.9
- },
-/obj/random/maintenance/security,
-/obj/random/maintenance/security,
-/obj/random/maintenance/clean,
-/turf/simulated/floor,
-/area/maintenance/station/sec_upper)
+/turf/simulated/floor/tiled/white,
+/area/security/security_bathroom)
"fc" = (
/obj/structure/catwalk,
/turf/simulated/floor,
@@ -3054,23 +2880,23 @@
/turf/simulated/floor/tiled,
/area/security/hallway)
"ff" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ icon_state = "pipe-c"
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
/obj/structure/cable/green{
d1 = 4;
d2 = 8;
icon_state = "4-8"
},
-/obj/structure/disposalpipe/segment{
- dir = 4;
- icon_state = "pipe-c"
- },
/turf/simulated/floor/wood,
-/area/security/breakroom)
+/area/crew_quarters/heads/hos)
"fg" = (
/obj/machinery/alarm{
dir = 1;
@@ -3231,13 +3057,15 @@
/turf/simulated/floor,
/area/maintenance/station/sec_upper)
"fr" = (
-/obj/machinery/firealarm{
- dir = 1;
- pixel_x = 0;
- pixel_y = -24
+/obj/machinery/photocopier,
+/obj/machinery/power/apc{
+ dir = 2;
+ name = "south bump";
+ pixel_y = -28
},
+/obj/structure/cable/green,
/turf/simulated/floor/wood,
-/area/security/breakroom)
+/area/crew_quarters/heads/hos)
"fs" = (
/obj/structure/flora/pottedplant/stoutbush,
/turf/simulated/floor/tiled,
@@ -3391,11 +3219,19 @@
/turf/simulated/open,
/area/maintenance/station/ai)
"fG" = (
-/obj/structure/railing{
- dir = 4
+/obj/effect/floor_decal/steeldecal/steel_decals10{
+ dir = 10
},
-/turf/simulated/floor,
-/area/maintenance/station/sec_upper)
+/obj/effect/floor_decal/steeldecal/steel_decals10{
+ dir = 9
+ },
+/obj/machinery/shower{
+ icon_state = "shower";
+ dir = 1
+ },
+/obj/structure/curtain/open/shower/security,
+/turf/simulated/floor/tiled,
+/area/security/security_bathroom)
"fH" = (
/turf/simulated/wall,
/area/security/detectives_office)
@@ -3434,6 +3270,12 @@
/obj/structure/table/reinforced,
/obj/machinery/computer/med_data/laptop,
/obj/machinery/camera/network/security,
+/obj/machinery/power/apc{
+ dir = 1;
+ name = "north bump";
+ pixel_x = 0;
+ pixel_y = 24
+ },
/turf/simulated/floor/tiled/white,
/area/security/forensics)
"fK" = (
@@ -4324,6 +4166,16 @@
"hr" = (
/turf/simulated/floor/tiled,
/area/security/eva)
+"hs" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/closet/crate,
+/obj/random/maintenance/research,
+/obj/random/maintenance/clean,
+/obj/random/cigarettes,
+/turf/simulated/floor,
+/area/maintenance/station/ai)
"hu" = (
/obj/machinery/door/firedoor/glass,
/obj/machinery/door/blast/regular{
@@ -4355,6 +4207,10 @@
},
/turf/simulated/floor/tiled,
/area/security/eva)
+"hx" = (
+/obj/structure/undies_wardrobe,
+/turf/simulated/floor/tiled/white,
+/area/security/security_bathroom)
"hy" = (
/turf/simulated/mineral/floor/cave,
/area/maintenance/station/ai)
@@ -4916,10 +4772,6 @@
icon_state = "1-2"
},
/obj/structure/disposalpipe/segment,
-/obj/machinery/firealarm{
- dir = 4;
- pixel_x = 24
- },
/obj/structure/cable/green{
d1 = 1;
d2 = 8;
@@ -5647,60 +5499,13 @@
/obj/structure/disposalpipe/segment,
/turf/simulated/floor/tiled,
/area/security/hallwayaux)
-"jm" = (
-/obj/structure/disposalpipe/trunk,
-/obj/machinery/disposal,
-/obj/structure/cable/green{
- d1 = 1;
- d2 = 2;
- icon_state = "1-2"
- },
-/obj/structure/cable/green{
- d1 = 2;
- d2 = 4;
- icon_state = "2-4"
- },
-/obj/structure/cable/green{
- d1 = 2;
- d2 = 8;
- icon_state = "2-8"
- },
-/turf/simulated/floor/tiled/dark,
-/area/crew_quarters/heads/hos)
"jn" = (
-/obj/machinery/atmospherics/unary/vent_pump/on{
- dir = 4
+/obj/machinery/newscaster/security_unit{
+ pixel_y = 32
},
-/obj/structure/table/woodentable,
-/obj/item/weapon/reagent_containers/food/drinks/flask/barflask{
- pixel_x = -4;
- pixel_y = 8
- },
-/obj/item/device/taperecorder{
- pixel_y = 0
- },
-/obj/structure/cable/green{
- d1 = 4;
- d2 = 8;
- icon_state = "4-8"
- },
-/turf/simulated/floor/tiled/dark,
-/area/crew_quarters/heads/hos)
+/turf/simulated/floor/wood,
+/area/security/breakroom)
"jo" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 6
- },
-/obj/structure/table/woodentable,
-/obj/item/device/radio/off,
-/obj/item/device/megaphone,
-/obj/structure/cable/green{
- d1 = 4;
- d2 = 8;
- icon_state = "4-8"
- },
/obj/machinery/light{
dir = 1
},
@@ -5711,19 +5516,13 @@
pixel_y = 26
},
/turf/simulated/floor/wood,
-/area/crew_quarters/heads/hos)
+/area/security/breakroom)
"jp" = (
-/obj/machinery/atmospherics/unary/vent_scrubber/on{
- dir = 8
- },
-/obj/machinery/photocopier,
-/obj/structure/cable/green{
- d1 = 1;
- d2 = 8;
- icon_state = "1-8"
+/obj/machinery/alarm{
+ pixel_y = 22
},
/turf/simulated/floor/wood,
-/area/crew_quarters/heads/hos)
+/area/security/breakroom)
"jq" = (
/obj/machinery/space_heater,
/turf/simulated/floor,
@@ -5856,13 +5655,13 @@
/turf/simulated/floor/tiled,
/area/security/hallwayaux)
"jB" = (
-/turf/simulated/floor/tiled/dark,
-/area/crew_quarters/heads/hos)
+/obj/machinery/hologram/holopad,
+/turf/simulated/floor/carpet,
+/area/security/breakroom)
"jC" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/turf/simulated/floor/wood,
-/area/crew_quarters/heads/hos)
+/obj/structure/bed/chair/office/dark,
+/turf/simulated/floor/carpet,
+/area/security/breakroom)
"jD" = (
/obj/random/junk,
/turf/simulated/mineral/floor/cave,
@@ -5998,29 +5797,10 @@
/turf/simulated/floor/carpet,
/area/crew_quarters/heads/hos)
"jN" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/table/woodentable,
-/obj/machinery/computer/skills{
- icon_state = "laptop";
- dir = 4
- },
-/obj/item/clothing/accessory/permit/gun{
- desc = "An example of a card indicating that the owner is allowed to carry a firearm. There's a note saying to fax CentCom if you want to order more blank permits.";
- name = "sample weapon permit";
- owner = 1
- },
-/obj/item/weapon/paper{
- desc = "";
- info = "The Chief of Security at CentCom is debating a new policy. It's not official yet, and probably won't be since it's hard to enforce, but I suggest following it anyway. That policy is, if a security officer claims they need more than two extra magazines (or batteries) to go on routine patrols, fire them. If they cannot subdue a single suspect using all that ammo, they are not competent as Security.\[br]-Jeremiah Acacius";
- name = "note to the Head of Security"
- },
+/obj/item/weapon/storage/box/donut,
/turf/simulated/floor/carpet,
-/area/crew_quarters/heads/hos)
-"jO" = (
-/obj/machinery/computer/security,
-/turf/simulated/floor/carpet,
-/area/crew_quarters/heads/hos)
+/area/security/breakroom)
"jP" = (
/obj/structure/table/rack{
dir = 4
@@ -6094,56 +5874,58 @@
/turf/simulated/floor/tiled,
/area/security/hallwayaux)
"jV" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
+/obj/machinery/door/airlock/glass_security{
+ name = "Break Room";
+ req_one_access = list(1,38)
},
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/obj/machinery/door/firedoor/glass,
/obj/structure/disposalpipe/segment{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
/obj/structure/cable/green{
d1 = 4;
d2 = 8;
icon_state = "4-8"
},
-/obj/machinery/door/airlock/command{
- id_tag = "HoSdoor";
- name = "Head of Security";
- req_access = list(58)
- },
-/turf/simulated/floor/tiled/dark,
-/area/crew_quarters/heads/hos)
-"jW" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
+/turf/simulated/floor/wood,
+/area/security/breakroom)
+"jW" = (
+/obj/structure/bed/chair/office/dark{
+ dir = 4
+ },
+/obj/structure/cable/green{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
-/obj/structure/bed/chair{
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
/turf/simulated/floor/carpet,
-/area/crew_quarters/heads/hos)
+/area/security/breakroom)
"jX" = (
-/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
- dir = 4
- },
/obj/structure/table/woodentable,
-/obj/item/weapon/stamp/hos,
-/obj/item/device/flashlight/lamp/green{
- dir = 2;
- pixel_x = -4;
- pixel_y = 12
+/obj/structure/cable/green{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
},
/turf/simulated/floor/carpet,
-/area/crew_quarters/heads/hos)
+/area/security/breakroom)
"jY" = (
/obj/random/trash_pile,
/turf/simulated/mineral/floor/cave,
@@ -6225,18 +6007,9 @@
/turf/simulated/wall/r_wall,
/area/security/armory/blue)
"kh" = (
-/obj/structure/cable/green{
- d1 = 1;
- d2 = 2;
- icon_state = "1-2"
- },
-/obj/machinery/light_switch{
- dir = 4;
- pixel_x = -28;
- pixel_y = 0
- },
-/turf/simulated/floor/tiled/dark,
-/area/crew_quarters/heads/hos)
+/obj/structure/disposalpipe/segment,
+/turf/simulated/floor/wood,
+/area/security/breakroom)
"ki" = (
/obj/structure/closet/crate,
/obj/random/maintenance/clean,
@@ -6318,37 +6091,6 @@
/obj/structure/disposalpipe/segment,
/turf/simulated/floor/tiled,
/area/security/hallwayaux)
-"ks" = (
-/obj/structure/cable/green{
- d1 = 1;
- d2 = 4;
- icon_state = "1-4"
- },
-/obj/structure/cable/green{
- d1 = 1;
- d2 = 8;
- icon_state = "1-8"
- },
-/turf/simulated/floor/tiled/dark,
-/area/crew_quarters/heads/hos)
-"kt" = (
-/obj/structure/cable/green{
- d1 = 4;
- d2 = 8;
- icon_state = "4-8"
- },
-/turf/simulated/floor/tiled/dark,
-/area/crew_quarters/heads/hos)
-"ku" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/cable/green{
- d1 = 4;
- d2 = 8;
- icon_state = "4-8"
- },
-/turf/simulated/floor/wood,
-/area/crew_quarters/heads/hos)
"kv" = (
/obj/structure/cable/green{
d1 = 4;
@@ -6470,49 +6212,23 @@
/turf/simulated/floor/tiled,
/area/security/observation)
"kF" = (
-/obj/machinery/atmospherics/unary/vent_pump/on{
- dir = 4
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_y = -24
},
-/obj/structure/table/woodentable,
-/obj/machinery/recharger{
- pixel_y = 4
- },
-/obj/machinery/requests_console{
- announcementConsole = 1;
- department = "Head of Security's Desk";
- departmentType = 5;
- name = "Head of Security RC";
- pixel_x = 0;
- pixel_y = -32
- },
-/obj/machinery/camera/network/security{
- dir = 1
- },
-/turf/simulated/floor/tiled/dark,
-/area/crew_quarters/heads/hos)
+/turf/simulated/floor/wood,
+/area/security/breakroom)
"kG" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 9
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 5
- },
-/obj/structure/closet/secure_closet/hos2,
+/obj/structure/table/woodentable,
+/obj/machinery/chemical_dispenser/bar_soft/full,
/obj/machinery/light,
-/obj/machinery/keycard_auth{
- pixel_y = -28
- },
/turf/simulated/floor/wood,
-/area/crew_quarters/heads/hos)
+/area/security/breakroom)
"kH" = (
-/obj/machinery/atmospherics/unary/vent_scrubber/on{
- dir = 8
- },
-/obj/structure/closet/secure_closet/hos,
-/obj/item/clothing/suit/space/void/security/fluff/hos,
-/obj/item/clothing/head/helmet/space/void/security/fluff/hos,
+/obj/structure/table/woodentable,
+/obj/item/weapon/storage/box/glasses/square,
/turf/simulated/floor/wood,
-/area/crew_quarters/heads/hos)
+/area/security/breakroom)
"kI" = (
/obj/structure/bookcase,
/obj/item/weapon/book/manual/security_space_law,
@@ -6520,20 +6236,6 @@
/obj/item/weapon/book/manual/command_guide,
/turf/simulated/floor/wood,
/area/crew_quarters/heads/hos)
-"kJ" = (
-/obj/effect/floor_decal/steeldecal/steel_decals5,
-/obj/effect/floor_decal/steeldecal/steel_decals10{
- dir = 5
- },
-/obj/effect/floor_decal/steeldecal/steel_decals10{
- dir = 6
- },
-/obj/machinery/shower{
- pixel_y = 16
- },
-/obj/structure/curtain/open/shower/security,
-/turf/simulated/floor/tiled,
-/area/security/security_bathroom)
"kK" = (
/obj/effect/floor_decal/borderfloorblack{
dir = 8
@@ -6560,6 +6262,12 @@
/obj/machinery/light/small{
dir = 8
},
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/catwalk,
/turf/simulated/floor,
/area/maintenance/station/sec_upper)
"kN" = (
@@ -6629,6 +6337,10 @@
icon_state = "camera";
dir = 8
},
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = 24
+ },
/turf/simulated/floor/tiled,
/area/security/hallwayaux)
"kQ" = (
@@ -6674,26 +6386,12 @@
},
/turf/simulated/floor,
/area/maintenance/station/ai)
-"kV" = (
-/obj/machinery/recharge_station,
-/obj/machinery/light/small{
- icon_state = "bulb1";
- dir = 1
- },
-/turf/simulated/floor/tiled/white,
-/area/security/security_bathroom)
"kW" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 6
},
/turf/simulated/floor/tiled/white,
/area/security/security_bathroom)
-"kX" = (
-/obj/machinery/atmospherics/unary/vent_scrubber/on{
- dir = 8
- },
-/turf/simulated/floor/tiled/white,
-/area/security/security_bathroom)
"kY" = (
/obj/effect/floor_decal/borderfloorblack{
dir = 10
@@ -6765,8 +6463,10 @@
d2 = 2;
icon_state = "1-2"
},
-/obj/machinery/door/airlock/glass_security,
/obj/structure/disposalpipe/segment,
+/obj/machinery/door/airlock/glass_security{
+ req_one_access = list(1,38)
+ },
/turf/simulated/floor/tiled,
/area/security/hallwayaux)
"le" = (
@@ -6836,21 +6536,6 @@
},
/turf/simulated/floor/tiled,
/area/security/briefing_room)
-"lj" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/railing{
- dir = 8
- },
-/obj/structure/railing{
- dir = 1
- },
-/obj/structure/table/rack{
- dir = 8;
- layer = 2.9
- },
-/obj/random/maintenance,
-/turf/simulated/floor,
-/area/maintenance/station/sec_upper)
"lk" = (
/obj/effect/floor_decal/techfloor{
dir = 8
@@ -6928,34 +6613,6 @@
},
/turf/simulated/floor,
/area/maintenance/station/ai)
-"lu" = (
-/obj/machinery/atmospherics/unary/vent_pump/on{
- dir = 4
- },
-/obj/structure/undies_wardrobe,
-/obj/machinery/light{
- dir = 8
- },
-/turf/simulated/floor/tiled/white,
-/area/security/security_bathroom)
-"lv" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/turf/simulated/floor/tiled/white,
-/area/security/security_bathroom)
-"lw" = (
-/obj/machinery/light{
- dir = 4
- },
-/obj/machinery/alarm{
- dir = 8;
- icon_state = "alarm0";
- pixel_x = 24
- },
-/turf/simulated/floor/tiled/white,
-/area/security/security_bathroom)
"lx" = (
/obj/machinery/door/firedoor/glass,
/obj/machinery/door/airlock/security{
@@ -7125,11 +6782,9 @@
/turf/simulated/floor/tiled,
/area/security/briefing_room)
"lL" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/railing{
- dir = 8
- },
-/obj/random/trash_pile,
+/obj/structure/catwalk,
+/obj/machinery/door/firedoor/glass,
+/obj/machinery/door/airlock/maintenance/common,
/turf/simulated/floor,
/area/maintenance/station/sec_upper)
"lM" = (
@@ -7251,37 +6906,6 @@
"lY" = (
/turf/space,
/area/shuttle/antag_space/north)
-"lZ" = (
-/obj/structure/toilet{
- dir = 4
- },
-/obj/machinery/light/small{
- icon_state = "bulb1";
- dir = 1
- },
-/turf/simulated/floor/tiled/white,
-/area/security/security_bathroom)
-"ma" = (
-/obj/machinery/power/apc{
- dir = 2;
- name = "south bump";
- pixel_y = -28
- },
-/obj/structure/cable/green{
- icon_state = "0-4"
- },
-/turf/simulated/floor/tiled/white,
-/area/security/security_bathroom)
-"mb" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/cable/green{
- d1 = 2;
- d2 = 8;
- icon_state = "2-8"
- },
-/turf/simulated/floor/tiled/white,
-/area/security/security_bathroom)
"mc" = (
/obj/effect/floor_decal/borderfloorblack{
dir = 9
@@ -7573,9 +7197,11 @@
/turf/simulated/floor/tiled/dark,
/area/security/security_lockerroom)
"my" = (
-/obj/structure/sign/warning/secure_area,
-/turf/simulated/wall/r_wall,
-/area/security/security_bathroom)
+/obj/structure/closet/secure_closet/hos,
+/obj/item/clothing/suit/space/void/security/fluff/hos,
+/obj/item/clothing/head/helmet/space/void/security/fluff/hos,
+/turf/simulated/floor/wood,
+/area/crew_quarters/heads/hos)
"mz" = (
/obj/effect/floor_decal/borderfloor{
dir = 4
@@ -7777,12 +7403,6 @@
/obj/structure/catwalk,
/turf/simulated/floor,
/area/maintenance/station/sec_upper)
-"mS" = (
-/obj/structure/catwalk,
-/obj/machinery/door/firedoor/glass,
-/obj/machinery/door/airlock/maintenance/common,
-/turf/simulated/floor,
-/area/maintenance/cargo)
"mT" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/catwalk,
@@ -7849,32 +7469,6 @@
},
/turf/simulated/floor/wood,
/area/security/breakroom)
-"nf" = (
-/obj/machinery/camera/network/security,
-/obj/machinery/newscaster/security_unit{
- pixel_y = 32
- },
-/turf/simulated/floor/wood,
-/area/security/breakroom)
-"ng" = (
-/obj/machinery/power/apc{
- dir = 1;
- name = "north bump";
- pixel_x = 0;
- pixel_y = 24
- },
-/obj/structure/cable/green{
- d2 = 2;
- icon_state = "0-2"
- },
-/turf/simulated/floor/wood,
-/area/security/breakroom)
-"nh" = (
-/obj/machinery/light{
- dir = 1
- },
-/turf/simulated/floor/wood,
-/area/security/breakroom)
"ni" = (
/obj/structure/bookcase,
/obj/item/weapon/book/manual/security_space_law,
@@ -8123,45 +7717,85 @@
/turf/simulated/floor,
/area/maintenance/station/ai)
"nD" = (
-/obj/machinery/door/firedoor/glass,
-/obj/structure/cable/green{
- d2 = 2;
- icon_state = "0-2"
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 4
},
-/obj/machinery/door/blast/regular{
- density = 0;
- dir = 1;
- icon_state = "pdoor0";
+/obj/machinery/newscaster/security_unit{
+ pixel_x = -32;
+ pixel_y = 0
+ },
+/turf/simulated/floor/wood,
+/area/crew_quarters/heads/hos)
+"nE" = (
+/obj/structure/table/woodentable,
+/obj/item/weapon/paper{
+ desc = "";
+ info = "The Chief of Security at CentCom is debating a new policy. It's not official yet, and probably won't be since it's hard to enforce, but I suggest following it anyway. That policy is, if a security officer claims they need more than two extra magazines (or batteries) to go on routine patrols, fire them. If they cannot subdue a single suspect using all that ammo, they are not competent as Security.\[br]-Jeremiah Acacius";
+ name = "note to the Head of Security"
+ },
+/obj/item/clothing/accessory/permit/gun{
+ desc = "An example of a card indicating that the owner is allowed to carry a firearm. There's a note saying to fax CentCom if you want to order more blank permits.";
+ name = "sample weapon permit";
+ owner = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/item/weapon/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/weapon/pen/multi,
+/turf/simulated/floor/carpet,
+/area/crew_quarters/heads/hos)
+"nF" = (
+/obj/structure/bed/chair/comfy/black,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 6
+ },
+/obj/machinery/button/windowtint{
+ id = "hos_office";
+ pixel_x = -36;
+ pixel_y = -26;
+ req_access = list(58)
+ },
+/obj/machinery/button/remote/airlock{
+ id = "HoSdoor";
+ name = "Office Door";
+ pixel_x = -28;
+ pixel_y = -24
+ },
+/obj/machinery/button/remote/blast_door{
id = "security_lockdown";
- name = "Security Blast Doors";
- opacity = 0
+ name = "Brig Lockdown";
+ pixel_x = -28;
+ pixel_y = -36;
+ req_access = list(2)
},
-/obj/structure/grille,
-/obj/structure/window/reinforced/full,
-/obj/structure/window/reinforced{
+/obj/effect/landmark/start{
+ name = "Head of Security"
+ },
+/turf/simulated/floor/carpet,
+/area/crew_quarters/heads/hos)
+"nG" = (
+/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 8
},
-/turf/simulated/floor,
-/area/security/breakroom)
-"nE" = (
-/obj/structure/bed/chair,
-/turf/simulated/floor/carpet,
-/area/security/breakroom)
-"nF" = (
-/obj/structure/cable/green{
- d1 = 1;
- d2 = 2;
- icon_state = "1-2"
+/obj/item/device/radio/intercom/department/security{
+ dir = 4;
+ icon_state = "secintercom";
+ pixel_x = 24;
+ pixel_y = 0
+ },
+/obj/machinery/camera/network/security{
+ icon_state = "camera";
+ dir = 8
},
-/obj/structure/bed/chair,
-/turf/simulated/floor/carpet,
-/area/security/breakroom)
-"nG" = (
-/obj/structure/table/steel,
-/obj/machinery/chemical_dispenser/bar_soft/full,
-/obj/item/weapon/storage/box/glasses/square,
/turf/simulated/floor/wood,
-/area/security/breakroom)
+/area/crew_quarters/heads/hos)
"nH" = (
/obj/effect/floor_decal/borderfloorblack{
dir = 8
@@ -8341,59 +7975,39 @@
/turf/simulated/floor,
/area/maintenance/station/ai)
"nW" = (
-/obj/machinery/door/firedoor/glass,
-/obj/structure/cable/green{
- d2 = 2;
- icon_state = "0-2"
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = -26
},
-/obj/structure/cable/green,
-/obj/machinery/door/blast/regular{
- density = 0;
- dir = 1;
- icon_state = "pdoor0";
- id = "security_lockdown";
- name = "Security Blast Doors";
- opacity = 0
- },
-/obj/structure/grille,
-/obj/structure/window/reinforced/full,
-/obj/structure/window/reinforced{
+/obj/machinery/light{
+ icon_state = "tube1";
dir = 8
},
-/turf/simulated/floor,
-/area/security/breakroom)
+/turf/simulated/floor/wood,
+/area/crew_quarters/heads/hos)
"nX" = (
-/obj/structure/bed/chair{
- dir = 4
- },
-/turf/simulated/floor/carpet,
-/area/security/breakroom)
-"nY" = (
-/obj/structure/table/woodentable,
-/turf/simulated/floor/carpet,
-/area/security/breakroom)
-"nZ" = (
-/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/cable/green{
d1 = 1;
d2 = 2;
icon_state = "1-2"
},
-/turf/simulated/floor/wood,
+/turf/simulated/floor/carpet,
+/area/crew_quarters/heads/hos)
+"nY" = (
+/obj/structure/table/woodentable,
+/turf/simulated/floor/carpet,
/area/security/breakroom)
"oa" = (
-/obj/structure/table/steel,
-/obj/machinery/microwave,
-/obj/machinery/alarm{
- dir = 8;
- icon_state = "alarm0";
+/obj/item/device/radio/intercom{
+ dir = 4;
pixel_x = 24
},
+/obj/machinery/light{
+ dir = 4;
+ icon_state = "tube1"
+ },
/turf/simulated/floor/wood,
-/area/security/breakroom)
+/area/crew_quarters/heads/hos)
"ob" = (
/obj/effect/floor_decal/borderfloorblack{
dir = 10
@@ -8575,10 +8189,6 @@
/obj/random/junk,
/turf/simulated/floor,
/area/maintenance/cargo)
-"oq" = (
-/obj/random/obstruction,
-/turf/simulated/floor,
-/area/maintenance/station/ai)
"or" = (
/obj/item/weapon/storage/laundry_basket,
/turf/simulated/floor,
@@ -8597,44 +8207,25 @@
/obj/structure/grille,
/turf/space,
/area/space)
-"ou" = (
-/obj/structure/table/woodentable,
-/obj/machinery/atmospherics/unary/vent_scrubber/on{
- dir = 4
- },
-/turf/simulated/floor/carpet,
-/area/security/breakroom)
"ov" = (
-/obj/structure/cable/green{
- d1 = 1;
- d2 = 2;
- icon_state = "1-2"
+/obj/structure/bed/chair/office/dark{
+ dir = 1
},
-/obj/structure/table/woodentable,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/obj/item/weapon/deck/cards,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/floor/carpet,
-/area/security/breakroom)
+/area/crew_quarters/heads/hos)
"ow" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/obj/structure/bed/chair{
- dir = 8
- },
+/obj/machinery/hologram/holopad,
/turf/simulated/floor/carpet,
-/area/security/breakroom)
+/area/crew_quarters/heads/hos)
"ox" = (
-/obj/structure/table/steel,
-/obj/item/weapon/storage/box/donkpockets,
/obj/machinery/light_switch{
dir = 8;
- pixel_x = 24
+ pixel_x = 28
},
/turf/simulated/floor/wood,
-/area/security/breakroom)
+/area/crew_quarters/heads/hos)
"oy" = (
/obj/machinery/door/firedoor/glass,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
@@ -8906,72 +8497,24 @@
/turf/simulated/floor,
/area/maintenance/station/ai)
"oW" = (
-/obj/machinery/door/firedoor/glass,
-/obj/structure/cable/green,
+/obj/structure/table/woodentable,
/obj/structure/cable/green{
- icon_state = "0-4"
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
},
-/obj/machinery/door/blast/regular{
- density = 0;
- dir = 1;
- icon_state = "pdoor0";
- id = "security_lockdown";
- name = "Security Blast Doors";
- opacity = 0
- },
-/obj/structure/grille,
-/obj/structure/window/reinforced/full,
-/obj/structure/window/reinforced{
- dir = 8
- },
-/turf/simulated/floor,
-/area/security/breakroom)
+/turf/simulated/floor/wood,
+/area/crew_quarters/heads/hos)
"oX" = (
/obj/structure/cable/green{
d1 = 4;
d2 = 8;
icon_state = "4-8"
},
-/turf/simulated/floor/carpet,
-/area/security/breakroom)
-"oY" = (
/obj/structure/cable/green{
- d1 = 4;
- d2 = 8;
- icon_state = "4-8"
- },
-/obj/structure/bed/chair{
- dir = 1
- },
-/turf/simulated/floor/carpet,
-/area/security/breakroom)
-"oZ" = (
-/obj/structure/cable/green{
- d1 = 4;
- d2 = 8;
- icon_state = "4-8"
- },
-/obj/structure/cable/green{
- d1 = 1;
+ d1 = 2;
d2 = 4;
- icon_state = "1-4"
- },
-/obj/structure/bed/chair{
- dir = 1
- },
-/turf/simulated/floor/carpet,
-/area/security/breakroom)
-"pa" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 5
- },
-/obj/structure/cable/green{
- d1 = 4;
- d2 = 8;
- icon_state = "4-8"
+ icon_state = "2-4"
},
/obj/structure/cable/green{
d1 = 1;
@@ -8979,7 +8522,45 @@
icon_state = "1-4"
},
/turf/simulated/floor/wood,
-/area/security/breakroom)
+/area/crew_quarters/heads/hos)
+"oZ" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 5
+ },
+/obj/structure/cable/green{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/structure/cable/green{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/turf/simulated/floor/wood,
+/area/crew_quarters/heads/hos)
+"pa" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/cable/green{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/obj/structure/cable/green{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/turf/simulated/floor/wood,
+/area/crew_quarters/heads/hos)
"pb" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
@@ -9384,21 +8965,21 @@
/obj/random/maintenance/medical,
/turf/simulated/floor,
/area/maintenance/station/ai)
-"pB" = (
-/obj/machinery/light,
-/turf/simulated/floor/wood,
-/area/security/breakroom)
"pC" = (
/obj/machinery/disposal,
/obj/structure/disposalpipe/trunk{
dir = 1
},
/turf/simulated/floor/wood,
-/area/security/breakroom)
+/area/crew_quarters/heads/hos)
"pD" = (
/obj/machinery/door/firedoor/glass,
/obj/structure/grille,
-/obj/structure/window/reinforced/full,
+/obj/structure/window/reinforced/polarized{
+ dir = 10;
+ icon_state = "fwindow";
+ id = "hos_office"
+ },
/turf/simulated/floor,
/area/security/breakroom)
"pE" = (
@@ -9842,9 +9423,6 @@
},
/obj/structure/table/reinforced,
/obj/machinery/microscope,
-/obj/machinery/alarm{
- pixel_y = 22
- },
/turf/simulated/floor/tiled/white,
/area/security/forensics)
"qy" = (
@@ -9855,12 +9433,6 @@
dir = 1
},
/obj/machinery/dnaforensics,
-/obj/machinery/firealarm{
- dir = 2;
- layer = 3.3;
- pixel_x = 0;
- pixel_y = 26
- },
/turf/simulated/floor/tiled/white,
/area/security/forensics)
"qz" = (
@@ -9880,12 +9452,6 @@
d2 = 2;
icon_state = "0-2"
},
-/obj/machinery/power/apc{
- dir = 1;
- name = "north bump";
- pixel_x = 0;
- pixel_y = 24
- },
/obj/structure/closet{
name = "Evidence Closet"
},
@@ -9923,12 +9489,6 @@
dir = 5
},
/obj/structure/disposalpipe/trunk,
-/obj/machinery/light_switch{
- dir = 2;
- name = "light switch ";
- pixel_x = 10;
- pixel_y = 36
- },
/turf/simulated/floor/tiled/white,
/area/security/forensics)
"qC" = (
@@ -10302,6 +9862,11 @@
icon_state = "4-8"
},
/obj/machinery/door/window/eastleft,
+/obj/structure/cable/green{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
/turf/simulated/floor/tiled/white,
/area/security/forensics)
"ri" = (
@@ -10310,11 +9875,6 @@
d2 = 8;
icon_state = "4-8"
},
-/obj/structure/cable/green{
- d1 = 1;
- d2 = 4;
- icon_state = "1-4"
- },
/obj/structure/cable/green{
d1 = 2;
d2 = 4;
@@ -10370,6 +9930,9 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
/turf/simulated/floor/tiled/white,
/area/security/forensics)
"rm" = (
@@ -10384,6 +9947,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
/turf/simulated/floor/lino,
/area/security/detectives_office)
"rn" = (
@@ -10398,6 +9964,9 @@
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 1
},
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
/turf/simulated/floor/lino,
/area/security/detectives_office)
"ro" = (
@@ -10412,6 +9981,9 @@
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 1
},
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
/turf/simulated/floor/lino,
/area/security/detectives_office)
"rp" = (
@@ -10431,6 +10003,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
/turf/simulated/floor/lino,
/area/security/detectives_office)
"rq" = (
@@ -10445,6 +10020,9 @@
name = "Detective";
req_access = list(4)
},
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
/turf/simulated/floor/wood,
/area/security/detectives_office)
"rr" = (
@@ -10984,6 +10562,12 @@
icon_state = "tube1";
dir = 8
},
+/obj/machinery/alarm{
+ dir = 4;
+ icon_state = "alarm0";
+ pixel_x = -22;
+ pixel_y = 0
+ },
/turf/simulated/floor/tiled/white,
/area/security/forensics)
"sb" = (
@@ -11086,10 +10670,9 @@
/obj/machinery/light{
dir = 4
},
-/obj/machinery/alarm{
+/obj/machinery/light_switch{
dir = 8;
- icon_state = "alarm0";
- pixel_x = 24
+ pixel_x = 28
},
/turf/simulated/floor/tiled/white,
/area/security/forensics)
@@ -12185,6 +11768,11 @@
dir = 6
},
/obj/structure/filingcabinet,
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_x = 0;
+ pixel_y = -24
+ },
/turf/simulated/floor/tiled/white,
/area/security/forensics)
"tK" = (
@@ -12205,14 +11793,24 @@
},
/obj/structure/cable/green{
d1 = 1;
- d2 = 2;
- icon_state = "1-2"
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/machinery/alarm{
+ dir = 1;
+ icon_state = "alarm0";
+ pixel_y = -22
},
/turf/simulated/floor/tiled/white,
/area/security/forensics)
"tL" = (
/obj/effect/floor_decal/borderfloorwhite,
/obj/effect/floor_decal/corner/red/border,
+/obj/structure/cable/green{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
/turf/simulated/floor/tiled/white,
/area/security/forensics)
"tM" = (
@@ -12802,16 +12400,13 @@
name = "Security Blast Doors";
opacity = 0
},
-/obj/structure/cable/green{
- d2 = 8;
- icon_state = "0-8"
- },
/obj/structure/cable/green{
icon_state = "0-4"
},
/obj/structure/grille,
/obj/structure/window/reinforced/full,
/obj/structure/window/reinforced,
+/obj/structure/cable/green,
/turf/simulated/floor,
/area/security/forensics)
"uI" = (
@@ -15377,6 +14972,16 @@
/obj/effect/floor_decal/steeldecal/steel_decals6{
dir = 10
},
+/obj/machinery/power/apc{
+ dir = 1;
+ name = "north bump";
+ pixel_x = 0;
+ pixel_y = 28
+ },
+/obj/structure/cable{
+ d2 = 2;
+ icon_state = "0-2"
+ },
/turf/simulated/floor/tiled,
/area/hallway/station/upper)
"yF" = (
@@ -16017,6 +15622,12 @@
/obj/effect/floor_decal/corner/lightgrey{
dir = 9
},
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2";
+ pixel_y = 0
+ },
/turf/simulated/floor/tiled,
/area/hallway/station/upper)
"zz" = (
@@ -27192,31 +26803,10 @@
},
/turf/simulated/floor/tiled,
/area/security/hallway)
-"QX" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/catwalk,
-/obj/machinery/light/small{
- dir = 4;
- pixel_y = 0
- },
-/turf/simulated/floor,
-/area/maintenance/station/sec_upper)
"QY" = (
/obj/structure/railing{
dir = 8
},
-/obj/structure/railing{
- icon_state = "railing0";
- dir = 1
- },
-/turf/simulated/floor,
-/area/maintenance/station/sec_upper)
-"QZ" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/railing{
- icon_state = "railing0";
- dir = 1
- },
/turf/simulated/floor,
/area/maintenance/station/sec_upper)
"Ra" = (
@@ -27333,13 +26923,40 @@
/obj/machinery/meter,
/turf/simulated/floor/tiled,
/area/security/eva)
+"Rn" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/turf/simulated/floor/tiled,
+/area/hallway/station/upper)
+"Rq" = (
+/obj/structure/table/woodentable,
+/obj/item/device/flashlight/lamp/green{
+ dir = 2;
+ pixel_x = -4;
+ pixel_y = 12
+ },
+/turf/simulated/floor/carpet,
+/area/crew_quarters/heads/hos)
"Rs" = (
/obj/machinery/button/windowtint{
id = "sec_processing";
pixel_x = 26;
pixel_y = 6;
- req_access = list(1);
-
+ req_access = list(1)
},
/turf/simulated/floor/tiled,
/area/security/security_processing)
@@ -27352,6 +26969,18 @@
},
/turf/simulated/floor/tiled/dark,
/area/security/warden)
+"RN" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/random/trash_pile,
+/turf/simulated/floor,
+/area/maintenance/cargo)
+"RT" = (
+/obj/structure/toilet,
+/turf/simulated/floor/tiled/white,
+/area/security/security_bathroom)
"Sa" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
@@ -27359,6 +26988,24 @@
},
/turf/simulated/floor/tiled,
/area/security/eva)
+"Sc" = (
+/obj/structure/table/woodentable,
+/obj/item/device/megaphone,
+/obj/structure/cable/green{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/wood,
+/area/crew_quarters/heads/hos)
+"Sz" = (
+/obj/structure/cable/green{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/wood,
+/area/crew_quarters/heads/hos)
"SD" = (
/obj/effect/floor_decal/industrial/warning,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
@@ -27366,9 +27013,99 @@
},
/turf/simulated/floor/bluegrid,
/area/ai/foyer)
-"SW" = (
-/turf/simulated/mineral/vacuum,
-/area/space)
+"SP" = (
+/obj/structure/table/woodentable,
+/obj/item/device/taperecorder{
+ pixel_y = 0
+ },
+/obj/item/weapon/reagent_containers/food/drinks/flask/barflask{
+ pixel_x = -4;
+ pixel_y = 8
+ },
+/turf/simulated/floor/wood,
+/area/crew_quarters/heads/hos)
+"ST" = (
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = -26
+ },
+/turf/simulated/floor/tiled/white,
+/area/security/security_bathroom)
+"SX" = (
+/obj/machinery/door/airlock/security{
+ name = "Security Restroom";
+ req_one_access = list(1,38)
+ },
+/turf/simulated/floor/tiled/white,
+/area/security/security_bathroom)
+"Tb" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/polarized{
+ dir = 10;
+ icon_state = "fwindow";
+ id = "hos_office"
+ },
+/obj/structure/cable/green,
+/obj/structure/cable/green{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/firedoor/glass,
+/obj/structure/cable/green{
+ icon_state = "0-4"
+ },
+/turf/simulated/floor,
+/area/security/forensics)
+"Tc" = (
+/obj/structure/railing{
+ icon_state = "railing0";
+ dir = 1
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/simulated/floor,
+/area/maintenance/cargo)
+"Td" = (
+/obj/structure/cable/green{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 8
+ },
+/turf/simulated/floor/carpet,
+/area/security/breakroom)
+"Th" = (
+/obj/structure/bed/chair/office/dark{
+ dir = 4
+ },
+/turf/simulated/floor/carpet,
+/area/security/breakroom)
+"Tp" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2";
+ pixel_y = 0
+ },
+/obj/structure/catwalk,
+/turf/simulated/floor,
+/area/maintenance/station/sec_upper)
+"TD" = (
+/obj/structure/table/woodentable,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/machinery/computer/skills{
+ icon_state = "laptop";
+ dir = 8
+ },
+/turf/simulated/floor/carpet,
+/area/crew_quarters/heads/hos)
"TL" = (
/obj/machinery/ai_slipper{
icon_state = "motion0"
@@ -27378,6 +27115,21 @@
},
/turf/simulated/floor/bluegrid,
/area/ai/foyer)
+"TO" = (
+/obj/structure/table/woodentable,
+/obj/item/weapon/storage/secure/safe{
+ pixel_x = -30
+ },
+/obj/item/clothing/accessory/permit/gun,
+/obj/item/clothing/accessory/permit/gun,
+/obj/item/clothing/accessory/permit/gun,
+/obj/item/weapon/paper{
+ desc = "";
+ info = "In the event that more weapon permits are needed, please fax Central Command to request more. Please also include a reason for the request. Blank permits will be shipped to cargo for pickup. If long-term permits are desired, please contact your NanoTrasen Employee Representitive for more information.";
+ name = "note from CentCom about permits"
+ },
+/turf/simulated/floor/wood,
+/area/crew_quarters/heads/hos)
"TP" = (
/obj/effect/floor_decal/industrial/warning,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
@@ -27385,15 +27137,39 @@
},
/turf/simulated/floor/bluegrid,
/area/ai/foyer)
+"TQ" = (
+/obj/structure/table/woodentable,
+/obj/item/weapon/storage/box/donkpockets,
+/turf/simulated/floor/wood,
+/area/security/breakroom)
+"TX" = (
+/obj/machinery/alarm{
+ dir = 8;
+ icon_state = "alarm0";
+ pixel_x = 24
+ },
+/turf/simulated/floor/tiled/white,
+/area/security/security_bathroom)
+"Ub" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 5
+ },
+/turf/simulated/floor/tiled/white,
+/area/security/security_bathroom)
"Un" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
/obj/structure/cable/green{
d1 = 4;
d2 = 8;
icon_state = "4-8"
},
-/obj/machinery/hologram/holopad,
-/turf/simulated/floor/carpet,
-/area/security/breakroom)
+/turf/simulated/floor/wood,
+/area/crew_quarters/heads/hos)
"Up" = (
/obj/machinery/door/firedoor/glass,
/obj/machinery/door/blast/regular{
@@ -27416,6 +27192,19 @@
},
/turf/simulated/floor,
/area/security/eva)
+"Uq" = (
+/obj/structure/cable/green{
+ d2 = 2;
+ icon_state = "0-2"
+ },
+/obj/machinery/power/apc{
+ dir = 1;
+ name = "north bump";
+ pixel_x = 0;
+ pixel_y = 28
+ },
+/turf/simulated/floor/wood,
+/area/security/breakroom)
"Ur" = (
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 4
@@ -27426,6 +27215,192 @@
},
/turf/simulated/floor/tiled,
/area/security/eva)
+"Uu" = (
+/obj/machinery/computer/security,
+/turf/simulated/floor/wood,
+/area/crew_quarters/heads/hos)
+"Uw" = (
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/structure/table/standard,
+/obj/random/soap,
+/turf/simulated/floor/tiled/white,
+/area/security/security_bathroom)
+"Uy" = (
+/obj/machinery/requests_console{
+ announcementConsole = 1;
+ department = "Head of Security's Desk";
+ departmentType = 5;
+ name = "Head of Security RC";
+ pixel_x = 32;
+ pixel_y = 0
+ },
+/turf/simulated/floor/wood,
+/area/crew_quarters/heads/hos)
+"UA" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/polarized{
+ dir = 10;
+ icon_state = "fwindow";
+ id = "hos_office"
+ },
+/obj/structure/cable/green{
+ d2 = 4;
+ icon_state = "0-4"
+ },
+/obj/machinery/door/firedoor/glass,
+/turf/simulated/floor,
+/area/security/forensics)
+"UC" = (
+/obj/effect/floor_decal/borderfloor{
+ dir = 8
+ },
+/obj/effect/floor_decal/corner/red/border{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/glass,
+/obj/machinery/door/airlock/glass_security{
+ req_one_access = list(1,38)
+ },
+/turf/simulated/floor/tiled,
+/area/security/hallwayaux)
+"UH" = (
+/obj/machinery/door/firedoor/glass,
+/obj/structure/cable/green{
+ d2 = 4;
+ icon_state = "0-4"
+ },
+/obj/structure/cable/green{
+ d2 = 2;
+ icon_state = "0-2"
+ },
+/obj/structure/grille,
+/obj/structure/window/reinforced/polarized{
+ dir = 10;
+ icon_state = "fwindow";
+ id = "hos_office"
+ },
+/obj/machinery/door/blast/regular{
+ density = 0;
+ dir = 1;
+ icon_state = "pdoor0";
+ id = "security_lockdown";
+ name = "Security Blast Doors";
+ opacity = 0
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/simulated/floor,
+/area/crew_quarters/heads/hos)
+"UM" = (
+/turf/simulated/wall/r_wall,
+/area/maintenance/cargo)
+"UO" = (
+/obj/machinery/door/firedoor/glass,
+/obj/structure/cable/green,
+/obj/structure/grille,
+/obj/structure/window/reinforced/polarized{
+ dir = 10;
+ icon_state = "fwindow";
+ id = "hos_office"
+ },
+/obj/structure/cable/green{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/blast/regular{
+ density = 0;
+ dir = 1;
+ icon_state = "pdoor0";
+ id = "security_lockdown";
+ name = "Security Blast Doors";
+ opacity = 0
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/simulated/floor,
+/area/crew_quarters/heads/hos)
+"US" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 10
+ },
+/turf/simulated/floor/tiled/white,
+/area/security/security_bathroom)
+"UT" = (
+/obj/structure/cable/green{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/security/security_bathroom)
+"UV" = (
+/obj/effect/floor_decal/steeldecal/steel_decals10{
+ dir = 6
+ },
+/obj/effect/floor_decal/steeldecal/steel_decals10{
+ dir = 5
+ },
+/turf/simulated/floor/tiled,
+/area/security/security_bathroom)
+"Vb" = (
+/obj/machinery/door/firedoor/glass,
+/obj/structure/cable/green,
+/obj/structure/grille,
+/obj/structure/window/reinforced/polarized{
+ dir = 10;
+ icon_state = "fwindow";
+ id = "hos_office"
+ },
+/obj/machinery/door/blast/regular{
+ density = 0;
+ dir = 1;
+ icon_state = "pdoor0";
+ id = "security_lockdown";
+ name = "Security Blast Doors";
+ opacity = 0
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/simulated/floor,
+/area/crew_quarters/heads/hos)
+"Ve" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/structure/cable/green{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/carpet,
+/area/crew_quarters/heads/hos)
+"Vk" = (
+/obj/effect/floor_decal/rust,
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/table/rack{
+ dir = 8;
+ layer = 2.9
+ },
+/obj/random/maintenance/security,
+/obj/random/maintenance/security,
+/obj/random/maintenance/clean,
+/turf/simulated/floor,
+/area/maintenance/cargo)
"Vn" = (
/obj/structure/bed/chair/office/dark{
dir = 4
@@ -27438,6 +27413,14 @@
},
/turf/simulated/floor/tiled,
/area/security/lobby)
+"Vp" = (
+/obj/structure/cable/green{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/turf/simulated/floor/carpet,
+/area/crew_quarters/heads/hos)
"Vr" = (
/obj/effect/floor_decal/techfloor{
dir = 1
@@ -27449,6 +27432,40 @@
},
/turf/simulated/floor/bluegrid,
/area/ai/foyer)
+"VB" = (
+/obj/machinery/washing_machine,
+/turf/simulated/floor/tiled/white,
+/area/security/security_bathroom)
+"VJ" = (
+/obj/structure/cable/green{
+ d2 = 2;
+ icon_state = "0-2"
+ },
+/obj/machinery/power/apc{
+ dir = 8;
+ name = "west bump";
+ pixel_x = -28
+ },
+/turf/simulated/floor/tiled/white,
+/area/security/security_bathroom)
+"VK" = (
+/obj/structure/table/woodentable,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/keycard_auth{
+ pixel_y = 32
+ },
+/obj/machinery/recharger{
+ pixel_y = 4
+ },
+/turf/simulated/floor/wood,
+/area/crew_quarters/heads/hos)
+"VL" = (
+/obj/structure/grille,
+/obj/structure/lattice,
+/turf/space,
+/area/space)
"VM" = (
/turf/simulated/open,
/area/ai/foyer)
@@ -27461,10 +27478,63 @@
},
/turf/simulated/floor/bluegrid,
/area/ai/foyer)
+"Wc" = (
+/obj/machinery/door/airlock/engineering{
+ name = "Security Substation";
+ req_one_access = list(1,11,24)
+ },
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/turf/space,
+/area/maintenance/substation/security)
+"Wj" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/polarized{
+ dir = 10;
+ icon_state = "fwindow";
+ id = "hos_office"
+ },
+/obj/structure/cable/green{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/firedoor/glass,
+/turf/simulated/floor,
+/area/security/forensics)
+"WB" = (
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/structure/sink{
+ dir = 4;
+ icon_state = "sink";
+ pixel_x = 11;
+ pixel_y = 0
+ },
+/obj/structure/mirror{
+ pixel_x = 30
+ },
+/turf/simulated/floor/tiled/white,
+/area/security/security_bathroom)
+"WX" = (
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/simulated/floor/wood,
+/area/security/breakroom)
"WY" = (
/obj/machinery/hologram/holopad,
/turf/simulated/floor/tiled/dark,
/area/security/evidence_storage)
+"Xe" = (
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/simulated/floor/wood,
+/area/security/breakroom)
"XG" = (
/obj/machinery/hologram/holopad,
/turf/simulated/floor/tiled,
@@ -27478,10 +27548,126 @@
},
/turf/simulated/floor/bluegrid,
/area/ai/foyer)
+"XP" = (
+/obj/effect/floor_decal/rust,
+/obj/structure/catwalk,
+/turf/simulated/floor,
+/area/maintenance/cargo)
+"XT" = (
+/obj/effect/floor_decal/borderfloor{
+ dir = 1
+ },
+/obj/effect/floor_decal/corner/lightgrey/border{
+ dir = 1
+ },
+/obj/effect/floor_decal/steeldecal/steel_decals7,
+/obj/effect/floor_decal/steeldecal/steel_decals7{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2";
+ pixel_y = 0
+ },
+/turf/simulated/floor/tiled,
+/area/hallway/station/upper)
+"Yu" = (
+/obj/structure/closet/secure_closet/hos2,
+/turf/simulated/floor/wood,
+/area/crew_quarters/heads/hos)
+"YF" = (
+/obj/structure/bed/chair/office/dark{
+ dir = 8
+ },
+/obj/structure/cable/green{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 10
+ },
+/obj/structure/cable/green{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
+ dir = 4
+ },
+/turf/simulated/floor/carpet,
+/area/security/breakroom)
+"YH" = (
+/obj/structure/table/woodentable,
+/obj/machinery/microwave,
+/turf/simulated/floor/wood,
+/area/security/breakroom)
+"YT" = (
+/turf/simulated/wall,
+/area/security/breakroom)
+"YV" = (
+/obj/machinery/computer/secure_data,
+/obj/machinery/alarm{
+ frequency = 1441;
+ pixel_y = 22
+ },
+/turf/simulated/floor/wood,
+/area/crew_quarters/heads/hos)
+"YW" = (
+/obj/structure/lattice,
+/obj/structure/sign/warning/secure_area{
+ pixel_x = 32
+ },
+/turf/space,
+/area/space)
+"Ze" = (
+/obj/machinery/door/airlock/security{
+ name = "Security Restroom";
+ req_one_access = list(1,38)
+ },
+/obj/structure/cable/green{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/security/security_bathroom)
+"ZM" = (
+/obj/structure/table/woodentable,
+/obj/item/device/radio/off,
+/turf/simulated/floor/wood,
+/area/crew_quarters/heads/hos)
"ZO" = (
/obj/machinery/atmospherics/unary/vent_scrubber/on,
/turf/simulated/floor/tiled,
/area/security/eva)
+"ZP" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/catwalk,
+/turf/simulated/floor,
+/area/maintenance/station/sec_upper)
+"ZT" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/random/trash_pile,
+/turf/simulated/floor,
+/area/maintenance/cargo)
+"ZY" = (
+/turf/simulated/wall/r_wall,
+/area/security/security_lockerroom)
(1,1,1) = {"
aa
@@ -30941,8 +31127,8 @@ aa
aa
aa
aa
-aa
-aa
+VL
+ae
ad
ad
ad
@@ -31083,7 +31269,7 @@ aa
aa
aa
aa
-aa
+VL
aa
ae
aa
@@ -31225,9 +31411,8 @@ aa
aa
aa
aa
-aa
-aa
-ae
+VL
+YW
ae
ae
ae
@@ -31235,6 +31420,7 @@ ae
ae
ae
ae
+YW
ae
ae
ae
@@ -31364,18 +31550,18 @@ aa
aa
aa
aa
+aa
+aa
ab
ab
-ab
-aa
-aa
-ae
-aa
-aa
-ae
-aa
-aa
-aa
+je
+UH
+UO
+je
+je
+je
+UH
+Vb
qc
qv
rd
@@ -31505,20 +31691,20 @@ aa
aa
aa
aa
-aa
ab
-dS
-dS
-dS
-dS
+ab
+ab
+ab
+ab
+je
my
-dR
+kv
nD
nW
-nW
+TO
oW
-dR
-qc
+ZM
+UA
qw
re
sa
@@ -31649,24 +31835,24 @@ ab
ab
ab
ab
-dS
-kV
-dP
-lZ
-dP
-ne
-ey
+ab
+ab
+ab
+je
+Yu
+Vp
+Ve
nX
nX
oX
-eJ
-qd
+Sc
+Tb
qx
rf
sb
sM
tI
-uH
+uI
vs
ae
aa
@@ -31790,25 +31976,25 @@ ab
ab
ab
ab
-dS
-dS
-an
-dP
-an
-dP
-nf
+ab
+ab
+ab
+ab
+je
+Uu
+jM
nE
-nY
-ou
-oY
-eJ
-qd
+Rq
+jM
+kv
+SP
+Wj
qy
rg
sc
sN
gc
-uI
+qc
vs
vs
vs
@@ -31932,19 +32118,19 @@ ab
ab
ab
ab
-dS
-kJ
-eL
-lu
-eL
-dP
-ng
+ab
+ab
+ab
+ab
+je
+VK
+jM
nF
eG
ov
oZ
fr
-qd
+qc
fJ
rh
wS
@@ -32074,25 +32260,25 @@ ao
ao
ao
ao
-dS
-kJ
-eL
-dQ
-ma
-dP
-nh
-ey
+ab
+ab
+ab
+ab
+je
+YV
+jM
+TD
eH
ow
Un
-pB
-qd
+cZ
+UA
qz
ri
sd
sP
tK
-uG
+qc
vt
vt
vt
@@ -32216,19 +32402,19 @@ ao
ao
ao
ao
-dS
-kJ
-kW
-lv
-mb
+ab
+ab
+ab
+ab
+je
ar
+jM
et
-et
-nZ
-fa
+jM
+jM
pa
-eJ
-qd
+Sz
+Tb
qA
rj
se
@@ -32358,19 +32544,19 @@ jR
ju
ju
ao
-dS
-kJ
-kX
-lw
-eo
-dP
-ni
+ab
+ab
+ab
+ab
+je
+kI
+Uy
nG
oa
ox
ff
pC
-qd
+Wj
qB
rk
sf
@@ -32501,15 +32687,15 @@ ju
ju
ko
ko
-eT
-eT
-eT
-ep
-ep
-ep
-ep
-ep
-ep
+ko
+ko
+ko
+ZY
+ZY
+ZY
+ZY
+ZY
+ZY
av
pD
qd
@@ -35475,7 +35661,7 @@ cv
cv
iC
bP
-cn
+lc
cX
jz
ik
@@ -35484,7 +35670,7 @@ cM
kq
cM
cM
-lc
+UC
lE
lE
mK
@@ -35606,7 +35792,7 @@ Rg
Rg
Rg
gg
-SW
+ab
ab
ab
aU
@@ -35748,7 +35934,7 @@ Rh
Ri
Rj
gg
-SW
+ab
ab
ab
aU
@@ -35759,15 +35945,15 @@ aT
in
bt
iR
-je
+YT
+cq
+cq
cq
-dq
-je
jV
-je
cq
-dq
-je
+cq
+cq
+dR
le
eX
aq
@@ -35890,7 +36076,7 @@ ae
aa
ed
gg
-SW
+ab
ab
ab
aU
@@ -35901,15 +36087,15 @@ hr
io
iE
iR
-cq
-jm
-dr
-dr
+YT
+ne
+eJ
+eJ
el
kh
-ks
+kh
du
-je
+YT
dO
lG
ml
@@ -36043,15 +36229,15 @@ aV
cb
iF
iR
-cs
+YT
jn
jB
-jM
+Th
jW
-jM
-kt
+ey
+eJ
kF
-je
+YT
lf
lH
mm
@@ -36185,15 +36371,15 @@ aW
aU
iG
iS
-je
+YT
jo
jC
jN
jX
da
-ku
+eJ
kG
-je
+YT
lg
lH
mn
@@ -36327,15 +36513,15 @@ aX
in
bu
iR
-cq
+YT
jp
-ds
-jO
+jC
+nY
cO
-eE
-kv
+da
+eJ
kH
-je
+YT
lh
lH
lH
@@ -36469,15 +36655,15 @@ aY
in
bu
iR
-cs
-cZ
+YT
+Uq
dt
ds
-ds
-ds
+YF
+Td
eY
-kI
-je
+TQ
+YT
li
lH
mm
@@ -36611,15 +36797,15 @@ Rl
aU
iH
iT
-je
-je
-je
-dN
+YT
+ni
+WX
+eJ
en
eF
-je
-je
-je
+Xe
+YH
+YT
eZ
lI
mn
@@ -36753,15 +36939,15 @@ aU
aU
iI
iU
-iU
-db
-je
-je
-je
-je
-je
-db
-af
+dS
+dP
+dP
+dP
+dP
+Ze
+dP
+dP
+dP
le
lJ
mo
@@ -36895,14 +37081,14 @@ bm
bz
bw
cl
-bm
-jq
-jq
-qU
-qU
-aI
+dS
+RT
+SX
+ST
+VJ
+UT
fb
-fq
+UV
fG
le
lK
@@ -36927,8 +37113,8 @@ tn
sp
yE
zy
-As
-Bz
+XT
+Rn
Cn
Dr
DZ
@@ -37037,15 +37223,15 @@ bm
bA
bW
bT
-df
-iq
-dw
-dw
-dw
-eI
-fc
-fc
-dw
+dS
+dP
+dP
+hx
+kW
+US
+Ub
+UV
+fG
af
af
af
@@ -37179,18 +37365,18 @@ bm
bB
by
cz
-cw
+dS
dd
-dx
-aI
-aI
-aI
-aI
-dA
-dw
+SX
+TX
+WB
+VB
+Uw
+UV
+fG
+af
fc
fc
-eI
fc
fc
dw
@@ -37320,20 +37506,20 @@ hQ
bm
bm
bm
-bm
-bm
-iq
-dy
-aI
-ab
-ab
-aI
-dA
-QX
-lj
+Wc
+af
+af
+af
+af
+af
+af
+UM
+UM
+UM
+af
lL
aI
-mR
+aI
QY
Ra
fc
@@ -37460,27 +37646,27 @@ gZ
ha
hw
hZ
-dA
-iq
+dw
+fc
dA
kM
-de
-dy
+jq
+jq
+qU
+qU
aI
-ab
-ab
+Vk
+RN
+ZT
aI
+XP
+Tc
+iV
aI
aI
aI
aI
aI
-mR
-QZ
-aI
-aI
-aI
-aI
aI
aI
aI
@@ -37605,20 +37791,19 @@ bc
pS
eW
pN
-iq
-iq
+ZP
+Tp
dy
-aI
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-iV
-mS
-iV
+dw
+dw
+eI
+nx
+nx
+nx
+nx
+nx
+nx
+Tc
iV
ab
ab
@@ -37627,6 +37812,7 @@ ab
ab
ab
ab
+ab
sq
tq
ul
@@ -37751,15 +37937,14 @@ aI
aI
dB
aI
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+aI
+aI
iV
-mT
+iV
+iV
+iV
+iV
+nx
nx
iV
ab
@@ -37769,6 +37954,7 @@ ab
ab
ab
ab
+ab
sq
tr
um
@@ -37899,7 +38085,6 @@ ab
ab
ab
ab
-ab
iV
es
mT
@@ -37911,6 +38096,7 @@ ab
ab
ab
ab
+ab
sq
fZ
um
@@ -38042,7 +38228,6 @@ ab
ab
iV
iV
-iV
mU
mT
iV
@@ -38053,6 +38238,7 @@ ab
ab
ab
ab
+ab
sq
ts
um
@@ -38182,7 +38368,6 @@ iV
iV
iV
iV
-iV
lM
mq
mV
@@ -38196,6 +38381,7 @@ iV
iV
iV
iV
+iV
sq
un
va
@@ -39323,8 +39509,8 @@ lQ
ms
mZ
fP
-gJ
-gJ
+ab
+ab
iV
px
pt
@@ -39465,8 +39651,8 @@ TL
VQ
na
fP
-hy
-hy
+ab
+ab
iV
py
pY
@@ -39607,8 +39793,8 @@ TP
VM
VM
fP
-hy
-eM
+ab
+ab
iV
iV
iV
@@ -39749,7 +39935,7 @@ lR
VM
VM
fP
-hy
+ab
gJ
gJ
gJ
@@ -39891,11 +40077,11 @@ fP
fP
fP
fP
-hy
-oq
-cy
-cy
-cy
+ab
+gJ
+aF
+eM
+hs
gJ
qr
rO
diff --git a/maps/tether/tether-09-solars.dmm b/maps/tether/tether-09-solars.dmm
index d541ff126b6..913fc4b1966 100644
--- a/maps/tether/tether-09-solars.dmm
+++ b/maps/tether/tether-09-solars.dmm
@@ -1149,7 +1149,6 @@
/area/rnd/outpost/eva)
"cB" = (
/obj/machinery/alarm{
- frequency = 1441;
pixel_y = 22
},
/obj/effect/floor_decal/steeldecal/steel_decals5,
@@ -1330,7 +1329,6 @@
/area/rnd/outpost/testing)
"cT" = (
/obj/machinery/alarm{
- frequency = 1441;
pixel_y = 22
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
@@ -1879,7 +1877,6 @@
icon_state = "2-4"
},
/obj/machinery/alarm{
- frequency = 1441;
pixel_y = 22
},
/turf/simulated/floor,
@@ -2388,7 +2385,6 @@
icon_state = "4-8"
},
/obj/machinery/alarm{
- frequency = 1441;
pixel_y = 22
},
/obj/effect/floor_decal/borderfloor{
@@ -3416,7 +3412,6 @@
/area/rnd/outpost/heating)
"gx" = (
/obj/machinery/alarm{
- frequency = 1441;
pixel_y = 22
},
/obj/effect/floor_decal/corner/purple{
@@ -3517,7 +3512,6 @@
/area/rnd/outpost)
"gD" = (
/obj/machinery/alarm{
- frequency = 1441;
pixel_y = 22
},
/obj/effect/floor_decal/borderfloor{
diff --git a/maps/tether/tether_defines.dm b/maps/tether/tether_defines.dm
index ca596b1ea07..43afd68fdc5 100644
--- a/maps/tether/tether_defines.dm
+++ b/maps/tether/tether_defines.dm
@@ -35,6 +35,11 @@
#define Z_LEVEL_MISC 11
#define Z_LEVEL_SHIPS 12
#define Z_LEVEL_UNDERDARK 13
+#define Z_LEVEL_ALIENSHIP 14
+#define Z_LEVEL_BEACH 15
+#define Z_LEVEL_BEACH_CAVE 16
+#define Z_LEVEL_AEROSTAT 17
+#define Z_LEVEL_AEROSTAT_SURFACE 18
/datum/map/tether
name = "Virgo"
diff --git a/maps/tether/tether_shuttles.dm b/maps/tether/tether_shuttles.dm
index 3ac68483b8a..00dc6442e71 100644
--- a/maps/tether/tether_shuttles.dm
+++ b/maps/tether/tether_shuttles.dm
@@ -174,7 +174,7 @@
name = "shuttle control console"
shuttle_tag = "Excursion Shuttle"
req_access = list()
- req_one_access = list(access_explorer,access_pilot)
+ req_one_access = list(access_pilot)
var/wait_time = 45 MINUTES
/obj/machinery/computer/shuttle_control/web/excursion/ui_interact()
@@ -190,7 +190,7 @@
current_area = /area/shuttle/excursion/tether
docking_controller_tag = "expshuttle_docker"
web_master_type = /datum/shuttle_web_master/excursion
- var/abduct_chance = 0.5 //Prob
+ var/abduct_chance = 0 //Prob
/datum/shuttle/web_shuttle/excursion/long_jump(var/area/departing, var/area/destination, var/area/interim, var/travel_time, var/direction)
if(prob(abduct_chance))
diff --git a/maps/tether/tether_things.dm b/maps/tether/tether_things.dm
index e8118043a2e..6702a8402d4 100644
--- a/maps/tether/tether_things.dm
+++ b/maps/tether/tether_things.dm
@@ -396,8 +396,6 @@ var/global/list/latejoin_tram = list()
..()
for(var/i = 1 to 3)
new /obj/item/weapon/gun/energy/frontier/locked(src)
- for(var/i = 1 to 4)
- new /obj/item/weapon/gun/energy/frontier/locked/holdout(src)
// Underdark mob spawners
/obj/tether_away_spawner/underdark_normal
diff --git a/maps/tether/tether_turfs.dm b/maps/tether/tether_turfs.dm
index b755980b95d..4ae161d40f7 100644
--- a/maps/tether/tether_turfs.dm
+++ b/maps/tether/tether_turfs.dm
@@ -164,7 +164,7 @@ VIRGO3B_TURF_CREATE(/turf/simulated/mineral/floor)
/turf/space/bluespace
name = "bluespace"
icon_state = "bluespace"
-/turf/space/bluespace/New()
+/turf/space/bluespace/initialize()
..()
icon_state = "bluespace"
@@ -173,7 +173,7 @@ VIRGO3B_TURF_CREATE(/turf/simulated/mineral/floor)
name = "sand transit"
icon = 'icons/turf/transit_vr.dmi'
icon_state = "desert_ns"
-/turf/space/sandyscroll/New()
+/turf/space/sandyscroll/initialize()
..()
icon_state = "desert_ns"
diff --git a/sound/items/washingmachine.ogg b/sound/items/washingmachine.ogg
new file mode 100644
index 00000000000..b4745c0e677
Binary files /dev/null and b/sound/items/washingmachine.ogg differ
diff --git a/sound/mecha/duranddefencemode.ogg b/sound/mecha/duranddefencemode.ogg
new file mode 100644
index 00000000000..5ae1ea60da5
Binary files /dev/null and b/sound/mecha/duranddefencemode.ogg differ
diff --git a/sound/mecha/gasconnected.ogg b/sound/mecha/gasconnected.ogg
new file mode 100644
index 00000000000..c1eb9f3d73f
Binary files /dev/null and b/sound/mecha/gasconnected.ogg differ
diff --git a/sound/mecha/gasdisconnected.ogg b/sound/mecha/gasdisconnected.ogg
new file mode 100644
index 00000000000..62fa87fdee7
Binary files /dev/null and b/sound/mecha/gasdisconnected.ogg differ
diff --git a/sound/mecha/heavylightswitch.ogg b/sound/mecha/heavylightswitch.ogg
new file mode 100644
index 00000000000..aa54dc3a29a
Binary files /dev/null and b/sound/mecha/heavylightswitch.ogg differ
diff --git a/sound/mecha/mech_reload_default.ogg b/sound/mecha/mech_reload_default.ogg
new file mode 100644
index 00000000000..74a07d285b9
Binary files /dev/null and b/sound/mecha/mech_reload_default.ogg differ
diff --git a/sound/mecha/mechanical_toggle.ogg b/sound/mecha/mechanical_toggle.ogg
new file mode 100644
index 00000000000..707ae24952d
Binary files /dev/null and b/sound/mecha/mechanical_toggle.ogg differ
diff --git a/vorestation.dme b/vorestation.dme
index 165f516fdef..671199425d8 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -267,6 +267,7 @@
#include "code\datums\autolathe\medical.dm"
#include "code\datums\autolathe\medical_vr.dm"
#include "code\datums\autolathe\tools.dm"
+#include "code\datums\autolathe\tools_vr.dm"
#include "code\datums\helper_datums\construction_datum.dm"
#include "code\datums\helper_datums\events.dm"
#include "code\datums\helper_datums\getrev.dm"
@@ -640,6 +641,7 @@
#include "code\game\jobs\_access_defs.dm"
#include "code\game\jobs\access.dm"
#include "code\game\jobs\access_datum.dm"
+#include "code\game\jobs\access_datum_vr.dm"
#include "code\game\jobs\job_controller.dm"
#include "code\game\jobs\jobs.dm"
#include "code\game\jobs\whitelist.dm"
@@ -998,7 +1000,9 @@
#include "code\game\objects\items\devices\radio\headset_vr.dm"
#include "code\game\objects\items\devices\radio\intercom.dm"
#include "code\game\objects\items\devices\radio\jammer.dm"
+#include "code\game\objects\items\devices\radio\jammer_vr.dm"
#include "code\game\objects\items\devices\radio\radio.dm"
+#include "code\game\objects\items\devices\radio\radio_vr.dm"
#include "code\game\objects\items\robot\robot_items.dm"
#include "code\game\objects\items\robot\robot_parts.dm"
#include "code\game\objects\items\robot\robot_upgrades.dm"
@@ -1153,6 +1157,7 @@
#include "code\game\objects\items\weapons\tanks\tank_types_vr.dm"
#include "code\game\objects\items\weapons\tanks\tanks.dm"
#include "code\game\objects\items\weapons\tools\crowbar.dm"
+#include "code\game\objects\items\weapons\tools\crowbar_vr.dm"
#include "code\game\objects\items\weapons\tools\screwdriver.dm"
#include "code\game\objects\items\weapons\tools\weldingtool.dm"
#include "code\game\objects\items\weapons\tools\wirecutters.dm"
@@ -1621,6 +1626,7 @@
#include "code\modules\clothing\suits\bio.dm"
#include "code\modules\clothing\suits\bio_vr.dm"
#include "code\modules\clothing\suits\hooded.dm"
+#include "code\modules\clothing\suits\hooded_vr.dm"
#include "code\modules\clothing\suits\jobs.dm"
#include "code\modules\clothing\suits\labcoat.dm"
#include "code\modules\clothing\suits\miscellaneous.dm"
@@ -1780,11 +1786,13 @@
#include "code\modules\food\food\drinks\bottle\robot.dm"
#include "code\modules\food\food\snacks\meat.dm"
#include "code\modules\food\glass\bottle.dm"
+#include "code\modules\food\glass\bottle_vr.dm"
#include "code\modules\food\glass\bottle\robot.dm"
#include "code\modules\food\kitchen\gibber.dm"
#include "code\modules\food\kitchen\icecream.dm"
#include "code\modules\food\kitchen\microwave.dm"
#include "code\modules\food\kitchen\smartfridge.dm"
+#include "code\modules\food\kitchen\smartfridge_vr.dm"
#include "code\modules\food\kitchen\cooking_machines\_cooker.dm"
#include "code\modules\food\kitchen\cooking_machines\_cooker_output.dm"
#include "code\modules\food\kitchen\cooking_machines\candy.dm"
@@ -2525,6 +2533,7 @@
#include "code\modules\projectiles\gun.dm"
#include "code\modules\projectiles\projectile.dm"
#include "code\modules\projectiles\ammunition\magazines.dm"
+#include "code\modules\projectiles\ammunition\magazines_vr.dm"
#include "code\modules\projectiles\ammunition\magnetic.dm"
#include "code\modules\projectiles\ammunition\rounds.dm"
#include "code\modules\projectiles\ammunition\smartmag.dm"
@@ -2644,6 +2653,7 @@
#include "code\modules\reagents\reagent_containers\spray.dm"
#include "code\modules\reagents\reagent_containers\spray_vr.dm"
#include "code\modules\reagents\reagent_containers\syringes.dm"
+#include "code\modules\reagents\reagent_containers\syringes_vr.dm"
#include "code\modules\recycling\conveyor2.dm"
#include "code\modules\recycling\disposal-construction.dm"
#include "code\modules\recycling\disposal.dm"
@@ -2967,7 +2977,6 @@
#include "maps\RandomZLevels\listeningpost.dm"
#include "maps\RandomZLevels\snowfield.dm"
#include "maps\RandomZLevels\zoo.dm"
-#include "maps\southern_cross\southern_cross_jobs.dm"
#include "maps\southern_cross\southern_cross_jobs_vr.dm"
#include "maps\southern_cross\items\encryptionkey_sc.dm"
#include "maps\southern_cross\items\encryptionkey_vr.dm"