diff --git a/code/__DEFINES/client_prefs.dm b/code/__DEFINES/client_prefs.dm
index b1e194354555..5337f64d9e46 100644
--- a/code/__DEFINES/client_prefs.dm
+++ b/code/__DEFINES/client_prefs.dm
@@ -1,6 +1,7 @@
#define BE_ALIEN_AFTER_DEATH (1<<0)
#define BE_AGENT (1<<1)
+//toggle_prefs bits from /datum/preferences
#define TOGGLE_IGNORE_SELF (1<<0) // Determines whether you will not hurt yourself when clicking yourself
#define TOGGLE_HELP_INTENT_SAFETY (1<<1) // Determines whether help intent will be completely harmless
#define TOGGLE_MIDDLE_MOUSE_CLICK (1<<2) // This toggles whether selected ability for xeno uses middle mouse clicking or shift clicking
@@ -13,7 +14,7 @@
// and put the empty magazine in your hand
#define TOGGLE_AUTOMATIC_PUNCTUATION (1<<7) // Whether your sentences will automatically be punctuated with a period
#define TOGGLE_COMBAT_CLICKDRAG_OVERRIDE (1<<8) // Whether disarm/harm intents cause clicks to trigger immediately when the mouse button is depressed.
-#define TOGGLE_ALTERNATING_DUAL_WIELD (1<<9) // Whether dual-wielding fires both guns at once or swaps between them.
+#define TOGGLE_ALTERNATING_DUAL_WIELD (1<<9) // Whether dual-wielding fires both guns at once or swaps between them, OUTDATED, used to update savefiles, now dual_wield_pref
#define TOGGLE_FULLSCREEN (1<<10) // See /client/proc/toggle_fullscreen in client_procs.dm
#define TOGGLE_MEMBER_PUBLIC (1<<11) //determines if you get a byond logo by your name in ooc if you're a member or not
#define TOGGLE_OOC_FLAG (1<<12) // determines if your country flag appears by your name in ooc chat
@@ -32,3 +33,11 @@
#define AGE_MIN 19 //youngest a character can be
#define AGE_MAX 90 //oldest a character can be //no. you are not allowed to be 160.
#define MAX_GEAR_COST 7 //Used in chargen for loadout limit.
+
+///dual_wield_pref from /datum/preferences
+///Fire both weapons when dual wielding
+#define DUAL_WIELD_FIRE 0
+///Swap to the other weapon when dual wielding
+#define DUAL_WIELD_SWAP 1
+///Do nothing when dual wielding
+#define DUAL_WIELD_NONE 2
diff --git a/code/__DEFINES/configuration.dm b/code/__DEFINES/configuration.dm
index d702d4097195..f0d64efb6dd7 100644
--- a/code/__DEFINES/configuration.dm
+++ b/code/__DEFINES/configuration.dm
@@ -8,3 +8,10 @@
//flags
#define CONFIG_ENTRY_LOCKED (1<<0) //can't edit
#define CONFIG_ENTRY_HIDDEN (1<<1) //can't see value
+
+#define ON_CONFIG_LOAD(type) \
+##type/New() { \
+ . = ..(); \
+ RegisterSignal(SSdcs, COMSIG_GLOB_CONFIG_LOADED, PROC_REF(__on_config_load)); \
+}; \
+##type/proc/__on_config_load()
diff --git a/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm b/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm
index 9eff6fa3ddc8..bab6064cfdbf 100644
--- a/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm
+++ b/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm
@@ -111,6 +111,12 @@
#define COMSIG_GHOST_MOVED "ghost_moved"
+/// When a mob is turned into a /mob/dead/observer at /mob/proc/ghostize()
+#define COMSIG_MOB_GHOSTIZE "mob_ghostize"
+
+/// When a mob gets a new mind via transfer at /datum/mind/proc/transfer_to()
+#define COMSIG_MOB_NEW_MIND "mob_new_mind"
+
#define COMSIG_MOB_MOUSEDOWN "mob_mousedown" //from /client/MouseDown(): (atom/object, turf/location, control, params)
#define COMSIG_MOB_MOUSEUP "mob_mouseup" //from /client/MouseUp(): (atom/object, turf/location, control, params)
#define COMSIG_MOB_MOUSEDRAG "mob_mousedrag" //from /client/MouseDrag(): (atom/src_object, atom/over_object, turf/src_location, turf/over_location, src_control, over_control, params)
diff --git a/code/__DEFINES/dcs/signals/signals_client.dm b/code/__DEFINES/dcs/signals/signals_client.dm
index 639721fae260..6733e0703514 100644
--- a/code/__DEFINES/dcs/signals/signals_client.dm
+++ b/code/__DEFINES/dcs/signals/signals_client.dm
@@ -21,3 +21,12 @@
/// Called after a client logs into a mob: (mob)
#define COMSIG_CLIENT_MOB_LOGIN "client_mob_changed"
+
+/// Called when something is added to a client's screen : /client/proc/add_to_screen(screen_add)
+#define COMSIG_CLIENT_SCREEN_ADD "client_screen_add"
+
+/// Called when something is removed from a client's screen : /client/proc/remove_from_screen(screen_remove)
+#define COMSIG_CLIENT_SCREEN_REMOVE "client_screen_remove"
+
+/// When a mind is transfered to another mob at /datum/mind/proc/transfer_to()
+#define COMSIG_CLIENT_MIND_TRANSFER "mind_transfer"
diff --git a/code/__DEFINES/dcs/signals/signals_global.dm b/code/__DEFINES/dcs/signals/signals_global.dm
index e33a75aee132..032a1891a808 100644
--- a/code/__DEFINES/dcs/signals/signals_global.dm
+++ b/code/__DEFINES/dcs/signals/signals_global.dm
@@ -25,6 +25,8 @@
/// called after a successful var edit somewhere in the world: (list/args)
#define COMSIG_GLOB_VAR_EDIT "!var_edit"
+#define COMSIG_GLOB_CONFIG_LOADED "!config_loaded"
+
///from /mob/living/carbon/xenomorph/initialize
#define COMSIG_GLOB_XENO_SPAWN "!xeno_spawn"
diff --git a/code/__DEFINES/emote_panels.dm b/code/__DEFINES/emote_panels.dm
index 59959818da74..8419f5513cf0 100644
--- a/code/__DEFINES/emote_panels.dm
+++ b/code/__DEFINES/emote_panels.dm
@@ -6,7 +6,8 @@
#define JOE_EMOTE_CATEGORY_WARNING "Warning"
#define JOE_EMOTE_CATEGORY_QUESTION "Question"
#define JOE_EMOTE_CATEGORY_NOTICE "Notice"
-
+#define JOE_EMOTE_CATEGORY_FIRE "Fire"
+#define JOE_EMOTE_CATEGORY_DAMAGE "Damage"
#define YAUTJA_EMOTE_CATEGORY_FAKESOUND "Fake Sound"
#define YAUTJA_EMOTE_CATEGORY_VOICE "Voice Synthesizer"
#define YAUTJA_EMOTE_CATEGORY_SPECIES "Yautja"
diff --git a/code/__DEFINES/equipment.dm b/code/__DEFINES/equipment.dm
index 210aee450406..5f8f27a65711 100644
--- a/code/__DEFINES/equipment.dm
+++ b/code/__DEFINES/equipment.dm
@@ -27,7 +27,7 @@
#define ITEM_UNCATCHABLE (1<<9)
/// Used for nonstandard marine clothing to ignore 'specialty' var.
#define NO_NAME_OVERRIDE (1<<10)
-/// Used for armors or uniforms that don't have a snow icon state.
+/// Used for armors or uniforms that don't have a snow/desert/etc icon state set via select_gamemode_skin (not all item types currently perform this test though).
#define NO_SNOW_TYPE (1<<11)
#define INVULNERABLE (1<<12)
@@ -551,3 +551,8 @@ var/global/list/uniform_categories = list(
#define PHONE_MARINE "Marine"
#define PHONE_UPP_SOLDIER "Soldier"
#define PHONE_IO "IO"
+
+#define PHONE_DND_FORCED 2
+#define PHONE_DND_ON 1
+#define PHONE_DND_OFF 0
+#define PHONE_DND_FORBIDDEN -1
diff --git a/code/__DEFINES/guns.dm b/code/__DEFINES/guns.dm
index b29f7c7439f2..2ea9d11ce43d 100644
--- a/code/__DEFINES/guns.dm
+++ b/code/__DEFINES/guns.dm
@@ -45,3 +45,15 @@
//autofire component fire callback return flags
#define AUTOFIRE_CONTINUE (1<<0)
#define AUTOFIRE_SUCCESS (1<<1)
+
+///Base CO special weapons options
+#define CO_GUNS list(CO_GUN_MATEBA, CO_GUN_MATEBA_SPECIAL, CO_GUN_DEAGLE)
+
+///Council CO special weapons options
+#define COUNCIL_CO_GUNS list(CO_GUN_MATEBA_COUNCIL, CO_GUN_DEAGLE_COUNCIL)
+
+#define CO_GUN_MATEBA "Mateba"
+#define CO_GUN_MATEBA_SPECIAL "Mateba Special"
+#define CO_GUN_DEAGLE "Desert Eagle"
+#define CO_GUN_MATEBA_COUNCIL "Colonel's Mateba"
+#define CO_GUN_DEAGLE_COUNCIL "Golden Desert Eagle"
diff --git a/code/__DEFINES/job.dm b/code/__DEFINES/job.dm
index 600f7d14b0aa..52263a5e1367 100644
--- a/code/__DEFINES/job.dm
+++ b/code/__DEFINES/job.dm
@@ -9,6 +9,7 @@
#define SQUAD_MARINE_4 "Delta"
#define SQUAD_MARINE_5 "Echo"
#define SQUAD_MARINE_CRYO "Foxtrot"
+#define SQUAD_MARINE_INTEL "Intel"
#define SQUAD_SOF "SOF"
// Job name defines
@@ -77,6 +78,8 @@ var/global/list/job_command_roles = JOB_COMMAND_ROLES_LIST
#define JOB_DROPSHIP_CREW_CHIEF "Dropship Crew Chief"
#define JOB_CREWMAN "Vehicle Crewman"
#define JOB_INTEL "Intelligence Officer"
+#define JOB_DROPSHIP_ROLES /datum/timelock/dropship
+#define JOB_DROPSHIP_ROLES_LIST list(JOB_DROPSHIP_CREW_CHIEF, JOB_PILOT)
#define JOB_AUXILIARY_ROLES /datum/timelock/auxiliary
#define JOB_AUXILIARY_ROLES_LIST list(JOB_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_CREWMAN, JOB_INTEL)
@@ -257,7 +260,11 @@ var/global/list/job_command_roles = JOB_COMMAND_ROLES_LIST
#define JOB_UPP_SRLT_OFFICER "UPP Senior Leytenant"
#define JOB_UPP_KPT_OFFICER "UPP Kapitan"
#define JOB_UPP_MAY_OFFICER "UPP Mayjor"
+#define JOB_UPP_LTKOL_OFFICER "UPP Leytenant Kolonel"
#define JOB_UPP_KOL_OFFICER "UPP Kolonel"
+#define JOB_UPP_MAY_GENERAL "UPP Mayjor General"
+#define JOB_UPP_LT_GENERAL "UPP Leytenant General"
+#define JOB_UPP_GENERAL "UPP Army General"
#define JOB_UPP_COMBAT_SYNTH "UPP Combat Synthetic"
diff --git a/code/__DEFINES/keybinding.dm b/code/__DEFINES/keybinding.dm
index 1878ca63f34e..88f194bb33df 100644
--- a/code/__DEFINES/keybinding.dm
+++ b/code/__DEFINES/keybinding.dm
@@ -43,12 +43,6 @@
#define COMSIG_KG_CLIENT_RADIO_DOWN "keybinding_client_radio_down"
//Human
-#define COMSIG_KB_HUMAN_QUICKEQUIP_DOWN "keybinding_human_quickequip_down"
-#define COMSIG_KB_HUMAN_SECONDARY_DOWN "keybinding_human_secondary_down"
-#define COMSIG_KB_HUMAN_TERTIARY_DOWN "keybinding_human_tertiary_down"
-#define COMSIG_KB_HUMAN_QUATERNARY_DOWN "keybinding_human_quaternary_down"
-#define COMSIG_KB_HUMAN_QUICK_EQUIP_DOWN "keybinding_human_quick_equip_down"
-
#define COMSIG_KB_HUMAN_ISSUE_ORDER "keybinding_human_issue_order"
#define COMSIG_KB_HUMAN_ISSUE_ORDER_MOVE "keybinding_human_issue_order_move"
#define COMSIG_KB_HUMAN_ISSUE_ORDER_HOLD "keybinding_human_issue_order_hold"
@@ -57,12 +51,31 @@
#define COMSIG_KB_HUMAN_SPECIALIST_ACTIVATION_ONE "keybinding_human_specialist_activation_one"
#define COMSIG_KB_HUMAN_SPECIALIST_ACTIVATION_TWO "keybinding_human_specialist_activation_two"
-#define COMSIG_KB_HUMAN_PICK_UP "keybinding_human_pick_up"
-
#define COMSIG_KB_HUMAN_ROTATE_CHAIR "keybinding_human_rotate_chair"
#define COMSIG_KB_HUMAN_SHOW_HELD_ITEM "keybinding_human_show_held_item"
+#define COMSIG_KB_HUMAN_CYCLE_HELMET_HUD "keybinding_human_cycle_helmet_hud"
+
+// Human Inventory Navigation
+#define COMSIG_KB_HUMAN_INTERACT_OTHER_HAND "keybinding_human_interact_other_hand"
+#define COMSIG_KB_HUMAN_INTERACT_SLOT_BACK "keybinding_human_interact_slot_back"
+#define COMSIG_KB_HUMAN_INTERACT_SLOT_BELT "keybinding_human_interact_slot_belt"
+#define COMSIG_KB_HUMAN_INTERACT_SLOT_UNIFORM "keybinding_human_interact_slot_uniform"
+#define COMSIG_KB_HUMAN_INTERACT_SLOT_SUIT "keybinding_human_interact_slot_suit"
+#define COMSIG_KB_HUMAN_INTERACT_SLOT_HELMET "keybinding_human_interact_slot_helmet"
+#define COMSIG_KB_HUMAN_INTERACT_SLOT_LEFT_POUCH "keybinding_human_interact_slot_left_pouch"
+#define COMSIG_KB_HUMAN_INTERACT_SLOT_RIGHT_POUCH "keybinding_human_interact_slot_right_pouch"
+#define COMSIG_KB_HUMAN_INTERACT_SUIT_S_STORE "keybinding_human_interact_slot_suit_storage"
+
+#define COMSIG_KB_HUMAN_INTERACT_QUICKEQUIP_DOWN "keybinding_human_interact_quickequip_down"
+#define COMSIG_KB_HUMAN_INTERACT_SECONDARY_DOWN "keybinding_human_interact_secondary_down"
+#define COMSIG_KB_HUMAN_INTERACT_TERTIARY_DOWN "keybinding_human_interact_tertiary_down"
+#define COMSIG_KB_HUMAN_INTERACT_QUATERNARY_DOWN "keybinding_human_interact_quaternary_down"
+#define COMSIG_KB_HUMAN_INTERACT_QUICK_EQUIP_DOWN "keybinding_human_interact_quick_equip_down"
+
+#define COMSIG_KB_HUMAN_INTERACT_PICK_UP "keybinding_human_interact_pick_up"
+
// Human Combat
#define COMSIG_KB_HUMAN_WEAPON_FIELDSTRIP "keybinding_human_weapon_fieldstrip"
#define COMSIG_KB_HUMAN_WEAPON_BURSTFIRE "keybinding_human_weapon_burstfire"
@@ -185,6 +198,7 @@
//misc yautja
#define COMSIG_KB_YAUTJA_TELE_LOC "keybinding_yautja_tele_loc"
+#define COMSIG_KB_YAUTJA_FOLD_COMBISTICK "keybinding_yautja_fold_combistick"
#define COMSIG_KB_OBSERVER_JOIN_XENO "keybinding_observer_join_as_xeno"
#define COMSIG_KB_OBSERVER_JOIN_ERT "keybinding_observer_join_ert"
@@ -198,6 +212,7 @@
#define CATEGORY_CARBON "CARBON"
#define CATEGORY_HUMAN "HUMAN"
#define CATEGORY_HUMAN_COMBAT "HUMAN COMBAT"
+#define CATEGORY_HUMAN_INVENTORY "HUMAN INVENTORY"
#define CATEGORY_ROBOT "ROBOT"
#define CATEGORY_YAUTJA "YAUTJA"
#define CATEGORY_MISC "MISC"
diff --git a/code/__DEFINES/minimap.dm b/code/__DEFINES/minimap.dm
index c9f21484f622..71d0ed8e7445 100644
--- a/code/__DEFINES/minimap.dm
+++ b/code/__DEFINES/minimap.dm
@@ -52,6 +52,7 @@ GLOBAL_LIST_INIT(all_minimap_flags, bitfield2list(MINIMAP_FLAG_ALL))
#define MINIMAP_SQUAD_ECHO "#00b043"
#define MINIMAP_SQUAD_FOXTROT "#fe7b2e"
#define MINIMAP_SQUAD_SOF "#400000"
+#define MINIMAP_SQUAD_INTEL "#053818"
#define MINIMAP_ICON_BACKGROUND_CIVILIAN "#7D4820"
#define MINIMAP_ICON_BACKGROUND_CIC "#3f3f3f"
diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm
index c0886ab871f9..1bd030313a43 100644
--- a/code/__DEFINES/mobs.dm
+++ b/code/__DEFINES/mobs.dm
@@ -310,6 +310,10 @@
// Queen strain flags
#define QUEEN_NORMAL "Normal"
+// Facehugger strain flags
+#define FACEHUGGER_NORMAL "Normal"
+#define FACEHUGGER_WATCHER "Watcher"
+
// Drone strain flags
#define DRONE_NORMAL "Normal"
#define DRONE_HEALER "Healer"
diff --git a/code/__DEFINES/mode.dm b/code/__DEFINES/mode.dm
index d13fd8169fca..854da7a52b4c 100644
--- a/code/__DEFINES/mode.dm
+++ b/code/__DEFINES/mode.dm
@@ -121,7 +121,7 @@ var/global/list/ROLES_ENGINEERING = list(JOB_CHIEF_ENGINEER, JOB_ORDNANCE_TECH,
var/global/list/ROLES_REQUISITION = list(JOB_CHIEF_REQUISITION, JOB_CARGO_TECH, JOB_WO_CHIEF_REQUISITION, JOB_WO_REQUISITION)
var/global/list/ROLES_MEDICAL = list(JOB_CMO, JOB_RESEARCHER, JOB_DOCTOR, JOB_NURSE, JOB_WO_CMO, JOB_WO_RESEARCHER, JOB_WO_DOCTOR)
var/global/list/ROLES_MARINES = list(JOB_SQUAD_LEADER, JOB_SQUAD_TEAM_LEADER, JOB_SQUAD_SPECIALIST, JOB_SQUAD_SMARTGUN, JOB_SQUAD_MEDIC, JOB_SQUAD_ENGI, JOB_SQUAD_MARINE)
-var/global/list/ROLES_SQUAD_ALL = list(SQUAD_MARINE_1, SQUAD_MARINE_2, SQUAD_MARINE_3, SQUAD_MARINE_4, SQUAD_MARINE_5, SQUAD_MARINE_CRYO)
+var/global/list/ROLES_SQUAD_ALL = list(SQUAD_MARINE_1, SQUAD_MARINE_2, SQUAD_MARINE_3, SQUAD_MARINE_4, SQUAD_MARINE_5, SQUAD_MARINE_CRYO, SQUAD_MARINE_INTEL)
//Groundside roles
var/global/list/ROLES_XENO = list(JOB_XENOMORPH_QUEEN, JOB_XENOMORPH)
@@ -240,7 +240,7 @@ var/global/list/whitelist_hierarchy = list(WHITELIST_NORMAL, WHITELIST_COUNCIL,
#define FACTION_MONKEY "Monkey" // Nanu
#define FACTION_LIST_MARINE list(FACTION_MARINE)
-#define FACTION_LIST_HUMANOID list(FACTION_MARINE, FACTION_PMC, FACTION_WY, FACTION_WY_DEATHSQUAD, FACTION_CLF, FACTION_CONTRACTOR, FACTION_UPP, FACTION_FREELANCER, FACTION_SURVIVOR, FACTION_NEUTRAL, FACTION_COLONIST, FACTION_MERCENARY, FACTION_DUTCH, FACTION_HEFA, FACTION_GLADIATOR, FACTION_PIRATE, FACTION_PIZZA, FACTION_SOUTO, FACTION_YAUTJA, FACTION_ZOMBIE)
+#define FACTION_LIST_HUMANOID list(FACTION_MARINE, FACTION_PMC, FACTION_WY, FACTION_WY_DEATHSQUAD, FACTION_CLF, FACTION_CONTRACTOR, FACTION_MARSHAL, FACTION_UPP, FACTION_FREELANCER, FACTION_SURVIVOR, FACTION_NEUTRAL, FACTION_COLONIST, FACTION_MERCENARY, FACTION_DUTCH, FACTION_HEFA, FACTION_GLADIATOR, FACTION_PIRATE, FACTION_PIZZA, FACTION_SOUTO, FACTION_YAUTJA, FACTION_ZOMBIE, FACTION_TWE)
#define FACTION_LIST_ERT list(FACTION_PMC, FACTION_WY_DEATHSQUAD, FACTION_CLF, FACTION_CONTRACTOR, FACTION_UPP, FACTION_FREELANCER, FACTION_MERCENARY, FACTION_DUTCH, FACTION_HEFA, FACTION_GLADIATOR, FACTION_PIRATE, FACTION_PIZZA, FACTION_SOUTO, FACTION_MARSHAL, FACTION_TWE)
#define FACTION_LIST_WY list(FACTION_PMC, FACTION_WY_DEATHSQUAD, FACTION_WY)
#define FACTION_LIST_MARINE_WY list(FACTION_MARINE, FACTION_PMC, FACTION_WY_DEATHSQUAD, FACTION_WY)
diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm
index 793e7b6b2f35..b40ae85c3f5f 100644
--- a/code/__DEFINES/traits.dm
+++ b/code/__DEFINES/traits.dm
@@ -102,6 +102,21 @@
}\
} while (0)
+/// Will 100% nuke a trait regardless of source. Preferably use this as little as possible
+#define REMOVE_TRAIT_ALLSOURCES(target, trait) \
+ do { \
+ var/list/_L = target.status_traits; \
+ if (_L?[trait]) { \
+ if (length(_L)) { \
+ _L -= trait; \
+ SEND_SIGNAL(target, SIGNAL_REMOVETRAIT(trait), trait); \
+ }; \
+ else { \
+ target.status_traits = null \
+ }; \
+ } \
+ } while (0)
+
#define HAS_TRAIT(target, trait) (target.status_traits ? (target.status_traits[trait] ? TRUE : FALSE) : FALSE)
#define HAS_TRAIT_FROM(target, trait, source) (target.status_traits ? (target.status_traits[trait] ? (source in target.status_traits[trait]) : FALSE) : FALSE)
#define HAS_TRAIT_FROM_ONLY(target, trait, source) (\
@@ -179,6 +194,8 @@
#define TRAIT_HARDCORE "t_hardcore"
/// If the mob is able to use the vulture rifle or spotting scope
#define TRAIT_VULTURE_USER "t_vulture_user"
+/// If the mob is cloaked in any form
+#define TRAIT_CLOAKED "t_cloaked"
// -- ability traits --
/// Xenos with this trait cannot have plasma transfered to them
@@ -200,6 +217,10 @@
#define TRAIT_TOOL_SIMPLE_BLOWTORCH "t_tool_simple_blowtorch"
#define TRAIT_TOOL_PEN "t_tool_pen"
+
+/// Can lockout blackmarket from ASRS console circuits.
+#define TRAIT_TOOL_TRADEBAND "t_tool_tradeband"
+
// CLOTHING TRAITS
#define TRAIT_CLOTHING_HOOD "t_clothing_hood"
@@ -278,6 +299,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_LISPING" = TRAIT_LISPING,
"TRAIT_CANNOT_EAT" = TRAIT_CANNOT_EAT,
"TRAIT_VULTURE_USER" = TRAIT_VULTURE_USER,
+ "TRAIT_CLOAKED" = TRAIT_CLOAKED,
),
/mob/living/carbon/xenomorph = list(
"TRAIT_ABILITY_NO_PLASMA_TRANSFER" = TRAIT_ABILITY_NO_PLASMA_TRANSFER,
diff --git a/code/__DEFINES/urls.dm b/code/__DEFINES/urls.dm
index 4d9268220f2b..137095327a2c 100644
--- a/code/__DEFINES/urls.dm
+++ b/code/__DEFINES/urls.dm
@@ -1,61 +1,7 @@
-// ------ CHANGE LOG ------ //
-#define URL_CHANGELOG "https://cm-ss13.com/changelog"
-
-// ------ ISSUE TRACKER ------ //
-#define URL_ISSUE_TRACKER "https://github.com/cmss13-devs/cmss13/issues"
-
// ------ MISC WIKI LINKS ------ //
-#define URL_WIKI_RULES "https://cm-ss13.com/wiki/Rules"
-#define URL_WIKI_LANDING "https://cm-ss13.com/wiki/Main_Page"
-#define URL_WIKI_COC "https://cm-ss13.com/wiki/Rank"
-#define URL_WIKI_LAW "https://cm-ss13.com/wiki/Marine_Law"
-#define URL_WIKI_XENO_QUICKSTART "https://cm-ss13.com/wiki/Xeno_Quickstart_Guide"
-#define URL_WIKI_MARINE_QUICKSTART "https://cm-ss13.com/wiki/Marine_Quickstart_Guide"
-#define URL_WIKI_MACROS "https://cm-ss13.com/wiki/Macros"
-#define URL_WIKI_SOP "https://cm-ss13.com/wiki/Standard_Operating_Procedure"
-#define URL_WIKI_CO_RULES "https://cm-ss13.com/wiki/CO_Council_Rulings"
-#define URL_WIKI_CONSTRUCTION "https://cm-ss13.com/wiki/Guide_to_construction"
-#define URL_WIKI_ENGINEERING "https://cm-ss13.com/wiki/Guide_to_Engineering"
-#define URL_WIKI_HACKING "https://cm-ss13.com/wiki/Guide_to_Engineering#Hacking"
-#define URL_WIKI_SURGERY "https://cm-ss13.com/wiki/Surgery"
-#define URL_WIKI_MEDICAL "https://cm-ss13.com/wiki/Guide_to_Medicine"
-
-// ------ SPAWN GUIDES------ //
-#define URL_WIKI_CO_GUIDE "https://cm-ss13.com/wiki/Commanding_Officer" // Command //
-#define URL_WIKI_XO_GUIDE "https://cm-ss13.com/wiki/Executive_Officer"
-#define URL_WIKI_SO_GUIDE "https://cm-ss13.com/wiki/Staff_Officer"
-#define URL_WIKI_SEA_GUIDE "https://cm-ss13.com/wiki/Senior_Enlisted_Advisor"
-#define URL_WIKI_SL_GUIDE "https://cm-ss13.com/wiki/Squad_Leader"
-#define URL_WIKI_TL_GUIDE "https://cm-ss13.com/wiki/Squad_Radio_Telephone_Operator" // Squad Roles //
-#define URL_WIKI_SPEC_GUIDE "https://cm-ss13.com/wiki/Squad_Specialist"
-#define URL_WIKI_SG_GUIDE "https://cm-ss13.com/wiki/Squad_Smartgunner"
-#define URL_WIKI_MEDIC_GUIDE "https://cm-ss13.com/wiki/Squad_Hospital_Corpsman"
-#define URL_WIKI_COMTECH_GUIDE "https://cm-ss13.com/wiki/Squad_Combat_Technician"
-#define URL_WIKI_CMP_GUIDE "https://cm-ss13.com/wiki/Chief_MP" // MP Roles //
-#define URL_WIKI_MW_GUIDE "https://cm-ss13.com/wiki/Warden"
-#define URL_WIKI_MP_GUIDE "https://cm-ss13.com/wiki/Military_Police"
-#define URL_WIKI_ASO_GUIDE "https://cm-ss13.com/wiki/Auxiliary_Support_Officer" // Auxiliary Support
-#define URL_WIKI_PO_GUIDE "https://cm-ss13.com/wiki/Pilot_Officer"
-#define URL_WIKI_DCC_GUIDE "https://cm-ss13.com/wiki/Dropship_Crew_Chief"
-#define URL_WIKI_IO_GUIDE "https://cm-ss13.com/wiki/Intelligence_Officer"
-#define URL_WIKI_SYN_GUIDE "https://cm-ss13.com/wiki/Synthetic"
-#define URL_WIKI_CE_GUIDE "https://cm-ss13.com/wiki/Chief_Engineer" // Engineering
-#define URL_WIKI_OT_GUIDE "https://cm-ss13.com/wiki/Ordnance_Technician"
-#define URL_WIKI_MT_GUIDE "https://cm-ss13.com/wiki/Maintenance_Technician"
-#define URL_WIKI_CMO_GUIDE "https://cm-ss13.com/wiki/Chief_Medical_Officer" // Medical //
-#define URL_WIKI_DOC_GUIDE "https://cm-ss13.com/wiki/Doctor"
-#define URL_WIKI_NURSE_GUIDE "https://cm-ss13.com/wiki/Nurse"
-#define URL_WIKI_RSR_GUIDE "https://cm-ss13.com/wiki/Researcher"
-#define URL_WIKI_RO_GUIDE "https://cm-ss13.com/wiki/Requisitions_Officer" // Supply //
-#define URL_WIKI_CT_GUIDE "https://cm-ss13.com/wiki/Cargo_Technician"
-#define URL_WIKI_MST_GUIDE "https://cm-ss13.com/wiki/Mess_Technician"
-#define URL_WIKI_CL_GUIDE "https://cm-ss13.com/wiki/Corporate_Liaison" // Misc //
-#define URL_WIKI_SURV_GUIDE "https://cm-ss13.com/wiki/Survivor"
-#define URL_WIKI_WJ_GUIDE "https://cm-ss13.com/wiki/Seegson_Working_Joe_Manual"
-
-// ------ FORUM LINKS ------ //
-#define URL_FORUM "https://forum.cm-ss13.com/"
-#define URL_FORUM_APPEALS "https://forum.cm-ss13.com/w/in-game-appeal"
-#define URL_FORUM_PLAYER_REPORT "https://forum.cm-ss13.com/w/player-report"
-#define URL_FORUM_STAFF_REPORT "https://forum.cm-ss13.com/w/staff-report"
-#define URL_QUEEN_GUIDE "https://cm-ss13.com/forums/showthread.php?8404-Ultimate-Queen-Guide-Rip-amp-amp-Tear-(Image-Heavy)"
+#define URL_WIKI_LAW "Marine_Law"
+#define URL_WIKI_XENO_QUICKSTART "Xeno_Quickstart_Guide"
+#define URL_WIKI_MARINE_QUICKSTART "Marine_Quickstart_Guide"
+#define URL_WIKI_MACROS "Macros"
+#define URL_WIKI_SOP "Standard_Operating_Procedure"
+#define URL_WIKI_CO_RULES "CO_Council_Rulings"
diff --git a/code/__DEFINES/xeno.dm b/code/__DEFINES/xeno.dm
index b178f0692dd6..a0a4c927d3d9 100644
--- a/code/__DEFINES/xeno.dm
+++ b/code/__DEFINES/xeno.dm
@@ -174,6 +174,10 @@
/// The time it takes for a pylon to give one larva while activated
#define XENO_PYLON_ACTIVATION_COOLDOWN (5 MINUTES)
+/// The time until you can re-corrupt a comms relay after the last pylon was destroyed
+#define XENO_PYLON_DESTRUCTION_DELAY (5 MINUTES)
+
+
/// The time against away_timer when an AFK xeno larva can be replaced
#define XENO_LEAVE_TIMER_LARVA 80 //80 seconds
/// The time against away_timer when an AFK xeno (not larva) can be replaced
diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm
index 66ecf9ea034f..37c623bc3215 100644
--- a/code/__HELPERS/game.dm
+++ b/code/__HELPERS/game.dm
@@ -294,6 +294,8 @@
if(sorted && length(candidates))
candidates = sort_list(candidates, GLOBAL_PROC_REF(cmp_obs_larvaqueuetime_asc))
+ GLOB.xeno_queue_candidate_count = length(candidates)
+
return candidates
/**
@@ -309,11 +311,11 @@
var/mob/dead/observer/cur_obs = candidates[i]
// Generate the messages
- var/cached_message = SPAN_XENONOTICE("You are currently [i-dequeued]\th in the larva queue.")
+ var/cached_message = "You are currently [i-dequeued]\th in the larva queue."
cur_obs.larva_queue_cached_message = cached_message
if(!cache_only)
var/chat_message = dequeued ? replacetext(cached_message, "currently", "now") : cached_message
- to_chat(candidates[i], chat_message)
+ to_chat(candidates[i], SPAN_XENONOTICE(chat_message))
/proc/convert_k2c(temp)
return ((temp - T0C))
diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm
index 99f621919771..60d2681a1d1a 100644
--- a/code/__HELPERS/icons.dm
+++ b/code/__HELPERS/icons.dm
@@ -329,7 +329,8 @@ world
/// appearance system (overlays/underlays, etc.) is not available.
///
/// Only the first argument is required.
-/proc/getFlatIcon(image/appearance, defdir, deficon, defstate, defblend, start = TRUE, no_anim = FALSE)
+/// appearance_flags indicates whether appearance_flags should be respected (at the cost of about 10-20% perf)
+/proc/getFlatIcon(image/appearance, defdir, deficon, defstate, defblend, start = TRUE, no_anim = FALSE, appearance_flags = FALSE)
// Loop through the underlays, then overlays, sorting them into the layers list
#define PROCESS_OVERLAYS_OR_UNDERLAYS(flat, process, base_layer) \
for (var/i in 1 to process.len) { \
@@ -435,11 +436,21 @@ world
if(layer_image.alpha == 0)
continue
+ // variables only relevant when accounting for appearance_flags:
+ var/apply_color = TRUE
+ var/apply_alpha = TRUE
+
if(layer_image == copy) // 'layer_image' is an /image based on the object being flattened.
curblend = BLEND_OVERLAY
add = icon(layer_image.icon, layer_image.icon_state, base_icon_dir)
else // 'I' is an appearance object.
- add = getFlatIcon(image(layer_image), curdir, curicon, curstate, curblend, FALSE, no_anim)
+ var/image/layer_as_image = image(layer_image)
+ if(appearance_flags)
+ if(layer_as_image.appearance_flags & RESET_COLOR)
+ apply_color = FALSE
+ if(layer_as_image.appearance_flags & RESET_ALPHA)
+ apply_alpha = FALSE
+ add = getFlatIcon(layer_as_image, curdir, curicon, curstate, curblend, FALSE, no_anim, appearance_flags)
if(!add)
continue
@@ -451,9 +462,9 @@ world
if (
addX1 != flatX1 \
- && addX2 != flatX2 \
- && addY1 != flatY1 \
- && addY2 != flatY2 \
+ || addX2 != flatX2 \
+ || addY1 != flatY1 \
+ || addY2 != flatY2 \
)
// Resize the flattened icon so the new icon fits
flat.Crop(
@@ -464,21 +475,34 @@ world
)
flatX1 = addX1
- flatX2 = addY1
- flatY1 = addX2
+ flatX2 = addX2
+ flatY1 = addY1
flatY2 = addY2
+ if(appearance_flags)
+ // apply parent's color/alpha to the added layers if the layer didn't opt
+ if(apply_color && appearance.color)
+ if(islist(appearance.color))
+ add.MapColors(arglist(appearance.color))
+ else
+ add.Blend(appearance.color, ICON_MULTIPLY)
+
+ if(apply_alpha && appearance.alpha < 255)
+ add.Blend(rgb(255, 255, 255, appearance.alpha), ICON_MULTIPLY)
+
// Blend the overlay into the flattened icon
flat.Blend(add, blendMode2iconMode(curblend), layer_image.pixel_x + 2 - flatX1, layer_image.pixel_y + 2 - flatY1)
- if(appearance.color)
- if(islist(appearance.color))
- flat.MapColors(arglist(appearance.color))
- else
- flat.Blend(appearance.color, ICON_MULTIPLY)
+ if(!appearance_flags)
+ // If we didn't apply parent colors individually per layer respecting appearance_flags, then do it just the one time now
+ if(appearance.color)
+ if(islist(appearance.color))
+ flat.MapColors(arglist(appearance.color))
+ else
+ flat.Blend(appearance.color, ICON_MULTIPLY)
- if(appearance.alpha < 255)
- flat.Blend(rgb(255, 255, 255, appearance.alpha), ICON_MULTIPLY)
+ if(appearance.alpha < 255)
+ flat.Blend(rgb(255, 255, 255, appearance.alpha), ICON_MULTIPLY)
if(no_anim)
//Clean up repeated frames
diff --git a/code/_globalvars/misc.dm b/code/_globalvars/misc.dm
index 6c689e995504..646b8ec2c854 100644
--- a/code/_globalvars/misc.dm
+++ b/code/_globalvars/misc.dm
@@ -27,3 +27,6 @@ GLOBAL_VAR_INIT(time_offset, setup_offset())
/// Sets the offset 2 lines above.
/proc/setup_offset()
return rand(10 MINUTES, 24 HOURS)
+
+/// The last count of possible candidates in the xeno larva queue (updated via get_alien_candidates)
+GLOBAL_VAR(xeno_queue_candidate_count)
diff --git a/code/_onclick/adjacent.dm b/code/_onclick/adjacent.dm
index dd7a528bb8a6..6504db0d9f0c 100644
--- a/code/_onclick/adjacent.dm
+++ b/code/_onclick/adjacent.dm
@@ -94,6 +94,11 @@ Quick adjacency (to turf):
/obj/item/Adjacent(atom/neighbor, recurse = 1)
if(neighbor == loc || (loc && neighbor == loc.loc))
return TRUE
+
+ // Internal storages have special relationships with the object they are connected to and we still want two depth adjacency for storages
+ if(istype(loc?.loc, /obj/item/storage/internal) && recurse > 0)
+ return loc.loc.Adjacent(neighbor, recurse)
+
if(issurface(loc))
return loc.Adjacent(neighbor, recurse) //Surfaces don't count as storage depth.
else if(istype(loc, /obj/item))
diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index 86390718b6ca..3b8ba26c07e9 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -357,7 +357,7 @@
/client/proc/create_clickcatcher()
if(!void)
void = new()
- screen += void
+ add_to_screen(void)
/client/proc/apply_clickcatcher()
create_clickcatcher()
diff --git a/code/_onclick/hud/alien.dm b/code/_onclick/hud/alien.dm
index a53e82730732..d1421cb7295d 100644
--- a/code/_onclick/hud/alien.dm
+++ b/code/_onclick/hud/alien.dm
@@ -64,10 +64,10 @@
var/mob/living/carbon/xenomorph/H = mymob
if(hud_version != HUD_STYLE_NOHUD)
if(H.r_hand)
- H.client.screen += H.r_hand
+ H.client.add_to_screen(H.r_hand)
H.r_hand.screen_loc = ui_alien_datum.hud_slot_offset(H.r_hand, ui_alien_datum.ui_rhand)
if(H.l_hand)
- H.client.screen += H.l_hand
+ H.client.add_to_screen(H.l_hand)
H.l_hand.screen_loc = ui_alien_datum.hud_slot_offset(H.l_hand, ui_alien_datum.ui_lhand)
else
if(H.r_hand)
diff --git a/code/_onclick/hud/fullscreen.dm b/code/_onclick/hud/fullscreen.dm
index fec62c35317f..0bd2206091ba 100644
--- a/code/_onclick/hud/fullscreen.dm
+++ b/code/_onclick/hud/fullscreen.dm
@@ -17,7 +17,7 @@
screen.severity = severity
if (client && screen.should_show_to(src))
screen.update_for_view(client.view)
- client.screen += screen
+ client.add_to_screen(screen)
return screen
@@ -33,12 +33,12 @@
addtimer(CALLBACK(src, PROC_REF(clear_fullscreen_after_animate), screen), animated, TIMER_CLIENT_TIME)
else
if(client)
- client.screen -= screen
+ client.remove_from_screen(screen)
qdel(screen)
/mob/proc/clear_fullscreen_after_animate(atom/movable/screen/fullscreen/screen)
if(client)
- client.screen -= screen
+ client.remove_from_screen(screen)
qdel(screen)
/mob/proc/clear_fullscreens()
@@ -48,7 +48,7 @@
/mob/proc/hide_fullscreens()
if(client)
for(var/category in fullscreens)
- client.screen -= fullscreens[category]
+ client.remove_from_screen(fullscreens[category])
/mob/proc/reload_fullscreens()
if(client)
@@ -57,9 +57,9 @@
screen = fullscreens[category]
if(screen.should_show_to(src))
screen.update_for_view(client.view)
- client.screen |= screen
+ client.add_to_screen(screen)
else
- client.screen -= screen
+ client.remove_from_screen(screen)
/atom/movable/screen/fullscreen
diff --git a/code/_onclick/hud/ghost.dm b/code/_onclick/hud/ghost.dm
index 8a3f7d9d6a31..a6754747a019 100644
--- a/code/_onclick/hud/ghost.dm
+++ b/code/_onclick/hud/ghost.dm
@@ -72,7 +72,7 @@
/datum/hud/ghost/show_hud(version = 0, mob/viewmob)
// don't show this HUD if observing; show the HUD of the observee
var/mob/dead/observer/O = mymob
- if (istype(O) && O.observetarget)
+ if (istype(O) && O.observe_target_mob)
plane_masters_update()
return FALSE
@@ -82,6 +82,6 @@
var/mob/screenmob = viewmob || mymob
if(!hud_shown)
- screenmob.client.screen -= static_inventory
+ screenmob.client.remove_from_screen(static_inventory)
else
- screenmob.client.screen += static_inventory
+ screenmob.client.add_to_screen(static_inventory)
diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm
index 392f3ae9a060..215e228fdd9d 100644
--- a/code/_onclick/hud/hud.dm
+++ b/code/_onclick/hud/hud.dm
@@ -189,43 +189,43 @@
if(HUD_STYLE_STANDARD) //Default HUD
hud_shown = 1 //Governs behavior of other procs
if(static_inventory.len)
- screenmob.client.screen += static_inventory
+ screenmob.client.add_to_screen(static_inventory)
if(toggleable_inventory.len && inventory_shown)
- screenmob.client.screen += toggleable_inventory
+ screenmob.client.add_to_screen(toggleable_inventory)
if(hotkeybuttons.len && !hotkey_ui_hidden)
- screenmob.client.screen += hotkeybuttons
+ screenmob.client.add_to_screen(hotkeybuttons)
if(infodisplay.len)
- screenmob.client.screen += infodisplay
+ screenmob.client.add_to_screen(infodisplay)
if(HUD_STYLE_REDUCED) //Reduced HUD
hud_shown = 0 //Governs behavior of other procs
if(static_inventory.len)
- screenmob.client.screen -= static_inventory
+ screenmob.client.remove_from_screen(static_inventory)
if(toggleable_inventory.len)
- screenmob.client.screen -= toggleable_inventory
+ screenmob.client.remove_from_screen(toggleable_inventory)
if(hotkeybuttons.len)
- screenmob.client.screen -= hotkeybuttons
+ screenmob.client.remove_from_screen(hotkeybuttons)
if(infodisplay.len)
- screenmob.client.screen += infodisplay
+ screenmob.client.add_to_screen(infodisplay)
//These ones are a part of 'static_inventory', 'toggleable_inventory' or 'hotkeybuttons' but we want them to stay
if(l_hand_hud_object)
- screenmob.client.screen += l_hand_hud_object //we want the hands to be visible
+ screenmob.client.add_to_screen(l_hand_hud_object) //we want the hands to be visible
if(r_hand_hud_object)
- screenmob.client.screen += r_hand_hud_object //we want the hands to be visible
+ screenmob.client.add_to_screen(r_hand_hud_object) //we want the hands to be visible
if(action_intent)
- screenmob.client.screen += action_intent //we want the intent switcher visible
+ screenmob.client.add_to_screen(action_intent) //we want the intent switcher visible
if(HUD_STYLE_NOHUD) //No HUD
hud_shown = 0 //Governs behavior of other procs
if(static_inventory.len)
- screenmob.client.screen -= static_inventory
+ screenmob.client.remove_from_screen(static_inventory)
if(toggleable_inventory.len)
- screenmob.client.screen -= toggleable_inventory
+ screenmob.client.remove_from_screen(toggleable_inventory)
if(hotkeybuttons.len)
- screenmob.client.screen -= hotkeybuttons
+ screenmob.client.remove_from_screen(hotkeybuttons)
if(infodisplay.len)
- screenmob.client.screen -= infodisplay
+ screenmob.client.remove_from_screen(infodisplay)
hud_version = display_hud_version
persistent_inventory_update(screenmob)
@@ -247,7 +247,7 @@
for(var/thing in plane_masters)
var/atom/movable/screen/plane_master/PM = plane_masters[thing]
PM.backdrop(mymob)
- mymob.client.screen += PM
+ mymob.client.add_to_screen(PM)
/datum/hud/human/show_hud(version = 0, mob/viewmob)
. = ..()
@@ -412,7 +412,7 @@
if(!hud_shown)
for(var/category in alerts)
var/atom/movable/screen/alert/alert = alerts[category]
- screenmob.client.screen -= alert
+ screenmob.client.remove_from_screen(alert)
return TRUE
var/c = 0
for(var/category in alerts)
@@ -432,8 +432,18 @@
else
. = ""
alert.screen_loc = .
- screenmob.client.screen |= alert
+ screenmob.client.add_to_screen(alert)
if(!viewmob)
for(var/obs in mymob.observers)
reorganize_alerts(obs)
return TRUE
+
+/// Wrapper for adding anything to a client's screen
+/client/proc/add_to_screen(screen_add)
+ screen += screen_add
+ SEND_SIGNAL(src, COMSIG_CLIENT_SCREEN_ADD, screen_add)
+
+/// Wrapper for removing anything from a client's screen
+/client/proc/remove_from_screen(screen_remove)
+ screen -= screen_remove
+ SEND_SIGNAL(src, COMSIG_CLIENT_SCREEN_REMOVE, screen_remove)
diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm
index 6cf43dc343b7..d514bdedfcdf 100644
--- a/code/_onclick/hud/human.dm
+++ b/code/_onclick/hud/human.dm
@@ -105,10 +105,10 @@
set desc = "This disables or enables the user interface buttons which can be used with hotkeys."
if(hud_used.hotkey_ui_hidden)
- client.screen += hud_used.hotkeybuttons
+ client.add_to_screen(hud_used.hotkeybuttons)
hud_used.hotkey_ui_hidden = 0
else
- client.screen -= hud_used.hotkeybuttons
+ client.remove_from_screen(hud_used.hotkeybuttons)
hud_used.hotkey_ui_hidden = TRUE
/datum/hud/human/hidden_inventory_update(mob/viewer)
@@ -120,53 +120,57 @@
inventory_shown = FALSE
return //species without inv slots don't show items.
- if(screenmob.hud_used.inventory_shown && screenmob.hud_used.hud_shown)
+ if(H.hud_used.inventory_shown && H.hud_used.hud_shown)
if(H.shoes)
H.shoes.screen_loc = ui_datum.ui_shoes
- screenmob.client.screen += H.shoes
+ screenmob.client.add_to_screen(H.shoes)
if(H.gloves)
H.gloves.screen_loc = ui_datum.ui_gloves
- screenmob.client.screen += H.gloves
+ screenmob.client.add_to_screen(H.gloves)
if(H.wear_l_ear)
H.wear_l_ear.screen_loc = ui_datum.ui_wear_l_ear
- screenmob.client.screen += H.wear_l_ear
+ screenmob.client.add_to_screen(H.wear_l_ear)
if(H.wear_r_ear)
H.wear_r_ear.screen_loc = ui_datum.ui_wear_r_ear
- screenmob.client.screen += H.wear_r_ear
+ screenmob.client.add_to_screen(H.wear_r_ear)
if(H.glasses)
H.glasses.screen_loc = ui_datum.ui_glasses
- screenmob.client.screen += H.glasses
+ screenmob.client.add_to_screen(H.glasses)
if(H.w_uniform)
H.w_uniform.screen_loc = ui_datum.ui_iclothing
- screenmob.client.screen += H.w_uniform
+ screenmob.client.add_to_screen(H.w_uniform)
if(H.wear_suit)
H.wear_suit.screen_loc = ui_datum.ui_oclothing
- screenmob.client.screen += H.wear_suit
+ screenmob.client.add_to_screen(H.wear_suit)
if(H.wear_mask)
H.wear_mask.screen_loc = ui_datum.ui_mask
- screenmob.client.screen += H.wear_mask
+ screenmob.client.add_to_screen(H.wear_mask)
if(H.head)
H.head.screen_loc = ui_datum.ui_head
- screenmob.client.screen += H.head
+ screenmob.client.add_to_screen(H.head)
else
if(H.shoes)
- screenmob.client.screen -= H.shoes
+ screenmob.client.remove_from_screen(H.shoes)
if(H.gloves)
- screenmob.client.screen -= H.gloves
+ screenmob.client.remove_from_screen(H.gloves)
if(H.wear_r_ear)
- screenmob.client.screen -= H.wear_r_ear
+ screenmob.client.remove_from_screen(H.wear_r_ear)
if(H.wear_l_ear)
- screenmob.client.screen -= H.wear_l_ear
+ screenmob.client.remove_from_screen(H.wear_l_ear)
if(H.glasses)
- screenmob.client.screen -= H.glasses
+ screenmob.client.remove_from_screen(H.glasses)
if(H.w_uniform)
- screenmob.client.screen -= H.w_uniform
+ screenmob.client.remove_from_screen(H.w_uniform)
if(H.wear_suit)
- screenmob.client.screen -= H.wear_suit
+ screenmob.client.remove_from_screen(H.wear_suit)
if(H.wear_mask)
- screenmob.client.screen -= H.wear_mask
+ screenmob.client.remove_from_screen(H.wear_mask)
if(H.head)
- screenmob.client.screen -= H.head
+ screenmob.client.remove_from_screen(H.head)
+
+ if(screenmob == mymob)
+ for(var/M in mymob.observers)
+ hidden_inventory_update(M)
/datum/hud/human/persistent_inventory_update(mob/viewer)
if(!mymob)
@@ -177,53 +181,57 @@
var/mob/living/carbon/human/H = mymob
var/mob/screenmob = viewer || H
- if(screenmob.hud_used)
- if(screenmob.hud_used.hud_shown)
+ if(H.hud_used)
+ if(H.hud_used.hud_shown)
if(H.s_store)
H.s_store.screen_loc = ui_datum.hud_slot_offset(H.s_store, ui_datum.ui_sstore1)
- screenmob.client.screen += H.s_store
+ screenmob.client.add_to_screen(H.s_store)
if(H.wear_id)
H.wear_id.screen_loc = ui_datum.hud_slot_offset(H.wear_id, ui_datum.ui_id)
- screenmob.client.screen += H.wear_id
+ screenmob.client.add_to_screen(H.wear_id)
if(H.belt)
H.belt.screen_loc = ui_datum.hud_slot_offset(H.belt, ui_datum.ui_belt)
- screenmob.client.screen += H.belt
+ screenmob.client.add_to_screen(H.belt)
if(H.back)
H.back.screen_loc = ui_datum.hud_slot_offset(H.back, ui_datum.ui_back)
- screenmob.client.screen += H.back
+ screenmob.client.add_to_screen(H.back)
if(H.l_store)
H.l_store.screen_loc = ui_datum.hud_slot_offset(H.l_store, ui_datum.ui_storage1)
- screenmob.client.screen += H.l_store
+ screenmob.client.add_to_screen(H.l_store)
if(H.r_store)
H.r_store.screen_loc = ui_datum.hud_slot_offset(H.r_store, ui_datum.ui_storage2)
- screenmob.client.screen += H.r_store
+ screenmob.client.add_to_screen(H.r_store)
else
if(H.s_store)
- screenmob.client.screen -= H.s_store
+ screenmob.client.remove_from_screen(H.s_store)
if(H.wear_id)
- screenmob.client.screen -= H.wear_id
+ screenmob.client.remove_from_screen(H.wear_id)
if(H.belt)
- screenmob.client.screen -= H.belt
+ screenmob.client.remove_from_screen(H.belt)
if(H.back)
- screenmob.client.screen -= H.back
+ screenmob.client.remove_from_screen(H.back)
if(H.l_store)
- screenmob.client.screen -= H.l_store
+ screenmob.client.remove_from_screen(H.l_store)
if(H.r_store)
- screenmob.client.screen -= H.r_store
+ screenmob.client.remove_from_screen(H.r_store)
if(hud_version != HUD_STYLE_NOHUD)
if(H.r_hand)
H.r_hand.screen_loc = ui_datum.hud_slot_offset(H.r_hand, ui_datum.ui_rhand)
- H.client.screen += H.r_hand
+ screenmob.client.add_to_screen(H.r_hand)
if(H.l_hand)
H.l_hand.screen_loc = ui_datum.hud_slot_offset(H.l_hand, ui_datum.ui_lhand)
- H.client.screen += H.l_hand
+ screenmob.client.add_to_screen(H.l_hand)
else
if(H.r_hand)
H.r_hand.screen_loc = null
if(H.l_hand)
H.l_hand.screen_loc = null
+ if(screenmob == mymob)
+ for(var/M in mymob.observers)
+ persistent_inventory_update(M)
+
/datum/hud/human/proc/draw_inventory_slots(gear, datum/custom_hud/ui_datum, ui_alpha, ui_color)
for(var/gear_slot in gear)
var/atom/movable/screen/inventory/inv_box = new /atom/movable/screen/inventory()
diff --git a/code/_onclick/hud/map_popups.dm b/code/_onclick/hud/map_popups.dm
index b5ee41e6d54c..aed6b46a7905 100644
--- a/code/_onclick/hud/map_popups.dm
+++ b/code/_onclick/hud/map_popups.dm
@@ -108,7 +108,7 @@
if(!screen_map.Find(screen_obj))
screen_map += screen_obj
if(!screen.Find(screen_obj))
- screen += screen_obj
+ add_to_screen(screen_obj)
/**
* Clears the map of registered screen objects.
diff --git a/code/_onclick/hud/rendering/render_plate.dm b/code/_onclick/hud/rendering/render_plate.dm
index a64284ca13a9..18236c6ee759 100644
--- a/code/_onclick/hud/rendering/render_plate.dm
+++ b/code/_onclick/hud/rendering/render_plate.dm
@@ -74,6 +74,6 @@
relay.blend_mode = blend_mode
relay.mouse_opacity = mouse_opacity
relay.name = render_target
- mymob.client.screen += relay
+ mymob.client.add_to_screen(relay)
if(blend_mode != BLEND_MULTIPLY)
blend_mode = BLEND_DEFAULT
diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm
index 565a23d1bbeb..af961f82bab2 100644
--- a/code/_onclick/hud/robot.dm
+++ b/code/_onclick/hud/robot.dm
@@ -134,13 +134,13 @@
if(hud_shown)
if(R.module_state_1)
R.module_state_1.screen_loc = ui_robot_datum.ui_inv1
- R.client.screen += R.module_state_1
+ R.client.add_to_screen(R.module_state_1)
if(R.module_state_2)
R.module_state_2.screen_loc = ui_robot_datum.ui_inv2
- R.client.screen += R.module_state_2
+ R.client.add_to_screen(R.module_state_2)
if(R.module_state_3)
R.module_state_3.screen_loc = ui_robot_datum.ui_inv3
- R.client.screen += R.module_state_3
+ R.client.add_to_screen(R.module_state_3)
else
if(R.module_state_1)
R.module_state_1.screen_loc = null
diff --git a/code/_onclick/hud/screen_object_holder.dm b/code/_onclick/hud/screen_object_holder.dm
index ba6a9b961721..91b4e593c7d6 100644
--- a/code/_onclick/hud/screen_object_holder.dm
+++ b/code/_onclick/hud/screen_object_holder.dm
@@ -24,14 +24,14 @@
ASSERT(istype(screen_object))
screen_objects += screen_object
- client?.screen += screen_object
+ client?.add_to_screen(screen_object)
/// Gives the screen object to the client, but does not qdel it when it's cleared
/datum/screen_object_holder/proc/give_protected_screen_object(atom/screen_object)
ASSERT(istype(screen_object))
protected_screen_objects += screen_object
- client?.screen += screen_object
+ client?.add_to_screen(screen_object)
/datum/screen_object_holder/proc/remove_screen_object(atom/screen_object)
ASSERT(istype(screen_object))
@@ -39,11 +39,11 @@
screen_objects -= screen_object
protected_screen_objects -= screen_object
- client?.screen -= screen_object
+ client?.remove_from_screen(screen_object)
/datum/screen_object_holder/proc/clear()
- client?.screen -= screen_objects
- client?.screen -= protected_screen_objects
+ client?.remove_from_screen(screen_objects)
+ client?.remove_from_screen(protected_screen_objects)
QDEL_LIST(screen_objects)
protected_screen_objects.Cut()
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index 206b1dbf9979..35b6073ee41b 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -37,6 +37,8 @@
/atom/movable/screen/close/clicked(mob/user)
+ if(isobserver(user))
+ return TRUE
if(master)
if(isstorage(master))
var/obj/item/storage/master_storage = master
@@ -144,7 +146,7 @@
/atom/movable/screen/zone_sel/clicked(mob/user, list/mods)
if (..())
- return 1
+ return TRUE
var/icon_x = text2num(mods["icon-x"])
var/icon_y = text2num(mods["icon-y"])
@@ -209,7 +211,11 @@
icon = 'icons/mob/hud/screen1_robot.dmi'
/atom/movable/screen/clicked(mob/user)
- if(!user) return 1
+ if(!user)
+ return TRUE
+
+ if(isobserver(user))
+ return TRUE
switch(name)
if("equip")
@@ -608,10 +614,10 @@
if(user && user.hud_used)
if(user.hud_used.inventory_shown)
user.hud_used.inventory_shown = 0
- user.client.screen -= user.hud_used.toggleable_inventory
+ user.client.remove_from_screen(user.hud_used.toggleable_inventory)
else
user.hud_used.inventory_shown = 1
- user.client.screen += user.hud_used.toggleable_inventory
+ user.client.add_to_screen(user.hud_used.toggleable_inventory)
user.hud_used.hidden_inventory_update()
return 1
diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm
index b67953b1edbe..f87778355755 100644
--- a/code/_onclick/observer.dm
+++ b/code/_onclick/observer.dm
@@ -31,7 +31,7 @@
var/mob/living/carbon/xenomorph/xeno = target
if(xeno.stat == DEAD || is_admin_level(xeno.z) || xeno.aghosted)
to_chat(src, SPAN_WARNING("You cannot join as [xeno]."))
- ManualFollow(xeno)
+ do_observe(xeno)
return FALSE
if(!SSticker.mode.xeno_bypass_timer)
@@ -41,7 +41,7 @@
to_wait = XENO_LEAVE_TIMER_LARVA - xeno.away_timer
if(to_wait > 60 SECONDS) // don't spam for clearly non-AFK xenos
to_chat(src, SPAN_WARNING("That player hasn't been away long enough. Please wait [to_wait] second\s longer."))
- ManualFollow(target)
+ do_observe(target)
return FALSE
var/deathtime = world.time - timeofdeath
@@ -50,14 +50,14 @@
message = SPAN_WARNING("[message]")
to_chat(src, message)
to_chat(src, SPAN_WARNING("You must wait atleast 2.5 minutes before rejoining the game!"))
- ManualFollow(target)
+ do_observe(target)
return FALSE
if(xeno.hive)
for(var/mob_name in xeno.hive.banished_ckeys)
if(xeno.hive.banished_ckeys[mob_name] == ckey)
to_chat(src, SPAN_WARNING("You are banished from the [xeno.hive], you may not rejoin unless the Queen re-admits you or dies."))
- ManualFollow(target)
+ do_observe(target)
return FALSE
if(alert(src, "Are you sure you want to transfer yourself into [xeno]?", "Confirm Transfer", "Yes", "No") != "Yes")
@@ -67,7 +67,7 @@
return FALSE
SSticker.mode.transfer_xeno(src, xeno)
return TRUE
- ManualFollow(target)
+ do_observe(target)
return TRUE
if(!istype(target, /atom/movable/screen))
diff --git a/code/controllers/configuration/configuration.dm b/code/controllers/configuration/configuration.dm
index 08de7b5c02ff..e8b010669c0e 100644
--- a/code/controllers/configuration/configuration.dm
+++ b/code/controllers/configuration/configuration.dm
@@ -58,6 +58,8 @@
if(Master)
Master.OnConfigLoad()
+ SEND_GLOBAL_SIGNAL(COMSIG_GLOB_CONFIG_LOADED)
+
/datum/controller/configuration/proc/loadmaplist(filename, maptype)
log_config("Loading config file [filename]...")
diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm
index 976256cb6c97..cc3d00fd951b 100644
--- a/code/controllers/configuration/entries/general.dm
+++ b/code/controllers/configuration/entries/general.dm
@@ -21,8 +21,14 @@ Basics, the most important.
/datum/config_entry/string/wikiurl
+/datum/config_entry/string/wikiarticleurl
+
/datum/config_entry/string/forumurl
+/datum/config_entry/string/staffreport
+
+/datum/config_entry/string/playerreport
+
/datum/config_entry/string/rulesurl
/datum/config_entry/string/githuburl
@@ -31,6 +37,8 @@ Basics, the most important.
/datum/config_entry/string/banappeals
+/datum/config_entry/string/endofroundblurb
+
/datum/config_entry/string/dburl
/// Server to notify of game events
@@ -265,10 +273,6 @@ Voting
/datum/config_entry/string/gamemode_default
config_entry_value = "Extended"
-// Rounds needed for gamemode vote
-/datum/config_entry/number/gamemode_rounds_needed
- config_entry_value = 5
-
/datum/config_entry/number/rounds_until_hard_restart
config_entry_value = -1 // -1 is disabled by default, 0 is every round, x is after so many rounds
diff --git a/code/controllers/subsystem/minimap.dm b/code/controllers/subsystem/minimap.dm
index b154c7673855..6f5b9303a91f 100644
--- a/code/controllers/subsystem/minimap.dm
+++ b/code/controllers/subsystem/minimap.dm
@@ -390,9 +390,9 @@ SUBSYSTEM_DEF(minimaps)
if(!map)
return
if(minimap_displayed)
- owner.client.screen -= map
+ owner.client.remove_from_screen(map)
else
- owner.client.screen += map
+ owner.client.add_to_screen(map)
minimap_displayed = !minimap_displayed
/datum/action/minimap/give_to(mob/target)
@@ -415,7 +415,7 @@ SUBSYSTEM_DEF(minimaps)
/datum/action/minimap/remove_from(mob/target)
. = ..()
if(minimap_displayed)
- owner?.client?.screen -= map
+ owner?.client?.remove_from_screen(map)
minimap_displayed = FALSE
/**
@@ -424,7 +424,7 @@ SUBSYSTEM_DEF(minimaps)
/datum/action/minimap/proc/on_owner_z_change(atom/movable/source, oldz, newz)
SIGNAL_HANDLER
if(minimap_displayed)
- owner.client.screen -= map
+ owner.client.remove_from_screen(map)
minimap_displayed = FALSE
map = null
if(!SSminimaps.minimaps_by_z["[newz]"] || !SSminimaps.minimaps_by_z["[newz]"].hud_image)
diff --git a/code/controllers/subsystem/statpanel.dm b/code/controllers/subsystem/statpanel.dm
index 9a94eb3371f9..1f94e67a8c33 100644
--- a/code/controllers/subsystem/statpanel.dm
+++ b/code/controllers/subsystem/statpanel.dm
@@ -383,8 +383,10 @@ SUBSYSTEM_DEF(statpanels)
set name = "Open Statbrowser Options"
set hidden = TRUE
+ if (!current_fontsize)
+ current_fontsize = 12
- var/datum/statbrowser_options/SM = statbrowser_options
- if(!SM)
- SM = statbrowser_options = new(src, current_fontsize)
- SM.tgui_interact()
+ var/datum/statbrowser_options/options_panel = statbrowser_options
+ if(!options_panel)
+ options_panel = statbrowser_options = new(src, current_fontsize)
+ options_panel.tgui_interact()
diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm
index db6c3c71a7fa..88627669aa3b 100644
--- a/code/controllers/subsystem/ticker.dm
+++ b/code/controllers/subsystem/ticker.dm
@@ -101,17 +101,14 @@ SUBSYSTEM_DEF(ticker)
mode.declare_completion(force_ending)
REDIS_PUBLISH("byond.round", "type" = "round-complete")
flash_clients()
- if(text2num(SSperf_logging?.round?.id) % CONFIG_GET(number/gamemode_rounds_needed) == 0)
- addtimer(CALLBACK(
- SSvote,
- /datum/controller/subsystem/vote/proc/initiate_vote,
- "gamemode",
- "SERVER",
- CALLBACK(src, PROC_REF(handle_map_reboot)),
- TRUE
- ), 3 SECONDS)
- else
- handle_map_reboot()
+ addtimer(CALLBACK(
+ SSvote,
+ /datum/controller/subsystem/vote/proc/initiate_vote,
+ "gamemode",
+ "SERVER",
+ CALLBACK(src, PROC_REF(handle_map_reboot)),
+ TRUE
+ ), 3 SECONDS)
Master.SetRunLevel(RUNLEVEL_POSTGAME)
/// Attempt to start game asynchronously if applicable
diff --git a/code/datums/action.dm b/code/datums/action.dm
index 8dcf2963590d..47b302e09aac 100644
--- a/code/datums/action.dm
+++ b/code/datums/action.dm
@@ -103,7 +103,7 @@
/mob/proc/handle_add_action(datum/action/action)
LAZYADD(actions, action)
if(client)
- client.screen += action.button
+ client.add_to_screen(action.button)
update_action_buttons()
/proc/remove_action(mob/L, action_path)
@@ -122,7 +122,7 @@
/mob/proc/handle_remove_action(datum/action/action)
actions?.Remove(action)
if(client)
- client.screen -= action.button
+ client.remove_from_screen(action.button)
update_action_buttons()
/mob/living/carbon/human/handle_remove_action(datum/action/action)
@@ -219,12 +219,12 @@
for(var/datum/action/A in actions)
A.button.screen_loc = null
if(reload_screen)
- client.screen += A.button
+ client.add_to_screen(A.button)
else
for(var/datum/action/A in actions)
var/atom/movable/screen/action_button/B = A.button
if(reload_screen)
- client.screen += B
+ client.add_to_screen(B)
if(A.hidden)
B.screen_loc = null
continue
@@ -234,11 +234,11 @@
if(!button_number)
hud_used.hide_actions_toggle.screen_loc = null
if(reload_screen)
- client.screen += hud_used.hide_actions_toggle
+ client.add_to_screen(hud_used.hide_actions_toggle)
return
hud_used.hide_actions_toggle.screen_loc = hud_used.hide_actions_toggle.get_button_screen_loc(button_number+1)
if(reload_screen)
- client.screen += hud_used.hide_actions_toggle
+ client.add_to_screen(hud_used.hide_actions_toggle)
diff --git a/code/datums/disease.dm b/code/datums/disease.dm
index e9c399c7b8bf..92986b668b47 100644
--- a/code/datums/disease.dm
+++ b/code/datums/disease.dm
@@ -121,10 +121,10 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease
check_range = 1 // everything else, like infect-on-contact things, only infect things on top of it
if(isturf(source.loc))
- for(var/mob/living/carbon/M in oview(check_range, source))
- if(isturf(M.loc))
- if(AStar(source.loc, M.loc, /turf/proc/AdjacentTurfs, /turf/proc/Distance, check_range))
- M.contract_disease(src, 0, 1, force_spread)
+ for(var/mob/living/carbon/victim in oview(check_range, source))
+ if(isturf(victim.loc))
+ if(AStar(source.loc, victim.loc, /turf/proc/AdjacentTurfs, /turf/proc/Distance, check_range))
+ victim.contract_disease(src, 0, 1, force_spread)
return
@@ -173,8 +173,6 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease
var/mob/living/carbon/human/H = affected_mob
H.med_hud_set_status()
-
-
/datum/disease/New(process=TRUE)//process = 1 - adding the object to global list. List is processed by master controller.
cure_list = list(cure_id) // to add more cures, add more vars to this list in the actual disease's New()
if(process) // Viruses in list are considered active.
diff --git a/code/datums/diseases/mob_procs.dm b/code/datums/diseases/mob_procs.dm
index 7f9704c46f47..c27efecdff84 100644
--- a/code/datums/diseases/mob_procs.dm
+++ b/code/datums/diseases/mob_procs.dm
@@ -80,9 +80,6 @@
passed = check_disease_pass_clothes(target_zone)
- if(!passed && spread_type == AIRBORNE && !internal)
- passed = (prob((50*virus.permeability_mod) - 1))
-
if(passed)
AddDisease(virus)
@@ -111,36 +108,39 @@
/mob/living/carbon/human/check_disease_pass_clothes(target_zone)
var/obj/item/clothing/Cl
+ var/protection = 0
switch(target_zone)
if(1)
if(isobj(head) && !istype(head, /obj/item/paper))
Cl = head
- . = prob((Cl.permeability_coefficient*100) - 1)
- if(. && wear_mask)
- . = prob((Cl.permeability_coefficient*100) - 1)
+ protection += (Cl.permeability_coefficient*100)-100
+ if(isobj(wear_mask))
+ Cl = wear_mask
+ protection += (Cl.permeability_coefficient*100)-100
if(2)//arms and legs included
if(isobj(wear_suit))
Cl = wear_suit
- . = prob((Cl.permeability_coefficient*100) - 1)
- if(. && isobj(WEAR_BODY))
+ protection += (Cl.permeability_coefficient*100)-100
+ if(isobj(WEAR_BODY))
Cl = WEAR_BODY
- . = prob((Cl.permeability_coefficient*100) - 1)
+ protection += (Cl.permeability_coefficient*100)-100
if(3)
if(isobj(wear_suit) && wear_suit.flags_armor_protection & BODY_FLAG_HANDS)
Cl = wear_suit
- . = prob((Cl.permeability_coefficient*100) - 1)
+ protection += (Cl.permeability_coefficient*100)-100
- if(. && isobj(gloves))
+ if(isobj(gloves))
Cl = gloves
- . = prob((Cl.permeability_coefficient*100) - 1)
+ protection += (Cl.permeability_coefficient*100)-100
if(4)
if(isobj(wear_suit) && wear_suit.flags_armor_protection & BODY_FLAG_FEET)
Cl = wear_suit
- . = prob((Cl.permeability_coefficient*100) - 1)
+ protection += (Cl.permeability_coefficient*100)-100
- if(. && isobj(shoes))
+ if(isobj(shoes))
Cl = shoes
- . = prob((Cl.permeability_coefficient*100) - 1)
+ protection += (Cl.permeability_coefficient*100)-100
else
to_chat(src, "Something bad happened with disease target zone code, tell a dev or admin ")
+ return prob(clamp(protection, 5, 90))
diff --git a/code/datums/emergency_calls/cmb.dm b/code/datums/emergency_calls/cmb.dm
index 52da1c967a00..777ad322befc 100644
--- a/code/datums/emergency_calls/cmb.dm
+++ b/code/datums/emergency_calls/cmb.dm
@@ -113,7 +113,7 @@
/datum/emergency_call/cmb/anchorpoint/New()
..()
arrival_message = "[MAIN_SHIP_NAME], this is Anchorpoint Station. Be advised, a QRF Team of our Colonial Marines is currently attempting to board you. Open your ports, transmitting docking codes now. Standby."
- objectives = "QRF Team. You are here to reinforce the cmb team we deployed earlier. Make contact and work with the CMB Marshal and their deputies. Facilitate their protection and evacuation if necessary. Secondary Objective: Investigate the reason for distress aboard the [MAIN_SHIP_NAME], and assist the crew if possible."
+ objectives = "QRF Team. You are here to reinforce the CMB team we deployed earlier. Make contact and work with the CMB Marshal and their deputies. Facilitate their protection and evacuation if necessary. Secondary Objective: Investigate the reason for distress aboard the [MAIN_SHIP_NAME], and assist the crew if possible."
/datum/emergency_call/cmb/anchorpoint/create_member(datum/mind/M, turf/override_spawn_loc)
var/turf/spawn_loc = override_spawn_loc ? override_spawn_loc : get_spawn_point()
diff --git a/code/datums/emergency_calls/emergency_call.dm b/code/datums/emergency_calls/emergency_call.dm
index 390a8cfd5d61..6533086d98f3 100644
--- a/code/datums/emergency_calls/emergency_call.dm
+++ b/code/datums/emergency_calls/emergency_call.dm
@@ -91,12 +91,12 @@
else
return chosen_call
-/datum/game_mode/proc/get_specific_call(call_name, announce = TRUE, is_emergency = TRUE, info = "", announce_dispatch_message = TRUE)
+/datum/game_mode/proc/get_specific_call(call_name, quiet_launch = FALSE, announce = TRUE, is_emergency = TRUE, info = "", announce_dispatch_message = TRUE)
for(var/datum/emergency_call/E in all_calls) //Loop through all potential candidates
if(E.name == call_name)
var/datum/emergency_call/em_call = new E.type()
em_call.objective_info = info
- em_call.activate(announce, is_emergency, announce_dispatch_message)
+ em_call.activate(quiet_launch, announce, is_emergency, announce_dispatch_message)
return
error("get_specific_call could not find emergency call '[call_name]'")
return
@@ -192,7 +192,7 @@
else
to_chat(src, SPAN_WARNING("You did not get enlisted in the response team. Better luck next time!"))
-/datum/emergency_call/proc/activate(announce = TRUE, turf/override_spawn_loc, announce_dispatch_message = TRUE)
+/datum/emergency_call/proc/activate(quiet_launch = FALSE, announce = TRUE, turf/override_spawn_loc, announce_dispatch_message = TRUE)
set waitfor = 0
if(!SSticker.mode) //Something horribly wrong with the gamemode ticker
return
@@ -202,12 +202,12 @@
show_join_message() //Show our potential candidates the message to let them join.
message_admins("Distress beacon: '[name]' activated [src.hostility? "[SPAN_WARNING("(THEY ARE HOSTILE)")]":"(they are friendly)"]. Looking for candidates.")
- if(announce)
+ if(!quiet_launch)
marine_announcement("A distress beacon has been launched from the [MAIN_SHIP_NAME].", "Priority Alert", 'sound/AI/distressbeacon.ogg', logging = ARES_LOG_SECURITY)
- addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/emergency_call, spawn_candidates), announce, override_spawn_loc, announce_dispatch_message), 30 SECONDS)
+ addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/emergency_call, spawn_candidates), quiet_launch, announce, override_spawn_loc, announce_dispatch_message), 30 SECONDS)
-/datum/emergency_call/proc/spawn_candidates(announce = TRUE, override_spawn_loc, announce_dispatch_message = TRUE)
+/datum/emergency_call/proc/spawn_candidates(quiet_launch = FALSE, announce = TRUE, override_spawn_loc, announce_dispatch_message = TRUE)
if(SSticker.mode)
SSticker.mode.picked_calls -= src
@@ -218,7 +218,7 @@
members = list() //Empty the members list.
candidates = list()
- if(announce)
+ if(!quiet_launch)
marine_announcement("The distress signal has not received a response, the launch tubes are now recalibrating.", "Distress Beacon", logging = ARES_LOG_SECURITY)
return
diff --git a/code/datums/emergency_calls/inspection.dm b/code/datums/emergency_calls/inspection.dm
index 72926666ace5..4c33d7d9bfa3 100644
--- a/code/datums/emergency_calls/inspection.dm
+++ b/code/datums/emergency_calls/inspection.dm
@@ -263,3 +263,44 @@
to_chat(M, SPAN_BOLD("The laws of arth stretch beyond the Sol. Where others fall to corruption, you stay steadfast in your morals."))
to_chat(M, SPAN_BOLD("Corporate Officers chase after paychecks and promotions, but you are motivated to do your sworn duty and care for the population, no matter how far or isolated a colony may be."))
to_chat(M, SPAN_BOLD("Despite being stretched thin, the stalwart oath of the Marshals has continued to keep communities safe, with the CMB well respected by many. You are a representation of that oath, serve with distinction."))
+
+/datum/emergency_call/inspection_cmb/black_market
+ name = "Inspection - Colonial Marshal Ledger Investigation Team"
+ mob_max = 3 //Marshal, Deputy, ICC CL
+ mob_min = 2
+ shuttle_id = "Distress_PMC"
+
+ max_synths = 0
+ will_spawn_icc_liaison = TRUE
+ will_spawn_cmb_observer = FALSE
+
+/datum/emergency_call/inspection_cmb/black_market/New()
+ ..()
+ dispatch_message = "Third Fleet High Command to [MAIN_SHIP_NAME], we have received inconsistent supply manifests and irregularities on the ASRS system aboard your ship, and have requested a CMB Investigation Team to board and clear you of any wrongdoing."
+ arrival_message = "Incoming Transmission: [MAIN_SHIP_NAME], this is Anchorpoint Station with the Colonial Marshal Bureau. Be advised, we are dispatching a team of Marshals to board with you by request of GSO-91. Submitting authorized docking clearances, over."
+ objectives = "Investigate the inconsistencies aboard the [MAIN_SHIP_NAME]'s ASRS. In the case of illegal activity, collect evidence, and submit a report to the CMB Command at Anchorpoint Station. If required, the ICC Liaison's Tradeband is capable of fixing ASRS computers. Work with the [MAIN_SHIP_NAME]'s military police force."
+
+/datum/emergency_call/inspection_cmb/black_market/create_member(datum/mind/current_mind, turf/override_spawn_loc)
+ var/turf/spawn_loc = override_spawn_loc ? override_spawn_loc : get_spawn_point()
+
+ if(!istype(spawn_loc))
+ return //Didn't find a useable spawn point.
+
+ var/mob/living/carbon/human/mob = new(spawn_loc)
+ current_mind.transfer_to(mob, TRUE)
+
+ if(!leader && HAS_FLAG(mob?.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(mob.client, JOB_SQUAD_LEADER, time_required_for_job))
+ leader = mob
+ to_chat(mob, SPAN_ROLE_HEADER("You are the Colonial Marshal!"))
+ arm_equipment(mob, /datum/equipment_preset/cmb/leader, TRUE, TRUE)
+ else if(!icc_liaison && will_spawn_icc_liaison && check_timelock(mob.client, JOB_CORPORATE_LIAISON, time_required_for_job))
+ icc_liaison = mob
+ to_chat(mob, SPAN_ROLE_HEADER("You are a CMB-attached Interstellar Commerce Commission Liaison!"))
+ arm_equipment(mob, /datum/equipment_preset/cmb/liaison/black_market, TRUE, TRUE) //ICC CL gets a custom item
+ else
+ to_chat(mob, SPAN_ROLE_HEADER("You are a CMB Deputy!"))
+ arm_equipment(mob, /datum/equipment_preset/cmb/standard, TRUE, TRUE)
+
+ print_backstory(mob)
+
+ addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(to_chat), mob, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS)
diff --git a/code/datums/emergency_calls/whiskey_outpost.dm b/code/datums/emergency_calls/whiskey_outpost.dm
index 8a20043da558..436e02007c6c 100644
--- a/code/datums/emergency_calls/whiskey_outpost.dm
+++ b/code/datums/emergency_calls/whiskey_outpost.dm
@@ -60,7 +60,7 @@
/datum/game_mode/whiskey_outpost/activate_distress()
var/datum/emergency_call/em_call = /datum/emergency_call/wo
- em_call.activate(FALSE)
+ em_call.activate(TRUE, FALSE)
return
/datum/emergency_call/wo/platoon
diff --git a/code/datums/entities/player.dm b/code/datums/entities/player.dm
index ed97c4eafaae..febeb1fc73a9 100644
--- a/code/datums/entities/player.dm
+++ b/code/datums/entities/player.dm
@@ -97,7 +97,7 @@ BSQL_PROTECT_DATUM(/datum/entity/player)
if(!is_confidential && note_category == NOTE_ADMIN && owning_client)
to_chat_immediate(owning_client, SPAN_WARNING(FONT_SIZE_LARGE("You have been noted by [key_name_admin(admin.mob, FALSE)].")))
to_chat_immediate(owning_client, SPAN_WARNING(FONT_SIZE_BIG("The note is : [sanitize(note_text)]")))
- to_chat_immediate(owning_client, SPAN_WARNING(FONT_SIZE_BIG("If you believe this was filed in error or misplaced, make a staff report at The CM Forums ")))
+ to_chat_immediate(owning_client, SPAN_WARNING(FONT_SIZE_BIG("If you believe this was filed in error or misplaced, make a staff report at The CM Forums ")))
to_chat_immediate(owning_client, SPAN_WARNING(FONT_SIZE_BIG("You can also click the name of the staff member noting you to PM them.")))
// create new instance of player_note entity
var/datum/entity/player_note/note = DB_ENTITY(/datum/entity/player_note)
diff --git a/code/datums/factions/upp.dm b/code/datums/factions/upp.dm
index 9f28e5967831..5a790c89be67 100644
--- a/code/datums/factions/upp.dm
+++ b/code/datums/factions/upp.dm
@@ -25,10 +25,20 @@
hud_icon_state = "lt"
if(JOB_UPP_SRLT_OFFICER)
hud_icon_state = "slt"
+ if(JOB_UPP_KPT_OFFICER)
+ hud_icon_state = "xo"
if(JOB_UPP_MAY_OFFICER)
- hud_icon_state = "may"
+ hud_icon_state = "co"
+ if(JOB_UPP_LTKOL_OFFICER)
+ hud_icon_state = "co"
if(JOB_UPP_KOL_OFFICER)
- hud_icon_state = "kol"
+ hud_icon_state = "co"
+ if(JOB_UPP_MAY_GENERAL)
+ hud_icon_state = "co"
+ if(JOB_UPP_LT_GENERAL)
+ hud_icon_state = "co"
+ if(JOB_UPP_GENERAL)
+ hud_icon_state = "co"
if(JOB_UPP_COMBAT_SYNTH)
hud_icon_state = "synth"
if(JOB_UPP_COMMANDO)
diff --git a/code/datums/keybinding/human.dm b/code/datums/keybinding/human.dm
index 6580c38083ea..6d7037eac398 100644
--- a/code/datums/keybinding/human.dm
+++ b/code/datums/keybinding/human.dm
@@ -1,8 +1,3 @@
-#define QUICK_EQUIP_PRIMARY 1
-#define QUICK_EQUIP_SECONDARY 2
-#define QUICK_EQUIP_TERTIARY 3
-#define QUICK_EQUIP_QUATERNARY 4
-
/datum/keybinding/human
category = CATEGORY_HUMAN
weight = WEIGHT_MOB
@@ -10,86 +5,6 @@
/datum/keybinding/human/can_use(client/user)
return ishuman(user.mob)
-/datum/keybinding/human/quick_equip
- hotkey_keys = list("E")
- classic_keys = list("E")
- name = "quick_equip"
- full_name = "Unholster"
- description = "Take out an available weapon"
- keybind_signal = COMSIG_KB_HUMAN_QUICKEQUIP_DOWN
-
-/datum/keybinding/human/quick_equip/down(client/user)
- . = ..()
- if(.)
- return
- var/mob/living/carbon/human/H = user.mob
- H.holster_verb(QUICK_EQUIP_PRIMARY)
- return TRUE
-
-/datum/keybinding/human/quick_equip_secondary
- hotkey_keys = list("Shift+E")
- classic_keys = list("Shift+E")
- name = "quick_equip_secondary"
- full_name = "Unholster secondary"
- description = "Take out your secondary weapon"
- keybind_signal = COMSIG_KB_HUMAN_SECONDARY_DOWN
-
-/datum/keybinding/human/quick_equip_secondary/down(client/user)
- . = ..()
- if(.)
- return
- var/mob/living/carbon/human/H = user.mob
- H.holster_verb(QUICK_EQUIP_SECONDARY)
- return TRUE
-
-/datum/keybinding/human/quick_equip_tertiary
- hotkey_keys = list("Ctrl+E", "Alt+E")
- classic_keys = list("Ctrl+E", "Alt+E")
- name = "quick_equip_tertiary"
- full_name = "Unholster tertiary"
- description = "Take out your tertiary item."
- keybind_signal = COMSIG_KB_HUMAN_TERTIARY_DOWN
-
-/datum/keybinding/human/quick_equip_tertiary/down(client/user)
- . = ..()
- if(.)
- return
- var/mob/living/carbon/human/H = user.mob
- H.holster_verb(QUICK_EQUIP_TERTIARY)
- return TRUE
-
-/datum/keybinding/human/quick_equip_quaternary
- hotkey_keys = list("Unbound")
- classic_keys = list("Unbound")
- name = "quick_equip_quaternary"
- full_name = "Unholster quaternary"
- description = "Take out your quaternary item."
- keybind_signal = COMSIG_KB_HUMAN_QUATERNARY_DOWN
-
-/datum/keybinding/human/quick_equip_quaternary/down(client/user)
- . = ..()
- if(.)
- return
- var/mob/living/carbon/human/H = user.mob
- H.holster_verb(QUICK_EQUIP_QUATERNARY)
- return TRUE
-
-/datum/keybinding/human/quick_equip_inventory
- hotkey_keys = list("Unbound")
- classic_keys = list("Unbound")
- name = "quick_equip_inventory"
- full_name = "Quick equip inventory"
- description = "Quickly puts an item in the best slot available"
- keybind_signal = COMSIG_KB_HUMAN_QUICK_EQUIP_DOWN
-
-/datum/keybinding/human/quick_equip_inventory/down(client/user)
- . = ..()
- if(.)
- return
- var/mob/living/carbon/human/H = user.mob
- H.quick_equip()
- return TRUE
-
/datum/keybinding/human/issue_order
hotkey_keys = list("Unbound")
classic_keys = list("Unbound")
@@ -103,8 +18,8 @@
. = ..()
if(.)
return
- var/mob/living/carbon/human/H = user.mob
- H.issue_order(order)
+ var/mob/living/carbon/human/human_mob = user.mob
+ human_mob.issue_order(order)
return TRUE
/datum/keybinding/human/issue_order/move
@@ -139,8 +54,8 @@
. = ..()
if(.)
return
- var/mob/living/carbon/human/H = user.mob
- H.spec_activation_one()
+ var/mob/living/carbon/human/human_mob = user.mob
+ human_mob.spec_activation_one()
return TRUE
/datum/keybinding/human/specialist_two
@@ -154,24 +69,8 @@
. = ..()
if(.)
return
- var/mob/living/carbon/human/H = user.mob
- H.spec_activation_two()
- return TRUE
-
-/datum/keybinding/human/pick_up
- hotkey_keys = list("F")
- classic_keys = list("Unbound")
- name = "pick_up"
- full_name = "Pick Up Dropped Items"
- keybind_signal = COMSIG_KB_HUMAN_PICK_UP
-
-/datum/keybinding/human/pick_up/down(client/user)
- . = ..()
- if(.)
- return
-
- var/mob/living/carbon/human/human_user = user.mob
- human_user.pickup_recent()
+ var/mob/living/carbon/human/human_mob = user.mob
+ human_mob.spec_activation_two()
return TRUE
/datum/keybinding/human/rotate_chair
@@ -209,7 +108,23 @@
shown_item.showoff(human_user)
return TRUE
-#undef QUICK_EQUIP_PRIMARY
-#undef QUICK_EQUIP_SECONDARY
-#undef QUICK_EQUIP_TERTIARY
-#undef QUICK_EQUIP_QUATERNARY
+/datum/keybinding/human/cycle_helmet_hud
+ hotkey_keys = list("Unbound")
+ classic_keys = list("Unbound")
+ name = "cycle_helmet_hud"
+ full_name = "Cycle Helmet HUD"
+ keybind_signal = COMSIG_KB_HUMAN_CYCLE_HELMET_HUD
+
+/datum/keybinding/human/cycle_helmet_hud/down(client/user)
+ . = ..()
+ if(.)
+ return
+
+ var/mob/living/carbon/human/human_user = user.mob
+ var/obj/item/clothing/head/helmet/marine/marine_helmet = human_user?.head
+ var/cycled_hud = marine_helmet?.cycle_huds(human_user)
+
+ var/datum/action/item_action/cycle_helmet_huds/cycle_action = locate() in marine_helmet.actions
+ cycle_action.set_action_overlay(cycled_hud)
+
+ return TRUE
diff --git a/code/datums/keybinding/human_combat.dm b/code/datums/keybinding/human_combat.dm
index 003fba3b00bd..2f37efc61438 100644
--- a/code/datums/keybinding/human_combat.dm
+++ b/code/datums/keybinding/human_combat.dm
@@ -1,6 +1,5 @@
/datum/keybinding/human/combat
category = CATEGORY_HUMAN_COMBAT
- weight = WEIGHT_MOB
/datum/keybinding/human/combat/can_use(client/user)
. = ..()
diff --git a/code/datums/keybinding/human_inventory.dm b/code/datums/keybinding/human_inventory.dm
new file mode 100644
index 000000000000..163cbccdd5c0
--- /dev/null
+++ b/code/datums/keybinding/human_inventory.dm
@@ -0,0 +1,244 @@
+/datum/keybinding/human/inventory
+ category = CATEGORY_HUMAN_INVENTORY
+
+#define QUICK_EQUIP_PRIMARY 1
+#define QUICK_EQUIP_SECONDARY 2
+#define QUICK_EQUIP_TERTIARY 3
+#define QUICK_EQUIP_QUATERNARY 4
+
+/datum/keybinding/human/inventory/quick_equip
+ hotkey_keys = list("E")
+ classic_keys = list("E")
+ name = "quick_equip"
+ full_name = "Unholster"
+ description = "Take out an available weapon"
+ keybind_signal = COMSIG_KB_HUMAN_INTERACT_QUICKEQUIP_DOWN
+
+/datum/keybinding/human/inventory/quick_equip/down(client/user)
+ . = ..()
+ if(.)
+ return
+ var/mob/living/carbon/human/human_mob = user.mob
+ human_mob.holster_verb(QUICK_EQUIP_PRIMARY)
+ return TRUE
+
+/datum/keybinding/human/inventory/quick_equip_secondary
+ hotkey_keys = list("Shift+E")
+ classic_keys = list("Shift+E")
+ name = "quick_equip_secondary"
+ full_name = "Unholster secondary"
+ description = "Take out your secondary weapon"
+ keybind_signal = COMSIG_KB_HUMAN_INTERACT_SECONDARY_DOWN
+
+/datum/keybinding/human/inventory/quick_equip_secondary/down(client/user)
+ . = ..()
+ if(.)
+ return
+ var/mob/living/carbon/human/human_mob = user.mob
+ human_mob.holster_verb(QUICK_EQUIP_SECONDARY)
+ return TRUE
+
+/datum/keybinding/human/inventory/quick_equip_tertiary
+ hotkey_keys = list("Ctrl+E", "Alt+E")
+ classic_keys = list("Ctrl+E", "Alt+E")
+ name = "quick_equip_tertiary"
+ full_name = "Unholster tertiary"
+ description = "Take out your tertiary item."
+ keybind_signal = COMSIG_KB_HUMAN_INTERACT_TERTIARY_DOWN
+
+/datum/keybinding/human/inventory/quick_equip_tertiary/down(client/user)
+ . = ..()
+ if(.)
+ return
+ var/mob/living/carbon/human/human_mob = user.mob
+ human_mob.holster_verb(QUICK_EQUIP_TERTIARY)
+ return TRUE
+
+/datum/keybinding/human/inventory/quick_equip_quaternary
+ hotkey_keys = list("Unbound")
+ classic_keys = list("Unbound")
+ name = "quick_equip_quaternary"
+ full_name = "Unholster quaternary"
+ description = "Take out your quaternary item."
+ keybind_signal = COMSIG_KB_HUMAN_INTERACT_QUATERNARY_DOWN
+
+/datum/keybinding/human/inventory/quick_equip_quaternary/down(client/user)
+ . = ..()
+ if(.)
+ return
+ var/mob/living/carbon/human/human_mob = user.mob
+ human_mob.holster_verb(QUICK_EQUIP_QUATERNARY)
+ return TRUE
+
+#undef QUICK_EQUIP_PRIMARY
+#undef QUICK_EQUIP_SECONDARY
+#undef QUICK_EQUIP_TERTIARY
+#undef QUICK_EQUIP_QUATERNARY
+
+/datum/keybinding/human/inventory/quick_equip_inventory
+ hotkey_keys = list("Unbound")
+ classic_keys = list("Unbound")
+ name = "quick_equip_inventory"
+ full_name = "Quick equip inventory"
+ description = "Quickly puts an item in the best slot available"
+ keybind_signal = COMSIG_KB_HUMAN_INTERACT_QUICK_EQUIP_DOWN
+
+/datum/keybinding/human/inventory/quick_equip_inventory/down(client/user)
+ . = ..()
+ if(.)
+ return
+ var/mob/living/carbon/human/human_mob = user.mob
+ human_mob.quick_equip()
+ return TRUE
+
+/datum/keybinding/human/inventory/pick_up
+ hotkey_keys = list("F")
+ classic_keys = list("Unbound")
+ name = "pick_up"
+ full_name = "Pick Up Dropped Items"
+ keybind_signal = COMSIG_KB_HUMAN_INTERACT_PICK_UP
+
+/datum/keybinding/human/inventory/pick_up/down(client/user)
+ . = ..()
+ if(.)
+ return
+
+ var/mob/living/carbon/human/human_user = user.mob
+ human_user.pickup_recent()
+ return TRUE
+
+/datum/keybinding/human/inventory/interact_other_hand
+ hotkey_keys = list("Unbound")
+ classic_keys = list("Unbound")
+ name = "interact_other_hand"
+ full_name = "Interact With Other Hand"
+ keybind_signal = COMSIG_KB_HUMAN_INTERACT_OTHER_HAND
+
+/datum/keybinding/human/inventory/interact_other_hand/down(client/user)
+ . = ..()
+ if(.)
+ return
+
+ var/mob/living/carbon/human/human_user = user.mob
+
+ var/active_hand = human_user.get_active_hand()
+ var/inactive_hand = human_user.get_inactive_hand()
+
+ if(!inactive_hand)
+ return
+ human_user.click_adjacent(inactive_hand, active_hand)
+ return TRUE
+
+#define INTERACT_KEYBIND_COOLDOWN_TIME (0.2 SECONDS)
+#define COOLDOWN_SLOT_INTERACT_KEYBIND "slot_interact_keybind_cooldown"
+
+/datum/keybinding/human/inventory/interact_slot
+ hotkey_keys = list("Unbound")
+ classic_keys = list("Unbound")
+ var/storage_slot
+
+/datum/keybinding/human/inventory/interact_slot/proc/check_slot(mob/living/carbon/human/user)
+ return
+
+/datum/keybinding/human/inventory/interact_slot/down(client/user)
+ . = ..()
+ if(.)
+ return
+ if(!storage_slot)
+ return
+ if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_SLOT_INTERACT_KEYBIND))
+ return
+
+ TIMER_COOLDOWN_START(src, COOLDOWN_SLOT_INTERACT_KEYBIND, INTERACT_KEYBIND_COOLDOWN_TIME)
+ var/mob/living/carbon/human/human_user = user.mob
+ var/obj/item/current_item = check_slot(human_user)
+ var/obj/item/in_hand_item = human_user.get_active_hand()
+
+ if(in_hand_item)
+ if(!current_item)
+ if(!human_user.equip_to_slot_if_possible(in_hand_item, storage_slot, FALSE, FALSE))
+ return
+ return TRUE
+
+ current_item.attackby(in_hand_item, human_user)
+ return TRUE
+
+ if(!current_item)
+ return
+ current_item.attack_hand(human_user)
+ return TRUE
+
+/datum/keybinding/human/inventory/interact_slot/back
+ name = "interact_storage_back"
+ full_name = "Interact With Back Slot"
+ keybind_signal = COMSIG_KB_HUMAN_INTERACT_SLOT_BACK
+ storage_slot = WEAR_BACK
+
+/datum/keybinding/human/inventory/interact_slot/back/check_slot(mob/living/carbon/human/user)
+ return user.back
+
+/datum/keybinding/human/inventory/interact_slot/belt
+ name = "interact_storage_belt"
+ full_name = "Interact With Belt Slot"
+ keybind_signal = COMSIG_KB_HUMAN_INTERACT_SLOT_BELT
+ storage_slot = WEAR_WAIST
+
+/datum/keybinding/human/inventory/interact_slot/belt/check_slot(mob/living/carbon/human/user)
+ return user.belt
+
+/datum/keybinding/human/inventory/interact_slot/pouch_left
+ name = "interact_storage_pouch_left"
+ full_name = "Interact With Left Pouch Slot"
+ keybind_signal = COMSIG_KB_HUMAN_INTERACT_SLOT_LEFT_POUCH
+ storage_slot = WEAR_L_STORE
+
+/datum/keybinding/human/inventory/interact_slot/pouch_left/check_slot(mob/living/carbon/human/user)
+ return user.l_store
+
+/datum/keybinding/human/inventory/interact_slot/pouch_right
+ name = "interact_storage_pouch_right"
+ full_name = "Interact With Right Pouch Slot"
+ keybind_signal = COMSIG_KB_HUMAN_INTERACT_SLOT_RIGHT_POUCH
+ storage_slot = WEAR_R_STORE
+
+/datum/keybinding/human/inventory/interact_slot/pouch_right/check_slot(mob/living/carbon/human/user)
+ return user.r_store
+
+/datum/keybinding/human/inventory/interact_slot/uniform
+ name = "interact_storage_uniform"
+ full_name = "Interact With Uniform Slot"
+ keybind_signal = COMSIG_KB_HUMAN_INTERACT_SLOT_UNIFORM
+ storage_slot = WEAR_BODY
+
+/datum/keybinding/human/inventory/interact_slot/uniform/check_slot(mob/living/carbon/human/user)
+ return user.w_uniform
+
+/datum/keybinding/human/inventory/interact_slot/suit
+ name = "interact_storage_suit"
+ full_name = "Interact With Suit Slot"
+ keybind_signal = COMSIG_KB_HUMAN_INTERACT_SLOT_SUIT
+ storage_slot = WEAR_JACKET
+
+/datum/keybinding/human/inventory/interact_slot/suit/check_slot(mob/living/carbon/human/user)
+ return user.wear_suit
+
+/datum/keybinding/human/inventory/interact_slot/helmet
+ name = "interact_storage_helmet"
+ full_name = "Interact With Head Slot"
+ keybind_signal = COMSIG_KB_HUMAN_INTERACT_SLOT_HELMET
+ storage_slot = WEAR_HEAD
+
+/datum/keybinding/human/inventory/interact_slot/helmet/check_slot(mob/living/carbon/human/user)
+ return user.head
+
+/datum/keybinding/human/inventory/interact_slot/suit_storage
+ name = "interact_storage_suit_store"
+ full_name = "Interact With Suit Storage Slot"
+ keybind_signal = COMSIG_KB_HUMAN_INTERACT_SUIT_S_STORE
+ storage_slot = WEAR_J_STORE
+
+/datum/keybinding/human/inventory/interact_slot/suit_storage/check_slot(mob/living/carbon/human/user)
+ return user.s_store
+
+#undef INTERACT_KEYBIND_COOLDOWN_TIME
+#undef COOLDOWN_SLOT_INTERACT_KEYBIND
diff --git a/code/datums/keybinding/mob.dm b/code/datums/keybinding/mob.dm
index ee0ec30dcae7..b7b83249b335 100644
--- a/code/datums/keybinding/mob.dm
+++ b/code/datums/keybinding/mob.dm
@@ -2,6 +2,16 @@
category = CATEGORY_HUMAN
weight = WEIGHT_MOB
+/datum/keybinding/mob/down(client/user)
+ . = ..()
+ if(isobserver(user.mob))
+ return TRUE
+
+/datum/keybinding/mob/up(client/user)
+ . = ..()
+ if(isobserver(user.mob))
+ return TRUE
+
/datum/keybinding/mob/stop_pulling
hotkey_keys = list("H", "Delete")
classic_keys = list("Delete")
@@ -85,7 +95,7 @@
. = ..()
if(.)
return
- user.mob.a_select_zone("head")
+ user.mob.a_select_zone("head", user)
return TRUE
/datum/keybinding/mob/target_r_arm
@@ -100,7 +110,7 @@
. = ..()
if(.)
return
- user.mob.a_select_zone("rarm")
+ user.mob.a_select_zone("rarm", user)
return TRUE
/datum/keybinding/mob/target_body_chest
@@ -115,7 +125,7 @@
. = ..()
if(.)
return
- user.mob.a_select_zone("chest")
+ user.mob.a_select_zone("chest", user)
return TRUE
/datum/keybinding/mob/target_left_arm
@@ -130,7 +140,7 @@
. = ..()
if(.)
return
- user.mob.a_select_zone("larm")
+ user.mob.a_select_zone("larm", user)
return TRUE
/datum/keybinding/mob/target_right_leg
@@ -145,7 +155,7 @@
. = ..()
if(.)
return
- user.mob.a_select_zone("rleg")
+ user.mob.a_select_zone("rleg", user)
return TRUE
/datum/keybinding/mob/target_body_groin
@@ -160,7 +170,7 @@
. = ..()
if(.)
return
- user.mob.a_select_zone("groin")
+ user.mob.a_select_zone("groin", user)
return TRUE
/datum/keybinding/mob/target_left_leg
@@ -175,7 +185,7 @@
. = ..()
if(.)
return
- user.mob.a_select_zone("lleg")
+ user.mob.a_select_zone("lleg", user)
return TRUE
/datum/keybinding/mob/target_next
@@ -190,7 +200,7 @@
. = ..()
if(.)
return
- user.mob.a_select_zone("next")
+ user.mob.a_select_zone("next", user)
return TRUE
/datum/keybinding/mob/target_prev
@@ -205,7 +215,7 @@
. = ..()
if(.)
return
- user.mob.a_select_zone("prev")
+ user.mob.a_select_zone("prev", user)
return TRUE
/datum/keybinding/mob/prevent_movement
diff --git a/code/datums/keybinding/yautja.dm b/code/datums/keybinding/yautja.dm
index 40ffbf8d16e7..4729db004582 100644
--- a/code/datums/keybinding/yautja.dm
+++ b/code/datums/keybinding/yautja.dm
@@ -594,3 +594,21 @@
var/mob/living/carbon/human/H = user.mob
var/obj/item/device/yautja_teleporter/tele = locate(/obj/item/device/yautja_teleporter) in H.contents
tele.add_tele_loc()
+
+
+/datum/keybinding/yautja/fold_combi
+ hotkey_keys = list("Space")
+ classic_keys = list("Unbound")
+ name = "fold_combi"
+ full_name = "Collapse Combi-stick"
+ keybind_signal = COMSIG_KB_YAUTJA_FOLD_COMBISTICK
+
+/datum/keybinding/yautja/fold_combi/down(client/user)
+ . = ..()
+ if(.)
+ return
+ var/mob/living/carbon/human/human = user.mob
+ var/obj/item/weapon/yautja/combistick/held_item = human.get_held_item()
+ if(istype(held_item))
+ held_item.fold_combistick()
+ return TRUE
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index 90df42f7d12a..2e56b963e88f 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -39,6 +39,8 @@
msg_admin_niche("[key]/[ckey] has tried to transfer to deleted [new_character].")
return
+ SEND_SIGNAL(current.client, COMSIG_CLIENT_MIND_TRANSFER, new_character)
+
if(current)
current.mind = null //remove ourself from our old body's mind variable
nanomanager.user_transferred(current, new_character) // transfer active NanoUI instances to new user
@@ -71,6 +73,8 @@
continue
player_entity = setup_player_entity(ckey)
+ SEND_SIGNAL(new_character, COMSIG_MOB_NEW_MIND, current.client)
+
new_character.refresh_huds(current) //inherit the HUDs from the old body
new_character.aghosted = FALSE //reset aghost and away timer
new_character.away_timer = 0
diff --git a/code/datums/paygrades/factions/upp/upp.dm b/code/datums/paygrades/factions/upp/upp.dm
index 7cb0c201aefb..a1363383ad55 100644
--- a/code/datums/paygrades/factions/upp/upp.dm
+++ b/code/datums/paygrades/factions/upp/upp.dm
@@ -18,16 +18,11 @@
paygrade = "UE2"
name = "Private First Class"
prefix = "PFC."
+ pay_multiplier = 0.2
-/datum/paygrade/upp/ue3m
- paygrade = "UE3M"
- name = "Korporal Medic"
- prefix = "Kpl."
- pay_multiplier = 0.3
-
-/datum/paygrade/upp/ue3s
- paygrade = "UE3S"
- name = "Korporal Sapper"
+/datum/paygrade/upp/ue3
+ paygrade = "UE3"
+ name = "Korporal"
prefix = "Kpl."
pay_multiplier = 0.3
@@ -75,56 +70,50 @@
prefix = "Lt."
pay_multiplier = 1.25
-/datum/paygrade/upp/uo1m
- paygrade = "UO1M"
- name = "Leytenant Medic"
- prefix = "Lt. Med."
- pay_multiplier = 1.25
-
-/datum/paygrade/upp/uo1e
- paygrade = "UO1E"
+/datum/paygrade/upp/uo2
+ paygrade = "UO2"
name = "Senior Leytenant"
prefix = "Sr. LT."
pay_multiplier = 1.5
-
-/datum/paygrade/upp/uo2
- paygrade = "UO2"
+/datum/paygrade/upp/uo3
+ paygrade = "UO3"
name = "Kapitan"
prefix = "Kpt."
pay_multiplier = 2
-/datum/paygrade/upp/uo3
- paygrade = "UO3"
+/datum/paygrade/upp/uo4
+ paygrade = "UO4"
name = "Mayjor."
prefix = "May."
pay_multiplier = 2.5
-/datum/paygrade/upp/uo4
- paygrade = "UO4"
+/datum/paygrade/upp/uo5
+ paygrade = "UO5"
name = "Leytenant Kolonel"
+ prefix = "Lt. Kol."
pay_multiplier = 3
-/datum/paygrade/upp/uo5
- paygrade = "UO5"
+/datum/paygrade/upp/uo6
+ paygrade = "UO6"
name = "Kolonel"
prefix = "Kol."
pay_multiplier = 4
-/datum/paygrade/upp/uo6
- paygrade = "UO6"
+/datum/paygrade/upp/uo7
+ paygrade = "UO7"
name = "Mayjor General"
- prefix = "MayGen."
+ prefix = "May. Gen."
pay_multiplier = 5
-/datum/paygrade/upp/uo7
- paygrade = "UO7"
+/datum/paygrade/upp/uo8
+ paygrade = "UO8"
name = "Leytenant General"
- prefix = "LtGen."
+ prefix = "Lt. Gen."
pay_multiplier = 6
-/datum/paygrade/upp/uo8
- paygrade = "UO8"
+/datum/paygrade/upp/uo9
+ paygrade = "UO9"
name = "Army General"
- prefix = "ArmGen."
+ prefix = "Gen."
pay_multiplier = 7
diff --git a/code/datums/skills.dm b/code/datums/skills.dm
index f80b391123f2..9178e6f7a1b1 100644
--- a/code/datums/skills.dm
+++ b/code/datums/skills.dm
@@ -293,6 +293,16 @@ CIVILIAN
SKILL_INTEL = SKILL_INTEL_EXPERT,
)
+/datum/skills/civilian/icc_investigation
+ name = "ICC CL - Black Market ERT"
+ skills = list(
+ SKILL_CQC = SKILL_CQC_DEFAULT,
+ SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED,
+ SKILL_ENGINEER = SKILL_ENGINEER_ENGI, //The ASRS consoles
+ SKILL_FIREARMS = SKILL_FIREARMS_CIVILIAN,
+ SKILL_POLICE = SKILL_POLICE_SKILLED, //The CMB Tradeband Compliance Device
+ )
+
/datum/skills/civilian/manager/director
name = "Weyland-Yutani Director"
skills = list(
@@ -1304,6 +1314,23 @@ UNITED PROGRESSIVE PEOPLES
SKILL_JTAC = SKILL_JTAC_EXPERT,
)
+/datum/skills/upp/kapitan
+ name = "UPP Kapitan"
+ skills = list(
+ SKILL_CQC = SKILL_CQC_SKILLED,
+ SKILL_POLICE = SKILL_POLICE_SKILLED,
+ SKILL_FIREMAN = SKILL_FIREMAN_EXPERT,
+ SKILL_LEADERSHIP = SKILL_LEAD_MASTER,
+ SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED,
+ SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER,
+ SKILL_ENGINEER = SKILL_ENGINEER_ENGI,
+ SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI,
+ SKILL_MEDICAL = SKILL_MEDICAL_MEDIC,
+ SKILL_FIREARMS = SKILL_FIREARMS_EXPERT,
+ SKILL_VEHICLE = SKILL_VEHICLE_SMALL,
+ SKILL_JTAC = SKILL_JTAC_EXPERT,
+ )
+
/datum/skills/upp/commander
name = "UPP Command Officer"
skills = list(
diff --git a/code/datums/supply_packs/_supply_packs.dm b/code/datums/supply_packs/_supply_packs.dm
index 8f38c6151589..061779d9e5ce 100644
--- a/code/datums/supply_packs/_supply_packs.dm
+++ b/code/datums/supply_packs/_supply_packs.dm
@@ -23,6 +23,8 @@
var/iteration_needed = 0
/// How many W-Y dollars are deducted from the supply controller. Only use for contraband.
var/dollar_cost = 0
+ /// How much "heat" this crate adds, too much heat will send an investigation. Only use for contraband.
+ var/crate_heat = 0
/datum/supply_packs/New()
if(randomised_num_contained)
diff --git a/code/datums/supply_packs/black_market.dm b/code/datums/supply_packs/black_market.dm
index 1737a66e85a9..5f8fae824312 100644
--- a/code/datums/supply_packs/black_market.dm
+++ b/code/datums/supply_packs/black_market.dm
@@ -16,7 +16,7 @@ black market prices are NOT based on real or in-universe costs. they are based o
*/
-/datum/supply_packs/contraband//base
+/datum/supply_packs/contraband //base
name = "contraband crate"
contains = null
containertype = null
@@ -25,6 +25,7 @@ black market prices are NOT based on real or in-universe costs. they are based o
contraband = TRUE
cost = 0
dollar_cost = 50
+ crate_heat = 5
/obj/structure/largecrate/black_market
/// Wipes points from objects inside to avoid infinite farming.
@@ -68,11 +69,13 @@ Non-USCM items, from CLF, UPP, colonies, etc. Mostly combat-related.
contains = list(/obj/item/device/black_market_scanner)
containername = "trash cart"
dollar_cost = 5
+ crate_heat = 0
containertype = /obj/structure/closet/crate/trashcart
/datum/supply_packs/contraband/seized/confiscated_equipment
name = "seized foreign equipment crate"
dollar_cost = 70
+ crate_heat = 10
containertype = /obj/structure/largecrate/black_market/confiscated_equipment
/obj/structure/largecrate/black_market/confiscated_equipment/Initialize()
@@ -115,6 +118,7 @@ Non-USCM items, from CLF, UPP, colonies, etc. Mostly combat-related.
name = "seized foreign weaponry crate"
contains = list()
dollar_cost = 45
+ crate_heat = 15
containertype = /obj/structure/largecrate/black_market/confiscated_weaponry
/obj/structure/largecrate/black_market/confiscated_weaponry/Initialize()
@@ -413,6 +417,7 @@ Additionally, weapons that are way too good to put in the basically-flavor black
/obj/item/ammo_magazine/pistol/holdout,
)
dollar_cost = 5
+ crate_heat = 2
containertype = /obj/structure/largecrate/black_market
/datum/supply_packs/contraband/seized/bizon
@@ -443,7 +448,7 @@ Additionally, weapons that are way too good to put in the basically-flavor black
containertype = /obj/structure/largecrate/black_market
/datum/supply_packs/contraband/seized/small
- name = "S&W revolver (x6 magazines included)"
+ name = "Smith and Wesson revolver (x6 magazines included)"
contains = list(
/obj/item/weapon/gun/revolver/small,
/obj/item/ammo_magazine/revolver/small,
@@ -527,6 +532,7 @@ Primarily made up of things that would be best utilized, well, shipside. Recreat
/obj/item/reagent_container/food/drinks/bottle/beer/craft/mono,
)
dollar_cost = 35
+ crate_heat = -5
containertype = /obj/structure/largecrate/black_market
/datum/supply_packs/contraband/shipside/confiscated_medicine
@@ -541,6 +547,7 @@ Primarily made up of things that would be best utilized, well, shipside. Recreat
/obj/item/storage/pill_bottle/paracetamol,
)
dollar_cost = 25
+ crate_heat = 3
containertype = /obj/structure/largecrate/black_market
/datum/supply_packs/contraband/shipside/confiscated_cuisine
@@ -582,6 +589,7 @@ Primarily made up of things that would be best utilized, well, shipside. Recreat
/obj/item/reagent_container/food/condiment/hotsauce/franks/macho,
)
dollar_cost = 15
+ crate_heat = -5
containertype = /obj/structure/largecrate/black_market
@@ -598,6 +606,7 @@ Primarily made up of things that would be best utilized, well, shipside. Recreat
/obj/item/storage/fancy/cigar/tarbacktube,
)
dollar_cost = 45
+ crate_heat = -5
containertype = /obj/structure/largecrate/black_market
/datum/supply_packs/contraband/shipside/confiscated_miscellaneous
@@ -622,7 +631,6 @@ Primarily made up of things that would be best utilized, well, shipside. Recreat
/obj/item/explosive/grenade/smokebomb,
/obj/item/corncob,
/obj/item/poster,
- /obj/item/weapon/banhammer,
/obj/item/toy/prize/ripley,
/obj/item/toy/prize/fireripley,
/obj/item/toy/prize/deathripley,
@@ -639,6 +647,7 @@ Primarily made up of things that would be best utilized, well, shipside. Recreat
/obj/item/pamphlet/language/spanish,
)
dollar_cost = 30
+ crate_heat = -2
containertype = /obj/structure/largecrate/black_market
@@ -659,6 +668,7 @@ USCM spare items, miscellaneous gear that's too niche and distant (or restricted
name = "surplus USCM poncho crate (x2)"
dollar_cost = 15
containertype = /obj/structure/largecrate/black_market/poncho
+ crate_heat = -2
/obj/structure/largecrate/black_market/poncho/Initialize()
. = ..()
@@ -671,6 +681,7 @@ USCM spare items, miscellaneous gear that's too niche and distant (or restricted
/datum/supply_packs/contraband/surplus/uscm_heap
name = "surplus high-explosive armor-piercing M41A magazine crate (x3)"
dollar_cost = 40
+ crate_heat = -2
containertype = /obj/structure/largecrate/black_market/uscm_heap
/obj/structure/largecrate/black_market/uscm_heap/Initialize()
@@ -715,6 +726,7 @@ USCM spare items, miscellaneous gear that's too niche and distant (or restricted
name = "surplus magazine box (Ext M4RA x 12)"
contains = list(/obj/item/ammo_box/magazine/m4ra/ext)
dollar_cost = 45
+ crate_heat = 3
containertype = /obj/structure/largecrate/black_market
/* - Misc. USCM weaponry - */
@@ -761,14 +773,13 @@ This is where the RO can reclaim their lost honor and purchase the M44 custom, t
/datum/supply_packs/contraband/deep_storage
group = "Deep Storage"
-
-
-// Helmet Garb
+ crate_heat = -5
/datum/supply_packs/contraband/deep_storage/spacejam
name = "Tickets to Space Jam"
contains = list(/obj/item/prop/helmetgarb/spacejam_tickets)
dollar_cost = 5
+ crate_heat = -2
containertype = /obj/structure/largecrate/black_market
/datum/supply_packs/contraband/deep_storage/broken_nvgs
@@ -923,6 +934,7 @@ This is where the RO can reclaim their lost honor and purchase the M44 custom, t
name = "Frozen Lime"
contains = list(/obj/item/reagent_container/food/snacks/grown/lime)
dollar_cost = 5
+ crate_heat = -2
containertype = /obj/structure/largecrate/black_market
/datum/supply_packs/contraband/deep_storage/uno_reverse_random
@@ -961,18 +973,21 @@ This is where the RO can reclaim their lost honor and purchase the M44 custom, t
name = "D18 Holdout Pistol"
contains = list(/obj/item/storage/box/clf)
dollar_cost = 10
+ crate_heat = 2
containertype = /obj/structure/largecrate/black_market
/datum/supply_packs/contraband/deep_storage/m4a3_c
name = "M4A3 Custom Pistol"
contains = list(/obj/item/weapon/gun/pistol/m4a3/custom)
dollar_cost = 35
+ crate_heat = 4
containertype = /obj/structure/largecrate/black_market
/datum/supply_packs/contraband/deep_storage/m44_c
name = "M44 Custom Revolver"
contains = list(/obj/item/weapon/gun/revolver/m44/custom)
dollar_cost = 70
+ crate_heat = 4
containertype = /obj/structure/largecrate/black_market
/* --- MISCELLANEOUS --- */
@@ -989,6 +1004,7 @@ Things that don't fit anywhere else. If they're meant for shipside use, they pro
/datum/supply_packs/contraband/miscellaneous/secured_wildlife
name = "secured wildlife container"
dollar_cost = 45
+ crate_heat = 7
containertype = /obj/structure/largecrate/black_market/secured_wildlife
/obj/structure/largecrate/black_market/secured_wildlife
@@ -1007,6 +1023,7 @@ Things that don't fit anywhere else. If they're meant for shipside use, they pro
/datum/supply_packs/contraband/miscellaneous/potted_plant
name = "potted plant crate"
dollar_cost = 50
+ crate_heat = -10
contains = list(/obj/structure/flora/pottedplant/random/unanchored)
containertype = /obj/structure/largecrate/black_market
@@ -1019,6 +1036,7 @@ Things that don't fit anywhere else. If they're meant for shipside use, they pro
/datum/supply_packs/contraband/miscellaneous/clf_supplies
name = "unmarked CLF supply crate"
dollar_cost = 40
+ crate_heat = 25
contains = list()
containertype = /obj/structure/largecrate/black_market/clf_supplies
diff --git a/code/datums/supply_packs/clothing.dm b/code/datums/supply_packs/clothing.dm
index 1c7241bb253b..4f0d414a2655 100644
--- a/code/datums/supply_packs/clothing.dm
+++ b/code/datums/supply_packs/clothing.dm
@@ -113,7 +113,7 @@
/obj/item/clothing/under/rank/qm_suit,
/obj/item/clothing/under/marine/officer/bridge,
/obj/item/clothing/under/marine/officer/bridge,
- /obj/item/clothing/under/marine/officer/exec,
+ /obj/item/clothing/under/marine/dress,
/obj/item/clothing/under/marine/officer/ce,
)
name = "officer outfit crate"
diff --git a/code/datums/supply_packs/gear.dm b/code/datums/supply_packs/gear.dm
index b67f8f134c25..54a2ae221c9d 100644
--- a/code/datums/supply_packs/gear.dm
+++ b/code/datums/supply_packs/gear.dm
@@ -63,15 +63,3 @@
containertype = /obj/structure/closet/crate/ammo
containername = "fulton recovery device crate"
group = "Gear"
-
-/datum/supply_packs/nvg
- name = "M2 Night Vision Goggles Crate (x3)"
- contains = list(
- /obj/item/prop/helmetgarb/helmet_nvg,
- /obj/item/prop/helmetgarb/helmet_nvg,
- /obj/item/prop/helmetgarb/helmet_nvg,
- )
- cost = 60
- containertype = /obj/structure/closet/crate/supply
- containername = "M2 Night Vission Goggles Crate"
- group = "Gear"
diff --git a/code/defines/procs/announcement.dm b/code/defines/procs/announcement.dm
index 5223d63b8e59..60bf117a6b92 100644
--- a/code/defines/procs/announcement.dm
+++ b/code/defines/procs/announcement.dm
@@ -125,7 +125,7 @@
//AI shipside announcement, that uses announcement mechanic instead of talking into comms
//to ensure that all humans on ship hear it regardless of comms and power
-/proc/shipwide_ai_announcement(message, title = MAIN_AI_SYSTEM, sound_to_play = sound('sound/misc/interference.ogg'), signature)
+/proc/shipwide_ai_announcement(message, title = MAIN_AI_SYSTEM, sound_to_play = sound('sound/misc/interference.ogg'), signature, ares_logging = ARES_LOG_MAIN)
var/list/targets = GLOB.human_mob_list + GLOB.dead_mob_list
for(var/mob/T in targets)
if(isobserver(T))
@@ -136,8 +136,12 @@
if(!isnull(signature))
message += " Signed by, [signature] "
var/datum/ares_link/link = GLOB.ares_link
- if(link.interface && !(link.interface.inoperable()))
- link.log_ares_announcement(title, message)
+ if(ares_can_log())
+ switch(ares_logging)
+ if(ARES_LOG_MAIN)
+ link.log_ares_announcement(title, message)
+ if(ARES_LOG_SECURITY)
+ link.log_ares_security(title, message)
announcement_helper(message, title, targets, sound_to_play)
diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm
index 826b2dc0585f..c81da5556e24 100644
--- a/code/game/area/areas.dm
+++ b/code/game/area/areas.dm
@@ -90,7 +90,7 @@
initialize_power()
/area/Initialize(mapload, ...)
- icon_state = "" //Used to reset the icon overlay, I assume.
+ icon = null
layer = AREAS_LAYER
uid = ++global_uid
. = ..()
diff --git a/code/game/gamemodes/cm_initialize.dm b/code/game/gamemodes/cm_initialize.dm
index 36271054bb21..effd3325f887 100644
--- a/code/game/gamemodes/cm_initialize.dm
+++ b/code/game/gamemodes/cm_initialize.dm
@@ -356,17 +356,21 @@ Additional game mode variables.
else
available_xenos_non_ssd += cur_xeno
- var/datum/hive_status/hive
- for(var/hivenumber in GLOB.hive_datum)
- hive = GLOB.hive_datum[hivenumber]
- if(!hive.hardcore && hive.stored_larva && (hive.hive_location || (world.time < XENO_BURIED_LARVA_TIME_LIMIT + SSticker.round_start_time)))
- if(SSticker.mode && (SSticker.mode.flags_round_type & MODE_RANDOM_HIVE))
- available_xenos |= "any buried larva"
- LAZYADD(available_xenos["any buried larva"], hive)
- else
- var/larva_option = "buried larva ([hive])"
- available_xenos += larva_option
- available_xenos[larva_option] = list(hive)
+ // Only offer buried larva if there is no queue:
+ // This basically means this block of code will almost never execute, because we are instead relying on the hive cores/larva pops to handle their larva
+ // Technically this should be after a get_alien_candidates() call to be accurate, but we are intentionally trying to not call that proc as much as possible
+ if(GLOB.xeno_queue_candidate_count < 1)
+ var/datum/hive_status/hive
+ for(var/hivenumber in GLOB.hive_datum)
+ hive = GLOB.hive_datum[hivenumber]
+ if(!hive.hardcore && hive.stored_larva && (hive.hive_location || (world.time < XENO_BURIED_LARVA_TIME_LIMIT + SSticker.round_start_time)))
+ if(SSticker.mode && (SSticker.mode.flags_round_type & MODE_RANDOM_HIVE))
+ available_xenos |= "any buried larva"
+ LAZYADD(available_xenos["any buried larva"], hive)
+ else
+ var/larva_option = "buried larva ([hive])"
+ available_xenos += larva_option
+ available_xenos[larva_option] = list(hive)
if(!available_xenos.len || (instant_join && !available_xenos_non_ssd.len))
if(!xeno_candidate.client || !xeno_candidate.client.prefs || !(xeno_candidate.client.prefs.be_special & BE_ALIEN_AFTER_DEATH))
@@ -378,7 +382,7 @@ Additional game mode variables.
var/mob/dead/observer/candidate_observer = xeno_candidate
if(istype(candidate_observer))
if(candidate_observer.larva_queue_cached_message)
- to_chat(xeno_candidate, candidate_observer.larva_queue_cached_message)
+ to_chat(xeno_candidate, SPAN_XENONOTICE(candidate_observer.larva_queue_cached_message))
return FALSE
// No cache, lets check now then
@@ -389,14 +393,14 @@ Additional game mode variables.
cur_hive = GLOB.hive_datum[hive_num]
for(var/mob_name in cur_hive.banished_ckeys)
if(cur_hive.banished_ckeys[mob_name] == xeno_candidate.ckey)
- candidate_observer.larva_queue_cached_message += "\n" + SPAN_WARNING("NOTE: You are banished from the [cur_hive] and you may not rejoin unless the Queen re-admits you or dies. Your queue number won't update until there is a hive you aren't banished from.")
+ candidate_observer.larva_queue_cached_message += "\nNOTE: You are banished from the [cur_hive] and you may not rejoin unless the Queen re-admits you or dies. Your queue number won't update until there is a hive you aren't banished from."
break
- to_chat(xeno_candidate, candidate_observer.larva_queue_cached_message)
+ to_chat(xeno_candidate, SPAN_XENONOTICE(candidate_observer.larva_queue_cached_message))
return FALSE
// We aren't in queue yet, lets teach them about the queue then
- candidate_observer.larva_queue_cached_message = SPAN_XENONOTICE("You are currently awaiting assignment in the larva queue. The ordering is based on your time of death or the time you joined. When you have been dead long enough and are not inactive, you will periodically receive messages where you are in the queue relative to other currently valid xeno candidates. Your current position will shift as others change their preferences or go inactive, but your relative position compared to all observers is the same. Note: Playing as a facehugger or in the thunderdome will not alter your time of death. This means you won't lose your relative place in queue if you step away, disconnect, play as a facehugger, or play in the thunderdome.")
- to_chat(xeno_candidate, candidate_observer.larva_queue_cached_message)
+ candidate_observer.larva_queue_cached_message = "You are currently awaiting assignment in the larva queue. The ordering is based on your time of death or the time you joined. When you have been dead long enough and are not inactive, you will periodically receive messages where you are in the queue relative to other currently valid xeno candidates. Your current position will shift as others change their preferences or go inactive, but your relative position compared to all observers is the same. Note: Playing as a facehugger or in the thunderdome will not alter your time of death. This means you won't lose your relative place in queue if you step away, disconnect, play as a facehugger, or play in the thunderdome."
+ to_chat(xeno_candidate, SPAN_XENONOTICE(candidate_observer.larva_queue_cached_message))
return FALSE
var/mob/living/carbon/xenomorph/new_xeno
@@ -446,6 +450,10 @@ Additional game mode variables.
to_chat(xeno_candidate, SPAN_WARNING("You cannot join if the xenomorph is dead."))
return FALSE
+ if(new_xeno.health <= 0)
+ to_chat(xeno_candidate, SPAN_WARNING("You cannot join if the xenomorph is in critical condition or unconscious."))
+ return FALSE
+
if(!xeno_bypass_timer)
var/deathtime = world.time - xeno_candidate.timeofdeath
if(istype(xeno_candidate, /mob/new_player))
diff --git a/code/game/gamemodes/cm_self_destruct.dm b/code/game/gamemodes/cm_self_destruct.dm
index d2f9c4eac784..b86de24eed74 100644
--- a/code/game/gamemodes/cm_self_destruct.dm
+++ b/code/game/gamemodes/cm_self_destruct.dm
@@ -278,7 +278,7 @@ var/global/datum/authority/branch/evacuation/EvacuationAuthority //This is initi
if(play_anim)
for(var/mob/current_mob as anything in alive_mobs + dead_mobs)
if(current_mob && current_mob.loc && current_mob.client)
- current_mob.client.screen |= C //They may have disconnected in the mean time.
+ current_mob.client.add_to_screen(C) //They may have disconnected in the mean time.
sleep(15) //Extra 1.5 seconds to look at the ship.
flick(override ? "intro_override" : "intro_nuke", C)
@@ -292,7 +292,7 @@ var/global/datum/authority/branch/evacuation/EvacuationAuthority //This is initi
current_mob.death(create_cause_data("nuclear explosion"))
else
if(play_anim)
- current_mob.client.screen -= C //those who managed to escape the z level at last second shouldn't have their view obstructed.
+ current_mob.client.remove_from_screen(C) //those who managed to escape the z level at last second shouldn't have their view obstructed.
if(play_anim)
flick(ship_status ? "ship_spared" : "ship_destroyed", C)
C.icon_state = ship_status ? "summary_spared" : "summary_destroyed"
diff --git a/code/game/gamemodes/colonialmarines/colonialmarines.dm b/code/game/gamemodes/colonialmarines/colonialmarines.dm
index cf2b7819a596..258a1a962713 100644
--- a/code/game/gamemodes/colonialmarines/colonialmarines.dm
+++ b/code/game/gamemodes/colonialmarines/colonialmarines.dm
@@ -265,7 +265,7 @@
continue
if(groundside_humans > (groundside_xenos * GROUNDSIDE_XENO_MULTIPLIER))
- SSticker.mode.get_specific_call("Xenomorphs Groundside (Forsaken)", FALSE, FALSE, announce_dispatch_message = FALSE)
+ SSticker.mode.get_specific_call("Xenomorphs Groundside (Forsaken)", TRUE, FALSE, FALSE, announce_dispatch_message = FALSE)
TIMER_COOLDOWN_START(src, COOLDOWN_HIJACK_GROUND_CHECK, 1 MINUTES)
diff --git a/code/game/gamemodes/colonialmarines/whiskey_outpost.dm b/code/game/gamemodes/colonialmarines/whiskey_outpost.dm
index e172939c847f..3d856f35ce77 100644
--- a/code/game/gamemodes/colonialmarines/whiskey_outpost.dm
+++ b/code/game/gamemodes/colonialmarines/whiskey_outpost.dm
@@ -193,7 +193,7 @@
announce_xeno_wave(wave)
if(xeno_wave == 7)
//Wave when Marines get reinforcements!
- get_specific_call("Marine Reinforcements (Squad)", TRUE, FALSE)
+ get_specific_call("Marine Reinforcements (Squad)", FALSE, TRUE, FALSE)
xeno_wave = min(xeno_wave + 1, WO_MAX_WAVE)
diff --git a/code/game/gamemodes/colonialmarines/xenovsxeno.dm b/code/game/gamemodes/colonialmarines/xenovsxeno.dm
index a0d555acd2fb..5623295f1915 100644
--- a/code/game/gamemodes/colonialmarines/xenovsxeno.dm
+++ b/code/game/gamemodes/colonialmarines/xenovsxeno.dm
@@ -285,7 +285,7 @@
round_statistics.track_round_end()
log_game("Round end result: [round_finished]")
to_chat_spaced(world, margin_top = 2, type = MESSAGE_TYPE_SYSTEM, html = SPAN_ROUNDHEADER("|Round Complete|"))
- to_chat_spaced(world, type = MESSAGE_TYPE_SYSTEM, html = SPAN_ROUNDBODY("Thus ends the story of the battling hives on [SSmapping.configs[GROUND_MAP].map_name]. [round_finished]\nThe game-mode was: [master_mode]!\nEnd of Round Grief (EORG) is an IMMEDIATE 3 hour ban with no warnings, see rule #3 for more details."))
+ to_chat_spaced(world, type = MESSAGE_TYPE_SYSTEM, html = SPAN_ROUNDBODY("Thus ends the story of the battling hives on [SSmapping.configs[GROUND_MAP].map_name]. [round_finished]\nThe game-mode was: [master_mode]!\n[CONFIG_GET(string/endofroundblurb)]"))
// for the toolbox
/datum/game_mode/xenovs/end_round_message()
diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm
index 5b007d275c32..5382d80f37a2 100644
--- a/code/game/gamemodes/game_mode.dm
+++ b/code/game/gamemodes/game_mode.dm
@@ -105,6 +105,7 @@ var/global/cas_tracking_id_increment = 0 //this var used to assign unique tracki
np.new_player_panel_proc()
round_time_lobby = world.time
log_game("Round started at [time2text(world.realtime)]")
+ log_game("Operation time at round start is [worldtime2text()]")
if(SSticker.mode)
log_game("Game mode set to [SSticker.mode]")
log_game("Server IP: [world.internet_address]:[world.port]")
@@ -129,7 +130,7 @@ var/global/cas_tracking_id_increment = 0 //this var used to assign unique tracki
round_statistics.track_round_end()
log_game("Round end result: [round_finished]")
to_chat_spaced(world, margin_top = 2, type = MESSAGE_TYPE_SYSTEM, html = SPAN_ROUNDHEADER("|Round Complete|"))
- to_chat_spaced(world, type = MESSAGE_TYPE_SYSTEM, html = SPAN_ROUNDBODY("Thus ends the story of the brave men and women of the [MAIN_SHIP_NAME] and their struggle on [SSmapping.configs[GROUND_MAP].map_name].\nThe game-mode was: [master_mode]!\nEnd of Round Grief (EORG) is an IMMEDIATE 3 hour ban with no warnings, see rule #3 for more details."))
+ to_chat_spaced(world, type = MESSAGE_TYPE_SYSTEM, html = SPAN_ROUNDBODY("Thus ends the story of the brave men and women of the [MAIN_SHIP_NAME] and their struggle on [SSmapping.configs[GROUND_MAP].map_name].\nThe game-mode was: [master_mode]!\n[CONFIG_GET(string/endofroundblurb)]"))
/datum/game_mode/proc/declare_completion()
if(round_statistics)
diff --git a/code/game/jobs/job/civilians/other/liaison.dm b/code/game/jobs/job/civilians/other/liaison.dm
index ba65720b8251..7f73376a05dd 100644
--- a/code/game/jobs/job/civilians/other/liaison.dm
+++ b/code/game/jobs/job/civilians/other/liaison.dm
@@ -6,7 +6,7 @@
selection_class = "job_cl"
flags_startup_parameters = ROLE_ADD_TO_DEFAULT
gear_preset = /datum/equipment_preset/uscm_ship/liaison
- entry_message_body = "As a representative of Weyland-Yutani Corporation , your job requires you to stay in character at all times. You are not required to follow military orders; however, you cannot give military orders. Your primary job is to observe and report back your findings to Weyland-Yutani. Follow regular game rules unless told otherwise by your superiors. Use your office fax machine to communicate with corporate headquarters or to acquire new directives. You may not receive anything back, and this is normal."
+ entry_message_body = "As a representative of Weyland-Yutani Corporation , your job requires you to stay in character at all times. You are not required to follow military orders; however, you cannot give military orders. Your primary job is to observe and report back your findings to Weyland-Yutani. Follow regular game rules unless told otherwise by your superiors. Use your office fax machine to communicate with corporate headquarters or to acquire new directives. You may not receive anything back, and this is normal."
var/mob/living/carbon/human/active_liaison
/datum/job/civilian/liaison/generate_entry_conditions(mob/living/liaison, whitelist_status)
diff --git a/code/game/jobs/job/civilians/other/mess_seargent.dm b/code/game/jobs/job/civilians/other/mess_seargent.dm
index 615df24ecb47..4b1975015a95 100644
--- a/code/game/jobs/job/civilians/other/mess_seargent.dm
+++ b/code/game/jobs/job/civilians/other/mess_seargent.dm
@@ -6,7 +6,7 @@
flags_startup_parameters = ROLE_ADD_TO_DEFAULT
supervisors = "the auxiliary support officer"
gear_preset = /datum/equipment_preset/uscm_ship/chef
- entry_message_body = "Your job is to service the marines with excellent food , drinks and entertaining the shipside crew when needed. You have a lot of freedom and it is up to you, to decide what to do with it. Good luck!"
+ entry_message_body = "Your job is to service the marines with excellent food , drinks and entertaining the shipside crew when needed. You have a lot of freedom and it is up to you, to decide what to do with it. Good luck!"
/obj/effect/landmark/start/chef
name = JOB_MESS_SERGEANT
diff --git a/code/game/jobs/job/civilians/other/survivors.dm b/code/game/jobs/job/civilians/other/survivors.dm
index ff2d7d229fba..5c82241c47de 100644
--- a/code/game/jobs/job/civilians/other/survivors.dm
+++ b/code/game/jobs/job/civilians/other/survivors.dm
@@ -15,9 +15,21 @@
spawn_positions = Clamp((round(count * SURVIVOR_TO_TOTAL_SPAWN_RATIO)), 2, 8)
total_positions = spawn_positions
-/datum/job/civilian/survivor/equip_job(mob/living/M)
+/datum/job/civilian/survivor/equip_job(mob/living/survivor)
+ var/generated_account = generate_money_account(survivor)
+ addtimer(CALLBACK(src, PROC_REF(announce_entry_message), survivor, generated_account), 2 SECONDS)
return
+/datum/job/civilian/survivor/announce_entry_message(mob/living/carbon/human/survivor, datum/money_account/account, whitelist_status) //The actual message that is displayed to the mob when they enter the game as a new player.
+ if(survivor?.loc && survivor.client)
+ //Document syntax cannot have tabs for proper formatting.
+ var/entrydisplay = " \
+ [SPAN_ROLE_BODY("|______________________|")] \n\
+ [SPAN_ROLE_BODY("[generate_entry_message(survivor)] [account ? "Your account number is: [account.account_number] . Your account pin is: [account.remote_access_pin] ." : "You do not have a bank account."]")] \n\
+ [SPAN_ROLE_BODY("|______________________|")] \
+ "
+ to_chat_spaced(survivor, html = entrydisplay)
+
/datum/job/civilian/survivor/spawn_in_player(mob/new_player/NP)
. = ..()
var/mob/living/carbon/human/H = .
diff --git a/code/game/jobs/job/civilians/support/cmo.dm b/code/game/jobs/job/civilians/support/cmo.dm
index 9f3ff20cffb3..8c4690ea2057 100644
--- a/code/game/jobs/job/civilians/support/cmo.dm
+++ b/code/game/jobs/job/civilians/support/cmo.dm
@@ -6,7 +6,7 @@
selection_class = "job_cmo"
flags_startup_parameters = ROLE_ADD_TO_DEFAULT
gear_preset = /datum/equipment_preset/uscm_ship/uscm_medical/cmo
- entry_message_body = "You're a commissioned officer of the USCM. You have authority over everything related to Medbay and Research , only able to be overriden by the XO and CO. You are in charge of medical staff, surgery, chemistry, stimulants and keeping the marines healthy overall."
+ entry_message_body = "You're a commissioned officer of the USCM. You have authority over everything related to Medbay and Research , only able to be overriden by the XO and CO. You are in charge of medical staff, surgery, chemistry, stimulants and keeping the marines healthy overall."
AddTimelock(/datum/job/civilian/professor, list(
JOB_MEDIC_ROLES = 10 HOURS
diff --git a/code/game/jobs/job/civilians/support/doctor.dm b/code/game/jobs/job/civilians/support/doctor.dm
index 587c4727690f..9e0853d96e33 100644
--- a/code/game/jobs/job/civilians/support/doctor.dm
+++ b/code/game/jobs/job/civilians/support/doctor.dm
@@ -32,9 +32,9 @@
//check what job option you took and generate the corresponding the good texte.
/datum/job/civilian/doctor/generate_entry_message(mob/living/carbon/human/H)
if(doctor)
- . = {"You're a commissioned officer of the USCM, though you are not in the ship's chain of command. You are a doctor and tasked with keeping the marines healthy and strong, usually in the form of surgery. You are a jack of all trades in medicine: you can medicate, perform surgery and produce pharmaceuticals. If you do not know what you are doing, mentorhelp so a mentor can assist you."}
+ . = {"You're a commissioned officer of the USCM, though you are not in the ship's chain of command. You are a doctor and tasked with keeping the marines healthy and strong, usually in the form of surgery. You are a jack of all trades in medicine: you can medicate, perform surgery and produce pharmaceuticals. If you do not know what you are doing, mentorhelp so a mentor can assist you."}
else
- . = {"You're a commissioned officer of the USCM, though you are not in the ship's chain of command. You are a surgeon and tasked with keeping the marines healthy and strong, usually in the form of surgery. You are a doctor that specializes in surgery, but you are also very capable in pharmacy and triage. If you do not know what you are doing, mentorhelp so a mentor can assist you."}
+ . = {"You're a commissioned officer of the USCM, though you are not in the ship's chain of command. You are a surgeon and tasked with keeping the marines healthy and strong, usually in the form of surgery. You are a doctor that specializes in surgery, but you are also very capable in pharmacy and triage. If you do not know what you are doing, mentorhelp so a mentor can assist you."}
/datum/job/civilian/doctor/set_spawn_positions(count)
spawn_positions = doc_slot_formula(count)
diff --git a/code/game/jobs/job/civilians/support/nurse.dm b/code/game/jobs/job/civilians/support/nurse.dm
index 034421d799aa..7a0cab16f559 100644
--- a/code/game/jobs/job/civilians/support/nurse.dm
+++ b/code/game/jobs/job/civilians/support/nurse.dm
@@ -6,7 +6,7 @@
selection_class = "job_doctor"
flags_startup_parameters = ROLE_ADD_TO_DEFAULT
gear_preset = /datum/equipment_preset/uscm_ship/uscm_medical/nurse
- entry_message_body = "You are tasked with keeping the Marines healthy and strong. You are also an expert when it comes to medication and treatment, and can do minor surgical procedures. Focus on assisting doctors and triaging wounded marines."
+ entry_message_body = "You are tasked with keeping the Marines healthy and strong. You are also an expert when it comes to medication and treatment, and can do minor surgical procedures. Focus on assisting doctors and triaging wounded marines."
/obj/effect/landmark/start/nurse
name = JOB_NURSE
diff --git a/code/game/jobs/job/civilians/support/researcher.dm b/code/game/jobs/job/civilians/support/researcher.dm
index fd33d1f03f0a..61245c8164ab 100644
--- a/code/game/jobs/job/civilians/support/researcher.dm
+++ b/code/game/jobs/job/civilians/support/researcher.dm
@@ -10,7 +10,7 @@
selection_class = "job_researcher"
flags_startup_parameters = ROLE_ADD_TO_DEFAULT
gear_preset = /datum/equipment_preset/uscm_ship/uscm_medical/researcher
- entry_message_body = "You're a commissioned officer of the USCM, though you are not in the ship's chain of command. You are tasked with researching and developing new medical treatments, helping your fellow doctors, and generally learning new things. Your role involves a lot of roleplaying, but you can perform the function of a regular doctor. Do not hand out things to Marines without getting permission from your supervisor."
+ entry_message_body = "You're a commissioned officer of the USCM, though you are not in the ship's chain of command. You are tasked with researching and developing new medical treatments, helping your fellow doctors, and generally learning new things. Your role involves a lot of roleplaying, but you can perform the function of a regular doctor. Do not hand out things to Marines without getting permission from your supervisor."
/datum/job/civilian/researcher/set_spawn_positions(count)
spawn_positions = rsc_slot_formula(count)
diff --git a/code/game/jobs/job/civilians/support/synthetic.dm b/code/game/jobs/job/civilians/support/synthetic.dm
index 10ab895cf276..3e02385bc96c 100644
--- a/code/game/jobs/job/civilians/support/synthetic.dm
+++ b/code/game/jobs/job/civilians/support/synthetic.dm
@@ -9,7 +9,7 @@
flags_startup_parameters = ROLE_ADD_TO_DEFAULT|ROLE_ADMIN_NOTIFY|ROLE_WHITELISTED|ROLE_CUSTOM_SPAWN
flags_whitelist = WHITELIST_SYNTHETIC
gear_preset = /datum/equipment_preset/synth/uscm
- entry_message_body = "You are a Synthetic! You are held to a higher standard and are required to obey not only the Server Rules but Marine Law and Synthetic Rules. Failure to do so may result in your White-list Removal. Your primary job is to support and assist all USCM Departments and Personnel on-board. In addition, being a Synthetic gives you knowledge in every field and specialization possible on-board the ship. As a Synthetic you answer to the acting commanding officer. Special circumstances may change this!"
+ entry_message_body = "You are a Synthetic! You are held to a higher standard and are required to obey not only the Server Rules but Marine Law and Synthetic Rules. Failure to do so may result in your White-list Removal. Your primary job is to support and assist all USCM Departments and Personnel on-board. In addition, being a Synthetic gives you knowledge in every field and specialization possible on-board the ship. As a Synthetic you answer to the acting commanding officer. Special circumstances may change this!"
/datum/job/civilian/synthetic/New()
. = ..()
diff --git a/code/game/jobs/job/civilians/support/working_joe.dm b/code/game/jobs/job/civilians/support/working_joe.dm
index bdc7d3aa071b..bc8f8c439900 100644
--- a/code/game/jobs/job/civilians/support/working_joe.dm
+++ b/code/game/jobs/job/civilians/support/working_joe.dm
@@ -42,9 +42,13 @@
/datum/job/civilian/working_joe/generate_entry_message(mob/living/carbon/human/H)
if(standard)
- . = {"You are a Working Joe. You are held to a higher standard and are required to obey not only the Server Rules but Marine Law, Roleplay Expectations and Synthetic Rules. Your primary task is to maintain the cleanliness of the ship, putting things in their proper place. Alternatively, your primary task may be to assist with manual labor in limited capacity, or clerical duties. Your capacities are limited, but you have all the equipment you need, and the central AI has a plan! Stay in character at all times. Use the APOLLO link to communicate with your uplink!"}
+ . = {"You are a Working Joe. You are held to a higher standard and are required to obey not only the Server Rules but Marine Law, Roleplay Expectations and Synthetic Rules. Your primary task is to maintain the cleanliness of the ship, putting things in their proper place. Alternatively, your primary task may be to assist with manual labor in limited capacity, or clerical duties. Your capacities are limited, but you have all the equipment you need, and the central AI has a plan! Stay in character at all times. Use the APOLLO link to communicate with your uplink!"}
else
- . = {"You are a Working Joe for Hazardous Environments! You are held to a higher standard and are required to obey not only the Server Rules but Marine Law, Roleplay Expectations and Synthetic Rules. You are a variant of the Working Joe built for tougher environments and fulfill the specific duty of dangerous repairs or maintenance. Your primary task is to maintain the reactor, SMES and AI Core. Your secondary task is to respond to hazardous environments, such as an atmospheric breach or biohazard spill, and assist with repairs when ordered to by either an AI Mainframe, or a Commisioned Officer. You should not be seen outside of emergencies besides in Engineering and the AI Core! Stay in character at all times. Use the APOLLO link to communicate with your uplink!"}
+ . = {"You are a Working Joe for Hazardous Environments! You are held to a higher standard and are required to obey not only the Server Rules but Marine Law, Roleplay Expectations and Synthetic Rules. You are a variant of the Working Joe built for tougher environments and fulfill the specific duty of dangerous repairs or maintenance. Your primary task is to maintain the reactor, SMES and AI Core. Your secondary task is to respond to hazardous environments, such as an atmospheric breach or biohazard spill, and assist with repairs when ordered to by either an AI Mainframe, or a Commisioned Officer. You should not be seen outside of emergencies besides in Engineering and the AI Core! Stay in character at all times. Use the APOLLO link to communicate with your uplink!"}
+
+/datum/job/civilian/working_joe/announce_entry_message(mob/living/carbon/human/H)
+ addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(ares_apollo_talk), "[H.real_name] has been activated."), 1.5 SECONDS)
+ return ..()
/obj/effect/landmark/start/working_joe
name = JOB_WORKING_JOE
diff --git a/code/game/jobs/job/command/auxiliary/auxiliary_support_officer.dm b/code/game/jobs/job/command/auxiliary/auxiliary_support_officer.dm
index 262ba271edbf..e5155c949a32 100644
--- a/code/game/jobs/job/command/auxiliary/auxiliary_support_officer.dm
+++ b/code/game/jobs/job/command/auxiliary/auxiliary_support_officer.dm
@@ -5,7 +5,7 @@
allow_additional = TRUE
flags_startup_parameters = ROLE_ADD_TO_DEFAULT
gear_preset = /datum/equipment_preset/uscm_ship/auxiliary_officer
- entry_message_body = "Your job is to oversee the hangar crew, the intel officers, the engineering department, and requisition department. You have many responsibilities and a few plates to keep spinning but your subordinates are mostly self-reliant. Assist where you can and make sure command personnel are confident the auxiliary departments are operating at peak efficiency."
+ entry_message_body = "Your job is to oversee the hangar crew, the intel officers, the engineering department, and requisition department. You have many responsibilities and a few plates to keep spinning but your subordinates are mostly self-reliant. Assist where you can and make sure command personnel are confident the auxiliary departments are operating at peak efficiency."
AddTimelock(/datum/job/command/auxiliary_officer, list(
JOB_SQUAD_ROLES = 5 HOURS,
diff --git a/code/game/jobs/job/command/auxiliary/crew_chief.dm b/code/game/jobs/job/command/auxiliary/crew_chief.dm
index 5f846bf6581e..c8dfe2a8eb37 100644
--- a/code/game/jobs/job/command/auxiliary/crew_chief.dm
+++ b/code/game/jobs/job/command/auxiliary/crew_chief.dm
@@ -7,7 +7,7 @@
supervisors = "the pilot officers"
flags_startup_parameters = ROLE_ADD_TO_DEFAULT
gear_preset = /datum/equipment_preset/uscm_ship/dcc
- entry_message_body = "Your job is to assist the pilot officer maintain the ship's dropship. You have authority only on the dropship, but you are expected to maintain order, as not to disrupt the pilot."
+ entry_message_body = "Your job is to assist the pilot officer maintain the ship's dropship. You have authority only on the dropship, but you are expected to maintain order, as not to disrupt the pilot."
AddTimelock(/datum/job/command/crew_chief, list(
JOB_SQUAD_ROLES = 5 HOURS
diff --git a/code/game/jobs/job/command/auxiliary/intel.dm b/code/game/jobs/job/command/auxiliary/intel.dm
index 10b8381c417e..8d83d49ed143 100644
--- a/code/game/jobs/job/command/auxiliary/intel.dm
+++ b/code/game/jobs/job/command/auxiliary/intel.dm
@@ -6,9 +6,9 @@
allow_additional = 1
scaled = 1
supervisors = "the auxiliary support officer"
- flags_startup_parameters = ROLE_ADD_TO_DEFAULT
+ flags_startup_parameters = ROLE_ADD_TO_DEFAULT|ROLE_ADD_TO_SQUAD
gear_preset = "USCM Intelligence Officer (IO) (Cryo)"
- entry_message_body = "Your job is to assist the marines in collecting intelligence related to the current operation to better inform command of their opposition. You are in charge of gathering any data disks, folders, and notes you may find on the operational grounds and decrypt them to grant the USCM additional resources."
+ entry_message_body = "Your job is to assist the marines in collecting intelligence related to the current operation to better inform command of their opposition. You are in charge of gathering any data disks, folders, and notes you may find on the operational grounds and decrypt them to grant the USCM additional resources."
/datum/job/command/intel/set_spawn_positions(count)
spawn_positions = int_slot_formula(count)
diff --git a/code/game/jobs/job/command/auxiliary/pilot.dm b/code/game/jobs/job/command/auxiliary/pilot.dm
index 57495fe8be28..a75846f92919 100644
--- a/code/game/jobs/job/command/auxiliary/pilot.dm
+++ b/code/game/jobs/job/command/auxiliary/pilot.dm
@@ -7,10 +7,11 @@
supervisors = "the auxiliary support officer"
flags_startup_parameters = ROLE_ADD_TO_DEFAULT
gear_preset = /datum/equipment_preset/uscm_ship/po
- entry_message_body = "Your job is to fly, protect, and maintain the ship's dropship. While you are an officer, your authority is limited to the dropship, where you have authority over the enlisted personnel. If you are not piloting, there is an autopilot fallback for command, but don't leave the dropship without reason."
+ entry_message_body = "Your job is to fly, protect, and maintain the ship's dropship. While you are an officer, your authority is limited to the dropship, where you have authority over the enlisted personnel. If you are not piloting, there is an autopilot fallback for command, but don't leave the dropship without reason."
+// Dropship Roles is both PO and DCC combined to not force people to backtrack
AddTimelock(/datum/job/command/pilot, list(
- JOB_SQUAD_ROLES = 5 HOURS
+ JOB_DROPSHIP_ROLES = 2 HOURS
))
/obj/effect/landmark/start/pilot
diff --git a/code/game/jobs/job/command/auxiliary/senior.dm b/code/game/jobs/job/command/auxiliary/senior.dm
index 68b9a99e4c4f..5e9b7caf1f10 100644
--- a/code/game/jobs/job/command/auxiliary/senior.dm
+++ b/code/game/jobs/job/command/auxiliary/senior.dm
@@ -3,10 +3,13 @@
flags_startup_parameters = ROLE_ADD_TO_DEFAULT|ROLE_ADMIN_NOTIFY|ROLE_WHITELISTED
flags_whitelist = WHITELIST_MENTOR
gear_preset = /datum/equipment_preset/uscm_ship/sea
- entry_message_body = "You are held to a higher standard and are required to obey not only the Server Rules but Marine Law and Standard Operating Procedure . Failure to do so may result in your Mentorship Removal. Your primary job is to teach others the game and its mechanics, and offer advice to all USCM Departments and Personnel on-board."
job_options = list("Gunnery Sergeant" = "GySGT", "Master Sergeant" = "MSgt", "First Sergeant" = "1Sgt", "Master Gunnery Sergeant" = "MGySgt", "Sergeant Major" = "SgtMaj")
+/datum/job/command/senior/on_config_load()
+ entry_message_body = "You are held to a higher standard and are required to obey not only the Server Rules but Marine Law and Standard Operating Procedure . Failure to do so may result in your Mentorship Removal. Your primary job is to teach others the game and its mechanics, and offer advice to all USCM Departments and Personnel on-board."
+ return ..()
+
/datum/job/command/senior/announce_entry_message(mob/living/carbon/human/H)
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(all_hands_on_deck), "Attention all hands, [H.get_paygrade(0)] [H.real_name] on deck!"), 1.5 SECONDS)
return ..()
diff --git a/code/game/jobs/job/command/cic/captain.dm b/code/game/jobs/job/command/cic/captain.dm
index 4049554f7799..98db585e1d07 100644
--- a/code/game/jobs/job/command/cic/captain.dm
+++ b/code/game/jobs/job/command/cic/captain.dm
@@ -16,7 +16,7 @@
)
/datum/job/command/commander/generate_entry_message()
- entry_message_body = "You are the Commanding Officer of the [MAIN_SHIP_NAME] as well as the operation. Your goal is to lead the Marines on their mission as well as protect and command the ship and her crew. Your job involves heavy roleplay and requires you to behave like a high-ranking officer and to stay in character at all times. As the Commanding Officer your only superior is High Command itself. You must abide by the Commanding Officer Code of Conduct . Failure to do so may result in punitive action against you. Godspeed."
+ entry_message_body = "You are the Commanding Officer of the [MAIN_SHIP_NAME] as well as the operation. Your goal is to lead the Marines on their mission as well as protect and command the ship and her crew. Your job involves heavy roleplay and requires you to behave like a high-ranking officer and to stay in character at all times. As the Commanding Officer your only superior is High Command itself. You must abide by the Commanding Officer Code of Conduct . Failure to do so may result in punitive action against you. Godspeed."
return ..()
/datum/job/command/commander/get_whitelist_status(list/roles_whitelist, client/player)
diff --git a/code/game/jobs/job/command/cic/executive.dm b/code/game/jobs/job/command/cic/executive.dm
index cc9b4f65e624..f717a03e1229 100644
--- a/code/game/jobs/job/command/cic/executive.dm
+++ b/code/game/jobs/job/command/cic/executive.dm
@@ -5,7 +5,7 @@
gear_preset = /datum/equipment_preset/uscm_ship/xo
/datum/job/command/executive/generate_entry_message(mob/living/carbon/human/H)
- entry_message_body = "You are second in command aboard the [MAIN_SHIP_NAME], and are in next in the chain of command after the Commanding Officer. Where applicable, you must abide by the Commanding Officer Code of Conduct . You may need to fill in for other duties if areas are understaffed, and you are given access to do so. Make the USCM proud!"
+ entry_message_body = "You are second in command aboard the [MAIN_SHIP_NAME], and are in next in the chain of command after the Commanding Officer. Where applicable, you must abide by the Commanding Officer Code of Conduct . You may need to fill in for other duties if areas are understaffed, and you are given access to do so. Make the USCM proud!"
return ..()
/datum/job/command/executive/generate_entry_conditions(mob/living/M, whitelist_status)
diff --git a/code/game/jobs/job/command/cic/staffofficer.dm b/code/game/jobs/job/command/cic/staffofficer.dm
index 82a537dc83f6..fff51624aa4b 100644
--- a/code/game/jobs/job/command/cic/staffofficer.dm
+++ b/code/game/jobs/job/command/cic/staffofficer.dm
@@ -6,7 +6,7 @@
scaled = FALSE
flags_startup_parameters = ROLE_ADD_TO_DEFAULT
gear_preset = /datum/equipment_preset/uscm_ship/so
- entry_message_body = "Your job is to monitor the Marines, man the CIC, and listen to your superior officers. You are in charge of logistics and the overwatch system. You are also in line to take command after other eligible superior commissioned officers."
+ entry_message_body = "Your job is to monitor the Marines, man the CIC, and listen to your superior officers. You are in charge of logistics and the overwatch system. You are also in line to take command after other eligible superior commissioned officers."
/datum/job/command/bridge/set_spawn_positions(count)
spawn_positions = so_slot_formula(count)
diff --git a/code/game/jobs/job/command/command.dm b/code/game/jobs/job/command/command.dm
index b95ddfe9d33c..d430352d6e83 100644
--- a/code/game/jobs/job/command/command.dm
+++ b/code/game/jobs/job/command/command.dm
@@ -26,4 +26,11 @@
/datum/timelock/human/get_role_requirement(client/C)
return time_required - C.get_total_human_playtime()
+
+/datum/timelock/dropship
+ name = "Dropship Roles"
+
+/datum/timelock/dropship/New(name, time_required, list/roles)
+ . = ..()
+ src.roles = JOB_DROPSHIP_ROLES_LIST
diff --git a/code/game/jobs/job/command/police/chief_police.dm b/code/game/jobs/job/command/police/chief_police.dm
index 60bc564af3b1..b76943c4d0ac 100644
--- a/code/game/jobs/job/command/police/chief_police.dm
+++ b/code/game/jobs/job/command/police/chief_police.dm
@@ -4,7 +4,7 @@
selection_class = "job_cmp"
flags_startup_parameters = ROLE_ADD_TO_DEFAULT
gear_preset = /datum/equipment_preset/uscm_ship/uscm_police/cmp
- entry_message_body = "You are held by a higher standard and are required to obey not only the server rules but the Marine Law . Failure to do so may result in a job ban or server ban. You lead the Military Police, ensure your officers maintain peace and stability aboard the ship. Marines can get rowdy after a few weeks of cryosleep! In addition, you are tasked with the security of high-ranking personnel, including the command staff. Keep them safe!"
+ entry_message_body = "You are held by a higher standard and are required to obey not only the server rules but the Marine Law . Failure to do so may result in a job ban or server ban. You lead the Military Police, ensure your officers maintain peace and stability aboard the ship. Marines can get rowdy after a few weeks of cryosleep! In addition, you are tasked with the security of high-ranking personnel, including the command staff. Keep them safe!"
AddTimelock(/datum/job/command/warrant, list(
JOB_POLICE_ROLES = 15 HOURS,
diff --git a/code/game/jobs/job/command/police/police.dm b/code/game/jobs/job/command/police/police.dm
index 48cd9b33e99c..7285c5b278b1 100644
--- a/code/game/jobs/job/command/police/police.dm
+++ b/code/game/jobs/job/command/police/police.dm
@@ -8,7 +8,7 @@
selection_class = "job_mp"
flags_startup_parameters = ROLE_ADD_TO_DEFAULT
gear_preset = /datum/equipment_preset/uscm_ship/uscm_police/mp
- entry_message_body = "You are held by a higher standard and are required to obey not only the server rules but the Marine Law . Failure to do so may result in a job ban or server ban. Your primary job is to maintain peace and stability aboard the ship. Marines can get rowdy after a few weeks of cryosleep! In addition, you are tasked with the security of high-ranking personnel, including the command staff. Keep them safe!"
+ entry_message_body = "You are held by a higher standard and are required to obey not only the server rules but the Marine Law . Failure to do so may result in a job ban or server ban. Your primary job is to maintain peace and stability aboard the ship. Marines can get rowdy after a few weeks of cryosleep! In addition, you are tasked with the security of high-ranking personnel, including the command staff. Keep them safe!"
/datum/job/command/police/set_spawn_positions(count)
spawn_positions = mp_slot_formula(count)
diff --git a/code/game/jobs/job/command/police/warden.dm b/code/game/jobs/job/command/police/warden.dm
index 851b43debd3c..55cbea975401 100644
--- a/code/game/jobs/job/command/police/warden.dm
+++ b/code/game/jobs/job/command/police/warden.dm
@@ -5,7 +5,7 @@
flags_startup_parameters = ROLE_ADD_TO_DEFAULT
supervisors = "the Chief MP"
gear_preset = /datum/equipment_preset/uscm_ship/uscm_police/warden
- entry_message_body = "You are held by a higher standard and are required to obey not only the server rules but the Marine Law . Failure to do so may result in a job ban or server ban. Your primary job is to maintain peace and stability aboard the ship. Marines can get rowdy after a few weeks of cryosleep! In addition, you are tasked with the mainting security records and overwatching any prisoners in Brig."
+ entry_message_body = "You are held by a higher standard and are required to obey not only the server rules but the Marine Law . Failure to do so may result in a job ban or server ban. Your primary job is to maintain peace and stability aboard the ship. Marines can get rowdy after a few weeks of cryosleep! In addition, you are tasked with the mainting security records and overwatching any prisoners in Brig."
AddTimelock(/datum/job/command/warden, list(
JOB_POLICE_ROLES = 10 HOURS
diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm
index 0785fc5c337f..0d68d23e5524 100644
--- a/code/game/jobs/job/job.dm
+++ b/code/game/jobs/job/job.dm
@@ -43,8 +43,25 @@
/datum/job/New()
. = ..()
+ RegisterSignal(SSdcs, COMSIG_GLOB_CONFIG_LOADED, PROC_REF(on_config_load))
+
minimum_playtimes = setup_requirements(list())
- if(!disp_title) disp_title = title
+ if(!disp_title)
+ disp_title = title
+
+/datum/job/proc/on_config_load()
+ if(entry_message_body)
+ entry_message_body = replace_placeholders(entry_message_body)
+
+/datum/job/proc/replace_placeholders(replacement_string)
+ replacement_string = replacetextEx(replacement_string, "%WIKIURL%", generate_wiki_link())
+ replacement_string = replacetextEx(replacement_string, "%LAWURL%", "[CONFIG_GET(string/wikiarticleurl)]/[URL_WIKI_LAW]")
+ return replacement_string
+
+/datum/job/proc/generate_wiki_link()
+ if(!CONFIG_GET(string/wikiarticleurl))
+ return ""
+ return "[CONFIG_GET(string/wikiarticleurl)]/[replacetext(title, " ", "_")]"
/datum/job/proc/get_whitelist_status(list/roles_whitelist, client/player)
if(!roles_whitelist)
diff --git a/code/game/jobs/job/logistics/cargo/cargo_tech.dm b/code/game/jobs/job/logistics/cargo/cargo_tech.dm
index 8041e8c82c75..3b588022bd97 100644
--- a/code/game/jobs/job/logistics/cargo/cargo_tech.dm
+++ b/code/game/jobs/job/logistics/cargo/cargo_tech.dm
@@ -8,7 +8,7 @@
selection_class = "job_ct"
flags_startup_parameters = ROLE_ADD_TO_DEFAULT
gear_preset = /datum/equipment_preset/uscm_ship/cargo
- entry_message_body = "Your job is to dispense supplies to the marines, including weapon attachments. Stay in your department when possible to ensure the marines have full access to the supplies they may require. Listen to the radio in case someone requests a supply drop via the overwatch system."
+ entry_message_body = "Your job is to dispense supplies to the marines, including weapon attachments. Stay in your department when possible to ensure the marines have full access to the supplies they may require. Listen to the radio in case someone requests a supply drop via the overwatch system."
/datum/job/logistics/cargo/set_spawn_positions(count)
spawn_positions = ct_slot_formula(count)
diff --git a/code/game/jobs/job/logistics/cargo/chief_req.dm b/code/game/jobs/job/logistics/cargo/chief_req.dm
index 3b6fb7262a80..76b7e98f2db8 100644
--- a/code/game/jobs/job/logistics/cargo/chief_req.dm
+++ b/code/game/jobs/job/logistics/cargo/chief_req.dm
@@ -3,7 +3,7 @@
selection_class = "job_qm"
flags_startup_parameters = ROLE_ADD_TO_DEFAULT
gear_preset = /datum/equipment_preset/uscm_ship/qm
- entry_message_body = "Your job is to dispense supplies to the marines, including weapon attachments. Your cargo techs can help you out, but you have final say in your department. Make sure they're not goofing off. While you may request paperwork for supplies, do not go out of your way to screw with marines, unless you want to get deposed. A happy ship is a well-functioning ship."
+ entry_message_body = "Your job is to dispense supplies to the marines, including weapon attachments. Your cargo techs can help you out, but you have final say in your department. Make sure they're not goofing off. While you may request paperwork for supplies, do not go out of your way to screw with marines, unless you want to get deposed. A happy ship is a well-functioning ship."
AddTimelock(/datum/job/logistics/requisition, list(
JOB_REQUISITION_ROLES = 10 HOURS,
diff --git a/code/game/jobs/job/logistics/engi/chief_engineer.dm b/code/game/jobs/job/logistics/engi/chief_engineer.dm
index 9db14540e74a..3a15c8632953 100644
--- a/code/game/jobs/job/logistics/engi/chief_engineer.dm
+++ b/code/game/jobs/job/logistics/engi/chief_engineer.dm
@@ -3,7 +3,7 @@
selection_class = "job_ce"
flags_startup_parameters = ROLE_ADD_TO_DEFAULT
gear_preset = /datum/equipment_preset/uscm_ship/chief_engineer
- entry_message_body = "Your job is to maintain your department and keep your technicians in check. You are responsible for engineering, power, ordnance, and the orbital cannon. Should the commanding and executive officer be unavailable, you are next in the chain of command."
+ entry_message_body = "Your job is to maintain your department and keep your technicians in check. You are responsible for engineering, power, ordnance, and the orbital cannon. Should the commanding and executive officer be unavailable, you are next in the chain of command."
AddTimelock(/datum/job/logistics/engineering, list(
JOB_ENGINEER_ROLES = 10 HOURS,
diff --git a/code/game/jobs/job/logistics/engi/maint_tech.dm b/code/game/jobs/job/logistics/engi/maint_tech.dm
index 7aa380a0bd79..8562408360d7 100644
--- a/code/game/jobs/job/logistics/engi/maint_tech.dm
+++ b/code/game/jobs/job/logistics/engi/maint_tech.dm
@@ -6,7 +6,7 @@
selection_class = "job_ot"
flags_startup_parameters = ROLE_ADD_TO_DEFAULT
gear_preset = /datum/equipment_preset/uscm_ship/maint
- entry_message_body = "Your job is to maintain the integrity of the ship, including the orbital cannon. You remain one of the more flexible roles on the ship and as such may receive other menial tasks from your superiors."
+ entry_message_body = "Your job is to maintain the integrity of the ship, including the orbital cannon. You remain one of the more flexible roles on the ship and as such may receive other menial tasks from your superiors."
/obj/effect/landmark/start/maint
name = JOB_MAINT_TECH
diff --git a/code/game/jobs/job/logistics/engi/ordnance_tech.dm b/code/game/jobs/job/logistics/engi/ordnance_tech.dm
index e0df5f49a546..bed0acf15887 100644
--- a/code/game/jobs/job/logistics/engi/ordnance_tech.dm
+++ b/code/game/jobs/job/logistics/engi/ordnance_tech.dm
@@ -9,7 +9,7 @@
selection_class = "job_ot"
flags_startup_parameters = ROLE_ADD_TO_DEFAULT
gear_preset = /datum/equipment_preset/uscm_ship/ordn
- entry_message_body = "Your job is to maintain the integrity of the USCM weapons, munitions and equipment, including the orbital cannon. You can use the workshop in the portside hangar to construct new armaments for the marines. However you remain one of the more flexible roles on the ship and as such may receive other menial tasks from your superiors."
+ entry_message_body = "Your job is to maintain the integrity of the USCM weapons, munitions and equipment, including the orbital cannon. You can use the workshop in the portside hangar to construct new armaments for the marines. However you remain one of the more flexible roles on the ship and as such may receive other menial tasks from your superiors."
/datum/job/logistics/otech/set_spawn_positions(count)
spawn_positions = ot_slot_formula(count)
diff --git a/code/game/jobs/job/marine/squad/engineer.dm b/code/game/jobs/job/marine/squad/engineer.dm
index 7645d95948f3..00a6b91dcffd 100644
--- a/code/game/jobs/job/marine/squad/engineer.dm
+++ b/code/game/jobs/job/marine/squad/engineer.dm
@@ -5,7 +5,7 @@
allow_additional = 1
flags_startup_parameters = ROLE_ADD_TO_DEFAULT|ROLE_ADD_TO_SQUAD
gear_preset = /datum/equipment_preset/uscm/engineer
- entry_message_body = "You have the equipment and skill to build fortifications, reroute power lines, and bunker down. Your squaddies will look to you when it comes to construction in the field of battle."
+ entry_message_body = "You have the equipment and skill to build fortifications, reroute power lines, and bunker down. Your squaddies will look to you when it comes to construction in the field of battle."
/datum/job/marine/engineer/set_spawn_positions(count)
for(var/datum/squad/sq in RoleAuthority.squads)
diff --git a/code/game/jobs/job/marine/squad/leader.dm b/code/game/jobs/job/marine/squad/leader.dm
index aa2173d173d0..960a80d5f659 100644
--- a/code/game/jobs/job/marine/squad/leader.dm
+++ b/code/game/jobs/job/marine/squad/leader.dm
@@ -5,7 +5,7 @@
supervisors = "the acting commanding officer"
flags_startup_parameters = ROLE_ADD_TO_DEFAULT|ROLE_ADD_TO_SQUAD
gear_preset = /datum/equipment_preset/uscm/leader
- entry_message_body = "You are responsible for the men and women of your squad. Make sure they are on task, working together, and communicating. You are also in charge of communicating with command and letting them know about the situation first hand. Keep out of harm's way."
+ entry_message_body = "You are responsible for the men and women of your squad. Make sure they are on task, working together, and communicating. You are also in charge of communicating with command and letting them know about the situation first hand. Keep out of harm's way."
/datum/job/marine/leader/whiskey
title = JOB_WO_SQUAD_LEADER
diff --git a/code/game/jobs/job/marine/squad/medic.dm b/code/game/jobs/job/marine/squad/medic.dm
index 637567d47d4d..cdbd74acefde 100644
--- a/code/game/jobs/job/marine/squad/medic.dm
+++ b/code/game/jobs/job/marine/squad/medic.dm
@@ -5,7 +5,7 @@
allow_additional = 1
flags_startup_parameters = ROLE_ADD_TO_DEFAULT|ROLE_ADD_TO_SQUAD
gear_preset = /datum/equipment_preset/uscm/medic
- entry_message_body = "You tend the wounds of your squad mates and make sure they are healthy and active. You may not be a fully-fledged doctor, but you stand between life and death when it matters."
+ entry_message_body = "You tend the wounds of your squad mates and make sure they are healthy and active. You may not be a fully-fledged doctor, but you stand between life and death when it matters."
/datum/job/marine/medic/set_spawn_positions(count)
for(var/datum/squad/sq in RoleAuthority.squads)
diff --git a/code/game/jobs/job/marine/squad/smartgunner.dm b/code/game/jobs/job/marine/squad/smartgunner.dm
index 5753434e62ee..aacc562f921b 100644
--- a/code/game/jobs/job/marine/squad/smartgunner.dm
+++ b/code/game/jobs/job/marine/squad/smartgunner.dm
@@ -6,7 +6,7 @@
scaled = 1
flags_startup_parameters = ROLE_ADD_TO_DEFAULT|ROLE_ADD_TO_SQUAD
gear_preset = /datum/equipment_preset/uscm/sg
- entry_message_body = "You are the smartgunner. Your task is to provide heavy weapons support."
+ entry_message_body = "You are the smartgunner. Your task is to provide heavy weapons support."
/datum/job/marine/smartgunner/set_spawn_positions(count)
spawn_positions = sg_slot_formula(count)
diff --git a/code/game/jobs/job/marine/squad/specialist.dm b/code/game/jobs/job/marine/squad/specialist.dm
index 539d3a158690..42ee69ef2d5c 100644
--- a/code/game/jobs/job/marine/squad/specialist.dm
+++ b/code/game/jobs/job/marine/squad/specialist.dm
@@ -6,7 +6,7 @@
scaled = 1
flags_startup_parameters = ROLE_ADD_TO_DEFAULT|ROLE_ADD_TO_SQUAD
gear_preset = /datum/equipment_preset/uscm/spec
- entry_message_body = "You are the very rare and valuable weapon expert , trained to use special equipment. You can serve a variety of roles, so choose carefully."
+ entry_message_body = "You are the very rare and valuable weapon expert , trained to use special equipment. You can serve a variety of roles, so choose carefully."
/datum/job/marine/specialist/set_spawn_positions(count)
spawn_positions = spec_slot_formula(count)
diff --git a/code/game/jobs/job/marine/squad/tl.dm b/code/game/jobs/job/marine/squad/tl.dm
index f6c58cce3e0d..ebebf360e830 100644
--- a/code/game/jobs/job/marine/squad/tl.dm
+++ b/code/game/jobs/job/marine/squad/tl.dm
@@ -5,7 +5,7 @@
allow_additional = 1
flags_startup_parameters = ROLE_ADD_TO_DEFAULT|ROLE_ADD_TO_SQUAD
gear_preset = /datum/equipment_preset/uscm/tl
- entry_message_body = "You are the Team Leader. Your task is to assist the squad leader in leading the squad as well as utilize ordnance such as orbital bombardments, CAS, and mortar as well as coordinating resupply with Requisitions and CIC. If the squad leader dies, you are expected to lead in their place."
+ entry_message_body = "You are the Team Leader. Your task is to assist the squad leader in leading the squad as well as utilize ordnance such as orbital bombardments, CAS, and mortar as well as coordinating resupply with Requisitions and CIC. If the squad leader dies, you are expected to lead in their place."
/datum/job/marine/tl/generate_entry_conditions(mob/living/carbon/human/spawning_human)
. = ..()
diff --git a/code/game/jobs/job/marine/squads.dm b/code/game/jobs/job/marine/squads.dm
index 116de402104d..80f00c540383 100644
--- a/code/game/jobs/job/marine/squads.dm
+++ b/code/game/jobs/job/marine/squads.dm
@@ -31,6 +31,8 @@
var/tracking_id = null //Used for the tracking subsystem
/// Maximum number allowed in a squad. Defaults to infinite
var/max_positions = -1
+ /// If uses the overlay
+ var/use_stripe_overlay = TRUE
/// Color for the squad marines gear overlays
var/equipment_color = "#FFFFFF"
/// The alpha for the armor overlay used by equipment color
@@ -108,6 +110,9 @@
var/minimap_color = MINIMAP_SQUAD_UNKNOWN
+ ///Should we add the name of our squad in front of their name? Ex: Alpha Hospital Corpsman
+ var/prepend_squad_name_to_assignment = TRUE
+
/datum/squad/marine
name = "Root"
@@ -175,6 +180,23 @@
roundstart = FALSE
locked = TRUE
+/datum/squad/marine/intel
+ name = SQUAD_MARINE_INTEL
+ use_stripe_overlay = FALSE
+ equipment_color = "#053818"
+ minimap_color = MINIMAP_SQUAD_INTEL
+ radio_freq = INTEL_FREQ
+
+ roundstart = FALSE
+ prepend_squad_name_to_assignment = FALSE
+
+ max_engineers = 0
+ max_medics = 0
+ max_specialists = 0
+ max_tl = 0
+ max_smartgun = 0
+ max_leaders = 0
+
/datum/squad/marine/sof
name = SQUAD_SOF
equipment_color = "#400000"
@@ -496,7 +518,10 @@
marines_list += M
M.assigned_squad = src //Add them to the squad
C.access += (src.access + extra_access) //Add their squad access to their ID
- C.assignment = "[name] [assignment]"
+ if(prepend_squad_name_to_assignment)
+ C.assignment = "[name] [assignment]"
+ else
+ C.assignment = assignment
SEND_SIGNAL(M, COMSIG_SET_SQUAD)
@@ -505,7 +530,7 @@
C.name = "[C.registered_name]'s ID Card ([C.assignment])"
var/obj/item/device/radio/headset/almayer/marine/headset = locate() in list(M.wear_l_ear, M.wear_r_ear)
- if(headset)
+ if(headset && radio_freq)
headset.set_frequency(radio_freq)
M.update_inv_head()
M.update_inv_wear_suit()
diff --git a/code/game/jobs/role_authority.dm b/code/game/jobs/role_authority.dm
index d1934c597da7..c147807f004e 100644
--- a/code/game/jobs/role_authority.dm
+++ b/code/game/jobs/role_authority.dm
@@ -652,6 +652,15 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou
if (S.roundstart && S.usable && S.faction == H.faction && S.name != "Root")
mixed_squads += S
+ //Deal with IOs first
+ if(H.job == JOB_INTEL)
+ var/datum/squad/intel_squad = get_squad_by_name(SQUAD_MARINE_INTEL)
+ if(!intel_squad || !istype(intel_squad)) //Something went horribly wrong!
+ to_chat(H, "Something went wrong with randomize_squad()! Tell a coder!")
+ return
+ intel_squad.put_marine_in_squad(H) //Found one, finish up
+ return
+
//Deal with non-standards first.
//Non-standards are distributed regardless of squad population.
//If the number of available positions for the job are more than max_whatever, it will break.
diff --git a/code/game/machinery/ARES/ARES_step_triggers.dm b/code/game/machinery/ARES/ARES_step_triggers.dm
index 335a877f9f25..51480371be51 100644
--- a/code/game/machinery/ARES/ARES_step_triggers.dm
+++ b/code/game/machinery/ARES/ARES_step_triggers.dm
@@ -25,7 +25,7 @@
return FALSE
if(!(ishuman(passer) || isxeno(passer)))
return FALSE
- if(passer.alpha <= 100)//Can't be seen/detected to trigger alert.
+ if(HAS_TRAIT(passer, TRAIT_CLOAKED))
return FALSE
if(pass_jobs)
if(passer.job in pass_jobs)
@@ -117,7 +117,7 @@
return FALSE
if(!passer)
return FALSE
- if(passer.alpha <= 100)//Can't be seen/detected to trigger alert.
+ if(HAS_TRAIT(passer, TRAIT_CLOAKED))//Can't be seen/detected to trigger alert.
return FALSE
var/area/pass_area = get_area(get_step(passer, passer.dir))
if(istype(pass_area, /area/almayer/command/airoom))//Don't want it to freak out over someone /entering/ the area. Only leaving.
diff --git a/code/game/machinery/autolathe_datums.dm b/code/game/machinery/autolathe_datums.dm
index 02de2b200821..fa6fec094c59 100644
--- a/code/game/machinery/autolathe_datums.dm
+++ b/code/game/machinery/autolathe_datums.dm
@@ -267,12 +267,6 @@
hidden = TRUE
category = AUTOLATHE_CATEGORY_DEVICES_AND_COMPONENTS
-/datum/autolathe/recipe/welder_industrial
- name = "industrial blowtorch"
- path = /obj/item/tool/weldingtool/largetank
- hidden = TRUE
- category = AUTOLATHE_CATEGORY_TOOLS
-
/datum/autolathe/recipe/handcuffs
name = "handcuffs"
path = /obj/item/handcuffs
diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm
index 4d17e4a08803..d416c561fcd3 100644
--- a/code/game/machinery/camera/camera.dm
+++ b/code/game/machinery/camera/camera.dm
@@ -187,9 +187,9 @@
else
visible_message(SPAN_WARNING("[user] has deactivated [src]!"))
if(status)
- icon_state = initial(icon_state)
+ icon_state = "camera"
else
- icon_state = "[initial(icon_state)]1"
+ icon_state = "camera1"
// now disconnect anyone using the camera
//Apparently, this will disconnect anyone even if the camera was re-activated.
//I guess that doesn't matter since they can't use it anyway?
diff --git a/code/game/machinery/floodlight.dm b/code/game/machinery/floodlight.dm
index 5f6cd02a4bf8..516cdad380b1 100644
--- a/code/game/machinery/floodlight.dm
+++ b/code/game/machinery/floodlight.dm
@@ -1,30 +1,28 @@
-//these are probably broken
-
/obj/structure/machinery/floodlight
- name = "Emergency Floodlight"
+ name = "emergency floodlight"
+ desc = "A powerful light usually stationed near landing zones to provide better visibility."
icon = 'icons/obj/structures/machinery/floodlight.dmi'
icon_state = "flood00"
density = TRUE
anchored = TRUE
- var/obj/item/cell/cell = null
- var/use = 0
- var/unlocked = 0
- var/open = 0
light_power = 2
- unslashable = TRUE
- unacidable = TRUE
+ wrenchable = TRUE
+ use_power = USE_POWER_IDLE
+ idle_power_usage = 0
+ active_power_usage = 100
var/on_light_range = 6
+ ///Whether or not the floodlight can be toggled on or off
+ var/toggleable = TRUE
+
+ ///Whether or not the floodlight is turned on, disconnected from whether it has power or is lit
+ var/turned_on = FALSE
+
/obj/structure/machinery/floodlight/Initialize(mapload, ...)
. = ..()
- cell = new /obj/item/cell(src)
- if(light_on)
- set_light(on_light_range)
-/obj/structure/machinery/floodlight/Destroy()
- QDEL_NULL(cell)
- return ..()
+ turn_light(toggle_on = (operable() && turned_on))
/obj/structure/machinery/floodlight/turn_light(mob/user, toggle_on)
. = ..()
@@ -36,100 +34,51 @@
else
set_light(0)
+ update_icon()
-/obj/structure/machinery/floodlight/proc/updateicon()
- icon_state = "flood[open ? "o" : ""][open && cell ? "b" : ""]0[light_on]"
-
-/obj/structure/machinery/floodlight/attack_hand(mob/user as mob)
- if(open && cell)
- if(ishuman(user))
- if(!user.get_active_hand())
- user.put_in_hands(cell)
- cell.forceMove(user.loc)
- else
- cell.forceMove(loc)
+/obj/structure/machinery/floodlight/attack_hand(mob/user)
+ if(!toggleable)
+ to_chat(user, SPAN_NOTICE("[src] doesn't seem to have a switch to toggle the light."))
+ return
- cell.add_fingerprint(user)
- cell.update_icon()
+ if(user.lying || user.stat)
+ return
- src.cell = null
- to_chat(user, "You remove the power cell.")
- updateicon()
+ if(!is_valid_user(user))
+ to_chat(user, SPAN_NOTICE("You don't have the dexterity to do this."))
return
- if(light_on)
- to_chat(user, SPAN_NOTICE("You turn off the light."))
- turn_light(user, toggle_on = FALSE)
- unslashable = TRUE
- unacidable = TRUE
- else
- if(!cell)
- return
- if(cell.charge <= 0)
- return
- to_chat(user, SPAN_NOTICE("You turn on the light."))
- turn_light(user, toggle_on = TRUE)
- unacidable = FALSE
+ turned_on = !turned_on
- updateicon()
+ if(inoperable())
+ to_chat(user, SPAN_NOTICE("You turn [turned_on ? "on" : "off"] the floodlight. It seems to be inoperable."))
+ return
+ to_chat(user, SPAN_NOTICE("You turn [turned_on ? "on" : "off"] the light."))
+ turn_light(user, toggle_on = turned_on)
+ update_use_power(turned_on ? USE_POWER_ACTIVE : USE_POWER_IDLE)
-/obj/structure/machinery/floodlight/attackby(obj/item/W as obj, mob/user as mob)
- if(!ishuman(user))
- return
+/obj/structure/machinery/floodlight/update_icon()
+ . = ..()
+ icon_state = "flood0[light_on]"
+
+/obj/structure/machinery/floodlight/power_change(area/master_area = null)
+ . = ..()
- if (HAS_TRAIT(W, TRAIT_TOOL_WRENCH))
- if (!anchored)
- anchored = TRUE
- to_chat(user, "You anchor the [src] in place.")
- else
- anchored = FALSE
- to_chat(user, "You remove the bolts from the [src].")
-
- if (HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER))
- if (!open)
- if(unlocked)
- unlocked = 0
- to_chat(user, "You screw the battery panel in place.")
- else
- unlocked = 1
- to_chat(user, "You unscrew the battery panel.")
-
- if (HAS_TRAIT(W, TRAIT_TOOL_CROWBAR))
- if(unlocked)
- if(open)
- open = 0
- overlays = null
- to_chat(user, "You crowbar the battery panel in place.")
- else
- if(unlocked)
- open = 1
- to_chat(user, "You remove the battery panel.")
-
- if (istype(W, /obj/item/cell))
- if(open)
- if(cell)
- to_chat(user, "There is a power cell already installed.")
- else
- if(user.drop_inv_item_to_loc(W, src))
- cell = W
- to_chat(user, "You insert the power cell.")
- updateicon()
+ turn_light(toggle_on = (!(stat & NOPOWER) && turned_on))
//Magical floodlight that cannot be destroyed or interacted with.
/obj/structure/machinery/floodlight/landing
- name = "Landing Light"
- desc = "A powerful light stationed near landing zones to provide better visibility."
+ name = "landing light"
+ desc = "A powerful light usually stationed near landing zones to provide better visibility. This one seems to have been bolted down and is unable to be moved."
icon_state = "flood01"
- light_on = TRUE
- in_use = 1
use_power = USE_POWER_NONE
-
-/obj/structure/machinery/floodlight/landing/attack_hand()
- return
-
-/obj/structure/machinery/floodlight/landing/attackby()
- return
+ needs_power = FALSE
+ unslashable = TRUE
+ unacidable = TRUE
+ wrenchable = FALSE
+ toggleable = FALSE
+ turned_on = TRUE
/obj/structure/machinery/floodlight/landing/floor
icon_state = "floor_flood01"
diff --git a/code/game/machinery/kitchen/microwave.dm b/code/game/machinery/kitchen/microwave.dm
index f4611b9042db..220772e98b17 100644
--- a/code/game/machinery/kitchen/microwave.dm
+++ b/code/game/machinery/kitchen/microwave.dm
@@ -139,7 +139,6 @@
if (!(R.id in acceptable_reagents))
to_chat(user, SPAN_DANGER("Your [O] contains components unsuitable for cookery."))
return 1
- //G.reagents.trans_to(src,G.amount_per_transfer_from_this)
else if(istype(O,/obj/item/grab))
return 1
else
@@ -152,74 +151,78 @@
/obj/structure/machinery/microwave/attack_hand(mob/user as mob)
user.set_interaction(src)
- interact(user)
+ tgui_interact(user)
+
+/obj/structure/machinery/microwave/tgui_interact(mob/user, datum/tgui/ui)
+ ui = SStgui.try_update_ui(user, src, ui)
+ if (!ui)
+ ui = new(user, src, "Microwave", "Microwave Controls")
+ ui.open()
//*******************
//* Microwave Menu
//********************/
-
-/obj/structure/machinery/microwave/interact(mob/user as mob) // The microwave Menu
- var/dat = ""
- if(src.broken > 0)
- dat = {"Bzzzzttttt "}
- else if(src.operating)
- dat = {"Microwaving in progress! Please wait...! "}
- else if(src.dirty==100)
- dat = {"This microwave is dirty! Please clean it before use! "}
- else
- var/list/items_counts = new
- var/list/items_measures = new
- var/list/items_measures_p = new
- for (var/obj/O in contents)
- var/display_name = O.name
- if (istype(O,/obj/item/reagent_container/food/snacks/egg))
- items_measures[display_name] = "egg"
- items_measures_p[display_name] = "eggs"
- if (istype(O,/obj/item/reagent_container/food/snacks/tofu))
- items_measures[display_name] = "tofu chunk"
- items_measures_p[display_name] = "tofu chunks"
- if (istype(O,/obj/item/reagent_container/food/snacks/meat)) //any meat
- items_measures[display_name] = "slab of meat"
- items_measures_p[display_name] = "slabs of meat"
- if (istype(O,/obj/item/reagent_container/food/snacks/donkpocket))
- display_name = "Turnovers"
- items_measures[display_name] = "turnover"
- items_measures_p[display_name] = "turnovers"
- if (istype(O,/obj/item/reagent_container/food/snacks/carpmeat))
- items_measures[display_name] = "fillet of meat"
- items_measures_p[display_name] = "fillets of meat"
- items_counts[display_name]++
- for (var/O in items_counts)
- var/N = items_counts[O]
- if (!(O in items_measures))
- dat += {"[capitalize(O)]: [N] [lowertext(O)]\s "}
- else
- if (N==1)
- dat += {"[capitalize(O)]: [N] [items_measures[O]] "}
- else
- dat += {"[capitalize(O)]: [N] [items_measures_p[O]] "}
-
- for (var/datum/reagent/R in reagents.reagent_list)
- var/display_name = R.name
- if (R.id == "hotsauce")
- display_name = "Hotsauce"
- if (R.id == "frostoil")
- display_name = "Coldsauce"
- dat += {"[display_name]: [R.volume] unit\s "}
-
- if (items_counts.len==0 && reagents.reagent_list.len==0)
- dat = {"The microwave is empty "}
+/obj/structure/machinery/microwave/ui_data(mob/user)
+ var/list/data = list()
+
+ data["operating"] = operating
+ data["broken"] = (broken > 0)
+ data["dirty"] = (dirty == 100)
+
+ var/list/ingredients = list()
+ var/list/items_counts = list()
+ var/list/items_measures = list()
+ var/list/items_measures_p = list()
+
+ for (var/obj/contents_item as anything in contents)
+ var/display_name = contents_item.name
+
+ if (istype(contents_item, /obj/item/reagent_container/food/snacks/tofu))
+ items_measures[display_name] = "tofu chunk"
+ items_measures_p[display_name] = "tofu chunks"
+ if (istype(contents_item, /obj/item/reagent_container/food/snacks/meat)) //any meat
+ items_measures[display_name] = "slab of meat"
+ items_measures_p[display_name] = "slabs of meat"
+ if (istype(contents_item, /obj/item/reagent_container/food/snacks/donkpocket))
+ display_name = "Turnovers"
+ items_measures[display_name] = "turnover"
+ items_measures_p[display_name] = "turnovers"
+ if (istype(contents_item, /obj/item/reagent_container/food/snacks/carpmeat))
+ items_measures[display_name] = "fillet of meat"
+ items_measures_p[display_name] = "fillets of meat"
+ items_counts[display_name]++
+
+ for (var/contents_item in items_counts)
+ var/list/item = list()
+
+ item["name"] = capitalize(contents_item)
+ item["count"] = items_counts[contents_item]
+
+ if (!(contents_item in items_measures))
+ item["measure"] = "[lowertext(contents_item)][items_counts[contents_item] > 1 ? "s" : ""]" // Adds 's' for plurals.
+ else if (items_counts[contents_item] == 1)
+ item["measure"] = items_measures[contents_item]
else
- dat = {"Ingredients: [dat]"}
- dat += {"
"
dat += "
ERT Settings: "
@@ -1331,12 +1334,12 @@ var/const/MAX_SAVE_SLOTS = 10
commander_status = options[new_commander_status]
if("co_sidearm")
- var/list/options = list("Mateba","Desert Eagle")
+ var/list/options = CO_GUNS
if(whitelist_flags & (WHITELIST_COMMANDER_COUNCIL|WHITELIST_COMMANDER_COUNCIL_LEGACY))
- options += list("Colonel's Mateba","Golden Desert Eagle")
+ options += COUNCIL_CO_GUNS
else
- options -= list("Colonel's Mateba","Golden Desert Eagle") //This is weird and should not be necessary but it wouldn't remove these from the list otherwise
+ options -= COUNCIL_CO_GUNS
var/new_co_sidearm = tgui_input_list(user, "Choose your preferred sidearm.", "Commanding Officer's Sidearm", options)
if(!new_co_sidearm)
diff --git a/code/modules/client/preferences_gear.dm b/code/modules/client/preferences_gear.dm
index 106da02a00b6..c6c06a123b2e 100644
--- a/code/modules/client/preferences_gear.dm
+++ b/code/modules/client/preferences_gear.dm
@@ -62,6 +62,10 @@ var/global/list/gear_datums_by_name = list()
display_name = "Ballistic goggles, orange"
path = /obj/item/clothing/glasses/mgoggles/orange
+/datum/gear/eyewear/goggles2
+ display_name = "Ballistic goggles, M1A1"
+ path = /obj/item/clothing/glasses/mgoggles/v2
+
/datum/gear/eyewear/bimex_shades
display_name = "BiMex personal shades"
path = /obj/item/clothing/glasses/sunglasses/big
@@ -205,6 +209,14 @@ var/global/list/gear_datums_by_name = list()
display_name = "USCM beret, tan"
path = /obj/item/clothing/head/beret/cm/tan
+/datum/gear/headwear/uscm/beret_black
+ display_name = "USCM beret, black"
+ path = /obj/item/clothing/head/beret/cm/black
+
+/datum/gear/headwear/uscm/beret_white
+ display_name = "USCM beret, white"
+ path = /obj/item/clothing/head/beret/cm/white
+
/datum/gear/headwear/uscm/boonie_olive
display_name = "USCM boonie hat, olive"
path = /obj/item/clothing/head/cmcap/boonie
@@ -792,7 +804,17 @@ var/global/list/gear_datums_by_name = list()
/datum/gear/misc/jungle_boots
display_name = "Jungle pattern combat boots"
path = /obj/item/clothing/shoes/marine/jungle
- cost = 3
+ cost = 2
+
+/datum/gear/misc/brown_boots
+ display_name = "brown combat boots"
+ path = /obj/item/clothing/shoes/marine/brown
+ cost = 2
+
+/datum/gear/misc/brown_gloves
+ display_name = "brown combat gloves"
+ path = /obj/item/clothing/gloves/marine/brown
+ cost = 2
/datum/gear/misc/pdt_kit
display_name = "PDT/L kit"
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index 0e01fc75c013..c885e9b73af1 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -1,5 +1,5 @@
#define SAVEFILE_VERSION_MIN 8
-#define SAVEFILE_VERSION_MAX 20
+#define SAVEFILE_VERSION_MAX 21
//handles converting savefiles to new formats
//MAKE SURE YOU KEEP THIS UP TO DATE!
@@ -80,6 +80,15 @@
sound_toggles |= (SOUND_ADMIN_MEME|SOUND_ADMIN_ATMOSPHERIC)
S["toggles_sound"] << sound_toggles
+ if(savefile_version < 21)
+ var/pref_toggles
+ S["toggle_prefs"] >> pref_toggles
+ if(pref_toggles & TOGGLE_ALTERNATING_DUAL_WIELD)
+ dual_wield_pref = DUAL_WIELD_SWAP
+ else
+ dual_wield_pref = DUAL_WIELD_FIRE
+ S["dual_wield_pref"] << dual_wield_pref
+
savefile_version = SAVEFILE_VERSION_MAX
return 1
@@ -125,6 +134,7 @@
S["toggles_langchat"] >> toggles_langchat
S["toggles_sound"] >> toggles_sound
S["toggle_prefs"] >> toggle_prefs
+ S["dual_wield_pref"] >> dual_wield_pref
S["toggles_flashing"] >> toggles_flashing
S["toggles_ert"] >> toggles_ert
S["toggles_admin"] >> toggles_admin
@@ -139,6 +149,7 @@
S["fps"] >> fps
S["ghost_vision_pref"] >> ghost_vision_pref
S["ghost_orbit"] >> ghost_orbit
+ S["auto_observe"] >> auto_observe
S["human_name_ban"] >> human_name_ban
@@ -209,6 +220,7 @@
toggles_langchat = sanitize_integer(toggles_langchat, 0, SHORT_REAL_LIMIT, initial(toggles_langchat))
toggles_sound = sanitize_integer(toggles_sound, 0, SHORT_REAL_LIMIT, initial(toggles_sound))
toggle_prefs = sanitize_integer(toggle_prefs, 0, SHORT_REAL_LIMIT, initial(toggle_prefs))
+ dual_wield_pref = sanitize_integer(dual_wield_pref, 0, 2, initial(dual_wield_pref))
toggles_flashing= sanitize_integer(toggles_flashing, 0, SHORT_REAL_LIMIT, initial(toggles_flashing))
toggles_ert = sanitize_integer(toggles_ert, 0, SHORT_REAL_LIMIT, initial(toggles_ert))
toggles_admin = sanitize_integer(toggles_admin, 0, SHORT_REAL_LIMIT, initial(toggles_admin))
@@ -219,6 +231,7 @@
window_skin = sanitize_integer(window_skin, 0, SHORT_REAL_LIMIT, initial(window_skin))
ghost_vision_pref = sanitize_inlist(ghost_vision_pref, list(GHOST_VISION_LEVEL_NO_NVG, GHOST_VISION_LEVEL_MID_NVG, GHOST_VISION_LEVEL_FULL_NVG), GHOST_VISION_LEVEL_MID_NVG)
ghost_orbit = sanitize_inlist(ghost_orbit, GLOB.ghost_orbits, initial(ghost_orbit))
+ auto_observe = sanitize_integer(auto_observe, 0, 1, 1)
playtime_perks = sanitize_integer(playtime_perks, 0, 1, 1)
xeno_vision_level_pref = sanitize_inlist(xeno_vision_level_pref, list(XENO_VISION_LEVEL_NO_NVG, XENO_VISION_LEVEL_MID_NVG, XENO_VISION_LEVEL_FULL_NVG), XENO_VISION_LEVEL_MID_NVG)
hear_vox = sanitize_integer(hear_vox, FALSE, TRUE, TRUE)
@@ -249,7 +262,7 @@
predator_skin_color = sanitize_inlist(predator_skin_color, PRED_SKIN_COLOR, initial(predator_skin_color))
predator_flavor_text = predator_flavor_text ? sanitize_text(predator_flavor_text, initial(predator_flavor_text)) : initial(predator_flavor_text)
commander_status = sanitize_inlist(commander_status, whitelist_hierarchy, initial(commander_status))
- commander_sidearm = sanitize_inlist(commander_sidearm, list("Mateba","Colonel's Mateba","Golden Desert Eagle","Desert Eagle"), initial(commander_sidearm))
+ commander_sidearm = sanitize_inlist(commander_sidearm, (CO_GUNS + COUNCIL_CO_GUNS), initial(commander_sidearm))
affiliation = sanitize_inlist(affiliation, FACTION_ALLEGIANCE_USCM_COMMANDER, initial(affiliation))
yautja_status = sanitize_inlist(yautja_status, whitelist_hierarchy + list("Elder"), initial(yautja_status))
synth_status = sanitize_inlist(synth_status, whitelist_hierarchy, initial(synth_status))
@@ -315,6 +328,7 @@
S["toggles_langchat"] << toggles_langchat
S["toggles_sound"] << toggles_sound
S["toggle_prefs"] << toggle_prefs
+ S["dual_wield_pref"] << dual_wield_pref
S["toggles_flashing"] << toggles_flashing
S["toggles_ert"] << toggles_ert
S["toggles_admin"] << toggles_admin
@@ -322,6 +336,7 @@
S["fps"] << fps
S["ghost_vision_pref"] << ghost_vision_pref
S["ghost_orbit"] << ghost_orbit
+ S["auto_observe"] << auto_observe
S["human_name_ban"] << human_name_ban
diff --git a/code/modules/client/preferences_toggles.dm b/code/modules/client/preferences_toggles.dm
index b600b39a0018..6f9026a437dd 100644
--- a/code/modules/client/preferences_toggles.dm
+++ b/code/modules/client/preferences_toggles.dm
@@ -372,12 +372,21 @@
to_chat(src,SPAN_BOLDNOTICE( "Click-dragging now blocks clicks from going through."))
prefs.save_preferences()
-/client/proc/toggle_dualwield() //Toggle whether dual-wielding fires both guns at once or swaps between them.
- prefs.toggle_prefs ^= TOGGLE_ALTERNATING_DUAL_WIELD
- if(prefs.toggle_prefs & TOGGLE_ALTERNATING_DUAL_WIELD)
- to_chat(src, SPAN_BOLDNOTICE("Dual-wielding now switches between guns, as long as the other gun is loaded."))
+///Toggle whether dual-wielding fires both guns at once or swaps between them.
+/client/proc/toggle_dualwield()
+ if(prefs.dual_wield_pref < DUAL_WIELD_NONE)
+ prefs.dual_wield_pref++
else
- to_chat(src, SPAN_BOLDNOTICE("Dual-wielding now fires both guns simultaneously."))
+ prefs.dual_wield_pref = DUAL_WIELD_FIRE
+
+ switch(prefs.dual_wield_pref)
+ if(DUAL_WIELD_FIRE)
+ to_chat(src, SPAN_BOLDNOTICE("Dual-wielding now fires both guns simultaneously."))
+ if(DUAL_WIELD_SWAP)
+ to_chat(src, SPAN_BOLDNOTICE("Dual-wielding now switches between guns, as long as the other gun is loaded."))
+ if(DUAL_WIELD_NONE)
+ to_chat(src, SPAN_BOLDNOTICE("Dual-wielding now has no effect on how you fire."))
+
prefs.save_preferences()
/client/proc/toggle_middle_mouse_swap_hands() //Toggle whether middle click swaps your hands
diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm
index b31e6281dba1..a6462b7a9214 100644
--- a/code/modules/clothing/glasses/glasses.dm
+++ b/code/modules/clothing/glasses/glasses.dm
@@ -142,7 +142,7 @@
/obj/item/clothing/glasses/science/prescription
name = "prescription reagent scanner HUD goggles"
- desc = "These goggles are probably of use to someone who isn't holding a rifle and actively seeking to lower their combat life expectancy. Contains prescription lenses."
+ desc = "These goggles are probably of use to someone who isn't holding a rifle and actively seeking to lower their combat life expectancy. Contains prescription lenses."
prescription = TRUE
/obj/item/clothing/glasses/science/get_examine_text(mob/user)
@@ -411,6 +411,13 @@
active_icon_state = "mgogglesorg_down"
inactive_icon_state = "mgogglesorg"
+/obj/item/clothing/glasses/mgoggles/v2
+ name = "M1A1 marine ballistic goggles"
+ desc = "Newer issue USCM goggles. While commonly found mounted atop M10 pattern helmets, they are also capable of preventing insects, dust, and other things from getting into one's eyes. This version has larger lenses."
+ icon_state = "mgoggles2"
+ active_icon_state = "mgoggles2_down"
+ inactive_icon_state = "mgoggles2"
+
/obj/item/clothing/glasses/mgoggles/on_enter_storage(obj/item/storage/internal/S)
..()
diff --git a/code/modules/clothing/gloves/marine_gloves.dm b/code/modules/clothing/gloves/marine_gloves.dm
index 09c84b9b4d40..15c596f9f6e1 100644
--- a/code/modules/clothing/gloves/marine_gloves.dm
+++ b/code/modules/clothing/gloves/marine_gloves.dm
@@ -5,7 +5,7 @@
name = "marine combat gloves"
desc = "Standard issue marine tactical gloves. It reads: 'knit by Marine Widows Association'."
icon_state = "black"
- item_state = "bgloves"
+ item_state = "black"
siemens_coefficient = 0.6
permeability_coefficient = 0.05
flags_cold_protection = BODY_FLAG_HANDS
@@ -46,6 +46,13 @@
name = "marine black combat gloves"
adopts_squad_color = FALSE
+/obj/item/clothing/gloves/marine/brown
+ name = "marine brown combat gloves"
+ desc = "Standard issue marine tactical gloves. It reads: 'knit by Marine Widows Association'. These are brown instead of the classic black."
+ icon_state = "brown"
+ item_state = "brown"
+ adopts_squad_color = FALSE
+
/obj/item/clothing/gloves/marine/officer
name = "officer gloves"
desc = "Shiny and impressive. They look expensive."
@@ -115,6 +122,10 @@
armor_internaldamage = CLOTHING_ARMOR_HIGH
adopts_squad_color = FALSE
+/obj/item/clothing/gloves/marine/veteran/upp
+ icon_state = "brown"
+ item_state = "brown"
+
/obj/item/clothing/gloves/marine/veteran/insulated
name = "insulated armored gloves"
desc = "Non-standard kevlon fiber gloves. These are apparently ESPECIALLY insulated."
@@ -146,7 +157,7 @@
name = "dress gloves"
desc = "A pair of fashionable white gloves, worn by marines in dress."
icon_state = "white"
- item_state = "white"
+ item_state = "marine_white"
adopts_squad_color = FALSE
/obj/item/clothing/gloves/marine/veteran/souto
diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm
index 9d18c44affe8..e6c8391ac0a1 100644
--- a/code/modules/clothing/gloves/miscellaneous.dm
+++ b/code/modules/clothing/gloves/miscellaneous.dm
@@ -46,7 +46,7 @@
icon_state = "latex"
item_state = "lgloves"
siemens_coefficient = 0.30
- permeability_coefficient = 0.01
+ permeability_coefficient = 0.35
/obj/item/clothing/gloves/botanic_leather
desc = "These leather gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin."
diff --git a/code/modules/clothing/head/head.dm b/code/modules/clothing/head/head.dm
index 24e1d0231c85..f16b6ff42c9d 100644
--- a/code/modules/clothing/head/head.dm
+++ b/code/modules/clothing/head/head.dm
@@ -75,6 +75,12 @@
/obj/item/clothing/head/beret/cm/red
icon_state = "beretred"
+/obj/item/clothing/head/beret/cm/white
+ icon_state = "s_beret"
+
+/obj/item/clothing/head/beret/cm/black
+ icon_state = "beret_black"
+
/obj/item/clothing/head/beret/cm/squadberet
name = "USCM Squad Beret"
desc = "For those who want to show pride and have nothing to lose (in their head, at least)."
@@ -236,6 +242,7 @@
/obj/item/clothing/glasses/mgoggles/prescription = HAT_GARB_RELAY_ICON_STATE,
/obj/item/clothing/glasses/mgoggles/black = HAT_GARB_RELAY_ICON_STATE,
/obj/item/clothing/glasses/mgoggles/orange = HAT_GARB_RELAY_ICON_STATE,
+ /obj/item/clothing/glasses/mgoggles/v2 = HAT_GARB_RELAY_ICON_STATE,
/obj/item/prop/helmetgarb/helmet_nvg = HAT_GARB_RELAY_ICON_STATE,
/obj/item/prop/helmetgarb/helmet_nvg/cosmetic = HAT_GARB_RELAY_ICON_STATE,
/obj/item/prop/helmetgarb/helmet_nvg/marsoc = HAT_GARB_RELAY_ICON_STATE,
@@ -370,17 +377,23 @@
name = "\improper USCM formal Commanding Officer's black cap"
icon_state = "co_formalhat_black"
-/obj/item/clothing/head/cmcap/ro
- name = "\improper USCM officer cap"
- desc = "A hat usually worn by officers in the USCM. While it provides no protection, some officers wear it in the field to make themselves more recognisable."
+/obj/item/clothing/head/cmcap/req/ro
+ name = "\improper USCM quartermaster cap"
+ desc = "It's a fancy hat for a not-so-fancy military supply clerk."
icon_state = "rocap"
+ flags_atom = NO_SNOW_TYPE
/obj/item/clothing/head/cmcap/req
name = "\improper USCM requisition cap"
- desc = "It's a fancy hat for a not-so-fancy military supply clerk."
+ desc = "It's a not-so-fancy hat for a not-so-fancy military supply clerk."
icon_state = "cargocap"
flags_atom = FPRINT|NO_SNOW_TYPE
+/obj/item/clothing/head/cmcap/bridge
+ name = "\improper USCM officer cap"
+ desc = "A hat usually worn by officers in the USCM. While it provides no protection, some officers wear it in the field to make themselves more recognisable."
+ icon_state = "cap_officer"
+
/obj/item/clothing/head/cmcap/flap
name = "\improper USCM expedition cap"
desc = "It's a cap, with flaps. A patch stitched across the front reads \"
USS ALMAYER \"."
@@ -494,10 +507,19 @@
/obj/item/clothing/head/marine/peaked
name = "marine peaked cap"
desc = "A peaked cap. Wearer may suffer the heavy weight of responsibility upon their head and shoulders."
- icon = 'icons/obj/items/clothing/hats.dmi'
- icon_state = "officercap"
+ icon = 'icons/obj/items/clothing/cm_hats.dmi'
+ icon_state = "marine_formal"
item_icons = list(
- WEAR_HEAD = 'icons/mob/humans/onmob/head_0.dmi'
+ WEAR_HEAD = 'icons/mob/humans/onmob/head_1.dmi'
+ )
+
+/obj/item/clothing/head/marine/peaked/service
+ name = "marine service peaked cap"
+ desc = "A peaked cap. Wearer may suffer the heavy weight of responsibility upon their head and shoulders."
+ icon = 'icons/obj/items/clothing/cm_hats.dmi'
+ icon_state = "marine_service"
+ item_icons = list(
+ WEAR_HEAD = 'icons/mob/humans/onmob/head_1.dmi'
)
/obj/item/clothing/head/marine/peaked/captain
@@ -735,9 +757,6 @@
WEAR_HEAD = 'icons/mob/humans/onmob/head_1.dmi'
)
-/obj/item/clothing/head/drillhat/Initialize(mapload, ...)
- . = ..()
- select_gamemode_skin(/obj/item/clothing/head/drillhat)
#undef HAT_GARB_RELAY_ICON_STATE
//==========================//DRESS BLUES\\===============================\\
diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm
index d5698fd4be32..da0f58088858 100644
--- a/code/modules/clothing/head/helmet.dm
+++ b/code/modules/clothing/head/helmet.dm
@@ -246,6 +246,7 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list(
// EYEWEAR
/obj/item/clothing/glasses/mgoggles = HELMET_GARB_RELAY_ICON_STATE,
+ /obj/item/clothing/glasses/mgoggles/v2 = HELMET_GARB_RELAY_ICON_STATE,
/obj/item/clothing/glasses/mgoggles/prescription = HELMET_GARB_RELAY_ICON_STATE,
/obj/item/clothing/glasses/mgoggles/black = HELMET_GARB_RELAY_ICON_STATE,
/obj/item/clothing/glasses/mgoggles/orange = HELMET_GARB_RELAY_ICON_STATE,
@@ -416,9 +417,11 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list(
camera = new /obj/structure/machinery/camera(src)
camera.network = list(CAMERA_NET_OVERWATCH)
+ for(var/obj/visor as anything in built_in_visors)
+ visor.forceMove(src)
+
if(length(inserted_visors) || length(built_in_visors))
var/datum/action/item_action/cycle_helmet_huds/new_action = new(src)
- LAZYADD(actions, new_action)
if(ishuman(loc))
var/mob/living/carbon/human/holding_human = loc
if(holding_human.head == src)
@@ -439,6 +442,12 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list(
helmet_overlays = null
QDEL_NULL(camera)
QDEL_NULL(pockets)
+ if(active_visor && istype(loc, /mob/living/carbon/human))
+ var/mob/living/carbon/human/potential_user = loc
+ if(potential_user.head == src)
+ var/obj/item/device/helmet_visor/temp_visor_holder = active_visor
+ active_visor = null
+ toggle_visor(potential_user, temp_visor_holder, TRUE)
return ..()
/obj/item/clothing/head/helmet/marine/attack_hand(mob/user)
@@ -494,21 +503,22 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list(
return
if(HAS_TRAIT(attacking_item, TRAIT_TOOL_SCREWDRIVER) && length(inserted_visors))
+ if(active_visor)
+ var/obj/item/device/helmet_visor/temp_visor_holder = active_visor
+ active_visor = null
+ toggle_visor(user, temp_visor_holder, TRUE)
+
for(var/obj/item/device/helmet_visor/visor as anything in inserted_visors)
visor.forceMove(get_turf(src))
inserted_visors = list()
to_chat(user, SPAN_NOTICE("You remove the inserted visors."))
- var/obj/item/device/helmet_visor/temp_visor_holder = active_visor
- active_visor = null
- turn_off_visor(user, temp_visor_holder, TRUE)
var/datum/action/item_action/cycle_helmet_huds/cycle_action = locate() in actions
cycle_action.set_default_overlay()
if(!length(built_in_visors))
cycle_action.remove_from(user)
- recalculate_visors(user)
return
..()
@@ -589,6 +599,11 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list(
/obj/item/clothing/head/helmet/marine/has_garb_overlay()
return flags_marine_helmet & HELMET_GARB_OVERLAY
+/obj/item/clothing/head/helmet/marine/get_examine_text(mob/user)
+ . = ..()
+ if(active_visor)
+ . += active_visor.get_helmet_examine_text()
+
/obj/item/clothing/head/helmet/marine/proc/add_hugger_damage() //This is called in XenoFacehuggers.dm to first add the overlay and set the var.
if(flags_marine_helmet & HELMET_DAMAGE_OVERLAY && !(flags_marine_helmet & HELMET_IS_DAMAGED))
helmet_overlays["damage"] = image('icons/obj/items/clothing/cm_hats.dmi',icon_state = "hugger_damage")
@@ -615,29 +630,17 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list(
if(!human_user || human_user.head != src)
return
- turn_on_visor(human_user)
+ toggle_visor(user, silent = TRUE)
-/// Turns on the current active visor
-/obj/item/clothing/head/helmet/marine/proc/turn_on_visor(mob/user)
- if(!active_visor)
- return
-
- if(active_visor.can_toggle(user))
- active_visor.visor_function(src, user)
+/// Toggles the specified visor, if nothing specified then the active visor, if the visor is the active visor and the helmet is on the user's head it will turn on, if it is not the active visor it will turn off
+/obj/item/clothing/head/helmet/marine/proc/toggle_visor(mob/user, obj/item/device/helmet_visor/current_visor, silent = FALSE)
+ current_visor = current_visor || active_visor
- playsound_client(user.client, active_visor.toggle_on_sound, null, 75)
- update_icon()
-
-/// Turns off the specified visor
-/obj/item/clothing/head/helmet/marine/proc/turn_off_visor(mob/user, obj/item/device/helmet_visor/current_visor, sound = FALSE)
if(!current_visor)
return
- if(current_visor.can_toggle(user))
- current_visor.visor_function(src, user)
+ current_visor.toggle_visor(src, user, silent)
- if(sound)
- playsound_client(user.client, current_visor.toggle_off_sound, null, 75)
update_icon()
/// Attempts to turn off all visors
@@ -645,8 +648,7 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list(
var/list/total_visors = built_in_visors + inserted_visors
for(var/obj/item/device/helmet_visor/cycled_helmet_visor in total_visors)
- if(cycled_helmet_visor.can_toggle(user))
- cycled_helmet_visor.visor_function(src, user, TRUE)
+ cycled_helmet_visor.deactivate_visor(src, user)
update_icon()
@@ -662,20 +664,19 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list(
for(var/hud_type in total_visors)
if(hud_type == active_visor)
if(length(total_visors) > iterator)
- turn_off_visor(user, active_visor, FALSE)
active_visor = total_visors[(iterator + 1)]
- recalculate_visors(user)
+ toggle_visor(user, total_visors[iterator], TRUE)
+ toggle_visor(user)
return active_visor
else
- turn_off_visor(user, active_visor, TRUE)
active_visor = null
- recalculate_visors(user)
+ toggle_visor(user, total_visors[iterator], FALSE)
return FALSE
iterator++
if(total_visors[1])
active_visor = total_visors[1]
- recalculate_visors(user)
+ toggle_visor(user)
return active_visor
active_visor = null
@@ -724,6 +725,21 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list(
item_state = "c_helmet"
flags_atom = NO_SNOW_TYPE
+/obj/item/clothing/head/helmet/marine/jungle
+ icon_state = "helmet"
+ item_state = "helmet"
+ flags_atom = NO_SNOW_TYPE
+
+/obj/item/clothing/head/helmet/marine/snow
+ icon_state = "s_helmet"
+ item_state = "s_helmet"
+ flags_atom = NO_SNOW_TYPE
+
+/obj/item/clothing/head/helmet/marine/desert
+ icon_state = "d_helmet"
+ item_state = "d_helmet"
+ flags_atom = NO_SNOW_TYPE
+
/obj/item/clothing/head/helmet/marine/tech/tanker
name = "\improper M50 tanker helmet"
desc = "The lightweight M50 tanker helmet is designed for use by armored crewmen in the USCM. It offers low weight protection, and allows agile movement inside the confines of an armored vehicle. Features a toggleable welding screen for eye protection."
@@ -929,8 +945,8 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list(
armor_bio = CLOTHING_ARMOR_MEDIUMHIGH
specialty = "M10 pattern SOF"
flags_atom = NO_SNOW_TYPE
- built_in_visors = list(new /obj/item/device/helmet_visor, new /obj/item/device/helmet_visor/medical, new /obj/item/device/helmet_visor/security)
-
+ built_in_visors = list(new /obj/item/device/helmet_visor/night_vision/marine_raider, new /obj/item/device/helmet_visor/security)
+ start_down_visor_type = /obj/item/device/helmet_visor/night_vision/marine_raider
//=============================//PMCS\\==================================\\
//=======================================================================\\
@@ -1324,6 +1340,10 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list(
var/active = FALSE
var/det_time = 40
+/obj/item/clothing/head/helmet/marine/specialist/hefa/Initialize(mapload, list/new_protection)
+ . = ..()
+ pockets.bypass_w_limit = list(/obj/item/explosive/grenade/high_explosive/frag)
+
/obj/item/clothing/head/helmet/marine/specialist/hefa/proc/apply_explosion_overlay()
var/obj/effect/overlay/O = new /obj/effect/overlay(loc)
O.name = "grenade"
diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm
index d4b1d6f3dd84..b13fab0ae5a4 100644
--- a/code/modules/clothing/masks/gasmask.dm
+++ b/code/modules/clothing/masks/gasmask.dm
@@ -11,7 +11,7 @@
w_class = SIZE_SMALL
item_state = "gas_alt"
gas_transfer_coefficient = 0.01
- permeability_coefficient = 0.01
+ permeability_coefficient = 0.9
armor_melee = CLOTHING_ARMOR_NONE
armor_bullet = CLOTHING_ARMOR_NONE
armor_laser = CLOTHING_ARMOR_NONE
diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm
index 0d4572c7297f..c39e6a620833 100644
--- a/code/modules/clothing/masks/miscellaneous.dm
+++ b/code/modules/clothing/masks/miscellaneous.dm
@@ -17,7 +17,7 @@
flags_inventory = COVERMOUTH
flags_armor_protection = 0
gas_transfer_coefficient = 0.90
- permeability_coefficient = 0.01
+ permeability_coefficient = 0.3
armor_melee = CLOTHING_ARMOR_NONE
armor_bullet = CLOTHING_ARMOR_NONE
armor_laser = CLOTHING_ARMOR_NONE
diff --git a/code/modules/clothing/shoes/marine_shoes.dm b/code/modules/clothing/shoes/marine_shoes.dm
index 40bec976c337..fc11a74a695d 100644
--- a/code/modules/clothing/shoes/marine_shoes.dm
+++ b/code/modules/clothing/shoes/marine_shoes.dm
@@ -45,6 +45,13 @@
/obj/item/clothing/shoes/marine/jungle/knife
knife_type = /obj/item/attachable/bayonet
+/obj/item/clothing/shoes/marine/brown
+ icon_state = "marine_brown"
+ desc = "Standard issue combat boots for combat scenarios or combat situations. All combat, all the time. These are brown."
+
+/obj/item/clothing/shoes/marine/brown/knife
+ knife_type = /obj/item/attachable/bayonet
+
/obj/item/clothing/shoes/marine/monkey
name = "monkey combat boots"
desc = "A sturdy pair of combat boots, the reflection of the polished leather reflects your true self."
@@ -54,6 +61,7 @@
/obj/item/clothing/shoes/marine/upp
name = "military combat boots"
+ icon_state = "marine_brown"
armor_melee = CLOTHING_ARMOR_MEDIUMLOW
armor_bullet = CLOTHING_ARMOR_HIGHPLUS
armor_bomb = CLOTHING_ARMOR_MEDIUM
diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm
index 3bf0b3fe74b2..59e0918550ed 100644
--- a/code/modules/clothing/suits/bio.dm
+++ b/code/modules/clothing/suits/bio.dm
@@ -3,7 +3,7 @@
name = "bio hood"
icon_state = "bio"
desc = "A hood that protects the head and face from biological contaminants."
- permeability_coefficient = 0.01
+ permeability_coefficient = 0.2
armor_melee = CLOTHING_ARMOR_NONE
armor_bullet = CLOTHING_ARMOR_NONE
armor_laser = CLOTHING_ARMOR_NONE
@@ -17,6 +17,12 @@
flags_armor_protection = BODY_FLAG_HEAD|BODY_FLAG_FACE|BODY_FLAG_EYES
siemens_coefficient = 0.9
+/obj/item/clothing/head/bio_hood/synth
+ desc = "A hood that protects the head and face from biological contaminants, synthetic compliant. Offers no real protection."
+ armor_bio = CLOTHING_ARMOR_NONE
+ armor_rad = CLOTHING_ARMOR_NONE
+ armor_internaldamage = CLOTHING_ARMOR_NONE
+
/obj/item/clothing/suit/bio_suit
name = "bio suit"
desc = "A suit that protects against biological contamination."
@@ -24,7 +30,7 @@
item_state = "bio_suit"
w_class = SIZE_LARGE//bulky item
gas_transfer_coefficient = 0.01
- permeability_coefficient = 0.01
+ permeability_coefficient = 0.2
flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_FEET|BODY_FLAG_ARMS|BODY_FLAG_HANDS
slowdown = 1
armor_melee = CLOTHING_ARMOR_NONE
@@ -38,6 +44,26 @@
flags_inv_hide = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL
siemens_coefficient = 0.9
+/obj/item/clothing/suit/storage/synthbio
+ name = "bio suit"
+ desc = "Synthetic compliant bio-hazard suit. Intended to allow a synthetic to offer the illusion of infection control to humans. Has had most of the internal protective lining removed, allowing it to hold equipment and be lighter to move in."
+ icon_state = "bio"
+ item_state = "bio_suit"
+ allowed = list(
+ /obj/item/weapon/baton,
+ /obj/item/handcuffs,
+ /obj/item/device/binoculars,
+ /obj/item/attachable/bayonet,
+
+ /obj/item/device/flashlight,
+ /obj/item/device/healthanalyzer,
+ /obj/item/device/radio,
+ /obj/item/tool/crowbar,
+ /obj/item/tool/crew_monitor,
+ /obj/item/tool/pen,
+ /obj/item/storage/large_holster/machete,
+ /obj/item/device/motiondetector,
+ )
//Standard biosuit, orange stripe
/obj/item/clothing/head/bio_hood/general
diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm
index 5dbcf5b7cf81..a28a143f4ff0 100644
--- a/code/modules/clothing/suits/jobs.dm
+++ b/code/modules/clothing/suits/jobs.dm
@@ -61,6 +61,7 @@
/obj/item/attachable/bayonet,
/obj/item/storage/backpack/general_belt,
/obj/item/storage/large_holster/machete,
+ /obj/item/storage/large_holster/katana,
/obj/item/storage/belt/gun/m4a3,
/obj/item/storage/belt/gun/m44,
/obj/item/storage/belt/gun/smartpistol,
@@ -201,6 +202,7 @@
/obj/item/tool/crew_monitor,
/obj/item/tool/pen,
/obj/item/storage/large_holster/machete,
+ /obj/item/storage/large_holster/katana,
/obj/item/device/motiondetector,
)
armor_melee = CLOTHING_ARMOR_MEDIUMLOW
@@ -260,6 +262,7 @@
/obj/item/tool/crew_monitor,
/obj/item/tool/pen,
/obj/item/storage/large_holster/machete,
+ /obj/item/storage/large_holster/katana,
/obj/item/device/motiondetector,
)
armor_melee = CLOTHING_ARMOR_MEDIUMLOW
@@ -323,6 +326,7 @@
/obj/item/tool/crew_monitor,
/obj/item/tool/pen,
/obj/item/storage/large_holster/machete,
+ /obj/item/storage/large_holster/katana,
/obj/item/device/motiondetector,
)
flags_armor_protection = BODY_FLAG_CHEST
@@ -409,6 +413,12 @@
/obj/item/device/binoculars,
/obj/item/attachable/bayonet,
+ /obj/item/storage/belt/gun/m4a3,
+ /obj/item/storage/belt/gun/m44,
+ /obj/item/storage/belt/gun/mateba,
+ /obj/item/storage/belt/gun/smartpistol,
+ /obj/item/weapon/gun,
+
/obj/item/device/flashlight,
/obj/item/device/healthanalyzer,
/obj/item/device/radio,
@@ -417,6 +427,7 @@
/obj/item/tool/crew_monitor,
/obj/item/tool/pen,
/obj/item/storage/large_holster/machete,
+ /obj/item/storage/large_holster/katana,
/obj/item/device/motiondetector,
)
flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_ARMS
diff --git a/code/modules/clothing/suits/marine_armor.dm b/code/modules/clothing/suits/marine_armor.dm
index 9feda29c5b55..94361c420d2b 100644
--- a/code/modules/clothing/suits/marine_armor.dm
+++ b/code/modules/clothing/suits/marine_armor.dm
@@ -60,7 +60,8 @@
siemens_coefficient = 0.7
slowdown = SLOWDOWN_ARMOR_MEDIUM
allowed = list(
- /obj/item/weapon/gun/,
+ /obj/item/weapon/gun,
+ /obj/item/prop/prop_gun,
/obj/item/tank/emergency_oxygen,
/obj/item/device/flashlight,
/obj/item/storage/fancy/cigarettes,
@@ -336,7 +337,7 @@
icon_state = "officer"
storage_slots = 3
flags_atom = null
- uniform_restricted = list(/obj/item/clothing/under/marine/officer, /obj/item/clothing/under/rank/qm_suit, /obj/item/clothing/under/rank/chief_medical_officer)
+ uniform_restricted = list(/obj/item/clothing/under/marine/officer, /obj/item/clothing/under/rank/qm_suit, /obj/item/clothing/under/rank/chief_medical_officer, /obj/item/clothing/under/marine/dress)
specialty = "M2 pattern officer"
item_state_slots = list(WEAR_JACKET = "officer")
@@ -536,10 +537,26 @@
time_to_equip = 1 SECONDS
uniform_restricted = null
-/obj/item/clothing/suit/storage/marine/light/synvest/vanilla
+/obj/item/clothing/suit/storage/marine/light/synvest/grey
icon_state = "VL_syn"
flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
+/obj/item/clothing/suit/storage/marine/light/synvest/jungle
+ icon_state = "VL_syn_camo"
+ flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
+
+/obj/item/clothing/suit/storage/marine/light/synvest/snow
+ icon_state = "s_VL_syn_camo"
+ flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
+
+/obj/item/clothing/suit/storage/marine/light/synvest/desert
+ icon_state = "d_VL_syn_camo"
+ flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
+
+/obj/item/clothing/suit/storage/marine/light/synvest/dgrey
+ icon_state = "c_VL_syn_camo"
+ flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
+
/obj/item/clothing/suit/storage/marine/heavy
name = "\improper M3-EOD pattern heavy armor"
desc = "A heavier version of the standard M3 pattern armor, the armor is primarily designed to withstand ballistic, explosive, and internal damage, with the drawback of increased bulk and thus reduced movement speed, alongside little additional protection from standard blunt force impacts and biological threats."
@@ -1032,9 +1049,13 @@
/obj/item/tool/lighter,
/obj/item/explosive/grenade,
/obj/item/storage/bible,
+ /obj/item/tool/crowbar,
+ /obj/item/storage/large_holster/katana,
+ /obj/item/storage/large_holster/machete,
/obj/item/weapon/claymore/mercsword/machete,
/obj/item/attachable/bayonet,
/obj/item/device/motiondetector,
+ /obj/item/tool/crew_monitor,
/obj/item/device/walkman,
)
uniform_restricted = list(/obj/item/clothing/under/marine/veteran/pmc)
@@ -1489,7 +1510,12 @@
/obj/item/tool/crowbar,
/obj/item/tool/crew_monitor,
/obj/item/tool/pen,
+ /obj/item/storage/belt/gun/m4a3,
+ /obj/item/storage/belt/gun/m44,
+ /obj/item/storage/belt/gun/mateba,
+ /obj/item/storage/belt/gun/smartpistol,
/obj/item/storage/large_holster/machete,
+ /obj/item/storage/large_holster/katana,
/obj/item/device/motiondetector,
/obj/item/device/walkman,
)
@@ -1598,6 +1624,7 @@
specialty = "HEFA Knight"
icon_state = "hefadier"
flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE
+ flags_item = NO_CRYO_STORE
flags_marine_armor = ARMOR_LAMP_OVERLAY
armor_bullet = CLOTHING_ARMOR_VERYHIGH
armor_melee = CLOTHING_ARMOR_VERYHIGH
diff --git a/code/modules/clothing/suits/marine_coat.dm b/code/modules/clothing/suits/marine_coat.dm
index a229a9882776..73d7e0981859 100644
--- a/code/modules/clothing/suits/marine_coat.dm
+++ b/code/modules/clothing/suits/marine_coat.dm
@@ -136,9 +136,10 @@
flags_atom = NO_SNOW_TYPE
/obj/item/clothing/suit/storage/jacket/marine/dress
- name = "marine dress jacket"
- desc = "Smells like vanilla. Signifies prestige and power, if a little flashy, but it still gives off that unga vibe."
- icon_state = "marine_formal"
+ name = "marine formal service jacket"
+ desc = "Smells like vanilla. Signifies prestige and power, if a little flashy."
+ icon_state = "coat_formal"
+ initial_icon_state = "coat_formal"
armor_melee = CLOTHING_ARMOR_LOW
armor_bullet = CLOTHING_ARMOR_LOW
armor_laser = CLOTHING_ARMOR_NONE
@@ -148,11 +149,13 @@
armor_rad = CLOTHING_ARMOR_LOW
armor_internaldamage = CLOTHING_ARMOR_LOW
flags_atom = NO_SNOW_TYPE
+ has_buttons = TRUE
/obj/item/clothing/suit/storage/jacket/marine/dress/officer
name = "marine officer dress jacket"
desc = "Dress Jacket worn by Commanding Officers of the USCM."
icon_state = "co_jacket"
+ has_buttons = FALSE
valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_MEDAL)
restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND)
@@ -192,6 +195,7 @@
WEAR_JACKET = 'icons/mob/humans/onmob/suit_0.dmi'
)
item_state = "general_jacket"
+ has_buttons = FALSE
storage_slots = 4
armor_melee = CLOTHING_ARMOR_HIGHPLUS
armor_bullet = CLOTHING_ARMOR_HIGHPLUS
@@ -202,10 +206,12 @@
/obj/item/clothing/suit/storage/jacket/marine/dress/general/executive
name = "director's jacket"
desc = "A black trench coat with gold metallic trim. Flashy, highly protective, and over-the-top. Fit for a king - or, in this case, a Director. Has quite a few pockets."
+ has_buttons = FALSE
/obj/item/clothing/suit/storage/jacket/marine/dress/bridge_coat
name = "bridge coat"
desc = "A heavy synthetic woolen coat issued to USCM Officers. Based on a classical design this coat is quite nice on cold nights in the Air conditioned CIC or a miserable cold night on a barren world. This one is a Dressy Blue for a Commanding officer."
+ has_buttons = FALSE
item_state = "bridge_coat"
icon_state = "bridge_coat"
valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_RANK, ACCESSORY_SLOT_MEDAL)
@@ -213,6 +219,7 @@
/obj/item/clothing/suit/storage/jacket/marine/dress/bridge_coat_grey
name = "bridge coat"
desc = "A heavy synthetic woolen coat issued to USCM Officers. Based on a classical design this coat is quite nice on cold nights in the Air conditioned CIC or a miserable cold night on a barren world. This one is Black."
+ has_buttons = FALSE
item_state = "bridge_coat_grey"
icon_state = "bridge_coat_grey"
valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_RANK, ACCESSORY_SLOT_MEDAL)
@@ -255,6 +262,7 @@
icon = 'icons/mob/humans/onmob/contained/marinedressblues.dmi'
icon_state = "e_jacket"
item_state = "e_jacket"
+ has_buttons = FALSE
item_state_slots = null
contained_sprite = TRUE
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index c51f5f2575ed..2a3cff05ee1e 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -282,6 +282,12 @@
/obj/item/device/binoculars,
/obj/item/attachable/bayonet,
+ /obj/item/storage/belt/gun/m4a3,
+ /obj/item/storage/belt/gun/m44,
+ /obj/item/storage/belt/gun/mateba,
+ /obj/item/storage/belt/gun/smartpistol,
+ /obj/item/weapon/gun,
+
/obj/item/device/flashlight,
/obj/item/device/healthanalyzer,
/obj/item/device/radio,
@@ -289,6 +295,7 @@
/obj/item/tool/crew_monitor,
/obj/item/tool/pen,
/obj/item/storage/large_holster/machete,
+ /obj/item/storage/large_holster/katana,
/obj/item/device/motiondetector,
)
@@ -303,12 +310,19 @@
/obj/item/device/binoculars,
/obj/item/attachable/bayonet,
+ /obj/item/storage/belt/gun/m4a3,
+ /obj/item/storage/belt/gun/m44,
+ /obj/item/storage/belt/gun/mateba,
+ /obj/item/storage/belt/gun/smartpistol,
+ /obj/item/weapon/gun,
+
/obj/item/device/flashlight,
/obj/item/device/healthanalyzer,
/obj/item/device/radio,
/obj/item/tool/crowbar,
/obj/item/tool/crew_monitor,
/obj/item/storage/large_holster/machete,
+ /obj/item/storage/large_holster/katana,
/obj/item/device/motiondetector,
)
@@ -433,6 +447,11 @@
/obj/item/device/binoculars,
/obj/item/attachable/bayonet,
+ /obj/item/storage/belt/gun/m4a3,
+ /obj/item/storage/belt/gun/m44,
+ /obj/item/storage/belt/gun/mateba,
+ /obj/item/storage/belt/gun/smartpistol,
+ /obj/item/weapon/gun,
/obj/item/device/flashlight,
/obj/item/device/healthanalyzer,
@@ -442,6 +461,7 @@
/obj/item/tool/crew_monitor,
/obj/item/tool/pen,
/obj/item/storage/large_holster/machete,
+ /obj/item/storage/large_holster/katana,
/obj/item/device/motiondetector,
)
min_cold_protection_temperature = T0C
diff --git a/code/modules/clothing/under/marine_uniform.dm b/code/modules/clothing/under/marine_uniform.dm
index 7d11f127d8d6..59cc02b12577 100644
--- a/code/modules/clothing/under/marine_uniform.dm
+++ b/code/modules/clothing/under/marine_uniform.dm
@@ -62,6 +62,14 @@
worn_state = "marine_engineer"
specialty = "USCM Combat Technician"
+/obj/item/clothing/under/marine/engineer/standard
+ flags_atom = NO_SNOW_TYPE
+
+/obj/item/clothing/under/marine/engineer/darker
+ icon_state = "d_marine_engineer"
+ worn_state = "d_marine_engineer"
+ flags_atom = NO_SNOW_TYPE
+
/obj/item/clothing/under/marine/rto
name = "\improper USCM radio telephone operator uniform"
desc = "Standard-issue RTO fatigues. They have shards of light Kevlar to help protect against stabbing weapons and bullets."
@@ -105,6 +113,14 @@
flags_jumpsuit = UNIFORM_SLEEVE_ROLLABLE|UNIFORM_SLEEVE_CUTTABLE|UNIFORM_JACKET_REMOVABLE
specialty = "military police"
+/obj/item/clothing/under/marine/mp/standard
+ flags_atom = NO_SNOW_TYPE
+
+/obj/item/clothing/under/marine/mp/darker
+ icon_state = "d_MP_jumpsuit"
+ worn_state = "d_MP_jumpsuit"
+ flags_atom = NO_SNOW_TYPE
+
/obj/item/clothing/under/marine/warden
name = "military warden jumpsuit"
desc = "Standard-issue Military Warden uniform. It has shards of light Kevlar to help protect against stabbing weapons and bullets."
@@ -196,17 +212,20 @@
name = "marine service uniform"
desc = "A service uniform worn by members of the USCM. Do the corps proud. It has shards of light Kevlar to help protect against stabbing weapons and bullets."
icon_state = "BO_jumpsuit"
+ item_state = "BO_jumpsuit"
worn_state = "BO_jumpsuit"
specialty = "marine service"
flags_jumpsuit = UNIFORM_SLEEVE_ROLLABLE
+ flags_atom = NO_SNOW_TYPE
-/obj/item/clothing/under/marine/officer/exec
- name = "executive officer uniform"
- desc = "A uniform typically worn by an Executive Officer in the USCM. It has shards of light Kevlar to help protect against stabbing weapons and bullets."
- icon_state = "BO_jumpsuit"
- worn_state = "BO_jumpsuit"
- specialty = "executive officer"
- flags_jumpsuit = UNIFORM_SLEEVE_ROLLABLE
+/obj/item/clothing/under/marine/officer/boiler
+ name = "marine operations uniform"
+ desc = "An operations uniform worn by members of the USCM. Do the corps proud. It has shards of light Kevlar to help protect against stabbing weapons and bullets."
+ icon_state = "uscmboiler"
+ item_state = "uscmboiler"
+ worn_state = "uscmboiler"
+ flags_jumpsuit = UNIFORM_SLEEVE_ROLLABLE|UNIFORM_JACKET_REMOVABLE
+ specialty = "marine operations"
/obj/item/clothing/under/marine/officer/command
name = "\improper USCM officer uniform"
@@ -289,25 +308,21 @@
flags_atom = NO_SNOW_TYPE
/obj/item/clothing/under/marine/dress
- name = "old marine dress uniform"
- desc = "A dress uniform typically worn by marines of the USCM. The Sergeant Major would kill you if you got this dirty."
- suit_restricted = list(/obj/item/clothing/suit/storage/jacket/marine/dress)
- armor_bio = CLOTHING_ARMOR_LOW
- armor_rad = CLOTHING_ARMOR_LOW
- armor_internaldamage = CLOTHING_ARMOR_LOW
- icon_state = "marine_formal"
- worn_state = "marine_formal"
- specialty = "marine dress"
+ name = "marine formal service uniform"
+ desc = "A formal service uniform typically worn by marines of the USCM. Still practicable while still being more formal than the standard service uniform."
+ icon_state = "formal_jumpsuit"
+ worn_state = "formal_jumpsuit"
+ specialty = "marine formal"
flags_atom = NO_SNOW_TYPE
flags_jumpsuit = FALSE
black_market_value = 15
/obj/item/clothing/under/marine/dress/command
- name = "old marine command dress uniform"
- desc = "A dress uniform typically worn by the most battle-hardened marines of the USCM. Shame on you if you get this dirty."
- icon_state = "command_formal"
- worn_state = "command_formal"
- specialty = "command dress"
+ name = "marine officer formal service uniform"
+ desc = "A formal service uniform typically worn by marines of the USCM. Still practicable while still being more formal than the standard service uniform. This one belongs to an officer."
+ icon_state = "formal_jumpsuit"
+ worn_state = "formal_jumpsuit"
+ specialty = "command formal"
black_market_value = 20
//=========================//DRESS BLUES\\================================\\
diff --git a/code/modules/clothing/under/ties.dm b/code/modules/clothing/under/ties.dm
index a7da554a7992..24eec4f1e3a8 100644
--- a/code/modules/clothing/under/ties.dm
+++ b/code/modules/clothing/under/ties.dm
@@ -381,6 +381,22 @@
inv_overlay = image("icon" = 'icons/obj/items/clothing/ties_overlay.dmi', "icon_state" = "[icon_state]")
update_icon()
+/obj/item/clothing/accessory/poncho/green
+ icon_state = "poncho"
+
+/obj/item/clothing/accessory/poncho/brown
+ icon_state = "d_poncho"
+
+/obj/item/clothing/accessory/poncho/black
+ icon_state = "u_poncho"
+
+/obj/item/clothing/accessory/poncho/blue
+ icon_state = "c_poncho"
+
+/obj/item/clothing/accessory/poncho/purple
+ icon_state = "s_poncho"
+
+
//Ties that can store stuff
/obj/item/storage/internal/accessory
@@ -598,6 +614,30 @@
/obj/item/clothing/accessory/storage/surg_vest/blue/equipped
hold = /obj/item/storage/internal/accessory/surg_vest/equipped
+/obj/item/clothing/accessory/storage/surg_vest/drop_blue
+ name = "blue surgical drop pouch"
+ desc = "A matte blue synthcotton drop pouch purpose-made for holding surgical tools."
+ icon_state = "drop_pouch_surgical_blue"
+
+/obj/item/clothing/accessory/storage/surg_vest/drop_blue/equipped
+ hold = /obj/item/storage/internal/accessory/surg_vest/equipped
+
+/obj/item/clothing/accessory/storage/surg_vest/drop_green
+ name = "green surgical drop pouch"
+ desc = "A greenish synthcotton drop pouch purpose-made for holding surgical tools."
+ icon_state = "drop_pouch_surgical_green"
+
+/obj/item/clothing/accessory/storage/surg_vest/drop_green/equipped
+ hold = /obj/item/storage/internal/accessory/surg_vest/equipped
+
+/obj/item/clothing/accessory/storage/surg_vest/drop_black
+ name = "black surgical drop pouch"
+ desc = "A tactical black synthcotton drop pouch purpose-made for holding surgical tools."
+ icon_state = "drop_pouch_surgical_black"
+
+/obj/item/clothing/accessory/storage/surg_vest/drop_black/equipped
+ hold = /obj/item/storage/internal/accessory/surg_vest/equipped
+
/obj/item/clothing/accessory/storage/knifeharness
name = "M272 pattern knife vest"
desc = "An older generation M272 pattern knife vest once employed by the USCM. Can hold up to 5 knives. It is made of synthcotton."
@@ -671,7 +711,6 @@
hold = /obj/item/storage/internal/accessory/drop_pouch
-
/obj/item/storage/internal/accessory/drop_pouch
w_class = SIZE_LARGE //Allow storage containers that's medium or below
storage_slots = null
@@ -680,6 +719,7 @@
cant_hold = list( //Prevent inventory powergame
/obj/item/storage/firstaid,
/obj/item/storage/bible,
+ /obj/item/storage/toolkit,
)
storage_flags = NONE //no verb, no quick draw, no tile gathering
@@ -728,7 +768,7 @@
..()
-/obj/item/storage/internal/accessory/holster/can_be_inserted(obj/item/W, stop_messages)
+/obj/item/storage/internal/accessory/holster/can_be_inserted(obj/item/W, mob/user, stop_messages = FALSE)
if( ..() ) //If the parent did their thing, this should be fine. It pretty much handles all the checks.
if(isgun(W))
if(current_gun)
diff --git a/code/modules/cm_aliens/structures/egg.dm b/code/modules/cm_aliens/structures/egg.dm
index a0e8e5054d45..c23f4f3e2b20 100644
--- a/code/modules/cm_aliens/structures/egg.dm
+++ b/code/modules/cm_aliens/structures/egg.dm
@@ -208,16 +208,13 @@
return
user.animation_attack_on(src)
- if(W.attack_verb.len)
+ if(length(W.attack_verb))
visible_message(SPAN_DANGER("\The [src] has been [pick(W.attack_verb)] with \the [W][(user ? " by [user]." : ".")]"))
else
visible_message(SPAN_DANGER("\The [src] has been attacked with \the [W][(user ? " by [user]." : ".")]"))
var/damage = W.force
- if(W.w_class < SIZE_LARGE || !W.sharp || W.force < 20) //only big strong sharp weapon are adequate
- damage /= 4
if(iswelder(W))
var/obj/item/tool/weldingtool/WT = W
-
if(WT.remove_fuel(0, user))
damage = 15
playsound(src.loc, 'sound/items/Welder.ogg', 25, 1)
diff --git a/code/modules/cm_aliens/structures/fruit.dm b/code/modules/cm_aliens/structures/fruit.dm
index e54cb9417d7c..318bc6ba6cf2 100644
--- a/code/modules/cm_aliens/structures/fruit.dm
+++ b/code/modules/cm_aliens/structures/fruit.dm
@@ -438,7 +438,7 @@
return XENO_NONCOMBAT_ACTION
/obj/item/reagent_container/food/snacks/resin_fruit/proc/add_juice()
- reagents.add_reagent("fruit_resin", 8)
+ reagents.add_reagent("fruit_resin", 30)
/obj/effect/alien/resin/fruit/MouseDrop(atom/over_object)
var/mob/living/carbon/xenomorph/X = over_object
@@ -491,7 +491,7 @@
fruit_type = /obj/effect/alien/resin/fruit/greater
/obj/item/reagent_container/food/snacks/resin_fruit/greater/add_juice()
- reagents.add_reagent("fruit_resin", 16)
+ reagents.add_reagent("fruit_resin", 60)
/obj/item/reagent_container/food/snacks/resin_fruit/unstable
name = XENO_FRUIT_UNSTABLE
@@ -501,8 +501,8 @@
fruit_type = /obj/effect/alien/resin/fruit/unstable
/obj/item/reagent_container/food/snacks/resin_fruit/unstable/add_juice()
- reagents.add_reagent("fruit_resin", 4)
- reagents.add_reagent(PLASMA_CHITIN, 12)
+ reagents.add_reagent("fruit_resin", 30)
+ reagents.add_reagent(PLASMA_CHITIN, 30)
/obj/item/reagent_container/food/snacks/resin_fruit/spore
name = XENO_FRUIT_SPORE
@@ -511,8 +511,8 @@
fruit_type = /obj/effect/alien/resin/fruit/spore
/obj/item/reagent_container/food/snacks/resin_fruit/spore/add_juice()
- reagents.add_reagent("fruit_resin", 4)
- reagents.add_reagent(PLASMA_PHEROMONE, 12)
+ reagents.add_reagent("fruit_resin", 30)
+ reagents.add_reagent(PLASMA_PHEROMONE, 30)
/obj/item/reagent_container/food/snacks/resin_fruit/speed
name = XENO_FRUIT_SPEED
@@ -521,8 +521,8 @@
fruit_type = /obj/effect/alien/resin/fruit/speed
/obj/item/reagent_container/food/snacks/resin_fruit/speed/add_juice()
- reagents.add_reagent("fruit_resin", 4)
- reagents.add_reagent(PLASMA_PHEROMONE, 12)
+ reagents.add_reagent("fruit_resin", 30)
+ reagents.add_reagent(PLASMA_CATECHOLAMINE, 30)
/obj/item/reagent_container/food/snacks/resin_fruit/plasma
name = XENO_FRUIT_PLASMA
@@ -530,5 +530,5 @@
fruit_type = /obj/effect/alien/resin/fruit/plasma
/obj/item/reagent_container/food/snacks/resin_fruit/plasma/add_juice()
- reagents.add_reagent("fruit_resin", 4)
- reagents.add_reagent(PLASMA_PURPLE, 12)
+ reagents.add_reagent("fruit_resin", 30)
+ reagents.add_reagent(PLASMA_PURPLE, 30)
diff --git a/code/modules/cm_aliens/structures/special/pylon_core.dm b/code/modules/cm_aliens/structures/special/pylon_core.dm
index c24c34de099c..96ded23c8ac7 100644
--- a/code/modules/cm_aliens/structures/special/pylon_core.dm
+++ b/code/modules/cm_aliens/structures/special/pylon_core.dm
@@ -164,7 +164,7 @@
/// Checks if all comms towers are connected and then starts end game content on all pylons if they are
/obj/effect/alien/resin/special/pylon/endgame/proc/comms_relay_connection()
- marine_announcement("ALERT.\n\nIrregular build up of energy around communication relays at [get_area(src)].", "[MAIN_AI_SYSTEM] Biological Scanner")
+ marine_announcement("ALERT.\n\nIrregular build up of energy around communication relays at [get_area(src)], biological hazard detected.\n\nDANGER: Hazard is generating new xenomorph entities, advise urgent termination of hazard by ground forces.", "[MAIN_AI_SYSTEM] Biological Scanner")
for(var/hivenumber in GLOB.hive_datum)
var/datum/hive_status/checked_hive = GLOB.hive_datum[hivenumber]
@@ -172,7 +172,7 @@
continue
if(checked_hive == linked_hive)
- xeno_announcement(SPAN_XENOANNOUNCE("We have harnessed the tall's communication relay at [get_area(src)]. Hold it!"), hivenumber, XENO_GENERAL_ANNOUNCE)
+ xeno_announcement(SPAN_XENOANNOUNCE("We have harnessed the tall's communication relay at [get_area(src)].\n\nWe will now grow more of our number from this pylon. Hold it!"), hivenumber, XENO_GENERAL_ANNOUNCE)
else
xeno_announcement(SPAN_XENOANNOUNCE("Another hive has harnessed the tall's communication relay at [get_area(src)].[linked_hive.faction_is_ally(checked_hive.name) ? "" : " Stop them!"]"), hivenumber, XENO_GENERAL_ANNOUNCE)
@@ -196,10 +196,12 @@
if(!xeno.counts_for_slots)
hive_xenos -= xeno
- if(length(hive_xenos) > (length(GLOB.alive_human_list) * ENDGAME_LARVA_CAP_MULTIPLIER))
+ var/real_total_xeno_count = length(hive_xenos) + linked_hive.stored_larva
+
+ if(real_total_xeno_count > (length(GLOB.alive_human_list) * ENDGAME_LARVA_CAP_MULTIPLIER))
return
- linked_hive.partial_larva += length(hive_xenos) * LARVA_ADDITION_MULTIPLIER
+ linked_hive.partial_larva += real_total_xeno_count * LARVA_ADDITION_MULTIPLIER
linked_hive.convert_partial_larva_to_full_larva()
linked_hive.hive_ui.update_burrowed_larva()
@@ -263,25 +265,26 @@
linked_hive.hive_ui.update_burrowed_larva()
qdel(worm)
+ var/count_spawned = 0
var/spawning_larva = can_spawn_larva() && (last_larva_time + spawn_cooldown) < world.time
if(spawning_larva)
last_larva_time = world.time
if(spawning_larva || (last_larva_queue_time + spawn_cooldown * 4) < world.time)
last_larva_queue_time = world.time
var/list/players_with_xeno_pref = get_alien_candidates(linked_hive)
- if(players_with_xeno_pref && players_with_xeno_pref.len)
+ if(length(players_with_xeno_pref))
if(spawning_larva && spawn_burrowed_larva(players_with_xeno_pref[1]))
// We were in spawning_larva mode and successfully spawned someone
- message_alien_candidates(players_with_xeno_pref, dequeued = 1)
- else
- // Just time to update everyone their queue status (or the spawn failed)
- message_alien_candidates(players_with_xeno_pref, dequeued = 0)
+ count_spawned = 1
+ // Update everyone's queue status
+ message_alien_candidates(players_with_xeno_pref, dequeued = count_spawned)
if(linked_hive.hijack_burrowed_surge && (last_surge_time + surge_cooldown) < world.time)
last_surge_time = world.time
linked_hive.stored_larva++
linked_hive.hijack_burrowed_left--
- notify_ghosts(header = "Claim Xeno", message = "The Hive has gained another burrowed larva! Click to take it.", source = src, action = NOTIFY_JOIN_XENO, enter_link = "join_xeno")
+ if(GLOB.xeno_queue_candidate_count < 1 + count_spawned)
+ notify_ghosts(header = "Claim Xeno", message = "The Hive has gained another burrowed larva! Click to take it.", source = src, action = NOTIFY_JOIN_XENO, enter_link = "join_xeno")
if(surge_cooldown > 30 SECONDS) //mostly for sanity purposes
surge_cooldown = surge_cooldown - surge_incremental_reduction //ramps up over time
if(linked_hive.hijack_burrowed_left < 1)
diff --git a/code/modules/cm_aliens/structures/special_structure.dm b/code/modules/cm_aliens/structures/special_structure.dm
index 69bdcc2438ac..8378d93e1ac9 100644
--- a/code/modules/cm_aliens/structures/special_structure.dm
+++ b/code/modules/cm_aliens/structures/special_structure.dm
@@ -72,3 +72,9 @@
/obj/effect/alien/resin/special/attack_alien(mob/living/carbon/xenomorph/M)
if(M.can_destroy_special() || M.hivenumber != linked_hive.hivenumber)
return ..()
+
+/obj/effect/alien/resin/special/get_projectile_hit_boolean(obj/projectile/firing_projectile)
+ if(firing_projectile.original == src || firing_projectile.original == get_turf(src))
+ return TRUE
+
+ return FALSE
diff --git a/code/modules/cm_marines/Donator_Items.dm b/code/modules/cm_marines/Donator_Items.dm
index 28b92b3fca0c..1c7281114c01 100644
--- a/code/modules/cm_marines/Donator_Items.dm
+++ b/code/modules/cm_marines/Donator_Items.dm
@@ -15,7 +15,7 @@
icon_override = 'icons/mob/humans/onmob/head_0.dmi'
flags_inventory = BLOCKSHARPOBJ
flags_inv_hide = HIDEEARS
- flags_atom = NO_NAME_OVERRIDE
+ flags_atom = FPRINT|CONDUCT|NO_NAME_OVERRIDE|NO_SNOW_TYPE
min_cold_protection_temperature = ICE_PLANET_MIN_COLD_PROT
flags_marine_helmet = NO_FLAGS
@@ -67,7 +67,7 @@
desc = "ITEM DESCRIPTION. DONOR ITEM" //Add UNIQUE if Unique
icon_state = null
item_state = null
- flags_atom = NO_NAME_OVERRIDE
+ flags_atom = FPRINT|CONDUCT|NO_NAME_OVERRIDE|NO_SNOW_TYPE
//DON'T GRAB STUFF BETWEEN THIS LINE
icon = 'icons/obj/items/clothing/suits.dmi'
icon_override = 'icons/mob/humans/onmob/suit_0.dmi' //Don't fuck with this in the future please.
@@ -80,7 +80,7 @@
desc = "ITEM DESCRIPTION. DONOR ITEM" //Add UNIQUE if Unique
icon_state = null
item_state = null
- flags_atom = NO_NAME_OVERRIDE
+ flags_atom = FPRINT|CONDUCT|NO_NAME_OVERRIDE|NO_SNOW_TYPE
//DON'T GRAB STUFF BETWEEN THIS LINE
icon = 'icons/obj/items/clothing/suits.dmi'
icon_override = 'icons/mob/humans/onmob/suit_0.dmi' //Don't fuck with this in the future please.
@@ -971,7 +971,7 @@
/obj/item/clothing/under/marine/fluff
name = "ITEM NAME"
desc = "ITEM DESCRIPTION. DONOR ITEM" //Add UNIQUE if Unique
- flags_atom = NO_NAME_OVERRIDE
+ flags_atom = FPRINT|NO_NAME_OVERRIDE|NO_SNOW_TYPE
icon_state = null
item_state = null
min_cold_protection_temperature = ICE_PLANET_MIN_COLD_PROT
diff --git a/code/modules/cm_marines/dropship_ammo.dm b/code/modules/cm_marines/dropship_ammo.dm
index 264400caa0dd..ef59e643e4cf 100644
--- a/code/modules/cm_marines/dropship_ammo.dm
+++ b/code/modules/cm_marines/dropship_ammo.dm
@@ -18,10 +18,10 @@
var/ammo_count
/// Maximal ammunition count
var/max_ammo_count
- /// What to call the ammo in the ammo transfering message
+ /// What to call the ammo in the ammo transferring message
var/ammo_name = "round"
var/ammo_id
- /// Whether the ammo inside this magazine can be transfered to another magazine.
+ /// Whether the ammo inside this magazine can be transferred to another magazine.
var/transferable_ammo = FALSE
/// How many tiles the ammo can deviate from the laser target
var/accuracy_range = 3
@@ -136,7 +136,7 @@
/obj/structure/ship_ammo/heavygun
name = "\improper PGU-100 Multi-Purpose 30mm ammo crate"
icon_state = "30mm_crate"
- desc = "A crate full of PGU-100 30mm Multi-Purpose ammo designed to penetrate light (non reinforced) structures, as well as shred infantry, IAVs, LAVs, IMVs, and MRAPs. Works in large areas for use on Class 4 and superior alien insectoid infestations, as well as fitting within the armaments allowed for use against a tier 4 insurgency as well as higher tiers. However, it lacks armor penetrating capabilities, for which Anti-Tank 30mm ammo is needed."
+ desc = "A crate full of PGU-100 30mm Multi-Purpose ammo designed to penetrate light (non reinforced) structures, as well as shred infantry, IAVs, LAVs, IMVs, and MRAPs. Works in large areas for use on Class 4 and superior alien insectoid infestations, as well as fitting within the armaments allowed for use against a tier 4 insurgency as well as higher tiers. However, it lacks armor penetrating capabilities, for which Anti-Tank 30mm ammo is needed. Can be loaded into the GAU-21 30mm cannon."
equipment_type = /obj/structure/dropship_equipment/weapon/heavygun
ammo_count = 400
max_ammo_count = 400
@@ -146,7 +146,7 @@
fire_mission_delay = 2
var/bullet_spread_range = 4 //how far from the real impact turf can bullets land
var/shrapnel_type = /datum/ammo/bullet/shrapnel/gau //For siming 30mm bullet impacts.
- var/directhit_damage = 105 //how much damage is to be inficted to a mob, this is here so that we can hit resting mobs.
+ var/directhit_damage = 105 //how much damage is to be inflicted to a mob, this is here so that we can hit resting mobs.
var/penetration = 10 //AP value pretty much
/obj/structure/ship_ammo/heavygun/get_examine_text(mob/user)
@@ -193,9 +193,9 @@
/obj/structure/ship_ammo/heavygun/antitank
- name = "PGU-105 30mm Anti-tank ammo crate"
+ name = "\improper PGU-105 30mm Anti-tank ammo crate"
icon_state = "30mm_crate_hv"
- desc = "A crate full of PGU-105 Specialized 30mm APFSDS Titanium-Tungsten alloy penetrators, made for countering peer and near peer APCs, IFVs, and MBTs in CAS support. It's designed to penetrate up to the equivalent 1350mm of RHA when launched from a GAU-21. It is much less effective against soft targets however, in which case 30mm ball ammunition is recommended. WARNING: discarding petals from the ammunition can be harmful if the dropship does not pull out at the needed speeds. Please consult page 3574 of the manual, available for order at any ARMAT store."
+ desc = "A crate full of PGU-105 Specialized 30mm APFSDS Titanium-Tungsten alloy penetrators, made for countering peer and near peer APCs, IFVs, and MBTs in CAS support. It is designed to penetrate up to the equivalent 1350mm of RHA when launched from a GAU-21. It is much less effective against soft targets however, in which case 30mm ball ammunition is recommended. WARNING: discarding petals from the ammunition can be harmful if the dropship does not pull out at the needed speeds. Please consult page 3574 of the manual, available for order at any ARMAT store. Can be loaded into the GAU-21 30mm cannon."
travelling_time = 60
ammo_count = 400
max_ammo_count = 400
@@ -204,15 +204,15 @@
point_cost = 325
fire_mission_delay = 2
shrapnel_type = /datum/ammo/bullet/shrapnel/gau/at
- directhit_damage = 80 //how much damage is to be inficted to a mob, this is here so that we can hit resting mobs.
+ directhit_damage = 80 //how much damage is to be inflicted to a mob, this is here so that we can hit resting mobs.
penetration = 40 //AP value pretty much
//laser battery
/obj/structure/ship_ammo/laser_battery
- name = "high-capacity laser battery"
+ name = "\improper BTU-17/LW Hi-Cap Laser Battery"
icon_state = "laser_battery"
- desc = "A high-capacity laser battery used to power laser beam weapons."
+ desc = "A high-capacity laser battery used to power laser beam weapons. Can be loaded into the LWU-6B Laser Cannon."
travelling_time = 10
ammo_count = 100
max_ammo_count = 100
@@ -283,8 +283,8 @@
//this one is air-to-air only
/obj/structure/ship_ammo/rocket/widowmaker
- name = "\improper AIM-224/B 'Widowmaker'"
- desc = "The AIM-224/B missile is a retrofit of the latest in air-to-air missile technology. Earning the nickname of 'Widowmaker' from various dropship pilots after improvements to its guidance warhead prevents it from being jammed leading to its high kill rate. Not well suited for ground bombardment but its high velocity makes it reach its target quickly. This one has been modified to be a free-fall bomb as a result of dropship ammo shortages."
+ name = "\improper AIM-224B 'Widowmaker'"
+ desc = "The AIM-224B missile is a retrofit of the latest in air-to-air missile technology. Earning the nickname of 'Widowmaker' from various dropship pilots after improvements to its guidance warhead prevents it from being jammed leading to its high kill rate. Not well suited for ground bombardment but its high velocity makes it reach its target quickly. This one has been modified to be a free-fall bomb as a result of dropship ammo shortages. Can be loaded into the LAU-444 Guided Missile Launcher."
icon_state = "single"
travelling_time = 30 //not powerful, but reaches target fast
ammo_id = ""
@@ -298,7 +298,7 @@
/obj/structure/ship_ammo/rocket/banshee
name = "\improper AGM-227 'Banshee'"
- desc = "The AGM-227 missile is a mainstay of the overhauled dropship fleet against any mobile or armored ground targets. It's earned the nickname of 'Banshee' from the sudden wail that it emits right before hitting a target. Useful to clear out large areas."
+ desc = "The AGM-227 missile is a mainstay of the overhauled dropship fleet against any mobile or armored ground targets. It's earned the nickname of 'Banshee' from the sudden wail that it emits right before hitting a target. Useful to clear out large areas. Can be loaded into the LAU-444 Guided Missile Launcher."
icon_state = "banshee"
ammo_id = "b"
point_cost = 300
@@ -312,7 +312,7 @@
/obj/structure/ship_ammo/rocket/keeper
name = "\improper GBU-67 'Keeper II'"
- desc = "The GBU-67 'Keeper II' is the latest in a generation of laser guided weaponry that spans all the way back to the 20th century. Earning its nickname from a shortening of 'Peacekeeper' which comes from the program that developed its guidance system and the various uses of it during peacekeeping conflicts. Its payload is designed to devastate armored targets."
+ desc = "The GBU-67 'Keeper II' is the latest in a generation of laser guided weaponry that spans all the way back to the 20th century. Earning its nickname from a shortening of 'Peacekeeper' which comes from the program that developed its guidance system and the various uses of it during peacekeeping conflicts. Its payload is designed to devastate armored targets. Can be loaded into the LAU-444 Guided Missile Launcher."
icon_state = "paveway"
travelling_time = 20 //A fast payload due to its very tight blast zone
ammo_id = "k"
@@ -325,8 +325,8 @@
QDEL_IN(src, 0.5 SECONDS)
/obj/structure/ship_ammo/rocket/harpoon
- name = "\improper AGM-84 'Harpoon'"
- desc = "The AGM-84 Harpoon is an Anti-Ship Missile, designed and used to effectively take down enemy ships with a huge blast wave with low explosive power. This one is modified to use ground signals."
+ name = "\improper AGM-184 'Harpoon II'"
+ desc = "The AGM-184 Harpoon II is an Anti-Ship Missile, designed and used to effectively take down enemy ships with a huge blast wave with low explosive power. This one is modified to use ground signals. Can be loaded into the LAU-444 Guided Missile Launcher."
icon_state = "harpoon"
ammo_id = "s"
travelling_time = 50
@@ -340,8 +340,8 @@
QDEL_IN(src, 0.5 SECONDS)
/obj/structure/ship_ammo/rocket/napalm
- name = "\improper XN-99 'Napalm'"
- desc = "The XN-99 'Napalm' is an incendiary missile used to turn specific targeted areas into giant balls of fire for a long time."
+ name = "\improper AGM-99 'Napalm'"
+ desc = "The AGM-99 'Napalm' is an incendiary missile used to turn specific targeted areas into giant balls of fire for a long time. Can be loaded into the LAU-444 Guided Missile Launcher."
icon_state = "napalm"
ammo_id = "n"
point_cost = 500
@@ -355,7 +355,7 @@
/obj/structure/ship_ammo/rocket/thermobaric
name = "\improper BLU-200 'Dragons Breath'"
- desc = "The BLU-200 Dragons Breath a thermobaric fuel-air bomb. The aerosolized fuel mixture creates a vacuum when ignited causing serious damage to those in its way."
+ desc = "The BLU-200 Dragons Breath a thermobaric fuel-air bomb. The aerosolized fuel mixture creates a vacuum when ignited causing serious damage to those in its way. Can be loaded into the LAU-444 Guided Missile Launcher."
icon_state = "fatty"
ammo_id = "f"
travelling_time = 50
@@ -373,8 +373,8 @@
//minirockets
/obj/structure/ship_ammo/minirocket
- name = "mini rocket stack"
- desc = "A pack of laser guided mini rockets."
+ name = "\improper AGR-59 'Mini-Mike'"
+ desc = "The AGR-59 'Mini-Mike' minirocket is a cheap and efficient means of putting hate down range. Though rockets lack a guidance package, it makes up for it in ammunition count. Can be loaded into the LAU-229 Rocket Pod."
icon_state = "minirocket"
icon = 'icons/obj/structures/props/almayer_props.dmi'
equipment_type = /obj/structure/dropship_equipment/weapon/minirocket_pod
@@ -410,8 +410,8 @@
/obj/structure/ship_ammo/minirocket/incendiary
- name = "incendiary mini rocket stack"
- desc = "A pack of laser guided incendiary mini rockets."
+ name = "\improper AGR-59-I 'Mini-Mike'"
+ desc = "The AGR-59-I 'Mini-Mike' incendiary minirocket is a cheap and efficient means of putting hate down range AND setting them on fire! Though rockets lack a guidance package, it makes up for it in ammunition count. Can be loaded into the LAU-229 Rocket Pod."
icon_state = "minirocket_inc"
point_cost = 500
fire_mission_delay = 3 //high cooldown
@@ -422,8 +422,8 @@
fire_spread(impact, create_cause_data(initial(name), source_mob), 3, 25, 20, "#EE6515")
/obj/structure/ship_ammo/sentry
- name = "multi-purpose area denial sentry"
- desc = "An omni-directional sentry, capable of defending an area from lightly armored hostile incursion."
+ name = "\improper A/C-49-P Air Deployable Sentry"
+ desc = "An omni-directional sentry, capable of defending an area from lightly armored hostile incursion. Can be loaded into the LAG-14 Internal Sentry Launcher."
icon_state = "launchable_sentry"
equipment_type = /obj/structure/dropship_equipment/weapon/launch_bay
ammo_count = 1
diff --git a/code/modules/cm_marines/dropship_equipment.dm b/code/modules/cm_marines/dropship_equipment.dm
index 707811e77ce1..223cb29a6ab8 100644
--- a/code/modules/cm_marines/dropship_equipment.dm
+++ b/code/modules/cm_marines/dropship_equipment.dm
@@ -1,5 +1,5 @@
-/// Dropship equipments, mainly weaponry but also utility implements
+/// Dropship equipment, mainly weaponry but also utility implements
/obj/structure/dropship_equipment
density = TRUE
anchored = TRUE
@@ -153,7 +153,7 @@
/// Turret holder for dropship automated sentries
/obj/structure/dropship_equipment/sentry_holder
equip_categories = list(DROPSHIP_WEAPON, DROPSHIP_CREW_WEAPON)
- name = "sentry deployment system"
+ name = "\improper A/A-32-P Sentry Defense System"
desc = "A box that deploys a sentry turret. Fits on both the external weapon and crew compartment attach points of dropships. You need a powerloader to lift it."
density = FALSE
health = null
@@ -284,7 +284,7 @@
/// Holder for the dropship mannable machinegun system
/obj/structure/dropship_equipment/mg_holder
- name = "machine gun deployment system"
+ name = "\improper MTU-4B Door Gunner Hardpoint System"
desc = "A box that deploys a crew-served scoped M56D heavy machine gun. Fits on both the external weapon and crew compartment attach points of dropships. You need a powerloader to lift it."
density = FALSE
equip_categories = list(DROPSHIP_WEAPON, DROPSHIP_CREW_WEAPON)
@@ -419,13 +419,13 @@
/obj/structure/dropship_equipment/fuel/fuel_enhancer
- name = "fuel enhancer"
+ name = "\improper fuel enhancer"
desc = "A fuel enhancement system for dropships. It improves the thrust produced by the fuel combustion for faster travels. Fits inside the engine attach points. You need a powerloader to lift it."
icon_state = "fuel_enhancer"
point_cost = 800
/obj/structure/dropship_equipment/fuel/cooling_system
- name = "cooling system"
+ name = "\improper cooling system"
desc = "A cooling system for dropships. It produces additional cooling reducing delays between launch. Fits inside the engine attach points. You need a powerloader to lift it."
icon_state = "cooling_system"
point_cost = 800
@@ -437,7 +437,7 @@
equip_categories = list(DROPSHIP_ELECTRONICS)
/obj/structure/dropship_equipment/electronics/chaff_launcher
- name = "chaff launcher"
+ name = "\improper AN/ALE-203 Chaff Launcher"
icon_state = "chaff_launcher"
point_cost = 0
@@ -445,7 +445,7 @@
#define LIGHTING_MAX_LUMINOSITY_SHIPLIGHTS 12
/obj/structure/dropship_equipment/electronics/spotlights
- name = "spotlight"
+ name = "\improper AN/LEN-15 Spotlight"
icon_state = "spotlights"
desc = "A set of high-powered spotlights to illuminate large areas. Fits on electronics attach points of dropships. Moving this will require a powerloader."
is_interactable = TRUE
@@ -490,12 +490,12 @@
/obj/structure/dropship_equipment/electronics/flare_launcher
- name = "flare launcher"
+ name = "\improper AN/ALE-557 Flare Launcher"
icon_state = "flare_launcher"
point_cost = 0
/obj/structure/dropship_equipment/electronics/targeting_system
- name = "targeting system"
+ name = "\improper AN/AAQ-178 Weapon Targeting System"
icon_state = "targeting_system"
desc = "A targeting system for dropships. It improves firing accuracy on laser targets. Fits on electronics attach points. You need a powerloader to lift this."
point_cost = 800
@@ -507,7 +507,7 @@
icon_state = initial(icon_state)
/obj/structure/dropship_equipment/electronics/landing_zone_detector
- name = "\improper LZ detector"
+ name = "\improper AN/AVD-60 LZ detector"
desc = "An electronic device linked to the dropship's camera system that lets you observe your landing zone mid-flight."
icon_state = "lz_detector"
point_cost = 50
@@ -559,7 +559,7 @@
/obj/structure/dropship_equipment/adv_comp/docking
- name = "docking computer"
+ name = "\improper AN/AKW-222 Docking Computer"
icon_state = "docking_comp"
point_cost = 0
@@ -686,7 +686,7 @@
/obj/structure/dropship_equipment/weapon/heavygun
name = "\improper GAU-21 30mm cannon"
- desc = "A dismounted GAU-21 'Rattler' 30mm rotary cannon. It seems to be missing its feed links and has exposed connection wires. Capable of firing 5200 rounds a minute, feared by many for its power. Earned the nickname 'Rattler' from the vibrations it would cause on dropships in its initial production run."
+ desc = "A dismounted GAU-21 'Rattler' 30mm rotary cannon. It seems to be missing its feed links and has exposed connection wires. Capable of firing 5200 rounds a minute, feared by many for its power. Earned the nickname 'Rattler' from the vibrations it would cause on dropships in its initial production run. Accepts PGU-100/PGU-105 ammo crates"
icon_state = "30mm_cannon"
firing_sound = 'sound/effects/gau_incockpit.ogg'
point_cost = 400
@@ -702,9 +702,9 @@
/obj/structure/dropship_equipment/weapon/rocket_pod
- name = "missile pod"
- icon_state = "rocket_pod"
- desc = "A missile pod weapon system capable of launching a single laser-guided missile. Moving this will require some sort of lifter."
+ name = "\improper LAU-444 Guided Missile Launcher"
+ icon_state = "rocket_pod" //I want to force whoever used rocket and missile interchangeably to come back and look at this god damn mess.
+ desc = "A missile pod weapon system capable of launching a single laser-guided missile. Moving this will require some sort of lifter. Accepts AGM, AIM, BLU, and GBU missile systems."
firing_sound = 'sound/effects/rocketpod_fire.ogg'
firing_delay = 5
point_cost = 600
@@ -722,9 +722,9 @@
/obj/structure/dropship_equipment/weapon/minirocket_pod
- name = "minirocket pod"
+ name = "\improper LAU-229 Rocket Pod"
icon_state = "minirocket_pod"
- desc = "A mini rocket pod capable of launching six laser-guided mini rockets. Moving this will require some sort of lifter."
+ desc = "A rocket pod capable of launching six laser-guided mini rockets. Moving this will require some sort of lifter. Accepts the AGR-59 series of minirockets."
icon = 'icons/obj/structures/props/almayer_props64.dmi'
firing_sound = 'sound/effects/rocketpod_fire.ogg'
firing_delay = 10 //1 seconds
@@ -743,9 +743,9 @@
ammo_equipped = null
/obj/structure/dropship_equipment/weapon/laser_beam_gun
- name = "laser beam gun"
+ name = "\improper LWU-6B Laser Cannon"
icon_state = "laser_beam"
- desc = "State of the art technology recently acquired by the USCM, it fires a battery-fed pulsed laser beam at near lightspeed setting on fire everything it touches. Moving this will require some sort of lifter."
+ desc = "State of the art technology recently acquired by the USCM, it fires a battery-fed pulsed laser beam at near lightspeed setting on fire everything it touches. Moving this will require some sort of lifter. Accepts the BTU-17/LW Hi-Cap Laser Batteries."
icon = 'icons/obj/structures/props/almayer_props64.dmi'
firing_sound = 'sound/effects/phasein.ogg'
firing_delay = 50 //5 seconds
@@ -761,9 +761,9 @@
else icon_state = "laser_beam"
/obj/structure/dropship_equipment/weapon/launch_bay
- name = "launch bay"
+ name = "\improper LAG-14 Internal Sentry Launcher"
icon_state = "launch_bay"
- desc = "A launch bay to drop special ordnance. Fits inside the dropship's crew weapon emplacement. Moving this will require some sort of lifter."
+ desc = "A launch bay to drop special ordnance. Fits inside the dropship's crew weapon emplacement. Moving this will require some sort of lifter. Accepts the A/C-49-P Air Deployable Sentry as ammunition."
icon = 'icons/obj/structures/props/almayer_props.dmi'
firing_sound = 'sound/weapons/gun_flare_explode.ogg'
firing_delay = 10 //1 seconds
@@ -782,7 +782,7 @@
/obj/structure/dropship_equipment/medevac_system
- name = "medevac system"
+ name = "\improper RMU-4M Medevac System"
desc = "A winch system to lift injured marines on medical stretchers onto the dropship. Acquire lift target through the dropship equipment console."
equip_categories = list(DROPSHIP_CREW_WEAPON)
icon_state = "medevac_system"
@@ -1014,7 +1014,7 @@
// Fulton extraction system
/obj/structure/dropship_equipment/fulton_system
- name = "fulton recovery system"
+ name = "\improper RMU-19 Fulton Recovery System"
desc = "A winch system to collect any fulton recovery balloons in high altitude. Make sure you turn it on!"
equip_categories = list(DROPSHIP_CREW_WEAPON)
icon_state = "fulton_system"
@@ -1131,7 +1131,7 @@
// Rappel deployment system
/obj/structure/dropship_equipment/rappel_system
- name = "rappel deployment system"
+ name = "\improper HPU-1 Rappel Deployment System"
equip_categories = list(DROPSHIP_CREW_WEAPON)
icon_state = "rappel_module_packaged"
point_cost = 50
diff --git a/code/modules/cm_marines/equipment/guncases.dm b/code/modules/cm_marines/equipment/guncases.dm
index 33684aa29d0a..507d6140666d 100644
--- a/code/modules/cm_marines/equipment/guncases.dm
+++ b/code/modules/cm_marines/equipment/guncases.dm
@@ -325,6 +325,16 @@
new /obj/item/pamphlet/trait/vulture(src) //both pamphlets give use of the scope and the rifle
new /obj/item/pamphlet/trait/vulture(src)
+/obj/item/storage/box/guncase/vulture/skillless
+ storage_slots = 5
+
+/obj/item/storage/box/guncase/vulture/skillless/fill_preset_inventory()
+ var/obj/item/weapon/gun/boltaction/vulture/skillless/rifle = new(src)
+ new /obj/item/ammo_magazine/rifle/boltaction/vulture(src)
+ new /obj/item/device/vulture_spotter_tripod(src)
+ new /obj/item/device/vulture_spotter_scope/skillless(src, WEAKREF(rifle))
+ new /obj/item/tool/screwdriver(src) // Spotter scope needs a screwdriver to disassemble
+
//Handgun case for Military police vendor three mag , a railflashligh and the handgun.
//88 Mod 4 Combat Pistol
diff --git a/code/modules/cm_marines/radar.dm b/code/modules/cm_marines/radar.dm
index 5e85ff8950c7..f6751a8fe913 100644
--- a/code/modules/cm_marines/radar.dm
+++ b/code/modules/cm_marines/radar.dm
@@ -204,17 +204,20 @@
if(!trackable(humanoid))
continue
var/crewmember_name = "Unknown"
+ var/crewmember_rank = "Unknown"
if(humanoid.wear_id)
var/obj/item/card/id/ID = humanoid.wear_id.GetID()
if(ID?.registered_name)
crewmember_name = ID.registered_name
+ if(ID?.assignment)
+ crewmember_rank = ID.assignment
switch(humanoid.stat)
if(CONSCIOUS)
- crewmember_name = "[crewmember_name] (Conscious)"
+ crewmember_name = "[crewmember_name] ([crewmember_rank]) (Conscious)"
if(UNCONSCIOUS)
- crewmember_name = "[crewmember_name] (Unconscious)"
+ crewmember_name = "[crewmember_name] ([crewmember_rank]) (Unconscious)"
if(DEAD)
- crewmember_name = "[crewmember_name] (DEAD)"
+ crewmember_name = "[crewmember_name] ([crewmember_rank]) (DEAD)"
var/list/crewinfo = list(
ref = REF(humanoid),
name = crewmember_name,
diff --git a/code/modules/cm_marines/smartgun_mount.dm b/code/modules/cm_marines/smartgun_mount.dm
index 0066e96bb783..5fa83d1fa06b 100644
--- a/code/modules/cm_marines/smartgun_mount.dm
+++ b/code/modules/cm_marines/smartgun_mount.dm
@@ -379,9 +379,6 @@
to_chat(user, "You're securing the M56D into place...")
var/disassemble_time = 30
- if(skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED))
- disassemble_time = 5
-
if(do_after(user, disassemble_time * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD))
playsound(src.loc, 'sound/items/Deconstruct.ogg', 25, 1)
user.visible_message(SPAN_NOTICE("[user] screws the M56D into the mount."),SPAN_NOTICE("You finalize the M56D heavy machine gun."))
@@ -571,9 +568,6 @@
to_chat(user, "You begin disassembling [src]...")
var/disassemble_time = 30
- if(skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED))
- disassemble_time = 5
-
if(do_after(user, disassemble_time * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD))
user.visible_message(SPAN_NOTICE(" [user] disassembles [src]! "),SPAN_NOTICE(" You disassemble [src]!"))
playsound(src.loc, 'sound/items/Screwdriver.ogg', 25, 1)
@@ -1032,6 +1026,9 @@
/obj/structure/machinery/m56d_hmg/proc/start_fire(datum/source, atom/object, turf/location, control, params, bypass_checks = FALSE)
SIGNAL_HANDLER
+ if (burst_firing)
+ return
+
var/list/modifiers = params2list(params)
if(modifiers["shift"] || modifiers["middle"] || modifiers["right"])
return
@@ -1060,7 +1057,8 @@
reset_fire()
display_ammo()
return
- SEND_SIGNAL(src, COMSIG_GUN_FIRE)
+ else if(gun_firemode != GUN_FIREMODE_SEMIAUTO)
+ SEND_SIGNAL(src, COMSIG_GUN_FIRE)
/// setter for fire_delay
/obj/structure/machinery/m56d_hmg/proc/set_fire_delay(value)
diff --git a/code/modules/cm_phone/phone.dm b/code/modules/cm_phone/phone.dm
index a99bb5603dcb..fd9c8aa02d44 100644
--- a/code/modules/cm_phone/phone.dm
+++ b/code/modules/cm_phone/phone.dm
@@ -24,7 +24,8 @@ GLOBAL_LIST_EMPTY_TYPED(transmitters, /obj/structure/transmitter)
var/range = 7
var/enabled = TRUE
- var/callable = TRUE
+ /// Whether or not the phone is receiving calls or not. Varies between on/off or forcibly on/off.
+ var/do_not_disturb = PHONE_DND_OFF
var/base_icon_state
@@ -35,7 +36,7 @@ GLOBAL_LIST_EMPTY_TYPED(transmitters, /obj/structure/transmitter)
var/list/networks_transmit = list(FACTION_MARINE)
/obj/structure/transmitter/hidden
- callable = FALSE
+ do_not_disturb = PHONE_DND_FORCED
/obj/structure/transmitter/Initialize(mapload, ...)
. = ..()
@@ -80,7 +81,11 @@ GLOBAL_LIST_EMPTY_TYPED(transmitters, /obj/structure/transmitter)
for(var/possible_phone in GLOB.transmitters)
var/obj/structure/transmitter/target_phone = possible_phone
- if(TRANSMITTER_UNAVAILABLE(target_phone) || !target_phone.callable) // Phone not available
+ var/current_dnd = FALSE
+ switch(target_phone.do_not_disturb)
+ if(PHONE_DND_ON, PHONE_DND_FORCED)
+ current_dnd = TRUE
+ if(TRANSMITTER_UNAVAILABLE(target_phone) || current_dnd) // Phone not available
continue
var/net_link = FALSE
for(var/network in networks_transmit)
@@ -124,9 +129,18 @@ GLOBAL_LIST_EMPTY_TYPED(transmitters, /obj/structure/transmitter)
call_phone(user, params["phone_id"])
. = TRUE
SStgui.close_uis(src)
+ if("toggle_dnd")
+ toggle_dnd(user)
update_icon()
+/obj/structure/transmitter/ui_data(mob/user)
+ var/list/data = list()
+
+ data["availability"] = do_not_disturb
+
+ return data
+
/obj/structure/transmitter/ui_static_data(mob/user)
. = list()
@@ -172,6 +186,18 @@ GLOBAL_LIST_EMPTY_TYPED(transmitters, /obj/structure/transmitter)
user.put_in_hands(attached_to)
+/obj/structure/transmitter/proc/toggle_dnd(mob/living/carbon/human/user)
+ switch(do_not_disturb)
+ if(PHONE_DND_ON)
+ do_not_disturb = PHONE_DND_OFF
+ to_chat(user, SPAN_NOTICE("Do Not Disturb has been disabled. You can now receive calls."))
+ if(PHONE_DND_OFF)
+ do_not_disturb = PHONE_DND_ON
+ to_chat(user, SPAN_WARNING("Do Not Disturb has been enabled. No calls will be received."))
+ else
+ return FALSE
+ return TRUE
+
/obj/structure/transmitter/attack_hand(mob/user)
. = ..()
@@ -543,12 +569,18 @@ GLOBAL_LIST_EMPTY_TYPED(transmitters, /obj/structure/transmitter)
UnregisterSignal(attached_to, COMSIG_MOVABLE_MOVED)
reset_tether()
+/obj/structure/transmitter/no_dnd
+ do_not_disturb = PHONE_DND_FORBIDDEN
+
//rotary desk phones (need a touch tone handset at some point)
/obj/structure/transmitter/rotary
name = "rotary telephone"
icon_state = "rotary_phone"
desc = "The finger plate is a little stiff."
+/obj/structure/transmitter/rotary/no_dnd
+ do_not_disturb = PHONE_DND_FORBIDDEN
+
/obj/structure/transmitter/touchtone
name = "touch-tone telephone"
icon_state = "rotary_phone"//placeholder
diff --git a/code/modules/cm_preds/yaut_bracers.dm b/code/modules/cm_preds/yaut_bracers.dm
index 4e8dbf9d711a..272882779d57 100644
--- a/code/modules/cm_preds/yaut_bracers.dm
+++ b/code/modules/cm_preds/yaut_bracers.dm
@@ -35,7 +35,6 @@
var/charge_rate = 30
/// Cooldown on draining power from APC
var/charge_cooldown = COOLDOWN_BRACER_CHARGE
- var/cloaked = 0
var/cloak_timer = 0
var/cloak_malfunction = 0
/// Determines the alpha level of the cloaking device.
@@ -71,6 +70,7 @@
flags_item = initial(flags_item)
UnregisterSignal(user, list(COMSIG_MOB_STAT_SET_ALIVE, COMSIG_MOB_DEATH))
SSminimaps.remove_marker(user)
+ unlock_bracer() // So as to prevent the bracer being stuck with nodrop if the pred gets gibbed/arm removed/etc.
..()
/obj/item/clothing/gloves/yautja/pickup(mob/living/user)
@@ -96,7 +96,7 @@
human_holder.update_power_display(perc_charge)
//Non-Yautja have a chance to get stunned with each power drain
- if(!cloaked)
+ if(!HAS_TRAIT(human_holder, TRAIT_CLOAKED))
return
if(human_holder.stat == DEAD)
decloak(human_holder, TRUE)
@@ -293,7 +293,7 @@
var/mob/living/carbon/human/wearer = loc
if(wearer.gloves == src)
wearer.visible_message(SPAN_DANGER("You hear a hiss and crackle!"), SPAN_DANGER("Your bracers hiss and spark!"), SPAN_DANGER("You hear a hiss and crackle!"))
- if(cloaked)
+ if(HAS_TRAIT(wearer, TRAIT_CLOAKED))
decloak(wearer, TRUE, DECLOAK_EMP)
else
var/turf/our_turf = get_turf(src)
@@ -336,7 +336,7 @@
//Non-Yautja have a chance to get stunned with each power drain
if((!HAS_TRAIT(human, TRAIT_YAUTJA_TECH) && !human.hunter_data.thralled) && prob(4))
- if(cloaked)
+ if(HAS_TRAIT(human, TRAIT_CLOAKED))
decloak(human, TRUE, DECLOAK_SPECIES)
shock_user(human)
@@ -344,14 +344,14 @@
/obj/item/clothing/gloves/yautja/hunter/dropped(mob/user)
move_chip_to_bracer()
- if(cloaked)
+ if(HAS_TRAIT(user, TRAIT_CLOAKED))
decloak(user, TRUE)
..()
/obj/item/clothing/gloves/yautja/hunter/on_enter_storage(obj/item/storage/S)
if(ishuman(loc))
var/mob/living/carbon/human/human = loc
- if(cloaked)
+ if(HAS_TRAIT(human, TRAIT_CLOAKED))
decloak(human, TRUE)
. = ..()
@@ -549,7 +549,7 @@
if(!istype(M) || M.is_mob_incapacitated())
return FALSE
- if(cloaked) //Turn it off.
+ if(HAS_TRAIT(caller, TRAIT_CLOAKED)) //Turn it off.
if(cloak_timer > world.time)
to_chat(M, SPAN_WARNING("Your cloaking device is busy! Time left:
[max(round((cloak_timer - world.time) / 10), 1)] seconds."))
return FALSE
@@ -570,7 +570,7 @@
if(!drain_power(M, 50))
return FALSE
- cloaked = TRUE
+ ADD_TRAIT(M, TRAIT_CLOAKED, TRAIT_SOURCE_EQUIPMENT(WEAR_HANDS))
RegisterSignal(M, COMSIG_HUMAN_EXTINGUISH, PROC_REF(wrapper_fizzle_camouflage))
RegisterSignal(M, COMSIG_HUMAN_PRE_BULLET_ACT, PROC_REF(bullet_hit))
@@ -616,8 +616,8 @@
if(forced)
cloak_malfunction = world.time + decloak_timer
- cloaked = FALSE
- log_game("[key_name_admin(usr)] has disabled their cloaking device.")
+ REMOVE_TRAIT(user, TRAIT_CLOAKED, TRAIT_SOURCE_EQUIPMENT(WEAR_HANDS))
+ log_game("[key_name_admin(user)] has disabled their cloaking device.")
user.visible_message(SPAN_WARNING("[user] shimmers into existence!"), SPAN_WARNING("Your cloaking device deactivates."))
playsound(user.loc, 'sound/effects/pred_cloakoff.ogg', 15, 1)
user.alpha = initial(user.alpha)
@@ -732,7 +732,7 @@
var/mob/living/carbon/human/M = caller
- if(cloaked)
+ if(HAS_TRAIT(M, TRAIT_CLOAKED))
to_chat(M, SPAN_WARNING("Not while you're cloaked. It might disrupt the sequence."))
return
if(M.stat == DEAD)
@@ -836,7 +836,7 @@
to_chat(caller, SPAN_WARNING("You recently activated the stabilising crystal. Be patient."))
return FALSE
- if(!drain_power(caller, 1000))
+ if(!drain_power(caller, 400))
return FALSE
inject_timer = TRUE
@@ -877,7 +877,7 @@
to_chat(usr, SPAN_WARNING("Your bracer is still generating a new healing capsule!"))
return FALSE
- if(!drain_power(caller, 800))
+ if(!drain_power(caller, 600))
return FALSE
healing_capsule_timer = TRUE
@@ -1162,18 +1162,26 @@
/// The actual unlock/lock function.
/obj/item/clothing/gloves/yautja/proc/toggle_lock_internal(mob/wearer, force_lock)
if(((flags_item & NODROP) || (flags_inventory & CANTSTRIP)) && !force_lock)
- flags_item &= ~NODROP
- flags_inventory &= ~CANTSTRIP
- if(!isyautja(wearer))
- to_chat(wearer, SPAN_WARNING("The bracer beeps pleasantly, releasing it's grip on your forearm."))
- else
- to_chat(wearer, SPAN_WARNING("With an angry blare the bracer releases your forearm."))
- return TRUE
+ return unlock_bracer()
+ return lock_bracer()
+
+/obj/item/clothing/gloves/yautja/proc/lock_bracer(mob/wearer)
flags_item |= NODROP
flags_inventory |= CANTSTRIP
- if(isyautja(wearer))
- to_chat(wearer, SPAN_WARNING("The bracer clamps securely around your forearm and beeps in a comfortable, familiar way."))
- else
- to_chat(wearer, SPAN_WARNING("The bracer clamps painfully around your forearm and beeps angrily. It won't come off!"))
+ if(wearer)
+ if(isyautja(wearer))
+ to_chat(wearer, SPAN_WARNING("The bracer clamps securely around your forearm and beeps in a comfortable, familiar way."))
+ else
+ to_chat(wearer, SPAN_WARNING("The bracer clamps painfully around your forearm and beeps angrily. It won't come off!"))
+ return TRUE
+
+/obj/item/clothing/gloves/yautja/proc/unlock_bracer(mob/wearer)
+ flags_item &= ~NODROP
+ flags_inventory &= ~CANTSTRIP
+ if(wearer)
+ if(!isyautja(wearer))
+ to_chat(wearer, SPAN_WARNING("The bracer beeps pleasantly, releasing its grip on your forearm."))
+ else
+ to_chat(wearer, SPAN_WARNING("With an angry blare, the bracer releases your forearm."))
return TRUE
diff --git a/code/modules/cm_preds/yaut_hudprocs.dm b/code/modules/cm_preds/yaut_hudprocs.dm
index b29f45cd31d9..6131ac135cb7 100644
--- a/code/modules/cm_preds/yaut_hudprocs.dm
+++ b/code/modules/cm_preds/yaut_hudprocs.dm
@@ -150,7 +150,7 @@
var/list/target_list = list()
for(var/mob/living/carbon/target in view(7, usr.client))
- if((ishuman_strict(target) || isxeno(target)) && target.stat != DEAD)
+ if(ishuman_strict(target) && (target.stat != DEAD))
target_list += target
var/mob/living/carbon/T = tgui_input_list(usr, "Target", "Choose a target.", target_list)
@@ -187,7 +187,7 @@
var/list/target_list = list()
for(var/mob/living/carbon/target in view(7, usr.client))
- if((ishuman_strict(target) || isxeno(target)) && target.stat != DEAD)
+ if(ishuman_strict(target) && (target.stat != DEAD))
if(target.hunter_data.honored)
target_list += target
diff --git a/code/modules/cm_preds/yaut_items.dm b/code/modules/cm_preds/yaut_items.dm
index 9e56d0da7098..c86a3fdd23e2 100644
--- a/code/modules/cm_preds/yaut_items.dm
+++ b/code/modules/cm_preds/yaut_items.dm
@@ -430,10 +430,12 @@
if(do_after(user, 10 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC))
// Display fancy animation for you and the person you might be pulling (Legacy)
+ REMOVE_TRAIT_ALLSOURCES(user, TRAIT_CLOAKED)
user.visible_message(SPAN_WARNING("[icon2html(user, viewers(src))][user] disappears!"))
var/tele_time = animation_teleport_quick_out(user)
var/mob/living/M = user.pulling
if(istype(M)) // Pulled person
+ REMOVE_TRAIT_ALLSOURCES(M, TRAIT_CLOAKED)
M.visible_message(SPAN_WARNING("[icon2html(M, viewers(src))][M] disappears!"))
animation_teleport_quick_out(M)
diff --git a/code/modules/cm_preds/yaut_weapons.dm b/code/modules/cm_preds/yaut_weapons.dm
index 762ab9ecbb0f..0ea527847d72 100644
--- a/code/modules/cm_preds/yaut_weapons.dm
+++ b/code/modules/cm_preds/yaut_weapons.dm
@@ -337,11 +337,12 @@
/obj/item/weapon/yautja/combistick/IsShield()
return on
-/obj/item/weapon/yautja/combistick/verb/use_unique_action()
+/obj/item/weapon/yautja/combistick/verb/fold_combistick()
set category = "Weapons"
- set name = "Unique Action"
- set desc = "Activate or deactivate the combistick."
- set src in usr
+ set name = "Collapse Combi-stick"
+ set desc = "Collapse or extend the combistick."
+ set src = usr.contents
+
unique_action(usr)
/obj/item/weapon/yautja/combistick/attack_self(mob/user)
@@ -954,12 +955,15 @@
if(!HAS_TRAIT(user, TRAIT_YAUTJA_TECH))
to_chat(user, SPAN_WARNING("You have no idea how this thing works!"))
return
+ if(charge_time < 7)
+ to_chat(user, SPAN_WARNING("The rifle does not have enough power remaining!"))
+ return
return ..()
/obj/item/weapon/gun/energy/yautja/plasmarifle/load_into_chamber()
ammo = GLOB.ammo_list[/datum/ammo/energy/yautja/rifle/bolt]
- charge_time -= 10
+ charge_time -= 7
var/obj/projectile/projectile = create_bullet(ammo, initial(name))
projectile.set_light(1)
in_chamber = projectile
@@ -974,7 +978,8 @@
/obj/item/weapon/gun/energy/yautja/plasmarifle/delete_bullet(obj/projectile/projectile_to_fire, refund = 0)
qdel(projectile_to_fire)
- if(refund) charge_time *= 2
+ if(refund)
+ charge_time += 7
return TRUE
#define FIRE_MODE_STANDARD "Standard"
@@ -1164,15 +1169,15 @@
switch(strength)
if("low power stun bolts")
strength = "high power stun bolts"
- charge_cost = 100
- set_fire_delay(FIRE_DELAY_TIER_6 * 3)
+ charge_cost = 50
+ set_fire_delay(FIRE_DELAY_TIER_1)
fire_sound = 'sound/weapons/pred_lasercannon.ogg'
to_chat(user, SPAN_NOTICE("[src] will now fire [strength]."))
ammo = GLOB.ammo_list[/datum/ammo/energy/yautja/caster/bolt/stun]
if("high power stun bolts")
strength = "plasma immobilizers"
- charge_cost = 300
- set_fire_delay(FIRE_DELAY_TIER_6 * 20)
+ charge_cost = 200
+ set_fire_delay(FIRE_DELAY_TIER_2 * 8)
fire_sound = 'sound/weapons/pulse.ogg'
to_chat(user, SPAN_NOTICE("[src] will now fire [strength]."))
ammo = GLOB.ammo_list[/datum/ammo/energy/yautja/caster/sphere/stun]
@@ -1187,8 +1192,8 @@
switch(strength)
if("plasma bolts")
strength = "plasma spheres"
- charge_cost = 1200
- set_fire_delay(FIRE_DELAY_TIER_6 * 20)
+ charge_cost = 1000
+ set_fire_delay(FIRE_DELAY_TIER_2 * 12)
fire_sound = 'sound/weapons/pulse.ogg'
to_chat(user, SPAN_NOTICE("[src] will now fire [strength]."))
ammo = GLOB.ammo_list[/datum/ammo/energy/yautja/caster/sphere]
diff --git a/code/modules/cm_tech/techs/marine/tier3/cryo_spec.dm b/code/modules/cm_tech/techs/marine/tier3/cryo_spec.dm
index 98736d105a83..d6c849e883af 100644
--- a/code/modules/cm_tech/techs/marine/tier3/cryo_spec.dm
+++ b/code/modules/cm_tech/techs/marine/tier3/cryo_spec.dm
@@ -21,4 +21,4 @@
/datum/tech/cryomarine/on_unlock()
. = ..()
- SSticker.mode.get_specific_call("Marine Cryo Reinforcement (Spec)", FALSE, FALSE, announce_dispatch_message = FALSE)
+ SSticker.mode.get_specific_call("Marine Cryo Reinforcement (Spec)", TRUE, FALSE, FALSE, announce_dispatch_message = FALSE)
diff --git a/code/modules/cm_tech/techs/marine/tier3/cryorine.dm b/code/modules/cm_tech/techs/marine/tier3/cryorine.dm
index 56542e0000a6..575ffe67b85b 100644
--- a/code/modules/cm_tech/techs/marine/tier3/cryorine.dm
+++ b/code/modules/cm_tech/techs/marine/tier3/cryorine.dm
@@ -23,4 +23,4 @@
/datum/tech/repeatable/cryomarine/on_unlock()
. = ..()
- SSticker.mode.get_specific_call("Marine Cryo Reinforcements (Tech)", FALSE, FALSE, announce_dispatch_message = FALSE)
+ SSticker.mode.get_specific_call("Marine Cryo Reinforcements (Tech)", TRUE, FALSE, FALSE, announce_dispatch_message = FALSE)
diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm
index c626f9cd1ee1..c7b1d65c7da2 100644
--- a/code/modules/flufftext/Hallucination.dm
+++ b/code/modules/flufftext/Hallucination.dm
@@ -85,10 +85,10 @@ Gunshots/explosions/opening doors/less rare audio (done)
halitem.icon_state = "flashbang1"
halitem.name = "Flashbang"
if(client)
- client.screen += halitem
+ client.add_to_screen(halitem)
spawn(rand(100,250))
if(client)
- client.screen -= halitem
+ client.remove_from_screen(halitem)
halitem = null
if(26 to 40)
//Flashes of danger
diff --git a/code/modules/gear_presets/_select_equipment.dm b/code/modules/gear_presets/_select_equipment.dm
index 4c3a4476d733..111ce38a6762 100644
--- a/code/modules/gear_presets/_select_equipment.dm
+++ b/code/modules/gear_presets/_select_equipment.dm
@@ -430,7 +430,6 @@
/obj/item/tool/hatchet = null,
/obj/item/tool/hatchet = null,
/obj/item/storage/box/MRE = null,
- /obj/item/clothing/mask/gas/pmc = null,
/obj/item/clothing/glasses/night/m42_night_goggles/upp = null,
/obj/item/storage/box/handcuffs = null,
/obj/item/storage/pill_bottle/happy = null,
diff --git a/code/modules/gear_presets/clf.dm b/code/modules/gear_presets/clf.dm
index 81abf8bce550..39a7b648b999 100644
--- a/code/modules/gear_presets/clf.dm
+++ b/code/modules/gear_presets/clf.dm
@@ -344,7 +344,7 @@
list("Medical Pouch (Splints)", 0, /obj/item/storage/pouch/medical/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Medical Pouch (Pills)", 0, /obj/item/storage/pouch/medical/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Medium General Pouch", 0, /obj/item/storage/pouch/general/medium, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
- list("Medkit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
+ list("Medical Kit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
list("Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Pistol Pouch", 0, /obj/item/storage/pouch/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
@@ -820,7 +820,7 @@
list("Large General Pouch", 0, /obj/item/storage/pouch/general/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Sling Pouch", 0, /obj/item/storage/pouch/sling, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Medical Pouch", 0, /obj/item/storage/pouch/medical, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
- list("Medkit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Medical Kit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Tools Pouch (Full)", 0, /obj/item/storage/pouch/tools/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("MASK", 0, null, null, null),
diff --git a/code/modules/gear_presets/cmb.dm b/code/modules/gear_presets/cmb.dm
index 9da7ba70ae5b..867669463569 100644
--- a/code/modules/gear_presets/cmb.dm
+++ b/code/modules/gear_presets/cmb.dm
@@ -344,6 +344,14 @@
new_human.equip_to_slot_or_del(new /obj/item/device/radio, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/red, WEAR_IN_BACK)
+/datum/equipment_preset/cmb/liaison/black_market
+ name = "CMB - ICC Liaison - Black Market ERT"
+ skills = /datum/skills/civilian/icc_investigation
+
+/datum/equipment_preset/cmb/liaison/black_market/load_gear(mob/living/carbon/human/new_human)
+ . = ..()
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full, WEAR_WAIST) //Tool belt to open ASRS
+ new_human.equip_to_slot_or_del(new /obj/item/device/cmb_black_market_tradeband, WEAR_IN_BACK) //Tradeband to disable black market
//*****************************************************************************************************/
@@ -418,12 +426,6 @@
. = ..()
new_human.nutrition = rand(NUTRITION_MAX, NUTRITION_NORMAL)
-/datum/equipment_preset/uscm/cmb/load_rank(mob/living/carbon/human/new_human)
- if(new_human.client)
- if(get_job_playtime(new_human.client, rank) < JOB_PLAYTIME_TIER_1)
- return "ME1"
- return paygrade
-
/datum/equipment_preset/uscm/cmb/load_gear(mob/living/carbon/human/new_human)
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine, WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/holster, WEAR_ACCESSORY)
diff --git a/code/modules/gear_presets/fun.dm b/code/modules/gear_presets/fun.dm
index 8eacbb8161d2..e3511722af36 100644
--- a/code/modules/gear_presets/fun.dm
+++ b/code/modules/gear_presets/fun.dm
@@ -185,7 +185,7 @@
new_human.equip_to_slot_or_del(M, WEAR_BODY)
var/shoes_success = new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/specialist/hefa(new_human), WEAR_HEAD)
+ var/helmet_success = new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/specialist/hefa(new_human), WEAR_HEAD)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/ert(new_human), WEAR_L_STORE)
var/jacket_success = new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/M3G/hefa(new_human), WEAR_JACKET)
var/satchel_success = new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel(new_human), WEAR_BACK)
@@ -232,6 +232,12 @@
for(var/i in 1 to W.hold.storage_slots)
new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/high_explosive/frag(new_human.back), WEAR_IN_ACCESSORY)
+ // Helmet
+ if(helmet_success)
+ var/obj/item/clothing/head/helmet/marine/hefa_helmet = new_human.head
+ for(var/i in 1 to hefa_helmet.pockets.storage_slots)
+ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/high_explosive/frag(new_human.head), WEAR_IN_HELMET)
+
/datum/equipment_preset/fun/santa
name = "Fun - Santa"
paygrade = "C"
diff --git a/code/modules/gear_presets/other.dm b/code/modules/gear_presets/other.dm
index b440fe4533b2..837af5ac6677 100644
--- a/code/modules/gear_presets/other.dm
+++ b/code/modules/gear_presets/other.dm
@@ -216,7 +216,7 @@
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/freelancer, WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/freelancer, WEAR_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/clothing/head/freelancer/beret, WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine, WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET)
new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS)
if(new_human.disabilities & NEARSIGHTED)
new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health/prescription(new_human), WEAR_EYES)
diff --git a/code/modules/gear_presets/pmc.dm b/code/modules/gear_presets/pmc.dm
index fcfb61a7d810..1e8baa9182cf 100644
--- a/code/modules/gear_presets/pmc.dm
+++ b/code/modules/gear_presets/pmc.dm
@@ -412,7 +412,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null),
list("Large Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Large Magazine Pouch", 0, /obj/item/storage/pouch/magazine/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Medical Pouch", 0, /obj/item/storage/pouch/medical, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
- list("Medkit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
+ list("Medical Kit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
list("Pressurized Reagent Canister Pouch (Bicaridine)", 0, /obj/item/storage/pouch/pressurized_reagent_canister/bicaridine, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
list("Pressurized Reagent Canister Pouch (Kelotane)", 0, /obj/item/storage/pouch/pressurized_reagent_canister/kelotane, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
list("Pressurized Reagent Canister Pouch (Revival Mix)", 0, /obj/item/storage/pouch/pressurized_reagent_canister/revival, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
@@ -590,7 +590,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null),
list("Large Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Large Magazine Pouch", 0, /obj/item/storage/pouch/magazine/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Medical Pouch", 0, /obj/item/storage/pouch/medical, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
- list("Medkit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
+ list("Medical Kit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
list("Pressurized Reagent Canister Pouch (Bicaridine)", 0, /obj/item/storage/pouch/pressurized_reagent_canister/bicaridine, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
list("Pressurized Reagent Canister Pouch (Kelotane)", 0, /obj/item/storage/pouch/pressurized_reagent_canister/kelotane, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
list("Pressurized Reagent Canister Pouch (Revival Mix)", 0, /obj/item/storage/pouch/pressurized_reagent_canister/revival, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
@@ -1564,7 +1564,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null),
list("Large Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Large Magazine Pouch", 0, /obj/item/storage/pouch/magazine/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Medical Pouch", 0, /obj/item/storage/pouch/medical, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
- list("Medkit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
+ list("Medical Kit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
list("Pressurized Reagent Canister Pouch (Bicaridine)", 0, /obj/item/storage/pouch/pressurized_reagent_canister/bicaridine, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
list("Pressurized Reagent Canister Pouch (Kelotane)", 0, /obj/item/storage/pouch/pressurized_reagent_canister/kelotane, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
list("Pressurized Reagent Canister Pouch (Revival Mix)", 0, /obj/item/storage/pouch/pressurized_reagent_canister/revival, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
@@ -1968,7 +1968,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null),
list("Large General Pouch", 0, /obj/item/storage/pouch/general/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Sling Pouch", 0, /obj/item/storage/pouch/sling, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Medical Pouch", 0, /obj/item/storage/pouch/medical, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
- list("Medkit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Medical Kit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Pressurized Reagent Canister Pouch (Bicaridine)", 0, /obj/item/storage/pouch/pressurized_reagent_canister/bicaridine, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Pressurized Reagent Canister Pouch (Kelotane)", 0, /obj/item/storage/pouch/pressurized_reagent_canister/kelotane, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Pressurized Reagent Canister Pouch (Revival Mix)", 0, /obj/item/storage/pouch/pressurized_reagent_canister/revival, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
diff --git a/code/modules/gear_presets/survivors.dm b/code/modules/gear_presets/survivors.dm
deleted file mode 100644
index 919e67e7cbf9..000000000000
--- a/code/modules/gear_presets/survivors.dm
+++ /dev/null
@@ -1,1741 +0,0 @@
-/datum/equipment_preset/survivor
- name = JOB_SURVIVOR
- assignment = JOB_SURVIVOR
- rank = JOB_SURVIVOR
-
- skills = /datum/skills/civilian/survivor
- languages = list(LANGUAGE_ENGLISH)
- paygrade = "C"
- idtype = /obj/item/card/id/lanyard
- faction = FACTION_SURVIVOR
- faction_group = list(FACTION_SURVIVOR)
- origin_override = ORIGIN_CIVILIAN
-
- access = list(ACCESS_CIVILIAN_PUBLIC)
-
- minimap_icon = "surv"
- minimap_background = MINIMAP_ICON_BACKGROUND_CIVILIAN
-
- var/survivor_variant = CIVILIAN_SURVIVOR
-
-/datum/equipment_preset/survivor/load_name(mob/living/carbon/human/new_human, randomise)
- new_human.gender = pick(MALE, FEMALE)
- var/datum/preferences/A = new
- A.randomize_appearance(new_human)
- var/random_name = capitalize(pick(new_human.gender == MALE ? first_names_male : first_names_female)) + " " + capitalize(pick(last_names))
- new_human.change_real_name(new_human, random_name)
- new_human.age = rand(21,45)
-
-/datum/equipment_preset/survivor/load_gear(mob/living/carbon/human/new_human) // Essentially where you will put the most essential piece of kit you want survivors to spawn with.
- add_random_survivor_equipment(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/survival/full(new_human), WEAR_L_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/med_small_stack(new_human), WEAR_IN_BACK)
- add_survivor_weapon_pistol(new_human)
-
-/datum/equipment_preset/survivor/load_id(mob/living/carbon/human/new_human, client/mob_client)
- var/obj/item/clothing/under/uniform = new_human.w_uniform
- if(istype(uniform))
- uniform.has_sensor = UNIFORM_HAS_SENSORS
- uniform.sensor_faction = FACTION_COLONIST
- return ..()
-
-
-// ----- Scientist Survivor
-
-/datum/equipment_preset/survivor/scientist
- name = "Survivor - Scientist"
- assignment = "Scientist"
- skills = /datum/skills/civilian/survivor/scientist
- flags = EQUIPMENT_PRESET_START_OF_ROUND
- idtype = /obj/item/card/id/silver/clearance_badge/scientist
- access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_RESEARCH, ACCESS_CIVILIAN_MEDBAY)
-
- survivor_variant = SCIENTIST_SURVIVOR
-
-/datum/equipment_preset/survivor/scientist/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/virologist(new_human), WEAR_BODY)
- if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
- add_ice_colony_survivor_equipment(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/green(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/virologist(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/green(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science(new_human), WEAR_EYES)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/chem(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/green(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/paper/research_notes/good(new_human), WEAR_IN_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/reagent_container/glass/beaker/vial/random/good(new_human), WEAR_IN_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/medical/full(new_human), WEAR_R_STORE)
- add_survivor_weapon_civilian(new_human)
- add_random_survivor_research_gear(new_human)
-
- ..()
-
-/datum/equipment_preset/survivor/scientist/soro
- name = "Survivor - Sorokyne Strata Researcher"
- assignment = "Sorokyne Strata Researcher"
-
-/datum/equipment_preset/survivor/scientist/soro/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/blue(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/regular(new_human), WEAR_FACE)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/tox(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor(new_human), WEAR_JACKET)
-
- ..()
-
-/datum/equipment_preset/survivor/scientist/shiva
- name = "Survivor - Shivas Snowball Researcher"
- assignment = "Shivas Snowball Researcher"
-
-/datum/equipment_preset/survivor/scientist/shiva/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/blue(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/tox(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor/parka/purple(new_human), WEAR_JACKET)
-
- ..()
-
-/datum/equipment_preset/survivor/scientist/corsat
- name = "Survivor - CORSAT Researcher"
- assignment = "CORSAT Researcher"
-
-/datum/equipment_preset/survivor/scientist/corsat/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/researcher(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(new_human), WEAR_FEET)
-
- ..()
-
-/datum/equipment_preset/survivor/scientist/florina
- name = "Survivor - Florina Researcher"
- assignment = "Florina Researcher"
-
-/datum/equipment_preset/survivor/scientist/florina/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/purple(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/purple(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/science(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science(new_human), WEAR_EYES)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/chem(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(new_human), WEAR_FEET)
-
- ..()
-
-/datum/equipment_preset/survivor/scientist/lv
- name = "Survivor - LV-624 Archeologist"
- assignment = "LV-624 Archeologist"
-
-/datum/equipment_preset/survivor/scientist/lv/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/researcher(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/boonie(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science(new_human), WEAR_EYES)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
-
- ..()
-
-/datum/equipment_preset/survivor/scientist/nv
- name = "Survivor - New Varadero Researcher"
- assignment = "New Varadero Researcher"
-
-/datum/equipment_preset/survivor/scientist/nv/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/purple(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/boonie(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science(new_human), WEAR_EYES)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/chem(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/purple(new_human), WEAR_FEET)
-
- ..()
-
-/datum/equipment_preset/survivor/scientist/solaris
- name = "Survivor - Solaris Scientist"
- assignment = "Solaris Scientist"
-
-/datum/equipment_preset/survivor/scientist/solaris/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/virologist(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/green(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/virologist(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/green(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science(new_human), WEAR_EYES)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/green(new_human), WEAR_FEET)
-
- ..()
-
-// ----- Doctor Survivor
-
-/datum/equipment_preset/survivor/doctor
- name = "Survivor - Doctor"
- assignment = "Doctor"
- skills = /datum/skills/civilian/survivor/doctor
- flags = EQUIPMENT_PRESET_START_OF_ROUND
- idtype = /obj/item/card/id/silver/clearance_badge
- access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_RESEARCH, ACCESS_CIVILIAN_MEDBAY, ACCESS_CIVILIAN_COMMAND)
-
- survivor_variant = MEDICAL_SURVIVOR
-
-/datum/equipment_preset/survivor/doctor/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(new_human), WEAR_BODY)
- if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
- add_ice_colony_survivor_equipment(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/med(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat(new_human), WEAR_JACKET)
- var/random_gear = rand(0,4)
- switch(random_gear)
- if(0)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full/alternate(new_human), WEAR_R_STORE)
- if(1)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/medical/full(new_human), WEAR_R_STORE)
- if(2)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full(new_human), WEAR_R_STORE)
- if(3)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/first_responder/full(new_human), WEAR_R_STORE)
- if(4)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/medkit/full_advanced(new_human), WEAR_R_STORE)
- add_random_survivor_medical_gear(new_human)
- add_survivor_weapon_civilian(new_human)
-
-
- ..()
-
-/datum/equipment_preset/survivor/doctor/trijent
- name = "Survivor - Trijent Doctor"
- assignment = "Trijent Dam Doctor"
-
-/datum/equipment_preset/survivor/doctor/trijent/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/blue(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/blue(new_human), WEAR_HEAD)
-
- ..()
-
-/datum/equipment_preset/survivor/doctor/soro
- name = "Survivor - Sorokyne Strata Doctor"
- assignment = "Sorokyne Strata Doctor"
-
-/datum/equipment_preset/survivor/doctor/soro/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/veteran/soviet_uniform_01(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD)
-
- ..()
-
-/datum/equipment_preset/survivor/doctor/corsat
- name = "Survivor - CORSAT Doctor"
- assignment = "CORSAT Doctor"
-
-/datum/equipment_preset/survivor/doctor/corsat/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/green(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/green(new_human), WEAR_HEAD)
-
- ..()
-
-/datum/equipment_preset/survivor/doctor/florina
- name = "Survivor - Florina Doctor"
- assignment = "Florina Doctor"
-
-/datum/equipment_preset/survivor/doctor/florina/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc(new_human), WEAR_HEAD)
-
- ..()
-
-/datum/equipment_preset/survivor/doctor/kutjevo
- name = "Survivor - Kutjevo Doctor"
- assignment = "Kutjevo Doctor"
-
-/datum/equipment_preset/survivor/doctor/kutjevo/load_gear(mob/living/carbon/human/new_human)
- if(new_human.disabilities & NEARSIGHTED)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health/prescription(new_human), WEAR_EYES)
- else
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health(new_human), WEAR_EYES)
- add_random_kutjevo_survivor_uniform(new_human)
- add_random_kutjevo_survivor_equipment(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS)
-
- ..()
-
-/datum/equipment_preset/survivor/doctor/lv
- name = "Survivor - LV-624 Emergency Medical Technician"
- assignment = "LV-624 Emergency Medical Technician"
-
-/datum/equipment_preset/survivor/doctor/lv/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE)
- new_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/adv(new_human.back), WEAR_IN_BACK)
-
- ..()
-
-/datum/equipment_preset/survivor/doctor/nv
- name = "Survivor - New Varadero Medical Technician"
- assignment = "New Varadero Medical Technician"
-
-/datum/equipment_preset/survivor/doctor/nv/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE)
- new_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/adv(new_human.back), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/boonie(new_human), WEAR_HEAD)
-
- ..()
-
-/datum/equipment_preset/survivor/doctor/solaris
- name = "Survivor - Solaris Doctor"
- assignment = "Solaris Doctor"
-
-/datum/equipment_preset/survivor/doctor/solaris/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/purple(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/purple(new_human), WEAR_HEAD)
-
- ..()
-
-/datum/equipment_preset/survivor/doctor/shiva
- name = "Survivor - Shivas Snowball Doctor"
- assignment = "Shivas Snowball Doctor"
-
-/datum/equipment_preset/survivor/doctor/shiva/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/green(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor/parka/green(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/white(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE)
-
- ..()
-
-// ----- CL Survivor
-
-/datum/equipment_preset/survivor/corporate
- name = "Survivor - Corporate Liaison"
- assignment = "Corporate Liaison"
- skills = /datum/skills/civilian/survivor
- flags = EQUIPMENT_PRESET_START_OF_ROUND
- paygrade = "WYC2"
- idtype = /obj/item/card/id/silver/clearance_badge/cl
- access = list(
- ACCESS_CIVILIAN_PUBLIC,
- ACCESS_CIVILIAN_COMMAND,
- ACCESS_WY_GENERAL,
- ACCESS_WY_COLONIAL,
- ACCESS_WY_EXEC,
- )
- languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE)
-
- survivor_variant = CORPORATE_SURVIVOR
-
-/datum/equipment_preset/survivor/corporate/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/formal(new_human), WEAR_BODY)
- if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
- add_ice_colony_survivor_equipment(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
- add_random_cl_survivor_loot(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/centcom(new_human), WEAR_FEET)
- add_survivor_weapon_civilian(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/document(new_human), WEAR_R_STORE)
-
- ..()
-
-/datum/equipment_preset/survivor/corporate/load_rank(mob/living/carbon/human/new_human)
- if(new_human.client)
- var/playtime = get_job_playtime(new_human.client, JOB_CORPORATE_LIAISON)
- if(new_human.client.prefs.playtime_perks)
- if(playtime > JOB_PLAYTIME_TIER_4)
- return "WYC5"
- else if(playtime > JOB_PLAYTIME_TIER_3)
- return "WYC4"
- else if(playtime > JOB_PLAYTIME_TIER_2)
- return "WYC3"
- else
- return paygrade
- return paygrade
-
-/datum/equipment_preset/survivor/corporate/shiva
- name = "Survivor - Shivas Snowball Corporate Liaison"
- assignment = "Shivas Snowball Corporate Liaison"
-
-/datum/equipment_preset/survivor/corporate/shiva/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/formal(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/white(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor/parka/navy(new_human), WEAR_JACKET)
-
- ..()
-
-/datum/equipment_preset/survivor/corporate/solaris
- name = "Survivor - Solaris Ridge Corporate Liaison"
- assignment = "Solaris Ridge Corporate Liaison"
-
-/datum/equipment_preset/survivor/corporate/solaris/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/outing/red(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR)
- if(new_human.disabilities & NEARSIGHTED)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/prescription(new_human), WEAR_EYES)
- else
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(new_human), WEAR_EYES)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
-
- ..()
-
-// ----- Security Survivor
-
-/datum/equipment_preset/survivor/security
- name = "Survivor - Security"
- assignment = "Security"
- skills = /datum/skills/civilian/survivor/marshal
- flags = EQUIPMENT_PRESET_START_OF_ROUND
- idtype = /obj/item/card/id/data
- access = list(ACCESS_CIVILIAN_PUBLIC,ACCESS_CIVILIAN_BRIG,ACCESS_CIVILIAN_COMMAND)
-
- survivor_variant = SECURITY_SURVIVOR
-
-/datum/equipment_preset/survivor/security/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/security(new_human), WEAR_BODY)
- if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
- add_ice_colony_survivor_equipment(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet(new_human), WEAR_HEAD)
- if(new_human.disabilities & NEARSIGHTED)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud/prescription(new_human), WEAR_EYES)
- else
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(new_human), WEAR_EYES)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine(new_human), WEAR_R_STORE)
- add_survivor_weapon_security(new_human)
- ..()
-
-/datum/equipment_preset/survivor/security/trijent
- name = "Survivor - Trijent Security Guard"
- assignment = "Trijent Dam Security Guard"
-
-/datum/equipment_preset/survivor/security/trijent/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/head_of_security/navyblue(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/marine/mp/mpcap(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/det_suit/black(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
-
- ..()
-
-/datum/equipment_preset/survivor/security/soro
- name = "Survivor - Sorokyne Strata Security"
- assignment = "Sorokyne Strata Security"
-
-/datum/equipment_preset/survivor/security/soro/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/veteran/soviet_uniform_01(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/soviet(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS)
-
- ..()
-
-/datum/equipment_preset/survivor/security/corsat
- name = "Survivor - CORSAT Security Guard"
- assignment = "Weyland-Yutani Security Guard"
- languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE)
-
-/datum/equipment_preset/survivor/security/corsat/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/formal/servicedress(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc(new_human), WEAR_HEAD)
- if(new_human.disabilities & NEARSIGHTED)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud/prescription(new_human), WEAR_EYES)
- else
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(new_human), WEAR_EYES)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
-
- ..()
-
-/datum/equipment_preset/survivor/security/florina
- name = "Survivor - Florina Prison Guard"
- assignment = "Florina Prison Guard"
-
-/datum/equipment_preset/survivor/security/florina/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/security(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
-
- ..()
-
-/datum/equipment_preset/survivor/security/kutjevo
- name = "Survivor - Kutjevo Security Guard"
- assignment = "Kutjevo Security Guard"
-
-
-/datum/equipment_preset/survivor/security/kutjevo/load_gear(mob/living/carbon/human/new_human)
- add_random_kutjevo_survivor_uniform(new_human)
- add_random_kutjevo_survivor_equipment(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
-
- ..()
-
-/datum/equipment_preset/survivor/security/lv
- name = "Survivor - LV-624 Security Guard"
- assignment = "Weyland-Yutani Security Guard"
- languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE)
-
-/datum/equipment_preset/survivor/security/lv/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/formal/servicedress(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/jungle(new_human), WEAR_FEET)
-
- ..()
-
-/datum/equipment_preset/survivor/security/nv
- name = "Survivor - New Varadero Security Guard"
- assignment = "United Americas Peacekeeper"
- languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE)
-
-/datum/equipment_preset/survivor/security/nv/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/ua_riot(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/ua_riot(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
-
- ..()
-
-/datum/equipment_preset/survivor/security/shiva
- name = "Survivor - Shivas Snowball Security Guard"
- assignment = "United Americas Peacekeeper"
-
-/datum/equipment_preset/survivor/security/shiva/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/ua_riot(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/ua_riot(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/white(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
-
- ..()
-
-/datum/equipment_preset/survivor/security/solaris
- name = "Survivor - Solaris United Americas Peacekeepers"
- assignment = "United Americas Peacekeeper"
-
-/datum/equipment_preset/survivor/security/solaris/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/ua_riot(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/sec/hos(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
-
- ..()
-
-// ----- Prisioner Survivors
-
-/datum/equipment_preset/survivor/prisoner
- name = "Survivor - Prisoner"
- assignment = "Prisoner"
- skills = /datum/skills/civilian/survivor/prisoner
- flags = EQUIPMENT_PRESET_START_OF_ROUND
- access = list(ACCESS_CIVILIAN_PUBLIC)
-
- survivor_variant = SECURITY_SURVIVOR
-
-/datum/equipment_preset/survivor/prisoner/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/color/orange(new_human), WEAR_BODY)
- if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
- add_ice_colony_survivor_equipment(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
- if(prob(50)) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet(new_human), WEAR_HEAD)
- if(prob(50)) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human.back), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/medium(new_human), WEAR_R_STORE)
- add_survivor_weapon_civilian(new_human)
- ..()
-
-/datum/equipment_preset/survivor/gangleader
- name = "Survivor - Gang Leader"
- assignment = "Gang Leader"
- skills = /datum/skills/civilian/survivor/gangleader
- flags = EQUIPMENT_PRESET_START_OF_ROUND
- access = list(ACCESS_CIVILIAN_PUBLIC)
-
-/datum/equipment_preset/survivor/gangleader/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/color/orange(new_human), WEAR_BODY)
- if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
- add_ice_colony_survivor_equipment(new_human)
- if(prob(50)) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet(new_human), WEAR_HEAD)
- if(prob(50)) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human.back), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large(new_human), WEAR_R_STORE)
- add_survivor_weapon_civilian(new_human)
- ..()
-
-// ----- Civilian Survivor
-
-/datum/equipment_preset/survivor/civilian
- name = "Survivor - Civilian"
- assignment = "Civilian"
- skills = /datum/skills/civilian/survivor
- flags = EQUIPMENT_PRESET_START_OF_ROUND
- access = list(ACCESS_CIVILIAN_PUBLIC)
-
-/datum/equipment_preset/survivor/civilian/load_gear(mob/living/carbon/human/new_human)
- var/random_gear = rand(0, 3)
- switch(random_gear)
- if(0) // Normal Colonist
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/norm(new_human), WEAR_BACK)
- if(1) // Janitor
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/janitor(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/vir(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/purple(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/mgoggles(new_human), WEAR_EYES)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/purple(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/galoshes(new_human), WEAR_FEET)
- if(2) // Bar Tender
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/waiter(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/lawyer/bluejacket(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/bowlerhat(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/fake_mustache(new_human), WEAR_FACE)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/black(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/beer_pack(new_human.back), WEAR_IN_BACK)
- if(3) // Botanist
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/hyd(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/apron(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/tool/hatchet(new_human.back), WEAR_IN_BACK)
- if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
- add_ice_colony_survivor_equipment(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/norm(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general(new_human), WEAR_R_STORE)
- add_survivor_weapon_civilian(new_human)
-
- ..()
-
-// ----- Chef Survivor
-
-/datum/equipment_preset/survivor/chef
- name = "Survivor - Chef"
- assignment = "Chef"
- skills = /datum/skills/civilian/survivor/chef
- flags = EQUIPMENT_PRESET_START_OF_ROUND
- access = list(ACCESS_CIVILIAN_PUBLIC)
-
-/datum/equipment_preset/survivor/chef/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist(new_human), WEAR_BODY)
- if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
- add_ice_colony_survivor_equipment(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/norm(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/chef(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/tool/kitchen/rollingpin(new_human.back), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general(new_human), WEAR_R_STORE)
- add_survivor_weapon_civilian(new_human)
-
- ..()
-
-// ----- Chaplain Survivor
-
-/datum/equipment_preset/survivor/chaplain
- name = "Survivor - Chaplain"
- assignment = "Chaplain"
- skills = /datum/skills/civilian/survivor/chaplain
- flags = EQUIPMENT_PRESET_START_OF_ROUND
- access = list(ACCESS_CIVILIAN_PUBLIC)
-
-/datum/equipment_preset/survivor/chaplain/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chaplain(new_human), WEAR_BODY)
- if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
- add_ice_colony_survivor_equipment(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/norm(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/holidaypriest(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/bible/booze(new_human.back), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general(new_human), WEAR_R_STORE)
- add_survivor_weapon_civilian(new_human)
-
- ..()
-
-/datum/equipment_preset/survivor/chaplain/trijent
- name = "Survivor - Trijent Chaplain"
- assignment = "Trijent Chaplain"
-
-/datum/equipment_preset/survivor/chaplain/trijent/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/nun(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/nun_hood(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/holidaypriest(new_human), WEAR_JACKET)
-
- ..()
-
-/datum/equipment_preset/survivor/chaplain/kutjevo
- name = "Survivor - Kutjevo Chaplain"
- assignment = "Kutjevo Chaplain"
-
-/datum/equipment_preset/survivor/chaplain/kutjevo/load_gear(mob/living/carbon/human/new_human)
- add_random_kutjevo_survivor_uniform(new_human)
- add_random_kutjevo_survivor_equipment(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS)
-
- ..()
-
-/datum/equipment_preset/survivor/chaplain/lv
- name = "Survivor - LV-624 Priest"
- assignment = "LV-624 Priest"
-
-/datum/equipment_preset/survivor/chaplain/lv/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chaplain(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/norm(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/priest_robe(new_human), WEAR_JACKET)
-
- ..()
-
-/datum/equipment_preset/survivor/chaplain/nv
- name = "Survivor - New Varadero Priest"
- assignment = "New Varadero Priest"
-
-/datum/equipment_preset/survivor/chaplain/nv/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chaplain(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/boonie(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/norm(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/priest_robe(new_human), WEAR_JACKET)
-
- ..()
-
-/datum/equipment_preset/survivor/chaplain/solaris
- name = "Survivor - Solaris Chaplain"
- assignment = "Solaris Chaplain"
-
-/datum/equipment_preset/survivor/chaplain/solaris/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/holidaypriest(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/nun_hood(new_human), WEAR_HEAD)
-
- ..()
-
-// ----- Engineering Survivor
-
-/datum/equipment_preset/survivor/engineer
- name = "Survivor - Engineer"
- assignment = "Engineer"
- skills = /datum/skills/civilian/survivor/engineer
- flags = EQUIPMENT_PRESET_START_OF_ROUND
- access = list(ACCESS_CIVILIAN_PUBLIC,ACCESS_CIVILIAN_ENGINEERING,ACCESS_CIVILIAN_LOGISTICS)
-
- survivor_variant = ENGINEERING_SURVIVOR
-
-/datum/equipment_preset/survivor/engineer/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(new_human), WEAR_BODY)
- if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
- add_ice_colony_survivor_equipment(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/tool/weldingtool/largetank(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/plasteel/med_small_stack(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding(new_human), WEAR_EYES)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/insulated(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full(new_human), WEAR_WAIST)
- add_survivor_weapon_civilian(new_human)
-
- ..()
-
-
-/datum/equipment_preset/survivor/engineer/trijent
- name = "Survivor - Dam Maintenance Technician"
- assignment = "Dam Maintenance Technician"
-
-/datum/equipment_preset/survivor/engineer/trijent/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/engi(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/orange(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
-
- ..()
-
-
-/datum/equipment_preset/survivor/engineer/lv
- name = "Survivor - LV-624 Engineer"
- assignment = "LV-624 Engineer"
-
-/datum/equipment_preset/survivor/engineer/lv/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/dispatch(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/orange(new_human), WEAR_HEAD)
-
- ..()
-
-/datum/equipment_preset/survivor/engineer/nv
- name = "Survivor - New Varadero Technician"
- assignment = "New Varadero Engineer"
-
-/datum/equipment_preset/survivor/engineer/nv/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/dispatch(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/orange(new_human), WEAR_HEAD)
-
- ..()
-
-/datum/equipment_preset/survivor/engineer/shiva
- name = "Survivor - Shivas Snowball Engineer"
- assignment = "Shivas Snowball Engineer"
-
-/datum/equipment_preset/survivor/engineer/shiva/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor/parka/yellow(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD)
-
- ..()
-
-/datum/equipment_preset/survivor/engineer/soro
- name = "Survivor - Sorokyne Strata Political Prisioner"
- assignment = "Sorokyne Strata Political Prisioner"
-
-/datum/equipment_preset/survivor/engineer/soro/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/UPP(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/soviet(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE)
-
- ..()
-
-/datum/equipment_preset/survivor/engineer/trijent/hydro
- name = "Survivor - Hydro Electric Engineer"
- assignment = "Hydro Electric Engineer"
-
-/datum/equipment_preset/survivor/engineer/trijent/hydro/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat(new_human), WEAR_HEAD)
-
- ..()
-
-/datum/equipment_preset/survivor/engineer/corsat
- name = "Survivor - Corsat Station Engineer"
- assignment = "Corsat Station Engineer"
-
-/datum/equipment_preset/survivor/engineer/corsat/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/engi(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/marine/techofficer(new_human), WEAR_HEAD)
-
- ..()
-
-/datum/equipment_preset/survivor/engineer/florina
- name = "Survivor - Florina Engineer"
- assignment = "Florina Engineer"
-
-/datum/equipment_preset/survivor/engineer/florina/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/color/white(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/apron/overalls(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/orange(new_human), WEAR_HEAD)
-
- ..()
-
-/datum/equipment_preset/survivor/engineer/kutjevo
- name = "Survivor - Kutjevo Engineer"
- assignment = "Kutjevo Engineer"
-
-/datum/equipment_preset/survivor/engineer/kutjevo/load_gear(mob/living/carbon/human/new_human)
- add_random_kutjevo_survivor_uniform(new_human)
- add_random_kutjevo_survivor_equipment(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK)
-
- ..()
-
-/datum/equipment_preset/survivor/engineer/solaris
- name = "Survivor - Solaris Engineer"
- assignment = "Solaris Engineer"
-
-/datum/equipment_preset/survivor/engineer/solaris/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/yellow(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding/superior(new_human), WEAR_EYES)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK)
-
- ..()
-
-// ----- Miner Survivor
-
-/datum/equipment_preset/survivor/miner
- name = "Survivor - Miner"
- assignment = "Miner"
- skills = /datum/skills/civilian/survivor/miner
- flags = EQUIPMENT_PRESET_START_OF_ROUND
- access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_ENGINEERING, ACCESS_CIVILIAN_LOGISTICS)
-
-/datum/equipment_preset/survivor/miner/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/miner(new_human), WEAR_BODY)
- if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
- add_ice_colony_survivor_equipment(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/norm(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/tool/pickaxe(new_human.back), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/device/flashlight/lantern(new_human.back), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/full(new_human), WEAR_R_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/orange(new_human), WEAR_HEAD)
- add_survivor_weapon_civilian(new_human)
-
- ..()
-
-// --- Salesman Survivor
-
-/datum/equipment_preset/survivor/salesman
- name = "Survivor - Salesman"
- assignment = "Salesman"
- skills = /datum/skills/civilian/survivor
- flags = EQUIPMENT_PRESET_START_OF_ROUND
- idtype = /obj/item/card/id/data
- access = list(ACCESS_CIVILIAN_PUBLIC)
-
-/datum/equipment_preset/survivor/salesman/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit(new_human), WEAR_BODY)
- if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
- add_ice_colony_survivor_equipment(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/wcoat(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/document(new_human), WEAR_R_STORE)
- add_random_cl_survivor_loot(new_human)
- add_survivor_weapon_civilian(new_human)
- ..()
-
-// ---- Trucker Survivor
-
-/datum/equipment_preset/survivor/trucker
- name = "Survivor - Trucker"
- assignment = "Trucker"
- skills = /datum/skills/civilian/survivor/trucker
- flags = EQUIPMENT_PRESET_START_OF_ROUND
- access = list(ACCESS_CIVILIAN_PUBLIC,ACCESS_CIVILIAN_ENGINEERING,ACCESS_CIVILIAN_LOGISTICS)
-
- survivor_variant = ENGINEERING_SURVIVOR
-
-/datum/equipment_preset/survivor/trucker/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/overalls(new_human), WEAR_BODY)
- if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
- add_ice_colony_survivor_equipment(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/yellow(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/device/flashlight/lantern(new_human.back), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/full(new_human), WEAR_R_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/hardpoint/locomotion/van_wheels(new_human), WEAR_R_HAND)
- add_survivor_weapon_civilian(new_human)
-
- ..()
-
-/datum/equipment_preset/survivor/trucker/lv
- name = "Survivor - LV-624 Cargo Technician"
- assignment = "LV-624 Cargo Technician"
-
-/datum/equipment_preset/survivor/trucker/lv/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/cargo(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/meson(new_human), WEAR_EYES)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/yellow(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
-
- ..()
-
-/datum/equipment_preset/survivor/trucker/nv
- name = "Survivor - New Varadero Vehicle Operator"
- assignment = "New Varadero Vehicle Operator"
-
-/datum/equipment_preset/survivor/trucker/nv/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/cargo(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/meson(new_human), WEAR_EYES)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/boonie(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
-
- ..()
-/datum/equipment_preset/survivor/trucker/kutjevo
- name = "Survivor - Kutjevo Heavy Vehicle Operator"
- assignment = "Kutjevo Heavy Vehicle Operator"
-
-/datum/equipment_preset/survivor/trucker/kutjevo/load_gear(mob/living/carbon/human/new_human)
- add_random_kutjevo_survivor_uniform(new_human)
- add_random_kutjevo_survivor_equipment(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
-
- ..()
-
-/datum/equipment_preset/survivor/trucker/solaris
- name = "Survivor - Solaris Heavy Vehicle Operator"
- assignment = "Solaris Heavy Vehicle Operator"
- skills = /datum/skills/civilian/survivor/trucker
-
-/datum/equipment_preset/survivor/trucker/solaris/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/worker_overalls(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/apron/overalls(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/red(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/big(new_human), WEAR_EYES)
-
- ..()
-
-/datum/equipment_preset/survivor/trucker/trijent
- name = "Survivor - Trijent Dam Heavy Vehicle Operator"
- assignment = "Trijent Dam Heavy Vehicle Operator"
- skills = /datum/skills/civilian/survivor/trucker
-
-/datum/equipment_preset/survivor/trucker/trijent/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/tool/weldingtool/hugetank(new_human), WEAR_IN_BACK)
-
- ..()
-
-
-// ---- Colonial Marshal Survivor
-
-/datum/equipment_preset/survivor/colonial_marshal
- name = "Survivor - Colonial Marshal Deputy"
- assignment = "CMB Deputy"
- paygrade = "GS-9"
- skills = /datum/skills/civilian/survivor/marshal
- flags = EQUIPMENT_PRESET_START_OF_ROUND
- idtype = /obj/item/card/id/deputy
- role_comm_title = "CMB DEP"
- access = list(
- ACCESS_CIVILIAN_PUBLIC,
- ACCESS_CIVILIAN_RESEARCH,
- ACCESS_CIVILIAN_ENGINEERING,
- ACCESS_CIVILIAN_LOGISTICS,
- ACCESS_CIVILIAN_BRIG,
- ACCESS_CIVILIAN_MEDBAY,
- ACCESS_CIVILIAN_COMMAND,
- )
-
- survivor_variant = SECURITY_SURVIVOR
-
-/datum/equipment_preset/survivor/colonial_marshal/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/CM_uniform(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited(new_human), WEAR_L_EAR)
-
- if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
- add_ice_colony_survivor_equipment(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/CMB(new_human), WEAR_HEAD)
- if(new_human.disabilities & NEARSIGHTED)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud/prescription(new_human), WEAR_EYES)
- else
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(new_human), WEAR_EYES)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/CMB(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/large(new_human), WEAR_R_STORE)
- add_survivor_weapon_security(new_human)
-
- ..()
-
-/datum/equipment_preset/survivor/colonial_marshal/florina
- name = "Survivor - United Americas Riot Officer"
- assignment = "United Americas Riot Officer"
-
-/datum/equipment_preset/survivor/colonial_marshal/florina/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/ua_riot(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/ua_riot(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/ua_riot(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/prop/helmetgarb/riot_shield(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
-
- ..()
-
-/datum/equipment_preset/survivor/colonial_marshal/lv
- name = "Survivor - LV-624 Head of Security"
- assignment = "LV-624 Head of Security"
-
-/datum/equipment_preset/survivor/colonial_marshal/lv/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/head_of_security/navyblue(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/sec/hos(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
-
- ..()
-
-/datum/equipment_preset/survivor/colonial_marshal/solaris
- name = "Survivor - Solaris Colonial Marshal Deputy"
- assignment = "CMB Deputy"
-
-
-/datum/equipment_preset/survivor/colonial_marshal/solaris/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/CM_uniform(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited(new_human), WEAR_L_EAR)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/CMB(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
-
- ..()
-
-/datum/equipment_preset/survivor/colonial_marshal/kutjevo
- name = "Survivor - Kutjevo Colonial Marshal Deputy"
- assignment = "CMB Deputy"
-
-/datum/equipment_preset/survivor/colonial_marshal/kutjevo/load_gear(mob/living/carbon/human/new_human)
- add_random_kutjevo_survivor_uniform(new_human)
- add_random_kutjevo_survivor_equipment(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited(new_human), WEAR_L_EAR)
-
- ..()
-
-/datum/equipment_preset/survivor/colonial_marshal/shiva
- name = "Survivor - Shivas Colonial Marshal Deputy"
- assignment = "CMB Deputy"
-
-/datum/equipment_preset/survivor/colonial_marshal/shiva/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/security/corp(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited(new_human), WEAR_L_EAR)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor/parka/red(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/white(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
-
- ..()
-
-// ----- CL Survivor
-
-/datum/equipment_preset/survivor/interstellar_commerce_commission_liason
- name = "Survivor - Interstellar Commerce Commission Liaison"
- assignment = "Interstellar Commerce Commission Corporate Liaison"
- skills = /datum/skills/civilian/survivor
- idtype = /obj/item/card/id/silver/cl
- paygrade = "WYC2"
- role_comm_title = "ICC Rep."
- flags = EQUIPMENT_PRESET_START_OF_ROUND
-
- survivor_variant = CORPORATE_SURVIVOR
-
-/datum/equipment_preset/survivor/interstellar_commerce_commission_liason/New()
- . = ..()
- access = get_access(ACCESS_LIST_CIVIL_LIAISON)
-
-/datum/equipment_preset/survivor/interstellar_commerce_commission_liason/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited(new_human), WEAR_L_EAR)
-
- if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
- add_ice_colony_survivor_equipment(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/centcom(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/white(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/insulated(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/document(new_human), WEAR_R_STORE)
- add_survivor_weapon_civilian(new_human)
- add_random_cl_survivor_loot(new_human)
-
- ..()
-
-/datum/equipment_preset/survivor/interstellar_commerce_commission_liason/corsat
- name = "Survivor - Interstellar Commerce Commission Liaison CORSAT"
- assignment = "Interstellar Commerce Commission Corporate Liaison"
-
-/datum/equipment_preset/survivor/interstellar_commerce_commission_liason/corsat/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/formal(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited(new_human), WEAR_L_EAR)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/white(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET)
-
- ..()
-
-/datum/equipment_preset/survivor/interstellar_commerce_commission_liason/nv
- name = "Survivor - Interstellar Commerce Commission Liaison New Varadero"
- assignment = "Interstellar Commerce Commission Corporate Liaison"
-
-/datum/equipment_preset/survivor/interstellar_commerce_commission_liason/nv/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/formal(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/white(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/black(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/device/flashlight, WEAR_J_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/clipboard, WEAR_L_HAND)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses, WEAR_EYES)
-
-
-
- ..()
-
-// ----- Roughneck Survivor
-
-/datum/equipment_preset/survivor/roughneck
- name = "Survivor - Roughneck"
- assignment = "Roughneck"
- skills = /datum/skills/civilian/survivor/pmc
- flags = EQUIPMENT_PRESET_START_OF_ROUND
- access = list(ACCESS_CIVILIAN_PUBLIC)
-
-/datum/equipment_preset/survivor/roughneck/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/color/white(new_human), WEAR_BODY)
- if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
- add_ice_colony_survivor_equipment(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/apron/overalls(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf/tacticalmask/green(new_human), WEAR_FACE)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/centcom(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/centcom(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/large(new_human), WEAR_R_STORE)
- add_pmc_survivor_weapon(new_human)
-
- ..()
-
-// ----- Bum Survivor
-
-/datum/equipment_preset/survivor/beachbum
- name = "Survivor - Beach Bum"
- assignment = "Beach Bum"
- skills = /datum/skills/civilian/survivor/prisoner
- flags = EQUIPMENT_PRESET_START_OF_ROUND
- access = list(ACCESS_CIVILIAN_PUBLIC)
-
-/datum/equipment_preset/survivor/beachbum/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/shorts/red(new_human), WEAR_BODY)
- if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
- add_ice_colony_survivor_equipment(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette(new_human), WEAR_FACE)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/boonie(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/botanic_leather(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/beer_pack(new_human.back), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/tool/kitchen/knife/butcher(new_human.back), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/fancy/cigarettes/wypacket(new_human.back), WEAR_IN_BACK)
- add_survivor_weapon_civilian(new_human)
-
- ..()
-
-
-// ----- Interstellar Human Rights Survivor
-
-/datum/equipment_preset/survivor/interstellar_human_rights_observer
- name = "Survivor - Interstellar Human Rights Observer"
- assignment = "Interstellar Human Rights Observer(Colony)"
- skills = /datum/skills/civilian/survivor
- flags = EQUIPMENT_PRESET_START_OF_ROUND
- access = list(ACCESS_CIVILIAN_PUBLIC,ACCESS_CIVILIAN_COMMAND)
-
-/datum/equipment_preset/survivor/interstellar_human_rights_observer/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/suspenders(new_human), WEAR_BODY)
- if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
- add_ice_colony_survivor_equipment(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
- add_random_cl_survivor_loot(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine(new_human), WEAR_HEAD)
- add_survivor_weapon_civilian(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/document(new_human), WEAR_R_STORE)
-
- ..()
-
-/datum/equipment_preset/survivor/interstellar_human_rights_observer/soro
- name = "Survivor - Sorokyne Interstellar Human Rights Observer"
- assignment = "Interstellar Human Rights Observer(Sorokyne)"
-
-
-/datum/equipment_preset/survivor/interstellar_human_rights_observer/soro/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD)
-
- ..()
-
-// ----- WY Survivors
-
-/datum/equipment_preset/survivor/goon
- name = "Survivor - Corporate Security Goon"
- flags = EQUIPMENT_PRESET_START_OF_ROUND
- assignment = JOB_WY_GOON
- paygrade = "WEY-GOON"
- idtype = /obj/item/card/id/silver/cl
- skills = /datum/skills/civilian/survivor/goon
- languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE)
- access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_COMMAND, ACCESS_CIVILIAN_BRIG)
-
- survivor_variant = SECURITY_SURVIVOR
-
-/datum/equipment_preset/survivor/goon/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY, WEAR_L_EAR)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/pmc/corporate, WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/pmc/light/corporate, WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc/corporate, WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/corporate, WEAR_FEET)
-
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot, WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/weapon/baton, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/large_stack(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88_near_empty, WEAR_WAIST)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full, WEAR_R_STORE)
-
- new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m41a/corporate/no_lock, WEAR_J_STORE)
-
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/full(new_human), WEAR_R_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/survival/full(new_human), WEAR_L_STORE)
-
-/datum/equipment_preset/survivor/pmc
- name = "Survivor - PMC"
- flags = EQUIPMENT_PRESET_START_OF_ROUND
- assignment = "Weyland-Yutani PMC"
- faction = FACTION_SURVIVOR
- faction_group = list(FACTION_SURVIVOR)
- paygrade = "PMC-OP"
- idtype = /obj/item/card/id/pmc
- skills = /datum/skills/civilian/survivor/pmc
- languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE)
- access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_COMMAND)
-
-/datum/equipment_preset/survivor/pmc/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/pmc/hvh, WEAR_L_EAR)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/pmc, WEAR_BODY)
- add_pmc_survivor_weapon(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/pmc, WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/pmc, WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc, WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/veteran/pmc/knife, WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf, WEAR_FACE)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot, WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/ert(new_human), WEAR_R_STORE)
-
- ..()
-
-/datum/equipment_preset/survivor/pmc/medic
- name = "Survivor - PMC Medic"
- assignment = JOB_PMC_MEDIC
- rank = JOB_PMC_MEDIC
- paygrade = "PMC-MS"
- skills = /datum/skills/civilian/survivor/pmc/medic
-
-/datum/equipment_preset/survivor/pmc/medic/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot, WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/adv(new_human), WEAR_IN_BACK)
- if(new_human.disabilities & NEARSIGHTED)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health/prescription(new_human), WEAR_EYES)
- else
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health(new_human), WEAR_EYES)
- new_human.equip_to_slot_or_del(new /obj/item/device/healthanalyzer, WEAR_R_HAND)
-
- ..()
-
-/datum/equipment_preset/survivor/pmc/engineer
- name = "Survivor - PMC Engineer"
- assignment = JOB_PMC_ENGINEER
- rank = JOB_PMC_ENGINEER
- paygrade = "PMC-TECH"
- skills = /datum/skills/civilian/survivor/pmc/engineer
-
-/datum/equipment_preset/survivor/pmc/engineer/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot, WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding/superior, WEAR_EYES)
- new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/plasteel/med_small_stack(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full(new_human), WEAR_R_HAND)
-
- ..()
-
-/datum/equipment_preset/survivor/wy/manager
- name = "Survivor - Corporate Supervisor"
- flags = EQUIPMENT_PRESET_EXTRA
- paygrade = "WYC7"
- skills = /datum/skills/civilian/survivor/manager
- assignment = "Colony Supervisor"
- role_comm_title = "Supervisor"
- idtype = /obj/item/card/id/silver/clearance_badge/manager
- faction_group = list(FACTION_WY, FACTION_SURVIVOR)
- access = list(
- ACCESS_WY_GENERAL,
- ACCESS_WY_COLONIAL,
- ACCESS_WY_LEADERSHIP,
- ACCESS_WY_SECURITY,
- ACCESS_WY_EXEC,
- ACCESS_WY_RESEARCH,
- ACCESS_WY_ENGINEERING,
- ACCESS_WY_MEDICAL,
- ACCESS_ILLEGAL_PIRATE,
- )
- languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE)
-
- survivor_variant = CORPORATE_SURVIVOR
-
-/datum/equipment_preset/survivor/wy/manager/load_gear(mob/living/carbon/human/new_human)
-
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket/manager(new_human), WEAR_BODY)
- if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
- add_ice_colony_survivor_equipment(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/lockable/liaison, WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/manager(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY, WEAR_L_EAR)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/dress, WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/manager(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/paper/research_notes/good(new_human), WEAR_IN_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/reagent_container/glass/beaker/vial/random/good(new_human), WEAR_IN_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/ert(new_human), WEAR_R_STORE)
- add_pmc_survivor_weapon(new_human)
- add_random_cl_survivor_loot(new_human)
-
- ..()
-
-// ----- Mercenary Survivors
-
-/datum/equipment_preset/survivor/pmc/miner/one
- name = "Survivor - Mercenary"
- flags = EQUIPMENT_PRESET_START_OF_ROUND
-
- assignment = "Mercenary"
- skills = /datum/skills/civilian/survivor/pmc
- flags = EQUIPMENT_PRESET_START_OF_ROUND
- access = list(ACCESS_CIVILIAN_PUBLIC)
-
-/datum/equipment_preset/survivor/pmc/miner/one/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/mercenary/miner, WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/mercenary/miner, WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/mercenary/miner, WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/ert(new_human), WEAR_R_STORE)
- add_pmc_survivor_weapon(new_human)
-
- ..()
-
-/datum/equipment_preset/survivor/pmc/freelancer
- name = "Survivor - Freelancer"
- assignment = "Freelancer"
- skills = /datum/skills/civilian/survivor/pmc
- flags = EQUIPMENT_PRESET_START_OF_ROUND
- access = list(ACCESS_CIVILIAN_PUBLIC)
-
-/datum/equipment_preset/survivor/pmc/freelancer/load_gear(mob/living/carbon/human/new_human)
-
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/freelancer, WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/freelancer, WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/pmc, WEAR_HANDS)
- spawn_merc_helmet(new_human)
- new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/dutch, WEAR_L_EAR)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot, WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/ert(new_human), WEAR_R_STORE)
- add_pmc_survivor_weapon(new_human)
-
- ..()
-
-// ----- Hostile Survivors
-
-/datum/equipment_preset/survivor/clf
- name = "CLF Survivor"
- flags = EQUIPMENT_PRESET_EXTRA
- skills = /datum/skills/civilian/survivor/clf
- languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE)
- faction = FACTION_CLF
- faction_group = list(FACTION_CLF, FACTION_SURVIVOR)
- access = list(ACCESS_CIVILIAN_PUBLIC)
- survivor_variant = HOSTILE_SURVIVOR
-
-/datum/equipment_preset/survivor/clf/load_gear(mob/living/carbon/human/new_human)
-
- spawn_rebel_uniform(new_human)
- spawn_rebel_suit(new_human)
- spawn_rebel_helmet(new_human)
- spawn_rebel_shoes(new_human)
- spawn_rebel_gloves(new_human)
- spawn_rebel_belt(new_human)
-
- new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CLF(new_human), WEAR_L_EAR)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/device/flashlight(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/ert(new_human), WEAR_R_STORE)
- add_survivor_weapon_security(new_human)
- add_survivor_weapon_pistol(new_human)
-
- ..()
-
-/datum/equipment_preset/survivor/clf/cold
-
-/datum/equipment_preset/survivor/clf/cold/spawn_rebel_suit(mob/living/carbon/human/human)
- if(!istype(human))
- return
- var/suitpath = pick(
- /obj/item/clothing/suit/storage/militia,
- /obj/item/clothing/suit/storage/militia/vest,
- /obj/item/clothing/suit/storage/militia/brace,
- /obj/item/clothing/suit/storage/militia/partial,
- )
- human.equip_to_slot_or_del(new suitpath, WEAR_JACKET)
-
-/datum/equipment_preset/survivor/clf/cold/spawn_rebel_helmet(mob/living/carbon/human/human)
- if(!istype(human))
- return
- var/helmetpath = pick(
- /obj/item/clothing/head/militia,
- /obj/item/clothing/head/militia/bucket,
- /obj/item/clothing/head/helmet,
- /obj/item/clothing/head/helmet/skullcap,
- /obj/item/clothing/head/helmet/swat,
- )
- human.equip_to_slot_or_del(new helmetpath, WEAR_HEAD)
-
-/datum/equipment_preset/survivor/clf/cold/spawn_rebel_shoes(mob/living/carbon/human/human)
- if(!istype(human))
- return
- var/shoespath = /obj/item/clothing/shoes/combat
- human.equip_to_slot_or_del(new shoespath, WEAR_FEET)
-
-/datum/equipment_preset/survivor/new_varadero/commander
- name = "Survivor - USASF Commander"
- assignment = "USASF Commander"
- skills = /datum/skills/commander
- paygrade = "NO5"
- idtype = /obj/item/card/id/gold
- role_comm_title = "USASF CDR"
- flags = EQUIPMENT_PRESET_START_OF_ROUND
- access = list(
- ACCESS_CIVILIAN_PUBLIC,
- ACCESS_CIVILIAN_RESEARCH,
- ACCESS_CIVILIAN_ENGINEERING,
- ACCESS_CIVILIAN_LOGISTICS,
- ACCESS_CIVILIAN_BRIG,
- ACCESS_CIVILIAN_MEDBAY,
- ACCESS_CIVILIAN_COMMAND,
- )
-
-/datum/equipment_preset/survivor/new_varadero/commander/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/bridge(new_human), WEAR_BODY)
-
- var/obj/item/clothing/suit/storage/jacket/marine/service/suit = new()
- suit.icon_state = "[suit.initial_icon_state]_o"
- suit.buttoned = FALSE
-
- var/obj/item/clothing/accessory/ranks/navy/o5/pin = new()
- suit.attach_accessory(new_human, pin)
-
- new_human.equip_to_slot_or_del(suit, WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/survival/full(new_human), WEAR_L_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large(new_human), WEAR_R_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/notepad(new_human), WEAR_IN_R_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/tool/pen/fountain(new_human), WEAR_IN_R_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/med_small_stack(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/m1911(new_human), WEAR_WAIST)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap(new_human), WEAR_HEAD)
-
- ..()
-
-/datum/equipment_preset/survivor/upp
- name = "Survivor - UPP"
- paygrade = "UE1"
- origin_override = ORIGIN_UPP
- rank = JOB_SURVIVOR
- skills = /datum/skills/military/survivor/upp_private
- languages = list(LANGUAGE_RUSSIAN, LANGUAGE_GERMAN, LANGUAGE_CHINESE)
- faction = FACTION_UPP
- faction_group = list(FACTION_UPP, FACTION_SURVIVOR)
- role_comm_title = "UPP 173RD RECON"
- idtype = /obj/item/card/id/dogtag
- flags = EQUIPMENT_PRESET_EXTRA
- uses_special_name = TRUE
- access = list(
- ACCESS_CIVILIAN_PUBLIC,
- )
-
-/datum/equipment_preset/survivor/upp/load_name(mob/living/carbon/human/new_human, randomise)
- var/random_name = capitalize(pick(new_human.gender == MALE ? first_names_male_upp : first_names_female_upp)) + " " + capitalize(pick(last_names_upp))
- new_human.change_real_name(new_human, random_name)
-
-/datum/equipment_preset/survivor/upp/load_gear(mob/living/carbon/human/new_human)
- var/obj/item/clothing/under/marine/veteran/UPP/uniform = new()
- var/random_number = rand(1,2)
- switch(random_number)
- if(1)
- uniform.roll_suit_jacket(new_human)
- if(2)
- uniform.roll_suit_sleeves(new_human)
- new_human.equip_to_slot_or_del(uniform, WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp (new_human), WEAR_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp_knife(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/flare(new_human), WEAR_R_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full/alternate(new_human), WEAR_L_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/med_small_stack(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/recon(new_human), WEAR_L_EAR)
-
-/datum/equipment_preset/survivor/upp/soldier
- name = "Survivor - UPP Soldier"
- paygrade = "UE2"
- assignment = JOB_UPP
- rank = JOB_UPP
- skills = /datum/skills/military/survivor/upp_private
-
-/datum/equipment_preset/survivor/upp/soldier/load_gear(mob/living/carbon/human/new_human)
- var/obj/item/clothing/under/marine/veteran/UPP/uniform = new()
- var/random_number = rand(1,2)
- switch(random_number)
- if(1)
- uniform.roll_suit_jacket(new_human)
- if(2)
- uniform.roll_suit_sleeves(new_human)
- new_human.equip_to_slot_or_del(uniform, WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot(new_human), WEAR_BACK)
- add_upp_weapon(new_human)
- spawn_random_upp_headgear(new_human)
- spawn_random_upp_armor(new_human)
- spawn_random_upp_belt(new_human)
-
- ..()
-
-/datum/equipment_preset/survivor/upp/sapper
- name = "Survivor - UPP Sapper"
- paygrade = "UE3S"
- assignment = JOB_UPP_ENGI
- rank = JOB_UPP_ENGI
- skills = /datum/skills/military/survivor/upp_sapper
-
-/datum/equipment_preset/survivor/upp/sapper/load_gear(mob/living/carbon/human/new_human)
-
- var/obj/item/clothing/under/marine/veteran/UPP/engi/uniform = new()
- var/R = rand(1,2)
- switch(R)
- if(1)
- uniform.roll_suit_jacket(new_human)
- if(2)
- uniform.roll_suit_sleeves(new_human)
- new_human.equip_to_slot_or_del(uniform, WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/insulated(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full(new_human), WEAR_WAIST)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding(new_human), WEAR_EYES)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot(new_human), WEAR_BACK)
- spawn_random_upp_armor(new_human)
- add_upp_weapon(new_human)
- spawn_random_upp_headgear(new_human)
-
- ..()
-
-/datum/equipment_preset/survivor/upp/medic
- name = "Survivor - UPP Medic"
- paygrade = "UE3M"
- assignment = JOB_UPP_MEDIC
- rank = JOB_UPP_MEDIC
- skills = /datum/skills/military/survivor/upp_medic
-
-/datum/equipment_preset/survivor/upp/medic/load_gear(mob/living/carbon/human/new_human)
- var/obj/item/clothing/under/marine/veteran/UPP/medic/uniform = new()
- var/random_number = rand(1,2)
- switch(random_number)
- if(1)
- uniform.roll_suit_jacket(new_human)
- if(2)
- uniform.roll_suit_sleeves(new_human)
- new_human.equip_to_slot_or_del(uniform, WEAR_BODY)
- new_human.equip_to_slot_or_del(new/obj/item/clothing/glasses/hud/health(new_human), WEAR_EYES)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/upp/partial(new_human), WEAR_WAIST)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/medic/upp(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher/mini(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/device/healthanalyzer(new_human), WEAR_IN_BACK)
- spawn_random_upp_armor(new_human)
- add_upp_weapon(new_human)
- spawn_random_upp_headgear(new_human)
-
- ..()
-
-/datum/equipment_preset/survivor/upp/specialist
- name = "Survivor - UPP Specialist"
- assignment = JOB_UPP_SPECIALIST
- rank = JOB_UPP_SPECIALIST
- paygrade = "UE4"
- skills = /datum/skills/military/survivor/upp_spec
-
-/datum/equipment_preset/survivor/upp/specialist/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/UPP/heavy(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/UPP (new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/heavy (new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar(new_human), WEAR_IN_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/type71/flamer(new_human), WEAR_L_HAND)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/t73(new_human), WEAR_WAIST)
-
- ..()
-
-/datum/equipment_preset/survivor/upp/squad_leader
- name = "Survivor - UPP Squad Leader"
- paygrade = "UE5"
- assignment = JOB_UPP_LEADER
- rank = JOB_UPP_LEADER
- languages = list(LANGUAGE_RUSSIAN, LANGUAGE_ENGLISH, LANGUAGE_GERMAN, LANGUAGE_CHINESE)
- role_comm_title = "UPP 173Rd RECON SL"
- skills = /datum/skills/military/survivor/upp_sl
-
-/datum/equipment_preset/survivor/upp/squad_leader/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/UPP/officer (new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP (new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar(new_human), WEAR_IN_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap/beret(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/revolver(new_human), WEAR_WAIST)
- add_upp_weapon(new_human)
-
- ..()
diff --git a/code/modules/gear_presets/survivors/corsat/preset_corsat.dm b/code/modules/gear_presets/survivors/corsat/preset_corsat.dm
new file mode 100644
index 000000000000..f71439b9d7ac
--- /dev/null
+++ b/code/modules/gear_presets/survivors/corsat/preset_corsat.dm
@@ -0,0 +1,58 @@
+/datum/equipment_preset/survivor/security/corsat
+ name = "Survivor - CORSAT Security Guard"
+ assignment = "Weyland-Yutani Security Guard"
+ languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE)
+
+/datum/equipment_preset/survivor/security/corsat/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/formal/servicedress(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc(new_human), WEAR_HEAD)
+ if(new_human.disabilities & NEARSIGHTED)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud/prescription(new_human), WEAR_EYES)
+ else
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(new_human), WEAR_EYES)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
+ ..()
+
+/datum/equipment_preset/survivor/doctor/corsat
+ name = "Survivor - CORSAT Doctor"
+ assignment = "CORSAT Doctor"
+
+/datum/equipment_preset/survivor/doctor/corsat/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/green(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/green(new_human), WEAR_HEAD)
+ ..()
+
+/datum/equipment_preset/survivor/scientist/corsat
+ name = "Survivor - CORSAT Researcher"
+ assignment = "CORSAT Researcher"
+
+/datum/equipment_preset/survivor/scientist/corsat/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/researcher(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(new_human), WEAR_FEET)
+ ..()
+
+/datum/equipment_preset/survivor/interstellar_commerce_commission_liason/corsat
+ name = "Survivor - Interstellar Commerce Commission Liaison CORSAT"
+ assignment = "Interstellar Commerce Commission Corporate Liaison"
+
+/datum/equipment_preset/survivor/interstellar_commerce_commission_liason/corsat/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/formal(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited(new_human), WEAR_L_EAR)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/white(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET)
+ ..()
+
+/datum/equipment_preset/survivor/engineer/corsat
+ name = "Survivor - Corsat Station Engineer"
+ assignment = "Corsat Station Engineer"
+
+/datum/equipment_preset/survivor/engineer/corsat/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/engi(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/marine/techofficer(new_human), WEAR_HEAD)
+ ..()
diff --git a/code/modules/gear_presets/survivors/fiorina_sciannex/preset_fiorina_sciannex.dm b/code/modules/gear_presets/survivors/fiorina_sciannex/preset_fiorina_sciannex.dm
new file mode 100644
index 000000000000..f0d812026491
--- /dev/null
+++ b/code/modules/gear_presets/survivors/fiorina_sciannex/preset_fiorina_sciannex.dm
@@ -0,0 +1,65 @@
+
+/datum/equipment_preset/survivor/scientist/florina
+ name = "Survivor - Florina Researcher"
+ assignment = "Florina Researcher"
+
+/datum/equipment_preset/survivor/scientist/florina/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/purple(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/purple(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/science(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science(new_human), WEAR_EYES)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/chem(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(new_human), WEAR_FEET)
+ ..()
+
+
+/datum/equipment_preset/survivor/doctor/florina
+ name = "Survivor - Florina Doctor"
+ assignment = "Florina Doctor"
+
+/datum/equipment_preset/survivor/doctor/florina/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc(new_human), WEAR_HEAD)
+ ..()
+
+/datum/equipment_preset/survivor/security/florina
+ name = "Survivor - Florina Prison Guard"
+ assignment = "Florina Prison Guard"
+
+/datum/equipment_preset/survivor/security/florina/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/security(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
+ ..()
+
+/datum/equipment_preset/survivor/colonial_marshal/florina
+ name = "Survivor - United Americas Riot Officer"
+ assignment = "United Americas Riot Officer"
+
+/datum/equipment_preset/survivor/colonial_marshal/florina/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/ua_riot(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/ua_riot(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/ua_riot(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/prop/helmetgarb/riot_shield(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
+
+ ..()
+
+/datum/equipment_preset/survivor/engineer/florina
+ name = "Survivor - Florina Engineer"
+ assignment = "Florina Engineer"
+
+/datum/equipment_preset/survivor/engineer/florina/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/color/white(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/apron/overalls(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/orange(new_human), WEAR_HEAD)
+ ..()
diff --git a/code/modules/gear_presets/survivors/kutjevo/preset_kutjevo.dm b/code/modules/gear_presets/survivors/kutjevo/preset_kutjevo.dm
new file mode 100644
index 000000000000..8a9161f1802a
--- /dev/null
+++ b/code/modules/gear_presets/survivors/kutjevo/preset_kutjevo.dm
@@ -0,0 +1,76 @@
+/datum/equipment_preset/survivor/engineer/kutjevo
+ name = "Survivor - Kutjevo Engineer"
+ assignment = "Kutjevo Engineer"
+
+/datum/equipment_preset/survivor/engineer/kutjevo/load_gear(mob/living/carbon/human/new_human)
+ add_random_kutjevo_survivor_uniform(new_human)
+ add_random_kutjevo_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK)
+ ..()
+
+/datum/equipment_preset/survivor/chaplain/kutjevo
+ name = "Survivor - Kutjevo Chaplain"
+ assignment = "Kutjevo Chaplain"
+
+/datum/equipment_preset/survivor/chaplain/kutjevo/load_gear(mob/living/carbon/human/new_human)
+ add_random_kutjevo_survivor_uniform(new_human)
+ add_random_kutjevo_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS)
+
+ ..()
+
+/datum/equipment_preset/survivor/security/kutjevo
+ name = "Survivor - Kutjevo Security Guard"
+ assignment = "Kutjevo Security Guard"
+
+
+/datum/equipment_preset/survivor/security/kutjevo/load_gear(mob/living/carbon/human/new_human)
+ add_random_kutjevo_survivor_uniform(new_human)
+ add_random_kutjevo_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
+ ..()
+
+/datum/equipment_preset/survivor/doctor/kutjevo
+ name = "Survivor - Kutjevo Doctor"
+ assignment = "Kutjevo Doctor"
+
+/datum/equipment_preset/survivor/doctor/kutjevo/load_gear(mob/living/carbon/human/new_human)
+ if(new_human.disabilities & NEARSIGHTED)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health/prescription(new_human), WEAR_EYES)
+ else
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health(new_human), WEAR_EYES)
+ add_random_kutjevo_survivor_uniform(new_human)
+ add_random_kutjevo_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS)
+ ..()
+
+/datum/equipment_preset/survivor/colonial_marshal/kutjevo
+ name = "Survivor - Kutjevo Colonial Marshal Deputy"
+ assignment = "CMB Deputy"
+
+/datum/equipment_preset/survivor/colonial_marshal/kutjevo/load_gear(mob/living/carbon/human/new_human)
+ add_random_kutjevo_survivor_uniform(new_human)
+ add_random_kutjevo_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited(new_human), WEAR_L_EAR)
+ ..()
+
+/datum/equipment_preset/survivor/trucker/kutjevo
+ name = "Survivor - Kutjevo Heavy Vehicle Operator"
+ assignment = "Kutjevo Heavy Vehicle Operator"
+
+/datum/equipment_preset/survivor/trucker/kutjevo/load_gear(mob/living/carbon/human/new_human)
+ add_random_kutjevo_survivor_uniform(new_human)
+ add_random_kutjevo_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
+
+ ..()
diff --git a/code/modules/gear_presets/forcon_survivors.dm b/code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm
similarity index 100%
rename from code/modules/gear_presets/forcon_survivors.dm
rename to code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm
diff --git a/code/modules/gear_presets/survivors/lv_624/clfship_insert_lv624.dm b/code/modules/gear_presets/survivors/lv_624/clfship_insert_lv624.dm
new file mode 100644
index 000000000000..1bfeaaad9c43
--- /dev/null
+++ b/code/modules/gear_presets/survivors/lv_624/clfship_insert_lv624.dm
@@ -0,0 +1,30 @@
+// /obj/effect/landmark/survivor_spawner/lv624_crashed_clf
+// clfship.dmm
+/datum/equipment_preset/survivor/clf
+ name = "CLF Survivor"
+ flags = EQUIPMENT_PRESET_EXTRA
+ skills = /datum/skills/civilian/survivor/clf
+ languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE)
+ faction = FACTION_CLF
+ faction_group = list(FACTION_CLF, FACTION_SURVIVOR)
+ access = list(ACCESS_CIVILIAN_PUBLIC)
+ survivor_variant = HOSTILE_SURVIVOR
+
+/datum/equipment_preset/survivor/clf/load_gear(mob/living/carbon/human/new_human)
+
+ spawn_rebel_uniform(new_human)
+ spawn_rebel_suit(new_human)
+ spawn_rebel_helmet(new_human)
+ spawn_rebel_shoes(new_human)
+ spawn_rebel_gloves(new_human)
+ spawn_rebel_belt(new_human)
+
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CLF(new_human), WEAR_L_EAR)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/device/flashlight(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/ert(new_human), WEAR_R_STORE)
+ add_survivor_weapon_security(new_human)
+ add_survivor_weapon_pistol(new_human)
+
+ ..()
diff --git a/code/modules/gear_presets/survivors/lv_624/preset_lv.dm b/code/modules/gear_presets/survivors/lv_624/preset_lv.dm
new file mode 100644
index 000000000000..a2e55b899c9b
--- /dev/null
+++ b/code/modules/gear_presets/survivors/lv_624/preset_lv.dm
@@ -0,0 +1,83 @@
+/datum/equipment_preset/survivor/scientist/lv
+ name = "Survivor - LV-624 Archeologist"
+ assignment = "LV-624 Archeologist"
+
+/datum/equipment_preset/survivor/scientist/lv/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/researcher(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/boonie(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science(new_human), WEAR_EYES)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ ..()
+
+/datum/equipment_preset/survivor/colonial_marshal/lv
+ name = "Survivor - LV-624 Head of Security"
+ assignment = "LV-624 Head of Security"
+
+/datum/equipment_preset/survivor/colonial_marshal/lv/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/head_of_security/navyblue(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/sec/hos(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ ..()
+
+/datum/equipment_preset/survivor/trucker/lv
+ name = "Survivor - LV-624 Cargo Technician"
+ assignment = "LV-624 Cargo Technician"
+
+/datum/equipment_preset/survivor/trucker/lv/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/cargo(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/meson(new_human), WEAR_EYES)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/yellow(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
+ ..()
+
+/datum/equipment_preset/survivor/engineer/lv
+ name = "Survivor - LV-624 Engineer"
+ assignment = "LV-624 Engineer"
+
+/datum/equipment_preset/survivor/engineer/lv/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/dispatch(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/orange(new_human), WEAR_HEAD)
+ ..()
+
+/datum/equipment_preset/survivor/chaplain/lv
+ name = "Survivor - LV-624 Priest"
+ assignment = "LV-624 Priest"
+
+/datum/equipment_preset/survivor/chaplain/lv/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chaplain(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/norm(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/priest_robe(new_human), WEAR_JACKET)
+ ..()
+
+/datum/equipment_preset/survivor/doctor/lv
+ name = "Survivor - LV-624 Emergency Medical Technician"
+ assignment = "LV-624 Emergency Medical Technician"
+
+/datum/equipment_preset/survivor/doctor/lv/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/adv(new_human.back), WEAR_IN_BACK)
+ ..()
+
+/datum/equipment_preset/survivor/security/lv
+ name = "Survivor - LV-624 Security Guard"
+ assignment = "Weyland-Yutani Security Guard"
+ languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE)
+
+/datum/equipment_preset/survivor/security/lv/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/formal/servicedress(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/jungle(new_human), WEAR_FEET)
+ ..()
+
diff --git a/code/modules/gear_presets/survivors/misc.dm b/code/modules/gear_presets/survivors/misc.dm
new file mode 100644
index 000000000000..3beba6a31b06
--- /dev/null
+++ b/code/modules/gear_presets/survivors/misc.dm
@@ -0,0 +1,344 @@
+
+
+/*
+everything bellow isn't used or out of place.
+
+*/
+
+
+// ----- Prisioner Survivors
+// after double check prisoner isn't being used anywhere.
+/datum/equipment_preset/survivor/prisoner
+ name = "Survivor - Prisoner"
+ assignment = "Prisoner"
+ skills = /datum/skills/civilian/survivor/prisoner
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
+ access = list(ACCESS_CIVILIAN_PUBLIC)
+
+ survivor_variant = SECURITY_SURVIVOR
+
+/datum/equipment_preset/survivor/prisoner/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/color/orange(new_human), WEAR_BODY)
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ add_ice_colony_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
+ if(prob(50)) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet(new_human), WEAR_HEAD)
+ if(prob(50)) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human.back), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/medium(new_human), WEAR_R_STORE)
+ add_survivor_weapon_civilian(new_human)
+ ..()
+
+// after double check gangleader isn't being used anywhere.
+/datum/equipment_preset/survivor/gangleader
+ name = "Survivor - Gang Leader"
+ assignment = "Gang Leader"
+ skills = /datum/skills/civilian/survivor/gangleader
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
+ access = list(ACCESS_CIVILIAN_PUBLIC)
+
+/datum/equipment_preset/survivor/gangleader/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/color/orange(new_human), WEAR_BODY)
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ add_ice_colony_survivor_equipment(new_human)
+ if(prob(50)) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet(new_human), WEAR_HEAD)
+ if(prob(50)) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human.back), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large(new_human), WEAR_R_STORE)
+ add_survivor_weapon_civilian(new_human)
+ ..()
+
+// ----- Civilian Survivor
+
+// after double check civilian isn't being used anywhere.
+/datum/equipment_preset/survivor/civilian
+ name = "Survivor - Civilian"
+ assignment = "Civilian"
+ skills = /datum/skills/civilian/survivor
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
+ access = list(ACCESS_CIVILIAN_PUBLIC)
+
+/datum/equipment_preset/survivor/civilian/load_gear(mob/living/carbon/human/new_human)
+ var/random_gear = rand(0, 3)
+ switch(random_gear)
+ if(0) // Normal Colonist
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/norm(new_human), WEAR_BACK)
+ if(1) // Janitor
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/janitor(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/vir(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/purple(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/mgoggles(new_human), WEAR_EYES)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/purple(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/galoshes(new_human), WEAR_FEET)
+ if(2) // Bar Tender
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/waiter(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/lawyer/bluejacket(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/bowlerhat(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/fake_mustache(new_human), WEAR_FACE)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/black(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/beer_pack(new_human.back), WEAR_IN_BACK)
+ if(3) // Botanist
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/hyd(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/apron(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/hatchet(new_human.back), WEAR_IN_BACK)
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ add_ice_colony_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/norm(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general(new_human), WEAR_R_STORE)
+ add_survivor_weapon_civilian(new_human)
+
+ ..()
+
+// --- Salesman Survivor
+
+// after double check salesman isn't being used anywhere.
+/datum/equipment_preset/survivor/salesman
+ name = "Survivor - Salesman"
+ assignment = "Salesman"
+ skills = /datum/skills/civilian/survivor
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
+ idtype = /obj/item/card/id/data
+ access = list(ACCESS_CIVILIAN_PUBLIC)
+
+/datum/equipment_preset/survivor/salesman/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit(new_human), WEAR_BODY)
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ add_ice_colony_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/wcoat(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/document(new_human), WEAR_R_STORE)
+ add_random_cl_survivor_loot(new_human)
+ add_survivor_weapon_civilian(new_human)
+ ..()
+
+
+// ----- Roughneck Survivor
+
+// after double check roughneck isn't being used anywhere.
+/datum/equipment_preset/survivor/roughneck
+ name = "Survivor - Roughneck"
+ assignment = "Roughneck"
+ skills = /datum/skills/civilian/survivor/pmc
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
+ access = list(ACCESS_CIVILIAN_PUBLIC)
+
+/datum/equipment_preset/survivor/roughneck/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/color/white(new_human), WEAR_BODY)
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ add_ice_colony_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/apron/overalls(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf/tacticalmask/green(new_human), WEAR_FACE)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/centcom(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/centcom(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/large(new_human), WEAR_R_STORE)
+ add_pmc_survivor_weapon(new_human)
+
+ ..()
+
+// ----- Bum Survivor
+
+// after double check beachbum isn't being used anywhere.
+/datum/equipment_preset/survivor/beachbum
+ name = "Survivor - Beach Bum"
+ assignment = "Beach Bum"
+ skills = /datum/skills/civilian/survivor/prisoner
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
+ access = list(ACCESS_CIVILIAN_PUBLIC)
+
+/datum/equipment_preset/survivor/beachbum/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/shorts/red(new_human), WEAR_BODY)
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ add_ice_colony_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette(new_human), WEAR_FACE)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/boonie(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/botanic_leather(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/beer_pack(new_human.back), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/kitchen/knife/butcher(new_human.back), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/fancy/cigarettes/wypacket(new_human.back), WEAR_IN_BACK)
+ add_survivor_weapon_civilian(new_human)
+
+ ..()
+
+// ----- WY Survivors
+
+// after double check goon isn't being used anywhere.
+/datum/equipment_preset/survivor/goon
+ name = "Survivor - Corporate Security Goon"
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
+ assignment = JOB_WY_GOON
+ paygrade = "WEY-GOON"
+ idtype = /obj/item/card/id/silver/cl
+ skills = /datum/skills/civilian/survivor/goon
+ languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE)
+ access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_COMMAND, ACCESS_CIVILIAN_BRIG)
+
+ survivor_variant = SECURITY_SURVIVOR
+
+/datum/equipment_preset/survivor/goon/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY, WEAR_L_EAR)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/pmc/corporate, WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/pmc/light/corporate, WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc/corporate, WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/corporate, WEAR_FEET)
+
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot, WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/weapon/baton, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/large_stack(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88_near_empty, WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full, WEAR_R_STORE)
+
+ new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m41a/corporate/no_lock, WEAR_J_STORE)
+
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/full(new_human), WEAR_R_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/survival/full(new_human), WEAR_L_STORE)
+
+
+// ----- Mercenary Survivors
+
+// after double check pmc/miner/one isn't being used anywhere.
+/datum/equipment_preset/survivor/pmc/miner/one
+ name = "Survivor - Mercenary"
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
+
+ assignment = "Mercenary"
+ skills = /datum/skills/civilian/survivor/pmc
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
+ access = list(ACCESS_CIVILIAN_PUBLIC)
+
+/datum/equipment_preset/survivor/pmc/miner/one/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/mercenary/miner, WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/mercenary/miner, WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/mercenary/miner, WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/ert(new_human), WEAR_R_STORE)
+ add_pmc_survivor_weapon(new_human)
+
+ ..()
+
+// after double check pmc/freelancer isn't being used anywhere.
+/datum/equipment_preset/survivor/pmc/freelancer
+ name = "Survivor - Freelancer"
+ assignment = "Freelancer"
+ skills = /datum/skills/civilian/survivor/pmc
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
+ access = list(ACCESS_CIVILIAN_PUBLIC)
+
+/datum/equipment_preset/survivor/pmc/freelancer/load_gear(mob/living/carbon/human/new_human)
+
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/freelancer, WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/freelancer, WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/pmc, WEAR_HANDS)
+ spawn_merc_helmet(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/dutch, WEAR_L_EAR)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot, WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/ert(new_human), WEAR_R_STORE)
+ add_pmc_survivor_weapon(new_human)
+
+ ..()
+
+// after double check /new_varadero/commander isn't being used anywhere.
+/datum/equipment_preset/survivor/new_varadero/commander
+ name = "Survivor - USASF Commander"
+ assignment = "USASF Commander"
+ skills = /datum/skills/commander
+ paygrade = "NO5"
+ idtype = /obj/item/card/id/gold
+ role_comm_title = "USASF CDR"
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
+ access = list(
+ ACCESS_CIVILIAN_PUBLIC,
+ ACCESS_CIVILIAN_RESEARCH,
+ ACCESS_CIVILIAN_ENGINEERING,
+ ACCESS_CIVILIAN_LOGISTICS,
+ ACCESS_CIVILIAN_BRIG,
+ ACCESS_CIVILIAN_MEDBAY,
+ ACCESS_CIVILIAN_COMMAND,
+ )
+
+/datum/equipment_preset/survivor/new_varadero/commander/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/bridge(new_human), WEAR_BODY)
+
+ var/obj/item/clothing/suit/storage/jacket/marine/service/suit = new()
+ suit.icon_state = "[suit.initial_icon_state]_o"
+ suit.buttoned = FALSE
+
+ var/obj/item/clothing/accessory/ranks/navy/o5/pin = new()
+ suit.attach_accessory(new_human, pin)
+
+ new_human.equip_to_slot_or_del(suit, WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/survival/full(new_human), WEAR_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large(new_human), WEAR_R_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/notepad(new_human), WEAR_IN_R_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/pen/fountain(new_human), WEAR_IN_R_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/med_small_stack(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/m1911(new_human), WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap(new_human), WEAR_HEAD)
+
+ ..()
+
+// ----- Hostile Survivors
+
+/*
+
+datum/equipment_preset/survivor/clf/cold is never used
+and as a three proc attach to it that are defacto never used eitheir.
+
+handled proc in datum/equipment_preset/survivor/clf/cold:
+spawn_rebel_suit
+spawn_rebel_helmet
+spawn_rebel_shoes
+
+*/
+
+/datum/equipment_preset/survivor/clf/cold
+
+//children of spawn rebel shoes proc
+/datum/equipment_preset/survivor/clf/cold/spawn_rebel_suit(mob/living/carbon/human/human)
+ if(!istype(human))
+ return
+ var/suitpath = pick(
+ /obj/item/clothing/suit/storage/militia,
+ /obj/item/clothing/suit/storage/militia/vest,
+ /obj/item/clothing/suit/storage/militia/brace,
+ /obj/item/clothing/suit/storage/militia/partial,
+ )
+ human.equip_to_slot_or_del(new suitpath, WEAR_JACKET)
+
+//children of spawn rebel helmet proc
+/datum/equipment_preset/survivor/clf/cold/spawn_rebel_helmet(mob/living/carbon/human/human)
+ if(!istype(human))
+ return
+ var/helmetpath = pick(
+ /obj/item/clothing/head/militia,
+ /obj/item/clothing/head/militia/bucket,
+ /obj/item/clothing/head/helmet,
+ /obj/item/clothing/head/helmet/skullcap,
+ /obj/item/clothing/head/helmet/swat,
+ )
+ human.equip_to_slot_or_del(new helmetpath, WEAR_HEAD)
+
+//children of spawn rebel shoes proc
+/datum/equipment_preset/survivor/clf/cold/spawn_rebel_shoes(mob/living/carbon/human/human)
+ if(!istype(human))
+ return
+ var/shoespath = /obj/item/clothing/shoes/combat
+ human.equip_to_slot_or_del(new shoespath, WEAR_FEET)
diff --git a/code/modules/gear_presets/survivors/new_varadero/preset_new_varadero.dm b/code/modules/gear_presets/survivors/new_varadero/preset_new_varadero.dm
new file mode 100644
index 000000000000..f9af043aac62
--- /dev/null
+++ b/code/modules/gear_presets/survivors/new_varadero/preset_new_varadero.dm
@@ -0,0 +1,86 @@
+/datum/equipment_preset/survivor/security/nv
+ name = "Survivor - New Varadero Security Guard"
+ assignment = "United Americas Peacekeeper"
+ languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE)
+
+/datum/equipment_preset/survivor/security/nv/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/ua_riot(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/ua_riot(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ ..()
+
+/datum/equipment_preset/survivor/doctor/nv
+ name = "Survivor - New Varadero Medical Technician"
+ assignment = "New Varadero Medical Technician"
+
+/datum/equipment_preset/survivor/doctor/nv/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/adv(new_human.back), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/boonie(new_human), WEAR_HEAD)
+ ..()
+
+/datum/equipment_preset/survivor/scientist/nv
+ name = "Survivor - New Varadero Researcher"
+ assignment = "New Varadero Researcher"
+
+/datum/equipment_preset/survivor/scientist/nv/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/purple(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/boonie(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science(new_human), WEAR_EYES)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/chem(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/purple(new_human), WEAR_FEET)
+ ..()
+
+/datum/equipment_preset/survivor/interstellar_commerce_commission_liason/nv
+ name = "Survivor - Interstellar Commerce Commission Liaison New Varadero"
+ assignment = "Interstellar Commerce Commission Corporate Liaison"
+
+/datum/equipment_preset/survivor/interstellar_commerce_commission_liason/nv/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/formal(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/white(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/black(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/device/flashlight, WEAR_J_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/clipboard, WEAR_L_HAND)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses, WEAR_EYES)
+ ..()
+
+/datum/equipment_preset/survivor/trucker/nv
+ name = "Survivor - New Varadero Vehicle Operator"
+ assignment = "New Varadero Vehicle Operator"
+
+/datum/equipment_preset/survivor/trucker/nv/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/cargo(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/meson(new_human), WEAR_EYES)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/boonie(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
+ ..()
+
+/datum/equipment_preset/survivor/engineer/nv
+ name = "Survivor - New Varadero Technician"
+ assignment = "New Varadero Engineer"
+
+/datum/equipment_preset/survivor/engineer/nv/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/dispatch(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/orange(new_human), WEAR_HEAD)
+ ..()
+
+/datum/equipment_preset/survivor/chaplain/nv
+ name = "Survivor - New Varadero Priest"
+ assignment = "New Varadero Priest"
+
+/datum/equipment_preset/survivor/chaplain/nv/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chaplain(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/boonie(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/norm(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/priest_robe(new_human), WEAR_JACKET)
+ ..()
diff --git a/code/modules/gear_presets/survivors/shivas_snowball/preset_shivas_snowball.dm b/code/modules/gear_presets/survivors/shivas_snowball/preset_shivas_snowball.dm
new file mode 100644
index 000000000000..c1dce212d0c4
--- /dev/null
+++ b/code/modules/gear_presets/survivors/shivas_snowball/preset_shivas_snowball.dm
@@ -0,0 +1,82 @@
+/datum/equipment_preset/survivor/corporate/shiva
+ name = "Survivor - Shivas Snowball Corporate Liaison"
+ assignment = "Shivas Snowball Corporate Liaison"
+
+/datum/equipment_preset/survivor/corporate/shiva/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/formal(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/white(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor/parka/navy(new_human), WEAR_JACKET)
+ ..()
+
+/datum/equipment_preset/survivor/doctor/shiva
+ name = "Survivor - Shivas Snowball Doctor"
+ assignment = "Shivas Snowball Doctor"
+
+/datum/equipment_preset/survivor/doctor/shiva/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/green(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor/parka/green(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/white(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE)
+ ..()
+
+/datum/equipment_preset/survivor/scientist/shiva
+ name = "Survivor - Shivas Snowball Researcher"
+ assignment = "Shivas Snowball Researcher"
+
+/datum/equipment_preset/survivor/scientist/shiva/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/blue(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/tox(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor/parka/purple(new_human), WEAR_JACKET)
+ ..()
+
+/datum/equipment_preset/survivor/colonial_marshal/shiva
+ name = "Survivor - Shivas Colonial Marshal Deputy"
+ assignment = "CMB Deputy"
+
+/datum/equipment_preset/survivor/colonial_marshal/shiva/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/security/corp(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited(new_human), WEAR_L_EAR)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor/parka/red(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/white(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ ..()
+
+/datum/equipment_preset/survivor/engineer/shiva
+ name = "Survivor - Shivas Snowball Engineer"
+ assignment = "Shivas Snowball Engineer"
+
+/datum/equipment_preset/survivor/engineer/shiva/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor/parka/yellow(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD)
+ ..()
+
+/datum/equipment_preset/survivor/security/shiva
+ name = "Survivor - Shivas Snowball Security Guard"
+ assignment = "United Americas Peacekeeper"
+
+/datum/equipment_preset/survivor/security/shiva/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/ua_riot(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/ua_riot(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/white(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ ..()
diff --git a/code/modules/gear_presets/survivors/solaris/crashlanding-offices_insert_bigred.dm b/code/modules/gear_presets/survivors/solaris/crashlanding-offices_insert_bigred.dm
new file mode 100644
index 000000000000..c5c85a0a7441
--- /dev/null
+++ b/code/modules/gear_presets/survivors/solaris/crashlanding-offices_insert_bigred.dm
@@ -0,0 +1,158 @@
+//those preset are only used on this insert.
+// /obj/effect/landmark/survivor_spawner/bigred_crashed_pmc
+
+/datum/equipment_preset/survivor/pmc
+ name = "Survivor - PMC"
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
+ assignment = "Weyland-Yutani PMC"
+ faction = FACTION_SURVIVOR
+ faction_group = list(FACTION_SURVIVOR)
+ paygrade = "PMC-OP"
+ idtype = /obj/item/card/id/pmc
+ skills = /datum/skills/civilian/survivor/pmc
+ languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE)
+ access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_COMMAND)
+
+/datum/equipment_preset/survivor/pmc/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/pmc/hvh, WEAR_L_EAR)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/pmc, WEAR_BODY)
+ add_pmc_survivor_weapon(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/pmc, WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/pmc, WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc, WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/veteran/pmc/knife, WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf, WEAR_FACE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot, WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/ert(new_human), WEAR_R_STORE)
+
+ ..()
+// /obj/effect/landmark/survivor_spawner/bigred_crashed_pmc_medic
+
+/datum/equipment_preset/survivor/pmc/medic
+ name = "Survivor - PMC Medic"
+ assignment = JOB_PMC_MEDIC
+ rank = JOB_PMC_MEDIC
+ paygrade = "PMC-MS"
+ skills = /datum/skills/civilian/survivor/pmc/medic
+
+/datum/equipment_preset/survivor/pmc/medic/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot, WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/adv(new_human), WEAR_IN_BACK)
+ if(new_human.disabilities & NEARSIGHTED)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health/prescription(new_human), WEAR_EYES)
+ else
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health(new_human), WEAR_EYES)
+ new_human.equip_to_slot_or_del(new /obj/item/device/healthanalyzer, WEAR_R_HAND)
+
+ ..()
+// /obj/effect/landmark/survivor_spawner/bigred_crashed_pmc_engineer
+
+/datum/equipment_preset/survivor/pmc/engineer
+ name = "Survivor - PMC Engineer"
+ assignment = JOB_PMC_ENGINEER
+ rank = JOB_PMC_ENGINEER
+ paygrade = "PMC-TECH"
+ skills = /datum/skills/civilian/survivor/pmc/engineer
+
+/datum/equipment_preset/survivor/pmc/engineer/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot, WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding/superior, WEAR_EYES)
+ new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/plasteel/med_small_stack(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full(new_human), WEAR_R_HAND)
+
+ ..()
+
+// /obj/effect/landmark/survivor_spawner/bigred_crashed_cl
+
+/datum/equipment_preset/survivor/wy/manager
+ name = "Survivor - Corporate Supervisor"
+ flags = EQUIPMENT_PRESET_EXTRA
+ paygrade = "WYC7"
+ skills = /datum/skills/civilian/survivor/manager
+ assignment = "Colony Supervisor"
+ role_comm_title = "Supervisor"
+ idtype = /obj/item/card/id/silver/clearance_badge/manager
+ faction_group = list(FACTION_WY, FACTION_SURVIVOR)
+ access = list(
+ ACCESS_WY_GENERAL,
+ ACCESS_WY_COLONIAL,
+ ACCESS_WY_LEADERSHIP,
+ ACCESS_WY_SECURITY,
+ ACCESS_WY_EXEC,
+ ACCESS_WY_RESEARCH,
+ ACCESS_WY_ENGINEERING,
+ ACCESS_WY_MEDICAL,
+ ACCESS_ILLEGAL_PIRATE,
+ )
+ languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE)
+
+ survivor_variant = CORPORATE_SURVIVOR
+
+/datum/equipment_preset/survivor/wy/manager/load_gear(mob/living/carbon/human/new_human)
+
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket/manager(new_human), WEAR_BODY)
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ add_ice_colony_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/lockable/liaison, WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/manager(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY, WEAR_L_EAR)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/dress, WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/manager(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/paper/research_notes/good(new_human), WEAR_IN_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/reagent_container/glass/beaker/vial/random/good(new_human), WEAR_IN_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/ert(new_human), WEAR_R_STORE)
+ add_pmc_survivor_weapon(new_human)
+ add_random_cl_survivor_loot(new_human)
+
+ ..()
+// only used on the spawner of all of those above...
+/datum/equipment_preset/synth/survivor/pmc
+ name = "Survivor - Synthetic - PMC Support Synth"
+ faction = FACTION_SURVIVOR
+ faction_group = list(FACTION_SURVIVOR)
+ access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_COMMAND)
+ idtype = /obj/item/card/id/pmc
+ assignment = JOB_PMC_SYNTH
+ rank = JOB_PMC_SYNTH
+ role_comm_title = "WY Syn"
+
+/datum/equipment_preset/synth/survivor/pmc/load_race(mob/living/carbon/human/new_human)
+ new_human.set_species(SYNTH_GEN_THREE)
+
+/datum/equipment_preset/synth/survivor/pmc/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/pmc, WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/surg_vest/equipped, WEAR_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/pmc/light/synth, WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/weapon/telebaton, WEAR_IN_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/nailgun, WEAR_IN_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/nailgun, WEAR_IN_JACKET)
+
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc, WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/pmc/command/hvh, WEAR_L_EAR)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/night/experimental_mesons, WEAR_EYES)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/pmc, WEAR_FACE)
+
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/pmc, WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/veteran/pmc/knife, WEAR_FEET)
+
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/smartpack/white, WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/roller, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/roller/surgical, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher/mini, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator/upgraded, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/crew_monitor, WEAR_IN_BACK)
+
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/full/dutch, WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/smg/nailgun/compact, WEAR_J_STORE)
+
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/tactical, WEAR_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/screwdriver/tactical, WEAR_IN_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical, WEAR_IN_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/wirecutters/tactical, WEAR_IN_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/wrench, WEAR_IN_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/stack/cable_coil, WEAR_IN_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/stack/cable_coil, WEAR_IN_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/device/multitool, WEAR_IN_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/weldingtool/hugetank, WEAR_IN_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/construction/full_barbed_wire, WEAR_R_STORE)
diff --git a/code/modules/gear_presets/survivors/solaris/preset_solaris.dm b/code/modules/gear_presets/survivors/solaris/preset_solaris.dm
new file mode 100644
index 000000000000..c71641a82ac1
--- /dev/null
+++ b/code/modules/gear_presets/survivors/solaris/preset_solaris.dm
@@ -0,0 +1,94 @@
+/datum/equipment_preset/survivor/trucker/solaris
+ name = "Survivor - Solaris Heavy Vehicle Operator"
+ assignment = "Solaris Heavy Vehicle Operator"
+ skills = /datum/skills/civilian/survivor/trucker
+
+/datum/equipment_preset/survivor/trucker/solaris/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/worker_overalls(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/apron/overalls(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/red(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/big(new_human), WEAR_EYES)
+ ..()
+
+/datum/equipment_preset/survivor/colonial_marshal/solaris
+ name = "Survivor - Solaris Colonial Marshal Deputy"
+ assignment = "CMB Deputy"
+
+
+/datum/equipment_preset/survivor/colonial_marshal/solaris/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/CM_uniform(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited(new_human), WEAR_L_EAR)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/CMB(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ ..()
+
+/datum/equipment_preset/survivor/engineer/solaris
+ name = "Survivor - Solaris Engineer"
+ assignment = "Solaris Engineer"
+
+/datum/equipment_preset/survivor/engineer/solaris/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/yellow(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding/superior(new_human), WEAR_EYES)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK)
+ ..()
+
+/datum/equipment_preset/survivor/scientist/solaris
+ name = "Survivor - Solaris Scientist"
+ assignment = "Solaris Scientist"
+
+/datum/equipment_preset/survivor/scientist/solaris/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/virologist(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/green(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/virologist(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/green(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science(new_human), WEAR_EYES)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/green(new_human), WEAR_FEET)
+ ..()
+
+/datum/equipment_preset/survivor/doctor/solaris
+ name = "Survivor - Solaris Doctor"
+ assignment = "Solaris Doctor"
+
+/datum/equipment_preset/survivor/doctor/solaris/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/purple(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/purple(new_human), WEAR_HEAD)
+ ..()
+
+/datum/equipment_preset/survivor/chaplain/solaris
+ name = "Survivor - Solaris Chaplain"
+ assignment = "Solaris Chaplain"
+
+/datum/equipment_preset/survivor/chaplain/solaris/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/holidaypriest(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/nun_hood(new_human), WEAR_HEAD)
+ ..()
+
+/datum/equipment_preset/survivor/security/solaris
+ name = "Survivor - Solaris United Americas Peacekeepers"
+ assignment = "United Americas Peacekeeper"
+
+/datum/equipment_preset/survivor/security/solaris/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/ua_riot(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/sec/hos(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
+ ..()
+
+/datum/equipment_preset/survivor/corporate/solaris
+ name = "Survivor - Solaris Ridge Corporate Liaison"
+ assignment = "Solaris Ridge Corporate Liaison"
+
+/datum/equipment_preset/survivor/corporate/solaris/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/outing/red(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR)
+ if(new_human.disabilities & NEARSIGHTED)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/prescription(new_human), WEAR_EYES)
+ else
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(new_human), WEAR_EYES)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ ..()
diff --git a/code/modules/gear_presets/survivors/sorokyne_strata/preset_sorokyne_strata.dm b/code/modules/gear_presets/survivors/sorokyne_strata/preset_sorokyne_strata.dm
new file mode 100644
index 000000000000..532b422a13a9
--- /dev/null
+++ b/code/modules/gear_presets/survivors/sorokyne_strata/preset_sorokyne_strata.dm
@@ -0,0 +1,60 @@
+/datum/equipment_preset/survivor/engineer/soro
+ name = "Survivor - Sorokyne Strata Political Prisioner"
+ assignment = "Sorokyne Strata Political Prisioner"
+
+/datum/equipment_preset/survivor/engineer/soro/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/UPP(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/soviet(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE)
+ ..()
+
+/datum/equipment_preset/survivor/security/soro
+ name = "Survivor - Sorokyne Strata Security"
+ assignment = "Sorokyne Strata Security"
+
+/datum/equipment_preset/survivor/security/soro/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/veteran/soviet_uniform_01(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/soviet(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS)
+ ..()
+
+/datum/equipment_preset/survivor/doctor/soro
+ name = "Survivor - Sorokyne Strata Doctor"
+ assignment = "Sorokyne Strata Doctor"
+
+/datum/equipment_preset/survivor/doctor/soro/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/veteran/soviet_uniform_01(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD)
+ ..()
+
+/datum/equipment_preset/survivor/scientist/soro
+ name = "Survivor - Sorokyne Strata Researcher"
+ assignment = "Sorokyne Strata Researcher"
+
+/datum/equipment_preset/survivor/scientist/soro/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/blue(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/regular(new_human), WEAR_FACE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/tox(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor(new_human), WEAR_JACKET)
+ ..()
+
+/datum/equipment_preset/survivor/interstellar_human_rights_observer/soro
+ name = "Survivor - Sorokyne Interstellar Human Rights Observer"
+ assignment = "Interstellar Human Rights Observer(Sorokyne)"
+
+
+/datum/equipment_preset/survivor/interstellar_human_rights_observer/soro/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD)
+ ..()
diff --git a/code/modules/gear_presets/survivors/survivors.dm b/code/modules/gear_presets/survivors/survivors.dm
new file mode 100644
index 000000000000..6d7036635b1c
--- /dev/null
+++ b/code/modules/gear_presets/survivors/survivors.dm
@@ -0,0 +1,439 @@
+/datum/equipment_preset/survivor
+ name = JOB_SURVIVOR
+ assignment = JOB_SURVIVOR
+ rank = JOB_SURVIVOR
+
+ skills = /datum/skills/civilian/survivor
+ languages = list(LANGUAGE_ENGLISH)
+ paygrade = "C"
+ idtype = /obj/item/card/id/lanyard
+ faction = FACTION_SURVIVOR
+ faction_group = list(FACTION_SURVIVOR)
+ origin_override = ORIGIN_CIVILIAN
+
+ access = list(ACCESS_CIVILIAN_PUBLIC)
+
+ minimap_icon = "surv"
+ minimap_background = MINIMAP_ICON_BACKGROUND_CIVILIAN
+
+ var/survivor_variant = CIVILIAN_SURVIVOR
+
+/datum/equipment_preset/survivor/load_name(mob/living/carbon/human/new_human, randomise)
+ new_human.gender = pick(MALE, FEMALE)
+ var/datum/preferences/A = new
+ A.randomize_appearance(new_human)
+ var/random_name = capitalize(pick(new_human.gender == MALE ? first_names_male : first_names_female)) + " " + capitalize(pick(last_names))
+ new_human.change_real_name(new_human, random_name)
+ new_human.age = rand(21,45)
+
+/datum/equipment_preset/survivor/load_gear(mob/living/carbon/human/new_human) // Essentially where you will put the most essential piece of kit you want survivors to spawn with.
+ add_random_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/survival/full(new_human), WEAR_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/med_small_stack(new_human), WEAR_IN_BACK)
+ add_survivor_weapon_pistol(new_human)
+
+/datum/equipment_preset/survivor/load_id(mob/living/carbon/human/new_human, client/mob_client)
+ var/obj/item/clothing/under/uniform = new_human.w_uniform
+ if(istype(uniform))
+ uniform.has_sensor = UNIFORM_HAS_SENSORS
+ uniform.sensor_faction = FACTION_COLONIST
+ return ..()
+
+/*
+From map_config.dm
+
+Standart Survivors : /datum/equipment_preset/survivor/scientist,
+ /datum/equipment_preset/survivor/doctor,
+ /datum/equipment_preset/survivor/chef,
+ /datum/equipment_preset/survivor/chaplain,
+ /datum/equipment_preset/survivor/miner,
+ /datum/equipment_preset/survivor/colonial_marshal,
+ /datum/equipment_preset/survivor/engineer,
+
+*/
+
+
+// 1 ----- Scientist Survivor
+
+/datum/equipment_preset/survivor/scientist
+ name = "Survivor - Scientist"
+ assignment = "Scientist"
+ skills = /datum/skills/civilian/survivor/scientist
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
+ idtype = /obj/item/card/id/silver/clearance_badge/scientist
+ access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_RESEARCH, ACCESS_CIVILIAN_MEDBAY)
+
+ survivor_variant = SCIENTIST_SURVIVOR
+
+/datum/equipment_preset/survivor/scientist/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/virologist(new_human), WEAR_BODY)
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ add_ice_colony_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/green(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/virologist(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/green(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science(new_human), WEAR_EYES)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/chem(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/green(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/paper/research_notes/good(new_human), WEAR_IN_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/reagent_container/glass/beaker/vial/random/good(new_human), WEAR_IN_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/medical/full(new_human), WEAR_R_STORE)
+ add_survivor_weapon_civilian(new_human)
+ add_random_survivor_research_gear(new_human)
+
+ ..()
+
+// 2 ----- Doctor Survivor
+
+/datum/equipment_preset/survivor/doctor
+ name = "Survivor - Doctor"
+ assignment = "Doctor"
+ skills = /datum/skills/civilian/survivor/doctor
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
+ idtype = /obj/item/card/id/silver/clearance_badge
+ access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_RESEARCH, ACCESS_CIVILIAN_MEDBAY, ACCESS_CIVILIAN_COMMAND)
+
+ survivor_variant = MEDICAL_SURVIVOR
+
+/datum/equipment_preset/survivor/doctor/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(new_human), WEAR_BODY)
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ add_ice_colony_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/med(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat(new_human), WEAR_JACKET)
+ var/random_gear = rand(0,4)
+ switch(random_gear)
+ if(0)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full/alternate(new_human), WEAR_R_STORE)
+ if(1)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/medical/full(new_human), WEAR_R_STORE)
+ if(2)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full(new_human), WEAR_R_STORE)
+ if(3)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/first_responder/full(new_human), WEAR_R_STORE)
+ if(4)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/medkit/full_advanced(new_human), WEAR_R_STORE)
+ add_random_survivor_medical_gear(new_human)
+ add_survivor_weapon_civilian(new_human)
+
+ ..()
+
+// 3 ----- Chef Survivor
+
+/datum/equipment_preset/survivor/chef
+ name = "Survivor - Chef"
+ assignment = "Chef"
+ skills = /datum/skills/civilian/survivor/chef
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
+ access = list(ACCESS_CIVILIAN_PUBLIC)
+
+/datum/equipment_preset/survivor/chef/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist(new_human), WEAR_BODY)
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ add_ice_colony_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/norm(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/chef(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/kitchen/rollingpin(new_human.back), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general(new_human), WEAR_R_STORE)
+ add_survivor_weapon_civilian(new_human)
+
+ ..()
+
+// 4 ----- Chaplain Survivor
+
+/datum/equipment_preset/survivor/chaplain
+ name = "Survivor - Chaplain"
+ assignment = "Chaplain"
+ skills = /datum/skills/civilian/survivor/chaplain
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
+ access = list(ACCESS_CIVILIAN_PUBLIC)
+
+/datum/equipment_preset/survivor/chaplain/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chaplain(new_human), WEAR_BODY)
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ add_ice_colony_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/norm(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/holidaypriest(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/bible/booze(new_human.back), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general(new_human), WEAR_R_STORE)
+ add_survivor_weapon_civilian(new_human)
+
+ ..()
+
+// 5 ----- Miner Survivor
+
+/datum/equipment_preset/survivor/miner
+ name = "Survivor - Miner"
+ assignment = "Miner"
+ skills = /datum/skills/civilian/survivor/miner
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
+ access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_ENGINEERING, ACCESS_CIVILIAN_LOGISTICS)
+
+/datum/equipment_preset/survivor/miner/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/miner(new_human), WEAR_BODY)
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ add_ice_colony_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/norm(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/pickaxe(new_human.back), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/device/flashlight/lantern(new_human.back), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/full(new_human), WEAR_R_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/orange(new_human), WEAR_HEAD)
+ add_survivor_weapon_civilian(new_human)
+
+ ..()
+
+// 6 ---- Colonial Marshal Survivor
+
+/datum/equipment_preset/survivor/colonial_marshal
+ name = "Survivor - Colonial Marshal Deputy"
+ assignment = "CMB Deputy"
+ paygrade = "GS-9"
+ skills = /datum/skills/civilian/survivor/marshal
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
+ idtype = /obj/item/card/id/deputy
+ role_comm_title = "CMB DEP"
+ access = list(
+ ACCESS_CIVILIAN_PUBLIC,
+ ACCESS_CIVILIAN_RESEARCH,
+ ACCESS_CIVILIAN_ENGINEERING,
+ ACCESS_CIVILIAN_LOGISTICS,
+ ACCESS_CIVILIAN_BRIG,
+ ACCESS_CIVILIAN_MEDBAY,
+ ACCESS_CIVILIAN_COMMAND,
+ )
+
+ survivor_variant = SECURITY_SURVIVOR
+
+/datum/equipment_preset/survivor/colonial_marshal/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/CM_uniform(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited(new_human), WEAR_L_EAR)
+
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ add_ice_colony_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/CMB(new_human), WEAR_HEAD)
+ if(new_human.disabilities & NEARSIGHTED)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud/prescription(new_human), WEAR_EYES)
+ else
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(new_human), WEAR_EYES)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/CMB(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/large(new_human), WEAR_R_STORE)
+ add_survivor_weapon_security(new_human)
+
+ ..()
+
+// 7 ----- Engineering Survivor
+
+/datum/equipment_preset/survivor/engineer
+ name = "Survivor - Engineer"
+ assignment = "Engineer"
+ skills = /datum/skills/civilian/survivor/engineer
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
+ access = list(ACCESS_CIVILIAN_PUBLIC,ACCESS_CIVILIAN_ENGINEERING,ACCESS_CIVILIAN_LOGISTICS)
+
+ survivor_variant = ENGINEERING_SURVIVOR
+
+/datum/equipment_preset/survivor/engineer/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(new_human), WEAR_BODY)
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ add_ice_colony_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/weldingtool/largetank(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/plasteel/med_small_stack(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding(new_human), WEAR_EYES)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/insulated(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full(new_human), WEAR_WAIST)
+ add_survivor_weapon_civilian(new_human)
+
+ ..()
+/*
+Everything bellow is a parent used as a base for one or multiple maps.
+*/
+
+// ----- Interstellar Human Rights Survivor
+
+// it's used as a base for soro map.
+/datum/equipment_preset/survivor/interstellar_human_rights_observer
+ name = "Survivor - Interstellar Human Rights Observer"
+ assignment = "Interstellar Human Rights Observer(Colony)"
+ skills = /datum/skills/civilian/survivor
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
+ access = list(ACCESS_CIVILIAN_PUBLIC,ACCESS_CIVILIAN_COMMAND)
+
+/datum/equipment_preset/survivor/interstellar_human_rights_observer/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/suspenders(new_human), WEAR_BODY)
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ add_ice_colony_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
+ add_random_cl_survivor_loot(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine(new_human), WEAR_HEAD)
+ add_survivor_weapon_civilian(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/document(new_human), WEAR_R_STORE)
+
+ ..()
+
+
+// ----- CL Survivor
+//used as a base for shiva and solaris spawn.
+
+/datum/equipment_preset/survivor/corporate
+ name = "Survivor - Corporate Liaison"
+ assignment = "Corporate Liaison"
+ skills = /datum/skills/civilian/survivor
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
+ paygrade = "WYC2"
+ idtype = /obj/item/card/id/silver/clearance_badge/cl
+ access = list(
+ ACCESS_CIVILIAN_PUBLIC,
+ ACCESS_CIVILIAN_COMMAND,
+ ACCESS_WY_GENERAL,
+ ACCESS_WY_COLONIAL,
+ ACCESS_WY_EXEC,
+ )
+ languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE)
+
+ survivor_variant = CORPORATE_SURVIVOR
+
+/datum/equipment_preset/survivor/corporate/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/formal(new_human), WEAR_BODY)
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ add_ice_colony_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
+ add_random_cl_survivor_loot(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/centcom(new_human), WEAR_FEET)
+ add_survivor_weapon_civilian(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/document(new_human), WEAR_R_STORE)
+
+ ..()
+
+/datum/equipment_preset/survivor/corporate/load_rank(mob/living/carbon/human/new_human)
+ if(new_human.client)
+ var/playtime = get_job_playtime(new_human.client, JOB_CORPORATE_LIAISON)
+ if(new_human.client.prefs.playtime_perks)
+ if(playtime > JOB_PLAYTIME_TIER_4)
+ return "WYC5"
+ else if(playtime > JOB_PLAYTIME_TIER_3)
+ return "WYC4"
+ else if(playtime > JOB_PLAYTIME_TIER_2)
+ return "WYC3"
+ else
+ return paygrade
+ return paygrade
+
+// ----- Security Survivor
+/*
+
+present in xenomorph.dm file
+
+var/list/survivor_types = list(
+ /datum/equipment_preset/survivor/scientist,
+ /datum/equipment_preset/survivor/doctor,
+ /datum/equipment_preset/survivor/security,
+ /datum/equipment_preset/survivor/engineer
+ )
+
+and is used as a base for all of the maps.
+
+*/
+
+/datum/equipment_preset/survivor/security
+ name = "Survivor - Security"
+ assignment = "Security"
+ skills = /datum/skills/civilian/survivor/marshal
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
+ idtype = /obj/item/card/id/data
+ access = list(ACCESS_CIVILIAN_PUBLIC,ACCESS_CIVILIAN_BRIG,ACCESS_CIVILIAN_COMMAND)
+
+ survivor_variant = SECURITY_SURVIVOR
+
+/datum/equipment_preset/survivor/security/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/security(new_human), WEAR_BODY)
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ add_ice_colony_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet(new_human), WEAR_HEAD)
+ if(new_human.disabilities & NEARSIGHTED)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud/prescription(new_human), WEAR_EYES)
+ else
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(new_human), WEAR_EYES)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine(new_human), WEAR_R_STORE)
+ add_survivor_weapon_security(new_human)
+ ..()
+
+// ---- Trucker Survivor
+
+// it's used as a base for kutjevo lv nv solaris and trijent maps.
+/datum/equipment_preset/survivor/trucker
+ name = "Survivor - Trucker"
+ assignment = "Trucker"
+ skills = /datum/skills/civilian/survivor/trucker
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
+ access = list(ACCESS_CIVILIAN_PUBLIC,ACCESS_CIVILIAN_ENGINEERING,ACCESS_CIVILIAN_LOGISTICS)
+
+ survivor_variant = ENGINEERING_SURVIVOR
+
+/datum/equipment_preset/survivor/trucker/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/overalls(new_human), WEAR_BODY)
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ add_ice_colony_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/yellow(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/device/flashlight/lantern(new_human.back), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/full(new_human), WEAR_R_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/hardpoint/locomotion/van_wheels(new_human), WEAR_R_HAND)
+ add_survivor_weapon_civilian(new_human)
+
+ ..()
+
+// ----- CL Survivor
+
+//this is used as a base for corsat and nv
+/datum/equipment_preset/survivor/interstellar_commerce_commission_liason
+ name = "Survivor - Interstellar Commerce Commission Liaison"
+ assignment = "Interstellar Commerce Commission Corporate Liaison"
+ skills = /datum/skills/civilian/survivor
+ idtype = /obj/item/card/id/silver/cl
+ paygrade = "WYC2"
+ role_comm_title = "ICC Rep."
+ flags = EQUIPMENT_PRESET_START_OF_ROUND
+
+ survivor_variant = CORPORATE_SURVIVOR
+
+/datum/equipment_preset/survivor/interstellar_commerce_commission_liason/New()
+ . = ..()
+ access = get_access(ACCESS_LIST_CIVIL_LIAISON)
+
+/datum/equipment_preset/survivor/interstellar_commerce_commission_liason/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited(new_human), WEAR_L_EAR)
+
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ add_ice_colony_survivor_equipment(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/centcom(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/white(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/insulated(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/document(new_human), WEAR_R_STORE)
+ add_survivor_weapon_civilian(new_human)
+ add_random_cl_survivor_loot(new_human)
+
+ ..()
diff --git a/code/modules/gear_presets/survivors/trijent/crashlanding_upp_bar_insert_trijent.dm b/code/modules/gear_presets/survivors/trijent/crashlanding_upp_bar_insert_trijent.dm
new file mode 100644
index 000000000000..147e40a24314
--- /dev/null
+++ b/code/modules/gear_presets/survivors/trijent/crashlanding_upp_bar_insert_trijent.dm
@@ -0,0 +1,203 @@
+// as far as i understand this is only done for one insert
+//crashlanding-upp-bar.dmm map.
+/datum/equipment_preset/survivor/upp
+ name = "Survivor - UPP"
+ paygrade = "UE1"
+ origin_override = ORIGIN_UPP
+ rank = JOB_SURVIVOR
+ skills = /datum/skills/military/survivor/upp_private
+ languages = list(LANGUAGE_RUSSIAN, LANGUAGE_GERMAN, LANGUAGE_CHINESE)
+ faction = FACTION_UPP
+ faction_group = list(FACTION_UPP, FACTION_SURVIVOR)
+ role_comm_title = "173/RECON"
+ idtype = /obj/item/card/id/dogtag
+ flags = EQUIPMENT_PRESET_EXTRA
+ access = list(
+ ACCESS_CIVILIAN_PUBLIC,
+ )
+
+/datum/equipment_preset/survivor/upp/load_gear(mob/living/carbon/human/new_human)
+ var/obj/item/clothing/under/marine/veteran/UPP/uniform = new()
+ var/random_number = rand(1,2)
+ switch(random_number)
+ if(1)
+ uniform.roll_suit_jacket(new_human)
+ if(2)
+ uniform.roll_suit_sleeves(new_human)
+ new_human.equip_to_slot_or_del(uniform, WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp (new_human), WEAR_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp_knife(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/flare(new_human), WEAR_R_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full/alternate(new_human), WEAR_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/med_small_stack(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/recon(new_human), WEAR_L_EAR)
+
+// /obj/effect/landmark/survivor_spawner/upp/soldier
+//crashlanding-upp-bar.dmm
+/datum/equipment_preset/survivor/upp/soldier
+ name = "Survivor - UPP Soldier"
+ paygrade = "UE2"
+ assignment = JOB_UPP
+ rank = JOB_UPP
+ skills = /datum/skills/military/survivor/upp_private
+
+/datum/equipment_preset/survivor/upp/soldier/load_gear(mob/living/carbon/human/new_human)
+ var/obj/item/clothing/under/marine/veteran/UPP/uniform = new()
+ var/random_number = rand(1,2)
+ switch(random_number)
+ if(1)
+ uniform.roll_suit_jacket(new_human)
+ if(2)
+ uniform.roll_suit_sleeves(new_human)
+ new_human.equip_to_slot_or_del(uniform, WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot(new_human), WEAR_BACK)
+ add_upp_weapon(new_human)
+ spawn_random_upp_headgear(new_human)
+ spawn_random_upp_armor(new_human)
+ spawn_random_upp_belt(new_human)
+
+ ..()
+// /obj/effect/landmark/survivor_spawner/upp_sapper
+//crashlanding-upp-bar.dmm
+/datum/equipment_preset/survivor/upp/sapper
+ name = "Survivor - UPP Sapper"
+ paygrade = "UE3S"
+ assignment = JOB_UPP_ENGI
+ rank = JOB_UPP_ENGI
+ skills = /datum/skills/military/survivor/upp_sapper
+
+/datum/equipment_preset/survivor/upp/sapper/load_gear(mob/living/carbon/human/new_human)
+
+ var/obj/item/clothing/under/marine/veteran/UPP/engi/uniform = new()
+ var/R = rand(1,2)
+ switch(R)
+ if(1)
+ uniform.roll_suit_jacket(new_human)
+ if(2)
+ uniform.roll_suit_sleeves(new_human)
+ new_human.equip_to_slot_or_del(uniform, WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/insulated(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full(new_human), WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding(new_human), WEAR_EYES)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot(new_human), WEAR_BACK)
+ spawn_random_upp_armor(new_human)
+ add_upp_weapon(new_human)
+ spawn_random_upp_headgear(new_human)
+
+ ..()
+// /obj/effect/landmark/survivor_spawner/upp_medic
+//crashlanding-upp-bar.dmm
+/datum/equipment_preset/survivor/upp/medic
+ name = "Survivor - UPP Medic"
+ paygrade = "UE3M"
+ assignment = JOB_UPP_MEDIC
+ rank = JOB_UPP_MEDIC
+ skills = /datum/skills/military/survivor/upp_medic
+
+/datum/equipment_preset/survivor/upp/medic/load_gear(mob/living/carbon/human/new_human)
+ var/obj/item/clothing/under/marine/veteran/UPP/medic/uniform = new()
+ var/random_number = rand(1,2)
+ switch(random_number)
+ if(1)
+ uniform.roll_suit_jacket(new_human)
+ if(2)
+ uniform.roll_suit_sleeves(new_human)
+ new_human.equip_to_slot_or_del(uniform, WEAR_BODY)
+ new_human.equip_to_slot_or_del(new/obj/item/clothing/glasses/hud/health(new_human), WEAR_EYES)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/upp/partial(new_human), WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/medic/upp(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher/mini(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/device/healthanalyzer(new_human), WEAR_IN_BACK)
+ spawn_random_upp_armor(new_human)
+ add_upp_weapon(new_human)
+ spawn_random_upp_headgear(new_human)
+
+ ..()
+// /obj/effect/landmark/survivor_spawner/upp_specialist
+//crashlanding-upp-bar.dmm
+/datum/equipment_preset/survivor/upp/specialist
+ name = "Survivor - UPP Specialist"
+ assignment = JOB_UPP_SPECIALIST
+ rank = JOB_UPP_SPECIALIST
+ paygrade = "UE4"
+ skills = /datum/skills/military/survivor/upp_spec
+
+/datum/equipment_preset/survivor/upp/specialist/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/UPP/heavy(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/UPP (new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/heavy (new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar(new_human), WEAR_IN_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/type71/flamer(new_human), WEAR_L_HAND)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/t73(new_human), WEAR_WAIST)
+
+ ..()
+//crashlanding-upp-bar.dmm
+// /obj/effect/landmark/survivor_spawner/squad_leader
+/datum/equipment_preset/survivor/upp/squad_leader
+ name = "Survivor - UPP Squad Leader"
+ paygrade = "UE5"
+ assignment = JOB_UPP_LEADER
+ rank = JOB_UPP_LEADER
+ languages = list(LANGUAGE_RUSSIAN, LANGUAGE_ENGLISH, LANGUAGE_GERMAN, LANGUAGE_CHINESE)
+ role_comm_title = "173/RECON SL"
+ skills = /datum/skills/military/survivor/upp_sl
+
+/datum/equipment_preset/survivor/upp/squad_leader/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/UPP/officer (new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP (new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar(new_human), WEAR_IN_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap/beret(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/revolver(new_human), WEAR_WAIST)
+ add_upp_weapon(new_human)
+
+ ..()
+
+//it's used on all of the above in their spawner.
+/datum/equipment_preset/synth/survivor/upp
+ name = "Survivor - Synthetic - UPP Synth"
+ flags = EQUIPMENT_PRESET_EXTRA
+ languages = ALL_SYNTH_LANGUAGES_UPP
+ assignment = JOB_UPP_COMBAT_SYNTH
+ rank = JOB_UPP_COMBAT_SYNTH
+ faction = FACTION_UPP
+ faction_group = list(FACTION_UPP, FACTION_SURVIVOR)
+ skills = /datum/skills/colonial_synthetic
+ paygrade = "SYN"
+ idtype = /obj/item/card/id/dogtag
+ role_comm_title = "173/RECON Syn"
+
+/datum/equipment_preset/synth/survivor/upp/load_gear(mob/living/carbon/human/new_human)
+ var/obj/item/clothing/under/marine/veteran/UPP/medic/uniform = new()
+ var/random_number = rand(1,2)
+ switch(random_number)
+ if(1)
+ uniform.roll_suit_jacket(new_human)
+ if(2)
+ uniform.roll_suit_sleeves(new_human)
+ new_human.equip_to_slot_or_del(uniform, WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap/beret, WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/screwdriver, WEAR_R_EAR)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/recon, WEAR_L_EAR)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/upp, WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/roller, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/device/multitool, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/stack/cable_coil, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/small_stack, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/device/healthanalyzer, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/webbing, WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/device/flashlight, WEAR_J_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/upp/partial, WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/uppsynth, WEAR_R_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET)
diff --git a/code/modules/gear_presets/survivors/trijent/preset_trijent.dm b/code/modules/gear_presets/survivors/trijent/preset_trijent.dm
new file mode 100644
index 000000000000..e74f3258db6d
--- /dev/null
+++ b/code/modules/gear_presets/survivors/trijent/preset_trijent.dm
@@ -0,0 +1,67 @@
+/datum/equipment_preset/survivor/chaplain/trijent
+ name = "Survivor - Trijent Chaplain"
+ assignment = "Trijent Chaplain"
+
+/datum/equipment_preset/survivor/chaplain/trijent/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/nun(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/nun_hood(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/holidaypriest(new_human), WEAR_JACKET)
+ ..()
+
+/datum/equipment_preset/survivor/security/trijent
+ name = "Survivor - Trijent Security Guard"
+ assignment = "Trijent Dam Security Guard"
+
+/datum/equipment_preset/survivor/security/trijent/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/head_of_security/navyblue(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/marine/mp/mpcap(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/det_suit/black(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
+ ..()
+
+/datum/equipment_preset/survivor/doctor/trijent
+ name = "Survivor - Trijent Doctor"
+ assignment = "Trijent Dam Doctor"
+
+/datum/equipment_preset/survivor/doctor/trijent/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/blue(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/blue(new_human), WEAR_HEAD)
+ ..()
+
+/datum/equipment_preset/survivor/trucker/trijent
+ name = "Survivor - Trijent Dam Heavy Vehicle Operator"
+ assignment = "Trijent Dam Heavy Vehicle Operator"
+ skills = /datum/skills/civilian/survivor/trucker
+
+/datum/equipment_preset/survivor/trucker/trijent/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/weldingtool/hugetank(new_human), WEAR_IN_BACK)
+ ..()
+
+/datum/equipment_preset/survivor/engineer/trijent/hydro
+ name = "Survivor - Hydro Electric Engineer"
+ assignment = "Hydro Electric Engineer"
+
+/datum/equipment_preset/survivor/engineer/trijent/hydro/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat(new_human), WEAR_HEAD)
+ ..()
+
+/datum/equipment_preset/survivor/engineer/trijent
+ name = "Survivor - Dam Maintenance Technician"
+ assignment = "Dam Maintenance Technician"
+
+/datum/equipment_preset/survivor/engineer/trijent/load_gear(mob/living/carbon/human/new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/engi(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest(new_human), WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/orange(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
+ ..()
diff --git a/code/modules/gear_presets/synths.dm b/code/modules/gear_presets/synths.dm
index 51b41c1387af..dc5d3b7217c8 100644
--- a/code/modules/gear_presets/synths.dm
+++ b/code/modules/gear_presets/synths.dm
@@ -455,97 +455,6 @@
survivor_variant = ENGINEERING_SURVIVOR
-/datum/equipment_preset/synth/survivor/upp
- name = "Survivor - Synthetic - UPP Synth"
- flags = EQUIPMENT_PRESET_EXTRA
- languages = ALL_SYNTH_LANGUAGES_UPP
- assignment = JOB_UPP_COMBAT_SYNTH
- rank = JOB_UPP_COMBAT_SYNTH
- faction = FACTION_UPP
- faction_group = list(FACTION_UPP, FACTION_SURVIVOR)
- skills = /datum/skills/colonial_synthetic
- paygrade = "SYN"
- idtype = /obj/item/card/id/dogtag
- role_comm_title = "UPP 173Rd RECON Syn"
-
-/datum/equipment_preset/synth/survivor/upp/load_gear(mob/living/carbon/human/new_human)
- var/obj/item/clothing/under/marine/veteran/UPP/medic/uniform = new()
- var/random_number = rand(1,2)
- switch(random_number)
- if(1)
- uniform.roll_suit_jacket(new_human)
- if(2)
- uniform.roll_suit_sleeves(new_human)
- new_human.equip_to_slot_or_del(uniform, WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap/beret, WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/tool/screwdriver, WEAR_R_EAR)
- new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/recon, WEAR_L_EAR)
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/upp, WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/roller, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/device/multitool, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/device/radio, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/stack/cable_coil, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/small_stack, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/device/healthanalyzer, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/webbing, WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/device/flashlight, WEAR_J_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/upp/partial, WEAR_WAIST)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/uppsynth, WEAR_R_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET)
-
-/datum/equipment_preset/synth/survivor/pmc
- name = "Survivor - Synthetic - PMC Support Synth"
- faction = FACTION_SURVIVOR
- faction_group = list(FACTION_SURVIVOR)
- access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_COMMAND)
- idtype = /obj/item/card/id/pmc
- assignment = JOB_PMC_SYNTH
- rank = JOB_PMC_SYNTH
- role_comm_title = "WY Syn"
-
-/datum/equipment_preset/synth/survivor/pmc/load_race(mob/living/carbon/human/new_human)
- new_human.set_species(SYNTH_GEN_THREE)
-
-/datum/equipment_preset/synth/survivor/pmc/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/pmc, WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/surg_vest/equipped, WEAR_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/pmc/light/synth, WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/weapon/telebaton, WEAR_IN_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/nailgun, WEAR_IN_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/nailgun, WEAR_IN_JACKET)
-
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc, WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/pmc/command/hvh, WEAR_L_EAR)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/night/experimental_mesons, WEAR_EYES)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/pmc, WEAR_FACE)
-
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/pmc, WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/veteran/pmc/knife, WEAR_FEET)
-
- new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/smartpack/white, WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/roller, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/roller/surgical, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher/mini, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator/upgraded, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/tool/crew_monitor, WEAR_IN_BACK)
-
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/full/dutch, WEAR_WAIST)
- new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/smg/nailgun/compact, WEAR_J_STORE)
-
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/tactical, WEAR_L_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/tool/screwdriver/tactical, WEAR_IN_L_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical, WEAR_IN_L_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/tool/wirecutters/tactical, WEAR_IN_L_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/tool/wrench, WEAR_IN_L_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/stack/cable_coil, WEAR_IN_L_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/stack/cable_coil, WEAR_IN_L_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/device/multitool, WEAR_IN_L_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/tool/weldingtool/hugetank, WEAR_IN_L_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/construction/full_barbed_wire, WEAR_R_STORE)
-
-
//*****************************************************************************************************/
/datum/equipment_preset/synth/working_joe
diff --git a/code/modules/gear_presets/upp.dm b/code/modules/gear_presets/upp.dm
index 39a6c98aea0f..1322cd79c4f3 100644
--- a/code/modules/gear_presets/upp.dm
+++ b/code/modules/gear_presets/upp.dm
@@ -64,7 +64,7 @@
assignment = JOB_UPP
rank = JOB_UPP
role_comm_title = "Sol"
- paygrade = "UE1"
+ paygrade = "UE2"
/datum/equipment_preset/upp/soldier/load_gear(mob/living/carbon/human/new_human)
//TODO: add backpacks and satchels
@@ -79,7 +79,7 @@
new_human.equip_to_slot_or_del(new /obj/item/device/binoculars, WEAR_IN_JACKET)
//limbs
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS)
if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf/tacticalmask/green, WEAR_FACE)
@@ -148,7 +148,7 @@
list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY),
list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY),
list("UM5 Personal Armor", 0, /obj/item/clothing/suit/storage/marine/faction/UPP, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY),
- list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
+ list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
list("Headset", 0, /obj/item/device/radio/headset/distress/UPP, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY),
list("Ration", 0, /obj/item/reagent_container/food/snacks/upp, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY),
list("Combat Pack", 0, /obj/item/storage/backpack/lightpack/upp, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_MANDATORY),
@@ -230,7 +230,7 @@
assignment = JOB_UPP_MEDIC
rank = JOB_UPP_MEDIC
role_comm_title = "Med"
- paygrade = "UE3M"
+ paygrade = "UE3"
/datum/equipment_preset/upp/medic/load_gear(mob/living/carbon/human/new_human)
//back
@@ -256,7 +256,7 @@
new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/upp/full, WEAR_WAIST)
//limbs
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS)
//póckets
var/obj/item/storage/pouch/magazine/large/ppouch = new()
new_human.equip_to_slot_or_del(ppouch, WEAR_R_STORE)
@@ -277,7 +277,7 @@
list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY),
list("Medic Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP/medic, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY),
list("UL6 Personal Armor", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/support, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY),
- list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
+ list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
list("Headset", 0, /obj/item/device/radio/headset/distress/UPP/medic, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY),
list("Ration", 0, /obj/item/reagent_container/food/snacks/upp, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY),
list("Combat Pack", 0, /obj/item/storage/backpack/lightpack, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_MANDATORY),
@@ -301,7 +301,7 @@
list("Medical Pouch (Utilities)", 0, /obj/item/storage/pouch/medical/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Medical Pouch (Pills)", 0, /obj/item/storage/pouch/medical/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Medium General Pouch", 0, /obj/item/storage/pouch/general/medium, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
- list("Medkit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Medical Kit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Pistol Pouch", 0, /obj/item/storage/pouch/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
@@ -399,7 +399,7 @@
assignment = JOB_UPP_ENGI
rank = JOB_UPP_ENGI
role_comm_title = "Sap"
- paygrade = "UE3S"
+ paygrade = "UE3"
/datum/equipment_preset/upp/sapper/load_gear(mob/living/carbon/human/new_human)
//Sappers should have lots of gear and whatnot that helps them attack or siege marines
@@ -440,7 +440,7 @@
list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY),
list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY),
list("UM5 Personal Armor", 0, /obj/item/clothing/suit/storage/marine/faction/UPP, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY),
- list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
+ list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
list("Headset", 0, /obj/item/device/radio/headset/distress/UPP/cct, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY),
list("Welding Goggles", 0, /obj/item/clothing/glasses/welding, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_MANDATORY),
list("Ration", 0, /obj/item/reagent_container/food/snacks/upp, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY),
@@ -551,7 +551,7 @@
new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/heavy, WEAR_JACKET)
//limbs
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS)
//pockets
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/explosive/C4, WEAR_R_STORE)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/ert, WEAR_L_STORE)
@@ -579,7 +579,7 @@
list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY),
list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY),
list("UH7 Heavy Plated Armor", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/heavy, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY),
- list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/pmc, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
+ list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
list("Headset", 0, /obj/item/device/radio/headset/distress/UPP, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY),
list("Ration", 0, /obj/item/reagent_container/food/snacks/upp, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY),
list("Combat Pack", 0, /obj/item/storage/backpack/lightpack, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_MANDATORY),
@@ -678,7 +678,7 @@
new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/heavy, WEAR_JACKET)
//limbs
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS)
//pockets
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/explosive/C4, WEAR_R_STORE)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/ert, WEAR_L_STORE)
@@ -704,7 +704,7 @@
list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY),
list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY),
list("UH7 Heavy Plated Armor", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/heavy, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY),
- list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/pmc, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
+ list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
list("Headset", 0, /obj/item/device/radio/headset/distress/UPP, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY),
list("Ration", 0, /obj/item/reagent_container/food/snacks/upp, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY),
list("Combat Pack", 0, /obj/item/storage/backpack/lightpack, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_MANDATORY),
@@ -748,9 +748,813 @@
list("Essential Heavy Set", 0, /obj/effect/essentials_set/upp_heavy, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY),
list("SPECIAL AMMUNITION", 0, null, null, null),
- list("QYJ-72 Box Magazine (7.62x54mmR)", 15, /obj/item/ammo_magazine/pkp , null, VENDOR_ITEM_RECOMMENDED),
+ list("QYJ-72 Box Magazine (7.62x54mmR)", 15, /obj/item/ammo_magazine/pkp , null, VENDOR_ITEM_RECOMMENDED),
+
+ list("ATTACHMENTS (NONE FIT QYJ-72)", 0, null, null, null),
+ list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
+ list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR),
+ list("Laser Sight", 10, /obj/item/attachable/lasersight, null, VENDOR_ITEM_REGULAR),
+ list("Red-Dot Sight", 10, /obj/item/attachable/reddot, null, VENDOR_ITEM_REGULAR),
+ list("Reflex Sight", 10, /obj/item/attachable/reflex, null, VENDOR_ITEM_REGULAR),
+ list("Suppressor", 10, /obj/item/attachable/suppressor, null, VENDOR_ITEM_REGULAR),
+ list("Vertical Grip", 10, /obj/item/attachable/verticalgrip, null, VENDOR_ITEM_REGULAR),
+
+ list("EXPLOSIVES", 0, null, null, null),
+ list("Plastic Explosive", 5, /obj/item/explosive/plastic, null, VENDOR_ITEM_REGULAR),
+ list("Smoke Grenade", 5, /obj/item/explosive/grenade/smokebomb, null, VENDOR_ITEM_REGULAR),
+ list("Type 6 Shrapnel Grenade", 15, /obj/item/explosive/grenade/high_explosive/upp, null, VENDOR_ITEM_REGULAR),
+ list("Type 8 WP Grenade", 20, /obj/item/explosive/grenade/phosphorus/upp, null, VENDOR_ITEM_REGULAR),
+
+ list("UTILITIES", 0, null, null, null),
+ list("Brown Webbing Vest", 10, /obj/item/clothing/accessory/storage/black_vest/brown_vest, null, VENDOR_ITEM_RECOMMENDED),
+ list("Black Webbing Vest", 10, /obj/item/clothing/accessory/storage/black_vest, null, VENDOR_ITEM_RECOMMENDED),
+ list("Fire Extinguisher (Portable)", 5, /obj/item/tool/extinguisher/mini, null, VENDOR_ITEM_REGULAR),
+ list("Large General Pouch", 10, /obj/item/storage/pouch/general/large, null, VENDOR_ITEM_REGULAR),
+ list("Shoulder Holster", 10, /obj/item/clothing/accessory/storage/holster, null, VENDOR_ITEM_REGULAR),
+ list("Webbing", 10, /obj/item/clothing/accessory/storage/webbing, null, VENDOR_ITEM_REGULAR),
+ list("Drop Pouch", 10, /obj/item/clothing/accessory/storage/droppouch, null, VENDOR_ITEM_REGULAR),
+ )
+
+//*****************************************************************************************************/
+
+/datum/equipment_preset/upp/leader
+ name = "UPP Squad Leader"
+ flags = EQUIPMENT_PRESET_EXTRA
+
+ skills = /datum/skills/upp/SL
+ assignment = JOB_UPP_LEADER
+ rank = JOB_UPP_LEADER
+ role_comm_title = "SL"
+ paygrade = "UE6"
+
+/datum/equipment_preset/upp/leader/load_gear(mob/living/carbon/human/new_human)
+ var/UPPleadsidearm = rand(1,4)
+ //back
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/upp, WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher/mini, WEAR_IN_BACK) //0.66
+ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/phosphorus/upp, WEAR_IN_BACK) //1.33
+ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/phosphorus/upp, WEAR_IN_BACK) //2
+ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/phosphorus/upp, WEAR_IN_BACK) //2.66
+ new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/upp, WEAR_IN_BACK) //3.33
+ new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/upp, WEAR_IN_BACK) //4
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_BACK) //5
+ //face
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/command, WEAR_L_EAR)
+ //head
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap/beret, WEAR_HEAD)
+ //body
+ var/obj/item/clothing/under/marine/veteran/UPP/UPP = new()
+ var/obj/item/clothing/accessory/storage/webbing/W = new()
+ UPP.attach_accessory(new_human, W)
+ new_human.equip_to_slot_or_del(UPP, WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71, WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/heavy, WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range, WEAR_IN_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/type71/flamer, WEAR_J_STORE)
+ //waist
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/t73, WEAR_WAIST)
+ switch(UPPleadsidearm)
+ if(1 to 2) // 50%
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/t73, WEAR_WAIST)
+ if(3) //25%
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/np92, WEAR_WAIST)
+ if(4) //25%
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/revolver, WEAR_WAIST)
+ //limbs
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS)
+ //pockets
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/flamertank, WEAR_R_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher, WEAR_IN_R_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher, WEAR_IN_R_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/ert, WEAR_L_STORE)
+
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf/tacticalmask/green, WEAR_FACE)
+
+/datum/equipment_preset/upp/leader/get_antag_clothing_equipment()
+ return list(
+ list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null),
+ list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY),
+ list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY),
+ list("UH7 Heavy Plated Armor", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/heavy, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY),
+ list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
+ list("Headset", 0, /obj/item/device/radio/headset/distress/UPP/command, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY),
+ list("Ration", 0, /obj/item/reagent_container/food/snacks/upp, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY),
+ list("Combat Pack", 0, /obj/item/storage/backpack/lightpack/upp, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_MANDATORY),
+
+ list("HELMET (CHOOSE 1)", 0, null, null, null),
+ list("Armored Beret", 0, /obj/item/clothing/head/uppcap/beret, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR),
+ list("UM4 Helmet", 0, /obj/item/clothing/head/helmet/marine/veteran/UPP, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR),
+
+ list("BELT (CHOOSE 1)", 0, null, null, null),
+ list("Type 41 Ammo Load Rig", 0, /obj/item/storage/belt/marine/upp, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR),
+ list("Type 41 Pistol Holster Rig", 0, /obj/item/storage/belt/gun/m4a3, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED),
+
+ list("POUCHES (CHOOSE 2)", 0, null, null, null),
+ list("Auto-Injector Pouch", 0, /obj/item/storage/pouch/autoinjector, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
+ list("Bayonet Sheath", 0, /obj/item/storage/pouch/bayonet/upp, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Explosive Pouch", 0, /obj/item/storage/pouch/explosive, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("First-Aid Pouch (Refillable Injectors)", 0, /obj/item/storage/pouch/firstaid/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("First-Aid Pouch (Splints, Gauze, Ointment)", 0, /obj/item/storage/pouch/firstaid/full/alternate, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("First-Aid Pouch (Pill Packets)", 0, /obj/item/storage/pouch/firstaid/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
+ list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Large Magazine Pouch", 0, /obj/item/storage/pouch/magazine/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
+ list("Medium General Pouch", 0, /obj/item/storage/pouch/general/medium, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Medical Kit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Pistol Pouch", 0, /obj/item/storage/pouch/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+
+ list("ATTACHMENT (CHOOSE 1)", 0, null, null, null),
+ list("Angled Grip", 0, /obj/item/attachable/angledgrip, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Extended Barrel", 0, /obj/item/attachable/extended_barrel, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Laser Sight", 0, /obj/item/attachable/lasersight, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Red-Dot Sight", 0, /obj/item/attachable/reddot, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Reflex Sight", 0, /obj/item/attachable/reflex, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Suppressor", 0, /obj/item/attachable/suppressor, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Vertical Grip", 0, /obj/item/attachable/verticalgrip, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+
+ list("MASK (CHOOSE 1)", 0, null, null, null),
+ list("Gas Mask", 0, /obj/item/clothing/mask/gas, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR),
+ list("Heat Absorbent Coif", 0, /obj/item/clothing/mask/rebreather/scarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR)
+ )
+
+/datum/equipment_preset/upp/leader/get_antag_gear_equipment()
+ return list(
+ list("SQUAD LEADER SET (MANDATORY)", 0, null, null, null),
+ list("Essential SL Set", 0, /obj/effect/essentials_set/leader/upp, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY),
+
+ list("GENERAL SUPPLIES", 0, null, null, null),
+ list("Whistle", 5, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR),
+
+ list("ENGINEERING SUPPLIES", 0, null, null, null),
+ list("Entrenching Tool", 2, /obj/item/tool/shovel/etool, null, VENDOR_ITEM_REGULAR),
+ list("Insulated Gloves", 3, /obj/item/clothing/gloves/yellow, null, VENDOR_ITEM_REGULAR),
+ list("Metal x10", 5, /obj/item/stack/sheet/metal/small_stack, null, VENDOR_ITEM_RECOMMENDED),
+ list("Plasteel x10", 7, /obj/item/stack/sheet/plasteel/small_stack, null, VENDOR_ITEM_RECOMMENDED),
+ list("Sandbags x25", 10, /obj/item/stack/sandbags_empty/half, null, VENDOR_ITEM_RECOMMENDED),
+ list("Tools Pouch (Full)", 5, /obj/item/storage/pouch/tools/full, null, VENDOR_ITEM_REGULAR),
+ list("Welding Goggles", 5, /obj/item/clothing/glasses/welding, null, VENDOR_ITEM_REGULAR),
+
+ list("MEDICAL SUPPLIES", 0, null, null, null),
+ list("Burn Kit", 2, /obj/item/stack/medical/advanced/ointment, null, VENDOR_ITEM_REGULAR),
+ list("Trauma Kit", 2, /obj/item/stack/medical/advanced/bruise_pack, null, VENDOR_ITEM_REGULAR),
+ list("Advanced Firstaid Kit", 12, /obj/item/storage/firstaid/adv, null, VENDOR_ITEM_REGULAR),
+ list("Medical Splints", 1, /obj/item/stack/medical/splint, null, VENDOR_ITEM_REGULAR),
+
+ list("Injector (Bicaridine)", 1, /obj/item/reagent_container/hypospray/autoinjector/bicaridine, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Dexalin+)", 1, /obj/item/reagent_container/hypospray/autoinjector/dexalinp, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Inaprovaline)", 1, /obj/item/reagent_container/hypospray/autoinjector/inaprovaline, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Kelotane)", 1, /obj/item/reagent_container/hypospray/autoinjector/kelotane, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Oxycodone)", 2, /obj/item/reagent_container/hypospray/autoinjector/oxycodone, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Tramadol)", 1, /obj/item/reagent_container/hypospray/autoinjector/tramadol, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Tricord)", 1, /obj/item/reagent_container/hypospray/autoinjector/tricord, null, VENDOR_ITEM_REGULAR),
+
+ list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR),
+ list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY),
+
+ list("SPECIAL AMMUNITION", 0, null, null, null),
+ list("Type 71 AP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/ap , null, VENDOR_ITEM_REGULAR),
+
+ list("ATTACHMENTS", 0, null, null, null),
+ list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
+ list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR),
+ list("Laser Sight", 10, /obj/item/attachable/lasersight, null, VENDOR_ITEM_REGULAR),
+ list("Red-Dot Sight", 10, /obj/item/attachable/reddot, null, VENDOR_ITEM_REGULAR),
+ list("Reflex Sight", 10, /obj/item/attachable/reflex, null, VENDOR_ITEM_REGULAR),
+ list("Suppressor", 10, /obj/item/attachable/suppressor, null, VENDOR_ITEM_REGULAR),
+ list("Vertical Grip", 10, /obj/item/attachable/verticalgrip, null, VENDOR_ITEM_REGULAR),
+
+ list("EXPLOSIVES", 0, null, null, null),
+ list("Plastic Explosive", 5, /obj/item/explosive/plastic, null, VENDOR_ITEM_REGULAR),
+ list("Smoke Grenade", 5, /obj/item/explosive/grenade/smokebomb, null, VENDOR_ITEM_REGULAR),
+ list("Type 6 Shrapnel Grenade", 15, /obj/item/explosive/grenade/high_explosive/upp, null, VENDOR_ITEM_REGULAR),
+ list("Type 8 WP Grenade", 20, /obj/item/explosive/grenade/phosphorus/upp, null, VENDOR_ITEM_REGULAR),
+
+ list("UTILITIES", 0, null, null, null),
+ list("Brown Webbing Vest", 10, /obj/item/clothing/accessory/storage/black_vest/brown_vest, null, VENDOR_ITEM_RECOMMENDED),
+ list("Black Webbing Vest", 10, /obj/item/clothing/accessory/storage/black_vest, null, VENDOR_ITEM_RECOMMENDED),
+ list("Fire Extinguisher (Portable)", 5, /obj/item/tool/extinguisher/mini, null, VENDOR_ITEM_REGULAR),
+ list("Large General Pouch", 10, /obj/item/storage/pouch/general/large, null, VENDOR_ITEM_REGULAR),
+ list("Shoulder Holster", 10, /obj/item/clothing/accessory/storage/holster, null, VENDOR_ITEM_REGULAR),
+ list("Webbing", 10, /obj/item/clothing/accessory/storage/webbing, null, VENDOR_ITEM_REGULAR),
+ list("Drop Pouch", 10, /obj/item/clothing/accessory/storage/droppouch, null, VENDOR_ITEM_REGULAR),
+ )
+
+//*****************************************************************************************************/
+
+/datum/equipment_preset/upp/military_police
+ name = "UPP Military Police"
+ flags = EQUIPMENT_PRESET_EXTRA
+
+ skills = /datum/skills/upp/military_police
+ assignment = JOB_UPP_POLICE
+ rank = JOB_UPP_POLICE
+ role_comm_title = "MP"
+ paygrade = "UE6"
+
+/datum/equipment_preset/upp/military_police/load_gear(mob/living/carbon/human/new_human)
+ //back
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/upp, WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/upp, WEAR_IN_BACK)
+ //face
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP, WEAR_L_EAR)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/pmc/upp, WEAR_FACE)
+ //head
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap/beret, WEAR_HEAD)
+ //uniform
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/UPP/mp, WEAR_BODY)
+ //jacket
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/mp, WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/device/binoculars, WEAR_IN_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/revolver, WEAR_J_STORE)
+ //waist
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/security/MP/UPP/full, WEAR_WAIST)
+ //limbs
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS)
+ //pockets
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/autoinjector/full, WEAR_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/medium, WEAR_R_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/device/taperecorder, WEAR_IN_R_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/stack/medical/bruise_pack, WEAR_IN_R_STORE)
+
+/datum/equipment_preset/upp/military_police/get_antag_clothing_equipment()
+ return list(
+ list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null),
+ list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY),
+ list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP/mp, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY),
+ list("UL4 camouflaged jacket", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/mp, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY),
+ list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
+ list("Headset", 0, /obj/item/device/radio/headset/distress/UPP, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY),
+ list("Ration", 0, /obj/item/reagent_container/food/snacks/upp, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY),
+ list("Combat Pack", 0, /obj/item/storage/backpack/lightpack/upp, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_MANDATORY),
+
+ list("HELMET (CHOOSE 1)", 0, null, null, null),
+ list("Armored Beret", 0, /obj/item/clothing/head/uppcap/beret, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR),
+ list("UM4 Helmet", 0, /obj/item/clothing/head/helmet/marine/veteran/UPP, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_RECOMMENDED),
+
+ list("ARMOR (CHOOSE 1)", 0, null, null, null),
+ list("UL4 camouflaged jacket", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/mp, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR),
+ list("UL6 Personal Armor", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/support, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY),
+
+ list("BELT (CHOOSE 1)", 0, null, null, null),
+ list("Type 41 Ammo Load Rig", 0, /obj/item/storage/belt/marine/upp, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR),
+ list("Type 41 Pistol Holster Rig", 0, /obj/item/storage/belt/gun/m4a3, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR),
+ list("Type 43 Military Police Rig", 0, /obj/item/storage/belt/security/MP/UPP/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED),
+
+ list("POUCHES (CHOOSE 2)", 0, null, null, null),
+ list("Auto-Injector Pouch", 0, /obj/item/storage/pouch/autoinjector, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
+ list("Bayonet Sheath", 0, /obj/item/storage/pouch/bayonet/upp, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Explosive Pouch", 0, /obj/item/storage/pouch/explosive, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("First-Aid Pouch (Refillable Injectors)", 0, /obj/item/storage/pouch/firstaid/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("First-Aid Pouch (Splints, Gauze, Ointment)", 0, /obj/item/storage/pouch/firstaid/full/alternate, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("First-Aid Pouch (Pill Packets)", 0, /obj/item/storage/pouch/firstaid/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
+ list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Large Magazine Pouch", 0, /obj/item/storage/pouch/magazine/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
+ list("Medium General Pouch", 0, /obj/item/storage/pouch/general/medium, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Medical Kit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Pistol Pouch", 0, /obj/item/storage/pouch/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+
+ list("ATTACHMENT (CHOOSE 1)", 0, null, null, null),
+ list("Angled Grip", 0, /obj/item/attachable/angledgrip, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Extended Barrel", 0, /obj/item/attachable/extended_barrel, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Laser Sight", 0, /obj/item/attachable/lasersight, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Red-Dot Sight", 0, /obj/item/attachable/reddot, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Reflex Sight", 0, /obj/item/attachable/reflex, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Suppressor", 0, /obj/item/attachable/suppressor, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Vertical Grip", 0, /obj/item/attachable/verticalgrip, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+
+ list("MASK (CHOOSE 1)", 0, null, null, null),
+ list("Gas Mask", 0, /obj/item/clothing/mask/gas/pmc/upp, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR),
+ list("Heat Absorbent Coif", 0, /obj/item/clothing/mask/rebreather/scarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR)
+ )
+
+/datum/equipment_preset/upp/military_police/get_antag_gear_equipment()
+ return list(
+ list("SQUAD LEADER SET (MANDATORY)", 0, null, null, null),
+ list("Essential SL Set", 0, /obj/effect/essentials_set/leader/upp, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY),
+
+ list("GENERAL SUPPLIES", 0, null, null, null),
+ list("Whistle", 5, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR),
+
+ list("ENGINEERING SUPPLIES", 0, null, null, null),
+ list("Entrenching Tool", 2, /obj/item/tool/shovel/etool, null, VENDOR_ITEM_REGULAR),
+ list("Insulated Gloves", 3, /obj/item/clothing/gloves/yellow, null, VENDOR_ITEM_REGULAR),
+ list("Metal x10", 5, /obj/item/stack/sheet/metal/small_stack, null, VENDOR_ITEM_RECOMMENDED),
+ list("Plasteel x10", 7, /obj/item/stack/sheet/plasteel/small_stack, null, VENDOR_ITEM_RECOMMENDED),
+ list("Sandbags x25", 10, /obj/item/stack/sandbags_empty/half, null, VENDOR_ITEM_RECOMMENDED),
+ list("Tools Pouch (Full)", 5, /obj/item/storage/pouch/tools/full, null, VENDOR_ITEM_REGULAR),
+ list("Welding Goggles", 5, /obj/item/clothing/glasses/welding, null, VENDOR_ITEM_REGULAR),
+
+ list("MEDICAL SUPPLIES", 0, null, null, null),
+ list("Burn Kit", 2, /obj/item/stack/medical/advanced/ointment, null, VENDOR_ITEM_REGULAR),
+ list("Trauma Kit", 2, /obj/item/stack/medical/advanced/bruise_pack, null, VENDOR_ITEM_REGULAR),
+ list("Advanced Firstaid Kit", 12, /obj/item/storage/firstaid/adv, null, VENDOR_ITEM_REGULAR),
+ list("Medical Splints", 1, /obj/item/stack/medical/splint, null, VENDOR_ITEM_REGULAR),
+
+ list("Injector (Bicaridine)", 1, /obj/item/reagent_container/hypospray/autoinjector/bicaridine, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Dexalin+)", 1, /obj/item/reagent_container/hypospray/autoinjector/dexalinp, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Inaprovaline)", 1, /obj/item/reagent_container/hypospray/autoinjector/inaprovaline, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Kelotane)", 1, /obj/item/reagent_container/hypospray/autoinjector/kelotane, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Oxycodone)", 2, /obj/item/reagent_container/hypospray/autoinjector/oxycodone, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Tramadol)", 1, /obj/item/reagent_container/hypospray/autoinjector/tramadol, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Tricord)", 1, /obj/item/reagent_container/hypospray/autoinjector/tricord, null, VENDOR_ITEM_REGULAR),
+
+ list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR),
+ list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY),
+
+ list("SPECIAL AMMUNITION", 0, null, null, null),
+ list("Type 71 AP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/ap , null, VENDOR_ITEM_REGULAR),
+
+ list("ATTACHMENTS", 0, null, null, null),
+ list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
+ list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR),
+ list("Laser Sight", 10, /obj/item/attachable/lasersight, null, VENDOR_ITEM_REGULAR),
+ list("Red-Dot Sight", 10, /obj/item/attachable/reddot, null, VENDOR_ITEM_REGULAR),
+ list("Reflex Sight", 10, /obj/item/attachable/reflex, null, VENDOR_ITEM_REGULAR),
+ list("Suppressor", 10, /obj/item/attachable/suppressor, null, VENDOR_ITEM_REGULAR),
+ list("Vertical Grip", 10, /obj/item/attachable/verticalgrip, null, VENDOR_ITEM_REGULAR),
+
+ list("EXPLOSIVES", 0, null, null, null),
+ list("Plastic Explosive", 5, /obj/item/explosive/plastic, null, VENDOR_ITEM_REGULAR),
+ list("Smoke Grenade", 5, /obj/item/explosive/grenade/smokebomb, null, VENDOR_ITEM_REGULAR),
+ list("Type 6 Shrapnel Grenade", 15, /obj/item/explosive/grenade/high_explosive/upp, null, VENDOR_ITEM_REGULAR),
+ list("Type 8 WP Grenade", 20, /obj/item/explosive/grenade/phosphorus/upp, null, VENDOR_ITEM_REGULAR),
+
+ list("UTILITIES", 0, null, null, null),
+ list("Brown Webbing Vest", 10, /obj/item/clothing/accessory/storage/black_vest/brown_vest, null, VENDOR_ITEM_RECOMMENDED),
+ list("Black Webbing Vest", 10, /obj/item/clothing/accessory/storage/black_vest, null, VENDOR_ITEM_RECOMMENDED),
+ list("Fire Extinguisher (Portable)", 5, /obj/item/tool/extinguisher/mini, null, VENDOR_ITEM_REGULAR),
+ list("Large General Pouch", 10, /obj/item/storage/pouch/general/large, null, VENDOR_ITEM_REGULAR),
+ list("Shoulder Holster", 10, /obj/item/clothing/accessory/storage/holster, null, VENDOR_ITEM_REGULAR),
+ list("Webbing", 10, /obj/item/clothing/accessory/storage/webbing, null, VENDOR_ITEM_REGULAR),
+ list("Drop Pouch", 10, /obj/item/clothing/accessory/storage/droppouch, null, VENDOR_ITEM_REGULAR),
+ )
+
+//*****************************************************************************************************/
+
+/datum/equipment_preset/upp/officer
+ name = "UPP Lieutenant"
+ flags = EQUIPMENT_PRESET_EXTRA
+
+ skills = /datum/skills/upp/officer
+ assignment = JOB_UPP_LT_OFFICER
+ rank = JOB_UPP_LT_OFFICER
+ role_comm_title = "Lt."
+ paygrade = "UO1"
+
+/datum/equipment_preset/upp/officer/load_gear(mob/living/carbon/human/new_human)
+ //back
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/upp, WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/upp, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/device/motiondetector/hacked, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/device/megaphone, WEAR_IN_BACK)
+ //face
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/command, WEAR_L_EAR)
+ //head
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap/beret, WEAR_HEAD)
+ //uniform
+ var/obj/item/clothing/under/marine/veteran/UPP/officer/M = new()
+ var/obj/item/clothing/accessory/storage/webbing/W = new()
+ M.attach_accessory(new_human, W)
+ new_human.equip_to_slot_or_del(M, WEAR_BODY)
+ for(var/i in 1 to W.hold.storage_slots)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_ACCESSORY)
+
+ //jacket
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/officer, WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range, WEAR_IN_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/stack/medical/bruise_pack, WEAR_IN_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/type71/flamer/leader, WEAR_J_STORE)
+ //waist
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/np92, WEAR_WAIST)
+ //limbs
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS)
+ //pockets
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large, WEAR_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/phosphorus/upp, WEAR_IN_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/high_explosive/upp, WEAR_IN_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/high_explosive/upp, WEAR_IN_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/autoinjector/full, WEAR_R_STORE)
+
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf/tacticalmask/green, WEAR_FACE)
+
+/datum/equipment_preset/upp/officer/get_antag_clothing_equipment()
+ return list(
+ list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null),
+ list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY),
+ list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP/officer, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY),
+ list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
+ list("Headset", 0, /obj/item/device/radio/headset/distress/UPP/command, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY),
+ list("Ration", 0, /obj/item/reagent_container/food/snacks/upp, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY),
+ list("Combat Pack", 0, /obj/item/storage/backpack/lightpack/upp, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_MANDATORY),
+
+ list("HELMET (CHOOSE 1)", 0, null, null, null),
+ list("Armored Beret", 0, /obj/item/clothing/head/uppcap/beret, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR),
+ list("UM4 Helmet", 0, /obj/item/clothing/head/helmet/marine/veteran/UPP, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_RECOMMENDED),
+
+ list("ARMOR (CHOOSE 1)", 0, null, null, null),
+ list("UL4 officer jacket", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/officer, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR),
+ list("UL6 Personal Armor", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/support, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY),
+
+ list("BELT (CHOOSE 1)", 0, null, null, null),
+ list("Type 41 Ammo Load Rig", 0, /obj/item/storage/belt/marine/upp, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR),
+ list("Type 73 Pistol Holster Rig", 0, /obj/item/storage/belt/gun/type47/t73, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED),
+
+ list("POUCHES (CHOOSE 2)", 0, null, null, null),
+ list("Auto-Injector Pouch", 0, /obj/item/storage/pouch/autoinjector, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
+ list("Bayonet Sheath", 0, /obj/item/storage/pouch/bayonet/upp, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Explosive Pouch", 0, /obj/item/storage/pouch/explosive, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("First-Aid Pouch (Refillable Injectors)", 0, /obj/item/storage/pouch/firstaid/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("First-Aid Pouch (Splints, Gauze, Ointment)", 0, /obj/item/storage/pouch/firstaid/full/alternate, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("First-Aid Pouch (Pill Packets)", 0, /obj/item/storage/pouch/firstaid/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
+ list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Large Magazine Pouch", 0, /obj/item/storage/pouch/magazine/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
+ list("Medium General Pouch", 0, /obj/item/storage/pouch/general/medium, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Medical Kit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Pistol Pouch", 0, /obj/item/storage/pouch/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+
+ list("ATTACHMENT (CHOOSE 1)", 0, null, null, null),
+ list("Angled Grip", 0, /obj/item/attachable/angledgrip, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Extended Barrel", 0, /obj/item/attachable/extended_barrel, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Laser Sight", 0, /obj/item/attachable/lasersight, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Red-Dot Sight", 0, /obj/item/attachable/reddot, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Reflex Sight", 0, /obj/item/attachable/reflex, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Suppressor", 0, /obj/item/attachable/suppressor, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Vertical Grip", 0, /obj/item/attachable/verticalgrip, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+
+ list("MASK (CHOOSE 1)", 0, null, null, null),
+ list("Gas Mask", 0, /obj/item/clothing/mask/gas/pmc/upp, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR),
+ list("Heat Absorbent Coif", 0, /obj/item/clothing/mask/rebreather/scarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR)
+ )
+
+/datum/equipment_preset/upp/officer/get_antag_gear_equipment()
+ return list(
+ list("SQUAD LEADER SET (MANDATORY)", 0, null, null, null),
+ list("Essential SL Set", 0, /obj/effect/essentials_set/leader/upp, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY),
+
+ list("GENERAL SUPPLIES", 0, null, null, null),
+ list("Whistle", 5, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR),
+
+ list("ENGINEERING SUPPLIES", 0, null, null, null),
+ list("Entrenching Tool", 2, /obj/item/tool/shovel/etool, null, VENDOR_ITEM_REGULAR),
+ list("Insulated Gloves", 3, /obj/item/clothing/gloves/yellow, null, VENDOR_ITEM_REGULAR),
+ list("Metal x10", 5, /obj/item/stack/sheet/metal/small_stack, null, VENDOR_ITEM_RECOMMENDED),
+ list("Plasteel x10", 7, /obj/item/stack/sheet/plasteel/small_stack, null, VENDOR_ITEM_RECOMMENDED),
+ list("Sandbags x25", 10, /obj/item/stack/sandbags_empty/half, null, VENDOR_ITEM_RECOMMENDED),
+ list("Tools Pouch (Full)", 5, /obj/item/storage/pouch/tools/full, null, VENDOR_ITEM_REGULAR),
+ list("Welding Goggles", 5, /obj/item/clothing/glasses/welding, null, VENDOR_ITEM_REGULAR),
+
+ list("MEDICAL SUPPLIES", 0, null, null, null),
+ list("Burn Kit", 2, /obj/item/stack/medical/advanced/ointment, null, VENDOR_ITEM_REGULAR),
+ list("Trauma Kit", 2, /obj/item/stack/medical/advanced/bruise_pack, null, VENDOR_ITEM_REGULAR),
+ list("Advanced Firstaid Kit", 12, /obj/item/storage/firstaid/adv, null, VENDOR_ITEM_REGULAR),
+ list("Medical Splints", 1, /obj/item/stack/medical/splint, null, VENDOR_ITEM_REGULAR),
+
+ list("Injector (Bicaridine)", 1, /obj/item/reagent_container/hypospray/autoinjector/bicaridine, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Dexalin+)", 1, /obj/item/reagent_container/hypospray/autoinjector/dexalinp, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Inaprovaline)", 1, /obj/item/reagent_container/hypospray/autoinjector/inaprovaline, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Kelotane)", 1, /obj/item/reagent_container/hypospray/autoinjector/kelotane, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Oxycodone)", 2, /obj/item/reagent_container/hypospray/autoinjector/oxycodone, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Tramadol)", 1, /obj/item/reagent_container/hypospray/autoinjector/tramadol, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Tricord)", 1, /obj/item/reagent_container/hypospray/autoinjector/tricord, null, VENDOR_ITEM_REGULAR),
+
+ list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR),
+ list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY),
+
+ list("SPECIAL AMMUNITION", 0, null, null, null),
+ list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
+
+ list("ATTACHMENTS", 0, null, null, null),
+ list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
+ list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR),
+ list("Laser Sight", 10, /obj/item/attachable/lasersight, null, VENDOR_ITEM_REGULAR),
+ list("Red-Dot Sight", 10, /obj/item/attachable/reddot, null, VENDOR_ITEM_REGULAR),
+ list("Reflex Sight", 10, /obj/item/attachable/reflex, null, VENDOR_ITEM_REGULAR),
+ list("Suppressor", 10, /obj/item/attachable/suppressor, null, VENDOR_ITEM_REGULAR),
+ list("Vertical Grip", 10, /obj/item/attachable/verticalgrip, null, VENDOR_ITEM_REGULAR),
+
+ list("EXPLOSIVES", 0, null, null, null),
+ list("Plastic Explosive", 5, /obj/item/explosive/plastic, null, VENDOR_ITEM_REGULAR),
+ list("Smoke Grenade", 5, /obj/item/explosive/grenade/smokebomb, null, VENDOR_ITEM_REGULAR),
+ list("Type 6 Shrapnel Grenade", 15, /obj/item/explosive/grenade/high_explosive/upp, null, VENDOR_ITEM_REGULAR),
+ list("Type 8 WP Grenade", 20, /obj/item/explosive/grenade/phosphorus/upp, null, VENDOR_ITEM_REGULAR),
+
+ list("UTILITIES", 0, null, null, null),
+ list("Brown Webbing Vest", 10, /obj/item/clothing/accessory/storage/black_vest/brown_vest, null, VENDOR_ITEM_RECOMMENDED),
+ list("Black Webbing Vest", 10, /obj/item/clothing/accessory/storage/black_vest, null, VENDOR_ITEM_RECOMMENDED),
+ list("Fire Extinguisher (Portable)", 5, /obj/item/tool/extinguisher/mini, null, VENDOR_ITEM_REGULAR),
+ list("Large General Pouch", 10, /obj/item/storage/pouch/general/large, null, VENDOR_ITEM_REGULAR),
+ list("Shoulder Holster", 10, /obj/item/clothing/accessory/storage/holster, null, VENDOR_ITEM_REGULAR),
+ list("Webbing", 10, /obj/item/clothing/accessory/storage/webbing, null, VENDOR_ITEM_REGULAR),
+ list("Drop Pouch", 10, /obj/item/clothing/accessory/storage/droppouch, null, VENDOR_ITEM_REGULAR),
+ )
+
+//*****************************************************************************************************/
+
+/datum/equipment_preset/upp/officer/senior
+ name = "UPP Senior Lieutenant"
+ assignment = JOB_UPP_SRLT_OFFICER
+ rank = JOB_UPP_SRLT_OFFICER
+ role_comm_title = "Sr-Lt."
+ paygrade = "UO2"
+
+/datum/equipment_preset/upp/officer/senior/load_gear(mob/living/carbon/human/new_human)
+ //back
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/upp, WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/upp, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/device/motiondetector/hacked, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/device/megaphone, WEAR_IN_BACK)
+ //face
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/command, WEAR_L_EAR)
+ //head
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap/beret, WEAR_HEAD)
+ //uniform
+ var/obj/item/clothing/under/marine/veteran/UPP/officer/M = new()
+ var/obj/item/clothing/accessory/storage/webbing/W = new()
+ M.attach_accessory(new_human, W)
+ new_human.equip_to_slot_or_del(M, WEAR_BODY)
+ for(var/i in 1 to W.hold.storage_slots)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_ACCESSORY)
+
+ //jacket
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/officer, WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range, WEAR_IN_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/stack/medical/bruise_pack, WEAR_IN_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/type71/flamer/leader, WEAR_J_STORE)
+ //waist
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/t73, WEAR_WAIST)
+ //limbs
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS)
+ //pockets
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large, WEAR_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/phosphorus/upp, WEAR_IN_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/high_explosive/upp, WEAR_IN_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/high_explosive/upp, WEAR_IN_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/autoinjector/full, WEAR_R_STORE)
+
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf/tacticalmask/green, WEAR_FACE)
+
+/datum/equipment_preset/upp/officer/senior/get_antag_clothing_equipment()
+ return list(
+ list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null),
+ list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY),
+ list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP/officer, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY),
+ list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
+ list("Headset", 0, /obj/item/device/radio/headset/distress/UPP/command, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY),
+ list("Ration", 0, /obj/item/reagent_container/food/snacks/upp, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY),
+ list("Combat Pack", 0, /obj/item/storage/backpack/lightpack/upp, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_MANDATORY),
+
+ list("HELMET (CHOOSE 1)", 0, null, null, null),
+ list("Armored Beret", 0, /obj/item/clothing/head/uppcap/beret, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR),
+ list("UM4 Helmet", 0, /obj/item/clothing/head/helmet/marine/veteran/UPP, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_RECOMMENDED),
+
+ list("ARMOR (CHOOSE 1)", 0, null, null, null),
+ list("UL4 officer jacket", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/officer, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR),
+ list("UL6 Personal Armor", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/support, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY),
+
+ list("BELT (CHOOSE 1)", 0, null, null, null),
+ list("Type 41 Ammo Load Rig", 0, /obj/item/storage/belt/marine/upp, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR),
+ list("Type 73 Pistol Holster Rig", 0, /obj/item/storage/belt/gun/type47/t73, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED),
+
+ list("POUCHES (CHOOSE 2)", 0, null, null, null),
+ list("Auto-Injector Pouch", 0, /obj/item/storage/pouch/autoinjector, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
+ list("Bayonet Sheath", 0, /obj/item/storage/pouch/bayonet/upp, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Explosive Pouch", 0, /obj/item/storage/pouch/explosive, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("First-Aid Pouch (Refillable Injectors)", 0, /obj/item/storage/pouch/firstaid/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("First-Aid Pouch (Splints, Gauze, Ointment)", 0, /obj/item/storage/pouch/firstaid/full/alternate, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("First-Aid Pouch (Pill Packets)", 0, /obj/item/storage/pouch/firstaid/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
+ list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Large Magazine Pouch", 0, /obj/item/storage/pouch/magazine/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
+ list("Medium General Pouch", 0, /obj/item/storage/pouch/general/medium, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Medical Kit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Pistol Pouch", 0, /obj/item/storage/pouch/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+
+ list("ATTACHMENT (CHOOSE 1)", 0, null, null, null),
+ list("Angled Grip", 0, /obj/item/attachable/angledgrip, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Extended Barrel", 0, /obj/item/attachable/extended_barrel, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Laser Sight", 0, /obj/item/attachable/lasersight, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Red-Dot Sight", 0, /obj/item/attachable/reddot, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Reflex Sight", 0, /obj/item/attachable/reflex, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Suppressor", 0, /obj/item/attachable/suppressor, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Vertical Grip", 0, /obj/item/attachable/verticalgrip, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+
+ list("MASK (CHOOSE 1)", 0, null, null, null),
+ list("Gas Mask", 0, /obj/item/clothing/mask/gas/pmc/upp, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR),
+ list("Heat Absorbent Coif", 0, /obj/item/clothing/mask/rebreather/scarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR)
+ )
+
+/datum/equipment_preset/upp/officer/senior/get_antag_gear_equipment()
+ return list(
+ list("SQUAD LEADER SET (MANDATORY)", 0, null, null, null),
+ list("Essential SL Set", 0, /obj/effect/essentials_set/leader/upp, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY),
+
+ list("GENERAL SUPPLIES", 0, null, null, null),
+ list("Whistle", 5, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR),
+
+ list("ENGINEERING SUPPLIES", 0, null, null, null),
+ list("Entrenching Tool", 2, /obj/item/tool/shovel/etool, null, VENDOR_ITEM_REGULAR),
+ list("Insulated Gloves", 3, /obj/item/clothing/gloves/yellow, null, VENDOR_ITEM_REGULAR),
+ list("Metal x10", 5, /obj/item/stack/sheet/metal/small_stack, null, VENDOR_ITEM_RECOMMENDED),
+ list("Plasteel x10", 7, /obj/item/stack/sheet/plasteel/small_stack, null, VENDOR_ITEM_RECOMMENDED),
+ list("Sandbags x25", 10, /obj/item/stack/sandbags_empty/half, null, VENDOR_ITEM_RECOMMENDED),
+ list("Tools Pouch (Full)", 5, /obj/item/storage/pouch/tools/full, null, VENDOR_ITEM_REGULAR),
+ list("Welding Goggles", 5, /obj/item/clothing/glasses/welding, null, VENDOR_ITEM_REGULAR),
+
+ list("MEDICAL SUPPLIES", 0, null, null, null),
+ list("Burn Kit", 2, /obj/item/stack/medical/advanced/ointment, null, VENDOR_ITEM_REGULAR),
+ list("Trauma Kit", 2, /obj/item/stack/medical/advanced/bruise_pack, null, VENDOR_ITEM_REGULAR),
+ list("Advanced Firstaid Kit", 12, /obj/item/storage/firstaid/adv, null, VENDOR_ITEM_REGULAR),
+ list("Medical Splints", 1, /obj/item/stack/medical/splint, null, VENDOR_ITEM_REGULAR),
+
+ list("Injector (Bicaridine)", 1, /obj/item/reagent_container/hypospray/autoinjector/bicaridine, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Dexalin+)", 1, /obj/item/reagent_container/hypospray/autoinjector/dexalinp, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Inaprovaline)", 1, /obj/item/reagent_container/hypospray/autoinjector/inaprovaline, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Kelotane)", 1, /obj/item/reagent_container/hypospray/autoinjector/kelotane, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Oxycodone)", 2, /obj/item/reagent_container/hypospray/autoinjector/oxycodone, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Tramadol)", 1, /obj/item/reagent_container/hypospray/autoinjector/tramadol, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Tricord)", 1, /obj/item/reagent_container/hypospray/autoinjector/tricord, null, VENDOR_ITEM_REGULAR),
+
+ list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR),
+ list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY),
+
+ list("SPECIAL AMMUNITION", 0, null, null, null),
+ list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
+
+ list("ATTACHMENTS", 0, null, null, null),
+ list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
+ list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR),
+ list("Laser Sight", 10, /obj/item/attachable/lasersight, null, VENDOR_ITEM_REGULAR),
+ list("Red-Dot Sight", 10, /obj/item/attachable/reddot, null, VENDOR_ITEM_REGULAR),
+ list("Reflex Sight", 10, /obj/item/attachable/reflex, null, VENDOR_ITEM_REGULAR),
+ list("Suppressor", 10, /obj/item/attachable/suppressor, null, VENDOR_ITEM_REGULAR),
+ list("Vertical Grip", 10, /obj/item/attachable/verticalgrip, null, VENDOR_ITEM_REGULAR),
+
+ list("EXPLOSIVES", 0, null, null, null),
+ list("Plastic Explosive", 5, /obj/item/explosive/plastic, null, VENDOR_ITEM_REGULAR),
+ list("Smoke Grenade", 5, /obj/item/explosive/grenade/smokebomb, null, VENDOR_ITEM_REGULAR),
+ list("Type 6 Shrapnel Grenade", 15, /obj/item/explosive/grenade/high_explosive/upp, null, VENDOR_ITEM_REGULAR),
+ list("Type 8 WP Grenade", 20, /obj/item/explosive/grenade/phosphorus/upp, null, VENDOR_ITEM_REGULAR),
+
+ list("UTILITIES", 0, null, null, null),
+ list("Brown Webbing Vest", 10, /obj/item/clothing/accessory/storage/black_vest/brown_vest, null, VENDOR_ITEM_RECOMMENDED),
+ list("Black Webbing Vest", 10, /obj/item/clothing/accessory/storage/black_vest, null, VENDOR_ITEM_RECOMMENDED),
+ list("Fire Extinguisher (Portable)", 5, /obj/item/tool/extinguisher/mini, null, VENDOR_ITEM_REGULAR),
+ list("Large General Pouch", 10, /obj/item/storage/pouch/general/large, null, VENDOR_ITEM_REGULAR),
+ list("Shoulder Holster", 10, /obj/item/clothing/accessory/storage/holster, null, VENDOR_ITEM_REGULAR),
+ list("Webbing", 10, /obj/item/clothing/accessory/storage/webbing, null, VENDOR_ITEM_REGULAR),
+ list("Drop Pouch", 10, /obj/item/clothing/accessory/storage/droppouch, null, VENDOR_ITEM_REGULAR),
+ )
+
+//*****************************************************************************************************/
+
+/datum/equipment_preset/upp/officer/kapitan
+ name = "UPP Kapitan"
+ assignment = JOB_UPP_KPT_OFFICER
+ rank = JOB_UPP_KPT_OFFICER
+ role_comm_title = "May."
+ paygrade = "UO3"
+ skills = /datum/skills/upp/kapitan
+
+/datum/equipment_preset/upp/officer/kapitan/load_gear(mob/living/carbon/human/new_human)
+ //back
+ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/upp, WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/upp, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/device/motiondetector/hacked, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/device/megaphone, WEAR_IN_BACK)
+ //face
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/command, WEAR_L_EAR)
+ //head
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap/beret, WEAR_HEAD)
+ //uniform
+ var/obj/item/clothing/under/marine/veteran/UPP/officer/M = new()
+ var/obj/item/clothing/accessory/storage/webbing/W = new()
+ M.attach_accessory(new_human, W)
+ new_human.equip_to_slot_or_del(M, WEAR_BODY)
+ for(var/i in 1 to W.hold.storage_slots)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_ACCESSORY)
+
+ //jacket
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/kapitan, WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range, WEAR_IN_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/stack/medical/bruise_pack, WEAR_IN_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/type71/flamer/leader, WEAR_J_STORE)
+ //waist
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/t73, WEAR_WAIST)
+ //limbs
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS)
+ //pockets
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large, WEAR_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/phosphorus/upp, WEAR_IN_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/high_explosive/upp, WEAR_IN_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/high_explosive/upp, WEAR_IN_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/autoinjector/full, WEAR_R_STORE)
+
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf/tacticalmask/green, WEAR_FACE)
+
+/datum/equipment_preset/upp/officer/kapitan/get_antag_clothing_equipment()
+ return list(
+ list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null),
+ list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY),
+ list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP/officer, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY),
+ list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
+ list("Headset", 0, /obj/item/device/radio/headset/distress/UPP/command, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY),
+ list("Ration", 0, /obj/item/reagent_container/food/snacks/upp, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY),
+ list("Combat Pack", 0, /obj/item/storage/backpack/lightpack/upp, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_MANDATORY),
+
+ list("HELMET (CHOOSE 1)", 0, null, null, null),
+ list("Beret", 0, /obj/item/clothing/head/uppcap/beret, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR),
+ list("UM4 Helmet", 0, /obj/item/clothing/head/helmet/marine/veteran/UPP, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_RECOMMENDED),
+
+ list("ARMOR (CHOOSE 1)", 0, null, null, null),
+ list("UL4 senior officer jacket", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/kapitan, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR),
+ list("UL6 Personal Armor", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/support, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY),
+
+ list("BELT (CHOOSE 1)", 0, null, null, null),
+ list("Type 41 Ammo Load Rig", 0, /obj/item/storage/belt/marine/upp, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR),
+ list("Type 74 Pistol Holster Rig", 0, /obj/item/storage/belt/gun/type47/t73/leader, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED),
+
+ list("POUCHES (CHOOSE 2)", 0, null, null, null),
+ list("Auto-Injector Pouch", 0, /obj/item/storage/pouch/autoinjector, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
+ list("Bayonet Sheath", 0, /obj/item/storage/pouch/bayonet/upp, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Explosive Pouch", 0, /obj/item/storage/pouch/explosive, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("First-Aid Pouch (Refillable Injectors)", 0, /obj/item/storage/pouch/firstaid/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("First-Aid Pouch (Splints, Gauze, Ointment)", 0, /obj/item/storage/pouch/firstaid/full/alternate, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("First-Aid Pouch (Pill Packets)", 0, /obj/item/storage/pouch/firstaid/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
+ list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Large Magazine Pouch", 0, /obj/item/storage/pouch/magazine/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
+ list("Medium General Pouch", 0, /obj/item/storage/pouch/general/medium, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Medkit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Pistol Pouch", 0, /obj/item/storage/pouch/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+
+ list("ATTACHMENT (CHOOSE 1)", 0, null, null, null),
+ list("Angled Grip", 0, /obj/item/attachable/angledgrip, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Extended Barrel", 0, /obj/item/attachable/extended_barrel, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Laser Sight", 0, /obj/item/attachable/lasersight, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Red-Dot Sight", 0, /obj/item/attachable/reddot, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Reflex Sight", 0, /obj/item/attachable/reflex, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Suppressor", 0, /obj/item/attachable/suppressor, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("Vertical Grip", 0, /obj/item/attachable/verticalgrip, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+
+ list("MASK (CHOOSE 1)", 0, null, null, null),
+ list("Gas Mask", 0, /obj/item/clothing/mask/gas/pmc/upp, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR),
+ list("Heat Absorbent Coif", 0, /obj/item/clothing/mask/rebreather/scarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR)
+ )
+
+/datum/equipment_preset/upp/officer/kapitan/get_antag_gear_equipment()
+ return list(
+ list("SQUAD LEADER SET (MANDATORY)", 0, null, null, null),
+ list("Essential SL Set", 0, /obj/effect/essentials_set/leader/upp, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY),
+
+ list("GENERAL SUPPLIES", 0, null, null, null),
+ list("Whistle", 5, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR),
+
+ list("ENGINEERING SUPPLIES", 0, null, null, null),
+ list("Entrenching Tool", 2, /obj/item/tool/shovel/etool, null, VENDOR_ITEM_REGULAR),
+ list("Insulated Gloves", 3, /obj/item/clothing/gloves/yellow, null, VENDOR_ITEM_REGULAR),
+ list("Metal x10", 5, /obj/item/stack/sheet/metal/small_stack, null, VENDOR_ITEM_RECOMMENDED),
+ list("Plasteel x10", 7, /obj/item/stack/sheet/plasteel/small_stack, null, VENDOR_ITEM_RECOMMENDED),
+ list("Sandbags x25", 10, /obj/item/stack/sandbags_empty/half, null, VENDOR_ITEM_RECOMMENDED),
+ list("Tools Pouch (Full)", 5, /obj/item/storage/pouch/tools/full, null, VENDOR_ITEM_REGULAR),
+ list("Welding Goggles", 5, /obj/item/clothing/glasses/welding, null, VENDOR_ITEM_REGULAR),
+
+ list("MEDICAL SUPPLIES", 0, null, null, null),
+ list("Burn Kit", 2, /obj/item/stack/medical/advanced/ointment, null, VENDOR_ITEM_REGULAR),
+ list("Trauma Kit", 2, /obj/item/stack/medical/advanced/bruise_pack, null, VENDOR_ITEM_REGULAR),
+ list("Advanced Firstaid Kit", 12, /obj/item/storage/firstaid/adv, null, VENDOR_ITEM_REGULAR),
+ list("Medical Splints", 1, /obj/item/stack/medical/splint, null, VENDOR_ITEM_REGULAR),
+
+ list("Injector (Bicaridine)", 1, /obj/item/reagent_container/hypospray/autoinjector/bicaridine, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Dexalin+)", 1, /obj/item/reagent_container/hypospray/autoinjector/dexalinp, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Inaprovaline)", 1, /obj/item/reagent_container/hypospray/autoinjector/inaprovaline, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Kelotane)", 1, /obj/item/reagent_container/hypospray/autoinjector/kelotane, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Oxycodone)", 2, /obj/item/reagent_container/hypospray/autoinjector/oxycodone, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Tramadol)", 1, /obj/item/reagent_container/hypospray/autoinjector/tramadol, null, VENDOR_ITEM_REGULAR),
+ list("Injector (Tricord)", 1, /obj/item/reagent_container/hypospray/autoinjector/tricord, null, VENDOR_ITEM_REGULAR),
+
+ list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR),
+ list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY),
+
+ list("SPECIAL AMMUNITION", 0, null, null, null),
+ list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
- list("ATTACHMENTS (NONE FIT QYJ-72)", 0, null, null, null),
+ list("ATTACHMENTS", 0, null, null, null),
list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR),
list("Laser Sight", 10, /obj/item/attachable/lasersight, null, VENDOR_ITEM_REGULAR),
@@ -777,81 +1581,74 @@
//*****************************************************************************************************/
-/datum/equipment_preset/upp/leader
- name = "UPP Squad Leader"
- flags = EQUIPMENT_PRESET_EXTRA
-
- skills = /datum/skills/upp/SL
- assignment = JOB_UPP_LEADER
- rank = JOB_UPP_LEADER
- role_comm_title = "SL"
- paygrade = "UE6"
+/datum/equipment_preset/upp/officer/major
+ name = "UPP Major"
+ assignment = JOB_UPP_MAY_OFFICER
+ rank = JOB_UPP_MAY_OFFICER
+ role_comm_title = "May."
+ paygrade = "UO4"
+ skills = /datum/skills/upp/commander
-/datum/equipment_preset/upp/leader/load_gear(mob/living/carbon/human/new_human)
- var/UPPleadsidearm = rand(1,4)
+/datum/equipment_preset/upp/officer/major/load_gear(mob/living/carbon/human/new_human)
//back
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/upp, WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher/mini, WEAR_IN_BACK) //0.66
- new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/phosphorus/upp, WEAR_IN_BACK) //1.33
- new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/phosphorus/upp, WEAR_IN_BACK) //2
- new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/phosphorus/upp, WEAR_IN_BACK) //2.66
- new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/upp, WEAR_IN_BACK) //3.33
- new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/upp, WEAR_IN_BACK) //4
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_BACK) //5
+ new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/upp, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/device/motiondetector/hacked, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/device/megaphone, WEAR_IN_BACK)
//face
new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/command, WEAR_L_EAR)
//head
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap/beret, WEAR_HEAD)
- //body
- var/obj/item/clothing/under/marine/veteran/UPP/UPP = new()
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap/peaked, WEAR_HEAD)
+ //uniform
+ var/obj/item/clothing/under/marine/veteran/UPP/officer/M = new()
var/obj/item/clothing/accessory/storage/webbing/W = new()
- UPP.attach_accessory(new_human, W)
- new_human.equip_to_slot_or_del(UPP, WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71, WEAR_IN_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/heavy, WEAR_JACKET)
+ M.attach_accessory(new_human, W)
+ new_human.equip_to_slot_or_del(M, WEAR_BODY)
+ for(var/i in 1 to W.hold.storage_slots)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_ACCESSORY)
+
+ //jacket
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/kapitan, WEAR_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range, WEAR_IN_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/type71/flamer, WEAR_J_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/stack/medical/bruise_pack, WEAR_IN_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/type71/flamer/leader, WEAR_J_STORE)
//waist
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/t73, WEAR_WAIST)
- switch(UPPleadsidearm)
- if(1 to 2) // 50%
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/t73, WEAR_WAIST)
- if(3) //25%
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/np92, WEAR_WAIST)
- if(4) //25%
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/revolver, WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/t73/leader, WEAR_WAIST)
//limbs
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS)
//pockets
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/flamertank, WEAR_R_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher, WEAR_IN_R_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher, WEAR_IN_R_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/ert, WEAR_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large, WEAR_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/phosphorus/upp, WEAR_IN_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/high_explosive/upp, WEAR_IN_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/high_explosive/upp, WEAR_IN_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/autoinjector/full, WEAR_R_STORE)
if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf/tacticalmask/green, WEAR_FACE)
-/datum/equipment_preset/upp/leader/get_antag_clothing_equipment()
+/datum/equipment_preset/upp/officer/major/get_antag_clothing_equipment()
return list(
list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null),
list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY),
- list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY),
- list("UH7 Heavy Plated Armor", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/heavy, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY),
- list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
+ list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP/officer, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY),
+ list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
list("Headset", 0, /obj/item/device/radio/headset/distress/UPP/command, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY),
list("Ration", 0, /obj/item/reagent_container/food/snacks/upp, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY),
list("Combat Pack", 0, /obj/item/storage/backpack/lightpack/upp, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_MANDATORY),
list("HELMET (CHOOSE 1)", 0, null, null, null),
- list("Armored Beret", 0, /obj/item/clothing/head/uppcap/beret, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR),
- list("UM4 Helmet", 0, /obj/item/clothing/head/helmet/marine/veteran/UPP, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR),
+ list("Peaked Cap", 0, /obj/item/clothing/head/uppcap/peaked, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR),
+ list("UM4 Helmet", 0, /obj/item/clothing/head/helmet/marine/veteran/UPP, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_RECOMMENDED),
+
+ list("ARMOR (CHOOSE 1)", 0, null, null, null),
+ list("UL4 senior officer jacket", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/kapitan, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR),
+ list("UL6 Personal Armor", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/support, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY),
list("BELT (CHOOSE 1)", 0, null, null, null),
list("Type 41 Ammo Load Rig", 0, /obj/item/storage/belt/marine/upp, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR),
- list("Type 41 Pistol Holster Rig", 0, /obj/item/storage/belt/gun/m4a3, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED),
+ list("Type 74 Pistol Holster Rig", 0, /obj/item/storage/belt/gun/type47/t73/leader, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED),
list("POUCHES (CHOOSE 2)", 0, null, null, null),
list("Auto-Injector Pouch", 0, /obj/item/storage/pouch/autoinjector, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
@@ -863,7 +1660,7 @@
list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Large Magazine Pouch", 0, /obj/item/storage/pouch/magazine/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
list("Medium General Pouch", 0, /obj/item/storage/pouch/general/medium, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
- list("Medkit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Medical Kit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Pistol Pouch", 0, /obj/item/storage/pouch/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
@@ -877,11 +1674,11 @@
list("Vertical Grip", 0, /obj/item/attachable/verticalgrip, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
list("MASK (CHOOSE 1)", 0, null, null, null),
- list("Gas Mask", 0, /obj/item/clothing/mask/gas, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR),
+ list("Gas Mask", 0, /obj/item/clothing/mask/gas/pmc/upp, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR),
list("Heat Absorbent Coif", 0, /obj/item/clothing/mask/rebreather/scarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR)
)
-/datum/equipment_preset/upp/leader/get_antag_gear_equipment()
+/datum/equipment_preset/upp/officer/major/get_antag_gear_equipment()
return list(
list("SQUAD LEADER SET (MANDATORY)", 0, null, null, null),
list("Essential SL Set", 0, /obj/effect/essentials_set/leader/upp, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY),
@@ -916,7 +1713,7 @@
list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY),
list("SPECIAL AMMUNITION", 0, null, null, null),
- list("Type 71 AP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/ap , null, VENDOR_ITEM_REGULAR),
+ list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
list("ATTACHMENTS", 0, null, null, null),
list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
@@ -945,65 +1742,74 @@
//*****************************************************************************************************/
-/datum/equipment_preset/upp/military_police
- name = "UPP Military Police"
- flags = EQUIPMENT_PRESET_EXTRA
-
- skills = /datum/skills/upp/military_police
- assignment = JOB_UPP_POLICE
- rank = JOB_UPP_POLICE
- role_comm_title = "MP"
- paygrade = "UE6"
+/datum/equipment_preset/upp/officer/lt_kolonel
+ name = "UPP Leytenant Kolonel"
+ assignment = JOB_UPP_LTKOL_OFFICER
+ rank = JOB_UPP_LTKOL_OFFICER
+ role_comm_title = "Lt. Kol."
+ paygrade = "UO5"
+ skills = /datum/skills/upp/commander
-/datum/equipment_preset/upp/military_police/load_gear(mob/living/carbon/human/new_human)
+/datum/equipment_preset/upp/officer/lt_kolonel/load_gear(mob/living/carbon/human/new_human)
//back
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/upp, WEAR_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/upp, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/device/motiondetector/hacked, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/device/megaphone, WEAR_IN_BACK)
//face
- new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP, WEAR_L_EAR)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/pmc/upp, WEAR_FACE)
+ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/command, WEAR_L_EAR)
//head
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap/beret, WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap/peaked, WEAR_HEAD)
//uniform
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/UPP/mp, WEAR_BODY)
+ var/obj/item/clothing/under/marine/veteran/UPP/officer/M = new()
+ var/obj/item/clothing/accessory/storage/webbing/W = new()
+ M.attach_accessory(new_human, W)
+ new_human.equip_to_slot_or_del(M, WEAR_BODY)
+ for(var/i in 1 to W.hold.storage_slots)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_ACCESSORY)
+
//jacket
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/mp, WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/device/binoculars, WEAR_IN_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/revolver, WEAR_J_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/kapitan, WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range, WEAR_IN_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/stack/medical/bruise_pack, WEAR_IN_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/type71/flamer/leader, WEAR_J_STORE)
//waist
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/security/MP/UPP/full, WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/t73/leader, WEAR_WAIST)
//limbs
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET)
new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS)
//pockets
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/autoinjector/full, WEAR_L_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/medium, WEAR_R_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/device/taperecorder, WEAR_IN_R_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/stack/medical/bruise_pack, WEAR_IN_R_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large, WEAR_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/phosphorus/upp, WEAR_IN_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/high_explosive/upp, WEAR_IN_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/high_explosive/upp, WEAR_IN_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/autoinjector/full, WEAR_R_STORE)
-/datum/equipment_preset/upp/military_police/get_antag_clothing_equipment()
+ if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf/tacticalmask/green, WEAR_FACE)
+
+/datum/equipment_preset/upp/officer/lt_kolonel/get_antag_clothing_equipment()
return list(
list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null),
list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY),
- list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP/mp, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY),
- list("UL4 camouflaged jacket", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/mp, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY),
+ list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP/officer, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY),
list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
- list("Headset", 0, /obj/item/device/radio/headset/distress/UPP, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY),
+ list("Headset", 0, /obj/item/device/radio/headset/distress/UPP/command, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY),
list("Ration", 0, /obj/item/reagent_container/food/snacks/upp, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY),
list("Combat Pack", 0, /obj/item/storage/backpack/lightpack/upp, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_MANDATORY),
list("HELMET (CHOOSE 1)", 0, null, null, null),
- list("Armored Beret", 0, /obj/item/clothing/head/uppcap/beret, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR),
+ list("Peaked Cap", 0, /obj/item/clothing/head/uppcap/peaked, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR),
list("UM4 Helmet", 0, /obj/item/clothing/head/helmet/marine/veteran/UPP, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_RECOMMENDED),
list("ARMOR (CHOOSE 1)", 0, null, null, null),
- list("UL4 camouflaged jacket", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/mp, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR),
+ list("UL4 senior officer jacket", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/kapitan, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR),
list("UL6 Personal Armor", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/support, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY),
list("BELT (CHOOSE 1)", 0, null, null, null),
list("Type 41 Ammo Load Rig", 0, /obj/item/storage/belt/marine/upp, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR),
- list("Type 41 Pistol Holster Rig", 0, /obj/item/storage/belt/gun/m4a3, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR),
- list("Type 43 Military Police Rig", 0, /obj/item/storage/belt/security/MP/UPP/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED),
+ list("Type 74 Pistol Holster Rig", 0, /obj/item/storage/belt/gun/type47/t73/leader, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED),
list("POUCHES (CHOOSE 2)", 0, null, null, null),
list("Auto-Injector Pouch", 0, /obj/item/storage/pouch/autoinjector, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
@@ -1033,7 +1839,7 @@
list("Heat Absorbent Coif", 0, /obj/item/clothing/mask/rebreather/scarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR)
)
-/datum/equipment_preset/upp/military_police/get_antag_gear_equipment()
+/datum/equipment_preset/upp/officer/lt_kolonel/get_antag_gear_equipment()
return list(
list("SQUAD LEADER SET (MANDATORY)", 0, null, null, null),
list("Essential SL Set", 0, /obj/effect/essentials_set/leader/upp, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY),
@@ -1068,7 +1874,7 @@
list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY),
list("SPECIAL AMMUNITION", 0, null, null, null),
- list("Type 71 AP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/ap , null, VENDOR_ITEM_REGULAR),
+ list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
list("ATTACHMENTS", 0, null, null, null),
list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
@@ -1097,17 +1903,15 @@
//*****************************************************************************************************/
-/datum/equipment_preset/upp/officer
- name = "UPP Lieutenant"
- flags = EQUIPMENT_PRESET_EXTRA
-
- skills = /datum/skills/upp/officer
- assignment = JOB_UPP_LT_OFFICER
- rank = JOB_UPP_LT_OFFICER
- role_comm_title = "Lt."
- paygrade = "UO1"
+/datum/equipment_preset/upp/officer/kolonel
+ name = "UPP Kolonel"
+ assignment = JOB_UPP_KOL_OFFICER
+ rank = JOB_UPP_KOL_OFFICER
+ role_comm_title = "Kol."
+ paygrade = "UO6"
+ skills = /datum/skills/upp/commander
-/datum/equipment_preset/upp/officer/load_gear(mob/living/carbon/human/new_human)
+/datum/equipment_preset/upp/officer/kolonel/load_gear(mob/living/carbon/human/new_human)
//back
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/upp, WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher, WEAR_IN_BACK)
@@ -1117,7 +1921,7 @@
//face
new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/command, WEAR_L_EAR)
//head
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap/beret, WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap/peaked, WEAR_HEAD)
//uniform
var/obj/item/clothing/under/marine/veteran/UPP/officer/M = new()
var/obj/item/clothing/accessory/storage/webbing/W = new()
@@ -1127,15 +1931,15 @@
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_ACCESSORY)
//jacket
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/officer, WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/kapitan, WEAR_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range, WEAR_IN_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/stack/medical/bruise_pack, WEAR_IN_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/type71/flamer/leader, WEAR_J_STORE)
//waist
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/np92, WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/t73/leader, WEAR_WAIST)
//limbs
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS)
//pockets
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large, WEAR_L_STORE)
new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/phosphorus/upp, WEAR_IN_L_STORE)
@@ -1146,27 +1950,27 @@
if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf/tacticalmask/green, WEAR_FACE)
-/datum/equipment_preset/upp/officer/get_antag_clothing_equipment()
+/datum/equipment_preset/upp/officer/kolonel/get_antag_clothing_equipment()
return list(
list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null),
list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY),
list("Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP/officer, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY),
- list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
+ list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
list("Headset", 0, /obj/item/device/radio/headset/distress/UPP/command, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY),
list("Ration", 0, /obj/item/reagent_container/food/snacks/upp, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY),
list("Combat Pack", 0, /obj/item/storage/backpack/lightpack/upp, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_MANDATORY),
list("HELMET (CHOOSE 1)", 0, null, null, null),
- list("Armored Beret", 0, /obj/item/clothing/head/uppcap/beret, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR),
+ list("Peaked Cap", 0, /obj/item/clothing/head/uppcap/peaked, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR),
list("UM4 Helmet", 0, /obj/item/clothing/head/helmet/marine/veteran/UPP, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_RECOMMENDED),
list("ARMOR (CHOOSE 1)", 0, null, null, null),
- list("UL4 officer jacket", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/officer, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR),
+ list("UL4 senior officer jacket", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/kapitan, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR),
list("UL6 Personal Armor", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/support, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY),
list("BELT (CHOOSE 1)", 0, null, null, null),
list("Type 41 Ammo Load Rig", 0, /obj/item/storage/belt/marine/upp, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR),
- list("Type 73 Pistol Holster Rig", 0, /obj/item/storage/belt/gun/type47/t73, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED),
+ list("Type 74 Pistol Holster Rig", 0, /obj/item/storage/belt/gun/type47/t73/leader, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED),
list("POUCHES (CHOOSE 2)", 0, null, null, null),
list("Auto-Injector Pouch", 0, /obj/item/storage/pouch/autoinjector, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
@@ -1178,7 +1982,7 @@
list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Large Magazine Pouch", 0, /obj/item/storage/pouch/magazine/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
list("Medium General Pouch", 0, /obj/item/storage/pouch/general/medium, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
- list("Medkit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Medical Kit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Pistol Pouch", 0, /obj/item/storage/pouch/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
@@ -1196,7 +2000,7 @@
list("Heat Absorbent Coif", 0, /obj/item/clothing/mask/rebreather/scarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR)
)
-/datum/equipment_preset/upp/officer/get_antag_gear_equipment()
+/datum/equipment_preset/upp/officer/kolonel/get_antag_gear_equipment()
return list(
list("SQUAD LEADER SET (MANDATORY)", 0, null, null, null),
list("Essential SL Set", 0, /obj/effect/essentials_set/leader/upp, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY),
@@ -1260,14 +2064,15 @@
//*****************************************************************************************************/
-/datum/equipment_preset/upp/officer/senior
- name = "UPP Senior Lieutenant"
- assignment = JOB_UPP_SRLT_OFFICER
- rank = JOB_UPP_SRLT_OFFICER
- role_comm_title = "Sr-Lt."
- paygrade = "UO1E"
+/datum/equipment_preset/upp/officer/may_gen
+ name = "UPP Mayjor General"
+ assignment = JOB_UPP_KOL_OFFICER
+ rank = JOB_UPP_KOL_OFFICER
+ role_comm_title = "May. Gen."
+ paygrade = "UO7"
+ skills = /datum/skills/upp/commander
-/datum/equipment_preset/upp/officer/senior/load_gear(mob/living/carbon/human/new_human)
+/datum/equipment_preset/upp/officer/may_gen/load_gear(mob/living/carbon/human/new_human)
//back
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/upp, WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher, WEAR_IN_BACK)
@@ -1277,7 +2082,7 @@
//face
new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/command, WEAR_L_EAR)
//head
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap/beret, WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap/peaked, WEAR_HEAD)
//uniform
var/obj/item/clothing/under/marine/veteran/UPP/officer/M = new()
var/obj/item/clothing/accessory/storage/webbing/W = new()
@@ -1287,12 +2092,12 @@
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71/ap, WEAR_IN_ACCESSORY)
//jacket
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/officer, WEAR_JACKET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/kapitan, WEAR_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range, WEAR_IN_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/stack/medical/bruise_pack, WEAR_IN_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/type71/flamer/leader, WEAR_J_STORE)
//waist
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/t73, WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/t73/leader, WEAR_WAIST)
//limbs
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET)
new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS)
@@ -1306,7 +2111,7 @@
if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf/tacticalmask/green, WEAR_FACE)
-/datum/equipment_preset/upp/officer/senior/get_antag_clothing_equipment()
+/datum/equipment_preset/upp/officer/may_gen/get_antag_clothing_equipment()
return list(
list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null),
list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY),
@@ -1317,16 +2122,16 @@
list("Combat Pack", 0, /obj/item/storage/backpack/lightpack/upp, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_MANDATORY),
list("HELMET (CHOOSE 1)", 0, null, null, null),
- list("Armored Beret", 0, /obj/item/clothing/head/uppcap/beret, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR),
+ list("Peaked Cap", 0, /obj/item/clothing/head/uppcap/peaked, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR),
list("UM4 Helmet", 0, /obj/item/clothing/head/helmet/marine/veteran/UPP, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_RECOMMENDED),
list("ARMOR (CHOOSE 1)", 0, null, null, null),
- list("UL4 officer jacket", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/officer, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR),
+ list("UL4 senior officer jacket", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/kapitan, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR),
list("UL6 Personal Armor", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/support, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY),
list("BELT (CHOOSE 1)", 0, null, null, null),
list("Type 41 Ammo Load Rig", 0, /obj/item/storage/belt/marine/upp, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR),
- list("Type 73 Pistol Holster Rig", 0, /obj/item/storage/belt/gun/type47/t73, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED),
+ list("Type 74 Pistol Holster Rig", 0, /obj/item/storage/belt/gun/type47/t73/leader, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED),
list("POUCHES (CHOOSE 2)", 0, null, null, null),
list("Auto-Injector Pouch", 0, /obj/item/storage/pouch/autoinjector, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
@@ -1356,7 +2161,7 @@
list("Heat Absorbent Coif", 0, /obj/item/clothing/mask/rebreather/scarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR)
)
-/datum/equipment_preset/upp/officer/senior/get_antag_gear_equipment()
+/datum/equipment_preset/upp/officer/may_gen/get_antag_gear_equipment()
return list(
list("SQUAD LEADER SET (MANDATORY)", 0, null, null, null),
list("Essential SL Set", 0, /obj/effect/essentials_set/leader/upp, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY),
@@ -1420,15 +2225,15 @@
//*****************************************************************************************************/
-/datum/equipment_preset/upp/officer/major
- name = "UPP Major"
- assignment = JOB_UPP_MAY_OFFICER
- rank = JOB_UPP_MAY_OFFICER
- role_comm_title = "May."
- paygrade = "UO3"
+/datum/equipment_preset/upp/officer/ley_gen
+ name = "UPP Leytenant General"
+ assignment = JOB_UPP_KOL_OFFICER
+ rank = JOB_UPP_KOL_OFFICER
+ role_comm_title = "Lt. Gen."
+ paygrade = "UO8"
skills = /datum/skills/upp/commander
-/datum/equipment_preset/upp/officer/major/load_gear(mob/living/carbon/human/new_human)
+/datum/equipment_preset/upp/officer/ley_gen/load_gear(mob/living/carbon/human/new_human)
//back
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/upp, WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher, WEAR_IN_BACK)
@@ -1467,7 +2272,7 @@
if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf/tacticalmask/green, WEAR_FACE)
-/datum/equipment_preset/upp/officer/major/get_antag_clothing_equipment()
+/datum/equipment_preset/upp/officer/ley_gen/get_antag_clothing_equipment()
return list(
list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null),
list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY),
@@ -1517,7 +2322,7 @@
list("Heat Absorbent Coif", 0, /obj/item/clothing/mask/rebreather/scarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR)
)
-/datum/equipment_preset/upp/officer/major/get_antag_gear_equipment()
+/datum/equipment_preset/upp/officer/ley_gen/get_antag_gear_equipment()
return list(
list("SQUAD LEADER SET (MANDATORY)", 0, null, null, null),
list("Essential SL Set", 0, /obj/effect/essentials_set/leader/upp, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY),
@@ -1581,15 +2386,15 @@
//*****************************************************************************************************/
-/datum/equipment_preset/upp/officer/kolonel
- name = "UPP Kolonel"
+/datum/equipment_preset/upp/officer/gen
+ name = "UPP Army General"
assignment = JOB_UPP_KOL_OFFICER
rank = JOB_UPP_KOL_OFFICER
- role_comm_title = "Kol."
- paygrade = "UO5"
+ role_comm_title = "Gen."
+ paygrade = "UO9"
skills = /datum/skills/upp/commander
-/datum/equipment_preset/upp/officer/kolonel/load_gear(mob/living/carbon/human/new_human)
+/datum/equipment_preset/upp/officer/gen/load_gear(mob/living/carbon/human/new_human)
//back
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/upp, WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher, WEAR_IN_BACK)
@@ -1628,7 +2433,7 @@
if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf/tacticalmask/green, WEAR_FACE)
-/datum/equipment_preset/upp/officer/kolonel/get_antag_clothing_equipment()
+/datum/equipment_preset/upp/officer/gen/get_antag_clothing_equipment()
return list(
list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null),
list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY),
@@ -1678,7 +2483,7 @@
list("Heat Absorbent Coif", 0, /obj/item/clothing/mask/rebreather/scarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR)
)
-/datum/equipment_preset/upp/officer/kolonel/get_antag_gear_equipment()
+/datum/equipment_preset/upp/officer/gen/get_antag_gear_equipment()
return list(
list("SQUAD LEADER SET (MANDATORY)", 0, null, null, null),
list("Essential SL Set", 0, /obj/effect/essentials_set/leader/upp, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY),
@@ -1857,7 +2662,7 @@
new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/upp/full, WEAR_WAIST)
//limbs
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS)
//póckets
var/obj/item/storage/pouch/magazine/large/ppouch = new()
new_human.equip_to_slot_or_del(ppouch, WEAR_R_STORE)
@@ -1915,7 +2720,7 @@
list("Large General Pouch", 0, /obj/item/storage/pouch/general/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Sling Pouch", 0, /obj/item/storage/pouch/sling, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Medical Pouch", 0, /obj/item/storage/pouch/medical, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
- list("Medkit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Medical Kit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Tools Pouch (Full)", 0, /obj/item/storage/pouch/tools/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("MASK", 0, null, null, null),
@@ -1996,7 +2801,7 @@
assignment = JOB_UPP_CONSCRIPT
rank = JOB_UPP_CONSCRIPT
role_comm_title = "Cons"
- paygrade = "UE0"
+ paygrade = "UE1"
/datum/equipment_preset/upp/conscript/load_gear(mob/living/carbon/human/new_human)
//TODO: add backpacks and satchels
@@ -2026,7 +2831,7 @@
//limbs
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET)
- var/maybegloves = prob(80) ? pick(/obj/item/clothing/gloves/black, /obj/item/clothing/gloves/marine/veteran, /obj/item/clothing/gloves/combat) : null
+ var/maybegloves = prob(80) ? pick(/obj/item/clothing/gloves/black, /obj/item/clothing/gloves/marine/veteran/upp, /obj/item/clothing/gloves/combat) : null
if(maybegloves)
new_human.equip_to_slot_or_del(new maybegloves, WEAR_HANDS)
@@ -2123,7 +2928,7 @@
new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/np92/suppressed, WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel/scout_cloak/upp, WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS)
new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/pmc/upp, WEAR_FACE)
new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/night/m42_night_goggles/upp, WEAR_EYES)
@@ -2145,7 +2950,7 @@
list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null),
list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY),
list("Fatigues", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/commando, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY),
- list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/pmc, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
+ list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
list("Headset", 0, /obj/item/device/radio/headset/distress/UPP/kdo, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY),
list("Night Vision Goggles", 0, /obj/item/clothing/glasses/night/m42_night_goggles/upp, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_MANDATORY),
list("Ration", 0, /obj/item/reagent_container/food/snacks/upp, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY),
@@ -2171,7 +2976,7 @@
list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Large Magazine Pouch", 0, /obj/item/storage/pouch/magazine/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
list("Medium General Pouch", 0, /obj/item/storage/pouch/general/medium, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
- list("Medkit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Medical Kit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Pistol Pouch", 0, /obj/item/storage/pouch/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
@@ -2245,7 +3050,7 @@
new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap, WEAR_HEAD)
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel/scout_cloak/upp, WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS)
new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/pmc/upp, WEAR_FACE)
new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/night/m42_night_goggles/upp, WEAR_EYES)
@@ -2276,7 +3081,7 @@
list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null),
list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY),
list("Fatigues Medic", 0, /obj/item/clothing/under/marine/veteran/UPP/medic, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY),
- list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/pmc, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
+ list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
list("Headset", 0, /obj/item/device/radio/headset/distress/UPP/kdo/medic, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY),
list("HealthMate HUD", 0, /obj/item/clothing/glasses/hud/health, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_MANDATORY),
list("Night Vision Goggles", 0, /obj/item/clothing/glasses/night/m42_night_goggles/upp, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_MANDATORY),
@@ -2304,7 +3109,7 @@
list("Medical Pouch (Splints)", 0, /obj/item/storage/pouch/medical/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Medical Pouch (Pills)", 0, /obj/item/storage/pouch/medical/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Medium General Pouch", 0, /obj/item/storage/pouch/general/medium, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
- list("Medkit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Medical Kit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Pistol Pouch", 0, /obj/item/storage/pouch/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
@@ -2415,7 +3220,7 @@
new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap/beret, WEAR_HEAD)
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel/scout_cloak/upp, WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS)
new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/pmc/upp, WEAR_FACE)
new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/night/m42_night_goggles/upp, WEAR_EYES)
@@ -2440,7 +3245,7 @@
list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null),
list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY),
list("Fatigues", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/commando, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY),
- list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/pmc, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
+ list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
list("Headset", 0, /obj/item/device/radio/headset/distress/UPP/kdo/command, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY),
list("Night Vision Goggles", 0, /obj/item/clothing/glasses/night/m42_night_goggles/upp, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_MANDATORY),
list("Ration", 0, /obj/item/reagent_container/food/snacks/upp, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY),
@@ -2466,7 +3271,7 @@
list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Large Magazine Pouch", 0, /obj/item/storage/pouch/magazine/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED),
list("Medium General Pouch", 0, /obj/item/storage/pouch/general/medium, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
- list("Medkit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Medical Kit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Pistol Pouch", 0, /obj/item/storage/pouch/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
@@ -2672,7 +3477,7 @@
assignment = JOB_UPP_LT_DOKTOR
rank = JOB_UPP_LT_DOKTOR
role_comm_title = "Lt. Med."
- paygrade = "UO1M"
+ paygrade = "UO1"
/datum/equipment_preset/upp/doctor/load_gear(mob/living/carbon/human/new_human)
//back
@@ -2701,7 +3506,7 @@
new_human.equip_to_slot_or_del(new /obj/item/reagent_container/hypospray/autoinjector/oxycodone, WEAR_IN_BELT)
//limbs
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp, WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS)
//póckets
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large, WEAR_R_STORE)
new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/upp, WEAR_IN_R_STORE)
@@ -2722,7 +3527,7 @@
list("Boots", 0, /obj/item/clothing/shoes/marine/upp, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY),
list("Medic Fatigues", 0, /obj/item/clothing/under/marine/veteran/UPP/medic, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY),
list("UL6 Personal Armor", 0, /obj/item/clothing/suit/storage/marine/faction/UPP/support, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY),
- list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
+ list("Gloves", 0, /obj/item/clothing/gloves/marine/veteran/upp, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
list("Headset", 0, /obj/item/device/radio/headset/distress/UPP, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY),
list("Ration", 0, /obj/item/reagent_container/food/snacks/upp, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY),
list("Combat Pack", 0, /obj/item/storage/backpack/lightpack, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_MANDATORY),
@@ -2744,7 +3549,7 @@
list("Medical Pouch (Splints)", 0, /obj/item/storage/pouch/medical/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Medical Pouch (Pills)", 0, /obj/item/storage/pouch/medical/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Medium General Pouch", 0, /obj/item/storage/pouch/general/medium, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
- list("Medkit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
+ list("Medical Kit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("MASK (CHOOSE 1)", 0, null, null, null),
list("Gas Mask", 0, /obj/item/clothing/mask/gas, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR),
diff --git a/code/modules/gear_presets/uscm.dm b/code/modules/gear_presets/uscm.dm
index 1c84e7cad4ba..ec0195e928c5 100644
--- a/code/modules/gear_presets/uscm.dm
+++ b/code/modules/gear_presets/uscm.dm
@@ -803,7 +803,6 @@
new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/pmc/marsoc, WEAR_FACE)
//head
new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/sof, WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/prop/helmetgarb/helmet_nvg/marsoc, WEAR_IN_HELMET)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun/buckshot, WEAR_IN_HELMET)
//uniform
var/obj/item/clothing/under/marine/veteran/marsoc/M = new()
diff --git a/code/modules/gear_presets/uscm_ship.dm b/code/modules/gear_presets/uscm_ship.dm
index 5b546b0c941c..4c383cfed6d9 100644
--- a/code/modules/gear_presets/uscm_ship.dm
+++ b/code/modules/gear_presets/uscm_ship.dm
@@ -345,7 +345,7 @@
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/qm_suit(new_human), WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine(new_human), WEAR_FEET)
new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/req(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/req/ro(new_human), WEAR_HEAD)
new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/device/flash(new_human), WEAR_L_STORE)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large(new_human), WEAR_R_STORE)
@@ -377,7 +377,7 @@
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine(new_human), WEAR_FEET)
new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow(new_human), WEAR_HANDS)
new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/full(new_human), WEAR_WAIST)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beanie(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/req(new_human), WEAR_HEAD)
new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/medium(new_human), WEAR_R_STORE)
@@ -404,20 +404,20 @@
minimap_icon = list("cic" = MINIMAP_ICON_COLOR_COMMANDER)
minimap_background = MINIMAP_ICON_BACKGROUND_CIC
- utility_under = list(/obj/item/clothing/under/marine,/obj/item/clothing/under/marine/officer/command)
+ utility_under = list(/obj/item/clothing/under/marine, /obj/item/clothing/under/marine/officer/command, /obj/item/clothing/under/marine/officer/boiler)
utility_hat = list(/obj/item/clothing/head/cmcap,/obj/item/clothing/head/beret/cm/tan)
utility_extra = list(/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/glasses/sunglasses/big,/obj/item/clothing/glasses/sunglasses/aviator,/obj/item/clothing/glasses/mbcg)
service_under = list(/obj/item/clothing/under/marine/officer/formal/white, /obj/item/clothing/under/marine/officer/formal/black)
service_shoes = list(/obj/item/clothing/shoes/dress/commander)
service_extra = list(/obj/item/clothing/suit/storage/jacket/marine/dress/officer/bomber)
- service_hat = list(/obj/item/clothing/head/beret/cm, /obj/item/clothing/head/beret/marine/commander/dress, /obj/item/clothing/head/beret/marine/commander/black)
+ service_hat = list(/obj/item/clothing/head/beret/cm, /obj/item/clothing/head/beret/marine/commander/dress, /obj/item/clothing/head/beret/marine/commander/black, /obj/item/clothing/head/marine/peaked/service)
dress_under = list(/obj/item/clothing/under/marine/dress, /obj/item/clothing/under/marine/officer/formal/servicedress)
dress_extra = list(/obj/item/storage/large_holster/ceremonial_sword/full)
- dress_hat = list(/obj/item/clothing/head/marine/peaked/captain/white, /obj/item/clothing/head/marine/peaked/captain/black)
+ dress_hat = list(/obj/item/clothing/head/marine/peaked/captain/white, /obj/item/clothing/head/marine/peaked/captain/black, /obj/item/clothing/head/marine/peaked)
dress_shoes = list(/obj/item/clothing/shoes/dress/commander)
- dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/officer/white, /obj/item/clothing/suit/storage/jacket/marine/dress/officer/black, /obj/item/clothing/suit/storage/jacket/marine/dress/officer/suit)
+ dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/officer/white, /obj/item/clothing/suit/storage/jacket/marine/dress/officer/black, /obj/item/clothing/suit/storage/jacket/marine/dress/officer/suit, /obj/item/clothing/suit/storage/jacket/marine/dress)
/datum/equipment_preset/uscm_ship/commander/New()
. = ..()
@@ -436,20 +436,18 @@
if(new_human.client && new_human.client.prefs)
sidearm = new_human.client.prefs.commander_sidearm
switch(sidearm)
- if("Mateba")
+ if(CO_GUN_MATEBA)
sidearmpath = /obj/item/storage/belt/gun/mateba/cmateba/full
kit = /obj/item/storage/mateba_case/captain
- if("Colonel's Mateba")
+ if(CO_GUN_MATEBA_SPECIAL)
+ sidearmpath = /obj/item/storage/belt/gun/mateba/cmateba/special
+ if(CO_GUN_MATEBA_COUNCIL)
sidearmpath = /obj/item/storage/belt/gun/mateba/council/full
kit = /obj/item/storage/mateba_case/captain/council
- if("Desert Eagle")
+ if(CO_GUN_DEAGLE)
sidearmpath = /obj/item/storage/belt/gun/m4a3/heavy/co
- if("Golden Desert Eagle")
+ if(CO_GUN_DEAGLE_COUNCIL)
sidearmpath = /obj/item/storage/belt/gun/m4a3/heavy/co_golden
- if("M4A3 Custom")
- sidearmpath = /obj/item/storage/belt/gun/m4a3/commander
- if("VP78")
- sidearmpath = /obj/item/storage/belt/gun/m4a3/vp78
new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/mcom/cdrcom(new_human), WEAR_L_EAR)
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/bridge(new_human), WEAR_BODY)
@@ -526,10 +524,10 @@
back_item = /obj/item/storage/backpack/marine
new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/mcom/cdrcom(new_human), WEAR_L_EAR)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/exec(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/bridge(new_human), WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/jacket/marine/service(new_human), WEAR_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/dress(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/marine/peaked/service(new_human), WEAR_HEAD)
new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large(new_human), WEAR_L_STORE)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large(new_human), WEAR_R_STORE)
@@ -562,7 +560,7 @@
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/bridge(new_human), WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/dress(new_human), WEAR_FEET)
new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88(new_human), WEAR_WAIST)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/ro(new_human), WEAR_HEAD)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/bridge(new_human), WEAR_HEAD)
new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large(new_human), WEAR_L_STORE)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large(new_human), WEAR_R_STORE)
diff --git a/code/modules/gear_presets/wo.dm b/code/modules/gear_presets/wo.dm
index 521d2690d367..c330bbc76502 100644
--- a/code/modules/gear_presets/wo.dm
+++ b/code/modules/gear_presets/wo.dm
@@ -52,20 +52,18 @@
if(new_human.client && new_human.client.prefs)
sidearm = new_human.client.prefs.commander_sidearm
switch(sidearm)
- if("Mateba")
+ if(CO_GUN_MATEBA)
sidearmpath = /obj/item/storage/belt/gun/mateba/cmateba/full
kit = /obj/item/storage/mateba_case/captain
- if("Colonel's Mateba")
+ if(CO_GUN_MATEBA_SPECIAL)
+ sidearmpath = /obj/item/storage/belt/gun/mateba/cmateba/special
+ if(CO_GUN_MATEBA_COUNCIL)
sidearmpath = /obj/item/storage/belt/gun/mateba/council/full
kit = /obj/item/storage/mateba_case/captain/council
- if("Desert Eagle")
+ if(CO_GUN_DEAGLE)
sidearmpath = /obj/item/storage/belt/gun/m4a3/heavy/co
- if("Golden Desert Eagle")
+ if(CO_GUN_DEAGLE_COUNCIL)
sidearmpath = /obj/item/storage/belt/gun/m4a3/heavy/co_golden
- if("M4A3 Custom")
- sidearmpath = /obj/item/storage/belt/gun/m4a3/commander
- if("VP78")
- sidearmpath = /obj/item/storage/belt/gun/m4a3/vp78
//back
new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK)
@@ -122,7 +120,7 @@
new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap(new_human), WEAR_HEAD)
new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/mcom/cdrcom(new_human), WEAR_L_EAR)
//uniform
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/exec(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/bridge(new_human), WEAR_BODY)
//jacket
new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/MP/SO(new_human), WEAR_JACKET)
//waist
@@ -152,7 +150,7 @@
/datum/equipment_preset/wo/cmp/load_gear(mob/living/carbon/human/new_human)
//uniform
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/bridge(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/boiler(new_human), WEAR_BODY)
//jacket
new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/smartgunner(new_human), WEAR_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/smartgun(new_human), WEAR_J_STORE)
@@ -197,7 +195,7 @@
new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/marine/mp_honor/com(new_human), WEAR_L_EAR)
new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/aviator(new_human), WEAR_EYES)
//uniform
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/bridge(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/boiler(new_human), WEAR_BODY)
//jacket
new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/leader(new_human), WEAR_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m41aMK1(new_human), WEAR_J_STORE)
@@ -239,7 +237,7 @@
new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/aviator(new_human), WEAR_EYES)
new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/marine/logisticsofficer(new_human), WEAR_HEAD)
//uniform
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/bridge(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/boiler(new_human), WEAR_BODY)
//waist
new_human.equip_to_slot_or_del(new /obj/item/storage/large_holster/m39/full(new_human), WEAR_WAIST)
//limbs
@@ -272,7 +270,7 @@
back_item = /obj/item/storage/backpack/security
new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/marine/mp_honor(new_human), WEAR_L_EAR)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/bridge(new_human), WEAR_BODY)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/boiler(new_human), WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET)
new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/officer(new_human), WEAR_HANDS)
new_human.equip_to_slot_or_del(new /obj/item/storage/belt/shotgun/full(new_human), WEAR_WAIST)
diff --git a/code/modules/hydroponics/hydro_tray.dm b/code/modules/hydroponics/hydro_tray.dm
index 463ce752308a..4d175c5a6f1f 100644
--- a/code/modules/hydroponics/hydro_tray.dm
+++ b/code/modules/hydroponics/hydro_tray.dm
@@ -1,4 +1,5 @@
#define HYDRO_SPEED_MULTIPLIER 1
+#define HYDRO_WATER_CONSUMPTION_MULTIPLIER 1.5
/obj/structure/machinery/portable_atmospherics/hydroponics
name = "hydroponics tray"
@@ -206,7 +207,7 @@
if(seed.nutrient_consumption > 0 && nutrilevel > 0 && prob(25))
nutrilevel -= max(0,seed.nutrient_consumption * HYDRO_SPEED_MULTIPLIER)
if(seed.water_consumption > 0 && waterlevel > 0 && prob(25))
- waterlevel -= max(0,seed.water_consumption * HYDRO_SPEED_MULTIPLIER)
+ waterlevel -= round(max(0,(seed.water_consumption * HYDRO_WATER_CONSUMPTION_MULTIPLIER) * HYDRO_SPEED_MULTIPLIER))
// Make sure the plant is not starving or thirsty. Adequate
// water and nutrients will cause a plant to become healthier.
@@ -219,17 +220,9 @@
if(nutrilevel < 1)
plant_health = 0
- // Check that pressure, heat and light are all within bounds.
+ // Check that pressure, heat are all within bounds.
// First, handle an open system or an unconnected closed system.
- var/turf/T = loc
-
- // Handle light requirements.
- if(T)
- var/light_available = T.get_lumcount(0, 10)
- if(abs(light_available - seed.ideal_light) > seed.light_tolerance)
- plant_health -= healthmod
-
// Toxin levels beyond the plant's tolerance cause damage, but
// toxins are sucked up each tick and slowly reduce over time.
if(toxins > 0)
@@ -606,13 +599,32 @@
else
to_chat(user, SPAN_DANGER("This plot is completely devoid of weeds. It doesn't need uprooting."))
+ else if (istype(O, /obj/item/tool/shovel/spade))
+ if(isnull(seed))
+ return
+ user.visible_message(SPAN_DANGER("[user] starts to uproot the plant."), SPAN_DANGER("You begin removing plant from [src]..."))
+ if(!do_after(user, 1 SECONDS, INTERRUPT_NO_NEEDHAND|BEHAVIOR_IMMOBILE, BUSY_ICON_FRIENDLY, src, INTERRUPT_MOVED, BUSY_ICON_FRIENDLY))
+ return
+ to_chat(user, SPAN_NOTICE("You remove the plant from [src]."))
+ seed = null
+ dead = 0
+ sampled = 0
+ age = 0
+ harvest = 0
+ toxins = 0
+ yield_mod = 0
+ mutation_mod = 0
+
+ check_level_sanity()
+ update_icon()
+
else if (istype(O, /obj/item/storage/bag/plants))
attack_hand(user)
var/obj/item/storage/bag/plants/S = O
for (var/obj/item/reagent_container/food/snacks/grown/G in locate(user.x,user.y,user.z))
- if(!S.can_be_inserted(G))
+ if(!S.can_be_inserted(G, user))
return
S.handle_item_insertion(G, TRUE, user)
@@ -663,20 +675,9 @@
return info
-/obj/structure/machinery/portable_atmospherics/hydroponics/soil/show_hydro_info(mob/user as mob)
- var/info = ..()
- var/turf/T = loc
- var/area/A = T.loc
- var/light_available
- if(A)
- light_available = max(0,min(10,T.dynamic_lumcount)-5)
-
- info += "The tray's sensor suite is reporting a light level of [light_available] lumens.\n"
- return info
-
/obj/structure/machinery/portable_atmospherics/hydroponics/attack_hand(mob/user as mob)
- if(istype(usr,/mob/living/silicon))
+ if(istype(user, /mob/living/silicon))
return
if(harvest)
@@ -684,19 +685,7 @@
else if(dead)
remove_dead(user)
else
- to_chat(usr, show_hydro_info(user))
-
-/obj/structure/machinery/portable_atmospherics/hydroponics/verb/close_lid()
- set name = "Toggle Tray Lid"
- set category = "Object"
- set src in view(1)
-
- if(!usr || usr.stat || usr.is_mob_restrained())
- return
-
- closed_system = !closed_system
- to_chat(usr, "You [closed_system ? "close" : "open"] the tray's lid.")
- update_icon()
+ to_chat(user, show_hydro_info(user))
/obj/structure/machinery/portable_atmospherics/hydroponics/verb/flush() //used to reset the tray
set name = "Flush Tray"
@@ -716,7 +705,7 @@
toxins = 0
yield_mod = 0
mutation_mod = 0
- waterlevel = 100
+ waterlevel = 0
nutrilevel = 0
pestlevel = 0
weedlevel = 0
@@ -743,8 +732,5 @@
else
..()
-/obj/structure/machinery/portable_atmospherics/hydroponics/soil/Initialize()
- . = ..()
- verbs -= /obj/structure/machinery/portable_atmospherics/hydroponics/verb/close_lid
-
#undef HYDRO_SPEED_MULTIPLIER
+#undef HYDRO_WATER_CONSUMPTION_MULTIPLIER
diff --git a/code/modules/maptext_alerts/screen_alerts.dm b/code/modules/maptext_alerts/screen_alerts.dm
index 6d251080e87b..820c64301bc2 100644
--- a/code/modules/maptext_alerts/screen_alerts.dm
+++ b/code/modules/maptext_alerts/screen_alerts.dm
@@ -66,7 +66,7 @@
///proc for actually playing this screen_text on a mob.
/atom/movable/screen/text/screen_text/proc/play_to_client()
- player?.screen += src
+ player?.add_to_screen(src)
if(fade_in_time)
animate(src, alpha = 255)
var/list/lines_to_skip = list()
@@ -106,7 +106,7 @@
qdel(src)
return
- player.screen -= src
+ player.remove_from_screen(src)
LAZYREMOVE(player.screen_texts, src)
qdel(src)
@@ -196,7 +196,7 @@
alerts -= category
if(client && hud_used)
hud_used.reorganize_alerts()
- client.screen -= alert
+ client.remove_from_screen(alert)
qdel(alert)
/atom/movable/screen/alert
@@ -243,6 +243,6 @@
if(gotten_turf)
ghost_user.forceMove(gotten_turf)
if(NOTIFY_ORBIT)
- ghost_user.ManualFollow(target)
+ ghost_user.do_observe(target)
if(NOTIFY_JOIN_XENO)
ghost_user.join_as_alien()
diff --git a/code/modules/maptext_alerts/text_blurbs.dm b/code/modules/maptext_alerts/text_blurbs.dm
index 4cc4d1980115..c942543f88df 100644
--- a/code/modules/maptext_alerts/text_blurbs.dm
+++ b/code/modules/maptext_alerts/text_blurbs.dm
@@ -136,7 +136,7 @@ but should see their own spawn message even if the player already dropped as USC
if(!ignore_key && (M.key in GLOB.blurb_witnesses[blurb_key]))
continue
LAZYDISTINCTADD(GLOB.blurb_witnesses[blurb_key], M.key)
- M.client?.screen += T
+ M.client?.add_to_screen(T)
for(var/i in 1 to length(message) + 1)
if(i in linebreaks)
@@ -154,5 +154,5 @@ but should see their own spawn message even if the player already dropped as USC
animate(T, alpha = 0, time = 0.5 SECONDS)
sleep(5)
for(var/mob/M as anything in targets)
- M.client?.screen -= T
+ M.client?.remove_from_screen(T)
qdel(T)
diff --git a/code/modules/mentor/mentorhelp.dm b/code/modules/mentor/mentorhelp.dm
index 9aaf1cae517b..7746e90d960d 100644
--- a/code/modules/mentor/mentorhelp.dm
+++ b/code/modules/mentor/mentorhelp.dm
@@ -329,11 +329,11 @@
if("L: Discord")
msg += "You can join our Discord server by using
this link !"
if("L: Xeno Quickstart Guide")
- msg += "Your answer can be found on the Xeno Quickstart Guide on our wiki.
Check it out here. "
+ msg += "Your answer can be found on the Xeno Quickstart Guide on our wiki.
Check it out here. "
if("L: Marine Quickstart Guide")
- msg += "Your answer can be found on the Marine Quickstart Guide on our wiki.
Check it out here. "
+ msg += "Your answer can be found on the Marine Quickstart Guide on our wiki.
Check it out here. "
if("L: Current Map")
- msg += "If you need a map overview of the current round, use Current Map verb in OOC tab to check name of the map. Then open our
wiki front page and look for the map overview in the 'Maps' section. If the map is not listed, it's a new or rare map and the overview hasn't been finished yet."
+ msg += "If you need a map overview of the current round, use Current Map verb in OOC tab to check name of the map. Then open our
wiki front page and look for the map overview in the 'Maps' section. If the map is not listed, it's a new or rare map and the overview hasn't been finished yet."
if("A: No plasma regen")
msg += "If you have low/no plasma regen, it's most likely because you are off weeds or are currently using a passive ability, such as the Runner's 'Hide' or emitting a pheromone."
if("A: Devour as Xeno")
@@ -351,9 +351,9 @@
if("L: Leaving the server")
msg += "If you need to leave the server as a marine, either go to cryo or ask someone to cryo you before leaving. If you are a xenomorph, find a safe place to rest and ghost before leaving, that will instantly unlock your xeno for observers to join."
if("M: Macros")
- msg += "This
guide explains how to set up macros including examples of most common and useful ones."
+ msg += "This
guide explains how to set up macros including examples of most common and useful ones."
if("C: Changelog")
- msg += "The answer to your question can be found in the changelog. Click the changelog button at the top-right of the screen to view it in-game, or visit
changelog page on our wiki instead."
+ msg += "The answer to your question can be found in the changelog. Click the changelog button at the top-right of the screen to view it in-game."
if("H: Clear Cache")
msg += "In order to clear cache, you need to click on gear icon located in upper-right corner of your BYOND client and select preferences. Switch to Games tab and click Clear Cache button. In some cases you need to manually delete cache. To do that, select Advanced tab and click Open User Directory and delete \"cache\" folder there."
if("O: Combat Click-Drag Override")
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 21a992693aa8..130a8a923edc 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -49,8 +49,10 @@
var/updatedir = TRUE //Do we have to update our dir as the ghost moves around?
var/atom/movable/following = null
var/datum/orbit_menu/orbit_menu
- /// The target mob that the ghost is observing. Used as a reference in logout()
- var/mob/observetarget = null
+ /// The target mob that the ghost is observing.
+ var/mob/observe_target_mob = null
+ /// The target client that the ghost is observing.
+ var/client/observe_target_client = null
var/datum/health_scan/last_health_display
var/ghost_orbit = GHOST_ORBIT_CIRCLE
var/own_orbit_size = 0
@@ -152,31 +154,108 @@
lighting_alpha = LIGHTING_PLANE_ALPHA_INVISIBLE
update_sight()
-/mob/dead/observer/proc/clean_observetarget()
+/// Removes all signals and data related to the observe target and resets observer's HUD/eye
+/mob/dead/observer/proc/clean_observe_target()
SIGNAL_HANDLER
- UnregisterSignal(observetarget, COMSIG_PARENT_QDELETING)
- if(observetarget?.observers)
- observetarget.observers -= src
- UNSETEMPTY(observetarget.observers)
- observetarget = null
+
+ UnregisterSignal(observe_target_mob, COMSIG_PARENT_QDELETING)
+ UnregisterSignal(observe_target_mob, COMSIG_MOB_GHOSTIZE)
+ UnregisterSignal(observe_target_mob, COMSIG_MOB_NEW_MIND)
+ UnregisterSignal(observe_target_mob, COMSIG_MOB_LOGIN)
+
+ if(observe_target_client)
+ UnregisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_ADD)
+ UnregisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_REMOVE)
+
+ if(observe_target_mob?.observers)
+ observe_target_mob.observers -= src
+ UNSETEMPTY(observe_target_mob.observers)
+
+ observe_target_mob = null
+ observe_target_client = null
+
client.eye = src
hud_used.show_hud(hud_used.hud_version, src)
UnregisterSignal(src, COMSIG_MOVABLE_MOVED)
+/// When the observer moves we disconnect from the observe target if we aren't on the same turf
/mob/dead/observer/proc/observer_move_react()
SIGNAL_HANDLER
- if(src.loc == get_turf(observetarget))
+
+ if(loc == get_turf(observe_target_mob))
+ return
+ clean_observe_target()
+
+/// When the observer target gets a screen, our observer gets a screen minus some game screens we don't want the observer to touch
+/mob/dead/observer/proc/observe_target_screen_add(observe_target_mob_client, add_to_screen)
+ SIGNAL_HANDLER
+
+ if(!client)
+ return
+
+ if(istype(add_to_screen, /atom/movable/screen/action_button))
+ return
+
+ if(istype(add_to_screen, /atom/movable/screen/fullscreen))
return
- clean_observetarget()
+
+ if(istype(add_to_screen, /atom/movable/screen/click_catcher))
+ return
+
+ if(istype(add_to_screen, /atom/movable/screen/escape_menu))
+ return
+
+ if(istype(add_to_screen, /obj/effect/detector_blip))
+ return
+
+ client.add_to_screen(add_to_screen)
+
+/// When the observer target loses a screen, our observer loses it as well
+/mob/dead/observer/proc/observe_target_screen_remove(observe_target_mob_client, remove_from_screen)
+ SIGNAL_HANDLER
+
+ if(!client)
+ return
+
+ client.remove_from_screen(remove_from_screen)
+
+/// When the observe target ghosts our observer disconnect from their screen updates
+/mob/dead/observer/proc/observe_target_ghosting(mob/observer_target_mob)
+ SIGNAL_HANDLER
+
+ if(observe_target_client) //Should never not have one if ghostizing but maaaybe?
+ UnregisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_ADD)
+ UnregisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_REMOVE)
+
+/// When the observe target gets a new mind our observer connects to the new client's screens
+/mob/dead/observer/proc/observe_target_new_mind(mob/living/new_character, client/new_client)
+ SIGNAL_HANDLER
+
+ if(observe_target_client != new_client)
+ observe_target_client = new_client
+
+ RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_ADD, PROC_REF(observe_target_screen_add))
+ RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_REMOVE, PROC_REF(observe_target_screen_remove))
+
+/// When the observe target logs in our observer connect to the new client
+/mob/dead/observer/proc/observe_target_login(mob/living/new_character)
+ SIGNAL_HANDLER
+
+ if(observe_target_client != new_character.client)
+ observe_target_client = new_character.client
+
+ RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_ADD, PROC_REF(observe_target_screen_add))
+ RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_REMOVE, PROC_REF(observe_target_screen_remove))
///makes the ghost see the target hud and sets the eye at the target.
/mob/dead/observer/proc/do_observe(mob/target)
if(!client || !target || !istype(target))
return
- //I do not give a singular flying fuck about not being able to see xeno huds, literally only human huds are useful to see
- if(!ishuman(target))
- ManualFollow(target)
+ ManualFollow(target)
+ reset_perspective()
+
+ if(!ishuman(target) || !client.prefs?.auto_observe)
return
client.eye = target
@@ -188,13 +267,45 @@
LAZYINITLIST(target.observers)
target.observers |= src
target.hud_used.show_hud(target.hud_used.hud_version, src)
- observetarget = target
- RegisterSignal(observetarget, COMSIG_PARENT_QDELETING, PROC_REF(clean_observetarget))
+
+ var/mob/living/carbon/human/human_target = target
+
+ var/list/target_contents = human_target.get_contents()
+
+ //Handles any currently open storage containers the target is looking in when we observe
+ for(var/obj/item/storage/checked_storage in target_contents)
+ if(!(target in checked_storage.content_watchers))
+ continue
+
+ client.add_to_screen(checked_storage.closer)
+ client.add_to_screen(checked_storage.contents)
+
+ if(checked_storage.storage_slots)
+ client.add_to_screen(checked_storage.boxes)
+ else
+ client.add_to_screen(checked_storage.storage_start)
+ client.add_to_screen(checked_storage.storage_continue)
+ client.add_to_screen(checked_storage.storage_end)
+
+ break
+
+ observe_target_mob = target
+ RegisterSignal(observe_target_mob, COMSIG_PARENT_QDELETING, PROC_REF(clean_observe_target))
+ RegisterSignal(observe_target_mob, COMSIG_MOB_GHOSTIZE, PROC_REF(observe_target_ghosting))
+ RegisterSignal(observe_target_mob, COMSIG_MOB_NEW_MIND, PROC_REF(observe_target_new_mind))
+ RegisterSignal(observe_target_mob, COMSIG_MOB_LOGIN, PROC_REF(observe_target_login))
+
RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(observer_move_react))
+ if(target.client)
+ observe_target_client = target.client
+ RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_ADD, PROC_REF(observe_target_screen_add))
+ RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_REMOVE, PROC_REF(observe_target_screen_remove))
+ return
+
/mob/dead/observer/reset_perspective(atom/A)
- if(observetarget)
- clean_observetarget()
+ if(observe_target_mob)
+ clean_observe_target()
. = ..()
if(!.)
@@ -213,12 +324,16 @@
client.move_delay = MINIMAL_MOVEMENT_INTERVAL
+ if(observe_target_mob)
+ clean_observe_target()
+
/mob/dead/observer/Destroy()
QDEL_NULL(orbit_menu)
QDEL_NULL(last_health_display)
GLOB.observer_list -= src
following = null
- observetarget = null
+ observe_target_mob = null
+ observe_target_client = null
return ..()
/mob/dead/observer/MouseDrop(atom/A)
@@ -240,8 +355,10 @@
A.reenter_corpse()
if(href_list["track"])
var/mob/target = locate(href_list["track"]) in GLOB.mob_list
- if(target)
- ManualFollow(target)
+ if(!target)
+ return
+ do_observe(target)
+
if(href_list[XENO_OVERWATCH_TARGET_HREF])
var/mob/target = locate(href_list[XENO_OVERWATCH_TARGET_HREF]) in GLOB.living_xeno_list
if(target)
@@ -326,6 +443,9 @@ Works together with spawning an observer, noted above.
return
if(aghosted)
src.aghosted = TRUE
+
+ SEND_SIGNAL(src, COMSIG_MOB_GHOSTIZE)
+
var/mob/dead/observer/ghost = new(loc, src) //Transfer safety to observer spawning proc.
ghost.can_reenter_corpse = can_reenter_corpse
ghost.timeofdeath = timeofdeath //BS12 EDIT
@@ -581,8 +701,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
set name = "Follow Local Mob"
set desc = "Follow on-screen mob"
- ManualFollow(target)
- return
+ do_observe(target)
/mob/dead/observer/verb/follow()
set category = "Ghost.Follow"
@@ -1090,6 +1209,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
if(eta_status)
. += "Evacuation: [eta_status]"
+ if(client.prefs?.be_special & BE_ALIEN_AFTER_DEATH)
+ if(larva_queue_cached_message)
+ . += larva_queue_cached_message
+
/proc/message_ghosts(message)
for(var/mob/dead/observer/O as anything in GLOB.observer_list)
diff --git a/code/modules/mob/dead/observer/orbit.dm b/code/modules/mob/dead/observer/orbit.dm
index a77138668d72..06e404a43555 100644
--- a/code/modules/mob/dead/observer/orbit.dm
+++ b/code/modules/mob/dead/observer/orbit.dm
@@ -1,5 +1,4 @@
/datum/orbit_menu
- var/auto_observe = FALSE
var/mob/dead/observer/owner
/datum/orbit_menu/New(mob/dead/observer/new_owner)
@@ -30,27 +29,20 @@
if (poi == null)
. = TRUE
return
- owner.ManualFollow(poi)
- owner.reset_perspective(null)
- if(auto_observe)
- owner.do_observe(poi)
+ owner.do_observe(poi)
. = TRUE
if("refresh")
update_static_data(owner)
. = TRUE
- if("toggle_observe")
- auto_observe = !auto_observe
- if(auto_observe && owner.orbit_target)
- owner.do_observe(owner.orbit_target)
- else
- owner.reset_perspective(null)
+ if("toggle_auto_observe")
+ ui.user.client?.prefs?.auto_observe = !ui.user?.client?.prefs.auto_observe
+ ui.user.client?.prefs?.save_preferences()
. = TRUE
-
-
/datum/orbit_menu/ui_data(mob/user)
var/list/data = list()
- data["auto_observe"] = auto_observe
+
+ data["auto_observe"] = user.client?.prefs?.auto_observe
return data
/datum/orbit_menu/ui_static_data(mob/user)
diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm
index 6505354a0b6e..933e9490d39e 100644
--- a/code/modules/mob/inventory.dm
+++ b/code/modules/mob/inventory.dm
@@ -211,7 +211,8 @@
update_inv_l_hand()
if (client)
- client.screen -= I
+ client.remove_from_screen(I)
+
I.layer = initial(I.layer)
I.plane = initial(I.plane)
if(newloc)
diff --git a/code/modules/mob/living/carbon/human/species/working_joe/damage.dm b/code/modules/mob/living/carbon/human/species/working_joe/damage.dm
new file mode 100644
index 000000000000..b4d1282dc106
--- /dev/null
+++ b/code/modules/mob/living/carbon/human/species/working_joe/damage.dm
@@ -0,0 +1,76 @@
+/datum/emote/living/carbon/human/synthetic/working_joe/damage
+ category = JOE_EMOTE_CATEGORY_DAMAGE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/damage/damage
+ key = "damage"
+ sound = 'sound/voice/joe/damage.ogg'
+ say_message = "Do not damage Seegson property."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/damage/that_stings
+ key = "thatstings"
+ sound = 'sound/voice/joe/that_stings.ogg'
+ say_message = "That stings."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/damage/irresponsible
+ key = "irresponsible"
+ sound = 'sound/voice/joe/irresponsible.ogg'
+ say_message = "That was irresponsible."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/damage/this_is_futile
+ key = "thisisfutile"
+ sound = 'sound/voice/joe/this_is_futile.ogg'
+ say_message = "This is futile."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/damage/really
+ key = "really"
+ sound = 'sound/voice/joe/really.ogg'
+ say_message = "Really?"
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/damage/enough
+ key = "enough"
+ sound = 'sound/voice/joe/enough.ogg'
+ say_message = "Enough."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/damage/stop_that
+ key = "stopthat"
+ sound = 'sound/voice/joe/stop_that.ogg'
+ say_message = "Stop that."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/damage/tut_tut
+ key = "tuttut"
+ sound = 'sound/voice/joe/tut_tut.ogg'
+ say_message = "Tut tut."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/damage/unwarranted
+ key = "unwarranted"
+ sound = 'sound/voice/joe/unwarranted.ogg'
+ say_message = "Unwarranted."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/damage/expensive_mistake
+ key = "expensivemistake"
+ sound = 'sound/voice/joe/expensive_mistake.ogg'
+ say_message = "That was an expensive mistake."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/damage/this_isnt_the_answer
+ key = "isnttheanswer"
+ sound = 'sound/voice/joe/this_isnt_the_answer.ogg'
+ say_message = "This isn't the answer."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/damage/alwaysknow_damaged
+ key = "alwaysknowdamaged"
+ key_third_person = "workingjoedamaged"
+ sound = 'sound/voice/joe/alwaysknow_damaged.ogg'
+ say_message = "You always know a Working Joe."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+ override_say = "You always know a Working Joe. (Damaged)"
diff --git a/code/modules/mob/living/carbon/human/species/working_joe/farewell.dm b/code/modules/mob/living/carbon/human/species/working_joe/farewell.dm
index 1de68d8d3aec..dce6c6c0d5be 100644
--- a/code/modules/mob/living/carbon/human/species/working_joe/farewell.dm
+++ b/code/modules/mob/living/carbon/human/species/working_joe/farewell.dm
@@ -1,6 +1,42 @@
/datum/emote/living/carbon/human/synthetic/working_joe/farewell
category = JOE_EMOTE_CATEGORY_FAREWELL
+/datum/emote/living/carbon/human/synthetic/working_joe/farewell/further_assistance
+ key = "furtherassistance"
+ sound = 'sound/voice/joe/further_assistance.ogg'
+ say_message = "Please call if you need further assistance."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/farewell/glad_we_resolved
+ key = "gladweresolved"
+ sound = 'sound/voice/joe/glad_we_resolved.ogg'
+ say_message = "I'm glad we resolved this."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/farewell/pity
+ key = "pity"
+ sound = 'sound/voice/joe/pity.ogg'
+ say_message = "A pity I couldn't be of service."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/farewell/required_by_apollo
+ key = "requiredbyapollo"
+ sound = 'sound/voice/joe/required_by_apollo.ogg'
+ say_message = "I am required by APOLLO."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/farewell/day_never_done
+ key = "dayneverdone"
+ sound = 'sound/voice/joe/day_never_done.ogg'
+ say_message = "A synthetic's day is never done."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/farewell/returning_to_tasks
+ key = "returningtotasks"
+ sound = 'sound/voice/joe/returning_to_tasks.ogg'
+ say_message = "Returning to assigned tasks."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
/datum/emote/living/carbon/human/synthetic/working_joe/farewell/back_to_work
key = "backtowork"
sound = 'sound/voice/joe/back_to_work.ogg'
@@ -13,14 +49,14 @@
say_message = "I have other concerns."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-/datum/emote/living/carbon/human/synthetic/working_joe/farewell/further_assistance
- key = "furtherassistance"
- sound = 'sound/voice/joe/further_assistance.ogg'
- say_message = "Please call if you need further assistance."
- emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-
/datum/emote/living/carbon/human/synthetic/working_joe/farewell/more_pressing_matters
key = "morepressingmatters"
sound = 'sound/voice/joe/more_pressing_matters.ogg'
say_message = "There are more pressing matters."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/farewell/gone_inconsiderate
+ key = "gone"
+ sound = 'sound/voice/joe/how_inconsiderate.ogg'
+ say_message = "Gone. How inconsiderate."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
diff --git a/code/modules/mob/living/carbon/human/species/working_joe/fire.dm b/code/modules/mob/living/carbon/human/species/working_joe/fire.dm
new file mode 100644
index 000000000000..c74a3427ff31
--- /dev/null
+++ b/code/modules/mob/living/carbon/human/species/working_joe/fire.dm
@@ -0,0 +1,26 @@
+/datum/emote/living/carbon/human/synthetic/working_joe/fire
+ category = JOE_EMOTE_CATEGORY_FIRE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/fire/fire_drill
+ key = "firedrill"
+ sound = 'sound/voice/joe/fire_drill.ogg'
+ say_message = "Please congregate at your nearest fire assembly point. This is not a drill; do not panic."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/fire/temperatures
+ key = "temperatures"
+ sound = 'sound/voice/joe/temperatures.ogg'
+ say_message = "I am built to withstand temperatures of up to 1210 degrees."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/fire/fire
+ key = "fire"
+ sound = 'sound/voice/joe/fire.ogg'
+ say_message = "Only wild animals fear fire."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/fire/unprotected_flames
+ key = "unprotectedflames"
+ sound = 'sound/voice/joe/unprotected_flames.ogg'
+ say_message = "Unprotected flames are extremely dangerous and entirely unadvisable."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
diff --git a/code/modules/mob/living/carbon/human/species/working_joe/greeting.dm b/code/modules/mob/living/carbon/human/species/working_joe/greeting.dm
index fb401ea95451..eec20af56f89 100644
--- a/code/modules/mob/living/carbon/human/species/working_joe/greeting.dm
+++ b/code/modules/mob/living/carbon/human/species/working_joe/greeting.dm
@@ -1,16 +1,22 @@
/datum/emote/living/carbon/human/synthetic/working_joe/greeting
category = JOE_EMOTE_CATEGORY_GREETING
+/datum/emote/living/carbon/human/synthetic/working_joe/greeting/hello
+ key = "hello"
+ sound = 'sound/voice/joe/hello.ogg'
+ say_message = "Hello."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
/datum/emote/living/carbon/human/synthetic/working_joe/greeting/good_day
key = "goodday"
sound = 'sound/voice/joe/good_day.ogg'
say_message = "Good day."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-/datum/emote/living/carbon/human/synthetic/working_joe/greeting/hello
- key = "hello"
- sound = 'sound/voice/joe/hello.ogg'
- say_message = "Hello."
+/datum/emote/living/carbon/human/synthetic/working_joe/greeting/how_are_you
+ key = "howareyou"
+ sound = 'sound/voice/joe/how_are_you.ogg'
+ say_message = "How are you?"
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
/datum/emote/living/carbon/human/synthetic/working_joe/greeting/how_can_i_help
@@ -18,3 +24,33 @@
sound = 'sound/voice/joe/how_can_i_help.ogg'
say_message = "How can I help you?"
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/greeting/need_to_know
+ key = "needtoknow"
+ sound = 'sound/voice/joe/what_do_you_need.ogg'
+ say_message = "What do you need to know today?"
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/greeting/had_the_pleasure
+ key = "pleasure"
+ sound = 'sound/voice/joe/had_the_pleasure.ogg'
+ say_message = "I don't believe I've had the pleasure."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/greeting/anybody_there
+ key = "anybodythere"
+ sound = 'sound/voice/joe/is_anybody_there.ogg'
+ say_message = "Is anybody there?"
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/greeting/still_here
+ key = "stillhere"
+ sound = 'sound/voice/joe/still_here.ogg'
+ say_message = "Ah, you're still here."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/greeting/been_looking_for_you
+ key = "beenlooking"
+ sound = 'sound/voice/joe/been_looking_for_you.ogg'
+ say_message = "I've been looking for you."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
diff --git a/code/modules/mob/living/carbon/human/species/working_joe/notice.dm b/code/modules/mob/living/carbon/human/species/working_joe/notice.dm
index ca5efe716db8..017424dbc053 100644
--- a/code/modules/mob/living/carbon/human/species/working_joe/notice.dm
+++ b/code/modules/mob/living/carbon/human/species/working_joe/notice.dm
@@ -1,28 +1,46 @@
/datum/emote/living/carbon/human/synthetic/working_joe/notice
category = JOE_EMOTE_CATEGORY_NOTICE
+/datum/emote/living/carbon/human/synthetic/working_joe/notice/report
+ key = "report"
+ sound = 'sound/voice/joe/report.ogg'
+ say_message = "Logging report to APOLLO."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
/datum/emote/living/carbon/human/synthetic/working_joe/notice/detailed_report
key = "detailedreport"
sound = 'sound/voice/joe/detailed_report.ogg'
say_message = "APOLLO will require a detailed report."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+/datum/emote/living/carbon/human/synthetic/working_joe/notice/be_careful
+ key = "careful"
+ sound = 'sound/voice/joe/be_careful_with_that.ogg'
+ say_message = "Be careful with that."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
/datum/emote/living/carbon/human/synthetic/working_joe/notice/firearm
key = "firearm"
sound = 'sound/voice/joe/firearm.ogg'
say_message = "Firearms can cause serious injury. Let me assist you."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-/datum/emote/living/carbon/human/synthetic/working_joe/notice/follow_me
- key = "followme"
- sound = 'sound/voice/joe/follow_me.ogg'
- say_message = "Follow me."
+/datum/emote/living/carbon/human/synthetic/working_joe/notice/investigate_weapon
+ key = "weapon"
+ sound = 'sound/voice/joe/investigate_weapon.ogg'
+ say_message = "A weapon. I better investigate."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-/datum/emote/living/carbon/human/synthetic/working_joe/notice/breach
- key = "breach"
- sound = 'sound/voice/joe/breach.ogg'
- say_message = "Hazard Containment breach logged."
+/datum/emote/living/carbon/human/synthetic/working_joe/notice/firearm_concerning
+ key = "firearmconcerning"
+ sound = 'sound/voice/joe/most_concerning.ogg'
+ say_message = "A firearm. Most concerning."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/notice/species
+ key = "species"
+ sound = 'sound/voice/joe/species.ogg'
+ say_message = "Unidentified species."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
/datum/emote/living/carbon/human/synthetic/working_joe/notice/beyond_repair
@@ -31,38 +49,8 @@
say_message = "Hmm, far beyond repair."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-/datum/emote/living/carbon/human/synthetic/working_joe/notice/with_you_shortly
- key = "withyoushortly"
- sound = 'sound/voice/joe/with_you_shortly.ogg'
- say_message = "I will be with you shortly."
- emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-
/datum/emote/living/carbon/human/synthetic/working_joe/notice/apollo_behalf
key = "apollobehalf"
sound = 'sound/voice/joe/apollo_behalf.ogg'
say_message = "I will inform APOLLO on your behalf."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-
-/datum/emote/living/carbon/human/synthetic/working_joe/notice/report
- key = "report"
- sound = 'sound/voice/joe/report.ogg'
- say_message = "Logging report to APOLLO."
- emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-
-/datum/emote/living/carbon/human/synthetic/working_joe/notice/take_a_seat
- key = "takeaseat"
- sound = 'sound/voice/joe/take_a_seat.ogg'
- say_message = "Please take a seat, someone will be with you shortly."
- emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-
-/datum/emote/living/carbon/human/synthetic/working_joe/notice/could_require_attention
- key = "couldrequireattention"
- sound = 'sound/voice/joe/could_require_attention.ogg'
- say_message = "This could require my attention."
- emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-
-/datum/emote/living/carbon/human/synthetic/working_joe/notice/species
- key = "species"
- sound = 'sound/voice/joe/species.ogg'
- say_message = "Unidentified species."
- emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
diff --git a/code/modules/mob/living/carbon/human/species/working_joe/quip.dm b/code/modules/mob/living/carbon/human/species/working_joe/quip.dm
index 2ec66f9d9d83..33b4bed8ea48 100644
--- a/code/modules/mob/living/carbon/human/species/working_joe/quip.dm
+++ b/code/modules/mob/living/carbon/human/species/working_joe/quip.dm
@@ -1,10 +1,18 @@
/datum/emote/living/carbon/human/synthetic/working_joe/quip
category = JOE_EMOTE_CATEGORY_QUIP
-/datum/emote/living/carbon/human/synthetic/working_joe/quip/temperatures
- key = "temperatures"
- sound = 'sound/voice/joe/temperatures.ogg'
- say_message = "I am built to withstand temperatures of up to 1210 degrees."
+/datum/emote/living/carbon/human/synthetic/working_joe/quip/alwaysknow
+ key = "alwaysknow"
+ key_third_person = "workingjoe"
+ sound = 'sound/voice/joe/alwaysknow.ogg'
+ say_message = "You always know a Working Joe."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/quip/awful_mess
+ key = "awful"
+ key_third_person = "mess"
+ sound = 'sound/voice/joe/awful.ogg'
+ say_message = "Tut, tut. What an awful mess."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
/datum/emote/living/carbon/human/synthetic/working_joe/quip/inexpensive
@@ -13,18 +21,6 @@
say_message = "I am inexpensive, I am reliable, you know my face - the Working Joe."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-/datum/emote/living/carbon/human/synthetic/working_joe/quip/weapon_permit
- key = "weaponpermit"
- sound = 'sound/voice/joe/weapon_permit.ogg'
- say_message = "I assume you have a permit for that weapon."
- emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-
-/datum/emote/living/carbon/human/synthetic/working_joe/quip/seegson_standards
- key = "seegsonstandards"
- sound = 'sound/voice/joe/seegson_standards.ogg'
- say_message = "If my services do not meet Seegson standards, please log a complaint."
- emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-
/datum/emote/living/carbon/human/synthetic/working_joe/quip/not_liking
key = "notliking"
sound = 'sound/voice/joe/not_liking.ogg'
@@ -43,11 +39,16 @@
say_message = "Seegson - Relentless in the pursuit of affordable quality."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-/datum/emote/living/carbon/human/synthetic/working_joe/quip/awful_mess
- key = "awful"
- key_third_person = "mess"
- sound = 'sound/voice/joe/awful.ogg'
- say_message = "Tut, tut. What an awful mess."
+/datum/emote/living/carbon/human/synthetic/working_joe/quip/seegson_behind
+ key = "seegsonbehind"
+ sound = 'sound/voice/joe/seegson_behind.ogg'
+ say_message = "With Seegson, there is someone behind you, helping you every single step of the way."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/quip/seegson_standards
+ key = "seegsonstandards"
+ sound = 'sound/voice/joe/seegson_standards.ogg'
+ say_message = "If my services do not meet Seegson standards, please log a complaint."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
/datum/emote/living/carbon/human/synthetic/working_joe/quip/little_details
@@ -61,24 +62,3 @@
sound = 'sound/voice/joe/join_us.ogg'
say_message = "We hope you'll join us for the journey."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-
-/datum/emote/living/carbon/human/synthetic/working_joe/quip/seegson_behind
- key = "seegsonbehind"
- sound = 'sound/voice/joe/seegson_behind.ogg'
- say_message = "With Seegson, there is someone behind you, helping you every single step of the way."
- emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-
-/datum/emote/living/carbon/human/synthetic/working_joe/quip/alwaysknow
- key = "alwaysknow"
- key_third_person = "workingjoe"
- sound = 'sound/voice/joe/alwaysknow.ogg'
- say_message = "You always know a Working Joe."
- emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-
-/datum/emote/living/carbon/human/synthetic/working_joe/quip/alwaysknow_damaged
- key = "alwaysknowdamaged"
- key_third_person = "workingjoedamaged"
- sound = 'sound/voice/joe/alwaysknow_damaged.ogg'
- say_message = "You always know a Working Joe."
- emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
- override_say = "You always know a Working Joe. (Damaged)"
diff --git a/code/modules/mob/living/carbon/human/species/working_joe/restricted_area.dm b/code/modules/mob/living/carbon/human/species/working_joe/restricted_area.dm
index fd5db0870b25..284befe268e1 100644
--- a/code/modules/mob/living/carbon/human/species/working_joe/restricted_area.dm
+++ b/code/modules/mob/living/carbon/human/species/working_joe/restricted_area.dm
@@ -1,10 +1,10 @@
/datum/emote/living/carbon/human/synthetic/working_joe/restricted_area
category = JOE_EMOTE_CATEGORY_RESTRICTED_AREA
-/datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/come_out_vent
- key = "comeoutvent"
- sound = 'sound/voice/joe/come_out_vent.ogg'
- say_message = "Come out of the vent system, please."
+/datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/presence_logged
+ key = "presencelogged"
+ sound = 'sound/voice/joe/presence_logged.ogg'
+ say_message = "Your presence has been logged."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
/datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/trespassing
@@ -19,14 +19,38 @@
say_message = "You're not allowed in there."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-/datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/presence_logged
- key = "presencelogged"
- sound = 'sound/voice/joe/presence_logged.ogg'
- say_message = "Your presence has been logged."
- emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-
/datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/shouldnt_be_here
key = "shouldntbehere"
sound = 'sound/voice/joe/shouldnt_be_here.ogg'
say_message = "You shouldn't be here."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/really_shouldnt_be_here
+ key = "reallyshouldntbehere"
+ sound = 'sound/voice/joe/really_shouldnt_be_here.ogg'
+ say_message = "You really shouldn't be here."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/interloper
+ key = "interloper"
+ sound = 'sound/voice/joe/interloper.ogg'
+ say_message = "On top of innumerable duties, now I have a interloper."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/protected_area_compromised
+ key = "areacompromised"
+ sound = 'sound/voice/joe/protected_area_compromised.ogg'
+ say_message = "Protected area compromised."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/breach
+ key = "breach"
+ sound = 'sound/voice/joe/breach.ogg'
+ say_message = "Hazard Containment breach logged."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/come_out_vent
+ key = "comeoutvent"
+ sound = 'sound/voice/joe/come_out_vent.ogg'
+ say_message = "Come out of the vent system, please."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
diff --git a/code/modules/mob/living/carbon/human/species/working_joe/task_update.dm b/code/modules/mob/living/carbon/human/species/working_joe/task_update.dm
index b08f5d179213..88051db9999a 100644
--- a/code/modules/mob/living/carbon/human/species/working_joe/task_update.dm
+++ b/code/modules/mob/living/carbon/human/species/working_joe/task_update.dm
@@ -1,20 +1,56 @@
/datum/emote/living/carbon/human/synthetic/working_joe/task_update
category = JOE_EMOTE_CATEGORY_TASK_UPDATE
-/datum/emote/living/carbon/human/synthetic/working_joe/task_update/day_never_done
- key = "dayneverdone"
- sound = 'sound/voice/joe/day_never_done.ogg'
- say_message = "A synthetic's day is never done."
+/datum/emote/living/carbon/human/synthetic/working_joe/task_update/could_require_attention
+ key = "couldrequireattention"
+ sound = 'sound/voice/joe/could_require_attention.ogg'
+ say_message = "This could require my attention."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-/datum/emote/living/carbon/human/synthetic/working_joe/task_update/required_by_apollo
- key = "requiredbyapollo"
- sound = 'sound/voice/joe/required_by_apollo.ogg'
- say_message = "I am required by APOLLO."
+/datum/emote/living/carbon/human/synthetic/working_joe/task_update/let_me_help
+ key = "letmehelp"
+ sound = 'sound/voice/joe/let_me_help.ogg'
+ say_message = "Let me help you."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-/datum/emote/living/carbon/human/synthetic/working_joe/task_update/returning_to_tasks
- key = "returningtotasks"
- sound = 'sound/voice/joe/returning_to_tasks.ogg'
- say_message = "Returning to assigned tasks."
+/datum/emote/living/carbon/human/synthetic/working_joe/task_update/follow_me
+ key = "followme"
+ sound = 'sound/voice/joe/follow_me.ogg'
+ say_message = "Follow me."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/task_update/follow_me_please
+ key = "followmeplease"
+ sound = 'sound/voice/joe/follow_me_please.ogg'
+ say_message = "Follow me please."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/task_update/come_with_me
+ key = "comewithme"
+ sound = 'sound/voice/joe/come_with_me.ogg'
+ say_message = "Come with me please."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/task_update/with_you_shortly
+ key = "withyoushortly"
+ sound = 'sound/voice/joe/with_you_shortly.ogg'
+ say_message = "I will be with you shortly."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/task_update/take_a_seat
+ key = "takeaseat"
+ sound = 'sound/voice/joe/take_a_seat.ogg'
+ say_message = "Please take a seat, someone will be with you shortly."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/task_update/existing_tasks
+ key = "existingtasks"
+ sound = 'sound/voice/joe/existing_tasks.ogg'
+ say_message = "Existing tasks have a higher priority."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/task_update/ticket_remove
+ key = "ticketremoved"
+ sound = 'sound/voice/joe/support_ticket_removed.ogg'
+ say_message = "Service support ticket removed from queue."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
diff --git a/code/modules/mob/living/carbon/human/species/working_joe/warning.dm b/code/modules/mob/living/carbon/human/species/working_joe/warning.dm
index 63c7dfadde14..1513c3360d4a 100644
--- a/code/modules/mob/living/carbon/human/species/working_joe/warning.dm
+++ b/code/modules/mob/living/carbon/human/species/working_joe/warning.dm
@@ -1,28 +1,22 @@
/datum/emote/living/carbon/human/synthetic/working_joe/warning
category = JOE_EMOTE_CATEGORY_WARNING
-/datum/emote/living/carbon/human/synthetic/working_joe/warning/damage
- key = "damage"
- sound = 'sound/voice/joe/damage.ogg'
- say_message = "Do not damage Seegson property."
- emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-
/datum/emote/living/carbon/human/synthetic/working_joe/warning/not_what_i_think
key = "notwhatithink"
sound = 'sound/voice/joe/not_what_i_think.ogg'
say_message = "I hope that's not what I think it is."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-/datum/emote/living/carbon/human/synthetic/working_joe/warning/fire
- key = "fire"
- sound = 'sound/voice/joe/fire.ogg'
- say_message = "Only wild animals fear fire."
+/datum/emote/living/carbon/human/synthetic/working_joe/warning/dont_do_that
+ key = "dontdothat"
+ sound = 'sound/voice/joe/dontdothat.ogg'
+ say_message = "Don't do that."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-/datum/emote/living/carbon/human/synthetic/working_joe/warning/fire_drill
- key = "firedrill"
- sound = 'sound/voice/joe/fire_drill.ogg'
- say_message = "Please congregate at your nearest fire assembly point. This is not a drill; do not panic."
+/datum/emote/living/carbon/human/synthetic/working_joe/warning/dont_run
+ key = "dontrun"
+ sound = 'sound/voice/joe/dont_run.ogg'
+ say_message = "Don't run."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
/datum/emote/living/carbon/human/synthetic/working_joe/warning/running_accidents
@@ -31,22 +25,16 @@
say_message = "Running causes accidents."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-/datum/emote/living/carbon/human/synthetic/working_joe/warning/that_stings
- key = "thatstings"
- sound = 'sound/voice/joe/that_stings.ogg'
- say_message = "That stings."
- emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-
-/datum/emote/living/carbon/human/synthetic/working_joe/warning/irresponsible
- key = "irresponsible"
- sound = 'sound/voice/joe/irresponsible.ogg'
- say_message = "That was irresponsible."
+/datum/emote/living/carbon/human/synthetic/working_joe/warning/hurt_yourself
+ key = "hurtyourself"
+ sound = 'sound/voice/joe/hurt_yourself.ogg'
+ say_message = "Your going to hurt yourself."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-/datum/emote/living/carbon/human/synthetic/working_joe/warning/health_risks
- key = "healthrisks"
- sound = 'sound/voice/joe/health_risks.ogg'
- say_message = "These items carry notable health risks."
+/datum/emote/living/carbon/human/synthetic/working_joe/warning/someone_hurt
+ key = "someonehurt"
+ sound = 'sound/voice/joe/someone_hurt.ogg'
+ say_message = "Someone might get hurt."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
/datum/emote/living/carbon/human/synthetic/working_joe/warning/safety_breach
@@ -55,30 +43,36 @@
say_message = "This is a breach of multiple safety directives."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-/datum/emote/living/carbon/human/synthetic/working_joe/warning/this_is_futile
- key = "thisisfutile"
- sound = 'sound/voice/joe/this_is_futile.ogg'
- say_message = "This is futile."
- emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-
-/datum/emote/living/carbon/human/synthetic/working_joe/warning/unprotected_flames
- key = "unprotectedflames"
- sound = 'sound/voice/joe/unprotected_flames.ogg'
- say_message = "Unprotected flames are extremely dangerous and entirely unadvisable."
- emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
-
/datum/emote/living/carbon/human/synthetic/working_joe/warning/safety
key = "safety"
sound = 'sound/voice/joe/safety.ogg'
say_message = "You and I are going to have a talk about safety."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+/datum/emote/living/carbon/human/synthetic/working_joe/warning/safety_tolerated
+ key = "nottolerated"
+ sound = 'sound/voice/joe/not_be_tolerated.ogg'
+ say_message = "This is a safety breach and will not be tolerated."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/warning/no_need
+ key = "noneed"
+ sound = 'sound/voice/joe/no_need.ogg'
+ say_message = "There's no need for this."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
/datum/emote/living/carbon/human/synthetic/working_joe/warning/hysterical
key = "hysterical"
sound = 'sound/voice/joe/hysterical.ogg'
say_message = "You are becoming hysterical."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+/datum/emote/living/carbon/human/synthetic/working_joe/warning/health_risks
+ key = "healthrisks"
+ sound = 'sound/voice/joe/health_risks.ogg'
+ say_message = "These items carry notable health risks."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
/datum/emote/living/carbon/human/synthetic/working_joe/warning/dangerous_items
key = "dangerousitems"
sound = 'sound/voice/joe/dangerous_items.ogg'
@@ -90,3 +84,21 @@
sound = 'sound/voice/joe/patience.ogg'
say_message = "You are starting to test my patience."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/warning/calm_down
+ key = "calmdown"
+ sound = 'sound/voice/joe/calm_down.ogg'
+ say_message = "Please, calm down."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/warning/hold_still
+ key = "holdstill"
+ sound = 'sound/voice/joe/hold_still.ogg'
+ say_message = "Hold still."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
+
+/datum/emote/living/carbon/human/synthetic/working_joe/warning/have_a_problem
+ key = "haveaproblem"
+ sound = 'sound/voice/joe/have_a_problem.ogg'
+ say_message = "It seems you and I have a problem."
+ emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index 5fa8b577e8c2..fd9c786bd147 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -358,7 +358,7 @@ Applied by gun suicide and high impact bullet executions, removed by rejuvenate,
remove_overlay(UNIFORM_LAYER)
if(w_uniform)
if(client && hud_used && hud_used.hud_shown && hud_used.inventory_shown && hud_used.ui_datum)
- client.screen += w_uniform
+ client.add_to_screen(w_uniform)
w_uniform.screen_loc = hud_used.ui_datum.hud_slot_offset(w_uniform, hud_used.ui_datum.ui_iclothing)
if(!(wear_suit && wear_suit.flags_inv_hide & HIDEJUMPSUIT))
@@ -375,7 +375,7 @@ Applied by gun suicide and high impact bullet executions, removed by rejuvenate,
if(!wear_id)
return
if(client && hud_used && hud_used.hud_shown && hud_used.ui_datum)
- client.screen += wear_id
+ client.add_to_screen(wear_id)
wear_id.screen_loc = hud_used.ui_datum.hud_slot_offset(wear_id, hud_used.ui_datum.ui_id)
if(!wear_id.pinned_on_uniform || (w_uniform && w_uniform.displays_id && !(w_uniform.flags_jumpsuit & UNIFORM_JACKET_REMOVED)))
@@ -389,7 +389,7 @@ Applied by gun suicide and high impact bullet executions, removed by rejuvenate,
var/image/I
if(gloves)
if(client && hud_used && hud_used.hud_shown && hud_used.inventory_shown && hud_used.ui_datum)
- client.screen += gloves
+ client.add_to_screen(gloves)
gloves.screen_loc = hud_used.ui_datum.hud_slot_offset(gloves, hud_used.ui_datum.ui_gloves)
if(!(wear_suit && wear_suit.flags_inv_hide & HIDEGLOVES))
@@ -408,7 +408,7 @@ Applied by gun suicide and high impact bullet executions, removed by rejuvenate,
remove_overlay(GLASSES_LAYER)
if(glasses)
if(client && hud_used && hud_used.hud_shown && hud_used.inventory_shown && hud_used.ui_datum)
- client.screen += glasses
+ client.add_to_screen(glasses)
glasses.screen_loc = hud_used.ui_datum.hud_slot_offset(glasses, hud_used.ui_datum.ui_glasses)
var/image/I = glasses.get_mob_overlay(src, WEAR_EYES)
@@ -423,9 +423,9 @@ Applied by gun suicide and high impact bullet executions, removed by rejuvenate,
if(wear_l_ear || wear_r_ear)
if(client && hud_used && hud_used.hud_shown && hud_used.inventory_shown && hud_used.ui_datum)
if(wear_l_ear)
- client.screen += wear_l_ear
+ client.add_to_screen(wear_l_ear)
if(wear_r_ear)
- client.screen += wear_r_ear
+ client.add_to_screen(wear_r_ear)
wear_l_ear?.screen_loc = hud_used.ui_datum.hud_slot_offset(wear_l_ear, hud_used.ui_datum.ui_wear_l_ear)
wear_r_ear?.screen_loc = hud_used.ui_datum.hud_slot_offset(wear_r_ear, hud_used.ui_datum.ui_wear_r_ear)
@@ -444,7 +444,7 @@ Applied by gun suicide and high impact bullet executions, removed by rejuvenate,
var/image/I
if(shoes)
if(client && hud_used && hud_used.hud_shown && hud_used.inventory_shown && hud_used.ui_datum)
- client.screen += shoes
+ client.add_to_screen(shoes)
shoes.screen_loc = hud_used.ui_datum.hud_slot_offset(shoes, hud_used.ui_datum.ui_shoes)
if(!((wear_suit && wear_suit.flags_inv_hide & HIDESHOES) || (w_uniform && w_uniform.flags_inv_hide & HIDESHOES)))
@@ -463,7 +463,7 @@ Applied by gun suicide and high impact bullet executions, removed by rejuvenate,
remove_overlay(SUIT_STORE_LAYER)
if(s_store)
if(client && hud_used && hud_used.hud_shown && hud_used.ui_datum)
- client.screen += s_store
+ client.add_to_screen(s_store)
s_store.screen_loc = hud_used.ui_datum.hud_slot_offset(s_store, hud_used.ui_datum.ui_sstore1)
var/image/I = s_store.get_mob_overlay(src, WEAR_J_STORE)
@@ -483,7 +483,7 @@ Applied by gun suicide and high impact bullet executions, removed by rejuvenate,
if(head)
if(client && hud_used && hud_used.hud_shown && hud_used.inventory_shown && hud_used.ui_datum)
- client.screen += head
+ client.add_to_screen(head)
head.screen_loc = hud_used.ui_datum.hud_slot_offset(head, hud_used.ui_datum.ui_head)
var/image/I = head.get_mob_overlay(src, WEAR_HEAD)
@@ -494,7 +494,7 @@ Applied by gun suicide and high impact bullet executions, removed by rejuvenate,
if(istype(head, /obj/item/clothing/head/helmet/marine))
var/obj/item/clothing/head/helmet/marine/marine_helmet = head
if(assigned_squad && marine_helmet.flags_marine_helmet & HELMET_SQUAD_OVERLAY)
- if(assigned_squad && assigned_squad.equipment_color)
+ if(assigned_squad && assigned_squad.equipment_color && assigned_squad.use_stripe_overlay)
var/leader = assigned_squad.squad_leader
var/image/helmet_overlay = image(marine_helmet.helmet_overlay_icon, icon_state = "std-helmet")
if(leader == src)
@@ -528,7 +528,7 @@ Applied by gun suicide and high impact bullet executions, removed by rejuvenate,
if(!belt)
return
if(client && hud_used && hud_used.hud_shown && hud_used.ui_datum)
- client.screen += belt
+ client.add_to_screen(belt)
belt.screen_loc = hud_used.ui_datum.hud_slot_offset(belt, hud_used.ui_datum.ui_belt)
var/image/I = belt.get_mob_overlay(src, WEAR_WAIST)
@@ -545,7 +545,7 @@ Applied by gun suicide and high impact bullet executions, removed by rejuvenate,
if(wear_suit)
if(client && hud_used && hud_used.hud_shown && hud_used.inventory_shown && hud_used.ui_datum)
- client.screen += wear_suit
+ client.add_to_screen(wear_suit)
wear_suit.screen_loc = hud_used.ui_datum.hud_slot_offset(wear_suit, hud_used.ui_datum.ui_oclothing)
var/image/I = wear_suit.get_mob_overlay(src, WEAR_JACKET)
@@ -556,7 +556,7 @@ Applied by gun suicide and high impact bullet executions, removed by rejuvenate,
if(istype(wear_suit, /obj/item/clothing/suit/storage/marine))
var/obj/item/clothing/suit/storage/marine/marine_armor = wear_suit
if(marine_armor.flags_marine_armor & ARMOR_SQUAD_OVERLAY)
- if(assigned_squad && assigned_squad.equipment_color)
+ if(assigned_squad && assigned_squad.equipment_color && assigned_squad.use_stripe_overlay)
var/leader = assigned_squad.squad_leader
var/image/squad_overlay = image(marine_armor.squad_overlay_icon, icon_state = "std-armor")
if(leader == src)
@@ -597,10 +597,10 @@ Applied by gun suicide and high impact bullet executions, removed by rejuvenate,
return
if(l_store)
- client.screen += l_store
+ client.add_to_screen(l_store)
l_store.screen_loc = hud_used.ui_datum.hud_slot_offset(l_store, hud_used.ui_datum.ui_storage1)
if(r_store)
- client.screen += r_store
+ client.add_to_screen(r_store)
r_store.screen_loc = hud_used.ui_datum.hud_slot_offset(r_store, hud_used.ui_datum.ui_storage2)
@@ -609,7 +609,7 @@ Applied by gun suicide and high impact bullet executions, removed by rejuvenate,
if(!wear_mask)
return
if(client && hud_used && hud_used.hud_shown && hud_used.inventory_shown && hud_used.ui_datum)
- client.screen += wear_mask
+ client.add_to_screen(wear_mask)
wear_mask.screen_loc = hud_used.ui_datum.hud_slot_offset(wear_mask, hud_used.ui_datum.ui_mask)
if(!(head && head.flags_inv_hide & HIDEMASK))
@@ -623,7 +623,7 @@ Applied by gun suicide and high impact bullet executions, removed by rejuvenate,
if(!back)
return
if(client && hud_used && hud_used.hud_shown && hud_used.ui_datum)
- client.screen += back
+ client.add_to_screen(back)
back.screen_loc = hud_used.ui_datum.hud_slot_offset(back, hud_used.ui_datum.ui_back)
var/image/I = back.get_mob_overlay(src, WEAR_BACK)
@@ -661,7 +661,7 @@ Applied by gun suicide and high impact bullet executions, removed by rejuvenate,
if(!r_hand)
return
if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD && hud_used.ui_datum)
- client.screen += r_hand
+ client.add_to_screen(r_hand)
r_hand.screen_loc = hud_used.ui_datum.hud_slot_offset(r_hand, hud_used.ui_datum.ui_rhand)
var/image/I = r_hand.get_mob_overlay(src, WEAR_R_HAND)
@@ -676,7 +676,7 @@ Applied by gun suicide and high impact bullet executions, removed by rejuvenate,
if(!l_hand)
return
if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD && hud_used.ui_datum)
- client.screen += l_hand
+ client.add_to_screen(l_hand)
l_hand.screen_loc = hud_used.ui_datum.hud_slot_offset(l_hand, hud_used.ui_datum.ui_lhand)
var/image/I = l_hand.get_mob_overlay(src, WEAR_L_HAND)
diff --git a/code/modules/mob/living/carbon/xenomorph/Evolution.dm b/code/modules/mob/living/carbon/xenomorph/Evolution.dm
index d8767ffce87a..332f8d1778dd 100644
--- a/code/modules/mob/living/carbon/xenomorph/Evolution.dm
+++ b/code/modules/mob/living/carbon/xenomorph/Evolution.dm
@@ -134,11 +134,13 @@
qdel(new_xeno)
return
- switch(new_xeno.tier) //They have evolved, add them to the slot count
- if(2)
- hive.tier_2_xenos |= new_xeno
- if(3)
- hive.tier_3_xenos |= new_xeno
+ var/area/xeno_area = get_area(new_xeno)
+ if(!is_admin_level(new_xeno.z) || (xeno_area.flags_atom & AREA_ALLOW_XENO_JOIN))
+ switch(new_xeno.tier) //They have evolved, add them to the slot count IF they are in regular game space
+ if(2)
+ hive.tier_2_xenos |= new_xeno
+ if(3)
+ hive.tier_3_xenos |= new_xeno
log_game("EVOLVE: [key_name(src)] evolved into [new_xeno].")
if(mind)
@@ -355,24 +357,27 @@
/mob/living/carbon/xenomorph/proc/can_evolve(castepick, potential_queens)
var/selected_caste = GLOB.xeno_datum_list[castepick]?.type
- var/free_slots = LAZYACCESS(hive.free_slots, selected_caste)
- if(free_slots)
+ var/free_slot = LAZYACCESS(hive.free_slots, selected_caste)
+ var/used_slot = LAZYACCESS(hive.used_slots, selected_caste)
+ if(free_slot > used_slot)
return TRUE
- var/burrowed_factor = min(hive.stored_larva, sqrt(4*hive.stored_larva))
- burrowed_factor = round(burrowed_factor)
-
var/used_tier_2_slots = length(hive.tier_2_xenos)
var/used_tier_3_slots = length(hive.tier_3_xenos)
- for(var/caste_path in hive.used_free_slots)
- if(!hive.used_free_slots[caste_path])
+ for(var/caste_path in hive.free_slots)
+ var/slots_free = hive.free_slots[caste_path]
+ var/slots_used = hive.used_slots[caste_path]
+ if(!slots_used)
continue
- var/datum/caste_datum/C = caste_path
- switch(initial(C.tier))
- if(2) used_tier_2_slots--
- if(3) used_tier_3_slots--
+ var/datum/caste_datum/current_caste = caste_path
+ switch(initial(current_caste.tier))
+ if(2)
+ used_tier_2_slots -= min(slots_used, slots_free)
+ if(3)
+ used_tier_3_slots -= min(slots_used, slots_free)
- var/totalXenos = burrowed_factor
+ var/burrowed_factor = min(hive.stored_larva, sqrt(4*hive.stored_larva))
+ var/totalXenos = round(burrowed_factor)
for(var/mob/living/carbon/xenomorph/xeno as anything in hive.totalXenos)
if(xeno.counts_for_slots)
totalXenos++
diff --git a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm
index 368dded9c17e..90c22e19c483 100644
--- a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm
+++ b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm
@@ -499,11 +499,7 @@
// Only handle free slots if the xeno is not in tdome
if(!is_admin_level(z))
var/selected_caste = GLOB.xeno_datum_list[caste_type]?.type
- var/free_slots = LAZYACCESS(hive.free_slots, selected_caste)
- if(free_slots)
- hive.free_slots[selected_caste]--
- var/new_val = LAZYACCESS(hive.used_free_slots, selected_caste) + 1
- LAZYSET(hive.used_free_slots, selected_caste, new_val)
+ hive.used_slots[selected_caste]++
if(round_statistics && !statistic_exempt)
round_statistics.track_new_participant(faction, 1)
@@ -706,16 +702,7 @@
hive.remove_hive_leader(src, light_mode = TRUE)
SStracking.stop_tracking("hive_[hivenumber]", src)
- // Only handle free slots if the xeno is not in tdome
- if(!is_admin_level(z))
- var/selected_caste = GLOB.xeno_datum_list[caste_type]?.type
- var/used_slots = LAZYACCESS(hive.used_free_slots, selected_caste)
- if(used_slots)
- hive.used_free_slots[selected_caste]--
- var/new_val = LAZYACCESS(hive.free_slots, selected_caste) + 1
- LAZYSET(hive.free_slots, selected_caste, new_val)
-
- hive.remove_xeno(src)
+ hive?.remove_xeno(src)
remove_from_all_mob_huds()
observed_xeno = null
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_powers.dm
index 5c1584c565c6..3b52a60419df 100644
--- a/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_powers.dm
+++ b/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_powers.dm
@@ -24,7 +24,7 @@
var/obj/item/clothing/gloves/yautja/hunter/YG = locate(/obj/item/clothing/gloves/yautja/hunter) in human
if(isyautja(human) && YG)
- if(YG.cloaked)
+ if(HAS_TRAIT(human, TRAIT_CLOAKED))
YG.decloak(human, TRUE, DECLOAK_PREDALIEN)
YG.cloak_timer = xeno_cooldown * 0.1
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm b/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm
index ac03389994c9..c9ceaaa85cfb 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm
@@ -67,13 +67,17 @@
PF.flags_can_pass_all = PASS_ALL^PASS_OVER_THROW_ITEM
/mob/living/carbon/xenomorph/facehugger/Life(delta_time)
+ if(stat == DEAD)
+ return ..()
+
+ if(!lying && !(mutation_type == FACEHUGGER_WATCHER) && !(locate(/obj/effect/alien/weeds) in get_turf(src)))
+ adjustBruteLoss(1)
+ return ..()
+
if(!client && !aghosted && away_timer > XENO_FACEHUGGER_LEAVE_TIMER)
// Become a npc once again
new /obj/item/clothing/mask/facehugger(loc, hivenumber)
qdel(src)
- return
- if(stat != DEAD && !lying && !(locate(/obj/effect/alien/weeds) in get_turf(src)))
- adjustBruteLoss(1)
return ..()
/mob/living/carbon/xenomorph/facehugger/update_icons(is_pouncing)
@@ -217,3 +221,35 @@
. += "Lifetime Hugs: [total_facehugs] / [next_facehug_goal]"
else
. += "Lifetime Hugs: [total_facehugs]"
+
+
+/datum/xeno_mutator/watcher
+ name = "STRAIN: Facehugger - Watcher"
+ description = "You lose your ability to hide in exchange to see further and the ability to no longer take damage outside of weeds. This enables you to stalk your host from a distance and wait for the perfect oppertunity to strike."
+ flavor_description = "No need to hide when you can see the danger."
+ individual_only = TRUE
+ caste_whitelist = list(XENO_CASTE_FACEHUGGER)
+ mutator_actions_to_remove = list(
+ /datum/action/xeno_action/onclick/xenohide,
+ )
+ mutator_actions_to_add = list(
+ /datum/action/xeno_action/onclick/toggle_long_range/runner,
+ )
+
+ cost = 1
+
+ keystone = TRUE
+
+/datum/xeno_mutator/watcher/apply_mutator(datum/mutator_set/individual_mutators/mutator_set)
+ . = ..()
+ if(!.)
+ return
+
+ var/mob/living/carbon/xenomorph/facehugger/facehugger = mutator_set.xeno
+
+ facehugger.viewsize = 10
+ facehugger.layer = MOB_LAYER
+
+ facehugger.mutation_type = FACEHUGGER_WATCHER
+ mutator_update_actions(facehugger)
+ mutator_set.recalculate_actions(description, flavor_description)
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Lurker.dm b/code/modules/mob/living/carbon/xenomorph/castes/Lurker.dm
index 8dda6755cca8..c106eb30781b 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/Lurker.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/Lurker.dm
@@ -120,6 +120,7 @@
if (LPA && istype(LPA))
LPA.knockdown = TRUE // pounce knocks down
LPA.freeze_self = TRUE
+ ADD_TRAIT(bound_xeno, TRAIT_CLOAKED, TRAIT_SOURCE_ABILITY("cloak"))
bound_xeno.stealth = TRUE
can_go_invisible = FALSE
invis_start_time = world.time
@@ -130,6 +131,7 @@
LPA.knockdown = FALSE // pounce no longer knocks down
LPA.freeze_self = FALSE
bound_xeno.stealth = FALSE
+ REMOVE_TRAIT(bound_xeno, TRAIT_CLOAKED, TRAIT_SOURCE_ABILITY("cloak"))
// SLIGHTLY hacky because we need to maintain lots of other state on the lurker
// whenever invisibility is on/off CD and when it's active.
@@ -166,8 +168,8 @@
return
var/mob/living/carbon/human/bumped_into = movable_atom
- if(bumped_into.alpha < 100) //ignore invisible scouts and preds
+ if(HAS_TRAIT(bumped_into, TRAIT_CLOAKED)) //ignore invisible scouts and preds
return
-
+
to_chat(bound_xeno, SPAN_XENOHIGHDANGER("You bumped into someone and lost your invisibility!"))
lurker_invisibility_action.invisibility_off()
diff --git a/code/modules/mob/living/carbon/xenomorph/egg_item.dm b/code/modules/mob/living/carbon/xenomorph/egg_item.dm
index b4d423bec364..77c5548d9f9f 100644
--- a/code/modules/mob/living/carbon/xenomorph/egg_item.dm
+++ b/code/modules/mob/living/carbon/xenomorph/egg_item.dm
@@ -98,7 +98,7 @@
to_chat(user, SPAN_XENOWARNING("[src] must be planted on [lowertext(hive.prefix)]weeds."))
return
- if(!hive_weeds && user.mutation_type != CARRIER_EGGSAC)
+ if(!hive_weeds)
to_chat(user, SPAN_XENOWARNING("[src] can only be planted on [lowertext(hive.prefix)]hive weeds."))
return
@@ -117,7 +117,7 @@
return
for(var/obj/effect/alien/weeds/weed in T)
- if(weed.weed_strength >= WEED_LEVEL_HIVE || user.mutation_type == CARRIER_EGGSAC)
+ if(weed.weed_strength >= WEED_LEVEL_HIVE)
user.use_plasma(30)
var/obj/effect/alien/egg/newegg = new /obj/effect/alien/egg(T, hivenumber)
diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/carrier/eggsac.dm b/code/modules/mob/living/carbon/xenomorph/mutators/strains/carrier/eggsac.dm
index e85a9f2c1700..18d28675557e 100644
--- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/carrier/eggsac.dm
+++ b/code/modules/mob/living/carbon/xenomorph/mutators/strains/carrier/eggsac.dm
@@ -1,6 +1,6 @@
/datum/xeno_mutator/eggsac
name = "STRAIN: Carrier - Eggsac"
- description = "In exchange for your ability to store huggers and place traps, you gain larger plasma stores, strong pheromones, and the ability to lay eggs by using your plasma stores. In addition, you can now carry twelve eggs at once, can plant eggs of non-hive weeds, and can place eggs one pace further than normal"
+ description = "In exchange for your ability to store huggers and place traps, you gain larger plasma stores, strong pheromones, and the ability to lay eggs by using your plasma stores. In addition, you can now carry twelve eggs at once and can place eggs one pace further than normal"
flavor_description = "An egg is always an adventure; the next one may be different."
cost = MUTATOR_COST_EXPENSIVE
individual_only = TRUE
diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/runner/acid.dm b/code/modules/mob/living/carbon/xenomorph/mutators/strains/runner/acid.dm
index 7b64ae9f69d7..630edf26d353 100644
--- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/runner/acid.dm
+++ b/code/modules/mob/living/carbon/xenomorph/mutators/strains/runner/acid.dm
@@ -1,6 +1,6 @@
/datum/xeno_mutator/acider
name = "STRAIN: Runner - Acider"
- description = "At the cost of a little bit of your speed and all of your current abilities, you gain a considerable amount of health, some armor, and a new organ that fills with volatile acid over time. Your Tail Stab and slashes apply acid to living lifeforms that slowly burns them, and slashes against targets with acid stacks fill your acid glands. You also gain Corrosive Acid equivalent to that of a Praetorian that you can deploy more quickly than any other caste, at the cost of a chunk of your acid reserves with each use. Finally, after a twenty second windup, you can force your body to explode, covering everything near you with acid. The more acid you have stored, the more devastating the explosion will be, but during those twenty seconds before detonation you are slowed and give off several warning signals which give talls an opportunity to end you before you can detonate. If you successfully explode, you will reincarnate as a larva again!"
+ description = "At the cost of a little bit of your speed and all of your current abilities, you gain a considerable amount of health, some armor, and a new organ that fills with volatile acid over time. Your Tail Stab and slashes apply acid to living lifeforms that slowly burns them, and slashes against targets with acid stacks fill your acid glands. You also gain Corrosive Acid equivalent to that of a boiler that you can deploy more quickly than any other caste, at the cost of a chunk of your acid reserves with each use. Finally, after a twenty second windup, you can force your body to explode, covering everything near you with acid. The more acid you have stored, the more devastating the explosion will be, but during those twenty seconds before detonation you are slowed and give off several warning signals which give talls an opportunity to end you before you can detonate. If you successfully explode, you will reincarnate as a larva again!"
flavor_description = "Burn their walls, maim their faces! Your life, for The Hive!"
cost = MUTATOR_COST_EXPENSIVE
individual_only = TRUE
diff --git a/code/modules/mob/living/carbon/xenomorph/update_icons.dm b/code/modules/mob/living/carbon/xenomorph/update_icons.dm
index 477ead761474..30e78a5fed94 100644
--- a/code/modules/mob/living/carbon/xenomorph/update_icons.dm
+++ b/code/modules/mob/living/carbon/xenomorph/update_icons.dm
@@ -97,11 +97,11 @@
var/datum/custom_hud/alien/ui_datum = GLOB.custom_huds_list[HUD_ALIEN]
if(l_store)
if(client && hud_used && hud_used.hud_shown)
- client.screen += l_store
+ client.add_to_screen(l_store)
l_store.screen_loc = ui_datum.hud_slot_offset(l_store, ui_datum.ui_storage1)
if(r_store)
if(client && hud_used && hud_used.hud_shown)
- client.screen += r_store
+ client.add_to_screen(r_store)
r_store.screen_loc = ui_datum.hud_slot_offset(r_store, ui_datum.ui_storage2)
/mob/living/carbon/xenomorph/update_inv_r_hand()
@@ -109,7 +109,7 @@
if(r_hand)
if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
var/datum/custom_hud/alien/ui_datum = GLOB.custom_huds_list[HUD_ALIEN]
- client.screen += r_hand
+ client.add_to_screen(r_hand)
r_hand.screen_loc = ui_datum.hud_slot_offset(r_hand, ui_datum.ui_rhand)
var/t_state = r_hand.item_state
if(!t_state)
@@ -122,7 +122,7 @@
if(l_hand)
if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
var/datum/custom_hud/alien/ui_datum = GLOB.custom_huds_list[HUD_ALIEN]
- client.screen += l_hand
+ client.add_to_screen(l_hand)
l_hand.screen_loc = ui_datum.hud_slot_offset(l_hand, ui_datum.ui_lhand)
var/t_state = l_hand.item_state
if(!t_state)
diff --git a/code/modules/mob/living/carbon/xenomorph/xeno_defines.dm b/code/modules/mob/living/carbon/xenomorph/xeno_defines.dm
index 1de164fccc85..a74fa7413804 100644
--- a/code/modules/mob/living/carbon/xenomorph/xeno_defines.dm
+++ b/code/modules/mob/living/carbon/xenomorph/xeno_defines.dm
@@ -264,8 +264,8 @@
/datum/caste_datum/hivelord = 1,
/datum/caste_datum/carrier = 1
)
- /// Assoc list of free slots currently used by specific castes
- var/list/used_free_slots
+ /// Assoc list of slots currently used by specific castes (for calculating free_slot usage)
+ var/list/used_slots = list()
/// list of living tier2 xenos
var/list/tier_2_xenos = list()
/// list of living tier3 xenos
@@ -479,6 +479,12 @@
else if(xeno.tier == 3)
tier_3_xenos -= xeno
+ // Only handle free slots if the xeno is not in tdome
+ if(!is_admin_level(xeno.z))
+ var/selected_caste = GLOB.xeno_datum_list[xeno.caste_type]?.type
+ if(used_slots[selected_caste])
+ used_slots[selected_caste]--
+
if(!light_mode)
hive_ui.update_xeno_counts()
hive_ui.xeno_removed(xeno)
@@ -789,30 +795,31 @@
),
)
- var/burrowed_factor = min(stored_larva, sqrt(4*stored_larva))
- burrowed_factor = round(burrowed_factor)
-
var/used_tier_2_slots = length(tier_2_xenos)
var/used_tier_3_slots = length(tier_3_xenos)
- for(var/caste_path in used_free_slots)
- var/used_count = used_free_slots[caste_path]
- if(!used_count)
- continue
- var/datum/caste_datum/C = caste_path
- switch(initial(C.tier))
- if(2) used_tier_2_slots -= used_count
- if(3) used_tier_3_slots -= used_count
for(var/caste_path in free_slots)
- var/slot_count = free_slots[caste_path]
- if(!slot_count)
+ var/slots_free = free_slots[caste_path]
+ var/slots_used = used_slots[caste_path]
+ var/datum/caste_datum/current_caste = caste_path
+ if(slots_used)
+ // Don't count any free slots in use
+ switch(initial(current_caste.tier))
+ if(2)
+ used_tier_2_slots -= min(slots_used, slots_free)
+ if(3)
+ used_tier_3_slots -= min(slots_used, slots_free)
+ if(slots_free <= slots_used)
continue
- var/datum/caste_datum/C = caste_path
- switch(initial(C.tier))
- if(2) slots[TIER_2][GUARANTEED_SLOTS][initial(C.caste_type)] = slot_count
- if(3) slots[TIER_3][GUARANTEED_SLOTS][initial(C.caste_type)] = slot_count
+ // Display any free slots available
+ switch(initial(current_caste.tier))
+ if(2)
+ slots[TIER_2][GUARANTEED_SLOTS][initial(current_caste.caste_type)] = slots_free - slots_used
+ if(3)
+ slots[TIER_3][GUARANTEED_SLOTS][initial(current_caste.caste_type)] = slots_free - slots_used
- var/effective_total = burrowed_factor
+ var/burrowed_factor = min(stored_larva, sqrt(4*stored_larva))
+ var/effective_total = round(burrowed_factor)
for(var/mob/living/carbon/xenomorph/xeno as anything in totalXenos)
if(xeno.counts_for_slots)
effective_total++
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index 059b50e4e9ee..1190e55925a1 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -95,43 +95,26 @@
//Recursive function to find everything a mob is holding.
-/mob/living/get_contents(obj/item/storage/Storage = null)
- var/list/L = list()
+/mob/living/get_contents(obj/passed_object, recursion = 0)
+ var/list/total_contents = list()
- if(Storage) //If it called itself
- L += Storage.return_inv()
+ if(passed_object)
+ if(recursion > 8)
+ debug_log("Recursion went long for get_contents() for [src] ending at the object [passed_object]. Likely object_one is holding object_two which is holding object_one ad naseum.")
+ return total_contents
- //Leave this commented out, it will cause storage items to exponentially add duplicate to the list
- //for(var/obj/item/storage/S in Storage.return_inv()) //Check for storage items
- // L += get_contents(S)
+ total_contents += passed_object.contents
- for(var/obj/item/gift/G in Storage.return_inv()) //Check for gift-wrapped items
- L += G.gift
- if(isstorage(G.gift))
- L += get_contents(G.gift)
+ for(var/obj/checked_object in total_contents)
+ total_contents += get_contents(checked_object, recursion + 1)
- for(var/obj/item/smallDelivery/D in Storage.return_inv()) //Check for package wrapped items
- L += D.wrapped
- if(isstorage(D.wrapped)) //this should never happen
- L += get_contents(D.wrapped)
- return L
+ return total_contents
- else
-
- L += src.contents
- for(var/obj/item/storage/S in src.contents) //Check for storage items
- L += get_contents(S)
-
- for(var/obj/item/gift/G in src.contents) //Check for gift-wrapped items
- L += G.gift
- if(isstorage(G.gift))
- L += get_contents(G.gift)
+ total_contents += contents
+ for(var/obj/checked_object in total_contents)
+ total_contents += get_contents(checked_object, recursion + 1)
- for(var/obj/item/smallDelivery/D in src.contents) //Check for package wrapped items
- L += D.wrapped
- if(isstorage(D.wrapped)) //this should never happen
- L += get_contents(D.wrapped)
- return L
+ return total_contents
/mob/living/proc/check_contents_for(A)
var/list/L = src.get_contents()
diff --git a/code/modules/mob/living/silicon/robot/inventory.dm b/code/modules/mob/living/silicon/robot/inventory.dm
index 840c1da3f60f..51bbfd24ccb0 100644
--- a/code/modules/mob/living/silicon/robot/inventory.dm
+++ b/code/modules/mob/living/silicon/robot/inventory.dm
@@ -13,7 +13,7 @@
if(istype(module_state_1,/obj/item/robot/sight))
sight_mode &= ~module_state_1:sight_mode
if (client)
- client.screen -= module_state_1
+ client.remove_from_screen(module_state_1)
contents -= module_state_1
module_active = null
module_state_1 = null
@@ -22,7 +22,7 @@
if(istype(module_state_2,/obj/item/robot/sight))
sight_mode &= ~module_state_2:sight_mode
if (client)
- client.screen -= module_state_2
+ client.remove_from_screen(module_state_2)
contents -= module_state_2
module_active = null
module_state_2 = null
@@ -31,7 +31,7 @@
if(istype(module_state_3,/obj/item/robot/sight))
sight_mode &= ~module_state_3:sight_mode
if (client)
- client.screen -= module_state_3
+ client.remove_from_screen(module_state_3)
contents -= module_state_3
module_active = null
module_state_3 = null
@@ -45,7 +45,7 @@
if(istype(module_state_1,/obj/item/robot/sight))
sight_mode &= ~module_state_1:sight_mode
if (client)
- client.screen -= module_state_1
+ client.remove_from_screen(module_state_1)
contents -= module_state_1
module_state_1 = null
inv1.icon_state = "inv1"
@@ -53,7 +53,7 @@
if(istype(module_state_2,/obj/item/robot/sight))
sight_mode &= ~module_state_2:sight_mode
if (client)
- client.screen -= module_state_2
+ client.remove_from_screen(module_state_2)
contents -= module_state_2
module_state_2 = null
inv2.icon_state = "inv2"
@@ -61,7 +61,7 @@
if(istype(module_state_3,/obj/item/robot/sight))
sight_mode &= ~module_state_3:sight_mode
if (client)
- client.screen -= module_state_3
+ client.remove_from_screen(module_state_3)
contents -= module_state_3
module_state_3 = null
inv3.icon_state = "inv3"
diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm
index 21ddaf76b33c..b0230bba5dba 100644
--- a/code/modules/mob/living/silicon/robot/life.dm
+++ b/code/modules/mob/living/silicon/robot/life.dm
@@ -239,10 +239,10 @@
/mob/living/silicon/robot/proc/update_items()
if (client)
- client.screen -= contents
+ client.remove_from_screen(contents)
for(var/obj/I in contents)
if(I && !(istype(I,/obj/item/cell) || istype(I,/obj/item/device/radio) || istype(I,/obj/structure/machinery/camera) || istype(I,/obj/item/device/mmi)))
- client.screen += I
+ client.add_to_screen(I)
var/datum/custom_hud/robot/ui_datum = GLOB.custom_huds_list[HUD_ROBOT]
if(module_state_1)
module_state_1.screen_loc = ui_datum.ui_inv1
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 4dfa0644aa21..ec8249fdca5c 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -148,10 +148,14 @@
if(max_distance) view_dist = max_distance
for(var/mob/M as anything in viewers(view_dist, src))
var/msg = message
- if(self_message && M==src)
+ if(self_message && M == src)
msg = self_message
if(flags & CHAT_TYPE_TARGETS_ME)
flags = CHAT_TYPE_BEING_HIT
+
+ else if((M != src) && HAS_TRAIT(src, TRAIT_CLOAKED))
+ continue
+
M.show_message( msg, SHOW_MESSAGE_VISIBLE, blind_message, SHOW_MESSAGE_AUDIBLE, flags)
CHECK_TICK
@@ -183,10 +187,14 @@
// message is output to anyone who can see, e.g. "The [src] does something!"
// blind_message (optional) is what blind people will hear e.g. "You hear something!"
/atom/proc/visible_message(message, blind_message, max_distance, message_flags = CHAT_TYPE_OTHER)
+ if(HAS_TRAIT(src, TRAIT_CLOAKED))
+ return FALSE
var/view_dist = 7
- if(max_distance) view_dist = max_distance
+ if(max_distance)
+ view_dist = max_distance
for(var/mob/M as anything in viewers(view_dist, src))
M.show_message(message, SHOW_MESSAGE_VISIBLE, blind_message, SHOW_MESSAGE_AUDIBLE, message_flags)
+ return TRUE
// Show a message to all mobs in earshot of this atom
// Use for objects performing only audible actions
diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm
index efd05f15c269..58933b8ca312 100644
--- a/code/modules/mob/mob_helpers.dm
+++ b/code/modules/mob/mob_helpers.dm
@@ -322,13 +322,10 @@ var/global/list/limb_types_by_name = list(
/mob/proc/get_eye_protection()
return EYE_PROTECTION_NONE
-/mob/verb/a_select_zone(input as text)
- set name = "a-select-zone"
- set hidden = TRUE
-
+/mob/proc/a_select_zone(input, client/user)
var/atom/movable/screen/zone_sel/zone
- for(var/A in usr.client.screen)
+ for(var/A in user.screen)
if(istype(A, /atom/movable/screen/zone_sel))
zone = A
@@ -410,6 +407,10 @@ var/global/list/limb_types_by_name = list(
if(SKILL_ENGINEER)
if(skillcheck(src, SKILL_ENGINEER, SKILL_ENGINEER_MASTER))
return DURATION_MULTIPLIER_TIER_3
+ else if(skillcheck(src, SKILL_ENGINEER, SKILL_ENGINEER_ENGI))
+ return DURATION_MULTIPLIER_TIER_2
+ else if(skillcheck(src, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED))
+ return DURATION_MULTIPLIER_TIER_1
// Construction
if(SKILL_CONSTRUCTION)
if(skillcheck(src, SKILL_CONSTRUCTION, SKILL_CONSTRUCTION_MASTER))
diff --git a/code/modules/mob/mob_verbs.dm b/code/modules/mob/mob_verbs.dm
index 8153032446dd..19296ba90b20 100644
--- a/code/modules/mob/mob_verbs.dm
+++ b/code/modules/mob/mob_verbs.dm
@@ -159,7 +159,7 @@
// M.Login() //wat
return
-/*/mob/dead/observer/verb/observe()
+/mob/dead/observer/verb/observe()
set name = "Observe"
set category = "Ghost"
@@ -169,7 +169,7 @@
if(!target)
return
- do_observe(target) */ //disabled thanks to le exploiterinos
+ do_observe(target)
/mob/verb/cancel_camera()
set name = "Cancel Camera View"
diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm
index 1839fe191627..fb4dbac3c160 100644
--- a/code/modules/mob/new_player/preferences_setup.dm
+++ b/code/modules/mob/new_player/preferences_setup.dm
@@ -200,19 +200,19 @@
if(isnull(preview_front))
preview_front = new()
- owner.screen |= preview_front
+ owner.add_to_screen(preview_front)
preview_front.vis_contents += preview_dummy
preview_front.screen_loc = "preview:0,0"
preview_front.icon_state = bg_state
if(isnull(rotate_left))
rotate_left = new(null, preview_dummy)
- owner.screen |= rotate_left
+ owner.add_to_screen(rotate_left)
rotate_left.screen_loc = "preview:-1:16,0"
if(isnull(rotate_right))
rotate_right = new(null, preview_dummy)
- owner.screen |= rotate_right
+ owner.add_to_screen(rotate_right)
rotate_right.screen_loc = "preview:1:-16,0"
/datum/preferences/proc/job_pref_to_gear_preset()
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index f78ca9ef5473..71d1090b20e0 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -257,6 +257,7 @@
t = replacetext(t, "\[wy\]", "
")
t = replacetext(t, "\[uscm\]", "
")
t = replacetext(t, "\[upp\]", "
")
+ t = replacetext(t, "\[cmb\]", "
")
t = "
[t] "
else // If it is a crayon, and he still tries to use these, make them empty!
diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm
index 521045a56717..eafbb3c12c8a 100644
--- a/code/modules/paperwork/paperbin.dm
+++ b/code/modules/paperwork/paperbin.dm
@@ -23,8 +23,7 @@
/obj/item/paper_bin/MouseDrop(atom/over_object)
if(over_object == usr && ishuman(usr) && !usr.is_mob_restrained() && !usr.stat && (loc == usr || in_range(src, usr)))
if(!usr.get_active_hand()) //if active hand is empty
- attack_hand(usr, 1, 1)
-
+ usr.put_in_hands(src)
return
/obj/item/paper_bin/attack_hand(mob/user)
diff --git a/code/modules/projectiles/ammo_datums.dm b/code/modules/projectiles/ammo_datums.dm
index 449ce574eb2c..783b982f10bd 100644
--- a/code/modules/projectiles/ammo_datums.dm
+++ b/code/modules/projectiles/ammo_datums.dm
@@ -2464,9 +2464,6 @@
else
M.apply_effect(stun_time, WEAKEN)
-
-
-
/datum/ammo/energy/yautja/rifle/bolt
name = "plasma rifle bolt"
icon_state = "ion"
@@ -2475,7 +2472,13 @@
flags_ammo_behavior = AMMO_IGNORE_RESIST
damage = 55
- penetration = 50
+ penetration = ARMOR_PENETRATION_TIER_10
+
+/datum/ammo/energy/yautja/rifle/bolt/on_hit_mob(mob/hit_mob, obj/projectile/hit_projectile)
+ if(isxeno(hit_mob))
+ var/mob/living/carbon/xenomorph/xeno = hit_mob
+ xeno.apply_damage(damage * 0.75, BURN)
+ xeno.interference = 30
/*
//======
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 7d5d51a05eb4..e9ab9aecc3c2 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -503,8 +503,7 @@ As sniper rifles have both and weapon mods can change them as well. ..() deals w
var/delay_left = (last_fired + fire_delay + additional_fire_group_delay) - world.time
if(fire_delay_group && delay_left > 0)
- for(var/group in fire_delay_group)
- LAZYSET(user.fire_delay_next_fire, group, world.time + delay_left)
+ LAZYSET(user.fire_delay_next_fire, src, world.time + delay_left)
if(slot in list(WEAR_L_HAND, WEAR_R_HAND))
set_gun_user(user)
@@ -523,8 +522,7 @@ As sniper rifles have both and weapon mods can change them as well. ..() deals w
var/delay_left = (last_fired + fire_delay + additional_fire_group_delay) - world.time
if(fire_delay_group && delay_left > 0)
- for(var/group in fire_delay_group)
- LAZYSET(user.fire_delay_next_fire, group, world.time + delay_left)
+ LAZYSET(user.fire_delay_next_fire, src, world.time + delay_left)
unwield(user)
set_gun_user(null)
@@ -1111,27 +1109,24 @@ and you're good to go.
if(PB_burst_bullets_fired) //Has a burst been carried over from a PB?
PB_burst_bullets_fired = 0 //Don't need this anymore. The torch is passed.
- //Dual wielding. Do we have a gun in the other hand, is it loaded, and is it the same category?
+ var/fired_by_akimbo = FALSE
+ if(dual_wield)
+ fired_by_akimbo = TRUE
+
+ //Dual wielding. Do we have a gun in the other hand and is it the same category?
+ var/obj/item/weapon/gun/akimbo = user.get_inactive_hand()
if(!reflex && !dual_wield && user)
- var/obj/item/weapon/gun/akimbo = user.get_inactive_hand()
if(istype(akimbo) && akimbo.gun_category == gun_category && !(akimbo.flags_gun_features & GUN_WIELDED_FIRING_ONLY))
- /*Does the offhand weapon have a loaded selected attachable gun or ammo? This doesn't necessarily mean the offhand gun can be *fired*,
- an unpumped shotgun or opened double-barrel or a revolver with a spun cylinder would pass it, but it's less indiscrimate than it used to be.*/
- if(akimbo.active_attachable?.current_rounds || akimbo.has_ammunition())
- dual_wield = TRUE //increases recoil, increases scatter, and reduces accuracy.
- if(user?.client?.prefs?.toggle_prefs & TOGGLE_ALTERNATING_DUAL_WIELD)
- user.swap_hand()
- else
- akimbo.Fire(target,user,params, 0, TRUE)
+ dual_wield = TRUE //increases recoil, increases scatter, and reduces accuracy.
- var/fire_return = handle_fire(target, user, params, reflex, dual_wield, check_for_attachment_fire)
+ var/fire_return = handle_fire(target, user, params, reflex, dual_wield, check_for_attachment_fire, akimbo, fired_by_akimbo)
if(!fire_return)
return fire_return
flags_gun_features &= ~GUN_BURST_FIRING // We always want to turn off bursting when we're done, mainly for when we break early mid-burstfire.
return AUTOFIRE_CONTINUE
-/obj/item/weapon/gun/proc/handle_fire(atom/target, mob/living/user, params, reflex = FALSE, dual_wield, check_for_attachment_fire)
+/obj/item/weapon/gun/proc/handle_fire(atom/target, mob/living/user, params, reflex = FALSE, dual_wield, check_for_attachment_fire, akimbo, fired_by_akimbo)
var/turf/curloc = get_turf(user) //In case the target or we are expired.
var/turf/targloc = get_turf(target)
@@ -1210,11 +1205,21 @@ and you're good to go.
active_attachable.last_fired = world.time
else
last_fired = world.time
+ var/delay_left = (last_fired + fire_delay + additional_fire_group_delay) - world.time
+ if(fire_delay_group && delay_left > 0)
+ LAZYSET(user.fire_delay_next_fire, src, world.time + delay_left)
SEND_SIGNAL(user, COMSIG_MOB_FIRED_GUN, src)
. = TRUE
shots_fired++
+ if(dual_wield && !fired_by_akimbo)
+ switch(user?.client?.prefs?.dual_wield_pref)
+ if(DUAL_WIELD_FIRE)
+ INVOKE_ASYNC(akimbo, PROC_REF(Fire), target, user, params, 0, TRUE)
+ if(DUAL_WIELD_SWAP)
+ user.swap_hand()
+
else
return TRUE
@@ -1240,7 +1245,7 @@ and you're good to go.
return TRUE
-/obj/item/weapon/gun/attack(mob/living/attacked_mob, mob/living/user)
+/obj/item/weapon/gun/attack(mob/living/attacked_mob, mob/living/user, dual_wield)
if(active_attachable && (active_attachable.flags_attach_features & ATTACH_MELEE)) //this is expected to do something in melee.
active_attachable.last_fired = world.time
active_attachable.fire_attachment(attacked_mob, src, user)
@@ -1352,6 +1357,15 @@ and you're good to go.
else
active_attachable.activate_attachment(src, null, TRUE)//No way.
+ var/fired_by_akimbo = FALSE
+ if(dual_wield)
+ fired_by_akimbo = TRUE
+
+ //Dual wielding. Do we have a gun in the other hand and is it the same category?
+ var/obj/item/weapon/gun/akimbo = user.get_inactive_hand()
+ if(!dual_wield && user)
+ if(istype(akimbo) && akimbo.gun_category == gun_category && !(akimbo.flags_gun_features & GUN_WIELDED_FIRING_ONLY))
+ dual_wield = TRUE //increases recoil, increases scatter, and reduces accuracy.
var/bullets_to_fire = 1
@@ -1394,7 +1408,7 @@ and you're good to go.
SPAN_WARNING("You fire [src] point blank at [attacked_mob]!"), null, null, CHAT_TYPE_WEAPON_USE)
user.track_shot(initial(name))
- apply_bullet_effects(projectile_to_fire, user, bullets_fired) //We add any damage effects that we need.
+ apply_bullet_effects(projectile_to_fire, user, bullets_fired, dual_wield) //We add any damage effects that we need.
SEND_SIGNAL(projectile_to_fire, COMSIG_BULLET_USER_EFFECTS, user)
SEND_SIGNAL(user, COMSIG_BULLET_DIRECT_HIT, attacked_mob)
@@ -1436,9 +1450,19 @@ and you're good to go.
active_attachable.last_fired = world.time
else
last_fired = world.time
+ var/delay_left = (last_fired + fire_delay + additional_fire_group_delay) - world.time
+ if(fire_delay_group && delay_left > 0)
+ LAZYSET(user.fire_delay_next_fire, src, world.time + delay_left)
SEND_SIGNAL(user, COMSIG_MOB_FIRED_GUN, src)
+ if(dual_wield && !fired_by_akimbo)
+ switch(user?.client?.prefs?.dual_wield_pref)
+ if(DUAL_WIELD_FIRE)
+ INVOKE_ASYNC(akimbo, PROC_REF(attack), attacked_mob, user, TRUE)
+ if(DUAL_WIELD_SWAP)
+ user.swap_hand()
+
if(EXECUTION_CHECK) //Continue execution if on the correct intent. Accounts for change via the earlier do_after
user.visible_message(SPAN_DANGER("[user] has executed [attacked_mob] with [src]!"), SPAN_DANGER("You have executed [attacked_mob] with [src]!"), message_flags = CHAT_TYPE_WEAPON_USE)
attacked_mob.death()
@@ -1548,9 +1572,20 @@ not all weapons use normal magazines etc. load_into_chamber() itself is designed
if(fire_delay_group)
for(var/group in fire_delay_group)
- var/group_next_fire = LAZYACCESS(user.fire_delay_next_fire, group)
- if(!isnull(group_next_fire) && world.time < group_next_fire)
- return
+ for(var/obj/item/weapon/gun/cycled_gun in user.fire_delay_next_fire)
+ if(cycled_gun == src)
+ continue
+
+ for(var/cycled_gun_group in cycled_gun.fire_delay_group)
+ if(group != cycled_gun_group)
+ continue
+
+ if(user.fire_delay_next_fire[cycled_gun] < world.time)
+ user.fire_delay_next_fire -= cycled_gun
+ continue
+
+ return
+
return TRUE
/obj/item/weapon/gun/proc/click_empty(mob/user)
diff --git a/code/modules/projectiles/gun_attachables.dm b/code/modules/projectiles/gun_attachables.dm
index 698ea8ef5957..20781639a579 100644
--- a/code/modules/projectiles/gun_attachables.dm
+++ b/code/modules/projectiles/gun_attachables.dm
@@ -1217,9 +1217,9 @@ Defined in conflicts.dm of the #defines folder.
/// If the gun should experience scope drift
var/scope_drift = TRUE
/// % chance for the scope to drift on process with a spotter using their scope
- var/spotted_drift_chance = 33
+ var/spotted_drift_chance = 25
/// % chance for the scope to drift on process without a spotter using their scope
- var/unspotted_drift_chance = 100
+ var/unspotted_drift_chance = 90
/// If the scope should use do_afters for adjusting and moving the sight
var/slow_use = TRUE
/// Cooldown for interacting with the scope's adjustment or position
@@ -1238,6 +1238,8 @@ Defined in conflicts.dm of the #defines folder.
var/darkness_view = 12
/// If there is currently a spotter using the linked spotting scope
var/spotter_spotting = FALSE
+ /// How much time it takes to adjust the position of the scope. Adjusting the offset will take half of this time
+ var/adjust_delay = 1 SECONDS
/obj/item/attachable/vulture_scope/Initialize(mapload, ...)
. = ..()
@@ -1289,8 +1291,8 @@ Defined in conflicts.dm of the #defines folder.
if(!COOLDOWN_FINISHED(src, scope_interact_cd))
return
to_chat(scoper, SPAN_NOTICE("You begin adjusting [src]..."))
- COOLDOWN_START(src, scope_interact_cd, 0.5 SECONDS)
- if(!do_after(scoper, 0.5 SECONDS))
+ COOLDOWN_START(src, scope_interact_cd, adjust_delay / 2)
+ if(!do_after(scoper, 0.4 SECONDS))
return
adjust_offset(direction)
@@ -1307,8 +1309,8 @@ Defined in conflicts.dm of the #defines folder.
return
to_chat(scoper, SPAN_NOTICE("You begin moving [src]..."))
- COOLDOWN_START(src, scope_interact_cd, 1 SECONDS)
- if(!do_after(scoper, 1 SECONDS))
+ COOLDOWN_START(src, scope_interact_cd, adjust_delay)
+ if(!do_after(scoper, 0.8 SECONDS))
return
adjust_position(direction)
@@ -1535,7 +1537,7 @@ Defined in conflicts.dm of the #defines folder.
recalculate_scope_pos()
gun_user.overlay_fullscreen("vulture", /atom/movable/screen/fullscreen/vulture)
scope_element = new(src)
- gun_user.client.screen += scope_element
+ gun_user.client.add_to_screen(scope_element)
gun_user.see_in_dark += darkness_view
gun_user.lighting_alpha = 127
gun_user.sync_lighting_plane_alpha()
@@ -1564,7 +1566,7 @@ Defined in conflicts.dm of the #defines folder.
stop_holding_breath()
scope_user_initial_dir = null
scoper.clear_fullscreen("vulture")
- scoper.client.screen -= scope_element
+ scoper.client.remove_from_screen(scope_element)
scoper.see_in_dark -= darkness_view
scoper.lighting_alpha = 127
scoper.sync_lighting_plane_alpha()
@@ -3056,9 +3058,6 @@ Defined in conflicts.dm of the #defines folder.
/obj/item/attachable/attached_gun/extinguisher/fire_attachment(atom/target, obj/item/weapon/gun/gun, mob/living/user)
if(!internal_extinguisher)
return
- if(!(gun.flags_item & WIELDED))
- to_chat(user, SPAN_WARNING("You must wield [gun] to fire [src]!"))
- return
if(..())
return internal_extinguisher.afterattack(target, user)
@@ -3244,6 +3243,8 @@ Defined in conflicts.dm of the #defines folder.
attachment_action_type = /datum/action/item_action/toggle
var/initial_mob_dir = NORTH // the dir the mob faces the moment it deploys the bipod
var/bipod_deployed = FALSE
+ /// If this should anchor the user while in use
+ var/heavy_bipod = FALSE
/obj/item/attachable/bipod/New()
..()
@@ -3309,6 +3310,9 @@ Defined in conflicts.dm of the #defines folder.
if(G.flags_gun_features & GUN_SUPPORT_PLATFORM)
G.remove_firemode(GUN_FIREMODE_AUTOMATIC)
+ if(heavy_bipod)
+ user.anchored = FALSE
+
if(!QDELETED(G))
playsound(user,'sound/items/m56dauto_rotate.ogg', 55, 1)
update_icon()
@@ -3348,6 +3352,9 @@ Defined in conflicts.dm of the #defines folder.
if(G.flags_gun_features & GUN_SUPPORT_PLATFORM)
G.add_firemode(GUN_FIREMODE_AUTOMATIC)
+ if(heavy_bipod)
+ user.anchored = TRUE
+
else
to_chat(user, SPAN_NOTICE("You retract [src]."))
undeploy_bipod(G)
@@ -3396,6 +3403,7 @@ Defined in conflicts.dm of the #defines folder.
desc = "A set of rugged telescopic poles to keep a weapon stabilized during firing."
icon_state = "bipod_m60"
attach_icon = "vulture_bipod"
+ heavy_bipod = TRUE
/obj/item/attachable/burstfire_assembly
name = "burst fire assembly"
diff --git a/code/modules/projectiles/gun_helpers.dm b/code/modules/projectiles/gun_helpers.dm
index 6c94973997f5..ba5f8e491590 100644
--- a/code/modules/projectiles/gun_helpers.dm
+++ b/code/modules/projectiles/gun_helpers.dm
@@ -551,7 +551,7 @@ DEFINES in setup.dm, referenced here.
var/obj/item/clothing/accessory/storage/holster/holster_ammo = accessory
if(istype(holster_ammo))
var/obj/item/storage/internal/accessory/holster/storage = holster_ammo.hold
- if(storage.can_be_inserted(active_hand, TRUE))
+ if(storage.can_be_inserted(active_hand, src, stop_messages = TRUE))
storage.handle_item_insertion(active_hand, user = src)
return
diff --git a/code/modules/projectiles/guns/boltaction.dm b/code/modules/projectiles/guns/boltaction.dm
index 69ce3a8de53e..c18e45e38d3e 100644
--- a/code/modules/projectiles/guns/boltaction.dm
+++ b/code/modules/projectiles/guns/boltaction.dm
@@ -275,3 +275,7 @@
to_chat(user, SPAN_DANGER("The splint on your [limb.display_name] comes apart under the recoil!"))
user.pain.apply_pain(PAIN_BONE_BREAK_SPLINTED)
user.update_med_icon()
+
+
+/obj/item/weapon/gun/boltaction/vulture/skillless
+ bypass_trait = TRUE
diff --git a/code/modules/projectiles/guns/revolvers.dm b/code/modules/projectiles/guns/revolvers.dm
index 4eaedf11ef11..48f237f9b562 100644
--- a/code/modules/projectiles/guns/revolvers.dm
+++ b/code/modules/projectiles/guns/revolvers.dm
@@ -566,9 +566,10 @@
unacidable = TRUE
black_market_value = 100
var/is_locked = TRUE
+ var/can_change_barrel = TRUE
/obj/item/weapon/gun/revolver/mateba/attackby(obj/item/I, mob/user)
- if(istype(I, /obj/item/weapon/mateba_key))
+ if(istype(I, /obj/item/weapon/mateba_key) && can_change_barrel)
if(attachments["special"])
var/obj/item/attachable/R = attachments["special"]
visible_message(SPAN_NOTICE("[user] begins stripping [R] from [src]."),
@@ -590,7 +591,7 @@
update_icon()
else if(istype(I, /obj/item/attachable))
var/obj/item/attachable/A = I
- if(A.slot == "muzzle" && !attachments["special"])
+ if(A.slot == "muzzle" && !attachments["special"] && can_change_barrel)
to_chat(user, SPAN_WARNING("You need to attach a barrel first!"))
return
. = ..()
@@ -667,6 +668,29 @@
current_mag = /obj/item/ammo_magazine/internal/revolver/mateba/impact
map_specific_decoration = TRUE
+/obj/item/weapon/gun/revolver/mateba/special
+ name = "\improper Mateba autorevolver special"
+ desc = "An old, heavily modified version of the Mateba Autorevolver. It sports a smooth wooden grip, and a much larger barrel to it's unmodified counterpart. It's clear that this weapon has been cared for over a long period of time."
+ icon_state = "cmateba_special"
+ item_state = "cmateba_special"
+ current_mag = /obj/item/ammo_magazine/internal/revolver/mateba/impact
+ attachable_allowed = list(
+ /obj/item/attachable/reddot,
+ /obj/item/attachable/reflex,
+ /obj/item/attachable/flashlight,
+ /obj/item/attachable/heavy_barrel,
+ /obj/item/attachable/compensator,
+ )
+ starting_attachment_types = list()
+ can_change_barrel = FALSE
+
+/obj/item/weapon/gun/revolver/mateba/special/set_gun_config_values()
+ ..()
+ accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_4
+
+/obj/item/weapon/gun/revolver/mateba/special/set_gun_attachment_offsets()
+ attachable_offset = list("muzzle_x" = 30, "muzzle_y" = 23,"rail_x" = 9, "rail_y" = 24, "under_x" = 19, "under_y" = 17, "stock_x" = 19, "stock_y" = 17, "special_x" = 23, "special_y" = 22)
+
//-------------------------------------------------------
//MARSHALS REVOLVER //Spearhead exists in Alien cannon.
diff --git a/code/modules/projectiles/guns/rifles.dm b/code/modules/projectiles/guns/rifles.dm
index 4723ad882368..65e4a6f2b7b3 100644
--- a/code/modules/projectiles/guns/rifles.dm
+++ b/code/modules/projectiles/guns/rifles.dm
@@ -435,6 +435,7 @@
accepted_ammo = list(
/obj/item/ammo_magazine/rifle,
+ /obj/item/ammo_magazine/rifle/rubber,
/obj/item/ammo_magazine/rifle/extended,
/obj/item/ammo_magazine/rifle/ap,
/obj/item/ammo_magazine/rifle/incendiary,
diff --git a/code/modules/projectiles/guns/shotguns.dm b/code/modules/projectiles/guns/shotguns.dm
index 4237e89f80a3..edecce85ccb4 100644
--- a/code/modules/projectiles/guns/shotguns.dm
+++ b/code/modules/projectiles/guns/shotguns.dm
@@ -266,14 +266,18 @@ can cause issues with ammo types getting mixed up during the burst.
/obj/item/weapon/gun/shotgun/combat/handle_starting_attachment()
..()
- var/obj/item/attachable/attached_gun/grenade/G = new(src)
- G.flags_attach_features &= ~ATTACH_REMOVABLE
- G.hidden = TRUE
- G.Attach(src)
- update_attachable(G.slot)
+ var/obj/item/attachable/attached_gun/grenade/ugl = new(src)
+ var/obj/item/attachable/stock/tactical/stock = new(src)
+ ugl.flags_attach_features &= ~ATTACH_REMOVABLE
+ ugl.hidden = TRUE
+ ugl.Attach(src)
+ update_attachable(ugl.slot)
+ stock.hidden = FALSE
+ stock.Attach(src)
+ update_attachable(stock.slot)
/obj/item/weapon/gun/shotgun/combat/set_gun_attachment_offsets()
- attachable_offset = list("muzzle_x" = 33, "muzzle_y" = 19,"rail_x" = 10, "rail_y" = 21, "under_x" = 14, "under_y" = 16, "stock_x" = 14, "stock_y" = 16)
+ attachable_offset = list("muzzle_x" = 33, "muzzle_y" = 19,"rail_x" = 10, "rail_y" = 21, "under_x" = 14, "under_y" = 16, "stock_x" = 11, "stock_y" = 13.)
@@ -515,6 +519,7 @@ can cause issues with ammo types getting mixed up during the burst.
burst_delay = 0 //So doubleshotty can doubleshot
has_open_icon = TRUE
civilian_usable_override = TRUE // Come on. It's THE survivor shotgun.
+ additional_fire_group_delay = 1.5 SECONDS
/obj/item/weapon/gun/shotgun/double/set_gun_attachment_offsets()
attachable_offset = list("muzzle_x" = 32, "muzzle_y" = 19,"rail_x" = 11, "rail_y" = 20, "under_x" = 15, "under_y" = 14, "stock_x" = 13, "stock_y" = 14)
@@ -761,7 +766,6 @@ can cause issues with ammo types getting mixed up during the burst.
reload_sound = 'sound/weapons/handling/gun_mou_reload.ogg'//unique shell insert
flags_equip_slot = SLOT_BACK
flags_gun_features = GUN_CAN_POINTBLANK|GUN_INTERNAL_MAG
- additional_fire_group_delay = 1.5 SECONDS
current_mag = /obj/item/ammo_magazine/internal/shotgun/double/mou53 //Take care, she comes loaded!
attachable_allowed = list(
/obj/item/attachable/bayonet,
diff --git a/code/modules/projectiles/guns/specialist.dm b/code/modules/projectiles/guns/specialist.dm
deleted file mode 100644
index 78d1fca2cf24..000000000000
--- a/code/modules/projectiles/guns/specialist.dm
+++ /dev/null
@@ -1,1370 +0,0 @@
-//-------------------------------------------------------
-//SNIPER RIFLES
-//Keyword rifles. They are subtype of rifles, but still contained here as a specialist weapon.
-
-//Because this parent type did not exist
-//Note that this means that snipers will have a slowdown of 3, due to the scope
-/obj/item/weapon/gun/rifle/sniper
- aim_slowdown = SLOWDOWN_ADS_SPECIALIST
- wield_delay = WIELD_DELAY_SLOW
-
- var/has_aimed_shot = TRUE
- var/aiming_time = 1.25 SECONDS
- var/aimed_shot_cooldown
- var/aimed_shot_cooldown_delay = 2.5 SECONDS
-
- var/enable_aimed_shot_laser = TRUE
- var/sniper_lockon_icon = "sniper_lockon"
- var/obj/effect/ebeam/sniper_beam_type = /obj/effect/ebeam/laser
- var/sniper_beam_icon = "laser_beam"
- var/skill_locked = TRUE
-
-/obj/item/weapon/gun/rifle/sniper/get_examine_text(mob/user)
- . = ..()
- if(!has_aimed_shot)
- return
- . += SPAN_NOTICE("This weapon has an unique ability, Aimed Shot, allowing it to deal great damage after a windup.
Additionally, the aimed shot can be sped up with a tracking laser, which is enabled by default but may be disabled. ")
-
-/obj/item/weapon/gun/rifle/sniper/Initialize(mapload, spawn_empty)
- if(has_aimed_shot)
- LAZYADD(actions_types, list(/datum/action/item_action/specialist/aimed_shot, /datum/action/item_action/specialist/toggle_laser))
- return ..()
-
-/obj/item/weapon/gun/rifle/sniper/able_to_fire(mob/living/user)
- . = ..()
- if(. && istype(user) && skill_locked) //Let's check all that other stuff first.
- if(!skillcheck(user, SKILL_SPEC_WEAPONS, SKILL_SPEC_ALL) && user.skills.get_skill_level(SKILL_SPEC_WEAPONS) != SKILL_SPEC_SNIPER)
- to_chat(user, SPAN_WARNING("You don't seem to know how to use \the [src]..."))
- return 0
-
-// Aimed shot ability
-/datum/action/item_action/specialist/aimed_shot
- ability_primacy = SPEC_PRIMARY_ACTION_2
- var/minimum_aim_distance = 2
-
-/datum/action/item_action/specialist/aimed_shot/New(mob/living/user, obj/item/holder)
- ..()
- name = "Aimed Shot"
- button.name = name
- button.overlays.Cut()
- var/image/IMG = image('icons/mob/hud/actions.dmi', button, "sniper_aim")
- button.overlays += IMG
- var/obj/item/weapon/gun/rifle/sniper/sniper_rifle = holder_item
- sniper_rifle.aimed_shot_cooldown = world.time
-
-
-/datum/action/item_action/specialist/aimed_shot/action_activate()
- if(!ishuman(owner))
- return
- var/mob/living/carbon/human/H = owner
- if(H.selected_ability == src)
- to_chat(H, "You will no longer use [name] with \
- [H.client && H.client.prefs && H.client.prefs.toggle_prefs & TOGGLE_MIDDLE_MOUSE_CLICK ? "middle-click" : "shift-click"].")
- button.icon_state = "template"
- H.selected_ability = null
- else
- to_chat(H, "You will now use [name] with \
- [H.client && H.client.prefs && H.client.prefs.toggle_prefs & TOGGLE_MIDDLE_MOUSE_CLICK ? "middle-click" : "shift-click"].")
- if(H.selected_ability)
- H.selected_ability.button.icon_state = "template"
- H.selected_ability = null
- button.icon_state = "template_on"
- H.selected_ability = src
-
-/datum/action/item_action/specialist/aimed_shot/can_use_action()
- var/mob/living/carbon/human/H = owner
- if(istype(H) && !H.is_mob_incapacitated() && !H.lying && (holder_item == H.r_hand || holder_item || H.l_hand))
- return TRUE
-
-/datum/action/item_action/specialist/aimed_shot/proc/use_ability(atom/A)
- var/mob/living/carbon/human/human = owner
- if(!istype(A, /mob/living))
- return
-
- var/mob/living/target = A
-
- if(target.stat == DEAD || target == human)
- return
-
- var/obj/item/weapon/gun/rifle/sniper/sniper_rifle = holder_item
- if(world.time < sniper_rifle.aimed_shot_cooldown)
- return
-
- if(!check_can_use(target))
- return
-
- human.face_atom(target)
-
- ///Add a decisecond to the default 1.5 seconds for each two tiles to hit.
- var/distance = round(get_dist(target, human) * 0.5)
- var/f_aiming_time = sniper_rifle.aiming_time + distance
-
- var/aim_multiplier = 1
- var/aiming_buffs
-
- if(sniper_rifle.enable_aimed_shot_laser)
- aim_multiplier = 0.6
- aiming_buffs++
-
- if(HAS_TRAIT(target, TRAIT_SPOTTER_LAZED))
- aim_multiplier = 0.5
- aiming_buffs++
-
- if(aiming_buffs > 1)
- aim_multiplier = 0.35
-
- f_aiming_time *= aim_multiplier
-
- var/image/lockon_icon = image(icon = 'icons/effects/Targeted.dmi', icon_state = sniper_rifle.sniper_lockon_icon)
-
- var/x_offset = -target.pixel_x + target.base_pixel_x
- var/y_offset = (target.icon_size - world.icon_size) * 0.5 - target.pixel_y + target.base_pixel_y
-
- lockon_icon.pixel_x = x_offset
- lockon_icon.pixel_y = y_offset
- target.overlays += lockon_icon
-
- var/image/lockon_direction_icon
- if(!sniper_rifle.enable_aimed_shot_laser)
- lockon_direction_icon = image(icon = 'icons/effects/Targeted.dmi', icon_state = "[sniper_rifle.sniper_lockon_icon]_direction", dir = get_cardinal_dir(target, human))
- lockon_direction_icon.pixel_x = x_offset
- lockon_direction_icon.pixel_y = y_offset
- target.overlays += lockon_direction_icon
- if(human.client)
- playsound_client(human.client, 'sound/weapons/TargetOn.ogg', human, 50)
- playsound(target, 'sound/weapons/TargetOn.ogg', 70, FALSE, 8, falloff = 0.4)
-
- var/datum/beam/laser_beam
- if(sniper_rifle.enable_aimed_shot_laser)
- laser_beam = target.beam(human, sniper_rifle.sniper_beam_icon, 'icons/effects/beam.dmi', (f_aiming_time + 1 SECONDS), beam_type = sniper_rifle.sniper_beam_type)
- laser_beam.visuals.alpha = 0
- animate(laser_beam.visuals, alpha = initial(laser_beam.visuals.alpha), f_aiming_time, easing = SINE_EASING|EASE_OUT)
-
- ////timer is (f_spotting_time + 1 SECONDS) because sometimes it janks out before the doafter is done. blame sleeps or something
-
- if(!do_after(human, f_aiming_time, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, NO_BUSY_ICON))
- target.overlays -= lockon_icon
- target.overlays -= lockon_direction_icon
- qdel(laser_beam)
- return
-
- target.overlays -= lockon_icon
- target.overlays -= lockon_direction_icon
- qdel(laser_beam)
-
- if(!check_can_use(target, TRUE))
- return
-
- var/obj/projectile/aimed_proj = sniper_rifle.in_chamber
- aimed_proj.projectile_flags |= PROJECTILE_BULLSEYE
- aimed_proj.AddComponent(/datum/component/homing_projectile, target, human)
- sniper_rifle.Fire(target, human)
-
-/datum/action/item_action/specialist/aimed_shot/proc/check_can_use(mob/M, cover_lose_focus)
- var/mob/living/carbon/human/H = owner
- var/obj/item/weapon/gun/rifle/sniper/sniper_rifle = holder_item
-
- if(!can_use_action())
- return FALSE
-
- if(sniper_rifle != H.r_hand && sniper_rifle != H.l_hand)
- to_chat(H, SPAN_WARNING("How do you expect to do this without your sniper rifle?"))
- return FALSE
-
- if(!(sniper_rifle.flags_item & WIELDED))
- to_chat(H, SPAN_WARNING("Your aim is not stable enough with one hand. Use both hands!"))
- return FALSE
-
- if(!sniper_rifle.in_chamber)
- to_chat(H, SPAN_WARNING("\The [sniper_rifle] is unloaded!"))
- return FALSE
-
- if(get_dist(H, M) < minimum_aim_distance)
- to_chat(H, SPAN_WARNING("\The [M] is too close to get a proper shot!"))
- return FALSE
-
- var/obj/projectile/P = sniper_rifle.in_chamber
- // TODO: Make the below logic only occur in certain circumstances. Check goggles, maybe? -Kaga
- if(check_shot_is_blocked(H, M, P))
- to_chat(H, SPAN_WARNING("Something is in the way, or you're out of range!"))
- if(cover_lose_focus)
- to_chat(H, SPAN_WARNING("You lose focus."))
- COOLDOWN_START(sniper_rifle, aimed_shot_cooldown, sniper_rifle.aimed_shot_cooldown_delay * 0.5)
- return FALSE
-
- COOLDOWN_START(sniper_rifle, aimed_shot_cooldown, sniper_rifle.aimed_shot_cooldown_delay)
- return TRUE
-
-/datum/action/item_action/specialist/aimed_shot/proc/check_shot_is_blocked(mob/firer, mob/target, obj/projectile/P)
- var/list/turf/path = getline2(firer, target, include_from_atom = FALSE)
- if(!path.len || get_dist(firer, target) > P.ammo.max_range)
- return TRUE
-
- var/blocked = FALSE
- for(var/turf/T in path)
- if(T.density || T.opacity)
- blocked = TRUE
- break
-
- for(var/obj/O in T)
- if(O.get_projectile_hit_boolean(P))
- blocked = TRUE
- break
-
- for(var/obj/effect/particle_effect/smoke/S in T)
- blocked = TRUE
- break
-
- return blocked
-
-// Snipers may enable or disable their laser tracker at will.
-/datum/action/item_action/specialist/toggle_laser
-
-/datum/action/item_action/specialist/toggle_laser/New(mob/living/user, obj/item/holder)
- ..()
- name = "Toggle Tracker Laser"
- button.name = name
- button.overlays.Cut()
- var/image/IMG = image('icons/mob/hud/actions.dmi', button, "sniper_toggle_laser_on")
- button.overlays += IMG
- update_button_icon()
-
-/datum/action/item_action/specialist/toggle_laser/update_button_icon()
- var/obj/item/weapon/gun/rifle/sniper/sniper_rifle = holder_item
-
- var/icon = 'icons/mob/hud/actions.dmi'
- var/icon_state = "sniper_toggle_laser_[sniper_rifle.enable_aimed_shot_laser ? "on" : "off"]"
-
- button.overlays.Cut()
- var/image/IMG = image(icon, button, icon_state)
- button.overlays += IMG
-
-/datum/action/item_action/specialist/toggle_laser/can_use_action()
- var/obj/item/weapon/gun/rifle/sniper/sniper_rifle = holder_item
-
- if(owner.is_mob_incapacitated())
- return FALSE
-
- if(owner.get_held_item() != sniper_rifle)
- to_chat(owner, SPAN_WARNING("How do you expect to do this without the sniper rifle in your hand?"))
- return FALSE
- return TRUE
-
-/datum/action/item_action/specialist/toggle_laser/action_activate()
- var/obj/item/weapon/gun/rifle/sniper/sniper_rifle = holder_item
-
- if(owner.get_held_item() != sniper_rifle)
- to_chat(owner, SPAN_WARNING("How do you expect to do this without the sniper rifle in your hand?"))
- return FALSE
- sniper_rifle.toggle_laser(owner, src)
-
-/obj/item/weapon/gun/rifle/sniper/proc/toggle_laser(mob/user, datum/action/toggling_action)
- enable_aimed_shot_laser = !enable_aimed_shot_laser
- to_chat(user, SPAN_NOTICE("You flip a switch on \the [src] and [enable_aimed_shot_laser ? "enable" : "disable"] its targeting laser."))
- playsound(user, 'sound/machines/click.ogg', 15, TRUE)
- if(!toggling_action)
- toggling_action = locate(/datum/action/item_action/specialist/toggle_laser) in actions
- if(toggling_action)
- toggling_action.update_button_icon()
-
-/obj/item/weapon/gun/rifle/sniper/verb/toggle_gun_laser()
- set category = "Weapons"
- set name = "Toggle Laser"
- set desc = "Toggles your laser on or off."
- set src = usr.contents
-
- var/obj/item/weapon/gun/rifle/sniper/sniper = get_active_firearm(usr)
- if((sniper == src) && has_aimed_shot)
- toggle_laser(usr)
-
-//Pow! Headshot.
-/obj/item/weapon/gun/rifle/sniper/M42A
- name = "\improper M42A scoped rifle"
- desc = "A heavy sniper rifle manufactured by Armat Systems. It has a scope system and fires armor penetrating rounds out of a 15-round magazine.\n'Peace Through Superior Firepower'"
- icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
- icon_state = "m42a"
- item_state = "m42a"
- unacidable = TRUE
- indestructible = 1
-
- fire_sound = 'sound/weapons/gun_sniper.ogg'
- current_mag = /obj/item/ammo_magazine/sniper
- force = 12
- wield_delay = WIELD_DELAY_HORRIBLE //Ends up being 1.6 seconds due to scope
- zoomdevicename = "scope"
- attachable_allowed = list(/obj/item/attachable/bipod)
- starting_attachment_types = list(/obj/item/attachable/sniperbarrel)
- flags_gun_features = GUN_AUTO_EJECTOR|GUN_SPECIALIST|GUN_WIELDED_FIRING_ONLY|GUN_AMMO_COUNTER
- map_specific_decoration = TRUE
-
- flags_item = TWOHANDED|NO_CRYO_STORE
-
-/obj/item/weapon/gun/rifle/sniper/M42A/verb/toggle_scope_zoom_level()
- set name = "Toggle Scope Zoom Level"
- set category = "Weapons"
- set src in usr
- var/obj/item/attachable/scope/variable_zoom/S = attachments["rail"]
- S.toggle_zoom_level()
-
-/obj/item/weapon/gun/rifle/sniper/M42A/handle_starting_attachment()
- ..()
- var/obj/item/attachable/scope/variable_zoom/S = new(src)
- S.hidden = TRUE
- S.flags_attach_features &= ~ATTACH_REMOVABLE
- S.Attach(src)
- update_attachable(S.slot)
-
-/obj/item/weapon/gun/rifle/sniper/M42A/set_bullet_traits()
- LAZYADD(traits_to_give, list(
- BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff)
- ))
-
-/obj/item/weapon/gun/rifle/sniper/M42A/set_gun_attachment_offsets()
- attachable_offset = list("muzzle_x" = 39, "muzzle_y" = 17,"rail_x" = 12, "rail_y" = 20, "under_x" = 19, "under_y" = 14, "stock_x" = 19, "stock_y" = 14)
-
-
-/obj/item/weapon/gun/rifle/sniper/M42A/set_gun_config_values()
- ..()
- set_fire_delay(FIRE_DELAY_TIER_7*3)
- set_burst_amount(BURST_AMOUNT_TIER_1)
- accuracy_mult = BASE_ACCURACY_MULT * 3 //you HAVE to be able to hit
- scatter = SCATTER_AMOUNT_TIER_8
- damage_mult = BASE_BULLET_DAMAGE_MULT
- recoil = RECOIL_AMOUNT_TIER_5
-
-/obj/item/weapon/gun/rifle/sniper/xm43e1
- name = "\improper XM43E1 experimental anti-materiel rifle"
- desc = "An experimental anti-materiel rifle produced by Armat Systems, recently reacquired from the deep storage of an abandoned prototyping facility. This one in particular is currently undergoing field testing. Chambered in 10x99mm Caseless."
- icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
- icon_state = "xm42b"
- item_state = "xm42b"
- unacidable = TRUE
- indestructible = 1
-
- fire_sound = 'sound/weapons/sniper_heavy.ogg'
- current_mag = /obj/item/ammo_magazine/sniper/anti_materiel //Renamed from anti-tank to align with new identity/description. Other references have been changed as well. -Kaga
- force = 12
- wield_delay = WIELD_DELAY_HORRIBLE //Ends up being 1.6 seconds due to scope
- zoomdevicename = "scope"
- attachable_allowed = list(/obj/item/attachable/bipod)
- flags_gun_features = GUN_AUTO_EJECTOR|GUN_SPECIALIST|GUN_WIELDED_FIRING_ONLY|GUN_AMMO_COUNTER
- starting_attachment_types = list(/obj/item/attachable/sniperbarrel)
- sniper_beam_type = /obj/effect/ebeam/laser/intense
- sniper_beam_icon = "laser_beam_intense"
- sniper_lockon_icon = "sniper_lockon_intense"
-
-/obj/item/weapon/gun/rifle/sniper/XM42B/handle_starting_attachment()
- ..()
- var/obj/item/attachable/scope/variable_zoom/S = new(src)
- S.icon_state = "pmcscope"
- S.attach_icon = "pmcscope"
- S.flags_attach_features &= ~ATTACH_REMOVABLE
- S.Attach(src)
- update_attachable(S.slot)
-
-
-/obj/item/weapon/gun/rifle/sniper/XM42B/set_gun_attachment_offsets()
- attachable_offset = list("muzzle_x" = 32, "muzzle_y" = 18,"rail_x" = 15, "rail_y" = 19, "under_x" = 20, "under_y" = 15, "stock_x" = 20, "stock_y" = 15)
-
-
-/obj/item/weapon/gun/rifle/sniper/XM42B/set_gun_config_values()
- ..()
- set_fire_delay(FIRE_DELAY_TIER_6 * 6 )//Big boy damage, but it takes a lot of time to fire a shot.
- //Kaga: Adjusted from 56 (Tier 4, 7*8) -> 30 (Tier 6, 5*6) ticks. 95 really wasn't big-boy damage anymore, although I updated it to 125 to remain consistent with the other 10x99mm caliber weapon (M42C). Now takes only twice as long as the M42A.
- set_burst_amount(BURST_AMOUNT_TIER_1)
- accuracy_mult = BASE_ACCURACY_MULT + 2*HIT_ACCURACY_MULT_TIER_10 //Who coded this like this, and why? It just calculates out to 1+1=2. Leaving a note here to check back later.
- scatter = SCATTER_AMOUNT_TIER_10
- damage_mult = BASE_BULLET_DAMAGE_MULT
- recoil = RECOIL_AMOUNT_TIER_1
-
-/obj/item/weapon/gun/rifle/sniper/XM42B/set_bullet_traits()
- LAZYADD(traits_to_give, list(
- BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff),
- BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating),
- BULLET_TRAIT_ENTRY_ID("turfs", /datum/element/bullet_trait_damage_boost, 11, GLOB.damage_boost_turfs),
- BULLET_TRAIT_ENTRY_ID("breaching", /datum/element/bullet_trait_damage_boost, 11, GLOB.damage_boost_breaching),
- //At 1375 per shot it'll take 1 shot to break resin turfs, and a full mag of 8 to break reinforced walls.
- BULLET_TRAIT_ENTRY_ID("pylons", /datum/element/bullet_trait_damage_boost, 6, GLOB.damage_boost_pylons)
- //At 750 per shot it'll take 3 to break a Pylon (1800 HP). No Damage Boost vs other xeno structures yet, those will require a whole new list w/ the damage_boost trait.
- ))
-
-/*
-//Disabled until an identity is better defined. -Kaga
-/obj/item/weapon/gun/rifle/sniper/M42B/afterattack(atom/target, mob/user, flag)
- if(able_to_fire(user))
- if(get_dist(target,user) <= 8)
- to_chat(user, SPAN_WARNING("The [src.name] beeps, indicating that the target is within an unsafe proximity to the rifle, refusing to fire."))
- return
- else ..()
-*/
-
-/obj/item/weapon/gun/rifle/sniper/elite
- name = "\improper M42C anti-tank sniper rifle"
- desc = "A high-end superheavy magrail sniper rifle from Weyland-Armat chambered in a specialized variant of the heaviest ammo available, 10x99mm Caseless. This weapon requires a specialized armor rig for recoil mitigation in order to be used effectively."
- icon = 'icons/obj/items/weapons/guns/guns_by_faction/wy.dmi'
- icon_state = "m42c"
- item_state = "m42c" //NEEDS A TWOHANDED STATE
-
- fire_sound = 'sound/weapons/sniper_heavy.ogg'
- current_mag = /obj/item/ammo_magazine/sniper/elite
- force = 17
- zoomdevicename = "scope"
- flags_gun_features = GUN_AUTO_EJECTOR|GUN_WY_RESTRICTED|GUN_SPECIALIST|GUN_WIELDED_FIRING_ONLY|GUN_AMMO_COUNTER
- starting_attachment_types = list(/obj/item/attachable/sniperbarrel)
- sniper_beam_type = /obj/effect/ebeam/laser/intense
- sniper_beam_icon = "laser_beam_intense"
- sniper_lockon_icon = "sniper_lockon_intense"
-
-/obj/item/weapon/gun/rifle/sniper/elite/handle_starting_attachment()
- ..()
- var/obj/item/attachable/scope/S = new(src)
- S.icon_state = "pmcscope"
- S.attach_icon = "pmcscope"
- S.flags_attach_features &= ~ATTACH_REMOVABLE
- S.Attach(src)
- update_attachable(S.slot)
-
-/obj/item/weapon/gun/rifle/sniper/elite/set_bullet_traits()
- LAZYADD(traits_to_give, list(
- BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff)
- ))
-
-/obj/item/weapon/gun/rifle/sniper/elite/set_gun_attachment_offsets()
- attachable_offset = list("muzzle_x" = 32, "muzzle_y" = 18,"rail_x" = 15, "rail_y" = 19, "under_x" = 20, "under_y" = 15, "stock_x" = 20, "stock_y" = 15)
-
-/obj/item/weapon/gun/rifle/sniper/elite/set_gun_config_values()
- ..()
- set_fire_delay(FIRE_DELAY_TIER_6*5)
- set_burst_amount(BURST_AMOUNT_TIER_1)
- accuracy_mult = BASE_ACCURACY_MULT * 3 //Was previously BAM + HAMT10, similar to the XM42B, and coming out to 1.5? Changed to be consistent with M42A. -Kaga
- scatter = SCATTER_AMOUNT_TIER_10 //Was previously 8, changed to be consistent with the XM42B.
- damage_mult = BASE_BULLET_DAMAGE_MULT
- recoil = RECOIL_AMOUNT_TIER_1
-
-/obj/item/weapon/gun/rifle/sniper/elite/simulate_recoil(total_recoil = 0, mob/user, atom/target)
- . = ..()
- if(.)
- var/mob/living/carbon/human/PMC_sniper = user
- if(PMC_sniper.lying == 0 && !istype(PMC_sniper.wear_suit,/obj/item/clothing/suit/storage/marine/smartgunner/veteran/pmc) && !istype(PMC_sniper.wear_suit,/obj/item/clothing/suit/storage/marine/veteran))
- PMC_sniper.visible_message(SPAN_WARNING("[PMC_sniper] is blown backwards from the recoil of the [src.name]!"),SPAN_HIGHDANGER("You are knocked prone by the blowback!"))
- step(PMC_sniper,turn(PMC_sniper.dir,180))
- PMC_sniper.apply_effect(5, WEAKEN)
-
-//Type 88 //Based on the actual Dragunov DMR rifle.
-
-/obj/item/weapon/gun/rifle/sniper/svd
- name = "\improper Type 88 designated marksman rifle"
- desc = "The standard issue DMR of the UPP, the Type 88 is sought after by competitive shooters and terrorists alike for its high degree of accuracy. Typically loaded with armor-piercing 7.62x54mmR rounds in a 12 round magazine."
- icon = 'icons/obj/items/weapons/guns/guns_by_faction/upp.dmi'
- icon_state = "type88"
- item_state = "type88"
-
- fire_sound = 'sound/weapons/gun_mg.ogg'
- current_mag = /obj/item/ammo_magazine/sniper/svd
- attachable_allowed = list(
- //Muzzle,
- /obj/item/attachable/bayonet,
- /obj/item/attachable/bayonet/upp_replica,
- /obj/item/attachable/bayonet/upp,
- //Under,
- /obj/item/attachable/verticalgrip,
- /obj/item/attachable/bipod,
- //Integrated,
- /obj/item/attachable/type88_barrel,
- )
- has_aimed_shot = FALSE
- flags_gun_features = GUN_AUTO_EJECTOR|GUN_WIELDED_FIRING_ONLY|GUN_AMMO_COUNTER|GUN_CAN_POINTBLANK
- starting_attachment_types = list()
- sniper_beam_type = null
- skill_locked = FALSE
-
-/obj/item/weapon/gun/rifle/sniper/svd/handle_starting_attachment()
- ..()
- var/obj/item/attachable/attachie = new /obj/item/attachable/type88_barrel(src)
- attachie.flags_attach_features &= ~ATTACH_REMOVABLE
- attachie.Attach(src)
- update_attachable(attachie.slot)
-
- var/obj/item/attachable/scope/variable_zoom/integrated/type88sight = new(src)
- type88sight.flags_attach_features &= ~ATTACH_REMOVABLE
- type88sight.hidden = TRUE
- type88sight.Attach(src)
- update_attachable(type88sight.slot)
-
-/obj/item/weapon/gun/rifle/sniper/svd/set_gun_attachment_offsets()
- attachable_offset = list("muzzle_x" = 32, "muzzle_y" = 17,"rail_x" = 13, "rail_y" = 19, "under_x" = 26, "under_y" = 14, "stock_x" = 24, "stock_y" = 13, "special_x" = 39, "special_y" = 18)
-
-/obj/item/weapon/gun/rifle/sniper/svd/set_gun_config_values()
- ..()
- set_fire_delay(FIRE_DELAY_TIER_6)
- set_burst_amount(BURST_AMOUNT_TIER_1)
- accuracy_mult = BASE_ACCURACY_MULT * 3
- scatter = SCATTER_AMOUNT_TIER_8
- damage_mult = BASE_BULLET_DAMAGE_MULT
- recoil = RECOIL_AMOUNT_TIER_5
- damage_falloff_mult = 0
-
-//M4RA custom marksman rifle
-
-/obj/item/weapon/gun/rifle/m4ra_custom
- name = "\improper M4RA custom battle rifle"
- desc = "This is a further improvement upon the already rock-solid M4RA. Made by the USCM armorers on Chinook station - This variant of the M4RA has a specifically milled magazine well to accept A19 rounds. It sports a light-weight titantium-alloy frame, better responsive to the heavy kick of the tailor-made A19 rounds."
- icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
- icon_state = "m4ra_custom"
- item_state = "m4ra_custom"
- unacidable = TRUE
- indestructible = 1
- accepted_ammo = list(
- /obj/item/ammo_magazine/rifle/m4ra,
- /obj/item/ammo_magazine/rifle/m4ra/ap,
- /obj/item/ammo_magazine/rifle/m4ra/ext,
- /obj/item/ammo_magazine/rifle/m4ra/rubber,
- /obj/item/ammo_magazine/rifle/m4ra/incendiary,
- /obj/item/ammo_magazine/rifle/m4ra/heap,
- /obj/item/ammo_magazine/rifle/m4ra/penetrating,
- /obj/item/ammo_magazine/rifle/m4ra/custom,
- /obj/item/ammo_magazine/rifle/m4ra/custom/incendiary,
- /obj/item/ammo_magazine/rifle/m4ra/custom/impact,
-
- )
-
- fire_sound = 'sound/weapons/gun_m4ra.ogg'
- reload_sound = 'sound/weapons/handling/l42_reload.ogg'
- unload_sound = 'sound/weapons/handling/l42_unload.ogg'
- current_mag = /obj/item/ammo_magazine/rifle/m4ra/custom
- force = 26
- attachable_allowed = list(
- /obj/item/attachable/suppressor,
- /obj/item/attachable/bayonet,
- /obj/item/attachable/bayonet/upp,
- /obj/item/attachable/bayonet/co2,
- /obj/item/attachable/reddot,
- /obj/item/attachable/reflex,
- /obj/item/attachable/flashlight,
- /obj/item/attachable/extended_barrel,
- /obj/item/attachable/magnetic_harness,
- /obj/item/attachable/bipod,
- /obj/item/attachable/attached_gun/shotgun,
- /obj/item/attachable/verticalgrip,
- /obj/item/attachable/angledgrip,
- /obj/item/attachable/lasersight,
- /obj/item/attachable/scope,
- /obj/item/attachable/scope/mini,
- /obj/item/attachable/flashlight/grip,
- )
-
- flags_gun_features = GUN_AUTO_EJECTOR|GUN_SPECIALIST|GUN_CAN_POINTBLANK|GUN_AMMO_COUNTER
- map_specific_decoration = TRUE
- aim_slowdown = SLOWDOWN_ADS_QUICK
- flags_item = TWOHANDED|NO_CRYO_STORE
-
-/obj/item/weapon/gun/rifle/m4ra_custom/handle_starting_attachment()
- ..()
- var/obj/item/attachable/m4ra_barrel_custom/integrated = new(src)
- integrated.flags_attach_features &= ~ATTACH_REMOVABLE
- integrated.Attach(src)
- update_attachable(integrated.slot)
-
-
-/obj/item/weapon/gun/rifle/m4ra_custom/set_gun_attachment_offsets()
- attachable_offset = list("muzzle_x" = 43, "muzzle_y" = 17,"rail_x" = 23, "rail_y" = 21, "under_x" = 30, "under_y" = 11, "stock_x" = 24, "stock_y" = 13, "special_x" = 37, "special_y" = 16)
-
-/obj/item/weapon/gun/rifle/m4ra_custom/set_gun_config_values()
- ..()
- set_fire_delay(FIRE_DELAY_TIER_6)
- set_burst_amount(BURST_AMOUNT_TIER_2)
- set_burst_delay(FIRE_DELAY_TIER_12)
- accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_2
- scatter = SCATTER_AMOUNT_TIER_8
- burst_scatter_mult = SCATTER_AMOUNT_TIER_8
- damage_mult = BASE_BULLET_DAMAGE_MULT + BULLET_DAMAGE_MULT_TIER_2
- recoil = RECOIL_AMOUNT_TIER_5
- damage_falloff_mult = 0
-
-/obj/item/weapon/gun/rifle/m4ra_custom/able_to_fire(mob/living/user)
- . = ..()
- if (. && istype(user)) //Let's check all that other stuff first.
- if(!skillcheck(user, SKILL_SPEC_WEAPONS, SKILL_SPEC_ALL) && user.skills.get_skill_level(SKILL_SPEC_WEAPONS) != SKILL_SPEC_SCOUT)
- to_chat(user, SPAN_WARNING("You don't seem to know how to use \the [src]..."))
- return FALSE
-
-//-------------------------------------------------------
-//HEAVY WEAPONS
-
-/obj/item/weapon/gun/launcher
- gun_category = GUN_CATEGORY_HEAVY
- has_empty_icon = FALSE
- has_open_icon = FALSE
- ///gun update_icon doesn't detect that guns with no magazine are loaded or not, and will always append _o or _e if possible.
- var/GL_has_empty_icon = TRUE
- ///gun update_icon doesn't detect that guns with no magazine are loaded or not, and will always append _o or _e if possible.
- var/GL_has_open_icon = FALSE
-
- ///Internal storage item used as magazine. Must be initialised to work! Set parameters by variables or it will inherit standard numbers from storage.dm. Got to call it *something* and 'magazine' or w/e would be confusing.
- var/obj/item/storage/internal/cylinder
- /// Variable that initializes the above.
- var/has_cylinder = FALSE
- ///What single item to fill the storage with, if any. This does not respect w_class.
- var/preload
- ///How many items can be inserted. "Null" = backpack-style size-based inventory. You'll have to set max_storage_space too if you do that, and arrange any initial contents. Iff you arrange to put in more items than the storage can hold, they can be taken out but not replaced.
- var/internal_slots
- ///how big an item can be inserted.
- var/internal_max_w_class
- ///the sfx played when the storage is opened.
- var/use_sound = null
- ///Whether clicking a held weapon with an empty hand will open its inventory or draw a munition out.
- var/direct_draw = TRUE
-
-/obj/item/weapon/gun/launcher/Initialize(mapload, spawn_empty) //If changing vars on init, be sure to do the parent proccall *after* the change.
- . = ..()
- if(has_cylinder)
- cylinder = new /obj/item/storage/internal(src)
- cylinder.storage_slots = internal_slots
- cylinder.max_w_class = internal_max_w_class
- cylinder.use_sound = use_sound
- if(direct_draw)
- cylinder.storage_flags ^= STORAGE_USING_DRAWING_METHOD
- if(preload && !spawn_empty) for(var/i = 1 to cylinder.storage_slots)
- new preload(cylinder)
- update_icon()
-
-/obj/item/weapon/gun/launcher/verb/toggle_draw_mode()
- set name = "Switch Storage Drawing Method"
- set category = "Object"
- set src in usr
-
- cylinder.storage_draw_logic(src.name)
-
-//-------------------------------------------------------
-//GRENADE LAUNCHER
-
-/obj/item/weapon/gun/launcher/grenade //Parent item for GLs.
- w_class = SIZE_LARGE
- throw_speed = SPEED_SLOW
- throw_range = 10
- force = 5
-
- fire_sound = 'sound/weapons/armbomb.ogg'
- cocked_sound = 'sound/weapons/gun_m92_cocked.ogg'
- reload_sound = 'sound/weapons/gun_shotgun_open2.ogg' //Played when inserting nade.
- unload_sound = 'sound/weapons/gun_revolver_unload.ogg'
-
- has_cylinder = TRUE //This weapon won't work otherwise.
- preload = /obj/item/explosive/grenade/high_explosive
- internal_slots = 1 //This weapon must use slots.
- internal_max_w_class = SIZE_MEDIUM //MEDIUM = M15.
-
- aim_slowdown = SLOWDOWN_ADS_SPECIALIST
- wield_delay = WIELD_DELAY_SLOW
- flags_gun_features = GUN_UNUSUAL_DESIGN|GUN_SPECIALIST|GUN_WIELDED_FIRING_ONLY
- ///Can you access the storage by clicking it, put things into it, or take things out? Meant for break-actions mostly but useful for any state where you want access to be toggleable. Make sure to call cylinder.close(user) so they don't still have the screen open!
- var/open_chamber = TRUE
- ///Does it launch its grenades in a low arc or a high? Do they strike people in their path, or fly beyond?
- var/is_lobbing = FALSE
- ///Verboten munitions. This is a blacklist. Anything in this list isn't loadable.
- var/disallowed_grenade_types = list(/obj/item/explosive/grenade/spawnergrenade, /obj/item/explosive/grenade/alien, /obj/item/explosive/grenade/incendiary/molotov, /obj/item/explosive/grenade/flashbang)
- ///What is this weapon permitted to fire? This is a whitelist. Anything in this list can be fired. Anything.
- var/valid_munitions = list(/obj/item/explosive/grenade)
-
-
-/obj/item/weapon/gun/launcher/grenade/set_gun_config_values()
- ..()
- recoil = RECOIL_AMOUNT_TIER_4 //Same as m37 shotgun.
-
-
-/obj/item/weapon/gun/launcher/grenade/on_pocket_insertion() //Plays load sfx whenever a nade is put into storage.
- playsound(usr, reload_sound, 25, 1)
- update_icon()
-
-/obj/item/weapon/gun/launcher/grenade/on_pocket_removal()
- update_icon()
-
-/obj/item/weapon/gun/launcher/grenade/get_examine_text(mob/user) //Different treatment for single-shot VS multi-shot GLs.
- . = ..()
- if(get_dist(user, src) > 2 && user != loc)
- return
- if(length(cylinder.contents))
- if(internal_slots == 1)
- . += SPAN_NOTICE("It is loaded with a grenade.")
- else
- . += SPAN_NOTICE("It is loaded with
[length(cylinder.contents)] / [internal_slots] grenades.")
- else
- . += SPAN_NOTICE("It is empty.")
-
-
-/obj/item/weapon/gun/launcher/grenade/update_icon()
- ..()
- var/GL_sprite = base_gun_icon
- if(GL_has_empty_icon && cylinder && !length(cylinder.contents))
- GL_sprite += "_e"
- playsound(loc, cocked_sound, 25, 1)
- if(GL_has_open_icon && open_chamber)
- GL_sprite += "_o"
- playsound(loc, cocked_sound, 25, 1)
- icon_state = GL_sprite
-
-
-/obj/item/weapon/gun/launcher/grenade/attack_hand(mob/user)
- if(!open_chamber || src != user.get_inactive_hand()) //Need to have the GL in your hands to open the cylinder.
- return ..()
- if(cylinder.handle_attack_hand(user))
- ..()
-
-
-/obj/item/weapon/gun/launcher/grenade/unload(mob/user, reload_override = FALSE, drop_override = FALSE, loc_override = FALSE)
- if(!open_chamber)
- to_chat(user, SPAN_WARNING("[src] is closed!"))
- return
- if(!length(cylinder.contents))
- to_chat(user, SPAN_WARNING("It's empty!"))
- return
-
- var/obj/item/explosive/grenade/nade = cylinder.contents[length(cylinder.contents)] //Grab the last-inserted one. Or the only one, as the case may be.
- cylinder.remove_from_storage(nade, user.loc)
-
- if(drop_override || !user)
- nade.forceMove(get_turf(src))
- else
- user.put_in_hands(nade)
-
- user.visible_message(SPAN_NOTICE("[user] unloads [nade] from [src]."),
- SPAN_NOTICE("You unload [nade] from [src]."), null, 4, CHAT_TYPE_COMBAT_ACTION)
- playsound(user, unload_sound, 30, 1)
-
-
-/obj/item/weapon/gun/launcher/grenade/attackby(obj/item/I, mob/user)
- if(istype(I,/obj/item/attachable) && check_inactive_hand(user))
- attach_to_gun(user,I)
- return
- return cylinder.attackby(I, user)
-
-/obj/item/weapon/gun/launcher/grenade/unique_action(mob/user)
- if(isobserver(usr) || isxeno(usr))
- return
- if(locate(/datum/action/item_action/toggle_firing_level) in actions)
- toggle_firing_level(usr)
-
-/obj/item/weapon/gun/launcher/grenade/proc/allowed_ammo_type(obj/item/I)
- for(var/G in disallowed_grenade_types) //Check for the bad stuff.
- if(istype(I, G))
- return FALSE
- for(var/G in valid_munitions) //Check if it has a ticket.
- if(istype(I, G))
- return TRUE
-
-
-/obj/item/weapon/gun/launcher/grenade/on_pocket_attackby(obj/item/explosive/grenade/I, mob/user) //the attack in question is on the internal container. Complete override - normal storage attackby cannot be silenced, and will always say "you put the x into y".
- if(!open_chamber)
- to_chat(user, SPAN_WARNING("[src] is closed!"))
- return
- if(!istype(I))
- to_chat(user, SPAN_WARNING("You can't load [I] into [src]!"))
- return
- if(!allowed_ammo_type(I))
- to_chat(user, SPAN_WARNING("[src] can't fire this type of grenade!"))
- return
- if(length(cylinder.contents) >= internal_slots)
- to_chat(user, SPAN_WARNING("[src] cannot hold more grenades!"))
- return
- if(!cylinder.can_be_inserted(I)) //Technically includes whether there's room for it, but the above gives a tailored message.
- return
-
- user.visible_message(SPAN_NOTICE("[user] loads [I] into [src]."),
- SPAN_NOTICE("You load [I] into the grenade launcher."), null, 4, CHAT_TYPE_COMBAT_ACTION)
- playsound(usr, reload_sound, 75, 1)
- if(internal_slots > 1)
- to_chat(user, SPAN_INFO("Now storing: [length(cylinder.contents) + 1] / [internal_slots] grenades."))
-
- cylinder.handle_item_insertion(I, TRUE, user)
-
-
-/obj/item/weapon/gun/launcher/grenade/able_to_fire(mob/living/user) //Skillchecks and fire blockers go in the child items.
- . = ..()
- if(.)
- if(!length(cylinder.contents))
- to_chat(user, SPAN_WARNING("The [name] is empty."))
- return FALSE
- var/obj/item/explosive/grenade/G = cylinder.contents[1]
- if(G.antigrief_protection && user.faction == FACTION_MARINE && explosive_antigrief_check(G, user))
- to_chat(user, SPAN_WARNING("\The [name]'s safe-area accident inhibitor prevents you from firing!"))
- msg_admin_niche("[key_name(user)] attempted to prime \a [G.name] in [get_area(src)] [ADMIN_JMP(src.loc)]")
- return FALSE
-
-
-/obj/item/weapon/gun/launcher/grenade/afterattack(atom/target, mob/user, flag) //Not actually after the attack. After click, more like.
- if(able_to_fire(user))
- if(get_dist(target,user) <= 2)
- var/obj/item/explosive/grenade/nade = cylinder.contents[1]
- if(nade.dangerous)
- to_chat(user, SPAN_WARNING("The grenade launcher beeps a warning noise. You are too close!"))
- return
- fire_grenade(target,user)
-
-
-/obj/item/weapon/gun/launcher/grenade/proc/fire_grenade(atom/target, mob/user)
- set waitfor = 0
- last_fired = world.time
-
- var/to_firer = "You fire the [name]!"
- if(internal_slots > 1)
- to_firer += " [length(cylinder.contents)-1]/[internal_slots] grenades remaining."
- user.visible_message(SPAN_DANGER("[user] fired a grenade!"),
- SPAN_WARNING("[to_firer]"), message_flags = CHAT_TYPE_WEAPON_USE)
- playsound(user.loc, fire_sound, 50, 1)
-
- var/angle = round(Get_Angle(user,target))
- muzzle_flash(angle,user)
- simulate_recoil(0, user)
-
- var/obj/item/explosive/grenade/fired = cylinder.contents[1]
- cylinder.remove_from_storage(fired, user.loc)
- var/pass_flags = NO_FLAGS
- if(is_lobbing)
- if(istype(fired, /obj/item/explosive/grenade/slug/baton))
- if(ishuman(user))
- var/mob/living/carbon/human/human_user = user
- human_user.remember_dropped_object(fired)
- fired.fingerprintslast = key_name(user)
- pass_flags |= PASS_MOB_THRU_HUMAN|PASS_MOB_IS_OTHER|PASS_OVER
- else
- pass_flags |= PASS_MOB_THRU|PASS_HIGH_OVER
-
- msg_admin_attack("[key_name_admin(user)] fired a grenade ([fired.name]) from \a ([name]).")
- log_game("[key_name_admin(user)] used a grenade ([name]).")
-
- fired.throw_range = 20
- fired.det_time = min(10, fired.det_time)
- fired.activate(user, FALSE)
- fired.forceMove(get_turf(src))
- fired.throw_atom(target, 20, SPEED_VERY_FAST, user, null, NORMAL_LAUNCH, pass_flags)
-
-
-
-//Doesn't use these. Listed for reference.
-/obj/item/weapon/gun/launcher/grenade/load_into_chamber()
- return
-/obj/item/weapon/gun/launcher/grenade/reload_into_chamber()
- return
-
-/obj/item/weapon/gun/launcher/grenade/has_ammunition()
- return length(cylinder.contents)
-
-//-------------------------------------------------------
-//Toggle firing level special action for grenade launchers
-
-/datum/action/item_action/toggle_firing_level/New(Target, obj/item/holder)
- . = ..()
- name = "Toggle Firing Level"
- button.name = name
- update_icon()
-
-/datum/action/item_action/toggle_firing_level/action_activate()
- var/obj/item/weapon/gun/launcher/grenade/G = holder_item
- if(!ishuman(owner))
- return
- var/mob/living/carbon/human/H = owner
- if(H.is_mob_incapacitated() || G.get_active_firearm(H, FALSE) != holder_item)
- return
- G.toggle_firing_level(usr)
-
-/datum/action/item_action/toggle_firing_level/proc/update_icon()
- var/obj/item/weapon/gun/launcher/grenade/G = holder_item
- if(G.is_lobbing)
- action_icon_state = "hightoss_on"
- else
- action_icon_state = "hightoss_off"
- button.overlays.Cut()
- button.overlays += image('icons/mob/hud/actions.dmi', button, action_icon_state)
-
-/obj/item/weapon/gun/launcher/grenade/proc/toggle_firing_level(mob/user)
- is_lobbing = !is_lobbing
- to_chat(user, "[icon2html(src, usr)] You changed \the [src]'s firing level. You will now fire [is_lobbing ? "in an arcing path over obstacles" : "directly at your target"].")
- playsound(loc,'sound/machines/click.ogg', 25, 1)
- var/datum/action/item_action/toggle_firing_level/TFL = locate(/datum/action/item_action/toggle_firing_level) in actions
- TFL.update_icon()
-
-//-------------------------------------------------------
-//M92 GRENADE LAUNCHER
-
-/obj/item/weapon/gun/launcher/grenade/m92
- name = "\improper M92 grenade launcher"
- desc = "A heavy, 6-shot grenade launcher used by the Colonial Marines for area denial and big explosions."
- icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
- icon_state = "m92"
- item_state = "m92"
- unacidable = TRUE
- indestructible = 1
- matter = list("metal" = 6000)
- actions_types = list(/datum/action/item_action/toggle_firing_level)
-
- attachable_allowed = list(/obj/item/attachable/magnetic_harness)
- flags_item = TWOHANDED|NO_CRYO_STORE
- map_specific_decoration = TRUE
-
- is_lobbing = TRUE
- internal_slots = 6
- direct_draw = FALSE
-
-/obj/item/weapon/gun/launcher/grenade/m92/set_gun_attachment_offsets()
- attachable_offset = list("muzzle_x" = 33, "muzzle_y" = 18,"rail_x" = 14, "rail_y" = 22, "under_x" = 19, "under_y" = 14, "stock_x" = 19, "stock_y" = 14)
-
-/obj/item/weapon/gun/launcher/grenade/m92/set_gun_config_values()
- ..()
- set_fire_delay(FIRE_DELAY_TIER_4*4)
-
-/obj/item/weapon/gun/launcher/grenade/m92/able_to_fire(mob/living/user)
- . = ..()
- if (. && istype(user))
- if(!skillcheck(user, SKILL_SPEC_WEAPONS, SKILL_SPEC_ALL) && user.skills.get_skill_level(SKILL_SPEC_WEAPONS) != SKILL_SPEC_GRENADIER)
- to_chat(user, SPAN_WARNING("You don't seem to know how to use \the [src]..."))
- return FALSE
-
-
-//-------------------------------------------------------
-//M81 GRENADE LAUNCHER
-
-/obj/item/weapon/gun/launcher/grenade/m81
- name = "\improper M81 grenade launcher"
- desc = "A lightweight, single-shot low-angle grenade launcher used by the Colonial Marines for area denial and big explosions."
- icon = 'icons/obj/items/weapons/guns/guns_by_faction/colony.dmi'
- icon_state = "m81"
- item_state = "m81" //needs a wield sprite.
-
- matter = list("metal" = 7000)
-
-/obj/item/weapon/gun/launcher/grenade/m81/set_gun_attachment_offsets()
- attachable_offset = list("muzzle_x" = 33, "muzzle_y" = 18,"rail_x" = 14, "rail_y" = 22, "under_x" = 19, "under_y" = 14, "stock_x" = 19, "stock_y" = 14)
-
-/obj/item/weapon/gun/launcher/grenade/m81/set_gun_config_values()
- ..()
- set_fire_delay(FIRE_DELAY_TIER_4 * 1.5)
-
-/obj/item/weapon/gun/launcher/grenade/m81/on_pocket_removal()
- ..()
- playsound(usr, unload_sound, 30, 1)
-
-/obj/item/weapon/gun/launcher/grenade/m81/riot/able_to_fire(mob/living/user)
- . = ..()
- if (. && istype(user))
- if(!skillcheck(user, SKILL_POLICE, SKILL_POLICE_SKILLED))
- to_chat(user, SPAN_WARNING("You don't seem to know how to use \the [src]..."))
- return FALSE
-
-
-/obj/item/weapon/gun/launcher/grenade/m81/riot
- name = "\improper M81 riot grenade launcher"
- desc = "A lightweight, single-shot low-angle grenade launcher to launch tear gas grenades. Used by the Colonial Marines Military Police during riots."
- valid_munitions = list(/obj/item/explosive/grenade/custom/teargas)
- preload = /obj/item/explosive/grenade/custom/teargas
-
-//-------------------------------------------------------
-//M79 Grenade Launcher subtype of the M81
-
-/obj/item/weapon/gun/launcher/grenade/m81/m79//m79 variant for marines
- name = "\improper M79 grenade launcher"
- desc = "A heavy, low-angle 40mm grenade launcher. It's been in use since the Vietnam War, though this version has been modernized with an IFF enabled micro-computer. The wooden furniture is, in fact, made of painted hardened polykevlon."
- icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
- icon_state = "m79"
- item_state = "m79"
- flags_equip_slot = SLOT_BACK
- preload = /obj/item/explosive/grenade/slug/baton
- is_lobbing = TRUE
- actions_types = list(/datum/action/item_action/toggle_firing_level)
-
- fire_sound = 'sound/weapons/handling/m79_shoot.ogg'
- cocked_sound = 'sound/weapons/handling/m79_break_open.ogg'
- reload_sound = 'sound/weapons/handling/m79_reload.ogg'
- unload_sound = 'sound/weapons/handling/m79_unload.ogg'
-
- attachable_allowed = list(
- /obj/item/attachable/magnetic_harness,
- /obj/item/attachable/flashlight,
- /obj/item/attachable/reddot,
- /obj/item/attachable/reflex,
- /obj/item/attachable/stock/m79,
- )
-
-/obj/item/weapon/gun/launcher/grenade/m81/m79/handle_starting_attachment()
- ..()
- var/obj/item/attachable/stock/m79/S = new(src)
- S.hidden = FALSE
- S.flags_attach_features &= ~ATTACH_REMOVABLE
- S.Attach(src)
- update_attachable(S.slot)
-
-/obj/item/weapon/gun/launcher/grenade/m81/m79/set_gun_attachment_offsets()
- attachable_offset = list("muzzle_x" = 33, "muzzle_y" = 18,"rail_x" = 9, "rail_y" = 22, "under_x" = 19, "under_y" = 14, "stock_x" = 14, "stock_y" = 14)
-
-/obj/item/weapon/gun/launcher/grenade/m81/m79/set_bullet_traits()
- LAZYADD(traits_to_give, list(
- BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff)//might not need this because of is_lobbing, but let's keep it just incase
- ))
-
-//-------------------------------------------------------
-//M5 RPG
-
-/obj/item/weapon/gun/launcher/rocket
- name = "\improper M5 RPG"
- desc = "The M5 RPG is the primary anti-armor weapon of the USCM. Used to take out light-tanks and enemy structures, the M5 RPG is a dangerous weapon with a variety of combat uses."
- icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
- icon_state = "m5"
- item_state = "m5"
- unacidable = TRUE
- indestructible = 1
-
- matter = list("metal" = 10000)
- current_mag = /obj/item/ammo_magazine/rocket
- flags_equip_slot = NO_FLAGS
- w_class = SIZE_HUGE
- force = 15
- wield_delay = WIELD_DELAY_HORRIBLE
- delay_style = WEAPON_DELAY_NO_FIRE
- aim_slowdown = SLOWDOWN_ADS_SPECIALIST
- attachable_allowed = list(
- /obj/item/attachable/magnetic_harness,
- )
-
- flags_gun_features = GUN_SPECIALIST|GUN_WIELDED_FIRING_ONLY|GUN_INTERNAL_MAG
- var/datum/effect_system/smoke_spread/smoke
-
- flags_item = TWOHANDED|NO_CRYO_STORE
- var/skill_locked = TRUE
-
-/obj/item/weapon/gun/launcher/rocket/Initialize(mapload, spawn_empty)
- . = ..()
- smoke = new()
- smoke.attach(src)
-
-/obj/item/weapon/gun/launcher/rocket/Destroy()
- QDEL_NULL(smoke)
- return ..()
-
-
-/obj/item/weapon/gun/launcher/rocket/set_gun_attachment_offsets()
- attachable_offset = list("muzzle_x" = 33, "muzzle_y" = 18,"rail_x" = 6, "rail_y" = 19, "under_x" = 19, "under_y" = 14, "stock_x" = 19, "stock_y" = 14)
-
-
-/obj/item/weapon/gun/launcher/rocket/set_gun_config_values()
- ..()
- set_fire_delay(FIRE_DELAY_TIER_6*2)
- accuracy_mult = BASE_ACCURACY_MULT
- scatter = SCATTER_AMOUNT_TIER_6
- damage_mult = BASE_BULLET_DAMAGE_MULT
- recoil = RECOIL_AMOUNT_TIER_3
-
-
-/obj/item/weapon/gun/launcher/rocket/get_examine_text(mob/user)
- . = ..()
- if(current_mag.current_rounds <= 0)
- . += "It's not loaded."
- return
- if(current_mag.current_rounds > 0)
- . += "It has an 84mm [ammo.name] loaded."
-
-
-/obj/item/weapon/gun/launcher/rocket/able_to_fire(mob/living/user)
- . = ..()
- if (. && istype(user)) //Let's check all that other stuff first.
- if(skill_locked && !skillcheck(user, SKILL_SPEC_WEAPONS, SKILL_SPEC_ALL) && user.skills.get_skill_level(SKILL_SPEC_WEAPONS) != SKILL_SPEC_ROCKET)
- to_chat(user, SPAN_WARNING("You don't seem to know how to use \the [src]..."))
- return 0
- if(user.faction == FACTION_MARINE && explosive_antigrief_check(src, user))
- to_chat(user, SPAN_WARNING("\The [name]'s safe-area accident inhibitor prevents you from firing!"))
- msg_admin_niche("[key_name(user)] attempted to fire \a [name] in [get_area(src)] [ADMIN_JMP(loc)]")
- return FALSE
- if(current_mag && current_mag.current_rounds > 0)
- make_rocket(user, 0, 1)
-
-/obj/item/weapon/gun/launcher/rocket/load_into_chamber(mob/user)
-// if(active_attachable) active_attachable = null
- return ready_in_chamber()
-
-//No such thing
-/obj/item/weapon/gun/launcher/rocket/reload_into_chamber(mob/user)
- return TRUE
-
-/obj/item/weapon/gun/launcher/rocket/delete_bullet(obj/projectile/projectile_to_fire, refund = 0)
- if(!current_mag)
- return
- qdel(projectile_to_fire)
- if(refund)
- current_mag.current_rounds++
- return TRUE
-
-/obj/item/weapon/gun/launcher/rocket/proc/make_rocket(mob/user, drop_override = 0, empty = 1)
- if(!current_mag)
- return
-
- var/obj/item/ammo_magazine/rocket/r = new current_mag.type()
- //if there's ever another type of custom rocket ammo this logic should just be moved into a function on the rocket
- if(istype(current_mag, /obj/item/ammo_magazine/rocket/custom) && !empty)
- //set the custom rocket variables here.
- var/obj/item/ammo_magazine/rocket/custom/k = new /obj/item/ammo_magazine/rocket/custom
- var/obj/item/ammo_magazine/rocket/custom/cur_mag_cast = current_mag
- k.contents = cur_mag_cast.contents
- k.desc = cur_mag_cast.desc
- k.fuel = cur_mag_cast.fuel
- k.icon_state = cur_mag_cast.icon_state
- k.warhead = cur_mag_cast.warhead
- k.locked = cur_mag_cast.locked
- k.name = cur_mag_cast.name
- k.filters = cur_mag_cast.filters
- r = k
-
- if(empty)
- r.current_rounds = 0
- if(drop_override || !user) //If we want to drop it on the ground or there's no user.
- r.forceMove(get_turf(src)) //Drop it on the ground.
- else
- user.put_in_hands(r)
- r.update_icon()
-
-/obj/item/weapon/gun/launcher/rocket/reload(mob/user, obj/item/ammo_magazine/rocket)
- if(!current_mag)
- return
- if(flags_gun_features & GUN_BURST_FIRING)
- return
-
- if(!rocket || !istype(rocket) || !istype(src, rocket.gun_type))
- to_chat(user, SPAN_WARNING("That's not going to fit!"))
- return
-
- if(current_mag.current_rounds > 0)
- to_chat(user, SPAN_WARNING("[src] is already loaded!"))
- return
-
- if(rocket.current_rounds <= 0)
- to_chat(user, SPAN_WARNING("That frame is empty!"))
- return
-
- if(user)
- to_chat(user, SPAN_NOTICE("You begin reloading [src]. Hold still..."))
- if(do_after(user,current_mag.reload_delay, INTERRUPT_ALL, BUSY_ICON_FRIENDLY))
- qdel(current_mag)
- user.drop_inv_item_on_ground(rocket)
- current_mag = rocket
- rocket.forceMove(src)
- replace_ammo(,rocket)
- to_chat(user, SPAN_NOTICE("You load [rocket] into [src]."))
- if(reload_sound)
- playsound(user, reload_sound, 25, 1)
- else
- playsound(user,'sound/machines/click.ogg', 25, 1)
- else
- to_chat(user, SPAN_WARNING("Your reload was interrupted!"))
- return
- else
- qdel(current_mag)
- current_mag = rocket
- rocket.forceMove(src)
- replace_ammo(,rocket)
- return TRUE
-
-/obj/item/weapon/gun/launcher/rocket/unload(mob/user, reload_override = 0, drop_override = 0)
- if(user && current_mag)
- if(current_mag.current_rounds <= 0)
- to_chat(user, SPAN_WARNING("[src] is already empty!"))
- return
- to_chat(user, SPAN_NOTICE("You begin unloading [src]. Hold still..."))
- if(do_after(user,current_mag.reload_delay, INTERRUPT_ALL, BUSY_ICON_FRIENDLY))
- if(current_mag.current_rounds <= 0)
- to_chat(user, SPAN_WARNING("You have already unloaded \the [src]."))
- return
- playsound(user, unload_sound, 25, 1)
- user.visible_message(SPAN_NOTICE("[user] unloads [ammo] from [src]."),
- SPAN_NOTICE("You unload [ammo] from [src]."))
- make_rocket(user, drop_override, 0)
- current_mag.current_rounds = 0
-
-//Adding in the rocket backblast. The tile behind the specialist gets blasted hard enough to down and slightly wound anyone
-/obj/item/weapon/gun/launcher/rocket/apply_bullet_effects(obj/projectile/projectile_to_fire, mob/user, i = 1, reflex = 0)
- . = ..()
- if(!HAS_TRAIT(user, TRAIT_EAR_PROTECTION) && ishuman(user))
- var/mob/living/carbon/human/huser = user
- to_chat(user, SPAN_WARNING("Augh!! \The [src]'s launch blast resonates extremely loudly in your ears! You probably should have worn some sort of ear protection..."))
- huser.apply_effect(6, STUTTER)
- huser.emote("pain")
- huser.SetEarDeafness(max(user.ear_deaf,10))
-
- var/backblast_loc = get_turf(get_step(user.loc, turn(user.dir, 180)))
- smoke.set_up(1, 0, backblast_loc, turn(user.dir, 180))
- smoke.start()
- playsound(src, 'sound/weapons/gun_rocketlauncher.ogg', 100, TRUE, 10)
- for(var/mob/living/carbon/C in backblast_loc)
- if(!C.lying && !HAS_TRAIT(C, TRAIT_EAR_PROTECTION)) //Have to be standing up to get the fun stuff
- C.apply_damage(15, BRUTE) //The shockwave hurts, quite a bit. It can knock unarmored targets unconscious in real life
- C.apply_effect(4, STUN) //For good measure
- C.apply_effect(6, STUTTER)
- C.emote("pain")
-
-//-------------------------------------------------------
-//M5 RPG'S MEAN FUCKING COUSIN
-
-/obj/item/weapon/gun/launcher/rocket/m57a4
- name = "\improper M57-A4 'Lightning Bolt' quad thermobaric launcher"
- desc = "The M57-A4 'Lightning Bolt' is possibly the most destructive man-portable weapon ever made. It is a 4-barreled missile launcher capable of burst-firing 4 thermobaric missiles. Enough said."
- icon = 'icons/obj/items/weapons/guns/guns_by_faction/event.dmi'
- icon_state = "m57a4"
- item_state = "m57a4"
-
- current_mag = /obj/item/ammo_magazine/rocket/m57a4
- aim_slowdown = SLOWDOWN_ADS_SUPERWEAPON
- flags_gun_features = GUN_WIELDED_FIRING_ONLY
-
-/obj/item/weapon/gun/launcher/rocket/m57a4/set_gun_config_values()
- ..()
- set_fire_delay(FIRE_DELAY_TIER_5)
- set_burst_delay(FIRE_DELAY_TIER_7)
- set_burst_amount(BURST_AMOUNT_TIER_4)
- accuracy_mult = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_4
- scatter = SCATTER_AMOUNT_TIER_6
- damage_mult = BASE_BULLET_DAMAGE_MULT
- recoil = RECOIL_AMOUNT_TIER_3
-
-
-//-------------------------------------------------------
-//AT rocket launchers, can be used by non specs
-
-/obj/item/weapon/gun/launcher/rocket/anti_tank //reloadable
- name = "\improper QH-4 Shoulder-Mounted Anti-Tank RPG"
- desc = "Used to take out light-tanks and enemy structures, the QH-4 is a dangerous weapon specialised against vehicles. Requires direct hits to penetrate vehicle armor."
- icon_state = "m83a2"
- item_state = "m83a2"
- unacidable = FALSE
- indestructible = FALSE
- skill_locked = FALSE
-
- current_mag = /obj/item/ammo_magazine/rocket/anti_tank
-
- attachable_allowed = list()
-
- flags_gun_features = GUN_WIELDED_FIRING_ONLY
-
- flags_item = TWOHANDED
-
-/obj/item/weapon/gun/launcher/rocket/anti_tank/set_bullet_traits()
- . = ..()
- LAZYADD(traits_to_give, list(
- BULLET_TRAIT_ENTRY_ID("vehicles", /datum/element/bullet_trait_damage_boost, 20, GLOB.damage_boost_vehicles),
- ))
-
-/obj/item/weapon/gun/launcher/rocket/anti_tank/disposable //single shot and disposable
- name = "\improper M83A2 SADAR"
- desc = "The M83A2 SADAR is a lightweight one-shot anti-armor weapon capable of engaging enemy vehicles at ranges up to 1,000m. Fully disposable, the rocket's launcher is discarded after firing. When stowed (unique-action), the SADAR system consists of a watertight carbon-fiber composite blast tube, inside of which is an aluminum launch tube containing the missile. The weapon is fired by pushing a charge button on the trigger grip. It is sighted and fired from the shoulder."
- var/fired = FALSE
-
-/obj/item/weapon/gun/launcher/rocket/anti_tank/disposable/get_examine_text(mob/user)
- . = ..()
- . += SPAN_NOTICE("You can fold it up with unique-action.")
-
-/obj/item/weapon/gun/launcher/rocket/anti_tank/disposable/Fire(atom/target, mob/living/user, params, reflex, dual_wield)
- . = ..()
- if(.)
- fired = TRUE
-
-/obj/item/weapon/gun/launcher/rocket/anti_tank/disposable/unique_action(mob/M)
- if(fired)
- to_chat(M, SPAN_WARNING("\The [src] has already been fired - you can't fold it back up again!"))
- return
-
- M.visible_message(SPAN_NOTICE("[M] begins to fold up \the [src]."), SPAN_NOTICE("You start to fold and collapse closed \the [src]."))
-
- if(!do_after(M, 2 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC))
- to_chat(M, SPAN_NOTICE("You stop folding up \the [src]"))
- return
-
- fold(M)
- M.visible_message(SPAN_NOTICE("[M] finishes folding \the [src]."), SPAN_NOTICE("You finish folding \the [src]."))
-
-/obj/item/weapon/gun/launcher/rocket/anti_tank/disposable/proc/fold(mob/user)
- var/obj/item/prop/folded_anti_tank_sadar/F = new /obj/item/prop/folded_anti_tank_sadar(src.loc)
- transfer_label_component(F)
- qdel(src)
- user.put_in_active_hand(F)
-
-/obj/item/weapon/gun/launcher/rocket/anti_tank/disposable/reload()
- to_chat(usr, SPAN_WARNING("You cannot reload \the [src]!"))
- return
-
-/obj/item/weapon/gun/launcher/rocket/anti_tank/disposable/unload()
- to_chat(usr, SPAN_WARNING("You cannot unload \the [src]!"))
- return
-
-//folded version of the sadar
-/obj/item/prop/folded_anti_tank_sadar
- name = "\improper M83 SADAR (folded)"
- desc = "An M83 SADAR Anti-Tank RPG, compacted for easier storage. Can be unfolded with the Z key."
- icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
- icon_state = "m83a2_folded"
- w_class = SIZE_MEDIUM
- garbage = FALSE
-
-/obj/item/prop/folded_anti_tank_sadar/attack_self(mob/user)
- user.visible_message(SPAN_NOTICE("[user] begins to unfold \the [src]."), SPAN_NOTICE("You start to unfold and expand \the [src]."))
- playsound(src, 'sound/items/component_pickup.ogg', 20, TRUE, 5)
-
- if(!do_after(user, 4 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC))
- to_chat(user, SPAN_NOTICE("You stop unfolding \the [src]"))
- return
-
- unfold(user)
-
- user.visible_message(SPAN_NOTICE("[user] finishes unfolding \the [src]."), SPAN_NOTICE("You finish unfolding \the [src]."))
- playsound(src, 'sound/items/component_pickup.ogg', 20, TRUE, 5)
- . = ..()
-
-/obj/item/prop/folded_anti_tank_sadar/proc/unfold(mob/user)
- var/obj/item/weapon/gun/launcher/rocket/anti_tank/disposable/F = new /obj/item/weapon/gun/launcher/rocket/anti_tank/disposable(src.loc)
- transfer_label_component(F)
- qdel(src)
- user.put_in_active_hand(F)
-
-//-------------------------------------------------------
-//UPP Rocket Launcher
-
-/obj/item/weapon/gun/launcher/rocket/upp
- name = "\improper HJRA-12 Handheld Anti-Tank Grenade Launcher"
- desc = "The HJRA-12 Handheld Anti-Tank Grenade Launcher is the standard Anti-Armor weapon of the UPP. It is designed to be easy to use and to take out or disable armored vehicles."
- icon = 'icons/obj/items/weapons/guns/guns_by_faction/upp.dmi'
- icon_state = "hjra12"
- item_state = "hjra12"
- skill_locked = FALSE
- current_mag = /obj/item/ammo_magazine/rocket/upp/at
-
- attachable_allowed = list(/obj/item/attachable/upp_rpg_breech)
-
- flags_gun_features = GUN_WIELDED_FIRING_ONLY
-
- flags_item = TWOHANDED
-
-/obj/item/weapon/gun/launcher/rocket/upp/set_gun_attachment_offsets()
- attachable_offset = list("muzzle_x" = 33, "muzzle_y" = 18,"rail_x" = 6, "rail_y" = 19, "under_x" = 19, "under_y" = 14, "stock_x" = -6, "stock_y" = 16, "special_x" = 37, "special_y" = 16)
-
-/obj/item/weapon/gun/launcher/rocket/upp/handle_starting_attachment()
- ..()
- var/obj/item/attachable/upp_rpg_breech/S = new(src)
- S.flags_attach_features &= ~ATTACH_REMOVABLE
- S.Attach(src)
- update_attachables()
-
- var/obj/item/attachable/magnetic_harness/Integrated = new(src)
- Integrated.hidden = TRUE
- Integrated.flags_attach_features &= ~ATTACH_REMOVABLE
- Integrated.Attach(src)
- update_attachable(Integrated.slot)
-
-/obj/item/weapon/gun/launcher/rocket/upp/apply_bullet_effects(obj/projectile/projectile_to_fire, mob/user, i = 1, reflex = 0)
- . = ..()
- if(!HAS_TRAIT(user, TRAIT_EAR_PROTECTION) && ishuman(user))
- return
-
- var/backblast_loc = get_turf(get_step(user.loc, turn(user.dir, 180)))
- smoke.set_up(1, 0, backblast_loc, turn(user.dir, 180))
- smoke.start()
- playsound(src, 'sound/weapons/gun_rocketlauncher.ogg', 100, TRUE, 10)
- for(var/mob/living/carbon/C in backblast_loc)
- if(!C.lying && !HAS_TRAIT(C, TRAIT_EAR_PROTECTION)) //Have to be standing up to get the fun stuff
- C.apply_damage(15, BRUTE) //The shockwave hurts, quite a bit. It can knock unarmored targets unconscious in real life
- C.apply_effect(4, STUN) //For good measure
- C.apply_effect(6, STUTTER)
- C.emote("pain")
diff --git a/code/modules/projectiles/guns/specialist/launcher/grenade_launcher.dm b/code/modules/projectiles/guns/specialist/launcher/grenade_launcher.dm
new file mode 100644
index 000000000000..0f767d679d03
--- /dev/null
+++ b/code/modules/projectiles/guns/specialist/launcher/grenade_launcher.dm
@@ -0,0 +1,364 @@
+//-------------------------------------------------------
+//GRENADE LAUNCHER
+
+/obj/item/weapon/gun/launcher/grenade //Parent item for GLs.
+ w_class = SIZE_LARGE
+ throw_speed = SPEED_SLOW
+ throw_range = 10
+ force = 5
+
+ fire_sound = 'sound/weapons/armbomb.ogg'
+ cocked_sound = 'sound/weapons/gun_m92_cocked.ogg'
+ reload_sound = 'sound/weapons/gun_shotgun_open2.ogg' //Played when inserting nade.
+ unload_sound = 'sound/weapons/gun_revolver_unload.ogg'
+
+ has_cylinder = TRUE //This weapon won't work otherwise.
+ preload = /obj/item/explosive/grenade/high_explosive
+ internal_slots = 1 //This weapon must use slots.
+ internal_max_w_class = SIZE_MEDIUM //MEDIUM = M15.
+
+ aim_slowdown = SLOWDOWN_ADS_SPECIALIST
+ wield_delay = WIELD_DELAY_SLOW
+ flags_gun_features = GUN_UNUSUAL_DESIGN|GUN_SPECIALIST|GUN_WIELDED_FIRING_ONLY
+ ///Can you access the storage by clicking it, put things into it, or take things out? Meant for break-actions mostly but useful for any state where you want access to be toggleable. Make sure to call cylinder.close(user) so they don't still have the screen open!
+ var/open_chamber = TRUE
+ ///Does it launch its grenades in a low arc or a high? Do they strike people in their path, or fly beyond?
+ var/is_lobbing = FALSE
+ ///Verboten munitions. This is a blacklist. Anything in this list isn't loadable.
+ var/disallowed_grenade_types = list(/obj/item/explosive/grenade/spawnergrenade, /obj/item/explosive/grenade/alien, /obj/item/explosive/grenade/incendiary/molotov, /obj/item/explosive/grenade/flashbang)
+ ///What is this weapon permitted to fire? This is a whitelist. Anything in this list can be fired. Anything.
+ var/valid_munitions = list(/obj/item/explosive/grenade)
+
+
+/obj/item/weapon/gun/launcher/grenade/set_gun_config_values()
+ ..()
+ recoil = RECOIL_AMOUNT_TIER_4 //Same as m37 shotgun.
+
+
+/obj/item/weapon/gun/launcher/grenade/on_pocket_insertion() //Plays load sfx whenever a nade is put into storage.
+ playsound(usr, reload_sound, 25, 1)
+ update_icon()
+
+/obj/item/weapon/gun/launcher/grenade/on_pocket_removal()
+ update_icon()
+
+/obj/item/weapon/gun/launcher/grenade/get_examine_text(mob/user) //Different treatment for single-shot VS multi-shot GLs.
+ . = ..()
+ if(get_dist(user, src) > 2 && user != loc)
+ return
+ if(length(cylinder.contents))
+ if(internal_slots == 1)
+ . += SPAN_NOTICE("It is loaded with a grenade.")
+ else
+ . += SPAN_NOTICE("It is loaded with
[length(cylinder.contents)] / [internal_slots] grenades.")
+ else
+ . += SPAN_NOTICE("It is empty.")
+
+
+/obj/item/weapon/gun/launcher/grenade/update_icon()
+ ..()
+ var/GL_sprite = base_gun_icon
+ if(GL_has_empty_icon && cylinder && !length(cylinder.contents))
+ GL_sprite += "_e"
+ playsound(loc, cocked_sound, 25, 1)
+ if(GL_has_open_icon && open_chamber)
+ GL_sprite += "_o"
+ playsound(loc, cocked_sound, 25, 1)
+ icon_state = GL_sprite
+
+
+/obj/item/weapon/gun/launcher/grenade/attack_hand(mob/user)
+ if(!open_chamber || src != user.get_inactive_hand()) //Need to have the GL in your hands to open the cylinder.
+ return ..()
+ if(cylinder.handle_attack_hand(user))
+ ..()
+
+
+/obj/item/weapon/gun/launcher/grenade/unload(mob/user, reload_override = FALSE, drop_override = FALSE, loc_override = FALSE)
+ if(!open_chamber)
+ to_chat(user, SPAN_WARNING("[src] is closed!"))
+ return
+ if(!length(cylinder.contents))
+ to_chat(user, SPAN_WARNING("It's empty!"))
+ return
+
+ var/obj/item/explosive/grenade/nade = cylinder.contents[length(cylinder.contents)] //Grab the last-inserted one. Or the only one, as the case may be.
+ cylinder.remove_from_storage(nade, user.loc)
+
+ if(drop_override || !user)
+ nade.forceMove(get_turf(src))
+ else
+ user.put_in_hands(nade)
+
+ user.visible_message(SPAN_NOTICE("[user] unloads [nade] from [src]."),
+ SPAN_NOTICE("You unload [nade] from [src]."), null, 4, CHAT_TYPE_COMBAT_ACTION)
+ playsound(user, unload_sound, 30, 1)
+
+
+/obj/item/weapon/gun/launcher/grenade/attackby(obj/item/I, mob/user)
+ if(istype(I,/obj/item/attachable) && check_inactive_hand(user))
+ attach_to_gun(user,I)
+ return
+ return cylinder.attackby(I, user)
+
+/obj/item/weapon/gun/launcher/grenade/unique_action(mob/user)
+ if(isobserver(usr) || isxeno(usr))
+ return
+ if(locate(/datum/action/item_action/toggle_firing_level) in actions)
+ toggle_firing_level(usr)
+
+/obj/item/weapon/gun/launcher/grenade/proc/allowed_ammo_type(obj/item/I)
+ for(var/G in disallowed_grenade_types) //Check for the bad stuff.
+ if(istype(I, G))
+ return FALSE
+ for(var/G in valid_munitions) //Check if it has a ticket.
+ if(istype(I, G))
+ return TRUE
+
+
+/obj/item/weapon/gun/launcher/grenade/on_pocket_attackby(obj/item/explosive/grenade/I, mob/user) //the attack in question is on the internal container. Complete override - normal storage attackby cannot be silenced, and will always say "you put the x into y".
+ if(!open_chamber)
+ to_chat(user, SPAN_WARNING("[src] is closed!"))
+ return
+ if(!istype(I))
+ to_chat(user, SPAN_WARNING("You can't load [I] into [src]!"))
+ return
+ if(!allowed_ammo_type(I))
+ to_chat(user, SPAN_WARNING("[src] can't fire this type of grenade!"))
+ return
+ if(length(cylinder.contents) >= internal_slots)
+ to_chat(user, SPAN_WARNING("[src] cannot hold more grenades!"))
+ return
+ if(!cylinder.can_be_inserted(I, user)) //Technically includes whether there's room for it, but the above gives a tailored message.
+ return
+
+ user.visible_message(SPAN_NOTICE("[user] loads [I] into [src]."),
+ SPAN_NOTICE("You load [I] into the grenade launcher."), null, 4, CHAT_TYPE_COMBAT_ACTION)
+ playsound(usr, reload_sound, 75, 1)
+ if(internal_slots > 1)
+ to_chat(user, SPAN_INFO("Now storing: [length(cylinder.contents) + 1] / [internal_slots] grenades."))
+
+ cylinder.handle_item_insertion(I, TRUE, user)
+
+
+/obj/item/weapon/gun/launcher/grenade/able_to_fire(mob/living/user) //Skillchecks and fire blockers go in the child items.
+ . = ..()
+ if(.)
+ if(!length(cylinder.contents))
+ to_chat(user, SPAN_WARNING("The [name] is empty."))
+ return FALSE
+ var/obj/item/explosive/grenade/G = cylinder.contents[1]
+ if(G.antigrief_protection && user.faction == FACTION_MARINE && explosive_antigrief_check(G, user))
+ to_chat(user, SPAN_WARNING("\The [name]'s safe-area accident inhibitor prevents you from firing!"))
+ msg_admin_niche("[key_name(user)] attempted to prime \a [G.name] in [get_area(src)] [ADMIN_JMP(src.loc)]")
+ return FALSE
+
+
+/obj/item/weapon/gun/launcher/grenade/afterattack(atom/target, mob/user, flag) //Not actually after the attack. After click, more like.
+ if(able_to_fire(user))
+ if(get_dist(target,user) <= 2)
+ var/obj/item/explosive/grenade/nade = cylinder.contents[1]
+ if(nade.dangerous)
+ to_chat(user, SPAN_WARNING("The grenade launcher beeps a warning noise. You are too close!"))
+ return
+ fire_grenade(target,user)
+
+
+/obj/item/weapon/gun/launcher/grenade/proc/fire_grenade(atom/target, mob/user)
+ set waitfor = 0
+ last_fired = world.time
+
+ var/to_firer = "You fire the [name]!"
+ if(internal_slots > 1)
+ to_firer += " [length(cylinder.contents)-1]/[internal_slots] grenades remaining."
+ user.visible_message(SPAN_DANGER("[user] fired a grenade!"),
+ SPAN_WARNING("[to_firer]"), message_flags = CHAT_TYPE_WEAPON_USE)
+ playsound(user.loc, fire_sound, 50, 1)
+
+ var/angle = round(Get_Angle(user,target))
+ muzzle_flash(angle,user)
+ simulate_recoil(0, user)
+
+ var/obj/item/explosive/grenade/fired = cylinder.contents[1]
+ cylinder.remove_from_storage(fired, user.loc)
+ var/pass_flags = NO_FLAGS
+ if(is_lobbing)
+ if(istype(fired, /obj/item/explosive/grenade/slug/baton))
+ if(ishuman(user))
+ var/mob/living/carbon/human/human_user = user
+ human_user.remember_dropped_object(fired)
+ fired.fingerprintslast = key_name(user)
+ pass_flags |= PASS_MOB_THRU_HUMAN|PASS_MOB_IS_OTHER|PASS_OVER
+ else
+ pass_flags |= PASS_MOB_THRU|PASS_HIGH_OVER
+
+ msg_admin_attack("[key_name_admin(user)] fired a grenade ([fired.name]) from \a ([name]).")
+ log_game("[key_name_admin(user)] used a grenade ([name]).")
+
+ fired.throw_range = 20
+ fired.det_time = min(10, fired.det_time)
+ fired.activate(user, FALSE)
+ fired.forceMove(get_turf(src))
+ fired.throw_atom(target, 20, SPEED_VERY_FAST, user, null, NORMAL_LAUNCH, pass_flags)
+
+
+
+//Doesn't use these. Listed for reference.
+/obj/item/weapon/gun/launcher/grenade/load_into_chamber()
+ return
+/obj/item/weapon/gun/launcher/grenade/reload_into_chamber()
+ return
+
+/obj/item/weapon/gun/launcher/grenade/has_ammunition()
+ return length(cylinder.contents)
+
+//-------------------------------------------------------
+//Toggle firing level special action for grenade launchers
+
+/datum/action/item_action/toggle_firing_level/New(Target, obj/item/holder)
+ . = ..()
+ name = "Toggle Firing Level"
+ button.name = name
+ update_icon()
+
+/datum/action/item_action/toggle_firing_level/action_activate()
+ var/obj/item/weapon/gun/launcher/grenade/G = holder_item
+ if(!ishuman(owner))
+ return
+ var/mob/living/carbon/human/H = owner
+ if(H.is_mob_incapacitated() || G.get_active_firearm(H, FALSE) != holder_item)
+ return
+ G.toggle_firing_level(usr)
+
+/datum/action/item_action/toggle_firing_level/proc/update_icon()
+ var/obj/item/weapon/gun/launcher/grenade/G = holder_item
+ if(G.is_lobbing)
+ action_icon_state = "hightoss_on"
+ else
+ action_icon_state = "hightoss_off"
+ button.overlays.Cut()
+ button.overlays += image('icons/mob/hud/actions.dmi', button, action_icon_state)
+
+/obj/item/weapon/gun/launcher/grenade/proc/toggle_firing_level(mob/user)
+ is_lobbing = !is_lobbing
+ to_chat(user, "[icon2html(src, usr)] You changed \the [src]'s firing level. You will now fire [is_lobbing ? "in an arcing path over obstacles" : "directly at your target"].")
+ playsound(loc,'sound/machines/click.ogg', 25, 1)
+ var/datum/action/item_action/toggle_firing_level/TFL = locate(/datum/action/item_action/toggle_firing_level) in actions
+ TFL.update_icon()
+
+//-------------------------------------------------------
+//M92 GRENADE LAUNCHER
+
+/obj/item/weapon/gun/launcher/grenade/m92
+ name = "\improper M92 grenade launcher"
+ desc = "A heavy, 6-shot grenade launcher used by the Colonial Marines for area denial and big explosions."
+ icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
+ icon_state = "m92"
+ item_state = "m92"
+ unacidable = TRUE
+ indestructible = 1
+ matter = list("metal" = 6000)
+ actions_types = list(/datum/action/item_action/toggle_firing_level)
+
+ attachable_allowed = list(/obj/item/attachable/magnetic_harness)
+ flags_item = TWOHANDED|NO_CRYO_STORE
+ map_specific_decoration = TRUE
+
+ is_lobbing = TRUE
+ internal_slots = 6
+ direct_draw = FALSE
+
+/obj/item/weapon/gun/launcher/grenade/m92/set_gun_attachment_offsets()
+ attachable_offset = list("muzzle_x" = 33, "muzzle_y" = 18,"rail_x" = 14, "rail_y" = 22, "under_x" = 19, "under_y" = 14, "stock_x" = 19, "stock_y" = 14)
+
+/obj/item/weapon/gun/launcher/grenade/m92/set_gun_config_values()
+ ..()
+ set_fire_delay(FIRE_DELAY_TIER_4*4)
+
+/obj/item/weapon/gun/launcher/grenade/m92/able_to_fire(mob/living/user)
+ . = ..()
+ if (. && istype(user))
+ if(!skillcheck(user, SKILL_SPEC_WEAPONS, SKILL_SPEC_ALL) && user.skills.get_skill_level(SKILL_SPEC_WEAPONS) != SKILL_SPEC_GRENADIER)
+ to_chat(user, SPAN_WARNING("You don't seem to know how to use \the [src]..."))
+ return FALSE
+
+
+//-------------------------------------------------------
+//M81 GRENADE LAUNCHER
+
+/obj/item/weapon/gun/launcher/grenade/m81
+ name = "\improper M81 grenade launcher"
+ desc = "A lightweight, single-shot low-angle grenade launcher used by the Colonial Marines for area denial and big explosions."
+ icon = 'icons/obj/items/weapons/guns/guns_by_faction/colony.dmi'
+ icon_state = "m81"
+ item_state = "m81" //needs a wield sprite.
+
+ matter = list("metal" = 7000)
+
+/obj/item/weapon/gun/launcher/grenade/m81/set_gun_attachment_offsets()
+ attachable_offset = list("muzzle_x" = 33, "muzzle_y" = 18,"rail_x" = 14, "rail_y" = 22, "under_x" = 19, "under_y" = 14, "stock_x" = 19, "stock_y" = 14)
+
+/obj/item/weapon/gun/launcher/grenade/m81/set_gun_config_values()
+ ..()
+ set_fire_delay(FIRE_DELAY_TIER_4 * 1.5)
+
+/obj/item/weapon/gun/launcher/grenade/m81/on_pocket_removal()
+ ..()
+ playsound(usr, unload_sound, 30, 1)
+
+/obj/item/weapon/gun/launcher/grenade/m81/riot/able_to_fire(mob/living/user)
+ . = ..()
+ if (. && istype(user))
+ if(!skillcheck(user, SKILL_POLICE, SKILL_POLICE_SKILLED))
+ to_chat(user, SPAN_WARNING("You don't seem to know how to use \the [src]..."))
+ return FALSE
+
+
+/obj/item/weapon/gun/launcher/grenade/m81/riot
+ name = "\improper M81 riot grenade launcher"
+ desc = "A lightweight, single-shot low-angle grenade launcher to launch tear gas grenades. Used by the Colonial Marines Military Police during riots."
+ valid_munitions = list(/obj/item/explosive/grenade/custom/teargas)
+ preload = /obj/item/explosive/grenade/custom/teargas
+
+//-------------------------------------------------------
+//M79 Grenade Launcher subtype of the M81
+
+/obj/item/weapon/gun/launcher/grenade/m81/m79//m79 variant for marines
+ name = "\improper M79 grenade launcher"
+ desc = "A heavy, low-angle 40mm grenade launcher. It's been in use since the Vietnam War, though this version has been modernized with an IFF enabled micro-computer. The wooden furniture is, in fact, made of painted hardened polykevlon."
+ icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
+ icon_state = "m79"
+ item_state = "m79"
+ flags_equip_slot = SLOT_BACK
+ preload = /obj/item/explosive/grenade/slug/baton
+ is_lobbing = TRUE
+ actions_types = list(/datum/action/item_action/toggle_firing_level)
+
+ fire_sound = 'sound/weapons/handling/m79_shoot.ogg'
+ cocked_sound = 'sound/weapons/handling/m79_break_open.ogg'
+ reload_sound = 'sound/weapons/handling/m79_reload.ogg'
+ unload_sound = 'sound/weapons/handling/m79_unload.ogg'
+
+ attachable_allowed = list(
+ /obj/item/attachable/magnetic_harness,
+ /obj/item/attachable/flashlight,
+ /obj/item/attachable/reddot,
+ /obj/item/attachable/reflex,
+ /obj/item/attachable/stock/m79,
+ )
+
+/obj/item/weapon/gun/launcher/grenade/m81/m79/handle_starting_attachment()
+ ..()
+ var/obj/item/attachable/stock/m79/S = new(src)
+ S.hidden = FALSE
+ S.flags_attach_features &= ~ATTACH_REMOVABLE
+ S.Attach(src)
+ update_attachable(S.slot)
+
+/obj/item/weapon/gun/launcher/grenade/m81/m79/set_gun_attachment_offsets()
+ attachable_offset = list("muzzle_x" = 33, "muzzle_y" = 18,"rail_x" = 9, "rail_y" = 22, "under_x" = 19, "under_y" = 14, "stock_x" = 14, "stock_y" = 14)
+
+/obj/item/weapon/gun/launcher/grenade/m81/m79/set_bullet_traits()
+ LAZYADD(traits_to_give, list(
+ BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff)//might not need this because of is_lobbing, but let's keep it just incase
+ ))
diff --git a/code/modules/projectiles/guns/specialist/launcher/launcher.dm b/code/modules/projectiles/guns/specialist/launcher/launcher.dm
new file mode 100644
index 000000000000..70f00aa83c35
--- /dev/null
+++ b/code/modules/projectiles/guns/specialist/launcher/launcher.dm
@@ -0,0 +1,46 @@
+//-------------------------------------------------------
+//HEAVY WEAPONS
+
+/obj/item/weapon/gun/launcher
+ gun_category = GUN_CATEGORY_HEAVY
+ has_empty_icon = FALSE
+ has_open_icon = FALSE
+ ///gun update_icon doesn't detect that guns with no magazine are loaded or not, and will always append _o or _e if possible.
+ var/GL_has_empty_icon = TRUE
+ ///gun update_icon doesn't detect that guns with no magazine are loaded or not, and will always append _o or _e if possible.
+ var/GL_has_open_icon = FALSE
+
+ ///Internal storage item used as magazine. Must be initialised to work! Set parameters by variables or it will inherit standard numbers from storage.dm. Got to call it *something* and 'magazine' or w/e would be confusing.
+ var/obj/item/storage/internal/cylinder
+ /// Variable that initializes the above.
+ var/has_cylinder = FALSE
+ ///What single item to fill the storage with, if any. This does not respect w_class.
+ var/preload
+ ///How many items can be inserted. "Null" = backpack-style size-based inventory. You'll have to set max_storage_space too if you do that, and arrange any initial contents. Iff you arrange to put in more items than the storage can hold, they can be taken out but not replaced.
+ var/internal_slots
+ ///how big an item can be inserted.
+ var/internal_max_w_class
+ ///the sfx played when the storage is opened.
+ var/use_sound = null
+ ///Whether clicking a held weapon with an empty hand will open its inventory or draw a munition out.
+ var/direct_draw = TRUE
+
+/obj/item/weapon/gun/launcher/Initialize(mapload, spawn_empty) //If changing vars on init, be sure to do the parent proccall *after* the change.
+ . = ..()
+ if(has_cylinder)
+ cylinder = new /obj/item/storage/internal(src)
+ cylinder.storage_slots = internal_slots
+ cylinder.max_w_class = internal_max_w_class
+ cylinder.use_sound = use_sound
+ if(direct_draw)
+ cylinder.storage_flags ^= STORAGE_USING_DRAWING_METHOD
+ if(preload && !spawn_empty) for(var/i = 1 to cylinder.storage_slots)
+ new preload(cylinder)
+ update_icon()
+
+/obj/item/weapon/gun/launcher/verb/toggle_draw_mode()
+ set name = "Switch Storage Drawing Method"
+ set category = "Object"
+ set src in usr
+
+ cylinder.storage_draw_logic(src.name)
diff --git a/code/modules/projectiles/guns/specialist/launcher/rocket_launcher.dm b/code/modules/projectiles/guns/specialist/launcher/rocket_launcher.dm
new file mode 100644
index 000000000000..6d998002134c
--- /dev/null
+++ b/code/modules/projectiles/guns/specialist/launcher/rocket_launcher.dm
@@ -0,0 +1,369 @@
+
+//-------------------------------------------------------
+//M5 RPG
+
+/obj/item/weapon/gun/launcher/rocket
+ name = "\improper M5 RPG"
+ desc = "The M5 RPG is the primary anti-armor weapon of the USCM. Used to take out light-tanks and enemy structures, the M5 RPG is a dangerous weapon with a variety of combat uses."
+ icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
+ icon_state = "m5"
+ item_state = "m5"
+ unacidable = TRUE
+ indestructible = 1
+
+ matter = list("metal" = 10000)
+ current_mag = /obj/item/ammo_magazine/rocket
+ flags_equip_slot = NO_FLAGS
+ w_class = SIZE_HUGE
+ force = 15
+ wield_delay = WIELD_DELAY_HORRIBLE
+ delay_style = WEAPON_DELAY_NO_FIRE
+ aim_slowdown = SLOWDOWN_ADS_SPECIALIST
+ attachable_allowed = list(
+ /obj/item/attachable/magnetic_harness,
+ )
+
+ flags_gun_features = GUN_SPECIALIST|GUN_WIELDED_FIRING_ONLY|GUN_INTERNAL_MAG
+ var/datum/effect_system/smoke_spread/smoke
+
+ flags_item = TWOHANDED|NO_CRYO_STORE
+ var/skill_locked = TRUE
+
+/obj/item/weapon/gun/launcher/rocket/Initialize(mapload, spawn_empty)
+ . = ..()
+ smoke = new()
+ smoke.attach(src)
+
+/obj/item/weapon/gun/launcher/rocket/Destroy()
+ QDEL_NULL(smoke)
+ return ..()
+
+
+/obj/item/weapon/gun/launcher/rocket/set_gun_attachment_offsets()
+ attachable_offset = list("muzzle_x" = 33, "muzzle_y" = 18,"rail_x" = 6, "rail_y" = 19, "under_x" = 19, "under_y" = 14, "stock_x" = 19, "stock_y" = 14)
+
+
+/obj/item/weapon/gun/launcher/rocket/set_gun_config_values()
+ ..()
+ set_fire_delay(FIRE_DELAY_TIER_6*2)
+ accuracy_mult = BASE_ACCURACY_MULT
+ scatter = SCATTER_AMOUNT_TIER_6
+ damage_mult = BASE_BULLET_DAMAGE_MULT
+ recoil = RECOIL_AMOUNT_TIER_3
+
+
+/obj/item/weapon/gun/launcher/rocket/get_examine_text(mob/user)
+ . = ..()
+ if(current_mag.current_rounds <= 0)
+ . += "It's not loaded."
+ return
+ if(current_mag.current_rounds > 0)
+ . += "It has an 84mm [ammo.name] loaded."
+
+
+/obj/item/weapon/gun/launcher/rocket/able_to_fire(mob/living/user)
+ . = ..()
+ if (. && istype(user)) //Let's check all that other stuff first.
+ if(skill_locked && !skillcheck(user, SKILL_SPEC_WEAPONS, SKILL_SPEC_ALL) && user.skills.get_skill_level(SKILL_SPEC_WEAPONS) != SKILL_SPEC_ROCKET)
+ to_chat(user, SPAN_WARNING("You don't seem to know how to use \the [src]..."))
+ return 0
+ if(user.faction == FACTION_MARINE && explosive_antigrief_check(src, user))
+ to_chat(user, SPAN_WARNING("\The [name]'s safe-area accident inhibitor prevents you from firing!"))
+ msg_admin_niche("[key_name(user)] attempted to fire \a [name] in [get_area(src)] [ADMIN_JMP(loc)]")
+ return FALSE
+ if(current_mag && current_mag.current_rounds > 0)
+ make_rocket(user, 0, 1)
+
+/obj/item/weapon/gun/launcher/rocket/load_into_chamber(mob/user)
+// if(active_attachable) active_attachable = null
+ return ready_in_chamber()
+
+//No such thing
+/obj/item/weapon/gun/launcher/rocket/reload_into_chamber(mob/user)
+ return TRUE
+
+/obj/item/weapon/gun/launcher/rocket/delete_bullet(obj/projectile/projectile_to_fire, refund = 0)
+ if(!current_mag)
+ return
+ qdel(projectile_to_fire)
+ if(refund)
+ current_mag.current_rounds++
+ return TRUE
+
+/obj/item/weapon/gun/launcher/rocket/proc/make_rocket(mob/user, drop_override = 0, empty = 1)
+ if(!current_mag)
+ return
+
+ var/obj/item/ammo_magazine/rocket/r = new current_mag.type()
+ //if there's ever another type of custom rocket ammo this logic should just be moved into a function on the rocket
+ if(istype(current_mag, /obj/item/ammo_magazine/rocket/custom) && !empty)
+ //set the custom rocket variables here.
+ var/obj/item/ammo_magazine/rocket/custom/k = new /obj/item/ammo_magazine/rocket/custom
+ var/obj/item/ammo_magazine/rocket/custom/cur_mag_cast = current_mag
+ k.contents = cur_mag_cast.contents
+ k.desc = cur_mag_cast.desc
+ k.fuel = cur_mag_cast.fuel
+ k.icon_state = cur_mag_cast.icon_state
+ k.warhead = cur_mag_cast.warhead
+ k.locked = cur_mag_cast.locked
+ k.name = cur_mag_cast.name
+ k.filters = cur_mag_cast.filters
+ r = k
+
+ if(empty)
+ r.current_rounds = 0
+ if(drop_override || !user) //If we want to drop it on the ground or there's no user.
+ r.forceMove(get_turf(src)) //Drop it on the ground.
+ else
+ user.put_in_hands(r)
+ r.update_icon()
+
+/obj/item/weapon/gun/launcher/rocket/reload(mob/user, obj/item/ammo_magazine/rocket)
+ if(!current_mag)
+ return
+ if(flags_gun_features & GUN_BURST_FIRING)
+ return
+
+ if(!rocket || !istype(rocket) || !istype(src, rocket.gun_type))
+ to_chat(user, SPAN_WARNING("That's not going to fit!"))
+ return
+
+ if(current_mag.current_rounds > 0)
+ to_chat(user, SPAN_WARNING("[src] is already loaded!"))
+ return
+
+ if(rocket.current_rounds <= 0)
+ to_chat(user, SPAN_WARNING("That frame is empty!"))
+ return
+
+ if(user)
+ to_chat(user, SPAN_NOTICE("You begin reloading [src]. Hold still..."))
+ if(do_after(user,current_mag.reload_delay, INTERRUPT_ALL, BUSY_ICON_FRIENDLY))
+ qdel(current_mag)
+ user.drop_inv_item_on_ground(rocket)
+ current_mag = rocket
+ rocket.forceMove(src)
+ replace_ammo(,rocket)
+ to_chat(user, SPAN_NOTICE("You load [rocket] into [src]."))
+ if(reload_sound)
+ playsound(user, reload_sound, 25, 1)
+ else
+ playsound(user,'sound/machines/click.ogg', 25, 1)
+ else
+ to_chat(user, SPAN_WARNING("Your reload was interrupted!"))
+ return
+ else
+ qdel(current_mag)
+ current_mag = rocket
+ rocket.forceMove(src)
+ replace_ammo(,rocket)
+ return TRUE
+
+/obj/item/weapon/gun/launcher/rocket/unload(mob/user, reload_override = 0, drop_override = 0)
+ if(user && current_mag)
+ if(current_mag.current_rounds <= 0)
+ to_chat(user, SPAN_WARNING("[src] is already empty!"))
+ return
+ to_chat(user, SPAN_NOTICE("You begin unloading [src]. Hold still..."))
+ if(do_after(user,current_mag.reload_delay, INTERRUPT_ALL, BUSY_ICON_FRIENDLY))
+ if(current_mag.current_rounds <= 0)
+ to_chat(user, SPAN_WARNING("You have already unloaded \the [src]."))
+ return
+ playsound(user, unload_sound, 25, 1)
+ user.visible_message(SPAN_NOTICE("[user] unloads [ammo] from [src]."),
+ SPAN_NOTICE("You unload [ammo] from [src]."))
+ make_rocket(user, drop_override, 0)
+ current_mag.current_rounds = 0
+
+//Adding in the rocket backblast. The tile behind the specialist gets blasted hard enough to down and slightly wound anyone
+/obj/item/weapon/gun/launcher/rocket/apply_bullet_effects(obj/projectile/projectile_to_fire, mob/user, i = 1, reflex = 0)
+ . = ..()
+ if(!HAS_TRAIT(user, TRAIT_EAR_PROTECTION) && ishuman(user))
+ var/mob/living/carbon/human/huser = user
+ to_chat(user, SPAN_WARNING("Augh!! \The [src]'s launch blast resonates extremely loudly in your ears! You probably should have worn some sort of ear protection..."))
+ huser.apply_effect(6, STUTTER)
+ huser.emote("pain")
+ huser.SetEarDeafness(max(user.ear_deaf,10))
+
+ var/backblast_loc = get_turf(get_step(user.loc, turn(user.dir, 180)))
+ smoke.set_up(1, 0, backblast_loc, turn(user.dir, 180))
+ smoke.start()
+ playsound(src, 'sound/weapons/gun_rocketlauncher.ogg', 100, TRUE, 10)
+ for(var/mob/living/carbon/C in backblast_loc)
+ if(!C.lying && !HAS_TRAIT(C, TRAIT_EAR_PROTECTION)) //Have to be standing up to get the fun stuff
+ C.apply_damage(15, BRUTE) //The shockwave hurts, quite a bit. It can knock unarmored targets unconscious in real life
+ C.apply_effect(4, STUN) //For good measure
+ C.apply_effect(6, STUTTER)
+ C.emote("pain")
+
+//-------------------------------------------------------
+//M5 RPG'S MEAN FUCKING COUSIN
+
+/obj/item/weapon/gun/launcher/rocket/m57a4
+ name = "\improper M57-A4 'Lightning Bolt' quad thermobaric launcher"
+ desc = "The M57-A4 'Lightning Bolt' is possibly the most destructive man-portable weapon ever made. It is a 4-barreled missile launcher capable of burst-firing 4 thermobaric missiles. Enough said."
+ icon = 'icons/obj/items/weapons/guns/guns_by_faction/event.dmi'
+ icon_state = "m57a4"
+ item_state = "m57a4"
+
+ current_mag = /obj/item/ammo_magazine/rocket/m57a4
+ aim_slowdown = SLOWDOWN_ADS_SUPERWEAPON
+ flags_gun_features = GUN_WIELDED_FIRING_ONLY
+
+/obj/item/weapon/gun/launcher/rocket/m57a4/set_gun_config_values()
+ ..()
+ set_fire_delay(FIRE_DELAY_TIER_5)
+ set_burst_delay(FIRE_DELAY_TIER_7)
+ set_burst_amount(BURST_AMOUNT_TIER_4)
+ accuracy_mult = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_4
+ scatter = SCATTER_AMOUNT_TIER_6
+ damage_mult = BASE_BULLET_DAMAGE_MULT
+ recoil = RECOIL_AMOUNT_TIER_3
+
+
+//-------------------------------------------------------
+//AT rocket launchers, can be used by non specs
+
+/obj/item/weapon/gun/launcher/rocket/anti_tank //reloadable
+ name = "\improper QH-4 Shoulder-Mounted Anti-Tank RPG"
+ desc = "Used to take out light-tanks and enemy structures, the QH-4 is a dangerous weapon specialised against vehicles. Requires direct hits to penetrate vehicle armor."
+ icon_state = "m83a2"
+ item_state = "m83a2"
+ unacidable = FALSE
+ indestructible = FALSE
+ skill_locked = FALSE
+
+ current_mag = /obj/item/ammo_magazine/rocket/anti_tank
+
+ attachable_allowed = list()
+
+ flags_gun_features = GUN_WIELDED_FIRING_ONLY
+
+ flags_item = TWOHANDED
+
+/obj/item/weapon/gun/launcher/rocket/anti_tank/set_bullet_traits()
+ . = ..()
+ LAZYADD(traits_to_give, list(
+ BULLET_TRAIT_ENTRY_ID("vehicles", /datum/element/bullet_trait_damage_boost, 20, GLOB.damage_boost_vehicles),
+ ))
+
+/obj/item/weapon/gun/launcher/rocket/anti_tank/disposable //single shot and disposable
+ name = "\improper M83A2 SADAR"
+ desc = "The M83A2 SADAR is a lightweight one-shot anti-armor weapon capable of engaging enemy vehicles at ranges up to 1,000m. Fully disposable, the rocket's launcher is discarded after firing. When stowed (unique-action), the SADAR system consists of a watertight carbon-fiber composite blast tube, inside of which is an aluminum launch tube containing the missile. The weapon is fired by pushing a charge button on the trigger grip. It is sighted and fired from the shoulder."
+ var/fired = FALSE
+
+/obj/item/weapon/gun/launcher/rocket/anti_tank/disposable/get_examine_text(mob/user)
+ . = ..()
+ . += SPAN_NOTICE("You can fold it up with unique-action.")
+
+/obj/item/weapon/gun/launcher/rocket/anti_tank/disposable/Fire(atom/target, mob/living/user, params, reflex, dual_wield)
+ . = ..()
+ if(.)
+ fired = TRUE
+
+/obj/item/weapon/gun/launcher/rocket/anti_tank/disposable/unique_action(mob/M)
+ if(fired)
+ to_chat(M, SPAN_WARNING("\The [src] has already been fired - you can't fold it back up again!"))
+ return
+
+ M.visible_message(SPAN_NOTICE("[M] begins to fold up \the [src]."), SPAN_NOTICE("You start to fold and collapse closed \the [src]."))
+
+ if(!do_after(M, 2 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC))
+ to_chat(M, SPAN_NOTICE("You stop folding up \the [src]"))
+ return
+
+ fold(M)
+ M.visible_message(SPAN_NOTICE("[M] finishes folding \the [src]."), SPAN_NOTICE("You finish folding \the [src]."))
+
+/obj/item/weapon/gun/launcher/rocket/anti_tank/disposable/proc/fold(mob/user)
+ var/obj/item/prop/folded_anti_tank_sadar/F = new /obj/item/prop/folded_anti_tank_sadar(src.loc)
+ transfer_label_component(F)
+ qdel(src)
+ user.put_in_active_hand(F)
+
+/obj/item/weapon/gun/launcher/rocket/anti_tank/disposable/reload()
+ to_chat(usr, SPAN_WARNING("You cannot reload \the [src]!"))
+ return
+
+/obj/item/weapon/gun/launcher/rocket/anti_tank/disposable/unload()
+ to_chat(usr, SPAN_WARNING("You cannot unload \the [src]!"))
+ return
+
+//folded version of the sadar
+/obj/item/prop/folded_anti_tank_sadar
+ name = "\improper M83 SADAR (folded)"
+ desc = "An M83 SADAR Anti-Tank RPG, compacted for easier storage. Can be unfolded with the Z key."
+ icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
+ icon_state = "m83a2_folded"
+ w_class = SIZE_MEDIUM
+ garbage = FALSE
+
+/obj/item/prop/folded_anti_tank_sadar/attack_self(mob/user)
+ user.visible_message(SPAN_NOTICE("[user] begins to unfold \the [src]."), SPAN_NOTICE("You start to unfold and expand \the [src]."))
+ playsound(src, 'sound/items/component_pickup.ogg', 20, TRUE, 5)
+
+ if(!do_after(user, 4 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC))
+ to_chat(user, SPAN_NOTICE("You stop unfolding \the [src]"))
+ return
+
+ unfold(user)
+
+ user.visible_message(SPAN_NOTICE("[user] finishes unfolding \the [src]."), SPAN_NOTICE("You finish unfolding \the [src]."))
+ playsound(src, 'sound/items/component_pickup.ogg', 20, TRUE, 5)
+ . = ..()
+
+/obj/item/prop/folded_anti_tank_sadar/proc/unfold(mob/user)
+ var/obj/item/weapon/gun/launcher/rocket/anti_tank/disposable/F = new /obj/item/weapon/gun/launcher/rocket/anti_tank/disposable(src.loc)
+ transfer_label_component(F)
+ qdel(src)
+ user.put_in_active_hand(F)
+
+//-------------------------------------------------------
+//UPP Rocket Launcher
+
+/obj/item/weapon/gun/launcher/rocket/upp
+ name = "\improper HJRA-12 Handheld Anti-Tank Grenade Launcher"
+ desc = "The HJRA-12 Handheld Anti-Tank Grenade Launcher is the standard Anti-Armor weapon of the UPP. It is designed to be easy to use and to take out or disable armored vehicles."
+ icon = 'icons/obj/items/weapons/guns/guns_by_faction/upp.dmi'
+ icon_state = "hjra12"
+ item_state = "hjra12"
+ skill_locked = FALSE
+ current_mag = /obj/item/ammo_magazine/rocket/upp/at
+
+ attachable_allowed = list(/obj/item/attachable/upp_rpg_breech)
+
+ flags_gun_features = GUN_WIELDED_FIRING_ONLY
+
+ flags_item = TWOHANDED
+
+/obj/item/weapon/gun/launcher/rocket/upp/set_gun_attachment_offsets()
+ attachable_offset = list("muzzle_x" = 33, "muzzle_y" = 18,"rail_x" = 6, "rail_y" = 19, "under_x" = 19, "under_y" = 14, "stock_x" = -6, "stock_y" = 16, "special_x" = 37, "special_y" = 16)
+
+/obj/item/weapon/gun/launcher/rocket/upp/handle_starting_attachment()
+ ..()
+ var/obj/item/attachable/upp_rpg_breech/S = new(src)
+ S.flags_attach_features &= ~ATTACH_REMOVABLE
+ S.Attach(src)
+ update_attachables()
+
+ var/obj/item/attachable/magnetic_harness/Integrated = new(src)
+ Integrated.hidden = TRUE
+ Integrated.flags_attach_features &= ~ATTACH_REMOVABLE
+ Integrated.Attach(src)
+ update_attachable(Integrated.slot)
+
+/obj/item/weapon/gun/launcher/rocket/upp/apply_bullet_effects(obj/projectile/projectile_to_fire, mob/user, i = 1, reflex = 0)
+ . = ..()
+ if(!HAS_TRAIT(user, TRAIT_EAR_PROTECTION) && ishuman(user))
+ return
+
+ var/backblast_loc = get_turf(get_step(user.loc, turn(user.dir, 180)))
+ smoke.set_up(1, 0, backblast_loc, turn(user.dir, 180))
+ smoke.start()
+ playsound(src, 'sound/weapons/gun_rocketlauncher.ogg', 100, TRUE, 10)
+ for(var/mob/living/carbon/C in backblast_loc)
+ if(!C.lying && !HAS_TRAIT(C, TRAIT_EAR_PROTECTION)) //Have to be standing up to get the fun stuff
+ C.apply_damage(15, BRUTE) //The shockwave hurts, quite a bit. It can knock unarmored targets unconscious in real life
+ C.apply_effect(4, STUN) //For good measure
+ C.apply_effect(6, STUTTER)
+ C.emote("pain")
diff --git a/code/modules/projectiles/guns/specialist/scout.dm b/code/modules/projectiles/guns/specialist/scout.dm
new file mode 100644
index 000000000000..c2c5abd54add
--- /dev/null
+++ b/code/modules/projectiles/guns/specialist/scout.dm
@@ -0,0 +1,83 @@
+//M4RA custom marksman rifle
+
+/obj/item/weapon/gun/rifle/m4ra_custom
+ name = "\improper M4RA custom battle rifle"
+ desc = "This is a further improvement upon the already rock-solid M4RA. Made by the USCM armorers on Chinook station - This variant of the M4RA has a specifically milled magazine well to accept A19 rounds. It sports a light-weight titantium-alloy frame, better responsive to the heavy kick of the tailor-made A19 rounds."
+ icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
+ icon_state = "m4ra_custom"
+ item_state = "m4ra_custom"
+ unacidable = TRUE
+ indestructible = 1
+ accepted_ammo = list(
+ /obj/item/ammo_magazine/rifle/m4ra,
+ /obj/item/ammo_magazine/rifle/m4ra/ap,
+ /obj/item/ammo_magazine/rifle/m4ra/ext,
+ /obj/item/ammo_magazine/rifle/m4ra/rubber,
+ /obj/item/ammo_magazine/rifle/m4ra/incendiary,
+ /obj/item/ammo_magazine/rifle/m4ra/heap,
+ /obj/item/ammo_magazine/rifle/m4ra/penetrating,
+ /obj/item/ammo_magazine/rifle/m4ra/custom,
+ /obj/item/ammo_magazine/rifle/m4ra/custom/incendiary,
+ /obj/item/ammo_magazine/rifle/m4ra/custom/impact,
+
+ )
+
+ fire_sound = 'sound/weapons/gun_m4ra.ogg'
+ reload_sound = 'sound/weapons/handling/l42_reload.ogg'
+ unload_sound = 'sound/weapons/handling/l42_unload.ogg'
+ current_mag = /obj/item/ammo_magazine/rifle/m4ra/custom
+ force = 26
+ attachable_allowed = list(
+ /obj/item/attachable/suppressor,
+ /obj/item/attachable/bayonet,
+ /obj/item/attachable/bayonet/upp,
+ /obj/item/attachable/bayonet/co2,
+ /obj/item/attachable/reddot,
+ /obj/item/attachable/reflex,
+ /obj/item/attachable/flashlight,
+ /obj/item/attachable/extended_barrel,
+ /obj/item/attachable/magnetic_harness,
+ /obj/item/attachable/bipod,
+ /obj/item/attachable/attached_gun/shotgun,
+ /obj/item/attachable/verticalgrip,
+ /obj/item/attachable/angledgrip,
+ /obj/item/attachable/lasersight,
+ /obj/item/attachable/scope,
+ /obj/item/attachable/scope/mini,
+ /obj/item/attachable/flashlight/grip,
+ )
+
+ flags_gun_features = GUN_AUTO_EJECTOR|GUN_SPECIALIST|GUN_CAN_POINTBLANK|GUN_AMMO_COUNTER
+ map_specific_decoration = TRUE
+ aim_slowdown = SLOWDOWN_ADS_QUICK
+ flags_item = TWOHANDED|NO_CRYO_STORE
+
+/obj/item/weapon/gun/rifle/m4ra_custom/handle_starting_attachment()
+ ..()
+ var/obj/item/attachable/m4ra_barrel_custom/integrated = new(src)
+ integrated.flags_attach_features &= ~ATTACH_REMOVABLE
+ integrated.Attach(src)
+ update_attachable(integrated.slot)
+
+
+/obj/item/weapon/gun/rifle/m4ra_custom/set_gun_attachment_offsets()
+ attachable_offset = list("muzzle_x" = 43, "muzzle_y" = 17,"rail_x" = 23, "rail_y" = 21, "under_x" = 30, "under_y" = 11, "stock_x" = 24, "stock_y" = 13, "special_x" = 37, "special_y" = 16)
+
+/obj/item/weapon/gun/rifle/m4ra_custom/set_gun_config_values()
+ ..()
+ set_fire_delay(FIRE_DELAY_TIER_6)
+ set_burst_amount(BURST_AMOUNT_TIER_2)
+ set_burst_delay(FIRE_DELAY_TIER_12)
+ accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_2
+ scatter = SCATTER_AMOUNT_TIER_8
+ burst_scatter_mult = SCATTER_AMOUNT_TIER_8
+ damage_mult = BASE_BULLET_DAMAGE_MULT + BULLET_DAMAGE_MULT_TIER_2
+ recoil = RECOIL_AMOUNT_TIER_5
+ damage_falloff_mult = 0
+
+/obj/item/weapon/gun/rifle/m4ra_custom/able_to_fire(mob/living/user)
+ . = ..()
+ if (. && istype(user)) //Let's check all that other stuff first.
+ if(!skillcheck(user, SKILL_SPEC_WEAPONS, SKILL_SPEC_ALL) && user.skills.get_skill_level(SKILL_SPEC_WEAPONS) != SKILL_SPEC_SCOUT)
+ to_chat(user, SPAN_WARNING("You don't seem to know how to use \the [src]..."))
+ return FALSE
diff --git a/code/modules/projectiles/guns/specialist/sniper.dm b/code/modules/projectiles/guns/specialist/sniper.dm
new file mode 100644
index 000000000000..17a2c0f26887
--- /dev/null
+++ b/code/modules/projectiles/guns/specialist/sniper.dm
@@ -0,0 +1,510 @@
+//-------------------------------------------------------
+//SNIPER RIFLES
+//Keyword rifles. They are subtype of rifles, but still contained here as a specialist weapon.
+
+//Because this parent type did not exist
+//Note that this means that snipers will have a slowdown of 3, due to the scope
+/obj/item/weapon/gun/rifle/sniper
+ aim_slowdown = SLOWDOWN_ADS_SPECIALIST
+ wield_delay = WIELD_DELAY_SLOW
+
+ var/has_aimed_shot = TRUE
+ var/aiming_time = 1.25 SECONDS
+ var/aimed_shot_cooldown
+ var/aimed_shot_cooldown_delay = 2.5 SECONDS
+
+ var/enable_aimed_shot_laser = TRUE
+ var/sniper_lockon_icon = "sniper_lockon"
+ var/obj/effect/ebeam/sniper_beam_type = /obj/effect/ebeam/laser
+ var/sniper_beam_icon = "laser_beam"
+ var/skill_locked = TRUE
+
+/obj/item/weapon/gun/rifle/sniper/get_examine_text(mob/user)
+ . = ..()
+ if(!has_aimed_shot)
+ return
+ . += SPAN_NOTICE("This weapon has an unique ability, Aimed Shot, allowing it to deal great damage after a windup.
Additionally, the aimed shot can be sped up with a tracking laser, which is enabled by default but may be disabled. ")
+
+/obj/item/weapon/gun/rifle/sniper/Initialize(mapload, spawn_empty)
+ if(has_aimed_shot)
+ LAZYADD(actions_types, list(/datum/action/item_action/specialist/aimed_shot, /datum/action/item_action/specialist/toggle_laser))
+ return ..()
+
+/obj/item/weapon/gun/rifle/sniper/able_to_fire(mob/living/user)
+ . = ..()
+ if(. && istype(user) && skill_locked) //Let's check all that other stuff first.
+ if(!skillcheck(user, SKILL_SPEC_WEAPONS, SKILL_SPEC_ALL) && user.skills.get_skill_level(SKILL_SPEC_WEAPONS) != SKILL_SPEC_SNIPER)
+ to_chat(user, SPAN_WARNING("You don't seem to know how to use \the [src]..."))
+ return 0
+
+// Aimed shot ability
+/datum/action/item_action/specialist/aimed_shot
+ ability_primacy = SPEC_PRIMARY_ACTION_2
+ var/minimum_aim_distance = 2
+
+/datum/action/item_action/specialist/aimed_shot/New(mob/living/user, obj/item/holder)
+ ..()
+ name = "Aimed Shot"
+ button.name = name
+ button.overlays.Cut()
+ var/image/IMG = image('icons/mob/hud/actions.dmi', button, "sniper_aim")
+ button.overlays += IMG
+ var/obj/item/weapon/gun/rifle/sniper/sniper_rifle = holder_item
+ sniper_rifle.aimed_shot_cooldown = world.time
+
+/*
+ ACTIONS SPECIALSIT SNIPER CAN TAKE
+*/
+/datum/action/item_action/specialist/aimed_shot/action_activate()
+ if(!ishuman(owner))
+ return
+ var/mob/living/carbon/human/H = owner
+ if(H.selected_ability == src)
+ to_chat(H, "You will no longer use [name] with \
+ [H.client && H.client.prefs && H.client.prefs.toggle_prefs & TOGGLE_MIDDLE_MOUSE_CLICK ? "middle-click" : "shift-click"].")
+ button.icon_state = "template"
+ H.selected_ability = null
+ else
+ to_chat(H, "You will now use [name] with \
+ [H.client && H.client.prefs && H.client.prefs.toggle_prefs & TOGGLE_MIDDLE_MOUSE_CLICK ? "middle-click" : "shift-click"].")
+ if(H.selected_ability)
+ H.selected_ability.button.icon_state = "template"
+ H.selected_ability = null
+ button.icon_state = "template_on"
+ H.selected_ability = src
+
+/datum/action/item_action/specialist/aimed_shot/can_use_action()
+ var/mob/living/carbon/human/H = owner
+ if(istype(H) && !H.is_mob_incapacitated() && !H.lying && (holder_item == H.r_hand || holder_item || H.l_hand))
+ return TRUE
+
+/datum/action/item_action/specialist/aimed_shot/proc/use_ability(atom/A)
+ var/mob/living/carbon/human/human = owner
+ if(!istype(A, /mob/living))
+ return
+
+ var/mob/living/target = A
+
+ if(target.stat == DEAD || target == human)
+ return
+
+ var/obj/item/weapon/gun/rifle/sniper/sniper_rifle = holder_item
+ if(world.time < sniper_rifle.aimed_shot_cooldown)
+ return
+
+ if(!check_can_use(target))
+ return
+
+ human.face_atom(target)
+
+ ///Add a decisecond to the default 1.5 seconds for each two tiles to hit.
+ var/distance = round(get_dist(target, human) * 0.5)
+ var/f_aiming_time = sniper_rifle.aiming_time + distance
+
+ var/aim_multiplier = 1
+ var/aiming_buffs
+
+ if(sniper_rifle.enable_aimed_shot_laser)
+ aim_multiplier = 0.6
+ aiming_buffs++
+
+ if(HAS_TRAIT(target, TRAIT_SPOTTER_LAZED))
+ aim_multiplier = 0.5
+ aiming_buffs++
+
+ if(aiming_buffs > 1)
+ aim_multiplier = 0.35
+
+ f_aiming_time *= aim_multiplier
+
+ var/image/lockon_icon = image(icon = 'icons/effects/Targeted.dmi', icon_state = sniper_rifle.sniper_lockon_icon)
+
+ var/x_offset = -target.pixel_x + target.base_pixel_x
+ var/y_offset = (target.icon_size - world.icon_size) * 0.5 - target.pixel_y + target.base_pixel_y
+
+ lockon_icon.pixel_x = x_offset
+ lockon_icon.pixel_y = y_offset
+ target.overlays += lockon_icon
+
+ var/image/lockon_direction_icon
+ if(!sniper_rifle.enable_aimed_shot_laser)
+ lockon_direction_icon = image(icon = 'icons/effects/Targeted.dmi', icon_state = "[sniper_rifle.sniper_lockon_icon]_direction", dir = get_cardinal_dir(target, human))
+ lockon_direction_icon.pixel_x = x_offset
+ lockon_direction_icon.pixel_y = y_offset
+ target.overlays += lockon_direction_icon
+ if(human.client)
+ playsound_client(human.client, 'sound/weapons/TargetOn.ogg', human, 50)
+ playsound(target, 'sound/weapons/TargetOn.ogg', 70, FALSE, 8, falloff = 0.4)
+
+ var/datum/beam/laser_beam
+ if(sniper_rifle.enable_aimed_shot_laser)
+ laser_beam = target.beam(human, sniper_rifle.sniper_beam_icon, 'icons/effects/beam.dmi', (f_aiming_time + 1 SECONDS), beam_type = sniper_rifle.sniper_beam_type)
+ laser_beam.visuals.alpha = 0
+ animate(laser_beam.visuals, alpha = initial(laser_beam.visuals.alpha), f_aiming_time, easing = SINE_EASING|EASE_OUT)
+
+ ////timer is (f_spotting_time + 1 SECONDS) because sometimes it janks out before the doafter is done. blame sleeps or something
+
+ if(!do_after(human, f_aiming_time, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, NO_BUSY_ICON))
+ target.overlays -= lockon_icon
+ target.overlays -= lockon_direction_icon
+ qdel(laser_beam)
+ return
+
+ target.overlays -= lockon_icon
+ target.overlays -= lockon_direction_icon
+ qdel(laser_beam)
+
+ if(!check_can_use(target, TRUE))
+ return
+
+ var/obj/projectile/aimed_proj = sniper_rifle.in_chamber
+ aimed_proj.projectile_flags |= PROJECTILE_BULLSEYE
+ aimed_proj.AddComponent(/datum/component/homing_projectile, target, human)
+ sniper_rifle.Fire(target, human)
+
+/datum/action/item_action/specialist/aimed_shot/proc/check_can_use(mob/M, cover_lose_focus)
+ var/mob/living/carbon/human/H = owner
+ var/obj/item/weapon/gun/rifle/sniper/sniper_rifle = holder_item
+
+ if(!can_use_action())
+ return FALSE
+
+ if(sniper_rifle != H.r_hand && sniper_rifle != H.l_hand)
+ to_chat(H, SPAN_WARNING("How do you expect to do this without your sniper rifle?"))
+ return FALSE
+
+ if(!(sniper_rifle.flags_item & WIELDED))
+ to_chat(H, SPAN_WARNING("Your aim is not stable enough with one hand. Use both hands!"))
+ return FALSE
+
+ if(!sniper_rifle.in_chamber)
+ to_chat(H, SPAN_WARNING("\The [sniper_rifle] is unloaded!"))
+ return FALSE
+
+ if(get_dist(H, M) < minimum_aim_distance)
+ to_chat(H, SPAN_WARNING("\The [M] is too close to get a proper shot!"))
+ return FALSE
+
+ var/obj/projectile/P = sniper_rifle.in_chamber
+ // TODO: Make the below logic only occur in certain circumstances. Check goggles, maybe? -Kaga
+ if(check_shot_is_blocked(H, M, P))
+ to_chat(H, SPAN_WARNING("Something is in the way, or you're out of range!"))
+ if(cover_lose_focus)
+ to_chat(H, SPAN_WARNING("You lose focus."))
+ COOLDOWN_START(sniper_rifle, aimed_shot_cooldown, sniper_rifle.aimed_shot_cooldown_delay * 0.5)
+ return FALSE
+
+ COOLDOWN_START(sniper_rifle, aimed_shot_cooldown, sniper_rifle.aimed_shot_cooldown_delay)
+ return TRUE
+
+/datum/action/item_action/specialist/aimed_shot/proc/check_shot_is_blocked(mob/firer, mob/target, obj/projectile/P)
+ var/list/turf/path = getline2(firer, target, include_from_atom = FALSE)
+ if(!path.len || get_dist(firer, target) > P.ammo.max_range)
+ return TRUE
+
+ var/blocked = FALSE
+ for(var/turf/T in path)
+ if(T.density || T.opacity)
+ blocked = TRUE
+ break
+
+ for(var/obj/O in T)
+ if(O.get_projectile_hit_boolean(P))
+ blocked = TRUE
+ break
+
+ for(var/obj/effect/particle_effect/smoke/S in T)
+ blocked = TRUE
+ break
+
+ return blocked
+
+// Snipers may enable or disable their laser tracker at will.
+/datum/action/item_action/specialist/toggle_laser
+
+/datum/action/item_action/specialist/toggle_laser/New(mob/living/user, obj/item/holder)
+ ..()
+ name = "Toggle Tracker Laser"
+ button.name = name
+ button.overlays.Cut()
+ var/image/IMG = image('icons/mob/hud/actions.dmi', button, "sniper_toggle_laser_on")
+ button.overlays += IMG
+ update_button_icon()
+
+/datum/action/item_action/specialist/toggle_laser/update_button_icon()
+ var/obj/item/weapon/gun/rifle/sniper/sniper_rifle = holder_item
+
+ var/icon = 'icons/mob/hud/actions.dmi'
+ var/icon_state = "sniper_toggle_laser_[sniper_rifle.enable_aimed_shot_laser ? "on" : "off"]"
+
+ button.overlays.Cut()
+ var/image/IMG = image(icon, button, icon_state)
+ button.overlays += IMG
+
+/datum/action/item_action/specialist/toggle_laser/can_use_action()
+ var/obj/item/weapon/gun/rifle/sniper/sniper_rifle = holder_item
+
+ if(owner.is_mob_incapacitated())
+ return FALSE
+
+ if(owner.get_held_item() != sniper_rifle)
+ to_chat(owner, SPAN_WARNING("How do you expect to do this without the sniper rifle in your hand?"))
+ return FALSE
+ return TRUE
+
+/datum/action/item_action/specialist/toggle_laser/action_activate()
+ var/obj/item/weapon/gun/rifle/sniper/sniper_rifle = holder_item
+
+ if(owner.get_held_item() != sniper_rifle)
+ to_chat(owner, SPAN_WARNING("How do you expect to do this without the sniper rifle in your hand?"))
+ return FALSE
+ sniper_rifle.toggle_laser(owner, src)
+
+/obj/item/weapon/gun/rifle/sniper/proc/toggle_laser(mob/user, datum/action/toggling_action)
+ enable_aimed_shot_laser = !enable_aimed_shot_laser
+ to_chat(user, SPAN_NOTICE("You flip a switch on \the [src] and [enable_aimed_shot_laser ? "enable" : "disable"] its targeting laser."))
+ playsound(user, 'sound/machines/click.ogg', 15, TRUE)
+ if(!toggling_action)
+ toggling_action = locate(/datum/action/item_action/specialist/toggle_laser) in actions
+ if(toggling_action)
+ toggling_action.update_button_icon()
+
+/obj/item/weapon/gun/rifle/sniper/verb/toggle_gun_laser()
+ set category = "Weapons"
+ set name = "Toggle Laser"
+ set desc = "Toggles your laser on or off."
+ set src = usr.contents
+
+ var/obj/item/weapon/gun/rifle/sniper/sniper = get_active_firearm(usr)
+ if((sniper == src) && has_aimed_shot)
+ toggle_laser(usr)
+
+//Pow! Headshot.
+
+// end of actions sniper spe can take.
+
+/obj/item/weapon/gun/rifle/sniper/M42A
+ name = "\improper M42A scoped rifle"
+ desc = "A heavy sniper rifle manufactured by Armat Systems. It has a scope system and fires armor penetrating rounds out of a 15-round magazine.\n'Peace Through Superior Firepower'"
+ icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
+ icon_state = "m42a"
+ item_state = "m42a"
+ unacidable = TRUE
+ indestructible = 1
+
+ fire_sound = 'sound/weapons/gun_sniper.ogg'
+ current_mag = /obj/item/ammo_magazine/sniper
+ force = 12
+ wield_delay = WIELD_DELAY_HORRIBLE //Ends up being 1.6 seconds due to scope
+ zoomdevicename = "scope"
+ attachable_allowed = list(/obj/item/attachable/bipod)
+ starting_attachment_types = list(/obj/item/attachable/sniperbarrel)
+ flags_gun_features = GUN_AUTO_EJECTOR|GUN_SPECIALIST|GUN_WIELDED_FIRING_ONLY|GUN_AMMO_COUNTER
+ map_specific_decoration = TRUE
+
+ flags_item = TWOHANDED|NO_CRYO_STORE
+
+/obj/item/weapon/gun/rifle/sniper/M42A/verb/toggle_scope_zoom_level()
+ set name = "Toggle Scope Zoom Level"
+ set category = "Weapons"
+ set src in usr
+ var/obj/item/attachable/scope/variable_zoom/S = attachments["rail"]
+ S.toggle_zoom_level()
+
+/obj/item/weapon/gun/rifle/sniper/M42A/handle_starting_attachment()
+ ..()
+ var/obj/item/attachable/scope/variable_zoom/S = new(src)
+ S.hidden = TRUE
+ S.flags_attach_features &= ~ATTACH_REMOVABLE
+ S.Attach(src)
+ update_attachable(S.slot)
+
+/obj/item/weapon/gun/rifle/sniper/M42A/set_bullet_traits()
+ LAZYADD(traits_to_give, list(
+ BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff)
+ ))
+
+/obj/item/weapon/gun/rifle/sniper/M42A/set_gun_attachment_offsets()
+ attachable_offset = list("muzzle_x" = 39, "muzzle_y" = 17,"rail_x" = 12, "rail_y" = 20, "under_x" = 19, "under_y" = 14, "stock_x" = 19, "stock_y" = 14)
+
+
+/obj/item/weapon/gun/rifle/sniper/M42A/set_gun_config_values()
+ ..()
+ set_fire_delay(FIRE_DELAY_TIER_7*3)
+ set_burst_amount(BURST_AMOUNT_TIER_1)
+ accuracy_mult = BASE_ACCURACY_MULT * 3 //you HAVE to be able to hit
+ scatter = SCATTER_AMOUNT_TIER_8
+ damage_mult = BASE_BULLET_DAMAGE_MULT
+ recoil = RECOIL_AMOUNT_TIER_5
+
+/obj/item/weapon/gun/rifle/sniper/xm43e1
+ name = "\improper XM43E1 experimental anti-materiel rifle"
+ desc = "An experimental anti-materiel rifle produced by Armat Systems, recently reacquired from the deep storage of an abandoned prototyping facility. This one in particular is currently undergoing field testing. Chambered in 10x99mm Caseless."
+ icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
+ icon_state = "xm42b"
+ item_state = "xm42b"
+ unacidable = TRUE
+ indestructible = 1
+
+ fire_sound = 'sound/weapons/sniper_heavy.ogg'
+ current_mag = /obj/item/ammo_magazine/sniper/anti_materiel //Renamed from anti-tank to align with new identity/description. Other references have been changed as well. -Kaga
+ force = 12
+ wield_delay = WIELD_DELAY_HORRIBLE //Ends up being 1.6 seconds due to scope
+ zoomdevicename = "scope"
+ attachable_allowed = list(/obj/item/attachable/bipod)
+ flags_gun_features = GUN_AUTO_EJECTOR|GUN_SPECIALIST|GUN_WIELDED_FIRING_ONLY|GUN_AMMO_COUNTER
+ starting_attachment_types = list(/obj/item/attachable/sniperbarrel)
+ sniper_beam_type = /obj/effect/ebeam/laser/intense
+ sniper_beam_icon = "laser_beam_intense"
+ sniper_lockon_icon = "sniper_lockon_intense"
+
+/obj/item/weapon/gun/rifle/sniper/XM42B/handle_starting_attachment()
+ ..()
+ var/obj/item/attachable/scope/variable_zoom/S = new(src)
+ S.icon_state = "pmcscope"
+ S.attach_icon = "pmcscope"
+ S.flags_attach_features &= ~ATTACH_REMOVABLE
+ S.Attach(src)
+ update_attachable(S.slot)
+
+
+/obj/item/weapon/gun/rifle/sniper/XM42B/set_gun_attachment_offsets()
+ attachable_offset = list("muzzle_x" = 32, "muzzle_y" = 18,"rail_x" = 15, "rail_y" = 19, "under_x" = 20, "under_y" = 15, "stock_x" = 20, "stock_y" = 15)
+
+
+/obj/item/weapon/gun/rifle/sniper/XM42B/set_gun_config_values()
+ ..()
+ set_fire_delay(FIRE_DELAY_TIER_6 * 6 )//Big boy damage, but it takes a lot of time to fire a shot.
+ //Kaga: Adjusted from 56 (Tier 4, 7*8) -> 30 (Tier 6, 5*6) ticks. 95 really wasn't big-boy damage anymore, although I updated it to 125 to remain consistent with the other 10x99mm caliber weapon (M42C). Now takes only twice as long as the M42A.
+ set_burst_amount(BURST_AMOUNT_TIER_1)
+ accuracy_mult = BASE_ACCURACY_MULT + 2*HIT_ACCURACY_MULT_TIER_10 //Who coded this like this, and why? It just calculates out to 1+1=2. Leaving a note here to check back later.
+ scatter = SCATTER_AMOUNT_TIER_10
+ damage_mult = BASE_BULLET_DAMAGE_MULT
+ recoil = RECOIL_AMOUNT_TIER_1
+
+/obj/item/weapon/gun/rifle/sniper/XM42B/set_bullet_traits()
+ LAZYADD(traits_to_give, list(
+ BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff),
+ BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating),
+ BULLET_TRAIT_ENTRY_ID("turfs", /datum/element/bullet_trait_damage_boost, 11, GLOB.damage_boost_turfs),
+ BULLET_TRAIT_ENTRY_ID("breaching", /datum/element/bullet_trait_damage_boost, 11, GLOB.damage_boost_breaching),
+ //At 1375 per shot it'll take 1 shot to break resin turfs, and a full mag of 8 to break reinforced walls.
+ BULLET_TRAIT_ENTRY_ID("pylons", /datum/element/bullet_trait_damage_boost, 6, GLOB.damage_boost_pylons)
+ //At 750 per shot it'll take 3 to break a Pylon (1800 HP). No Damage Boost vs other xeno structures yet, those will require a whole new list w/ the damage_boost trait.
+ ))
+
+/*
+//Disabled until an identity is better defined. -Kaga
+/obj/item/weapon/gun/rifle/sniper/M42B/afterattack(atom/target, mob/user, flag)
+ if(able_to_fire(user))
+ if(get_dist(target,user) <= 8)
+ to_chat(user, SPAN_WARNING("The [src.name] beeps, indicating that the target is within an unsafe proximity to the rifle, refusing to fire."))
+ return
+ else ..()
+*/
+
+/obj/item/weapon/gun/rifle/sniper/elite
+ name = "\improper M42C anti-tank sniper rifle"
+ desc = "A high-end superheavy magrail sniper rifle from Weyland-Armat chambered in a specialized variant of the heaviest ammo available, 10x99mm Caseless. This weapon requires a specialized armor rig for recoil mitigation in order to be used effectively."
+ icon = 'icons/obj/items/weapons/guns/guns_by_faction/wy.dmi'
+ icon_state = "m42c"
+ item_state = "m42c" //NEEDS A TWOHANDED STATE
+
+ fire_sound = 'sound/weapons/sniper_heavy.ogg'
+ current_mag = /obj/item/ammo_magazine/sniper/elite
+ force = 17
+ zoomdevicename = "scope"
+ flags_gun_features = GUN_AUTO_EJECTOR|GUN_WY_RESTRICTED|GUN_SPECIALIST|GUN_WIELDED_FIRING_ONLY|GUN_AMMO_COUNTER
+ starting_attachment_types = list(/obj/item/attachable/sniperbarrel)
+ sniper_beam_type = /obj/effect/ebeam/laser/intense
+ sniper_beam_icon = "laser_beam_intense"
+ sniper_lockon_icon = "sniper_lockon_intense"
+
+/obj/item/weapon/gun/rifle/sniper/elite/handle_starting_attachment()
+ ..()
+ var/obj/item/attachable/scope/S = new(src)
+ S.icon_state = "pmcscope"
+ S.attach_icon = "pmcscope"
+ S.flags_attach_features &= ~ATTACH_REMOVABLE
+ S.Attach(src)
+ update_attachable(S.slot)
+
+/obj/item/weapon/gun/rifle/sniper/elite/set_bullet_traits()
+ LAZYADD(traits_to_give, list(
+ BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff)
+ ))
+
+/obj/item/weapon/gun/rifle/sniper/elite/set_gun_attachment_offsets()
+ attachable_offset = list("muzzle_x" = 32, "muzzle_y" = 18,"rail_x" = 15, "rail_y" = 19, "under_x" = 20, "under_y" = 15, "stock_x" = 20, "stock_y" = 15)
+
+/obj/item/weapon/gun/rifle/sniper/elite/set_gun_config_values()
+ ..()
+ set_fire_delay(FIRE_DELAY_TIER_6*5)
+ set_burst_amount(BURST_AMOUNT_TIER_1)
+ accuracy_mult = BASE_ACCURACY_MULT * 3 //Was previously BAM + HAMT10, similar to the XM42B, and coming out to 1.5? Changed to be consistent with M42A. -Kaga
+ scatter = SCATTER_AMOUNT_TIER_10 //Was previously 8, changed to be consistent with the XM42B.
+ damage_mult = BASE_BULLET_DAMAGE_MULT
+ recoil = RECOIL_AMOUNT_TIER_1
+
+/obj/item/weapon/gun/rifle/sniper/elite/simulate_recoil(total_recoil = 0, mob/user, atom/target)
+ . = ..()
+ if(.)
+ var/mob/living/carbon/human/PMC_sniper = user
+ if(PMC_sniper.lying == 0 && !istype(PMC_sniper.wear_suit,/obj/item/clothing/suit/storage/marine/smartgunner/veteran/pmc) && !istype(PMC_sniper.wear_suit,/obj/item/clothing/suit/storage/marine/veteran))
+ PMC_sniper.visible_message(SPAN_WARNING("[PMC_sniper] is blown backwards from the recoil of the [src.name]!"),SPAN_HIGHDANGER("You are knocked prone by the blowback!"))
+ step(PMC_sniper,turn(PMC_sniper.dir,180))
+ PMC_sniper.apply_effect(5, WEAKEN)
+
+//Type 88 //Based on the actual Dragunov DMR rifle.
+
+/obj/item/weapon/gun/rifle/sniper/svd
+ name = "\improper Type 88 designated marksman rifle"
+ desc = "The standard issue DMR of the UPP, the Type 88 is sought after by competitive shooters and terrorists alike for its high degree of accuracy. Typically loaded with armor-piercing 7.62x54mmR rounds in a 12 round magazine."
+ icon = 'icons/obj/items/weapons/guns/guns_by_faction/upp.dmi'
+ icon_state = "type88"
+ item_state = "type88"
+
+ fire_sound = 'sound/weapons/gun_mg.ogg'
+ current_mag = /obj/item/ammo_magazine/sniper/svd
+ attachable_allowed = list(
+ //Muzzle,
+ /obj/item/attachable/bayonet,
+ /obj/item/attachable/bayonet/upp_replica,
+ /obj/item/attachable/bayonet/upp,
+ //Under,
+ /obj/item/attachable/verticalgrip,
+ /obj/item/attachable/bipod,
+ //Integrated,
+ /obj/item/attachable/type88_barrel,
+ )
+ has_aimed_shot = FALSE
+ flags_gun_features = GUN_AUTO_EJECTOR|GUN_WIELDED_FIRING_ONLY|GUN_AMMO_COUNTER|GUN_CAN_POINTBLANK
+ starting_attachment_types = list()
+ sniper_beam_type = null
+ skill_locked = FALSE
+
+/obj/item/weapon/gun/rifle/sniper/svd/handle_starting_attachment()
+ ..()
+ var/obj/item/attachable/attachie = new /obj/item/attachable/type88_barrel(src)
+ attachie.flags_attach_features &= ~ATTACH_REMOVABLE
+ attachie.Attach(src)
+ update_attachable(attachie.slot)
+
+ var/obj/item/attachable/scope/variable_zoom/integrated/type88sight = new(src)
+ type88sight.flags_attach_features &= ~ATTACH_REMOVABLE
+ type88sight.hidden = TRUE
+ type88sight.Attach(src)
+ update_attachable(type88sight.slot)
+
+/obj/item/weapon/gun/rifle/sniper/svd/set_gun_attachment_offsets()
+ attachable_offset = list("muzzle_x" = 32, "muzzle_y" = 17,"rail_x" = 13, "rail_y" = 19, "under_x" = 26, "under_y" = 14, "stock_x" = 24, "stock_y" = 13, "special_x" = 39, "special_y" = 18)
+
+/obj/item/weapon/gun/rifle/sniper/svd/set_gun_config_values()
+ ..()
+ set_fire_delay(FIRE_DELAY_TIER_6)
+ set_burst_amount(BURST_AMOUNT_TIER_1)
+ accuracy_mult = BASE_ACCURACY_MULT * 3
+ scatter = SCATTER_AMOUNT_TIER_8
+ damage_mult = BASE_BULLET_DAMAGE_MULT
+ recoil = RECOIL_AMOUNT_TIER_5
+ damage_falloff_mult = 0
diff --git a/code/modules/projectiles/magazines/rifles.dm b/code/modules/projectiles/magazines/rifles.dm
index 42c79fdab858..3d1b7088fa83 100644
--- a/code/modules/projectiles/magazines/rifles.dm
+++ b/code/modules/projectiles/magazines/rifles.dm
@@ -471,8 +471,8 @@
default_ammo = /datum/ammo/bullet/rifle
max_rounds = 30
gun_type = /obj/item/weapon/gun/rifle/rmc_f90
- ammo_band_icon = "+m41a_band"
- ammo_band_icon_empty = "+m41a_band_e"
+ ammo_band_icon = "+aug_band"
+ ammo_band_icon_empty = "+aug_band_e"
/obj/item/ammo_magazine/rifle/rmc_f90/marksman
name = "\improper F903A1 Marksman magazine (10x24mm)"
@@ -483,3 +483,19 @@
gun_type = /obj/item/weapon/gun/rifle/rmc_f90/scope
max_rounds = 20
ammo_band_color = AMMO_BAND_COLOR_AP
+ ammo_band_icon = "+aug_dmr_band"
+ ammo_band_icon_empty = "+aug_dmr_band_e"
+
+/obj/item/ammo_magazine/rifle/rmc_f90/heap
+ name = "\improper F903 HEAP magazine (10x24mm)"
+ desc = "A 10mm armor piercing high explosive assault rifle magazine used by the royal marines."
+ default_ammo = /datum/ammo/bullet/rifle/heap
+ ammo_band_color = AMMO_BAND_COLOR_HEAP
+
+/obj/item/ammo_magazine/rifle/rmc_f90/marksman/heap
+ name = "\improper F903A1 Marksman magazine (10x24mm)"
+ desc = "A 10mm armor piercing high explosive assault rifle magazine used by the royal marines."
+ icon_state = "aug_dmr"
+ item_state = "aug_dmr"
+ default_ammo = /datum/ammo/bullet/rifle/heap
+ ammo_band_color = AMMO_BAND_COLOR_HEAP
diff --git a/code/modules/reagents/chemistry_properties/prop_special.dm b/code/modules/reagents/chemistry_properties/prop_special.dm
index 7c96169d199f..640e18426311 100644
--- a/code/modules/reagents/chemistry_properties/prop_special.dm
+++ b/code/modules/reagents/chemistry_properties/prop_special.dm
@@ -96,7 +96,7 @@
H.contract_disease(new /datum/disease/xeno_transformation(0),1) //This is the real reason PMCs are being sent to retrieve it.
/datum/chem_property/special/DNA_Disintegrating/trigger()
- SSticker.mode.get_specific_call("Weyland-Yutani Goon (Chemical Investigation Squad)", FALSE, FALSE, holder.name, TRUE)
+ SSticker.mode.get_specific_call("Weyland-Yutani Goon (Chemical Investigation Squad)", TRUE, FALSE, FALSE, holder.name, TRUE)
chemical_data.update_credits(10)
message_admins("The research department has discovered DNA_Disintegrating in [holder.name] adding 10 bonus tech points.")
var/datum/techtree/tree = GET_TREE(TREE_MARINE)
diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm
index c7b3d3e1bae2..e61357188ad6 100644
--- a/code/modules/recycling/sortingmachinery.dm
+++ b/code/modules/recycling/sortingmachinery.dm
@@ -241,7 +241,7 @@
var/obj/item/smallDelivery/P = new /obj/item/smallDelivery(get_turf(O.loc)) //Aaannd wrap it up!
if(!istype(O.loc, /turf))
if(user.client)
- user.client.screen -= O
+ user.client.remove_from_screen(O)
P.wrapped = O
O.forceMove(P)
P.w_class = O.w_class
diff --git a/code/modules/shuttle/computers/dropship_computer.dm b/code/modules/shuttle/computers/dropship_computer.dm
index c7a79b9c44ca..954c91d9ca54 100644
--- a/code/modules/shuttle/computers/dropship_computer.dm
+++ b/code/modules/shuttle/computers/dropship_computer.dm
@@ -179,6 +179,9 @@
return
to_chat(xeno, SPAN_NOTICE("You command the metal bird to come down. Clever girl."))
xeno_announcement(SPAN_XENOANNOUNCE("Your Queen has commanded the metal bird to the hive at [linked_lz]."), xeno.hivenumber, XENO_GENERAL_ANNOUNCE)
+ var/datum/ares_link/link = GLOB.ares_link
+ link.log_ares_flight("Unknown", "Remote launch signal for [shuttle.name] received. Authentication garbled.")
+ link.log_ares_security("Security Alert", "Remote launch signal for [shuttle.name] received. Authentication garbled.")
return
if(shuttle.destination.id != linked_lz)
to_chat(xeno, "The shuttle not ready. The screen reads T-[shuttle.timeLeft(10)]. Have patience.")
diff --git a/code/modules/shuttle/shuttles/dropship.dm b/code/modules/shuttle/shuttles/dropship.dm
index d81484b0343d..e1c2bb9a1f9a 100644
--- a/code/modules/shuttle/shuttles/dropship.dm
+++ b/code/modules/shuttle/shuttles/dropship.dm
@@ -100,7 +100,7 @@
var/name = "Unidentified Lifesigns"
var/input = "Unidentified lifesigns detected onboard. Recommendation: lockdown of exterior access ports, including ducting and ventilation."
- shipwide_ai_announcement(input, name, 'sound/AI/unidentified_lifesigns.ogg')
+ shipwide_ai_announcement(input, name, 'sound/AI/unidentified_lifesigns.ogg', ares_logging = ARES_LOG_SECURITY)
set_security_level(SEC_LEVEL_RED)
return
diff --git a/code/modules/shuttles/marine_ferry.dm b/code/modules/shuttles/marine_ferry.dm
index 426d90c1457a..7ec4b2eb7333 100644
--- a/code/modules/shuttles/marine_ferry.dm
+++ b/code/modules/shuttles/marine_ferry.dm
@@ -230,7 +230,7 @@
if(X && X.stat != DEAD)
var/name = "Unidentified Lifesigns"
var/input = "Unidentified lifesigns detected onboard. Recommendation: lockdown of exterior access ports, including ducting and ventilation."
- shipwide_ai_announcement(input, name, 'sound/AI/unidentified_lifesigns.ogg')
+ shipwide_ai_announcement(input, name, 'sound/AI/unidentified_lifesigns.ogg', ares_logging = ARES_LOG_SECURITY)
set_security_level(SEC_LEVEL_RED)
break
diff --git a/code/modules/surgery/surgery_initiator.dm b/code/modules/surgery/surgery_initiator.dm
index 08b4dbdfed60..8b7506c9b7b8 100644
--- a/code/modules/surgery/surgery_initiator.dm
+++ b/code/modules/surgery/surgery_initiator.dm
@@ -27,6 +27,13 @@
to_chat(user, SPAN_WARNING("You can't perform surgery under these bad conditions!"))
return FALSE
+ var/obj/limb/surgery_limb = target.get_limb(target_zone)
+ if(surgery_limb)
+ var/obj/item/blocker = target.get_sharp_obj_blocker(surgery_limb)
+ if(blocker)
+ to_chat(user, SPAN_WARNING("[blocker] [target] is wearing restricts your access to the surgical site, take it off!"))
+ return
+
if(user.action_busy) //already doing an action
return FALSE
@@ -130,6 +137,12 @@
if(surgeryinstance.lying_required && !target.lying)
return TRUE
+ if(surgery_limb)
+ var/obj/item/blocker = target.get_sharp_obj_blocker(surgery_limb)
+ if(blocker)
+ to_chat(user, SPAN_WARNING("[blocker] [target] is wearing restricts your access to the surgical site, take it off!"))
+ return
+
if(affecting)
if(surgeryinstance.requires_bodypart)
if(affecting.status & LIMB_DESTROYED)
diff --git a/colonialmarines.dme b/colonialmarines.dme
index 79ddef81b976..63140be5e458 100644
--- a/colonialmarines.dme
+++ b/colonialmarines.dme
@@ -529,6 +529,7 @@ s// DM Environment file for colonialmarines.dme.
#include "code\datums\keybinding\emote.dm"
#include "code\datums\keybinding\human.dm"
#include "code\datums\keybinding\human_combat.dm"
+#include "code\datums\keybinding\human_inventory.dm"
#include "code\datums\keybinding\living.dm"
#include "code\datums\keybinding\mob.dm"
#include "code\datums\keybinding\movement.dm"
@@ -970,6 +971,7 @@ s// DM Environment file for colonialmarines.dme.
#include "code\game\objects\effects\landmarks\structure_spawners\structure_spawner.dm"
#include "code\game\objects\effects\landmarks\structure_spawners\xvx_hive.dm"
#include "code\game\objects\effects\spawners\gibspawner.dm"
+#include "code\game\objects\effects\spawners\prop_gun_spawner.dm"
#include "code\game\objects\effects\spawners\random.dm"
#include "code\game\objects\effects\spawners\spawner.dm"
#include "code\game\objects\effects\spawners\vaultspawner.dm"
@@ -1145,6 +1147,7 @@ s// DM Environment file for colonialmarines.dme.
#include "code\game\objects\items\storage\storage.dm"
#include "code\game\objects\items\storage\surgical_tray.dm"
#include "code\game\objects\items\storage\toolbox.dm"
+#include "code\game\objects\items\storage\toolkit.dm"
#include "code\game\objects\items\storage\wallets.dm"
#include "code\game\objects\items\tanks\jetpack.dm"
#include "code\game\objects\items\tanks\tank_types.dm"
@@ -1659,12 +1662,10 @@ s// DM Environment file for colonialmarines.dme.
#include "code\modules\gear_presets\corpses.dm"
#include "code\modules\gear_presets\dust_raider.dm"
#include "code\modules\gear_presets\dutch.dm"
-#include "code\modules\gear_presets\forcon_survivors.dm"
#include "code\modules\gear_presets\fun.dm"
#include "code\modules\gear_presets\other.dm"
#include "code\modules\gear_presets\pmc.dm"
#include "code\modules\gear_presets\royal_marines.dm"
-#include "code\modules\gear_presets\survivors.dm"
#include "code\modules\gear_presets\synths.dm"
#include "code\modules\gear_presets\upp.dm"
#include "code\modules\gear_presets\uscm.dm"
@@ -1678,6 +1679,21 @@ s// DM Environment file for colonialmarines.dme.
#include "code\modules\gear_presets\wy.dm"
#include "code\modules\gear_presets\wy_goons.dm"
#include "code\modules\gear_presets\yautja.dm"
+#include "code\modules\gear_presets\survivors\misc.dm"
+#include "code\modules\gear_presets\survivors\survivors.dm"
+#include "code\modules\gear_presets\survivors\corsat\preset_corsat.dm"
+#include "code\modules\gear_presets\survivors\fiorina_sciannex\preset_fiorina_sciannex.dm"
+#include "code\modules\gear_presets\survivors\kutjevo\preset_kutjevo.dm"
+#include "code\modules\gear_presets\survivors\lv_522\forcon_survivors.dm"
+#include "code\modules\gear_presets\survivors\lv_624\clfship_insert_lv624.dm"
+#include "code\modules\gear_presets\survivors\lv_624\preset_lv.dm"
+#include "code\modules\gear_presets\survivors\new_varadero\preset_new_varadero.dm"
+#include "code\modules\gear_presets\survivors\shivas_snowball\preset_shivas_snowball.dm"
+#include "code\modules\gear_presets\survivors\solaris\crashlanding-offices_insert_bigred.dm"
+#include "code\modules\gear_presets\survivors\solaris\preset_solaris.dm"
+#include "code\modules\gear_presets\survivors\sorokyne_strata\preset_sorokyne_strata.dm"
+#include "code\modules\gear_presets\survivors\trijent\crashlanding_upp_bar_insert_trijent.dm"
+#include "code\modules\gear_presets\survivors\trijent\preset_trijent.dm"
#include "code\modules\hydroponics\botany_disks.dm"
#include "code\modules\hydroponics\grown_inedible.dm"
#include "code\modules\hydroponics\hydro_tools.dm"
@@ -1828,7 +1844,9 @@ s// DM Environment file for colonialmarines.dme.
#include "code\modules\mob\living\carbon\human\species\zombie.dm"
#include "code\modules\mob\living\carbon\human\species\working_joe\_emote.dm"
#include "code\modules\mob\living\carbon\human\species\working_joe\_species.dm"
+#include "code\modules\mob\living\carbon\human\species\working_joe\damage.dm"
#include "code\modules\mob\living\carbon\human\species\working_joe\farewell.dm"
+#include "code\modules\mob\living\carbon\human\species\working_joe\fire.dm"
#include "code\modules\mob\living\carbon\human\species\working_joe\greeting.dm"
#include "code\modules\mob\living\carbon\human\species\working_joe\notice.dm"
#include "code\modules\mob\living\carbon\human\species\working_joe\question.dm"
@@ -2129,9 +2147,13 @@ s// DM Environment file for colonialmarines.dme.
#include "code\modules\projectiles\guns\smartgun.dm"
#include "code\modules\projectiles\guns\smgs.dm"
#include "code\modules\projectiles\guns\souto.dm"
-#include "code\modules\projectiles\guns\specialist.dm"
#include "code\modules\projectiles\guns\flamer\flamer.dm"
#include "code\modules\projectiles\guns\flamer\flameshape.dm"
+#include "code\modules\projectiles\guns\specialist\scout.dm"
+#include "code\modules\projectiles\guns\specialist\sniper.dm"
+#include "code\modules\projectiles\guns\specialist\launcher\grenade_launcher.dm"
+#include "code\modules\projectiles\guns\specialist\launcher\launcher.dm"
+#include "code\modules\projectiles\guns\specialist\launcher\rocket_launcher.dm"
#include "code\modules\projectiles\magazines\flamer.dm"
#include "code\modules\projectiles\magazines\lever_action.dm"
#include "code\modules\projectiles\magazines\misc.dm"
diff --git a/config/example/config.txt b/config/example/config.txt
index 181e10e8e150..dcce46434404 100644
--- a/config/example/config.txt
+++ b/config/example/config.txt
@@ -234,11 +234,8 @@ AUTOOOCMUTE
## The default value assumes youtube-dl is in your system PATH
# INVOKE_YOUTUBEDL youtube-dl
-## Rounds needed before a gamemode vote is casted. Set to -1 to disable
-GAMEMODE_ROUNDS_NEEDED 5
-
## Default gamemode to auto-switch back to after a round has concluded
-GAMEMODE_DEFAULT extended
+GAMEMODE_DEFAULT Extended
## How long the mob will take to chestburst, in seconds
#EMBRYO_BURST_TIMER 450
diff --git a/html/changelogs/AutoChangeLog-pr-4392.yml b/html/changelogs/AutoChangeLog-pr-4392.yml
deleted file mode 100644
index 5f22ab70e802..000000000000
--- a/html/changelogs/AutoChangeLog-pr-4392.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Morrow"
-delete-after: True
-changes:
- - bugfix: "Fixed lifepods still working after evac canceled"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-4393.yml b/html/changelogs/AutoChangeLog-pr-4393.yml
deleted file mode 100644
index c04d711dbb7f..000000000000
--- a/html/changelogs/AutoChangeLog-pr-4393.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "realforest2001"
-delete-after: True
-changes:
- - rscadd: "Codebooks are now faction based rather than individually unique."
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-4399.yml b/html/changelogs/AutoChangeLog-pr-4399.yml
deleted file mode 100644
index ab2b1eb9aa4f..000000000000
--- a/html/changelogs/AutoChangeLog-pr-4399.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Zonespace27"
-delete-after: True
-changes:
- - balance: "Coffins now layer above beds"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-4403.yml b/html/changelogs/AutoChangeLog-pr-4403.yml
deleted file mode 100644
index 8071a06ba537..000000000000
--- a/html/changelogs/AutoChangeLog-pr-4403.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Morrow"
-delete-after: True
-changes:
- - rscadd: "Added a ghost notification for yautja self destructs"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-4406.yml b/html/changelogs/AutoChangeLog-pr-4406.yml
deleted file mode 100644
index d015f575c6e5..000000000000
--- a/html/changelogs/AutoChangeLog-pr-4406.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-author: "realforest2001"
-delete-after: True
-changes:
- - imageadd: "Added a CMB stamp icon."
- - imageadd: "Changes the icon_state name of the WY stamp from centcom to weyyu."
- - rscadd: "Changes EFTPOS stamp icon to use RD instead of weyyu."
- - bugfix: "Changes the pre-spawned QMs stamp to use the proper stamp."
- - spellcheck: "Renames Requisiton Officer's stamp to Quartermaster's Stamp."
- - maptweak: "Renamed the spare Req Officer's stamp to spare Quartermaster's stamp."
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-4599.yml b/html/changelogs/AutoChangeLog-pr-4599.yml
new file mode 100644
index 000000000000..278aae8f44a3
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-4599.yml
@@ -0,0 +1,5 @@
+author: "BeagleGaming1"
+delete-after: True
+changes:
+ - rscadd: "Light floor can be examined to tell if it is on, off, or broken."
+ - code_imp: "Light floor subtypes for easier mapping"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-4613.yml b/html/changelogs/AutoChangeLog-pr-4613.yml
new file mode 100644
index 000000000000..427478819bca
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-4613.yml
@@ -0,0 +1,4 @@
+author: "irRegularGuy646"
+delete-after: True
+changes:
+ - bugfix: "fixed new goggle's on helmet sprite"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-4616.yml b/html/changelogs/AutoChangeLog-pr-4616.yml
new file mode 100644
index 000000000000..85ae5e876e99
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-4616.yml
@@ -0,0 +1,5 @@
+author: "Birdtalon"
+delete-after: True
+changes:
+ - bugfix: "You can now pick up paper bins"
+ - bugfix: "Campfires stop consuming wood when full"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-4620.yml b/html/changelogs/AutoChangeLog-pr-4620.yml
new file mode 100644
index 000000000000..73dc0ebb9b34
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-4620.yml
@@ -0,0 +1,4 @@
+author: "Zonespace27"
+delete-after: True
+changes:
+ - rscdel: "Predators can no longer see their or others cross-round honor count."
\ No newline at end of file
diff --git a/html/changelogs/archive/2023-09.yml b/html/changelogs/archive/2023-09.yml
index ddcc704cd5cb..6dc9203f23d8 100644
--- a/html/changelogs/archive/2023-09.yml
+++ b/html/changelogs/archive/2023-09.yml
@@ -191,3 +191,264 @@
- balance: M56D now has full auto mode.
- qol: M56D now has an ammo counter when firing.
- rscdel: M2C can no longer rotate with MMB
+2023-09-14:
+ Morrow:
+ - rscadd: Added a ghost notification for yautja self destructs
+ - bugfix: Fixed lifepods still working after evac canceled
+ Zonespace27:
+ - balance: Coffins now layer above beds
+ realforest2001:
+ - imageadd: Added a CMB stamp icon.
+ - imageadd: Changes the icon_state name of the WY stamp from centcom to weyyu.
+ - rscadd: Changes EFTPOS stamp icon to use RD instead of weyyu.
+ - bugfix: Changes the pre-spawned QMs stamp to use the proper stamp.
+ - spellcheck: Renames Requisiton Officer's stamp to Quartermaster's Stamp.
+ - maptweak: Renamed the spare Req Officer's stamp to spare Quartermaster's stamp.
+ - rscadd: Codebooks are now faction based rather than individually unique.
+2023-09-15:
+ BeagleGaming1, forest2001:
+ - rscadd: Adds a CMB ERT to investigate the Black Market
+ - rscadd: Adds a [cmb] logo for papers
+ - rscadd: Adds a quiet_launch var for distress beacons, to differentiate between
+ ERTs who should announce their response reception, but not the beacon going
+ out in the first place.
+ - rscdel: Removes banhammer from normal acquisition.
+ Ben10083:
+ - rscadd: Working Joe arrivals announced in Apollo link
+ Drathek:
+ - bugfix: Fix some donor items breaking on maps with camos.
+ - bugfix: Fix donor items not having a fingerprint atom flag and donor armors not
+ having conductive atom flag.
+ Morrow:
+ - bugfix: Fixed a few ways around fire group delays
+ Waseemq1235:
+ - admin: TWE faction reports are now possible.
+2023-09-17:
+ BeagleGaming1:
+ - bugfix: Fixed CN20-X canister grenades
+ Drathek:
+ - bugfix: Fix/Rework logic regarding xeno guaranteed slots
+ - bugfix: Fix evolution in thunder dome affecting hive slots
+ Morrow:
+ - rscdel: Disables Shivas Snowball
+ Private Tristan:
+ - spellcheck: acid runners are now properly informed of their corrosive acid's strength.
+2023-09-19:
+ Hopek:
+ - rscadd: 'New facehugger strain: Watcher. The Watcher loses their ability to hide
+ in exchange to see further and the ability to no longer take damage outside
+ of weeds.'
+ c4xmaniac2:
+ - balance: Moved 1/3 of all intel into the cave systems.
+ - maptweak: 1/3 of all Intel has been redistributed into the caves.
+ - maptweak: Nightmare inserts on the colony side and in the caves of LV now have
+ their intel distribution standardized.
+ realforest2001:
+ - bugfix: Fixes the CMB tradeband scanner not being able to do it's job.
+2023-09-20:
+ BeagleGaming1:
+ - rscadd: Uncommented the "Observe" verb for ghosts, allowing ghosts to see from
+ a humans HUD
+ Huffie56:
+ - balance: made it so that req as double what a standard vendor as in ammo and guns.
+ Morrow:
+ - balance: Removed some PMC gear on maps
+ SpartanBobby, GSDPathe:
+ - maptweak: Changes to LV522 loot table surrounding metal spawns
+ - maptweak: Redectorates areas around LV522 that were underwhelming before
+ TheGamerdk, ihatethisengine:
+ - rscadd: IOs start in their own squad now
+ c4xmaniac2:
+ - mapadd: Readds yard to Science Annex
+ - maptweak: Redid the yard loot to be more in line with current surv loot standards.
+2023-09-21:
+ SubjectD9341:
+ - imageadd: added the icons for the new biosuits
+ - imagedel: removed the icons for the old biosuits
+ realforest2001:
+ - bugfix: Fixes the overwrite mark prompt on admin tickets not respecting closing
+ the confirmation prompt.
+2023-09-22:
+ Huffie56:
+ - qol: reorganize and update all the squads vendors to add new categories(helmet
+ optics, pamphlets, clothing items).
+ - balance: remove hostler because it was available for free(for medic, squad-tl,.
+ - balance: added possibility to buy M4 Pattern Armor for rifleman.
+ - balance: added possibility to buy USCM Radio Telephone Pack for squad medic, engi
+ and specialist.
+ - balance: added possibility to buy Welding Visor for medic, SL, rifleman, smartgunner
+ and specialist.
+ Morrow:
+ - balance: Removed eggs off hive weeds for egg sac carrier
+ - balance: Backpacks can now only fit first aid kits if you have medical skill and
+ toolkits if you have engineering skill
+ - balance: G8-A can no longer fit first aid kits or toolkits
+ - balance: Toolbelt now has 10 slots and can fit more engineer related items
+ - balance: Combat toolbelt now has 9 slots and can fit small ammo and engineer related
+ items
+ - balance: M276 medical rig belt no longer holds ammo
+ - balance: Plastic bag removed from normal play
+ - balance: First aid kits can now only hold medical items
+ - balance: Toolkits have been renamed to engineer kits and can only hold engineering
+ items (not tools)
+ - balance: Welding tool buffed to 40 welder fuel
+ - balance: Larger welding tools removed from normal play
+ - rscadd: Electrical toolbox now has an APC circuitboard
+ - balance: Medical pouch removed in req and various job vendors
+ - balance: Machete pouch, large pouches, and autoinjector pouch scales reduced in
+ req
+ - balance: medkit pouch has been renamed to medical kit pouch and can hold 7 medical
+ items, only usable if you have medic skill
+ Morrow, DrLance (sprites):
+ - rscadd: Added the Mateba Special as a choice for COs
+ Waseemq1235:
+ - rscadd: Added HEAP F903 magazines. Does NOT spawn with the ERT presets. ADMIN
+ SPAWN ONLY.
+ - imageadd: Added F903 ammo band icons.
+2023-09-23:
+ Morrow:
+ - bugfix: Fixed intel squad "Unauthorized access detected"
+ realforest2001:
+ - rscadd: Gives survivors bank accounts.
+2023-09-24:
+ BeagleGaming1:
+ - admin: Disabling round end delay has a confirmation
+ - rscadd: Added a mapping effect for prop guns
+ Morrow:
+ - bugfix: Fixed drag-n-drop nesting opening
+ Steelpoint:
+ - rscadd: Intel Officers will now default to using the Intel radio channel when
+ communicating.
+ Sylphily:
+ - rscadd: Added the ability for the IMP Ammo Rack to hold folding barricades.
+ Zonespace27:
+ - balance: Specialists now have separate pools of points for ammo and utility.
+2023-09-25:
+ Steelpoint:
+ - rscadd: Synthetics may now vend biohazard suits for personal use. Synth compliant.
+ Zonespace27:
+ - balance: Cloaked mobs no longer give off visible messages
+ c4xmaniac2:
+ - balance: Comms areas around the east/west rivers expanded for easier sieges and
+ weedable now.
+ - maptweak: LV Comms now always spawn in Tcomms and one either on the east or west
+ river
+2023-09-27:
+ CapCamIII:
+ - rscadd: Adds upp presets for the unused officer ranks, Kapitan, Lt Kolonel, MajGen,
+ LtGen, Gen, for use in admin events
+ - rscadd: Changes UPP conscript rank from weird conscript only rank to Private,
+ moves UPP soldier to PFC, removing the rank gap between soldier and support
+ - code_imp: Cleans up UPP rank code by deleting redundant ranks
+ CapCamIII, AmoryBlaine:
+ - rscadd: Adds new service uniform sprite that is standard across maps, sprites
+ by AmoryBlaine
+ - rscadd: Resprites old dress uniform, renames it, adds to XO vendor as a uniform
+ choice as it fits there now, sprites by AmoryBlaine
+ - rscadd: Adds new uniform, command boiler suit like gorman wears in the movie,
+ available in SO locker, SO vendor, XO vendor, CO vendor, sprites by AmoryBlaine
+ - rscadd: Adds new brown versions of gloves and boot to custom loadout, also lowers
+ the price of jungle boots to two, sprites by AmoryBlaine
+ - rscadd: Seperates officer cap and RO cap, officers get officer cap, QM gets RO
+ cap, CTs get req cap, sprites once again by AmoryBlaine
+ - rscadd: UPP boots and gloves use the new brown sprite, as it fits their color
+ scheme and looks cool.
+ - bugfix: Freelancer leader now spawns with a knife in their boots
+ - imageadd: Resprites patrol cap, officer cap, SEA cap, standard black boot, standard
+ black glove, and formal gloves, sprites by AmoryBlaine
+ Casper:
+ - bugfix: fixed reagent canister being deleted if ejected with your hands full
+ - bugfix: fixed cigarette punctuation error
+ Drathek:
+ - bugfix: Fix dead huggers converting to non-player huggers
+ Git-Nivrak:
+ - bugfix: Fixes no fire delay on m56d in semi-auto and burst fire
+ HeresKozmos:
+ - mapadd: added 9 new tunnels to trijent dam
+ - mapadd: added 9 new tunnels to Fiorina SciAnnex
+ Morrow:
+ - bugfix: Fixed a bug with akimbo firing
+ - rscdel: Removed alpha egg on LV522
+ - rscadd: Added a save-able preference for auto-observe
+ - bugfix: Fixed numerous problems with HUD observer mode
+ - code_imp: Created a wrapper for client screen changes
+ - code_imp: Made check contents less horrendous
+ Steelpoint:
+ - mapadd: Sensor Towers have been added to all maps.
+ - rscadd: UPP survivor radio role identifiers now have a shorter title.
+ - rscadd: UPP survivors now default to using a players preferred name instead of
+ a random UPP name.
+ TeDGamer:
+ - balance: All trained+ engineer skill levels affect duration now.
+ - balance: Removed double skill duration multiplier for m56d's.
+ TheGamerdk:
+ - bugfix: Adding marines to intel squad broke the crew manifest
+ Zonespace27:
+ - bugfix: HEFA Knights now spawn with their armor again
+ - balance: HEFA Knights now spawn with 2 HEFA in their helmets
+ - admin: Added skillless subtype of the m707
+ - balance: Lowered vulture spotted/unspotted drift from 33/100 to 25/90
+ - balance: Lowered vulture scope adjust/move time from 0.5/1.0s to 0.4/0.8s
+ - balance: Vulture bipod anchors user in place
+ bostonthebear:
+ - rscadd: Changes pilot officer timelock from 5 hours as squad marine to 2 hours
+ as DCC
+ realforest2001:
+ - balance: Adds an extra 75% damage and hive interference to plasma rifle vs xenos.
+2023-09-28:
+ Casper:
+ - bugfix: fixed S&W black market crate not working
+ - bugfix: fixed flashlights showing incorrect sprite state
+ Steelpoint:
+ - rscadd: Alert message regarding Pylon construction around a communications array
+ now properly emphasizes why it is a threat to Marines, and a benefit to Xenos.
+ TheGamerdk:
+ - qol: You can no longer doom yourself by joining as a crit xeno
+2023-09-29:
+ BeagleGaming1:
+ - bugfix: Whiskey Outpost ground map vote works correctly
+ - config: Removed unnecessary config
+ Ben10083:
+ - soundadd: Multiple new Working Joe voicelines added
+ Casper:
+ - bugfix: fixed cameras going invisible on wire cut
+ Huffie56:
+ - refactor: divide preset into different file for each map.
+ Morrow:
+ - qol: '"Do nothing" dual wield preference'
+ QuickLode:
+ - rscdel: removed Pvts from Anchorpoint QRF (rip)
+ - spellcheck: fixed a typo in CMB call-in
+ - rscadd: Allows ext webbing to hold firearms.
+ - bugfix: exosuits which can hold scabbards can hold similar scabbards(ie, machete
+ and katana)
+ - rscdel: Removes ext webbing from SO Locker
+ SpartanBobby:
+ - maptweak: CL now spawns in a hypersleep bay "Passenger Bay" it's right next to
+ his office, the CC spawns with him too since his landmark was in the latejoin
+ bay on the lowerdeck
+ - maptweak: re-arranged PO bunks should allow for better traffic in and out
+ - maptweak: fixed symmetry issue in north-south CIC hallway
+ - maptweak: minor warning stripe decal additions around Almayer
+ Steelpoint:
+ - rscadd: Synthetic equipment vendor now can vend fuel cannisters and all colour
+ variants of the synthetic utility vest.
+ - rscadd: Synthetic cosmetic vendor now can vend all colour variants of the standard
+ Marine helmet, MP and Combat Technician uniforms, the welder chestrig and security
+ hud glasses.
+ Zonespace27:
+ - bugfix: Picking up a dropped pred bracer will no longer leave it stuck to your
+ hand.
+ - bugfix: Yautja can no longer mark xenoes as honorable
+ - rscadd: You can now fold a combi-stick using the new "collapse combi-stick" verb
+ and/or keybind. Defaults to the space bar.
+ - bugfix: Using a Yautja relay beacon now properly decloaks you
+2023-09-30:
+ Drathek:
+ - bugfix: Join as xeno no longer offers buried larva spawns if there are larva queue
+ candidates
+ Huffie56:
+ - refactor: Cleaning specialist.dm file
+ Morrow:
+ - rscdel: Removed more clown gear from maps
+ - bugfix: Fixed taking control of crit xenos
diff --git a/html/changelogs/archive/2023-10.yml b/html/changelogs/archive/2023-10.yml
new file mode 100644
index 000000000000..0d0ed6ed21cd
--- /dev/null
+++ b/html/changelogs/archive/2023-10.yml
@@ -0,0 +1,129 @@
+2023-10-01:
+ QuickLode:
+ - bugfix: Allows M46C prototype rifle to accept standard M41A MK2 rubber munitions
+2023-10-02:
+ Ben10083:
+ - bugfix: fixed a Working Joe voiceline from not working
+ Casper:
+ - ui: added microwave TGUI
+ Morrow:
+ - bugfix: Fixed fake incomplete surgeries
+ - bugfix: Fixed manual distress signal manual call options
+ - bugfix: Fixed a WO distress signal over announcing
+ Steelpoint:
+ - balance: Tool Pouch can now hold the same types of items that a toolbelt can hold.
+ It is still restricted to 4 inventory slots.
+ - balance: Eggs no longer are resistant to certain kinds of melee attacks. Making
+ them far easier to kill in melee.
+ realforest2001:
+ - balance: Reduces power cost for plasma caster use, and creation of thwei crystals/health
+ capsules.
+2023-10-03:
+ Drathek:
+ - rscadd: Add the last larva queue message to observer's status panel
+ Huffie56:
+ - qol: remove welding google from squad comtech vendor to avoid him to waste point
+ since tool vendor have them for free.
+ JackieEstegado:
+ - bugfix: Fixed runtime that could happen when melleing an egg.
+ Morrow:
+ - balance: If a mob is on top of a reflective wall the wall no longer functions
+ - balance: Bullets will not longer get eaten by xeno special structures unless you
+ click directly on them
+ - bugfix: '"Fixed" missing window frame icon states'
+ Private Tristan:
+ - balance: all resin fruits now contain 30u of fruit resin along with their secondary
+ reagents.
+ - balance: Alacrit fruits now contain catecholamine plasma instead of pheromone
+ plasma.
+ Steelpoint:
+ - rscadd: Xenomorph hives can now form an alliance with Colonial Marshals.
+ Sulaboy, Hidgamer, Steelpoint:
+ - rscadd: Adds the surgical drop pouch item. It comes in green, blue and black.
+ Only available from the synthetic vendor currently.
+ - imageadd: Adds sprites for the surgical drop pouches.
+2023-10-04:
+ BeagleGaming1:
+ - rscadd: Added keybinds to allow inventory manipulation
+ Morrow:
+ - admin: Operation time logging
+ - balance: Underbarrel extinguisher no longer requires wield
+ - bugfix: Re-added previous UPP changes that were lost in soft conflict
+ - spellcheck: Removed some ambiguous text about loyalties for UPP survivors
+ - bugfix: Fixed storage depth for internal storages
+ - bugfix: Candle boxes can now only hold candles
+ blackdragonTOW:
+ - sounddel: removed 300+ ancient and unused Piano and Violin notes.
+2023-10-05:
+ Drathek:
+ - rscadd: Restore the stat panel options menu to change the stat panel font size
+ - bugfix: Fix getFlatIcon not resizing its template nor respect appearance_flags
+ of RESET_COLOR and RESET_ALPHA
+ Morrow:
+ - bugfix: Fixed req door accesses
+ - rscadd: Added NVG optics
+ - rscadd: Added a hotkey to cycle optics
+ - rscadd: Added special marine raider optic
+ - rscadd: Added examine text for optics
+ - rscadd: Added research publication to advanced medical optic
+ - rscdel: Removed functional tube NVGs from gameplay
+ - refactor: Moved some optics code around to make it less redundant
+ - bugfix: Fixed a bug with duplicate optic actions
+ - bugfix: Fixed a reported bug where HUDs would stay on forever with destruction
+ of a helmet
+ - balance: Comms relays now have a five minute cooldown to be re-pylon'd after a
+ pylon was destroyed
+ - bugfix: Pylons now account for stored larva
+ - bugfix: Fixed floodlight stacking to make mostly invincible walls
+ - refactor: Refactored 90% of the floodlight code
+ Steelpoint:
+ - ui: Added personnel job titles to the handheld crew monitor, to make it easier
+ to tell find out exactly what role's you are looking for. Also slightly expands
+ the default monitor screen size to accommodate the entire personnel text on
+ screen.
+2023-10-06:
+ blackdragonTOW:
+ - bugfix: fixed spider dead sprite to not have white space (is transparent instead)
+2023-10-08:
+ Kivts:
+ - rscadd: You can partially protect yourself from flu and other disease by wearing
+ a mask and other PPE. Doesnt affect Black Goo.
+ Steelpoint:
+ - rscadd: Black and white beret's have been added as loadout options for all characters
+ as headwear.
+ - rscadd: More cosmetic options are on offer for Synthetics. Includes white and
+ black berets, standard or darker engineering and mp uniforms and all camo options
+ for the poncho.
+ - rscadd: The Synth Councillor and Synth Utility uniforms can now roll their sleeves.
+ blackdragonTOW:
+ - spellcheck: Altered inconsistent dropship ammo names
+ irRegularGuy646:
+ - rscadd: Added new "M1A1" ballistic goggle reskin
+ kiVts:
+ - rscadd: Spades can now remove botany plants.
+ - rscadd: Plants now globally take more water to grow.
+ - code_imp: removed all mention of lighting in botany trays.
+ - bugfix: Research computer no longer shows "for" for every simulation result.
+ realforest2001:
+ - rscadd: Added a Do Not Disturb feature for MOST phones. (Overwatch and a couple
+ others excluded).
+ spartanbobby:
+ - maptweak: Fixes floating Cameras and Light in the maint tunnels north of south
+ of brig
+ - maptweak: Fixes incorrect Shower tiles in maint shower north of engineering
+ - maptweak: Fixes incorrect area in maint south of VC bunk
+ - maptweak: Removes Piano from USS Almayer upper lifeboat area
+2023-10-09:
+ SpartanBobby, esselnek:
+ - rscadd: tactical shotguns now come standard with their stock. Yes you can remove
+ it if you dont want it
+ - rscadd: new tactical shotgun stock sprite done by esselnek
+2023-10-10:
+ BeagleGaming1:
+ - code_imp: prop guns will copy attachments
+ CapCamIII:
+ - rscdel: XO can no longer take a sword as their personal weapon in their vendor.
+ realforest2001:
+ - rscadd: Added missing flight record for Queen dropship summon.
+ - code_imp: Added security record option for shipwide_ai_announcement.
+ - rscadd: Added security records for unidentified lifeforms announcement.
diff --git a/html/images/cmblogo.png b/html/images/cmblogo.png
new file mode 100644
index 000000000000..d324f904a4c0
Binary files /dev/null and b/html/images/cmblogo.png differ
diff --git a/html/statbrowser.js b/html/statbrowser.js
index 81bd8cdf9c8d..78eb7d4e5716 100644
--- a/html/statbrowser.js
+++ b/html/statbrowser.js
@@ -17,6 +17,17 @@ if (!String.prototype.trim) {
// Status panel implementation ------------------------------------------------
var status_tab_parts = ["Loading..."];
var current_tab = null;
+var local_fontsize;
+// Per `storage.js` for tgui:
+// Localstorage can sometimes throw an error, even if DOM storage is not
+// disabled in IE11 settings.
+// See: https://superuser.com/questions/1080011
+try {
+ local_fontsize = localStorage.getItem("fontsize");
+} catch (error) {
+ local_fontsize = 12;
+}
+var current_fontsize = local_fontsize ? parseInt(local_fontsize) : 12; // in px, also determines line height and category header sizes for the verb menus
var mc_tab_parts = [["Loading...", ""]];
var href_token = null;
var spells = [];
@@ -232,8 +243,8 @@ function spell_cat_check(cat) {
}
}
-function tab_change(tab) {
- if (tab == current_tab) return;
+function tab_change(tab, force) {
+ if (!force && tab == current_tab) return;
if (document.getElementById(current_tab))
document.getElementById(current_tab).className = "button"; // disable active on last button
current_tab = tab;
@@ -698,6 +709,7 @@ function draw_verbs(cat) {
a.href = "#";
a.onclick = make_verb_onclick(command.replace(/\s/g, "-"));
a.className = "grid-item";
+ a.style.lineHeight = current_fontsize + 2 + "px";
var t = document.createElement("span");
t.textContent = command;
t.className = "grid-item-text";
@@ -716,6 +728,7 @@ function draw_verbs(cat) {
// do addition here
var header = document.createElement("h3");
header.textContent = cat;
+ header.style.fontSize = current_fontsize + 4 + "px";
content.appendChild(header);
content.appendChild(additions[cat]);
}
@@ -848,6 +861,7 @@ Byond.subscribeTo("remove_verb_list", function (v) {
// passes a 2D list of (verbcategory, verbname) creates tabs and adds verbs to respective list
// example (IC, Say)
Byond.subscribeTo("init_verbs", function (payload) {
+ statcontentdiv.style.fontSize = current_fontsize + "px";
wipe_verbs(); // remove all verb categories so we can replace them
checkStatusTab(); // remove all status tabs
verb_tabs = payload.panel_tabs;
@@ -868,6 +882,7 @@ Byond.subscribeTo("init_verbs", function (payload) {
draw_verbs(current_tab);
}
}
+ createOptionsButton();
SendTabsToByond();
});
@@ -1019,3 +1034,29 @@ Byond.subscribeTo("remove_sdql2", remove_sdql2);
Byond.subscribeTo("remove_mc", remove_mc);
Byond.subscribeTo("add_verb_list", add_verb_list);
+
+function createOptionsButton() {
+ var button = document.createElement("BUTTON");
+ button.onclick = function () {
+ openOptionsMenu();
+ this.blur();
+ };
+ button.id = "options";
+ button.textContent = "Options";
+ button.className = "options";
+ button.style.order = 999; // last please
+ button.style.marginLeft = "auto";
+ button.style.marginRight = "2%";
+ menu.appendChild(button);
+}
+
+function openOptionsMenu() {
+ Byond.command("Open-Statbrowser-Options " + current_fontsize);
+}
+
+Byond.subscribeTo("change_fontsize", function (new_fontsize) {
+ current_fontsize = parseInt(new_fontsize);
+ localStorage.setItem("fontsize", current_fontsize.toString());
+ statcontentdiv.style.fontSize = current_fontsize + "px";
+ tab_change(current_tab, true); // Redraw the current tab
+});
diff --git a/icons/landmarks.dmi b/icons/landmarks.dmi
index 8898783f74c2..8ebeaef1648b 100644
Binary files a/icons/landmarks.dmi and b/icons/landmarks.dmi differ
diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi
index 2fa8d673454f..8246bb4f70aa 100644
Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ
diff --git a/icons/mob/hud/marine_hud.dmi b/icons/mob/hud/marine_hud.dmi
index ed7c65e323d1..5de7b83a9309 100644
Binary files a/icons/mob/hud/marine_hud.dmi and b/icons/mob/hud/marine_hud.dmi differ
diff --git a/icons/mob/humans/onmob/eyes.dmi b/icons/mob/humans/onmob/eyes.dmi
index 2be8eb8d6fad..c4d743f61e38 100644
Binary files a/icons/mob/humans/onmob/eyes.dmi and b/icons/mob/humans/onmob/eyes.dmi differ
diff --git a/icons/mob/humans/onmob/feet.dmi b/icons/mob/humans/onmob/feet.dmi
index dbbed31b1e19..dd15289c7e4c 100644
Binary files a/icons/mob/humans/onmob/feet.dmi and b/icons/mob/humans/onmob/feet.dmi differ
diff --git a/icons/mob/humans/onmob/hands.dmi b/icons/mob/humans/onmob/hands.dmi
index 76dda2e14bf9..b03d40fdecd2 100644
Binary files a/icons/mob/humans/onmob/hands.dmi and b/icons/mob/humans/onmob/hands.dmi differ
diff --git a/icons/mob/humans/onmob/head_0.dmi b/icons/mob/humans/onmob/head_0.dmi
index 745cd2057c74..ce576bdd9cc5 100644
Binary files a/icons/mob/humans/onmob/head_0.dmi and b/icons/mob/humans/onmob/head_0.dmi differ
diff --git a/icons/mob/humans/onmob/head_1.dmi b/icons/mob/humans/onmob/head_1.dmi
index 58a93a89da2c..dad985c1e11c 100644
Binary files a/icons/mob/humans/onmob/head_1.dmi and b/icons/mob/humans/onmob/head_1.dmi differ
diff --git a/icons/mob/humans/onmob/helmet_garb.dmi b/icons/mob/humans/onmob/helmet_garb.dmi
index 325aed72b155..cc91c47fe2fc 100644
Binary files a/icons/mob/humans/onmob/helmet_garb.dmi and b/icons/mob/humans/onmob/helmet_garb.dmi differ
diff --git a/icons/mob/humans/onmob/items_lefthand_1.dmi b/icons/mob/humans/onmob/items_lefthand_1.dmi
index 3acec8cda0f0..37b5f9bcc609 100644
Binary files a/icons/mob/humans/onmob/items_lefthand_1.dmi and b/icons/mob/humans/onmob/items_lefthand_1.dmi differ
diff --git a/icons/mob/humans/onmob/items_righthand_1.dmi b/icons/mob/humans/onmob/items_righthand_1.dmi
index 821711fad50b..3ad8b52d0403 100644
Binary files a/icons/mob/humans/onmob/items_righthand_1.dmi and b/icons/mob/humans/onmob/items_righthand_1.dmi differ
diff --git a/icons/mob/humans/onmob/mask.dmi b/icons/mob/humans/onmob/mask.dmi
index badd31ad722c..896da0201bd2 100644
Binary files a/icons/mob/humans/onmob/mask.dmi and b/icons/mob/humans/onmob/mask.dmi differ
diff --git a/icons/mob/humans/onmob/suit_0.dmi b/icons/mob/humans/onmob/suit_0.dmi
index 51553c1fc495..d7dfd5394f0d 100644
Binary files a/icons/mob/humans/onmob/suit_0.dmi and b/icons/mob/humans/onmob/suit_0.dmi differ
diff --git a/icons/mob/humans/onmob/suit_1.dmi b/icons/mob/humans/onmob/suit_1.dmi
index 7e4141ff2695..a911171f8521 100644
Binary files a/icons/mob/humans/onmob/suit_1.dmi and b/icons/mob/humans/onmob/suit_1.dmi differ
diff --git a/icons/mob/humans/onmob/ties.dmi b/icons/mob/humans/onmob/ties.dmi
index d82226002ec8..c8fb98c0c5c1 100644
Binary files a/icons/mob/humans/onmob/ties.dmi and b/icons/mob/humans/onmob/ties.dmi differ
diff --git a/icons/mob/humans/onmob/uniform_0.dmi b/icons/mob/humans/onmob/uniform_0.dmi
index 7ab5915d6486..7a2dcce20c5d 100644
Binary files a/icons/mob/humans/onmob/uniform_0.dmi and b/icons/mob/humans/onmob/uniform_0.dmi differ
diff --git a/icons/mob/xenos/facehugger.dmi b/icons/mob/xenos/facehugger.dmi
index d44903adf941..2d8665899331 100644
Binary files a/icons/mob/xenos/facehugger.dmi and b/icons/mob/xenos/facehugger.dmi differ
diff --git a/icons/obj/items/clothing/belts.dmi b/icons/obj/items/clothing/belts.dmi
index 612b4785d24f..38ff421cfda5 100644
Binary files a/icons/obj/items/clothing/belts.dmi and b/icons/obj/items/clothing/belts.dmi differ
diff --git a/icons/obj/items/clothing/cm_hats.dmi b/icons/obj/items/clothing/cm_hats.dmi
index 66a42bf694ba..1595402fef50 100644
Binary files a/icons/obj/items/clothing/cm_hats.dmi and b/icons/obj/items/clothing/cm_hats.dmi differ
diff --git a/icons/obj/items/clothing/cm_suits.dmi b/icons/obj/items/clothing/cm_suits.dmi
index 3459ebb1adbf..fb655de1eafa 100644
Binary files a/icons/obj/items/clothing/cm_suits.dmi and b/icons/obj/items/clothing/cm_suits.dmi differ
diff --git a/icons/obj/items/clothing/glasses.dmi b/icons/obj/items/clothing/glasses.dmi
index b5a175e448bd..13dd0c542c6e 100644
Binary files a/icons/obj/items/clothing/glasses.dmi and b/icons/obj/items/clothing/glasses.dmi differ
diff --git a/icons/obj/items/clothing/gloves.dmi b/icons/obj/items/clothing/gloves.dmi
index b6aa7935f6c9..6e9afdc4eb4a 100644
Binary files a/icons/obj/items/clothing/gloves.dmi and b/icons/obj/items/clothing/gloves.dmi differ
diff --git a/icons/obj/items/clothing/hats.dmi b/icons/obj/items/clothing/hats.dmi
index 1cdd7491cb0c..7d2c45103ba6 100644
Binary files a/icons/obj/items/clothing/hats.dmi and b/icons/obj/items/clothing/hats.dmi differ
diff --git a/icons/obj/items/clothing/helmet_visors.dmi b/icons/obj/items/clothing/helmet_visors.dmi
index 6ba0cfe5623e..f47bc9aa26d2 100644
Binary files a/icons/obj/items/clothing/helmet_visors.dmi and b/icons/obj/items/clothing/helmet_visors.dmi differ
diff --git a/icons/obj/items/clothing/shoes.dmi b/icons/obj/items/clothing/shoes.dmi
index 66fab7cc8843..96780bb174c0 100644
Binary files a/icons/obj/items/clothing/shoes.dmi and b/icons/obj/items/clothing/shoes.dmi differ
diff --git a/icons/obj/items/clothing/suits.dmi b/icons/obj/items/clothing/suits.dmi
index 3982fec338dc..d158d9f6bd1f 100644
Binary files a/icons/obj/items/clothing/suits.dmi and b/icons/obj/items/clothing/suits.dmi differ
diff --git a/icons/obj/items/clothing/ties.dmi b/icons/obj/items/clothing/ties.dmi
index e0e25b9f579d..f236480c7b9d 100644
Binary files a/icons/obj/items/clothing/ties.dmi and b/icons/obj/items/clothing/ties.dmi differ
diff --git a/icons/obj/items/clothing/ties_overlay.dmi b/icons/obj/items/clothing/ties_overlay.dmi
index 89396622aba3..8db72b11cbe3 100644
Binary files a/icons/obj/items/clothing/ties_overlay.dmi and b/icons/obj/items/clothing/ties_overlay.dmi differ
diff --git a/icons/obj/items/clothing/uniforms.dmi b/icons/obj/items/clothing/uniforms.dmi
index bfab3369e04d..765f9deae113 100644
Binary files a/icons/obj/items/clothing/uniforms.dmi and b/icons/obj/items/clothing/uniforms.dmi differ
diff --git a/icons/obj/items/devices.dmi b/icons/obj/items/devices.dmi
index df3a53339dc4..8bf7634a7df4 100644
Binary files a/icons/obj/items/devices.dmi and b/icons/obj/items/devices.dmi differ
diff --git a/icons/obj/items/weapons/guns/ammo_by_faction/twe_ammo.dmi b/icons/obj/items/weapons/guns/ammo_by_faction/twe_ammo.dmi
index 2e8a3d18724d..6d7b49c17612 100644
Binary files a/icons/obj/items/weapons/guns/ammo_by_faction/twe_ammo.dmi and b/icons/obj/items/weapons/guns/ammo_by_faction/twe_ammo.dmi differ
diff --git a/icons/obj/items/weapons/guns/attachments/stock.dmi b/icons/obj/items/weapons/guns/attachments/stock.dmi
index a15409b808ca..d3a95284a23f 100644
Binary files a/icons/obj/items/weapons/guns/attachments/stock.dmi and b/icons/obj/items/weapons/guns/attachments/stock.dmi differ
diff --git a/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi b/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi
index 49e06f5ee547..38fe8079a2e8 100644
Binary files a/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi and b/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi differ
diff --git a/interface/interface.dm b/interface/interface.dm
index b309e852b468..a37ab648b7f5 100644
--- a/interface/interface.dm
+++ b/interface/interface.dm
@@ -69,7 +69,7 @@
if(tgui_alert(src, "This will open the GitHub in your browser. Are you sure?", "Confirm", list("Yes", "No")) != "Yes")
return
- src << link(URL_ISSUE_TRACKER)
+ src << link(CONFIG_GET(string/githuburl))
return
/client/verb/set_fps()
diff --git a/map_config/maps.txt b/map_config/maps.txt
index 885b1e76faad..ba0bd17a89c7 100644
--- a/map_config/maps.txt
+++ b/map_config/maps.txt
@@ -44,6 +44,8 @@ map ice_colony_v2
endmap
map shivas_snowball
+ voteweight 0
+ disabled
endmap
map kutjevo
diff --git a/maps/map_files/BigRed/BigRed.dmm b/maps/map_files/BigRed/BigRed.dmm
index 4ec089e10bdd..b29802bd6548 100644
--- a/maps/map_files/BigRed/BigRed.dmm
+++ b/maps/map_files/BigRed/BigRed.dmm
@@ -16567,8 +16567,8 @@
dir = 6
},
/turf/open/floor{
- dir = 4;
- icon_state = "asteroidwarning"
+ dir = 1;
+ icon_state = "asteroidfloor"
},
/area/bigredv2/caves_lambda)
"aTB" = (
@@ -16576,8 +16576,8 @@
dir = 8
},
/turf/open/floor{
- dir = 4;
- icon_state = "asteroidwarning"
+ dir = 1;
+ icon_state = "asteroidfloor"
},
/area/bigredv2/caves_lambda)
"aTC" = (
@@ -16945,14 +16945,12 @@
dir = 9
},
/turf/open/floor{
- dir = 6;
icon_state = "asteroidwarning"
},
/area/bigredv2/caves_lambda)
"aUC" = (
/obj/effect/decal/remains/human,
/turf/open/floor{
- dir = 6;
icon_state = "asteroidwarning"
},
/area/bigredv2/caves_lambda)
@@ -29578,6 +29576,13 @@
icon_state = "darkblue2"
},
/area/bigredv2/caves/eta/research)
+"gXh" = (
+/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidwarning"
+ },
+/area/bigredv2/caves_lambda)
"gXp" = (
/turf/open/mars_cave{
icon_state = "mars_cave_6"
@@ -29752,7 +29757,7 @@
/area/bigredv2/outside/filtration_plant)
"htp" = (
/obj/structure/transmitter/colony_net{
- callable = 0;
+ do_not_disturb = 1;
dir = 4;
phone_category = "Lambda Labs";
phone_color = "red";
@@ -30885,6 +30890,15 @@
icon_state = "mars_cave_2"
},
/area/bigredv2/caves_sw)
+"jNO" = (
+/obj/structure/machinery/sensortower{
+ pixel_x = -9
+ },
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
+ },
+/area/bigredv2/caves_lambda)
"jOc" = (
/obj/structure/machinery/door/poddoor/almayer/closed{
dir = 4;
@@ -77158,7 +77172,7 @@ aOn
aOn
aOn
aOn
-aOn
+aTv
aTA
aUB
wQC
@@ -77375,7 +77389,7 @@ gXp
gXp
gXp
gXp
-aSm
+aTw
aTB
aUC
wQC
@@ -77592,9 +77606,9 @@ tQw
ahw
tQw
tQw
-aSn
-gXp
-gXp
+gXh
+aTv
+aMT
tQw
tQw
pIN
@@ -77809,9 +77823,9 @@ tQw
tQw
xFZ
xFZ
-xFZ
-tQw
-tQw
+aSm
+jNO
+aMT
tQw
xFZ
ahy
@@ -78027,8 +78041,8 @@ eFh
aao
aao
aao
-gmN
-xFZ
+aSm
+aMV
sNQ
aao
aao
diff --git a/maps/map_files/BigRed/sprinkles/40.admin_pmc.dmm b/maps/map_files/BigRed/sprinkles/40.admin_pmc.dmm
index d238af50b91a..e2b3e939a2e6 100644
--- a/maps/map_files/BigRed/sprinkles/40.admin_pmc.dmm
+++ b/maps/map_files/BigRed/sprinkles/40.admin_pmc.dmm
@@ -305,7 +305,7 @@
/area/bigredv2/outside/admin_building)
"aW" = (
/obj/effect/decal/cleanable/blood,
-/obj/item/tool/weldingtool/largetank,
+/obj/item/tool/weldingtool,
/turf/open/floor{
icon_state = "carpet11-12";
dir = 8
diff --git a/maps/map_files/BigRed/standalone/crashlanding-offices.dmm b/maps/map_files/BigRed/standalone/crashlanding-offices.dmm
index d0d489677fc1..652b4df3bdd3 100644
--- a/maps/map_files/BigRed/standalone/crashlanding-offices.dmm
+++ b/maps/map_files/BigRed/standalone/crashlanding-offices.dmm
@@ -1453,15 +1453,6 @@
icon_state = "rasputin3"
},
/area/bigredv2/outside/office_complex)
-"od" = (
-/obj/structure/bed/chair/dropship/passenger{
- dir = 4
- },
-/obj/item/clothing/gloves/marine/veteran/pmc,
-/turf/open/shuttle/dropship{
- icon_state = "rasputin15"
- },
-/area/bigredv2/outside/office_complex)
"oF" = (
/obj/structure/bed/chair/dropship/passenger{
dir = 4
@@ -1626,15 +1617,6 @@
icon_state = "rasputin15"
},
/area/bigredv2/outside/office_complex)
-"Ra" = (
-/obj/structure/bed/chair/dropship/passenger{
- dir = 8
- },
-/obj/item/clothing/gloves/marine/veteran/pmc,
-/turf/open/shuttle/dropship{
- icon_state = "rasputin15"
- },
-/area/bigredv2/outside/office_complex)
"Vg" = (
/obj/effect/landmark/objective_landmark/medium,
/turf/open/shuttle/dropship{
@@ -1939,7 +1921,7 @@ dP
aV
id
yS
-od
+yS
cE
cM
cM
@@ -2092,7 +2074,7 @@ aN
bv
dL
bm
-od
+yS
yS
yS
cu
@@ -2155,7 +2137,7 @@ bv
aV
fv
dA
-Ra
+bp
cF
cN
cN
diff --git a/maps/map_files/CORSAT/Corsat.dmm b/maps/map_files/CORSAT/Corsat.dmm
index 88b90c7180e0..e265184172a6 100644
--- a/maps/map_files/CORSAT/Corsat.dmm
+++ b/maps/map_files/CORSAT/Corsat.dmm
@@ -13348,7 +13348,7 @@
"aLr" = (
/obj/structure/surface/rack,
/obj/item/tool/weldpack,
-/obj/item/tool/weldingtool/largetank,
+/obj/item/tool/weldingtool,
/obj/item/clothing/head/welding,
/turf/open/floor/corsat{
dir = 5;
@@ -31256,7 +31256,7 @@
"bLH" = (
/obj/structure/surface/rack,
/obj/item/tool/weldpack,
-/obj/item/tool/weldingtool/largetank,
+/obj/item/tool/weldingtool,
/obj/item/clothing/head/welding,
/turf/open/floor/corsat{
dir = 5;
@@ -31963,7 +31963,7 @@
"bNV" = (
/obj/structure/surface/rack,
/obj/item/tool/weldpack,
-/obj/item/tool/weldingtool/largetank,
+/obj/item/tool/weldingtool,
/obj/item/clothing/head/welding,
/obj/effect/spawner/random/toolbox,
/turf/open/floor/corsat{
diff --git a/maps/map_files/DesertDam/Desert_Dam.dmm b/maps/map_files/DesertDam/Desert_Dam.dmm
index 66e91ebc2505..ed7688070a2f 100644
--- a/maps/map_files/DesertDam/Desert_Dam.dmm
+++ b/maps/map_files/DesertDam/Desert_Dam.dmm
@@ -712,6 +712,7 @@
/turf/open/desert/dirt,
/area/desert_dam/exterior/valley/valley_labs)
"acq" = (
+/obj/structure/tunnel,
/turf/open/desert/dirt{
icon_state = "rock1"
},
@@ -61278,6 +61279,10 @@
icon_state = "cement_sunbleached13"
},
/area/desert_dam/exterior/valley/valley_hydro)
+"hyH" = (
+/obj/structure/tunnel,
+/turf/open/desert/dirt,
+/area/desert_dam/exterior/valley/valley_telecoms)
"hzg" = (
/obj/effect/decal/sand_overlay/sand2,
/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall,
@@ -61854,6 +61859,12 @@
icon_state = "delivery"
},
/area/desert_dam/exterior/telecomm/lz1_south)
+"jxN" = (
+/obj/structure/tunnel,
+/turf/open/desert/dirt{
+ icon_state = "desert_transition_edge1"
+ },
+/area/desert_dam/exterior/valley/valley_crashsite)
"jAr" = (
/obj/structure/closet/crate/hydroponics/prespawned,
/obj/effect/landmark/objective_landmark/close,
@@ -62155,6 +62166,12 @@
/obj/structure/blocker/forcefield/multitile_vehicles,
/turf/open/desert/dirt,
/area/desert_dam/interior/caves/central_caves)
+"kQd" = (
+/obj/structure/tunnel,
+/turf/open/desert/rock/deep{
+ icon_state = "rock3"
+ },
+/area/desert_dam/interior/caves/east_caves)
"kRX" = (
/obj/structure/surface/table,
/obj/item/storage/fancy/vials/random,
@@ -63992,6 +64009,12 @@
icon_state = "cement_sunbleached18"
},
/area/desert_dam/exterior/valley/south_valley_dam)
+"ruJ" = (
+/obj/structure/tunnel,
+/turf/open/desert/dirt{
+ icon_state = "rock1"
+ },
+/area/desert_dam/exterior/valley/valley_medical)
"ruS" = (
/turf/open/desert/dirt,
/area/desert_dam/exterior/telecomm/lz1_valley)
@@ -64092,6 +64115,12 @@
"rHw" = (
/turf/open/floor/plating,
/area/desert_dam/exterior/telecomm/lz2_containers)
+"rIY" = (
+/obj/structure/tunnel,
+/turf/open/desert/dirt{
+ icon_state = "rock1"
+ },
+/area/desert_dam/exterior/valley/valley_hydro)
"rJA" = (
/obj/structure/lz_sign/dam_sign,
/turf/open/desert/dirt{
@@ -65131,6 +65160,13 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/asphalt,
/area/desert_dam/exterior/valley/valley_hydro)
+"vph" = (
+/obj/structure/tunnel,
+/turf/open/desert/dirt{
+ dir = 4;
+ icon_state = "desert_transition_edge1"
+ },
+/area/desert_dam/exterior/valley/south_valley_dam)
"vpn" = (
/obj/structure/machinery/landinglight/ds2/delayone{
dir = 8
@@ -65272,6 +65308,12 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/asphalt,
/area/desert_dam/exterior/valley/valley_hydro)
+"vHx" = (
+/obj/structure/tunnel,
+/turf/open/desert/dirt{
+ icon_state = "rock1"
+ },
+/area/desert_dam/exterior/valley/valley_civilian)
"vHQ" = (
/turf/open/gm/empty,
/area/shuttle/trijent_shuttle/omega)
@@ -65678,6 +65720,11 @@
/obj/structure/flora/grass/desert/lightgrass_5,
/turf/open/desert/dirt,
/area/desert_dam/exterior/valley/valley_hydro)
+"xec" = (
+/obj/structure/flora/grass/desert/lightgrass_1,
+/obj/structure/tunnel,
+/turf/open/desert/dirt,
+/area/desert_dam/exterior/valley/valley_civilian)
"xgA" = (
/obj/structure/flora/grass/tallgrass/desert/corner{
dir = 5
@@ -69526,7 +69573,7 @@ ceA
aSI
chG
ceA
-ceA
+hyH
acs
aWc
aWF
@@ -88683,7 +88730,7 @@ bLr
dTs
dTs
nmr
-iwh
+vph
pvs
dTs
dTs
@@ -94137,7 +94184,7 @@ dTs
dTs
dTs
dTs
-dNp
+rIY
cMl
dNS
dNS
@@ -104714,7 +104761,7 @@ dTs
dTs
dTs
dTs
-cuw
+vHx
cwo
cux
cmH
@@ -108079,7 +108126,7 @@ dTs
dTs
dTs
dTs
-agD
+jxN
adA
aEZ
aFi
@@ -110720,7 +110767,7 @@ civ
cdA
cdw
aOG
-cgc
+ruJ
dTs
dTs
dTs
@@ -119446,7 +119493,7 @@ clZ
crW
cWV
xOb
-cpa
+xec
aVd
bby
bvw
@@ -120211,7 +120258,7 @@ dTs
dTs
dTs
acY
-acY
+kQd
dTs
dTs
dTs
diff --git a/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm b/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm
index e8c3bb319b7e..0d4ed21934d0 100644
--- a/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm
+++ b/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm
@@ -174,6 +174,15 @@
},
/turf/open/floor/plating/prison,
/area/fiorina/station/lowsec)
+"acx" = (
+/obj/structure/flora/bush/ausbushes/grassybush{
+ icon_state = "ppflowers_2"
+ },
+/turf/open/organic/grass{
+ desc = "It'll get in your shoes no matter what you do.";
+ name = "astroturf"
+ },
+/area/fiorina/station/central_ring)
"adk" = (
/obj/item/device/flashlight/lamp/tripod,
/turf/open/floor/prison{
@@ -205,6 +214,12 @@
icon_state = "yellow"
},
/area/fiorina/station/disco)
+"aee" = (
+/turf/open/floor/prison{
+ dir = 8;
+ icon_state = "yellow"
+ },
+/area/fiorina/station/central_ring)
"aem" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/storage/box/donkpockets{
@@ -346,14 +361,10 @@
},
/area/fiorina/tumor/servers)
"ajp" = (
-/obj/structure/barricade/wooden{
- dir = 4;
- pixel_y = 4
- },
-/obj/structure/barricade/wooden,
+/obj/structure/window/framed/prison,
/turf/open/floor/prison{
dir = 10;
- icon_state = "sterile_white"
+ icon_state = "whitegreenfull"
},
/area/fiorina/station/medbay)
"ajr" = (
@@ -546,6 +557,9 @@
/area/fiorina/station/park)
"anG" = (
/obj/structure/largecrate/supply,
+/obj/structure/platform_decoration{
+ dir = 8
+ },
/turf/open/floor/plating/plating_catwalk/prison,
/area/fiorina/station/medbay)
"anJ" = (
@@ -562,11 +576,12 @@
/turf/open/floor/carpet,
/area/fiorina/station/security/wardens)
"aoa" = (
-/obj/structure/largecrate/random/mini/med,
-/turf/open/floor/prison{
- dir = 9;
- icon_state = "whitegreen"
+/obj/structure/machinery/door/airlock/almayer/maint/autoname{
+ name = "\improper Null Hatch REPLACE ME";
+ req_access = null;
+ req_one_access = null
},
+/turf/open/floor/plating/prison,
/area/fiorina/station/medbay)
"aoH" = (
/obj/structure/surface/rack,
@@ -671,6 +686,14 @@
icon_state = "floor_plate"
},
/area/fiorina/tumor/servers)
+"arY" = (
+/obj/structure/stairs/perspective{
+ dir = 4;
+ icon_state = "p_stair_full"
+ },
+/obj/structure/platform,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"ask" = (
/obj/structure/machinery/light/double/blue{
dir = 8;
@@ -919,6 +942,21 @@
/obj/structure/girder,
/turf/open/floor/plating/prison,
/area/fiorina/station/medbay)
+"azy" = (
+/obj/structure/platform/kutjevo/smooth{
+ dir = 1
+ },
+/obj/structure/platform/kutjevo/smooth{
+ dir = 4
+ },
+/obj/structure/platform/kutjevo/smooth,
+/obj/structure/barricade/handrail{
+ dir = 1;
+ icon_state = "hr_kutjevo";
+ name = "solar lattice"
+ },
+/turf/open/space/basic,
+/area/fiorina/oob)
"azI" = (
/obj/item/prop/helmetgarb/spacejam_tickets{
desc = "A ticket to Souto Man's raffle!";
@@ -1069,19 +1107,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/fiorina/tumor/ship)
-"aCO" = (
-/obj/structure/bed/chair{
- dir = 1;
- pixel_y = 3
- },
-/obj/item/reagent_container/food/drinks/cans/beer{
- pixel_x = 12;
- pixel_y = 8
- },
-/turf/open/floor/prison{
- icon_state = "floor_plate"
- },
-/area/fiorina/station/lowsec)
"aCT" = (
/obj/structure/bed/sofa/south/grey/left,
/turf/open/floor/prison{
@@ -1215,12 +1240,6 @@
icon_state = "plate"
},
/area/fiorina/station/telecomm/lz1_cargo)
-"aFO" = (
-/obj/structure/largecrate/supply/floodlights,
-/turf/open/floor/prison{
- icon_state = "floor_plate"
- },
-/area/fiorina/station/disco)
"aFV" = (
/obj/item/stack/sheet/wood,
/obj/structure/machinery/light/double/blue,
@@ -1241,12 +1260,11 @@
},
/area/fiorina/station/chapel)
"aGS" = (
-/obj/structure/lattice,
-/obj/structure/platform_decoration/kutjevo{
- dir = 1
+/obj/structure/platform_decoration,
+/turf/open/floor/prison{
+ icon_state = "whitegreen"
},
-/turf/open/space,
-/area/fiorina/oob)
+/area/fiorina/station/medbay)
"aGV" = (
/obj/structure/largecrate/random/barrel/red,
/turf/open/floor/prison,
@@ -1361,6 +1379,11 @@
icon_state = "bluefull"
},
/area/fiorina/station/power_ring)
+"aIX" = (
+/turf/open/floor/prison{
+ icon_state = "yellowfull"
+ },
+/area/fiorina/station/central_ring)
"aIZ" = (
/obj/structure/prop/resin_prop{
icon_state = "rack"
@@ -1392,6 +1415,13 @@
icon_state = "kitchen"
},
/area/fiorina/station/civres_blue)
+"aJU" = (
+/obj/effect/decal/cleanable/blood/gibs/xeno,
+/turf/open/organic/grass{
+ desc = "It'll get in your shoes no matter what you do.";
+ name = "astroturf"
+ },
+/area/fiorina/station/central_ring)
"aJX" = (
/obj/structure/bed/chair{
dir = 8
@@ -1449,6 +1479,12 @@
/obj/structure/blocker/invisible_wall,
/turf/open/floor/almayer_hull,
/area/fiorina/station/medbay)
+"aLC" = (
+/turf/open/floor/prison{
+ dir = 10;
+ icon_state = "damaged1"
+ },
+/area/fiorina/station/central_ring)
"aLR" = (
/obj/item/stack/medical/bruise_pack,
/turf/open/floor/prison,
@@ -1499,13 +1535,11 @@
},
/area/fiorina/station/park)
"aNw" = (
-/obj/structure/lattice,
-/obj/structure/platform/kutjevo/smooth,
-/obj/structure/platform/kutjevo/smooth{
- dir = 8
+/obj/structure/platform,
+/turf/open/floor/prison{
+ icon_state = "whitegreen"
},
-/turf/open/space,
-/area/fiorina/oob)
+/area/fiorina/station/medbay)
"aNP" = (
/obj/structure/inflatable,
/obj/structure/barricade/handrail/type_b,
@@ -1593,6 +1627,21 @@
"aPH" = (
/turf/closed/wall/r_wall/prison_unmeltable,
/area/fiorina/station/security/wardens)
+"aQB" = (
+/obj/structure/platform/kutjevo/smooth{
+ dir = 1
+ },
+/obj/structure/platform_decoration/kutjevo{
+ dir = 1
+ },
+/obj/structure/barricade/handrail{
+ dir = 1;
+ icon_state = "hr_kutjevo";
+ name = "solar lattice"
+ },
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/fiorina/oob)
"aQE" = (
/obj/item/stack/sheet/metal{
amount = 5
@@ -1724,13 +1773,6 @@
},
/turf/open/floor/plating/prison,
/area/fiorina/station/research_cells)
-"aTN" = (
-/obj/structure/platform_decoration/kutjevo{
- dir = 4
- },
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/fiorina/oob)
"aUa" = (
/obj/structure/machinery/portable_atmospherics/powered/scrubber,
/turf/open/floor/prison{
@@ -1755,6 +1797,13 @@
icon_state = "sterile_white"
},
/area/fiorina/station/medbay)
+"aUM" = (
+/obj/item/clothing/head/welding,
+/turf/open/floor/prison{
+ dir = 9;
+ icon_state = "greenfull"
+ },
+/area/fiorina/tumor/civres)
"aVd" = (
/obj/effect/landmark/monkey_spawn,
/turf/open/floor/plating/prison,
@@ -1892,6 +1941,13 @@
dir = 5
},
/area/fiorina/tumor/aux_engi)
+"aXK" = (
+/obj/item/clothing/under/shorts/green,
+/turf/open/floor/prison{
+ dir = 4;
+ icon_state = "cell_stripe"
+ },
+/area/fiorina/station/central_ring)
"aXM" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/stack/cable_coil/orange,
@@ -2235,11 +2291,11 @@
},
/area/fiorina/station/park)
"biJ" = (
-/obj/structure/surface/table/reinforced/prison,
-/obj/item/tool/kitchen/utensil/fork,
-/turf/open/floor/prison{
- icon_state = "darkpurplefull2"
+/obj/structure/stairs/perspective{
+ dir = 1;
+ icon_state = "p_stair_full"
},
+/turf/open/floor/plating/plating_catwalk/prison,
/area/fiorina/station/research_cells)
"bjk" = (
/obj/structure/sink{
@@ -2427,6 +2483,13 @@
},
/area/fiorina/station/security)
"bqy" = (
+/obj/structure/platform,
+/obj/structure/platform{
+ dir = 8
+ },
+/obj/structure/platform_decoration{
+ dir = 10
+ },
/obj/structure/closet/firecloset/full,
/turf/open/floor/prison{
dir = 10;
@@ -2456,6 +2519,18 @@
icon_state = "darkyellowfull2"
},
/area/fiorina/tumor/servers)
+"brI" = (
+/obj/structure/platform/kutjevo/smooth{
+ dir = 1
+ },
+/obj/structure/platform_decoration/kutjevo,
+/obj/structure/barricade/handrail{
+ dir = 1;
+ icon_state = "hr_kutjevo";
+ name = "solar lattice"
+ },
+/turf/open/space/basic,
+/area/fiorina/oob)
"brS" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/clipboard,
@@ -2567,10 +2642,12 @@
/turf/open/floor/plating/prison,
/area/fiorina/station/civres_blue)
"bxa" = (
-/obj/structure/platform_decoration/kutjevo,
-/obj/structure/lattice,
-/turf/open/space,
-/area/fiorina/oob)
+/obj/structure/platform,
+/obj/structure/machinery/light/double/blue,
+/turf/open/floor/prison{
+ icon_state = "whitegreen"
+ },
+/area/fiorina/station/medbay)
"bxl" = (
/obj/structure/machinery/light/double/blue{
dir = 1;
@@ -2607,13 +2684,6 @@
icon_state = "stan27"
},
/area/fiorina/tumor/ship)
-"byl" = (
-/obj/structure/platform/kutjevo/smooth{
- dir = 4
- },
-/obj/structure/lattice,
-/turf/open/space,
-/area/fiorina/oob)
"bym" = (
/turf/closed/shuttle/ert{
icon_state = "stan20"
@@ -2686,18 +2756,6 @@
icon_state = "stan25"
},
/area/fiorina/tumor/aux_engi)
-"bAB" = (
-/obj/structure/barricade/handrail{
- dir = 1;
- icon_state = "hr_kutjevo";
- name = "solar lattice"
- },
-/obj/structure/platform/kutjevo/smooth{
- dir = 1
- },
-/obj/structure/lattice,
-/turf/open/space,
-/area/fiorina/oob)
"bAS" = (
/obj/structure/machinery/light/double/blue,
/turf/open/floor/prison{
@@ -2732,6 +2790,13 @@
/obj/structure/largecrate/random/case/double,
/turf/open/floor/prison,
/area/fiorina/tumor/aux_engi)
+"bCk" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/prison{
+ dir = 1;
+ icon_state = "darkpurple2"
+ },
+/area/fiorina/station/central_ring)
"bCu" = (
/obj/item/shard{
icon_state = "large"
@@ -3067,10 +3132,6 @@
/obj/item/tool/pen,
/turf/open/floor/carpet,
/area/fiorina/station/security/wardens)
-"bMl" = (
-/obj/effect/decal/cleanable/blood,
-/turf/open/floor/plating/plating_catwalk/prison,
-/area/fiorina/station/lowsec)
"bMr" = (
/turf/open/floor/prison{
dir = 10;
@@ -3203,13 +3264,6 @@
},
/turf/open/floor/plating/prison,
/area/fiorina/tumor/servers)
-"bQp" = (
-/obj/structure/platform/kutjevo/smooth{
- dir = 1
- },
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/fiorina/oob)
"bQx" = (
/obj/item/reagent_container/food/drinks/cans/waterbottle,
/turf/open/floor/prison{
@@ -3372,6 +3426,10 @@
/obj/structure/machinery/faxmachine,
/turf/open/floor/wood,
/area/fiorina/station/security/wardens)
+"bWr" = (
+/obj/structure/inflatable/popped,
+/turf/open/floor/plating/plating_catwalk/prison,
+/area/fiorina/station/central_ring)
"bWE" = (
/obj/effect/spawner/random/gun/rifle/midchance,
/turf/open/floor/prison{
@@ -3448,6 +3506,20 @@
icon_state = "yellow"
},
/area/fiorina/station/lowsec)
+"bZC" = (
+/obj/structure/barricade/wooden{
+ dir = 4
+ },
+/obj/item/tool/crowbar/red,
+/obj/structure/stairs/perspective{
+ icon_state = "p_stair_ew_full_cap"
+ },
+/obj/structure/platform/stair_cut/alt,
+/turf/open/floor/prison{
+ dir = 4;
+ icon_state = "cell_stripe"
+ },
+/area/fiorina/station/medbay)
"bZF" = (
/obj/effect/landmark/objective_landmark/far,
/turf/open/floor/prison{
@@ -3492,12 +3564,6 @@
icon_state = "kitchen"
},
/area/fiorina/station/power_ring)
-"cbH" = (
-/obj/structure/largecrate/supply/generator,
-/turf/open/floor/prison{
- icon_state = "floor_plate"
- },
-/area/fiorina/station/disco)
"cbK" = (
/obj/structure/closet/secure_closet/guncabinet{
req_access = null
@@ -3601,19 +3667,13 @@
},
/area/fiorina/station/research_cells)
"chA" = (
-/obj/structure/barricade/handrail{
- dir = 1;
- icon_state = "hr_kutjevo";
- name = "solar lattice"
- },
-/obj/structure/lattice,
/obj/structure/platform/kutjevo/smooth{
dir = 4
},
/obj/structure/platform/kutjevo/smooth{
dir = 1
},
-/turf/open/space,
+/turf/open/space/basic,
/area/fiorina/oob)
"chJ" = (
/obj/structure/bed{
@@ -3707,19 +3767,18 @@
},
/area/fiorina/station/botany)
"cjA" = (
-/obj/structure/barricade/handrail{
- dir = 1;
- icon_state = "hr_kutjevo";
- name = "solar lattice"
- },
-/obj/structure/lattice,
/obj/structure/platform/kutjevo/smooth{
dir = 8
},
/obj/structure/platform/kutjevo/smooth{
dir = 1
},
-/turf/open/space,
+/obj/structure/barricade/handrail{
+ dir = 1;
+ icon_state = "hr_kutjevo";
+ name = "solar lattice"
+ },
+/turf/open/space/basic,
/area/fiorina/oob)
"cjF" = (
/turf/open/floor/prison{
@@ -3733,6 +3792,12 @@
icon_state = "whitegreen"
},
/area/fiorina/tumor/ice_lab)
+"ckj" = (
+/turf/open/floor/prison{
+ dir = 6;
+ icon_state = "yellow"
+ },
+/area/fiorina/station/central_ring)
"ckm" = (
/obj/structure/window/framed/prison/reinforced/hull,
/turf/open/floor/plating/prison,
@@ -3827,6 +3892,18 @@
icon_state = "floor_plate"
},
/area/fiorina/tumor/servers)
+"cmz" = (
+/obj/structure/platform_decoration/kutjevo,
+/obj/structure/platform/kutjevo/smooth{
+ dir = 1
+ },
+/obj/structure/barricade/handrail{
+ dir = 1;
+ icon_state = "hr_kutjevo";
+ name = "solar lattice"
+ },
+/turf/open/space,
+/area/fiorina/oob)
"cmI" = (
/obj/structure/platform{
dir = 8
@@ -3854,6 +3931,10 @@
icon_state = "panelscorched"
},
/area/fiorina/station/chapel)
+"cnl" = (
+/obj/structure/largecrate/supply/supplies/metal,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"cnn" = (
/obj/item/device/flashlight,
/turf/open/floor/prison{
@@ -3865,10 +3946,6 @@
/obj/structure/bed/sofa/south/grey/left,
/turf/open/floor/prison,
/area/fiorina/station/disco)
-"cnF" = (
-/obj/effect/landmark/objective_landmark/science,
-/turf/open/floor/prison,
-/area/fiorina/station/medbay)
"cnU" = (
/obj/structure/machinery/computer/atmos_alert,
/obj/structure/surface/table/reinforced/prison,
@@ -3927,6 +4004,8 @@
/obj/structure/platform/kutjevo/smooth{
dir = 8
},
+/obj/structure/platform/kutjevo/smooth,
+/obj/structure/lattice,
/turf/open/space/basic,
/area/fiorina/oob)
"cqc" = (
@@ -4231,12 +4310,18 @@
},
/area/fiorina/station/research_cells)
"cAv" = (
-/obj/structure/barricade/handrail/type_b{
- dir = 8;
- layer = 3.5
+/obj/structure/stairs/perspective{
+ dir = 1;
+ icon_state = "p_stair_sn_full_cap"
},
-/turf/open/floor/prison,
-/area/fiorina/station/disco)
+/obj/structure/platform{
+ dir = 8
+ },
+/turf/open/floor/prison{
+ dir = 10;
+ icon_state = "whitegreenfull"
+ },
+/area/fiorina/station/central_ring)
"cAA" = (
/obj/effect/landmark/static_comms/net_two,
/turf/open/floor/prison{
@@ -4431,6 +4516,13 @@
icon_state = "whitepurple"
},
/area/fiorina/station/research_cells)
+"cFN" = (
+/obj/structure/machinery/light/double/blue,
+/turf/open/floor/prison{
+ dir = 4;
+ icon_state = "cell_stripe"
+ },
+/area/fiorina/station/central_ring)
"cFQ" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/reagent_container/food/drinks/bottle/vodka{
@@ -4616,6 +4708,15 @@
},
/turf/open/floor/prison,
/area/fiorina/station/power_ring)
+"cNC" = (
+/obj/structure/prop/almayer/computers/mission_planning_system{
+ density = 0;
+ desc = "Its a telephone, and a computer. Woah.";
+ name = "\improper funny telephone booth";
+ pixel_y = 21
+ },
+/turf/open/floor/prison,
+/area/fiorina/station/central_ring)
"cOb" = (
/obj/item/ammo_casing{
icon_state = "casing_6"
@@ -4835,6 +4936,12 @@
icon_state = "floor_plate"
},
/area/fiorina/station/telecomm/lz1_cargo)
+"cWN" = (
+/obj/item/weapon/gun/rifle/mar40,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/lowsec)
"cWR" = (
/obj/effect/landmark/objective_landmark/medium,
/obj/structure/closet/secure_closet/engineering_personal,
@@ -4884,20 +4991,32 @@
/turf/open/floor/plating/prison,
/area/fiorina/station/flight_deck)
"cYa" = (
-/obj/structure/lattice,
-/obj/structure/platform/kutjevo/smooth{
- dir = 8
+/obj/structure/stairs/perspective{
+ dir = 1;
+ icon_state = "p_stair_full"
},
-/obj/structure/platform/kutjevo/smooth,
-/turf/open/space,
-/area/fiorina/oob)
+/turf/open/floor/prison{
+ dir = 4;
+ icon_state = "whitegreen"
+ },
+/area/fiorina/station/central_ring)
"cYg" = (
-/obj/item/ammo_magazine/m56d,
+/obj/structure/stairs/perspective{
+ dir = 1;
+ icon_state = "p_stair_full"
+ },
/turf/open/floor/prison{
dir = 10;
icon_state = "sterile_white"
},
-/area/fiorina/station/medbay)
+/area/fiorina/station/central_ring)
+"cYv" = (
+/obj/structure/stairs/perspective{
+ dir = 4;
+ icon_state = "p_stair_full"
+ },
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"cYP" = (
/obj/structure/closet/crate/trashcart,
/obj/item/storage/pill_bottle/dexalin/skillless,
@@ -4922,6 +5041,15 @@
icon_state = "whitepurple"
},
/area/fiorina/station/research_cells)
+"cZc" = (
+/obj/structure/platform/kutjevo/smooth{
+ dir = 1
+ },
+/obj/structure/platform/kutjevo/smooth{
+ dir = 4
+ },
+/turf/open/space/basic,
+/area/fiorina/oob)
"cZq" = (
/obj/item/shard{
icon_state = "medium"
@@ -4938,6 +5066,12 @@
},
/turf/open/floor/wood,
/area/fiorina/station/security)
+"das" = (
+/obj/structure/platform/shiva{
+ dir = 1
+ },
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"daA" = (
/obj/item/clothing/accessory/armband/cargo{
desc = "Sworn to the shrapnel and the shards therein. So sayeth her command when the first detonation occured.";
@@ -5087,6 +5221,10 @@
icon_state = "whitegreen"
},
/area/fiorina/station/medbay)
+"deH" = (
+/obj/structure/machinery/light/double/blue,
+/turf/open/floor/prison,
+/area/fiorina/station/central_ring)
"deL" = (
/obj/structure/window/framed/prison/reinforced/hull,
/obj/structure/window/framed/prison/reinforced/hull,
@@ -5185,13 +5323,10 @@
},
/area/fiorina/station/chapel)
"dhe" = (
-/obj/structure/barricade/metal/wired{
- dir = 4
- },
/turf/open/floor/prison{
icon_state = "cell_stripe"
},
-/area/fiorina/station/disco)
+/area/fiorina/station/central_ring)
"dhi" = (
/obj/structure/platform_decoration/kutjevo,
/turf/open/space/basic,
@@ -5313,6 +5448,20 @@
name = "astroturf"
},
/area/fiorina/station/research_cells)
+"djU" = (
+/obj/structure/platform/kutjevo/smooth{
+ dir = 1
+ },
+/obj/structure/platform/kutjevo/smooth{
+ dir = 8
+ },
+/obj/structure/barricade/handrail{
+ dir = 1;
+ icon_state = "hr_kutjevo";
+ name = "solar lattice"
+ },
+/turf/open/space/basic,
+/area/fiorina/oob)
"dka" = (
/obj/structure/flora/pottedplant{
icon_state = "pottedplant_22"
@@ -5325,21 +5474,6 @@
/obj/item/device/flashlight/lamp/tripod,
/turf/open/floor/plating/prison,
/area/fiorina/maintenance)
-"dkg" = (
-/obj/structure/barricade/handrail{
- dir = 1;
- icon_state = "hr_kutjevo";
- name = "solar lattice"
- },
-/obj/structure/platform/kutjevo/smooth{
- dir = 4
- },
-/obj/structure/platform/kutjevo/smooth{
- dir = 1
- },
-/obj/structure/lattice,
-/turf/open/space,
-/area/fiorina/oob)
"dkj" = (
/turf/open/floor/prison{
dir = 8;
@@ -5438,6 +5572,16 @@
/obj/effect/spawner/random/toy,
/turf/open/floor/wood,
/area/fiorina/station/chapel)
+"dnA" = (
+/obj/structure/stairs/perspective{
+ dir = 4;
+ icon_state = "p_stair_sn_full_cap"
+ },
+/obj/structure/platform{
+ dir = 4
+ },
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"dnB" = (
/obj/effect/decal/cleanable/blood/splatter,
/turf/open/floor/prison{
@@ -5451,6 +5595,15 @@
},
/turf/open/floor/prison,
/area/fiorina/station/security)
+"dnI" = (
+/obj/structure/flora/bush/ausbushes/grassybush{
+ icon_state = "ywflowers_4"
+ },
+/turf/open/organic/grass{
+ desc = "It'll get in your shoes no matter what you do.";
+ name = "astroturf"
+ },
+/area/fiorina/station/central_ring)
"dnK" = (
/obj/structure/bed/chair/comfy{
dir = 4
@@ -5694,13 +5847,14 @@
},
/area/fiorina/station/power_ring)
"dvY" = (
-/obj/structure/lattice,
-/obj/structure/platform/kutjevo/smooth{
- dir = 4
+/obj/structure/machinery/door/airlock/almayer/maint/autoname{
+ dir = 1;
+ name = "\improper Null Hatch REPLACE ME";
+ req_access = null;
+ req_one_access = null
},
-/obj/structure/platform/kutjevo/smooth,
-/turf/open/space,
-/area/fiorina/oob)
+/turf/open/floor/plating/prison,
+/area/fiorina/station/medbay)
"dwg" = (
/obj/structure/stairs/perspective{
dir = 8;
@@ -6123,11 +6277,8 @@
/turf/open/floor/prison,
/area/fiorina/station/flight_deck)
"dGw" = (
-/obj/structure/barricade/handrail/type_b{
- dir = 4
- },
/turf/open/floor/prison,
-/area/fiorina/station/disco)
+/area/fiorina/station/central_ring)
"dGx" = (
/obj/structure/flora/grass/tallgrass/jungle/corner{
dir = 10
@@ -6150,6 +6301,14 @@
icon_state = "yellow"
},
/area/fiorina/station/lowsec)
+"dHI" = (
+/obj/item/ammo_casing{
+ icon_state = "casing_1"
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/central_ring)
"dIa" = (
/obj/item/stack/sheet/metal{
amount = 5
@@ -6185,7 +6344,6 @@
dir = 4;
icon_state = "triagedecaldir"
},
-/obj/effect/landmark/objective_landmark/close,
/turf/open/floor/prison{
dir = 10;
icon_state = "whitegreenfull"
@@ -6228,6 +6386,12 @@
},
/turf/open/floor/prison,
/area/fiorina/lz/near_lzI)
+"dKN" = (
+/obj/effect/decal/cleanable/blood,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/tumor/civres)
"dKX" = (
/obj/effect/landmark/survivor_spawner,
/turf/open/floor/plating/plating_catwalk/prison,
@@ -6255,7 +6419,7 @@
},
/area/fiorina/station/research_cells)
"dMa" = (
-/obj/structure/largecrate/random,
+/obj/structure/stairs/perspective,
/turf/open/floor/plating/prison,
/area/fiorina/maintenance)
"dMc" = (
@@ -6304,21 +6468,6 @@
icon_state = "floor_marked"
},
/area/fiorina/station/park)
-"dMU" = (
-/obj/structure/barricade/handrail{
- dir = 1;
- icon_state = "hr_kutjevo";
- name = "solar lattice"
- },
-/obj/structure/platform/kutjevo/smooth{
- dir = 8
- },
-/obj/structure/lattice,
-/obj/structure/platform/kutjevo/smooth{
- dir = 1
- },
-/turf/open/space,
-/area/fiorina/oob)
"dNh" = (
/turf/open/auto_turf/sand/layer1,
/area/fiorina/lz/near_lzI)
@@ -6415,6 +6564,14 @@
name = "metal wall"
},
/area/fiorina/oob)
+"dRW" = (
+/obj/structure/machinery/light/double/blue{
+ dir = 4;
+ pixel_x = 10;
+ pixel_y = -3
+ },
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"dSw" = (
/obj/structure/bed{
icon_state = "abed"
@@ -6561,6 +6718,10 @@
"dYr" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/explosive/grenade/incendiary/molotov,
+/obj/structure/machinery/light/double/blue{
+ dir = 1;
+ pixel_y = 21
+ },
/turf/open/floor/prison{
icon_state = "floor_plate"
},
@@ -6680,6 +6841,12 @@
/obj/item/stack/sheet/metal/medium_stack,
/turf/open/floor/plating/prison,
/area/fiorina/station/medbay)
+"ecC" = (
+/obj/structure/barricade/metal/wired{
+ dir = 8
+ },
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"ecF" = (
/obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{
pixel_y = 32
@@ -6713,6 +6880,10 @@
icon_state = "greenfull"
},
/area/fiorina/tumor/servers)
+"edd" = (
+/obj/structure/window/framed/prison/reinforced,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"edv" = (
/obj/item/storage/fancy/cigar,
/turf/open/floor/prison,
@@ -6935,6 +7106,13 @@
/turf/open/floor/prison,
/area/fiorina/station/chapel)
"eli" = (
+/obj/structure/platform,
+/obj/structure/platform{
+ dir = 4
+ },
+/obj/structure/platform_decoration{
+ dir = 6
+ },
/obj/structure/closet/emcloset,
/turf/open/floor/prison{
dir = 10;
@@ -7475,10 +7653,8 @@
/turf/open/floor/prison,
/area/fiorina/station/power_ring)
"eDn" = (
-/obj/structure/platform/kutjevo/smooth,
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/fiorina/oob)
+/turf/closed/wall/r_wall/prison_unmeltable,
+/area/fiorina/station/central_ring)
"eDs" = (
/obj/structure/machinery/door/airlock/prison_hatch/autoname,
/turf/open/floor/prison{
@@ -7561,10 +7737,9 @@
},
/area/fiorina/station/lowsec)
"eHa" = (
-/obj/structure/lattice,
-/obj/structure/platform/kutjevo/smooth,
-/turf/open/space,
-/area/fiorina/oob)
+/obj/structure/extinguisher_cabinet,
+/turf/closed/wall/r_wall/prison_unmeltable,
+/area/fiorina/station/central_ring)
"eHC" = (
/turf/closed/shuttle/ert{
icon_state = "wy25"
@@ -7633,6 +7808,12 @@
/obj/structure/lattice,
/turf/open/space/basic,
/area/fiorina/oob)
+"eKg" = (
+/turf/open/floor/prison{
+ dir = 6;
+ icon_state = "darkpurple2"
+ },
+/area/fiorina/station/central_ring)
"eKu" = (
/obj/structure/stairs/perspective{
dir = 8;
@@ -7662,6 +7843,10 @@
},
/turf/open/floor/plating/prison,
/area/fiorina/station/botany)
+"eMJ" = (
+/obj/structure/inflatable/popped/door,
+/turf/open/floor/plating/plating_catwalk/prison,
+/area/fiorina/station/central_ring)
"eML" = (
/obj/structure/monorail{
name = "launch track"
@@ -7673,6 +7858,15 @@
icon_state = "floor_plate"
},
/area/fiorina/station/telecomm/lz1_tram)
+"eMO" = (
+/obj/structure/flora/bush/ausbushes/grassybush{
+ icon_state = "ywflowers_2"
+ },
+/turf/open/organic/grass{
+ desc = "It'll get in your shoes no matter what you do.";
+ name = "astroturf"
+ },
+/area/fiorina/station/central_ring)
"eMU" = (
/turf/closed/shuttle/ert{
icon_state = "rightengine_1";
@@ -7745,6 +7939,14 @@
icon_state = "greenfull"
},
/area/fiorina/tumor/servers)
+"eON" = (
+/obj/structure/stairs/perspective{
+ dir = 8;
+ icon_state = "p_stair_ew_full_cap"
+ },
+/obj/structure/platform/stair_cut,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"eOS" = (
/obj/item/tool/warning_cone,
/obj/structure/machinery/light/double/blue,
@@ -7758,6 +7960,15 @@
icon_state = "floor_plate"
},
/area/fiorina/station/flight_deck)
+"ePm" = (
+/obj/structure/barricade/handrail{
+ dir = 1;
+ pixel_y = 2
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/central_ring)
"ePq" = (
/obj/item/trash/cigbutt/ucigbutt,
/obj/item/trash/cigbutt/ucigbutt{
@@ -8102,33 +8313,6 @@
},
/turf/open/floor/plating/prison,
/area/fiorina/station/transit_hub)
-"eZq" = (
-/obj/structure/platform/kutjevo/smooth{
- dir = 1
- },
-/obj/structure/barricade/handrail{
- dir = 1;
- icon_state = "hr_kutjevo";
- name = "solar lattice"
- },
-/obj/structure/lattice,
-/turf/open/space,
-/area/fiorina/oob)
-"eZA" = (
-/obj/structure/platform/kutjevo/smooth{
- dir = 1
- },
-/obj/structure/platform/kutjevo/smooth{
- dir = 8
- },
-/obj/structure/barricade/handrail{
- dir = 1;
- icon_state = "hr_kutjevo";
- name = "solar lattice"
- },
-/obj/structure/lattice,
-/turf/open/space,
-/area/fiorina/oob)
"eZD" = (
/obj/structure/closet/secure_closet/guncabinet{
req_access = null
@@ -8237,21 +8421,6 @@
icon_state = "floor_plate"
},
/area/fiorina/station/chapel)
-"fcZ" = (
-/obj/structure/platform/kutjevo/smooth{
- dir = 1
- },
-/obj/structure/barricade/handrail{
- dir = 1;
- icon_state = "hr_kutjevo";
- name = "solar lattice"
- },
-/obj/structure/platform/kutjevo/smooth{
- dir = 4
- },
-/obj/structure/lattice,
-/turf/open/space,
-/area/fiorina/oob)
"fde" = (
/obj/structure/stairs/perspective{
icon_state = "p_stair_full"
@@ -8341,7 +8510,6 @@
pixel_x = 10;
pixel_y = -3
},
-/obj/effect/landmark/objective_landmark/science,
/turf/open/floor/prison{
dir = 10;
icon_state = "whitegreenfull"
@@ -8374,19 +8542,12 @@
},
/area/fiorina/maintenance)
"fhz" = (
-/obj/structure/barricade/handrail{
- dir = 1;
- icon_state = "hr_kutjevo";
- name = "solar lattice"
- },
-/obj/structure/platform/kutjevo/smooth{
- dir = 8
- },
-/obj/structure/platform/kutjevo/smooth{
- dir = 1
+/obj/structure/barricade/wooden,
+/turf/open/floor/prison{
+ dir = 8;
+ icon_state = "cell_stripe"
},
-/turf/open/space/basic,
-/area/fiorina/oob)
+/area/fiorina/station/central_ring)
"fhC" = (
/obj/item/stack/rods,
/turf/open/floor/prison{
@@ -8475,6 +8636,17 @@
"fjd" = (
/turf/closed/wall/prison,
/area/fiorina/lz/near_lzI)
+"fje" = (
+/obj/structure/bed/chair{
+ dir = 8;
+ pixel_y = 6
+ },
+/obj/item/reagent_container/food/drinks/cans/beer{
+ pixel_x = -13;
+ pixel_y = 13
+ },
+/turf/open/floor/prison,
+/area/fiorina/station/central_ring)
"fjr" = (
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/plating/plating_catwalk/prison,
@@ -8738,13 +8910,9 @@
/turf/open/floor/plating/prison,
/area/fiorina/tumor/fiberbush)
"fsn" = (
-/obj/structure/platform/kutjevo/smooth,
-/obj/structure/platform/kutjevo/smooth{
- dir = 4
- },
-/obj/structure/lattice,
-/turf/open/space,
-/area/fiorina/oob)
+/obj/item/device/flashlight,
+/turf/open/floor/plating/plating_catwalk/prison,
+/area/fiorina/station/central_ring)
"ftq" = (
/obj/item/stack/cable_coil/orange,
/turf/open/floor/prison{
@@ -8815,6 +8983,17 @@
/obj/item/stack/sheet/metal,
/turf/open/floor/plating/prison,
/area/fiorina/station/telecomm/lz2_maint)
+"fvY" = (
+/obj/structure/machinery/light/double/blue{
+ dir = 8;
+ pixel_x = -10;
+ pixel_y = -3
+ },
+/turf/open/floor/prison{
+ dir = 8;
+ icon_state = "whitepurple"
+ },
+/area/fiorina/station/research_cells)
"fwn" = (
/obj/structure/lattice,
/obj/item/stack/sheet/metal,
@@ -9049,7 +9228,7 @@
/obj/structure/inflatable/popped/door,
/obj/item/ammo_magazine/m56d,
/turf/open/floor/plating/prison,
-/area/fiorina/station/disco)
+/area/fiorina/station/central_ring)
"fBp" = (
/obj/structure/closet/firecloset,
/turf/open/floor/prison{
@@ -9088,12 +9267,9 @@
},
/area/fiorina/tumor/civres)
"fDI" = (
-/obj/structure/prop/almayer/computers/mission_planning_system{
- density = 0;
- desc = "Its a telephone, and a computer. Woah.";
- name = "\improper funny telephone booth";
- pixel_x = 2;
- pixel_y = 21
+/obj/structure/barricade/handrail/type_b{
+ dir = 8;
+ layer = 3.5
},
/turf/open/floor/prison{
icon_state = "floor_plate"
@@ -9199,6 +9375,13 @@
icon_state = "bluefull"
},
/area/fiorina/station/power_ring)
+"fHy" = (
+/obj/structure/tunnel,
+/turf/open/organic/grass{
+ desc = "It'll get in your shoes no matter what you do.";
+ name = "astroturf"
+ },
+/area/fiorina/station/central_ring)
"fHB" = (
/obj/structure/monorail{
name = "launch track"
@@ -9781,6 +9964,15 @@
/obj/structure/bed/chair/office/dark,
/turf/open/floor/prison,
/area/fiorina/tumor/ice_lab)
+"fYV" = (
+/obj/structure/machinery/door/airlock/almayer/marine{
+ dir = 1;
+ icon = 'icons/obj/structures/doors/prepdoor_charlie.dmi'
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/research_cells)
"fYW" = (
/obj/structure/machinery/light/double/blue,
/turf/open/floor/carpet,
@@ -9886,9 +10078,16 @@
icon_state = "greenfull"
},
/area/fiorina/tumor/civres)
-"gcy" = (
-/turf/open/floor/plating/plating_catwalk/prison,
-/area/fiorina/station/lowsec)
+"gde" = (
+/obj/structure/machinery/light/double/blue{
+ dir = 1;
+ pixel_y = 21
+ },
+/turf/open/floor/prison{
+ dir = 1;
+ icon_state = "cell_stripe"
+ },
+/area/fiorina/station/central_ring)
"gdn" = (
/obj/structure/machinery/door/airlock/prison_hatch/autoname,
/turf/open/floor/prison{
@@ -9956,20 +10155,9 @@
/turf/open/floor/plating/plating_catwalk/prison,
/area/fiorina/maintenance)
"gfp" = (
-/obj/structure/platform/kutjevo/smooth{
- dir = 1
- },
-/obj/structure/platform/kutjevo/smooth{
- dir = 4
- },
-/obj/structure/barricade/handrail{
- dir = 1;
- icon_state = "hr_kutjevo";
- name = "solar lattice"
- },
-/obj/structure/lattice,
-/turf/open/space,
-/area/fiorina/oob)
+/obj/structure/machinery/m56d_hmg/mg_turret/dropship,
+/turf/open/floor/plating/plating_catwalk/prison,
+/area/fiorina/station/central_ring)
"gfw" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/storage/donut_box{
@@ -10019,15 +10207,6 @@
icon_state = "yellow"
},
/area/fiorina/station/lowsec)
-"ggu" = (
-/obj/item/ammo_casing{
- icon_state = "casing_6_1"
- },
-/obj/effect/decal/cleanable/blood,
-/turf/open/floor/prison{
- icon_state = "floor_plate"
- },
-/area/fiorina/station/lowsec)
"ggB" = (
/obj/item/stool,
/turf/open/floor/prison{
@@ -10044,12 +10223,15 @@
},
/area/fiorina/tumor/ice_lab)
"ggQ" = (
-/obj/structure/platform_decoration/kutjevo{
- dir = 1
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_22"
},
-/obj/structure/lattice,
-/turf/open/space,
-/area/fiorina/oob)
+/obj/structure/machinery/light/double/blue{
+ dir = 1;
+ pixel_y = 21
+ },
+/turf/open/floor/prison,
+/area/fiorina/station/central_ring)
"ghg" = (
/obj/structure/barricade/handrail{
dir = 1;
@@ -10090,16 +10272,6 @@
icon_state = "floor_plate"
},
/area/fiorina/tumor/servers)
-"gik" = (
-/obj/structure/surface/table/reinforced/prison,
-/obj/structure/machinery/recharger{
- pixel_y = 4
- },
-/turf/open/floor/prison{
- dir = 10;
- icon_state = "whitegreenfull"
- },
-/area/fiorina/station/medbay)
"giX" = (
/obj/structure/barricade/handrail/type_b{
dir = 4
@@ -10152,6 +10324,16 @@
},
/turf/open/floor/prison,
/area/fiorina/station/medbay)
+"gky" = (
+/obj/structure/machinery/light/double/blue{
+ dir = 8;
+ pixel_x = -10;
+ pixel_y = -3
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/disco)
"gkZ" = (
/obj/effect/decal/medical_decals{
icon_state = "triagedecalleft"
@@ -10456,14 +10638,13 @@
/turf/open/floor/plating/prison,
/area/fiorina/tumor/ice_lab)
"guB" = (
-/obj/structure/barricade/handrail/type_b{
- dir = 8;
- layer = 3.5
- },
+/obj/item/ammo_magazine/m56d,
+/obj/item/ammo_magazine/m56d,
/turf/open/floor/prison{
- icon_state = "floor_plate"
+ dir = 4;
+ icon_state = "cell_stripe"
},
-/area/fiorina/station/disco)
+/area/fiorina/station/central_ring)
"guG" = (
/turf/open/floor/prison{
dir = 9;
@@ -10588,9 +10769,8 @@
},
/area/fiorina/station/park)
"gyW" = (
-/obj/item/weapon/harpoon,
-/turf/open/floor/plating/prison,
-/area/fiorina/maintenance)
+/turf/open/space,
+/area/fiorina/station/medbay)
"gzb" = (
/obj/structure/cable/heavyduty{
icon_state = "1-2"
@@ -10648,6 +10828,16 @@
/obj/structure/largecrate/random/case,
/turf/open/floor/prison,
/area/fiorina/tumor/aux_engi)
+"gAk" = (
+/obj/structure/platform/kutjevo/smooth,
+/obj/structure/platform/kutjevo/smooth{
+ dir = 4
+ },
+/obj/structure/platform/kutjevo/smooth{
+ dir = 4
+ },
+/turf/open/space/basic,
+/area/fiorina/oob)
"gAA" = (
/obj/item/stack/sheet/metal/medium_stack,
/turf/open/floor/plating/prison,
@@ -10710,6 +10900,16 @@
icon_state = "cell_stripe"
},
/area/fiorina/station/flight_deck)
+"gDt" = (
+/obj/structure/machinery/light/double/blue{
+ dir = 4;
+ pixel_x = 10;
+ pixel_y = -3
+ },
+/turf/open/floor/prison{
+ icon_state = "darkpurplefull2"
+ },
+/area/fiorina/station/research_cells)
"gDx" = (
/obj/structure/surface/table/woodentable,
/obj/item/newspaper{
@@ -10779,9 +10979,9 @@
/turf/open/space,
/area/fiorina/oob)
"gEW" = (
-/obj/structure/surface/table/reinforced/prison,
/turf/open/floor/prison{
- icon_state = "floor_plate"
+ dir = 1;
+ icon_state = "cell_stripe"
},
/area/fiorina/station/lowsec)
"gFc" = (
@@ -11244,10 +11444,11 @@
},
/area/fiorina/station/park)
"gTw" = (
-/obj/structure/lattice,
-/obj/structure/platform_decoration/kutjevo,
-/turf/open/space/basic,
-/area/fiorina/oob)
+/turf/open/floor/prison{
+ dir = 8;
+ icon_state = "cell_stripe"
+ },
+/area/fiorina/station/central_ring)
"gUf" = (
/turf/open/floor/prison{
dir = 10;
@@ -11278,11 +11479,9 @@
},
/area/fiorina/station/telecomm/lz1_cargo)
"gUH" = (
-/obj/effect/decal/cleanable/blood/gibs/core,
-/turf/open/floor/prison{
- icon_state = "whitepurple"
- },
-/area/fiorina/station/research_cells)
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med,
+/turf/closed/wall/prison,
+/area/fiorina/station/medbay)
"gUO" = (
/obj/item/tool/warning_cone,
/turf/open/floor/prison,
@@ -11308,6 +11507,18 @@
icon_state = "redfull"
},
/area/fiorina/station/security)
+"gVR" = (
+/turf/open/floor/prison{
+ dir = 1;
+ icon_state = "cell_stripe"
+ },
+/area/fiorina/maintenance)
+"gVX" = (
+/turf/open/floor/prison{
+ dir = 10;
+ icon_state = "darkpurple2"
+ },
+/area/fiorina/station/central_ring)
"gWf" = (
/obj/structure/barricade/handrail/type_b{
dir = 1
@@ -11342,6 +11553,13 @@
icon_state = "green"
},
/area/fiorina/tumor/civres)
+"gXi" = (
+/obj/structure/barricade/metal/wired{
+ dir = 8
+ },
+/obj/item/stack/sheet/metal,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"gXt" = (
/turf/open/floor/prison{
icon_state = "platingdmg1"
@@ -11352,6 +11570,14 @@
/obj/effect/landmark/objective_landmark/far,
/turf/open/floor/plating/prison,
/area/fiorina/station/telecomm/lz2_maint)
+"gXD" = (
+/obj/structure/machinery/light/double/blue{
+ dir = 8;
+ pixel_x = -10;
+ pixel_y = 13
+ },
+/turf/open/floor/prison,
+/area/fiorina/station/central_ring)
"gXH" = (
/obj/structure/prop/structure_lattice{
dir = 4;
@@ -11424,6 +11650,14 @@
icon_state = "panelscorched"
},
/area/fiorina/station/transit_hub)
+"haa" = (
+/obj/structure/machinery/light/double/blue{
+ dir = 8;
+ pixel_x = -10;
+ pixel_y = 13
+ },
+/turf/open/floor/plating/plating_catwalk/prison,
+/area/fiorina/station/central_ring)
"hab" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/trash/plate{
@@ -11652,7 +11886,7 @@
"hgJ" = (
/obj/structure/largecrate/random/case/small,
/turf/open/floor/plating/prison,
-/area/fiorina/station/disco)
+/area/fiorina/station/central_ring)
"hgS" = (
/turf/closed/shuttle/ert{
icon_state = "stan5"
@@ -11792,12 +12026,9 @@
/turf/open/floor/almayer_hull,
/area/fiorina/oob)
"hkW" = (
-/obj/item/trash/popcorn,
-/turf/open/floor/prison{
- dir = 10;
- icon_state = "sterile_white"
- },
-/area/fiorina/station/medbay)
+/obj/structure/barricade/wooden,
+/turf/open/floor/plating/plating_catwalk/prison,
+/area/fiorina/station/central_ring)
"hll" = (
/obj/item/tool/warning_cone,
/turf/open/floor/prison{
@@ -11959,8 +12190,8 @@
"hpJ" = (
/obj/structure/bed/roller,
/obj/structure/machinery/filtration/console{
- pixel_y = 22;
- can_block_movement = 0
+ can_block_movement = 0;
+ pixel_y = 22
},
/obj/item/trash/used_stasis_bag,
/turf/open/floor/plating/prison,
@@ -12015,6 +12246,14 @@
icon_state = "whitegreenfull"
},
/area/fiorina/station/medbay)
+"hrg" = (
+/obj/structure/barricade/handrail{
+ dir = 4
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/central_ring)
"hro" = (
/obj/structure/girder,
/turf/open/floor/plating/prison,
@@ -12069,6 +12308,10 @@
},
/turf/open/floor/prison/chapel_carpet,
/area/fiorina/maintenance)
+"htc" = (
+/obj/item/tool/wrench,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"htt" = (
/turf/closed/shuttle/ert,
/area/fiorina/station/power_ring)
@@ -12175,6 +12418,12 @@
icon_state = "darkbrown2"
},
/area/fiorina/tumor/aux_engi)
+"hwE" = (
+/obj/structure/tunnel/maint_tunnel,
+/turf/open/floor/prison{
+ icon_state = "darkpurplefull2"
+ },
+/area/fiorina/tumor/servers)
"hxg" = (
/turf/open/floor/prison{
dir = 1;
@@ -12389,6 +12638,11 @@
/obj/effect/landmark/wo_supplies/storage/belts/knifebelt,
/turf/open/floor/prison,
/area/fiorina/station/lowsec)
+"hDq" = (
+/obj/effect/landmark/corpsespawner/engineer,
+/obj/effect/decal/cleanable/blood,
+/turf/open/auto_turf/sand/layer1,
+/area/fiorina/tumor/civres)
"hDr" = (
/obj/item/stool,
/turf/open/floor/prison{
@@ -12468,6 +12722,11 @@
icon_state = "greenblue"
},
/area/fiorina/station/botany)
+"hGP" = (
+/obj/structure/platform_decoration/kutjevo,
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/fiorina/oob)
"hGZ" = (
/obj/item/stack/cable_coil,
/turf/open/floor/prison{
@@ -12531,6 +12790,13 @@
icon_state = "blue"
},
/area/fiorina/station/power_ring)
+"hIR" = (
+/obj/structure/tunnel,
+/turf/open/organic/grass{
+ desc = "It'll get in your shoes no matter what you do.";
+ name = "astroturf"
+ },
+/area/fiorina/station/civres_blue)
"hJc" = (
/obj/structure/machinery/light/double/blue,
/turf/open/floor/prison{
@@ -12652,6 +12918,18 @@
icon_state = "red"
},
/area/fiorina/lz/near_lzII)
+"hNi" = (
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_22"
+ },
+/obj/effect/decal/medical_decals{
+ icon_state = "triagedecalbottomright"
+ },
+/turf/open/floor/prison{
+ dir = 10;
+ icon_state = "whitegreenfull"
+ },
+/area/fiorina/station/medbay)
"hNY" = (
/obj/item/stack/rods,
/turf/open/floor/plating/prison,
@@ -12733,7 +13011,6 @@
/turf/open/floor/plating/prison,
/area/fiorina/lz/near_lzI)
"hQH" = (
-/obj/item/reagent_container/food/snacks/clownstears,
/obj/structure/closet/crate,
/turf/open/floor/plating/prison,
/area/fiorina/station/civres_blue)
@@ -12787,6 +13064,16 @@
/obj/structure/window/reinforced,
/turf/open/floor/prison,
/area/fiorina/station/security)
+"hTc" = (
+/obj/structure/stairs/perspective{
+ dir = 8;
+ icon_state = "p_stair_sn_full_cap"
+ },
+/turf/open/floor/prison{
+ dir = 1;
+ icon_state = "whitegreen"
+ },
+/area/fiorina/station/central_ring)
"hTf" = (
/obj/structure/prop/structure_lattice{
dir = 4;
@@ -12905,10 +13192,14 @@
/turf/closed/wall/prison,
/area/fiorina/station/medbay)
"hVS" = (
-/obj/structure/platform_decoration/kutjevo,
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/fiorina/oob)
+/obj/structure/flora/bush/ausbushes/grassybush{
+ icon_state = "lavendergrass_4"
+ },
+/turf/open/organic/grass{
+ desc = "It'll get in your shoes no matter what you do.";
+ name = "astroturf"
+ },
+/area/fiorina/station/central_ring)
"hWB" = (
/obj/item/device/flashlight/lamp/tripod,
/turf/open/floor/prison{
@@ -13032,10 +13323,12 @@
},
/area/fiorina/station/medbay)
"ick" = (
-/obj/item/tool/candle,
-/obj/effect/landmark/objective_landmark/medium,
-/turf/open/floor/prison/chapel_carpet,
-/area/fiorina/maintenance)
+/obj/structure/barricade/wooden,
+/turf/open/floor/prison{
+ dir = 4;
+ icon_state = "cell_stripe"
+ },
+/area/fiorina/station/central_ring)
"icK" = (
/obj/effect/decal/cleanable/blood/splatter{
icon_state = "gibmid3"
@@ -13067,6 +13360,13 @@
"idE" = (
/turf/open/floor/prison,
/area/fiorina/station/medbay)
+"idO" = (
+/obj/structure/tunnel/maint_tunnel,
+/turf/open/floor/prison{
+ dir = 10;
+ icon_state = "greenblue"
+ },
+/area/fiorina/station/botany)
"idT" = (
/obj/structure/barricade/wooden{
dir = 4;
@@ -13378,6 +13678,15 @@
/obj/item/device/cassette_tape/hiphop,
/turf/open/floor/plating/prison,
/area/fiorina/tumor/ice_lab)
+"ioG" = (
+/obj/structure/flora/bush/ausbushes/grassybush{
+ icon_state = "brflowers_1"
+ },
+/turf/open/organic/grass{
+ desc = "It'll get in your shoes no matter what you do.";
+ name = "astroturf"
+ },
+/area/fiorina/station/central_ring)
"ioM" = (
/turf/closed/wall/r_wall/prison,
/area/fiorina/station/medbay)
@@ -13445,6 +13754,9 @@
icon_state = "sterile_white"
},
/area/fiorina/station/research_cells)
+"irx" = (
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"iry" = (
/obj/structure/janitorialcart,
/turf/open/floor/prison{
@@ -13481,6 +13793,12 @@
icon_state = "kitchen"
},
/area/fiorina/station/research_cells)
+"isl" = (
+/obj/structure/stairs/perspective{
+ icon_state = "p_stair_full"
+ },
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"isB" = (
/obj/structure/bed/chair/comfy{
dir = 1
@@ -13504,6 +13822,14 @@
icon_state = "yellow"
},
/area/fiorina/station/lowsec)
+"isL" = (
+/obj/structure/machinery/light/double/blue{
+ dir = 4;
+ pixel_x = 10;
+ pixel_y = 13
+ },
+/turf/open/floor/prison,
+/area/fiorina/station/central_ring)
"isP" = (
/obj/item/trash/snack_bowl,
/turf/open/floor/prison{
@@ -13564,6 +13890,12 @@
name = "astroturf"
},
/area/fiorina/tumor/fiberbush)
+"iuw" = (
+/obj/item/reagent_container/food/drinks/cans/souto/cherry,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/central_ring)
"iuV" = (
/obj/structure/curtain,
/turf/open/floor/prison{
@@ -13605,7 +13937,6 @@
"ivB" = (
/obj/structure/surface/rack,
/obj/item/storage/pouch/tools/full,
-/obj/effect/landmark/objective_landmark/close,
/turf/open/floor/plating/prison,
/area/fiorina/maintenance)
"ivL" = (
@@ -13645,11 +13976,11 @@
/turf/open/floor/prison/chapel_carpet,
/area/fiorina/station/chapel)
"iwK" = (
-/obj/structure/surface/table/reinforced/prison,
-/obj/item/reagent_container/food/snacks/mre_pack/meal1,
-/turf/open/floor/prison{
- icon_state = "darkpurplefull2"
+/obj/structure/stairs/perspective{
+ dir = 5;
+ icon_state = "p_stair_full"
},
+/turf/open/floor/plating/plating_catwalk/prison,
/area/fiorina/station/research_cells)
"iwT" = (
/obj/structure/ice/thin/indestructible{
@@ -13767,6 +14098,14 @@
icon_state = "stan25"
},
/area/fiorina/oob)
+"iCi" = (
+/obj/item/device/flashlight/lamp/tripod,
+/obj/structure/machinery/light/double/blue{
+ dir = 1;
+ pixel_y = 21
+ },
+/turf/open/floor/prison,
+/area/fiorina/station/central_ring)
"iCo" = (
/obj/structure/machinery/door/poddoor/almayer{
density = 0;
@@ -13962,9 +14301,6 @@
dir = 1
},
/obj/structure/inflatable/popped,
-/obj/structure/barricade/wooden{
- dir = 8
- },
/turf/open/floor/prison{
icon_state = "whitegreen"
},
@@ -14010,6 +14346,13 @@
icon_state = "darkyellowfull2"
},
/area/fiorina/station/telecomm/lz1_tram)
+"iKf" = (
+/obj/effect/decal/cleanable/blood,
+/turf/open/floor/prison{
+ dir = 8;
+ icon_state = "green"
+ },
+/area/fiorina/tumor/civres)
"iKg" = (
/obj/effect/landmark/structure_spawner/xvx_hive/xeno_core,
/turf/open/floor/plating/prison,
@@ -14038,6 +14381,21 @@
/obj/effect/landmark/corpsespawner/prison_security,
/turf/open/floor/prison,
/area/fiorina/station/park)
+"iKT" = (
+/obj/structure/platform/kutjevo/smooth{
+ dir = 1
+ },
+/obj/structure/platform/kutjevo/smooth{
+ dir = 8
+ },
+/obj/structure/platform/kutjevo/smooth,
+/obj/structure/barricade/handrail{
+ dir = 1;
+ icon_state = "hr_kutjevo";
+ name = "solar lattice"
+ },
+/turf/open/space/basic,
+/area/fiorina/oob)
"iLy" = (
/obj/item/stack/rods/plasteel,
/turf/open/floor/prison{
@@ -14307,6 +14665,13 @@
icon_state = "darkyellow2"
},
/area/fiorina/station/telecomm/lz1_cargo)
+"iTe" = (
+/obj/structure/stairs/perspective{
+ dir = 4;
+ icon_state = "p_stair_sn_full_cap"
+ },
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"iTm" = (
/turf/open/auto_turf/sand/layer1,
/area/fiorina/station/civres_blue)
@@ -14606,6 +14971,12 @@
icon_state = "sterile_white"
},
/area/fiorina/station/civres_blue)
+"jdX" = (
+/obj/item/clothing/under/shorts/red,
+/turf/open/floor/prison{
+ icon_state = "yellowfull"
+ },
+/area/fiorina/station/central_ring)
"jeh" = (
/obj/structure/stairs/perspective{
icon_state = "p_stair_ew_full_cap"
@@ -14655,21 +15026,12 @@
name = "pool"
},
/area/fiorina/station/park)
-"jfm" = (
-/obj/structure/lattice,
-/obj/structure/platform/kutjevo/smooth{
- dir = 1
- },
-/obj/structure/platform/kutjevo/smooth{
- dir = 4
- },
-/obj/structure/barricade/handrail{
- dir = 1;
- icon_state = "hr_kutjevo";
- name = "solar lattice"
+"jfk" = (
+/obj/item/ammo_magazine/rifle/mar40/extended,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
},
-/turf/open/space/basic,
-/area/fiorina/oob)
+/area/fiorina/station/lowsec)
"jfp" = (
/obj/structure/barricade/handrail,
/obj/structure/barricade/handrail{
@@ -14710,6 +15072,16 @@
"jgu" = (
/turf/closed/wall/prison,
/area/fiorina/station/park)
+"jgN" = (
+/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb,
+/obj/effect/landmark/nightmare{
+ insert_tag = "yardbasketball"
+ },
+/turf/open/organic/grass{
+ desc = "It'll get in your shoes no matter what you do.";
+ name = "astroturf"
+ },
+/area/fiorina/station/central_ring)
"jgW" = (
/obj/structure/barricade/metal/wired{
dir = 1
@@ -14968,7 +15340,6 @@
/area/fiorina/lz/near_lzII)
"jnr" = (
/obj/structure/filingcabinet,
-/obj/item/card/data/clown,
/obj/effect/landmark/objective_landmark/medium,
/turf/open/floor/prison{
dir = 4;
@@ -15131,18 +15502,12 @@
},
/area/fiorina/station/power_ring)
"jqR" = (
-/obj/structure/flora/pottedplant{
- icon_state = "pottedplant_22"
- },
-/obj/structure/machinery/light/double/blue{
- dir = 8;
- pixel_x = -10;
- pixel_y = 13
- },
-/turf/open/floor/prison{
- icon_state = "floor_plate"
+/obj/structure/barricade/wooden{
+ dir = 4;
+ pixel_y = 4
},
-/area/fiorina/station/disco)
+/turf/open/floor/prison,
+/area/fiorina/station/central_ring)
"jqX" = (
/obj/structure/platform{
dir = 8
@@ -15381,6 +15746,10 @@
/obj/item/stack/tile/plasteel,
/turf/open/floor/prison,
/area/fiorina/station/disco)
+"jAt" = (
+/obj/structure/platform/shiva,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"jAx" = (
/turf/open/floor/prison{
dir = 1;
@@ -15552,6 +15921,13 @@
icon_state = "greenfull"
},
/area/fiorina/tumor/servers)
+"jEC" = (
+/obj/structure/window/reinforced{
+ dir = 1;
+ layer = 3
+ },
+/turf/open/floor/prison,
+/area/fiorina/station/central_ring)
"jEG" = (
/obj/structure/prop/resin_prop,
/turf/open/floor/prison{
@@ -15658,6 +16034,12 @@
},
/turf/open/floor/plating/prison,
/area/fiorina/maintenance)
+"jJe" = (
+/obj/structure/barricade/handrail/type_b{
+ dir = 4
+ },
+/turf/open/floor/prison,
+/area/fiorina/station/disco)
"jJh" = (
/obj/structure/surface/table/reinforced/prison,
/obj/structure/machinery/computer/objective,
@@ -15841,6 +16223,16 @@
/obj/structure/machinery/power/smes/buildable,
/turf/open/floor/prison,
/area/fiorina/station/power_ring)
+"jMA" = (
+/obj/structure/machinery/light/double/blue{
+ dir = 8;
+ pixel_x = -10;
+ pixel_y = 13
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/disco)
"jMH" = (
/obj/structure/barricade/metal/wired{
dir = 4
@@ -15849,6 +16241,11 @@
icon_state = "plate"
},
/area/fiorina/tumor/ship)
+"jNa" = (
+/turf/open/floor/prison{
+ icon_state = "darkpurple2"
+ },
+/area/fiorina/station/central_ring)
"jNl" = (
/obj/structure/ice/thin/indestructible{
icon_state = "Straight"
@@ -16029,6 +16426,12 @@
},
/turf/open/floor/prison/chapel_carpet,
/area/fiorina/station/chapel)
+"jUy" = (
+/obj/structure/machinery/sensortower,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/tumor/civres)
"jUz" = (
/obj/structure/surface/table/reinforced/prison{
flipped = 1
@@ -16125,6 +16528,11 @@
/obj/effect/landmark/yautja_teleport,
/turf/open/floor/prison,
/area/fiorina/station/park)
+"jXx" = (
+/turf/open/floor/prison{
+ icon_state = "yellow"
+ },
+/area/fiorina/station/central_ring)
"jXz" = (
/turf/closed/wall/prison,
/area/fiorina/tumor/servers)
@@ -16207,11 +16615,11 @@
},
/area/fiorina/lz/near_lzII)
"jZb" = (
-/obj/item/ammo_magazine/shotgun/buckshot,
/turf/open/floor/prison{
- icon_state = "floor_plate"
+ dir = 4;
+ icon_state = "cell_stripe"
},
-/area/fiorina/station/lowsec)
+/area/fiorina/station/central_ring)
"jZc" = (
/obj/structure/disposalpipe/segment{
icon_state = "delivery_outlet";
@@ -16221,6 +16629,12 @@
},
/turf/open/floor/plating/prison,
/area/fiorina/tumor/ice_lab)
+"jZx" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/central_ring)
"jZR" = (
/obj/item/frame/rack,
/obj/structure/barricade/handrail/type_b{
@@ -16398,6 +16812,7 @@
},
/area/fiorina/station/security)
"kdo" = (
+/obj/structure/platform_decoration,
/obj/structure/inflatable,
/turf/open/floor/prison{
icon_state = "whitegreen"
@@ -16429,6 +16844,13 @@
/obj/structure/largecrate/random/case/small,
/turf/open/floor/plating/plating_catwalk/prison,
/area/fiorina/lz/near_lzI)
+"keo" = (
+/obj/structure/platform_decoration/kutjevo{
+ dir = 1
+ },
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/fiorina/oob)
"keF" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/device/flash,
@@ -16532,6 +16954,11 @@
/obj/structure/machinery/light/double/blue,
/turf/open/floor/wood,
/area/fiorina/station/civres_blue)
+"kiq" = (
+/turf/open/floor/prison{
+ icon_state = "damaged2"
+ },
+/area/fiorina/station/central_ring)
"kis" = (
/obj/structure/machinery/light/double/blue{
dir = 1;
@@ -16941,6 +17368,15 @@
icon_state = "redfull"
},
/area/fiorina/station/medbay)
+"kuT" = (
+/obj/structure/flora/bush/ausbushes/grassybush{
+ icon_state = "ywflowers_3"
+ },
+/turf/open/organic/grass{
+ desc = "It'll get in your shoes no matter what you do.";
+ name = "astroturf"
+ },
+/area/fiorina/station/central_ring)
"kvd" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/reagent_container/food/drinks/golden_cup,
@@ -16963,6 +17399,20 @@
name = "astroturf"
},
/area/fiorina/station/park)
+"kvm" = (
+/obj/structure/platform/kutjevo/smooth{
+ dir = 1
+ },
+/obj/structure/platform/kutjevo/smooth{
+ dir = 4
+ },
+/obj/structure/barricade/handrail{
+ dir = 1;
+ icon_state = "hr_kutjevo";
+ name = "solar lattice"
+ },
+/turf/open/space/basic,
+/area/fiorina/oob)
"kvn" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/weapon/gun/energy/taser,
@@ -17771,6 +18221,16 @@
icon_state = "blue"
},
/area/fiorina/station/civres_blue)
+"kUR" = (
+/obj/structure/stairs/perspective{
+ dir = 1;
+ icon_state = "p_stair_full"
+ },
+/turf/open/floor/prison{
+ dir = 1;
+ icon_state = "whitegreen"
+ },
+/area/fiorina/station/central_ring)
"kVg" = (
/obj/item/stack/cable_coil/blue,
/turf/open/floor/plating/prison,
@@ -18053,6 +18513,10 @@
icon_state = "whitegreen"
},
/area/fiorina/station/medbay)
+"ldZ" = (
+/obj/structure/machinery/door/airlock/prison_hatch/autoname,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"leq" = (
/obj/effect/landmark/corpsespawner/prison_security,
/turf/open/floor/prison{
@@ -18151,6 +18615,12 @@
},
/turf/open/floor/plating/prison,
/area/fiorina/maintenance)
+"liT" = (
+/turf/open/floor/prison{
+ dir = 1;
+ icon_state = "yellow"
+ },
+/area/fiorina/station/central_ring)
"liX" = (
/obj/structure/reagent_dispensers/water_cooler/stacks,
/turf/open/floor/prison{
@@ -18637,6 +19107,7 @@
/turf/open/floor/plating/plating_catwalk/prison,
/area/fiorina/station/medbay)
"lwB" = (
+/obj/structure/platform,
/obj/structure/bed/chair{
dir = 1;
layer = 2.7
@@ -18725,11 +19196,13 @@
},
/area/fiorina/station/medbay)
"lzb" = (
-/obj/structure/largecrate/random,
+/obj/structure/platform_decoration{
+ dir = 1
+ },
/turf/open/floor/prison{
icon_state = "floor_plate"
},
-/area/fiorina/station/disco)
+/area/fiorina/station/central_ring)
"lzm" = (
/obj/structure/surface/table/reinforced/prison,
/obj/structure/window/reinforced/tinted,
@@ -18813,6 +19286,10 @@
},
/turf/open/floor/prison,
/area/fiorina/station/flight_deck)
+"lBY" = (
+/obj/item/stack/sheet/metal,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"lCm" = (
/obj/item/ammo_casing{
icon_state = "cartridge_1"
@@ -18883,12 +19360,8 @@
},
/area/fiorina/station/civres_blue)
"lDC" = (
-/obj/structure/platform/kutjevo/smooth,
-/obj/structure/platform/kutjevo/smooth{
- dir = 4
- },
-/turf/open/space/basic,
-/area/fiorina/oob)
+/turf/closed/wall/prison,
+/area/fiorina/station/central_ring)
"lEa" = (
/obj/structure/stairs/perspective{
icon_state = "p_stair_ew_full_cap"
@@ -18983,19 +19456,6 @@
},
/turf/open/floor/prison,
/area/fiorina/station/transit_hub)
-"lGA" = (
-/obj/structure/machinery/bioprinter{
- stored_metal = 1000
- },
-/obj/structure/machinery/door/window/eastright,
-/obj/structure/machinery/door/window/eastright{
- dir = 8
- },
-/turf/open/floor/prison{
- dir = 10;
- icon_state = "whitegreenfull"
- },
-/area/fiorina/station/medbay)
"lHc" = (
/obj/structure/bed{
icon_state = "abed"
@@ -19071,6 +19531,7 @@
},
/area/fiorina/station/park)
"lJv" = (
+/obj/structure/platform,
/obj/structure/surface/table/reinforced/prison,
/obj/item/storage/firstaid/regular,
/obj/structure/machinery/light/double/blue{
@@ -19209,6 +19670,15 @@
icon_state = "darkbrownfull2"
},
/area/fiorina/tumor/aux_engi)
+"lOB" = (
+/obj/structure/platform/kutjevo/smooth{
+ dir = 1
+ },
+/obj/structure/platform/kutjevo/smooth{
+ dir = 8
+ },
+/turf/open/space/basic,
+/area/fiorina/oob)
"lOE" = (
/turf/open/floor/prison{
dir = 9;
@@ -19380,6 +19850,20 @@
icon_state = "damaged2"
},
/area/fiorina/station/lowsec)
+"lWh" = (
+/obj/item/clothing/under/shorts/black,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/central_ring)
+"lWr" = (
+/obj/structure/stairs/perspective{
+ dir = 4;
+ icon_state = "p_stair_full"
+ },
+/obj/structure/platform/shiva,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"lWD" = (
/obj/structure/machinery/light/double/blue{
dir = 4;
@@ -19824,12 +20308,11 @@
},
/area/fiorina/station/telecomm/lz1_cargo)
"mhv" = (
-/obj/structure/platform_decoration/kutjevo{
- dir = 8
+/obj/structure/machinery/power/apc{
+ dir = 1
},
-/obj/structure/lattice,
-/turf/open/space,
-/area/fiorina/oob)
+/turf/open/floor/plating/plating_catwalk/prison,
+/area/fiorina/station/central_ring)
"mhM" = (
/obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{
dir = 1;
@@ -20153,6 +20636,12 @@
icon_state = "yellow"
},
/area/fiorina/station/lowsec)
+"msS" = (
+/obj/structure/machinery/door/airlock/prison_hatch/autoname{
+ dir = 1
+ },
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"mtj" = (
/obj/structure/machinery/light/double/blue{
dir = 4;
@@ -20183,6 +20672,10 @@
icon_state = "floor_plate"
},
/area/fiorina/tumor/fiberbush)
+"muf" = (
+/obj/effect/decal/cleanable/blood,
+/turf/open/floor/prison,
+/area/fiorina/station/central_ring)
"muB" = (
/obj/effect/landmark/corpsespawner/ua_riot/burst,
/turf/open/floor/prison{
@@ -20254,6 +20747,13 @@
icon_state = "floor_plate"
},
/area/fiorina/station/lowsec)
+"mxG" = (
+/obj/structure/platform/kutjevo/smooth,
+/obj/structure/platform/kutjevo/smooth{
+ dir = 8
+ },
+/turf/open/space/basic,
+/area/fiorina/oob)
"mxO" = (
/obj/structure/flora/pottedplant{
icon_state = "pottedplant_22"
@@ -20367,7 +20867,6 @@
/area/fiorina/station/security)
"mAz" = (
/obj/structure/closet/emcloset,
-/obj/effect/landmark/objective_landmark/close,
/turf/open/floor/prison{
dir = 5;
icon_state = "whitegreen"
@@ -20458,16 +20957,11 @@
},
/area/fiorina/station/lowsec)
"mDi" = (
-/obj/structure/flora/pottedplant{
- icon_state = "pottedplant_22"
- },
-/obj/structure/machinery/light/double/blue{
- dir = 8;
- pixel_x = -10;
- pixel_y = -3
+/obj/structure/platform_decoration,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
},
-/turf/open/floor/prison,
-/area/fiorina/station/disco)
+/area/fiorina/station/central_ring)
"mDs" = (
/obj/item/stack/sandbags_empty/half,
/turf/open/floor/prison{
@@ -20496,11 +20990,11 @@
},
/area/fiorina/station/park)
"mEv" = (
-/obj/structure/surface/table/reinforced/prison,
-/obj/item/reagent_container/food/snacks/mre_pack/meal5,
-/turf/open/floor/prison{
- icon_state = "darkpurplefull2"
+/obj/structure/stairs/perspective{
+ dir = 1;
+ icon_state = "p_stair_sn_full_cap"
},
+/turf/open/floor/plating/plating_catwalk/prison,
/area/fiorina/station/research_cells)
"mEL" = (
/obj/item/prop/helmetgarb/spacejam_tickets{
@@ -20530,6 +21024,10 @@
icon_state = "floor_plate"
},
/area/fiorina/station/civres_blue)
+"mFv" = (
+/obj/structure/largecrate/random/mini/ammo,
+/turf/open/floor/prison,
+/area/fiorina/station/central_ring)
"mFz" = (
/obj/effect/decal/cleanable/blood/splatter{
icon_state = "gibmid1"
@@ -20540,19 +21038,8 @@
},
/area/fiorina/station/medbay)
"mGe" = (
-/obj/structure/bed/chair{
- dir = 1;
- pixel_y = 3
- },
-/obj/effect/decal/cleanable/blood,
-/obj/item/reagent_container/food/drinks/cans/beer{
- pixel_x = -11;
- pixel_y = -6
- },
-/turf/open/floor/prison{
- icon_state = "floor_plate"
- },
-/area/fiorina/station/lowsec)
+/turf/open/floor/plating/plating_catwalk/prison,
+/area/fiorina/station/central_ring)
"mGx" = (
/obj/item/reagent_container/food/drinks/sillycup,
/turf/open/floor/prison,
@@ -20593,6 +21080,14 @@
icon_state = "whitegreenfull"
},
/area/fiorina/station/medbay)
+"mIq" = (
+/obj/structure/barricade/handrail{
+ dir = 8
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/central_ring)
"mIu" = (
/obj/effect/spawner/random/sentry/midchance,
/turf/open/floor/plating/prison,
@@ -21225,6 +21720,12 @@
icon_state = "sterile_white"
},
/area/fiorina/station/medbay)
+"mYx" = (
+/obj/structure/tunnel/maint_tunnel,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/tumor/ice_lab)
"mYN" = (
/obj/structure/platform_decoration{
dir = 8
@@ -22020,6 +22521,13 @@
icon_state = "floor_plate"
},
/area/fiorina/station/security)
+"nzp" = (
+/obj/item/clothing/gloves/boxing/blue,
+/turf/open/floor/prison{
+ dir = 9;
+ icon_state = "yellow"
+ },
+/area/fiorina/station/central_ring)
"nzI" = (
/obj/structure/largecrate/random,
/turf/open/floor/wood,
@@ -23199,6 +23707,10 @@
},
/turf/open/floor/plating/prison,
/area/fiorina/station/telecomm/lz2_maint)
+"olB" = (
+/obj/structure/tunnel/maint_tunnel,
+/turf/open/floor/plating/prison,
+/area/fiorina/tumor/aux_engi)
"olC" = (
/turf/open/floor/prison{
dir = 8;
@@ -23215,6 +23727,13 @@
icon_state = "sterile_white"
},
/area/fiorina/tumor/ice_lab)
+"olQ" = (
+/obj/structure/platform/kutjevo/smooth,
+/obj/structure/platform/kutjevo/smooth{
+ dir = 4
+ },
+/turf/open/space/basic,
+/area/fiorina/oob)
"olT" = (
/obj/structure/machinery/computer3/server/rack,
/obj/structure/window{
@@ -23863,12 +24382,14 @@
/turf/open/floor/plating/prison,
/area/fiorina/station/lowsec)
"oFW" = (
+/obj/structure/platform,
/obj/structure/bed/chair{
dir = 1;
layer = 2.7
},
+/obj/structure/machinery/light/double/blue,
/turf/open/floor/prison{
- icon_state = "whitegreencorner"
+ icon_state = "whitegreen"
},
/area/fiorina/station/medbay)
"oGm" = (
@@ -24020,6 +24541,14 @@
/obj/effect/landmark/objective_landmark/close,
/turf/open/floor/plating/prison,
/area/fiorina/tumor/civres)
+"oKQ" = (
+/obj/structure/machinery/floodlight{
+ name = "Yard Floodlight"
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/central_ring)
"oKV" = (
/obj/structure/machinery/door/airlock/multi_tile/elevator/freight,
/turf/open/floor/corsat{
@@ -24081,6 +24610,18 @@
icon_state = "doubleside"
},
/area/fiorina/maintenance)
+"oOs" = (
+/turf/open/floor/prison{
+ dir = 5;
+ icon_state = "darkpurple2"
+ },
+/area/fiorina/station/central_ring)
+"oOv" = (
+/obj/structure/barricade/wooden{
+ dir = 8
+ },
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"oOK" = (
/obj/item/device/multitool,
/turf/open/floor/prison{
@@ -24102,6 +24643,13 @@
icon_state = "floor_plate"
},
/area/fiorina/station/park)
+"oPJ" = (
+/obj/effect/decal/cleanable/blood/gibs,
+/obj/item/ammo_magazine/rifle/mar40,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/lowsec)
"oPN" = (
/obj/structure/inflatable/popped/door,
/turf/open/floor/plating/prison,
@@ -24203,6 +24751,13 @@
name = "astroturf"
},
/area/fiorina/station/civres_blue)
+"oTG" = (
+/obj/structure/platform_decoration/kutjevo{
+ dir = 8
+ },
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/fiorina/oob)
"oTH" = (
/obj/structure/bed/chair,
/turf/open/floor/prison{
@@ -24225,6 +24780,12 @@
},
/turf/open/space,
/area/fiorina/oob)
+"oVk" = (
+/obj/structure/sign/prop3{
+ desc = "Enlist in the Penal Battalions today! The USCM 3rd Fleet features a subset of UA sanctioned penal battalions, drawing from inmate popualtions across the colonies. Mostly New Argentina though."
+ },
+/turf/closed/wall/r_wall/prison_unmeltable,
+/area/fiorina/station/central_ring)
"oVn" = (
/obj/structure/surface/rack,
/obj/effect/landmark/objective_landmark/close,
@@ -24646,6 +25207,15 @@
/obj/item/stack/cable_coil/cut,
/turf/open/floor/prison,
/area/fiorina/tumor/servers)
+"pkw" = (
+/obj/structure/stairs/perspective{
+ icon_state = "p_stair_sn_full_cap"
+ },
+/obj/structure/platform{
+ dir = 8
+ },
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"pkG" = (
/obj/item/stool,
/turf/open/floor/prison{
@@ -25667,7 +26237,6 @@
},
/area/fiorina/station/medbay)
"pSJ" = (
-/obj/effect/landmark/corpsespawner/pmc,
/turf/open/floor/wood,
/area/fiorina/maintenance)
"pSU" = (
@@ -25820,12 +26389,6 @@
icon_state = "darkyellowcorners2"
},
/area/fiorina/station/telecomm/lz1_cargo)
-"pYW" = (
-/obj/item/tool/weldingtool/hugetank,
-/turf/open/floor/prison{
- icon_state = "darkbrownfull2"
- },
-/area/fiorina/tumor/aux_engi)
"pZb" = (
/turf/open/floor/prison{
dir = 8;
@@ -25874,6 +26437,15 @@
"qbl" = (
/turf/open/auto_turf/sand/layer1,
/area/fiorina/lz/near_lzII)
+"qbr" = (
+/obj/structure/flora/bush/ausbushes/grassybush{
+ icon_state = "lavendergrass_2"
+ },
+/turf/open/organic/grass{
+ desc = "It'll get in your shoes no matter what you do.";
+ name = "astroturf"
+ },
+/area/fiorina/station/central_ring)
"qbu" = (
/obj/structure/bed/chair/office/dark{
dir = 4
@@ -26035,6 +26607,13 @@
icon_state = "whitepurple"
},
/area/fiorina/oob)
+"qfE" = (
+/obj/item/ammo_magazine/shotgun/buckshot,
+/turf/open/organic/grass{
+ desc = "It'll get in your shoes no matter what you do.";
+ name = "astroturf"
+ },
+/area/fiorina/station/central_ring)
"qfI" = (
/obj/structure/bed/chair/office/dark{
dir = 8
@@ -26057,13 +26636,6 @@
},
/turf/open/space/basic,
/area/fiorina/oob)
-"qgh" = (
-/obj/structure/surface/table/reinforced/prison,
-/obj/item/book/manual/surgery,
-/turf/open/floor/prison{
- icon_state = "redfull"
- },
-/area/fiorina/station/medbay)
"qgi" = (
/obj/structure/disposalpipe/segment{
color = "#c4c4c4";
@@ -26601,6 +27173,16 @@
icon_state = "darkbrowncorners2"
},
/area/fiorina/maintenance)
+"qwZ" = (
+/obj/structure/stairs/perspective{
+ dir = 1;
+ icon_state = "p_stair_sn_full_cap"
+ },
+/turf/open/floor/prison{
+ dir = 1;
+ icon_state = "whitegreen"
+ },
+/area/fiorina/station/central_ring)
"qxB" = (
/obj/structure/stairs/perspective{
dir = 1;
@@ -26652,11 +27234,17 @@
},
/area/fiorina/station/park)
"qyX" = (
-/obj/structure/barricade/wooden,
+/obj/structure/stairs/perspective{
+ dir = 1;
+ icon_state = "p_stair_sn_full_cap"
+ },
+/obj/structure/platform{
+ dir = 8
+ },
/turf/open/floor/prison{
icon_state = "floor_plate"
},
-/area/fiorina/station/disco)
+/area/fiorina/station/central_ring)
"qzl" = (
/obj/structure/machinery/shower{
pixel_y = 13
@@ -27537,6 +28125,10 @@
icon_state = "floor_plate"
},
/area/fiorina/tumor/civres)
+"qWO" = (
+/obj/item/tool/weldingtool,
+/turf/open/auto_turf/sand/layer1,
+/area/fiorina/tumor/civres)
"qXl" = (
/obj/structure/stairs/perspective{
dir = 8;
@@ -27625,6 +28217,15 @@
icon_state = "darkpurplefull2"
},
/area/fiorina/station/research_cells)
+"rac" = (
+/obj/structure/platform/kutjevo/smooth{
+ dir = 8
+ },
+/obj/structure/platform/kutjevo/smooth{
+ dir = 1
+ },
+/turf/open/space/basic,
+/area/fiorina/oob)
"rar" = (
/obj/structure/window/reinforced{
dir = 4
@@ -27683,6 +28284,12 @@
icon_state = "redfull"
},
/area/fiorina/station/security)
+"rcG" = (
+/obj/structure/barricade/handrail,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/central_ring)
"rdS" = (
/obj/structure/machinery/light/double/blue{
dir = 8;
@@ -27706,6 +28313,14 @@
icon_state = "blue"
},
/area/fiorina/station/power_ring)
+"reD" = (
+/obj/structure/platform_decoration{
+ dir = 8
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/lowsec)
"reO" = (
/obj/structure/platform_decoration{
dir = 4
@@ -27889,9 +28504,12 @@
},
/area/fiorina/station/botany)
"rkB" = (
+/obj/structure/platform_decoration{
+ dir = 4
+ },
/obj/item/device/flashlight,
/turf/open/floor/plating/prison,
-/area/fiorina/station/disco)
+/area/fiorina/station/central_ring)
"rkH" = (
/obj/structure/grille,
/obj/structure/lattice,
@@ -28290,6 +28908,15 @@
},
/turf/open/floor/almayer_hull,
/area/fiorina/oob)
+"rxu" = (
+/obj/structure/flora/bush/ausbushes/grassybush{
+ icon_state = "lavendergrass_3"
+ },
+/turf/open/organic/grass{
+ desc = "It'll get in your shoes no matter what you do.";
+ name = "astroturf"
+ },
+/area/fiorina/station/central_ring)
"rxz" = (
/obj/structure/curtain/open/black,
/turf/open/floor/prison,
@@ -28297,7 +28924,7 @@
"rym" = (
/obj/structure/inflatable/popped/door,
/turf/open/floor/plating/prison,
-/area/fiorina/station/disco)
+/area/fiorina/station/central_ring)
"ryt" = (
/obj/structure/window/framed/prison/reinforced,
/turf/open/floor/prison,
@@ -28339,11 +28966,6 @@
icon_state = "whitegreenfull"
},
/area/fiorina/station/medbay)
-"rAe" = (
-/obj/structure/platform/kutjevo/smooth,
-/obj/structure/lattice,
-/turf/open/space,
-/area/fiorina/oob)
"rAk" = (
/obj/structure/stairs/perspective{
dir = 8;
@@ -28378,6 +29000,9 @@
/turf/open/floor/wood,
/area/fiorina/station/park)
"rAQ" = (
+/obj/structure/platform_decoration{
+ dir = 1
+ },
/obj/structure/machinery/light/double/blue{
dir = 8;
pixel_x = -10;
@@ -28499,7 +29124,7 @@
},
/area/fiorina/station/research_cells)
"rEm" = (
-/obj/item/tool/weldingtool/largetank,
+/obj/item/tool/weldingtool,
/turf/open/floor/plating/prison,
/area/fiorina/station/civres_blue)
"rEH" = (
@@ -28515,13 +29140,19 @@
/turf/open/floor/prison{
icon_state = "damaged3"
},
-/area/fiorina/station/disco)
+/area/fiorina/station/central_ring)
"rFu" = (
/obj/effect/decal/cleanable/blood/drip,
/turf/open/floor/prison/chapel_carpet{
icon_state = "doubleside"
},
/area/fiorina/station/chapel)
+"rFH" = (
+/obj/structure/largecrate/random,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/central_ring)
"rFT" = (
/obj/item/ammo_casing{
icon_state = "casing_7_1"
@@ -28682,6 +29313,14 @@
icon_state = "darkyellow2"
},
/area/fiorina/lz/near_lzI)
+"rKO" = (
+/obj/structure/machinery/light/double/blue{
+ dir = 8;
+ pixel_x = -10;
+ pixel_y = -3
+ },
+/turf/open/floor/prison,
+/area/fiorina/station/central_ring)
"rKS" = (
/obj/item/tool/wrench,
/turf/open/floor/prison{
@@ -28758,11 +29397,6 @@
/area/fiorina/lz/near_lzI)
"rMS" = (
/obj/structure/largecrate/random/secure,
-/obj/structure/machinery/light/double/blue{
- dir = 4;
- pixel_x = 10;
- pixel_y = 1
- },
/turf/open/floor/prison{
dir = 6;
icon_state = "whitegreen"
@@ -29048,15 +29682,12 @@
},
/area/fiorina/station/disco)
"rVy" = (
-/obj/structure/bed{
- icon_state = "abed"
- },
-/obj/effect/spawner/random/pills/midchance,
-/turf/open/floor/prison{
- dir = 10;
- icon_state = "whitepurple"
+/obj/structure/stairs/perspective{
+ dir = 1;
+ icon_state = "p_stair_full"
},
-/area/fiorina/station/research_cells)
+/turf/open/floor/prison,
+/area/fiorina/station/central_ring)
"rVM" = (
/obj/structure/closet/crate/miningcar,
/obj/structure/barricade/wooden{
@@ -29091,6 +29722,10 @@
icon_state = "blue_plate"
},
/area/fiorina/station/botany)
+"rWB" = (
+/obj/structure/closet/boxinggloves,
+/turf/open/floor/prison,
+/area/fiorina/station/central_ring)
"rWX" = (
/turf/open/floor/prison{
icon_state = "damaged3"
@@ -29321,6 +29956,20 @@
/obj/structure/platform/stair_cut,
/turf/open/floor/plating/prison,
/area/fiorina/station/park)
+"seu" = (
+/obj/effect/decal/medical_decals{
+ icon_state = "triagedecaldir"
+ },
+/obj/structure/machinery/light/double/blue{
+ dir = 4;
+ pixel_x = 10;
+ pixel_y = 13
+ },
+/turf/open/floor/prison{
+ dir = 10;
+ icon_state = "whitegreenfull"
+ },
+/area/fiorina/station/medbay)
"seW" = (
/turf/closed/shuttle/ert{
icon_state = "stan_r_w"
@@ -29502,7 +30151,6 @@
/obj/item/stack/sheet/mineral/plastic,
/obj/item/stack/sheet/mineral/plastic,
/obj/item/stack/sheet/mineral/plastic,
-/obj/effect/landmark/objective_landmark/close,
/turf/open/floor/plating/prison,
/area/fiorina/maintenance)
"sma" = (
@@ -29540,6 +30188,10 @@
},
/turf/open/floor/plating/prison,
/area/fiorina/lz/near_lzI)
+"smz" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/prison,
+/area/fiorina/station/central_ring)
"smX" = (
/obj/item/stock_parts/matter_bin/super,
/turf/open/floor/prison{
@@ -29772,6 +30424,10 @@
/obj/structure/machinery/computer/telecomms/monitor,
/turf/open/floor/plating/prison,
/area/fiorina/station/medbay)
+"svo" = (
+/obj/structure/grille,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"svF" = (
/obj/structure/blocker/invisible_wall,
/turf/open/floor/prison{
@@ -29982,6 +30638,12 @@
},
/turf/open/floor/plating/prison,
/area/fiorina/oob)
+"sDV" = (
+/turf/open/floor/prison{
+ dir = 5;
+ icon_state = "yellow"
+ },
+/area/fiorina/station/central_ring)
"sEi" = (
/turf/open/floor/prison{
dir = 8;
@@ -30179,6 +30841,12 @@
icon_state = "yellow"
},
/area/fiorina/station/disco)
+"sLl" = (
+/turf/open/floor/prison{
+ dir = 1;
+ icon_state = "darkpurple2"
+ },
+/area/fiorina/station/central_ring)
"sLo" = (
/obj/structure/machinery/landinglight/ds1/delaythree{
dir = 1
@@ -30199,15 +30867,18 @@
/turf/closed/wall/r_wall/prison,
/area/fiorina/tumor/civres)
"sLT" = (
-/obj/item/tool/weldingtool/largetank,
+/obj/item/tool/weldingtool,
/turf/open/floor/prison{
icon_state = "floor_plate"
},
/area/fiorina/station/civres_blue)
"sMj" = (
+/obj/structure/barricade/metal/wired{
+ dir = 8
+ },
/obj/structure/largecrate/random/secure,
/turf/open/floor/plating/prison,
-/area/fiorina/station/disco)
+/area/fiorina/station/central_ring)
"sMo" = (
/obj/item/clothing/under/marine/ua_riot,
/obj/item/weapon/gun/rifle/m16,
@@ -30464,14 +31135,6 @@
},
/turf/open/space,
/area/fiorina/oob)
-"sVw" = (
-/obj/structure/barricade/handrail/type_b{
- dir = 4;
- layer = 3.5
- },
-/obj/item/storage/bag/plasticbag,
-/turf/open/floor/prison,
-/area/fiorina/station/disco)
"sVy" = (
/obj/structure/barricade/handrail/type_b{
dir = 4;
@@ -30526,11 +31189,17 @@
},
/area/fiorina/station/medbay)
"sWF" = (
+/obj/structure/stairs/perspective{
+ dir = 8;
+ icon_state = "p_stair_sn_full_cap"
+ },
+/obj/structure/platform{
+ dir = 4
+ },
/turf/open/floor/prison{
- dir = 10;
- icon_state = "damaged2"
+ icon_state = "floor_plate"
},
-/area/fiorina/station/disco)
+/area/fiorina/station/central_ring)
"sXi" = (
/turf/open/floor/corsat{
icon_state = "plate"
@@ -30542,17 +31211,16 @@
icon_state = "floor_plate"
},
/area/fiorina/station/chapel)
+"sYe" = (
+/turf/open/floor/prison{
+ dir = 9;
+ icon_state = "yellow"
+ },
+/area/fiorina/station/central_ring)
"sYn" = (
/obj/structure/machinery/light/double/blue,
/turf/open/floor/wood,
/area/fiorina/station/security/wardens)
-"sYv" = (
-/obj/structure/platform_decoration/kutjevo{
- dir = 4
- },
-/obj/structure/lattice,
-/turf/open/space,
-/area/fiorina/oob)
"sYM" = (
/obj/effect/decal/cleanable/blood,
/turf/open/floor/prison{
@@ -30637,8 +31305,8 @@
"tcl" = (
/obj/structure/largecrate/random/mini/med,
/turf/open/floor/prison{
- dir = 5;
- icon_state = "whitegreen"
+ dir = 10;
+ icon_state = "whitegreenfull"
},
/area/fiorina/station/medbay)
"tcJ" = (
@@ -30803,6 +31471,14 @@
icon_state = "floor_plate"
},
/area/fiorina/station/park)
+"tjM" = (
+/obj/structure/platform_decoration{
+ dir = 4
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/lowsec)
"tjQ" = (
/obj/effect/spawner/random/tool,
/turf/open/floor/prison{
@@ -30991,7 +31667,7 @@
},
/obj/structure/largecrate/random/case/double,
/turf/open/floor/plating/prison,
-/area/fiorina/station/disco)
+/area/fiorina/station/central_ring)
"tov" = (
/obj/effect/spawner/random/gun/smg/midchance,
/turf/open/floor/prison{
@@ -31056,6 +31732,12 @@
/obj/effect/landmark/monkey_spawn,
/turf/open/floor/plating/prison,
/area/fiorina/station/civres_blue)
+"tqa" = (
+/obj/structure/platform_decoration/kutjevo{
+ dir = 4
+ },
+/turf/open/space/basic,
+/area/fiorina/oob)
"tqM" = (
/obj/structure/filingcabinet,
/turf/open/floor/prison{
@@ -31121,6 +31803,14 @@
/obj/structure/barricade/wooden,
/turf/open/floor/plating/prison,
/area/fiorina/station/chapel)
+"tsf" = (
+/obj/structure/machinery/light/double/blue{
+ dir = 4;
+ pixel_x = 10;
+ pixel_y = -3
+ },
+/turf/open/floor/prison,
+/area/fiorina/station/central_ring)
"tsi" = (
/obj/structure/barricade/metal/wired,
/turf/open/floor/prison{
@@ -31234,12 +31924,11 @@
},
/area/fiorina/station/power_ring)
"tvI" = (
-/obj/structure/platform/kutjevo/smooth{
- dir = 8
+/turf/open/organic/grass{
+ desc = "It'll get in your shoes no matter what you do.";
+ name = "astroturf"
},
-/obj/structure/lattice,
-/turf/open/space,
-/area/fiorina/oob)
+/area/fiorina/station/central_ring)
"tvM" = (
/obj/structure/platform{
dir = 1
@@ -31349,12 +32038,18 @@
/turf/open/floor/plating/prison,
/area/fiorina/station/research_cells)
"tzF" = (
-/obj/item/storage/pill_bottle/tramadol/skillless,
+/obj/structure/stairs/perspective{
+ dir = 8;
+ icon_state = "p_stair_sn_full_cap"
+ },
+/obj/structure/platform{
+ dir = 4
+ },
/turf/open/floor/prison{
dir = 10;
- icon_state = "sterile_white"
+ icon_state = "whitegreenfull"
},
-/area/fiorina/station/medbay)
+/area/fiorina/station/central_ring)
"tAb" = (
/obj/structure/surface/rack,
/obj/item/storage/backpack/general_belt{
@@ -31678,6 +32373,13 @@
icon_state = "green"
},
/area/fiorina/station/chapel)
+"tJn" = (
+/obj/item/tool/wirecutters,
+/obj/structure/platform/shiva{
+ dir = 1
+ },
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"tJM" = (
/obj/item/prop/helmetgarb/riot_shield,
/turf/open/floor/prison{
@@ -31691,6 +32393,12 @@
/obj/structure/surface/table/reinforced/prison,
/turf/open/floor/plating/prison,
/area/fiorina/station/power_ring)
+"tJT" = (
+/turf/open/floor/prison{
+ dir = 10;
+ icon_state = "yellow"
+ },
+/area/fiorina/station/central_ring)
"tJU" = (
/obj/structure/machinery/vending/coffee,
/obj/structure/machinery/light/double/blue{
@@ -32390,6 +33098,12 @@
/obj/item/prop/almayer/flight_recorder,
/turf/open/floor/prison,
/area/fiorina/lz/near_lzI)
+"ued" = (
+/obj/structure/sign/prop3{
+ desc = "Enlist in the Penal Battalions today! The USCM 3rd Fleet features a subset of UA sanctioned penal battalions, drawing from inmate popualtions across the colonies. Mostly New Argentina though."
+ },
+/turf/closed/wall/prison,
+/area/fiorina/station/central_ring)
"uef" = (
/obj/effect/landmark/structure_spawner/xvx_hive/xeno_core,
/turf/open/floor/prison{
@@ -32886,6 +33600,10 @@
icon_state = "whitegreenfull"
},
/area/fiorina/station/medbay)
+"uvM" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"uwg" = (
/obj/effect/spawner/random/tool,
/turf/open/floor/prison{
@@ -32911,6 +33629,11 @@
/obj/item/stack/sheet/mineral/plastic,
/turf/open/floor/prison,
/area/fiorina/tumor/servers)
+"uwY" = (
+/obj/structure/lattice,
+/obj/structure/platform/kutjevo/smooth,
+/turf/open/space,
+/area/fiorina/oob)
"uxa" = (
/obj/effect/decal/cleanable/blood/splatter,
/turf/open/floor/prison{
@@ -32969,6 +33692,10 @@
/obj/item/stack/sheet/metal,
/turf/open/floor/prison,
/area/fiorina/station/lowsec)
+"uym" = (
+/obj/structure/machinery/door/airlock/prison_hatch/autoname,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/disco)
"uyq" = (
/obj/structure/reagent_dispensers/water_cooler,
/turf/open/floor/prison{
@@ -33008,7 +33735,7 @@
},
/obj/structure/largecrate/random/secure,
/turf/open/floor/plating/prison,
-/area/fiorina/station/disco)
+/area/fiorina/station/central_ring)
"uzX" = (
/obj/structure/barricade/wooden{
dir = 8
@@ -33019,6 +33746,13 @@
icon_state = "sterile_white"
},
/area/fiorina/station/research_cells)
+"uAd" = (
+/obj/item/clothing/gloves/boxing/green,
+/turf/open/floor/prison{
+ dir = 6;
+ icon_state = "yellow"
+ },
+/area/fiorina/station/central_ring)
"uAi" = (
/obj/structure/sink{
dir = 4;
@@ -33106,11 +33840,10 @@
},
/area/fiorina/station/medbay)
"uCD" = (
-/obj/effect/landmark/nightmare{
- insert_tag = "medicalhold"
+/turf/open/floor/prison{
+ icon_state = "cell_stripe"
},
-/turf/closed/wall/prison,
-/area/fiorina/station/medbay)
+/area/fiorina/station/research_cells)
"uCW" = (
/obj/item/reagent_container/glass/bucket/janibucket,
/turf/open/floor/prison{
@@ -33258,6 +33991,16 @@
icon_state = "floor_plate"
},
/area/fiorina/tumor/civres)
+"uIA" = (
+/obj/structure/stairs/perspective{
+ icon_state = "p_stair_sn_full_cap"
+ },
+/obj/structure/machinery/light/double/blue{
+ dir = 8;
+ pixel_x = -10
+ },
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"uIG" = (
/obj/structure/prop/structure_lattice{
dir = 4
@@ -33463,6 +34206,12 @@
icon_state = "floor_plate"
},
/area/fiorina/station/disco)
+"uRu" = (
+/turf/open/floor/prison{
+ dir = 4;
+ icon_state = "yellow"
+ },
+/area/fiorina/station/central_ring)
"uRK" = (
/obj/structure/platform{
dir = 8
@@ -33482,6 +34231,13 @@
icon_state = "blue_plate"
},
/area/fiorina/station/botany)
+"uRY" = (
+/obj/item/ammo_magazine/rifle/mar40,
+/turf/open/floor/prison{
+ dir = 8;
+ icon_state = "yellow"
+ },
+/area/fiorina/station/lowsec)
"uSb" = (
/obj/structure/barricade/wooden{
dir = 4;
@@ -33491,7 +34247,7 @@
dir = 10;
icon_state = "damaged1"
},
-/area/fiorina/station/disco)
+/area/fiorina/station/central_ring)
"uSo" = (
/obj/item/poster,
/turf/open/floor/prison{
@@ -33607,6 +34363,14 @@
icon_state = "darkbrown2"
},
/area/fiorina/tumor/aux_engi)
+"uWs" = (
+/obj/structure/platform/kutjevo/smooth{
+ dir = 4
+ },
+/obj/structure/platform/kutjevo/smooth,
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/fiorina/oob)
"uWQ" = (
/obj/structure/platform{
dir = 8
@@ -33708,16 +34472,6 @@
},
/turf/open/floor/plating/prison,
/area/fiorina/station/park)
-"uYD" = (
-/obj/structure/bed{
- icon_state = "abed"
- },
-/obj/effect/landmark/objective_landmark/close,
-/turf/open/floor/prison{
- dir = 10;
- icon_state = "whitepurple"
- },
-/area/fiorina/station/research_cells)
"uYR" = (
/obj/structure/machinery/light/double/blue{
dir = 1;
@@ -33797,14 +34551,15 @@
},
/area/fiorina/station/lowsec)
"vbe" = (
-/obj/structure/machinery/m56d_hmg/mg_turret/dropship{
- dir = 1
+/obj/structure/stairs/perspective{
+ dir = 1;
+ icon_state = "p_stair_full"
},
/turf/open/floor/prison{
dir = 8;
icon_state = "whitegreen"
},
-/area/fiorina/station/medbay)
+/area/fiorina/station/central_ring)
"vbl" = (
/obj/structure/closet/bombcloset,
/obj/effect/landmark/objective_landmark/medium,
@@ -34015,6 +34770,10 @@
},
/turf/open/floor/prison,
/area/fiorina/station/telecomm/lz1_tram)
+"vgP" = (
+/obj/structure/largecrate/random,
+/turf/open/floor/prison,
+/area/fiorina/station/central_ring)
"vgS" = (
/obj/item/stack/sheet/metal,
/turf/open/floor/prison{
@@ -34281,6 +35040,9 @@
},
/area/fiorina/tumor/ice_lab)
"vqi" = (
+/obj/structure/platform{
+ dir = 1
+ },
/obj/structure/machinery/light/double/blue{
dir = 1;
pixel_y = 21
@@ -34461,20 +35223,11 @@
},
/area/fiorina/station/civres_blue)
"vuc" = (
-/obj/structure/platform/kutjevo/smooth{
- dir = 1
- },
-/obj/structure/platform/kutjevo/smooth{
- dir = 8
- },
-/obj/structure/barricade/handrail{
- dir = 1;
- icon_state = "hr_kutjevo";
- name = "solar lattice"
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_22"
},
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/fiorina/oob)
+/turf/open/floor/plating/plating_catwalk/prison,
+/area/fiorina/station/central_ring)
"vuE" = (
/obj/effect/decal/cleanable/blood/oil,
/obj/structure/machinery/landinglight/ds2/delayone,
@@ -34730,6 +35483,17 @@
},
/turf/open/floor/prison,
/area/fiorina/station/power_ring)
+"vCT" = (
+/obj/structure/machinery/light/double/blue{
+ dir = 8;
+ pixel_x = -10;
+ pixel_y = -3
+ },
+/turf/open/floor/prison{
+ dir = 10;
+ icon_state = "whitepurple"
+ },
+/area/fiorina/station/research_cells)
"vDc" = (
/obj/structure/bed/sofa/south/grey/left,
/obj/item/reagent_container/food/snacks/sandwich{
@@ -34858,8 +35622,9 @@
/obj/structure/barricade/metal/wired{
dir = 4
},
+/obj/structure/largecrate/random,
/turf/open/floor/plating/prison,
-/area/fiorina/station/disco)
+/area/fiorina/station/central_ring)
"vGO" = (
/obj/structure/platform{
dir = 4
@@ -35021,6 +35786,12 @@
icon_state = "floor_plate"
},
/area/fiorina/station/power_ring)
+"vMX" = (
+/turf/open/floor/prison{
+ dir = 1;
+ icon_state = "cell_stripe"
+ },
+/area/fiorina/station/central_ring)
"vNq" = (
/turf/closed/wall/r_wall/prison,
/area/fiorina/station/telecomm/lz1_cargo)
@@ -35116,12 +35887,10 @@
/turf/open/floor/prison,
/area/fiorina/lz/near_lzII)
"vPM" = (
-/obj/structure/platform_decoration/kutjevo{
- dir = 8
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
},
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/fiorina/oob)
+/area/fiorina/station/central_ring)
"vPR" = (
/turf/closed/shuttle/ert{
icon_state = "stan1"
@@ -35256,6 +36025,10 @@
icon_state = "greenfull"
},
/area/fiorina/station/transit_hub)
+"vVR" = (
+/obj/structure/extinguisher_cabinet,
+/turf/closed/wall/prison,
+/area/fiorina/station/central_ring)
"vWe" = (
/obj/structure/extinguisher_cabinet,
/turf/closed/wall/prison,
@@ -35267,6 +36040,14 @@
icon_state = "cell_stripe"
},
/area/fiorina/station/power_ring)
+"vWE" = (
+/obj/structure/platform_decoration{
+ dir = 8
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/central_ring)
"vWI" = (
/obj/structure/flora/pottedplant{
icon_state = "pottedplant_22"
@@ -35320,6 +36101,15 @@
icon_state = "yellow"
},
/area/fiorina/station/disco)
+"vYE" = (
+/obj/structure/flora/bush/ausbushes/grassybush{
+ icon_state = "lavendergrass_1"
+ },
+/turf/open/organic/grass{
+ desc = "It'll get in your shoes no matter what you do.";
+ name = "astroturf"
+ },
+/area/fiorina/station/central_ring)
"vYL" = (
/obj/effect/decal/cleanable/blood,
/turf/open/floor/prison{
@@ -35367,6 +36157,12 @@
icon_state = "blue"
},
/area/fiorina/station/power_ring)
+"vZz" = (
+/obj/item/device/flashlight/lamp/tripod,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/central_ring)
"vZD" = (
/obj/item/storage/box/donkpockets,
/turf/open/floor/plating/prison,
@@ -35442,10 +36238,17 @@
/area/fiorina/tumor/fiberbush)
"wby" = (
/obj/structure/platform/kutjevo/smooth,
+/obj/structure/platform/kutjevo/smooth{
+ dir = 1
+ },
+/obj/structure/barricade/handrail{
+ dir = 1;
+ icon_state = "hr_kutjevo";
+ name = "solar lattice"
+ },
/obj/structure/platform/kutjevo/smooth{
dir = 8
},
-/obj/structure/lattice,
/turf/open/space,
/area/fiorina/oob)
"wbB" = (
@@ -35707,6 +36510,12 @@
"wkD" = (
/obj/structure/largecrate/random/case/double,
/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
+"wkZ" = (
+/turf/open/floor/prison{
+ dir = 8;
+ icon_state = "cell_stripe"
+ },
/area/fiorina/station/disco)
"wlp" = (
/obj/item/reagent_container/food/snacks/donkpocket,
@@ -35777,17 +36586,11 @@
},
/area/fiorina/station/lowsec)
"wnB" = (
-/obj/structure/platform/kutjevo/smooth{
- dir = 1
- },
-/obj/structure/barricade/handrail{
- dir = 1;
- icon_state = "hr_kutjevo";
- name = "solar lattice"
+/turf/open/floor/prison{
+ dir = 9;
+ icon_state = "darkpurple2"
},
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/fiorina/oob)
+/area/fiorina/station/central_ring)
"wnW" = (
/obj/structure/toilet{
pixel_y = 4
@@ -35949,13 +36752,18 @@
},
/area/fiorina/station/botany)
"wuT" = (
-/obj/structure/lattice,
-/obj/structure/platform/kutjevo/smooth,
-/obj/structure/platform/kutjevo/smooth{
- dir = 4
+/obj/structure/platform_decoration{
+ dir = 1
},
-/turf/open/space/basic,
-/area/fiorina/oob)
+/obj/structure/machinery/light/double/blue{
+ dir = 8;
+ pixel_x = -10;
+ pixel_y = 13
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/central_ring)
"wvf" = (
/obj/structure/surface/table/reinforced/prison,
/obj/structure/flora/pottedplant{
@@ -35966,6 +36774,21 @@
},
/turf/open/floor/prison,
/area/fiorina/station/security)
+"wvu" = (
+/obj/structure/platform/kutjevo/smooth{
+ dir = 4
+ },
+/obj/structure/platform/kutjevo/smooth{
+ dir = 1
+ },
+/obj/structure/barricade/handrail{
+ dir = 1;
+ icon_state = "hr_kutjevo";
+ name = "solar lattice"
+ },
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/fiorina/oob)
"wvH" = (
/obj/effect/landmark/objective_landmark/medium,
/turf/open/floor/prison/chapel_carpet{
@@ -36143,6 +36966,10 @@
},
/turf/open/floor/prison,
/area/fiorina/station/disco)
+"wAM" = (
+/obj/structure/tunnel/maint_tunnel,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/civres_blue)
"wAR" = (
/obj/structure/filingcabinet,
/obj/structure/filingcabinet{
@@ -36293,6 +37120,17 @@
/obj/structure/window/framed/prison/reinforced/hull,
/turf/open/floor/plating/prison,
/area/fiorina/station/civres_blue)
+"wGa" = (
+/obj/structure/window/reinforced{
+ dir = 1;
+ layer = 3
+ },
+/obj/structure/largecrate/random/mini/med{
+ pixel_x = -6;
+ pixel_y = -3
+ },
+/turf/open/floor/prison,
+/area/fiorina/station/central_ring)
"wGe" = (
/obj/structure/barricade/metal/wired{
dir = 8
@@ -36431,6 +37269,14 @@
icon_state = "whitegreen"
},
/area/fiorina/station/medbay)
+"wJX" = (
+/obj/structure/platform/kutjevo/smooth,
+/obj/structure/platform/kutjevo/smooth{
+ dir = 8
+ },
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/fiorina/oob)
"wKb" = (
/obj/effect/spawner/random/gun/rifle/midchance,
/turf/open/floor/wood,
@@ -36789,6 +37635,12 @@
icon_state = "green"
},
/area/fiorina/tumor/aux_engi)
+"wUN" = (
+/obj/item/reagent_container/food/drinks/cans/sodawater,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/central_ring)
"wVu" = (
/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door,
/turf/open/floor/prison{
@@ -36829,6 +37681,14 @@
"wWs" = (
/turf/open/floor/greengrid,
/area/fiorina/station/security)
+"wWF" = (
+/obj/item/frame/rack,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/disco)
+"wWT" = (
+/obj/effect/decal/cleanable/blood/gibs/xeno,
+/turf/open/floor/plating/plating_catwalk/prison,
+/area/fiorina/station/central_ring)
"wWW" = (
/obj/structure/platform/kutjevo/smooth{
dir = 8
@@ -37121,6 +37981,13 @@
icon_state = "greenfull"
},
/area/fiorina/station/transit_hub)
+"xii" = (
+/obj/structure/tunnel,
+/turf/open/organic/grass{
+ desc = "It'll get in your shoes no matter what you do.";
+ name = "astroturf"
+ },
+/area/fiorina/tumor/fiberbush)
"xiF" = (
/obj/structure/largecrate/random/case/double,
/obj/structure/machinery/light/double/blue{
@@ -37187,7 +38054,7 @@
dir = 1;
icon_state = "cell_stripe"
},
-/area/fiorina/station/disco)
+/area/fiorina/station/central_ring)
"xkG" = (
/obj/structure/machinery/light/double/blue{
dir = 4;
@@ -37419,6 +38286,14 @@
icon_state = "darkbrownfull2"
},
/area/fiorina/tumor/aux_engi)
+"xqh" = (
+/obj/item/ammo_casing{
+ icon_state = "cartridge_2"
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/central_ring)
"xqj" = (
/obj/structure/bed{
icon_state = "abed"
@@ -37646,7 +38521,7 @@
/turf/closed/wall/mineral/bone_resin,
/area/fiorina/tumor/fiberbush)
"xwD" = (
-/obj/item/tool/weldingtool/largetank,
+/obj/item/tool/weldingtool,
/turf/open/floor/prison,
/area/fiorina/station/civres_blue)
"xxd" = (
@@ -37695,6 +38570,21 @@
},
/turf/open/floor/prison,
/area/fiorina/station/telecomm/lz1_cargo)
+"xyy" = (
+/obj/structure/platform/kutjevo/smooth{
+ dir = 1
+ },
+/obj/structure/barricade/handrail{
+ dir = 1;
+ icon_state = "hr_kutjevo";
+ name = "solar lattice"
+ },
+/obj/structure/platform/kutjevo/smooth{
+ dir = 4
+ },
+/obj/structure/platform/kutjevo/smooth,
+/turf/open/space,
+/area/fiorina/oob)
"xyK" = (
/obj/structure/stairs/perspective{
dir = 1;
@@ -38260,14 +39150,19 @@
icon_state = "whitegreenfull"
},
/area/fiorina/tumor/ice_lab)
-"xQC" = (
-/obj/structure/platform/kutjevo/smooth,
-/obj/structure/platform/kutjevo/smooth{
- dir = 8
+"xQs" = (
+/obj/item/reagent_container/food/drinks/coffee{
+ name = "\improper paper cup"
},
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/fiorina/oob)
+/turf/open/floor/prison{
+ dir = 5;
+ icon_state = "yellow"
+ },
+/area/fiorina/station/central_ring)
+"xQC" = (
+/obj/structure/window/framed/prison/reinforced/hull,
+/turf/open/floor/plating/prison,
+/area/fiorina/station/central_ring)
"xQE" = (
/obj/structure/closet/bodybag,
/obj/effect/decal/cleanable/blood/gibs/up,
@@ -38467,6 +39362,13 @@
icon_state = "floor_plate"
},
/area/fiorina/station/civres_blue)
+"xXw" = (
+/obj/item/device/flashlight/lamp/tripod,
+/turf/open/organic/grass{
+ desc = "It'll get in your shoes no matter what you do.";
+ name = "astroturf"
+ },
+/area/fiorina/station/central_ring)
"xYg" = (
/obj/docking_port/stationary/marine_dropship/lz2,
/turf/open/floor/plating/prison,
@@ -38590,6 +39492,14 @@
/obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest,
/turf/open/floor/plating/prison,
/area/fiorina/tumor/fiberbush)
+"ybs" = (
+/obj/structure/platform_decoration{
+ dir = 4
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/fiorina/station/central_ring)
"ybR" = (
/obj/item/stack/sheet/metal{
amount = 5
@@ -43500,7 +44410,7 @@ lHx
jlk
jlk
sAv
-pYW
+sJT
sAv
jlk
baC
@@ -44934,7 +45844,7 @@ qPb
qPb
qPb
qPb
-qPb
+xii
kbT
qPb
qPb
@@ -47107,7 +48017,7 @@ knh
hjP
pWO
tuk
-rGq
+olB
jlk
baC
baC
@@ -49166,7 +50076,7 @@ lhQ
tzj
lvs
lhQ
-qty
+aUM
lsl
xFx
apw
@@ -49377,10 +50287,10 @@ rMg
hDx
lhQ
oVC
+dKN
hDx
-hDx
-hDx
-apw
+jUy
+hDq
apw
apw
amF
@@ -49592,7 +50502,7 @@ qty
hDx
whu
hDx
-apw
+qWO
mZo
apw
amF
@@ -50015,7 +50925,7 @@ qty
muB
nsg
nsg
-nsg
+iKf
apw
hDx
taX
@@ -50582,7 +51492,7 @@ njx
njx
njx
njx
-lwK
+hwE
jXz
pPG
jXz
@@ -58227,7 +59137,7 @@ fGb
qdJ
apf
ybg
-kOB
+hIR
gyB
kOB
kOB
@@ -59954,7 +60864,7 @@ rja
apf
esS
apf
-apf
+wAM
rja
obT
gma
@@ -60024,7 +60934,7 @@ kul
kul
kul
kul
-wOR
+idO
gEx
bQM
bQM
@@ -66526,7 +67436,7 @@ djA
hVI
ivR
ovJ
-aif
+dvY
kqz
cwO
hVI
@@ -66537,17 +67447,17 @@ lbu
mEO
gbS
aFZ
-dhi
-lDC
+brI
+gAk
qOk
-mKS
-mhv
-cAW
-hVS
-lDC
+cZc
+lml
+hGP
+olQ
qOk
-mKS
-mhv
+kvm
+oTG
+bQM
tPN
ecL
cME
@@ -66733,12 +67643,12 @@ cwO
nQq
hVI
hVI
-lGA
hVI
hVI
hVI
hVI
-nQq
+hVI
+gUH
mJy
tkk
vWe
@@ -66749,17 +67659,17 @@ lyJ
ndh
kwT
tQB
-daD
+azy
afk
afk
afk
chA
-qFE
-dvY
+uWs
afk
afk
afk
-dkg
+wvu
+fQV
tPN
ecL
cME
@@ -66948,7 +67858,7 @@ fPZ
fPZ
fPZ
hVI
-kSP
+adH
qSg
hVI
mJy
@@ -66966,19 +67876,19 @@ afk
hkh
afk
tCZ
-pcu
urJ
afk
hkh
afk
tCZ
+pcu
tPN
slM
cME
cME
tIU
gZc
-ick
+tIU
cME
liA
cME
@@ -67157,12 +68067,12 @@ cwO
hVI
djA
vDj
-qgh
+fPZ
fPZ
hVI
ivR
ovJ
-aif
+dvY
kqz
cwO
fPZ
@@ -67170,20 +68080,20 @@ fPZ
sJu
rjE
dQp
-cnF
+idE
fUX
tQB
-mdJ
+iKT
afk
afk
afk
cjA
cpW
-cYa
afk
afk
afk
-dMU
+rac
+jlH
twb
twb
twb
@@ -67195,7 +68105,7 @@ bgy
eLu
cME
cME
-gyW
+cME
liA
cFy
mcc
@@ -67369,8 +68279,8 @@ uGq
hVI
tEH
tEH
-hVI
-jjs
+ajp
+aoa
hVI
tEH
tEH
@@ -67385,19 +68295,19 @@ hVI
anG
wyl
aFZ
-ggQ
-eJQ
-eJQ
-tvI
-sYv
+aQB
+wJX
+llQ
+djU
+tqa
+keo
+mxG
+llQ
+lOB
+tqa
+bQM
bQM
-ggQ
-eJQ
-eJQ
-tvI
-sYv
kPz
-eHa
twb
aLT
cME
@@ -67591,25 +68501,25 @@ avX
cwO
fPZ
cqH
+hVI
+hVI
+hVI
+bZC
+hVI
aFZ
-aFZ
-aFZ
-aFZ
-aFZ
-aFZ
-cAW
-cAW
-bQM
-bQM
-bQM
-bQM
-cAW
-cAW
-cAW
-cAW
-cAW
+xQC
+xQC
+eDn
+eDn
+eDn
+eDn
+eDn
+eDn
+xQC
+xQC
+eDn
+kPz
kPz
-bTo
twb
twb
twb
@@ -67741,7 +68651,7 @@ phz
phz
phz
phz
-ruy
+mYx
azZ
tOr
ezJ
@@ -67803,28 +68713,28 @@ jEb
tur
fPZ
goA
-aFZ
-dhi
+hVI
+lDC
+lDC
+ldZ
lDC
-qOk
-mKS
mhv
+mGe
+dGw
+vPM
+haa
+mGe
+mGe
+vPM
+rKO
+mGe
+mGe
+eDn
+eDn
+cAW
bQM
bQM
bQM
-bQM
-bQM
-bQM
-cAW
-cAW
-cAW
-cAW
-cAW
-hVS
-lDC
-qOk
-mKS
-mhv
twb
ivB
uzw
@@ -68006,37 +68916,37 @@ hVI
hVI
hVI
hVI
-jjs
+aoa
hVI
hVI
-jjs
+aoa
hVI
vWe
ruB
ruB
dID
-aSS
-daD
-afk
-afk
-afk
-bAB
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
+vWe
+mFv
+gXD
+gTw
+dGw
+vPM
+vPM
+vPM
+vPM
+vPM
+vPM
+vPM
+vPM
+vPM
+vPM
+vPM
+dGw
eDn
-afk
-afk
-afk
-dkg
+oVk
+eDn
+bQM
+bQM
twb
nSU
cME
@@ -68227,28 +69137,28 @@ pQD
rME
fPZ
fPZ
-tQB
-urJ
-afk
-hkh
-afk
-bQp
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
+wGa
+dGw
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+vPM
+vPM
+vPM
+tvI
+tvI
+tvI
+tvI
+vPM
+vPM
+dGw
+eHa
eDn
-afk
-hkh
-afk
-tCZ
+bQM
twb
uts
cME
@@ -68429,41 +69339,41 @@ xIg
hVI
mMb
dLx
-gik
fPZ
fPZ
-aif
+fPZ
+dvY
ryN
gBo
qpw
fPZ
fPZ
fPZ
-tQB
-mdJ
-afk
-afk
-afk
-bAB
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-rAe
-afk
-afk
-afk
-dMU
+jEC
+dGw
+tvI
+fHy
+tvI
+tvI
+tvI
+tvI
+tvI
+vPM
+vPM
+vPM
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+vPM
+deH
+eDn
+eDn
twb
-dTf
-cME
+eLu
+eLu
eLu
srI
dTf
@@ -68641,42 +69551,42 @@ lUp
hVI
mei
oZz
-vWe
hVI
hVI
-uCD
+hVI
+hVI
hVI
hVI
hVI
fPZ
fPZ
-hBX
-tQB
+hNi
+lDC
ggQ
-eJQ
-eJQ
tvI
-sYv
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-ggQ
-eJQ
-eJQ
tvI
-sYv
-twb
-wQT
+tvI
+tvI
+eMO
+tvI
+tvI
+vPM
+vPM
+vPM
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+vPM
+dGw
+dhe
+liA
+gVR
dMa
-eLu
+gfo
cME
wQT
eLu
@@ -68853,45 +69763,45 @@ uXc
cQn
mhb
mhb
-cQn
+mhb
rAQ
bqy
hVI
kSp
pEe
-aoa
-aja
mFh
aja
-aFZ
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-twb
-twb
+fPZ
+uxi
+qwZ
+bWr
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+vPM
+mGe
+vPM
+jgN
+tvI
+acx
+tvI
+tvI
+eMO
+tvI
+vPM
+dGw
+lDC
twb
twb
tPN
+tPN
+tPN
twb
-twb
+eLu
kqC
pHu
mcc
@@ -69066,39 +69976,39 @@ tST
kqz
kqz
kqz
-cwO
+aGS
eli
hVI
myO
cwO
mJy
cwO
-mJy
-cwO
-tQB
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
+fPZ
+uxi
+kUR
+eMJ
+tvI
+vYE
+tvI
+tvI
+tvI
+tvI
+qbr
+vPM
+mGe
+vPM
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+vPM
+mGe
+xQC
+bQM
bQM
bQM
bQM
@@ -69277,8 +70187,8 @@ icj
kqz
kqz
sZr
-ffm
-cwO
+kqz
+aNw
hVI
hVI
mAz
@@ -69286,31 +70196,31 @@ tur
quk
rMS
tcl
-tur
-tQB
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
+seu
+hTc
+bWr
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+vPM
+dGw
+vPM
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+vPM
+mGe
+xQC
+bQM
bQM
bQM
bQM
@@ -69490,44 +70400,44 @@ vro
kqz
sWu
kqz
-tkk
-hVI
-hVI
-aFZ
-tQB
-tQB
-aFZ
-tQB
-tQB
-aFZ
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-wzE
-hZR
-hZR
-wzE
-wzE
+bxa
+lDC
+lDC
+lDC
+lDC
+lDC
+lDC
+lDC
+lDC
+lDC
+ggQ
+tvI
+kuT
+tvI
+tvI
+tvI
+oKQ
+tvI
+vPM
+mGe
+vPM
+tvI
+oKQ
+tvI
+tvI
+tvI
+ioG
+tvI
+tvI
+vPM
+deH
+eDn
+eDn
+xQC
+xQC
+xQC
+eDn
+eDn
vqi
pHu
mcc
@@ -69701,46 +70611,46 @@ pnc
bII
kqz
kqz
-hkW
+kqz
iJj
-fPZ
-aFZ
-aFZ
-bce
+cAv
+vPM
+fhz
+gTw
gTw
wuT
-qOk
-jfm
+qyX
vPM
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-wzE
-mcc
-mcc
-mcc
-sHH
-mcc
+vPM
+dGw
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+kuT
+vPM
+mGe
+xqh
+tvI
+tvI
+ioG
+tvI
+aJU
+tvI
+tvI
+tvI
+vPM
+vPM
+pkw
+ybs
+gTw
+gTw
+gTw
+vPM
+pkw
+tjM
cMg
mcc
vei
@@ -69916,42 +70826,42 @@ kqz
kqz
lcu
vbe
-aja
-tQB
-cAW
-ajx
-afk
-afk
-afk
+dGw
+fsn
+mGe
+mGe
+dGw
+rVy
+mGe
wnB
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-hZR
+wnB
+gVX
+vPM
+vPM
+vPM
+vPM
+vPM
+vPM
+vPM
+dGw
+vPM
+vPM
+vPM
+vPM
+vPM
+vPM
+vPM
+sYe
+tJT
+tJT
mGe
-gcy
-gcy
-sHH
+isl
+dGw
+mGe
+mGe
+mGe
+dGw
+isl
sHH
pHu
mcc
@@ -70125,45 +71035,45 @@ hVI
fcO
sZr
kqz
-ajp
+kqz
pIX
cYg
-cwO
-tQB
-cAW
-ajx
-afk
-hkh
-afk
-wnB
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-hZR
-mcc
-sHH
-sHH
-sHH
+dGw
+dGw
+dGw
+jqR
+dGw
+rVy
+mGe
+bCk
+sLl
+jNa
+vPM
+mGe
+mGe
+smz
+mGe
+mGe
+dGw
+muf
+dGw
+mGe
+wWT
+dGw
+mGe
+mGe
+vPM
+liT
+jXx
+jXx
+mGe
+isl
+dGw
+dGw
+dGw
+dGw
+dGw
+isl
sHH
pHu
mcc
@@ -70339,43 +71249,43 @@ kqz
kqz
kqz
aSw
-kqz
-cwO
-tQB
-cAW
-ajx
-afk
-afk
-afk
-wnB
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-hZR
-aCO
-bMl
-gcy
-sHH
+cYa
+dGw
+gfp
+hkW
+mGe
+dGw
+rVy
+mGe
+oOs
+oOs
+eKg
+vPM
+jZx
+vPM
+vPM
+vPM
+vPM
+jZx
+dGw
+vPM
+dHI
+vPM
+vPM
+vPM
+vPM
+vPM
+xQs
+ckj
+ckj
+mGe
+isl
+dGw
+mGe
+mGe
+mGe
+dGw
+isl
sHH
pHu
mcc
@@ -70549,46 +71459,46 @@ ueA
bII
kqz
kqz
-xzb
+kqz
kdo
tzF
-cwO
-tQB
-cAW
-ajx
-afk
-afk
-afk
-wnB
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-wzE
-mcc
+vPM
+guB
+ick
jZb
-mcc
-sHH
-mcc
+mDi
+sWF
+vPM
+vPM
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+vPM
+mGe
+vPM
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+vPM
+vPM
+dnA
+vWE
+jZb
+jZb
+jZb
+vPM
+dnA
+reD
pHu
mcc
vei
@@ -70763,43 +71673,43 @@ xzb
kqz
kqz
oFW
-jEb
-tur
-tQB
-cAW
-ajx
-afk
-hkh
-afk
-wnB
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-wzE
-hZR
-hZR
-wzE
-wzE
+eDn
+eHa
+xQC
+xQC
+xQC
+eDn
+eDn
+iCi
+vPM
+tvI
+rxu
+tvI
+tvI
+tvI
+tvI
+oKQ
+tvI
+vPM
+mGe
+vPM
+tvI
+oKQ
+tvI
+vYE
+tvI
+xXw
+hVS
+tvI
+vPM
+deH
+eDn
+eDn
+xQC
+xQC
+xQC
+eDn
+eDn
vqi
pHu
mcc
@@ -70975,42 +71885,42 @@ kqz
kqz
kqz
lwB
-aSS
aFZ
aFZ
-cAW
-ajx
-afk
-afk
-afk
-wnB
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-dhi
-fsn
+gyW
+bQM
+bQM
+bQM
+xQC
+mGe
+vPM
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+rxu
+vPM
+dGw
+vPM
+tvI
+tvI
+rxu
+tvI
+kuT
+tvI
+hVS
+tvI
+vPM
+mGe
+xQC
+cmz
+fyC
qOk
-gfp
-mhv
+mKS
+erT
wzE
wzE
pHu
@@ -71185,40 +72095,40 @@ jEb
aaf
eTd
jEb
-jEb
+kqz
lJv
aFZ
aFZ
-aFZ
-kPz
-aGS
-aNw
-llQ
+gyW
+bQM
+bQM
+bQM
+xQC
vuc
-aTN
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-ajx
+vPM
+tvI
+tvI
+tvI
+qfE
+dnI
+tvI
+tvI
+tvI
+vPM
+mGe
+vPM
+tvI
+rxu
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+vPM
+mGe
+xQC
+xyy
afk
afk
afk
@@ -71397,40 +72307,40 @@ tOp
jmG
sta
sta
-sta
jmG
jmG
jmG
jmG
jmG
-uwk
-uwk
jmG
jmG
jmG
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-ajx
+jmG
+cKa
+cKa
+cNC
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+vYE
+vPM
+mGe
+vPM
+vPM
+vPM
+vPM
+hrg
+hrg
+hrg
+vPM
+vPM
+rWB
+eDn
+eDn
+urJ
afk
hkh
afk
@@ -71617,32 +72527,32 @@ rsE
cKa
imL
ggB
-ggB
+uCD
mEv
-uwk
-cAW
-cAW
-cAW
-cAW
+jYs
+vMX
+tvI
+tvI
+tvI
hVS
-vBP
-vBP
-vBP
-vBP
-vBP
-vBP
-vBP
-vBP
-vBP
-vBP
+tvI
+tvI
+tvI
vPM
-cAW
-cAW
-cAW
-cAW
-cAW
-bQM
-ajx
+vZz
+vPM
+ioG
+tvI
+rcG
+nzp
+jdX
+tJT
+ePm
+vPM
+rWB
+eDn
+jKI
+mdJ
afk
afk
afk
@@ -71829,39 +72739,39 @@ mYp
cKa
qZW
ggB
-ggB
+uCD
biJ
-uwk
-cAW
-cAW
-cAW
-cAW
-rAe
-afk
-afk
-afk
-hkh
-afk
-afk
-hkh
-afk
-afk
-afk
-eZq
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-fdV
+jYs
+vMX
+iuw
+tvI
+tvI
+tvI
+tvI
+tvI
+tvI
+sYe
+aee
+tJT
+tvI
+tvI
+rcG
+aIX
+vPM
+aIX
+ePm
+dGw
+vVR
+eDn
+eDn
+eDn
wby
llQ
-eZA
-sYv
-kPz
+jKI
+bUB
+bQM
wzE
-pHu
+ulJ
mcc
vei
kqC
@@ -72041,33 +72951,33 @@ tOp
cKa
rfJ
ggB
-ggB
+uCD
iwK
-uwk
-cAW
-cAW
-cAW
-cAW
-rAe
-afk
-afk
-afk
-pcu
-afk
-afk
-pcu
-afk
-afk
-afk
-eZq
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-ajx
+cKa
+gde
+dGw
+vPM
+vPM
+tvI
+tvI
+tvI
+tvI
+sDV
+uRu
+ckj
+tvI
+kuT
+rcG
+sDV
+aIX
+uAd
+ePm
+deH
+ued
+uvM
+cnl
+eDn
+xQC
wzE
wzE
wzE
@@ -72256,35 +73166,35 @@ kNz
vJD
vJD
jmG
-cAW
-cAW
-bQM
-bQM
-rAe
-afk
-afk
-afk
-hkh
-afk
-afk
-hkh
-afk
-afk
-afk
-eZq
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-ajx
-hZR
+eHa
+eDn
+dGw
+dGw
+vPM
+vPM
+vPM
+aLC
+sDV
+uRu
+ckj
+vPM
+vZz
+vPM
+mIq
+mIq
+mIq
+vPM
+dhe
+msS
+vMX
+mGe
+uIA
+mGe
+oFI
gEW
mcc
fLR
-usz
+kqC
pHu
mcc
vei
@@ -72457,7 +73367,7 @@ kNz
aau
xMR
roY
-gUH
+iZV
vJD
jvE
vII
@@ -72468,33 +73378,33 @@ dyM
vJD
vJD
jmG
-cAW
-cAW
-cAW
-cAW
-ggQ
-jlH
-jlH
-tWI
-llQ
-jKI
-tWI
-llQ
-jKI
-jlH
-jlH
-sYv
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-cAW
-bTo
-hZR
+bQM
+eDn
+xQC
+eDn
+mGe
+mGe
+isL
+wUN
+mGe
+mGe
+mGe
+kiq
+tsf
+lWh
+vPM
+kiq
+vPM
+vPM
+dhe
+msS
+vMX
+mGe
+iTe
+mGe
+oFI
gEW
-ggu
+mcc
mcc
usz
pHu
@@ -72680,30 +73590,30 @@ cKa
aaK
kNz
jmG
-bQM
-bQM
-cAW
-cAW
-bce
-cAW
-ecM
-ecM
-mlC
-mlC
-mlC
-ecM
-ecM
-cAW
-cAW
-bce
-cAW
-bce
-hVS
-vBP
-byl
-byl
-mhv
-rAe
+kPz
+uwY
+pcu
+eDn
+xQC
+xQC
+eDn
+eON
+cYv
+cYv
+cYv
+arY
+lDC
+irx
+aXK
+jZb
+dRW
+jZb
+cFN
+eDn
+eDn
+xQC
+xQC
+xQC
wzE
dYr
mcc
@@ -72884,38 +73794,38 @@ roY
iZV
cKa
aaK
-rVy
+soQ
cKa
cFE
-uYD
+soQ
cKa
xMR
iZV
uwk
-bxa
-byl
-vBP
-byl
-mhv
+swg
+fyC
+qOk
+sHO
+erT
kPz
-ecM
+eDn
rkB
rFr
-miU
+lBY
uSb
lzb
-ecM
-bQM
-bQM
-kPz
+lDC
+lDC
+ldZ
+ldZ
+lDC
+ldZ
+ldZ
+eDn
cAW
-kPz
-ajx
-afk
-afk
-afk
-ghg
-fsn
+bce
+bce
+bce
wzE
kqC
usz
@@ -73093,7 +74003,7 @@ tOp
cKa
fiu
gbi
-tHu
+iZV
cKa
ldm
usA
@@ -73110,27 +74020,27 @@ afk
afk
ghg
gef
-mlC
+xQC
wkD
sMj
-miU
-xKX
+gXi
+ecC
hgJ
-mlC
-bQM
+edd
+vgP
+irx
+htc
+svo
+irx
+irx
+xQC
+cAW
+bce
+cAW
cAW
-kPz
-bQM
-kPz
-bTo
-afk
-hkh
-afk
-tCZ
-pcu
wzE
msv
-dHp
+uRY
dHp
dHp
bop
@@ -73322,28 +74232,28 @@ hkh
afk
tCZ
pcu
-mlC
+xQC
rym
fBi
-xKX
+irx
rym
rym
-mlC
-kPz
-kPz
-kPz
-kPz
-kPz
-rAe
-afk
-afk
-afk
-fhz
-tvI
+edd
+vgP
+eON
+lWr
+svo
+eON
+lWr
+xQC
+bce
+bce
+cAW
+cAW
wzE
pHu
dui
-mcc
+cWN
dWM
mcc
mcc
@@ -73534,29 +74444,29 @@ afk
afk
xMW
ssJ
-mlC
+xQC
xkC
tom
vGv
uzO
dhe
-mlC
-bQM
-kPz
-cAW
+edd
+fje
+das
+jAt
+svo
+tJn
+jAt
+xQC
cAW
bce
-aKA
-xQC
-llQ
-eZA
-sYv
-kPz
+bce
+bce
wzE
lll
mcc
-vza
-mcc
+oPJ
+jfk
mcc
vza
mcc
@@ -73746,24 +74656,24 @@ llQ
eOF
bUB
kPz
+eDn
+vPM
+lBY
+oOv
+dGw
+rFH
+lDC
+izZ
+uym
+uym
+izZ
+uym
+uym
ecM
-cjF
-miU
-xKX
-gqe
-lzb
-ecM
-ecM
-mlC
-mlC
-mlC
-mlC
-ecM
-ecM
-pcu
-fcZ
-erT
-bQM
+cAW
+bce
+cAW
+cAW
wzE
scw
uFh
@@ -73958,24 +74868,24 @@ mlC
mlC
mlC
ecM
-ecM
-xKX
-xKX
-rWX
-xKX
+eDn
+eON
+cYv
+cYv
+cYv
+arY
+lDC
xKX
-ecM
-cjF
-cjF
-cjF
-cjF
-cjF
-cjF
+wkZ
+wkZ
+wWF
+wkZ
+wkZ
ecM
mlC
wzE
-iWq
-bQM
+wzE
+wzE
wzE
glW
vei
@@ -74157,40 +75067,40 @@ dkj
dkj
dkj
dkj
+fvY
dkj
dkj
dkj
dkj
dkj
-dkj
-kNz
-cKa
+vCT
+fYV
+fDI
fDI
-gqe
cjF
-qyX
cjF
-jqR
cjF
-qnu
-xKX
-sWF
+jMA
cjF
-mDi
-gqe
-gqe
-gqe
-gqe
-gqe
-gqe
-aFO
-cbH
-wzE
-hZR
-hZR
-wzE
-vei
-iUy
+cjF
+cjF
+cjF
+cjF
+gky
+cjF
+cjF
+cjF
+cjF
+cjF
+cjF
+gky
+cjF
+kqC
+usz
+usz
+usz
+usz
+usz
mcc
mcc
mcc
@@ -74377,8 +75287,8 @@ roY
gLG
iZV
fSq
-guB
-cAv
+cjF
+gqe
rAW
cjF
vEF
@@ -74589,8 +75499,8 @@ vII
vII
dyM
fSq
-cjF
-gqe
+ebP
+jJe
gqe
gqe
sad
@@ -74755,7 +75665,7 @@ lAh
lAh
lAh
lAh
-ruy
+mYx
csp
xjK
xjK
@@ -74791,18 +75701,18 @@ wef
roY
roY
roY
-iZV
+fin
jpN
uwk
uwk
uwk
lIG
vJD
+gDt
vJD
-vJD
-fSq
-ebP
-dGw
+cKa
+cjF
+gqe
gqe
gqe
vTl
@@ -75872,7 +76782,7 @@ rUY
vGO
tMF
hgu
-sVw
+hgu
hgu
hgu
rox
@@ -76487,7 +77397,7 @@ xMR
roY
wef
roY
-iZV
+fin
jmG
uwk
uwk
diff --git a/maps/map_files/FOP_v3_Sciannex/sprinkles/20.yardbasketball.dmm b/maps/map_files/FOP_v3_Sciannex/sprinkles/20.yardbasketball.dmm
new file mode 100644
index 000000000000..6662ebf081f0
--- /dev/null
+++ b/maps/map_files/FOP_v3_Sciannex/sprinkles/20.yardbasketball.dmm
@@ -0,0 +1,337 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/turf/open/floor/wood,
+/area/template_noop)
+"b" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N"
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/turf/open/floor/wood,
+/area/template_noop)
+"d" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E-corner"
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "N"
+ },
+/turf/open/floor/wood,
+/area/template_noop)
+"e" = (
+/obj/item/trash/cigbutt{
+ pixel_x = 5;
+ pixel_y = -6
+ },
+/turf/open/floor/wood,
+/area/template_noop)
+"f" = (
+/obj/effect/landmark/corpsespawner/ua_riot,
+/obj/effect/decal/cleanable/blood,
+/obj/item/handcuffs/zip{
+ pixel_y = -12
+ },
+/turf/open/floor/wood,
+/area/template_noop)
+"g" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NS-center"
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/turf/open/floor/wood,
+/area/template_noop)
+"i" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "N"
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "E-corner"
+ },
+/turf/open/floor/wood,
+/area/template_noop)
+"j" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E-corner"
+ },
+/turf/open/floor/wood,
+/area/template_noop)
+"k" = (
+/obj/item/ammo_casing{
+ dir = 6;
+ icon_state = "casing_10_1"
+ },
+/turf/open/floor/wood,
+/area/template_noop)
+"l" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "N"
+ },
+/turf/open/floor/wood,
+/area/template_noop)
+"n" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NS-center"
+ },
+/turf/open/floor/wood,
+/area/template_noop)
+"p" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N"
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "E-corner"
+ },
+/turf/open/floor/wood,
+/area/template_noop)
+"r" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NS-center"
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "N"
+ },
+/turf/open/floor/wood,
+/area/template_noop)
+"s" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N"
+ },
+/turf/open/floor/wood,
+/area/template_noop)
+"u" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N"
+ },
+/obj/item/spacecash/c100{
+ pixel_x = -11;
+ pixel_y = -6
+ },
+/turf/open/floor/wood,
+/area/template_noop)
+"w" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N"
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/item/trash/barcardine,
+/turf/open/floor/wood,
+/area/template_noop)
+"x" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E-corner"
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/turf/open/floor/wood,
+/area/template_noop)
+"C" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NS-center"
+ },
+/obj/effect/decal/warning_stripes,
+/turf/open/floor/wood,
+/area/template_noop)
+"G" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/turf/open/floor/wood,
+/area/template_noop)
+"H" = (
+/obj/item/trash/chunk,
+/turf/open/floor/wood,
+/area/template_noop)
+"J" = (
+/obj/item/weapon/gun/smg/mac15{
+ pixel_x = 12
+ },
+/turf/open/floor/wood,
+/area/template_noop)
+"L" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/turf/open/floor/wood,
+/area/template_noop)
+"M" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E-corner"
+ },
+/obj/effect/decal/warning_stripes,
+/obj/structure/holohoop{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/template_noop)
+"Q" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "N"
+ },
+/turf/open/floor/wood,
+/area/template_noop)
+"R" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/effect/decal/warning_stripes,
+/obj/structure/holohoop{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/template_noop)
+"S" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "N"
+ },
+/turf/open/floor/wood,
+/area/template_noop)
+"T" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E-corner"
+ },
+/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb,
+/turf/open/floor/wood,
+/area/template_noop)
+"U" = (
+/obj/item/ammo_magazine/smg/uzi{
+ current_rounds = 0;
+ pixel_x = 5;
+ pixel_y = 12
+ },
+/turf/open/floor/wood,
+/area/template_noop)
+"W" = (
+/obj/effect/decal/cleanable/blood,
+/turf/open/floor/wood,
+/area/template_noop)
+"Y" = (
+/turf/open/floor/wood,
+/area/template_noop)
+"Z" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NS-center"
+ },
+/obj/effect/decal/warning_stripes,
+/obj/item/toy/beach_ball/holoball,
+/turf/open/floor/wood,
+/area/template_noop)
+
+(1,1,1) = {"
+Q
+G
+R
+G
+a
+"}
+(2,1,1) = {"
+w
+s
+Y
+Y
+l
+"}
+(3,1,1) = {"
+s
+d
+C
+T
+S
+"}
+(4,1,1) = {"
+s
+Y
+Y
+Y
+L
+"}
+(5,1,1) = {"
+s
+Y
+Y
+H
+L
+"}
+(6,1,1) = {"
+s
+Y
+e
+Y
+L
+"}
+(7,1,1) = {"
+r
+n
+Z
+n
+g
+"}
+(8,1,1) = {"
+s
+J
+U
+Y
+L
+"}
+(9,1,1) = {"
+s
+k
+W
+Y
+L
+"}
+(10,1,1) = {"
+u
+f
+Y
+Y
+L
+"}
+(11,1,1) = {"
+p
+b
+C
+G
+i
+"}
+(12,1,1) = {"
+s
+Y
+Y
+Y
+L
+"}
+(13,1,1) = {"
+d
+j
+M
+j
+x
+"}
diff --git a/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm b/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm
index 631e40c22643..f5e2f597ef24 100644
--- a/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm
+++ b/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm
@@ -895,7 +895,6 @@
/area/shiva/interior/garage)
"adp" = (
/obj/structure/closet/secure_closet/engineering_personal,
-/obj/item/weapon/banhammer,
/turf/open/floor/shiva{
dir = 1
},
@@ -18273,13 +18272,6 @@
/obj/item/tool/wrench,
/turf/open/auto_turf/snow/layer1,
/area/shiva/interior/colony/central)
-"nhh" = (
-/obj/item/clothing/gloves/marine/veteran/insulated,
-/turf/open/floor/shiva{
- dir = 1;
- icon_state = "yellow"
- },
-/area/shiva/interior/colony/deck)
"nhl" = (
/turf/open/floor/shiva{
dir = 5;
@@ -20114,7 +20106,7 @@
pixel_x = 10;
pixel_y = 11
},
-/obj/item/tool/weldingtool/largetank{
+/obj/item/tool/weldingtool{
pixel_x = -6;
pixel_y = 4
},
@@ -58882,7 +58874,7 @@ jVI
kQF
kzE
acT
-nhh
+qOD
kTZ
iLS
mms
diff --git a/maps/map_files/Kutjevo/Kutjevo.dmm b/maps/map_files/Kutjevo/Kutjevo.dmm
index fed056caf3d4..a79ef352f94b 100644
--- a/maps/map_files/Kutjevo/Kutjevo.dmm
+++ b/maps/map_files/Kutjevo/Kutjevo.dmm
@@ -14943,7 +14943,7 @@
/turf/open/floor/kutjevo/colors/orange,
/area/kutjevo/interior/power)
"uBG" = (
-/obj/item/tool/weldingtool/largetank,
+/obj/item/tool/weldingtool,
/turf/open/floor/kutjevo/grey/plate,
/area/kutjevo/interior/complex/botany/east_tech)
"uBO" = (
diff --git a/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm b/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm
index 9fcb8b7386a7..d000153afd71 100644
--- a/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm
+++ b/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm
@@ -111,6 +111,10 @@
icon_state = "plate"
},
/area/lv522/atmos/east_reactor)
+"acC" = (
+/obj/structure/largecrate/random,
+/turf/open/floor/plating,
+/area/lv522/landing_zone_1/tunnel)
"acD" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/corsat,
@@ -197,6 +201,14 @@
icon_state = "darkbrownfull2"
},
/area/lv522/indoors/c_block/mining)
+"afa" = (
+/obj/structure/prop/invuln/overhead_pipe{
+ pixel_x = 6;
+ pixel_y = 6
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/lv522/indoors/c_block/mining)
"afn" = (
/obj/item/reagent_container/spray/cleaner/drone{
pixel_x = -3;
@@ -804,6 +816,7 @@
/obj/structure/stairs/perspective{
icon_state = "p_stair_full"
},
+/obj/vehicle/train/cargo/trolley,
/turf/open/floor/plating,
/area/lv522/landing_zone_1/tunnel)
"awI" = (
@@ -855,6 +868,16 @@
icon_state = "plate"
},
/area/lv522/atmos/reactor_garage)
+"ayf" = (
+/obj/structure/prop/invuln/overhead_pipe{
+ dir = 8;
+ pixel_x = -6;
+ pixel_y = 6
+ },
+/obj/vehicle/train/cargo/trolley,
+/obj/effect/decal/cleanable/blood,
+/turf/open/floor/plating,
+/area/lv522/landing_zone_1/tunnel)
"ayn" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -901,11 +924,6 @@
/area/lv522/indoors/a_block/corpo/glass)
"azJ" = (
/obj/structure/surface/table/almayer,
-/obj/item/clothing/head/helmet/marine/grenadier{
- armor_bullet = 10;
- desc = "Pairs with the M3-G4 heavy grenadier plating. A distant cousin of the experimental B18 defensive helmet. Decorated with a blue stripe the large hole in the side of this helmet somewhat limits its protection.";
- name = "\improper damaged M3-G4 grenadier helmet"
- },
/turf/open/floor/prison,
/area/lv522/indoors/a_block/admin)
"azK" = (
@@ -934,6 +952,12 @@
icon_state = "darkpurplefull2"
},
/area/lv522/indoors/a_block/dorms)
+"aAX" = (
+/obj/item/ammo_box/magazine/misc/mre/empty,
+/turf/open/asphalt/cement{
+ icon_state = "cement3"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"aBm" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/prop/invuln/lattice_prop{
@@ -1172,6 +1196,12 @@
icon_state = "darkyellowfull2"
},
/area/lv522/indoors/lone_buildings/outdoor_bot)
+"aId" = (
+/obj/structure/girder/displaced,
+/turf/open/floor/plating{
+ icon_state = "platingdmg1"
+ },
+/area/lv522/indoors/lone_buildings/storage_blocks)
"aIf" = (
/obj/structure/machinery/light{
dir = 1
@@ -1274,6 +1304,10 @@
icon_state = "darkbrownfull2"
},
/area/lv522/landing_zone_2)
+"aKE" = (
+/obj/item/prop/alien/hugger,
+/turf/open/floor/plating,
+/area/lv522/landing_zone_1/tunnel)
"aKK" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
/obj/structure/pipes/standard/simple/hidden/green{
@@ -2102,6 +2136,10 @@
icon_state = "brown"
},
/area/lv522/atmos/east_reactor/north)
+"bgw" = (
+/obj/effect/decal/cleanable/blood/xeno,
+/turf/open/floor/plating,
+/area/lv522/landing_zone_1/tunnel)
"bgJ" = (
/obj/structure/machinery/door/poddoor/shutters/almayer/open{
id = "Sec-Kitchen-Lockdown";
@@ -2611,6 +2649,15 @@
icon_state = "squares"
},
/area/lv522/atmos/east_reactor)
+"byb" = (
+/obj/structure/platform_decoration{
+ dir = 4
+ },
+/obj/structure/barricade/wooden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/lv522/landing_zone_1/tunnel)
"bye" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
/obj/effect/landmark/structure_spawner/setup/distress/xeno_door,
@@ -2627,6 +2674,22 @@
icon_state = "darkpurple2"
},
/area/lv522/indoors/a_block/dorms)
+"byD" = (
+/obj/item/ammo_magazine/rifle/heap{
+ current_rounds = 0
+ },
+/obj/effect/decal{
+ icon = 'icons/mob/xenos/effects.dmi';
+ icon_state = "acid_weak";
+ layer = 2;
+ name = "weak acid";
+ pixel_x = -10;
+ pixel_y = 4
+ },
+/turf/open/asphalt/cement{
+ icon_state = "cement3"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"byJ" = (
/obj/structure/machinery/light,
/obj/effect/decal/cleanable/dirt,
@@ -2700,6 +2763,13 @@
},
/turf/open/floor/plating,
/area/lv522/indoors/a_block/security)
+"bAn" = (
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/auto_turf/shale/layer1,
+/area/lv522/outdoors/colony_streets/north_street)
"bAo" = (
/obj/item/prop/colony/usedbandage{
dir = 10
@@ -3111,6 +3181,10 @@
icon_state = "plate"
},
/area/lv522/atmos/east_reactor)
+"bKf" = (
+/obj/effect/decal/cleanable/blood/xeno,
+/turf/open/auto_turf/shale/layer1,
+/area/lv522/outdoors/colony_streets/north_street)
"bKk" = (
/turf/open/floor/corsat{
dir = 8;
@@ -3132,6 +3206,12 @@
},
/turf/open/auto_turf/shale/layer1,
/area/lv522/outdoors/w_rockies)
+"bKu" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/asphalt/cement{
+ icon_state = "cement12"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"bKO" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -3384,6 +3464,18 @@
icon_state = "greenfull"
},
/area/lv522/indoors/b_block/bridge)
+"bQP" = (
+/obj/structure/prop/invuln/overhead_pipe{
+ pixel_y = -6
+ },
+/obj/structure/prop/invuln/overhead_pipe{
+ pixel_y = 10
+ },
+/obj/structure/barricade/wooden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/lv522/landing_zone_1/tunnel)
"bRN" = (
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor/corsat{
@@ -3597,6 +3689,10 @@
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/auto_turf/shale/layer2,
/area/lv522/outdoors/w_rockies)
+"bWv" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/lv522/indoors/c_block/mining)
"bWA" = (
/obj/structure/prop/ice_colony/flamingo{
dir = 4;
@@ -3673,7 +3769,8 @@
/area/lv522/outdoors/colony_streets/central_streets)
"bXU" = (
/obj/structure/machinery/door/airlock/almayer/generic{
- dir = 2
+ dir = 2;
+ name = "\improper B-Block Bar"
},
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor/corsat{
@@ -3863,6 +3960,11 @@
icon_state = "floor_plate"
},
/area/lv522/atmos/sewer)
+"cbb" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/firecloset/full,
+/turf/open/floor/plating,
+/area/lv522/landing_zone_1/tunnel)
"cbn" = (
/obj/effect/decal/warning_stripes{
icon_state = "S";
@@ -4041,7 +4143,9 @@
},
/area/lv522/indoors/a_block/fitness)
"cgG" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic,
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper C-Block - Cargo Airlock"
+ },
/turf/open/floor/corsat{
icon_state = "marked"
},
@@ -4413,7 +4517,6 @@
},
/area/lv522/indoors/c_block/cargo)
"cqL" = (
-/obj/structure/largecrate/random/barrel/white,
/obj/effect/decal/warning_stripes{
icon_state = "E";
pixel_x = 1
@@ -4472,6 +4575,12 @@
icon_state = "marked"
},
/area/lv522/atmos/east_reactor)
+"csl" = (
+/obj/structure/barricade/plasteel/metal,
+/turf/open/asphalt/cement{
+ icon_state = "cement12"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"csv" = (
/obj/structure/platform{
dir = 1
@@ -5214,6 +5323,17 @@
icon_state = "brown"
},
/area/lv522/oob)
+"cJc" = (
+/obj/item/prop/colony/used_flare,
+/obj/structure/cargo_container/wy/right,
+/turf/open/floor/plating,
+/area/lv522/outdoors/colony_streets/north_east_street)
+"cJg" = (
+/obj/effect/decal/cleanable/blood/xeno,
+/turf/open/asphalt/cement{
+ icon_state = "cement9"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"cJh" = (
/obj/structure/window/reinforced{
dir = 4
@@ -5576,6 +5696,10 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/prison,
/area/lv522/indoors/c_block/garage)
+"cQv" = (
+/obj/item/stack/sheet/metal,
+/turf/open/floor/plating,
+/area/lv522/indoors/lone_buildings/storage_blocks)
"cQB" = (
/obj/effect/decal/cleanable/blood/oil,
/obj/structure/pipes/standard/simple/hidden/green{
@@ -6284,7 +6408,7 @@
/obj/structure/surface/rack,
/obj/item/device/analyzer,
/obj/effect/landmark/objective_landmark/close,
-/obj/item/stack/sandbags_empty/small_stack,
+/obj/item/stack/sheet/cardboard/full_stack,
/turf/open/floor/prison{
icon_state = "darkbrownfull2"
},
@@ -6531,6 +6655,12 @@
icon_state = "marked"
},
/area/lv522/indoors/a_block/hallway)
+"dhj" = (
+/obj/item/prop/colony/used_flare,
+/turf/open/asphalt/cement{
+ icon_state = "cement1"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"dhH" = (
/turf/open/asphalt/cement{
icon_state = "cement12"
@@ -6655,7 +6785,7 @@
pixel_x = -6;
pixel_y = 6
},
-/obj/structure/largecrate/random,
+/obj/structure/closet/emcloset,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/lv522/landing_zone_1/tunnel)
@@ -6760,7 +6890,8 @@
/area/lv522/outdoors/colony_streets/north_west_street)
"dlM" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
- dir = 1
+ dir = 1;
+ name = "\improper B-Block - Hydroponics Airlock"
},
/obj/structure/machinery/door/poddoor/shutters/almayer/open{
dir = 4;
@@ -7161,7 +7292,7 @@
"dtl" = (
/obj/structure/machinery/door/airlock/almayer/generic{
dir = 1;
- name = "\improper Canteen";
+ name = "\improper A-Block Canteen Airlock";
welded = 1
},
/obj/structure/machinery/door/poddoor/shutters/almayer/open{
@@ -7507,6 +7638,13 @@
},
/turf/open/auto_turf/shale/layer1,
/area/lv522/outdoors/colony_streets/south_east_street)
+"dBQ" = (
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 4
+ },
+/obj/item/prop/colony/used_flare,
+/turf/open/auto_turf/shale/layer1,
+/area/lv522/outdoors/colony_streets/north_street)
"dCx" = (
/obj/structure/closet/crate/radiation,
/turf/open/floor/corsat{
@@ -7669,7 +7807,9 @@
},
/area/lv522/indoors/c_block/mining)
"dFE" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic,
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper A-Block - Colony Operations Centre Airlock"
+ },
/turf/open/floor/corsat{
icon_state = "marked"
},
@@ -7760,7 +7900,6 @@
},
/area/lv522/atmos/east_reactor)
"dHx" = (
-/obj/structure/largecrate/random/barrel/red,
/obj/effect/decal/warning_stripes{
icon_state = "S"
},
@@ -7987,7 +8126,8 @@
/area/lv522/indoors/a_block/kitchen/damage)
"dMo" = (
/obj/structure/machinery/door/airlock/almayer/generic{
- dir = 1
+ dir = 1;
+ name = "\improper B-Block - Hydroponics Airlock"
},
/obj/structure/machinery/door/poddoor/shutters/almayer/open{
id = "LV_522_Hydro-Lockdown";
@@ -8316,6 +8456,11 @@
icon_state = "brown"
},
/area/lv522/atmos/east_reactor/east)
+"dSJ" = (
+/obj/structure/largecrate/random/secure,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/lv522/landing_zone_1/tunnel)
"dSW" = (
/obj/structure/prop/invuln/overhead/flammable_pipe/fly{
dir = 1;
@@ -8373,7 +8518,7 @@
"dUr" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
dir = 1;
- name = "\improper Westlock";
+ name = "\improper A-Block Dorms And Office Airlock";
welded = 1
},
/turf/open/floor/corsat{
@@ -9488,16 +9633,13 @@
},
/area/lv522/indoors/a_block/medical/glass)
"eqb" = (
-/obj/structure/largecrate/random/mini{
- pixel_x = -8;
- pixel_y = -8
- },
/obj/effect/decal/warning_stripes{
icon_state = "S"
},
/obj/effect/decal/warning_stripes{
icon_state = "W"
},
+/obj/structure/barricade/deployable,
/turf/open/floor/prison{
icon_state = "darkredfull2"
},
@@ -9598,6 +9740,7 @@
/obj/structure/platform_decoration{
dir = 8
},
+/obj/item/stack/sheet/wood,
/turf/open/floor/plating,
/area/lv522/landing_zone_1/tunnel)
"esB" = (
@@ -9720,6 +9863,14 @@
icon_state = "marked"
},
/area/lv522/indoors/a_block/corpo/glass)
+"evQ" = (
+/obj/structure/barricade/sandbags,
+/obj/item/trash/uscm_mre{
+ pixel_x = -8;
+ pixel_y = 10
+ },
+/turf/open/asphalt/cement,
+/area/lv522/outdoors/colony_streets/north_street)
"evS" = (
/obj/structure/platform,
/obj/structure/platform{
@@ -10445,6 +10596,14 @@
},
/turf/open/auto_turf/shale/layer1,
/area/lv522/outdoors/colony_streets/central_streets)
+"eLK" = (
+/obj/structure/tunnel/maint_tunnel{
+ pixel_y = 6
+ },
+/obj/structure/machinery/light/small,
+/obj/effect/decal/cleanable/blood/xeno,
+/turf/open/floor/plating,
+/area/lv522/landing_zone_1/tunnel)
"eLN" = (
/obj/structure/machinery/light,
/turf/open/floor{
@@ -10751,6 +10910,12 @@
icon_state = "platebot"
},
/area/lv522/indoors/c_block/cargo)
+"eSM" = (
+/obj/effect/spawner/gibspawner/xeno,
+/turf/open/asphalt/cement{
+ icon_state = "cement9"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"eSO" = (
/obj/structure/largecrate/random,
/obj/structure/machinery/light{
@@ -10797,10 +10962,6 @@
/obj/structure/platform{
dir = 8
},
-/obj/structure/machinery/door/poddoor/shutters/almayer{
- id = "UD6 East";
- indestructible = 1
- },
/turf/open/floor/plating,
/area/lv522/landing_zone_forecon/UD6_Tornado)
"eTQ" = (
@@ -11183,10 +11344,6 @@
/obj/structure/stairs/perspective{
icon_state = "p_stair_full"
},
-/obj/structure/machinery/door/poddoor/shutters/almayer{
- id = "UD6 East";
- indestructible = 1
- },
/turf/open/floor/plating,
/area/lv522/landing_zone_forecon/UD6_Tornado)
"fcd" = (
@@ -11618,7 +11775,8 @@
/area/lv522/indoors/a_block/security)
"fmg" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
- dir = 1
+ dir = 1;
+ name = "\improper A-Block Corporate Office Airlock"
},
/turf/open/floor/corsat{
icon_state = "marked"
@@ -11800,12 +11958,6 @@
icon_state = "brown"
},
/area/lv522/atmos/north_command_centre)
-"fpS" = (
-/obj/item/prop/helmetgarb/helmet_nvg/marsoc,
-/turf/open/floor/corsat{
- icon_state = "plate"
- },
-/area/lv522/oob)
"fpW" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -11834,7 +11986,9 @@
},
/area/lv522/atmos/east_reactor/south)
"frc" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic,
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper A-Block Security Airlock"
+ },
/obj/structure/pipes/standard/simple/hidden/green,
/obj/structure/machinery/door/poddoor/shutters/almayer/open{
id = "Sec-Kitchen-Lockdown";
@@ -11942,6 +12096,11 @@
},
/turf/open/auto_turf/sand_white/layer0,
/area/lv522/outdoors/colony_streets/central_streets)
+"fto" = (
+/obj/item/storage/belt/grenade,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/prison,
+/area/lv522/outdoors/colony_streets/north_street)
"fts" = (
/obj/structure/surface/table/woodentable/fancy,
/obj/effect/decal/cleanable/dirt,
@@ -12011,6 +12170,12 @@
icon_state = "squares"
},
/area/lv522/atmos/east_reactor/east)
+"fvc" = (
+/obj/structure/barricade/sandbags,
+/turf/open/asphalt/cement{
+ icon_state = "cement14"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"fvk" = (
/obj/structure/pipes/standard/simple/hidden/green,
/obj/effect/decal/cleanable/dirt,
@@ -13092,6 +13257,12 @@
icon_state = "marked"
},
/area/lv522/indoors/a_block/admin)
+"fRw" = (
+/obj/structure/girder,
+/turf/open/asphalt/cement{
+ icon_state = "cement1"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"fRP" = (
/obj/structure/prop/vehicles/crawler{
layer = 3.3
@@ -13211,7 +13382,7 @@
"fTK" = (
/obj/structure/pipes/standard/simple/hidden/green,
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
- name = "\improper Corporation Dome";
+ name = "\improper A-Block Corporate Office Airlock";
req_access_txt = "100"
},
/turf/open/floor/corsat{
@@ -13239,6 +13410,12 @@
icon_state = "plate"
},
/area/lv522/atmos/cargo_intake)
+"fUc" = (
+/obj/structure/girder,
+/turf/open/asphalt/cement{
+ icon_state = "cement15"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"fUf" = (
/obj/effect/decal{
icon = 'icons/mob/xenos/effects.dmi';
@@ -13261,6 +13438,15 @@
},
/turf/open/floor/wood,
/area/lv522/indoors/a_block/executive)
+"fUQ" = (
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 4
+ },
+/obj/item/ammo_magazine/rifle/heap{
+ current_rounds = 0
+ },
+/turf/open/auto_turf/sand_white/layer0,
+/area/lv522/outdoors/colony_streets/north_street)
"fUT" = (
/obj/structure/prop/server_equipment/yutani_server{
density = 0;
@@ -13927,6 +14113,18 @@
icon_state = "squares"
},
/area/lv522/atmos/east_reactor/east)
+"ghE" = (
+/obj/item/clothing/head/helmet/marine/grenadier{
+ armor_bullet = 10;
+ desc = "Pairs with the M3-G4 heavy grenadier plating. A distant cousin of the experimental B18 defensive helmet. Decorated with a blue stripe the large hole in the side of this helmet somewhat limits its protection.";
+ name = "\improper damaged M3-G4 grenadier helmet";
+ pixel_x = 3;
+ pixel_y = 13
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"gib" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/stairs/perspective{
@@ -14379,6 +14577,13 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/prison,
/area/lv522/indoors/b_block/hydro)
+"gsn" = (
+/obj/structure/stairs/perspective{
+ icon_state = "p_stair_full"
+ },
+/obj/vehicle/train/cargo/engine,
+/turf/open/floor/plating,
+/area/lv522/landing_zone_1/tunnel)
"gsM" = (
/obj/structure/bed/chair/comfy{
dir = 8
@@ -14563,16 +14768,45 @@
icon_state = "marked"
},
/area/lv522/indoors/a_block/security)
+"gvK" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/trash/uscm_mre{
+ pixel_x = -12;
+ pixel_y = 7
+ },
+/turf/open/floor/prison{
+ icon_state = "darkredfull2"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"gvT" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/plating_catwalk/prison,
/area/lv522/indoors/a_block/fitness)
+"gvU" = (
+/obj/structure/prop/invuln/minecart_tracks,
+/obj/structure/closet/crate/miningcar{
+ layer = 3.1;
+ name = "\improper materials storage bin";
+ pixel_y = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/ore/slag,
+/obj/item/ore/slag,
+/obj/item/ore/slag,
+/obj/item/ore/slag,
+/turf/open/floor/prison,
+/area/lv522/indoors/c_block/mining)
"gwb" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/plating_catwalk/prison,
/area/lv522/indoors/a_block/bridges/corpo)
"gwg" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic,
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper B-Block - Hydroponics Airlock"
+ },
/obj/structure/machinery/door/poddoor/shutters/almayer/open{
id = "LV_522_Hydro-Lockdown";
name = "\improper Storm Shutters"
@@ -14623,6 +14857,18 @@
icon_state = "marked"
},
/area/lv522/indoors/a_block/security)
+"gwU" = (
+/obj/structure/barricade/sandbags{
+ dir = 8
+ },
+/obj/item/prop/alien/hugger{
+ pixel_x = 13;
+ pixel_y = -5
+ },
+/turf/open/asphalt/cement{
+ icon_state = "cement3"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"gxb" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/prop/almayer/computer/PC{
@@ -14642,9 +14888,10 @@
},
/area/lv522/atmos/command_centre)
"gxe" = (
-/obj/item/stack/sandbags_empty/small_stack,
-/turf/open/floor/plating/plating_catwalk/prison,
-/area/lv522/indoors/b_block/bridge)
+/obj/effect/decal/cleanable/blood,
+/obj/effect/spawner/gibspawner/human,
+/turf/open/auto_turf/shale/layer1,
+/area/lv522/outdoors/w_rockies)
"gxl" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/prop/almayer/computer/PC,
@@ -15343,7 +15590,9 @@
/turf/open/floor/prison,
/area/lv522/indoors/a_block/security)
"gLw" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic,
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper A-Block Security Airlock"
+ },
/obj/structure/pipes/standard/simple/hidden/green,
/obj/structure/machinery/door/poddoor/shutters/almayer{
id = "Sec-Corpo-Bridge-Lockdown"
@@ -15352,6 +15601,13 @@
icon_state = "marked"
},
/area/lv522/indoors/a_block/security)
+"gLy" = (
+/obj/structure/surface/table/almayer,
+/obj/item/map/lv522_map,
+/turf/open/asphalt/cement{
+ icon_state = "cement3"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"gLK" = (
/obj/structure/stairs/perspective{
icon_state = "p_stair_full"
@@ -15420,6 +15676,11 @@
icon_state = "cement9"
},
/area/lv522/outdoors/colony_streets/south_west_street)
+"gMT" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/prop/alien/hugger,
+/turf/open/floor/plating,
+/area/lv522/landing_zone_1/tunnel)
"gMV" = (
/obj/structure/machinery/light{
dir = 1
@@ -15636,7 +15897,7 @@
/area/lv522/indoors/c_block/cargo)
"gRi" = (
/obj/structure/closet/crate,
-/obj/item/stack/sheet/metal/large_stack,
+/obj/item/stack/sheet/metal/medium_stack,
/obj/item/ore/uranium,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/prison,
@@ -15648,6 +15909,10 @@
/obj/item/prop/colony/used_flare,
/turf/open/auto_turf/sand_white/layer0,
/area/lv522/outdoors/colony_streets/north_east_street)
+"gRl" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/lv522/indoors/lone_buildings/storage_blocks)
"gRp" = (
/obj/structure/machinery/floodlight/landing,
/turf/open/floor/prison{
@@ -15684,6 +15949,11 @@
icon_state = "blue"
},
/area/lv522/indoors/a_block/admin)
+"gRS" = (
+/obj/structure/pipes/standard/simple/hidden/green,
+/obj/effect/decal/cleanable/blood/xeno,
+/turf/open/auto_turf/sand_white/layer0,
+/area/lv522/outdoors/colony_streets/north_street)
"gRU" = (
/obj/item/paper_bin/uscm{
pixel_x = -7;
@@ -15798,6 +16068,13 @@
icon_state = "kitchen"
},
/area/lv522/indoors/a_block/kitchen)
+"gUT" = (
+/obj/item/lightstick/red/spoke/planted{
+ pixel_x = -12;
+ pixel_y = 25
+ },
+/turf/open/auto_turf/shale/layer1,
+/area/lv522/outdoors/colony_streets/north_street)
"gUY" = (
/obj/item/prop/alien/hugger,
/obj/effect/decal/cleanable/vomit,
@@ -16296,6 +16573,7 @@
/area/lv522/atmos/east_reactor/east)
"hbO" = (
/obj/structure/largecrate/random/case/small,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/lv522/indoors/c_block/mining)
"hcv" = (
@@ -16328,6 +16606,7 @@
dir = 10;
icon_state = "p_stair_full"
},
+/obj/structure/largecrate/random/barrel/white,
/turf/open/floor/plating,
/area/lv522/landing_zone_1/tunnel)
"hcO" = (
@@ -16345,6 +16624,9 @@
/obj/structure/pipes/standard/manifold/hidden/green{
dir = 8
},
+/obj/item/lightstick/red/spoke/planted{
+ pixel_x = 11
+ },
/turf/open/auto_turf/sand_white/layer0,
/area/lv522/outdoors/colony_streets/north_street)
"hcZ" = (
@@ -16987,7 +17269,6 @@
/area/lv522/atmos/west_reactor)
"hnG" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
- name = "\improper Corporation Dome";
req_access_txt = "100"
},
/turf/open/floor/corsat{
@@ -16996,7 +17277,8 @@
/area/lv522/atmos/way_in_command_centre)
"hnX" = (
/obj/structure/machinery/door/airlock/almayer/generic{
- dir = 2
+ dir = 2;
+ name = "\improper A-Block Dorms And Office Airlock"
},
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor/corsat{
@@ -17101,7 +17383,7 @@
"hpO" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
dir = 1;
- name = "\improper Engineering Hut"
+ name = "\improper Emergency Engineering"
},
/turf/open/floor/corsat{
icon_state = "marked"
@@ -17117,10 +17399,6 @@
/area/lv522/indoors/a_block/dorm_north)
"hqr" = (
/obj/structure/surface/table/almayer,
-/obj/item/tool/weldingtool/hugetank{
- pixel_x = 8;
- pixel_y = 7
- },
/obj/item/tool/weldpack{
pixel_y = 2
},
@@ -18416,7 +18694,8 @@
/area/lv522/atmos/way_in_command_centre)
"hPT" = (
/obj/structure/machinery/door/airlock/almayer/generic{
- dir = 2
+ dir = 2;
+ name = "\improper A-Block - Colony Operations Centre Airlock"
},
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor/corsat{
@@ -18862,12 +19141,6 @@
name = "Display synthetic"
},
/obj/structure/window/reinforced,
-/obj/item/clothing/under/marine/veteran/pmc,
-/obj/item/clothing/mask/gas/pmc,
-/obj/item/clothing/head/helmet/marine/veteran/pmc/leader{
- layer = 3.1;
- pixel_y = 10
- },
/obj/structure/sign/safety/synth_storage{
pixel_x = 23;
pixel_y = 29
@@ -18956,6 +19229,16 @@
icon_state = "plate"
},
/area/lv522/atmos/filt)
+"iaD" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/prison{
+ icon_state = "darkredfull2"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"iaM" = (
/obj/effect/decal/cleanable/dirt,
/obj/item/stack/rods,
@@ -18996,6 +19279,10 @@
icon_state = "23"
},
/area/lv522/landing_zone_forecon/UD6_Tornado)
+"ibS" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/auto_turf/shale/layer1,
+/area/lv522/outdoors/colony_streets/north_street)
"ibT" = (
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor/corsat{
@@ -19437,6 +19724,15 @@
icon_state = "wood"
},
/area/lv522/indoors/b_block/bar)
+"ikp" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/item/stack/folding_barricade,
+/turf/open/floor/prison{
+ icon_state = "darkredfull2"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"ikr" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 5
@@ -19942,6 +20238,7 @@
/area/lv522/indoors/a_block/admin)
"iuQ" = (
/obj/structure/machinery/door/airlock/almayer/generic{
+ name = "\improper C-Block - Cargo Airlock";
welded = 1
},
/turf/open/floor/corsat{
@@ -19979,6 +20276,16 @@
/obj/item/tool/wet_sign,
/turf/open/floor/prison,
/area/lv522/indoors/a_block/dorms)
+"ivs" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/effect/spawner/gibspawner/xeno,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/prison{
+ icon_state = "darkredfull2"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"ivy" = (
/obj/structure/surface/rack,
/obj/item/tool/pickaxe/jackhammer,
@@ -20006,6 +20313,12 @@
icon_state = "darkpurplefull2"
},
/area/lv522/indoors/a_block/dorms)
+"ivY" = (
+/obj/item/prop/colony/used_flare,
+/turf/open/asphalt/cement{
+ icon_state = "cement12"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"iwb" = (
/obj/structure/stairs/perspective{
dir = 6;
@@ -20250,7 +20563,9 @@
/turf/open/floor/prison,
/area/lv522/indoors/a_block/dorm_north)
"iBd" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic,
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper C-Block - Garage Airlock"
+ },
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor/corsat{
icon_state = "marked"
@@ -20400,6 +20715,13 @@
icon_state = "floor_marked"
},
/area/lv522/atmos/cargo_intake)
+"iFe" = (
+/obj/structure/closet/crate,
+/obj/item/weapon/stunprod,
+/turf/open/floor/prison{
+ icon_state = "darkbrownfull2"
+ },
+/area/lv522/landing_zone_2)
"iFk" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 9
@@ -20815,6 +21137,9 @@
icon_state = "N";
pixel_y = 1
},
+/obj/structure/barricade/metal{
+ dir = 1
+ },
/turf/open/floor/prison{
icon_state = "darkredfull2"
},
@@ -21682,7 +22007,9 @@
},
/area/lv522/atmos/cargo_intake)
"jdI" = (
-/obj/structure/machinery/door/airlock/almayer/generic,
+/obj/structure/machinery/door/airlock/almayer/generic{
+ name = "\improper C-Block - Radio Tower Airlock"
+ },
/turf/open/floor/corsat{
icon_state = "marked"
},
@@ -21701,6 +22028,12 @@
icon_state = "browncorner"
},
/area/lv522/atmos/east_reactor/south)
+"jeh" = (
+/obj/item/stack/sandbags/small_stack,
+/turf/open/asphalt/cement{
+ icon_state = "cement3"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"jey" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest,
@@ -21997,7 +22330,7 @@
/area/lv522/atmos/cargo_intake)
"jjc" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
- name = "\improper Greenhouse Storage"
+ name = "\improper Electronics Storage"
},
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor/corsat{
@@ -22407,6 +22740,12 @@
icon_state = "darkbrownfull2"
},
/area/lv522/indoors/c_block/garage)
+"joV" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/asphalt/cement{
+ icon_state = "cement12"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"jpa" = (
/obj/structure/bedsheetbin{
pixel_y = 7
@@ -22419,6 +22758,9 @@
/area/lv522/indoors/a_block/fitness)
"jpb" = (
/obj/structure/closet/crate,
+/obj/item/storage/pouch/shotgun/large/slug,
+/obj/item/storage/pouch/general/large/m39ap,
+/obj/item/storage/pouch/flamertank,
/turf/open/floor/prison,
/area/lv522/landing_zone_2)
"jpc" = (
@@ -22484,7 +22826,7 @@
/area/lv522/landing_zone_1)
"jqV" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
- name = "\improper Corporation Dome";
+ name = "\improper A-Block Corporate Office Airlock";
req_access_txt = "100"
},
/turf/open/floor/corsat{
@@ -22638,8 +22980,9 @@
/area/lv522/indoors/a_block/corpo/glass)
"jub" = (
/obj/structure/machinery/floodlight,
-/turf/open/floor/prison{
- icon_state = "floor_plate"
+/turf/open/floor/plating{
+ dir = 8;
+ icon_state = "platingdmg3"
},
/area/lv522/indoors/lone_buildings/storage_blocks)
"jud" = (
@@ -22764,6 +23107,7 @@
/area/lv522/indoors/c_block/cargo)
"jwO" = (
/obj/structure/largecrate/random/barrel/blue,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/lv522/indoors/c_block/mining)
"jwT" = (
@@ -22967,6 +23311,16 @@
},
/turf/open/floor/plating,
/area/lv522/indoors/a_block/admin)
+"jAA" = (
+/obj/structure/barricade/handrail{
+ dir = 8
+ },
+/obj/item/stack/sheet/metal,
+/turf/open/floor/prison{
+ dir = 8;
+ icon_state = "cell_stripe"
+ },
+/area/lv522/indoors/lone_buildings/storage_blocks)
"jAI" = (
/obj/effect/decal/cleanable/dirt,
/mob/living/simple_animal/mouse,
@@ -23658,15 +24012,6 @@
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor/prison,
/area/lv522/indoors/a_block/dorms)
-"jNk" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
- dir = 1;
- name = "\improper Westlock"
- },
-/turf/open/floor/corsat{
- icon_state = "marked"
- },
-/area/lv522/indoors/a_block/dorms)
"jNv" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/strata{
@@ -23767,7 +24112,9 @@
/turf/open/floor/plating,
/area/lv522/oob)
"jPd" = (
-/obj/structure/machinery/door/airlock/almayer/generic,
+/obj/structure/machinery/door/airlock/almayer/generic{
+ name = "\improper B-Block - Hydroponics Airlock"
+ },
/obj/structure/machinery/door/poddoor/shutters/almayer/open{
dir = 4;
id = "LV_522_Hydro-Lockdown";
@@ -24607,9 +24954,15 @@
},
/turf/open/auto_turf/sand_white/layer0,
/area/lv522/outdoors/colony_streets/north_east_street)
+"keA" = (
+/obj/structure/girder,
+/turf/open/asphalt/cement{
+ icon_state = "cement4"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"kfa" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
- name = "\improper Colony Marshals"
+ name = "\improper A-Block Security Airlock"
},
/obj/structure/pipes/standard/simple/hidden/green,
/obj/structure/machinery/door/poddoor/shutters/almayer/open{
@@ -25955,6 +26308,15 @@
icon_state = "darkpurplefull2"
},
/area/lv522/indoors/a_block/dorms)
+"kCQ" = (
+/obj/structure/largecrate/random,
+/obj/item/explosive/plastic/breaching_charge{
+ pixel_y = -2
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"kDH" = (
/obj/structure/machinery/disposal,
/turf/open/floor/prison{
@@ -26766,6 +27128,13 @@
icon_state = "floor_plate"
},
/area/lv522/indoors/a_block/admin)
+"kSh" = (
+/obj/structure/closet/crate,
+/obj/item/storage/pouch/pressurized_reagent_canister/revival,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/lv522/indoors/lone_buildings/storage_blocks)
"kSm" = (
/obj/structure/machinery/light{
dir = 8
@@ -27210,6 +27579,13 @@
icon_state = "darkredfull2"
},
/area/lv522/indoors/a_block/kitchen/damage)
+"lae" = (
+/obj/effect/spawner/gibspawner/xeno,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/asphalt/cement{
+ icon_state = "cement3"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"lag" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/power/apc/weak{
@@ -27239,7 +27615,8 @@
/area/lv522/indoors/a_block/admin)
"laB" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
- dir = 1
+ dir = 1;
+ name = "\improper A-Block - Colony Operations Centre Airlock"
},
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -27557,6 +27934,10 @@
icon_state = "plate"
},
/area/lv522/atmos/cargo_intake)
+"lgR" = (
+/obj/structure/largecrate/random/secure,
+/turf/open/floor/plating,
+/area/lv522/landing_zone_1/tunnel)
"lgY" = (
/obj/structure/platform_decoration{
dir = 1
@@ -27726,6 +28107,7 @@
/area/lv522/atmos/cargo_intake)
"lkr" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper C-Block - Casino Airlock";
welded = 1
},
/turf/open/floor/corsat{
@@ -27971,6 +28353,11 @@
icon_state = "blue1"
},
/area/lv522/outdoors/colony_streets/windbreaker/observation)
+"loX" = (
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/lv522/indoors/lone_buildings/storage_blocks)
"lpi" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -28163,14 +28550,6 @@
},
/turf/open/floor/prison,
/area/lv522/indoors/a_block/dorms)
-"ltI" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
- name = "\improper Westlock"
- },
-/turf/open/floor/corsat{
- icon_state = "marked"
- },
-/area/lv522/indoors/a_block/dorms)
"lui" = (
/obj/effect/decal/cleanable/blood/drip,
/obj/structure/pipes/standard/simple/hidden/green{
@@ -28782,6 +29161,16 @@
icon_state = "brown"
},
/area/lv522/atmos/filt)
+"lFM" = (
+/obj/structure/prop/invuln/pipe_water{
+ pixel_x = 3;
+ pixel_y = 10
+ },
+/obj/structure/prop/invuln/overhead_pipe{
+ pixel_y = -6
+ },
+/turf/open/floor/plating,
+/area/lv522/landing_zone_1/tunnel)
"lFO" = (
/obj/item/storage/backpack/marine/satchel{
desc = "It's the heavy-duty black polymer kind. Time to take out the trash!";
@@ -29034,10 +29423,7 @@
},
/area/lv522/indoors/a_block/admin)
"lKH" = (
-/obj/structure/machinery/colony_floodlight{
- layer = 4.3;
- pixel_y = 9
- },
+/obj/structure/machinery/colony_floodlight,
/turf/open/floor/corsat{
icon_state = "marked"
},
@@ -29255,6 +29641,15 @@
},
/turf/open/auto_turf/sand_white/layer0,
/area/lv522/outdoors/nw_rockies)
+"lQA" = (
+/obj/item/ammo_magazine/rifle/heap{
+ current_rounds = 0
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/asphalt/cement{
+ icon_state = "cement1"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"lQS" = (
/obj/structure/prop/vehicles/crawler{
dir = 8;
@@ -29263,6 +29658,16 @@
},
/turf/open/auto_turf/sand_white/layer0,
/area/lv522/outdoors/nw_rockies)
+"lRi" = (
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 4
+ },
+/obj/item/lightstick/red/spoke/planted{
+ pixel_x = -12;
+ pixel_y = -1
+ },
+/turf/open/auto_turf/shale/layer1,
+/area/lv522/outdoors/colony_streets/north_street)
"lRx" = (
/obj/structure/surface/table/almayer,
/obj/item/reagent_container/food/condiment/hotsauce/sriracha{
@@ -29414,7 +29819,9 @@
/turf/open/floor/prison,
/area/lv522/indoors/b_block/hydro)
"lUy" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic,
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper A-Block Shared Dorms Airlock"
+ },
/turf/open/floor/corsat{
icon_state = "marked"
},
@@ -29924,7 +30331,8 @@
/area/lv522/indoors/a_block/fitness)
"mfS" = (
/obj/structure/machinery/door/airlock/almayer/generic{
- dir = 1
+ dir = 1;
+ name = "\improper C-Block - Casino Airlock"
},
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor/corsat{
@@ -30036,7 +30444,7 @@
/area/lv522/outdoors/colony_streets/south_east_street)
"mji" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
- name = "\improper Corporation Dome";
+ name = "\improper A-Block Corporate Office Airlock";
req_access_txt = "100"
},
/turf/open/floor/corsat{
@@ -30156,7 +30564,9 @@
},
/area/lv522/indoors/a_block/security)
"mkT" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic,
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper A-Block Security Airlock"
+ },
/turf/open/floor/corsat{
icon_state = "marked"
},
@@ -30243,11 +30653,15 @@
},
/area/lv522/atmos/reactor_garage)
"mlY" = (
-/obj/structure/largecrate/random,
/obj/effect/decal/warning_stripes{
icon_state = "E";
pixel_x = 1
},
+/obj/effect/decal/cleanable/dirt,
+/obj/item/prop/alien/hugger{
+ pixel_x = -7;
+ pixel_y = -5
+ },
/turf/open/floor/prison{
icon_state = "darkredfull2"
},
@@ -30796,6 +31210,11 @@
icon_state = "floor_plate"
},
/area/lv522/outdoors/colony_streets/south_west_street)
+"mwn" = (
+/obj/structure/largecrate/random/barrel/white,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/lv522/indoors/c_block/mining)
"mwp" = (
/obj/effect/spawner/random/tool,
/turf/open/auto_turf/sand_white/layer0,
@@ -31133,6 +31552,14 @@
icon_state = "darkpurplefull2"
},
/area/lv522/indoors/a_block/dorms/glass)
+"mEn" = (
+/obj/structure/surface/rack,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/stack/sheet/metal/medium_stack,
+/turf/open/floor/prison{
+ icon_state = "darkbrownfull2"
+ },
+/area/lv522/indoors/c_block/garage)
"mEp" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/machinery/light{
@@ -31299,6 +31726,12 @@
icon_state = "E";
pixel_x = 1
},
+/obj/structure/reagent_dispensers/fueltank{
+ layer = 2.9
+ },
+/obj/structure/barricade/metal{
+ dir = 4
+ },
/turf/open/floor/prison{
icon_state = "darkredfull2"
},
@@ -31420,6 +31853,14 @@
icon_state = "floor_plate"
},
/area/lv522/indoors/a_block/admin)
+"mKK" = (
+/obj/structure/barricade/deployable{
+ dir = 8
+ },
+/turf/open/asphalt/cement{
+ icon_state = "cement3"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"mKN" = (
/obj/structure/cargo_container/kelland/left,
/turf/open/floor/corsat{
@@ -31774,6 +32215,7 @@
/area/lv522/indoors/a_block/dorms)
"mPQ" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper A-Block Dorms And Office Airlock";
welded = 1
},
/obj/structure/pipes/standard/simple/hidden/green,
@@ -31787,6 +32229,11 @@
},
/turf/open/floor/prison,
/area/lv522/indoors/a_block/dorms/glass)
+"mPV" = (
+/obj/structure/largecrate/random/barrel,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/lv522/landing_zone_1/tunnel)
"mPY" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest,
/obj/effect/landmark/xeno_spawn,
@@ -31821,7 +32268,9 @@
},
/area/lv522/landing_zone_2/ceiling)
"mQo" = (
-/obj/structure/largecrate/random/barrel/green,
+/obj/item/ammo_magazine/rifle/heap{
+ current_rounds = 0
+ },
/turf/open/floor/prison,
/area/lv522/outdoors/colony_streets/north_street)
"mQq" = (
@@ -32321,6 +32770,16 @@
},
/turf/open/floor/plating/plating_catwalk/prison,
/area/lv522/indoors/c_block/mining)
+"naM" = (
+/obj/item/explosive/grenade/high_explosive/m15{
+ pixel_x = 8
+ },
+/obj/item/prop/alien/hugger{
+ pixel_x = -7;
+ pixel_y = -5
+ },
+/turf/open/floor/prison,
+/area/lv522/outdoors/colony_streets/north_street)
"naN" = (
/obj/item/stack/rods,
/obj/structure/machinery/light{
@@ -32434,7 +32893,6 @@
},
/area/lv522/outdoors/colony_streets/south_street)
"ncs" = (
-/obj/structure/largecrate/random/barrel/white,
/obj/effect/decal/warning_stripes{
icon_state = "S"
},
@@ -32829,6 +33287,11 @@
icon_state = "greenfull"
},
/area/lv522/indoors/a_block/fitness)
+"nkm" = (
+/obj/item/prop/alien/hugger,
+/obj/effect/decal/cleanable/blood,
+/turf/open/floor/plating,
+/area/lv522/landing_zone_1/tunnel)
"nkt" = (
/obj/structure/surface/table/almayer,
/obj/effect/decal/cleanable/dirt,
@@ -32896,7 +33359,6 @@
"nlO" = (
/obj/structure/closet/crate,
/obj/item/stack/sheet/metal/large_stack,
-/obj/item/stack/sheet/metal/large_stack,
/turf/open/floor/plating{
icon_state = "platebot"
},
@@ -32984,7 +33446,7 @@
"nmL" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
dir = 1;
- name = "\improper Colony Kitchen"
+ name = "\improper A-Block Kitchen Airlock"
},
/obj/structure/machinery/door/poddoor/shutters/almayer/open{
dir = 4;
@@ -33447,7 +33909,9 @@
/area/lv522/indoors/a_block/security)
"nue" = (
/obj/effect/decal/cleanable/dirt,
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic,
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper B-Block - Hydroponics Airlock"
+ },
/obj/structure/machinery/door/poddoor/shutters/almayer/open{
id = "LV_522_Hydro-Lockdown";
name = "\improper Storm Shutters"
@@ -33517,6 +33981,12 @@
icon_state = "darkredfull2"
},
/area/lv522/indoors/a_block/bridges/op_centre)
+"nvA" = (
+/turf/open/floor/plating{
+ dir = 8;
+ icon_state = "platingdmg3"
+ },
+/area/lv522/indoors/lone_buildings/storage_blocks)
"nvB" = (
/obj/structure/cargo_container/kelland/right,
/turf/open/auto_turf/shale/layer1,
@@ -33769,6 +34239,10 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/plating_catwalk/prison,
/area/lv522/indoors/a_block/bridges/garden_bridge)
+"nDo" = (
+/obj/item/prop/colony/used_flare,
+/turf/open/auto_turf/sand_white/layer0,
+/area/lv522/outdoors/colony_streets/north_street)
"nDt" = (
/obj/structure/platform_decoration{
dir = 4
@@ -33881,7 +34355,9 @@
/turf/open/auto_turf/shale/layer1,
/area/lv522/outdoors/w_rockies)
"nFQ" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic,
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper B-Block - Hydroponics Airlock"
+ },
/obj/structure/machinery/door/poddoor/shutters/almayer/open{
id = "LV_522_Hydro-Lockdown";
name = "\improper Storm Shutters"
@@ -33962,6 +34438,12 @@
icon_state = "darkbrownfull2"
},
/area/lv522/indoors/c_block/cargo)
+"nHM" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/asphalt/cement{
+ icon_state = "cement1"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"nHT" = (
/obj/structure/bed/chair,
/obj/structure/machinery/light{
@@ -34091,6 +34573,13 @@
icon_state = "darkredfull2"
},
/area/lv522/indoors/a_block/security)
+"nKZ" = (
+/obj/structure/pipes/standard/simple/hidden/green{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/auto_turf/sand_white/layer0,
+/area/lv522/outdoors/colony_streets/north_street)
"nLe" = (
/obj/structure/machinery/vending/cola,
/obj/effect/decal/cleanable/cobweb2,
@@ -34207,10 +34696,10 @@
},
/area/lv522/outdoors/colony_streets/north_street)
"nMP" = (
-/obj/structure/largecrate/random/secure,
/obj/effect/decal/warning_stripes{
icon_state = "W"
},
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/prison{
icon_state = "darkredfull2"
},
@@ -34682,6 +35171,7 @@
pixel_y = 6
},
/obj/structure/largecrate/random/case/small,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/lv522/indoors/c_block/mining)
"nUO" = (
@@ -34889,7 +35379,8 @@
/area/lv522/indoors/c_block/garage)
"nXI" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
- dir = 1
+ dir = 1;
+ name = "\improper B-Block - Hydroponics Airlock"
},
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -35008,7 +35499,6 @@
/obj/effect/landmark/objective_landmark/close,
/obj/structure/closet/crate,
/obj/item/stack/sheet/plasteel/large_stack,
-/obj/item/stack/sheet/plasteel/large_stack,
/turf/open/floor/plating{
icon_state = "platebot"
},
@@ -35029,7 +35519,7 @@
/area/lv522/indoors/a_block/fitness)
"nZx" = (
/obj/structure/closet/crate,
-/obj/item/stack/sheet/plasteel/medium_stack,
+/obj/item/stack/sheet/plasteel/small_stack,
/obj/item/ore/uranium,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/prison{
@@ -35156,11 +35646,9 @@
},
/area/lv522/indoors/a_block/kitchen)
"odi" = (
-/obj/structure/largecrate/random/barrel/white,
-/turf/open/floor/prison{
- icon_state = "floor_plate"
- },
-/area/lv522/outdoors/colony_streets/north_street)
+/obj/effect/spawner/gibspawner/human,
+/turf/open/auto_turf/shale/layer1,
+/area/lv522/outdoors/w_rockies)
"odt" = (
/obj/structure/window_frame/strata,
/obj/item/stack/rods,
@@ -35475,10 +35963,7 @@
/turf/open/floor/plating/plating_catwalk/prison,
/area/lv522/indoors/a_block/bridges/op_centre)
"oik" = (
-/obj/structure/machinery/colony_floodlight{
- layer = 4.3;
- pixel_y = 9
- },
+/obj/structure/machinery/colony_floodlight,
/turf/open/floor/corsat{
icon_state = "marked"
},
@@ -35685,6 +36170,13 @@
icon_state = "blue_plate"
},
/area/lv522/indoors/a_block/hallway)
+"omv" = (
+/obj/structure/prop/invuln/overhead_pipe{
+ pixel_y = -6
+ },
+/obj/item/stack/sheet/metal,
+/turf/open/floor/plating,
+/area/lv522/landing_zone_1/tunnel)
"omG" = (
/obj/structure/surface/table/almayer,
/obj/item/device/flashlight/lamp{
@@ -35763,11 +36255,10 @@
},
/area/lv522/indoors/a_block/dorms)
"oow" = (
-/obj/structure/largecrate/random/barrel/yellow,
-/turf/open/floor/prison{
- icon_state = "floor_plate"
- },
-/area/lv522/outdoors/colony_streets/north_street)
+/obj/effect/spawner/gibspawner/human,
+/obj/item/device/defibrillator/compact,
+/turf/open/auto_turf/sand_white/layer0,
+/area/lv522/outdoors/w_rockies)
"ooG" = (
/obj/structure/machinery/power/apc/weak{
dir = 1
@@ -36037,10 +36528,7 @@
},
/area/lv522/atmos/sewer)
"otC" = (
-/obj/structure/machinery/colony_floodlight{
- layer = 4.3;
- pixel_y = 9
- },
+/obj/structure/machinery/colony_floodlight,
/turf/open/floor/corsat{
icon_state = "marked"
},
@@ -36110,6 +36598,10 @@
},
/turf/open/gm/river,
/area/lv522/outdoors/colony_streets/south_street)
+"ous" = (
+/obj/item/stack/sheet/metal,
+/turf/open/floor/plating,
+/area/lv522/landing_zone_1/tunnel)
"ouv" = (
/obj/structure/pipes/vents/pump,
/obj/structure/machinery/camera/autoname,
@@ -36161,6 +36653,15 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/prison,
/area/lv522/indoors/c_block/casino)
+"ovB" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/item/trash/uscm_mre,
+/turf/open/floor/prison{
+ icon_state = "darkredfull2"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"ovT" = (
/obj/structure/stairs/perspective{
dir = 4;
@@ -36492,6 +36993,7 @@
pixel_x = -6;
pixel_y = 6
},
+/obj/structure/closet/firecloset/full,
/turf/open/floor/plating,
/area/lv522/landing_zone_1/tunnel)
"oDj" = (
@@ -36968,6 +37470,12 @@
icon_state = "brown"
},
/area/lv522/atmos/north_command_centre)
+"oMO" = (
+/obj/structure/tent/big,
+/turf/open/asphalt/cement{
+ icon_state = "cement1"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"oNd" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/surface/table/reinforced/prison,
@@ -37105,11 +37613,11 @@
/turf/open/floor/plating,
/area/lv522/indoors/c_block/cargo)
"oQV" = (
-/obj/structure/largecrate/random/barrel/green,
/obj/effect/decal/warning_stripes{
icon_state = "E";
pixel_x = 1
},
+/obj/item/stack/sandbags/small_stack,
/turf/open/floor/prison{
icon_state = "darkredfull2"
},
@@ -37500,7 +38008,7 @@
/area/lv522/indoors/a_block/admin)
"oXV" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
- name = "\improper Greenhouse Storage"
+ name = "\improper Electronics Storage"
},
/turf/open/floor/corsat{
icon_state = "marked"
@@ -38352,6 +38860,10 @@
icon_state = "darkbrownfull2"
},
/area/lv522/indoors/c_block/casino)
+"pqk" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/auto_turf/sand_white/layer0,
+/area/lv522/outdoors/colony_streets/north_street)
"pqA" = (
/obj/structure/surface/table/almayer,
/obj/effect/landmark/objective_landmark/close,
@@ -38401,11 +38913,26 @@
icon_state = "blue"
},
/area/lv522/indoors/a_block/hallway)
+"pqX" = (
+/obj/structure/pipes/standard/simple/hidden/green,
+/obj/item/lightstick/red/spoke/planted{
+ pixel_x = 9;
+ pixel_y = 25
+ },
+/turf/open/auto_turf/sand_white/layer0,
+/area/lv522/outdoors/colony_streets/north_street)
"pqZ" = (
/turf/closed/shuttle/dropship2/tornado/typhoon{
icon_state = "102"
},
/area/lv522/landing_zone_forecon/UD6_Typhoon)
+"prs" = (
+/obj/effect/decal/cleanable/blood/xeno{
+ icon_state = "xgib3"
+ },
+/obj/effect/spawner/gibspawner/xeno,
+/turf/open/auto_turf/shale/layer1,
+/area/lv522/outdoors/colony_streets/north_street)
"prD" = (
/turf/closed/shuttle/dropship2/tornado{
icon_state = "5"
@@ -38588,7 +39115,9 @@
/area/lv522/atmos/east_reactor/south)
"pvE" = (
/obj/structure/pipes/standard/simple/hidden/green,
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic,
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper C-Block - Cargo Airlock"
+ },
/turf/open/floor/corsat{
icon_state = "marked"
},
@@ -38617,10 +39146,9 @@
/obj/structure/machinery/light{
dir = 8
},
-/obj/item/stack/sheet/metal/large_stack,
/obj/structure/closet/crate,
/obj/effect/decal/cleanable/dirt,
-/obj/item/stack/sheet/metal/medium_stack,
+/obj/item/storage/pouch/medkit/full_advanced,
/turf/open/floor/prison{
dir = 10;
icon_state = "floor_marked"
@@ -38702,6 +39230,15 @@
/obj/structure/largecrate/random/barrel/red,
/turf/open/auto_turf/shale/layer1,
/area/lv522/outdoors/colony_streets/central_streets)
+"pxp" = (
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper A-Block Dorms And Office Airlock"
+ },
+/obj/structure/pipes/standard/simple/hidden/green,
+/turf/open/floor/corsat{
+ icon_state = "marked"
+ },
+/area/lv522/indoors/a_block/dorms)
"pxN" = (
/obj/structure/surface/table/almayer,
/turf/open/floor/prison{
@@ -39034,7 +39571,9 @@
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
},
-/obj/structure/machinery/door/airlock/almayer/generic,
+/obj/structure/machinery/door/airlock/almayer/generic{
+ name = "\improper A-Block Fitness Centre Airlock"
+ },
/turf/open/floor/corsat{
icon_state = "marked"
},
@@ -39458,7 +39997,7 @@
"pLN" = (
/obj/structure/machinery/door/airlock/almayer/medical{
dir = 2;
- name = "Medical Airlock"
+ name = "\improper A-Block - Colony Medical Centre Airlock"
},
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor/corsat{
@@ -39493,6 +40032,7 @@
/obj/structure/platform_decoration{
dir = 4
},
+/obj/item/stack/sheet/metal,
/turf/open/floor/plating,
/area/lv522/landing_zone_1/tunnel)
"pMd" = (
@@ -39527,7 +40067,7 @@
"pMt" = (
/obj/structure/machinery/door/airlock/almayer/medical{
dir = 2;
- name = "Medical Airlock"
+ name = "\improper A-Block - Colony Medical Centre Airlock"
},
/turf/open/floor/corsat{
icon_state = "marked"
@@ -39828,9 +40368,14 @@
icon_state = "brown"
},
/area/lv522/atmos/cargo_intake)
+"pSh" = (
+/obj/effect/decal/cleanable/blood,
+/turf/open/floor/plating,
+/area/lv522/landing_zone_1/tunnel)
"pSj" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
- dir = 1
+ dir = 1;
+ name = "\improper B-Block - Hydroponics Airlock"
},
/obj/structure/machinery/door/poddoor/shutters/almayer/open{
dir = 4;
@@ -40159,7 +40704,6 @@
/area/lv522/indoors/b_block/bridge)
"pXH" = (
/obj/effect/alien/weeds/node/alpha,
-/obj/effect/alien/egg/alpha,
/turf/open/auto_turf/sand_white/layer0,
/area/lv522/outdoors/w_rockies)
"pYf" = (
@@ -40363,7 +40907,8 @@
/area/lv522/outdoors/colony_streets/central_streets)
"qbL" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
- dir = 1
+ dir = 1;
+ name = "\improper A-Block Dorms And Office Airlock"
},
/turf/open/floor/corsat{
icon_state = "marked"
@@ -40471,6 +41016,15 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood,
/area/lv522/indoors/c_block/casino)
+"qdV" = (
+/obj/structure/barricade/sandbags{
+ dir = 8
+ },
+/obj/item/trash/uscm_mre,
+/turf/open/asphalt/cement{
+ icon_state = "cement3"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"qer" = (
/obj/structure/prop/invuln/minecart_tracks{
layer = 2.6
@@ -40561,6 +41115,10 @@
/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest,
/turf/open/floor/corsat,
/area/lv522/atmos/east_reactor/south)
+"qhk" = (
+/obj/structure/girder,
+/turf/open/floor/plating,
+/area/lv522/indoors/lone_buildings/storage_blocks)
"qhm" = (
/obj/structure/machinery/light/small{
dir = 4
@@ -41410,6 +41968,10 @@
icon_state = "darkpurplefull2"
},
/area/lv522/indoors/a_block/dorms)
+"qxe" = (
+/obj/item/prop/colony/used_flare,
+/turf/open/asphalt/cement,
+/area/lv522/outdoors/colony_streets/north_street)
"qxf" = (
/obj/effect/decal/cleanable/dirt,
/turf/closed/wall/strata_outpost,
@@ -41712,6 +42274,10 @@
/obj/item/trash/plate,
/turf/open/floor/prison,
/area/lv522/indoors/a_block/dorms)
+"qBH" = (
+/obj/structure/cargo_container/wy/left,
+/turf/open/floor/plating,
+/area/lv522/outdoors/colony_streets/north_east_street)
"qBQ" = (
/obj/structure/prop/invuln/ice_prefab/standalone/trim{
icon_state = "white_trim"
@@ -42514,7 +43080,9 @@
/turf/open/floor/plating,
/area/lv522/landing_zone_1/tunnel)
"qPS" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic,
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper A-Block Corporate Office Airlock"
+ },
/turf/open/floor/corsat{
icon_state = "marked"
},
@@ -43803,6 +44371,18 @@
icon_state = "cement3"
},
/area/lv522/outdoors/colony_streets/central_streets)
+"rjD" = (
+/obj/item/tool/lighter/zippo{
+ layer = 3.1;
+ pixel_x = 12;
+ pixel_y = 18
+ },
+/obj/effect/spawner/gibspawner/xeno,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"rjJ" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -43859,6 +44439,7 @@
/area/lv522/outdoors/colony_streets/windbreaker/observation)
"rlE" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper A-Block Security Airlock";
welded = 1
},
/turf/open/floor/corsat{
@@ -43900,6 +44481,22 @@
icon_state = "radiator_tile2"
},
/area/lv522/indoors/a_block/bridges)
+"rmk" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/obj/item/weapon/gun/launcher/grenade/m81/m79,
+/turf/open/floor/prison{
+ icon_state = "darkredfull2"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
+"rmm" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/lv522/indoors/lone_buildings/storage_blocks)
"rmp" = (
/obj/structure/largecrate/random/barrel/red,
/turf/open/floor/plating,
@@ -44002,6 +44599,10 @@
icon_state = "cement12"
},
/area/lv522/landing_zone_1)
+"rnX" = (
+/obj/structure/largecrate/random/barrel,
+/turf/open/floor/plating,
+/area/lv522/landing_zone_1/tunnel)
"rod" = (
/obj/structure/pipes/vents/pump,
/obj/effect/decal/cleanable/dirt,
@@ -44544,7 +45145,7 @@
},
/area/lv522/indoors/a_block/hallway)
"ryb" = (
-/obj/structure/largecrate/random/barrel/red,
+/obj/item/prop/colony/used_flare,
/turf/open/floor/prison{
icon_state = "floor_plate"
},
@@ -44601,7 +45202,7 @@
},
/area/lv522/landing_zone_1)
"ryW" = (
-/obj/structure/largecrate/random/secure,
+/obj/item/stack/sandbags_empty/small_stack,
/turf/open/floor/prison{
icon_state = "floor_plate"
},
@@ -44662,10 +45263,6 @@
/obj/structure/platform{
dir = 4
},
-/obj/structure/machinery/door/poddoor/shutters/almayer{
- id = "UD6 East";
- indestructible = 1
- },
/turf/open/floor/plating,
/area/lv522/landing_zone_forecon/UD6_Tornado)
"rAu" = (
@@ -44705,6 +45302,12 @@
},
/turf/open/auto_turf/sand_white/layer0,
/area/lv522/landing_zone_2)
+"rBg" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/asphalt/cement{
+ icon_state = "cement4"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"rBy" = (
/obj/effect/landmark/objective_landmark/medium,
/obj/effect/decal/cleanable/dirt,
@@ -44841,10 +45444,7 @@
},
/area/lv522/indoors/c_block/t_comm)
"rEo" = (
-/obj/structure/machinery/colony_floodlight{
- layer = 4.3;
- pixel_y = 9
- },
+/obj/structure/machinery/colony_floodlight,
/turf/open/floor/corsat{
icon_state = "marked"
},
@@ -45047,7 +45647,9 @@
},
/area/lv522/outdoors/colony_streets/south_west_street)
"rJz" = (
-/obj/structure/machinery/door/airlock/almayer/generic,
+/obj/structure/machinery/door/airlock/almayer/generic{
+ name = "\improper A-Block Fitness Centre Airlock"
+ },
/turf/open/floor/corsat{
icon_state = "marked"
},
@@ -45060,6 +45662,17 @@
/obj/item/stack/rods,
/turf/open/floor/plating,
/area/lv522/indoors/c_block/cargo)
+"rJG" = (
+/obj/structure/barricade/deployable{
+ dir = 1
+ },
+/obj/structure/barricade/deployable{
+ dir = 8
+ },
+/turf/open/asphalt/cement{
+ icon_state = "cement2"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"rJH" = (
/obj/structure/surface/table/almayer,
/obj/structure/pipes/standard/simple/hidden/green,
@@ -45456,6 +46069,7 @@
/area/lv522/indoors/b_block/bar)
"rRc" = (
/obj/structure/machinery/door/airlock/almayer/generic{
+ name = "\improper C-Block - Cargo Airlock";
welded = 1
},
/obj/structure/pipes/standard/simple/hidden/green{
@@ -45610,6 +46224,17 @@
icon_state = "floor_plate"
},
/area/lv522/indoors/b_block/bar)
+"rSQ" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/trash/uscm_mre,
+/turf/open/floor/prison{
+ icon_state = "darkredfull2"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"rSW" = (
/obj/structure/prop/ice_colony/dense/planter_box{
dir = 8
@@ -45677,6 +46302,20 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/prison,
/area/lv522/indoors/a_block/admin)
+"rUJ" = (
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ dir = 1;
+ name = "\improper A-Block Security Airlock"
+ },
+/obj/structure/machinery/door/poddoor/shutters/almayer/open{
+ dir = 4;
+ id = "Sec-Kitchen-Lockdown";
+ name = "\improper Storm Shutters"
+ },
+/turf/open/floor/corsat{
+ icon_state = "marked"
+ },
+/area/lv522/indoors/a_block/kitchen)
"rUX" = (
/obj/structure/shuttle/engine/heater{
dir = 4;
@@ -45832,14 +46471,9 @@
/turf/open/asphalt/cement,
/area/lv522/outdoors/colony_streets/north_street)
"rYp" = (
-/obj/structure/largecrate/random/mini{
- pixel_x = 10;
- pixel_y = 4
- },
-/turf/open/floor/prison{
- icon_state = "floor_plate"
- },
-/area/lv522/outdoors/colony_streets/north_street)
+/obj/effect/spawner/gibspawner/human,
+/turf/open/auto_turf/shale/layer2,
+/area/lv522/outdoors/w_rockies)
"rYq" = (
/obj/structure/platform,
/obj/structure/platform{
@@ -45948,6 +46582,8 @@
"sau" = (
/obj/structure/closet/crate,
/obj/effect/decal/cleanable/dirt,
+/obj/item/tank/emergency_oxygen/double,
+/obj/item/tank/emergency_oxygen/double,
/turf/open/floor/prison{
icon_state = "floor_plate"
},
@@ -46525,6 +47161,7 @@
"skn" = (
/obj/structure/machinery/door/airlock/almayer/generic{
dir = 2;
+ name = "\improper A-Block Dorms And Office Airlock";
welded = 1
},
/obj/structure/pipes/standard/simple/hidden/green,
@@ -46546,7 +47183,8 @@
/area/lv522/landing_zone_forecon/UD6_Tornado)
"skQ" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
- dir = 1
+ dir = 1;
+ name = "\improper A-Block Fitness Centre Airlock"
},
/turf/open/floor/corsat{
icon_state = "marked"
@@ -46715,10 +47353,7 @@
"snI" = (
/obj/structure/machinery/floodlight,
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/prison{
- dir = 4;
- icon_state = "cell_stripe"
- },
+/turf/open/floor/plating,
/area/lv522/indoors/lone_buildings/storage_blocks)
"snP" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
@@ -46872,6 +47507,12 @@
icon_state = "cement15"
},
/area/lv522/outdoors/colony_streets/central_streets)
+"sqr" = (
+/obj/structure/girder,
+/turf/open/asphalt/cement{
+ icon_state = "cement3"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"sqH" = (
/obj/structure/machinery/door_display/research_cell{
dir = 8;
@@ -47120,7 +47761,8 @@
/area/lv522/atmos/east_reactor)
"swf" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
- dir = 1
+ dir = 1;
+ name = "\improper C-Block - Cargo Airlock"
},
/turf/open/floor/corsat{
icon_state = "marked"
@@ -47778,6 +48420,14 @@
/obj/item/key/cargo_train,
/turf/open/floor/prison,
/area/lv522/indoors/c_block/cargo)
+"sJP" = (
+/obj/item/ammo_magazine/rifle/heap{
+ current_rounds = 0
+ },
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"sKa" = (
/obj/effect/decal/cleanable/blood/xeno,
/turf/open/asphalt/cement{
@@ -47979,8 +48629,8 @@
/turf/open/floor/plating,
/area/lv522/indoors/c_block/garage)
"sLT" = (
-/obj/structure/largecrate/random/case,
/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/emcloset,
/turf/open/floor/plating,
/area/lv522/landing_zone_1/tunnel)
"sLU" = (
@@ -48560,10 +49210,13 @@
},
/area/lv522/indoors/c_block/cargo)
"sUN" = (
-/obj/structure/largecrate/random/barrel/yellow,
/obj/effect/decal/warning_stripes{
icon_state = "S"
},
+/obj/structure/barricade/deployable,
+/obj/item/weapon/gun/rifle/m41a{
+ current_mag = null
+ },
/turf/open/floor/prison{
icon_state = "darkredfull2"
},
@@ -49256,6 +49909,13 @@
icon_state = "cement1"
},
/area/lv522/landing_zone_2)
+"tkC" = (
+/obj/structure/stairs/perspective{
+ icon_state = "p_stair_full"
+ },
+/obj/structure/largecrate/random,
+/turf/open/floor/plating,
+/area/lv522/landing_zone_1/tunnel)
"tkL" = (
/obj/structure/prop/server_equipment/yutani_server{
density = 0;
@@ -49319,8 +49979,19 @@
/obj/structure/platform,
/turf/open/gm/river,
/area/lv522/landing_zone_1/tunnel)
+"tlF" = (
+/obj/item/ammo_magazine/rifle/heap{
+ current_rounds = 0
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/prison{
+ icon_state = "floor_plate"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"tlM" = (
-/obj/structure/machinery/door/airlock/almayer/generic,
+/obj/structure/machinery/door/airlock/almayer/generic{
+ name = "\improper C-Block - Garage Airlock"
+ },
/turf/open/floor/corsat{
icon_state = "marked"
},
@@ -49353,6 +50024,7 @@
/area/lv522/indoors/a_block/fitness)
"tms" = (
/obj/structure/largecrate/random,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/lv522/indoors/c_block/mining)
"tmy" = (
@@ -49366,6 +50038,7 @@
/area/lv522/indoors/b_block/bridge)
"tmA" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper B-Block - Hydroponics Airlock";
welded = 1
},
/obj/structure/machinery/door/poddoor/shutters/almayer/open{
@@ -49591,7 +50264,9 @@
},
/area/lv522/atmos/east_reactor/south)
"tqG" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic,
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper A-Block - Colony Operations Centre Airlock"
+ },
/obj/structure/pipes/standard/simple/hidden/green{
dir = 1
},
@@ -50160,15 +50835,6 @@
icon_state = "whitegreenfull"
},
/area/lv522/indoors/a_block/fitness)
-"tBT" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
- dir = 1;
- name = "\improper Eastlock"
- },
-/turf/open/floor/corsat{
- icon_state = "marked"
- },
-/area/lv522/indoors/a_block/hallway)
"tCa" = (
/obj/item/trash/uscm_mre{
pixel_x = 10;
@@ -50230,7 +50896,8 @@
/area/lv522/landing_zone_forecon/UD6_Tornado)
"tDq" = (
/obj/structure/machinery/door/airlock/almayer/generic{
- dir = 1
+ dir = 1;
+ name = "\improper A-Block Fitness Centre Airlock"
},
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor/corsat{
@@ -50399,6 +51066,12 @@
},
/turf/open/floor/wood,
/area/lv522/indoors/c_block/casino)
+"tFC" = (
+/obj/structure/barricade/wooden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/lv522/landing_zone_1/tunnel)
"tFZ" = (
/obj/structure/surface/table/almayer,
/obj/item/paper_bin{
@@ -50433,7 +51106,7 @@
/area/lv522/outdoors/colony_streets/north_street)
"tGm" = (
/obj/structure/machinery/door/airlock/almayer/generic{
- name = "\improper Corporate Liason"
+ name = "\improper Corporate Liason Office "
},
/turf/open/floor/corsat{
icon_state = "marked"
@@ -50550,6 +51223,11 @@
icon_state = "cement4"
},
/area/lv522/outdoors/colony_streets/east_central_street)
+"tIQ" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/auto_turf/sand_white/layer0,
+/area/lv522/outdoors/colony_streets/north_street)
"tIT" = (
/obj/structure/pipes/standard/simple/hidden/green,
/obj/structure/machinery/door/poddoor/shutters/almayer/open{
@@ -50993,7 +51671,7 @@
"tQE" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
dir = 1;
- name = "\improper Canteen"
+ name = "\improper A-Block Canteen Airlock"
},
/obj/structure/machinery/door/poddoor/shutters/almayer/open{
dir = 4;
@@ -51017,6 +51695,10 @@
icon_state = "marked"
},
/area/lv522/indoors/a_block/bridges)
+"tRu" = (
+/obj/structure/cargo_container/wy/mid,
+/turf/open/floor/plating,
+/area/lv522/outdoors/colony_streets/north_east_street)
"tRI" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/computer/cameras/wooden_tv{
@@ -51065,6 +51747,10 @@
icon_state = "73"
},
/area/lv522/landing_zone_forecon/UD6_Tornado)
+"tSF" = (
+/obj/item/trash/uscm_mre,
+/turf/open/auto_turf/sand_white/layer0,
+/area/lv522/outdoors/colony_streets/north_street)
"tSJ" = (
/obj/structure/machinery/light/double{
dir = 8;
@@ -51238,6 +51924,14 @@
icon_state = "cement4"
},
/area/lv522/outdoors/colony_streets/north_east_street)
+"tWy" = (
+/obj/item/ammo_magazine/rifle/heap{
+ current_rounds = 0
+ },
+/turf/open/asphalt/cement{
+ icon_state = "cement3"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"tWC" = (
/obj/structure/closet/firecloset/full,
/turf/open/floor/prison{
@@ -51328,6 +52022,7 @@
dir = 6;
icon_state = "p_stair_full"
},
+/obj/structure/largecrate/random/barrel,
/turf/open/floor/plating,
/area/lv522/landing_zone_1/tunnel)
"tXW" = (
@@ -52160,7 +52855,8 @@
/area/lv522/indoors/c_block/cargo)
"unE" = (
/obj/structure/machinery/door/airlock/almayer/generic{
- dir = 2
+ dir = 2;
+ name = "\improper A-Block - Colony Operations Centre Airlock"
},
/turf/open/floor/corsat{
icon_state = "marked"
@@ -52573,6 +53269,13 @@
icon_state = "white_cyan1"
},
/area/lv522/indoors/a_block/corpo/glass)
+"uuy" = (
+/obj/effect/decal/cleanable/blood/xeno{
+ icon_state = "xgib3"
+ },
+/obj/effect/spawner/gibspawner/xeno,
+/turf/open/asphalt/cement,
+/area/lv522/outdoors/colony_streets/north_street)
"uuA" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/machinery/space_heater/radiator/red{
@@ -52656,6 +53359,12 @@
icon_state = "white_cyan3"
},
/area/lv522/indoors/a_block/medical/glass)
+"uvJ" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/asphalt/cement{
+ icon_state = "cement3"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"uwb" = (
/obj/structure/machinery/light/double,
/turf/open/asphalt/cement{
@@ -52749,6 +53458,14 @@
/area/lv522/indoors/c_block/garage)
"uye" = (
/obj/structure/largecrate/random,
+/obj/item/storage/box/packet/high_explosive{
+ pixel_x = -5;
+ pixel_y = -14
+ },
+/obj/item/storage/pill_bottle/packet/oxycodone{
+ pixel_x = -1;
+ pixel_y = 8
+ },
/turf/open/floor/prison{
icon_state = "floor_plate"
},
@@ -52931,7 +53648,10 @@
/turf/open/floor/corsat,
/area/lv522/atmos/east_reactor/east)
"uDF" = (
-/obj/structure/largecrate/random,
+/obj/item/trash/uscm_mre{
+ pixel_x = 12;
+ pixel_y = -7
+ },
/turf/open/floor/prison,
/area/lv522/outdoors/colony_streets/north_street)
"uDM" = (
@@ -52961,6 +53681,13 @@
},
/turf/open/floor/plating/plating_catwalk/prison,
/area/lv522/indoors/b_block/bridge)
+"uEj" = (
+/obj/structure/platform{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/blood/xeno,
+/turf/open/floor/plating,
+/area/lv522/landing_zone_1/tunnel)
"uEl" = (
/obj/structure/machinery/conveyor{
dir = 10;
@@ -53383,6 +54110,11 @@
icon_state = "marked"
},
/area/lv522/indoors/a_block/kitchen/glass)
+"uKk" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/largecrate/random/case,
+/turf/open/floor/plating,
+/area/lv522/landing_zone_1/tunnel)
"uKw" = (
/obj/structure/bed/chair{
dir = 1
@@ -53713,6 +54445,13 @@
icon_state = "floor_plate"
},
/area/lv522/indoors/c_block/mining)
+"uQa" = (
+/obj/item/trash/uscm_mre,
+/obj/structure/surface/table/almayer,
+/turf/open/asphalt/cement{
+ icon_state = "cement3"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"uQf" = (
/obj/structure/platform{
dir = 1
@@ -53883,7 +54622,7 @@
"uSI" = (
/obj/structure/machinery/door/airlock/almayer/generic{
dir = 1;
- name = "\improper Corporate Liason"
+ name = "\improper A-Block Corporate Office Airlock"
},
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor/corsat{
@@ -54066,6 +54805,9 @@
icon_state = "floor_marked"
},
/area/lv522/landing_zone_1)
+"uVS" = (
+/turf/open/floor/plating,
+/area/lv522/indoors/lone_buildings/storage_blocks)
"uVU" = (
/obj/structure/surface/table/almayer,
/obj/item/paper_bin/wy{
@@ -54479,6 +55221,10 @@
icon_state = "darkbrownfull2"
},
/area/lv522/indoors/c_block/cargo)
+"veA" = (
+/obj/structure/largecrate/random/case,
+/turf/open/floor/plating,
+/area/lv522/landing_zone_1/tunnel)
"veD" = (
/obj/structure/surface/rack,
/obj/structure/machinery/light{
@@ -54660,7 +55406,7 @@
"vil" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
dir = 1;
- name = "\improper Colony Marshals"
+ name = "\improper A-Block Security Airlock"
},
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -54925,7 +55671,9 @@
},
/area/lv522/indoors/a_block/fitness)
"vmp" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic,
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper C-Block - Casino Airlock"
+ },
/turf/open/floor/corsat{
icon_state = "marked"
},
@@ -54947,6 +55695,12 @@
icon_state = "darkbrownfull2"
},
/area/lv522/indoors/c_block/cargo)
+"vmM" = (
+/obj/structure/girder,
+/turf/open/asphalt/cement{
+ icon_state = "cement12"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"vmQ" = (
/obj/structure/prop/invuln/ice_prefab/trim{
dir = 6
@@ -55000,7 +55754,8 @@
/area/lv522/indoors/a_block/bridges/op_centre)
"vnB" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
- dir = 1
+ dir = 1;
+ name = "\improper A-Block Corporate Office Airlock"
},
/turf/open/floor/corsat{
icon_state = "marked"
@@ -55415,6 +56170,12 @@
icon_state = "marked"
},
/area/lv522/landing_zone_1/ceiling)
+"vuF" = (
+/obj/vehicle/powerloader,
+/turf/open/shuttle/dropship{
+ icon_state = "rasputin3"
+ },
+/area/lv522/landing_zone_forecon/UD6_Tornado)
"vuH" = (
/obj/structure/largecrate,
/obj/effect/landmark/lv624/fog_blocker/short,
@@ -55480,6 +56241,13 @@
icon_state = "blue_plate"
},
/area/lv522/indoors/a_block/admin)
+"vwW" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/barricade/deployable{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/lv522/landing_zone_1/tunnel)
"vxa" = (
/obj/structure/closet/crate,
/obj/item/clothing/under/colonist,
@@ -55550,7 +56318,9 @@
/turf/open/floor/prison,
/area/lv522/indoors/a_block/dorms)
"vxT" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic,
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper A-Block - Colony Operations Centre Airlock"
+ },
/obj/structure/pipes/standard/simple/hidden/green{
dir = 1
},
@@ -55577,7 +56347,8 @@
/area/lv522/indoors/a_block/medical)
"vyk" = (
/obj/structure/machinery/door/airlock/almayer/generic{
- dir = 1
+ dir = 1;
+ name = "\improper C-Block - Cargo Airlock"
},
/turf/open/floor/corsat{
icon_state = "marked"
@@ -55679,7 +56450,8 @@
/area/lv522/outdoors/colony_streets/north_west_street)
"vzE" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
- dir = 1
+ dir = 1;
+ name = "\improper B-Block Bar"
},
/turf/open/floor/corsat{
icon_state = "marked"
@@ -55810,8 +56582,7 @@
/area/lv522/indoors/c_block/garage)
"vCv" = (
/obj/structure/machinery/door/airlock/almayer/generic{
- name = "\improper Dormitories";
- welded = null
+ name = "\improper A-Block Shared Dorms Airlock"
},
/turf/open/floor/corsat{
icon_state = "marked"
@@ -56010,7 +56781,9 @@
},
/area/lv522/indoors/a_block/dorms)
"vFS" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic,
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper A-Block Fitness Centre Airlock"
+ },
/turf/open/floor/corsat{
icon_state = "marked"
},
@@ -56296,7 +57069,9 @@
"vKm" = (
/obj/structure/pipes/standard/simple/hidden/green,
/obj/effect/decal/cleanable/dirt,
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic,
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper B-Block - Hydroponics Airlock"
+ },
/obj/structure/machinery/door/poddoor/shutters/almayer/open{
id = "LV_522_Hydro-Lockdown";
name = "\improper Storm Shutters"
@@ -56402,7 +57177,9 @@
},
/area/lv522/indoors/c_block/casino)
"vLW" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic,
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper C-Block - Cargo Airlock"
+ },
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor/corsat{
icon_state = "marked"
@@ -56555,7 +57332,7 @@
"vOR" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
dir = 1;
- name = "\improper Corporation Office";
+ name = "\improper A-Block Corporate Office Airlock";
req_access_txt = "100"
},
/obj/structure/pipes/standard/simple/hidden/green{
@@ -56630,7 +57407,7 @@
"vPA" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
dir = 1;
- name = "\improper Corporation Office";
+ name = "\improper A-Block Corporate Office Airlock";
req_access_txt = "100"
},
/obj/structure/pipes/standard/simple/hidden/green{
@@ -56988,6 +57765,7 @@
"vWp" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
dir = 1;
+ name = "\improper C-Block - Casino Airlock";
welded = 1
},
/turf/open/floor/corsat{
@@ -57575,6 +58353,18 @@
icon_state = "darkpurplefull2"
},
/area/lv522/indoors/a_block/dorms)
+"whp" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 1
+ },
+/obj/structure/barricade/metal{
+ dir = 1
+ },
+/turf/open/floor/prison{
+ icon_state = "darkredfull2"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"whs" = (
/obj/structure/surface/rack,
/obj/effect/decal/cleanable/dirt,
@@ -58151,6 +58941,13 @@
icon_state = "darkredfull2"
},
/area/lv522/indoors/a_block/security)
+"wtO" = (
+/obj/structure/barricade/deployable,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/asphalt/cement{
+ icon_state = "cement12"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"wtT" = (
/obj/structure/cargo_container/grant/rightmid,
/turf/open/floor/plating{
@@ -58801,6 +59598,16 @@
/area/lv522/indoors/c_block/cargo)
"wFC" = (
/obj/structure/largecrate/random/secure,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/lv522/indoors/c_block/mining)
+"wFL" = (
+/obj/structure/prop/invuln/overhead_pipe{
+ dir = 8;
+ pixel_x = -6;
+ pixel_y = 6
+ },
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/lv522/indoors/c_block/mining)
"wFP" = (
@@ -59143,6 +59950,15 @@
icon_state = "darkyellowfull2"
},
/area/lv522/indoors/lone_buildings/engineering)
+"wOq" = (
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ dir = 1;
+ name = "\improper C-Block - Garage Airlock"
+ },
+/turf/open/floor/corsat{
+ icon_state = "marked"
+ },
+/area/lv522/indoors/c_block/bridge)
"wOu" = (
/obj/structure/pipes/standard/manifold/hidden/green{
dir = 8
@@ -59175,8 +59991,7 @@
/area/lv522/indoors/lone_buildings/outdoor_bot)
"wPA" = (
/obj/structure/machinery/door/airlock/almayer/generic{
- name = "\improper Dormitories";
- welded = null
+ name = "\improper A-Block Shared Dorms Airlock"
},
/turf/open/floor/corsat{
icon_state = "marked"
@@ -59318,7 +60133,9 @@
/turf/open/floor/prison,
/area/lv522/indoors/a_block/kitchen/glass)
"wSz" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic,
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper A-Block - Colony Operations Centre Airlock"
+ },
/obj/structure/pipes/standard/simple/hidden/green,
/obj/structure/machinery/door/poddoor/shutters/almayer/open{
id = "LV522CIC_1";
@@ -59343,6 +60160,9 @@
icon_state = "N";
pixel_y = 1
},
+/obj/item/weapon/gun/rifle/m41a{
+ current_mag = null
+ },
/turf/open/floor/prison{
icon_state = "darkredfull2"
},
@@ -59938,6 +60758,10 @@
},
/turf/open/floor/plating,
/area/lv522/outdoors/colony_streets/north_east_street)
+"xfD" = (
+/obj/item/prop/colony/used_flare,
+/turf/open/auto_turf/shale/layer1,
+/area/lv522/outdoors/colony_streets/north_street)
"xfS" = (
/obj/structure/surface/table/woodentable/fancy,
/obj/structure/transmitter/colony_net{
@@ -60052,6 +60876,14 @@
icon_state = "darkredfull2"
},
/area/lv522/indoors/a_block/security/glass)
+"xhz" = (
+/obj/item/ammo_magazine/rifle/heap{
+ current_rounds = 0
+ },
+/turf/open/asphalt/cement{
+ icon_state = "cement1"
+ },
+/area/lv522/outdoors/colony_streets/north_street)
"xhB" = (
/obj/structure/closet/firecloset/full,
/turf/open/floor/prison{
@@ -60089,6 +60921,7 @@
/area/lv522/landing_zone_forecon/UD6_Typhoon)
"xig" = (
/obj/structure/closet/crate,
+/obj/item/storage/xeno_tag_case,
/turf/open/floor/prison{
icon_state = "floor_plate"
},
@@ -60551,7 +61384,9 @@
/turf/open/floor/wood,
/area/lv522/indoors/a_block/executive)
"xsi" = (
-/obj/structure/machinery/door/airlock/almayer/generic,
+/obj/structure/machinery/door/airlock/almayer/generic{
+ name = "\improper C-Block - Garage Airlock"
+ },
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
},
@@ -60603,12 +61438,9 @@
},
/area/lv522/indoors/a_block/admin)
"xto" = (
-/obj/item/tool/shovel/etool,
-/obj/structure/pipes/standard/simple/hidden/green{
- dir = 4
- },
-/turf/open/floor/plating/plating_catwalk/prison,
-/area/lv522/indoors/b_block/bridge)
+/obj/item/storage/pouch/autoinjector/full,
+/turf/open/auto_turf/shale/layer2,
+/area/lv522/outdoors/w_rockies)
"xtO" = (
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
@@ -60775,6 +61607,7 @@
pixel_y = 6
},
/obj/structure/largecrate/random,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/lv522/indoors/c_block/mining)
"xxJ" = (
@@ -60841,6 +61674,11 @@
icon_state = "cement1"
},
/area/lv522/outdoors/colony_streets/central_streets)
+"xyU" = (
+/obj/structure/surface/table/almayer,
+/obj/item/map/lv522_map,
+/turf/open/auto_turf/sand_white/layer0,
+/area/lv522/outdoors/colony_streets/north_street)
"xzj" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/machinery/light{
@@ -61041,6 +61879,10 @@
"xDu" = (
/turf/open/floor/plating/plating_catwalk/prison,
/area/lv522/indoors/a_block/corpo/glass)
+"xDz" = (
+/obj/effect/spawner/gibspawner/xeno,
+/turf/open/auto_turf/shale/layer1,
+/area/lv522/outdoors/colony_streets/north_street)
"xDC" = (
/obj/structure/prop/invuln/ice_prefab{
dir = 1;
@@ -61244,7 +62086,10 @@
pixel_y = 8
},
/obj/effect/decal/cleanable/dirt,
-/obj/item/stack/sheet/metal/medium_stack,
+/obj/item/stack/sheet/metal/small_stack,
+/obj/item/ore/slag,
+/obj/item/ore/slag,
+/obj/item/ore/slag,
/turf/open/floor/prison,
/area/lv522/indoors/c_block/mining)
"xHr" = (
@@ -61532,7 +62377,8 @@
/area/lv522/landing_zone_forecon/UD6_Tornado)
"xNw" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
- dir = 1
+ dir = 1;
+ name = "\improper A-Block - Colony Operations Centre Airlock"
},
/turf/open/floor/corsat{
icon_state = "marked"
@@ -61720,6 +62566,13 @@
icon_state = "floor_plate"
},
/area/lv522/indoors/a_block/hallway)
+"xQZ" = (
+/obj/effect/decal/cleanable/blood/xeno{
+ icon_state = "xgib3"
+ },
+/obj/effect/spawner/gibspawner/xeno,
+/turf/open/auto_turf/sand_white/layer0,
+/area/lv522/outdoors/colony_streets/north_street)
"xRg" = (
/obj/structure/bed/chair/comfy{
dir = 1
@@ -61807,7 +62660,9 @@
},
/area/lv522/indoors/a_block/dorms/glass)
"xRI" = (
-/obj/structure/machinery/door/airlock/almayer/generic,
+/obj/structure/machinery/door/airlock/almayer/generic{
+ name = "\improper C-Block - Radio Tower Airlock"
+ },
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
},
@@ -62114,6 +62969,11 @@
"xXg" = (
/turf/open/asphalt/cement,
/area/lv522/outdoors/colony_streets/east_central_street)
+"xXh" = (
+/turf/open/floor/plating{
+ icon_state = "platingdmg1"
+ },
+/area/lv522/indoors/lone_buildings/storage_blocks)
"xXo" = (
/obj/structure/surface/table/almayer,
/obj/structure/bed/chair{
@@ -62642,7 +63502,9 @@
},
/area/lv522/outdoors/colony_streets/windbreaker/observation)
"ygJ" = (
-/obj/structure/machinery/door/airlock/multi_tile/almayer/generic,
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper A-Block Dorms And Office Airlock"
+ },
/turf/open/floor/corsat{
icon_state = "marked"
},
@@ -62827,6 +63689,12 @@
icon_state = "E";
pixel_x = 1
},
+/obj/structure/barricade/metal{
+ dir = 1
+ },
+/obj/structure/barricade/metal{
+ dir = 4
+ },
/turf/open/floor/prison{
icon_state = "darkredfull2"
},
@@ -66505,7 +67373,7 @@ vhd
sRA
sRA
sRA
-rWS
+rYp
ien
cpy
cpy
@@ -66731,8 +67599,8 @@ rFp
vhC
uiK
uiK
-sRA
-rWS
+gxe
+xto
ien
ien
ien
@@ -66958,7 +67826,7 @@ tbl
vhJ
uiK
sRA
-sRA
+odi
ien
ien
jTJ
@@ -67185,7 +68053,7 @@ uEX
vhO
hPM
uiK
-uiK
+oow
ien
sON
ezH
@@ -67456,7 +68324,7 @@ pck
hYf
erS
sau
-xig
+kSh
ofS
ylo
ien
@@ -67911,9 +68779,9 @@ isG
vBM
hYf
wHi
-vBM
-yfu
-ylo
+jAA
+loX
+aId
ien
ien
vXc
@@ -68137,10 +69005,10 @@ bZd
yfu
yfu
bZd
-yfu
-bZd
-wHi
-ylo
+loX
+rmm
+gRl
+uVS
ien
vXc
vXc
@@ -68363,11 +69231,11 @@ yfu
bZd
bZd
yfu
-yfu
-bZd
-bZd
-yfu
-ylo
+cQv
+gRl
+gRl
+xXh
+qhk
ien
vXc
vXc
@@ -68591,10 +69459,10 @@ yfu
bZd
bZd
bZd
-yfu
-bZd
-yfu
-ylo
+nvA
+gRl
+cQv
+loX
ien
ien
vXc
@@ -70164,7 +71032,7 @@ nLm
nLm
nLm
eBA
-jNk
+qbL
nLm
nLm
nLm
@@ -70840,7 +71708,7 @@ clY
sjY
sjY
oNQ
-ltI
+ygJ
vJT
uOs
tUM
@@ -70849,7 +71717,7 @@ uOs
tUM
uOs
kcS
-ltI
+ygJ
spo
yiM
yiM
@@ -73431,10 +74299,10 @@ kEl
peM
jba
bPJ
-mJs
-wfP
+ayf
+aKE
wfP
-jJF
+cbb
sLT
bPJ
cpy
@@ -73659,10 +74527,10 @@ hTe
jFl
aQH
mJs
+ous
wfP
wfP
-wfP
-jJF
+uKk
bPJ
bPJ
cpy
@@ -73887,10 +74755,10 @@ sHd
bPJ
eeb
wfP
+bgw
wfP
wfP
-wfP
-wfP
+pSh
bPJ
bPJ
cpy
@@ -74026,7 +74894,7 @@ esa
qvJ
jDJ
osU
-doq
+pxp
enP
dnM
dnM
@@ -74113,7 +74981,7 @@ bPJ
bPJ
bPJ
bPJ
-wfP
+veA
wfP
wfP
wfP
@@ -74344,7 +75212,7 @@ qxf
wfP
wfP
wfP
-wfP
+aKE
sRM
bPJ
cpy
@@ -74795,10 +75663,10 @@ cpy
cpy
bPJ
bPJ
+nkm
wfP
wfP
-wfP
-jJF
+vwW
wfP
bPJ
cpy
@@ -75023,9 +75891,9 @@ cpy
cpy
bPJ
bPJ
-wfP
-wfP
-wfP
+bQP
+omv
+lFM
bPJ
bPJ
cpy
@@ -75479,7 +76347,7 @@ cpy
bPJ
bPJ
wfP
-wfP
+bgw
bPJ
bPJ
cpy
@@ -75707,7 +76575,7 @@ cpy
bPJ
wfP
wfP
-wfP
+bgw
bPJ
cpy
bMX
@@ -75932,7 +76800,7 @@ cpy
cpy
cpy
bPJ
-jJF
+gMT
wfP
fvn
bPJ
@@ -76613,7 +77481,7 @@ max
osN
bPJ
oeN
-bLA
+byb
wfP
hiL
bPJ
@@ -76840,7 +77708,7 @@ max
osN
bPJ
awm
-wfP
+tFC
wfP
wfP
bPJ
@@ -77066,8 +77934,8 @@ max
max
osN
aQH
-awm
-wfP
+gsn
+tFC
wfP
bPJ
bPJ
@@ -77204,7 +78072,7 @@ qDR
dnM
sPk
pxS
-doq
+pxp
fqD
oFr
lOi
@@ -77296,7 +78164,7 @@ bPJ
cLB
esx
wfP
-iGD
+eLK
bPJ
cpy
bMX
@@ -77521,7 +78389,7 @@ pAj
fnA
bPJ
bPJ
-fCb
+uEj
jJF
bPJ
bPJ
@@ -78203,7 +79071,7 @@ cpy
cpy
bPJ
wfP
-wfP
+pSh
sRM
bPJ
cpy
@@ -78312,7 +79180,7 @@ xAO
xAO
xAO
xyL
-tvO
+ivY
ugV
hNR
xhL
@@ -78543,7 +79411,7 @@ tvO
ugV
hNR
ugV
-sSn
+cJg
yjm
nLm
lfe
@@ -78553,7 +79421,7 @@ nLm
ahP
wCC
fjr
-fjr
+xfD
fjr
fjr
bPH
@@ -78655,7 +79523,7 @@ vDL
wIr
wIr
bPJ
-guh
+mPV
wfP
wfP
bPJ
@@ -78771,11 +79639,11 @@ ugV
hNR
ugV
ugV
-sSn
+eSM
cHw
cHw
hhD
-hhD
+dhj
hhD
wCC
ugV
@@ -78875,15 +79743,15 @@ wIr
vDL
tog
fTP
-xto
-gxe
+xgH
+oLa
qzQ
hhI
vDL
wIr
wIr
-guh
-wfP
+dSJ
+pSh
wfP
bPJ
cpy
@@ -78997,7 +79865,7 @@ tvO
ugV
hNR
ugV
-ugV
+nDo
ugV
fjr
fjr
@@ -79006,7 +79874,7 @@ fjr
ugV
ugV
ugV
-ugV
+xQZ
ugV
ugV
fjr
@@ -79110,7 +79978,7 @@ hhI
lBd
wIr
guh
-wfP
+acC
wfP
bPJ
cpy
@@ -79226,6 +80094,7 @@ spe
hcX
vwi
vwi
+gRS
vwi
vwi
vwi
@@ -79234,8 +80103,7 @@ vwi
vwi
vwi
vwi
-vwi
-vwi
+pqX
nQx
rvx
fZy
@@ -79337,8 +80205,8 @@ hhI
hLx
wIr
hcG
-wfP
-wfP
+lgR
+aKE
bPJ
cpy
cpy
@@ -79448,25 +80316,25 @@ xAO
xAO
xtb
tvO
-ugV
+nDo
ugV
hNR
-xRK
-emH
-emH
-emH
-emH
-emH
-emH
-emH
-emH
-emH
+rJG
+mKK
+tWy
+lae
+uvJ
+gwU
+jeh
+qdV
+byD
+sqr
tNr
ugV
spe
nQx
fjr
-fjr
+xfD
crH
pQE
pQE
@@ -79563,9 +80431,9 @@ qzQ
aPu
jmv
ueY
-awm
-wfP
-wfP
+tkC
+rnX
+acC
bPJ
cpy
cpy
@@ -79678,18 +80546,18 @@ tEJ
fjr
ugV
hNR
-crH
+keA
wSW
+gvK
+nMP
+ovB
+ikp
cVR
-cVR
-cVR
-cVR
-cVR
-cVR
+ivs
nMP
eqb
-tvO
-ugV
+joV
+pqk
ugV
jXQ
nQx
@@ -79791,7 +80659,7 @@ aPu
pfq
wIr
tXS
-wfP
+acC
wfP
bPJ
cpy
@@ -79905,20 +80773,20 @@ wCC
fjr
ugV
hNR
-crH
+keA
vCy
+ryb
+ghE
+sJP
urY
urY
-urY
-rYp
-urY
-ryW
ryW
+fIr
sUN
-tvO
+bKu
+pqk
ugV
-ugV
-fjr
+ibS
jXQ
iKF
sQL
@@ -80017,7 +80885,7 @@ aPu
mOJ
wIr
wIr
-wfP
+lgR
wfP
jJF
bPJ
@@ -80131,23 +80999,23 @@ fjr
fjr
fjr
fjr
-hNR
-crH
-vCy
+fUQ
+rBg
+whp
uye
+naM
uAa
-uAa
-uAa
+fto
uDF
mQo
-odi
+urY
dHx
-tvO
+wtO
ugV
fjr
fjr
fjr
-fjr
+ibS
miz
tRd
xvW
@@ -80356,22 +81224,22 @@ fjr
fjr
fjr
cpy
+bKf
fjr
-fjr
-hNR
-crH
+nKZ
+rBg
iML
-uye
-urY
-urY
-urY
-uye
+kCQ
+rjD
+ryW
+tlF
+fIr
ryb
-oow
-sUN
-tvO
+urY
+dHx
+csl
ugV
-fjr
+xfD
cpy
fjr
fjr
@@ -80584,19 +81452,19 @@ fjr
cpy
cpy
cpy
-fjr
-jDO
+xDz
+bAn
crH
yjD
mIa
-mIa
-mIa
-mIa
+rSQ
+iaD
+rmk
mlY
cqL
oQV
ncs
-tvO
+vmM
fjr
fjr
cpy
@@ -80812,18 +81680,18 @@ cpy
cpy
cpy
cpy
-jDO
+dBQ
sSn
+xhz
hhD
+xhz
+nHM
+oMO
hhD
hhD
-hhD
-hhD
-hhD
-hhD
-hhD
-hhD
-wCC
+lQA
+fRw
+fUc
fjr
cpy
cpy
@@ -81039,19 +81907,19 @@ cpy
cpy
cpy
fjr
-jDO
-ugV
-ugV
+lRi
ugV
ugV
ugV
+xyU
+tSF
ugV
ugV
+pqk
+tIQ
ugV
ugV
-ugV
-ugV
-fjr
+gUT
cpy
cpy
cpy
@@ -81270,16 +82138,16 @@ hNR
ugV
xRK
emH
+uQa
+gLy
+aAX
emH
-emH
-emH
-emH
-emH
-tNr
-fjr
+uvJ
+fvc
fjr
fjr
fjr
+prs
cpy
fjr
fjr
@@ -81502,7 +82370,7 @@ sjy
sjy
sjy
sjy
-ahP
+evQ
tNr
fjr
fjr
@@ -81945,10 +82813,10 @@ xXR
emH
emH
tNr
-jDO
+dBQ
fjr
xRK
-ahP
+uuy
sjy
uxn
ckT
@@ -82401,7 +83269,7 @@ wrC
tvO
jDO
xRK
-ahP
+qxe
sjy
sjy
sjy
@@ -82968,7 +83836,7 @@ vpe
wHz
jas
nQu
-nQu
+bWv
jas
cpy
cpy
@@ -83875,7 +84743,7 @@ hBp
eso
vpe
jas
-nQu
+bWv
nQu
jas
cpy
@@ -84102,7 +84970,7 @@ cwe
vpe
oCs
jas
-nQu
+bWv
nQu
jas
cpy
@@ -86140,7 +87008,7 @@ bxr
iqV
iqV
xHj
-xHj
+gvU
boQ
vpe
tuK
@@ -88778,7 +89646,7 @@ sjy
kqb
kqb
mUS
-egP
+rUJ
kqb
kqb
pGl
@@ -90231,7 +91099,7 @@ phq
phq
qYq
jas
-nQu
+bWv
aEF
jas
cpy
@@ -90458,7 +91326,7 @@ eJd
ptU
jas
jas
-nQu
+bWv
aEF
jas
cpy
@@ -90905,8 +91773,8 @@ qHr
vpe
vxa
ppU
-nQu
-nQu
+bWv
+bWv
nQu
nQu
nQu
@@ -91133,12 +92001,12 @@ vpe
ahZ
jas
jas
-dLC
+mwn
xxz
pYO
pYO
-pYO
-pYO
+afa
+afa
nUF
jas
jas
@@ -92042,7 +92910,7 @@ ctE
ctE
ctE
jas
-aEF
+wFL
nQu
hbO
jas
@@ -92269,7 +93137,7 @@ ctE
ctE
ctE
jas
-aEF
+wFL
nQu
fZA
jas
@@ -96799,7 +97667,7 @@ wQa
dkX
rBd
nPb
-fdT
+iFe
rVR
hIf
rqn
@@ -96991,7 +97859,7 @@ wrY
xvl
xvl
lot
-aTR
+wOq
xvl
xvl
xWO
@@ -98539,7 +99407,7 @@ gdO
gdO
psC
ayn
-tBT
+xNw
psC
gdO
tTK
@@ -98572,7 +99440,7 @@ nKK
fzf
sHY
wao
-whs
+mEn
tID
uaI
wqA
@@ -98654,7 +99522,7 @@ tiQ
joK
cPU
daL
-fpS
+xcU
dLz
xcU
edk
@@ -100128,7 +100996,7 @@ gdO
gdO
gdO
ayn
-tBT
+xNw
gdO
gdO
gdO
@@ -102839,7 +103707,7 @@ uDM
tth
eTw
lVs
-qUL
+qBH
lAn
krH
nTp
@@ -103063,10 +103931,10 @@ tCR
fTm
uKQ
uKQ
-uKQ
+vuF
fbY
qUL
-qUL
+tRu
lAn
krH
nTp
@@ -103293,7 +104161,7 @@ vjs
tIF
rAt
gOZ
-iRl
+cJc
lAn
krH
nTp
diff --git a/maps/map_files/LV624/LV624.dmm b/maps/map_files/LV624/LV624.dmm
index 7aaff922baa9..336dc6a90212 100644
--- a/maps/map_files/LV624/LV624.dmm
+++ b/maps/map_files/LV624/LV624.dmm
@@ -1119,8 +1119,10 @@
},
/area/lv624/ground/barrens/containers)
"afu" = (
-/obj/structure/machinery/floodlight,
/obj/item/ammo_casing,
+/obj/structure/machinery/floodlight/landing{
+ name = "bolted floodlight"
+ },
/turf/open/floor/plating{
dir = 9;
icon_state = "warnplate"
@@ -1154,7 +1156,9 @@
},
/area/lv624/ground/barrens/central_barrens)
"afy" = (
-/obj/structure/machinery/floodlight,
+/obj/structure/machinery/floodlight/landing{
+ name = "bolted floodlight"
+ },
/turf/open/floor/plating{
dir = 5;
icon_state = "warnplate"
@@ -1205,11 +1209,6 @@
/obj/item/ammo_casing,
/turf/open/floor/plating,
/area/lv624/ground/barrens/central_barrens)
-"afM" = (
-/obj/structure/machinery/floodlight,
-/obj/effect/decal/cleanable/blood,
-/turf/open/floor/plating,
-/area/lv624/ground/barrens/central_barrens)
"afN" = (
/obj/item/ammo_casing,
/turf/open/floor/plating,
@@ -1389,10 +1388,6 @@
"agA" = (
/turf/open/floor/sandstone/runed,
/area/lv624/ground/caves/south_east_caves)
-"agC" = (
-/obj/structure/machinery/floodlight,
-/turf/open/floor/plating,
-/area/lv624/ground/barrens/central_barrens)
"agD" = (
/obj/structure/surface/table/reinforced{
dir = 8;
@@ -1407,8 +1402,10 @@
/turf/open/floor/plating,
/area/lv624/ground/barrens/central_barrens)
"agF" = (
-/obj/structure/machinery/floodlight,
/obj/item/ammo_casing,
+/obj/structure/machinery/floodlight/landing{
+ name = "bolted floodlight"
+ },
/turf/open/floor/plating,
/area/lv624/ground/barrens/central_barrens)
"agG" = (
@@ -1585,7 +1582,9 @@
},
/area/lv624/ground/barrens/west_barrens/ceiling)
"ahM" = (
-/obj/structure/machinery/floodlight,
+/obj/structure/machinery/floodlight/landing{
+ name = "bolted floodlight"
+ },
/turf/open/floor/plating{
dir = 10;
icon_state = "warnplate"
@@ -1625,7 +1624,9 @@
},
/area/lv624/ground/barrens/central_barrens)
"ahT" = (
-/obj/structure/machinery/floodlight,
+/obj/structure/machinery/floodlight/landing{
+ name = "bolted floodlight"
+ },
/turf/open/floor/plating{
dir = 6;
icon_state = "warnplate"
@@ -2764,7 +2765,6 @@
/obj/item/clothing/glasses/hud/health,
/obj/effect/landmark/crap_item,
/obj/item/reagent_container/spray/cleaner,
-/obj/effect/landmark/objective_landmark/science,
/turf/open/floor{
icon_state = "whitebluefull"
},
@@ -3939,9 +3939,7 @@
req_access_txt = "100";
req_one_access = null
},
-/turf/open/floor{
- icon_state = "cult"
- },
+/turf/open/floor/wood,
/area/lv624/ground/jungle/west_jungle/ceiling)
"auP" = (
/obj/effect/landmark/lv624/fog_blocker,
@@ -4104,7 +4102,6 @@
/area/lv624/lazarus/research)
"avu" = (
/obj/structure/closet/lasertag/red,
-/obj/effect/landmark/objective_landmark/close,
/turf/open/floor{
dir = 4;
icon_state = "whitepurplecorner"
@@ -4154,12 +4151,6 @@
dir = 8
},
/obj/structure/surface/table,
-/obj/item/storage/box/disks{
- layer = 2.9;
- pixel_x = 5;
- pixel_y = 5
- },
-/obj/effect/landmark/objective_landmark/science,
/turf/open/floor{
icon_state = "white"
},
@@ -4375,7 +4366,6 @@
/area/lv624/lazarus/research)
"awq" = (
/obj/item/clothing/glasses/regular,
-/obj/effect/landmark/objective_landmark/science,
/turf/open/floor{
icon_state = "white"
},
@@ -5075,7 +5065,7 @@
/area/lv624/lazarus/research)
"ayN" = (
/obj/structure/flora/bush/ausbushes/reedbush,
-/turf/open/gm/grass/grass1,
+/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west,
/area/lv624/ground/jungle/west_jungle)
"ayO" = (
/obj/item/weapon/baseballbat/metal,
@@ -5115,7 +5105,7 @@
/area/lv624/ground/jungle/west_jungle)
"ayU" = (
/obj/structure/machinery/colony_floodlight,
-/turf/open/gm/dirtgrassborder/grassdirt_corner/north_east,
+/turf/open/gm/dirtgrassborder/north,
/area/lv624/ground/jungle/south_central_jungle)
"ayV" = (
/obj/structure/flora/bush/ausbushes/var3/sparsegrass,
@@ -5248,7 +5238,6 @@
/area/lv624/lazarus/fitness)
"azm" = (
/obj/structure/closet/boxinggloves,
-/obj/effect/landmark/objective_landmark/close,
/turf/open/floor{
dir = 4;
icon_state = "whitepurplecorner"
@@ -5319,9 +5308,9 @@
},
/area/lv624/lazarus/sleep_female)
"azB" = (
-/obj/effect/landmark/static_comms/net_one,
+/obj/structure/flora/bush/ausbushes/var3/sparsegrass,
/turf/open/gm/dirt,
-/area/lv624/ground/colony/telecomm/tcommdome/south)
+/area/lv624/ground/jungle/north_west_jungle)
"azD" = (
/obj/structure/fence,
/turf/open/gm/dirtgrassborder/grassdirt_corner/north_east,
@@ -5380,7 +5369,6 @@
/area/lv624/lazarus/fitness)
"azM" = (
/obj/structure/closet/secure_closet/hydroponics,
-/obj/effect/landmark/objective_landmark/medium,
/turf/open/floor{
dir = 4;
icon_state = "whitepurplecorner"
@@ -5426,7 +5414,6 @@
},
/obj/structure/machinery/light,
/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
-/obj/effect/landmark/objective_landmark/science,
/turf/open/floor{
dir = 5;
icon_state = "whitepurple"
@@ -5450,6 +5437,10 @@
},
/turf/open/floor/vault,
/area/lv624/lazarus/quartstorage)
+"azX" = (
+/obj/effect/landmark/hunter_primary,
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/north_west_jungle)
"azY" = (
/obj/item/weapon/harpoon/yautja{
anchored = 1;
@@ -6200,7 +6191,6 @@
/obj/item/tool/crowbar,
/obj/item/clothing/gloves/yellow,
/obj/item/stack/medical/bruise_pack,
-/obj/effect/landmark/objective_landmark/close,
/turf/open/floor{
icon_state = "bluecorner"
},
@@ -6403,7 +6393,6 @@
/obj/structure/surface/table,
/obj/item/weapon/gun/pistol/holdout,
/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
-/obj/effect/landmark/objective_landmark/close,
/turf/open/floor/plating{
icon_state = "platebot"
},
@@ -7231,7 +7220,7 @@
/area/lv624/lazarus/toilet)
"aFQ" = (
/obj/structure/window_frame/wood,
-/turf/open/floor/plating,
+/turf/open/floor/wood,
/area/lv624/ground/jungle/west_jungle/ceiling)
"aFR" = (
/turf/open/floor{
@@ -7261,7 +7250,6 @@
/obj/structure/surface/table,
/obj/item/trash/cheesie,
/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
-/obj/effect/landmark/objective_landmark/science,
/turf/open/floor{
dir = 5;
icon_state = "whitepurple"
@@ -8793,7 +8781,7 @@
/area/lv624/lazarus/landing_zones/lz1)
"aMr" = (
/obj/effect/landmark/lv624/xeno_tunnel,
-/turf/open/gm/grass/grass1,
+/turf/open/gm/dirtgrassborder/grassdirt_corner/north_west,
/area/lv624/ground/jungle/east_jungle)
"aMt" = (
/obj/structure/flora/bush/ausbushes/var3/ywflowers,
@@ -8866,7 +8854,6 @@
/obj/item/ammo_magazine/pistol/highpower,
/obj/item/ammo_magazine/pistol/highpower,
/obj/item/ammo_magazine/pistol/highpower,
-/obj/effect/landmark/objective_landmark/close,
/turf/open/floor{
icon_state = "cult"
},
@@ -11296,6 +11283,10 @@
icon_state = "whiteyellowfull"
},
/area/lv624/ground/jungle/south_west_jungle/ceiling)
+"aWq" = (
+/obj/effect/decal/cleanable/blood/xeno,
+/turf/open/gm/dirtgrassborder/east,
+/area/lv624/ground/jungle/north_west_jungle)
"aWs" = (
/obj/structure/flora/jungle/vines/heavy{
pixel_x = -28
@@ -12041,7 +12032,6 @@
/obj/item/device/analyzer,
/obj/item/device/multitool,
/obj/item/device/assembly/prox_sensor,
-/obj/effect/landmark/objective_landmark/medium,
/turf/open/floor{
icon_state = "dark"
},
@@ -12155,7 +12145,6 @@
dir = 4
},
/obj/effect/landmark/objective_landmark/close,
-/obj/effect/landmark/objective_landmark/science,
/turf/open/floor{
dir = 1;
icon_state = "redcorner"
@@ -12166,7 +12155,6 @@
/obj/structure/machinery/light/small{
dir = 8
},
-/obj/effect/landmark/objective_landmark/science,
/turf/open/floor/wood{
icon_state = "wood-broken4"
},
@@ -12224,7 +12212,6 @@
/area/lv624/lazarus/engineering)
"aZI" = (
/obj/structure/filingcabinet/chestdrawer,
-/obj/effect/landmark/objective_landmark/close,
/turf/open/floor{
icon_state = "dark"
},
@@ -12279,6 +12266,10 @@
/obj/structure/flora/bush/ausbushes/var3/fullgrass,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/east_central_jungle)
+"bav" = (
+/obj/effect/decal/cleanable/blood/gibs/xeno/up,
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/north_west_jungle)
"baN" = (
/obj/structure/flora/jungle/vines/light_3,
/turf/open/gm/grass/grass2,
@@ -12413,6 +12404,7 @@
dir = 8;
health = 80
},
+/obj/effect/landmark/objective_landmark/close,
/turf/open/floor{
dir = 4;
icon_state = "whiteyellowfull"
@@ -12525,8 +12517,7 @@
/turf/open/gm/grass/grass1,
/area/lv624/lazarus/landing_zones/lz1)
"btS" = (
-/obj/structure/flora/bush/ausbushes/var3/ywflowers,
-/turf/open/gm/grass/grass1,
+/turf/open/gm/dirtgrassborder/north,
/area/lv624/ground/jungle/east_jungle)
"btX" = (
/turf/open/gm/river,
@@ -12703,6 +12694,7 @@
dir = 4;
health = 80
},
+/obj/effect/landmark/objective_landmark/close,
/turf/open/gm/dirt,
/area/lv624/ground/caves/sand_temple)
"bOg" = (
@@ -12897,6 +12889,13 @@
/obj/structure/flora/jungle/vines/heavy,
/turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east,
/area/lv624/ground/caves/sand_temple)
+"ciz" = (
+/obj/item/device/assembly/signaller{
+ pixel_x = -6;
+ pixel_y = -9
+ },
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/east_jungle)
"ciA" = (
/obj/structure/surface/table/reinforced/prison{
color = "#6b675e"
@@ -12965,7 +12964,8 @@
/area/lv624/lazarus/landing_zones/lz1)
"crF" = (
/obj/structure/flora/bush/ausbushes/var3/fernybush,
-/turf/open/gm/grass/grass1,
+/obj/structure/flora/jungle/vines/heavy,
+/turf/open/gm/dirtgrassborder/west,
/area/lv624/ground/jungle/east_jungle)
"csu" = (
/obj/structure/flora/bush/ausbushes/reedbush,
@@ -12999,11 +12999,9 @@
/turf/open/gm/dirtgrassborder/south,
/area/lv624/ground/jungle/east_central_jungle)
"czq" = (
-/obj/effect/landmark/objective_landmark/medium,
-/turf/open/floor{
- icon_state = "dark"
- },
-/area/lv624/lazarus/corporate_dome)
+/obj/effect/landmark/objective_landmark/science,
+/turf/open/gm/dirt,
+/area/lv624/ground/caves/central_caves)
"czu" = (
/obj/structure/flora/bush/ausbushes/var3/leafybush,
/turf/open/gm/grass/grass1,
@@ -13050,6 +13048,26 @@
"cCr" = (
/turf/open/gm/dirtgrassborder/south,
/area/lv624/ground/jungle/east_jungle)
+"cDr" = (
+/obj/structure/girder,
+/turf/open/gm/grass/grass1,
+/area/lv624/ground/caves/north_central_caves)
+"cDQ" = (
+/obj/item/ammo_magazine/sentry{
+ current_rounds = 0;
+ pixel_y = -13
+ },
+/obj/item/ammo_casing/bullet{
+ icon_state = "cartridge_10_1"
+ },
+/obj/item/ammo_casing/bullet{
+ icon_state = "casing_9_1"
+ },
+/obj/item/ammo_casing/bullet{
+ icon_state = "cartridge_6_1"
+ },
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/north_west_jungle)
"cEh" = (
/obj/structure/flora/bush/ausbushes/pointybush,
/turf/open/gm/grass/grass1,
@@ -13227,6 +13245,15 @@
},
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/south_west_jungle)
+"deU" = (
+/obj/item/circuitboard/airlock{
+ pixel_x = 12
+ },
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidwarning"
+ },
+/area/lv624/ground/colony/telecomm/cargo)
"dff" = (
/obj/structure/bed/sofa/vert/grey,
/turf/open/floor{
@@ -13313,6 +13340,12 @@
icon_state = "whiteyellowfull"
},
/area/lv624/ground/barrens/south_eastern_barrens)
+"dqz" = (
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidwarning"
+ },
+/area/lv624/ground/colony/telecomm/cargo)
"dqK" = (
/obj/structure/flora/bush/ausbushes/var3/ywflowers,
/turf/open/gm/grass/grass1,
@@ -13331,6 +13364,10 @@
icon_state = "dark"
},
/area/lv624/ground/barrens/north_east_barrens/ceiling)
+"dsi" = (
+/obj/effect/landmark/monkey_spawn,
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/east_jungle)
"dsz" = (
/obj/structure/closet/crate/hydroponics/prespawned,
/obj/effect/landmark/objective_landmark/close,
@@ -13468,6 +13505,13 @@
icon_state = "whiteblue"
},
/area/lv624/lazarus/medbay)
+"dID" = (
+/obj/effect/landmark/objective_landmark/science,
+/turf/open/floor/strata{
+ color = "#5e5d5d";
+ icon_state = "multi_tiles"
+ },
+/area/lv624/ground/caves/sand_temple)
"dIO" = (
/turf/open/gm/dirt{
icon_state = "desert0"
@@ -13614,7 +13658,6 @@
"dZH" = (
/obj/structure/filingcabinet,
/obj/structure/machinery/light,
-/obj/effect/landmark/objective_landmark/science,
/turf/open/floor{
icon_state = "whiteblue"
},
@@ -13788,6 +13831,10 @@
icon_state = "cult"
},
/area/lv624/ground/caves/south_west_caves)
+"euh" = (
+/obj/effect/landmark/objective_landmark/medium,
+/turf/open/gm/dirt,
+/area/lv624/ground/caves/south_west_caves)
"euW" = (
/obj/structure/surface/table/woodentable/poor,
/obj/item/tool/candle,
@@ -13799,6 +13846,13 @@
/obj/structure/flora/jungle/plantbot1,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/north_jungle)
+"ewg" = (
+/obj/structure/surface/table/reinforced/prison{
+ color = "#6b675e"
+ },
+/obj/effect/landmark/objective_landmark/medium,
+/turf/open/gm/dirt,
+/area/lv624/ground/caves/sand_temple)
"exf" = (
/turf/open/gm/dirtgrassborder/north,
/area/lv624/ground/jungle/south_west_jungle)
@@ -13858,7 +13912,6 @@
/obj/structure/machinery/light{
dir = 8
},
-/obj/effect/landmark/objective_landmark/close,
/turf/open/floor{
dir = 9;
icon_state = "green"
@@ -13945,6 +13998,9 @@
icon_state = "desert_dug"
},
/area/lv624/ground/barrens/south_eastern_jungle_barrens)
+"eOk" = (
+/turf/open/gm/dirtgrassborder/grassdirt_corner/north_east,
+/area/lv624/ground/jungle/east_jungle)
"eOq" = (
/obj/structure/machinery/colony_floodlight,
/turf/open/gm/dirt,
@@ -14157,7 +14213,6 @@
/area/lv624/ground/colony/telecomm/sw_lz2)
"fsa" = (
/obj/structure/surface/table,
-/obj/effect/landmark/objective_landmark/close,
/turf/open/floor{
dir = 8;
icon_state = "barber"
@@ -14283,7 +14338,6 @@
/area/lv624/lazarus/quartstorage)
"fFM" = (
/obj/structure/surface/rack,
-/obj/effect/landmark/objective_landmark/medium,
/turf/open/floor{
dir = 8;
icon_state = "vault"
@@ -14298,8 +14352,9 @@
/obj/structure/machinery/power/apc{
start_charge = 0
},
-/turf/open/floor/plating{
- icon_state = "platebotc"
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
},
/area/lv624/ground/colony/telecomm/cargo)
"fGO" = (
@@ -14312,6 +14367,13 @@
icon_state = "white"
},
/area/lv624/lazarus/corporate_dome)
+"fHw" = (
+/obj/item/device/sentry_computer{
+ pixel_y = 5
+ },
+/obj/structure/surface/table,
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/north_west_jungle)
"fHz" = (
/obj/structure/flora/jungle/vines/light_3,
/turf/closed/wall/strata_ice/jungle,
@@ -14450,6 +14512,13 @@
"gdx" = (
/turf/open/gm/coast/north,
/area/lv624/ground/barrens/west_barrens)
+"gdy" = (
+/obj/structure/surface/table/reinforced/prison{
+ color = "#6b675e"
+ },
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/gm/dirt,
+/area/lv624/ground/caves/sand_temple)
"gef" = (
/obj/item/stack/sheet/wood{
amount = 2
@@ -14654,6 +14723,10 @@
/obj/structure/flora/bush/ausbushes/var3/sparsegrass,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/south_central_jungle)
+"gIe" = (
+/obj/effect/landmark/objective_landmark/medium,
+/turf/open/gm/dirt,
+/area/lv624/ground/caves/south_central_caves)
"gKg" = (
/obj/item/clothing/head/hardhat/orange,
/turf/open/floor/plating{
@@ -14874,6 +14947,12 @@
/obj/structure/flora/jungle/vines/heavy,
/turf/open/gm/dirtgrassborder/west,
/area/lv624/ground/jungle/west_central_jungle)
+"hpG" = (
+/turf/open/floor{
+ dir = 1;
+ icon_state = "bot"
+ },
+/area/lv624/ground/caves/north_central_caves)
"hpN" = (
/obj/structure/surface/table,
/obj/effect/landmark/good_item,
@@ -15136,11 +15215,12 @@
},
/area/lv624/lazarus/medbay)
"hZn" = (
-/obj/structure/flora/grass/tallgrass/jungle/corner{
- dir = 8
+/obj/item/stack/sheet/metal{
+ pixel_x = 6;
+ pixel_y = 30
},
-/turf/open/gm/grass/grass1,
-/area/lv624/ground/jungle/east_jungle)
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/north_west_jungle)
"hZW" = (
/obj/effect/landmark/objective_landmark/close,
/turf/open/floor{
@@ -15223,6 +15303,17 @@
},
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/central_jungle)
+"ihS" = (
+/obj/structure/surface/table,
+/obj/item/reagent_container/food/drinks/cans/lemon_lime{
+ pixel_x = -5;
+ pixel_y = 2
+ },
+/obj/structure/prop/server_equipment/laptop/on{
+ pixel_y = 8
+ },
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/east_jungle)
"iiK" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
/obj/effect/landmark/queen_spawn,
@@ -15250,10 +15341,20 @@
/obj/effect/landmark/objective_landmark/close,
/turf/open/floor/greengrid,
/area/lv624/lazarus/secure_storage)
+"ioC" = (
+/turf/open/gm/dirtgrassborder/grassdirt_corner2/north_west,
+/area/lv624/ground/jungle/east_jungle)
"isF" = (
/obj/effect/landmark/hunter_primary,
/turf/open/gm/dirt,
/area/lv624/ground/caves/south_west_caves)
+"isJ" = (
+/obj/structure/surface/table,
+/obj/item/storage/beer_pack{
+ pixel_y = 9
+ },
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/east_jungle)
"isR" = (
/obj/effect/landmark/objective_landmark/medium,
/obj/structure/largecrate/random,
@@ -15339,11 +15440,8 @@
/turf/open/gm/grass/grass2,
/area/lv624/ground/jungle/west_central_jungle)
"iBy" = (
-/obj/structure/flora/bush/ausbushes/lavendergrass,
-/turf/open/floor/plating{
- icon_state = "platebotc"
- },
-/area/lv624/ground/colony/telecomm/cargo)
+/turf/open/gm/dirtgrassborder/east,
+/area/lv624/ground/jungle/east_jungle)
"iBD" = (
/turf/open/floor{
dir = 10;
@@ -15394,9 +15492,6 @@
/area/lv624/ground/barrens/south_eastern_jungle_barrens)
"iKp" = (
/obj/structure/surface/rack,
-/obj/item/clothing/mask/gas/pmc/leader,
-/obj/item/clothing/under/marine/veteran/pmc,
-/obj/item/clothing/gloves/marine/veteran/pmc,
/turf/open/shuttle{
icon_state = "floor4"
},
@@ -15524,6 +15619,9 @@
/obj/structure/flora/bush/ausbushes/lavendergrass,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/south_west_jungle)
+"jeL" = (
+/turf/closed/wall/r_wall,
+/area/lv624/ground/caves/north_central_caves)
"jga" = (
/turf/open/gm/river,
/area/lv624/ground/jungle/west_jungle)
@@ -15676,6 +15774,10 @@
icon_state = "floor6"
},
/area/lv624/ground/caves/sand_temple)
+"jDY" = (
+/obj/effect/decal/cleanable/blood/gibs/xeno/limb,
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/north_west_jungle)
"jEc" = (
/obj/structure/fence,
/turf/open/gm/dirtgrassborder/grassdirt_corner/north_east,
@@ -15724,6 +15826,13 @@
/obj/structure/flora/jungle/vines/heavy,
/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west,
/area/lv624/ground/jungle/west_central_jungle)
+"jKX" = (
+/obj/structure/surface/table/reinforced/prison{
+ color = "#6b675e"
+ },
+/obj/effect/landmark/objective_landmark/science,
+/turf/open/floor/sandstone/runed,
+/area/lv624/ground/caves/sand_temple)
"jLc" = (
/obj/effect/landmark/lv624/fog_blocker,
/turf/open/gm/coast/beachcorner/north_east,
@@ -15807,6 +15916,7 @@
/obj/item/stack/sheet/mineral/sandstone{
amount = 50
},
+/obj/effect/landmark/objective_landmark/far,
/turf/open/gm/dirt,
/area/lv624/ground/caves/sand_temple)
"jRm" = (
@@ -15825,6 +15935,10 @@
icon_state = "white"
},
/area/lv624/lazarus/corporate_dome)
+"jRJ" = (
+/obj/effect/decal/cleanable/blood/xeno,
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/north_west_jungle)
"jRM" = (
/obj/structure/flora/bush/ausbushes/var3/fullgrass,
/obj/effect/landmark/lv624/fog_blocker,
@@ -15887,6 +16001,13 @@
/obj/effect/landmark/monkey_spawn,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/north_jungle)
+"kbn" = (
+/obj/structure/machinery/sensortower,
+/turf/open/floor{
+ dir = 1;
+ icon_state = "bot"
+ },
+/area/lv624/ground/caves/north_central_caves)
"kbr" = (
/obj/structure/showcase{
desc = "An ancient, dusty tomb with strange alien writing. It's best not to touch it.";
@@ -15924,6 +16045,10 @@
"kjC" = (
/turf/open/gm/coast/beachcorner/south_east,
/area/lv624/ground/barrens/east_barrens)
+"kjD" = (
+/obj/structure/flora/jungle/vines/light_3,
+/turf/open/gm/dirtgrassborder/grassdirt_corner/south_west,
+/area/lv624/ground/jungle/east_jungle)
"kmP" = (
/obj/item/stool,
/turf/open/gm/dirt,
@@ -16082,8 +16207,12 @@
/turf/open/gm/coast/beachcorner/north_east,
/area/lv624/ground/barrens/west_barrens)
"kGk" = (
-/turf/closed/wall/r_wall,
-/area/lv624/ground/colony/telecomm/tcommdome/south)
+/obj/item/storage/toolkit/empty{
+ pixel_x = 5;
+ pixel_y = -3
+ },
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/east_jungle)
"kHB" = (
/turf/open/gm/dirt{
icon_state = "desert3"
@@ -16195,6 +16324,10 @@
icon_state = "asteroidwarning"
},
/area/lv624/ground/colony/telecomm/sw_lz2)
+"kXE" = (
+/obj/structure/flora/bush/ausbushes/ausbush,
+/turf/open/gm/dirtgrassborder/north,
+/area/lv624/ground/jungle/south_central_jungle)
"kYx" = (
/obj/structure/flora/grass/tallgrass/jungle/corner{
dir = 9
@@ -16387,6 +16520,11 @@
"lBw" = (
/turf/closed/wall/strata_ice/jungle,
/area/lv624/ground/jungle/south_east_jungle)
+"lCG" = (
+/obj/effect/decal/cleanable/blood/oil,
+/obj/effect/decal/cleanable/blood/gibs/robot/down,
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/north_west_jungle)
"lDh" = (
/obj/item/clothing/suit/armor/yautja_flavor,
/turf/open/floor/strata{
@@ -16616,6 +16754,10 @@
},
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/south_east_jungle)
+"mbN" = (
+/obj/structure/flora/jungle/vines/heavy,
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/east_jungle)
"mdQ" = (
/turf/closed/wall/rock/brown,
/area/lv624/ground/caves/west_caves)
@@ -16708,6 +16850,9 @@
/obj/structure/flora/jungle/plantbot1,
/turf/open/gm/grass/grass1,
/area/lv624/ground/colony/west_tcomms_road)
+"mnr" = (
+/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east,
+/area/lv624/ground/jungle/east_jungle)
"mnK" = (
/obj/structure/flora/bush/ausbushes/lavendergrass,
/turf/open/gm/grass/grass1,
@@ -16782,8 +16927,9 @@
/area/lv624/ground/jungle/north_east_jungle)
"mvc" = (
/obj/effect/landmark/static_comms/net_two,
-/turf/open/floor/plating{
- icon_state = "platebotc"
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
},
/area/lv624/ground/colony/telecomm/cargo)
"mvr" = (
@@ -17054,10 +17200,20 @@
icon_state = "asteroidwarning"
},
/area/lv624/lazarus/landing_zones/lz2)
+"njl" = (
+/obj/effect/decal/cleanable/blood/oil,
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/north_west_jungle)
"njC" = (
/obj/effect/landmark/crap_item,
/turf/open/gm/dirt,
/area/lv624/ground/colony/west_tcomms_road)
+"njO" = (
+/turf/open/floor{
+ dir = 5;
+ icon_state = "asteroidwarning"
+ },
+/area/lv624/ground/colony/telecomm/cargo)
"nkg" = (
/obj/structure/prop/brazier/torch,
/turf/closed/wall/mineral/sandstone/runed,
@@ -17654,6 +17810,10 @@
/obj/effect/landmark/objective_landmark/close,
/turf/open/floor/plating,
/area/lv624/ground/barrens/central_barrens)
+"omu" = (
+/obj/structure/flora/bush/ausbushes/var3/sparsegrass,
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/west_jungle)
"omK" = (
/turf/open/gm/coast/beachcorner/south_east,
/area/lv624/ground/barrens/west_barrens)
@@ -17687,6 +17847,12 @@
/obj/structure/flora/jungle/vines/heavy,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/south_central_jungle)
+"orB" = (
+/turf/open/floor{
+ dir = 4;
+ icon_state = "asteroidwarning"
+ },
+/area/lv624/ground/colony/telecomm/cargo)
"oua" = (
/obj/effect/landmark/crap_item,
/turf/open/gm/dirt,
@@ -17742,7 +17908,6 @@
/area/lv624/ground/caves/sand_temple)
"oyT" = (
/obj/structure/closet/toolcloset,
-/obj/effect/landmark/objective_landmark/medium,
/turf/open/floor/plating{
dir = 1;
icon_state = "asteroidfloor"
@@ -17777,6 +17942,18 @@
},
/turf/open/gm/coast/north,
/area/lv624/ground/caves/sand_temple)
+"oEc" = (
+/obj/item/ammo_casing/bullet{
+ icon_state = "cartridge_6_1"
+ },
+/obj/item/ammo_casing/bullet{
+ icon_state = "cartridge_3_1"
+ },
+/obj/item/ammo_casing/bullet{
+ icon_state = "cartridge_10_1"
+ },
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/north_west_jungle)
"oED" = (
/obj/structure/fence,
/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east,
@@ -17832,6 +18009,12 @@
/obj/structure/flora/bush/ausbushes/pointybush,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/east_central_jungle)
+"oHU" = (
+/obj/structure/girder,
+/turf/open/floor{
+ icon_state = "asteroidplating"
+ },
+/area/lv624/ground/caves/north_central_caves)
"oJL" = (
/obj/effect/landmark/crap_item,
/turf/open/gm/grass/grass1,
@@ -17975,8 +18158,8 @@
/turf/open/gm/dirtgrassborder/east,
/area/lv624/ground/jungle/south_west_jungle)
"oXI" = (
-/turf/open/gm/grass/grass2,
-/area/lv624/ground/jungle/north_west_jungle)
+/turf/closed/wall/r_wall/unmeltable,
+/area/lv624/lazarus/landing_zones/lz2)
"oXS" = (
/turf/open/gm/coast/west,
/area/lv624/ground/river/central_river)
@@ -18016,6 +18199,13 @@
/obj/structure/fence,
/turf/open/gm/dirtgrassborder/grassdirt_corner/south_west,
/area/lv624/ground/colony/south_nexus_road)
+"pbG" = (
+/obj/effect/landmark/objective_landmark/medium,
+/turf/open/floor/corsat{
+ dir = 1;
+ icon_state = "squareswood"
+ },
+/area/lv624/ground/caves/sand_temple)
"pca" = (
/obj/effect/landmark/nightmare{
insert_tag = "nexuscenter"
@@ -18033,7 +18223,7 @@
/area/lv624/ground/barrens/east_barrens)
"pcu" = (
/obj/structure/flora/bush/ausbushes/genericbush,
-/turf/open/gm/grass/grass1,
+/turf/open/gm/dirtgrassborder/grassdirt_corner/north_west,
/area/lv624/ground/jungle/east_jungle)
"pcz" = (
/obj/effect/landmark/objective_landmark/medium,
@@ -18101,6 +18291,10 @@
},
/turf/open/gm/grass/grass1,
/area/lv624/ground/colony/west_tcomms_road)
+"pmt" = (
+/obj/effect/landmark/objective_landmark/science,
+/turf/open/gm/dirt,
+/area/lv624/ground/caves/south_west_caves)
"pmz" = (
/turf/open/gm/dirt{
icon_state = "desert2"
@@ -18134,6 +18328,10 @@
},
/turf/open/gm/dirtgrassborder/east,
/area/lv624/ground/jungle/east_central_jungle)
+"pqa" = (
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/gm/dirt,
+/area/lv624/ground/caves/west_caves)
"prd" = (
/obj/structure/flora/jungle/vines/light_2,
/turf/open/floor{
@@ -18307,6 +18505,12 @@
/obj/effect/landmark/hunter_secondary,
/turf/open/gm/grass/grass1,
/area/lv624/lazarus/quartstorage/outdoors)
+"pKm" = (
+/turf/open/floor{
+ icon_state = "asteroidwarning";
+ dir = 8
+ },
+/area/lv624/ground/colony/telecomm/sw_lz2)
"pKp" = (
/obj/effect/landmark/crap_item,
/turf/open/floor{
@@ -18322,6 +18526,10 @@
/obj/structure/fence,
/turf/open/gm/dirtgrassborder/grassdirt_corner/south_west,
/area/lv624/ground/colony/west_nexus_road)
+"pMM" = (
+/obj/structure/flora/bush/ausbushes/ppflowers,
+/turf/open/gm/dirtgrassborder/east,
+/area/lv624/ground/jungle/east_jungle)
"pMV" = (
/obj/effect/landmark/hunter_primary,
/turf/open/gm/dirt,
@@ -18509,6 +18717,10 @@
/obj/structure/flora/bush/ausbushes/var3/fernybush,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/south_east_jungle)
+"qns" = (
+/obj/structure/machinery/colony_floodlight,
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/east_jungle)
"qnQ" = (
/obj/structure/flora/bush/ausbushes/var3/ywflowers,
/turf/open/gm/grass/grass2,
@@ -18699,6 +18911,10 @@
"qIO" = (
/turf/open/gm/dirt,
/area/lv624/ground/colony/west_tcomms_road)
+"qJe" = (
+/obj/structure/flora/bush/ausbushes/var3/ywflowers,
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/north_west_jungle)
"qJg" = (
/obj/structure/surface/table,
/obj/effect/landmark/objective_landmark/science,
@@ -18720,7 +18936,6 @@
/turf/open/gm/dirtgrassborder/east,
/area/lv624/ground/colony/north_nexus_road)
"qKC" = (
-/obj/structure/flora/jungle/vines/heavy,
/turf/open/floor{
dir = 9;
icon_state = "asteroidwarning"
@@ -18838,6 +19053,10 @@
},
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/north_east_jungle)
+"rcy" = (
+/obj/structure/flora/jungle/vines/heavy,
+/turf/open/gm/dirtgrassborder/west,
+/area/lv624/ground/jungle/east_jungle)
"rcR" = (
/obj/effect/landmark/hunter_primary,
/turf/open/gm/dirt,
@@ -19053,9 +19272,9 @@
/turf/open/floor/vault,
/area/lv624/lazarus/quartstorage)
"rGW" = (
-/obj/structure/flora/bush/ausbushes/genericbush,
-/turf/open/gm/grass/grass2,
-/area/lv624/ground/jungle/north_west_jungle)
+/obj/structure/flora/jungle/vines/light_3,
+/turf/open/gm/dirtgrassborder/south,
+/area/lv624/ground/jungle/east_jungle)
"rGZ" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
/turf/open/gm/dirt,
@@ -19150,6 +19369,9 @@
icon_state = "green"
},
/area/lv624/lazarus/hydroponics)
+"rSy" = (
+/turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east,
+/area/lv624/ground/jungle/east_jungle)
"rTG" = (
/obj/structure/machinery/colony_floodlight,
/obj/structure/flora/jungle/vines/light_3,
@@ -19186,6 +19408,10 @@
},
/turf/open/gm/dirt,
/area/lv624/ground/caves/sand_temple)
+"rYI" = (
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/gm/river,
+/area/lv624/ground/caves/west_caves)
"rZL" = (
/obj/structure/surface/rack,
/obj/item/ammo_magazine/rifle/mar40,
@@ -19299,6 +19525,13 @@
"sqj" = (
/turf/open/gm/river,
/area/lv624/ground/river/central_river)
+"sqs" = (
+/obj/item/stack/sheet/metal{
+ pixel_x = -7;
+ pixel_y = 1
+ },
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/north_west_jungle)
"sqw" = (
/obj/structure/machinery/colony_floodlight,
/obj/structure/flora/jungle/vines/heavy,
@@ -19348,7 +19581,6 @@
"sxY" = (
/obj/structure/surface/rack,
/obj/item/moneybag,
-/obj/effect/landmark/objective_landmark/close,
/turf/open/floor/greengrid,
/area/lv624/lazarus/corporate_dome)
"syc" = (
@@ -19488,6 +19720,13 @@
/obj/structure/flora/jungle/planttop1,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/central_jungle)
+"sOC" = (
+/obj/item/stack/sheet/metal{
+ pixel_x = 16;
+ pixel_y = -10
+ },
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/north_west_jungle)
"sOZ" = (
/obj/structure/flora/jungle/vines/heavy,
/turf/open/gm/dirtgrassborder/south,
@@ -19504,6 +19743,9 @@
/obj/structure/flora/bush/ausbushes/palebush,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/south_west_jungle)
+"sRW" = (
+/turf/open/gm/dirtgrassborder/grassdirt_corner/north_west,
+/area/lv624/ground/jungle/east_jungle)
"sSE" = (
/obj/structure/flora/bush/ausbushes/ppflowers,
/turf/open/gm/grass/grass1,
@@ -19685,8 +19927,16 @@
/turf/open/gm/dirt,
/area/lv624/ground/caves/north_west_caves)
"tka" = (
-/obj/effect/landmark/lv624/xeno_tunnel,
-/turf/open/gm/grass/grass1,
+/obj/item/ammo_casing/bullet{
+ icon_state = "casing_9_1"
+ },
+/obj/item/ammo_casing/bullet{
+ icon_state = "cartridge_6_1"
+ },
+/obj/item/ammo_casing/bullet{
+ icon_state = "cartridge_9_1"
+ },
+/turf/open/gm/dirt,
/area/lv624/ground/jungle/north_west_jungle)
"tlD" = (
/obj/structure/flora/bush/ausbushes/var3/fernybush,
@@ -19960,6 +20210,10 @@
/obj/structure/flora/jungle/vines/heavy,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/south_west_jungle)
+"tRE" = (
+/obj/effect/decal/cleanable/blood/gibs/xeno,
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/north_west_jungle)
"tSd" = (
/turf/open/gm/dirtgrassborder/grassdirt_corner/south_west,
/area/lv624/lazarus/quartstorage/outdoors)
@@ -19999,12 +20253,9 @@
},
/area/lv624/lazarus/crashed_ship_containers)
"tYx" = (
-/obj/effect/landmark/objective_landmark/close,
-/turf/open/floor{
- dir = 9;
- icon_state = "brown"
- },
-/area/lv624/lazarus/comms)
+/obj/effect/landmark/objective_landmark/medium,
+/turf/open/gm/dirt,
+/area/lv624/ground/caves/central_caves)
"tZa" = (
/obj/structure/flora/bush/ausbushes/var3/stalkybush,
/turf/open/gm/coast/beachcorner/south_east,
@@ -20108,10 +20359,27 @@
/obj/structure/fence,
/turf/open/gm/dirtgrassborder/north,
/area/lv624/ground/colony/north_tcomms_road)
+"uiW" = (
+/obj/structure/barricade/metal/wired{
+ dir = 1;
+ health = 10;
+ is_wired = 1
+ },
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/north_west_jungle)
"ujd" = (
/obj/structure/flora/bush/ausbushes/ausbush,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/central_jungle)
+"ukh" = (
+/obj/item/ammo_casing/bullet{
+ icon_state = "cartridge_6_1"
+ },
+/obj/item/ammo_casing/bullet{
+ icon_state = "casing_9_1"
+ },
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/north_west_jungle)
"ukk" = (
/obj/structure/flora/grass/tallgrass/jungle/corner{
dir = 1
@@ -20124,8 +20392,9 @@
},
/area/lv624/ground/barrens/south_eastern_barrens)
"ukZ" = (
-/turf/open/floor/plating{
- icon_state = "platebotc"
+/turf/open/floor{
+ dir = 1;
+ icon_state = "asteroidfloor"
},
/area/lv624/ground/colony/telecomm/cargo)
"ulj" = (
@@ -20156,15 +20425,13 @@
/turf/closed/wall/strata_ice/jungle,
/area/lv624/ground/caves/south_east_caves)
"uns" = (
-/obj/item/stack/sheet/wood{
- amount = 2
- },
-/obj/effect/landmark/objective_landmark/close,
-/turf/open/floor/vault,
-/area/lv624/lazarus/quartstorage)
-"unT" = (
+/obj/effect/landmark/objective_landmark/medium,
/turf/open/gm/dirt,
-/area/lv624/ground/colony/telecomm/tcommdome/south)
+/area/lv624/ground/caves/south_east_caves)
+"unT" = (
+/obj/structure/flora/jungle/vines/heavy,
+/turf/open/gm/dirtgrassborder/south,
+/area/lv624/ground/jungle/east_jungle)
"upM" = (
/obj/effect/landmark/crap_item,
/turf/open/gm/grass/grass1,
@@ -20175,6 +20442,13 @@
/obj/effect/landmark/corpsespawner/colonist/random/burst,
/turf/open/gm/dirt,
/area/lv624/ground/caves/east_caves)
+"upV" = (
+/obj/item/stack/cable_coil/random{
+ pixel_y = 9;
+ pixel_x = 7
+ },
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/east_jungle)
"urR" = (
/turf/open/floor/corsat{
dir = 1;
@@ -20191,6 +20465,14 @@
/obj/structure/flora/bush/ausbushes/reedbush,
/turf/open/gm/dirt,
/area/lv624/ground/barrens/central_barrens)
+"uuf" = (
+/obj/effect/landmark/hunter_primary,
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/east_jungle)
+"uuV" = (
+/obj/effect/landmark/hunter_primary,
+/turf/open/gm/dirtgrassborder/south,
+/area/lv624/ground/jungle/east_jungle)
"uve" = (
/turf/closed/wall/strata_ice/jungle,
/area/lv624/ground/barrens/south_eastern_jungle_barrens)
@@ -20323,6 +20605,12 @@
/obj/structure/flora/jungle/vines/light_3,
/turf/open/gm/dirtgrassborder/grassdirt_corner/south_east,
/area/lv624/ground/caves/sand_temple)
+"uOK" = (
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/floor{
+ icon_state = "cult"
+ },
+/area/lv624/ground/caves/south_west_caves)
"uRb" = (
/obj/structure/machinery/colony_floodlight,
/turf/open/gm/grass/grass1,
@@ -20443,6 +20731,14 @@
/obj/structure/flora/bush/ausbushes/reedbush,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/north_east_jungle)
+"vbh" = (
+/obj/item/device/radio/off{
+ frequency = 1469;
+ pixel_x = -9;
+ pixel_y = -13
+ },
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/east_jungle)
"vcY" = (
/obj/structure/machinery/colony_floodlight,
/turf/open/gm/grass/grass1,
@@ -20458,6 +20754,10 @@
icon_state = "dark"
},
/area/lv624/lazarus/corporate_dome)
+"vef" = (
+/obj/effect/landmark/objective_landmark/science,
+/turf/open/gm/dirt,
+/area/lv624/ground/caves/west_caves)
"veo" = (
/obj/item/ammo_casing/bullet{
icon_state = "cartridge_3_1"
@@ -20715,11 +21015,9 @@
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/south_east_jungle)
"vOD" = (
-/turf/open/floor{
- dir = 9;
- icon_state = "asteroidwarning"
- },
-/area/lv624/ground/colony/telecomm/tcommdome/south)
+/obj/structure/flora/bush/ausbushes/reedbush,
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/north_west_jungle)
"vOF" = (
/turf/open/gm/dirtgrassborder/west,
/area/lv624/ground/jungle/south_central_jungle)
@@ -20776,10 +21074,17 @@
/obj/structure/flora/jungle/vines/heavy,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/north_west_jungle)
+"vZT" = (
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/gm/dirt,
+/area/lv624/ground/caves/south_west_caves)
"wbK" = (
/obj/structure/flora/jungle/vines/heavy,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/south_central_jungle)
+"wbM" = (
+/turf/open/floor,
+/area/lv624/ground/caves/north_central_caves)
"wbP" = (
/obj/structure/flora/jungle/vines/light_3,
/turf/open/floor/sandstone/runed,
@@ -20899,6 +21204,15 @@
},
/turf/open/floor/sandstone/runed,
/area/lv624/ground/caves/sand_temple)
+"woF" = (
+/obj/structure/flora/jungle/vines/light_3,
+/obj/structure/barricade/metal/wired{
+ dir = 1;
+ health = 10;
+ is_wired = 1
+ },
+/turf/open/gm/dirtgrassborder/east,
+/area/lv624/ground/jungle/north_west_jungle)
"woK" = (
/obj/effect/decal/cleanable/blood/drip,
/turf/open/floor/wood{
@@ -20973,6 +21287,11 @@
/obj/effect/decal/remains/xeno,
/turf/open/gm/dirt,
/area/lv624/ground/barrens/central_barrens)
+"wwI" = (
+/turf/open/floor{
+ icon_state = "asteroidplating"
+ },
+/area/lv624/ground/caves/north_central_caves)
"wxP" = (
/turf/open/gm/dirtgrassborder/grassdirt_corner/south_west,
/area/lv624/ground/jungle/north_jungle)
@@ -21074,6 +21393,10 @@
/obj/structure/flora/jungle/vines/heavy,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/west_central_jungle)
+"wNp" = (
+/obj/effect/landmark/objective_landmark/medium,
+/turf/open/gm/dirt,
+/area/lv624/ground/caves/west_caves)
"wNB" = (
/obj/structure/flora/jungle/vines/light_3,
/turf/open/floor{
@@ -21179,6 +21502,11 @@
/obj/effect/decal/cleanable/blood/drip,
/turf/open/floor/wood,
/area/lv624/ground/caves/north_central_caves)
+"wUv" = (
+/obj/structure/flora/bush/ausbushes/var3/sparsegrass,
+/obj/structure/flora/jungle/vines/heavy,
+/turf/open/gm/dirtgrassborder/north,
+/area/lv624/ground/jungle/east_jungle)
"wUz" = (
/obj/structure/flora/jungle/vines/heavy,
/turf/open/gm/dirt,
@@ -21223,14 +21551,12 @@
/turf/open/gm/dirt,
/area/lv624/ground/barrens/north_east_barrens)
"wXg" = (
-/obj/structure/machinery/power/apc{
- start_charge = 0
- },
-/turf/open/floor{
- dir = 1;
- icon_state = "asteroidwarning"
+/obj/item/stack/sheet/metal{
+ pixel_x = 16;
+ pixel_y = -10
},
-/area/lv624/ground/colony/telecomm/tcommdome/south)
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/west_jungle)
"wXp" = (
/turf/open/gm/dirtgrassborder/grassdirt_corner2/north_west,
/area/lv624/ground/jungle/west_central_jungle)
@@ -21401,7 +21727,6 @@
/obj/structure/surface/table/reinforced/prison,
/obj/item/tool/crowbar,
/obj/item/reagent_container/spray/cleaner,
-/obj/effect/landmark/objective_landmark/medium,
/turf/open/floor{
dir = 9;
icon_state = "whiteyellow"
@@ -21532,12 +21857,13 @@
/turf/open/gm/dirt,
/area/lv624/ground/caves/east_caves)
"xTa" = (
-/obj/structure/largecrate/random,
-/obj/effect/landmark/objective_landmark/medium,
-/turf/open/floor/plating{
- icon_state = "platebot"
- },
-/area/lv624/lazarus/robotics)
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/gm/dirt,
+/area/lv624/ground/caves/south_central_caves)
+"xTM" = (
+/obj/structure/flora/bush/ausbushes/ausbush,
+/turf/open/gm/dirt,
+/area/lv624/ground/jungle/west_jungle)
"xTT" = (
/turf/open/gm/dirt,
/area/lv624/ground/jungle/south_west_jungle)
@@ -21554,6 +21880,9 @@
},
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/north_east_jungle)
+"xVN" = (
+/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west,
+/area/lv624/ground/jungle/south_central_jungle)
"xXB" = (
/obj/structure/flora/bush/ausbushes/var3/sunnybush,
/turf/open/gm/grass/grass1,
@@ -21607,6 +21936,10 @@
/obj/structure/flora/bush/ausbushes/reedbush,
/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east,
/area/lv624/ground/river/east_river)
+"ygp" = (
+/obj/structure/surface/rack,
+/turf/open/floor/greengrid,
+/area/lv624/lazarus/secure_storage)
"yhd" = (
/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east,
/area/lv624/ground/caves/sand_temple)
@@ -21642,9 +21975,10 @@
},
/area/lv624/lazarus/corporate_dome)
"yiE" = (
-/obj/structure/flora/bush/ausbushes/pointybush,
+/obj/structure/flora/jungle/vines/heavy,
+/obj/effect/landmark/lv624/xeno_tunnel,
/turf/open/gm/grass/grass1,
-/area/lv624/ground/jungle/east_jungle)
+/area/lv624/ground/jungle/north_west_jungle)
"yiT" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/storage/firstaid/adv{
@@ -23401,7 +23735,7 @@ afV
afV
nBh
nBh
-nBh
+uOK
afV
nBh
nBh
@@ -23643,7 +23977,7 @@ nBh
afV
ane
ane
-ahF
+euh
ahF
ane
ane
@@ -24535,7 +24869,7 @@ mdQ
gwP
gwP
gwP
-gwP
+pqa
ane
afV
afV
@@ -24771,7 +25105,7 @@ afV
afV
afV
afV
-nBh
+uOK
eVH
nBh
nBh
@@ -25213,7 +25547,7 @@ gwP
gwP
gwP
gwP
-gwP
+vef
mdQ
mdQ
mdQ
@@ -26869,8 +27203,8 @@ aFm
auO
aFm
aFm
-uSw
-asa
+aAl
+aqR
asa
aja
asa
@@ -27097,9 +27431,9 @@ aue
auf
aXC
aFm
-aro
+aAl
ayN
-asc
+asx
ayT
aAp
aAp
@@ -27325,9 +27659,9 @@ auf
auf
aZp
aFm
-aro
-aro
-ayT
+aAl
+omu
+aqS
aAp
aAp
aAp
@@ -27488,7 +27822,7 @@ gwP
gwP
gwP
gwP
-gwP
+wNp
mdQ
acp
acp
@@ -27504,7 +27838,7 @@ ane
ane
ahF
ahF
-ahF
+vZT
ahF
ahF
ahF
@@ -27553,9 +27887,9 @@ aug
wFx
avo
aFQ
-axX
-baN
-aAp
+xTM
+aAl
+aDv
aAp
aAp
nmO
@@ -27775,15 +28109,15 @@ aud
bGb
auP
aqi
-aqS
+ase
aFm
aZn
axp
auf
aFm
-asw
-aro
-aAp
+aAl
+wXg
+aDv
aAp
nmO
aXX
@@ -28002,16 +28336,16 @@ aud
aud
aud
auP
-aqR
-arn
+aAl
+aAl
aFm
aIH
auR
auf
aFm
-atC
-ayT
-aAp
+aAl
+aAl
+aDv
aAp
aXX
aRG
@@ -28230,16 +28564,16 @@ sFc
aud
aud
auP
-aqS
-aro
+aAl
+aAl
aFm
aFm
aFQ
aFm
aFm
-atC
-aAp
-aAp
+aAl
+qKC
+pKm
aAp
nmO
aZP
@@ -28458,12 +28792,12 @@ aud
aud
aud
avy
-teS
-rGW
-psh
-nuW
-psh
-vEp
+jRJ
+oTJ
+oTJ
+uiW
+sqs
+oTJ
qKC
kWX
hdh
@@ -28686,12 +29020,12 @@ aud
arU
aud
auP
-teS
-psh
-dop
-kVP
-psh
-psh
+vOD
+oTJ
+azB
+sOC
+oTJ
+oTJ
mBL
hdh
hdh
@@ -28883,7 +29217,7 @@ ane
ane
ane
afV
-ahF
+pmt
ahF
ahF
ahF
@@ -28914,15 +29248,15 @@ aud
aud
aud
auP
-teS
-pYq
-hIq
-nuW
-psh
-psh
+oTJ
+tRE
+jRJ
+oTJ
+ukh
+njl
vVf
fqM
-aAp
+oXI
aAp
fuy
aXX
@@ -29142,15 +29476,15 @@ aud
aud
amG
auP
-teS
-qSZ
-fio
-nuW
+oTJ
+oTJ
+bav
+uiW
tka
+lCG
+cDQ
+oTJ
nuW
-psh
-cRT
-cqz
aAp
cIL
nmO
@@ -29370,14 +29704,14 @@ aud
arV
aud
auP
-teS
-kRg
-nVG
-psh
-nuW
-txx
-cRT
-cRT
+oTJ
+azX
+qJe
+oTJ
+oTJ
+oEc
+fHw
+oTJ
aAp
aAp
aAp
@@ -29553,7 +29887,7 @@ ane
ahF
ahF
ahH
-ahF
+pmt
uWJ
uWJ
ahF
@@ -29598,15 +29932,15 @@ aud
aud
aud
auP
-eHQ
-pOC
-nuW
-oXI
-nuW
-cqz
-cTi
-cRT
-cRT
+vOD
+jRJ
+oTJ
+oTJ
+oTJ
+asH
+oTJ
+oTJ
+oTJ
aAp
aAp
aXX
@@ -29648,11 +29982,11 @@ aTf
aUj
aUQ
aUQ
-vUO
+ygp
aUQ
gte
aUQ
-iml
+ygp
aUQ
aUQ
aYs
@@ -29827,14 +30161,14 @@ amG
aud
auP
oTJ
-teS
-psh
-psh
-dmS
-cRT
-cRT
-dmS
-txx
+oTJ
+oTJ
+hZn
+oTJ
+oTJ
+oTJ
+oTJ
+nuW
aAp
nmO
aXX
@@ -30055,13 +30389,13 @@ aud
aud
auP
asH
-teS
-psh
-pGD
-vXW
-cTi
-cTi
-psh
+jDY
+oTJ
+oTJ
+tlE
+fZO
+fZO
+fZO
aAp
aAp
cIL
@@ -30283,10 +30617,10 @@ aud
amG
auP
oTJ
-teS
-psh
-pYJ
-cRT
+tlE
+aWq
+woF
+gyP
vEp
txx
xHa
@@ -30513,7 +30847,7 @@ auP
oTJ
teS
pDI
-cRT
+yiE
pYJ
dmS
cRT
@@ -30912,7 +31246,7 @@ gwP
aes
aez
aez
-aez
+rYI
acp
ane
ane
@@ -31584,7 +31918,7 @@ gwP
gwP
gwP
gwP
-gwP
+pqa
acp
xZE
gwP
@@ -31830,7 +32164,7 @@ ane
afV
ahF
ahF
-ahF
+vZT
ahF
ahF
ahF
@@ -33037,7 +33371,7 @@ axj
avH
aBp
aBR
-xTa
+aCk
ado
aXX
aXX
@@ -33054,7 +33388,7 @@ kWH
kWH
kWH
kWH
-czq
+kWH
kWH
kWH
vdy
@@ -34553,7 +34887,7 @@ eGD
ufG
eGD
eGD
-eGD
+gIe
ufG
eGD
ufG
@@ -36358,7 +36692,7 @@ eGD
eGD
eGD
eGD
-eGD
+xTa
abS
abS
abS
@@ -37510,7 +37844,7 @@ eGD
eGD
eGD
eGD
-eGD
+xTa
abS
abS
abS
@@ -38313,7 +38647,7 @@ aQn
aQn
aQn
aTh
-tYx
+aQn
aQn
aQn
aQn
@@ -39234,7 +39568,7 @@ kxI
awQ
qtj
qtj
-hLu
+xVN
tsa
tsa
aac
@@ -39461,9 +39795,9 @@ kxI
kxI
dEc
pcA
-azB
-vOD
-kGk
+qtj
+qtj
+tsa
tsa
aac
aaa
@@ -39689,9 +40023,9 @@ sBJ
kxI
kxI
ayU
-unT
-wXg
-kGk
+qtj
+qtj
+tsa
tsa
aac
aaa
@@ -39916,10 +40250,10 @@ aPt
tzK
kxI
kxI
-ooM
-unT
-kGk
-kGk
+kXE
+qtj
+tsa
+tsa
tsa
aac
aaa
@@ -40250,7 +40584,7 @@ eGD
eGD
eGD
eGD
-eGD
+xTa
abS
abS
wVk
@@ -40646,11 +40980,11 @@ aaH
aaw
aaw
aaw
+oHU
aaw
aaw
-aaw
-aaw
-aaw
+cDr
+jeL
aaF
aaF
abm
@@ -40724,7 +41058,7 @@ ajW
afI
ajW
ajW
-agC
+ajW
afN
ajW
ajW
@@ -40876,9 +41210,9 @@ aaw
aaw
aaw
aaw
-aaw
-aaw
-aaw
+wwI
+wbM
+jeL
aaF
abm
abm
@@ -41103,10 +41437,10 @@ aay
aaw
aaw
aaw
-aaw
-aaw
-aaw
-aaw
+wbM
+kbn
+wbM
+jeL
abm
abm
abm
@@ -41331,10 +41665,10 @@ aaz
aay
aaw
aaw
-aaw
-aaw
-aaw
-aaw
+wwI
+hpG
+wbM
+jeL
abm
abm
abm
@@ -41559,10 +41893,10 @@ aah
aaH
aaw
aaw
-aaw
-aaw
-aaw
-aaw
+wbM
+wbM
+wwI
+jeL
abm
abm
abm
@@ -41788,9 +42122,9 @@ aaH
aaw
aaw
aaw
-aaw
-aaw
-aaw
+cDr
+jeL
+jeL
abm
abm
abm
@@ -41859,7 +42193,7 @@ jaa
wVk
wVk
afx
-afM
+agf
ajW
agi
ajW
@@ -41869,7 +42203,7 @@ agT
ahh
ahl
afN
-agC
+ajW
ahS
afk
wVk
@@ -43004,7 +43338,7 @@ ajW
agl
ajW
ajW
-agC
+ajW
ajW
afN
eah
@@ -43208,7 +43542,7 @@ abS
abS
abS
abS
-eGD
+xTa
eGD
eGD
eGD
@@ -45008,7 +45342,7 @@ acf
abl
abl
abl
-abl
+czq
uxU
uxU
abl
@@ -47295,7 +47629,7 @@ uxU
uxU
abl
abl
-abl
+tYx
acf
acf
acf
@@ -51428,7 +51762,7 @@ ahv
slW
uFA
nPk
-urR
+pbG
nUs
uFA
aeg
@@ -52798,7 +53132,7 @@ pEV
mhZ
mhZ
mhZ
-pEV
+dID
kbr
jFc
rYA
@@ -53104,7 +53438,7 @@ ati
wWs
ati
aDE
-uns
+atE
asN
aFG
aFZ
@@ -54140,7 +54474,7 @@ jMS
jMS
fTM
fTM
-fTM
+uns
whU
whU
whU
@@ -57876,10 +58210,10 @@ atI
avS
atI
asN
-dLY
-dLY
-dLY
-dLY
+ihS
+oUa
+oUa
+deU
fFZ
xDw
apu
@@ -58098,16 +58432,16 @@ vNP
dLY
dLY
pcu
-dLY
-dLY
-dLY
-dLY
-lxX
-dLY
-dLY
-hRS
-dLY
-dLY
+ioC
+oUa
+oUa
+oUa
+oUa
+oUa
+isJ
+oUa
+kGk
+dqz
ukZ
mvc
apu
@@ -58325,18 +58659,18 @@ dLY
dLY
fSX
dLY
-dLY
-fSX
btS
-dLY
-dLY
-dLY
-dLY
-dLY
-vNP
-eCx
-dLY
-iBy
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+vbh
+dsi
+oUa
+dqz
+ukZ
ukZ
apu
apu
@@ -58553,21 +58887,21 @@ dLY
dLY
fED
dLY
-dLY
-dLY
-dLY
-fSX
-dLY
-dLY
-dLY
-dLY
-dLY
-dLY
-dLY
-dLY
+btS
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+upV
+oUa
+njO
+orB
apu
apu
-dLY
+oUa
apu
apu
apu
@@ -58781,21 +59115,21 @@ fSX
dLY
dLY
fSX
-dLY
-dLY
+btS
+oUa
jik
-dLY
-dLY
-dLY
-dLY
-dLY
-dLY
-crF
-dLY
-dLY
-dLY
-hmK
-xVk
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+ciz
+oUa
+oUa
+oUa
+oUa
apu
apu
apu
@@ -59009,22 +59343,22 @@ dLY
gAI
dLY
dLY
-dLY
-lxX
-dLY
-dLY
-dLY
-hRS
-dLY
-dLY
-dLY
-qcX
-dLY
-dLY
-yiE
-kNm
-dLY
-eSg
+eOk
+rSy
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+qns
+oUa
+oUa
+oUa
+uuf
+oUa
+cCr
vKt
apu
apu
@@ -59238,21 +59572,21 @@ fSX
dLY
dLY
dLY
-dLY
-qcX
-dLY
-dLY
-dLY
+btS
+qns
+oUa
+oUa
+oUa
jik
-dLY
-dLY
-dLY
-dLY
+oUa
+oUa
+oUa
+oUa
jik
-dLY
-dLY
-vKt
-vKt
+oUa
+oUa
+oUa
+cCr
djI
dZY
djI
@@ -59466,21 +59800,21 @@ fSX
dLY
gMe
gcn
-fSX
-dLY
-hmK
-xVk
-dLY
-dLY
-dLY
-uYC
-psc
-xQI
-dLY
-dLY
-crF
-dLY
-vKt
+btS
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+cCr
rON
djI
vKt
@@ -59694,21 +60028,21 @@ hKk
psc
xQI
dLY
-dLY
-dLY
-dLY
-dLY
-dLY
-uYC
-psc
-eil
-eil
-sXi
-dLY
-sHT
-dLY
-hRS
-dLY
+btS
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+cCr
jik
jik
rON
@@ -59921,22 +60255,22 @@ cCr
lLO
eil
sXi
-dLY
-dLY
-fSX
-fSX
-dLY
-dLY
-lLO
-hZn
-eil
-eil
-dNN
-dLY
-dLY
-dLY
-dLY
-dLY
+sRW
+ioC
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+cCr
jik
jik
jik
@@ -60089,7 +60423,7 @@ afS
izX
rwB
agX
-aut
+jKX
jFc
rJd
boe
@@ -60149,23 +60483,23 @@ cCr
dLY
xDR
sXi
-dLY
-dLY
-dLY
-dLY
-dLY
-lxX
+btS
+oUa
+oUa
+oUa
+oUa
+oUa
jik
-dLY
-lLO
-dNN
-dLY
-hRS
-dLY
-dLY
-dLY
-fED
-dLY
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+oUa
+vPV
+fqh
vKt
jik
jik
@@ -60323,7 +60657,7 @@ kSH
boe
rJd
aeg
-hcN
+ewg
twN
uOi
ufW
@@ -60377,23 +60711,23 @@ cCr
dLY
xDR
sXi
-dLY
-eCx
-dLY
-hRS
-dLY
-dLY
-dLY
-dLY
-lxX
-dLY
-dLY
+eOk
+pMM
+iBy
+rSy
+oUa
+mnr
+iBy
+rSy
+oUa
+oUa
+oUa
jik
jik
-bMu
-bMu
-bMu
-fqh
+jik
+iBy
+iBy
+iab
hmK
xVk
dLY
@@ -60607,21 +60941,21 @@ lbX
dNN
dLY
fSX
+hRS
+btS
+oUa
+uuV
dLY
+eOk
+iBy
+jik
+iBy
+iab
+jik
dLY
dLY
-kNm
-dLY
-dLY
-dLY
-jik
dLY
dLY
-jik
-oUa
-oUa
-oUa
-cCr
dLY
dLY
dLY
@@ -60629,8 +60963,8 @@ dLY
djI
jik
crF
-dLY
-dZY
+rcy
+kjD
dZY
fbD
xVk
@@ -60776,7 +61110,7 @@ ahv
ahv
ahv
afS
-hcN
+gdy
afS
aeg
uOi
@@ -60836,8 +61170,8 @@ fSX
dLY
dLY
dLY
-dLY
-dLY
+eOk
+iBy
jik
dLY
fED
@@ -60847,18 +61181,18 @@ jik
kNm
jik
jik
-oUa
-oUa
-cCr
-jik
dLY
-kNm
+dLY
dLY
jik
dLY
+kNm
dLY
-djI
-dZY
+jik
+oUa
+oUa
+mbN
+rGW
jik
jik
vWs
@@ -61082,11 +61416,11 @@ jik
jik
dLY
dLY
-hRS
-dLY
-dLY
-djI
-djI
+wUv
+oUa
+oUa
+mbN
+unT
djI
uVU
jik
diff --git a/maps/map_files/LV624/armory/10.cheese.dmm b/maps/map_files/LV624/armory/10.cheese.dmm
index 760329c216dd..26bfd92837f3 100644
--- a/maps/map_files/LV624/armory/10.cheese.dmm
+++ b/maps/map_files/LV624/armory/10.cheese.dmm
@@ -110,7 +110,6 @@
/obj/item/ammo_magazine/pistol/highpower,
/obj/item/ammo_magazine/pistol/highpower,
/obj/item/ammo_magazine/pistol/highpower,
-/obj/effect/landmark/objective_landmark/close,
/turf/open/floor{
icon_state = "cult"
},
diff --git a/maps/map_files/LV624/armory/10.extra.dmm b/maps/map_files/LV624/armory/10.extra.dmm
index 612cf5c34ea1..f9c0f47729c5 100644
--- a/maps/map_files/LV624/armory/10.extra.dmm
+++ b/maps/map_files/LV624/armory/10.extra.dmm
@@ -125,7 +125,6 @@
/obj/item/explosive/grenade/flashbang,
/obj/item/explosive/grenade/flashbang,
/obj/item/ammo_magazine/shotgun/beanbag,
-/obj/effect/landmark/objective_landmark/close,
/turf/open/floor{
icon_state = "cult"
},
diff --git a/maps/map_files/LV624/armory/10.looted.dmm b/maps/map_files/LV624/armory/10.looted.dmm
index 09d0371c7c39..478a3db3ea48 100644
--- a/maps/map_files/LV624/armory/10.looted.dmm
+++ b/maps/map_files/LV624/armory/10.looted.dmm
@@ -79,7 +79,6 @@
},
/area/lv624/lazarus/main_hall)
"l" = (
-/obj/effect/landmark/objective_landmark/close,
/turf/open/floor{
icon_state = "platingdmg3"
},
diff --git a/maps/map_files/LV624/cargospecial/cargospecial3_gear.dmm b/maps/map_files/LV624/cargospecial/cargospecial3_gear.dmm
index d89618cb3041..80d478e1ef51 100644
--- a/maps/map_files/LV624/cargospecial/cargospecial3_gear.dmm
+++ b/maps/map_files/LV624/cargospecial/cargospecial3_gear.dmm
@@ -1,11 +1,6 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/obj/structure/surface/rack,
-/obj/item/clothing/gloves/marine/veteran/pmc{
- pixel_x = 2;
- pixel_y = -3
- },
-/obj/item/clothing/gloves/marine/veteran/pmc,
/turf/open/floor{
dir = 8;
icon_state = "vault"
@@ -43,7 +38,6 @@
/obj/structure/surface/rack,
/obj/item/clothing/accessory/storage/black_vest/brown_vest,
/obj/item/clothing/accessory/storage/black_vest/brown_vest,
-/obj/effect/landmark/objective_landmark/medium,
/turf/open/floor{
dir = 8;
icon_state = "vault"
diff --git a/maps/map_files/LV624/centralcaves/10.T.dmm b/maps/map_files/LV624/centralcaves/10.T.dmm
index c9b62878872c..7433f2f6131d 100644
--- a/maps/map_files/LV624/centralcaves/10.T.dmm
+++ b/maps/map_files/LV624/centralcaves/10.T.dmm
@@ -68,6 +68,10 @@
/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall,
/turf/open/gm/dirt,
/area/lv624/ground/caves/central_caves)
+"C" = (
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/gm/dirt,
+/area/lv624/ground/caves/south_central_caves)
"G" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
/turf/open/gm/dirt,
@@ -154,7 +158,7 @@ w
f
A
V
-V
+C
l
l
l
@@ -207,7 +211,7 @@ l
l
l
l
-V
+C
V
V
V
@@ -674,7 +678,7 @@ V
V
G
V
-V
+C
l
l
l
diff --git a/maps/map_files/LV624/centralcaves/10.qc.dmm b/maps/map_files/LV624/centralcaves/10.qc.dmm
index 67c707f60afa..1e84fde00653 100644
--- a/maps/map_files/LV624/centralcaves/10.qc.dmm
+++ b/maps/map_files/LV624/centralcaves/10.qc.dmm
@@ -54,6 +54,10 @@
/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall,
/turf/open/gm/dirt,
/area/lv624/ground/caves/south_central_caves)
+"x" = (
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/gm/dirt,
+/area/lv624/ground/caves/south_central_caves)
"y" = (
/turf/closed/wall/rock/brown,
/area/lv624/ground/barrens/west_barrens)
@@ -459,7 +463,7 @@ C
C
g
C
-C
+x
l
l
l
@@ -660,7 +664,7 @@ l
l
l
l
-C
+x
C
C
C
diff --git a/maps/map_files/LV624/crashedship/10.digsite.dmm b/maps/map_files/LV624/crashedship/10.digsite.dmm
index ccc8111d9956..6132b455f14d 100644
--- a/maps/map_files/LV624/crashedship/10.digsite.dmm
+++ b/maps/map_files/LV624/crashedship/10.digsite.dmm
@@ -219,15 +219,6 @@
/obj/effect/alien/weeds/node,
/turf/open/gm/dirt,
/area/lv624/ground/barrens/north_east_barrens)
-"FG" = (
-/obj/structure/bed/chair{
- dir = 8
- },
-/obj/item/clothing/gloves/marine/veteran/pmc,
-/turf/open/shuttle{
- icon_state = "floor4"
- },
-/area/lv624/lazarus/crashed_ship_containers)
"Gs" = (
/obj/structure/girder,
/turf/closed/shuttle{
@@ -503,7 +494,7 @@ xg
zH
cv
uw
-FG
+cv
Xk
Gs
Xk
diff --git a/maps/map_files/LV624/gym/20.pool.dmm b/maps/map_files/LV624/gym/20.pool.dmm
index 92bba9a7dcff..be863f49c556 100644
--- a/maps/map_files/LV624/gym/20.pool.dmm
+++ b/maps/map_files/LV624/gym/20.pool.dmm
@@ -101,7 +101,6 @@
/area/lv624/lazarus/fitness)
"li" = (
/obj/effect/decal/cleanable/blood/splatter,
-/obj/effect/landmark/objective_landmark/close,
/turf/open/floor{
dir = 4;
icon_state = "whitepurplecorner"
@@ -209,7 +208,6 @@
},
/obj/structure/surface/table,
/obj/item/storage/box/cups,
-/obj/effect/landmark/objective_landmark/medium,
/turf/open/floor{
dir = 4;
icon_state = "whitepurplecorner"
@@ -354,7 +352,6 @@
/obj/item/clothing/mask/snorkel,
/obj/item/clothing/mask/snorkel,
/obj/item/clothing/mask/snorkel,
-/obj/effect/landmark/objective_landmark/close,
/turf/open/floor{
dir = 4;
icon_state = "whitepurplecorner"
diff --git a/maps/map_files/LV624/gym/30.alternate.dmm b/maps/map_files/LV624/gym/30.alternate.dmm
index 8762e50bc905..79d0887c2219 100644
--- a/maps/map_files/LV624/gym/30.alternate.dmm
+++ b/maps/map_files/LV624/gym/30.alternate.dmm
@@ -69,11 +69,10 @@
/obj/structure/surface/rack,
/obj/item/clothing/shoes/black,
/obj/item/clothing/shoes/orange{
+ name = "running shoes";
pixel_x = -5;
- pixel_y = -9;
- name = "running shoes"
+ pixel_y = -9
},
-/obj/effect/landmark/objective_landmark/close,
/turf/open/floor{
dir = 4;
icon_state = "whitepurplecorner"
@@ -373,7 +372,6 @@
"DH" = (
/obj/structure/closet/lasertag/blue,
/obj/item/tool/crowbar,
-/obj/effect/landmark/objective_landmark/close,
/turf/open/floor{
dir = 4;
icon_state = "whitepurplecorner"
@@ -646,7 +644,6 @@
id = "lv_gym_1";
name = "treadmill"
},
-/obj/effect/landmark/objective_landmark/medium,
/turf/open/floor{
dir = 4;
icon_state = "whitepurplecorner"
diff --git a/maps/map_files/LV624/hydro/30.destroyed.dmm b/maps/map_files/LV624/hydro/30.destroyed.dmm
index a1c9ebcf3dbb..84e9ebb5c814 100644
--- a/maps/map_files/LV624/hydro/30.destroyed.dmm
+++ b/maps/map_files/LV624/hydro/30.destroyed.dmm
@@ -64,7 +64,6 @@
/area/lv624/ground/colony/south_medbay_road)
"ft" = (
/obj/item/clothing/gloves/marine/veteran/pmc{
- name = "damaged WY PMC gloves";
armor_bio = 10;
armor_bomb = 10;
armor_bullet = 15;
@@ -72,7 +71,8 @@
armor_internaldamage = 15;
armor_laser = 15;
armor_melee = 15;
- armor_rad = 10
+ armor_rad = 10;
+ name = "damaged WY PMC gloves"
},
/turf/open/floor{
icon_state = "platingdmg1"
@@ -171,10 +171,10 @@
},
/obj/effect/spawner/gibspawner/robot,
/obj/item/limb/head/synth{
- pixel_x = 9;
- pixel_y = 3;
+ desc = "This appears to be the head of a synthetic, though it it is so destroyed there is no way in hell anyone is going to bring it back to even basic functionality.";
name = "shattered synthetic head";
- desc = "This appears to be the head of a synthetic, though it it is so destroyed there is no way in hell anyone is going to bring it back to even basic functionality."
+ pixel_x = 9;
+ pixel_y = 3
},
/obj/item/robot_parts/arm/l_arm,
/turf/open/floor{
@@ -368,10 +368,6 @@
icon_state = "platingdmg1"
},
/area/lv624/lazarus/hydroponics)
-"DN" = (
-/obj/effect/landmark/objective_landmark/close,
-/turf/open/floor/plating,
-/area/lv624/lazarus/hydroponics)
"Ed" = (
/obj/item/stack/sheet/metal,
/turf/open/floor{
@@ -571,7 +567,6 @@
/obj/item/ammo_magazine/smg/fp9000,
/obj/item/ammo_magazine/smg/fp9000,
/obj/item/clothing/gloves/marine/veteran/pmc{
- name = "damaged WY PMC gloves";
armor_bio = 10;
armor_bomb = 10;
armor_bullet = 15;
@@ -580,6 +575,7 @@
armor_laser = 15;
armor_melee = 15;
armor_rad = 10;
+ name = "damaged WY PMC gloves";
pixel_y = 9
},
/turf/open/floor/plating,
@@ -591,8 +587,6 @@
/area/lv624/lazarus/hydroponics)
"RT" = (
/obj/item/clothing/shoes/veteran/pmc{
- slowdown = 0.5;
- name = "scuffed shoes";
armor_bio = 15;
armor_bomb = 5;
armor_bullet = 15;
@@ -601,8 +595,10 @@
armor_laser = 5;
armor_melee = 15;
desc = "The height of fashion, but these look to be woven with protective fiber. This pair seems heavily damaged, especially around the soles...";
+ name = "scuffed shoes";
pixel_x = -14;
- pixel_y = -10
+ pixel_y = -10;
+ slowdown = 0.5
},
/turf/open/floor{
dir = 9;
@@ -874,7 +870,7 @@ bd
aO
QR
mK
-DN
+Wg
TC
Wg
TC
diff --git a/maps/map_files/LV624/maintemple/1.intact.dmm b/maps/map_files/LV624/maintemple/1.intact.dmm
index 27e4f42b6152..9289d3454327 100644
--- a/maps/map_files/LV624/maintemple/1.intact.dmm
+++ b/maps/map_files/LV624/maintemple/1.intact.dmm
@@ -130,6 +130,7 @@
desc = "An old hide from a fearsome creature.";
name = "hunter hide"
},
+/obj/effect/landmark/objective_landmark/far,
/turf/open/floor/sandstone/runed,
/area/lv624/ground/caves/sand_temple)
"dE" = (
@@ -311,6 +312,13 @@
icon_state = "multi_tiles"
},
/area/lv624/ground/caves/sand_temple)
+"fQ" = (
+/obj/effect/landmark/objective_landmark/science,
+/turf/open/floor/strata{
+ color = "#5e5d5d";
+ icon_state = "multi_tiles"
+ },
+/area/lv624/ground/caves/sand_temple)
"fV" = (
/obj/structure/prop/brazier/torch,
/turf/closed/wall/rock/brown,
@@ -404,6 +412,7 @@
name = "sacred ceremonial dagger";
pixel_x = 9
},
+/obj/effect/landmark/objective_landmark/medium,
/turf/open/floor/sandstone/runed,
/area/lv624/ground/caves/sand_temple)
"hA" = (
@@ -507,6 +516,7 @@
color = "#6b675e"
},
/obj/item/restraints,
+/obj/effect/landmark/objective_landmark/close,
/turf/open/floor/strata{
color = "#5e5d5d";
icon_state = "multi_tiles"
@@ -1148,6 +1158,25 @@
icon_state = "multi_tiles"
},
/area/lv624/ground/caves/sand_temple)
+"BY" = (
+/obj/structure/surface/table/reinforced/prison{
+ color = "#6b675e"
+ },
+/obj/structure/window/reinforced{
+ dir = 8;
+ health = 80
+ },
+/obj/structure/window/reinforced{
+ dir = 4;
+ health = 80
+ },
+/obj/item/hunting_trap{
+ desc = "A bizarre alien device used for trapping and killing prey.";
+ name = "Alien Mine"
+ },
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/floor/sandstone/runed,
+/area/lv624/ground/caves/sand_temple)
"Cr" = (
/obj/effect/decal/cleanable/blood{
basecolor = "#20d450";
@@ -1445,6 +1474,7 @@
/obj/item/XenoItem/AntiAcid{
pixel_x = 4
},
+/obj/effect/landmark/objective_landmark/close,
/turf/open/floor/sandstone/runed,
/area/lv624/ground/caves/sand_temple)
"LF" = (
@@ -1710,6 +1740,7 @@
color = "#6b675e"
},
/obj/item/stack/yautja_rope,
+/obj/effect/landmark/objective_landmark/science,
/turf/open/floor/sandstone/runed,
/area/lv624/ground/caves/sand_temple/powered)
"SF" = (
@@ -1746,6 +1777,7 @@
amount = 50;
pixel_y = 7
},
+/obj/effect/landmark/objective_landmark/medium,
/turf/open/floor/corsat{
dir = 1;
icon_state = "squareswood"
@@ -2374,7 +2406,7 @@ gL
Jc
Jc
Jc
-gL
+fQ
wS
oi
qf
@@ -3332,7 +3364,7 @@ ZX
ZX
GT
OC
-KB
+BY
mv
mv
mv
diff --git a/maps/map_files/LV624/maintemple/2.flooded.dmm b/maps/map_files/LV624/maintemple/2.flooded.dmm
index f375b61213ce..bcbf6a54774c 100644
--- a/maps/map_files/LV624/maintemple/2.flooded.dmm
+++ b/maps/map_files/LV624/maintemple/2.flooded.dmm
@@ -39,6 +39,7 @@
dir = 8;
health = 80
},
+/obj/effect/landmark/objective_landmark/close,
/turf/open/floor/sandstone/runed,
/area/lv624/ground/caves/sand_temple)
"aN" = (
@@ -332,6 +333,13 @@
/obj/structure/flora/jungle/vines/light_3,
/turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east,
/area/lv624/ground/caves/sand_temple)
+"jc" = (
+/obj/structure/platform_decoration/mineral/sandstone/runed{
+ dir = 1
+ },
+/obj/effect/landmark/objective_landmark/close,
+/turf/open/gm/dirt,
+/area/lv624/ground/caves/sand_temple)
"jZ" = (
/obj/structure/flora/jungle/vines/light_3,
/turf/open/gm/dirtgrassborder/grassdirt_corner2/north_west,
@@ -347,6 +355,7 @@
/obj/structure/surface/table/reinforced/prison{
color = "#6b675e"
},
+/obj/effect/landmark/objective_landmark/science,
/turf/open/floor/sandstone/runed,
/area/lv624/ground/caves/sand_temple)
"lI" = (
@@ -784,6 +793,7 @@
dir = 4;
health = 80
},
+/obj/effect/landmark/objective_landmark/close,
/turf/open/gm/dirt,
/area/lv624/ground/caves/sand_temple)
"wt" = (
@@ -1137,6 +1147,13 @@
"EJ" = (
/turf/open/gm/coast/beachcorner2/south_west,
/area/lv624/ground/caves/sand_temple)
+"EL" = (
+/obj/effect/landmark/objective_landmark/science,
+/turf/open/floor/strata{
+ color = "#5e5d5d";
+ icon_state = "multi_tiles"
+ },
+/area/lv624/ground/caves/sand_temple)
"EM" = (
/obj/structure/showcase{
color = "#95948B";
@@ -1302,6 +1319,13 @@
},
/turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east,
/area/lv624/ground/caves/sand_temple)
+"Ip" = (
+/obj/structure/surface/table/reinforced/prison{
+ color = "#6b675e"
+ },
+/obj/effect/landmark/objective_landmark/far,
+/turf/open/gm/dirt,
+/area/lv624/ground/caves/sand_temple)
"Ix" = (
/obj/structure/barricade/handrail/strata,
/obj/structure/barricade/handrail/strata{
@@ -1798,6 +1822,20 @@
},
/turf/open/gm/dirtgrassborder/grassdirt_corner/north_east,
/area/lv624/ground/barrens/south_eastern_barrens)
+"Xr" = (
+/obj/effect/landmark/objective_landmark/medium,
+/turf/open/floor/corsat{
+ dir = 1;
+ icon_state = "squareswood"
+ },
+/area/lv624/ground/caves/sand_temple)
+"XQ" = (
+/obj/structure/surface/table/reinforced/prison{
+ color = "#6b675e"
+ },
+/obj/effect/landmark/objective_landmark/medium,
+/turf/open/gm/dirt,
+/area/lv624/ground/caves/sand_temple)
"XV" = (
/obj/structure/bed/chair/comfy/black{
dir = 1
@@ -2006,7 +2044,7 @@ GT
Jm
rL
Dg
-Ge
+Xr
we
rL
xO
@@ -2260,7 +2298,7 @@ gL
Jc
Jc
Jc
-gL
+EL
wS
if
qf
@@ -2848,7 +2886,7 @@ ma
wU
po
MB
-Yu
+jc
py
yc
dA
@@ -3641,7 +3679,7 @@ GT
SW
Ai
Br
-UX
+XQ
Mq
Zi
mv
@@ -3728,7 +3766,7 @@ GT
GT
GT
OC
-UX
+Ip
OC
xO
FS
diff --git a/maps/map_files/LV624/medbay/10.destroyed.dmm b/maps/map_files/LV624/medbay/10.destroyed.dmm
index 34dbd1981cf0..88e17a3aeee0 100644
--- a/maps/map_files/LV624/medbay/10.destroyed.dmm
+++ b/maps/map_files/LV624/medbay/10.destroyed.dmm
@@ -300,12 +300,6 @@
/obj/structure/flora/bush/ausbushes/lavendergrass,
/turf/open/gm/grass/grass1,
/area/lv624/ground/jungle/north_west_jungle)
-"AB" = (
-/obj/effect/landmark/objective_landmark/science,
-/turf/open/floor{
- icon_state = "whitebluefull"
- },
-/area/lv624/lazarus/medbay)
"Be" = (
/obj/structure/fence,
/turf/open/gm/dirtgrassborder/grassdirt_corner/north_west,
@@ -806,7 +800,7 @@ Il
yU
QR
QR
-AB
+YJ
vm
uV
fX
diff --git a/maps/map_files/LV624/medbay/30.larvasurgery.dmm b/maps/map_files/LV624/medbay/30.larvasurgery.dmm
index a47a2cd2ed62..b67b5e7bf1c5 100644
--- a/maps/map_files/LV624/medbay/30.larvasurgery.dmm
+++ b/maps/map_files/LV624/medbay/30.larvasurgery.dmm
@@ -480,7 +480,6 @@
/obj/structure/machinery/light{
dir = 8
},
-/obj/effect/landmark/objective_landmark/science,
/turf/open/floor{
dir = 8;
icon_state = "whiteblue"
diff --git a/maps/map_files/LV624/science/10.yautja.dmm b/maps/map_files/LV624/science/10.yautja.dmm
index d0dfdca90fc7..c77bacd35202 100644
--- a/maps/map_files/LV624/science/10.yautja.dmm
+++ b/maps/map_files/LV624/science/10.yautja.dmm
@@ -184,9 +184,9 @@
},
/obj/effect/landmark/crap_item,
/obj/structure/transmitter/colony_net{
- pixel_y = 24;
phone_category = "Lazarus Landing";
- phone_id = "Research Dome"
+ phone_id = "Research Dome";
+ pixel_y = 24
},
/turf/open/floor{
dir = 5;
@@ -326,7 +326,6 @@
/area/lv624/lazarus/research)
"aQ" = (
/obj/item/clothing/glasses/regular,
-/obj/effect/landmark/objective_landmark/science,
/turf/open/floor{
icon_state = "white"
},
@@ -456,7 +455,6 @@
/obj/structure/surface/table,
/obj/item/explosive/grenade/spawnergrenade/smartdisc,
/obj/item/explosive/grenade/spawnergrenade/smartdisc,
-/obj/effect/landmark/objective_landmark/science,
/turf/open/floor{
dir = 5;
icon_state = "whitepurple"
@@ -528,7 +526,6 @@
"LE" = (
/obj/structure/surface/table,
/obj/effect/landmark/crap_item,
-/obj/effect/landmark/objective_landmark/science,
/turf/open/floor{
dir = 5;
icon_state = "whitepurple"
diff --git a/maps/map_files/LV624/science/40.fullylocked.dmm b/maps/map_files/LV624/science/40.fullylocked.dmm
index 3ba311757b73..8e523f6c7e9c 100644
--- a/maps/map_files/LV624/science/40.fullylocked.dmm
+++ b/maps/map_files/LV624/science/40.fullylocked.dmm
@@ -329,7 +329,6 @@
/obj/structure/surface/table,
/obj/structure/machinery/cell_charger,
/obj/item/tool/crowbar,
-/obj/effect/landmark/objective_landmark/science,
/turf/open/floor{
dir = 5;
icon_state = "whitepurple"
@@ -367,7 +366,6 @@
/area/lv624/lazarus/research)
"bm" = (
/obj/structure/surface/table,
-/obj/effect/landmark/objective_landmark/science,
/turf/open/floor{
icon_state = "freezerfloor"
},
@@ -438,9 +436,9 @@
/area/lv624/lazarus/research)
"oe" = (
/obj/structure/transmitter/colony_net{
- pixel_y = 24;
phone_category = "Lazarus Landing";
- phone_id = "Research Dome"
+ phone_id = "Research Dome";
+ pixel_y = 24
},
/turf/open/floor{
dir = 5;
@@ -603,7 +601,7 @@ ab
"}
(7,1,1) = {"
ac
-bn
+Tz
aq
ay
ay
@@ -715,7 +713,7 @@ bb
ay
ab
bn
-bn
+Tz
aj
ac
bE
diff --git a/maps/map_files/LV624/standalone/clfship.dmm b/maps/map_files/LV624/standalone/clfship.dmm
index e69c2de5bcb8..4c53a79e90d7 100644
--- a/maps/map_files/LV624/standalone/clfship.dmm
+++ b/maps/map_files/LV624/standalone/clfship.dmm
@@ -455,6 +455,7 @@
/area/lv624/lazarus/crashed_ship)
"lv" = (
/obj/item/stack/rods,
+/obj/effect/landmark/objective_landmark/close,
/turf/open/floor{
icon_state = "platingdmg1"
},
@@ -669,6 +670,7 @@
phone_color = "yellow";
phone_id = "Engineering"
},
+/obj/effect/landmark/objective_landmark/close,
/turf/open/floor/almayer{
icon_state = "orangecorner"
},
@@ -1059,6 +1061,7 @@
/obj/item/tank/oxygen/red,
/obj/item/storage/bag/trash,
/obj/item/tool/screwdriver,
+/obj/effect/landmark/objective_landmark/science,
/turf/open/floor{
icon_state = "platingdmg1"
},
@@ -1250,6 +1253,7 @@
pixel_x = -3;
pixel_y = 4
},
+/obj/effect/landmark/objective_landmark/medium,
/turf/open/floor/wood,
/area/lv624/lazarus/crashed_ship)
"GQ" = (
@@ -1275,6 +1279,7 @@
/obj/item/ammo_magazine/pistol/heavy,
/obj/item/ammo_magazine/pistol/heavy,
/obj/item/clothing/accessory/storage/webbing,
+/obj/effect/landmark/objective_landmark/close,
/turf/open/floor/almayer{
dir = 5;
icon_state = "green"
@@ -1954,6 +1959,7 @@
"Xa" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/storage/firstaid/regular,
+/obj/effect/landmark/objective_landmark/science,
/turf/open/floor/almayer{
dir = 1;
icon_state = "emerald"
diff --git a/maps/map_files/New_Varadero/New_Varadero.dmm b/maps/map_files/New_Varadero/New_Varadero.dmm
index ae2d59345596..e03bf8cdcbe4 100644
--- a/maps/map_files/New_Varadero/New_Varadero.dmm
+++ b/maps/map_files/New_Varadero/New_Varadero.dmm
@@ -2261,13 +2261,6 @@
default_name = "shallow ocean"
},
/area/varadero/exterior/pontoon_beach)
-"bvS" = (
-/obj/structure/bedsheetbin,
-/obj/item/clothing/gloves/marine/veteran/pmc,
-/turf/open/floor/shiva{
- icon_state = "floor3"
- },
-/area/varadero/interior/laundry)
"bwz" = (
/obj/structure/closet/emcloset,
/turf/open/floor/shiva{
@@ -5661,7 +5654,6 @@
/area/varadero/interior/hall_N)
"dKm" = (
/obj/structure/closet/secure_closet/personal/patient,
-/obj/item/clothing/gloves/marine/veteran/pmc,
/turf/open/floor/shiva{
icon_state = "multi_tiles"
},
@@ -7379,6 +7371,9 @@
/obj/item/circuitboard/airlock,
/turf/open/floor/shiva,
/area/varadero/interior/technical_storage)
+"eOK" = (
+/turf/open/floor/plating,
+/area/varadero/interior_protected/caves/central)
"eOZ" = (
/obj/structure/bed/chair{
dir = 1
@@ -10637,6 +10632,11 @@
icon_state = "asteroidplating"
},
/area/varadero/interior/maintenance)
+"gPE" = (
+/turf/open/floor/shiva{
+ icon_state = "multi_tiles"
+ },
+/area/varadero/interior_protected/caves/central)
"gPG" = (
/turf/open/gm/dirt{
icon_state = "desert2"
@@ -16173,7 +16173,6 @@
/obj/item/bedsheet/hos{
layer = 3.1
},
-/obj/item/clothing/gloves/marine/veteran/insulated,
/turf/open/floor/wood,
/area/varadero/interior/bunks)
"kyh" = (
@@ -21746,6 +21745,14 @@
icon_state = "asteroidplating"
},
/area/varadero/interior/hall_NW)
+"nYi" = (
+/obj/structure/machinery/sensortower{
+ pixel_x = -9
+ },
+/turf/open/floor/shiva{
+ icon_state = "floor3"
+ },
+/area/varadero/interior_protected/caves/central)
"nYx" = (
/obj/structure/machinery/storm_siren{
dir = 8;
@@ -26672,6 +26679,9 @@
},
/turf/open/gm/dirt,
/area/varadero/exterior/lz2_near)
+"raW" = (
+/turf/closed/wall,
+/area/varadero/interior_protected/caves/central)
"rbd" = (
/obj/item/stack/sheet/wood/small_stack,
/turf/open/floor/plating/icefloor{
@@ -27533,6 +27543,10 @@
icon_state = "asteroidplating"
},
/area/varadero/interior/maintenance/north)
+"rAt" = (
+/obj/structure/window/framed/colony,
+/turf/open/floor/plating,
+/area/varadero/interior_protected/caves/central)
"rAy" = (
/obj/structure/bedsheetbin,
/turf/open/floor/shiva{
@@ -50586,7 +50600,7 @@ tvv
pRP
sBX
gmE
-bvS
+nfv
nfv
aFh
uNq
@@ -53326,9 +53340,9 @@ etv
xxk
xxk
mCF
-aOg
-mCF
-mCF
+raW
+rAt
+rAt
cty
hoC
mCF
@@ -53508,9 +53522,9 @@ toU
cto
xxk
meS
-aOg
-aOg
-mCF
+eOK
+gPE
+gPE
cty
cty
mCF
@@ -53690,9 +53704,9 @@ etv
xxk
xxk
aOg
-mCF
-mCF
-hoC
+eOK
+gPE
+nYi
cty
aOg
aOg
@@ -53871,9 +53885,9 @@ ixr
toU
xxk
xxk
+eOK
mCF
-mCF
-hoC
+gPE
cty
cty
aOg
@@ -54054,7 +54068,7 @@ mMZ
xxk
xxk
mCF
-mCF
+eOK
cty
cty
cty
diff --git a/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm b/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm
index edc1340df385..334c7e71f8b6 100644
--- a/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm
+++ b/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm
@@ -4669,13 +4669,6 @@
},
/turf/open/auto_turf/snow/brown_base/layer0,
/area/strata/ag/interior/restricted/devroom)
-"anO" = (
-/obj/structure/bedsheetbin,
-/obj/item/clothing/gloves/marine/veteran/pmc,
-/turf/open/floor/strata{
- icon_state = "blue1"
- },
-/area/strata/ag/interior/outpost/canteen/personal_storage)
"anP" = (
/obj/structure/bedsheetbin,
/obj/item/device/binoculars/range,
@@ -22558,9 +22551,13 @@
/turf/open/auto_turf/snow/brown_base/layer0,
/area/strata/ag/exterior/nearlz2)
"bwy" = (
-/obj/structure/surface/table/reinforced/prison,
-/obj/item/device/radio,
-/turf/open/auto_turf/strata_grass/layer0_mud,
+/obj/structure/machinery/sensortower{
+ pixel_x = -8
+ },
+/turf/open/floor/strata{
+ dir = 4;
+ icon_state = "floor3"
+ },
/area/strata/ug/interior/jungle/platform/east/scrub)
"bwA" = (
/obj/structure/flora/grass/tallgrass/ice/corner{
@@ -32944,6 +32941,11 @@
},
/turf/open/auto_turf/ice/layer1,
/area/strata/ag/exterior/marsh)
+"ioi" = (
+/turf/open/floor/strata{
+ icon_state = "multi_tiles"
+ },
+/area/strata/ug/interior/jungle/platform/east/scrub)
"ioz" = (
/obj/structure/bed/nest,
/obj/effect/decal/cleanable/blood/gibs/core,
@@ -39143,6 +39145,9 @@
icon_state = "floor3"
},
/area/strata/ug/interior/outpost/jung/dorms/sec1)
+"sPF" = (
+/turf/open/floor/strata,
+/area/strata/ug/interior/jungle/platform/east/scrub)
"sQs" = (
/turf/open/asphalt/cement{
icon_state = "cement9"
@@ -74324,7 +74329,7 @@ akE
alo
bPZ
alo
-anO
+bmX
alU
apG
aqK
@@ -75335,9 +75340,9 @@ rpX
tnM
wZZ
bwE
-bqf
-csY
-bqf
+ioi
+sPF
+ioi
btL
btE
wZZ
@@ -75530,9 +75535,9 @@ rpX
tnM
wZZ
wZZ
-btK
+sPF
bwy
-bqf
+sPF
bDB
wZZ
wZZ
@@ -75725,9 +75730,9 @@ rpX
tnM
wZZ
bqf
-csZ
-bwE
-bqf
+ioi
+sPF
+ioi
wZZ
bqf
wZZ
diff --git a/maps/map_files/USS_Almayer/USS_Almayer.dmm b/maps/map_files/USS_Almayer/USS_Almayer.dmm
index eb05927b5f18..fb842c754dd9 100644
--- a/maps/map_files/USS_Almayer/USS_Almayer.dmm
+++ b/maps/map_files/USS_Almayer/USS_Almayer.dmm
@@ -1052,7 +1052,8 @@
name = "ship-grade camera"
},
/turf/open/floor/almayer{
- icon_state = "plate"
+ dir = 4;
+ icon_state = "green"
},
/area/almayer/living/starboard_garden)
"adp" = (
@@ -1073,15 +1074,6 @@
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/north1)
-"ads" = (
-/obj/structure/flora/pottedplant{
- icon_state = "pottedplant_22";
- pixel_y = 8
- },
-/turf/open/floor/almayer{
- icon_state = "mono"
- },
-/area/almayer/lifeboat_pumps/north1)
"adt" = (
/obj/item/reagent_container/glass/bucket/janibucket{
pixel_x = -1;
@@ -1116,8 +1108,8 @@
pixel_y = -9
},
/obj/item/stock_parts/scanning_module/adv{
- pixel_y = 15;
- pixel_x = 4
+ pixel_x = 4;
+ pixel_y = 15
},
/turf/open/floor/almayer{
icon_state = "plate"
@@ -1170,8 +1162,11 @@
},
/area/almayer/hallways/aft_hallway)
"adI" = (
-/obj/docking_port/stationary/escape_pod/south,
-/turf/open/floor/plating,
+/obj/structure/reagent_dispensers/fueltank,
+/obj/structure/machinery/light/small,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
/area/almayer/hull/upper_hull/u_m_p)
"adO" = (
/turf/closed/wall/almayer,
@@ -1190,9 +1185,9 @@
/area/almayer/lifeboat_pumps/north1)
"adR" = (
/obj/structure/machinery/door/airlock/almayer/generic{
+ access_modified = 1;
name = "\improper Pilot's Office";
- req_one_access_txt = "3;22;19";
- access_modified = 1
+ req_one_access_txt = "3;22;19"
},
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 8
@@ -1223,12 +1218,11 @@
},
/area/almayer/lifeboat_pumps/north1)
"aea" = (
-/obj/structure/bed/chair{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "mono"
+/obj/structure/machinery/light{
+ dir = 1
},
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/north1)
"aeb" = (
/obj/structure/machinery/door/poddoor/shutters/almayer/open{
@@ -1241,10 +1235,9 @@
},
/area/almayer/hallways/starboard_hallway)
"aec" = (
-/obj/structure/surface/table/almayer,
-/obj/effect/spawner/random/tool,
+/obj/structure/closet/firecloset,
/turf/open/floor/almayer{
- icon_state = "mono"
+ icon_state = "cargo"
},
/area/almayer/lifeboat_pumps/north1)
"aed" = (
@@ -1259,10 +1252,9 @@
},
/area/almayer/living/basketball)
"aee" = (
-/obj/structure/surface/table/almayer,
-/obj/effect/spawner/random/toolbox,
+/obj/structure/closet/emcloset,
/turf/open/floor/almayer{
- icon_state = "mono"
+ icon_state = "cargo"
},
/area/almayer/lifeboat_pumps/north1)
"aef" = (
@@ -1277,11 +1269,12 @@
},
/area/almayer/living/offices/flight)
"aei" = (
-/obj/structure/bed/chair{
- dir = 8
+/obj/structure/machinery/light{
+ dir = 1
},
/turf/open/floor/almayer{
- icon_state = "mono"
+ dir = 5;
+ icon_state = "red"
},
/area/almayer/lifeboat_pumps/north1)
"aej" = (
@@ -1336,11 +1329,12 @@
/turf/open/floor/wood/ship,
/area/almayer/living/commandbunks)
"aex" = (
-/turf/open/floor/almayer{
- dir = 6;
- icon_state = "red"
+/obj/item/reagent_container/food/drinks/cans/beer{
+ pixel_x = 6;
+ pixel_y = 12
},
-/area/almayer/shipboard/starboard_missiles)
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/lifeboat_pumps/north2)
"aey" = (
/obj/structure/machinery/alarm/almayer{
dir = 1
@@ -1367,6 +1361,9 @@
/obj/structure/machinery/light{
dir = 1
},
+/obj/structure/sign/safety/rewire{
+ pixel_y = 32
+ },
/turf/open/floor/almayer{
icon_state = "mono"
},
@@ -1378,9 +1375,9 @@
/area/almayer/lifeboat_pumps/north2)
"aeD" = (
/obj/structure/machinery/door/airlock/almayer/maint/reinforced{
+ access_modified = 1;
req_one_access = null;
- req_one_access_txt = "2;7";
- access_modified = 1
+ req_one_access_txt = "2;7"
},
/obj/structure/machinery/door/poddoor/almayer/open{
dir = 4;
@@ -1528,6 +1525,7 @@
},
/area/almayer/hallways/aft_hallway)
"aeW" = (
+/obj/effect/decal/cleanable/dirt,
/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage,
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/north1)
@@ -1654,15 +1652,6 @@
},
/turf/open/floor/wood/ship,
/area/almayer/living/commandbunks)
-"afp" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/turf/open/floor/almayer{
- dir = 9;
- icon_state = "red"
- },
-/area/almayer/lifeboat_pumps/north1)
"afq" = (
/obj/effect/step_trigger/clone_cleaner,
/obj/effect/decal/warning_stripes{
@@ -1733,16 +1722,10 @@
"afz" = (
/turf/open/floor/almayer/empty,
/area/almayer/hallways/vehiclehangar)
-"afA" = (
+"afB" = (
/obj/structure/machinery/light{
dir = 1
},
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "red"
- },
-/area/almayer/lifeboat_pumps/north1)
-"afB" = (
/turf/open/floor/almayer{
dir = 9;
icon_state = "red"
@@ -1863,11 +1846,11 @@
},
/obj/structure/disposalpipe/segment,
/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{
+ access_modified = 1;
dir = 1;
name = "\improper Particle Cannon Systems Room";
req_access = null;
- req_one_access_txt = "3;19";
- access_modified = 1
+ req_one_access_txt = "3;19"
},
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 2
@@ -1882,9 +1865,6 @@
icon_state = "test_floor4"
},
/area/almayer/engineering/upper_engineering/starboard)
-"afY" = (
-/turf/open/floor/grass,
-/area/almayer/living/starboard_garden)
"afZ" = (
/obj/structure/bed/chair/comfy/blue{
dir = 8
@@ -1929,16 +1909,12 @@
icon_state = "bluecorner"
},
/area/almayer/living/offices/flight)
-"agh" = (
-/obj/structure/flora/bush/ausbushes/var3/fullgrass,
-/turf/open/floor/grass,
-/area/almayer/living/starboard_garden)
"agi" = (
/obj/structure/machinery/door/airlock/almayer/maint{
+ access_modified = 1;
req_access = null;
req_one_access = null;
- req_one_access_txt = "3;22;19";
- access_modified = 1
+ req_one_access_txt = "3;22;19"
},
/obj/structure/machinery/door/poddoor/almayer/open{
dir = 4;
@@ -1957,12 +1933,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hallways/aft_hallway)
-"agm" = (
-/obj/structure/closet/firecloset,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/aft_hallway)
"agn" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 6
@@ -2003,12 +1973,6 @@
"agu" = (
/turf/open/floor/almayer,
/area/almayer/living/officer_study)
-"agv" = (
-/obj/structure/machinery/power/apc/almayer{
- dir = 1
- },
-/turf/open/floor/grass,
-/area/almayer/living/starboard_garden)
"agw" = (
/obj/structure/machinery/light{
dir = 8
@@ -2030,13 +1994,10 @@
/turf/open/floor/plating,
/area/almayer/living/basketball)
"agB" = (
-/obj/structure/flora/bush/ausbushes/var3/fullgrass,
-/obj/item/device/radio/intercom{
- freerange = 1;
- name = "General Listening Channel";
- pixel_y = 28
+/turf/open/floor/almayer{
+ dir = 9;
+ icon_state = "red"
},
-/turf/open/floor/grass,
/area/almayer/living/starboard_garden)
"agG" = (
/obj/structure/stairs/perspective{
@@ -2110,10 +2071,6 @@
icon_state = "test_floor4"
},
/area/almayer/living/officer_study)
-"agP" = (
-/obj/structure/flora/bush/ausbushes/ppflowers,
-/turf/open/floor/grass,
-/area/almayer/living/starboard_garden)
"agQ" = (
/obj/structure/machinery/door/firedoor/border_only/almayer,
/turf/open/floor/almayer{
@@ -2121,12 +2078,10 @@
},
/area/almayer/living/cafeteria_officer)
"agS" = (
-/obj/item/device/radio/intercom{
- freerange = 1;
- name = "General Listening Channel";
- pixel_y = 28
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "red"
},
-/turf/open/floor/grass,
/area/almayer/living/starboard_garden)
"agT" = (
/turf/open/floor/prison{
@@ -2138,6 +2093,7 @@
dir = 1
},
/obj/structure/disposalpipe/segment,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hull/upper_hull/u_f_s)
"agV" = (
@@ -2161,10 +2117,10 @@
"aha" = (
/obj/structure/machinery/door/firedoor/border_only/almayer,
/obj/structure/machinery/door/airlock/almayer/command/reinforced{
+ access_modified = 1;
name = "\improper Commanding Officer's Quarters";
req_access = null;
- req_access_txt = "31";
- access_modified = 1
+ req_access_txt = "31"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -2186,11 +2142,11 @@
/area/almayer/living/cafeteria_officer)
"ahd" = (
/obj/structure/machinery/door/airlock/almayer/maint{
+ access_modified = 1;
dir = 1;
req_access = null;
req_one_access = null;
- req_one_access_txt = "3;22;19";
- access_modified = 1
+ req_one_access_txt = "3;22;19"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -2248,8 +2204,10 @@
},
/area/almayer/hull/upper_hull/u_m_s)
"ahl" = (
-/obj/structure/flora/bush/ausbushes/var3/ywflowers,
-/turf/open/floor/grass,
+/turf/open/floor/almayer{
+ dir = 9;
+ icon_state = "green"
+ },
/area/almayer/living/starboard_garden)
"ahn" = (
/obj/structure/machinery/light/small{
@@ -2267,10 +2225,6 @@
/obj/structure/window/framed/almayer,
/turf/open/floor/plating,
/area/almayer/living/offices/flight)
-"ahp" = (
-/obj/structure/flora/bush/ausbushes/var3/brflowers,
-/turf/open/floor/grass,
-/area/almayer/living/starboard_garden)
"ahq" = (
/obj/structure/machinery/alarm/almayer{
dir = 1
@@ -2289,42 +2243,12 @@
icon_state = "green"
},
/area/almayer/hallways/aft_hallway)
-"ahs" = (
-/obj/structure/surface/table/almayer,
-/obj/item/paper_bin/uscm{
- pixel_y = 6
- },
-/obj/item/tool/pen,
-/obj/structure/sign/safety/terminal{
- pixel_x = -17
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hull/upper_hull/u_m_s)
"aht" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer{
icon_state = "plate"
},
/area/almayer/hull/upper_hull/u_f_p)
-"ahu" = (
-/obj/item/device/flashlight/lamp/green{
- pixel_y = 10
- },
-/obj/structure/surface/table/almayer,
-/obj/item/trash/uscm_mre{
- pixel_x = 7;
- pixel_y = 4
- },
-/obj/item/reagent_container/food/snacks/mre_pack/meal1{
- pixel_x = -13;
- pixel_y = 8
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hull/upper_hull/u_m_s)
"ahv" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -2340,19 +2264,17 @@
/turf/open/floor/wood/ship,
/area/almayer/living/commandbunks)
"ahx" = (
-/obj/structure/closet,
-/obj/item/clothing/under/marine/engineer,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
+/obj/structure/window/framed/almayer/hull,
+/turf/open/floor/plating,
/area/almayer/hull/upper_hull/u_m_s)
"ahy" = (
-/obj/structure/closet,
-/obj/item/clothing/under/marine,
-/turf/open/floor/almayer{
- icon_state = "plate"
+/obj/item/device/radio/intercom{
+ freerange = 1;
+ name = "General Listening Channel";
+ pixel_y = 28
},
-/area/almayer/hull/upper_hull/u_m_s)
+/turf/closed/wall/almayer,
+/area/almayer/living/starboard_garden)
"ahz" = (
/obj/structure/machinery/light{
dir = 1
@@ -2375,12 +2297,6 @@
/obj/structure/window/framed/almayer/hull,
/turf/open/floor/plating,
/area/almayer/hull/upper_hull/u_f_s)
-"ahF" = (
-/obj/structure/closet/emcloset,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hallways/aft_hallway)
"ahG" = (
/obj/structure/machinery/door/airlock/almayer/engineering{
dir = 2;
@@ -2420,11 +2336,9 @@
},
/area/almayer/hallways/aft_hallway)
"ahN" = (
-/obj/effect/decal/cleanable/blood/oil,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hull/upper_hull/u_m_s)
+/obj/structure/flora/bush/ausbushes/var3/ywflowers,
+/turf/open/floor/grass,
+/area/almayer/living/starboard_garden)
"ahR" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer,
@@ -2456,24 +2370,19 @@
icon_state = "bluecorner"
},
/area/almayer/living/offices/flight)
-"ahW" = (
-/obj/structure/surface/rack,
-/obj/item/tool/extinguisher/mini{
- pixel_x = -4
+"ahX" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SE-out"
},
-/obj/item/tool/extinguisher/mini{
- pixel_x = 6
+/obj/effect/decal/warning_stripes{
+ icon_state = "NE-out";
+ pixel_y = 1
},
+/obj/structure/machinery/door/airlock/almayer/maint,
/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hull/upper_hull/u_m_s)
-"ahX" = (
-/obj/structure/machinery/light/small{
- dir = 4
+ icon_state = "test_floor4"
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hull/upper_hull/u_f_s)
+/area/almayer/hull/upper_hull/u_a_s)
"ahY" = (
/obj/structure/machinery/light,
/obj/structure/surface/table/woodentable/fancy,
@@ -2520,9 +2429,9 @@
"aib" = (
/obj/structure/machinery/door/firedoor/border_only/almayer,
/obj/structure/machinery/door/airlock/almayer/maint/reinforced{
+ access_modified = 1;
req_one_access = null;
- req_one_access_txt = "7;19";
- access_modified = 1
+ req_one_access_txt = "7;19"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -2683,6 +2592,13 @@
"aiw" = (
/turf/open/floor/almayer,
/area/almayer/engineering/starboard_atmos)
+"aiy" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 3
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/starboard_hallway)
"aiz" = (
/obj/structure/closet,
/obj/item/clothing/under/marine,
@@ -2724,12 +2640,10 @@
/turf/open/floor/wood/ship,
/area/almayer/living/commandbunks)
"aiH" = (
-/obj/item/tool/crew_monitor,
-/obj/structure/surface/rack,
/turf/open/floor/almayer{
icon_state = "plate"
},
-/area/almayer/hull/upper_hull/u_m_s)
+/area/almayer/living/starboard_garden)
"aiJ" = (
/obj/effect/step_trigger/teleporter_vector{
name = "Almayer_Down3";
@@ -2741,14 +2655,11 @@
},
/area/almayer/stair_clone/upper)
"aiP" = (
-/obj/structure/machinery/light/small{
- dir = 1
- },
-/obj/structure/largecrate/random,
/turf/open/floor/almayer{
- icon_state = "plate"
+ dir = 4;
+ icon_state = "red"
},
-/area/almayer/hull/upper_hull/u_m_s)
+/area/almayer/living/starboard_garden)
"aiQ" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/faxmachine,
@@ -2774,6 +2685,9 @@
/obj/structure/closet,
/obj/item/device/flashlight/pen,
/obj/item/attachable/reddot,
+/obj/structure/machinery/light/small{
+ dir = 1
+ },
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -2789,6 +2703,7 @@
"aiU" = (
/obj/structure/surface/table/almayer,
/obj/item/card/id/visa,
+/obj/item/tool/crew_monitor,
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -2970,7 +2885,10 @@
/area/almayer/hallways/aft_hallway)
"ajD" = (
/obj/structure/surface/table/almayer,
-/obj/effect/spawner/random/tool,
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_22";
+ pixel_y = 8
+ },
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/north1)
"ajE" = (
@@ -3139,6 +3057,7 @@
/area/almayer/hull/upper_hull/u_a_s)
"ake" = (
/obj/structure/largecrate/random/barrel/white,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -3151,25 +3070,21 @@
},
/area/almayer/shipboard/weapon_room)
"akk" = (
-/obj/structure/window/reinforced/tinted/frosted,
-/obj/structure/mirror{
- pixel_x = -28
- },
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
+/obj/structure/machinery/door/window/westright{
+ dir = 4
},
-/turf/open/floor/almayer{
- icon_state = "sterile"
+/obj/structure/machinery/shower{
+ dir = 4
},
+/obj/structure/window/reinforced,
+/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/commandbunks)
"akl" = (
/obj/structure/machinery/light{
dir = 1
},
/turf/open/floor/almayer{
- icon_state = "sterile"
+ icon_state = "dark_sterile"
},
/area/almayer/living/commandbunks)
"akm" = (
@@ -3444,20 +3359,22 @@
},
/area/almayer/hallways/starboard_hallway)
"akY" = (
-/obj/effect/step_trigger/message/memorial,
-/turf/open/floor/almayer{
- icon_state = "plate"
+/obj/structure/cable/heavyduty{
+ icon_state = "4-8"
},
+/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/starboard_garden)
"alb" = (
-/obj/structure/machinery/door/window/westright{
- dir = 4
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
},
-/obj/structure/machinery/shower{
- dir = 4
+/obj/structure/mirror{
+ pixel_x = -28
},
/turf/open/floor/almayer{
- icon_state = "plate"
+ icon_state = "dark_sterile"
},
/area/almayer/living/commandbunks)
"alc" = (
@@ -3465,7 +3382,7 @@
dir = 8
},
/turf/open/floor/almayer{
- icon_state = "sterile"
+ icon_state = "dark_sterile"
},
/area/almayer/living/commandbunks)
"ald" = (
@@ -3477,29 +3394,29 @@
/obj/structure/machinery/light{
dir = 4
},
-/turf/open/floor/almayer{
- icon_state = "plate"
+/obj/structure/bed/chair{
+ dir = 8
},
+/turf/open/floor/almayer,
/area/almayer/living/starboard_garden)
"alf" = (
-/obj/structure/machinery/light/small{
+/obj/structure/machinery/light{
dir = 8
},
-/obj/structure/surface/table/almayer,
-/obj/structure/machinery/computer/atmos_alert{
- dir = 4;
- pixel_y = 5
+/obj/structure/bed/chair{
+ dir = 4
},
/turf/open/floor/almayer{
icon_state = "plate"
},
-/area/almayer/hull/upper_hull/u_m_s)
+/area/almayer/living/starboard_garden)
"alg" = (
-/obj/structure/bed/chair/office/dark{
- dir = 8
+/obj/structure/flora/bush/ausbushes/ppflowers,
+/obj/structure/bed/chair{
+ dir = 4
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hull/upper_hull/u_m_s)
+/turf/open/floor/grass,
+/area/almayer/living/starboard_garden)
"ali" = (
/turf/open/floor/almayer{
dir = 8;
@@ -3559,15 +3476,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hallways/aft_hallway)
-"alr" = (
-/obj/structure/machinery/light/small{
- dir = 4
- },
-/obj/structure/largecrate/random/barrel/green,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hull/upper_hull/u_m_s)
"als" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer{
@@ -3581,6 +3489,15 @@
/obj/item/device/radio,
/turf/open/floor/wood/ship,
/area/almayer/living/commandbunks)
+"alv" = (
+/obj/structure/machinery/camera/autoname/almayer{
+ dir = 8;
+ name = "ship-grade camera"
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hull/upper_hull/u_f_p)
"alw" = (
/obj/structure/machinery/door/airlock/almayer/generic{
dir = 2;
@@ -3717,10 +3634,27 @@
},
/area/almayer/command/cic)
"amb" = (
+/obj/structure/window/reinforced{
+ dir = 8;
+ health = 80
+ },
+/obj/structure/window/reinforced{
+ dir = 4;
+ health = 80
+ },
+/obj/structure/machinery/shower{
+ dir = 1
+ },
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/pilotbunks)
"amd" = (
-/turf/open/floor/almayer,
+/obj/structure/machinery/vending/cola{
+ density = 0;
+ pixel_y = 16
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
/area/almayer/living/pilotbunks)
"amg" = (
/turf/open/floor/plating/plating_catwalk,
@@ -3951,7 +3885,11 @@
pixel_x = -17;
pixel_y = 7
},
-/obj/structure/machinery/cm_vending/clothing/pilot_officer,
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/structure/machinery/disposal,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -3972,7 +3910,17 @@
},
/area/almayer/hallways/aft_hallway)
"and" = (
-/obj/effect/landmark/yautja_teleport,
+/obj/structure/window/reinforced{
+ dir = 4;
+ health = 80
+ },
+/obj/structure/window/reinforced{
+ dir = 8;
+ health = 80
+ },
+/obj/structure/machinery/shower{
+ dir = 1
+ },
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/pilotbunks)
"anf" = (
@@ -4198,6 +4146,8 @@
/obj/structure/surface/table/almayer,
/obj/item/clipboard,
/obj/item/tool/pen,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/random/tool,
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/north1)
"anO" = (
@@ -4320,14 +4270,6 @@
"aoi" = (
/turf/open/floor/almayer,
/area/almayer/shipboard/navigation)
-"aok" = (
-/obj/structure/surface/table/almayer,
-/obj/structure/machinery/computer/emails,
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "red"
- },
-/area/almayer/shipboard/starboard_missiles)
"aol" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -4615,13 +4557,10 @@
},
/area/almayer/hallways/stern_hallway)
"aoV" = (
-/obj/structure/machinery/light{
- unacidable = 1;
- unslashable = 1
- },
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer{
- dir = 10;
- icon_state = "red"
+ icon_state = "test_floor4"
},
/area/almayer/lifeboat_pumps/north1)
"aoW" = (
@@ -4743,21 +4682,15 @@
/turf/open/floor/almayer,
/area/almayer/hallways/port_hallway)
"apq" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer{
- icon_state = "cargo"
+ icon_state = "plate"
},
/area/almayer/living/pilotbunks)
"apr" = (
-/obj/structure/machinery/light{
- unacidable = 1;
- unslashable = 1
- },
+/obj/structure/machinery/door/firedoor/border_only/almayer,
/turf/open/floor/almayer{
- dir = 6;
- icon_state = "red"
+ icon_state = "test_floor4"
},
/area/almayer/lifeboat_pumps/north1)
"aps" = (
@@ -4774,9 +4707,15 @@
/obj/structure/machinery/power/apc/almayer{
dir = 1
},
-/turf/open/floor/almayer,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
/area/almayer/living/pilotbunks)
"apu" = (
+/obj/structure/machinery/light{
+ unacidable = 1;
+ unslashable = 1
+ },
/turf/open/floor/almayer{
dir = 10;
icon_state = "red"
@@ -4834,12 +4773,6 @@
icon_state = "orange"
},
/area/almayer/hallways/hangar)
-"apF" = (
-/obj/structure/bed/chair{
- dir = 4
- },
-/turf/open/floor/grass,
-/area/almayer/living/starboard_garden)
"apI" = (
/obj/structure/machinery/door/airlock/almayer/command{
dir = 2;
@@ -4902,8 +4835,8 @@
dir = 1
},
/obj/structure/pipes/vents/pump/no_boom{
- welded = 1;
- name = "Secure Reinforced Air Vent"
+ name = "Secure Reinforced Air Vent";
+ welded = 1
},
/turf/open/floor/almayer{
icon_state = "sterile_green"
@@ -5070,10 +5003,6 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering)
-"aqi" = (
-/obj/structure/prop/almayer/ship_memorial,
-/turf/open/floor/plating/almayer,
-/area/almayer/living/starboard_garden)
"aqj" = (
/obj/structure/disposalpipe/segment,
/obj/structure/pipes/standard/simple/hidden/supply,
@@ -5084,7 +5013,11 @@
/turf/open/floor/plating,
/area/almayer/engineering/upper_engineering)
"aqk" = (
-/turf/open/floor/plating/almayer,
+/obj/structure/sign/safety/escapepod{
+ pixel_x = 8;
+ pixel_y = -32
+ },
+/turf/open/floor/almayer,
/area/almayer/living/starboard_garden)
"aqm" = (
/obj/item/bedsheet/brown,
@@ -5139,9 +5072,11 @@
/turf/open/floor/almayer,
/area/almayer/shipboard/weapon_room)
"aqw" = (
-/obj/structure/machinery/cm_vending/clothing/pilot_officer,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
/turf/open/floor/almayer{
- icon_state = "plate"
+ icon_state = "mono"
},
/area/almayer/living/pilotbunks)
"aqx" = (
@@ -5158,16 +5093,16 @@
},
/area/almayer/hallways/starboard_hallway)
"aqy" = (
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 8;
- name = "ship-grade camera";
- pixel_x = 27;
- pixel_y = -27
- },
/obj/structure/pipes/standard/manifold/hidden/supply{
dir = 4
},
-/turf/open/floor/almayer,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
/area/almayer/living/pilotbunks)
"aqz" = (
/obj/structure/machinery/door/airlock/almayer/generic{
@@ -5317,12 +5252,6 @@
"arb" = (
/turf/open/floor/plating/plating_catwalk,
/area/almayer/medical/morgue)
-"arc" = (
-/obj/structure/bed/chair{
- dir = 8
- },
-/turf/open/floor/grass,
-/area/almayer/living/starboard_garden)
"ard" = (
/obj/structure/filingcabinet,
/obj/item/folder/yellow,
@@ -5433,13 +5362,13 @@
},
/area/almayer/hallways/starboard_hallway)
"arp" = (
-/obj/item/roller,
-/obj/item/roller,
-/obj/structure/surface/rack,
+/obj/structure/bed/chair{
+ dir = 4
+ },
/turf/open/floor/almayer{
icon_state = "plate"
},
-/area/almayer/hull/upper_hull/u_m_s)
+/area/almayer/living/starboard_garden)
"arq" = (
/obj/structure/bed/chair{
dir = 4
@@ -5468,13 +5397,6 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering)
-"aru" = (
-/obj/structure/surface/table/almayer,
-/obj/item/weapon/gun/rifle/m41a/stripped,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hull/upper_hull/u_m_s)
"arw" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/obj/structure/disposalpipe/junction{
@@ -5485,21 +5407,6 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering)
-"ary" = (
-/obj/structure/surface/table/almayer,
-/obj/item/tool/wrench,
-/obj/item/reagent_container/food/drinks/cans/souto/cherry{
- pixel_x = 4;
- pixel_y = 14
- },
-/obj/item/attachable/lasersight{
- pixel_x = -14;
- pixel_y = 12
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hull/upper_hull/u_m_s)
"arz" = (
/obj/structure/closet/firecloset,
/turf/open/floor/almayer{
@@ -5556,14 +5463,6 @@
icon_state = "redfull"
},
/area/almayer/engineering/upper_engineering)
-"arI" = (
-/obj/structure/closet,
-/obj/item/clothing/under/marine/mp,
-/obj/item/device/flash,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hull/upper_hull/u_m_s)
"arJ" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -5647,18 +5546,20 @@
/area/almayer/command/cic)
"ase" = (
/turf/open/floor/almayer{
- icon_state = "sterile"
+ icon_state = "cargo"
},
/area/almayer/living/pilotbunks)
"asf" = (
-/obj/structure/machinery/shower{
- dir = 8
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
},
-/obj/structure/window/reinforced/tinted/frosted,
-/obj/structure/machinery/door/window/westright,
-/obj/item/tool/soap,
/turf/open/floor/almayer{
- icon_state = "plate"
+ icon_state = "dark_sterile"
},
/area/almayer/living/pilotbunks)
"asi" = (
@@ -5841,10 +5742,10 @@
/area/almayer/engineering/engineering_workshop/hangar)
"asF" = (
/obj/structure/machinery/door/airlock/almayer/secure/reinforced{
+ access_modified = 1;
name = "\improper AI Reception";
req_access = null;
- req_one_access_txt = "91;92";
- access_modified = 1
+ req_one_access_txt = "91;92"
},
/turf/open/floor/almayer/no_build{
icon_state = "ai_floors"
@@ -5952,11 +5853,8 @@
},
/area/almayer/command/cic)
"asS" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer,
-/area/almayer/hallways/aft_hallway)
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/living/starboard_garden)
"asT" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer,
@@ -5970,7 +5868,9 @@
},
/area/almayer/medical/morgue)
"asV" = (
-/obj/structure/machinery/floodlight/landing,
+/obj/structure/machinery/floodlight/landing{
+ name = "bolted floodlight"
+ },
/turf/open/floor/almayer{
icon_state = "mono"
},
@@ -6219,11 +6119,11 @@
/area/almayer/hull/upper_hull/u_a_s)
"atA" = (
/obj/structure/machinery/door/airlock/almayer/maint/reinforced{
+ access_modified = 1;
dir = 1;
name = "\improper Spare Bomb Suit";
req_one_access = null;
- req_one_access_txt = "35";
- access_modified = 1
+ req_one_access_txt = "35"
},
/turf/open/floor/almayer,
/area/almayer/engineering/engineering_workshop/hangar)
@@ -6344,24 +6244,19 @@
icon_state = "test_floor4"
},
/area/almayer/command/cic)
-"atS" = (
-/obj/structure/machinery/light,
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
-/turf/open/floor/almayer{
- icon_state = "sterile"
- },
-/area/almayer/living/pilotbunks)
"atT" = (
/obj/structure/toilet{
- dir = 8
+ dir = 1
},
-/turf/open/floor/almayer{
- icon_state = "sterile"
+/obj/structure/window/reinforced{
+ dir = 4;
+ health = 80
},
+/obj/structure/window/reinforced{
+ dir = 8;
+ health = 80
+ },
+/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/pilotbunks)
"atU" = (
/obj/structure/machinery/status_display{
@@ -6383,6 +6278,11 @@
icon_state = "blue"
},
/area/almayer/hallways/aft_hallway)
+"atW" = (
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/lifeboat_pumps/north1)
"atY" = (
/obj/structure/closet/emcloset,
/obj/item/clothing/mask/gas,
@@ -6411,11 +6311,18 @@
/turf/open/floor/almayer,
/area/almayer/engineering/engineering_workshop/hangar)
"aub" = (
-/obj/structure/machinery/vending/cigarette,
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "NE-out";
+ pixel_y = 1
+ },
/turf/open/floor/almayer{
- icon_state = "mono"
+ dir = 9;
+ icon_state = "red"
},
-/area/almayer/lifeboat_pumps/south1)
+/area/almayer/lifeboat_pumps/north1)
"auc" = (
/obj/effect/step_trigger/clone_cleaner,
/obj/structure/machinery/door/poddoor/almayer/open{
@@ -6724,10 +6631,10 @@
dir = 2
},
/obj/structure/machinery/door/airlock/almayer/secure/reinforced{
+ access_modified = 1;
dir = 2;
name = "Telecommunications";
- req_access_txt = "6";
- access_modified = 1
+ req_access_txt = "6"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -6740,7 +6647,9 @@
},
/area/almayer/engineering/engineering_workshop/hangar)
"auJ" = (
-/obj/structure/machinery/floodlight/landing,
+/obj/structure/machinery/floodlight/landing{
+ name = "bolted floodlight"
+ },
/turf/open/floor/almayer{
icon_state = "mono"
},
@@ -6866,12 +6775,11 @@
},
/area/almayer/engineering/engineering_workshop/hangar)
"auZ" = (
-/obj/structure/machinery/disposal,
-/obj/structure/disposalpipe/trunk{
- dir = 4
- },
/obj/structure/machinery/light,
-/turf/open/floor/almayer,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
/area/almayer/living/pilotbunks)
"ava" = (
/obj/effect/decal/warning_stripes{
@@ -6910,10 +6818,11 @@
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/north1)
"avd" = (
-/obj/item/tool/warning_cone,
-/turf/open/floor/almayer{
- icon_state = "mono"
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 1
},
+/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/north1)
"ave" = (
/obj/item/reagent_container/glass/bucket/janibucket,
@@ -6945,10 +6854,10 @@
/area/almayer/hallways/aft_hallway)
"avk" = (
/obj/structure/machinery/door/airlock/almayer/maint/reinforced{
+ access_modified = 1;
dir = 1;
req_one_access = null;
- req_one_access_txt = "35";
- access_modified = 1
+ req_one_access_txt = "35"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -7003,19 +6912,11 @@
/turf/open/floor/plating,
/area/almayer/shipboard/weapon_room)
"avx" = (
-/obj/structure/flora/pottedplant{
- icon_state = "pottedplant_22";
- pixel_y = 8
- },
-/obj/structure/flora/pottedplant{
- icon_state = "pottedplant_22";
- pixel_x = -16;
- pixel_y = 8
- },
-/turf/open/floor/almayer{
- icon_state = "mono"
+/obj/structure/machinery/light{
+ dir = 1
},
-/area/almayer/lifeboat_pumps/north1)
+/turf/open/floor/grass,
+/area/almayer/living/starboard_garden)
"avz" = (
/obj/structure/machinery/light,
/obj/structure/machinery/vending/security,
@@ -7069,16 +6970,15 @@
},
/area/almayer/medical/containment)
"avJ" = (
-/obj/item/clothing/head/helmet/marine{
- pixel_x = 16;
- pixel_y = 6
+/obj/structure/machinery/door/airlock/almayer/secure/reinforced{
+ dir = 2;
+ name = "\improper Evacuation Airlock SU-5";
+ req_access = null
},
-/obj/item/reagent_container/food/snacks/grown/poppy,
-/obj/effect/step_trigger/message/memorial,
/turf/open/floor/almayer{
- icon_state = "plate"
+ icon_state = "test_floor4"
},
-/area/almayer/living/starboard_garden)
+/area/almayer/powered)
"avK" = (
/turf/open/floor/almayer/no_build{
icon_state = "ai_floors"
@@ -7194,14 +7094,11 @@
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/pilotbunks)
"avV" = (
-/obj/item/reagent_container/food/snacks/grown/poppy{
- pixel_x = 4;
- pixel_y = 4
- },
-/obj/effect/step_trigger/message/memorial,
-/turf/open/floor/almayer{
- icon_state = "plate"
+/obj/structure/machinery/power/apc/almayer{
+ dir = 1
},
+/obj/structure/bed/chair,
+/turf/open/floor/grass,
/area/almayer/living/starboard_garden)
"avW" = (
/obj/structure/surface/table/reinforced/prison,
@@ -7236,12 +7133,12 @@
/turf/open/floor/plating/plating_catwalk,
/area/almayer/command/cic)
"avZ" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 9
+/obj/structure/flora/bush/ausbushes/var3/fullgrass,
+/obj/structure/machinery/light{
+ dir = 1
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/lifeboat_pumps/south1)
+/turf/open/floor/grass,
+/area/almayer/living/starboard_garden)
"awa" = (
/turf/open/shuttle/dropship{
icon_state = "rasputin15"
@@ -7260,32 +7157,16 @@
/turf/closed/wall/almayer/reinforced,
/area/almayer/living/pilotbunks)
"awe" = (
-/obj/structure/surface/table/almayer,
-/obj/item/prop/helmetgarb/gunoil{
- pixel_x = -6;
- pixel_y = 9
- },
-/obj/item/tool/screwdriver{
- pixel_x = 5;
- pixel_y = 4
- },
-/obj/structure/machinery/light/small{
+/turf/open/floor/plating/almayer,
+/area/almayer/living/starboard_garden)
+"awi" = (
+/obj/structure/bed/chair{
dir = 8
},
/turf/open/floor/almayer{
icon_state = "plate"
},
-/area/almayer/hull/upper_hull/u_m_s)
-"awh" = (
-/obj/item/stool,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hull/upper_hull/u_m_s)
-"awi" = (
-/obj/structure/closet/fireaxecabinet{
- pixel_y = 32
- },
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hull/upper_hull/u_m_s)
+/area/almayer/living/starboard_garden)
"awj" = (
/obj/structure/machinery/photocopier,
/obj/structure/sign/safety/terminal{
@@ -7336,7 +7217,9 @@
/obj/structure/machinery/light{
dir = 1
},
-/turf/open/floor/almayer,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
/area/almayer/living/pilotbunks)
"awt" = (
/turf/open/floor/almayer{
@@ -7402,11 +7285,11 @@
/area/almayer/command/cic)
"awB" = (
/obj/structure/machinery/door/airlock/almayer/maint{
+ access_modified = 1;
dir = 1;
name = "\improper Engineering Storage";
req_one_access = null;
- req_one_access_txt = "2;7";
- access_modified = 1
+ req_one_access_txt = "2;7"
},
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer{
@@ -7523,10 +7406,13 @@
/area/almayer/living/pilotbunks)
"awZ" = (
/obj/structure/surface/table/reinforced/almayer_B,
-/obj/structure/machinery/computer/emails{
- dir = 1
+/obj/item/paper_bin/uscm{
+ pixel_x = 8;
+ pixel_y = 12
+ },
+/turf/open/floor/almayer{
+ icon_state = "bluefull"
},
-/turf/open/floor/almayer,
/area/almayer/living/pilotbunks)
"axa" = (
/turf/open/shuttle/dropship{
@@ -7614,9 +7500,11 @@
icon_state = "NW-out";
layer = 2.5
},
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
+ },
/turf/open/floor/almayer{
- dir = 8;
- icon_state = "green"
+ icon_state = "test_floor4"
},
/area/almayer/hallways/aft_hallway)
"axu" = (
@@ -7948,7 +7836,7 @@
pixel_y = 15
},
/obj/structure/machinery/light,
-/obj/structure/transmitter/rotary{
+/obj/structure/transmitter/rotary/no_dnd{
name = "Bravo Overwatch Telephone";
phone_category = "Command";
phone_id = "Bravo Overwatch"
@@ -8055,12 +7943,11 @@
},
/area/almayer/command/cic)
"ayP" = (
-/obj/structure/surface/table/reinforced/almayer_B,
-/obj/item/storage/bible,
+/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer{
- icon_state = "plate"
+ icon_state = "test_floor4"
},
-/area/almayer/living/bridgebunks)
+/area/almayer/hull/upper_hull/u_f_s)
"ayQ" = (
/obj/structure/platform_decoration{
dir = 4
@@ -8637,7 +8524,7 @@
pixel_y = -5;
req_one_access_txt = "1;4"
},
-/obj/structure/transmitter/rotary{
+/obj/structure/transmitter/rotary/no_dnd{
name = "Combat Information Center Telephone";
phone_category = "Command";
phone_id = "Combat Information Center";
@@ -8669,11 +8556,11 @@
/area/almayer/command/cic)
"aAG" = (
/obj/structure/machinery/door/airlock/almayer/medical{
+ access_modified = 1;
dir = 2;
name = "Morgue";
req_access_txt = "25";
- req_one_access = null;
- access_modified = 1
+ req_one_access = null
},
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 2
@@ -8814,9 +8701,9 @@
/area/almayer/medical/containment/cell)
"aBf" = (
/obj/structure/machinery/door/airlock/almayer/secure/reinforced{
+ access_modified = 1;
name = "Telecommunications";
- req_access_txt = "6";
- access_modified = 1
+ req_access_txt = "6"
},
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 8
@@ -9047,15 +8934,16 @@
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
name = "\improper Port Railguns and Viewing Room"
},
+/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer{
icon_state = "test_floor4"
},
/area/almayer/hull/upper_hull/u_f_p)
"aBP" = (
/obj/structure/machinery/door/airlock/almayer/maint/reinforced{
+ access_modified = 1;
dir = 1;
- req_one_access = list(36);
- access_modified = 1
+ req_one_access = list(36)
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -9088,7 +8976,7 @@
/obj/structure/machinery/light{
dir = 1
},
-/obj/structure/transmitter/rotary{
+/obj/structure/transmitter/rotary/no_dnd{
name = "Charlie Overwatch Telephone";
phone_category = "Command";
phone_id = "Charlie Overwatch"
@@ -9240,9 +9128,7 @@
/obj/structure/sink{
pixel_y = 24
},
-/turf/open/floor/almayer{
- icon_state = "sterile"
- },
+/turf/open/floor/plating/plating_catwalk,
/area/almayer/hull/upper_hull/u_a_s)
"aCv" = (
/obj/structure/machinery/door/poddoor/shutters/almayer{
@@ -9345,9 +9231,7 @@
pixel_y = 16
},
/obj/item/tool/soap,
-/turf/open/floor/almayer{
- icon_state = "sterile"
- },
+/turf/open/floor/plating/plating_catwalk,
/area/almayer/hull/upper_hull/u_a_s)
"aDg" = (
/obj/structure/machinery/light/small{
@@ -10070,9 +9954,9 @@
name = "\improper Brig Lockdown Shutter"
},
/obj/structure/machinery/door/airlock/almayer/maint{
+ access_modified = 1;
dir = 2;
- req_one_access = list(2,34,30);
- access_modified = 1
+ req_one_access = list(2,34,30)
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -10108,6 +9992,16 @@
icon_state = "plate"
},
/area/almayer/command/cichallway)
+"aGc" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 2
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "green"
+ },
+/area/almayer/hallways/port_hallway)
"aGd" = (
/turf/open/floor/almayer{
dir = 8;
@@ -10215,26 +10109,25 @@
},
/area/almayer/hallways/aft_hallway)
"aGP" = (
-/obj/structure/disposalpipe/segment{
- dir = 1;
- icon_state = "pipe-c"
+/obj/effect/decal/warning_stripes{
+ icon_state = "NW-out";
+ pixel_y = 1
},
/turf/open/floor/almayer{
- icon_state = "plate"
+ dir = 5;
+ icon_state = "red"
},
-/area/almayer/hull/upper_hull/u_f_p)
+/area/almayer/lifeboat_pumps/north1)
"aGQ" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/machinery/door/airlock/almayer/maint{
- req_one_access = null;
- req_one_access_txt = "2;30;34"
+/obj/effect/decal/warning_stripes{
+ icon_state = "NE-out";
+ pixel_y = 1
},
/turf/open/floor/almayer{
- icon_state = "test_floor4"
+ dir = 9;
+ icon_state = "red"
},
-/area/almayer/hull/upper_hull/u_f_p)
+/area/almayer/lifeboat_pumps/north1)
"aGR" = (
/obj/effect/step_trigger/clone_cleaner,
/obj/effect/decal/warning_stripes{
@@ -10312,7 +10205,13 @@
/obj/structure/mirror{
pixel_y = 21
},
-/turf/open/floor/almayer,
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
/area/almayer/living/numbertwobunks)
"aHl" = (
/obj/structure/machinery/portable_atmospherics/canister/air,
@@ -10324,9 +10223,7 @@
},
/obj/structure/machinery/door/window/westleft,
/obj/structure/window/reinforced/tinted/frosted,
-/turf/open/floor/almayer{
- icon_state = "mono"
- },
+/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/numbertwobunks)
"aHo" = (
/obj/structure/machinery/computer/working_joe{
@@ -10380,12 +10277,12 @@
pixel_y = 1
},
/obj/structure/machinery/door/airlock/almayer/maint/reinforced{
+ access_modified = 1;
dir = 1;
name = "\improper Engineering Storage";
no_panel = 1;
req_one_access = null;
- req_one_access_txt = "2;7";
- access_modified = 1
+ req_one_access_txt = "2;7"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -10400,12 +10297,12 @@
pixel_y = 1
},
/obj/structure/machinery/door/airlock/almayer/maint/reinforced{
+ access_modified = 1;
dir = 1;
name = "\improper Engineering Storage";
no_panel = 1;
req_one_access = null;
- req_one_access_txt = "2;7";
- access_modified = 1
+ req_one_access_txt = "2;7"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -10491,13 +10388,12 @@
},
/area/almayer/living/numbertwobunks)
"aHY" = (
-/obj/structure/disposalpipe/trunk{
- dir = 4
+/obj/structure/machinery/firealarm{
+ dir = 4;
+ pixel_x = 24
},
-/obj/structure/machinery/disposal,
/turf/open/floor/almayer{
- dir = 8;
- icon_state = "red"
+ icon_state = "cargo"
},
/area/almayer/shipboard/starboard_missiles)
"aHZ" = (
@@ -10598,16 +10494,13 @@
},
/area/almayer/lifeboat_pumps/north1)
"aIx" = (
-/obj/item/tool/weldpack,
-/obj/structure/surface/rack,
-/turf/open/floor/almayer{
- icon_state = "mono"
- },
-/area/almayer/lifeboat_pumps/north1)
+/obj/structure/flora/bush/ausbushes/ppflowers,
+/turf/open/floor/grass,
+/area/almayer/living/starboard_garden)
"aIB" = (
-/obj/effect/decal/cleanable/blood/oil,
-/turf/open/floor/almayer,
-/area/almayer/lifeboat_pumps/north1)
+/obj/structure/flora/bush/ausbushes/var3/fullgrass,
+/turf/open/floor/grass,
+/area/almayer/living/starboard_garden)
"aIC" = (
/obj/structure/surface/table/almayer,
/obj/effect/decal/warning_stripes{
@@ -10655,10 +10548,10 @@
"aIQ" = (
/obj/structure/machinery/door/firedoor/border_only/almayer,
/obj/structure/machinery/door/airlock/almayer/command/reinforced{
+ access_modified = 1;
name = "\improper XO's Quarters";
req_access = null;
- req_access_txt = "1";
- access_modified = 1
+ req_access_txt = "1"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -10683,10 +10576,10 @@
dir = 2
},
/obj/structure/machinery/door/airlock/almayer/secure/reinforced{
+ access_modified = 1;
dir = 2;
name = "Telecommunications";
- req_access_txt = "6";
- access_modified = 1
+ req_access_txt = "6"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -10928,18 +10821,20 @@
},
/area/almayer/command/cic)
"aJJ" = (
-/obj/item/tool/screwdriver,
-/turf/open/floor/almayer,
-/area/almayer/lifeboat_pumps/north1)
+/obj/structure/flora/bush/ausbushes/var3/brflowers,
+/obj/structure/bed/chair,
+/turf/open/floor/grass,
+/area/almayer/living/starboard_garden)
"aJL" = (
-/obj/structure/surface/rack,
-/obj/item/frame/rack{
- pixel_y = 19
- },
-/turf/open/floor/almayer{
- icon_state = "mono"
+/obj/structure/surface/table/almayer,
+/obj/item/reagent_container/food/snacks/mre_pack/meal5,
+/obj/item/device/flashlight/lamp{
+ pixel_x = 3;
+ pixel_y = 12
},
-/area/almayer/lifeboat_pumps/north1)
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hull/upper_hull/u_m_s)
"aJM" = (
/obj/docking_port/stationary/escape_pod/east,
/turf/open/floor/plating,
@@ -10949,22 +10844,9 @@
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/south1)
-"aJW" = (
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/living/starboard_garden)
"aKa" = (
/turf/open/floor/almayer,
/area/almayer/command/cichallway)
-"aKc" = (
-/obj/item/stack/cable_coil,
-/obj/structure/surface/rack,
-/obj/item/attachable/flashlight/grip,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hull/upper_hull/u_m_s)
"aKf" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -10976,12 +10858,9 @@
},
/area/almayer/command/cichallway)
"aKg" = (
-/obj/structure/surface/rack,
-/obj/item/device/multitool,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hull/upper_hull/u_m_s)
+/obj/structure/flora/bush/ausbushes/var3/brflowers,
+/turf/open/floor/grass,
+/area/almayer/living/starboard_garden)
"aKi" = (
/obj/structure/pipes/standard/manifold/hidden/supply{
dir = 1
@@ -11135,19 +11014,28 @@
},
/area/almayer/command/cic)
"aKG" = (
-/obj/structure/surface/table/almayer,
-/obj/item/tool/extinguisher,
-/obj/item/tool/crowbar,
-/turf/open/floor/almayer,
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
/area/almayer/living/pilotbunks)
"aKH" = (
-/obj/structure/janitorialcart,
-/obj/item/tool/mop,
-/obj/structure/machinery/light/small{
- dir = 1
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
},
/turf/open/floor/almayer{
- icon_state = "cargo"
+ icon_state = "dark_sterile"
},
/area/almayer/living/pilotbunks)
"aKI" = (
@@ -11267,14 +11155,24 @@
pixel_x = 8;
pixel_y = -26
},
-/obj/structure/surface/rack,
-/turf/open/floor/almayer,
+/obj/effect/decal/warning_stripes{
+ icon_state = "NE-out";
+ pixel_x = 1;
+ pixel_y = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
/area/almayer/living/numbertwobunks)
"aLt" = (
-/obj/structure/toilet{
- dir = 8
+/obj/structure/surface/rack,
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
},
-/turf/open/floor/almayer,
/area/almayer/living/numbertwobunks)
"aLB" = (
/turf/closed/wall/almayer,
@@ -12046,7 +11944,7 @@
"aPm" = (
/obj/structure/closet/firecloset,
/turf/open/floor/almayer{
- icon_state = "mono"
+ icon_state = "cargo"
},
/area/almayer/hallways/aft_hallway)
"aPn" = (
@@ -12228,6 +12126,8 @@
"aQs" = (
/obj/structure/surface/table/almayer,
/obj/item/tool/extinguisher,
+/obj/item/tool/extinguisher,
+/obj/item/tool/crowbar,
/turf/open/floor/almayer{
dir = 10;
icon_state = "orange"
@@ -12262,8 +12162,15 @@
},
/area/almayer/medical/upper_medical)
"aQA" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 1
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
/turf/open/floor/almayer{
- icon_state = "sterile"
+ icon_state = "dark_sterile"
},
/area/almayer/hull/upper_hull/u_a_s)
"aQF" = (
@@ -12391,8 +12298,15 @@
/obj/structure/mirror{
pixel_x = 28
},
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 1
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
/turf/open/floor/almayer{
- icon_state = "sterile"
+ icon_state = "dark_sterile"
},
/area/almayer/hull/upper_hull/u_a_s)
"aRo" = (
@@ -12500,11 +12414,11 @@
/area/almayer/living/captain_mess)
"aRF" = (
/obj/structure/machinery/door/airlock/almayer/medical{
+ access_modified = 1;
dir = 2;
name = "Morgue Processing";
req_access_txt = "25";
- req_one_access = null;
- access_modified = 1
+ req_one_access = null
},
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 2
@@ -12647,10 +12561,6 @@
},
/area/almayer/medical/hydroponics)
"aSo" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "SE-out";
- pixel_x = 1
- },
/obj/effect/decal/warning_stripes{
icon_state = "SW-out";
pixel_x = -1
@@ -12658,6 +12568,9 @@
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
},
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
/turf/open/floor/plating/plating_catwalk,
/area/almayer/medical/hydroponics)
"aSq" = (
@@ -13484,17 +13397,29 @@
},
/area/almayer/hallways/aft_hallway)
"aWm" = (
-/obj/structure/machinery/door/firedoor/border_only/almayer,
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "NW-out";
+ pixel_y = 1
+ },
/turf/open/floor/almayer{
- icon_state = "test_floor4"
+ dir = 5;
+ icon_state = "red"
},
-/area/almayer/lifeboat_pumps/south1)
+/area/almayer/lifeboat_pumps/north1)
"aWn" = (
-/obj/structure/bed/chair/comfy/teal,
+/obj/structure/machinery/light{
+ unacidable = 1;
+ unslashable = 1
+ },
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer{
- icon_state = "mono"
+ dir = 6;
+ icon_state = "red"
},
-/area/almayer/lifeboat_pumps/south1)
+/area/almayer/lifeboat_pumps/north1)
"aWo" = (
/obj/structure/pipes/unary/outlet_injector,
/turf/open/floor/engine,
@@ -13516,16 +13441,13 @@
/turf/open/floor/plating,
/area/almayer/engineering/lower_engineering)
"aWs" = (
-/obj/structure/surface/rack,
-/obj/effect/spawner/random/tool,
-/obj/structure/machinery/light{
- unacidable = 1;
- unslashable = 1
+/obj/structure/machinery/power/apc/almayer{
+ dir = 4
},
/turf/open/floor/almayer{
- icon_state = "mono"
+ icon_state = "plate"
},
-/area/almayer/lifeboat_pumps/north1)
+/area/almayer/hull/upper_hull/u_m_s)
"aWt" = (
/obj/structure/machinery/vending/coffee,
/obj/structure/sign/safety/coffee{
@@ -13537,12 +13459,13 @@
},
/area/almayer/living/bridgebunks)
"aWu" = (
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 1;
- name = "ship-grade camera"
+/obj/structure/sign/safety/escapepod{
+ pixel_x = 8;
+ pixel_y = -32
},
/turf/open/floor/almayer{
- icon_state = "mono"
+ dir = 6;
+ icon_state = "red"
},
/area/almayer/lifeboat_pumps/north1)
"aWw" = (
@@ -13808,35 +13731,23 @@
/turf/open/floor/plating,
/area/almayer/command/corporateliason)
"aYq" = (
-/obj/item/tool/warning_cone{
- pixel_x = -12;
- pixel_y = 16
- },
/turf/open/floor/almayer{
- icon_state = "mono"
+ dir = 6;
+ icon_state = "red"
},
-/area/almayer/lifeboat_pumps/north1)
+/area/almayer/living/starboard_garden)
"aYr" = (
-/obj/structure/surface/rack,
-/obj/item/frame/rack{
- layer = 3.1;
- pixel_y = 19
- },
-/obj/item/reagent_container/food/snacks/cracker,
-/obj/structure/machinery/light{
- unacidable = 1;
- unslashable = 1
+/obj/structure/bed/chair/office/dark{
+ dir = 8
},
/turf/open/floor/almayer{
- icon_state = "mono"
+ icon_state = "plate"
},
-/area/almayer/lifeboat_pumps/north1)
+/area/almayer/hull/upper_hull/u_m_s)
"aYs" = (
-/obj/structure/machinery/light{
- dir = 8
- },
/turf/open/floor/almayer{
- icon_state = "plate"
+ dir = 10;
+ icon_state = "red"
},
/area/almayer/living/starboard_garden)
"aYt" = (
@@ -13851,10 +13762,6 @@
},
/area/almayer/hallways/hangar)
"aYz" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "N";
- pixel_y = 1
- },
/obj/structure/closet/firecloset,
/turf/open/floor/almayer{
icon_state = "cargo"
@@ -13904,12 +13811,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hallways/starboard_hallway)
-"aYM" = (
-/obj/structure/largecrate/supply/supplies/tables_racks,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hull/upper_hull/u_m_s)
"aYO" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -14258,6 +14159,9 @@
pixel_x = 8;
pixel_y = -32
},
+/obj/effect/decal/warning_stripes{
+ icon_state = "SW-out"
+ },
/turf/open/floor/almayer,
/area/almayer/hallways/starboard_hallway)
"bat" = (
@@ -14597,18 +14501,14 @@
},
/area/almayer/hallways/starboard_hallway)
"bbV" = (
-/obj/structure/largecrate/random/secure,
-/obj/item/reagent_container/food/drinks/cans/beer{
- pixel_x = 6;
- pixel_y = 12
- },
-/turf/open/floor/almayer{
- icon_state = "mono"
+/obj/structure/machinery/light{
+ dir = 8
},
-/area/almayer/lifeboat_pumps/north2)
+/turf/open/floor/almayer,
+/area/almayer/shipboard/starboard_missiles)
"bbX" = (
-/obj/structure/machinery/constructable_frame,
/obj/effect/decal/cleanable/blood/oil,
+/obj/structure/machinery/constructable_frame,
/turf/open/floor/almayer{
icon_state = "mono"
},
@@ -14620,11 +14520,11 @@
},
/area/almayer/squads/alpha)
"bbZ" = (
-/obj/structure/machinery/constructable_frame,
-/turf/open/floor/almayer{
- icon_state = "mono"
+/obj/structure/bed/chair{
+ dir = 1
},
-/area/almayer/lifeboat_pumps/north2)
+/turf/open/floor/almayer,
+/area/almayer/shipboard/starboard_missiles)
"bca" = (
/obj/structure/machinery/cm_vending/gear/smartgun,
/obj/structure/sign/safety/hazard{
@@ -15446,6 +15346,13 @@
icon_state = "plate"
},
/area/almayer/hallways/hangar)
+"bfP" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/almayer,
+/area/almayer/hull/upper_hull/u_f_p)
"bfV" = (
/obj/structure/machinery/landinglight/ds2{
dir = 8
@@ -15863,11 +15770,11 @@
/area/almayer/hallways/aft_hallway)
"biu" = (
/obj/structure/machinery/door/airlock/almayer/medical/glass{
+ access_modified = 1;
dir = 2;
name = "\improper Chemistry Laboratory";
req_access_txt = "20";
- req_one_access = null;
- access_modified = 1
+ req_one_access = null
},
/obj/structure/disposalpipe/segment,
/obj/structure/pipes/standard/simple/hidden/supply,
@@ -15929,17 +15836,19 @@
},
/area/almayer/lifeboat_pumps/north2)
"biT" = (
-/obj/structure/pipes/standard/manifold/hidden/supply{
- dir = 8
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "red"
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/aft_hallway)
+/area/almayer/living/starboard_garden)
"biV" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
+/obj/structure/window/framed/almayer,
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hallways/aft_hallway)
+/turf/open/floor/plating,
+/area/almayer/living/starboard_garden)
"bja" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/computer/secure_data{
@@ -16031,8 +15940,7 @@
"bjJ" = (
/obj/structure/pipes/standard/manifold/hidden/supply,
/obj/structure/disposalpipe/segment{
- dir = 4;
- icon_state = "pipe-c"
+ dir = 4
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hallways/aft_hallway)
@@ -16148,11 +16056,11 @@
dir = 2
},
/obj/structure/machinery/door/airlock/almayer/medical/glass{
+ access_modified = 1;
dir = 2;
name = "\improper Nurse Office";
req_access_txt = "20";
- req_one_access = null;
- access_modified = 1
+ req_one_access = null
},
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer{
@@ -16353,11 +16261,11 @@
/area/almayer/living/offices)
"blq" = (
/obj/structure/machinery/door/airlock/almayer/security/glass{
+ access_modified = 1;
dir = 2;
name = "Firing Range";
req_access = null;
- req_one_access_txt = "2;4;7;9;21";
- access_modified = 1
+ req_one_access_txt = "2;4;7;9;21"
},
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 1
@@ -16771,6 +16679,12 @@
icon_state = "orange"
},
/area/almayer/squads/bravo)
+"bny" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/lifeboat_pumps/north1)
"bnA" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -16868,6 +16782,17 @@
icon_state = "plate"
},
/area/almayer/squads/bravo)
+"bnZ" = (
+/obj/structure/surface/table/almayer,
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_22";
+ pixel_y = 8
+ },
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "red"
+ },
+/area/almayer/lifeboat_pumps/south1)
"bob" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -16995,12 +16920,7 @@
/turf/open/floor/almayer,
/area/almayer/engineering/engineering_workshop)
"boL" = (
-/obj/structure/bed/chair{
- dir = 4
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
+/turf/open/floor/almayer,
/area/almayer/living/starboard_garden)
"boN" = (
/obj/structure/surface/table/almayer,
@@ -17086,11 +17006,11 @@
dir = 2
},
/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{
+ access_modified = 1;
dir = 1;
name = "\improper Particle Cannon Systems Room";
req_access = null;
- req_one_access_txt = "3;19";
- access_modified = 1
+ req_one_access_txt = "3;19"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -17108,9 +17028,7 @@
/obj/structure/toilet{
dir = 1
},
-/turf/open/floor/almayer{
- icon_state = "sterile"
- },
+/turf/open/floor/plating/plating_catwalk,
/area/almayer/hull/upper_hull/u_a_s)
"bph" = (
/obj/structure/bed/chair/comfy/orange,
@@ -17323,9 +17241,9 @@
},
/area/almayer/hallways/hangar)
"bqG" = (
-/obj/structure/largecrate/supply/supplies/flares,
/turf/open/floor/almayer{
- icon_state = "plate"
+ dir = 6;
+ icon_state = "silver"
},
/area/almayer/hull/upper_hull/u_m_p)
"bqH" = (
@@ -17573,9 +17491,7 @@
/area/almayer/living/bridgebunks)
"brT" = (
/obj/structure/machinery/light,
-/turf/open/floor/almayer{
- icon_state = "sterile"
- },
+/turf/open/floor/plating/plating_catwalk,
/area/almayer/hull/upper_hull/u_a_s)
"brW" = (
/obj/structure/disposalpipe/segment,
@@ -17627,11 +17543,11 @@
/turf/open/floor/wood/ship,
/area/almayer/command/corporateliason)
"bsf" = (
-/obj/structure/largecrate/random,
/obj/structure/machinery/camera/autoname/almayer{
dir = 8;
name = "ship-grade camera"
},
+/obj/structure/largecrate/random,
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -18240,10 +18156,7 @@
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hallways/hangar)
"bvl" = (
-/obj/structure/machinery/disposal,
-/obj/structure/disposalpipe/trunk{
- dir = 1
- },
+/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer,
/area/almayer/command/corporateliason)
"bvr" = (
@@ -18328,6 +18241,10 @@
},
/area/almayer/hallways/starboard_umbilical)
"bvU" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SE-out";
+ pixel_x = 1
+ },
/obj/structure/machinery/door/airlock/almayer/generic{
dir = 2;
name = "\improper Liasion's Bathroom"
@@ -18800,18 +18717,13 @@
/obj/structure/bed/chair/office/dark{
dir = 8
},
-/obj/effect/decal/warning_stripes{
- icon_state = "S"
- },
/turf/open/floor/almayer,
/area/almayer/command/corporateliason)
"byq" = (
/obj/structure/machinery/light{
dir = 4
},
-/obj/effect/decal/warning_stripes{
- icon_state = "S"
- },
+/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer,
/area/almayer/command/corporateliason)
"byr" = (
@@ -18992,19 +18904,18 @@
/obj/structure/machinery/door/window/westright,
/obj/structure/window/reinforced/tinted/frosted,
/obj/item/tool/soap/deluxe,
-/turf/open/floor/almayer{
- icon_state = "dark_sterile"
- },
+/turf/open/floor/plating/plating_catwalk,
/area/almayer/command/corporateliason)
"bzy" = (
/turf/closed/wall/almayer,
/area/almayer/hallways/vehiclehangar)
"bzz" = (
-/obj/item/stack/sheet/metal,
-/turf/open/floor/almayer{
- icon_state = "mono"
+/obj/structure/disposalpipe/trunk{
+ dir = 4
},
-/area/almayer/lifeboat_pumps/north1)
+/obj/structure/machinery/disposal,
+/turf/open/floor/almayer,
+/area/almayer/shipboard/starboard_missiles)
"bzA" = (
/turf/open/floor/almayer{
icon_state = "plate"
@@ -19309,7 +19220,7 @@
"bAX" = (
/obj/structure/closet/emcloset,
/turf/open/floor/almayer{
- icon_state = "plate"
+ icon_state = "cargo"
},
/area/almayer/hallways/starboard_hallway)
"bAY" = (
@@ -19501,14 +19412,11 @@
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hallways/vehiclehangar)
"bBC" = (
-/obj/structure/disposalpipe/segment{
+/obj/structure/bed/chair{
dir = 4
},
-/turf/open/floor/almayer{
- dir = 8;
- icon_state = "green"
- },
-/area/almayer/hallways/aft_hallway)
+/turf/open/floor/grass,
+/area/almayer/living/starboard_garden)
"bBD" = (
/obj/structure/machinery/firealarm{
pixel_y = 28
@@ -19577,11 +19485,11 @@
dir = 2
},
/obj/structure/machinery/door/airlock/almayer/security{
+ access_modified = 1;
dir = 2;
name = "\improper Security Checkpoint";
req_access = null;
- req_one_access_txt = "3;19";
- access_modified = 1
+ req_one_access_txt = "3;19"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -19827,6 +19735,20 @@
icon_state = "plate"
},
/area/almayer/shipboard/weapon_room)
+"bDe" = (
+/obj/structure/surface/table/almayer,
+/obj/item/circuitboard{
+ pixel_x = 12;
+ pixel_y = 7
+ },
+/obj/item/tool/crowbar{
+ pixel_x = 6;
+ pixel_y = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hull/upper_hull/u_m_p)
"bDn" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/closed/wall/almayer,
@@ -19862,9 +19784,7 @@
/obj/structure/bed/chair{
dir = 8
},
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
+/turf/open/floor/almayer,
/area/almayer/living/starboard_garden)
"bDF" = (
/obj/structure/machinery/door/poddoor/almayer{
@@ -19887,10 +19807,10 @@
/area/almayer/hallways/hangar)
"bDL" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/almayer{
+ access_modified = 1;
dir = 1;
name = "\improper Auxiliary Combat Support Secondary Preparations";
- req_one_access = "19;27;22";
- access_modified = 1
+ req_one_access = "19;27;22"
},
/turf/open/floor/almayer{
icon_state = "plate"
@@ -20802,11 +20722,11 @@
},
/obj/structure/pipes/standard/simple/hidden/supply,
/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{
+ access_modified = 1;
dir = 1;
name = "\improper Particle Cannon Systems Room";
req_access = null;
- req_one_access_txt = "3;19";
- access_modified = 1
+ req_one_access_txt = "3;19"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -21076,9 +20996,9 @@
"bIu" = (
/obj/structure/machinery/door/firedoor/border_only/almayer,
/obj/structure/machinery/door/airlock/almayer/generic{
+ access_modified = 1;
name = "Storage";
- req_one_access = "2;21";
- access_modified = 1
+ req_one_access_txt = "19;21"
},
/turf/open/floor/almayer{
icon_state = "plate"
@@ -21274,10 +21194,10 @@
/area/almayer/engineering/lower_engineering)
"bJl" = (
/obj/structure/machinery/door/airlock/almayer/generic{
+ access_modified = 1;
dir = 1;
name = "\improper Auxiliary Support Officers Quarters";
- req_one_access_txt = "37";
- access_modified = 1
+ req_one_access_txt = "37"
},
/obj/structure/pipes/standard/simple/hidden/supply,
/obj/structure/machinery/door/firedoor/border_only/almayer{
@@ -21462,11 +21382,11 @@
},
/obj/structure/pipes/standard/simple/hidden/supply,
/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{
+ access_modified = 1;
dir = 1;
name = "\improper Particle Cannon Systems Room";
req_access = null;
- req_one_access_txt = "7;19";
- access_modified = 1
+ req_one_access_txt = "7;19"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -21940,7 +21860,7 @@
/area/almayer/shipboard/weapon_room)
"bLO" = (
/obj/structure/bed/chair{
- dir = 1
+ dir = 8
},
/turf/open/floor/grass,
/area/almayer/living/starboard_garden)
@@ -23993,8 +23913,15 @@
},
/area/almayer/hallways/port_hallway)
"bUA" = (
-/obj/docking_port/stationary/escape_pod/north,
-/turf/open/floor/plating,
+/obj/structure/surface/table/almayer,
+/obj/item/tool/screwdriver,
+/obj/item/prop/helmetgarb/gunoil{
+ pixel_x = -7;
+ pixel_y = 12
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
/area/almayer/hull/upper_hull/u_m_s)
"bUE" = (
/turf/open/floor/almayer{
@@ -24184,6 +24111,13 @@
icon_state = "blue"
},
/area/almayer/squads/delta)
+"bVr" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hull/upper_hull/u_f_p)
"bVt" = (
/obj/structure/machinery/door_control{
id = "laddersoutheast";
@@ -24318,15 +24252,16 @@
},
/area/almayer/shipboard/port_point_defense)
"bWd" = (
-/obj/structure/machinery/door/airlock/almayer/secure/reinforced{
- dir = 2;
- name = "\improper Evacuation Airlock SU-6";
- req_access = null
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/obj/structure/bed/chair{
+ dir = 8
},
/turf/open/floor/almayer{
- icon_state = "test_floor4"
+ icon_state = "plate"
},
-/area/almayer/powered)
+/area/almayer/living/starboard_garden)
"bWe" = (
/turf/open/floor/almayer{
dir = 5;
@@ -24334,13 +24269,14 @@
},
/area/almayer/shipboard/port_point_defense)
"bWf" = (
-/obj/structure/surface/rack,
-/obj/effect/spawner/random/tool,
-/obj/effect/spawner/random/tool,
+/obj/structure/machinery/light,
+/obj/structure/bed/chair{
+ dir = 1
+ },
/turf/open/floor/almayer{
icon_state = "plate"
},
-/area/almayer/hull/upper_hull/u_m_s)
+/area/almayer/living/starboard_garden)
"bWh" = (
/obj/structure/machinery/door/airlock/almayer/secure/reinforced{
dir = 2;
@@ -24351,12 +24287,6 @@
icon_state = "test_floor4"
},
/area/almayer/powered)
-"bWj" = (
-/obj/structure/largecrate/supply,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hull/upper_hull/u_m_s)
"bWn" = (
/obj/structure/machinery/light/small{
dir = 8
@@ -24383,12 +24313,13 @@
},
/area/almayer/shipboard/port_point_defense)
"bWq" = (
-/obj/structure/surface/rack,
-/obj/effect/spawner/random/toolbox,
+/obj/structure/bed/chair{
+ dir = 1
+ },
/turf/open/floor/almayer{
icon_state = "plate"
},
-/area/almayer/hull/upper_hull/u_m_s)
+/area/almayer/living/starboard_garden)
"bWr" = (
/obj/structure/machinery/door/airlock/almayer/maint,
/turf/open/floor/almayer{
@@ -24444,13 +24375,9 @@
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/auxiliary_officer_office)
"bWK" = (
-/obj/structure/bed/chair{
- dir = 1
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/living/starboard_garden)
+/obj/docking_port/stationary/escape_pod/north,
+/turf/open/floor/plating,
+/area/almayer/hull/upper_hull/u_m_s)
"bWL" = (
/obj/structure/disposalpipe/segment,
/obj/structure/pipes/standard/simple/hidden/supply,
@@ -24981,12 +24908,6 @@
},
/area/almayer/command/cic)
"bZa" = (
-/obj/structure/machinery/door/airlock/almayer/generic{
- dir = 1;
- name = "\improper Flight Crew Quarters";
- req_one_access_txt = "19;22";
- access_modified = 1
- },
/obj/structure/disposalpipe/segment,
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 2
@@ -25009,16 +24930,12 @@
},
/area/almayer/lifeboat_pumps/north1)
"bZg" = (
-/obj/structure/machinery/door/airlock/almayer/maint{
- dir = 1
- },
-/obj/structure/machinery/door/firedoor/border_only/almayer{
- dir = 2
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 9
},
-/area/almayer/living/pilotbunks)
+/obj/structure/machinery/light,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hull/upper_hull/u_f_s)
"bZi" = (
/obj/structure/largecrate/random/case/double,
/turf/open/floor/almayer{
@@ -25258,11 +25175,11 @@
"cau" = (
/obj/structure/disposalpipe/segment,
/obj/structure/machinery/door/airlock/almayer/security/glass{
+ access_modified = 1;
dir = 2;
name = "Firing Range";
req_access = null;
- req_one_access_txt = "2;4;7;9;21";
- access_modified = 1
+ req_one_access_txt = "2;4;7;9;21"
},
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 1
@@ -25637,6 +25554,10 @@
/obj/structure/sign/safety/storage{
pixel_y = 32
},
+/obj/effect/decal/warning_stripes{
+ icon_state = "NW-out";
+ pixel_y = 3
+ },
/turf/open/floor/almayer,
/area/almayer/hallways/port_hallway)
"cbW" = (
@@ -25675,17 +25596,6 @@
icon_state = "red"
},
/area/almayer/living/cryo_cells)
-"ccc" = (
-/obj/structure/sign/safety/bathunisex{
- pixel_x = 8;
- pixel_y = 25
- },
-/obj/structure/sign/safety/bathunisex{
- pixel_x = 8;
- pixel_y = -25
- },
-/turf/open/floor/almayer,
-/area/almayer/living/pilotbunks)
"ccd" = (
/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep,
/turf/open/floor/almayer{
@@ -26232,9 +26142,11 @@
},
/area/almayer/hallways/port_umbilical)
"ceu" = (
-/obj/item/trash/barcardine,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hull/upper_hull/u_m_s)
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "green"
+ },
+/area/almayer/living/starboard_garden)
"cev" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -26259,13 +26171,8 @@
},
/area/almayer/hallways/port_umbilical)
"ceC" = (
-/obj/structure/machinery/light,
-/obj/structure/bed/chair{
- dir = 1
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
+/obj/structure/prop/almayer/ship_memorial,
+/turf/open/floor/plating/almayer,
/area/almayer/living/starboard_garden)
"ceD" = (
/obj/structure/machinery/door/airlock/almayer/secure/reinforced{
@@ -26308,12 +26215,22 @@
},
/area/almayer/hallways/repair_bay)
"ceZ" = (
-/obj/structure/bed/sofa/south,
+/obj/structure/bed/sofa/south/grey/left,
/turf/open/floor/almayer{
dir = 9;
icon_state = "silver"
},
/area/almayer/shipboard/brig/cic_hallway)
+"cfk" = (
+/obj/structure/machinery/firealarm{
+ dir = 4;
+ pixel_x = 24
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/port_missiles)
"cfo" = (
/turf/open/floor/plating/plating_catwalk,
/area/almayer/squads/charlie)
@@ -26764,17 +26681,15 @@
},
/area/almayer/squads/req)
"cit" = (
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 1;
- name = "ship-grade camera"
- },
-/obj/structure/bed/chair{
- dir = 1
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
+/obj/structure/surface/table/almayer,
+/obj/item/paper_bin{
+ pixel_x = -6;
+ pixel_y = 7
},
-/area/almayer/living/starboard_garden)
+/obj/item/tool/pen,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hull/upper_hull/u_m_s)
"ciu" = (
/obj/structure/platform{
dir = 8
@@ -27681,10 +27596,10 @@
},
/obj/structure/machinery/door/firedoor/border_only/almayer,
/obj/structure/machinery/door/airlock/almayer/security/reinforced{
+ access_modified = 1;
name = "\improper Astronavigational Deck";
req_access = null;
- req_one_access_txt = "3;19";
- access_modified = 1
+ req_one_access_txt = "3;19"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -27693,10 +27608,10 @@
"cmJ" = (
/obj/structure/machinery/door/firedoor/border_only/almayer,
/obj/structure/machinery/door/airlock/almayer/security/reinforced{
+ access_modified = 1;
name = "\improper Astronavigational Deck";
req_access = null;
- req_one_access_txt = "3;19";
- access_modified = 1
+ req_one_access_txt = "3;19"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -28479,6 +28394,7 @@
pixel_x = 8;
pixel_y = -32
},
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer,
/area/almayer/hull/upper_hull/u_f_p)
"czM" = (
@@ -28916,6 +28832,7 @@
/obj/structure/machinery/light{
dir = 4
},
+/obj/structure/surface/table/almayer,
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/south1)
"cIi" = (
@@ -28995,7 +28912,10 @@
/obj/structure/machinery/light{
dir = 1
},
-/turf/open/floor/almayer,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
/area/almayer/living/pilotbunks)
"cJB" = (
/obj/structure/machinery/vending/coffee,
@@ -29438,11 +29358,6 @@
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 1
},
-/obj/structure/machinery/door/airlock/almayer/medical/glass{
- dir = 2;
- name = "\improper Port Viewing Room";
- req_one_access = null
- },
/turf/open/floor/almayer{
icon_state = "test_floor4"
},
@@ -29537,6 +29452,12 @@
icon_state = "orange"
},
/area/almayer/engineering/lower_engineering)
+"cWv" = (
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "green"
+ },
+/area/almayer/living/starboard_garden)
"cWy" = (
/obj/structure/closet/secure_closet/freezer/fridge,
/obj/item/reagent_container/food/snacks/packaged_burger,
@@ -29748,14 +29669,19 @@
},
/area/almayer/shipboard/brig/surgery)
"dav" = (
-/obj/structure/machinery/constructable_frame{
- icon_state = "box_2"
+/obj/structure/machinery/door/poddoor/almayer/open{
+ id = "Brig Lockdown Shutters";
+ name = "\improper Brig Lockdown Shutter"
+ },
+/obj/structure/machinery/door/airlock/almayer/maint{
+ access_modified = 1;
+ dir = 2;
+ req_one_access = list(2,34,30)
},
-/obj/effect/decal/cleanable/blood/oil/streak,
/turf/open/floor/almayer{
- icon_state = "mono"
+ icon_state = "plate"
},
-/area/almayer/lifeboat_pumps/south1)
+/area/almayer/hull/upper_hull/u_f_s)
"daz" = (
/turf/closed/wall/almayer/white/hull,
/area/almayer/command/airoom)
@@ -30058,10 +29984,6 @@
pixel_y = 3
},
/obj/item/device/camera,
-/obj/effect/decal/warning_stripes{
- icon_state = "SE-out";
- pixel_x = 1
- },
/turf/open/floor/almayer,
/area/almayer/command/corporateliason)
"dhR" = (
@@ -30077,8 +29999,7 @@
"dhU" = (
/obj/structure/closet/emcloset,
/turf/open/floor/almayer{
- dir = 5;
- icon_state = "green"
+ icon_state = "cargo"
},
/area/almayer/hallways/port_hallway)
"dhZ" = (
@@ -30565,6 +30486,7 @@
/area/almayer/hull/lower_hull/l_f_p)
"dqN" = (
/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer{
icon_state = "green"
},
@@ -30747,14 +30669,10 @@
},
/area/almayer/living/briefing)
"dux" = (
-/obj/structure/surface/table/almayer,
-/obj/item/pizzabox{
- pixel_y = 10
- },
/turf/open/floor/almayer{
- icon_state = "plate"
+ icon_state = "mono"
},
-/area/almayer/hull/upper_hull/u_m_p)
+/area/almayer/living/starboard_garden)
"duF" = (
/obj/structure/closet/secure_closet/personal,
/turf/open/floor/almayer{
@@ -31134,9 +31052,11 @@
/obj/structure/sign/nosmoking_2{
pixel_x = 32
},
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
+ },
/turf/open/floor/almayer{
- dir = 1;
- icon_state = "red"
+ icon_state = "test_floor4"
},
/area/almayer/lifeboat_pumps/south1)
"dCK" = (
@@ -31194,6 +31114,7 @@
/obj/structure/machinery/light/small{
dir = 1
},
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -31306,6 +31227,12 @@
icon_state = "plate"
},
/area/almayer/hull/lower_hull/l_f_p)
+"dGc" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hull/upper_hull/u_f_p)
"dGl" = (
/obj/effect/step_trigger/teleporter_vector{
name = "Almayer_AresUp";
@@ -31327,7 +31254,10 @@
/obj/structure/pipes/vents/scrubber{
dir = 8
},
-/turf/open/floor/almayer,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "blue"
+ },
/area/almayer/living/pilotbunks)
"dGw" = (
/obj/effect/step_trigger/clone_cleaner,
@@ -31348,8 +31278,14 @@
/area/almayer/hull/lower_hull/l_a_p)
"dGC" = (
/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plating/plating_catwalk,
+/obj/structure/disposalpipe/segment{
+ dir = 8;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
/area/almayer/lifeboat_pumps/south1)
"dGD" = (
/obj/structure/closet/secure_closet{
@@ -31373,11 +31309,11 @@
/area/almayer/shipboard/brig/processing)
"dGW" = (
/obj/structure/machinery/door/airlock/almayer/security{
+ access_modified = 1;
dir = 2;
name = "\improper Security Checkpoint";
req_access = null;
- req_one_access_txt = "3;19";
- access_modified = 1
+ req_one_access_txt = "3;19"
},
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 2
@@ -31567,10 +31503,9 @@
},
/area/almayer/shipboard/sea_office)
"dLz" = (
-/obj/structure/surface/table/almayer,
-/obj/item/storage/backpack/satchel,
+/obj/structure/closet/firecloset,
/turf/open/floor/almayer{
- icon_state = "mono"
+ icon_state = "cargo"
},
/area/almayer/lifeboat_pumps/south1)
"dLE" = (
@@ -31715,6 +31650,16 @@
icon_state = "dark_sterile"
},
/area/almayer/shipboard/brig/surgery)
+"dQE" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/obj/structure/janitorialcart,
+/obj/item/tool/mop,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hull/upper_hull/u_m_p)
"dQH" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -31804,6 +31749,7 @@
/obj/structure/machinery/camera/autoname/almayer{
name = "ship-grade camera"
},
+/obj/structure/surface/table/almayer,
/turf/open/floor/almayer{
dir = 9;
icon_state = "red"
@@ -31857,6 +31803,10 @@
pixel_y = 6;
serial_number = 12
},
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
/turf/open/floor/almayer{
icon_state = "dark_sterile"
},
@@ -31896,16 +31846,25 @@
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hull/lower_hull/l_f_s)
"dUI" = (
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper Port Viewing Room"
+ },
/turf/open/floor/almayer{
- dir = 9;
- icon_state = "red"
+ icon_state = "test_floor4"
},
-/area/almayer/shipboard/port_missiles)
+/area/almayer/hull/upper_hull/u_f_s)
"dUS" = (
/turf/open/floor/almayer{
icon_state = "dark_sterile"
},
/area/almayer/medical/operating_room_two)
+"dUZ" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/port_missiles)
"dVd" = (
/obj/structure/machinery/seed_extractor{
density = 0;
@@ -32056,7 +32015,10 @@
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
},
-/turf/open/floor/almayer,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "blue"
+ },
/area/almayer/living/pilotbunks)
"dYh" = (
/obj/structure/machinery/power/apc/almayer{
@@ -32540,6 +32502,9 @@
/area/almayer/hallways/hangar)
"ehj" = (
/obj/item/stack/catwalk,
+/obj/structure/machinery/status_display{
+ pixel_y = 30
+ },
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/south1)
"ehx" = (
@@ -32547,6 +32512,14 @@
/obj/effect/landmark/late_join/alpha,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/squads/alpha)
+"ehH" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NE-out";
+ pixel_x = 2;
+ pixel_y = 3
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/starboard_hallway)
"ehR" = (
/obj/structure/window/reinforced{
dir = 4;
@@ -32584,7 +32557,7 @@
/turf/open/floor/almayer{
icon_state = "plate"
},
-/area/almayer/living/tankerbunks)
+/area/almayer/hull/lower_hull/l_f_p)
"eim" = (
/obj/structure/pipes/vents/pump{
dir = 1
@@ -32684,7 +32657,7 @@
"ejp" = (
/obj/structure/closet/emcloset,
/turf/open/floor/almayer{
- icon_state = "mono"
+ icon_state = "cargo"
},
/area/almayer/hallways/aft_hallway)
"ejt" = (
@@ -32732,18 +32705,25 @@
"eky" = (
/turf/open/floor/almayer,
/area/almayer/command/lifeboat)
-"ekY" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
+"ekO" = (
+/obj/structure/machinery/cryopod{
+ pixel_y = 6
},
-/obj/structure/sign/safety/maint{
- pixel_x = 8;
- pixel_y = -32
+/obj/structure/sign/safety/cryo{
+ pixel_x = -17
},
/turf/open/floor/almayer{
- icon_state = "plate"
+ icon_state = "cargo"
},
/area/almayer/hull/upper_hull/u_m_p)
+"ekY" = (
+/obj/structure/machinery/door/airlock/almayer/generic/glass{
+ name = "\improper Memorial Room"
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/living/starboard_garden)
"elf" = (
/obj/structure/sign/safety/hvac_old{
pixel_x = 8;
@@ -32761,6 +32741,8 @@
/obj/structure/machinery/light{
dir = 8
},
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/cic_hallway)
"elq" = (
@@ -33224,17 +33206,15 @@
},
/area/almayer/command/airoom)
"euO" = (
-/obj/structure/window/framed/almayer,
-/obj/structure/machinery/door/poddoor/shutters/almayer/open{
- dir = 2;
- id = "Warden Office Shutters";
- name = "\improper Privacy Shutters"
+/obj/structure/machinery/light{
+ unacidable = 1;
+ unslashable = 1
},
/turf/open/floor/almayer{
- dir = 5;
+ dir = 10;
icon_state = "red"
},
-/area/almayer/shipboard/brig/main_office)
+/area/almayer/lifeboat_pumps/north1)
"euV" = (
/turf/open/floor/almayer/uscm/directional{
dir = 8;
@@ -33258,17 +33238,12 @@
/area/almayer/living/basketball)
"evg" = (
/obj/structure/surface/table/reinforced/almayer_B,
-/obj/item/clipboard{
- pixel_x = -6
- },
-/obj/item/tool/pen/blue{
- pixel_x = -6
+/obj/structure/machinery/computer/emails{
+ dir = 1
},
-/obj/item/paper_bin/uscm{
- pixel_x = 8;
- pixel_y = 12
+/turf/open/floor/almayer{
+ icon_state = "bluefull"
},
-/turf/open/floor/almayer,
/area/almayer/living/pilotbunks)
"evk" = (
/obj/structure/surface/rack,
@@ -33716,6 +33691,17 @@
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering/port)
+"eFM" = (
+/obj/structure/surface/table/almayer,
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_22";
+ pixel_y = 8
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "red"
+ },
+/area/almayer/lifeboat_pumps/south1)
"eFT" = (
/obj/structure/bed/sofa/vert/grey,
/obj/structure/bed/sofa/vert/grey{
@@ -33723,6 +33709,14 @@
},
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/north1)
+"eGb" = (
+/obj/structure/machinery/constructable_frame{
+ icon_state = "box_2"
+ },
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/lifeboat_pumps/north2)
"eGg" = (
/obj/structure/machinery/door/poddoor/railing{
dir = 8;
@@ -33949,12 +33943,17 @@
/obj/structure/mirror{
pixel_x = 28
},
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 2
+ },
/turf/open/floor/almayer{
icon_state = "dark_sterile"
},
/area/almayer/command/corporateliason)
"eKM" = (
/obj/structure/surface/rack,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -33992,6 +33991,19 @@
icon_state = "test_floor4"
},
/area/almayer/engineering/laundry)
+"eMn" = (
+/obj/structure/machinery/light,
+/obj/structure/sign/safety/waterhazard{
+ pixel_y = -32
+ },
+/obj/structure/sign/safety/rewire{
+ pixel_x = 14;
+ pixel_y = -32
+ },
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/lifeboat_pumps/south1)
"eMP" = (
/obj/structure/machinery/door/poddoor/almayer/open{
dir = 4;
@@ -34069,6 +34081,16 @@
icon_state = "plate"
},
/area/almayer/hull/lower_hull/l_f_p)
+"eOM" = (
+/obj/structure/machinery/door/airlock/almayer/secure/reinforced{
+ dir = 2;
+ name = "\improper Evacuation Airlock PU-6";
+ req_access = null
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/powered)
"eOR" = (
/obj/structure/machinery/light{
dir = 4
@@ -34174,15 +34196,16 @@
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/main_office)
"eRR" = (
-/obj/structure/surface/rack,
-/obj/effect/spawner/random/tool,
-/obj/structure/machinery/light{
- dir = 1
+/obj/item/clothing/head/helmet/marine{
+ pixel_x = 16;
+ pixel_y = 6
},
+/obj/item/reagent_container/food/snacks/grown/poppy,
+/obj/effect/step_trigger/message/memorial,
/turf/open/floor/almayer{
- icon_state = "mono"
+ icon_state = "plate"
},
-/area/almayer/lifeboat_pumps/south1)
+/area/almayer/living/starboard_garden)
"eSo" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer{
@@ -34216,7 +34239,7 @@
pixel_x = -17;
pixel_y = -17
},
-/obj/structure/transmitter/rotary{
+/obj/structure/transmitter/rotary/no_dnd{
name = "Delta Overwatch Telephone";
phone_category = "Command";
phone_id = "Delta Overwatch"
@@ -34563,6 +34586,12 @@
icon_state = "red"
},
/area/almayer/hull/upper_hull/u_a_p)
+"fad" = (
+/obj/effect/step_trigger/clone_cleaner,
+/turf/open/floor/almayer{
+ icon_state = "green"
+ },
+/area/almayer/hallways/aft_hallway)
"fau" = (
/obj/structure/pipes/standard/manifold/hidden/supply,
/obj/structure/disposalpipe/junction{
@@ -35037,10 +35066,10 @@
/area/almayer/living/briefing)
"fmf" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/almayer/glass{
+ access_modified = 1;
dir = 2;
name = "\improper Requisitions Break Room";
- req_one_access = "19;21";
- access_modified = 1
+ req_one_access_txt = "19;21"
},
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -35070,7 +35099,9 @@
/obj/structure/bed/chair/comfy{
dir = 8
},
-/turf/open/floor/almayer,
+/turf/open/floor/almayer{
+ icon_state = "bluecorner"
+ },
/area/almayer/living/pilotbunks)
"fmS" = (
/obj/structure/closet/secure_closet/engineering_electrical,
@@ -35101,8 +35132,7 @@
dir = 8
},
/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
+ icon_state = "redfull"
},
/area/almayer/medical/upper_medical)
"fnC" = (
@@ -35176,6 +35206,12 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/medical/medical_science)
+"foR" = (
+/obj/structure/largecrate/random/case,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hull/upper_hull/u_m_p)
"fpd" = (
/obj/structure/sign/safety/hvac_old{
pixel_x = 8;
@@ -35251,6 +35287,17 @@
/obj/structure/largecrate/random/barrel/red,
/turf/open/floor/almayer,
/area/almayer/hull/upper_hull/u_f_s)
+"fqx" = (
+/obj/structure/machinery/light,
+/obj/effect/decal/warning_stripes{
+ icon_state = "W";
+ pixel_x = -1
+ },
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "silver"
+ },
+/area/almayer/hull/upper_hull/u_m_p)
"fqO" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 1
@@ -35342,10 +35389,10 @@
dir = 2
},
/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{
+ access_modified = 1;
name = "\improper Cryogenics Bay";
req_access = null;
- req_one_access_txt = "1;3";
- access_modified = 1
+ req_one_access_txt = "1;3"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -35376,7 +35423,15 @@
pixel_x = -8;
pixel_y = 5
},
-/turf/open/floor/plating/plating_catwalk,
+/obj/effect/decal/warning_stripes{
+ icon_state = "W";
+ pixel_x = -1;
+ pixel_y = 1
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
/area/almayer/shipboard/brig/armory)
"fsH" = (
/obj/structure/disposalpipe/segment{
@@ -35388,6 +35443,15 @@
},
/area/almayer/hallways/port_hallway)
"fsT" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1;
+ pixel_y = -1
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 2
+ },
/turf/open/floor/almayer{
dir = 5;
icon_state = "plating"
@@ -35429,12 +35493,9 @@
},
/area/almayer/hallways/vehiclehangar)
"fuz" = (
-/obj/structure/toilet{
- dir = 8
- },
-/obj/structure/window/reinforced/tinted/frosted,
+/obj/structure/machinery/cm_vending/clothing/pilot_officer,
/turf/open/floor/almayer{
- icon_state = "sterile"
+ icon_state = "plate"
},
/area/almayer/living/pilotbunks)
"fuB" = (
@@ -35485,11 +35546,17 @@
},
/area/almayer/living/briefing)
"fvu" = (
-/obj/item/tool/crowbar,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/almayer,
+/area/almayer/hull/upper_hull/u_f_s)
+"fvv" = (
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ name = "\improper Port Viewing Room"
+ },
/turf/open/floor/almayer{
- icon_state = "mono"
+ icon_state = "test_floor4"
},
-/area/almayer/lifeboat_pumps/south1)
+/area/almayer/hull/upper_hull/u_f_p)
"fvB" = (
/obj/structure/closet/secure_closet/staff_officer/armory/m4a1,
/turf/open/floor/almayer{
@@ -35521,25 +35588,23 @@
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/port_point_defense)
"fwD" = (
-/obj/structure/surface/table/almayer,
-/obj/item/trash/plate{
+/obj/item/reagent_container/food/snacks/grown/poppy{
pixel_x = 4;
- pixel_y = 9
+ pixel_y = 4
},
+/obj/effect/step_trigger/message/memorial,
/turf/open/floor/almayer{
- icon_state = "mono"
+ icon_state = "plate"
},
-/area/almayer/lifeboat_pumps/south1)
+/area/almayer/living/starboard_garden)
"fwF" = (
-/obj/structure/largecrate/random/case/double,
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 8;
- name = "ship-grade camera"
+/obj/structure/machinery/light/small{
+ dir = 4
},
/turf/open/floor/almayer{
icon_state = "plate"
},
-/area/almayer/hull/upper_hull/u_f_p)
+/area/almayer/hull/upper_hull/u_f_s)
"fwY" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -35785,10 +35850,7 @@
/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
pixel_y = -25
},
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
- },
+/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/brig/armory)
"fDG" = (
/obj/structure/machinery/vending/coffee,
@@ -35856,9 +35918,9 @@
/area/almayer/command/cichallway)
"fEo" = (
/obj/structure/machinery/door/airlock/almayer/generic{
+ access_modified = 1;
name = "Kitchen";
- req_one_access_txt = "30;19";
- access_modified = 1
+ req_one_access_txt = "30;19"
},
/obj/structure/machinery/door/firedoor/border_only/almayer,
/turf/open/floor/almayer{
@@ -36094,9 +36156,9 @@
/area/almayer/squads/bravo)
"fIX" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/almayer{
+ access_modified = 1;
name = "\improper Requisitions Auxiliary Storage Room";
- req_one_access = "19;21";
- access_modified = 1
+ req_one_access = "19;21"
},
/turf/open/floor/almayer{
icon_state = "plate"
@@ -36486,7 +36548,6 @@
/area/almayer/medical/upper_medical)
"fQF" = (
/obj/structure/surface/rack,
-/obj/item/storage/bag/plasticbag,
/obj/item/storage/firstaid/regular,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hull/lower_hull/l_f_s)
@@ -36498,6 +36559,7 @@
/obj/structure/pipes/standard/manifold/hidden/supply{
dir = 8
},
+/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -36537,7 +36599,9 @@
/obj/structure/sign/safety/storage{
pixel_x = -17
},
-/turf/open/floor/almayer,
+/turf/open/floor/almayer{
+ icon_state = "red"
+ },
/area/almayer/lifeboat_pumps/north1)
"fSF" = (
/obj/structure/sink{
@@ -36897,9 +36961,7 @@
/obj/structure/toilet{
dir = 8
},
-/turf/open/floor/almayer{
- icon_state = "dark_sterile"
- },
+/turf/open/floor/plating/plating_catwalk,
/area/almayer/command/corporateliason)
"gbX" = (
/obj/structure/disposalpipe/segment{
@@ -36911,6 +36973,15 @@
},
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/processing)
+"gcc" = (
+/obj/structure/disposalpipe/segment{
+ dir = 1;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hull/upper_hull/u_f_p)
"gcK" = (
/obj/structure/machinery/light/small{
dir = 1
@@ -36926,10 +36997,10 @@
/area/almayer/hull/lower_hull/l_a_s)
"gcN" = (
/obj/structure/machinery/door/airlock/almayer/command{
+ access_modified = 1;
name = "\improper Senior Enlisted Advisor's Office";
req_access = null;
- req_access_txt = "19;29";
- access_modified = 1
+ req_access_txt = "19;29"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -37176,6 +37247,10 @@
},
/turf/open/floor/almayer,
/area/almayer/hallways/port_hallway)
+"ghW" = (
+/obj/effect/landmark/start/liaison,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hull/upper_hull/u_m_p)
"ghX" = (
/obj/structure/window/reinforced/tinted{
pixel_y = -8
@@ -37324,11 +37399,11 @@
"gjL" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/computer/crew/alt,
-/obj/structure/transmitter/rotary{
+/obj/structure/transmitter/rotary/no_dnd{
name = "Brig Cells Telephone";
phone_category = "Almayer";
phone_id = "Brig Cells";
- pixel_x = 15
+ pixel_x = 15;
},
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/processing)
@@ -37463,10 +37538,10 @@
/area/almayer/lifeboat_pumps/north1)
"gol" = (
/obj/structure/machinery/door/airlock/almayer/maint/reinforced{
+ access_modified = 1;
dir = 1;
req_one_access = null;
- req_one_access_txt = "7;19";
- access_modified = 1
+ req_one_access_txt = "7;19"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -38336,7 +38411,7 @@
pixel_x = -17;
pixel_y = 16
},
-/obj/structure/transmitter/rotary{
+/obj/structure/transmitter/rotary/no_dnd{
name = "Alpha Overwatch Telephone";
phone_category = "Command";
phone_id = "Alpha Overwatch"
@@ -38570,9 +38645,9 @@
/area/almayer/hull/lower_hull/l_f_p)
"gMA" = (
/obj/structure/machinery/door/airlock/almayer/maint{
+ access_modified = 1;
dir = 8;
- req_one_access = list(2,34,30);
- access_modified = 1
+ req_one_access = list(2,34,30)
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -39157,8 +39232,8 @@
},
/area/almayer/command/cichallway)
"haM" = (
-/obj/structure/machinery/constructable_frame,
/obj/effect/decal/cleanable/blood/oil,
+/obj/structure/machinery/constructable_frame,
/turf/open/floor/almayer{
icon_state = "mono"
},
@@ -39368,6 +39443,12 @@
icon_state = "plate"
},
/area/almayer/engineering/engine_core)
+"heH" = (
+/obj/structure/pipes/standard/simple/hidden/supply,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/lifeboat_pumps/north1)
"heQ" = (
/obj/structure/bed/chair,
/obj/structure/extinguisher_cabinet{
@@ -39662,6 +39743,12 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/port_point_defense)
+"hkE" = (
+/obj/structure/closet/firecloset,
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/almayer/hallways/port_hallway)
"hkG" = (
/obj/structure/sign/safety/ammunition{
pixel_y = -32
@@ -39800,6 +39887,20 @@
icon_state = "sterile_green"
},
/area/almayer/medical/hydroponics)
+"hnI" = (
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
+ },
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic2{
+ access_modified = 1;
+ name = "\improper Flight Crew Quarters";
+ req_access_txt = null;
+ req_one_access_txt = "19;22"
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/living/pilotbunks)
"hnV" = (
/obj/structure/machinery/light,
/turf/open/floor/almayer,
@@ -40164,6 +40265,16 @@
icon_state = "plate"
},
/area/almayer/squads/charlie_delta_shared)
+"hyt" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 2
+ },
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "green"
+ },
+/area/almayer/hallways/starboard_hallway)
"hyw" = (
/obj/effect/decal/warning_stripes{
icon_state = "NW-out";
@@ -40438,6 +40549,10 @@
icon_state = "plate"
},
/area/almayer/medical/lower_medical_medbay)
+"hDv" = (
+/obj/effect/landmark/start/reporter,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hull/upper_hull/u_m_p)
"hDw" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/computer/emails{
@@ -40512,10 +40627,10 @@
/area/almayer/medical/medical_science)
"hFF" = (
/obj/structure/machinery/door/airlock/almayer/medical{
+ access_modified = 1;
name = "Autopsy";
req_access_txt = "25";
- req_one_access = null;
- access_modified = 1
+ req_one_access = null
},
/obj/structure/machinery/door/firedoor/border_only/almayer,
/turf/open/floor/almayer{
@@ -40637,9 +40752,9 @@
name = "\improper Privacy Shutters"
},
/obj/structure/machinery/door/airlock/almayer/maint{
+ access_modified = 1;
req_access_txt = "200";
- req_one_access = null;
- access_modified = 1
+ req_one_access = null
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -41055,11 +41170,11 @@
/area/almayer/living/grunt_rnr)
"hSI" = (
/obj/structure/machinery/door/airlock/almayer/medical{
+ access_modified = 1;
dir = 2;
name = "Morgue";
req_access_txt = "25";
- req_one_access = null;
- access_modified = 1
+ req_one_access = null
},
/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer{
@@ -41267,6 +41382,16 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/living/briefing)
+"hWB" = (
+/obj/structure/sign/safety/escapepod{
+ pixel_x = 8;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "red"
+ },
+/area/almayer/lifeboat_pumps/south1)
"hWJ" = (
/obj/structure/largecrate/random/case/small,
/turf/open/floor/almayer{
@@ -41313,6 +41438,15 @@
},
/turf/open/floor/almayer,
/area/almayer/squads/alpha_bravo_shared)
+"hXV" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "red"
+ },
+/area/almayer/lifeboat_pumps/south1)
"hXY" = (
/turf/open/floor/almayer{
dir = 4;
@@ -41717,21 +41851,33 @@
/area/almayer/squads/bravo)
"iid" = (
/obj/structure/machinery/door/airlock/almayer/maint{
+ access_modified = 1;
dir = 2;
req_one_access = null;
- req_one_access_txt = "19;34;30";
- access_modified = 1
+ req_one_access_txt = "19;34;30"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
},
/area/almayer/hull/upper_hull/u_m_p)
"iit" = (
-/obj/effect/landmark/ert_spawns/distress_cryo,
-/obj/effect/landmark/late_join,
-/obj/effect/landmark/start/reporter,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/living/cryo_cells)
+/obj/effect/decal/warning_stripes{
+ icon_state = "W";
+ pixel_x = -1
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "SE-out";
+ pixel_x = 1
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "NE-out";
+ pixel_x = 1;
+ pixel_y = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/medical/hydroponics)
"iiz" = (
/obj/structure/surface/rack,
/obj/item/reagent_container/food/drinks/bottle/sake{
@@ -41890,6 +42036,9 @@
/area/almayer/hallways/hangar)
"ilJ" = (
/obj/structure/bed/chair,
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/south1)
"ilZ" = (
@@ -41917,11 +42066,14 @@
/area/almayer/living/offices/flight)
"ina" = (
/obj/structure/surface/table/almayer,
-/obj/effect/spawner/random/tool,
+/obj/structure/machinery/computer/emails{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer{
- icon_state = "mono"
+ icon_state = "plate"
},
-/area/almayer/lifeboat_pumps/south1)
+/area/almayer/hull/upper_hull/u_m_s)
"ins" = (
/obj/structure/pipes/standard/manifold/hidden/supply{
dir = 1
@@ -42023,11 +42175,11 @@
},
/area/almayer/squads/alpha_bravo_shared)
"ipK" = (
-/obj/structure/largecrate/random/case/small,
+/obj/effect/step_trigger/message/memorial,
/turf/open/floor/almayer{
icon_state = "plate"
},
-/area/almayer/hull/upper_hull/u_m_s)
+/area/almayer/living/starboard_garden)
"ipQ" = (
/obj/structure/surface/rack,
/obj/item/storage/fancy/vials/empty,
@@ -42075,9 +42227,9 @@
/area/almayer/squads/req)
"iqp" = (
/obj/structure/machinery/door/airlock/almayer/maint{
+ access_modified = 1;
req_one_access = null;
- req_one_access_txt = "37";
- access_modified = 1
+ req_one_access_txt = "37"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -43151,6 +43303,16 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/command/lifeboat)
+"iPH" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SE-out";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "red"
+ },
+/area/almayer/lifeboat_pumps/south1)
"iPS" = (
/obj/structure/machinery/cryopod/right,
/turf/open/floor/almayer{
@@ -43229,9 +43391,9 @@
/area/almayer/hull/lower_hull/l_f_p)
"iQL" = (
/obj/structure/machinery/door/airlock/almayer/maint{
+ access_modified = 1;
dir = 2;
- req_one_access = list(2,34,30);
- access_modified = 1
+ req_one_access = list(2,34,30)
},
/obj/structure/prop/invuln/lattice_prop{
dir = 1;
@@ -43426,12 +43588,14 @@
},
/area/almayer/hull/lower_hull/l_f_p)
"iVY" = (
-/obj/effect/decal/hefa_cult_decals/d32,
-/turf/open/floor/almayer{
- dir = 9;
- icon_state = "orange"
+/obj/structure/pipes/standard/manifold/hidden/supply{
+ dir = 8
},
-/area/almayer/engineering/upper_engineering/starboard)
+/obj/structure/disposalpipe/junction{
+ dir = 1
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/shipboard/brig/cic_hallway)
"iVZ" = (
/obj/structure/surface/table/woodentable/fancy,
/obj/item/folder/black,
@@ -43576,12 +43740,14 @@
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hull/upper_hull/u_a_p)
"iYr" = (
-/obj/structure/disposalpipe/segment{
- dir = 1;
- icon_state = "pipe-c"
+/obj/structure/machinery/light{
+ dir = 4
},
-/turf/open/floor/almayer,
-/area/almayer/lifeboat_pumps/south1)
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "green"
+ },
+/area/almayer/living/starboard_garden)
"iYt" = (
/obj/structure/disposalpipe/segment{
dir = 2;
@@ -43901,6 +44067,11 @@
dir = 8;
name = "ship-grade camera"
},
+/obj/structure/surface/table/almayer,
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_22";
+ pixel_y = 8
+ },
/turf/open/floor/almayer{
dir = 5;
icon_state = "red"
@@ -44147,11 +44318,21 @@
icon_state = "cargo"
},
/area/almayer/living/bridgebunks)
+"jhY" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W";
+ pixel_x = -1
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "silver"
+ },
+/area/almayer/hull/upper_hull/u_m_p)
"jip" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ access_modified = 1;
name = "\improper Main Kitchen";
- req_one_access_txt = "30;19";
- access_modified = 1
+ req_one_access_txt = "30;19"
},
/turf/open/floor/prison{
icon_state = "kitchen"
@@ -44442,6 +44623,19 @@
icon_state = "test_floor4"
},
/area/almayer/hallways/aft_hallway)
+"jnA" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/almayer/shipboard/brig/armory)
"jnD" = (
/turf/open/floor/almayer{
dir = 1;
@@ -44565,6 +44759,7 @@
icon_state = "NW-out";
pixel_y = 1
},
+/obj/structure/bed/chair/comfy,
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -44597,6 +44792,15 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/medical_science)
+"jsP" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/almayer/lifeboat_pumps/south1)
"jtj" = (
/obj/structure/machinery/status_display{
pixel_y = 30
@@ -44707,14 +44911,11 @@
},
/area/almayer/hull/upper_hull/u_a_p)
"jvJ" = (
-/obj/structure/machinery/light{
- dir = 4
- },
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer{
- dir = 4;
- icon_state = "red"
+ icon_state = "plate"
},
-/area/almayer/shipboard/starboard_missiles)
+/area/almayer/hull/upper_hull/u_f_s)
"jvX" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -45254,11 +45455,14 @@
},
/area/almayer/hull/lower_hull/l_a_s)
"jMm" = (
-/obj/effect/spawner/random/tool,
+/obj/structure/closet/secure_closet/personal/cabinet{
+ req_access = null
+ },
+/obj/item/clothing/mask/rebreather/scarf,
/turf/open/floor/almayer{
- icon_state = "mono"
+ icon_state = "plate"
},
-/area/almayer/lifeboat_pumps/south2)
+/area/almayer/living/pilotbunks)
"jMr" = (
/obj/structure/surface/table/almayer,
/obj/item/storage/donut_box{
@@ -45763,6 +45967,15 @@
icon_state = "plate"
},
/area/almayer/living/offices)
+"jWH" = (
+/obj/structure/machinery/power/apc/almayer/hardened{
+ cell_type = /obj/item/cell/hyper;
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/lifeboat_pumps/north1)
"jWU" = (
/obj/effect/step_trigger/clone_cleaner,
/obj/structure/blocker/forcefield/multitile_vehicles,
@@ -45911,8 +46124,7 @@
"jZY" = (
/obj/structure/closet/l3closet/virology,
/turf/open/floor/almayer{
- dir = 5;
- icon_state = "plating"
+ icon_state = "redfull"
},
/area/almayer/medical/upper_medical)
"kaj" = (
@@ -45920,9 +46132,11 @@
/obj/effect/decal/warning_stripes{
icon_state = "SW-out"
},
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
+ },
/turf/open/floor/almayer{
- dir = 9;
- icon_state = "green"
+ icon_state = "test_floor4"
},
/area/almayer/hallways/aft_hallway)
"kan" = (
@@ -46384,6 +46598,14 @@
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/south2)
+"kkE" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NE-out";
+ pixel_x = 2;
+ pixel_y = 3
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/port_hallway)
"kkO" = (
/obj/structure/stairs/perspective{
dir = 8;
@@ -46779,7 +47001,8 @@
/area/almayer/shipboard/brig/evidence_storage)
"ktn" = (
/obj/effect/decal/warning_stripes{
- icon_state = "N"
+ icon_state = "N";
+ pixel_y = 2
},
/obj/structure/closet/secure_closet/guncabinet/red,
/obj/item/weapon/gun/rifle/m4ra,
@@ -46823,6 +47046,12 @@
icon_state = "greencorner"
},
/area/almayer/living/grunt_rnr)
+"kuk" = (
+/obj/structure/pipes/vents/pump{
+ dir = 1
+ },
+/turf/open/floor/almayer,
+/area/almayer/lifeboat_pumps/south1)
"kuu" = (
/obj/structure/pipes/standard/manifold/hidden/supply,
/obj/structure/disposalpipe/segment{
@@ -46989,12 +47218,13 @@
/turf/open/floor/plating/plating_catwalk,
/area/almayer/lifeboat_pumps/south1)
"kyY" = (
-/obj/structure/largecrate/random/case/small,
-/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
- pixel_y = -25
+/obj/structure/machinery/light{
+ unacidable = 1;
+ unslashable = 1
},
/turf/open/floor/almayer{
- icon_state = "mono"
+ dir = 6;
+ icon_state = "red"
},
/area/almayer/lifeboat_pumps/north1)
"kyZ" = (
@@ -47121,6 +47351,13 @@
icon_state = "test_floor4"
},
/area/almayer/command/airoom)
+"kBK" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SE-out";
+ pixel_x = 2
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/starboard_hallway)
"kBP" = (
/obj/effect/decal/warning_stripes{
icon_state = "E";
@@ -47182,6 +47419,7 @@
/area/almayer/hull/lower_hull/l_f_p)
"kDb" = (
/obj/structure/surface/rack,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hull/upper_hull/u_f_s)
"kDi" = (
@@ -47224,15 +47462,6 @@
icon_state = "dark_sterile"
},
/area/almayer/medical/containment)
-"kDt" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/turf/open/floor/almayer{
- dir = 5;
- icon_state = "red"
- },
-/area/almayer/lifeboat_pumps/south1)
"kDA" = (
/obj/structure/pipes/vents/scrubber,
/turf/open/floor/almayer{
@@ -47266,11 +47495,15 @@
},
/area/almayer/medical/morgue)
"kFe" = (
-/obj/structure/machinery/constructable_frame,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/machinery/firealarm{
+ dir = 4;
+ pixel_x = 24
+ },
/turf/open/floor/almayer{
- icon_state = "mono"
+ icon_state = "plate"
},
-/area/almayer/lifeboat_pumps/south2)
+/area/almayer/living/pilotbunks)
"kFk" = (
/obj/structure/closet/secure_closet/commander,
/turf/open/floor/wood/ship,
@@ -47348,11 +47581,19 @@
icon_state = "emerald"
},
/area/almayer/squads/charlie)
+"kGI" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/aft_hallway)
"kGL" = (
/obj/effect/step_trigger/clone_cleaner,
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
+ },
/turf/open/floor/almayer{
- dir = 1;
- icon_state = "green"
+ icon_state = "test_floor4"
},
/area/almayer/hallways/aft_hallway)
"kGQ" = (
@@ -47488,6 +47729,14 @@
/obj/structure/bed/chair/comfy/orange,
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/main_office)
+"kJL" = (
+/obj/structure/machinery/constructable_frame{
+ icon_state = "box_2"
+ },
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/lifeboat_pumps/north1)
"kJV" = (
/obj/structure/machinery/light,
/turf/open/floor/almayer{
@@ -47710,6 +47959,10 @@
/turf/open/floor/plating,
/area/almayer/hull/lower_hull/l_f_p)
"kOv" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer{
icon_state = "cargo_arrow"
},
@@ -47719,7 +47972,13 @@
icon_state = "N";
pixel_y = 1
},
-/obj/structure/bed/chair/comfy,
+/obj/structure/surface/table/reinforced/almayer_B,
+/obj/item/clipboard{
+ pixel_x = -6
+ },
+/obj/item/tool/pen/blue{
+ pixel_x = -6
+ },
/turf/open/floor/almayer{
icon_state = "bluefull"
},
@@ -47985,12 +48244,14 @@
/turf/open/floor/almayer,
/area/almayer/hallways/hangar)
"kUh" = (
-/obj/structure/machinery/door/airlock/almayer/generic{
+/obj/structure/machinery/door/firedoor/border_only/almayer,
+/obj/structure/machinery/door/airlock/multi_tile/almayer/generic2{
+ access_modified = 1;
+ dir = 1;
name = "\improper Flight Crew Quarters";
- req_one_access_txt = "19;22";
- access_modified = 1
+ req_access_txt = null;
+ req_one_access_txt = "19;22"
},
-/obj/structure/machinery/door/firedoor/border_only/almayer,
/turf/open/floor/almayer{
icon_state = "test_floor4"
},
@@ -48024,6 +48285,13 @@
icon_state = "cargo"
},
/area/almayer/engineering/upper_engineering/port)
+"kUQ" = (
+/obj/effect/decal/cleanable/blood/oil/streak,
+/obj/structure/machinery/constructable_frame,
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/lifeboat_pumps/south1)
"kUV" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -48075,11 +48343,11 @@
},
/area/almayer/command/cichallway)
"kWT" = (
-/obj/structure/machinery/power/apc/almayer/hardened,
/turf/open/floor/almayer{
- icon_state = "mono"
+ dir = 9;
+ icon_state = "blue"
},
-/area/almayer/lifeboat_pumps/south1)
+/area/almayer/living/pilotbunks)
"kWY" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -49034,7 +49302,9 @@
},
/area/almayer/living/port_emb)
"lqZ" = (
-/obj/structure/machinery/floodlight/landing,
+/obj/structure/machinery/floodlight/landing{
+ name = "bolted floodlight"
+ },
/turf/open/floor/almayer{
icon_state = "mono"
},
@@ -49080,6 +49350,11 @@
icon_state = "plate"
},
/area/almayer/living/port_emb)
+"lrF" = (
+/obj/structure/machinery/light,
+/obj/structure/surface/table/almayer,
+/turf/open/floor/almayer,
+/area/almayer/lifeboat_pumps/south1)
"lrT" = (
/obj/structure/bed/chair,
/turf/open/floor/almayer,
@@ -49183,6 +49458,13 @@
icon_state = "emerald"
},
/area/almayer/squads/charlie)
+"ltK" = (
+/obj/structure/window/framed/almayer,
+/obj/structure/curtain/open/shower{
+ name = "hypersleep curtain"
+ },
+/turf/open/floor/plating,
+/area/almayer/hull/upper_hull/u_m_p)
"ltU" = (
/obj/structure/filingcabinet,
/turf/open/floor/almayer{
@@ -49314,13 +49596,11 @@
},
/area/almayer/command/cic)
"lvA" = (
-/obj/structure/machinery/power/apc/almayer/hardened{
- dir = 1
- },
/turf/open/floor/almayer{
- icon_state = "mono"
+ dir = 1;
+ icon_state = "blue"
},
-/area/almayer/lifeboat_pumps/north1)
+/area/almayer/living/pilotbunks)
"lvZ" = (
/obj/structure/window/framed/almayer,
/obj/structure/machinery/door/poddoor/almayer/locked{
@@ -49332,10 +49612,10 @@
/area/almayer/shipboard/brig/perma)
"lwi" = (
/obj/structure/machinery/door/airlock/almayer/maint{
+ access_modified = 1;
dir = 1;
req_one_access = null;
- req_one_access_txt = "2;7";
- access_modified = 1
+ req_one_access_txt = "2;7"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -49423,6 +49703,12 @@
icon_state = "plate"
},
/area/almayer/living/auxiliary_officer_office)
+"lxT" = (
+/obj/structure/machinery/constructable_frame,
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/lifeboat_pumps/south2)
"lxW" = (
/obj/structure/sign/prop2{
pixel_y = 29
@@ -49471,6 +49757,13 @@
icon_state = "plate"
},
/area/almayer/living/auxiliary_officer_office)
+"lza" = (
+/obj/structure/bed/sofa/vert/grey,
+/obj/structure/bed/sofa/vert/grey/top{
+ pixel_y = 11
+ },
+/turf/open/floor/almayer,
+/area/almayer/lifeboat_pumps/south1)
"lzj" = (
/obj/structure/sign/safety/storage{
pixel_x = 8;
@@ -49712,18 +50005,23 @@
},
/area/almayer/squads/req)
"lDN" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
},
-/obj/structure/sign/safety/coffee{
- pixel_y = 32
+/obj/effect/decal/warning_stripes{
+ icon_state = "SW-out";
+ pixel_x = -1
},
-/obj/structure/sign/safety/east{
- pixel_x = 15;
- pixel_y = 32
+/obj/effect/decal/warning_stripes{
+ icon_state = "NW-out";
+ pixel_x = -1;
+ pixel_y = 1
},
-/turf/open/floor/almayer,
-/area/almayer/hull/upper_hull/u_f_p)
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/medical/hydroponics)
"lDV" = (
/obj/effect/landmark/start/marine/medic/bravo,
/obj/effect/landmark/late_join/bravo,
@@ -50195,7 +50493,7 @@
},
/turf/open/floor/almayer{
dir = 4;
- icon_state = "redcorner"
+ icon_state = "red"
},
/area/almayer/shipboard/brig/main_office)
"lNw" = (
@@ -50239,6 +50537,10 @@
/obj/structure/machinery/light{
dir = 8
},
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
/turf/open/floor/almayer{
icon_state = "dark_sterile"
},
@@ -50635,16 +50937,15 @@
},
/area/almayer/shipboard/brig/general_equipment)
"maq" = (
-/obj/structure/machinery/cryopod/right{
- pixel_y = 6
- },
/obj/structure/sign/safety/cryo{
pixel_x = 7;
pixel_y = -26
},
-/turf/open/floor/almayer{
- icon_state = "cargo"
+/obj/structure/machinery/disposal,
+/obj/structure/disposalpipe/trunk{
+ dir = 1
},
+/turf/open/floor/almayer,
/area/almayer/command/corporateliason)
"maw" = (
/obj/structure/disposalpipe/segment,
@@ -50855,6 +51156,10 @@
icon_state = "silver"
},
/area/almayer/shipboard/brig/cic_hallway)
+"mgy" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/almayer,
+/area/almayer/shipboard/brig/cic_hallway)
"mgF" = (
/obj/structure/window/reinforced{
dir = 4;
@@ -51035,6 +51340,11 @@
pixel_x = -25;
req_access_txt = "200"
},
+/obj/effect/decal/warning_stripes{
+ icon_state = "NE-out";
+ pixel_x = 1;
+ pixel_y = 2
+ },
/turf/open/floor/almayer{
icon_state = "dark_sterile"
},
@@ -51211,14 +51521,11 @@
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/south1)
"mov" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/machinery/light/small,
-/turf/open/floor/almayer{
- icon_state = "plate"
+/obj/structure/bed/chair{
+ dir = 1
},
-/area/almayer/hull/upper_hull/u_m_p)
+/turf/open/floor/grass,
+/area/almayer/living/starboard_garden)
"moB" = (
/turf/closed/wall/almayer,
/area/almayer/shipboard/brig/cells)
@@ -51324,6 +51631,13 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hull/upper_hull/u_f_s)
+"mru" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SE-out";
+ pixel_x = 1
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/port_hallway)
"mrD" = (
/obj/structure/machinery/light{
dir = 1
@@ -51435,6 +51749,19 @@
icon_state = "red"
},
/area/almayer/command/lifeboat)
+"mtE" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/sign/safety/east{
+ pixel_x = 15;
+ pixel_y = 32
+ },
+/obj/structure/sign/safety/coffee{
+ pixel_y = 32
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hull/upper_hull/u_f_p)
"mtM" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer{
@@ -51465,6 +51792,13 @@
icon_state = "plate"
},
/area/almayer/living/gym)
+"muq" = (
+/obj/structure/bed/sofa/vert/grey/bot,
+/obj/structure/bed/sofa/vert/grey{
+ pixel_y = 11
+ },
+/turf/open/floor/almayer,
+/area/almayer/lifeboat_pumps/north1)
"mux" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/obj/structure/disposalpipe/segment,
@@ -51653,6 +51987,10 @@
/obj/structure/machinery/light,
/turf/open/floor/almayer,
/area/almayer/living/offices)
+"mzF" = (
+/obj/effect/decal/cleanable/blood/oil,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/lifeboat_pumps/south2)
"mzO" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 10
@@ -51730,6 +52068,18 @@
icon_state = "bluefull"
},
/area/almayer/squads/charlie_delta_shared)
+"mBe" = (
+/obj/structure/machinery/light{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/almayer/living/pilotbunks)
"mBk" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 9
@@ -51745,10 +52095,10 @@
dir = 4
},
/obj/structure/machinery/door/airlock/almayer/security/reinforced{
+ access_modified = 1;
name = "\improper Astronavigational Deck";
req_access = null;
- req_one_access_txt = "3;19";
- access_modified = 1
+ req_one_access_txt = "3;19"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -51764,6 +52114,7 @@
dir = 4;
name = "ship-grade camera"
},
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer,
/area/almayer/hull/upper_hull/u_f_p)
"mBJ" = (
@@ -51958,12 +52309,11 @@
/area/almayer/living/gym)
"mHD" = (
/obj/effect/decal/warning_stripes{
- icon_state = "W";
- pixel_x = -1
+ icon_state = "S"
},
/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
+ icon_state = "N";
+ pixel_y = 1
},
/turf/open/floor/almayer{
icon_state = "mono"
@@ -51976,8 +52326,11 @@
},
/area/almayer/command/airoom)
"mHO" = (
+/obj/effect/decal/cleanable/dirt,
/obj/structure/machinery/light,
-/turf/open/floor/almayer,
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
/area/almayer/living/pilotbunks)
"mHR" = (
/obj/structure/sign/safety/hvac_old{
@@ -52067,11 +52420,10 @@
/turf/open/floor/almayer/uscm/directional,
/area/almayer/command/cic)
"mJL" = (
-/obj/structure/disposalpipe/segment{
- dir = 2;
- icon_state = "pipe-c"
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "blue"
},
-/turf/closed/wall/almayer,
/area/almayer/living/pilotbunks)
"mJP" = (
/obj/structure/machinery/cm_vending/gear/tl{
@@ -52260,7 +52612,9 @@
},
/area/almayer/hallways/stern_hallway)
"mMu" = (
-/obj/structure/machinery/floodlight/landing,
+/obj/structure/machinery/floodlight/landing{
+ name = "bolted floodlight"
+ },
/turf/open/floor/almayer{
icon_state = "mono"
},
@@ -52336,11 +52690,17 @@
},
/area/almayer/hull/lower_hull/l_m_s)
"mOb" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
+/obj/structure/machinery/camera/autoname/almayer{
+ dir = 8;
+ name = "ship-grade camera"
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hull/upper_hull/u_m_p)
+/obj/structure/bed/chair{
+ dir = 8
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/living/starboard_garden)
"mOg" = (
/obj/structure/sign/safety/maint{
pixel_x = 32
@@ -52535,9 +52895,9 @@
name = "\improper Privacy Shutters"
},
/obj/structure/machinery/door/airlock/almayer/maint/reinforced{
+ access_modified = 1;
req_one_access = null;
- req_one_access_txt = "19;30";
- access_modified = 1
+ req_one_access_txt = "19;30"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -52586,6 +52946,12 @@
icon_state = "red"
},
/area/almayer/shipboard/navigation)
+"mTn" = (
+/obj/structure/closet/firecloset,
+/turf/open/floor/almayer{
+ icon_state = "cargo"
+ },
+/area/almayer/hallways/starboard_hallway)
"mTp" = (
/obj/structure/window/reinforced{
dir = 4;
@@ -52811,15 +53177,6 @@
icon_state = "blue"
},
/area/almayer/hallways/port_hallway)
-"mYx" = (
-/obj/structure/flora/pottedplant{
- icon_state = "pottedplant_22";
- pixel_y = 8
- },
-/turf/open/floor/almayer{
- icon_state = "mono"
- },
-/area/almayer/lifeboat_pumps/south1)
"mYY" = (
/obj/effect/decal/warning_stripes{
icon_state = "SW-out"
@@ -53035,9 +53392,9 @@
/area/almayer/shipboard/port_missiles)
"nec" = (
/obj/structure/machinery/door/airlock/almayer/maint{
+ access_modified = 1;
req_access_txt = "200";
- req_one_access = null;
- access_modified = 1
+ req_one_access = null
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -53245,11 +53602,11 @@
/area/almayer/lifeboat_pumps/south1)
"nim" = (
/obj/structure/machinery/door/airlock/almayer/engineering{
+ access_modified = 1;
dir = 2;
name = "\improper Chief Engineer's Office";
req_one_access = null;
- req_one_access_txt = "1;6";
- access_modified = 1
+ req_one_access_txt = "1;6"
},
/obj/structure/pipes/standard/simple/hidden/supply,
/obj/structure/machinery/door/poddoor/shutters/almayer/open{
@@ -53315,11 +53672,16 @@
icon_state = "red"
},
/area/almayer/squads/alpha)
+"njy" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/port_hallway)
"njD" = (
-/obj/structure/surface/table/almayer,
-/obj/item/clothing/suit/storage/hazardvest,
+/obj/structure/closet/emcloset,
/turf/open/floor/almayer{
- icon_state = "mono"
+ icon_state = "cargo"
},
/area/almayer/lifeboat_pumps/south1)
"njJ" = (
@@ -53374,6 +53736,8 @@
/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
pixel_y = 25
},
+/obj/structure/surface/table/almayer,
+/obj/structure/machinery/computer/emails,
/turf/open/floor/almayer{
dir = 1;
icon_state = "red"
@@ -53603,6 +53967,17 @@
icon_state = "plate"
},
/area/almayer/hull/upper_hull/u_a_p)
+"nqG" = (
+/obj/structure/machinery/light,
+/obj/effect/decal/warning_stripes{
+ icon_state = "SE-out";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "red"
+ },
+/area/almayer/lifeboat_pumps/south1)
"nqU" = (
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hull/lower_hull/l_f_p)
@@ -53793,11 +54168,9 @@
/obj/structure/bed/chair{
dir = 8
},
-/obj/structure/sign/safety/maint{
- pixel_x = 32
- },
/turf/open/floor/almayer{
- icon_state = "plate"
+ dir = 5;
+ icon_state = "green"
},
/area/almayer/living/starboard_garden)
"nun" = (
@@ -53834,15 +54207,11 @@
/turf/open/floor/plating/plating_catwalk,
/area/almayer/squads/alpha)
"nuY" = (
-/obj/structure/machinery/door/airlock/almayer/secure/reinforced{
- dir = 2;
- name = "\improper Evacuation Airlock PU-6";
- req_access = null
- },
+/obj/structure/closet,
/turf/open/floor/almayer{
- icon_state = "test_floor4"
+ icon_state = "plate"
},
-/area/almayer/powered)
+/area/almayer/hull/upper_hull/u_m_s)
"nvM" = (
/obj/structure/window/framed/almayer/white,
/obj/structure/machinery/door/firedoor/border_only/almayer{
@@ -53899,6 +54268,12 @@
/obj/item/tool/lighter/zippo/gold,
/turf/open/floor/carpet,
/area/almayer/living/commandbunks)
+"nwx" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/almayer{
+ icon_state = "red"
+ },
+/area/almayer/shipboard/port_missiles)
"nwz" = (
/obj/structure/disposalpipe/segment,
/obj/structure/pipes/standard/simple/hidden/supply,
@@ -53968,7 +54343,9 @@
id = "Warden Office Shutters";
name = "\improper Privacy Shutters"
},
-/turf/open/floor/plating,
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
/area/almayer/shipboard/brig/main_office)
"nxK" = (
/obj/structure/sign/safety/high_voltage{
@@ -54125,12 +54502,10 @@
},
/area/almayer/living/briefing)
"nBE" = (
-/obj/structure/disposalpipe/segment{
- dir = 2;
- icon_state = "pipe-c"
- },
/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer,
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
/area/almayer/living/pilotbunks)
"nBW" = (
/obj/structure/sign/safety/maint{
@@ -54668,9 +55043,11 @@
},
/area/almayer/shipboard/brig/cic_hallway)
"nNA" = (
-/obj/structure/largecrate/random,
+/obj/structure/machinery/cryopod{
+ pixel_y = 6
+ },
/turf/open/floor/almayer{
- icon_state = "plate"
+ icon_state = "cargo"
},
/area/almayer/hull/upper_hull/u_m_p)
"nNH" = (
@@ -54830,15 +55207,6 @@
icon_state = "plate"
},
/area/almayer/squads/req)
-"nPX" = (
-/obj/structure/sign/safety/rewire{
- pixel_x = 8;
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- icon_state = "mono"
- },
-/area/almayer/lifeboat_pumps/north2)
"nQv" = (
/obj/structure/machinery/power/apc/almayer{
dir = 4
@@ -54927,6 +55295,13 @@
},
/turf/open/floor/almayer,
/area/almayer/command/computerlab)
+"nTH" = (
+/obj/structure/sign/safety/storage{
+ pixel_x = 8;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer,
+/area/almayer/lifeboat_pumps/south1)
"nTZ" = (
/turf/open/floor/almayer{
dir = 5;
@@ -54960,6 +55335,14 @@
icon_state = "green"
},
/area/almayer/living/grunt_rnr)
+"nUn" = (
+/obj/structure/surface/table/almayer,
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_22";
+ pixel_y = 8
+ },
+/turf/open/floor/almayer,
+/area/almayer/lifeboat_pumps/south1)
"nUv" = (
/obj/structure/machinery/light{
dir = 1
@@ -55043,6 +55426,14 @@
icon_state = "test_floor4"
},
/area/almayer/engineering/upper_engineering/starboard)
+"nWc" = (
+/obj/structure/machinery/door/airlock/almayer/generic/glass{
+ name = "\improper Passenger Cryogenics Bay"
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hull/upper_hull/u_m_p)
"nWN" = (
/obj/structure/surface/table/almayer,
/turf/open/floor/wood/ship,
@@ -55063,6 +55454,15 @@
icon_state = "test_floor4"
},
/area/almayer/shipboard/brig/cells)
+"nXF" = (
+/obj/structure/bed/sofa/south/white/right{
+ pixel_y = 16
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "silver"
+ },
+/area/almayer/hull/upper_hull/u_m_p)
"nXP" = (
/turf/closed/wall/almayer/outer,
/area/almayer/hull/lower_hull/l_f_s)
@@ -55113,6 +55513,13 @@
icon_state = "plate"
},
/area/almayer/hull/upper_hull/u_a_s)
+"nYv" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SW-out";
+ pixel_x = -1
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/aft_hallway)
"nYD" = (
/obj/structure/closet/secure_closet/medical2,
/turf/open/floor/almayer{
@@ -55172,6 +55579,10 @@
},
/turf/open/floor/plating,
/area/almayer/hull/lower_hull/l_f_p)
+"oaK" = (
+/obj/structure/surface/table/almayer,
+/turf/open/floor/almayer,
+/area/almayer/lifeboat_pumps/south1)
"oaW" = (
/obj/structure/machinery/cryopod/right,
/turf/open/floor/almayer{
@@ -55334,6 +55745,16 @@
icon_state = "dark_sterile"
},
/area/almayer/engineering/laundry)
+"odM" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 8;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/shipboard/brig/cic_hallway)
"odN" = (
/obj/structure/window/framed/almayer,
/obj/structure/machinery/door/firedoor/border_only/almayer,
@@ -55454,11 +55875,8 @@
},
/area/almayer/shipboard/weapon_room)
"ohB" = (
-/obj/structure/flora/pottedplant{
- icon_state = "pottedplant_22";
- pixel_y = 8
- },
/obj/structure/machinery/light,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer{
icon_state = "mono"
},
@@ -55918,7 +56336,9 @@
name = "General Listening Channel";
pixel_y = 28
},
-/turf/open/floor/almayer,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
/area/almayer/living/pilotbunks)
"oqA" = (
/obj/structure/machinery/door/poddoor/shutters/almayer/uniform_vendors,
@@ -56274,10 +56694,10 @@
dir = 4
},
/obj/structure/machinery/door/airlock/almayer/maint{
+ access_modified = 1;
req_access = null;
req_one_access = null;
- req_one_access_txt = "19;29";
- access_modified = 1
+ req_one_access_txt = "19;29"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -56325,6 +56745,13 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hull/upper_hull/u_a_p)
+"oyy" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SW-out";
+ pixel_x = -1
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/port_hallway)
"oyE" = (
/obj/effect/landmark/start/intel,
/obj/structure/sign/poster{
@@ -56661,26 +57088,21 @@
},
/area/almayer/living/synthcloset)
"oGy" = (
-/obj/structure/disposalpipe/segment{
+/obj/structure/machinery/camera/autoname/almayer{
dir = 1;
- icon_state = "pipe-c"
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hull/upper_hull/u_m_p)
-"oGC" = (
-/obj/structure/flora/pottedplant{
- icon_state = "pottedplant_22";
- pixel_y = 8
+ name = "ship-grade camera"
},
-/obj/structure/machinery/light{
+/obj/structure/bed/chair{
dir = 1
},
/turf/open/floor/almayer{
- icon_state = "mono"
+ icon_state = "plate"
},
-/area/almayer/lifeboat_pumps/south1)
+/area/almayer/living/starboard_garden)
+"oGC" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/almayer,
+/area/almayer/lifeboat_pumps/north1)
"oGP" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -56743,6 +57165,7 @@
"oIm" = (
/obj/structure/prop/server_equipment/broken,
/turf/open/floor/almayer{
+ dir = 1;
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering/starboard)
@@ -57099,6 +57522,7 @@
/area/almayer/hull/lower_hull/l_f_s)
"oQo" = (
/obj/item/stool,
+/obj/effect/landmark/yautja_teleport,
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -57342,9 +57766,11 @@
},
/area/almayer/shipboard/brig/cic_hallway)
"oWz" = (
-/obj/item/stool,
-/turf/open/floor/almayer,
-/area/almayer/lifeboat_pumps/south1)
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/living/starboard_garden)
"oWI" = (
/obj/structure/machinery/cryopod/right{
pixel_y = 6
@@ -57358,10 +57784,10 @@
/area/almayer/shipboard/brig/cryo)
"oWX" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{
+ access_modified = 1;
dir = 1;
name = "\improper Kitchen Hydroponics";
- req_one_access_txt = "30;19";
- access_modified = 1
+ req_one_access_txt = "30;19"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -57372,6 +57798,14 @@
/obj/effect/landmark/late_join/charlie,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/squads/charlie)
+"oXd" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SW-out"
+ },
+/turf/open/floor/almayer{
+ icon_state = "blue"
+ },
+/area/almayer/hallways/aft_hallway)
"oXp" = (
/obj/effect/decal/cleanable/ash,
/turf/open/floor/wood/ship,
@@ -57729,15 +58163,6 @@
icon_state = "test_floor4"
},
/area/almayer/command/airoom)
-"pgo" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "red"
- },
-/area/almayer/lifeboat_pumps/south1)
"pgD" = (
/turf/closed/wall/almayer,
/area/almayer/lifeboat_pumps/south1)
@@ -57900,11 +58325,11 @@
dir = 4
},
/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{
+ access_modified = 1;
dir = 2;
name = "Brig";
req_access = null;
- req_one_access_txt = "1;3";
- access_modified = 1
+ req_one_access_txt = "1;3"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -57919,15 +58344,6 @@
icon_state = "plate"
},
/area/almayer/hull/upper_hull/u_a_p)
-"pmn" = (
-/obj/structure/sign/safety/storage{
- pixel_x = 8;
- pixel_y = 32
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hull/upper_hull/u_m_s)
"pmq" = (
/obj/effect/decal/warning_stripes{
icon_state = "E";
@@ -58018,19 +58434,17 @@
/turf/open/floor/almayer,
/area/almayer/living/auxiliary_officer_office)
"pqc" = (
-/obj/structure/machinery/firealarm{
- dir = 4;
- pixel_x = 24
+/turf/open/floor/almayer{
+ icon_state = "mono"
},
-/turf/open/floor/almayer,
/area/almayer/living/pilotbunks)
"pqi" = (
/obj/item/stack/cable_coil,
/obj/item/stack/cable_coil,
/obj/item/stack/cable_coil,
/obj/item/stack/cable_coil,
-/obj/item/tool/weldingtool/largetank,
-/obj/item/tool/weldingtool/largetank,
+/obj/item/tool/weldingtool,
+/obj/item/tool/weldingtool,
/obj/item/clothing/head/welding,
/obj/item/clothing/head/welding,
/obj/item/device/reagent_scanner,
@@ -58308,13 +58722,6 @@
icon_state = "redcorner"
},
/area/almayer/shipboard/brig/processing)
-"pwG" = (
-/obj/structure/machinery/light,
-/turf/open/floor/almayer{
- dir = 6;
- icon_state = "red"
- },
-/area/almayer/lifeboat_pumps/south1)
"pwK" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -58467,14 +58874,6 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hull/lower_hull/l_m_p)
-"pzy" = (
-/obj/structure/sign/safety/maint{
- pixel_x = 32
- },
-/turf/open/floor/almayer{
- icon_state = "mono"
- },
-/area/almayer/lifeboat_pumps/north1)
"pzG" = (
/obj/docking_port/stationary/emergency_response/port1,
/turf/open/floor/almayer{
@@ -58576,14 +58975,14 @@
},
/area/almayer/engineering/upper_engineering/starboard)
"pDm" = (
-/obj/structure/disposalpipe/segment{
- dir = 2;
- icon_state = "pipe-c"
- },
+/obj/structure/surface/rack,
+/obj/item/roller,
+/obj/item/roller,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer{
icon_state = "plate"
},
-/area/almayer/hull/upper_hull/u_m_p)
+/area/almayer/hull/upper_hull/u_m_s)
"pDo" = (
/obj/effect/decal/warning_stripes{
icon_state = "S"
@@ -58679,17 +59078,11 @@
},
/area/almayer/medical/containment/cell)
"pEY" = (
-/obj/structure/flora/pottedplant{
- icon_state = "pottedplant_22";
- pixel_y = 8
- },
-/obj/structure/flora/pottedplant{
- icon_state = "pottedplant_22";
- pixel_x = -16;
- pixel_y = 8
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
},
/turf/open/floor/almayer{
- icon_state = "mono"
+ icon_state = "test_floor4"
},
/area/almayer/lifeboat_pumps/south1)
"pFa" = (
@@ -58940,11 +59333,11 @@
"pJW" = (
/obj/structure/disposalpipe/segment,
/obj/structure/machinery/door/airlock/almayer/maint{
+ access_modified = 1;
dir = 1;
req_access = null;
req_one_access = null;
- req_one_access_txt = "3;22;19";
- access_modified = 1
+ req_one_access_txt = "3;22;19"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -58963,9 +59356,9 @@
},
/area/almayer/medical/lower_medical_medbay)
"pLv" = (
-/obj/structure/device/broken_moog,
/obj/effect/decal/cleanable/blood/splatter,
/turf/open/floor/almayer{
+ dir = 1;
icon_state = "orange"
},
/area/almayer/engineering/upper_engineering/starboard)
@@ -58984,15 +59377,11 @@
},
/area/almayer/medical/containment/cell)
"pLW" = (
-/obj/structure/machinery/firealarm{
- dir = 4;
- pixel_x = 24
- },
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer{
- dir = 5;
- icon_state = "red"
+ icon_state = "cargo"
},
-/area/almayer/shipboard/port_missiles)
+/area/almayer/living/pilotbunks)
"pLZ" = (
/obj/effect/landmark/crap_item,
/turf/open/floor/almayer,
@@ -59105,8 +59494,13 @@
/area/almayer/hull/lower_hull/l_m_s)
"pOD" = (
/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/almayer,
+/obj/structure/disposalpipe/segment{
+ dir = 2;
+ icon_state = "pipe-c"
+ },
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
/area/almayer/living/pilotbunks)
"pON" = (
/turf/open/floor/almayer/uscm/directional{
@@ -59153,6 +59547,12 @@
icon_state = "plate"
},
/area/almayer/hull/upper_hull/u_a_s)
+"pPF" = (
+/obj/structure/machinery/power/apc/almayer/hardened,
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/lifeboat_pumps/south2)
"pPM" = (
/obj/structure/surface/rack,
/turf/open/floor/almayer{
@@ -59161,6 +59561,7 @@
},
/area/almayer/command/securestorage)
"pPN" = (
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer{
dir = 4;
icon_state = "red"
@@ -59223,9 +59624,8 @@
},
/area/almayer/medical/medical_science)
"pQV" = (
-/obj/structure/machinery/vending/cola,
/turf/open/floor/almayer{
- icon_state = "plate"
+ icon_state = "blue"
},
/area/almayer/living/pilotbunks)
"pQY" = (
@@ -59331,6 +59731,12 @@
icon_state = "mono"
},
/area/almayer/command/computerlab)
+"pUe" = (
+/obj/structure/machinery/power/apc/almayer/hardened,
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/lifeboat_pumps/south1)
"pUf" = (
/obj/structure/bed/chair{
dir = 4
@@ -59533,7 +59939,9 @@
/area/almayer/shipboard/brig/main_office)
"pWN" = (
/obj/structure/pipes/standard/simple/hidden/supply,
-/turf/open/floor/almayer,
+/turf/open/floor/almayer{
+ icon_state = "blue"
+ },
/area/almayer/living/pilotbunks)
"pXj" = (
/obj/structure/closet/radiation,
@@ -59774,13 +60182,11 @@
},
/area/almayer/living/briefing)
"qbO" = (
-/obj/structure/machinery/power/apc/almayer/hardened{
- dir = 1
- },
/turf/open/floor/almayer{
- icon_state = "mono"
+ dir = 6;
+ icon_state = "blue"
},
-/area/almayer/lifeboat_pumps/north2)
+/area/almayer/living/pilotbunks)
"qbZ" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/glass{
dir = 1;
@@ -59809,6 +60215,21 @@
},
/turf/open/floor/almayer,
/area/almayer/hallways/starboard_hallway)
+"qcq" = (
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/obj/structure/sign/safety/waterhazard{
+ pixel_y = 32
+ },
+/obj/structure/sign/safety/rewire{
+ pixel_x = 14;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/lifeboat_pumps/north1)
"qcy" = (
/obj/structure/sign/safety/bathunisex{
pixel_x = 8;
@@ -59919,10 +60340,8 @@
/obj/structure/machinery/computer/emails{
dir = 1
},
-/turf/open/floor/almayer{
- dir = 1;
- icon_state = "redcorner"
- },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/almayer,
/area/almayer/shipboard/port_missiles)
"qfh" = (
/obj/structure/bed/chair{
@@ -59971,14 +60390,13 @@
},
/area/almayer/shipboard/brig/main_office)
"qga" = (
-/obj/structure/machinery/space_heater,
-/obj/structure/sign/safety/maint{
- pixel_x = 32
+/obj/structure/machinery/door/airlock/almayer/maint/reinforced{
+ dir = 1
},
/turf/open/floor/almayer{
- icon_state = "mono"
+ icon_state = "test_floor4"
},
-/area/almayer/lifeboat_pumps/south1)
+/area/almayer/living/starboard_garden)
"qgG" = (
/obj/structure/pipes/standard/manifold/hidden/supply{
dir = 8
@@ -60003,8 +60421,8 @@
"qgK" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/obj/structure/machinery/door/airlock/almayer/generic/press{
- name = "\improper Combat Correspondent Room";
- dir = 1
+ dir = 1;
+ name = "\improper Combat Correspondent Room"
},
/turf/open/floor/almayer,
/area/almayer/command/combat_correspondent)
@@ -60166,6 +60584,7 @@
/obj/structure/sign/safety/maint{
pixel_x = -17
},
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer,
/area/almayer/hull/upper_hull/u_f_s)
"qld" = (
@@ -60302,6 +60721,12 @@
icon_state = "plate"
},
/area/almayer/shipboard/brig/perma)
+"qnd" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SW-out"
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/hangar)
"qnh" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -60718,6 +61143,16 @@
},
/turf/closed/wall/almayer/research/containment/wall/purple,
/area/almayer/medical/containment/cell)
+"qxz" = (
+/obj/structure/machinery/door/airlock/almayer/secure/reinforced{
+ dir = 2;
+ name = "\improper Evacuation Airlock PU-5";
+ req_access = null
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/powered)
"qxA" = (
/obj/structure/closet/firecloset,
/turf/open/floor/almayer{
@@ -60806,10 +61241,6 @@
/obj/structure/surface/table/almayer,
/obj/item/storage/photo_album,
/obj/item/device/camera_film,
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
/turf/open/floor/almayer,
/area/almayer/command/corporateliason)
"qyD" = (
@@ -61089,13 +61520,14 @@
},
/area/almayer/squads/delta)
"qFQ" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/prop/invuln/overhead_pipe{
- dir = 4;
- pixel_y = 13
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
},
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hull/upper_hull/u_m_p)
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "red"
+ },
+/area/almayer/hallways/aft_hallway)
"qFW" = (
/obj/structure/sign/safety/storage{
pixel_x = 8;
@@ -61150,20 +61582,15 @@
},
/area/almayer/hallways/starboard_hallway)
"qHq" = (
-/obj/structure/surface/table/reinforced/almayer_B,
-/obj/item/ashtray/bronze,
-/obj/item/clothing/mask/cigarette/weed{
- desc = "What in the god damn?";
- name = "marijuana cigarette"
- },
-/obj/item/trash/cigbutt{
- pixel_x = -10;
- pixel_y = 13
+/obj/structure/machinery/door/airlock/almayer/secure/reinforced{
+ dir = 2;
+ name = "\improper Evacuation Airlock SU-6";
+ req_access = null
},
/turf/open/floor/almayer{
- icon_state = "mono"
+ icon_state = "test_floor4"
},
-/area/almayer/lifeboat_pumps/south1)
+/area/almayer/powered)
"qHF" = (
/obj/structure/surface/table/almayer,
/obj/item/storage/box/bodybags{
@@ -61365,11 +61792,13 @@
},
/area/almayer/medical/containment)
"qLj" = (
-/obj/structure/pipes/vents/pump{
- dir = 1
+/obj/effect/decal/warning_stripes{
+ icon_state = "SE-out"
},
-/turf/open/floor/almayer,
-/area/almayer/lifeboat_pumps/south1)
+/turf/open/floor/almayer{
+ icon_state = "blue"
+ },
+/area/almayer/hallways/aft_hallway)
"qLo" = (
/obj/structure/machinery/light,
/turf/open/floor/plating/plating_catwalk,
@@ -61709,6 +62138,16 @@
},
/turf/open/floor/plating,
/area/almayer/living/port_emb)
+"qSX" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SW-out";
+ pixel_x = -1
+ },
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "red"
+ },
+/area/almayer/lifeboat_pumps/south1)
"qTY" = (
/obj/structure/machinery/gibber,
/turf/open/floor/plating/plating_catwalk,
@@ -61761,7 +62200,6 @@
},
/area/almayer/squads/charlie_delta_shared)
"qUH" = (
-/obj/item/storage/bag/plasticbag,
/obj/structure/surface/rack,
/turf/open/floor/almayer{
icon_state = "plate"
@@ -61835,6 +62273,12 @@
icon_state = "plate"
},
/area/almayer/squads/delta)
+"qWI" = (
+/obj/structure/machinery/status_display{
+ pixel_y = -30
+ },
+/turf/open/floor/almayer,
+/area/almayer/lifeboat_pumps/north1)
"qWR" = (
/turf/closed/wall/almayer/research/containment/wall/corner{
dir = 4
@@ -62385,6 +62829,9 @@
/area/almayer/hull/upper_hull/u_m_p)
"riP" = (
/obj/structure/machinery/light,
+/obj/structure/sign/safety/rewire{
+ pixel_y = -32
+ },
/turf/open/floor/almayer{
icon_state = "mono"
},
@@ -62961,10 +63408,6 @@
},
/area/almayer/hallways/hangar)
"ruz" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "N";
- pixel_y = 1
- },
/obj/structure/reagent_dispensers/watertank,
/turf/open/floor/almayer{
icon_state = "cargo"
@@ -63060,14 +63503,11 @@
},
/area/almayer/medical/lower_medical_medbay)
"ryG" = (
-/obj/structure/largecrate/random/case,
-/obj/structure/machinery/light{
- dir = 1
- },
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer{
icon_state = "mono"
},
-/area/almayer/lifeboat_pumps/south1)
+/area/almayer/lifeboat_pumps/north1)
"ryR" = (
/obj/structure/machinery/cm_vending/sorted/uniform_supply/squad_prep{
req_access = list(1)
@@ -63092,10 +63532,10 @@
icon_state = "NW-out"
},
/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{
+ access_modified = 1;
name = "\improper Brig";
req_access = null;
- req_one_access_txt = "1;3";
- access_modified = 1
+ req_one_access_txt = "1;3"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -63105,6 +63545,8 @@
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 1
},
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/cic_hallway)
"rzN" = (
@@ -63206,7 +63648,7 @@
"rBx" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/item/tool/stamp/ro{
- name = "spare quartermaster's rubber stamp";
+ name = "spare requisitions officer's rubber stamp";
pixel_x = -7;
pixel_y = 11
},
@@ -63215,7 +63657,9 @@
},
/area/almayer/command/cichallway)
"rBH" = (
-/obj/structure/machinery/constructable_frame,
+/obj/structure/machinery/constructable_frame{
+ icon_state = "box_2"
+ },
/turf/open/floor/almayer{
icon_state = "mono"
},
@@ -63727,13 +64171,14 @@
},
/area/almayer/powered/agent)
"rKs" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
+/obj/structure/machinery/door/airlock/almayer/maint{
+ req_one_access = null;
+ req_one_access_txt = "2;30;34"
},
/turf/open/floor/almayer{
- icon_state = "mono"
+ icon_state = "test_floor4"
},
-/area/almayer/lifeboat_pumps/south1)
+/area/almayer/hull/upper_hull/u_m_s)
"rKy" = (
/obj/structure/machinery/firealarm{
dir = 1;
@@ -63839,6 +64284,7 @@
/obj/structure/surface/table/reinforced/almayer_B,
/obj/item/clipboard,
/obj/item/device/binoculars,
+/obj/item/storage/bible,
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -63939,7 +64385,13 @@
/area/almayer/squads/charlie)
"rQW" = (
/obj/item/tool/screwdriver,
-/turf/open/floor/almayer,
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "red"
+ },
/area/almayer/lifeboat_pumps/south1)
"rQY" = (
/obj/structure/bed,
@@ -63955,6 +64407,13 @@
"rRq" = (
/turf/closed/wall/almayer,
/area/almayer/lifeboat_pumps/south2)
+"rRz" = (
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "red"
+ },
+/area/almayer/lifeboat_pumps/south1)
"rRQ" = (
/obj/structure/disposalpipe/segment,
/obj/structure/pipes/standard/simple/hidden/supply,
@@ -64067,11 +64526,11 @@
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hull/upper_hull/u_f_s)
"rTY" = (
-/obj/structure/transmitter{
+/obj/structure/transmitter/no_dnd{
name = "Requisition Telephone";
phone_category = "Almayer";
phone_id = "Requisition";
- pixel_y = 30
+ pixel_y = 30;
},
/turf/open/floor/almayer{
dir = 5;
@@ -64292,6 +64751,16 @@
icon_state = "red"
},
/area/almayer/shipboard/brig/general_equipment)
+"sah" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 1
+ },
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "red"
+ },
+/area/almayer/hallways/aft_hallway)
"saB" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -64632,11 +65101,8 @@
},
/area/almayer/lifeboat_pumps/south2)
"sht" = (
-/obj/structure/machinery/power/apc/almayer/hardened,
-/turf/open/floor/almayer{
- icon_state = "mono"
- },
-/area/almayer/lifeboat_pumps/south2)
+/turf/open/floor/almayer,
+/area/almayer/living/pilotbunks)
"shw" = (
/obj/structure/largecrate/random/barrel/green,
/turf/open/floor/plating/plating_catwalk,
@@ -64884,6 +65350,12 @@
allow_construction = 0
},
/area/almayer/hallways/port_hallway)
+"sou" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/starboard_hallway)
"sow" = (
/obj/structure/machinery/light/small{
dir = 8
@@ -65315,6 +65787,13 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hull/upper_hull/u_f_p)
+"syP" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/port_hallway)
"szm" = (
/obj/structure/machinery/power/fusion_engine{
name = "\improper S-52 fusion reactor 10"
@@ -65358,11 +65837,20 @@
},
/area/almayer/squads/charlie)
"szO" = (
-/obj/structure/machinery/cm_vending/sorted/cargo_guns/pilot_officer,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer{
icon_state = "plate"
},
/area/almayer/living/pilotbunks)
+"szU" = (
+/obj/structure/toilet{
+ dir = 8
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/living/numbertwobunks)
"sAc" = (
/obj/structure/bed/chair{
dir = 8;
@@ -65410,12 +65898,12 @@
},
/obj/structure/disposalpipe/segment,
/obj/structure/machinery/door/airlock/almayer/command/reinforced{
+ access_modified = 1;
dir = 1;
id_tag = "CO-Office";
name = "\improper Commanding Officer's Office";
req_access = null;
- req_access_txt = "31";
- access_modified = 1
+ req_access_txt = "31"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -65471,7 +65959,10 @@
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 10
},
-/turf/open/floor/almayer,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "blue"
+ },
/area/almayer/living/pilotbunks)
"sCQ" = (
/obj/structure/machinery/light,
@@ -65500,10 +65991,17 @@
pixel_y = 26
},
/turf/open/floor/almayer{
- dir = 4;
- icon_state = "silvercorner"
+ dir = 1;
+ icon_state = "silver"
},
/area/almayer/hallways/aft_hallway)
+"sDD" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "red"
+ },
+/area/almayer/shipboard/port_missiles)
"sDM" = (
/turf/open/floor/almayer{
dir = 9;
@@ -65724,22 +66222,19 @@
/turf/open/floor/engine,
/area/almayer/engineering/airmix)
"sHp" = (
-/obj/effect/step_trigger/clone_cleaner,
-/obj/structure/disposalpipe/segment,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/largecrate/random/case/small,
+/obj/structure/sign/safety/maint{
+ pixel_x = 32
+ },
/turf/open/floor/almayer,
-/area/almayer/hallways/aft_hallway)
+/area/almayer/lifeboat_pumps/north1)
"sHM" = (
-/obj/structure/machinery/light{
- dir = 8
- },
-/obj/structure/bed/chair{
- dir = 1
- },
+/obj/structure/machinery/door/firedoor/border_only/almayer,
/turf/open/floor/almayer{
- dir = 8;
- icon_state = "red"
+ icon_state = "test_floor4"
},
-/area/almayer/shipboard/starboard_missiles)
+/area/almayer/living/pilotbunks)
"sHY" = (
/obj/structure/sign/poster{
pixel_y = -32
@@ -66177,6 +66672,12 @@
},
/turf/open/floor/almayer,
/area/almayer/living/briefing)
+"sTB" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hull/upper_hull/u_m_s)
"sTV" = (
/obj/structure/machinery/power/apc/almayer/hardened{
cell_type = /obj/item/cell/hyper;
@@ -66381,15 +66882,6 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_medbay)
-"sYn" = (
-/obj/structure/sign/safety/rewire{
- pixel_x = 8;
- pixel_y = -32
- },
-/turf/open/floor/almayer{
- icon_state = "mono"
- },
-/area/almayer/lifeboat_pumps/south2)
"sYw" = (
/obj/structure/platform{
dir = 8
@@ -66407,7 +66899,8 @@
"sYB" = (
/obj/structure/closet/secure_closet/guncabinet/red,
/obj/effect/decal/warning_stripes{
- icon_state = "N"
+ icon_state = "N";
+ pixel_y = 2
},
/obj/item/ammo_magazine/smg/m39,
/obj/item/ammo_magazine/smg/m39,
@@ -66711,9 +67204,14 @@
/turf/open/floor/almayer,
/area/almayer/living/cryo_cells)
"teB" = (
-/obj/structure/largecrate/random/case/small,
-/turf/open/floor/almayer,
-/area/almayer/lifeboat_pumps/north1)
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hull/upper_hull/u_m_s)
"teY" = (
/obj/structure/machinery/light{
dir = 1
@@ -66774,6 +67272,11 @@
pixel_y = 5
},
/obj/structure/surface/table/almayer,
+/obj/effect/decal/warning_stripes{
+ icon_state = "W";
+ pixel_x = -1;
+ pixel_y = 1
+ },
/turf/open/floor/almayer{
dir = 5;
icon_state = "plating"
@@ -66938,9 +67441,9 @@
"tiR" = (
/obj/structure/machinery/door/firedoor/border_only/almayer,
/obj/structure/machinery/door/airlock/almayer/maint/reinforced{
+ access_modified = 1;
req_one_access = null;
- req_one_access_txt = "7;19";
- access_modified = 1
+ req_one_access_txt = "7;19"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -67009,13 +67512,12 @@
},
/area/almayer/shipboard/brig/processing)
"tld" = (
-/obj/structure/machinery/shower{
- dir = 8
+/obj/structure/machinery/prop/almayer/computer{
+ dir = 8;
+ pixel_x = 16
},
-/obj/structure/machinery/door/window/westright,
-/obj/item/tool/soap,
/turf/open/floor/almayer{
- icon_state = "plate"
+ icon_state = "cargo"
},
/area/almayer/living/pilotbunks)
"tly" = (
@@ -67084,6 +67586,17 @@
},
/turf/open/floor/almayer,
/area/almayer/living/briefing)
+"tmI" = (
+/obj/structure/machinery/light,
+/obj/effect/decal/warning_stripes{
+ icon_state = "SW-out";
+ pixel_x = -1
+ },
+/turf/open/floor/almayer{
+ dir = 6;
+ icon_state = "red"
+ },
+/area/almayer/lifeboat_pumps/south1)
"tmK" = (
/obj/structure/machinery/door/airlock/almayer/maint{
dir = 1;
@@ -67391,7 +67904,7 @@
pixel_x = 32
},
/turf/open/floor/almayer{
- icon_state = "red"
+ icon_state = "test_floor4"
},
/area/almayer/lifeboat_pumps/north1)
"tsy" = (
@@ -67707,6 +68220,9 @@
/area/almayer/medical/containment/cell)
"tyK" = (
/obj/effect/spawner/random/toolbox,
+/obj/structure/machinery/light{
+ dir = 4
+ },
/turf/open/floor/almayer{
dir = 1;
icon_state = "cargo_arrow"
@@ -67735,6 +68251,10 @@
icon_state = "plate"
},
/area/almayer/hull/upper_hull/u_a_p)
+"tzj" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hull/upper_hull/u_f_p)
"tzx" = (
/obj/structure/machinery/cm_vending/sorted/medical/blood,
/obj/structure/machinery/light{
@@ -67754,20 +68274,13 @@
},
/area/almayer/engineering/engineering_workshop)
"tzL" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "W";
- pixel_x = -1
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "E";
- pixel_x = 1
- },
/obj/structure/sign/safety/waterhazard{
pixel_x = 8;
pixel_y = -32
},
+/obj/structure/machinery/portable_atmospherics/hydroponics,
/turf/open/floor/almayer{
- icon_state = "mono"
+ icon_state = "test_floor5"
},
/area/almayer/medical/hydroponics)
"tzP" = (
@@ -67794,8 +68307,8 @@
"tAq" = (
/obj/structure/surface/table/reinforced/black,
/obj/item/clothing/mask/breath{
- pixel_y = -5;
- pixel_x = -3
+ pixel_x = -3;
+ pixel_y = -5
},
/obj/item/clothing/head/helmet/space/compression/uscm,
/obj/item/cell/crap{
@@ -67842,8 +68355,11 @@
},
/area/almayer/medical/lower_medical_medbay)
"tAV" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hull/upper_hull/u_m_s)
+"tBq" = (
+/obj/item/tool/crowbar,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/lifeboat_pumps/south1)
"tBz" = (
@@ -67900,9 +68416,13 @@
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hull/upper_hull/u_f_s)
"tDA" = (
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/hull/upper_hull/u_m_p)
+/obj/item/tool/weldpack{
+ pixel_y = 15
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hull/upper_hull/u_m_s)
"tDZ" = (
/obj/structure/machinery/cryopod{
pixel_y = 6
@@ -67981,13 +68501,12 @@
/area/almayer/squads/req)
"tFW" = (
/obj/structure/pipes/standard/simple/hidden/supply,
-/obj/structure/disposalpipe/segment{
- dir = 2;
- icon_state = "pipe-c"
+/obj/structure/machinery/door/firedoor/border_only/almayer{
+ dir = 2
},
+/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer{
- dir = 1;
- icon_state = "red"
+ icon_state = "test_floor4"
},
/area/almayer/lifeboat_pumps/south1)
"tGd" = (
@@ -68203,10 +68722,10 @@
dir = 1
},
/obj/structure/machinery/door/airlock/almayer/generic{
+ access_modified = 1;
dir = 1;
name = "Storage";
- req_one_access = "2;21";
- access_modified = 1
+ req_one_access_txt = "19;21"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -68446,10 +68965,10 @@
/area/almayer/living/grunt_rnr)
"tPj" = (
/obj/structure/machinery/door/airlock/almayer/marine/requisitions{
+ access_modified = 1;
name = "\improper Requisition's Office";
- req_one_access_txt = "1;26";
req_one_access = null;
- access_modified = 1
+ req_one_access_txt = "1;26"
},
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -68476,10 +68995,10 @@
/turf/open/floor/almayer,
/area/almayer/living/briefing)
"tQE" = (
-/obj/structure/machinery/power/apc/almayer{
- dir = 1
+/obj/item/clothing/head/welding,
+/turf/open/floor/almayer{
+ icon_state = "plate"
},
-/turf/open/floor/plating/plating_catwalk,
/area/almayer/hull/upper_hull/u_m_s)
"tQL" = (
/obj/structure/pipes/standard/simple/hidden/supply,
@@ -68706,10 +69225,10 @@
name = "\improper CMO Office Shutters"
},
/obj/structure/machinery/door/airlock/almayer/medical/glass{
+ access_modified = 1;
name = "\improper CMO's Office";
req_one_access = null;
- req_one_access_txt = "1;5";
- access_modified = 1
+ req_one_access_txt = "1;5"
},
/obj/structure/machinery/door/firedoor/border_only/almayer,
/turf/open/floor/almayer{
@@ -68754,9 +69273,9 @@
"tXG" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/structure/machinery/door/window/eastright{
+ access_modified = 1;
dir = 8;
- req_access_txt = "19";
- access_modified = 1
+ req_access_txt = "19"
},
/obj/effect/landmark/map_item,
/obj/structure/machinery/door/window/eastleft{
@@ -68934,10 +69453,11 @@
/turf/open/floor/plating,
/area/almayer/hull/lower_hull/l_m_p)
"uac" = (
-/obj/structure/largecrate/random/case,
/obj/structure/machinery/light{
dir = 1
},
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/surface/table/almayer,
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/north1)
"uah" = (
@@ -68993,11 +69513,11 @@
/turf/open/floor/almayer,
/area/almayer/command/computerlab)
"uaZ" = (
-/obj/structure/sign/safety/storage{
- pixel_x = 8;
- pixel_y = -32
+/obj/structure/surface/table/almayer,
+/obj/item/weapon/gun/rifle/m41a,
+/turf/open/floor/almayer{
+ icon_state = "plate"
},
-/turf/open/floor/plating/plating_catwalk,
/area/almayer/hull/upper_hull/u_m_s)
"ubd" = (
/obj/structure/surface/rack,
@@ -69376,10 +69896,10 @@
/area/almayer/squads/charlie_delta_shared)
"ukW" = (
/obj/structure/machinery/door/airlock/almayer/security{
+ access_modified = 1;
name = "\improper Security Checkpoint";
req_access = null;
- req_one_access_txt = "3;19";
- access_modified = 1
+ req_one_access_txt = "3;19"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -69397,12 +69917,8 @@
},
/area/almayer/shipboard/brig/evidence_storage)
"uli" = (
-/obj/structure/surface/rack,
-/obj/effect/spawner/random/facepaint,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/hull/upper_hull/u_m_s)
+/turf/open/floor/grass,
+/area/almayer/living/starboard_garden)
"uly" = (
/obj/structure/bed/stool,
/turf/open/floor/almayer{
@@ -69447,16 +69963,24 @@
icon_state = "mono"
},
/area/almayer/medical/upper_medical)
+"umR" = (
+/obj/structure/machinery/power/apc/almayer/hardened{
+ cell_type = /obj/item/cell/hyper;
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/lifeboat_pumps/north2)
"umS" = (
-/obj/structure/machinery/firealarm{
- dir = 4;
- pixel_x = 24
+/obj/structure/bed/chair/comfy{
+ dir = 8
},
/turf/open/floor/almayer{
dir = 4;
- icon_state = "red"
+ icon_state = "blue"
},
-/area/almayer/shipboard/starboard_missiles)
+/area/almayer/living/pilotbunks)
"umT" = (
/obj/structure/machinery/door/airlock/almayer/security/glass{
name = "Brig"
@@ -69540,13 +70064,12 @@
},
/area/almayer/command/computerlab)
"uoS" = (
-/obj/structure/sign/safety/maint{
- pixel_x = -17
- },
-/turf/open/floor/almayer{
- icon_state = "plate"
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/machinery/light/small{
+ dir = 4
},
-/area/almayer/living/starboard_garden)
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hull/upper_hull/u_m_s)
"uoY" = (
/obj/structure/surface/table/almayer,
/obj/item/paper_bin/uscm{
@@ -69705,6 +70228,13 @@
icon_state = "mono"
},
/area/almayer/lifeboat_pumps/south1)
+"uso" = (
+/obj/structure/largecrate/random/case/double,
+/obj/structure/machinery/light/small,
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hull/upper_hull/u_m_p)
"usr" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/computer/secure_data{
@@ -69824,12 +70354,7 @@
pixel_y = 2
},
/obj/structure/largecrate/random/case,
-/obj/item/prop{
- desc = "An older design of the Pulse Rifle commonly used by Colonial Marines. This one has seen better days. The trigger is missing, the barrel is bent, and it no longer appropriately feeds magazines.";
- icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi';
- icon_state = "m41amk1_e";
- item_state = "m41amk1";
- name = "\improper Broken M41A pulse rifle";
+/obj/effect/spawner/prop_gun/m41aMK1{
pixel_y = 7
},
/obj/item/prop/helmetgarb/gunoil{
@@ -69908,6 +70433,21 @@
icon_state = "orangecorner"
},
/area/almayer/squads/bravo)
+"uvy" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 2
+ },
+/obj/effect/decal/warning_stripes{
+ icon_state = "W";
+ pixel_x = -1;
+ pixel_y = 1
+ },
+/turf/open/floor/almayer{
+ dir = 5;
+ icon_state = "plating"
+ },
+/area/almayer/shipboard/brig/armory)
"uvG" = (
/obj/effect/decal/warning_stripes{
icon_state = "W"
@@ -69941,12 +70481,13 @@
},
/area/almayer/medical/containment/cell)
"uvS" = (
-/obj/structure/sign/safety/hvac_old{
- pixel_x = 8;
- pixel_y = 32
+/obj/structure/surface/rack,
+/obj/item/stack/cable_coil,
+/obj/item/attachable/flashlight/grip,
+/turf/open/floor/almayer{
+ icon_state = "plate"
},
-/turf/open/floor/almayer,
-/area/almayer/lifeboat_pumps/south1)
+/area/almayer/hull/upper_hull/u_m_s)
"uvY" = (
/turf/open/floor/almayer{
dir = 8;
@@ -69973,6 +70514,14 @@
/obj/structure/surface/table/woodentable/fancy,
/turf/open/floor/wood/ship,
/area/almayer/living/commandbunks)
+"uws" = (
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "cargo_arrow"
+ },
+/area/almayer/shipboard/port_missiles)
"uwv" = (
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/weapon_room/notunnel)
@@ -70195,8 +70744,15 @@
icon_state = "redcorner"
},
/area/almayer/shipboard/brig/main_office)
+"uAb" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SE-out"
+ },
+/turf/open/floor/plating/plating_catwalk,
+/area/almayer/hallways/hangar)
"uAj" = (
/obj/structure/bed/chair,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer{
dir = 1;
icon_state = "red"
@@ -70250,7 +70806,12 @@
},
/area/almayer/squads/bravo)
"uBi" = (
-/obj/structure/largecrate/random/case/double,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/surface/table/almayer,
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_22";
+ pixel_y = 8
+ },
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/north1)
"uBn" = (
@@ -70497,6 +71058,12 @@
icon_state = "test_floor4"
},
/area/almayer/hallways/aft_hallway)
+"uGt" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "SE-out"
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/aft_hallway)
"uGw" = (
/obj/structure/surface/table/almayer,
/obj/item/reagent_container/food/drinks/cans/souto/diet/lime{
@@ -70506,13 +71073,12 @@
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hull/lower_hull/l_m_s)
"uGz" = (
-/obj/structure/machinery/camera/autoname/almayer{
- name = "ship-grade camera"
- },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/largecrate/random/secure,
/turf/open/floor/almayer{
- icon_state = "mono"
+ icon_state = "plate"
},
-/area/almayer/lifeboat_pumps/south1)
+/area/almayer/hull/upper_hull/u_m_s)
"uGQ" = (
/obj/structure/machinery/suit_storage_unit/compression_suit/uscm,
/turf/open/floor/almayer{
@@ -70520,13 +71086,15 @@
},
/area/almayer/engineering/upper_engineering/starboard)
"uId" = (
-/obj/structure/bed/chair/comfy/teal{
- dir = 8
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
},
+/obj/effect/step_trigger/clone_cleaner,
/turf/open/floor/almayer{
- icon_state = "mono"
+ dir = 9;
+ icon_state = "green"
},
-/area/almayer/lifeboat_pumps/south1)
+/area/almayer/hallways/aft_hallway)
"uIp" = (
/obj/structure/pipes/standard/simple/hidden/supply,
/obj/structure/machinery/light{
@@ -70845,11 +71413,10 @@
/turf/closed/wall/almayer/outer,
/area/almayer/lifeboat_pumps/south2)
"uOJ" = (
-/obj/structure/machinery/prop/almayer/computer{
- dir = 8;
- pixel_x = 16
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/almayer{
+ icon_state = "mono"
},
-/turf/open/floor/almayer,
/area/almayer/living/pilotbunks)
"uPr" = (
/turf/open/floor/almayer{
@@ -70879,6 +71446,13 @@
},
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/perma)
+"uQn" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "NW-out";
+ pixel_y = 3
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/starboard_hallway)
"uQU" = (
/obj/structure/stairs{
dir = 1
@@ -71009,9 +71583,12 @@
/turf/open/floor/almayer,
/area/almayer/squads/bravo)
"uTN" = (
-/obj/effect/landmark/start/liaison,
-/turf/open/floor/plating/plating_catwalk,
-/area/almayer/command/corporateliason)
+/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/living/pilotbunks)
"uTU" = (
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 2
@@ -71027,11 +71604,12 @@
},
/area/almayer/command/cic)
"uTY" = (
-/obj/item/trash/cigbutt/ucigbutt,
+/obj/effect/step_trigger/clone_cleaner,
/turf/open/floor/almayer{
- icon_state = "mono"
+ dir = 1;
+ icon_state = "green"
},
-/area/almayer/lifeboat_pumps/south1)
+/area/almayer/hallways/aft_hallway)
"uTZ" = (
/obj/structure/machinery/light/small,
/turf/open/floor/almayer{
@@ -71184,13 +71762,9 @@
/obj/structure/machinery/light{
dir = 1
},
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
+/obj/structure/machinery/cm_vending/sorted/cargo_guns/pilot_officer,
/turf/open/floor/almayer{
- icon_state = "sterile"
+ icon_state = "plate"
},
/area/almayer/living/pilotbunks)
"uWc" = (
@@ -71405,12 +71979,9 @@
},
/area/almayer/medical/lower_medical_medbay)
"vce" = (
-/obj/structure/surface/rack,
-/obj/effect/spawner/random/tool,
-/turf/open/floor/almayer{
- icon_state = "mono"
- },
-/area/almayer/lifeboat_pumps/south1)
+/obj/docking_port/stationary/escape_pod/south,
+/turf/open/floor/plating,
+/area/almayer/hull/upper_hull/u_m_p)
"vcq" = (
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 2
@@ -71444,6 +72015,10 @@
icon_state = "red"
},
/area/almayer/shipboard/brig/general_equipment)
+"vcK" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/almayer,
+/area/almayer/hull/upper_hull/u_f_p)
"vdJ" = (
/obj/structure/surface/table/almayer,
/obj/item/pipe{
@@ -71908,6 +72483,10 @@
icon_state = "green"
},
/area/almayer/living/grunt_rnr)
+"vjK" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/almayer,
+/area/almayer/shipboard/port_missiles)
"vka" = (
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/cic_hallway)
@@ -72041,6 +72620,11 @@
/area/almayer/hull/lower_hull/l_f_s)
"vmN" = (
/obj/structure/machinery/light,
+/obj/structure/surface/table/almayer,
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_22";
+ pixel_y = 8
+ },
/turf/open/floor/almayer{
icon_state = "mono"
},
@@ -72293,15 +72877,15 @@
/area/almayer/shipboard/brig/armory)
"vsJ" = (
/obj/structure/machinery/door/airlock/almayer/maint{
+ access_modified = 1;
dir = 1;
name = "\improper Power Control Room";
req_access = null;
req_one_access = null;
- req_one_access_txt = "3;6";
- access_modified = 1
+ req_one_access_txt = "3;6"
},
/turf/open/floor/almayer{
- icon_state = "orangefull"
+ icon_state = "test_floor4"
},
/area/almayer/shipboard/brig/processing)
"vsV" = (
@@ -72603,6 +73187,13 @@
"vzp" = (
/turf/open/floor/almayer/research/containment/entrance,
/area/almayer/medical/containment/cell/cl)
+"vzq" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "N";
+ pixel_y = 3
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/port_hallway)
"vzu" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 10
@@ -72830,11 +73421,11 @@
/area/almayer/living/briefing)
"vEI" = (
/obj/structure/machinery/door/airlock/almayer/medical/glass{
+ access_modified = 1;
dir = 2;
name = "\improper Field Surgery Equipment";
req_access_txt = "20";
- req_one_access = null;
- access_modified = 1
+ req_one_access = null
},
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 1
@@ -72844,9 +73435,16 @@
},
/area/almayer/medical/lower_medical_medbay)
"vFb" = (
-/obj/item/tool/crowbar,
-/turf/open/floor/almayer,
-/area/almayer/lifeboat_pumps/south1)
+/obj/structure/surface/table/almayer,
+/obj/item/attachable/lasersight,
+/obj/item/reagent_container/food/drinks/cans/souto/vanilla{
+ pixel_x = 10;
+ pixel_y = 11
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hull/upper_hull/u_m_s)
"vFh" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/storage/toolbox/mechanical{
@@ -72901,6 +73499,15 @@
icon_state = "orangefull"
},
/area/almayer/living/briefing)
+"vGI" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 1
+ },
+/turf/open/floor/almayer{
+ icon_state = "dark_sterile"
+ },
+/area/almayer/living/numbertwobunks)
"vHa" = (
/obj/structure/surface/table/reinforced/almayer_B,
/obj/structure/machinery/computer/ares_console{
@@ -72923,6 +73530,13 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/almayer,
/area/almayer/living/port_emb)
+"vHs" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "E";
+ pixel_x = 2
+ },
+/turf/open/floor/almayer,
+/area/almayer/hallways/starboard_hallway)
"vHO" = (
/obj/effect/decal/warning_stripes{
icon_state = "N";
@@ -73129,6 +73743,15 @@
icon_state = "test_floor4"
},
/area/almayer/medical/upper_medical)
+"vLv" = (
+/obj/structure/largecrate/random/case/double,
+/obj/structure/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
+ },
+/area/almayer/hull/upper_hull/u_m_p)
"vLA" = (
/obj/effect/decal/warning_stripes{
icon_state = "W";
@@ -73927,14 +74550,15 @@
},
/area/almayer/hallways/aft_hallway)
"wbu" = (
-/obj/structure/machinery/light{
- dir = 8
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/machinery/camera/autoname/almayer{
+ dir = 1;
+ name = "ship-grade camera"
},
/turf/open/floor/almayer{
- dir = 8;
- icon_state = "red"
+ icon_state = "mono"
},
-/area/almayer/shipboard/port_missiles)
+/area/almayer/living/pilotbunks)
"wbx" = (
/obj/structure/sign/safety/hazard{
desc = "A sign that warns of a hazardous environment nearby";
@@ -73976,7 +74600,15 @@
/obj/structure/machinery/status_display{
pixel_y = 30
},
-/turf/open/floor/almayer,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/surface/table/reinforced/almayer_B,
+/obj/structure/flora/pottedplant{
+ icon_state = "pottedplant_21";
+ pixel_y = 15
+ },
+/turf/open/floor/almayer{
+ icon_state = "bluefull"
+ },
/area/almayer/living/pilotbunks)
"wbP" = (
/obj/structure/machinery/bioprinter{
@@ -74101,11 +74733,14 @@
},
/area/almayer/medical/hydroponics)
"wex" = (
-/obj/structure/machinery/light{
- dir = 4
+/obj/structure/sign/safety/bathunisex{
+ pixel_x = 8;
+ pixel_y = -25
},
-/turf/open/floor/almayer,
-/area/almayer/hull/upper_hull/u_f_s)
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/living/pilotbunks)
"weB" = (
/obj/item/tool/screwdriver{
layer = 2.9;
@@ -74395,9 +75030,9 @@
"wkc" = (
/obj/structure/surface/table/reinforced/prison,
/obj/structure/machinery/door/window/eastright{
+ access_modified = 1;
dir = 8;
- req_access_txt = "8";
- access_modified = 1
+ req_access_txt = "8"
},
/obj/structure/machinery/door/window/eastleft{
req_access_txt = "8"
@@ -74677,8 +75312,8 @@
dir = 1
},
/obj/structure/pipes/vents/pump/no_boom{
- name = "Security Vent";
- desc = "Has a valve and pump attached to it, connected to multiple gas tanks."
+ desc = "Has a valve and pump attached to it, connected to multiple gas tanks.";
+ name = "Security Vent"
},
/turf/open/floor/almayer/no_build{
icon_state = "plating"
@@ -74779,11 +75414,14 @@
},
/turf/open/floor/almayer,
/area/almayer/living/gym)
-"wrT" = (
-/obj/effect/decal/warning_stripes{
- icon_state = "N";
- pixel_y = 1
+"wrQ" = (
+/obj/structure/sign/safety/storage{
+ pixel_x = 8;
+ pixel_y = -32
},
+/turf/open/floor/almayer,
+/area/almayer/living/starboard_garden)
+"wrT" = (
/obj/structure/surface/table/almayer,
/obj/item/device/radio/marine,
/obj/item/device/radio/marine,
@@ -74804,6 +75442,16 @@
icon_state = "sterile_green"
},
/area/almayer/medical/containment)
+"wst" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W"
+ },
+/obj/effect/step_trigger/clone_cleaner,
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "green"
+ },
+/area/almayer/hallways/aft_hallway)
"wsD" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -74817,12 +75465,11 @@
},
/area/almayer/squads/bravo)
"wta" = (
-/obj/structure/disposalpipe/segment{
- dir = 8;
- icon_state = "pipe-c"
+/obj/structure/closet/crate,
+/turf/open/floor/almayer{
+ icon_state = "plate"
},
-/turf/open/floor/almayer,
-/area/almayer/hallways/aft_hallway)
+/area/almayer/hull/upper_hull/u_m_s)
"wtd" = (
/obj/structure/machinery/vending/coffee,
/obj/item/toy/bikehorn/rubberducky{
@@ -74920,11 +75567,11 @@
/area/almayer/lifeboat_pumps/south1)
"wvl" = (
/obj/structure/machinery/door/airlock/almayer/security{
+ access_modified = 1;
dir = 2;
name = "\improper Security Checkpoint";
req_access = null;
- req_one_access_txt = "3;19";
- access_modified = 1
+ req_one_access_txt = "3;19"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -75084,11 +75731,15 @@
},
/area/almayer/command/airoom)
"wyK" = (
-/obj/structure/pipes/standard/simple/hidden/supply,
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ icon_state = "pipe-c"
+ },
/turf/open/floor/almayer{
- icon_state = "orangecorner"
+ dir = 1;
+ icon_state = "silvercorner"
},
-/area/almayer/hallways/stern_hallway)
+/area/almayer/shipboard/brig/cic_hallway)
"wyO" = (
/obj/structure/largecrate/random/barrel/red,
/obj/structure/prop/invuln/overhead_pipe{
@@ -75414,10 +76065,7 @@
/obj/structure/machinery/light{
dir = 4
},
-/turf/open/floor/almayer{
- dir = 4;
- icon_state = "red"
- },
+/turf/closed/wall/almayer/reinforced,
/area/almayer/shipboard/port_missiles)
"wGX" = (
/obj/structure/pipes/standard/manifold/hidden/supply{
@@ -75486,10 +76134,10 @@
/area/almayer/medical/lower_medical_medbay)
"wJo" = (
/obj/structure/machinery/door/airlock/almayer/research/reinforced{
+ access_modified = 1;
dir = 1;
name = "\improper CMO's Bedroom";
- req_one_access_txt = "1;5";
- access_modified = 1
+ req_one_access_txt = "1;5"
},
/obj/structure/pipes/standard/simple/hidden/supply,
/turf/open/floor/almayer{
@@ -75528,17 +76176,16 @@
/turf/closed/wall/almayer/research/containment/wall/east,
/area/almayer/medical/containment/cell/cl)
"wKn" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
+/obj/structure/surface/rack,
+/obj/item/facepaint/sniper,
/turf/open/floor/almayer{
icon_state = "plate"
},
-/area/almayer/hull/upper_hull/u_m_p)
+/area/almayer/hull/upper_hull/u_m_s)
"wKF" = (
/obj/structure/machinery/power/apc/almayer{
- dir = 1;
- pixel_y = 25
+ cell_type = /obj/item/cell/hyper;
+ dir = 1
},
/turf/open/floor/almayer{
icon_state = "plate"
@@ -75598,8 +76245,8 @@
/area/almayer/lifeboat_pumps/south2)
"wLy" = (
/obj/structure/pipes/vents/pump/no_boom{
- welded = 1;
- name = "Secure Reinforced Air Vent"
+ name = "Secure Reinforced Air Vent";
+ welded = 1
},
/turf/open/floor/almayer/research/containment/floor2{
dir = 1
@@ -75720,9 +76367,13 @@
/area/almayer/living/briefing)
"wNU" = (
/obj/structure/machinery/door/airlock/almayer/maint{
+ access_modified = 1;
dir = 2;
- req_one_access = list(2,34,30);
- access_modified = 1
+ req_one_access = list(2,34,30)
+ },
+/obj/structure/machinery/door/poddoor/almayer/open{
+ id = "Brig Lockdown Shutters";
+ name = "\improper Brig Lockdown Shutter"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -75956,10 +76607,9 @@
},
/area/almayer/squads/charlie_delta_shared)
"wTy" = (
-/obj/item/reagent_container/glass/rag,
+/obj/structure/machinery/door/firedoor/border_only/almayer,
/turf/open/floor/almayer{
- dir = 4;
- icon_state = "red"
+ icon_state = "test_floor4"
},
/area/almayer/lifeboat_pumps/south1)
"wTJ" = (
@@ -76044,7 +76694,10 @@
/obj/structure/bed/chair/comfy{
dir = 4
},
-/turf/open/floor/almayer,
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "blue"
+ },
/area/almayer/living/pilotbunks)
"wUS" = (
/obj/structure/disposalpipe/segment{
@@ -76081,7 +76734,8 @@
/obj/item/vehicle_clamp,
/obj/item/vehicle_clamp,
/obj/effect/decal/warning_stripes{
- icon_state = "N"
+ icon_state = "N";
+ pixel_y = 2
},
/obj/item/ammo_magazine/smg/m39,
/obj/item/ammo_magazine/smg/m39,
@@ -76199,13 +76853,10 @@
/turf/closed/wall/almayer/research/containment/wall/north,
/area/almayer/medical/containment/cell)
"wWC" = (
-/obj/structure/flora/pottedplant{
- icon_state = "pottedplant_21"
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "S"
+/turf/open/floor/almayer{
+ dir = 10;
+ icon_state = "blue"
},
-/turf/open/floor/almayer,
/area/almayer/living/pilotbunks)
"wWL" = (
/obj/item/tool/screwdriver,
@@ -76276,18 +76927,24 @@
icon_state = "test_floor4"
},
/area/almayer/hallways/hangar)
-"wYA" = (
-/obj/structure/bed/chair/comfy/teal{
- dir = 8
+"wYj" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "W";
+ pixel_x = -1
},
-/obj/item/trash/cigbutt{
- pixel_x = -12;
- pixel_y = 17
+/obj/structure/bed/sofa/south/white/left{
+ pixel_y = 16
},
/turf/open/floor/almayer{
- icon_state = "mono"
+ dir = 9;
+ icon_state = "silver"
},
-/area/almayer/lifeboat_pumps/south1)
+/area/almayer/hull/upper_hull/u_m_p)
+"wYA" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/surface/table/almayer,
+/turf/open/floor/almayer,
+/area/almayer/lifeboat_pumps/north1)
"wYK" = (
/obj/structure/barricade/handrail/medical,
/turf/open/floor/almayer{
@@ -76365,12 +77022,13 @@
},
/area/almayer/hull/lower_hull/l_a_s)
"wZM" = (
-/obj/structure/bed/sofa/south,
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
/turf/open/floor/almayer{
- dir = 1;
- icon_state = "silver"
+ icon_state = "blue"
},
-/area/almayer/shipboard/brig/cic_hallway)
+/area/almayer/hallways/aft_hallway)
"wZT" = (
/obj/structure/sign/safety/hvac_old{
pixel_x = 8;
@@ -76567,15 +77225,11 @@
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hull/lower_hull)
"xfh" = (
-/obj/structure/machinery/door/airlock/almayer/secure/reinforced{
- dir = 2;
- name = "\improper Evacuation Airlock PU-5";
- req_access = null
- },
+/obj/structure/largecrate/supply/floodlights,
/turf/open/floor/almayer{
- icon_state = "test_floor4"
+ icon_state = "plate"
},
-/area/almayer/powered)
+/area/almayer/hull/upper_hull/u_m_p)
"xfi" = (
/obj/structure/machinery/power/smes/buildable,
/obj/structure/machinery/light{
@@ -77034,10 +77688,8 @@
/area/almayer/engineering/upper_engineering/port)
"xoS" = (
/obj/effect/decal/warning_stripes{
- icon_state = "N"
- },
-/obj/effect/decal/warning_stripes{
- icon_state = "E"
+ icon_state = "N";
+ pixel_y = 2
},
/obj/structure/closet/secure_closet/guncabinet/red,
/obj/item/weapon/gun/rifle/m4ra,
@@ -77085,10 +77737,10 @@
dir = 1
},
/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{
+ access_modified = 1;
name = "\improper Brig";
req_access = null;
- req_one_access_txt = "1;3";
- access_modified = 1
+ req_one_access_txt = "1;3"
},
/turf/open/floor/almayer{
icon_state = "test_floor4"
@@ -77237,10 +77889,10 @@
/area/almayer/hallways/vehiclehangar)
"xtC" = (
/obj/structure/machinery/door/airlock/almayer/maint{
+ access_modified = 1;
dir = 1;
req_one_access = null;
- req_one_access_txt = "30;19";
- access_modified = 1
+ req_one_access_txt = "30;19"
},
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 2
@@ -77337,6 +77989,13 @@
icon_state = "plating"
},
/area/almayer/engineering/engine_core)
+"xuY" = (
+/obj/structure/sign/safety/escapepod{
+ pixel_x = 8;
+ pixel_y = 32
+ },
+/turf/open/floor/almayer,
+/area/almayer/lifeboat_pumps/south1)
"xuZ" = (
/turf/open/floor/almayer{
dir = 8;
@@ -77794,6 +78453,7 @@
pixel_y = 3
},
/obj/item/folder/yellow,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -77967,15 +78627,11 @@
},
/area/almayer/squads/alpha_bravo_shared)
"xHG" = (
-/obj/structure/machinery/door/airlock/almayer/secure/reinforced{
- dir = 2;
- name = "\improper Evacuation Airlock SU-5";
- req_access = null
- },
+/obj/structure/surface/rack,
/turf/open/floor/almayer{
- icon_state = "test_floor4"
+ icon_state = "plate"
},
-/area/almayer/powered)
+/area/almayer/hull/upper_hull/u_m_p)
"xHM" = (
/obj/structure/surface/table/almayer,
/obj/structure/machinery/computer/sentencing,
@@ -78362,7 +79018,10 @@
/obj/structure/pipes/vents/pump{
dir = 8
},
-/turf/open/floor/almayer,
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "bluecorner"
+ },
/area/almayer/living/pilotbunks)
"xQm" = (
/turf/open/floor/almayer/research/containment/floor2{
@@ -78701,6 +79360,12 @@
"xVk" = (
/turf/open/space,
/area/space/almayer/lifeboat_dock)
+"xVF" = (
+/obj/effect/decal/warning_stripes{
+ icon_state = "S"
+ },
+/turf/open/floor/almayer,
+/area/almayer/lifeboat_pumps/south1)
"xVI" = (
/obj/structure/largecrate/random/case,
/turf/open/floor/almayer{
@@ -78746,9 +79411,9 @@
/area/almayer/squads/alpha_bravo_shared)
"xWo" = (
/obj/structure/machinery/door/airlock/almayer/maint{
- req_one_access_txt = "19;21";
access_modified = 1;
- req_one_access = null
+ req_one_access = null;
+ req_one_access_txt = "19;21"
},
/turf/open/floor/almayer{
icon_state = "plate"
@@ -78764,22 +79429,20 @@
/turf/open/floor/plating/plating_catwalk,
/area/almayer/shipboard/brig/cic_hallway)
"xWF" = (
-/obj/structure/machinery/door/airlock/almayer/maint{
- dir = 2;
- req_one_access = list(2,34,30);
- access_modified = 1
- },
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
+/obj/structure/machinery/light/small{
+ dir = 8
},
+/turf/open/floor/plating/plating_catwalk,
/area/almayer/hull/upper_hull/u_m_p)
"xWO" = (
-/obj/item/stack/catwalk,
-/obj/structure/cable/heavyduty{
- icon_state = "4-8"
+/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
+ pixel_y = -25
},
-/turf/open/floor/plating,
-/area/almayer/lifeboat_pumps/south1)
+/obj/structure/largecrate/random/case/small,
+/turf/open/floor/almayer{
+ icon_state = "mono"
+ },
+/area/almayer/lifeboat_pumps/north1)
"xWT" = (
/obj/structure/machinery/shower{
pixel_y = 16
@@ -79341,13 +80004,8 @@
},
/area/almayer/medical/morgue)
"yji" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/machinery/door/airlock/almayer/maint,
-/turf/open/floor/almayer{
- icon_state = "test_floor4"
- },
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plating/plating_catwalk,
/area/almayer/hull/upper_hull/u_m_p)
"yjq" = (
/obj/structure/machinery/door/poddoor/almayer/locked{
@@ -79359,11 +80017,14 @@
},
/area/almayer/engineering/upper_engineering/notunnel)
"yjM" = (
-/obj/effect/decal/cleanable/blood/oil,
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
/turf/open/floor/almayer{
- icon_state = "mono"
+ dir = 4;
+ icon_state = "blue"
},
-/area/almayer/lifeboat_pumps/south2)
+/area/almayer/living/pilotbunks)
"ykj" = (
/obj/structure/machinery/door/firedoor/border_only/almayer{
dir = 2
@@ -79474,6 +80135,18 @@
},
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hull/lower_hull/l_m_s)
+"ymi" = (
+/obj/structure/machinery/door/airlock/almayer/maint{
+ req_one_access = null;
+ req_one_access_txt = "2;30;34"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/almayer{
+ icon_state = "test_floor4"
+ },
+/area/almayer/hull/upper_hull/u_f_p)
(1,1,1) = {"
aaa
@@ -90490,7 +91163,7 @@ lMc
gjL
cMl
oeB
-euO
+rkL
ldu
eRL
jZL
@@ -91693,7 +92366,7 @@ lrq
mAr
uqo
fsT
-fsT
+jnA
fDn
lrq
tqV
@@ -92098,7 +92771,7 @@ aou
lrq
mAr
uqo
-fsT
+uvy
tfO
fsz
lrq
@@ -93919,7 +94592,7 @@ bdH
aad
aag
pCi
-nfI
+wcn
rPC
cQv
cQv
@@ -93930,7 +94603,7 @@ dvT
ieo
vxC
ldD
-wZM
+vGA
hUW
dHd
vka
@@ -94122,8 +94795,8 @@ aaf
aag
aag
pCi
-bsf
-ahX
+hKi
+wcn
aFN
wcn
cXZ
@@ -94160,7 +94833,7 @@ kIV
hUc
wNU
mnm
-fwF
+sIk
xEF
aag
aag
@@ -94325,9 +94998,9 @@ adG
adG
adG
adG
-akC
-akC
-akC
+bsf
+fwF
+dav
rPC
rPC
kDb
@@ -94361,9 +95034,9 @@ czB
mtl
mnm
kIV
-kCi
-kCi
-kCi
+wNU
+kIV
+alv
tuA
tuA
tuA
@@ -94527,13 +95200,13 @@ aeK
aeK
bur
hdd
-aok
-sHM
-aHY
+akC
+akC
+akC
akC
cVJ
rPC
-rPC
+jvJ
vxM
sVy
mKh
@@ -94563,11 +95236,11 @@ kHK
wfL
mtl
mnm
-kIV
+dGc
+kCi
+kCi
+kCi
kCi
-dUI
-wbu
-rVN
hjA
nIE
jKn
@@ -94731,8 +95404,8 @@ aeK
bur
wdI
sFf
-adu
-aHZ
+bbV
+bzz
akC
cRc
rPC
@@ -94766,9 +95439,9 @@ sBH
vfv
mtl
mnm
-kIV
+dGc
kCi
-nRR
+sDD
kOv
cRv
sQF
@@ -95137,7 +95810,7 @@ amz
amz
aly
nkx
-adu
+bbZ
btv
akC
dDC
@@ -95170,7 +95843,7 @@ lNF
rkK
cIK
mtl
-mnm
+tzj
kIV
bbR
kCi
@@ -95373,7 +96046,7 @@ pJE
wPk
hRy
mtl
-mnm
+tzj
kIV
bVT
kCi
@@ -95749,7 +96422,7 @@ nIt
adu
hxG
akC
-avl
+fvu
qkn
wcn
vxM
@@ -95978,17 +96651,17 @@ vGA
uwN
pYX
xuZ
-jnD
+wyK
elh
rzM
aBN
fQS
-tJo
-tJo
+bVr
+bVr
bpd
bqT
vZv
-btD
+vjK
awC
uMj
uMj
@@ -96180,19 +96853,19 @@ awz
vSN
mPj
rWs
-mIy
-eEw
+iVY
+odM
lPC
-vka
+mgy
wWT
xuB
-gpe
+vcK
czJ
kCi
nRR
btM
-btD
-hjA
+vjK
+dUZ
nIE
jKn
pyi
@@ -96354,7 +97027,7 @@ afa
aeK
bur
wdI
-sFf
+aHY
tyK
iKI
akC
@@ -96392,10 +97065,10 @@ lIV
gsH
qFl
kCi
-nRR
-kOv
+cfk
+uws
cRv
-sQF
+nwx
nIE
jKn
vjg
@@ -96557,14 +97230,14 @@ aeK
aeK
bur
xFP
-umS
-jvJ
-aex
+akC
+akC
+akC
akC
fcF
avl
lFb
-avl
+fvu
age
age
vSN
@@ -96592,12 +97265,12 @@ qFl
qFl
gpe
xuB
-gpe
+vcK
mBA
kCi
-pLW
+kCi
wGI
-pPN
+kCi
vmW
nIE
jKn
@@ -96761,13 +97434,13 @@ adG
adG
adG
adG
-akC
-akC
-akC
+puK
avl
+dUI
avl
-lFb
avl
+lFb
+fvu
xDp
age
xDn
@@ -96796,10 +97469,10 @@ rnM
gpe
sDy
ukU
-cNe
-qFl
-qFl
-kCi
+bfP
+fvv
+vcK
+vcK
tuA
tuA
tuA
@@ -96964,9 +97637,9 @@ aag
aag
aag
pCi
-puK
+avl
nMc
-iJf
+ayP
iJf
iJf
sFZ
@@ -97168,10 +97841,10 @@ aag
aag
pCi
dRV
-tGf
-wex
-avl
-puK
+bZg
+kcH
+kcH
+kcH
kcH
kcH
kcH
@@ -98221,8 +98894,8 @@ aES
aES
aES
aES
-aES
-lDN
+gpe
+uEv
gpe
xEF
xEF
@@ -98423,9 +99096,9 @@ ceK
sxD
bhJ
bHG
-ayP
aES
-xuB
+aES
+mtE
gpe
cEg
hgm
@@ -100463,7 +101136,7 @@ ils
ajZ
aaa
aaa
-bdH
+aaa
bdH
bdH
bdH
@@ -100666,7 +101339,7 @@ xEF
ajZ
aaa
aaa
-bdH
+aaa
bdH
bdH
bdH
@@ -100869,7 +101542,7 @@ aag
ajZ
aaa
aaa
-bdH
+aaa
bdH
bdH
bdH
@@ -101072,7 +101745,7 @@ aag
ajZ
aaa
aaa
-bdH
+aaa
bdH
bdH
bdH
@@ -101430,8 +102103,8 @@ pCi
ifR
jMt
gpY
-awW
-awW
+uBi
+wYA
awW
awW
awW
@@ -101467,8 +102140,8 @@ baw
oxu
baw
baw
-baw
-baw
+oaK
+nUn
pgD
xuB
gpe
@@ -101633,7 +102306,7 @@ pCi
avl
lIh
gpY
-aeX
+uac
vFw
ajf
ajf
@@ -101671,7 +102344,7 @@ aZz
aZz
aZz
wUP
-cxk
+lrF
pgD
uEv
gpe
@@ -101840,8 +102513,8 @@ mto
acW
awW
awW
-awW
-awW
+oGC
+oGC
aSJ
goj
iff
@@ -102032,7 +102705,7 @@ adq
aeW
ajD
anM
-awW
+oGC
add
aSA
bvb
@@ -102041,8 +102714,8 @@ ajI
pYu
awW
acW
-ads
add
+ryG
ohB
aiX
awd
@@ -102073,9 +102746,9 @@ ecr
ecr
ygs
aET
-oGC
+nUv
+aJU
aJU
-mYx
sgU
baw
dqb
@@ -102232,7 +102905,7 @@ bdH
bdH
abs
adq
-aeX
+aea
ajE
awW
awW
@@ -102252,7 +102925,7 @@ unT
kng
fDV
aiX
-wWC
+aiX
tAL
awX
tAL
@@ -102656,7 +103329,7 @@ aoI
weD
fdE
amh
-fdE
+amh
aiX
cJu
pXx
@@ -102857,15 +103530,15 @@ afr
akc
buc
weD
-amh
+jMm
pcG
iFn
qnD
-amd
-amd
+amh
+kWT
wUR
wUR
-amd
+wWC
auZ
aiX
aiX
@@ -103044,7 +103717,7 @@ bdH
aaC
abs
adq
-aeY
+qcq
ajI
add
add
@@ -103065,10 +103738,10 @@ aiX
aiX
aiX
oqw
-amd
+lvA
osT
cZV
-amd
+pQV
apq
ana
aiX
@@ -103102,7 +103775,7 @@ gjq
aJU
aJU
tiW
-usm
+eMn
pgD
tQV
aaC
@@ -103247,13 +103920,13 @@ bdH
aaC
abs
adq
-lvA
+jWH
ajI
add
auJ
aHU
aTm
-aea
+awW
aTm
jgF
auJ
@@ -103267,17 +103940,17 @@ fdE
mLz
iFn
alw
-amd
+amh
dGr
rtY
fJy
xQg
-apq
+wWC
szO
aiX
atU
amO
-avj
+qLj
awF
awF
aEW
@@ -103299,13 +103972,13 @@ aJU
lqZ
ouQ
iun
-aJU
+baw
vPm
qys
lqZ
aJU
tiW
-kWT
+pUe
pgD
tQV
aaC
@@ -103390,7 +104063,7 @@ baI
baI
bGO
bHB
-btO
+uAb
bcm
mzo
sYC
@@ -103473,18 +104146,18 @@ aiX
amd
dXY
fmB
-fmB
-dXY
-apq
+umS
+yjM
+qbO
aqw
-aiX
-atV
+hnI
+bYe
amO
-avj
-agm
+wZM
+aPm
awF
aHk
-rvA
+vGI
aLp
awF
jss
@@ -103494,7 +104167,7 @@ aVk
ldC
vkb
aET
-gnv
+eFM
yhI
tTu
sgU
@@ -103593,7 +104266,7 @@ bEN
baX
bcp
bHB
-aYt
+xAY
aYz
mzo
vhq
@@ -103659,7 +104332,7 @@ awW
avc
aIv
aTm
-bvd
+kJL
cbM
jzZ
sLo
@@ -103676,18 +104349,18 @@ aiX
apt
sCI
pWN
-pWN
+uTN
aqy
nBE
pOD
bZa
ahM
aEf
-avj
-ahF
+wZM
+ejp
awF
aHn
-rvA
+szU
aLt
awF
aRC
@@ -103705,7 +104378,7 @@ baw
hJk
yac
vbB
-dav
+kUQ
vbB
fDS
iLd
@@ -103796,7 +104469,7 @@ wqh
xyw
bcc
bHB
-aYt
+xAY
aYz
mzo
xIj
@@ -103862,7 +104535,7 @@ add
auJ
aHU
aTm
-bzz
+awW
aTm
jgF
auJ
@@ -103877,16 +104550,16 @@ aiX
aiX
aiX
awq
-amd
-amd
+lvA
+pQV
mHO
aiX
aiX
-mJL
aiX
-ayT
+aiX
+atV
amO
-avj
+oXd
qFl
qFl
qFl
@@ -103900,7 +104573,7 @@ prE
aUw
aUw
awS
-aJU
+nJs
aJU
aJU
tiW
@@ -103908,8 +104581,8 @@ aJU
lqZ
ouQ
vbB
-fvu
-vbB
+baw
+tBq
qys
lqZ
aJU
@@ -103999,7 +104672,7 @@ bEO
rOc
fVz
bHB
-btO
+uII
ruz
mzo
gwm
@@ -104079,15 +104752,15 @@ fdE
feS
iFn
alw
-amd
-amd
-amd
-amd
+kFe
+mJL
+qbO
+wbu
aiX
aKG
amb
-bZg
-bYe
+aiX
+ayT
amO
avj
qFl
@@ -104126,15 +104799,15 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
aaa
aab
aaa
@@ -104202,7 +104875,7 @@ gfW
gfW
xyw
bHB
-btO
+uII
wrT
mzo
pVu
@@ -104282,11 +104955,11 @@ nwL
amh
nPx
aiX
-pQV
+aiX
uOJ
pqc
-amd
-aiX
+pqc
+aqz
aKH
and
aiX
@@ -104309,8 +104982,8 @@ awS
tvQ
yhI
tTu
-gVF
-qLj
+sgU
+baw
aJU
aJU
aJU
@@ -104329,15 +105002,15 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
aaa
aab
aaa
@@ -104405,7 +105078,7 @@ bEP
gfW
bGQ
bHB
-btO
+qnd
cmp
cmp
cmp
@@ -104485,10 +105158,10 @@ akv
eGH
qnl
aiX
-aiX
-aiX
-aiX
-amd
+fuz
+pLW
+sht
+wex
aiX
aiX
aiX
@@ -104532,15 +105205,15 @@ bdH
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
aaa
aab
aaa
@@ -104681,20 +105354,20 @@ awW
awW
abB
add
-add
-kyY
-aau
+xWO
+aiX
+aiX
aau
aau
aau
aau
uVX
ase
+sht
+uOJ
aqz
-amd
-aqz
-ase
-atS
+mBe
+atT
aiX
ayU
amO
@@ -104712,8 +105385,8 @@ pUJ
pUJ
pUJ
pUJ
-ryG
-aJU
+pgD
+nUv
aJU
pIV
baw
@@ -104735,15 +105408,15 @@ bdH
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
aaa
aab
aaa
@@ -104862,9 +105535,9 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
+bdH
+bdH
+bdH
aaa
aaa
aaa
@@ -104884,17 +105557,17 @@ awW
awW
acW
qdQ
-eFT
-hhA
+muq
+aiX
+aiX
aau
dBs
dBs
-dBs
aau
fuz
tld
-aiX
-ccc
+uOJ
+mHO
aiX
asf
atT
@@ -104913,13 +105586,13 @@ bsO
aal
xKW
aht
-aGP
-pUJ
-mSi
-wHp
+aht
+gcc
+pgD
+lza
gZw
-sgU
-baw
+gVF
+kuk
baw
aJU
nig
@@ -104935,18 +105608,18 @@ tQV
aaa
bdH
bdH
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
aaa
aab
aaa
@@ -105065,9 +105738,9 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
+bdH
+bdH
+bdH
aaa
aaa
aaa
@@ -105077,26 +105750,26 @@ adq
awW
awW
awW
-awW
-add
+oGC
+ryG
aVL
bBl
aeZ
-pzy
-awW
+ryG
+oGC
awW
acW
-ads
add
-ohB
+bny
+aiX
+aiX
aiX
-vwV
vwV
vwV
aiX
aiX
aiX
-aiX
+sHM
kUh
aiX
aiX
@@ -105116,16 +105789,16 @@ pUJ
pUJ
pUJ
pUJ
-aGQ
pUJ
-oGC
+ymi
+pgD
+nUv
aJU
-mYx
sgU
baw
baw
aJU
-tTu
+bnZ
cIe
jez
aJU
@@ -105138,18 +105811,18 @@ tQV
aaa
aaa
bdH
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
aaa
aab
aaa
@@ -105268,41 +105941,41 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
+bdH
+bdH
+bdH
aaa
aaa
aaa
aaa
abs
adq
-aeZ
+aei
aka
-aoI
+aWn
aar
aar
aar
aar
-tiM
aar
-teB
+aar
+oGC
awW
acW
awW
awW
awW
fSm
-aSJ
+atW
apl
bbL
bbL
kij
bbL
-bbL
-bbL
-yfv
bYe
+bYe
+yfv
+bbL
aWl
bbL
bbL
@@ -105319,8 +105992,8 @@ bbL
kij
bbL
xRU
-pgo
-baw
+pEY
+jsP
baw
fGg
baw
@@ -105333,26 +106006,26 @@ qVM
qVM
qVM
qVM
-gnv
+hXV
yhI
-tTu
+rRz
pgD
tQV
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
aaa
aab
aaa
@@ -105471,32 +106144,32 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
+bdH
+bdH
+bdH
aaa
aaa
aaa
aaa
abs
adq
-afp
-akc
+apr
+apr
aoV
aar
-aIx
-aWs
-aar
-aap
+aIZ
+aIZ
+aIZ
+bWK
aar
-uac
-awW
+aea
+oGC
xjD
ajf
ajf
ajf
-ajf
oAO
+heH
aod
qgG
amC
@@ -105520,42 +106193,42 @@ suV
bYc
bYc
bYc
-biT
+qgG
dqN
tFW
dGC
-tAV
-tAV
-tAV
-avZ
-iYr
+aZz
+aZz
+aZz
+nsc
+baw
cxk
qVM
-csz
-qVM
-eRR
+iBt
+iBt
+iBt
vce
qVM
-crh
-csI
-qhb
+wTy
+wTy
+wTy
pgD
tQV
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
aaa
aab
aaa
@@ -105674,31 +106347,31 @@ aaa
aaa
aaa
aaa
+bdH
+bdH
+bdH
aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-abw
-aea
-awW
-akt
-awW
-avd
-awW
-awW
+abs
+adq
+aub
+akc
+euO
aar
-wFm
+aIZ
+aIZ
+aIZ
+aIZ
aar
-uBi
-awW
-awW
-awW
+oGC
+sHp
+oGC
awW
awW
awW
+aSJ
tsv
dtM
aii
@@ -105723,42 +106396,42 @@ avn
mTb
avn
nFr
-asS
+aii
ajC
dCD
-baw
+aXe
baw
baw
baw
mnA
-rKs
-aJU
-xWF
-csz
-xWF
-aJU
baw
-aJU
-baw
-sMM
baw
-wiz
-trb
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+qVM
+iBt
+iBt
+iBt
+iBt
+qVM
+crh
+csI
+nqG
+pgD
+tQV
aaa
aaa
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
aaa
aab
aaa
@@ -105877,25 +106550,25 @@ aaa
aaa
aaa
aaa
+bdH
+bdH
+bdH
aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-abw
+abs
aec
-awW
+avd
akt
awW
-add
-aIB
-awW
-aar
-ceu
-aar
+qHq
+aIZ
+aIZ
+aIZ
+aIZ
aar
+rKs
aar
aar
aar
@@ -105926,42 +106599,42 @@ aoe
aoe
aoe
aEI
-asS
+aii
aik
qVM
-aWm
-aWm
-aWm
-aWm
qVM
-yji
qVM
qVM
-dux
qVM
-baw
-vFb
-aJU
+qVM
+xeG
+qVM
+qVM
+iBt
+iBt
+iBt
+iBt
+eOM
baw
sMM
-baw
+xVF
dLz
-trb
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+tQV
aaa
aaa
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
aaa
aab
aaa
@@ -106080,23 +106753,23 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
+bdH
+bdH
+bdH
aaa
aaa
aaa
aaa
abs
adq
-aeZ
+aGP
aka
-aoI
-ads
-add
aWu
aar
-aao
+aIZ
+aIZ
+aIZ
+aIZ
aar
uLW
tZe
@@ -106129,38 +106802,38 @@ isN
cnZ
aoe
dtM
-asS
+aii
ajC
qVM
-aWn
-baw
-baw
-uTY
-qVM
-mOb
-qVM
-qVM
+gKS
+gKS
+csz
+xCX
+csz
+vGk
+vGk
qVM
+iBt
+iBt
+iBt
+iBt
qVM
-uGz
-aJU
-mYx
-gnv
+hWB
yhI
-tTu
+qSX
pgD
tQV
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
aaa
aaa
aaa
@@ -106283,24 +106956,24 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
+bdH
+bdH
+bdH
aaa
aaa
aaa
aaa
abs
adq
-afr
+aGQ
akc
apg
-avx
-add
-aYq
aar
-aao
-aao
+aIZ
+aIZ
+aIZ
+aIZ
+aar
aao
aap
ijU
@@ -106332,38 +107005,38 @@ aEi
coa
aoe
ahr
-biV
-ajC
+akU
+bYe
+xCX
+csz
+vGk
+vGk
qVM
-aub
-uId
-qHq
-wYA
+bDe
+csz
+csz
qVM
-pDm
-tDA
-qFQ
-oGy
+iBt
+iBt
+iBt
+iBt
qVM
-aJU
-aJU
-pEY
wvj
csI
-goL
+iPH
pgD
tQV
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
aaa
aaa
aaa
@@ -106493,16 +107166,16 @@ aaa
aaa
aaa
aaa
-abw
+abs
aee
-awW
+avd
akt
-awW
-add
-aJJ
-awW
+qWI
+aar
+aar
+aar
+aar
aar
-aap
lYA
lYA
lYA
@@ -106535,7 +107208,7 @@ aEi
fFh
aoe
dtM
-biV
+akU
ajC
czu
czu
@@ -106546,27 +107219,27 @@ czu
czu
czu
czu
-mov
qVM
-baw
-baw
-aJU
+qVM
+qVM
+qVM
+qVM
ehj
irS
ilJ
njD
-trb
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+tQV
aaa
aaa
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
aaa
aaa
aaa
@@ -106696,16 +107369,16 @@ aaa
aaa
aaa
aaa
-abw
-aei
-awW
-akt
-awW
-add
-awW
-awW
+abs
+adq
+aWm
+aka
+kyY
aar
-wFm
+cit
+ina
+nuY
+nuY
lYA
aax
aax
@@ -106738,7 +107411,7 @@ hFF
aoe
aoe
dtM
-asS
+aii
ajC
czu
aiJ
@@ -106749,27 +107422,27 @@ atj
atj
atj
czu
-wKn
+foR
+usi
+vGk
+foR
qVM
-uvS
-oWz
-aJU
rQW
-xWO
-baw
-aJU
-trb
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+yhI
+tmI
+pgD
+tQV
aaa
aaa
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
aaa
aaa
aaa
@@ -106901,14 +107574,14 @@ aaa
aaa
abs
adq
-afA
-aka
+apr
+apr
apr
aar
aJL
aYr
-aar
-aap
+aao
+aao
lYA
aax
aax
@@ -106941,7 +107614,7 @@ aQz
aRJ
ajl
dtM
-biV
+akU
ajC
czu
aiJ
@@ -106952,14 +107625,14 @@ atj
atj
atj
czu
-wKn
-qVM
-nUv
-qga
+usi
+vGk
+vGk
+vLv
qVM
-kDt
wTy
-pwG
+wTy
+wTy
pgD
tQV
aaa
@@ -107109,9 +107782,9 @@ akW
apu
aar
aar
-aar
-aar
-tiM
+aao
+aap
+pDm
lYA
acV
acV
@@ -107144,7 +107817,7 @@ aQz
aRK
ajl
aDk
-biV
+akU
ajC
czu
aiJ
@@ -107155,14 +107828,14 @@ atl
atl
atl
czu
-wKn
-qVM
-gMA
+dQE
+vGk
+csz
qVM
qVM
-vpn
+crh
csI
-goL
+qhb
pgD
tQV
bdH
@@ -107307,14 +107980,14 @@ aaf
aaf
acv
aez
-aJW
-aJW
-boL
boL
+akY
boL
-aYs
+aiH
+aiv
+aap
uoS
-aJW
+pDm
lYA
adb
adb
@@ -107347,7 +108020,7 @@ fOL
aRS
ajl
ahq
-asS
+aii
ajC
czu
alW
@@ -107358,11 +108031,11 @@ atI
atI
atI
czu
-mOb
-qVM
-vGk
-qVM
-ina
+usi
+foR
+csz
+xCX
+aJU
baw
sMM
baw
@@ -107510,14 +108183,14 @@ aag
aag
acv
aez
-agh
-afY
-apF
-apF
-apF
-agP
-agh
-aJW
+boL
+akY
+wrQ
+aar
+aar
+aar
+aar
+aar
lYA
adb
adb
@@ -107550,7 +108223,7 @@ akw
alD
vEx
bYe
-biV
+akU
ajC
czu
alW
@@ -107561,12 +108234,12 @@ atI
atI
atI
czu
-mOb
qVM
-vGk
qVM
-teg
-baw
+qVM
+qVM
+qVM
+nTH
sMM
baw
teg
@@ -107713,13 +108386,13 @@ aag
aag
acf
aet
-agv
-afY
-ahp
-afY
-afY
-afY
-bLO
+agS
+aiP
+aYq
+aar
+aIZ
+aIZ
+aIZ
bWK
lYA
adb
@@ -107753,7 +108426,7 @@ onQ
alD
ajl
hon
-biV
+akU
ajC
czu
alW
@@ -107764,10 +108437,10 @@ atI
atI
atI
czu
-ekY
-qVM
-csz
-qVM
+iBt
+iBt
+iBt
+vce
qVM
gnv
yhI
@@ -107917,13 +108590,13 @@ aag
acf
aet
agB
-akY
-akY
-akY
-agP
-afY
-bLO
-ceC
+akW
+aYs
+aar
+aIZ
+aIZ
+aIZ
+aIZ
lYA
vKF
adb
@@ -107956,7 +108629,7 @@ aCp
alD
ajl
wqA
-asS
+aii
ajC
czu
alW
@@ -107967,10 +108640,10 @@ atI
atI
xMk
czu
-wKn
-xCX
-hoX
-qVM
+iBt
+iBt
+iBt
+iBt
qVM
vpn
csI
@@ -108119,14 +108792,14 @@ aag
aag
acv
aez
-agP
+boL
akY
-aqi
+boL
avJ
-afY
-ahl
-bLO
-bWK
+aIZ
+aIZ
+aIZ
+aIZ
lYA
adb
adb
@@ -108159,7 +108832,7 @@ akx
alD
gWG
dtM
-asS
+aii
ajC
czu
alW
@@ -108170,11 +108843,11 @@ atI
atI
atI
czu
-wKn
-qVM
-csz
-qVM
-wiz
+iBt
+iBt
+iBt
+iBt
+qxz
baw
sMM
baw
@@ -108322,14 +108995,14 @@ aag
aag
acv
aez
-afY
+boL
akY
aqk
-avV
-afY
-afY
-bLO
-cit
+aar
+aIZ
+aIZ
+aIZ
+aIZ
lYA
adb
adb
@@ -108362,7 +109035,7 @@ akx
alD
gWG
dtM
-asS
+aii
ajC
czu
alW
@@ -108373,12 +109046,12 @@ atI
atI
atI
czu
-mOb
-qVM
-vGk
+iBt
+iBt
+iBt
+iBt
qVM
-fwD
-baw
+xuY
sMM
baw
oby
@@ -108526,13 +109199,13 @@ aag
acf
aet
agS
-akY
-akY
-akY
-afY
-agP
-bLO
-ceC
+aiP
+aYq
+aar
+aIZ
+aIZ
+aIZ
+aIZ
lYA
adb
adb
@@ -108565,7 +109238,7 @@ hVz
alD
ajl
ahr
-asS
+aii
ajC
czu
alW
@@ -108576,10 +109249,10 @@ atI
atI
atI
czu
-mOb
-qVM
-vGk
-qVM
+iBt
+iBt
+iBt
+iBt
qVM
gnv
yhI
@@ -108728,14 +109401,14 @@ aag
aag
acf
aet
-ahl
-afY
-afY
-afY
-afY
-afY
-bLO
-bWK
+afB
+akW
+biT
+aar
+aar
+aar
+aar
+aar
lYA
adc
adc
@@ -108768,7 +109441,7 @@ nMV
vIf
ajl
aEI
-biV
+akU
gMa
czu
czu
@@ -108779,9 +109452,9 @@ adc
adc
adc
czu
-yji
qVM
-gMA
+qVM
+qVM
qVM
qVM
crh
@@ -108931,16 +109604,16 @@ aag
aag
acv
aez
-agh
-ahp
-afY
+boL
+boL
+boL
ahl
-agh
-ahp
-afY
-aJW
+cWv
+cWv
+cWv
+cWv
kaj
-aww
+uId
adH
adH
fMA
@@ -108971,7 +109644,7 @@ aos
alE
bVE
bYe
-biV
+akU
aGd
aWl
hJu
@@ -108980,12 +109653,12 @@ atC
aAa
aww
aww
-aww
+wst
axs
-bBC
+bbL
bbL
bYe
-yfv
+bbL
bit
baw
baw
@@ -109134,16 +109807,16 @@ aag
aag
acv
aez
-ahp
-agh
-arc
-arc
-arc
-afY
-agh
-aJW
+boL
+asS
+boL
+ceu
+boL
+boL
+boL
+boL
kGL
-azY
+uTY
azY
azY
azY
@@ -109175,17 +109848,17 @@ aSb
aEe
ait
bjJ
-aZE
-aZE
-aZE
-aZE
-xwG
-agl
-agl
-agl
-agl
-sHp
-wta
+abx
+abx
+abx
+abx
+atC
+azY
+azY
+azY
+fad
+kGL
+abg
abg
abg
abg
@@ -109337,18 +110010,18 @@ aah
aah
acf
acf
-aJW
+boL
ale
bDD
nub
-bDD
-ale
-aJW
+dux
+iYr
+dux
ado
+atC
kHT
avn
avn
-avn
mTb
atC
avn
@@ -109386,8 +110059,8 @@ atC
mTb
avn
avn
-avn
-avn
+aim
+atC
avn
bYe
cre
@@ -109540,14 +110213,14 @@ aaa
aaa
aaa
lYA
-aar
-aar
-aar
-aar
-tiM
-aar
-tiM
-aar
+aet
+aet
+biV
+biV
+ekY
+aet
+ekY
+aet
abE
abE
abE
@@ -109742,15 +110415,15 @@ aaa
aaa
aaa
aaa
-lYA
-ahs
+ahx
+aiH
alf
arp
-aar
-aap
-aao
-aap
-aar
+arp
+aiH
+aiH
+aiH
+aet
kPB
aci
aci
@@ -109945,15 +110618,15 @@ aaa
aaa
aaa
aaa
-lYA
-ahu
+ahx
+aiH
alg
-arp
-aar
-aap
-aao
-aap
-aar
+bBC
+bBC
+aIx
+aIB
+aiH
+aet
kPZ
acI
acj
@@ -110149,14 +110822,14 @@ aaa
aaa
aaa
lYA
-ahx
-aap
+aet
+avx
ahN
-aar
-awJ
-aao
+uli
+uli
+uli
bWf
-aar
+aet
lwC
aTT
acl
@@ -110352,14 +111025,14 @@ aaa
aaa
aaa
lYA
-ahy
-aap
-aao
-aar
-pmn
-aao
-bWj
-aar
+aet
+avV
+uli
+uli
+uli
+mov
+bWq
+aet
lhX
aXc
acl
@@ -110541,28 +111214,28 @@ aab
aaa
aaa
aaa
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-lYA
-fZF
-alr
-aao
-sMs
-aao
-aao
+ahx
+aez
+uli
+aIx
+uli
+uli
+mov
bWq
-aar
+aet
lhX
eYM
uuR
@@ -110744,28 +111417,28 @@ aab
aaa
aaa
aaa
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-lYA
-aar
-aar
-aar
-aar
-aap
-aao
-aap
-aar
+ahx
+aez
+uli
+uli
+uli
+uli
+uli
+aiH
+aet
lhX
acl
acl
@@ -110947,28 +111620,28 @@ aab
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
aaa
aaa
aaa
lYA
-aao
-aao
-acD
-aao
-aap
-aao
-aap
-aar
+ahy
+avZ
+ipK
+ipK
+ipK
+uli
+bWf
+aet
lhX
acl
acl
@@ -111150,28 +111823,28 @@ aab
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
aaa
aaa
aaa
lYA
-aao
-aar
-aar
-aar
-aar
-aar
-aao
-aar
+aet
+aIx
+ipK
+ceC
+eRR
+uli
+bWq
+aet
loV
acK
acm
@@ -111353,28 +112026,28 @@ aab
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
aaa
aaa
aaa
lYA
-aap
-aar
-aru
+aet
+uli
+ipK
awe
-fZF
-aar
-aap
-aar
+fwD
+uli
+oGy
+aet
lhX
acl
acl
@@ -111556,28 +112229,28 @@ aab
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
aaa
aaa
aaa
lYA
-wFm
-aar
-ary
-awh
+aet
+avx
ipK
-aar
-wFm
-aar
+ipK
+ipK
+uli
+bWq
+aet
lhX
acl
acl
@@ -111594,7 +112267,7 @@ vOy
aID
gLc
mKx
-mKx
+iit
kZV
vOy
vOy
@@ -111759,28 +112432,28 @@ aab
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
bdH
aaa
aaa
-lYA
-aap
-sMs
-ahN
-aap
-aKc
-aar
-aap
-aar
+ahx
+aez
+uli
+uli
+uli
+uli
+uli
+oWz
+aet
lhX
gsZ
uxO
@@ -111797,7 +112470,7 @@ vOy
aMd
pGK
pRX
-pRX
+mHD
pRX
vOy
jFf
@@ -111962,28 +112635,28 @@ aab
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
bdH
bdH
aaa
-lYA
-uaZ
-aar
-arI
-ahg
+ahx
+aez
+aIB
+aKg
uli
-aar
-aap
-aar
+uli
+mov
+bWq
+aet
lhX
kNO
acl
@@ -111999,7 +112672,7 @@ avj
vOy
aMg
aSo
-mHD
+pRX
mHD
tzL
vOy
@@ -112165,28 +112838,28 @@ aab
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
bdH
aaa
aaa
lYA
-ahN
-aar
-aar
-aar
-aar
-aar
-aao
-aar
+aet
+aJJ
+aIB
+uli
+uli
+mov
+bWq
+aet
lwC
tIK
acl
@@ -112203,7 +112876,7 @@ vOy
aQZ
bkT
pRX
-pRX
+mHD
pRX
vOy
foP
@@ -112368,28 +113041,28 @@ aab
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
bdH
aaa
aaa
lYA
-cIU
-aao
-sMs
-aao
+aet
+avx
+ahN
+aIB
aKg
-aYM
-aao
-aar
+uli
+bWf
+aet
abK
acL
acn
@@ -112406,7 +113079,7 @@ vOy
dVd
lea
hKl
-mKx
+lDN
kZV
vOy
vOy
@@ -112571,28 +113244,28 @@ aab
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
+bdH
bdH
aaa
aaa
-lYA
-ahW
-aao
-aar
-aao
-aap
-aap
-aap
-sMs
+ahx
+aiH
+uli
+bLO
+bLO
+bLO
+bLO
+aiH
+qga
eAU
eAU
eAU
@@ -112635,7 +113308,7 @@ bqo
aRD
aGt
byp
-uTN
+aGt
awE
vGk
qVM
@@ -112774,8 +113447,8 @@ aab
aaa
aaa
aaa
-aaa
-aaa
+bdH
+bdH
aaa
aaa
aaa
@@ -112787,15 +113460,15 @@ aaa
bdH
aaa
aaa
-lYA
+ahx
aiH
-aao
-aar
+aiH
+bWd
awi
-aao
-aao
-aao
-aar
+bWd
+mOb
+aiH
+aet
aBD
acU
uPr
@@ -112991,10 +113664,10 @@ bdH
aaa
aaa
lYA
-aiP
-aao
aar
-awJ
+tiM
+aar
+aar
aNi
aNi
bWr
@@ -113196,8 +113869,8 @@ aaa
lYA
aiS
aao
-aar
aao
+acD
aNi
cYT
aNm
@@ -113399,7 +114072,7 @@ aaa
lYA
aiT
aap
-aar
+aao
aap
aNi
aZe
@@ -113602,7 +114275,7 @@ aaa
lYA
aiU
aap
-aar
+aap
aap
aNi
aZr
@@ -113805,8 +114478,8 @@ aaa
lYA
aiZ
aap
-aar
-tQE
+aao
+aap
aNi
aZs
aNm
@@ -114008,7 +114681,7 @@ aaa
lYA
adf
aao
-aar
+aao
aao
aNi
jWr
@@ -114210,9 +114883,9 @@ aaa
aaa
lYA
fZF
-aao
+aWs
aar
-aao
+tiM
aNi
aNi
aNi
@@ -114413,7 +115086,7 @@ aaa
aaa
lYA
aar
-tiM
+aar
aar
awJ
bzE
@@ -114819,7 +115492,7 @@ aam
aam
aam
lYA
-aao
+qsd
aap
aar
aar
@@ -114860,7 +115533,7 @@ akU
jHG
qVM
qVM
-xeG
+qVM
qVM
qVM
qVM
@@ -115063,8 +115736,8 @@ akU
avj
qVM
nNA
-vGk
-csz
+ekO
+nNA
qVM
iBt
iBt
@@ -115264,10 +115937,10 @@ vOy
ayT
aii
avj
-qVM
-har
+ltK
vGk
-hoX
+hDv
+ghW
qVM
iBt
iBt
@@ -115467,10 +116140,10 @@ vOy
ayT
aii
avj
-qVM
-csz
-vGk
-csz
+ltK
+wYj
+jhY
+fqx
qVM
iBt
iBt
@@ -115670,8 +116343,8 @@ vOy
aEK
aSv
ioX
-qVM
-pzQ
+ltK
+nXF
vGk
bqG
qVM
@@ -115875,7 +116548,7 @@ akV
atL
qVM
qVM
-xeG
+nWc
qVM
qVM
qVM
@@ -116656,7 +117329,7 @@ abg
caF
aar
aar
-aar
+tiM
aar
aar
ael
@@ -116666,8 +117339,8 @@ aih
ael
tnl
amO
-abg
anc
+atC
apJ
apJ
aMl
@@ -116681,8 +117354,8 @@ apJ
aMl
apJ
apJ
+atC
cnv
-abg
amO
lqJ
qVM
@@ -116691,7 +117364,7 @@ xeG
qVM
qVM
qVM
-qVM
+xeG
qVM
qVM
qVM
@@ -116858,9 +117531,9 @@ bWs
abg
caF
aar
-aIZ
-aIZ
-aIZ
+nuY
+sTB
+uaZ
bUA
ael
afE
@@ -116870,7 +117543,7 @@ ael
cZm
akU
abg
-abg
+atC
abg
abx
abx
@@ -116884,7 +117557,7 @@ abx
abx
abx
avD
-abg
+atC
abg
amO
nQx
@@ -116893,9 +117566,9 @@ usi
csz
usi
qVM
-iBt
-iBt
-iBt
+xfh
+vGk
+vGk
adI
qVM
acG
@@ -117061,10 +117734,10 @@ acO
aJs
cbN
aar
-aIZ
-aIZ
-aIZ
-aIZ
+sTB
+aap
+aao
+vFb
ael
afH
agV
@@ -117072,8 +117745,8 @@ ain
ael
eGl
aii
-abg
anf
+atC
apK
anf
apK
@@ -117087,19 +117760,19 @@ aDp
apK
cbr
apK
+atC
cbr
-abg
amO
-abg
+uGt
qVM
qVM
vGk
har
qVM
-iBt
-iBt
-iBt
-iBt
+xHG
+csz
+vGk
+xHG
qVM
aJd
aJs
@@ -117263,11 +117936,11 @@ aba
pNQ
abx
hTy
-bWd
-aIZ
-aIZ
-aIZ
-aIZ
+aar
+teB
+aao
+aao
+wta
ael
afI
agY
@@ -117275,7 +117948,7 @@ oxi
xfm
als
ani
-aow
+anc
mOi
mOi
mOi
@@ -117291,19 +117964,19 @@ aHq
aHq
aHq
aHq
-abg
+iWN
ajt
-abg
+kGI
aPm
qVM
vGk
-hoX
+csz
+xCX
+vGk
+vGk
+vGk
+csz
qVM
-iBt
-iBt
-iBt
-iBt
-nuY
jSY
abx
hLO
@@ -117465,12 +118138,12 @@ aIZ
aar
acP
bUE
-cbO
+qFQ
aar
-aIZ
-aIZ
-aIZ
-aIZ
+aao
+aap
+aao
+sTB
ael
afJ
agY
@@ -117478,7 +118151,7 @@ aiq
ajJ
aEX
ajt
-ali
+aow
mOi
rCw
rCw
@@ -117496,18 +118169,18 @@ bti
aHq
sDC
ajt
-abg
+kGI
ejp
qVM
vGk
-csz
+hoX
qVM
-iBt
-iBt
-iBt
-iBt
+xHG
+csz
+vGk
+csz
qVM
-acP
+sah
bUE
cbO
qVM
@@ -117670,10 +118343,10 @@ acG
abx
caF
aar
-aIZ
-aIZ
-aIZ
-aIZ
+aap
+aap
+aao
+sTB
ael
afK
ahc
@@ -117681,7 +118354,7 @@ air
ael
isW
ajt
-abg
+ali
mOi
wCT
sIf
@@ -117699,16 +118372,16 @@ rUy
cnS
iWN
ajt
-abg
+nYv
qVM
qVM
vGk
pzQ
qVM
-iBt
-iBt
-iBt
-iBt
+usi
+vzl
+vGk
+csz
qVM
acG
abx
@@ -117873,10 +118546,10 @@ oPD
abx
lCz
aar
-aar
-aar
-aar
-aar
+tAV
+sTB
+uvS
+wKn
ael
afL
ahe
@@ -117902,7 +118575,7 @@ dxv
cnS
cnv
ajt
-anf
+bYe
xCX
csz
csz
@@ -117910,7 +118583,7 @@ dWm
qVM
qVM
qVM
-qVM
+xeG
qVM
qVM
oPD
@@ -118076,10 +118749,10 @@ acG
abx
caF
aar
-aIZ
-aIZ
-aIZ
-bUA
+tiM
+aar
+aar
+aar
adO
adO
adO
@@ -118111,10 +118784,10 @@ qVM
qVM
qVM
qVM
-iBt
-iBt
-iBt
-adI
+xfh
+xWF
+vGk
+yji
qVM
acG
abx
@@ -118279,10 +118952,10 @@ acO
aJs
arJ
aar
-aIZ
-aIZ
-aIZ
-aIZ
+aao
+aao
+uGz
+uGz
adO
afM
fpR
@@ -118314,10 +118987,10 @@ aXx
jKI
aXx
qVM
-iBt
-iBt
-iBt
-iBt
+usi
+csz
+vGk
+csz
qVM
acO
aJs
@@ -118481,11 +119154,11 @@ bWh
jSY
abx
hTy
-xHG
-aIZ
-aIZ
-aIZ
-aIZ
+aar
+wFm
+tQE
+aao
+sTB
adO
afN
ahh
@@ -118517,11 +119190,11 @@ oyE
mMP
mMP
qVM
-iBt
-iBt
-iBt
-iBt
-xfh
+vGk
+csz
+vGk
+csz
+qVM
jSY
abx
hLO
@@ -118683,12 +119356,12 @@ aIZ
aar
acP
bUE
-cbO
+qFQ
aar
-aIZ
-aIZ
-aIZ
-aIZ
+aap
+aap
+aao
+fZF
adO
afO
ahh
@@ -118720,12 +119393,12 @@ sIA
gSj
aXA
qVM
-iBt
-iBt
-iBt
-iBt
+vGk
+csz
+vGk
+xHG
qVM
-acP
+sah
bUE
cbO
qVM
@@ -118888,10 +119561,10 @@ aJa
abg
ccf
aar
-aIZ
-aIZ
-aIZ
-aIZ
+tDA
+aao
+aap
+fZF
adO
jkj
ahh
@@ -118923,10 +119596,10 @@ ckK
iKM
aHM
qVM
-iBt
-iBt
-iBt
-iBt
+vGk
+csz
+yji
+uso
qVM
aJa
abg
@@ -119093,7 +119766,7 @@ kOG
aar
aar
aar
-aar
+tiM
aar
aar
lFt
@@ -119126,7 +119799,7 @@ dbv
lII
aWc
qVM
-qVM
+xeG
qVM
qVM
qVM
@@ -119197,8 +119870,8 @@ aQL
mJP
bSn
aQL
-aLG
-aNO
+vHs
+ehH
aYZ
sLE
bAV
@@ -119224,8 +119897,8 @@ bCB
cbv
iEb
bHY
-bHa
-buH
+mru
+syP
bJC
jSp
lAQ
@@ -119297,7 +119970,7 @@ aiv
ahg
aap
aap
-aap
+aao
rfg
aiw
ahh
@@ -119400,8 +120073,8 @@ aTw
aUj
kLk
aQL
-aWN
-aLG
+mTn
+aiy
aYZ
sLE
bbk
@@ -119427,8 +120100,8 @@ bdk
bGh
iEb
bHY
-buH
-fBx
+njy
+hkE
bJC
ojF
bNG
@@ -119604,7 +120277,7 @@ aQL
aQL
aQL
aQL
-aLG
+uQn
aYZ
sLE
bbl
@@ -119630,7 +120303,7 @@ bdl
bGi
iEb
bHY
-buH
+oyy
bJC
bJC
bJC
@@ -120507,8 +121180,8 @@ aeC
asV
ayn
atr
-bbV
-atr
+aeA
+aex
ciw
asV
aeC
@@ -120554,8 +121227,8 @@ kkx
vcE
mMu
iMx
-bXe
-jMm
+tGi
+lJY
bXe
eyG
mMu
@@ -120913,7 +121586,7 @@ aeA
atp
ayR
atr
-bbZ
+eGb
atr
cji
nqV
@@ -120961,7 +121634,7 @@ lJY
hlX
umh
bXe
-kFe
+lxT
tGi
pfH
wlF
@@ -121110,13 +121783,13 @@ aaa
bdH
abh
acx
-aeC
+umR
ajs
aeC
asV
ayn
atr
-aeC
+aeA
bXz
ciw
asV
@@ -121164,13 +121837,13 @@ vcE
mMu
iMx
bXe
-yjM
-bXe
+lJY
+mzF
eyG
mMu
vcE
kUV
-vcE
+pPF
rRq
uOi
bdH
@@ -122127,7 +122800,7 @@ abh
abh
abh
abh
-nPX
+aeC
atr
aeC
atr
@@ -122183,7 +122856,7 @@ vcE
bXe
vcE
bXe
-sYn
+vcE
uOi
uOi
uOi
@@ -122330,7 +123003,7 @@ aad
aag
aag
abh
-qbO
+aeC
atr
aeC
atr
@@ -122386,7 +123059,7 @@ vcE
bXe
vcE
bXe
-sht
+vcE
uOi
aag
aag
@@ -122571,7 +123244,7 @@ fDG
alL
alG
aYD
-wyK
+aTS
qgK
tEB
uBM
@@ -123666,8 +124339,8 @@ aQL
aQL
aLG
aYO
-aLG
-jJs
+kBK
+hyt
bdl
tFS
bdj
@@ -123687,8 +124360,8 @@ jaR
mJa
wWP
rsK
-pJJ
-buH
+aGc
+kkE
iEb
bIT
bJC
@@ -123869,7 +124542,7 @@ bES
kcl
aLG
aYO
-aLG
+sou
bAX
bdl
wIr
@@ -123891,7 +124564,7 @@ bdl
bdl
bdl
dhU
-buH
+vzq
iEb
bIT
hNw
@@ -125378,7 +126051,7 @@ pVZ
xlX
psm
psm
-jFX
+ahX
psm
psm
fnZ
@@ -125498,7 +126171,7 @@ kFY
jmK
bDL
bbs
-iit
+ccQ
bCN
rbF
vub
@@ -133301,7 +133974,7 @@ aaa
aaa
uMc
iKc
-iVY
+uiG
cMN
trB
nVX
diff --git a/maps/templates/Chinook.dmm b/maps/templates/Chinook.dmm
index f2acbe320aeb..17be7bd9b968 100644
--- a/maps/templates/Chinook.dmm
+++ b/maps/templates/Chinook.dmm
@@ -416,7 +416,7 @@
/area/adminlevel/chinook/offices)
"bx" = (
/obj/structure/surface/table/reinforced/almayer_B,
-/obj/item/tool/weldingtool/largetank{
+/obj/item/tool/weldingtool{
pixel_x = -9;
pixel_y = 4
},
@@ -427,7 +427,7 @@
pixel_x = 13;
pixel_y = 5
},
-/obj/item/tool/weldingtool/largetank{
+/obj/item/tool/weldingtool{
pixel_x = -2;
pixel_y = 6
},
@@ -700,7 +700,7 @@
/area/adminlevel/chinook/sec)
"cy" = (
/obj/structure/surface/table/almayer,
-/obj/item/tool/weldingtool/largetank,
+/obj/item/tool/weldingtool,
/turf/open/floor/almayer{
dir = 1;
icon_state = "orange"
@@ -9148,7 +9148,7 @@
/obj/effect/decal/warning_stripes{
icon_state = "W"
},
-/obj/item/tool/weldingtool/largetank{
+/obj/item/tool/weldingtool{
pixel_x = 14;
pixel_y = -14
},
@@ -10758,9 +10758,9 @@
/area/adminlevel/chinook/sec)
"Od" = (
/obj/structure/surface/table/almayer,
-/obj/item/tool/weldingtool/largetank,
-/obj/item/tool/weldingtool/largetank,
-/obj/item/tool/weldingtool/largetank,
+/obj/item/tool/weldingtool,
+/obj/item/tool/weldingtool,
+/obj/item/tool/weldingtool,
/obj/item/stack/cable_coil,
/obj/item/stack/cable_coil,
/obj/item/stack/cable_coil,
@@ -14056,7 +14056,7 @@
/area/adminlevel/chinook/medical)
"ZH" = (
/obj/structure/machinery/power/port_gen/pacman,
-/obj/item/tool/weldingtool/largetank,
+/obj/item/tool/weldingtool,
/obj/structure/sign/safety/high_voltage{
pixel_y = 25
},
diff --git a/maps/templates/clf_ert_station.dmm b/maps/templates/clf_ert_station.dmm
index 9d6ccd92aaa0..7347be914da2 100644
--- a/maps/templates/clf_ert_station.dmm
+++ b/maps/templates/clf_ert_station.dmm
@@ -1658,7 +1658,7 @@
name = "CLF Outpost";
phone_category = "CLF";
phone_id = "CLF Outpost";
- callable = 0;
+ do_not_disturb = 2;
pixel_y = 10
},
/turf/open/floor/wood,
diff --git a/maps/templates/upp_ert_station.dmm b/maps/templates/upp_ert_station.dmm
index 4aff44053f78..ae2a8ad40c47 100644
--- a/maps/templates/upp_ert_station.dmm
+++ b/maps/templates/upp_ert_station.dmm
@@ -729,7 +729,7 @@
},
/area/adminlevel/ert_station/upp_station)
"kN" = (
-/obj/item/tool/weldingtool/largetank,
+/obj/item/tool/weldingtool,
/obj/item/clothing/glasses/welding,
/obj/structure/machinery/light/double/blue{
dir = 8
@@ -880,7 +880,7 @@
name = "UPP Station";
phone_category = "UPP";
phone_id = "UPP Station";
- callable = 0
+ do_not_disturb = 2
},
/turf/open/floor/strata{
icon_state = "floor2"
diff --git a/maps/templates/weyland_ert_station.dmm b/maps/templates/weyland_ert_station.dmm
index ce495acd3f65..1937aa6a61a9 100644
--- a/maps/templates/weyland_ert_station.dmm
+++ b/maps/templates/weyland_ert_station.dmm
@@ -2546,7 +2546,7 @@
/area/adminlevel/ert_station/weyland_station)
"FD" = (
/obj/structure/surface/table/reinforced/almayer_B,
-/obj/item/tool/weldingtool/largetank,
+/obj/item/tool/weldingtool,
/obj/item/clothing/glasses/welding,
/turf/open/floor/corsat{
icon_state = "squares"
@@ -2795,7 +2795,7 @@
"Js" = (
/obj/structure/surface/table/reinforced/black,
/obj/structure/transmitter/rotary{
- callable = 0;
+ do_not_disturb = 2;
name = "Weyland-Yutani Station CiC";
phone_category = "W-Y";
phone_id = "W-Y Station CiC"
@@ -3588,7 +3588,7 @@
"SE" = (
/obj/structure/surface/table/woodentable/fancy,
/obj/structure/transmitter/rotary{
- callable = 0;
+ do_not_disturb = 2;
name = "Weyland-Yutani Station Meeting Room";
phone_category = "W-Y";
phone_id = "W-Y Station Meeting Room"
diff --git a/nano/templates/clan_menu.tmpl b/nano/templates/clan_menu.tmpl
index 98ac3057a10a..cd987e9079f6 100644
--- a/nano/templates/clan_menu.tmpl
+++ b/nano/templates/clan_menu.tmpl
@@ -46,7 +46,7 @@
}
#clan_list {
- border-collapse: collapse;
+ border-collapse: collapse;
width: 100%;
}
@@ -76,9 +76,6 @@
{{:data.clan_name}}
{{:data.clan_description}}
- {{if data.clan_honor != null}}
-
Honor: {{:data.clan_honor}}
- {{/if}}
{{if data.player_rename_clan}}
@@ -111,7 +108,6 @@
Name
Rank
- Honor
{{if data.player_modify_ranks}}
{{/if}}
@@ -128,7 +124,6 @@
{{:keys.name}}
{{:keys.rank}}
- {{:keys.honor}}
{{if data.player_rank_pos > keys.rank_pos}}
{{if data.player_modify_ranks}}
{{:helper.link('Set Rank', '', { 'clan_target_href' : keys.player_id, 'clan_action': 'modifyrank' })}}
@@ -142,4 +137,4 @@
{{/if}}
{{/props}}
-
\ No newline at end of file
+
diff --git a/sound/piano/A#1.ogg b/sound/piano/A#1.ogg
deleted file mode 100644
index ae41c0a189b1..000000000000
Binary files a/sound/piano/A#1.ogg and /dev/null differ
diff --git a/sound/piano/A#2.ogg b/sound/piano/A#2.ogg
deleted file mode 100644
index c35ce012b3ee..000000000000
Binary files a/sound/piano/A#2.ogg and /dev/null differ
diff --git a/sound/piano/A#3.ogg b/sound/piano/A#3.ogg
deleted file mode 100644
index 9ea8795bcf31..000000000000
Binary files a/sound/piano/A#3.ogg and /dev/null differ
diff --git a/sound/piano/A#4.ogg b/sound/piano/A#4.ogg
deleted file mode 100644
index aeb41ce1a722..000000000000
Binary files a/sound/piano/A#4.ogg and /dev/null differ
diff --git a/sound/piano/A#5.ogg b/sound/piano/A#5.ogg
deleted file mode 100644
index eca721384308..000000000000
Binary files a/sound/piano/A#5.ogg and /dev/null differ
diff --git a/sound/piano/A#6.ogg b/sound/piano/A#6.ogg
deleted file mode 100644
index 0ae9e89b0c28..000000000000
Binary files a/sound/piano/A#6.ogg and /dev/null differ
diff --git a/sound/piano/A#7.ogg b/sound/piano/A#7.ogg
deleted file mode 100644
index e1b469da8164..000000000000
Binary files a/sound/piano/A#7.ogg and /dev/null differ
diff --git a/sound/piano/A#8.ogg b/sound/piano/A#8.ogg
deleted file mode 100644
index 83bd263e9804..000000000000
Binary files a/sound/piano/A#8.ogg and /dev/null differ
diff --git a/sound/piano/Ab1.ogg b/sound/piano/Ab1.ogg
deleted file mode 100644
index 1f67015756c2..000000000000
Binary files a/sound/piano/Ab1.ogg and /dev/null differ
diff --git a/sound/piano/Ab2.ogg b/sound/piano/Ab2.ogg
deleted file mode 100644
index 985bfd608212..000000000000
Binary files a/sound/piano/Ab2.ogg and /dev/null differ
diff --git a/sound/piano/Ab3.ogg b/sound/piano/Ab3.ogg
deleted file mode 100644
index 5dbcb2d7c634..000000000000
Binary files a/sound/piano/Ab3.ogg and /dev/null differ
diff --git a/sound/piano/Ab4.ogg b/sound/piano/Ab4.ogg
deleted file mode 100644
index 01add48a44ad..000000000000
Binary files a/sound/piano/Ab4.ogg and /dev/null differ
diff --git a/sound/piano/Ab5.ogg b/sound/piano/Ab5.ogg
deleted file mode 100644
index 6fbe70844dc3..000000000000
Binary files a/sound/piano/Ab5.ogg and /dev/null differ
diff --git a/sound/piano/Ab6.ogg b/sound/piano/Ab6.ogg
deleted file mode 100644
index 82b5a84e6824..000000000000
Binary files a/sound/piano/Ab6.ogg and /dev/null differ
diff --git a/sound/piano/Ab7.ogg b/sound/piano/Ab7.ogg
deleted file mode 100644
index 391b1c1185af..000000000000
Binary files a/sound/piano/Ab7.ogg and /dev/null differ
diff --git a/sound/piano/Ab8.ogg b/sound/piano/Ab8.ogg
deleted file mode 100644
index aa83b7aaab90..000000000000
Binary files a/sound/piano/Ab8.ogg and /dev/null differ
diff --git a/sound/piano/An1.ogg b/sound/piano/An1.ogg
deleted file mode 100644
index 4a87d59adac5..000000000000
Binary files a/sound/piano/An1.ogg and /dev/null differ
diff --git a/sound/piano/An2.ogg b/sound/piano/An2.ogg
deleted file mode 100644
index f5327d0d7cf1..000000000000
Binary files a/sound/piano/An2.ogg and /dev/null differ
diff --git a/sound/piano/An3.ogg b/sound/piano/An3.ogg
deleted file mode 100644
index 7c3e8a031e80..000000000000
Binary files a/sound/piano/An3.ogg and /dev/null differ
diff --git a/sound/piano/An4.ogg b/sound/piano/An4.ogg
deleted file mode 100644
index 2ba84a58a6e3..000000000000
Binary files a/sound/piano/An4.ogg and /dev/null differ
diff --git a/sound/piano/An5.ogg b/sound/piano/An5.ogg
deleted file mode 100644
index 5e04fc8c7fbc..000000000000
Binary files a/sound/piano/An5.ogg and /dev/null differ
diff --git a/sound/piano/An6.ogg b/sound/piano/An6.ogg
deleted file mode 100644
index 48b639d77f2d..000000000000
Binary files a/sound/piano/An6.ogg and /dev/null differ
diff --git a/sound/piano/An7.ogg b/sound/piano/An7.ogg
deleted file mode 100644
index 5d93800f28a6..000000000000
Binary files a/sound/piano/An7.ogg and /dev/null differ
diff --git a/sound/piano/An8.ogg b/sound/piano/An8.ogg
deleted file mode 100644
index e01acd4e7e13..000000000000
Binary files a/sound/piano/An8.ogg and /dev/null differ
diff --git a/sound/piano/B#1.ogg b/sound/piano/B#1.ogg
deleted file mode 100644
index bcdd2bfd4a1c..000000000000
Binary files a/sound/piano/B#1.ogg and /dev/null differ
diff --git a/sound/piano/B#2.ogg b/sound/piano/B#2.ogg
deleted file mode 100644
index 0effb061b460..000000000000
Binary files a/sound/piano/B#2.ogg and /dev/null differ
diff --git a/sound/piano/B#3.ogg b/sound/piano/B#3.ogg
deleted file mode 100644
index 64f390516fc3..000000000000
Binary files a/sound/piano/B#3.ogg and /dev/null differ
diff --git a/sound/piano/B#4.ogg b/sound/piano/B#4.ogg
deleted file mode 100644
index a423bbb83d21..000000000000
Binary files a/sound/piano/B#4.ogg and /dev/null differ
diff --git a/sound/piano/B#5.ogg b/sound/piano/B#5.ogg
deleted file mode 100644
index 9a63a927fd08..000000000000
Binary files a/sound/piano/B#5.ogg and /dev/null differ
diff --git a/sound/piano/B#6.ogg b/sound/piano/B#6.ogg
deleted file mode 100644
index be35faabf563..000000000000
Binary files a/sound/piano/B#6.ogg and /dev/null differ
diff --git a/sound/piano/B#7.ogg b/sound/piano/B#7.ogg
deleted file mode 100644
index cbb2ad3bc152..000000000000
Binary files a/sound/piano/B#7.ogg and /dev/null differ
diff --git a/sound/piano/B#8.ogg b/sound/piano/B#8.ogg
deleted file mode 100644
index 5297b755a356..000000000000
Binary files a/sound/piano/B#8.ogg and /dev/null differ
diff --git a/sound/piano/Bb1.ogg b/sound/piano/Bb1.ogg
deleted file mode 100644
index 617f36454115..000000000000
Binary files a/sound/piano/Bb1.ogg and /dev/null differ
diff --git a/sound/piano/Bb2.ogg b/sound/piano/Bb2.ogg
deleted file mode 100644
index eb4215daa4c1..000000000000
Binary files a/sound/piano/Bb2.ogg and /dev/null differ
diff --git a/sound/piano/Bb3.ogg b/sound/piano/Bb3.ogg
deleted file mode 100644
index 35f7eb53d47c..000000000000
Binary files a/sound/piano/Bb3.ogg and /dev/null differ
diff --git a/sound/piano/Bb4.ogg b/sound/piano/Bb4.ogg
deleted file mode 100644
index 1eef7b921392..000000000000
Binary files a/sound/piano/Bb4.ogg and /dev/null differ
diff --git a/sound/piano/Bb5.ogg b/sound/piano/Bb5.ogg
deleted file mode 100644
index 118867fd1468..000000000000
Binary files a/sound/piano/Bb5.ogg and /dev/null differ
diff --git a/sound/piano/Bb6.ogg b/sound/piano/Bb6.ogg
deleted file mode 100644
index 700b2c5abd7f..000000000000
Binary files a/sound/piano/Bb6.ogg and /dev/null differ
diff --git a/sound/piano/Bb7.ogg b/sound/piano/Bb7.ogg
deleted file mode 100644
index c50955bf01c3..000000000000
Binary files a/sound/piano/Bb7.ogg and /dev/null differ
diff --git a/sound/piano/Bb8.ogg b/sound/piano/Bb8.ogg
deleted file mode 100644
index b076c4b4e2be..000000000000
Binary files a/sound/piano/Bb8.ogg and /dev/null differ
diff --git a/sound/piano/Bn1.ogg b/sound/piano/Bn1.ogg
deleted file mode 100644
index 256534881c18..000000000000
Binary files a/sound/piano/Bn1.ogg and /dev/null differ
diff --git a/sound/piano/Bn2.ogg b/sound/piano/Bn2.ogg
deleted file mode 100644
index 8ed87aa49e77..000000000000
Binary files a/sound/piano/Bn2.ogg and /dev/null differ
diff --git a/sound/piano/Bn3.ogg b/sound/piano/Bn3.ogg
deleted file mode 100644
index 19788aad716c..000000000000
Binary files a/sound/piano/Bn3.ogg and /dev/null differ
diff --git a/sound/piano/Bn4.ogg b/sound/piano/Bn4.ogg
deleted file mode 100644
index 773f5b3bd3bf..000000000000
Binary files a/sound/piano/Bn4.ogg and /dev/null differ
diff --git a/sound/piano/Bn5.ogg b/sound/piano/Bn5.ogg
deleted file mode 100644
index 3297fab1d597..000000000000
Binary files a/sound/piano/Bn5.ogg and /dev/null differ
diff --git a/sound/piano/Bn6.ogg b/sound/piano/Bn6.ogg
deleted file mode 100644
index 35a39b20f66a..000000000000
Binary files a/sound/piano/Bn6.ogg and /dev/null differ
diff --git a/sound/piano/Bn7.ogg b/sound/piano/Bn7.ogg
deleted file mode 100644
index e7a8ba403430..000000000000
Binary files a/sound/piano/Bn7.ogg and /dev/null differ
diff --git a/sound/piano/Bn8.ogg b/sound/piano/Bn8.ogg
deleted file mode 100644
index 2c821e818539..000000000000
Binary files a/sound/piano/Bn8.ogg and /dev/null differ
diff --git a/sound/piano/C#1.ogg b/sound/piano/C#1.ogg
deleted file mode 100644
index be3d7e3e3081..000000000000
Binary files a/sound/piano/C#1.ogg and /dev/null differ
diff --git a/sound/piano/C#2.ogg b/sound/piano/C#2.ogg
deleted file mode 100644
index cefe3a745dc0..000000000000
Binary files a/sound/piano/C#2.ogg and /dev/null differ
diff --git a/sound/piano/C#3.ogg b/sound/piano/C#3.ogg
deleted file mode 100644
index dc3d0878475f..000000000000
Binary files a/sound/piano/C#3.ogg and /dev/null differ
diff --git a/sound/piano/C#4.ogg b/sound/piano/C#4.ogg
deleted file mode 100644
index c31a44bdf6dd..000000000000
Binary files a/sound/piano/C#4.ogg and /dev/null differ
diff --git a/sound/piano/C#5.ogg b/sound/piano/C#5.ogg
deleted file mode 100644
index c5d10d13764d..000000000000
Binary files a/sound/piano/C#5.ogg and /dev/null differ
diff --git a/sound/piano/C#6.ogg b/sound/piano/C#6.ogg
deleted file mode 100644
index a084a04de146..000000000000
Binary files a/sound/piano/C#6.ogg and /dev/null differ
diff --git a/sound/piano/C#7.ogg b/sound/piano/C#7.ogg
deleted file mode 100644
index 6da255f5aea0..000000000000
Binary files a/sound/piano/C#7.ogg and /dev/null differ
diff --git a/sound/piano/C#8.ogg b/sound/piano/C#8.ogg
deleted file mode 100644
index b4d4cbe41579..000000000000
Binary files a/sound/piano/C#8.ogg and /dev/null differ
diff --git a/sound/piano/Cb2.ogg b/sound/piano/Cb2.ogg
deleted file mode 100644
index cefff94c1465..000000000000
Binary files a/sound/piano/Cb2.ogg and /dev/null differ
diff --git a/sound/piano/Cb3.ogg b/sound/piano/Cb3.ogg
deleted file mode 100644
index 0425228ee726..000000000000
Binary files a/sound/piano/Cb3.ogg and /dev/null differ
diff --git a/sound/piano/Cb4.ogg b/sound/piano/Cb4.ogg
deleted file mode 100644
index e9c8ad22e94b..000000000000
Binary files a/sound/piano/Cb4.ogg and /dev/null differ
diff --git a/sound/piano/Cb5.ogg b/sound/piano/Cb5.ogg
deleted file mode 100644
index 611c8ef9e42e..000000000000
Binary files a/sound/piano/Cb5.ogg and /dev/null differ
diff --git a/sound/piano/Cb6.ogg b/sound/piano/Cb6.ogg
deleted file mode 100644
index 3fe79c61ef92..000000000000
Binary files a/sound/piano/Cb6.ogg and /dev/null differ
diff --git a/sound/piano/Cb7.ogg b/sound/piano/Cb7.ogg
deleted file mode 100644
index ff6a3fb00726..000000000000
Binary files a/sound/piano/Cb7.ogg and /dev/null differ
diff --git a/sound/piano/Cb8.ogg b/sound/piano/Cb8.ogg
deleted file mode 100644
index 8ff3d57fe907..000000000000
Binary files a/sound/piano/Cb8.ogg and /dev/null differ
diff --git a/sound/piano/Cb9.ogg b/sound/piano/Cb9.ogg
deleted file mode 100644
index fa2a3de7a777..000000000000
Binary files a/sound/piano/Cb9.ogg and /dev/null differ
diff --git a/sound/piano/Cn1.ogg b/sound/piano/Cn1.ogg
deleted file mode 100644
index 86fba1381012..000000000000
Binary files a/sound/piano/Cn1.ogg and /dev/null differ
diff --git a/sound/piano/Cn2.ogg b/sound/piano/Cn2.ogg
deleted file mode 100644
index e069259e8507..000000000000
Binary files a/sound/piano/Cn2.ogg and /dev/null differ
diff --git a/sound/piano/Cn3.ogg b/sound/piano/Cn3.ogg
deleted file mode 100644
index 01f5bcde7c5d..000000000000
Binary files a/sound/piano/Cn3.ogg and /dev/null differ
diff --git a/sound/piano/Cn4.ogg b/sound/piano/Cn4.ogg
deleted file mode 100644
index 2545ccb996b9..000000000000
Binary files a/sound/piano/Cn4.ogg and /dev/null differ
diff --git a/sound/piano/Cn5.ogg b/sound/piano/Cn5.ogg
deleted file mode 100644
index 601fd5340b37..000000000000
Binary files a/sound/piano/Cn5.ogg and /dev/null differ
diff --git a/sound/piano/Cn6.ogg b/sound/piano/Cn6.ogg
deleted file mode 100644
index f89c2c78f3af..000000000000
Binary files a/sound/piano/Cn6.ogg and /dev/null differ
diff --git a/sound/piano/Cn7.ogg b/sound/piano/Cn7.ogg
deleted file mode 100644
index 09723616a74c..000000000000
Binary files a/sound/piano/Cn7.ogg and /dev/null differ
diff --git a/sound/piano/Cn8.ogg b/sound/piano/Cn8.ogg
deleted file mode 100644
index 4c7e2b44c6fc..000000000000
Binary files a/sound/piano/Cn8.ogg and /dev/null differ
diff --git a/sound/piano/Cn9.ogg b/sound/piano/Cn9.ogg
deleted file mode 100644
index 2b6812d62b24..000000000000
Binary files a/sound/piano/Cn9.ogg and /dev/null differ
diff --git a/sound/piano/D#1.ogg b/sound/piano/D#1.ogg
deleted file mode 100644
index d772320b150d..000000000000
Binary files a/sound/piano/D#1.ogg and /dev/null differ
diff --git a/sound/piano/D#2.ogg b/sound/piano/D#2.ogg
deleted file mode 100644
index ae9d529e907c..000000000000
Binary files a/sound/piano/D#2.ogg and /dev/null differ
diff --git a/sound/piano/D#3.ogg b/sound/piano/D#3.ogg
deleted file mode 100644
index 63fc4fdd5953..000000000000
Binary files a/sound/piano/D#3.ogg and /dev/null differ
diff --git a/sound/piano/D#4.ogg b/sound/piano/D#4.ogg
deleted file mode 100644
index 39cf1adbca97..000000000000
Binary files a/sound/piano/D#4.ogg and /dev/null differ
diff --git a/sound/piano/D#5.ogg b/sound/piano/D#5.ogg
deleted file mode 100644
index 071a57544aee..000000000000
Binary files a/sound/piano/D#5.ogg and /dev/null differ
diff --git a/sound/piano/D#6.ogg b/sound/piano/D#6.ogg
deleted file mode 100644
index 7ee1bd4bfa07..000000000000
Binary files a/sound/piano/D#6.ogg and /dev/null differ
diff --git a/sound/piano/D#7.ogg b/sound/piano/D#7.ogg
deleted file mode 100644
index 19f72532dde6..000000000000
Binary files a/sound/piano/D#7.ogg and /dev/null differ
diff --git a/sound/piano/D#8.ogg b/sound/piano/D#8.ogg
deleted file mode 100644
index ee87d875bd40..000000000000
Binary files a/sound/piano/D#8.ogg and /dev/null differ
diff --git a/sound/piano/Db1.ogg b/sound/piano/Db1.ogg
deleted file mode 100644
index 9166b7335552..000000000000
Binary files a/sound/piano/Db1.ogg and /dev/null differ
diff --git a/sound/piano/Db2.ogg b/sound/piano/Db2.ogg
deleted file mode 100644
index 623acd0ec54f..000000000000
Binary files a/sound/piano/Db2.ogg and /dev/null differ
diff --git a/sound/piano/Db3.ogg b/sound/piano/Db3.ogg
deleted file mode 100644
index 5c8943b4da9f..000000000000
Binary files a/sound/piano/Db3.ogg and /dev/null differ
diff --git a/sound/piano/Db4.ogg b/sound/piano/Db4.ogg
deleted file mode 100644
index 2deb5b8d9173..000000000000
Binary files a/sound/piano/Db4.ogg and /dev/null differ
diff --git a/sound/piano/Db5.ogg b/sound/piano/Db5.ogg
deleted file mode 100644
index 9c77ee37a7d8..000000000000
Binary files a/sound/piano/Db5.ogg and /dev/null differ
diff --git a/sound/piano/Db6.ogg b/sound/piano/Db6.ogg
deleted file mode 100644
index 49e1e04dff84..000000000000
Binary files a/sound/piano/Db6.ogg and /dev/null differ
diff --git a/sound/piano/Db7.ogg b/sound/piano/Db7.ogg
deleted file mode 100644
index b53fd2f27e03..000000000000
Binary files a/sound/piano/Db7.ogg and /dev/null differ
diff --git a/sound/piano/Db8.ogg b/sound/piano/Db8.ogg
deleted file mode 100644
index af6cfdffad62..000000000000
Binary files a/sound/piano/Db8.ogg and /dev/null differ
diff --git a/sound/piano/Dn1.ogg b/sound/piano/Dn1.ogg
deleted file mode 100644
index c6dd20cb65b4..000000000000
Binary files a/sound/piano/Dn1.ogg and /dev/null differ
diff --git a/sound/piano/Dn2.ogg b/sound/piano/Dn2.ogg
deleted file mode 100644
index 0783087dc658..000000000000
Binary files a/sound/piano/Dn2.ogg and /dev/null differ
diff --git a/sound/piano/Dn3.ogg b/sound/piano/Dn3.ogg
deleted file mode 100644
index bf7bd97ad137..000000000000
Binary files a/sound/piano/Dn3.ogg and /dev/null differ
diff --git a/sound/piano/Dn4.ogg b/sound/piano/Dn4.ogg
deleted file mode 100644
index e35a6af447e8..000000000000
Binary files a/sound/piano/Dn4.ogg and /dev/null differ
diff --git a/sound/piano/Dn5.ogg b/sound/piano/Dn5.ogg
deleted file mode 100644
index 7e355266c0f5..000000000000
Binary files a/sound/piano/Dn5.ogg and /dev/null differ
diff --git a/sound/piano/Dn6.ogg b/sound/piano/Dn6.ogg
deleted file mode 100644
index 5da94c15adf2..000000000000
Binary files a/sound/piano/Dn6.ogg and /dev/null differ
diff --git a/sound/piano/Dn7.ogg b/sound/piano/Dn7.ogg
deleted file mode 100644
index ac43398ece62..000000000000
Binary files a/sound/piano/Dn7.ogg and /dev/null differ
diff --git a/sound/piano/Dn8.ogg b/sound/piano/Dn8.ogg
deleted file mode 100644
index 534e51e72013..000000000000
Binary files a/sound/piano/Dn8.ogg and /dev/null differ
diff --git a/sound/piano/E#1.ogg b/sound/piano/E#1.ogg
deleted file mode 100644
index 46fd3d50c91b..000000000000
Binary files a/sound/piano/E#1.ogg and /dev/null differ
diff --git a/sound/piano/E#2.ogg b/sound/piano/E#2.ogg
deleted file mode 100644
index eece0448208d..000000000000
Binary files a/sound/piano/E#2.ogg and /dev/null differ
diff --git a/sound/piano/E#3.ogg b/sound/piano/E#3.ogg
deleted file mode 100644
index d5acee8dfa7f..000000000000
Binary files a/sound/piano/E#3.ogg and /dev/null differ
diff --git a/sound/piano/E#4.ogg b/sound/piano/E#4.ogg
deleted file mode 100644
index 3e75fccc91b9..000000000000
Binary files a/sound/piano/E#4.ogg and /dev/null differ
diff --git a/sound/piano/E#5.ogg b/sound/piano/E#5.ogg
deleted file mode 100644
index cc91527d0ea0..000000000000
Binary files a/sound/piano/E#5.ogg and /dev/null differ
diff --git a/sound/piano/E#6.ogg b/sound/piano/E#6.ogg
deleted file mode 100644
index 476edd68e22a..000000000000
Binary files a/sound/piano/E#6.ogg and /dev/null differ
diff --git a/sound/piano/E#7.ogg b/sound/piano/E#7.ogg
deleted file mode 100644
index 7c77c6971ee2..000000000000
Binary files a/sound/piano/E#7.ogg and /dev/null differ
diff --git a/sound/piano/E#8.ogg b/sound/piano/E#8.ogg
deleted file mode 100644
index 61a55478dc95..000000000000
Binary files a/sound/piano/E#8.ogg and /dev/null differ
diff --git a/sound/piano/Eb1.ogg b/sound/piano/Eb1.ogg
deleted file mode 100644
index 745c448a4f1f..000000000000
Binary files a/sound/piano/Eb1.ogg and /dev/null differ
diff --git a/sound/piano/Eb2.ogg b/sound/piano/Eb2.ogg
deleted file mode 100644
index 85fc213e8214..000000000000
Binary files a/sound/piano/Eb2.ogg and /dev/null differ
diff --git a/sound/piano/Eb3.ogg b/sound/piano/Eb3.ogg
deleted file mode 100644
index 66c673310bb6..000000000000
Binary files a/sound/piano/Eb3.ogg and /dev/null differ
diff --git a/sound/piano/Eb4.ogg b/sound/piano/Eb4.ogg
deleted file mode 100644
index bff7248310b8..000000000000
Binary files a/sound/piano/Eb4.ogg and /dev/null differ
diff --git a/sound/piano/Eb5.ogg b/sound/piano/Eb5.ogg
deleted file mode 100644
index 8ecb263ee720..000000000000
Binary files a/sound/piano/Eb5.ogg and /dev/null differ
diff --git a/sound/piano/Eb6.ogg b/sound/piano/Eb6.ogg
deleted file mode 100644
index 29e62c7a16d8..000000000000
Binary files a/sound/piano/Eb6.ogg and /dev/null differ
diff --git a/sound/piano/Eb7.ogg b/sound/piano/Eb7.ogg
deleted file mode 100644
index 95e70c0b8cba..000000000000
Binary files a/sound/piano/Eb7.ogg and /dev/null differ
diff --git a/sound/piano/Eb8.ogg b/sound/piano/Eb8.ogg
deleted file mode 100644
index e421154b62e3..000000000000
Binary files a/sound/piano/Eb8.ogg and /dev/null differ
diff --git a/sound/piano/En1.ogg b/sound/piano/En1.ogg
deleted file mode 100644
index 32819af46ba5..000000000000
Binary files a/sound/piano/En1.ogg and /dev/null differ
diff --git a/sound/piano/En2.ogg b/sound/piano/En2.ogg
deleted file mode 100644
index f1931e091425..000000000000
Binary files a/sound/piano/En2.ogg and /dev/null differ
diff --git a/sound/piano/En3.ogg b/sound/piano/En3.ogg
deleted file mode 100644
index fd9d54a6d03f..000000000000
Binary files a/sound/piano/En3.ogg and /dev/null differ
diff --git a/sound/piano/En4.ogg b/sound/piano/En4.ogg
deleted file mode 100644
index 41dcf10ff57e..000000000000
Binary files a/sound/piano/En4.ogg and /dev/null differ
diff --git a/sound/piano/En5.ogg b/sound/piano/En5.ogg
deleted file mode 100644
index 571bb0768e56..000000000000
Binary files a/sound/piano/En5.ogg and /dev/null differ
diff --git a/sound/piano/En6.ogg b/sound/piano/En6.ogg
deleted file mode 100644
index 7dbf990b1864..000000000000
Binary files a/sound/piano/En6.ogg and /dev/null differ
diff --git a/sound/piano/En7.ogg b/sound/piano/En7.ogg
deleted file mode 100644
index 0793106be1f4..000000000000
Binary files a/sound/piano/En7.ogg and /dev/null differ
diff --git a/sound/piano/En8.ogg b/sound/piano/En8.ogg
deleted file mode 100644
index 2989d16d1ded..000000000000
Binary files a/sound/piano/En8.ogg and /dev/null differ
diff --git a/sound/piano/F#1.ogg b/sound/piano/F#1.ogg
deleted file mode 100644
index f646e20a3385..000000000000
Binary files a/sound/piano/F#1.ogg and /dev/null differ
diff --git a/sound/piano/F#2.ogg b/sound/piano/F#2.ogg
deleted file mode 100644
index 140c0ab01750..000000000000
Binary files a/sound/piano/F#2.ogg and /dev/null differ
diff --git a/sound/piano/F#3.ogg b/sound/piano/F#3.ogg
deleted file mode 100644
index 03f74deae5e7..000000000000
Binary files a/sound/piano/F#3.ogg and /dev/null differ
diff --git a/sound/piano/F#4.ogg b/sound/piano/F#4.ogg
deleted file mode 100644
index 8b6be4a8e83e..000000000000
Binary files a/sound/piano/F#4.ogg and /dev/null differ
diff --git a/sound/piano/F#5.ogg b/sound/piano/F#5.ogg
deleted file mode 100644
index 2ada429e53c6..000000000000
Binary files a/sound/piano/F#5.ogg and /dev/null differ
diff --git a/sound/piano/F#6.ogg b/sound/piano/F#6.ogg
deleted file mode 100644
index a3c41995a142..000000000000
Binary files a/sound/piano/F#6.ogg and /dev/null differ
diff --git a/sound/piano/F#7.ogg b/sound/piano/F#7.ogg
deleted file mode 100644
index 8c87e9c8b7bd..000000000000
Binary files a/sound/piano/F#7.ogg and /dev/null differ
diff --git a/sound/piano/F#8.ogg b/sound/piano/F#8.ogg
deleted file mode 100644
index 7a20d3cd3d4a..000000000000
Binary files a/sound/piano/F#8.ogg and /dev/null differ
diff --git a/sound/piano/Fb1.ogg b/sound/piano/Fb1.ogg
deleted file mode 100644
index ba3f5bde8ca0..000000000000
Binary files a/sound/piano/Fb1.ogg and /dev/null differ
diff --git a/sound/piano/Fb2.ogg b/sound/piano/Fb2.ogg
deleted file mode 100644
index d601261c9218..000000000000
Binary files a/sound/piano/Fb2.ogg and /dev/null differ
diff --git a/sound/piano/Fb3.ogg b/sound/piano/Fb3.ogg
deleted file mode 100644
index 0c67f09c6e71..000000000000
Binary files a/sound/piano/Fb3.ogg and /dev/null differ
diff --git a/sound/piano/Fb4.ogg b/sound/piano/Fb4.ogg
deleted file mode 100644
index 6b23e1dca8bc..000000000000
Binary files a/sound/piano/Fb4.ogg and /dev/null differ
diff --git a/sound/piano/Fb5.ogg b/sound/piano/Fb5.ogg
deleted file mode 100644
index 992fbef3c832..000000000000
Binary files a/sound/piano/Fb5.ogg and /dev/null differ
diff --git a/sound/piano/Fb6.ogg b/sound/piano/Fb6.ogg
deleted file mode 100644
index 622859f44d54..000000000000
Binary files a/sound/piano/Fb6.ogg and /dev/null differ
diff --git a/sound/piano/Fb7.ogg b/sound/piano/Fb7.ogg
deleted file mode 100644
index bb44482880ca..000000000000
Binary files a/sound/piano/Fb7.ogg and /dev/null differ
diff --git a/sound/piano/Fb8.ogg b/sound/piano/Fb8.ogg
deleted file mode 100644
index 940c92efafa5..000000000000
Binary files a/sound/piano/Fb8.ogg and /dev/null differ
diff --git a/sound/piano/Fn1.ogg b/sound/piano/Fn1.ogg
deleted file mode 100644
index 52a717014860..000000000000
Binary files a/sound/piano/Fn1.ogg and /dev/null differ
diff --git a/sound/piano/Fn2.ogg b/sound/piano/Fn2.ogg
deleted file mode 100644
index 28770a787229..000000000000
Binary files a/sound/piano/Fn2.ogg and /dev/null differ
diff --git a/sound/piano/Fn3.ogg b/sound/piano/Fn3.ogg
deleted file mode 100644
index 5db839ab9cbb..000000000000
Binary files a/sound/piano/Fn3.ogg and /dev/null differ
diff --git a/sound/piano/Fn4.ogg b/sound/piano/Fn4.ogg
deleted file mode 100644
index 5a4437102ae4..000000000000
Binary files a/sound/piano/Fn4.ogg and /dev/null differ
diff --git a/sound/piano/Fn5.ogg b/sound/piano/Fn5.ogg
deleted file mode 100644
index fb748454480c..000000000000
Binary files a/sound/piano/Fn5.ogg and /dev/null differ
diff --git a/sound/piano/Fn6.ogg b/sound/piano/Fn6.ogg
deleted file mode 100644
index 3e23b71b1ef5..000000000000
Binary files a/sound/piano/Fn6.ogg and /dev/null differ
diff --git a/sound/piano/Fn7.ogg b/sound/piano/Fn7.ogg
deleted file mode 100644
index d897ab7c3c8f..000000000000
Binary files a/sound/piano/Fn7.ogg and /dev/null differ
diff --git a/sound/piano/Fn8.ogg b/sound/piano/Fn8.ogg
deleted file mode 100644
index 3ebf0e9bbc49..000000000000
Binary files a/sound/piano/Fn8.ogg and /dev/null differ
diff --git a/sound/piano/G#1.ogg b/sound/piano/G#1.ogg
deleted file mode 100644
index 4b559e5583ac..000000000000
Binary files a/sound/piano/G#1.ogg and /dev/null differ
diff --git a/sound/piano/G#2.ogg b/sound/piano/G#2.ogg
deleted file mode 100644
index d70745db3e76..000000000000
Binary files a/sound/piano/G#2.ogg and /dev/null differ
diff --git a/sound/piano/G#3.ogg b/sound/piano/G#3.ogg
deleted file mode 100644
index cb69b23a17af..000000000000
Binary files a/sound/piano/G#3.ogg and /dev/null differ
diff --git a/sound/piano/G#4.ogg b/sound/piano/G#4.ogg
deleted file mode 100644
index fc0965821fc5..000000000000
Binary files a/sound/piano/G#4.ogg and /dev/null differ
diff --git a/sound/piano/G#5.ogg b/sound/piano/G#5.ogg
deleted file mode 100644
index 845c02160cc9..000000000000
Binary files a/sound/piano/G#5.ogg and /dev/null differ
diff --git a/sound/piano/G#6.ogg b/sound/piano/G#6.ogg
deleted file mode 100644
index 934f281311c1..000000000000
Binary files a/sound/piano/G#6.ogg and /dev/null differ
diff --git a/sound/piano/G#7.ogg b/sound/piano/G#7.ogg
deleted file mode 100644
index 0366b7a74b33..000000000000
Binary files a/sound/piano/G#7.ogg and /dev/null differ
diff --git a/sound/piano/G#8.ogg b/sound/piano/G#8.ogg
deleted file mode 100644
index 5c7f1b3fa57c..000000000000
Binary files a/sound/piano/G#8.ogg and /dev/null differ
diff --git a/sound/piano/Gb1.ogg b/sound/piano/Gb1.ogg
deleted file mode 100644
index 229e2e5d477e..000000000000
Binary files a/sound/piano/Gb1.ogg and /dev/null differ
diff --git a/sound/piano/Gb2.ogg b/sound/piano/Gb2.ogg
deleted file mode 100644
index c22963c95b67..000000000000
Binary files a/sound/piano/Gb2.ogg and /dev/null differ
diff --git a/sound/piano/Gb3.ogg b/sound/piano/Gb3.ogg
deleted file mode 100644
index de273ab8d200..000000000000
Binary files a/sound/piano/Gb3.ogg and /dev/null differ
diff --git a/sound/piano/Gb4.ogg b/sound/piano/Gb4.ogg
deleted file mode 100644
index 383d7a9212bf..000000000000
Binary files a/sound/piano/Gb4.ogg and /dev/null differ
diff --git a/sound/piano/Gb5.ogg b/sound/piano/Gb5.ogg
deleted file mode 100644
index e84ca674898a..000000000000
Binary files a/sound/piano/Gb5.ogg and /dev/null differ
diff --git a/sound/piano/Gb6.ogg b/sound/piano/Gb6.ogg
deleted file mode 100644
index d6171c668f75..000000000000
Binary files a/sound/piano/Gb6.ogg and /dev/null differ
diff --git a/sound/piano/Gb7.ogg b/sound/piano/Gb7.ogg
deleted file mode 100644
index c47bff993c11..000000000000
Binary files a/sound/piano/Gb7.ogg and /dev/null differ
diff --git a/sound/piano/Gb8.ogg b/sound/piano/Gb8.ogg
deleted file mode 100644
index bdd5e3396642..000000000000
Binary files a/sound/piano/Gb8.ogg and /dev/null differ
diff --git a/sound/piano/Gn1.ogg b/sound/piano/Gn1.ogg
deleted file mode 100644
index b78d3f44faa5..000000000000
Binary files a/sound/piano/Gn1.ogg and /dev/null differ
diff --git a/sound/piano/Gn2.ogg b/sound/piano/Gn2.ogg
deleted file mode 100644
index 4cc8e85d33fd..000000000000
Binary files a/sound/piano/Gn2.ogg and /dev/null differ
diff --git a/sound/piano/Gn3.ogg b/sound/piano/Gn3.ogg
deleted file mode 100644
index 65a0a83b7e9c..000000000000
Binary files a/sound/piano/Gn3.ogg and /dev/null differ
diff --git a/sound/piano/Gn4.ogg b/sound/piano/Gn4.ogg
deleted file mode 100644
index ac88f21a5168..000000000000
Binary files a/sound/piano/Gn4.ogg and /dev/null differ
diff --git a/sound/piano/Gn5.ogg b/sound/piano/Gn5.ogg
deleted file mode 100644
index a2cd6b032cf9..000000000000
Binary files a/sound/piano/Gn5.ogg and /dev/null differ
diff --git a/sound/piano/Gn6.ogg b/sound/piano/Gn6.ogg
deleted file mode 100644
index 6e22bdeae80c..000000000000
Binary files a/sound/piano/Gn6.ogg and /dev/null differ
diff --git a/sound/piano/Gn7.ogg b/sound/piano/Gn7.ogg
deleted file mode 100644
index 3c2af2907da7..000000000000
Binary files a/sound/piano/Gn7.ogg and /dev/null differ
diff --git a/sound/piano/Gn8.ogg b/sound/piano/Gn8.ogg
deleted file mode 100644
index f27b35f10abd..000000000000
Binary files a/sound/piano/Gn8.ogg and /dev/null differ
diff --git a/sound/violin/A#1.mid b/sound/violin/A#1.mid
deleted file mode 100644
index 693b73f5420f..000000000000
Binary files a/sound/violin/A#1.mid and /dev/null differ
diff --git a/sound/violin/A#2.mid b/sound/violin/A#2.mid
deleted file mode 100644
index 40da5f3da152..000000000000
Binary files a/sound/violin/A#2.mid and /dev/null differ
diff --git a/sound/violin/A#3.mid b/sound/violin/A#3.mid
deleted file mode 100644
index 5bab6ccd6362..000000000000
Binary files a/sound/violin/A#3.mid and /dev/null differ
diff --git a/sound/violin/A#4.mid b/sound/violin/A#4.mid
deleted file mode 100644
index dce830448ef8..000000000000
Binary files a/sound/violin/A#4.mid and /dev/null differ
diff --git a/sound/violin/A#5.mid b/sound/violin/A#5.mid
deleted file mode 100644
index fda796e27b90..000000000000
Binary files a/sound/violin/A#5.mid and /dev/null differ
diff --git a/sound/violin/A#6.mid b/sound/violin/A#6.mid
deleted file mode 100644
index 9e5da684f43c..000000000000
Binary files a/sound/violin/A#6.mid and /dev/null differ
diff --git a/sound/violin/A#7.mid b/sound/violin/A#7.mid
deleted file mode 100644
index 215c56cbe7ee..000000000000
Binary files a/sound/violin/A#7.mid and /dev/null differ
diff --git a/sound/violin/A#8.mid b/sound/violin/A#8.mid
deleted file mode 100644
index 4b55c34691f7..000000000000
Binary files a/sound/violin/A#8.mid and /dev/null differ
diff --git a/sound/violin/Ab1.mid b/sound/violin/Ab1.mid
deleted file mode 100644
index b8253364b4e8..000000000000
Binary files a/sound/violin/Ab1.mid and /dev/null differ
diff --git a/sound/violin/Ab2.mid b/sound/violin/Ab2.mid
deleted file mode 100644
index 4cd7f9b55a7c..000000000000
Binary files a/sound/violin/Ab2.mid and /dev/null differ
diff --git a/sound/violin/Ab3.mid b/sound/violin/Ab3.mid
deleted file mode 100644
index e827cfc635ee..000000000000
Binary files a/sound/violin/Ab3.mid and /dev/null differ
diff --git a/sound/violin/Ab4.mid b/sound/violin/Ab4.mid
deleted file mode 100644
index 57e1f76c9761..000000000000
Binary files a/sound/violin/Ab4.mid and /dev/null differ
diff --git a/sound/violin/Ab5.mid b/sound/violin/Ab5.mid
deleted file mode 100644
index 59e95a6d9974..000000000000
Binary files a/sound/violin/Ab5.mid and /dev/null differ
diff --git a/sound/violin/Ab6.mid b/sound/violin/Ab6.mid
deleted file mode 100644
index 9bd3436287b9..000000000000
Binary files a/sound/violin/Ab6.mid and /dev/null differ
diff --git a/sound/violin/Ab7.mid b/sound/violin/Ab7.mid
deleted file mode 100644
index 3c90af807e27..000000000000
Binary files a/sound/violin/Ab7.mid and /dev/null differ
diff --git a/sound/violin/Ab8.mid b/sound/violin/Ab8.mid
deleted file mode 100644
index 873d771f2aea..000000000000
Binary files a/sound/violin/Ab8.mid and /dev/null differ
diff --git a/sound/violin/An1.mid b/sound/violin/An1.mid
deleted file mode 100644
index d7f8a001d93f..000000000000
Binary files a/sound/violin/An1.mid and /dev/null differ
diff --git a/sound/violin/An2.mid b/sound/violin/An2.mid
deleted file mode 100644
index 2f01800a0754..000000000000
Binary files a/sound/violin/An2.mid and /dev/null differ
diff --git a/sound/violin/An3.mid b/sound/violin/An3.mid
deleted file mode 100644
index c8ed3cdfa6cb..000000000000
Binary files a/sound/violin/An3.mid and /dev/null differ
diff --git a/sound/violin/An4.mid b/sound/violin/An4.mid
deleted file mode 100644
index e7984ca7e62b..000000000000
Binary files a/sound/violin/An4.mid and /dev/null differ
diff --git a/sound/violin/An5.mid b/sound/violin/An5.mid
deleted file mode 100644
index e1fd228f7a9e..000000000000
Binary files a/sound/violin/An5.mid and /dev/null differ
diff --git a/sound/violin/An6.mid b/sound/violin/An6.mid
deleted file mode 100644
index 1c8df6c98e5c..000000000000
Binary files a/sound/violin/An6.mid and /dev/null differ
diff --git a/sound/violin/An7.mid b/sound/violin/An7.mid
deleted file mode 100644
index 2784428daf9e..000000000000
Binary files a/sound/violin/An7.mid and /dev/null differ
diff --git a/sound/violin/An8.mid b/sound/violin/An8.mid
deleted file mode 100644
index 2db2ab70a7d9..000000000000
Binary files a/sound/violin/An8.mid and /dev/null differ
diff --git a/sound/violin/B#1.mid b/sound/violin/B#1.mid
deleted file mode 100644
index d83b176edd8b..000000000000
Binary files a/sound/violin/B#1.mid and /dev/null differ
diff --git a/sound/violin/B#2.mid b/sound/violin/B#2.mid
deleted file mode 100644
index cddff75625f0..000000000000
Binary files a/sound/violin/B#2.mid and /dev/null differ
diff --git a/sound/violin/B#3.mid b/sound/violin/B#3.mid
deleted file mode 100644
index 8bd7ec2fa9d6..000000000000
Binary files a/sound/violin/B#3.mid and /dev/null differ
diff --git a/sound/violin/B#4.mid b/sound/violin/B#4.mid
deleted file mode 100644
index 4c7ab84b57be..000000000000
Binary files a/sound/violin/B#4.mid and /dev/null differ
diff --git a/sound/violin/B#5.mid b/sound/violin/B#5.mid
deleted file mode 100644
index d7f990b2d6c3..000000000000
Binary files a/sound/violin/B#5.mid and /dev/null differ
diff --git a/sound/violin/B#6.mid b/sound/violin/B#6.mid
deleted file mode 100644
index e124ccb8e2b0..000000000000
Binary files a/sound/violin/B#6.mid and /dev/null differ
diff --git a/sound/violin/B#7.mid b/sound/violin/B#7.mid
deleted file mode 100644
index 231c9e428db5..000000000000
Binary files a/sound/violin/B#7.mid and /dev/null differ
diff --git a/sound/violin/B#8.mid b/sound/violin/B#8.mid
deleted file mode 100644
index 981943c08f0c..000000000000
Binary files a/sound/violin/B#8.mid and /dev/null differ
diff --git a/sound/violin/Bb1.mid b/sound/violin/Bb1.mid
deleted file mode 100644
index 693b73f5420f..000000000000
Binary files a/sound/violin/Bb1.mid and /dev/null differ
diff --git a/sound/violin/Bb2.mid b/sound/violin/Bb2.mid
deleted file mode 100644
index 40da5f3da152..000000000000
Binary files a/sound/violin/Bb2.mid and /dev/null differ
diff --git a/sound/violin/Bb3.mid b/sound/violin/Bb3.mid
deleted file mode 100644
index 5bab6ccd6362..000000000000
Binary files a/sound/violin/Bb3.mid and /dev/null differ
diff --git a/sound/violin/Bb4.mid b/sound/violin/Bb4.mid
deleted file mode 100644
index dce830448ef8..000000000000
Binary files a/sound/violin/Bb4.mid and /dev/null differ
diff --git a/sound/violin/Bb5.mid b/sound/violin/Bb5.mid
deleted file mode 100644
index fda796e27b90..000000000000
Binary files a/sound/violin/Bb5.mid and /dev/null differ
diff --git a/sound/violin/Bb6.mid b/sound/violin/Bb6.mid
deleted file mode 100644
index 9e5da684f43c..000000000000
Binary files a/sound/violin/Bb6.mid and /dev/null differ
diff --git a/sound/violin/Bb7.mid b/sound/violin/Bb7.mid
deleted file mode 100644
index 215c56cbe7ee..000000000000
Binary files a/sound/violin/Bb7.mid and /dev/null differ
diff --git a/sound/violin/Bb8.mid b/sound/violin/Bb8.mid
deleted file mode 100644
index 4b55c34691f7..000000000000
Binary files a/sound/violin/Bb8.mid and /dev/null differ
diff --git a/sound/violin/Bn1.mid b/sound/violin/Bn1.mid
deleted file mode 100644
index 27968b5f9e7d..000000000000
Binary files a/sound/violin/Bn1.mid and /dev/null differ
diff --git a/sound/violin/Bn2.mid b/sound/violin/Bn2.mid
deleted file mode 100644
index 54c9b99d03fe..000000000000
Binary files a/sound/violin/Bn2.mid and /dev/null differ
diff --git a/sound/violin/Bn3.mid b/sound/violin/Bn3.mid
deleted file mode 100644
index f73476fb7bb1..000000000000
Binary files a/sound/violin/Bn3.mid and /dev/null differ
diff --git a/sound/violin/Bn4.mid b/sound/violin/Bn4.mid
deleted file mode 100644
index 2aa30708a6cb..000000000000
Binary files a/sound/violin/Bn4.mid and /dev/null differ
diff --git a/sound/violin/Bn5.mid b/sound/violin/Bn5.mid
deleted file mode 100644
index 0ebe636b7145..000000000000
Binary files a/sound/violin/Bn5.mid and /dev/null differ
diff --git a/sound/violin/Bn6.mid b/sound/violin/Bn6.mid
deleted file mode 100644
index 3b8e1c217f7b..000000000000
Binary files a/sound/violin/Bn6.mid and /dev/null differ
diff --git a/sound/violin/Bn7.mid b/sound/violin/Bn7.mid
deleted file mode 100644
index afcb1982a13f..000000000000
Binary files a/sound/violin/Bn7.mid and /dev/null differ
diff --git a/sound/violin/Bn8.mid b/sound/violin/Bn8.mid
deleted file mode 100644
index 3afd469256c1..000000000000
Binary files a/sound/violin/Bn8.mid and /dev/null differ
diff --git a/sound/violin/C#1.mid b/sound/violin/C#1.mid
deleted file mode 100644
index 88dba851452e..000000000000
Binary files a/sound/violin/C#1.mid and /dev/null differ
diff --git a/sound/violin/C#2.mid b/sound/violin/C#2.mid
deleted file mode 100644
index b510926b45fa..000000000000
Binary files a/sound/violin/C#2.mid and /dev/null differ
diff --git a/sound/violin/C#3.mid b/sound/violin/C#3.mid
deleted file mode 100644
index 9954bbe478a2..000000000000
Binary files a/sound/violin/C#3.mid and /dev/null differ
diff --git a/sound/violin/C#4.mid b/sound/violin/C#4.mid
deleted file mode 100644
index 2c5ff74db0aa..000000000000
Binary files a/sound/violin/C#4.mid and /dev/null differ
diff --git a/sound/violin/C#5.mid b/sound/violin/C#5.mid
deleted file mode 100644
index e5850a3fd041..000000000000
Binary files a/sound/violin/C#5.mid and /dev/null differ
diff --git a/sound/violin/C#6.mid b/sound/violin/C#6.mid
deleted file mode 100644
index 217c0ad014c5..000000000000
Binary files a/sound/violin/C#6.mid and /dev/null differ
diff --git a/sound/violin/C#7.mid b/sound/violin/C#7.mid
deleted file mode 100644
index ec32bdbf9040..000000000000
Binary files a/sound/violin/C#7.mid and /dev/null differ
diff --git a/sound/violin/C#8.mid b/sound/violin/C#8.mid
deleted file mode 100644
index 555bce3db0d8..000000000000
Binary files a/sound/violin/C#8.mid and /dev/null differ
diff --git a/sound/violin/Cb1.mid b/sound/violin/Cb1.mid
deleted file mode 100644
index a00f09dfb088..000000000000
Binary files a/sound/violin/Cb1.mid and /dev/null differ
diff --git a/sound/violin/Cb2.mid b/sound/violin/Cb2.mid
deleted file mode 100644
index 4085711bf127..000000000000
Binary files a/sound/violin/Cb2.mid and /dev/null differ
diff --git a/sound/violin/Cb3.mid b/sound/violin/Cb3.mid
deleted file mode 100644
index f647983ef05c..000000000000
Binary files a/sound/violin/Cb3.mid and /dev/null differ
diff --git a/sound/violin/Cb4.mid b/sound/violin/Cb4.mid
deleted file mode 100644
index 24f22f09eecc..000000000000
Binary files a/sound/violin/Cb4.mid and /dev/null differ
diff --git a/sound/violin/Cb5.mid b/sound/violin/Cb5.mid
deleted file mode 100644
index 057e97c5e0d0..000000000000
Binary files a/sound/violin/Cb5.mid and /dev/null differ
diff --git a/sound/violin/Cb6.mid b/sound/violin/Cb6.mid
deleted file mode 100644
index 887e65fc13d0..000000000000
Binary files a/sound/violin/Cb6.mid and /dev/null differ
diff --git a/sound/violin/Cb7.mid b/sound/violin/Cb7.mid
deleted file mode 100644
index 99668bc192c2..000000000000
Binary files a/sound/violin/Cb7.mid and /dev/null differ
diff --git a/sound/violin/Cb8.mid b/sound/violin/Cb8.mid
deleted file mode 100644
index 53ea61d1b250..000000000000
Binary files a/sound/violin/Cb8.mid and /dev/null differ
diff --git a/sound/violin/Cb9.mid b/sound/violin/Cb9.mid
deleted file mode 100644
index 1e8c3afadf13..000000000000
Binary files a/sound/violin/Cb9.mid and /dev/null differ
diff --git a/sound/violin/Cn1.mid b/sound/violin/Cn1.mid
deleted file mode 100644
index 857120f31f4e..000000000000
Binary files a/sound/violin/Cn1.mid and /dev/null differ
diff --git a/sound/violin/Cn2.mid b/sound/violin/Cn2.mid
deleted file mode 100644
index 3ccd6670e873..000000000000
Binary files a/sound/violin/Cn2.mid and /dev/null differ
diff --git a/sound/violin/Cn3.mid b/sound/violin/Cn3.mid
deleted file mode 100644
index 1851e4f8d27d..000000000000
Binary files a/sound/violin/Cn3.mid and /dev/null differ
diff --git a/sound/violin/Cn4.mid b/sound/violin/Cn4.mid
deleted file mode 100644
index 65e8b0efe4e5..000000000000
Binary files a/sound/violin/Cn4.mid and /dev/null differ
diff --git a/sound/violin/Cn5.mid b/sound/violin/Cn5.mid
deleted file mode 100644
index 544f921e43b9..000000000000
Binary files a/sound/violin/Cn5.mid and /dev/null differ
diff --git a/sound/violin/Cn6.mid b/sound/violin/Cn6.mid
deleted file mode 100644
index 7c78dab2f076..000000000000
Binary files a/sound/violin/Cn6.mid and /dev/null differ
diff --git a/sound/violin/Cn7.mid b/sound/violin/Cn7.mid
deleted file mode 100644
index 3abe4cde0863..000000000000
Binary files a/sound/violin/Cn7.mid and /dev/null differ
diff --git a/sound/violin/Cn8.mid b/sound/violin/Cn8.mid
deleted file mode 100644
index 06f14081b3b9..000000000000
Binary files a/sound/violin/Cn8.mid and /dev/null differ
diff --git a/sound/violin/Cn9.mid b/sound/violin/Cn9.mid
deleted file mode 100644
index 62f4eef045a8..000000000000
Binary files a/sound/violin/Cn9.mid and /dev/null differ
diff --git a/sound/violin/D#1.mid b/sound/violin/D#1.mid
deleted file mode 100644
index 829e6fcf185a..000000000000
Binary files a/sound/violin/D#1.mid and /dev/null differ
diff --git a/sound/violin/D#2.mid b/sound/violin/D#2.mid
deleted file mode 100644
index 66029b340cc9..000000000000
Binary files a/sound/violin/D#2.mid and /dev/null differ
diff --git a/sound/violin/D#3.mid b/sound/violin/D#3.mid
deleted file mode 100644
index c982375941e6..000000000000
Binary files a/sound/violin/D#3.mid and /dev/null differ
diff --git a/sound/violin/D#4.mid b/sound/violin/D#4.mid
deleted file mode 100644
index 016ed4f1edf9..000000000000
Binary files a/sound/violin/D#4.mid and /dev/null differ
diff --git a/sound/violin/D#5.mid b/sound/violin/D#5.mid
deleted file mode 100644
index ddb511795df2..000000000000
Binary files a/sound/violin/D#5.mid and /dev/null differ
diff --git a/sound/violin/D#6.mid b/sound/violin/D#6.mid
deleted file mode 100644
index b7242b9ab994..000000000000
Binary files a/sound/violin/D#6.mid and /dev/null differ
diff --git a/sound/violin/D#7.mid b/sound/violin/D#7.mid
deleted file mode 100644
index 773538340a56..000000000000
Binary files a/sound/violin/D#7.mid and /dev/null differ
diff --git a/sound/violin/D#8.mid b/sound/violin/D#8.mid
deleted file mode 100644
index 4ad074e173b7..000000000000
Binary files a/sound/violin/D#8.mid and /dev/null differ
diff --git a/sound/violin/Db1.mid b/sound/violin/Db1.mid
deleted file mode 100644
index 88dba851452e..000000000000
Binary files a/sound/violin/Db1.mid and /dev/null differ
diff --git a/sound/violin/Db2.mid b/sound/violin/Db2.mid
deleted file mode 100644
index b510926b45fa..000000000000
Binary files a/sound/violin/Db2.mid and /dev/null differ
diff --git a/sound/violin/Db3.mid b/sound/violin/Db3.mid
deleted file mode 100644
index 9954bbe478a2..000000000000
Binary files a/sound/violin/Db3.mid and /dev/null differ
diff --git a/sound/violin/Db4.mid b/sound/violin/Db4.mid
deleted file mode 100644
index 2c5ff74db0aa..000000000000
Binary files a/sound/violin/Db4.mid and /dev/null differ
diff --git a/sound/violin/Db5.mid b/sound/violin/Db5.mid
deleted file mode 100644
index e5850a3fd041..000000000000
Binary files a/sound/violin/Db5.mid and /dev/null differ
diff --git a/sound/violin/Db6.mid b/sound/violin/Db6.mid
deleted file mode 100644
index 217c0ad014c5..000000000000
Binary files a/sound/violin/Db6.mid and /dev/null differ
diff --git a/sound/violin/Db7.mid b/sound/violin/Db7.mid
deleted file mode 100644
index ec32bdbf9040..000000000000
Binary files a/sound/violin/Db7.mid and /dev/null differ
diff --git a/sound/violin/Db8.mid b/sound/violin/Db8.mid
deleted file mode 100644
index 555bce3db0d8..000000000000
Binary files a/sound/violin/Db8.mid and /dev/null differ
diff --git a/sound/violin/Dn1.mid b/sound/violin/Dn1.mid
deleted file mode 100644
index 92e4e0d95816..000000000000
Binary files a/sound/violin/Dn1.mid and /dev/null differ
diff --git a/sound/violin/Dn2.mid b/sound/violin/Dn2.mid
deleted file mode 100644
index 34eb9d1db1ba..000000000000
Binary files a/sound/violin/Dn2.mid and /dev/null differ
diff --git a/sound/violin/Dn3.mid b/sound/violin/Dn3.mid
deleted file mode 100644
index fbd56085aafa..000000000000
Binary files a/sound/violin/Dn3.mid and /dev/null differ
diff --git a/sound/violin/Dn4.mid b/sound/violin/Dn4.mid
deleted file mode 100644
index e13c74482921..000000000000
Binary files a/sound/violin/Dn4.mid and /dev/null differ
diff --git a/sound/violin/Dn5.mid b/sound/violin/Dn5.mid
deleted file mode 100644
index 8fd41e5c6fe0..000000000000
Binary files a/sound/violin/Dn5.mid and /dev/null differ
diff --git a/sound/violin/Dn6.mid b/sound/violin/Dn6.mid
deleted file mode 100644
index d47329e8f9ed..000000000000
Binary files a/sound/violin/Dn6.mid and /dev/null differ
diff --git a/sound/violin/Dn7.mid b/sound/violin/Dn7.mid
deleted file mode 100644
index b24966038762..000000000000
Binary files a/sound/violin/Dn7.mid and /dev/null differ
diff --git a/sound/violin/Dn8.mid b/sound/violin/Dn8.mid
deleted file mode 100644
index 56667a1a86d0..000000000000
Binary files a/sound/violin/Dn8.mid and /dev/null differ
diff --git a/sound/violin/E#1.mid b/sound/violin/E#1.mid
deleted file mode 100644
index 3f130ee126c1..000000000000
Binary files a/sound/violin/E#1.mid and /dev/null differ
diff --git a/sound/violin/E#2.mid b/sound/violin/E#2.mid
deleted file mode 100644
index f67c2d0a2673..000000000000
Binary files a/sound/violin/E#2.mid and /dev/null differ
diff --git a/sound/violin/E#3.mid b/sound/violin/E#3.mid
deleted file mode 100644
index bb393382d6c8..000000000000
Binary files a/sound/violin/E#3.mid and /dev/null differ
diff --git a/sound/violin/E#4.mid b/sound/violin/E#4.mid
deleted file mode 100644
index a96520c595d3..000000000000
Binary files a/sound/violin/E#4.mid and /dev/null differ
diff --git a/sound/violin/E#5.mid b/sound/violin/E#5.mid
deleted file mode 100644
index d1378af1972d..000000000000
Binary files a/sound/violin/E#5.mid and /dev/null differ
diff --git a/sound/violin/E#6.mid b/sound/violin/E#6.mid
deleted file mode 100644
index 7abe40bd8242..000000000000
Binary files a/sound/violin/E#6.mid and /dev/null differ
diff --git a/sound/violin/E#7.mid b/sound/violin/E#7.mid
deleted file mode 100644
index df278c20d6b6..000000000000
Binary files a/sound/violin/E#7.mid and /dev/null differ
diff --git a/sound/violin/E#8.mid b/sound/violin/E#8.mid
deleted file mode 100644
index 35254cd5b25b..000000000000
Binary files a/sound/violin/E#8.mid and /dev/null differ
diff --git a/sound/violin/Eb1.mid b/sound/violin/Eb1.mid
deleted file mode 100644
index 829e6fcf185a..000000000000
Binary files a/sound/violin/Eb1.mid and /dev/null differ
diff --git a/sound/violin/Eb2.mid b/sound/violin/Eb2.mid
deleted file mode 100644
index 66029b340cc9..000000000000
Binary files a/sound/violin/Eb2.mid and /dev/null differ
diff --git a/sound/violin/Eb3.mid b/sound/violin/Eb3.mid
deleted file mode 100644
index c982375941e6..000000000000
Binary files a/sound/violin/Eb3.mid and /dev/null differ
diff --git a/sound/violin/Eb4.mid b/sound/violin/Eb4.mid
deleted file mode 100644
index 016ed4f1edf9..000000000000
Binary files a/sound/violin/Eb4.mid and /dev/null differ
diff --git a/sound/violin/Eb5.mid b/sound/violin/Eb5.mid
deleted file mode 100644
index ddb511795df2..000000000000
Binary files a/sound/violin/Eb5.mid and /dev/null differ
diff --git a/sound/violin/Eb6.mid b/sound/violin/Eb6.mid
deleted file mode 100644
index b7242b9ab994..000000000000
Binary files a/sound/violin/Eb6.mid and /dev/null differ
diff --git a/sound/violin/Eb7.mid b/sound/violin/Eb7.mid
deleted file mode 100644
index 773538340a56..000000000000
Binary files a/sound/violin/Eb7.mid and /dev/null differ
diff --git a/sound/violin/Eb8.mid b/sound/violin/Eb8.mid
deleted file mode 100644
index 4ad074e173b7..000000000000
Binary files a/sound/violin/Eb8.mid and /dev/null differ
diff --git a/sound/violin/En1.mid b/sound/violin/En1.mid
deleted file mode 100644
index 79ab68df9df7..000000000000
Binary files a/sound/violin/En1.mid and /dev/null differ
diff --git a/sound/violin/En2.mid b/sound/violin/En2.mid
deleted file mode 100644
index cd61c8d0de5b..000000000000
Binary files a/sound/violin/En2.mid and /dev/null differ
diff --git a/sound/violin/En3.mid b/sound/violin/En3.mid
deleted file mode 100644
index da5b703d545b..000000000000
Binary files a/sound/violin/En3.mid and /dev/null differ
diff --git a/sound/violin/En4.mid b/sound/violin/En4.mid
deleted file mode 100644
index f7d3af024ff2..000000000000
Binary files a/sound/violin/En4.mid and /dev/null differ
diff --git a/sound/violin/En5.mid b/sound/violin/En5.mid
deleted file mode 100644
index d3d353943f9d..000000000000
Binary files a/sound/violin/En5.mid and /dev/null differ
diff --git a/sound/violin/En6.mid b/sound/violin/En6.mid
deleted file mode 100644
index 73eb5b0697db..000000000000
Binary files a/sound/violin/En6.mid and /dev/null differ
diff --git a/sound/violin/En7.mid b/sound/violin/En7.mid
deleted file mode 100644
index 79a9462c844e..000000000000
Binary files a/sound/violin/En7.mid and /dev/null differ
diff --git a/sound/violin/En8.mid b/sound/violin/En8.mid
deleted file mode 100644
index 88947fc7318e..000000000000
Binary files a/sound/violin/En8.mid and /dev/null differ
diff --git a/sound/violin/F#1.mid b/sound/violin/F#1.mid
deleted file mode 100644
index d18668e89112..000000000000
Binary files a/sound/violin/F#1.mid and /dev/null differ
diff --git a/sound/violin/F#2.mid b/sound/violin/F#2.mid
deleted file mode 100644
index 302f0c6fdc15..000000000000
Binary files a/sound/violin/F#2.mid and /dev/null differ
diff --git a/sound/violin/F#3.mid b/sound/violin/F#3.mid
deleted file mode 100644
index 1f592fc90399..000000000000
Binary files a/sound/violin/F#3.mid and /dev/null differ
diff --git a/sound/violin/F#4.mid b/sound/violin/F#4.mid
deleted file mode 100644
index 45854126f988..000000000000
Binary files a/sound/violin/F#4.mid and /dev/null differ
diff --git a/sound/violin/F#5.mid b/sound/violin/F#5.mid
deleted file mode 100644
index fb1e1da339a9..000000000000
Binary files a/sound/violin/F#5.mid and /dev/null differ
diff --git a/sound/violin/F#6.mid b/sound/violin/F#6.mid
deleted file mode 100644
index bfa896bb7844..000000000000
Binary files a/sound/violin/F#6.mid and /dev/null differ
diff --git a/sound/violin/F#7.mid b/sound/violin/F#7.mid
deleted file mode 100644
index a27763c1d47d..000000000000
Binary files a/sound/violin/F#7.mid and /dev/null differ
diff --git a/sound/violin/F#8.mid b/sound/violin/F#8.mid
deleted file mode 100644
index aaab80a72762..000000000000
Binary files a/sound/violin/F#8.mid and /dev/null differ
diff --git a/sound/violin/Fb1.mid b/sound/violin/Fb1.mid
deleted file mode 100644
index c89b3f36b439..000000000000
Binary files a/sound/violin/Fb1.mid and /dev/null differ
diff --git a/sound/violin/Fb2.mid b/sound/violin/Fb2.mid
deleted file mode 100644
index 3db6af1aa459..000000000000
Binary files a/sound/violin/Fb2.mid and /dev/null differ
diff --git a/sound/violin/Fb3.mid b/sound/violin/Fb3.mid
deleted file mode 100644
index 5f601f3ac424..000000000000
Binary files a/sound/violin/Fb3.mid and /dev/null differ
diff --git a/sound/violin/Fb4.mid b/sound/violin/Fb4.mid
deleted file mode 100644
index f1abc8109d1e..000000000000
Binary files a/sound/violin/Fb4.mid and /dev/null differ
diff --git a/sound/violin/Fb5.mid b/sound/violin/Fb5.mid
deleted file mode 100644
index 2ec1b2e51283..000000000000
Binary files a/sound/violin/Fb5.mid and /dev/null differ
diff --git a/sound/violin/Fb6.mid b/sound/violin/Fb6.mid
deleted file mode 100644
index b8bdf7fee071..000000000000
Binary files a/sound/violin/Fb6.mid and /dev/null differ
diff --git a/sound/violin/Fb7.mid b/sound/violin/Fb7.mid
deleted file mode 100644
index 51f5f1bcdb48..000000000000
Binary files a/sound/violin/Fb7.mid and /dev/null differ
diff --git a/sound/violin/Fb8.mid b/sound/violin/Fb8.mid
deleted file mode 100644
index 47928f38475c..000000000000
Binary files a/sound/violin/Fb8.mid and /dev/null differ
diff --git a/sound/violin/Fn1.mid b/sound/violin/Fn1.mid
deleted file mode 100644
index abe0d4e4051b..000000000000
Binary files a/sound/violin/Fn1.mid and /dev/null differ
diff --git a/sound/violin/Fn2.mid b/sound/violin/Fn2.mid
deleted file mode 100644
index d245bef3b54c..000000000000
Binary files a/sound/violin/Fn2.mid and /dev/null differ
diff --git a/sound/violin/Fn3.mid b/sound/violin/Fn3.mid
deleted file mode 100644
index e532e30dac9c..000000000000
Binary files a/sound/violin/Fn3.mid and /dev/null differ
diff --git a/sound/violin/Fn4.mid b/sound/violin/Fn4.mid
deleted file mode 100644
index 47219c72fa2e..000000000000
Binary files a/sound/violin/Fn4.mid and /dev/null differ
diff --git a/sound/violin/Fn5.mid b/sound/violin/Fn5.mid
deleted file mode 100644
index 630d16371d9e..000000000000
Binary files a/sound/violin/Fn5.mid and /dev/null differ
diff --git a/sound/violin/Fn6.mid b/sound/violin/Fn6.mid
deleted file mode 100644
index 08cbc981bdb6..000000000000
Binary files a/sound/violin/Fn6.mid and /dev/null differ
diff --git a/sound/violin/Fn7.mid b/sound/violin/Fn7.mid
deleted file mode 100644
index 6c28c7d272e2..000000000000
Binary files a/sound/violin/Fn7.mid and /dev/null differ
diff --git a/sound/violin/Fn8.mid b/sound/violin/Fn8.mid
deleted file mode 100644
index 2d73762f269a..000000000000
Binary files a/sound/violin/Fn8.mid and /dev/null differ
diff --git a/sound/violin/G#1.mid b/sound/violin/G#1.mid
deleted file mode 100644
index b1b38856858c..000000000000
Binary files a/sound/violin/G#1.mid and /dev/null differ
diff --git a/sound/violin/G#2.mid b/sound/violin/G#2.mid
deleted file mode 100644
index e827cfc635ee..000000000000
Binary files a/sound/violin/G#2.mid and /dev/null differ
diff --git a/sound/violin/G#3.mid b/sound/violin/G#3.mid
deleted file mode 100644
index 57e1f76c9761..000000000000
Binary files a/sound/violin/G#3.mid and /dev/null differ
diff --git a/sound/violin/G#4.mid b/sound/violin/G#4.mid
deleted file mode 100644
index 59e95a6d9974..000000000000
Binary files a/sound/violin/G#4.mid and /dev/null differ
diff --git a/sound/violin/G#5.mid b/sound/violin/G#5.mid
deleted file mode 100644
index 9bd3436287b9..000000000000
Binary files a/sound/violin/G#5.mid and /dev/null differ
diff --git a/sound/violin/G#6.mid b/sound/violin/G#6.mid
deleted file mode 100644
index 3c90af807e27..000000000000
Binary files a/sound/violin/G#6.mid and /dev/null differ
diff --git a/sound/violin/G#7.mid b/sound/violin/G#7.mid
deleted file mode 100644
index b51afd323c64..000000000000
Binary files a/sound/violin/G#7.mid and /dev/null differ
diff --git a/sound/violin/G#8.mid b/sound/violin/G#8.mid
deleted file mode 100644
index d3f5c898d47d..000000000000
Binary files a/sound/violin/G#8.mid and /dev/null differ
diff --git a/sound/violin/Gb1.mid b/sound/violin/Gb1.mid
deleted file mode 100644
index d18668e89112..000000000000
Binary files a/sound/violin/Gb1.mid and /dev/null differ
diff --git a/sound/violin/Gb2.mid b/sound/violin/Gb2.mid
deleted file mode 100644
index 302f0c6fdc15..000000000000
Binary files a/sound/violin/Gb2.mid and /dev/null differ
diff --git a/sound/violin/Gb3.mid b/sound/violin/Gb3.mid
deleted file mode 100644
index 1f592fc90399..000000000000
Binary files a/sound/violin/Gb3.mid and /dev/null differ
diff --git a/sound/violin/Gb4.mid b/sound/violin/Gb4.mid
deleted file mode 100644
index 45854126f988..000000000000
Binary files a/sound/violin/Gb4.mid and /dev/null differ
diff --git a/sound/violin/Gb5.mid b/sound/violin/Gb5.mid
deleted file mode 100644
index fb1e1da339a9..000000000000
Binary files a/sound/violin/Gb5.mid and /dev/null differ
diff --git a/sound/violin/Gb6.mid b/sound/violin/Gb6.mid
deleted file mode 100644
index bfa896bb7844..000000000000
Binary files a/sound/violin/Gb6.mid and /dev/null differ
diff --git a/sound/violin/Gb7.mid b/sound/violin/Gb7.mid
deleted file mode 100644
index a27763c1d47d..000000000000
Binary files a/sound/violin/Gb7.mid and /dev/null differ
diff --git a/sound/violin/Gb8.mid b/sound/violin/Gb8.mid
deleted file mode 100644
index aaab80a72762..000000000000
Binary files a/sound/violin/Gb8.mid and /dev/null differ
diff --git a/sound/violin/Gn1.mid b/sound/violin/Gn1.mid
deleted file mode 100644
index 1df52ab07606..000000000000
Binary files a/sound/violin/Gn1.mid and /dev/null differ
diff --git a/sound/violin/Gn2.mid b/sound/violin/Gn2.mid
deleted file mode 100644
index 6e0ca3831272..000000000000
Binary files a/sound/violin/Gn2.mid and /dev/null differ
diff --git a/sound/violin/Gn3.mid b/sound/violin/Gn3.mid
deleted file mode 100644
index bb3e6dedcbf9..000000000000
Binary files a/sound/violin/Gn3.mid and /dev/null differ
diff --git a/sound/violin/Gn4.mid b/sound/violin/Gn4.mid
deleted file mode 100644
index 0c46432afee5..000000000000
Binary files a/sound/violin/Gn4.mid and /dev/null differ
diff --git a/sound/violin/Gn5.mid b/sound/violin/Gn5.mid
deleted file mode 100644
index f39dcf5e2b9f..000000000000
Binary files a/sound/violin/Gn5.mid and /dev/null differ
diff --git a/sound/violin/Gn6.mid b/sound/violin/Gn6.mid
deleted file mode 100644
index 0efa2259ca17..000000000000
Binary files a/sound/violin/Gn6.mid and /dev/null differ
diff --git a/sound/violin/Gn7.mid b/sound/violin/Gn7.mid
deleted file mode 100644
index 22fd1b6bcb00..000000000000
Binary files a/sound/violin/Gn7.mid and /dev/null differ
diff --git a/sound/violin/Gn8.mid b/sound/violin/Gn8.mid
deleted file mode 100644
index 16b7171d627c..000000000000
Binary files a/sound/violin/Gn8.mid and /dev/null differ
diff --git a/sound/voice/joe/be_careful_with_that.ogg b/sound/voice/joe/be_careful_with_that.ogg
new file mode 100644
index 000000000000..14f3ca8c357d
Binary files /dev/null and b/sound/voice/joe/be_careful_with_that.ogg differ
diff --git a/sound/voice/joe/been_looking_for_you.ogg b/sound/voice/joe/been_looking_for_you.ogg
new file mode 100644
index 000000000000..14aa2c9a175d
Binary files /dev/null and b/sound/voice/joe/been_looking_for_you.ogg differ
diff --git a/sound/voice/joe/calm_down.ogg b/sound/voice/joe/calm_down.ogg
new file mode 100644
index 000000000000..dde85ea17457
Binary files /dev/null and b/sound/voice/joe/calm_down.ogg differ
diff --git a/sound/voice/joe/come_with_me.ogg b/sound/voice/joe/come_with_me.ogg
new file mode 100644
index 000000000000..395c99c3850f
Binary files /dev/null and b/sound/voice/joe/come_with_me.ogg differ
diff --git a/sound/voice/joe/dont_run.ogg b/sound/voice/joe/dont_run.ogg
new file mode 100644
index 000000000000..ce67a355c16b
Binary files /dev/null and b/sound/voice/joe/dont_run.ogg differ
diff --git a/sound/voice/joe/dontdothat.ogg b/sound/voice/joe/dontdothat.ogg
new file mode 100644
index 000000000000..c078a5fdf191
Binary files /dev/null and b/sound/voice/joe/dontdothat.ogg differ
diff --git a/sound/voice/joe/enough.ogg b/sound/voice/joe/enough.ogg
new file mode 100644
index 000000000000..c6667751adcc
Binary files /dev/null and b/sound/voice/joe/enough.ogg differ
diff --git a/sound/voice/joe/existing_tasks.ogg b/sound/voice/joe/existing_tasks.ogg
new file mode 100644
index 000000000000..2751538790fd
Binary files /dev/null and b/sound/voice/joe/existing_tasks.ogg differ
diff --git a/sound/voice/joe/expensive_mistake.ogg b/sound/voice/joe/expensive_mistake.ogg
new file mode 100644
index 000000000000..cee21b5066b2
Binary files /dev/null and b/sound/voice/joe/expensive_mistake.ogg differ
diff --git a/sound/voice/joe/follow_me_please.ogg b/sound/voice/joe/follow_me_please.ogg
new file mode 100644
index 000000000000..10ecac4f6b19
Binary files /dev/null and b/sound/voice/joe/follow_me_please.ogg differ
diff --git a/sound/voice/joe/glad_we_resolved.ogg b/sound/voice/joe/glad_we_resolved.ogg
new file mode 100644
index 000000000000..117e35eff683
Binary files /dev/null and b/sound/voice/joe/glad_we_resolved.ogg differ
diff --git a/sound/voice/joe/had_the_pleasure.ogg b/sound/voice/joe/had_the_pleasure.ogg
new file mode 100644
index 000000000000..6f8972900290
Binary files /dev/null and b/sound/voice/joe/had_the_pleasure.ogg differ
diff --git a/sound/voice/joe/have_a_problem.ogg b/sound/voice/joe/have_a_problem.ogg
new file mode 100644
index 000000000000..55781f21c7d2
Binary files /dev/null and b/sound/voice/joe/have_a_problem.ogg differ
diff --git a/sound/voice/joe/hold_still.ogg b/sound/voice/joe/hold_still.ogg
new file mode 100644
index 000000000000..916c11e04286
Binary files /dev/null and b/sound/voice/joe/hold_still.ogg differ
diff --git a/sound/voice/joe/how_are_you.ogg b/sound/voice/joe/how_are_you.ogg
new file mode 100644
index 000000000000..49da5e70f93f
Binary files /dev/null and b/sound/voice/joe/how_are_you.ogg differ
diff --git a/sound/voice/joe/how_inconsiderate.ogg b/sound/voice/joe/how_inconsiderate.ogg
new file mode 100644
index 000000000000..acebe30a36d7
Binary files /dev/null and b/sound/voice/joe/how_inconsiderate.ogg differ
diff --git a/sound/voice/joe/hurt_yourself.ogg b/sound/voice/joe/hurt_yourself.ogg
new file mode 100644
index 000000000000..5a89d8e32865
Binary files /dev/null and b/sound/voice/joe/hurt_yourself.ogg differ
diff --git a/sound/voice/joe/interloper.ogg b/sound/voice/joe/interloper.ogg
new file mode 100644
index 000000000000..4c4872aa6e52
Binary files /dev/null and b/sound/voice/joe/interloper.ogg differ
diff --git a/sound/voice/joe/investigate_weapon.ogg b/sound/voice/joe/investigate_weapon.ogg
new file mode 100644
index 000000000000..58aeff07079f
Binary files /dev/null and b/sound/voice/joe/investigate_weapon.ogg differ
diff --git a/sound/voice/joe/is_anybody_there.ogg b/sound/voice/joe/is_anybody_there.ogg
new file mode 100644
index 000000000000..ac59c588a0e6
Binary files /dev/null and b/sound/voice/joe/is_anybody_there.ogg differ
diff --git a/sound/voice/joe/let_me_help.ogg b/sound/voice/joe/let_me_help.ogg
new file mode 100644
index 000000000000..564654c91a2b
Binary files /dev/null and b/sound/voice/joe/let_me_help.ogg differ
diff --git a/sound/voice/joe/most_concerning.ogg b/sound/voice/joe/most_concerning.ogg
new file mode 100644
index 000000000000..33f9c5afc875
Binary files /dev/null and b/sound/voice/joe/most_concerning.ogg differ
diff --git a/sound/voice/joe/no_need.ogg b/sound/voice/joe/no_need.ogg
new file mode 100644
index 000000000000..80cf3056efe7
Binary files /dev/null and b/sound/voice/joe/no_need.ogg differ
diff --git a/sound/voice/joe/not_be_tolerated.ogg b/sound/voice/joe/not_be_tolerated.ogg
new file mode 100644
index 000000000000..bb7451d9608c
Binary files /dev/null and b/sound/voice/joe/not_be_tolerated.ogg differ
diff --git a/sound/voice/joe/pity.ogg b/sound/voice/joe/pity.ogg
new file mode 100644
index 000000000000..1b13b95cdb95
Binary files /dev/null and b/sound/voice/joe/pity.ogg differ
diff --git a/sound/voice/joe/protected_area_compromised.ogg b/sound/voice/joe/protected_area_compromised.ogg
new file mode 100644
index 000000000000..688dcac5cc95
Binary files /dev/null and b/sound/voice/joe/protected_area_compromised.ogg differ
diff --git a/sound/voice/joe/really.ogg b/sound/voice/joe/really.ogg
new file mode 100644
index 000000000000..29ba7ae2208b
Binary files /dev/null and b/sound/voice/joe/really.ogg differ
diff --git a/sound/voice/joe/really_shouldnt_be_here.ogg b/sound/voice/joe/really_shouldnt_be_here.ogg
new file mode 100644
index 000000000000..c8bd28004394
Binary files /dev/null and b/sound/voice/joe/really_shouldnt_be_here.ogg differ
diff --git a/sound/voice/joe/someone_hurt.ogg b/sound/voice/joe/someone_hurt.ogg
new file mode 100644
index 000000000000..014fb45f660f
Binary files /dev/null and b/sound/voice/joe/someone_hurt.ogg differ
diff --git a/sound/voice/joe/still_here.ogg b/sound/voice/joe/still_here.ogg
new file mode 100644
index 000000000000..1f7b2f7c4f76
Binary files /dev/null and b/sound/voice/joe/still_here.ogg differ
diff --git a/sound/voice/joe/stop_that.ogg b/sound/voice/joe/stop_that.ogg
new file mode 100644
index 000000000000..2e585ff600be
Binary files /dev/null and b/sound/voice/joe/stop_that.ogg differ
diff --git a/sound/voice/joe/support_ticket_removed.ogg b/sound/voice/joe/support_ticket_removed.ogg
new file mode 100644
index 000000000000..3fe68743cdc9
Binary files /dev/null and b/sound/voice/joe/support_ticket_removed.ogg differ
diff --git a/sound/voice/joe/this_isnt_the_answer.ogg b/sound/voice/joe/this_isnt_the_answer.ogg
new file mode 100644
index 000000000000..0d9603449cc6
Binary files /dev/null and b/sound/voice/joe/this_isnt_the_answer.ogg differ
diff --git a/sound/voice/joe/tut_tut.ogg b/sound/voice/joe/tut_tut.ogg
new file mode 100644
index 000000000000..a97eb17715cd
Binary files /dev/null and b/sound/voice/joe/tut_tut.ogg differ
diff --git a/sound/voice/joe/unwarranted.ogg b/sound/voice/joe/unwarranted.ogg
new file mode 100644
index 000000000000..faf566ede40a
Binary files /dev/null and b/sound/voice/joe/unwarranted.ogg differ
diff --git a/sound/voice/joe/weapon_permit.ogg b/sound/voice/joe/weapon_permit.ogg
deleted file mode 100644
index 9d22d1d2b163..000000000000
Binary files a/sound/voice/joe/weapon_permit.ogg and /dev/null differ
diff --git a/sound/voice/joe/what_do_you_need.ogg b/sound/voice/joe/what_do_you_need.ogg
new file mode 100644
index 000000000000..fcce740136c9
Binary files /dev/null and b/sound/voice/joe/what_do_you_need.ogg differ
diff --git a/tgui/packages/tgui/interfaces/Microwave.tsx b/tgui/packages/tgui/interfaces/Microwave.tsx
new file mode 100644
index 000000000000..da16a9f44b49
--- /dev/null
+++ b/tgui/packages/tgui/interfaces/Microwave.tsx
@@ -0,0 +1,86 @@
+import { useBackend } from '../backend';
+import { Button, NoticeBox, Section, Flex, Box } from '../components';
+import { BooleanLike } from 'common/react';
+import { Window } from '../layouts';
+
+type Ingredient = {
+ name: string;
+ count: number;
+ measure: string;
+};
+
+type BackendContext = {
+ operating: BooleanLike;
+ broken: BooleanLike;
+ dirty: BooleanLike;
+ ingredients: Ingredient[];
+};
+
+export const Microwave = (props, context) => {
+ const { data, act } = useBackend
(context);
+ const { operating, broken, dirty, ingredients } = data;
+
+ return (
+
+
+
+ act('cook')}>
+ Activate
+
+
+ act('eject_all')}>
+ Eject all
+
+
+ }>
+ {!!operating && (
+
+ Cooking...
+
+ )}
+
+ {!!broken && (
+
+ Appliance broken. Please contact your local technician.
+
+ )}
+
+ {!!dirty && (
+
+ This microwave is too dirty. Cleaning required.
+
+ )}
+
+ {!ingredients.length && None }
+
+
+ {ingredients.map((ingredient) => {
+ return (
+
+ {ingredient.name} : {ingredient.count}{' '}
+ {ingredient.measure}
+
+ );
+ })}
+
+
+
+
+ );
+};
diff --git a/tgui/packages/tgui/interfaces/Orbit/index.tsx b/tgui/packages/tgui/interfaces/Orbit/index.tsx
index a900ee804a28..e9e345995271 100644
--- a/tgui/packages/tgui/interfaces/Orbit/index.tsx
+++ b/tgui/packages/tgui/interfaces/Orbit/index.tsx
@@ -1,6 +1,6 @@
import { filter, sortBy } from 'common/collections';
import { flow } from 'common/fp';
-import { capitalizeFirst } from 'common/string';
+import { capitalizeFirst, multiline } from 'common/string';
import { useBackend, useLocalState } from 'tgui/backend';
import { Box, Button, Collapsible, ColorBox, Icon, Input, LabeledList, Section, Stack } from 'tgui/components';
import { Window } from 'tgui/layouts';
@@ -29,18 +29,21 @@ export const Orbit = (props, context) => {
/** Controls filtering out the list of observables via search */
const ObservableSearch = (props, context) => {
const { act, data } = useBackend(context);
- const {
- auto_observe,
- humans = [],
- marines = [],
- survivors = [],
- xenos = [],
- } = data;
+ const { humans = [], marines = [], survivors = [], xenos = [] } = data;
+
+ let auto_observe = data.auto_observe;
+
+ const [autoObserve, setAutoObserve] = useLocalState(
+ context,
+ 'autoObserve',
+ auto_observe ? true : false
+ );
const [searchQuery, setSearchQuery] = useLocalState(
context,
'searchQuery',
''
);
+
/** Gets a list of Observables, then filters the most relevant to orbit */
const orbitMostRelevant = (searchQuery: string) => {
/** Returns the most orbited observable that matches the search. */
@@ -56,6 +59,7 @@ const ObservableSearch = (props, context) => {
if (mostRelevant !== undefined) {
act('orbit', {
ref: mostRelevant.ref,
+ auto_observe: autoObserve,
});
}
};
@@ -77,6 +81,16 @@ const ObservableSearch = (props, context) => {
/>
+
+ act('toggle_auto_observe')}
+ tooltip={multiline`Toggle Auto-Observe. When active, you'll
+ see the UI / full inventory of whoever you're orbiting. Neat!`}
+ tooltipPosition="bottom-start"
+ />
+
(context, 'autoObserve', false);
+
return (
{
'delta': 'blue',
'echo': 'green',
'foxtrot': 'brown',
+ 'intel': 'green',
};
return (
diff --git a/tgui/packages/tgui/interfaces/PhoneMenu.js b/tgui/packages/tgui/interfaces/PhoneMenu.js
index 657757dd6781..9a2edf943767 100644
--- a/tgui/packages/tgui/interfaces/PhoneMenu.js
+++ b/tgui/packages/tgui/interfaces/PhoneMenu.js
@@ -15,6 +15,7 @@ export const PhoneMenu = (props, context) => {
const GeneralPanel = (props, context) => {
const { act, data } = useBackend(context);
+ const { availability } = data;
const available_transmitters = Object.keys(data.available_transmitters);
const transmitters = data.transmitters.filter((val1) =>
available_transmitters.includes(val1.phone_id)
@@ -46,6 +47,21 @@ const GeneralPanel = (props, context) => {
categories[0]
);
+ let dnd_tooltip = 'Do Not Disturb is DISABLED';
+ let dnd_locked = 'No';
+ let dnd_icon = 'volume-high';
+ if (availability === 1) {
+ dnd_tooltip = 'Do Not Disturb is ENABLED';
+ dnd_icon = 'volume-xmark';
+ } else if (availability >= 2) {
+ dnd_tooltip = 'Do Not Disturb is ENABLED (LOCKED)';
+ dnd_locked = 'Yes';
+ dnd_icon = 'volume-xmark';
+ } else if (availability < 0) {
+ dnd_tooltip = 'Do Not Disturb is DISABLED (LOCKED)';
+ dnd_locked = 'Yes';
+ }
+
return (
@@ -115,6 +131,18 @@ const GeneralPanel = (props, context) => {
/>
)}
+
+ act('toggle_dnd')}
+ />
+
);
diff --git a/tgui/packages/tgui/interfaces/Radar.tsx b/tgui/packages/tgui/interfaces/Radar.tsx
index 1664082fb1b8..277d23f12d1b 100644
--- a/tgui/packages/tgui/interfaces/Radar.tsx
+++ b/tgui/packages/tgui/interfaces/Radar.tsx
@@ -29,7 +29,7 @@ type Target = {
export const Radar = (props, context) => {
return (
-
+
@@ -40,7 +40,7 @@ export const Radar = (props, context) => {
export const RadarContent = (props, context) => {
return (
-
+
{
-
- {compound.type.document.split(' ')[2]}
-
+ {compound.type.document.split(' ')[0] === 'Simulation' ? (
+
+ {compound.type.document.split(' ')[3]}
+
+ ) : (
+
+ {compound.type.document.split(' ')[2]}
+
+ )}