diff --git a/code/__defines/species_languages_vr.dm b/code/__defines/species_languages_vr.dm
index 8c5c505f82..224478646d 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 fa755e6eeb..09911f4761 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 c852264bb7..c68ef116b6 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 0000000000..c89d768f0b
--- /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 642032d46f..95a921f817 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 fc1c96ce53..e1fe7e07f2 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 72ac72c232..28a17c3ab7 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 1bbbae7fb5..1f91d1222c 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 0000000000..872db2ae73
--- /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 d9623d06e8..0316f824c8 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 395b46e934..cd698067f5 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 fd1dbf529d..389901c273 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 4c447e91f3..fa808ea051 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 672b0a2c4e..480e613c27 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 7b9eb67691..ab46a48fbc 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 591351032b..978bbdeda8 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 3236600309..27bdf905a9 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 fec8c18e1d..825dfde5f5 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 263bd93d7e..8dcadc42b6 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 edb275a2fa..2605e7e0eb 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 e21fcbea8b..20558c965c 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 44d3c98c8c..b25d86897f 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 0000000000..a92005621a
--- /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 231693305f..9e03e7ff63 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 0000000000..d3681423f3
--- /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 d404b5cd44..260a01b04d 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 ebcc2d9f54..006c4884e1 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 83a586d2ba..0b227d9539 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 b6dde04e70..2dd06bc0bc 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 d3dcd936da..81833a29a1 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 0000000000..49cbfa63a9
--- /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 bdb8207cbd..01c0554170 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 718b7da615..0327e0c84a 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 86ea0381d0..c3d4adc34b 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 94094428c9..da9ad9021d 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 ff04b6a989..73cce9a17e 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 002d032a3d..719ba98a38 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 65bc2af8bd..4edfe9246f 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 0000000000..ef13979bdc
--- /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 064f5b37b8..25148b8813 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 b8acc3377e..13b6e2e88f 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 ddf3a70de1..f9aadda69d 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 30de8067dc..b8fbf2cab6 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 25af7b1394..51b61cd5b1 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 5ac1a7f6cd..b68606f914 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 7c610ab9a2..488167dc17 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 44488ae319..fd6a426447 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 1dc37ff8cc..46476a636a 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 6ecb93e295..d3a50f3755 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 f234244240..1857e59bcd 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 58cf208d0e..2a6c9878f1 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 20db108099..402c1928dd 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 44238cc16a..a415469215 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 360c805e04..934db0a1ed 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 332fabb19f..e453f4c595 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 37ed5a6bf0..a116a9cf0e 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 d534205f7e..bbf9c9f9d9 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 4497e8b6eb..e015c07b9e 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 3e6493d56d..10934e4b38 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 b18d14f7ef..4366395d38 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 f9bada661f..9332ae043c 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 f7d7dbbf8e..c837ea7b12 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 82e4b1e344..fb992e49ed 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 8a865faea7..7cdd2c3bfd 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 3835bbb144..3a0499b7b2 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 0000000000..56221e2dde
--- /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 406dbcae88..e87c91409d 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 8678d2c5dc..3e82aef282 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 e7e369cebf..7a76b12552 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 e4b7241bb0..ed16105939 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 cc9b649b75..94fbb9ce09 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 3670f60bea..9c0c80c28d 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 6d0f63e95c..301d0841be 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 7d09d1e245..36ecb8f470 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 f06cd1b741..b78a91146d 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 98fac950aa..cb0b64ba13 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 68a31f06c9..ba0e72238c 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 4658c2b0f5..17c734e240 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 cdd2bb770f..dbb99b910d 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 25ca2610f3..657ba95738 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 63be249006..f6bb1a3026 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 bc570697d6..a0c7d89196 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 173c00b637..b1b39e6f2d 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 b12ce223e8..f3d6c546ee 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 ea0820a908..6afda74a9c 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 0f51e4fd77..b457e98984 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 dd992a62bf..1a09a30f40 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 76f2a9b196..3db20fb9c1 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 2291f4c410..dd83a67c10 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 b500f027ef..3f8c53a7a9 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 f2b03e1686..84270df02e 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 6080967e2d..926773a672 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 0000000000..6fd7911131
--- /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 0000000000..72c7ac0b09
--- /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 0000000000..f28a41c04b
--- /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 4048e02bfe..84aec25ab3 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 fbea9c563e..cbf20402e6 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 75929194f9..a65de5defd 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 457dd0e5df..fe62645869 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 7700cc1d17..ce86dcadfd 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 4d3223b41e..1361b9e5fb 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 f19af52106..5424d46b78 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 0abfa5e0cb..300caaa9d8 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 b4173fb818..827e0d605f 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 24413995a7..7a91929aad 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 b2b6dfac12..0bfbfb04ee 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 d937299dc5..d2bebc171a 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 7a67ec72a2..12f309f9fe 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 49cc236089..38640c904d 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 d5099056b5..03ad5e3929 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 0357739b9c..4479212c1b 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 203119e9c3..0a1e2e4816 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 42d2cf426d..b290bfca7b 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 8454da40d7..76c5830021 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 e7bd78f8bf..95b293d9f4 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 0000000000..72316467dd
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 73e5e7f363..be9148ca02 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 aa2910fb65..97578011b4 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 6896bf1c6c..feb63e5894 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 54f26ccebe..94b12bdd2c 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 ec73fbc7c7..eca7eeb27d 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 c100fcf441..ac737845b5 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 a32b784c0d..159701decd 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 51b3c3670e..902a0658cc 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 df8aae6e98..12166d1478 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 600ace3885..251417dbba 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 7fc5b62889..82b2bd65cb 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 48b2f88d5b..07d98e8434 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 415b6de6b6..ea807840f4 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 8b85eea25e..66eba3541d 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 f06fb90420..b7e8721544 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 0000000000..4b7e36706f
--- /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 5c30fad0df..11e6c44b2d 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 b66caa5630..a41331fe2f 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 f90c5b5c3a..bd43f82dde 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 2f3d16e25a..b7c6a77749 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 a4f35926d3..f95e5e4bf8 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 f8d7b4cf9f..ac19de75b0 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 95bba7abe9..c2928919a6 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 d911465a74..f3de244601 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 d541ff126b..913fc4b196 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 ca596b1ea0..43afd68fdc 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 3ac68483b8..00dc6442e7 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 e8118043a2..6702a8402d 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 b755980b95..4ae161d40f 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 0000000000..b4745c0e67
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 0000000000..5ae1ea60da
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 0000000000..c1eb9f3d73
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 0000000000..62fa87fdee
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 0000000000..aa54dc3a29
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 0000000000..74a07d285b
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 0000000000..707ae24952
Binary files /dev/null and b/sound/mecha/mechanical_toggle.ogg differ
diff --git a/vorestation.dme b/vorestation.dme
index 165f516fde..671199425d 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"