",\
"You are NOT aware of the xenomorph threat.",\
"Your primary objective is to heal up and survive. If you want to assault the hive - adminhelp.")
@@ -80,7 +80,7 @@
/obj/effect/landmark/survivor_spawner/bigred_crashed_cl
equipment = /datum/equipment_preset/survivor/wy/manager
- synth_equipment = /datum/equipment_preset/pmc/synth
+ synth_equipment = /datum/equipment_preset/synth/survivor/pmc
intro_text = list("
You are a survivor of a crash landing!
",\
"You are NOT aware of the xenomorph threat.",\
"Your primary objective is to heal up and survive. If you want to assault the hive - adminhelp.")
diff --git a/code/game/objects/items/explosives/mine.dm b/code/game/objects/items/explosives/mine.dm
index 6b8c9bccd299..742a5f314c4a 100644
--- a/code/game/objects/items/explosives/mine.dm
+++ b/code/game/objects/items/explosives/mine.dm
@@ -198,6 +198,8 @@
return
if(L.get_target_lock(iff_signal) || isrobot(L))
return
+ if(HAS_TRAIT(L, TRAIT_ABILITY_BURROWED))
+ return
L.visible_message(SPAN_DANGER("[icon2html(src, viewers(src))] The [name] clicks as [L] moves in front of it."), \
SPAN_DANGER("[icon2html(src, L)] The [name] clicks as you move in front of it."), \
SPAN_DANGER("You hear a click."))
diff --git a/code/game/objects/items/storage/storage.dm b/code/game/objects/items/storage/storage.dm
index dd8f10a51559..36f946efdfdc 100644
--- a/code/game/objects/items/storage/storage.dm
+++ b/code/game/objects/items/storage/storage.dm
@@ -799,9 +799,9 @@ W is always an item. stop_warning prevents messaging. user may be null.**/
storage_close(watcher)
/obj/item/storage/proc/dump_objectives()
- for(var/obj/item/I in src)
- if(I.is_objective)
- I.forceMove(loc)
+ for(var/obj/item/cur_item in src)
+ if(cur_item.is_objective)
+ remove_from_storage(cur_item, loc)
/obj/item/storage/Destroy()
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index ba5d52a23f97..6154bb4f8c32 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -27,7 +27,6 @@ var/list/admin_verbs_default = list(
/client/proc/invismin,
/client/proc/set_explosive_antigrief,
/client/proc/check_explosive_antigrief,
- /client/proc/cmd_mod_say,
/client/proc/dsay,
/client/proc/chem_panel, /*chem panel, allows viewing, editing and creation of reagent and chemical_reaction datums*/
/client/proc/player_panel_new, /*shows an interface for all players, with links to various panels*/
@@ -68,6 +67,8 @@ var/list/admin_verbs_default = list(
/datum/admins/proc/alertall,
/datum/admins/proc/imaginary_friend,
/client/proc/toggle_ares_ping,
+ /client/proc/cmd_admin_say, /*staff-only ooc chat*/
+ /client/proc/cmd_mod_say, /* alternate way of typing asay, no different than cmd_admin_say */
)
var/list/admin_verbs_admin = list(
@@ -80,7 +81,6 @@ var/list/admin_verbs_admin = list(
/client/proc/toggleprayers, /*toggles prayers on/off*/
/client/proc/toggle_hear_radio, /*toggles whether we hear the radio*/
/client/proc/event_panel,
- /client/proc/cmd_admin_say, /*admin-only ooc chat*/
/client/proc/free_slot, /*frees slot for chosen job*/
/client/proc/modify_slot,
/client/proc/cmd_admin_rejuvenate,
diff --git a/code/modules/admin/tabs/admin_tab.dm b/code/modules/admin/tabs/admin_tab.dm
index c0ffeada9883..5a98faa6ddaa 100644
--- a/code/modules/admin/tabs/admin_tab.dm
+++ b/code/modules/admin/tabs/admin_tab.dm
@@ -218,30 +218,52 @@
message_admins("[key_name(usr)] used Toggle Wake In View.")
+/client/proc/cmd_mod_say(msg as text)
+ set name = "Msay" // This exists for ease of admins who were used to using msay instead of asay
+ set category = "Admin"
+ set hidden = TRUE
+
+ cmd_admin_say(msg)
+
/client/proc/cmd_admin_say(msg as text)
set name = "Asay" //Gave this shit a shorter name so you only have to time out "asay" rather than "admin say" to use it --NeoFite
set category = "Admin"
set hidden = TRUE
- if(!check_rights(R_ADMIN))
+ if(!check_rights(R_ADMIN|R_MOD))
return
msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN)
- if(!msg)
+
+ if (!msg)
return
- log_adminpm("ADMIN : [key_name(src)] : [msg]")
- REDIS_PUBLISH("byond.asay", "author" = src.key, "message" = strip_html(msg), "host" = ishost(src), "rank" = admin_holder.rank)
+ REDIS_PUBLISH("byond.asay", "author" = src.key, "message" = strip_html(msg), "admin" = CLIENT_HAS_RIGHTS(src, R_ADMIN), "rank" = admin_holder.rank)
+
+ if(findtext(msg, "@") || findtext(msg, "#"))
+ var/list/link_results = check_asay_links(msg)
+ if(length(link_results))
+ msg = link_results[ASAY_LINK_NEW_MESSAGE_INDEX]
+ link_results[ASAY_LINK_NEW_MESSAGE_INDEX] = null
+ var/list/pinged_admin_clients = link_results[ASAY_LINK_PINGED_ADMINS_INDEX]
+ for(var/iter_ckey in pinged_admin_clients)
+ var/client/iter_admin_client = pinged_admin_clients[iter_ckey]
+ if(!iter_admin_client?.admin_holder)
+ continue
+ window_flash(iter_admin_client)
+ SEND_SOUND(iter_admin_client.mob, sound('sound/misc/asay_ping.ogg'))
+
+ log_adminpm("ADMIN: [key_name(src)] : [msg]")
var/color = "adminsay"
if(ishost(usr))
color = "headminsay"
- if(check_rights(R_ADMIN,0))
- msg = "ADMIN:[key_name(usr, 1)] [ADMIN_JMP_USER(mob)]: [msg]"
- for(var/client/C in GLOB.admins)
- if(R_ADMIN & C.admin_holder.rights)
- to_chat(C, msg)
+ var/channel = "ADMIN:"
+ channel = "[admin_holder.rank]:"
+ for(var/client/client as anything in GLOB.admins)
+ if((R_ADMIN|R_MOD) & client.admin_holder.rights)
+ to_chat(client, "[channel][key_name(src,1)] [ADMIN_JMP_USER(mob)]: [msg]")
/datum/admins/proc/alertall()
set name = "Alert All"
@@ -328,50 +350,6 @@
var/msg = input(src, null, "asay \"text\"") as text|null
cmd_admin_say(msg)
-/client/proc/cmd_mod_say(msg as text)
- set name = "Msay"
- set category = "Admin"
- set hidden = TRUE
-
- if(!check_rights(R_ADMIN|R_MOD))
- return
-
- msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN)
-
- if (!msg)
- return
-
- REDIS_PUBLISH("byond.msay", "author" = src.key, "message" = strip_html(msg), "admin" = CLIENT_HAS_RIGHTS(src, R_ADMIN), "rank" = admin_holder.rank)
-
- if(findtext(msg, "@") || findtext(msg, "#"))
- var/list/link_results = check_asay_links(msg)
- if(length(link_results))
- msg = link_results[ASAY_LINK_NEW_MESSAGE_INDEX]
- link_results[ASAY_LINK_NEW_MESSAGE_INDEX] = null
- var/list/pinged_admin_clients = link_results[ASAY_LINK_PINGED_ADMINS_INDEX]
- for(var/iter_ckey in pinged_admin_clients)
- var/client/iter_admin_client = pinged_admin_clients[iter_ckey]
- if(!iter_admin_client?.admin_holder)
- continue
- window_flash(iter_admin_client)
- SEND_SOUND(iter_admin_client.mob, sound('sound/misc/asay_ping.ogg'))
-
- log_adminpm("MOD: [key_name(src)] : [msg]")
-
- var/color = "mod"
- if (check_rights(R_ADMIN,0))
- color = "adminmod"
-
- var/channel = "MOD:"
- channel = "[admin_holder.rank]:"
- for(var/client/C in GLOB.admins)
- if((R_ADMIN|R_MOD) & C.admin_holder.rights)
- to_chat(C, "[channel][key_name(src,1)] [ADMIN_JMP_USER(mob)]: [msg]")
-
-/client/proc/get_mod_say()
- var/msg = input(src, null, "msay \"text\"") as text|null
- cmd_mod_say(msg)
-
/client/proc/cmd_mentor_say(msg as text)
set name = "MentorSay"
set category = "OOC"
diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm
index 6926175c835a..c700a226295e 100644
--- a/code/modules/client/client_procs.dm
+++ b/code/modules/client/client_procs.dm
@@ -713,17 +713,8 @@ GLOBAL_LIST_INIT(whitelisted_client_procs, list(
winset(src, "srvkeybinds-[REF(key)]", "parent=default;name=[key];command=[looc]")
else
winset(src, "srvkeybinds-[REF(key)]", "parent=default;name=[key];command=looc")
- if(MOD_CHANNEL)
- if(admin_holder?.check_for_rights(R_MOD))
- if(prefs.tgui_say)
- var/msay = tgui_say_create_open_command(MOD_CHANNEL)
- winset(src, "srvkeybinds-[REF(key)]", "parent=default;name=[key];command=[msay]")
- else
- winset(src, "srvkeybinds-[REF(key)]", "parent=default;name=[key];command=msay")
- else
- winset(src, "srvkeybinds-[REF(key)]", "parent=default;name=[key];command=")
if(ADMIN_CHANNEL)
- if(admin_holder?.check_for_rights(R_ADMIN))
+ if(admin_holder?.check_for_rights(R_MOD))
if(prefs.tgui_say)
var/asay = tgui_say_create_open_command(ADMIN_CHANNEL)
winset(src, "srvkeybinds-[REF(key)]", "parent=default;name=[key];command=[asay]")
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index d2b020a05daf..c51f5f2575ed 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -272,13 +272,11 @@
flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_ARMS
/obj/item/clothing/suit/storage/webbing
- name = "External webbing"
+ name = "external webbing"
desc = "Designed to be worn over a jumpsuit rather than clipped on."
icon_state = "webbing"
item_state = "webbing"
allowed = list(
- /obj/item/storage/fancy/cigarettes,
- /obj/item/tool/lighter,
/obj/item/weapon/baton,
/obj/item/handcuffs,
/obj/item/device/binoculars,
@@ -287,7 +285,6 @@
/obj/item/device/flashlight,
/obj/item/device/healthanalyzer,
/obj/item/device/radio,
- /obj/item/tank/emergency_oxygen,
/obj/item/tool/crowbar,
/obj/item/tool/crew_monitor,
/obj/item/tool/pen,
@@ -295,6 +292,26 @@
/obj/item/device/motiondetector,
)
+/obj/item/clothing/suit/storage/utility_vest
+ name = "utility vest"
+ desc = "A utility vest to hold tools in."
+ icon_state = "synth_utility_vest"
+ item_state = "synth_utility_vest"
+ 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/storage/large_holster/machete,
+ /obj/item/device/motiondetector,
+ )
+
//Blue suit jacket toggle
/obj/item/clothing/suit/suit/verb/toggle()
set name = "Toggle Jacket Buttons"
diff --git a/code/modules/clothing/under/marine_uniform.dm b/code/modules/clothing/under/marine_uniform.dm
index 540c311f9221..eca050cc4b88 100644
--- a/code/modules/clothing/under/marine_uniform.dm
+++ b/code/modules/clothing/under/marine_uniform.dm
@@ -705,7 +705,7 @@
sensor_faction = FACTION_CLF
/obj/item/clothing/under/colonist/ua_civvies
- name = "gray utilities"
+ name = "\improper UA gray utility uniform"
desc = "A stylish gray jumpsuit - standard issue for UA civilian support personnel."
icon_state = "ua_civvies"
worn_state = "ua_civvies"
@@ -713,7 +713,7 @@
sensor_faction = FACTION_MARINE
/obj/item/clothing/under/colonist/wy_davisone
- name = "brown utilities"
+ name = "\improper UA brown utility uniform"
desc = "A stylish brown jumpsuit - standard issue for UA civilian support personnel."
icon_state = "wy_davisone"
worn_state = "wy_davisone"
@@ -737,14 +737,15 @@
desc = "A comfortable white T-shirt and brown jeans."
icon_state = "tshirt_w_br"
worn_state = "tshirt_w_br"
+ displays_id = FALSE
has_sensor = UNIFORM_HAS_SENSORS
sensor_faction = FACTION_MARINE
-
/obj/item/clothing/under/tshirt/gray_blu
name = "gray T-shirt and jeans"
desc = "A comfortable gray T-shirt and blue jeans."
icon_state = "tshirt_gray_blu"
worn_state = "tshirt_gray_blu"
+ displays_id = FALSE
has_sensor = UNIFORM_HAS_SENSORS
sensor_faction = FACTION_MARINE
@@ -753,6 +754,7 @@
desc = "A comfortable red T-shirt and black jeans."
icon_state = "tshirt_r_bla"
worn_state = "tshirt_r_bla"
+ displays_id = FALSE
has_sensor = UNIFORM_HAS_SENSORS
sensor_faction = FACTION_MARINE
@@ -851,6 +853,38 @@
worn_state = "rdalt"
flags_jumpsuit = FALSE
+/obj/item/clothing/under/rank/synthetic/frontier
+ name = "\improper frontier jumpsuit"
+ desc = "A cargo jumpsuit dressed down for full range of motion and state-of-the-art frontier temperature control. It's the best thing an engineer can wear in the Outer Veil."
+ icon_state = "synth_cargo_light"
+ worn_state = "synth_cargo_light"
+ displays_id = FALSE
+
+/obj/item/clothing/under/rank/synthetic/utility
+ name = "\improper UA utility uniform"
+ desc = "A green-on-green utility uniform, popularly issued to UA contract workers on the frontier."
+ icon_state = "synth_green_utility"
+ worn_state = "synth_green_utility"
+ displays_id = FALSE
+
+/obj/item/clothing/under/rank/synthetic/utility/yellow
+ name = "\improper utility uniform"
+ desc = "A grey utility uniform with yellow suspenders, made for shipside crew."
+ icon_state = "synth_yellow_utility"
+ worn_state = "synth_yellow_utility"
+
+/obj/item/clothing/under/rank/synthetic/utility/red
+ name = "\improper utility uniform"
+ desc = "A grey utility uniform with red suspenders and blue jeans, the sign of a veteran laborer, or someone not paid by the hour."
+ icon_state = "synth_red_utility"
+ worn_state = "synth_red_utility"
+
+/obj/item/clothing/under/rank/synthetic/utility/blue
+ name = "\improper utility uniform"
+ desc = "A blue utility uniform with teal suspenders and rugged pants."
+ icon_state = "synth_blue_utility"
+ worn_state = "synth_blue_utility"
+
/obj/item/clothing/under/rank/synthetic/councillor
name = "\improper USCM Pristine Support Uniform"
desc = "A nicely handcrafted uniform made for Synthetic crewmembers."
diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm
index b5d2850575aa..42c61404a31a 100644
--- a/code/modules/clothing/under/miscellaneous.dm
+++ b/code/modules/clothing/under/miscellaneous.dm
@@ -82,8 +82,8 @@
item_state = "r_suit"
/obj/item/clothing/under/blackskirt
- name = "black skirt"
- desc = "A black skirt, very fancy!"
+ name = "red dress skirt"
+ desc = "A black cardigan with a red skirt, quite fancy!"
icon_state = "blackskirt"
flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS
diff --git a/code/modules/cm_aliens/structures/special/egg_morpher.dm b/code/modules/cm_aliens/structures/special/egg_morpher.dm
index 2e79d6ef1d24..1fd154eb354c 100644
--- a/code/modules/cm_aliens/structures/special/egg_morpher.dm
+++ b/code/modules/cm_aliens/structures/special/egg_morpher.dm
@@ -148,6 +148,7 @@
var/obj/item/item = A
if(item.is_objective && item.unacidable)
item.forceMove(get_step(loc, pick(alldirs)))
+ item.mouse_opacity = initial(item.mouse_opacity)
QDEL_NULL(captured_mob)
update_icon()
diff --git a/code/modules/cm_marines/orbital_cannon.dm b/code/modules/cm_marines/orbital_cannon.dm
index ad214c954915..8d80f80860f3 100644
--- a/code/modules/cm_marines/orbital_cannon.dm
+++ b/code/modules/cm_marines/orbital_cannon.dm
@@ -430,7 +430,6 @@ var/list/ob_type_fuel_requirements
icon_state = "ob_warhead_1"
shake_frequency = 3
max_shake_factor = 15
- max_knockdown_time = 6
var/clear_power = 1200
var/clear_falloff = 400
diff --git a/code/modules/cm_preds/yaut_bracers.dm b/code/modules/cm_preds/yaut_bracers.dm
index 1b98ef402b90..5c4079b2be23 100644
--- a/code/modules/cm_preds/yaut_bracers.dm
+++ b/code/modules/cm_preds/yaut_bracers.dm
@@ -347,10 +347,6 @@
playsound(user,'sound/weapons/wristblades_on.ogg', 15, 1)
return TRUE
-// Toggle the notification sound
-/obj/item/clothing/gloves/yautja/hunter/toggle_notification_sound()
- set category = "Yautja.Misc"
-
//Should put a cool menu here, like ninjas.
/obj/item/clothing/gloves/yautja/hunter/verb/wristblades()
set name = "Use Wrist Blades"
diff --git a/code/modules/defenses/sentry.dm b/code/modules/defenses/sentry.dm
index 946c347efaa0..fc52c254c0b8 100644
--- a/code/modules/defenses/sentry.dm
+++ b/code/modules/defenses/sentry.dm
@@ -370,7 +370,7 @@
targets.Remove(A)
continue
- if(M.get_target_lock(faction_group) || M.invisibility)
+ if(M.get_target_lock(faction_group) || M.invisibility || HAS_TRAIT(M, TRAIT_ABILITY_BURROWED))
if(M == target)
target = null
targets.Remove(M)
diff --git a/code/modules/gear_presets/synths.dm b/code/modules/gear_presets/synths.dm
index 823cfb4d69d4..b7749f54c386 100644
--- a/code/modules/gear_presets/synths.dm
+++ b/code/modules/gear_presets/synths.dm
@@ -451,6 +451,59 @@
survivor_variant = ENGINEERING_SURVIVOR
+ faction = FACTION_SURVIVOR
+ faction_group = list(FACTION_SURVIVOR)
+ access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_COMMAND)
+
+/datum/equipment_preset/synth/survivor/pmc
+ name = "Survivor - Synthetic - PMC Support Synth"
+
+ 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/tool/surgery/synthgraft, 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/ammo_magazine/smg/nailgun, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/auto_cpr, 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/mob/living/carbon/xenomorph/Embryo.dm b/code/modules/mob/living/carbon/xenomorph/Embryo.dm
index 8b890de8a727..01f6c1a3c238 100644
--- a/code/modules/mob/living/carbon/xenomorph/Embryo.dm
+++ b/code/modules/mob/living/carbon/xenomorph/Embryo.dm
@@ -149,10 +149,17 @@
var/mob/picked
// If the bursted person themselves has Xeno enabled, they get the honor of first dibs on the new larva.
if((!isyautja(affected_mob) || (isyautja(affected_mob) && prob(20))) && istype(affected_mob.buckled, /obj/structure/bed/nest))
- if(affected_mob.first_xeno || (affected_mob.client && affected_mob.client.prefs && (affected_mob.client.prefs.be_special & BE_ALIEN_AFTER_DEATH) && !jobban_isbanned(affected_mob, JOB_XENOMORPH)))
+ if(affected_mob.first_xeno || (affected_mob.client?.prefs?.be_special & BE_ALIEN_AFTER_DEATH && !jobban_isbanned(affected_mob, JOB_XENOMORPH)))
picked = affected_mob
- else if(affected_mob.mind && affected_mob.mind.ghost_mob && affected_mob.client && affected_mob.client.prefs && (affected_mob.client.prefs.be_special & BE_ALIEN_AFTER_DEATH) && !jobban_isbanned(affected_mob, JOB_XENOMORPH))
- picked = affected_mob.mind.ghost_mob
+ else if(affected_mob.mind?.ghost_mob && affected_mob.client?.prefs?.be_special & BE_ALIEN_AFTER_DEATH && !jobban_isbanned(affected_mob, JOB_XENOMORPH))
+ picked = affected_mob.mind.ghost_mob // This currently doesn't look possible
+ else if(affected_mob.persistent_ckey)
+ for(var/mob/dead/observer/cur_obs as anything in GLOB.observer_list)
+ if(cur_obs.ckey != affected_mob.persistent_ckey)
+ continue
+ if(cur_obs?.client?.prefs?.be_special & BE_ALIEN_AFTER_DEATH && !jobban_isbanned(cur_obs, JOB_XENOMORPH))
+ picked = cur_obs
+ break
if(!picked)
// Get a candidate from observers
diff --git a/code/modules/mob/living/carbon/xenomorph/XenoAttacks.dm b/code/modules/mob/living/carbon/xenomorph/XenoAttacks.dm
index be772e3a0a4f..b12ff5d6c3bb 100644
--- a/code/modules/mob/living/carbon/xenomorph/XenoAttacks.dm
+++ b/code/modules/mob/living/carbon/xenomorph/XenoAttacks.dm
@@ -93,6 +93,9 @@
if (M.fortify || M.burrow)
return XENO_NO_DELAY_ACTION
+ if(HAS_TRAIT(src, TRAIT_ABILITY_BURROWED))
+ return XENO_NO_DELAY_ACTION
+
if(islarva(M)) //Larvas can't eat people
M.visible_message(SPAN_DANGER("[M] nudges its head against \the [src]."), \
SPAN_DANGER("You nudge your head against \the [src]."), null, null, CHAT_TYPE_XENO_FLUFF)
diff --git a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm
index f1d03d6507b1..0b2625882ed8 100644
--- a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm
+++ b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm
@@ -745,6 +745,8 @@
if(SEND_SIGNAL(AM, COMSIG_MOVABLE_XENO_START_PULLING, src) & COMPONENT_ALLOW_PULL)
return do_pull(AM, lunge, no_msg)
+ if(burrow)
+ return
if(!isliving(AM))
return FALSE
var/mob/living/L = AM
@@ -1085,3 +1087,8 @@
if(D)
color_override = D.color
new /obj/effect/temp_visual/dir_setting/bloodsplatter/xenosplatter(loc, splatter_dir, duration, color_override)
+
+/mob/living/carbon/xenomorph/Collide(atom/movable/movable_atom)
+ . = ..()
+ if(behavior_delegate)
+ behavior_delegate.on_collide(movable_atom)
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/burrower/burrower_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/burrower/burrower_powers.dm
index 4f104c00f92e..4d3aae33ae9c 100644
--- a/code/modules/mob/living/carbon/xenomorph/abilities/burrower/burrower_powers.dm
+++ b/code/modules/mob/living/carbon/xenomorph/abilities/burrower/burrower_powers.dm
@@ -42,7 +42,12 @@
density = FALSE
if(caste.fire_immunity == FIRE_IMMUNITY_NONE)
RegisterSignal(src, COMSIG_LIVING_PREIGNITION, PROC_REF(fire_immune))
- RegisterSignal(src, COMSIG_LIVING_FLAMER_CROSSED, PROC_REF(flamer_crossed_immune))
+ RegisterSignal(src, list(
+ COMSIG_LIVING_FLAMER_CROSSED,
+ COMSIG_LIVING_FLAMER_FLAMED,
+ ), PROC_REF(flamer_crossed_immune))
+ ADD_TRAIT(src, TRAIT_ABILITY_BURROWED, TRAIT_SOURCE_ABILITY("Burrow"))
+ playsound(src.loc, 'sound/effects/burrowing_b.ogg', 25)
update_canmove()
update_icons()
addtimer(CALLBACK(src, PROC_REF(do_burrow_cooldown)), (caste ? caste.burrow_cooldown : 5 SECONDS))
@@ -65,21 +70,29 @@
to_chat(src, SPAN_NOTICE("You resurface."))
burrow = FALSE
if(caste.fire_immunity == FIRE_IMMUNITY_NONE)
- UnregisterSignal(src, COMSIG_LIVING_PREIGNITION)
- UnregisterSignal(src, COMSIG_LIVING_FLAMER_CROSSED)
+ UnregisterSignal(src, list(
+ COMSIG_LIVING_PREIGNITION,
+ COMSIG_LIVING_FLAMER_CROSSED,
+ COMSIG_LIVING_FLAMER_FLAMED,
+ ))
+ REMOVE_TRAIT(src, TRAIT_ABILITY_BURROWED, TRAIT_SOURCE_ABILITY("Burrow"))
frozen = FALSE
invisibility = FALSE
anchored = FALSE
density = TRUE
- for(var/mob/living/carbon/human/H in loc)
- H.apply_effect(2, WEAKEN)
+ playsound(loc, 'sound/effects/burrowoff.ogg', 25)
+ for(var/mob/living/carbon/mob in loc)
+ if(!can_not_harm(mob))
+ mob.apply_effect(2, WEAKEN)
+
addtimer(CALLBACK(src, PROC_REF(do_burrow_cooldown)), (caste ? caste.burrow_cooldown : 5 SECONDS))
update_canmove()
update_icons()
/mob/living/carbon/xenomorph/proc/do_burrow_cooldown()
used_burrow = FALSE
- to_chat(src, SPAN_NOTICE("You can now surface."))
+ if(burrow)
+ to_chat(src, SPAN_NOTICE("You can now surface."))
for(var/X in actions)
var/datum/action/act = X
act.update_button_icon()
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Lurker.dm b/code/modules/mob/living/carbon/xenomorph/castes/Lurker.dm
index fb75ed3900ac..5010857301e0 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/Lurker.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/Lurker.dm
@@ -151,3 +151,18 @@
. = list()
var/invis_message = (invis_start_time == -1) ? "N/A" : "[(invis_duration-(world.time - invis_start_time))/10] seconds."
. += "Invisibility Time Left: [invis_message]"
+
+/datum/behavior_delegate/lurker_base/on_collide(atom/movable/movable_atom)
+ . = ..()
+
+ if(!ishuman(movable_atom))
+ return
+
+ if(!bound_xeno || !bound_xeno.stealth)
+ return
+
+ var/datum/action/xeno_action/onclick/lurker_invisibility/lurker_invisibility_action = get_xeno_action_by_type(bound_xeno, /datum/action/xeno_action/onclick/lurker_invisibility)
+ if(!lurker_invisibility_action)
+ return
+
+ lurker_invisibility_action.invisibility_off()
diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/behavior_delegate.dm b/code/modules/mob/living/carbon/xenomorph/mutators/behavior_delegate.dm
index 1cb563461138..53ca8c3a74da 100644
--- a/code/modules/mob/living/carbon/xenomorph/mutators/behavior_delegate.dm
+++ b/code/modules/mob/living/carbon/xenomorph/mutators/behavior_delegate.dm
@@ -104,3 +104,7 @@
/// Used to override an intent for some abilities that must force harm on next attack_alien()
/datum/behavior_delegate/proc/override_intent(mob/living/carbon/target_carbon)
return bound_xeno.a_intent
+
+/// Used to do something when a xeno collides with a movable atom
+/datum/behavior_delegate/proc/on_collide(atom/movable/movable_atom)
+ return
diff --git a/code/modules/mob/living/living_verbs.dm b/code/modules/mob/living/living_verbs.dm
index 9b003562825d..fe95f14182ea 100644
--- a/code/modules/mob/living/living_verbs.dm
+++ b/code/modules/mob/living/living_verbs.dm
@@ -11,6 +11,12 @@
to_chat(src, SPAN_WARNING("You can't resist in your current state."))
return
+ if(isxeno(src))
+ var/mob/living/carbon/xenomorph/xeno = src
+ if(xeno.burrow)
+ to_chat(src, SPAN_WARNING("You can't resist in your current state."))
+ return
+
resisting = TRUE
next_move = world.time + 20
diff --git a/code/modules/paperwork/carbonpaper.dm b/code/modules/paperwork/carbonpaper.dm
index 813283147c45..4ddefff61eb8 100644
--- a/code/modules/paperwork/carbonpaper.dm
+++ b/code/modules/paperwork/carbonpaper.dm
@@ -30,7 +30,7 @@
set category = "Object"
set src in usr
- if (copied == 0)
+ if (!copied && !iscopy)
var/obj/item/paper/carbon/c = src
var/copycontents = html_decode(c.info)
var/obj/item/paper/carbon/copy = new /obj/item/paper/carbon (usr.loc)
diff --git a/code/modules/projectiles/ammo_boxes/grenade_packets.dm b/code/modules/projectiles/ammo_boxes/grenade_packets.dm
index 518ccd2d47ab..a0d16b621eb3 100644
--- a/code/modules/projectiles/ammo_boxes/grenade_packets.dm
+++ b/code/modules/projectiles/ammo_boxes/grenade_packets.dm
@@ -110,19 +110,19 @@ var/list/grenade_packets = list(
content_type = /obj/item/explosive/grenade/high_explosive/m15/rubber
/obj/item/storage/box/packet/airburst_he
- name = "\improper M74 airbust grenade packet"
+ name = "\improper M74 airburst grenade packet"
desc = "It contains three M74 airburst fragmentation grenades. This end towards the enemy."
icon_state = "agmf_packet"
content_type = /obj/item/explosive/grenade/high_explosive/airburst
/obj/item/storage/box/packet/airburst_incen
- name = "\improper M74 airbust incendiary grenade packet"
+ name = "\improper M74 airburst incendiary grenade packet"
desc = "It contains three M74 airburst incendiary grenades. This end towards the enemy."
icon_state = "agmi_packet"
content_type = /obj/item/explosive/grenade/incendiary/airburst
/obj/item/storage/box/packet/airburst_smoke
- name = "\improper M74 airbust smoke grenade packet"
+ name = "\improper M74 airburst smoke grenade packet"
desc = "It contains three M74 airburst smoke grenades. This end towards the enemy."
icon_state = "agms_packet"
content_type = /obj/item/explosive/grenade/smokebomb/airburst
diff --git a/code/modules/tgui/tgui-say/modal.dm b/code/modules/tgui/tgui-say/modal.dm
index b959019b894f..f1e87e001cef 100644
--- a/code/modules/tgui/tgui-say/modal.dm
+++ b/code/modules/tgui/tgui-say/modal.dm
@@ -83,7 +83,7 @@
if(!payload?["channel"])
CRASH("No channel provided to an open TGUI-Say")
window_open = TRUE
- if(payload["channel"] != OOC_CHANNEL && payload["channel"] != LOOC_CHANNEL && payload["channel"] != MOD_CHANNEL && payload["channel"] != ADMIN_CHANNEL && payload["channel"] != MENTOR_CHANNEL)
+ if(payload["channel"] != OOC_CHANNEL && payload["channel"] != LOOC_CHANNEL && payload["channel"] != ADMIN_CHANNEL && payload["channel"] != MENTOR_CHANNEL)
start_thinking()
return TRUE
diff --git a/code/modules/tgui/tgui-say/speech.dm b/code/modules/tgui/tgui-say/speech.dm
index f278361ac0d0..7bce349e1b7f 100644
--- a/code/modules/tgui/tgui-say/speech.dm
+++ b/code/modules/tgui/tgui-say/speech.dm
@@ -47,9 +47,6 @@
if(LOOC_CHANNEL)
client.looc(entry)
return TRUE
- if(MOD_CHANNEL)
- client.cmd_mod_say(entry)
- return TRUE
if(ADMIN_CHANNEL)
client.cmd_admin_say(entry)
return TRUE
@@ -94,7 +91,7 @@
return TRUE
if(type == "force")
var/target_channel = payload["channel"]
- if(target_channel == ME_CHANNEL || target_channel == OOC_CHANNEL || target_channel == LOOC_CHANNEL || target_channel == MOD_CHANNEL)
+ if(target_channel == ME_CHANNEL || target_channel == OOC_CHANNEL || target_channel == LOOC_CHANNEL || target_channel == ADMIN_CHANNEL)
target_channel = SAY_CHANNEL // No ooc leaks
delegate_speech(alter_entry(payload), target_channel)
return TRUE
diff --git a/colonialmarines.dme b/colonialmarines.dme
index 304d5221ddd3..663f05b2c9de 100644
--- a/colonialmarines.dme
+++ b/colonialmarines.dme
@@ -558,7 +558,6 @@
#include "code\datums\redis\redis_message.dm"
#include "code\datums\redis\callbacks\_redis_callback.dm"
#include "code\datums\redis\callbacks\asay.dm"
-#include "code\datums\redis\callbacks\msay.dm"
#include "code\datums\stamina\_stamina.dm"
#include "code\datums\stamina\none.dm"
#include "code\datums\statistics\cause_data.dm"
diff --git a/html/changelogs/AutoChangeLog-pr-3801.yml b/html/changelogs/AutoChangeLog-pr-3801.yml
deleted file mode 100644
index 5b7e82c62f86..000000000000
--- a/html/changelogs/AutoChangeLog-pr-3801.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Morrow"
-delete-after: True
-changes:
- - balance: "Marines called with foxtrot nerfed from 15 to 10."
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-3804.yml b/html/changelogs/AutoChangeLog-pr-3804.yml
deleted file mode 100644
index 64342db7b1e4..000000000000
--- a/html/changelogs/AutoChangeLog-pr-3804.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Steelpoint"
-delete-after: True
-changes:
- - balance: "Synthetic Armour slowdown has been decreased"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-3809.yml b/html/changelogs/AutoChangeLog-pr-3809.yml
deleted file mode 100644
index e86a6dd7146b..000000000000
--- a/html/changelogs/AutoChangeLog-pr-3809.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "SpartanBobby"
-delete-after: True
-changes:
- - balance: "reduces the M1911 magazine size from 14 to 7"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-3810.yml b/html/changelogs/AutoChangeLog-pr-3810.yml
deleted file mode 100644
index 1ad038db0f7b..000000000000
--- a/html/changelogs/AutoChangeLog-pr-3810.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Morrow"
-delete-after: True
-changes:
- - bugfix: "Stops xenos from bypassing dead moving via roller beds"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-3811.yml b/html/changelogs/AutoChangeLog-pr-3811.yml
deleted file mode 100644
index 7c54d0e2b52e..000000000000
--- a/html/changelogs/AutoChangeLog-pr-3811.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Morrow"
-delete-after: True
-changes:
- - balance: "Telebaton now scales in stunforce effectiveness based on policing skill"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-3834.yml b/html/changelogs/AutoChangeLog-pr-3834.yml
deleted file mode 100644
index 1ab9c5a6e98a..000000000000
--- a/html/changelogs/AutoChangeLog-pr-3834.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "SpartanBobby"
-delete-after: True
-changes:
- - maptweak: "LV522: Flips the layout of engineering making the T-comms unit on the far side of the LZ"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-3841.yml b/html/changelogs/AutoChangeLog-pr-3841.yml
new file mode 100644
index 000000000000..90292a845422
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3841.yml
@@ -0,0 +1,4 @@
+author: "Drathek"
+delete-after: True
+changes:
+ - bugfix: "Fix morpher ejected items and dumped objectives not restoring their mouse_opacity setting."
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-3849.yml b/html/changelogs/AutoChangeLog-pr-3849.yml
new file mode 100644
index 000000000000..bf5c9c9813f6
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3849.yml
@@ -0,0 +1,4 @@
+author: "realforest2001"
+delete-after: True
+changes:
+ - rscadd: "Added a PMC Synth Survivor preset, and stopped PMC Synth Survivor using the ERT set."
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-3851.yml b/html/changelogs/AutoChangeLog-pr-3851.yml
new file mode 100644
index 000000000000..2066366eb549
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3851.yml
@@ -0,0 +1,4 @@
+author: "Zonespace27"
+delete-after: True
+changes:
+ - admin: "Removed msay. All staff now have access to asay"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-3854.yml b/html/changelogs/AutoChangeLog-pr-3854.yml
new file mode 100644
index 000000000000..651976126290
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3854.yml
@@ -0,0 +1,4 @@
+author: "realforest2001"
+delete-after: True
+changes:
+ - soundadd: "Added a drag sound for footstep component"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-3857.yml b/html/changelogs/AutoChangeLog-pr-3857.yml
new file mode 100644
index 000000000000..e9729283ea34
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3857.yml
@@ -0,0 +1,4 @@
+author: "Morrow"
+delete-after: True
+changes:
+ - balance: "Lurkers now lose their invisibility when they run into a person"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-3864.yml b/html/changelogs/AutoChangeLog-pr-3864.yml
new file mode 100644
index 000000000000..01e5ed5e7c73
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3864.yml
@@ -0,0 +1,4 @@
+author: "ondrej008"
+delete-after: True
+changes:
+ - bugfix: "The HE OB now deals the correct amount of damage to xenos, before it dealt half damage caused by xenos being forced to rest before it hit."
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-3866.yml b/html/changelogs/AutoChangeLog-pr-3866.yml
new file mode 100644
index 000000000000..49809e7e7dc3
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3866.yml
@@ -0,0 +1,4 @@
+author: "realforest2001"
+delete-after: True
+changes:
+ - bugfix: "Carbon copies can no longer infinitely breed."
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-3870.yml b/html/changelogs/AutoChangeLog-pr-3870.yml
new file mode 100644
index 000000000000..34bba780f492
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3870.yml
@@ -0,0 +1,4 @@
+author: "realforest2001"
+delete-after: True
+changes:
+ - bugfix: "Fixes the icon on the alien blade on LV."
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-3871.yml b/html/changelogs/AutoChangeLog-pr-3871.yml
new file mode 100644
index 000000000000..76cdd0ebb9ca
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3871.yml
@@ -0,0 +1,4 @@
+author: "Ben10083"
+delete-after: True
+changes:
+ - spellcheck: "Fixed typos relating to M74 airburst packets."
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-3874.yml b/html/changelogs/AutoChangeLog-pr-3874.yml
new file mode 100644
index 000000000000..83311c453f97
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3874.yml
@@ -0,0 +1,4 @@
+author: "Morrow"
+delete-after: True
+changes:
+ - admin: "VV Jump To Fix"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-3878.yml b/html/changelogs/AutoChangeLog-pr-3878.yml
new file mode 100644
index 000000000000..bef90fd797f5
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3878.yml
@@ -0,0 +1,4 @@
+author: "realforest2001"
+delete-after: True
+changes:
+ - bugfix: "Fixes the toggle notification sound verb for Yautja bracers not working."
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-3881.yml b/html/changelogs/AutoChangeLog-pr-3881.yml
new file mode 100644
index 000000000000..e7228482ba13
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3881.yml
@@ -0,0 +1,4 @@
+author: "Steelpoint"
+delete-after: True
+changes:
+ - ui: "Predator Ship is now called 'Yautja Ship\" for teleporting Predators"
\ No newline at end of file
diff --git a/html/changelogs/archive/2023-07.yml b/html/changelogs/archive/2023-07.yml
index ec61abf15d10..923af7d86a7b 100644
--- a/html/changelogs/archive/2023-07.yml
+++ b/html/changelogs/archive/2023-07.yml
@@ -138,3 +138,31 @@
2023-07-11:
BeagleGaming1:
- bugfix: Fixes the Working Joe species
+2023-07-12:
+ Morrow:
+ - bugfix: Stops xenos from bypassing dead moving via roller beds
+ - balance: Telebaton now scales in stunforce effectiveness based on policing skill
+ - balance: Marines called with foxtrot nerfed from 15 to 10.
+ SpartanBobby:
+ - maptweak: 'LV522: Flips the layout of engineering making the T-comms unit on the
+ far side of the LZ'
+ - balance: reduces the M1911 magazine size from 14 to 7
+ Steelpoint:
+ - balance: Synthetic Armour slowdown has been decreased
+2023-07-13:
+ QuickLoad, Thwomper:
+ - imageadd: Synthetic Uniforms & Vest with United Americas flair and classic jumpsuits
+ which remind you of life on the Frontier. Sprited by THE THWOMPA himself!
+ - qol: Synthetic Vendor is more organized. Removes scrub cap, adds shoe.
+2023-07-14:
+ Drathek:
+ - bugfix: Fix ghosting preventing first dibs on the larva in a hugged marine
+ Unknownity:
+ - bugfix: Fixed burrowed mobs being able to be targeted by sentries, mines and SG
+ autofire.
+ - bugfix: Fixed burrowed mobs being able to grab mobs on the surface.
+ - bugfix: Fixed burrowed mobs being able to resist while burrowed.
+ - bugfix: Fixed burrowers taking damage from direct flame and shrapnel from explosions.
+ - bugfix: Fixed burrowers being able to get slashed from enemy Xenos on the surface.
+ - bugfix: Fixed burrowers unburrow stun to now properly target and stun enemy Xenos.
+ - soundadd: Added sounds for the Burrower when they are burrowing and unburrowing.
diff --git a/icons/mob/humans/onmob/suit_0.dmi b/icons/mob/humans/onmob/suit_0.dmi
index 5cccc4c2e0e0..0065384e2c6c 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/uniform_0.dmi b/icons/mob/humans/onmob/uniform_0.dmi
index cac9869c9034..a3e34fc2e16c 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/obj/items/clothing/suits.dmi b/icons/obj/items/clothing/suits.dmi
index cff4b5d48c17..668b9a86c62f 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/uniforms.dmi b/icons/obj/items/clothing/uniforms.dmi
index 254c9e8b67c9..4d4d7df3224d 100644
Binary files a/icons/obj/items/clothing/uniforms.dmi and b/icons/obj/items/clothing/uniforms.dmi differ
diff --git a/maps/map_files/LV624/LV624.dmm b/maps/map_files/LV624/LV624.dmm
index cec27c56b079..de31b327c9a4 100644
--- a/maps/map_files/LV624/LV624.dmm
+++ b/maps/map_files/LV624/LV624.dmm
@@ -14106,10 +14106,9 @@
/turf/open/gm/grass/grass1,
/area/lv624/ground/colony/west_nexus_road)
"fja" = (
-/obj/item/attachable/bayonet{
+/obj/item/weapon/unathiknife{
desc = "A curved blade made of a strange material. It looks both old and very sharp.";
force = 30;
- icon_state = "unathiknife";
name = "\improper alien blade";
throwforce = 26
},
@@ -17272,10 +17271,9 @@
/turf/open/gm/dirt,
/area/lv624/ground/caves/sand_temple)
"nED" = (
-/obj/item/attachable/bayonet{
+/obj/item/weapon/unathiknife{
desc = "A curved blade made of a strange material. It looks both old and very sharp.";
force = 30;
- icon_state = "unathiknife";
name = "\improper alien blade";
throwforce = 26
},
diff --git a/maps/map_files/LV624/standalone/sandtemple-jungle.dmm b/maps/map_files/LV624/standalone/sandtemple-jungle.dmm
index 3b5a0176fb01..770d6a93473e 100644
--- a/maps/map_files/LV624/standalone/sandtemple-jungle.dmm
+++ b/maps/map_files/LV624/standalone/sandtemple-jungle.dmm
@@ -55,10 +55,9 @@
/turf/closed/wall/strata_ice/jungle,
/area/lv624/ground/jungle/south_west_jungle)
"lR" = (
-/obj/item/attachable/bayonet{
+/obj/item/weapon/unathiknife{
desc = "A curved blade made of a strange material. It looks both old and very sharp.";
force = 30;
- icon_state = "unathiknife";
name = "\improper alien blade";
throwforce = 26
},
diff --git a/maps/map_files/USS_Almayer/USS_Almayer.dmm b/maps/map_files/USS_Almayer/USS_Almayer.dmm
index b15ee29dd20a..7d9361919028 100644
--- a/maps/map_files/USS_Almayer/USS_Almayer.dmm
+++ b/maps/map_files/USS_Almayer/USS_Almayer.dmm
@@ -837,8 +837,8 @@
/area/almayer/living/basketball)
"acJ" = (
/mob/living/silicon/decoy/ship_ai{
- pixel_y = -16;
- layer = 2.98
+ layer = 2.98;
+ pixel_y = -16
},
/obj/structure/blocker/invisible_wall,
/obj/effect/decal/warning_stripes{
@@ -2464,22 +2464,22 @@
/obj/structure/machinery/door_control{
id = "ARES StairsLock";
name = "ARES Exterior Lockdown Override";
- req_one_access_txt = "90;91;92";
+ pixel_x = 8;
pixel_y = -24;
- pixel_x = 8
+ req_one_access_txt = "90;91;92"
},
/obj/structure/machinery/door_control{
id = "ARES Emergency";
name = "ARES Emergency Lockdown Override";
- req_one_access_txt = "91;92";
- pixel_y = -24
+ pixel_y = -24;
+ req_one_access_txt = "91;92"
},
/obj/structure/machinery/door_control{
id = "Brig Lockdown Shutters";
name = "Brig Lockdown Override";
- req_access_txt = "1;3";
pixel_x = -8;
- pixel_y = -24
+ pixel_y = -24;
+ req_access_txt = "1;3"
},
/turf/open/floor/wood/ship,
/area/almayer/living/commandbunks)
@@ -5816,9 +5816,9 @@
/obj/structure/machinery/door_control{
id = "ARES StairsUpper";
name = "ARES Core Access";
- req_one_access_txt = "1;200;90;91;92";
+ pixel_x = -24;
pixel_y = 24;
- pixel_x = -24
+ req_one_access_txt = "1;200;90;91;92"
},
/turf/open/floor/almayer/no_build{
icon_state = "ai_floors"
@@ -5840,9 +5840,9 @@
"asG" = (
/obj/structure/surface/table/reinforced/almayer_B{
climbable = 0;
+ indestructible = 1;
unacidable = 1;
- unslashable = 1;
- indestructible = 1
+ unslashable = 1
},
/turf/open/floor/almayer/no_build{
icon_state = "ai_floors"
@@ -7084,34 +7084,34 @@
/obj/structure/machinery/door_control{
id = "ARES StairsUpper";
name = "ARES Core Access";
- req_one_access_txt = "91;92";
+ pixel_x = -10;
pixel_y = -24;
- pixel_x = -10
+ req_one_access_txt = "91;92"
},
/obj/structure/machinery/door_control{
id = "ARES StairsLock";
name = "ARES Exterior Lockdown";
- req_one_access_txt = "91;92";
- pixel_y = -24
+ pixel_y = -24;
+ req_one_access_txt = "91;92"
},
/obj/structure/surface/table/reinforced/almayer_B{
climbable = 0;
+ indestructible = 1;
unacidable = 1;
- unslashable = 1;
- indestructible = 1
+ unslashable = 1
},
/obj/structure/transmitter/rotary{
- phone_color = "blue";
- phone_id = "AI Reception";
+ name = "AI Reception Telephone";
phone_category = "ARES";
- name = "AI Reception Telephone"
+ phone_color = "blue";
+ phone_id = "AI Reception"
},
/obj/structure/machinery/door_control{
id = "ARES Emergency";
name = "ARES Emergency Lockdown";
- req_one_access_txt = "91;92";
+ pixel_x = 10;
pixel_y = -24;
- pixel_x = 10
+ req_one_access_txt = "91;92"
},
/turf/open/floor/almayer/no_build{
icon_state = "ai_floors"
@@ -7125,9 +7125,9 @@
},
/obj/structure/surface/table/reinforced/almayer_B{
climbable = 0;
+ indestructible = 1;
unacidable = 1;
- unslashable = 1;
- indestructible = 1
+ unslashable = 1
},
/obj/item/paper_bin/uscm{
pixel_y = 6
@@ -10992,31 +10992,31 @@
},
/obj/structure/machinery/door_control{
id = "ARES Interior";
+ indestructible = 1;
name = "ARES Chamber Lockdown";
- req_one_access_txt = "1;200;90;91;92";
pixel_x = 24;
pixel_y = -8;
- indestructible = 1
+ req_one_access_txt = "1;200;90;91;92"
},
/obj/structure/machinery/door_control{
id = "ARES Railing";
+ indestructible = 1;
name = "ARES Chamber Railings";
- req_one_access_txt = "91;92";
- pixel_x = 24;
needs_power = 0;
- indestructible = 1
+ pixel_x = 24;
+ req_one_access_txt = "91;92"
},
/obj/structure/machinery/door/poddoor/railing{
+ closed_layer = 4.1;
+ density = 0;
dir = 2;
id = "ARES Railing";
- unslashable = 0;
- unacidable = 0;
- pixel_y = -1;
- pixel_x = -1;
+ layer = 2.1;
open_layer = 2.1;
- closed_layer = 4.1;
- density = 0;
- layer = 2.1
+ pixel_x = -1;
+ pixel_y = -1;
+ unacidable = 0;
+ unslashable = 0
},
/turf/open/floor/almayer/no_build{
icon_state = "ai_floors"
@@ -11990,7 +11990,9 @@
/obj/structure/pipes/vents/pump{
dir = 4
},
-/turf/open/floor/almayer,
+/turf/open/floor/almayer{
+ icon_state = "red"
+ },
/area/almayer/squads/alpha)
"aPk" = (
/obj/structure/pipes/standard/simple/hidden/supply{
@@ -12002,10 +12004,14 @@
},
/area/almayer/command/lifeboat)
"aPl" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
+/obj/structure/machinery/cm_vending/clothing/marine/alpha{
+ density = 0;
+ layer = 4.1;
+ pixel_y = -29
+ },
+/turf/open/floor/almayer{
+ icon_state = "plate"
},
-/turf/open/floor/almayer,
/area/almayer/squads/alpha)
"aPm" = (
/obj/structure/closet/firecloset,
@@ -12014,13 +12020,14 @@
},
/area/almayer/hallways/aft_hallway)
"aPn" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
+/obj/structure/machinery/cm_vending/clothing/marine/bravo{
+ density = 0;
+ pixel_y = 16
},
/turf/open/floor/almayer{
- icon_state = "redcorner"
+ icon_state = "plate"
},
-/area/almayer/squads/alpha)
+/area/almayer/squads/bravo)
"aPo" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -12110,19 +12117,6 @@
/obj/structure/sign/nosmoking_1,
/turf/closed/wall/almayer,
/area/almayer/squads/alpha)
-"aPM" = (
-/obj/structure/machinery/cm_vending/clothing/marine/alpha,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/squads/alpha)
-"aPN" = (
-/obj/structure/machinery/light,
-/obj/structure/machinery/cm_vending/clothing/marine/alpha,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/squads/alpha)
"aPX" = (
/obj/structure/largecrate/random/case/double,
/turf/open/floor/plating/plating_catwalk,
@@ -12292,69 +12286,16 @@
/obj/structure/sign/nosmoking_1,
/turf/closed/wall/almayer,
/area/almayer/squads/bravo)
-"aQP" = (
-/obj/structure/machinery/cm_vending/clothing/marine/bravo,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/squads/bravo)
-"aQQ" = (
-/obj/structure/machinery/firealarm{
- pixel_y = 28
- },
-/obj/structure/machinery/cm_vending/clothing/marine/bravo,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/squads/bravo)
-"aQR" = (
-/obj/item/device/radio/intercom{
- freerange = 1;
- name = "General Listening Channel";
- pixel_y = 28
- },
-/obj/structure/machinery/cm_vending/clothing/marine/bravo,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/squads/bravo)
-"aQS" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/obj/structure/machinery/cm_vending/clothing/marine/bravo,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/squads/bravo)
"aQT" = (
-/obj/structure/machinery/cm_vending/clothing/marine/alpha,
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 1;
- name = "ship-grade camera"
+/obj/structure/machinery/cm_vending/clothing/marine/alpha{
+ density = 0;
+ layer = 4.1;
+ pixel_y = -29
},
/turf/open/floor/almayer{
- icon_state = "plate"
+ icon_state = "cargo_arrow"
},
/area/almayer/squads/alpha)
-"aQU" = (
-/obj/structure/machinery/alarm/almayer{
- dir = 1
- },
-/obj/structure/machinery/cm_vending/clothing/marine/bravo,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/squads/bravo)
-"aQV" = (
-/obj/structure/machinery/status_display{
- pixel_y = 30
- },
-/obj/structure/machinery/cm_vending/clothing/marine/bravo,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/squads/bravo)
"aQW" = (
/obj/structure/machinery/vending/cola{
pixel_x = -6;
@@ -12596,7 +12537,10 @@
/area/almayer/squads/bravo)
"aRU" = (
/obj/structure/pipes/vents/pump/on,
-/turf/open/floor/almayer,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "orange"
+ },
/area/almayer/squads/bravo)
"aRV" = (
/obj/structure/platform{
@@ -12610,7 +12554,10 @@
/obj/structure/pipes/vents/scrubber{
dir = 4
},
-/turf/open/floor/almayer,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "orange"
+ },
/area/almayer/squads/bravo)
"aRZ" = (
/turf/open/floor/almayer{
@@ -12927,12 +12874,13 @@
},
/area/almayer/living/offices)
"aTv" = (
-/obj/structure/machinery/camera/autoname/almayer{
- name = "ship-grade camera"
+/obj/structure/machinery/cm_vending/clothing/marine/bravo{
+ density = 0;
+ pixel_y = 16
},
-/obj/structure/machinery/cm_vending/clothing/marine/bravo,
/turf/open/floor/almayer{
- icon_state = "plate"
+ dir = 1;
+ icon_state = "cargo_arrow"
},
/area/almayer/squads/bravo)
"aTw" = (
@@ -12942,12 +12890,7 @@
},
/area/almayer/squads/bravo)
"aTx" = (
-/obj/structure/machinery/light{
- dir = 4
- },
-/obj/structure/machinery/power/apc/almayer{
- dir = 4
- },
+/obj/structure/machinery/power/apc/almayer,
/obj/structure/surface/table/almayer,
/obj/item/tool/hand_labeler,
/turf/open/floor/almayer{
@@ -14290,9 +14233,9 @@
/obj/structure/machinery/door_control{
id = "ARES Mainframe Right";
name = "ARES Mainframe Lockdown";
- req_one_access_txt = "200;91;92";
pixel_x = -24;
- pixel_y = -24
+ pixel_y = -24;
+ req_one_access_txt = "200;91;92"
},
/turf/open/floor/almayer/no_build{
icon_state = "ai_floors"
@@ -15367,14 +15310,14 @@
},
/area/almayer/squads/alpha)
"bfw" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
/obj/item/device/radio/intercom{
freerange = 1;
name = "General Listening Channel";
pixel_y = 28
},
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
/turf/open/floor/almayer{
dir = 1;
icon_state = "red"
@@ -15431,12 +15374,12 @@
},
/area/almayer/squads/alpha)
"bfD" = (
-/obj/structure/machinery/status_display{
- pixel_y = 30
- },
/obj/structure/disposalpipe/segment{
dir = 4
},
+/obj/structure/machinery/light{
+ dir = 1
+ },
/turf/open/floor/almayer{
dir = 1;
icon_state = "red"
@@ -15713,19 +15656,16 @@
icon_state = "red"
},
/area/almayer/squads/alpha)
-"bgV" = (
-/turf/open/floor/almayer{
- icon_state = "cargo_arrow"
- },
-/area/almayer/squads/alpha)
"bgW" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
+/obj/structure/machinery/cm_vending/clothing/marine/charlie{
+ density = 0;
+ layer = 4.1;
+ pixel_y = -29
},
/turf/open/floor/almayer{
- icon_state = "cargo_arrow"
+ icon_state = "plate"
},
-/area/almayer/squads/alpha)
+/area/almayer/squads/charlie)
"bgY" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -16418,7 +16358,7 @@
"blB" = (
/turf/open/floor/almayer{
dir = 1;
- icon_state = "cargo_arrow"
+ icon_state = "orange"
},
/area/almayer/squads/bravo)
"blZ" = (
@@ -17216,6 +17156,9 @@
/obj/structure/sign/poster{
pixel_y = 32
},
+/obj/structure/machinery/light{
+ dir = 8
+ },
/turf/open/floor/almayer{
dir = 8;
icon_state = "red"
@@ -20411,19 +20354,6 @@
icon_state = "orange"
},
/area/almayer/engineering/lower_engineering)
-"bFh" = (
-/obj/structure/machinery/cm_vending/clothing/marine/charlie,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/squads/charlie)
-"bFi" = (
-/obj/structure/machinery/light,
-/obj/structure/machinery/cm_vending/clothing/marine/charlie,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/squads/charlie)
"bFj" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
@@ -21071,12 +21001,12 @@
plane = -7
},
/obj/structure/machinery/door/poddoor/almayer/blended/white/open{
- open_layer = 1.9;
+ closed_layer = 3.2;
id = "ARES Emergency";
- needs_power = 0;
- name = "ARES Emergency Lockdown";
layer = 3.2;
- closed_layer = 3.2;
+ name = "ARES Emergency Lockdown";
+ needs_power = 0;
+ open_layer = 1.9;
plane = -7
},
/turf/open/floor/almayer/no_build{
@@ -21868,17 +21798,17 @@
/obj/structure/machinery/door_control{
id = "ARES StairsLower";
name = "ARES Core Lockdown";
- req_one_access_txt = "19;200;90;91;92";
pixel_x = 24;
- pixel_y = -8
+ pixel_y = -8;
+ req_one_access_txt = "19;200;90;91;92"
},
/obj/structure/machinery/camera/autoname/almayer/containment/ares{
dir = 8;
pixel_y = 2
},
/turf/open/floor/almayer/no_build{
- icon_state = "silver";
- dir = 4
+ dir = 4;
+ icon_state = "silver"
},
/area/almayer/command/airoom)
"bLw" = (
@@ -23072,20 +23002,8 @@
/obj/structure/pipes/vents/pump{
dir = 4
},
-/turf/open/floor/almayer,
-/area/almayer/squads/charlie)
-"bQB" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
-/turf/open/floor/almayer,
-/area/almayer/squads/charlie)
-"bQC" = (
-/obj/structure/pipes/standard/simple/hidden/supply{
- dir = 4
- },
/turf/open/floor/almayer{
- icon_state = "emeraldcorner"
+ icon_state = "emerald"
},
/area/almayer/squads/charlie)
"bQD" = (
@@ -23265,22 +23183,22 @@
plane = -7
},
/obj/effect/step_trigger/ares_alert/public{
+ alert_id = "AresStairs";
alert_message = "Caution: Movement detected in ARES Core.";
- cooldown_duration = 1200;
- alert_id = "AresStairs"
+ cooldown_duration = 1200
},
/obj/effect/step_trigger/ares_alert/public{
+ alert_id = "AresStairs";
alert_message = "Caution: Movement detected in ARES Core.";
- cooldown_duration = 1200;
- alert_id = "AresStairs"
+ cooldown_duration = 1200
},
/obj/structure/machinery/door/poddoor/almayer/blended/white/open{
- open_layer = 1.9;
+ closed_layer = 3.2;
id = "ARES Emergency";
- needs_power = 0;
- name = "ARES Emergency Lockdown";
layer = 3.2;
- closed_layer = 3.2;
+ name = "ARES Emergency Lockdown";
+ needs_power = 0;
+ open_layer = 1.9;
plane = -7
},
/turf/open/floor/almayer/no_build{
@@ -23736,7 +23654,10 @@
/obj/structure/pipes/vents/scrubber{
dir = 4
},
-/turf/open/floor/almayer,
+/turf/open/floor/almayer{
+ dir = 1;
+ icon_state = "blue"
+ },
/area/almayer/squads/delta)
"bTE" = (
/turf/open/floor/almayer{
@@ -26151,13 +26072,13 @@
/turf/open/floor/almayer,
/area/almayer/living/grunt_rnr)
"cdP" = (
-/obj/structure/machinery/cm_vending/clothing/marine/charlie,
-/obj/structure/machinery/camera/autoname/almayer{
- dir = 1;
- name = "ship-grade camera"
+/obj/structure/machinery/cm_vending/clothing/marine/charlie{
+ density = 0;
+ layer = 4.1;
+ pixel_y = -29
},
/turf/open/floor/almayer{
- icon_state = "plate"
+ icon_state = "cargo_arrow"
},
/area/almayer/squads/charlie)
"cdT" = (
@@ -26664,6 +26585,7 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
+/obj/structure/machinery/camera/autoname/almayer,
/turf/open/floor/almayer{
dir = 1;
icon_state = "emerald"
@@ -26896,17 +26818,12 @@
icon_state = "emerald"
},
/area/almayer/squads/charlie)
-"cje" = (
-/turf/open/floor/almayer{
- icon_state = "cargo_arrow"
- },
-/area/almayer/squads/charlie)
"cjf" = (
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
},
/turf/open/floor/almayer{
- icon_state = "cargo_arrow"
+ icon_state = "emerald"
},
/area/almayer/squads/charlie)
"cjg" = (
@@ -27017,15 +26934,6 @@
icon_state = "emerald"
},
/area/almayer/squads/charlie)
-"cjF" = (
-/obj/structure/machinery/camera/autoname/almayer{
- name = "ship-grade camera"
- },
-/obj/structure/machinery/cm_vending/clothing/marine/delta,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/squads/delta)
"cjK" = (
/obj/structure/machinery/door/airlock/almayer/maint,
/obj/structure/disposalpipe/segment{
@@ -27137,50 +27045,6 @@
icon_state = "plate"
},
/area/almayer/squads/delta)
-"cks" = (
-/obj/structure/machinery/cm_vending/clothing/marine/delta,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/squads/delta)
-"cku" = (
-/obj/item/device/radio/intercom{
- freerange = 1;
- name = "General Listening Channel";
- pixel_y = 28
- },
-/obj/structure/machinery/cm_vending/clothing/marine/delta,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/squads/delta)
-"ckv" = (
-/obj/structure/machinery/light{
- dir = 1
- },
-/obj/structure/machinery/cm_vending/clothing/marine/delta,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/squads/delta)
-"ckx" = (
-/obj/structure/machinery/alarm/almayer{
- dir = 1
- },
-/obj/structure/machinery/cm_vending/clothing/marine/delta,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/squads/delta)
-"cky" = (
-/obj/structure/machinery/status_display{
- pixel_y = 30
- },
-/obj/structure/machinery/cm_vending/clothing/marine/delta,
-/turf/open/floor/almayer{
- icon_state = "plate"
- },
-/area/almayer/squads/delta)
"ckB" = (
/obj/structure/machinery/door/airlock/almayer/maint{
dir = 1;
@@ -27234,9 +27098,12 @@
},
/area/almayer/squads/delta)
"ckR" = (
+/obj/structure/machinery/cm_vending/clothing/marine/delta{
+ density = 0;
+ pixel_y = 16
+ },
/turf/open/floor/almayer{
- dir = 1;
- icon_state = "cargo_arrow"
+ icon_state = "plate"
},
/area/almayer/squads/delta)
"ckS" = (
@@ -27323,6 +27190,11 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
+/obj/item/device/radio/intercom{
+ freerange = 1;
+ name = "General Listening Channel";
+ pixel_y = -29
+ },
/turf/open/floor/almayer{
dir = 8;
icon_state = "bluecorner"
@@ -27355,6 +27227,10 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
+/obj/structure/machinery/alarm/almayer{
+ dir = 1;
+ pixel_y = -29
+ },
/turf/open/floor/almayer{
icon_state = "blue"
},
@@ -27404,9 +27280,9 @@
"clw" = (
/obj/structure/machinery/light{
dir = 8;
+ invisibility = 101;
unacidable = 1;
- unslashable = 1;
- invisibility = 101
+ unslashable = 1
},
/turf/open/floor/almayer/no_build{
icon_state = "ai_floors"
@@ -28012,9 +27888,7 @@
},
/area/almayer/squads/charlie)
"coj" = (
-/obj/structure/machinery/power/apc/almayer{
- dir = 4
- },
+/obj/structure/machinery/power/apc/almayer,
/obj/structure/surface/table/almayer,
/obj/item/tool/hand_labeler,
/turf/open/floor/almayer{
@@ -28152,8 +28026,8 @@
pixel_y = 6
},
/obj/item/folder/white{
- pixel_y = 6;
- pixel_x = 5
+ pixel_x = 5;
+ pixel_y = 6
},
/turf/open/floor/almayer/no_build{
icon_state = "ai_floors"
@@ -28644,8 +28518,8 @@
icon_state = "ramptop"
},
/turf/open/floor/almayer/no_build{
- icon_state = "silver";
- dir = 4
+ dir = 4;
+ icon_state = "silver"
},
/area/almayer/command/airoom)
"cBs" = (
@@ -30460,12 +30334,13 @@
},
/area/almayer/hull/lower_hull/l_f_s)
"dpO" = (
-/obj/structure/machinery/cm_vending/clothing/marine/delta,
-/obj/structure/sign/banners/maximumeffort{
- pixel_y = 30
+/obj/structure/machinery/cm_vending/clothing/marine/delta{
+ density = 0;
+ pixel_y = 16
},
/turf/open/floor/almayer{
- icon_state = "plate"
+ dir = 1;
+ icon_state = "cargo_arrow"
},
/area/almayer/squads/delta)
"dpV" = (
@@ -31267,8 +31142,8 @@
dir = 1
},
/turf/open/floor/almayer/no_build{
- icon_state = "silver";
- dir = 8
+ dir = 8;
+ icon_state = "silver"
},
/area/almayer/command/airoom)
"dGr" = (
@@ -31619,8 +31494,8 @@
dir = 1
},
/turf/open/floor/almayer/no_build{
- icon_state = "silver";
- dir = 4
+ dir = 4;
+ icon_state = "silver"
},
/area/almayer/command/airoom)
"dQv" = (
@@ -33167,9 +33042,9 @@
/obj/structure/machinery/door_control{
id = "ARES Mainframe Left";
name = "ARES Mainframe Lockdown";
- req_one_access_txt = "200;91;92";
pixel_x = 24;
- pixel_y = 24
+ pixel_y = 24;
+ req_one_access_txt = "200;91;92"
},
/turf/open/floor/almayer/no_build{
icon_state = "tcomms"
@@ -33866,9 +33741,9 @@
},
/obj/structure/machinery/light{
dir = 4;
+ invisibility = 101;
unacidable = 1;
- unslashable = 1;
- invisibility = 101
+ unslashable = 1
},
/turf/open/floor/almayer/no_build{
icon_state = "ai_floors"
@@ -34697,8 +34572,8 @@
dir = 1
},
/turf/open/floor/almayer/no_build{
- icon_state = "silver";
- dir = 8
+ dir = 8;
+ icon_state = "silver"
},
/area/almayer/command/airoom)
"fdj" = (
@@ -35097,6 +34972,18 @@
},
/turf/open/floor/almayer,
/area/almayer/command/lifeboat)
+"foL" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/almayer{
+ dir = 4;
+ icon_state = "emeraldcorner"
+ },
+/area/almayer/squads/charlie)
"fpd" = (
/obj/structure/sign/safety/hvac_old{
pixel_x = 8;
@@ -36195,13 +36082,13 @@
/obj/structure/machinery/door_control{
id = "ARES Operations Right";
name = "ARES Operations Shutter";
- req_one_access_txt = "1;200;91;92";
pixel_x = 24;
- pixel_y = -8
+ pixel_y = -8;
+ req_one_access_txt = "1;200;91;92"
},
/turf/open/floor/almayer/no_build{
- icon_state = "silver";
- dir = 4
+ dir = 4;
+ icon_state = "silver"
},
/area/almayer/command/airoom)
"fMt" = (
@@ -36212,12 +36099,12 @@
},
/obj/effect/step_trigger/ares_alert/core,
/obj/structure/machinery/door/poddoor/almayer/blended/white/open{
- open_layer = 1.9;
+ closed_layer = 3.2;
id = "ARES Emergency";
- needs_power = 0;
- name = "ARES Emergency Lockdown";
layer = 3.2;
- closed_layer = 3.2;
+ name = "ARES Emergency Lockdown";
+ needs_power = 0;
+ open_layer = 1.9;
plane = -7
},
/obj/structure/sign/safety/laser{
@@ -36225,8 +36112,8 @@
pixel_y = -8
},
/obj/structure/sign/safety/rewire{
- pixel_y = 6;
- pixel_x = 32
+ pixel_x = 32;
+ pixel_y = 6
},
/turf/open/floor/almayer/no_build{
icon_state = "test_floor4"
@@ -36749,12 +36636,12 @@
pixel_y = 8
},
/obj/structure/transmitter/rotary{
- pixel_x = 8;
- pixel_y = -8;
+ name = "AI Core Telephone";
+ phone_category = "ARES";
phone_color = "blue";
phone_id = "AI Core";
- phone_category = "ARES";
- name = "AI Core Telephone"
+ pixel_x = 8;
+ pixel_y = -8
},
/turf/open/floor/almayer/no_build{
icon_state = "ai_floors"
@@ -36762,8 +36649,8 @@
/area/almayer/command/airoom)
"gbg" = (
/obj/structure/sign/safety/terminal{
- pixel_y = 24;
- pixel_x = 14
+ pixel_x = 14;
+ pixel_y = 24
},
/obj/structure/sign/safety/laser{
pixel_y = 24
@@ -36778,9 +36665,9 @@
/obj/structure/machinery/door_control{
id = "ARES Operations Right";
name = "ARES Operations Shutter";
- req_one_access_txt = "1;200;91;92";
pixel_x = -24;
- pixel_y = -8
+ pixel_y = -8;
+ req_one_access_txt = "1;200;91;92"
},
/turf/open/floor/almayer/no_build{
icon_state = "ai_floors"
@@ -37167,13 +37054,13 @@
/area/almayer/hull/lower_hull/l_f_s)
"gjw" = (
/obj/structure/machinery/faxmachine/uscm/command{
+ density = 0;
department = "AI Core";
- pixel_y = 32;
- density = 0
+ pixel_y = 32
},
/obj/structure/surface/rack{
- pixel_y = 16;
- density = 0
+ density = 0;
+ pixel_y = 16
},
/obj/structure/machinery/computer/working_joe{
dir = 8;
@@ -37830,9 +37717,9 @@
/area/almayer/hallways/starboard_hallway)
"gyN" = (
/obj/structure/machinery/prop{
+ desc = "It's a server box...";
icon_state = "comm_server";
- name = "server box";
- desc = "It's a server box..."
+ name = "server box"
},
/turf/open/floor/almayer/no_build{
icon_state = "test_floor4"
@@ -38475,23 +38362,23 @@
},
/obj/structure/machinery/door_control{
id = "ARES Interior";
+ indestructible = 1;
name = "ARES Chamber Lockdown";
- req_one_access_txt = "1;200;90;91;92";
pixel_x = -24;
pixel_y = -8;
- indestructible = 1
+ req_one_access_txt = "1;200;90;91;92"
},
/obj/structure/machinery/door/poddoor/railing{
+ closed_layer = 4.1;
+ density = 0;
dir = 2;
id = "ARES Railing";
- unslashable = 0;
- unacidable = 0;
- pixel_y = -1;
- pixel_x = -1;
+ layer = 2.1;
open_layer = 2.1;
- density = 0;
- closed_layer = 4.1;
- layer = 2.1
+ pixel_x = -1;
+ pixel_y = -1;
+ unacidable = 0;
+ unslashable = 0
},
/turf/open/floor/almayer/no_build{
icon_state = "ai_floors"
@@ -38538,24 +38425,24 @@
},
/obj/structure/machinery/door_control{
id = "ARES Interior";
+ indestructible = 1;
name = "ARES Chamber Lockdown";
- req_one_access_txt = "1;200;90;91;92";
pixel_x = 24;
pixel_y = 8;
- indestructible = 1
+ req_one_access_txt = "1;200;90;91;92"
},
/obj/structure/machinery/door/poddoor/railing{
- id = "ARES Railing";
- unslashable = 0;
- unacidable = 0;
- open_layer = 2.1;
+ closed_layer = 4;
density = 0;
+ id = "ARES Railing";
layer = 2.1;
- closed_layer = 4
+ open_layer = 2.1;
+ unacidable = 0;
+ unslashable = 0
},
/turf/open/floor/almayer/no_build{
- icon_state = "silver";
- dir = 4
+ dir = 4;
+ icon_state = "silver"
},
/area/almayer/command/airoom)
"gPc" = (
@@ -38858,9 +38745,9 @@
"gXs" = (
/obj/effect/step_trigger/ares_alert/terminals,
/obj/structure/machinery/door/poddoor/shutters/almayer{
+ dir = 4;
id = "ARES Operations Right";
- name = "\improper ARES Operations Shutters";
- dir = 4
+ name = "\improper ARES Operations Shutters"
},
/obj/structure/pipes/standard/simple/hidden/supply/no_boom{
dir = 4
@@ -40132,6 +40019,18 @@
icon_state = "sterile_green_side"
},
/area/almayer/medical/lower_medical_medbay)
+"hAZ" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ icon_state = "blue"
+ },
+/area/almayer/squads/delta)
"hBc" = (
/obj/structure/pipes/vents/scrubber{
dir = 4
@@ -40790,12 +40689,12 @@
pixel_y = 24
},
/obj/structure/machinery/computer/crew/alt{
- pixel_x = -17;
- dir = 4
+ dir = 4;
+ pixel_x = -17
},
/obj/structure/sign/safety/terminal{
- pixel_y = 24;
- pixel_x = 14
+ pixel_x = 14;
+ pixel_y = 24
},
/obj/structure/sign/safety/fibre_optics{
pixel_x = 14;
@@ -40868,10 +40767,10 @@
/area/almayer/hull/lower_hull/l_a_p)
"hTl" = (
/obj/structure/prop/server_equipment/yutani_server{
- pixel_y = 16;
- name = "server tower";
+ density = 0;
desc = "A powerful server tower housing various AI functions.";
- density = 0
+ name = "server tower";
+ pixel_y = 16
},
/obj/structure/pipes/standard/simple/hidden/supply/no_boom,
/turf/open/floor/almayer/no_build{
@@ -41454,7 +41353,10 @@
},
/area/almayer/medical/lower_medical_medbay)
"ihM" = (
-/obj/structure/machinery/cm_vending/clothing/marine/delta,
+/obj/structure/machinery/cm_vending/clothing/marine/delta{
+ density = 0;
+ pixel_y = 16
+ },
/obj/structure/sign/safety/cryo{
pixel_x = 32
},
@@ -41958,24 +41860,24 @@
},
/obj/structure/machinery/door_control{
id = "ARES Interior";
+ indestructible = 1;
name = "ARES Chamber Lockdown";
- req_one_access_txt = "1;200;90;91;92";
pixel_x = -24;
pixel_y = 8;
- indestructible = 1
+ req_one_access_txt = "1;200;90;91;92"
},
/obj/structure/machinery/door/poddoor/railing{
- id = "ARES Railing";
- unslashable = 0;
- unacidable = 0;
- open_layer = 2.1;
+ closed_layer = 4;
density = 0;
+ id = "ARES Railing";
layer = 2.1;
- closed_layer = 4
+ open_layer = 2.1;
+ unacidable = 0;
+ unslashable = 0
},
/turf/open/floor/almayer/no_build{
- icon_state = "silver";
- dir = 8
+ dir = 8;
+ icon_state = "silver"
},
/area/almayer/command/airoom)
"itR" = (
@@ -42210,10 +42112,10 @@
"iyH" = (
/obj/structure/surface/table/reinforced/almayer_B{
climbable = 0;
- unacidable = 1;
- unslashable = 1;
+ desc = "A square metal surface resting on its fat metal bottom. You can't flip something that doesn't have legs. This one has a metal rail running above it, preventing something large passing over. Like you.";
indestructible = 1;
- desc = "A square metal surface resting on its fat metal bottom. You can't flip something that doesn't have legs. This one has a metal rail running above it, preventing something large passing over. Like you."
+ unacidable = 1;
+ unslashable = 1
},
/turf/open/floor/almayer/no_build{
icon_state = "ai_floors"
@@ -43288,8 +43190,8 @@
dir = 1
},
/turf/open/floor/almayer/no_build{
- icon_state = "silver";
- dir = 4
+ dir = 4;
+ icon_state = "silver"
},
/area/almayer/command/airoom)
"iZG" = (
@@ -44152,12 +44054,12 @@
},
/obj/effect/step_trigger/ares_alert/core,
/obj/structure/machinery/door/poddoor/almayer/blended/white/open{
- open_layer = 1.9;
+ closed_layer = 3.2;
id = "ARES Emergency";
- needs_power = 0;
- name = "ARES Emergency Lockdown";
layer = 3.2;
- closed_layer = 3.2;
+ name = "ARES Emergency Lockdown";
+ needs_power = 0;
+ open_layer = 1.9;
plane = -7
},
/turf/open/floor/almayer/no_build{
@@ -44521,8 +44423,8 @@
/obj/structure/machinery/door_control{
id = "ARES StairsUpper";
name = "ARES Core Access";
- req_one_access_txt = "19;200;90;91;92";
- pixel_x = 24
+ pixel_x = 24;
+ req_one_access_txt = "19;200;90;91;92"
},
/turf/open/floor/almayer/no_build{
icon_state = "ai_floors"
@@ -45231,7 +45133,11 @@
/turf/open/floor/almayer,
/area/almayer/shipboard/brig/cells)
"jVr" = (
-/obj/structure/machinery/cm_vending/clothing/marine/alpha,
+/obj/structure/machinery/cm_vending/clothing/marine/alpha{
+ density = 0;
+ layer = 4.1;
+ pixel_y = -29
+ },
/obj/structure/sign/safety/cryo{
pixel_x = 32
},
@@ -45815,6 +45721,7 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
+/obj/structure/machinery/light,
/turf/open/floor/almayer{
icon_state = "orange"
},
@@ -46574,13 +46481,13 @@
/obj/structure/machinery/door_control{
id = "ARES StairsLower";
name = "ARES Core Lockdown";
- req_one_access_txt = "19;200;90;91;92";
pixel_x = -24;
- pixel_y = -8
+ pixel_y = -8;
+ req_one_access_txt = "19;200;90;91;92"
},
/turf/open/floor/almayer/no_build{
- icon_state = "silver";
- dir = 8
+ dir = 8;
+ icon_state = "silver"
},
/area/almayer/command/airoom)
"kAh" = (
@@ -46983,8 +46890,8 @@
icon_state = "ramptop"
},
/turf/open/floor/almayer/no_build{
- icon_state = "silver";
- dir = 8
+ dir = 8;
+ icon_state = "silver"
},
/area/almayer/command/airoom)
"kKG" = (
@@ -47339,9 +47246,9 @@
/obj/structure/machinery/door_control{
id = "ARES Mainframe Right";
name = "ARES Mainframe Lockdown";
- req_one_access_txt = "200;91;92";
pixel_x = -24;
- pixel_y = 24
+ pixel_y = 24;
+ req_one_access_txt = "200;91;92"
},
/turf/open/floor/almayer/no_build{
icon_state = "tcomms"
@@ -47537,7 +47444,10 @@
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hull/lower_hull/l_f_p)
"kXa" = (
-/obj/structure/machinery/cm_vending/clothing/marine/bravo,
+/obj/structure/machinery/cm_vending/clothing/marine/bravo{
+ density = 0;
+ pixel_y = 16
+ },
/obj/structure/sign/safety/cryo{
pixel_x = 32
},
@@ -47557,8 +47467,8 @@
/area/almayer/command/computerlab)
"kXj" = (
/turf/open/floor/almayer/no_build{
- icon_state = "silver";
- dir = 4
+ dir = 4;
+ icon_state = "silver"
},
/area/almayer/command/airoom)
"kXu" = (
@@ -48229,22 +48139,26 @@
pixel_y = 24
},
/obj/structure/sign/safety/terminal{
- pixel_y = 24;
- pixel_x = 14
+ pixel_x = 14;
+ pixel_y = 24
},
/obj/structure/machinery/door_control{
id = "ARES Operations Left";
name = "ARES Operations Shutter";
- req_one_access_txt = "1;200;91;92";
pixel_x = 24;
- pixel_y = -8
+ pixel_y = -8;
+ req_one_access_txt = "1;200;91;92"
},
/turf/open/floor/almayer/no_build{
icon_state = "ai_floors"
},
/area/almayer/command/airoom)
"lok" = (
-/obj/structure/machinery/cm_vending/clothing/marine/charlie,
+/obj/structure/machinery/cm_vending/clothing/marine/charlie{
+ density = 0;
+ layer = 4.1;
+ pixel_y = -29
+ },
/obj/structure/sign/safety/cryo{
pixel_x = 32
},
@@ -48266,6 +48180,23 @@
"loP" = (
/turf/closed/wall/almayer,
/area/almayer/engineering/laundry)
+"loS" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/item/device/radio/intercom{
+ freerange = 1;
+ name = "General Listening Channel";
+ pixel_y = -29
+ },
+/obj/structure/machinery/light,
+/turf/open/floor/almayer{
+ icon_state = "bluecorner"
+ },
+/area/almayer/squads/delta)
"loV" = (
/obj/structure/desertdam/decals/road_edge{
icon_state = "road_edge_decal3";
@@ -50606,6 +50537,20 @@
},
/turf/open/floor/almayer,
/area/almayer/lifeboat_pumps/north1)
+"mtr" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/machinery/status_display{
+ pixel_y = -29
+ },
+/turf/open/floor/almayer{
+ icon_state = "orange"
+ },
+/area/almayer/squads/bravo)
"mtD" = (
/obj/structure/machinery/status_display{
pixel_x = 16;
@@ -50678,6 +50623,10 @@
dir = 4
},
/obj/structure/pipes/standard/manifold/hidden/supply,
+/obj/structure/machinery/camera/autoname/almayer{
+ dir = 1;
+ name = "ship-grade camera"
+ },
/turf/open/floor/almayer{
icon_state = "bluecorner"
},
@@ -50807,9 +50756,6 @@
},
/area/almayer/hull/lower_hull/l_f_s)
"mzg" = (
-/obj/structure/sign/poster{
- pixel_y = -32
- },
/turf/open/floor/almayer{
icon_state = "emerald"
},
@@ -51042,12 +50988,12 @@
plane = -7
},
/obj/structure/machinery/door/poddoor/almayer/blended/white/open{
- open_layer = 1.9;
+ closed_layer = 3.2;
id = "ARES Emergency";
- needs_power = 0;
- name = "ARES Emergency Lockdown";
layer = 3.2;
- closed_layer = 3.2;
+ name = "ARES Emergency Lockdown";
+ needs_power = 0;
+ open_layer = 1.9;
plane = -7
},
/turf/open/floor/almayer/no_build{
@@ -51131,8 +51077,8 @@
/area/almayer/medical/medical_science)
"mHE" = (
/turf/open/floor/almayer/no_build{
- icon_state = "silver";
- dir = 8
+ dir = 8;
+ icon_state = "silver"
},
/area/almayer/command/airoom)
"mHO" = (
@@ -51631,17 +51577,17 @@
},
/obj/effect/step_trigger/ares_alert/core,
/obj/structure/machinery/door/poddoor/almayer/blended/white/open{
- open_layer = 1.9;
+ closed_layer = 3.2;
id = "ARES Emergency";
- needs_power = 0;
- name = "ARES Emergency Lockdown";
layer = 3.2;
- closed_layer = 3.2;
+ name = "ARES Emergency Lockdown";
+ needs_power = 0;
+ open_layer = 1.9;
plane = -7
},
/obj/structure/sign/safety/terminal{
- pixel_y = -8;
- pixel_x = -18
+ pixel_x = -18;
+ pixel_y = -8
},
/obj/structure/sign/safety/fibre_optics{
pixel_x = -18;
@@ -51791,9 +51737,9 @@
"mUC" = (
/obj/structure/machinery/light{
dir = 4;
+ invisibility = 101;
unacidable = 1;
- unslashable = 1;
- invisibility = 101
+ unslashable = 1
},
/turf/open/floor/almayer/no_build{
icon_state = "ai_floors"
@@ -51887,6 +51833,9 @@
name = "synthetic potted plant";
pixel_y = 8
},
+/obj/structure/sign/banners/maximumeffort{
+ pixel_y = 30
+ },
/turf/open/floor/almayer{
dir = 9;
icon_state = "blue"
@@ -52424,7 +52373,7 @@
"njd" = (
/obj/structure/pipes/standard/manifold/hidden/supply,
/turf/open/floor/almayer{
- icon_state = "cargo_arrow"
+ icon_state = "red"
},
/area/almayer/squads/alpha)
"njD" = (
@@ -53222,6 +53171,22 @@
/obj/effect/landmark/late_join/charlie,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/squads/charlie)
+"nCp" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/item/device/radio/intercom{
+ freerange = 1;
+ name = "General Listening Channel";
+ pixel_y = -29
+ },
+/turf/open/floor/almayer{
+ icon_state = "orange"
+ },
+/area/almayer/squads/bravo)
"nDd" = (
/obj/structure/closet/secure_closet/guncabinet/red,
/obj/item/ammo_magazine/smg/m39,
@@ -54286,8 +54251,8 @@
layer = 3.3
},
/obj/structure/sign/safety/terminal{
- pixel_y = 24;
- pixel_x = 14
+ pixel_x = 14;
+ pixel_y = 24
},
/obj/structure/sign/safety/fibre_optics{
pixel_x = 14;
@@ -55013,8 +54978,8 @@
},
/obj/structure/platform_decoration,
/turf/open/floor/almayer/no_build{
- icon_state = "silver";
- dir = 4
+ dir = 4;
+ icon_state = "silver"
},
/area/almayer/command/airoom)
"osz" = (
@@ -55709,8 +55674,8 @@
/obj/structure/machinery/door_control{
id = "ARES StairsUpper";
name = "ARES Core Access";
- req_one_access_txt = "19;200;90;91;92";
- pixel_x = -24
+ pixel_x = -24;
+ req_one_access_txt = "19;200;90;91;92"
},
/turf/open/floor/almayer/no_build{
icon_state = "ai_floors"
@@ -55767,9 +55732,9 @@
/obj/structure/machinery/door_control{
id = "ARES StairsLower";
name = "ARES Core Lockdown";
- req_one_access_txt = "19;200;90;91;92";
pixel_x = -24;
- pixel_y = 8
+ pixel_y = 8;
+ req_one_access_txt = "19;200;90;91;92"
},
/obj/structure/machinery/camera/autoname/almayer/containment/ares{
dir = 4;
@@ -55777,8 +55742,8 @@
},
/obj/effect/step_trigger/clone_cleaner,
/turf/open/floor/almayer/no_build{
- icon_state = "silver";
- dir = 8
+ dir = 8;
+ icon_state = "silver"
},
/area/almayer/command/airoom)
"oLv" = (
@@ -56807,10 +56772,10 @@
/area/almayer/living/briefing)
"pmV" = (
/obj/structure/prop/server_equipment/yutani_server/broken{
- pixel_y = 16;
- name = "server tower";
+ density = 0;
desc = "A powerful server tower housing various AI functions.";
- density = 0
+ name = "server tower";
+ pixel_y = 16
},
/obj/structure/pipes/standard/simple/hidden/supply/no_boom,
/turf/open/floor/almayer/no_build{
@@ -58434,8 +58399,8 @@
dir = 8
},
/turf/open/floor/almayer/no_build{
- icon_state = "silver";
- dir = 4
+ dir = 4;
+ icon_state = "silver"
},
/area/almayer/command/airoom)
"pYo" = (
@@ -59432,13 +59397,13 @@
/obj/structure/machinery/door_control{
id = "ARES Operations Left";
name = "ARES Operations Shutter";
- req_one_access_txt = "1;200;91;92";
pixel_x = -24;
- pixel_y = -8
+ pixel_y = -8;
+ req_one_access_txt = "1;200;91;92"
},
/turf/open/floor/almayer/no_build{
- icon_state = "silver";
- dir = 8
+ dir = 8;
+ icon_state = "silver"
},
/area/almayer/command/airoom)
"qxA" = (
@@ -60700,9 +60665,9 @@
/obj/structure/machinery/door_control{
id = "ARES Mainframe Left";
name = "ARES Mainframe Lockdown";
- req_one_access_txt = "200;91;92";
pixel_x = 24;
- pixel_y = -24
+ pixel_y = -24;
+ req_one_access_txt = "200;91;92"
},
/turf/open/floor/almayer/no_build{
icon_state = "ai_floors"
@@ -61227,8 +61192,8 @@
pixel_y = 1
},
/obj/structure/machinery/computer/crew/alt{
- pixel_x = 17;
- dir = 8
+ dir = 8;
+ pixel_x = 17
},
/turf/open/floor/almayer/no_build{
icon_state = "ai_floors"
@@ -61276,9 +61241,9 @@
"roH" = (
/obj/effect/step_trigger/ares_alert/terminals,
/obj/structure/machinery/door/poddoor/shutters/almayer{
+ dir = 4;
id = "ARES Operations Left";
- name = "\improper ARES Operations Shutters";
- dir = 4
+ name = "\improper ARES Operations Shutters"
},
/obj/structure/pipes/standard/simple/hidden/supply/no_boom{
dir = 4
@@ -61393,11 +61358,17 @@
/turf/open/floor/plating,
/area/almayer/living/offices/flight)
"rrq" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/machinery/status_display{
+ pixel_y = 30
+ },
/turf/open/floor/almayer{
- dir = 8;
- icon_state = "blue"
+ dir = 1;
+ icon_state = "red"
},
-/area/almayer/squads/delta)
+/area/almayer/squads/alpha)
"rrB" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/reinforced{
name = "\improper Cryogenics Bay"
@@ -61594,7 +61565,7 @@
"rvT" = (
/obj/structure/pipes/standard/manifold/hidden/supply,
/turf/open/floor/almayer{
- icon_state = "cargo_arrow"
+ icon_state = "emerald"
},
/area/almayer/squads/charlie)
"rwv" = (
@@ -62989,9 +62960,9 @@
},
/obj/structure/machinery/light{
dir = 8;
+ invisibility = 101;
unacidable = 1;
- unslashable = 1;
- invisibility = 101
+ unslashable = 1
},
/turf/open/floor/almayer/no_build{
icon_state = "ai_floors"
@@ -62999,8 +62970,8 @@
/area/almayer/command/airoom)
"sdl" = (
/obj/structure/surface/rack{
- pixel_y = 16;
- density = 0
+ density = 0;
+ pixel_y = 16
},
/obj/item/tool/wet_sign,
/obj/item/tool/wet_sign,
@@ -64440,8 +64411,14 @@
/turf/open/floor/plating/plating_catwalk,
/area/almayer/lifeboat_pumps/south1)
"sNb" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/machinery/light,
/turf/open/floor/almayer{
- dir = 8;
icon_state = "orange"
},
/area/almayer/squads/bravo)
@@ -65555,8 +65532,8 @@
"tmK" = (
/obj/structure/machinery/door/airlock/almayer/maint{
dir = 1;
- req_one_access_txt = "91;92";
- req_one_access = null
+ req_one_access = null;
+ req_one_access_txt = "91;92"
},
/turf/open/floor/almayer/no_build{
icon_state = "test_floor4"
@@ -69661,6 +69638,9 @@
name = "synthetic potted plant";
pixel_y = 8
},
+/obj/structure/machinery/alarm/almayer{
+ dir = 1
+ },
/turf/open/floor/almayer{
dir = 9;
icon_state = "orange"
@@ -70002,10 +69982,10 @@
/area/almayer/hull/lower_hull/l_m_p)
"vhe" = (
/obj/structure/prop/server_equipment/yutani_server{
- pixel_y = 16;
- name = "server tower";
+ density = 0;
desc = "A powerful server tower housing various AI functions.";
- density = 0
+ name = "server tower";
+ pixel_y = 16
},
/turf/open/floor/almayer/no_build{
icon_state = "ai_floors"
@@ -70902,8 +70882,8 @@
dir = 4
},
/turf/open/floor/almayer/no_build{
- icon_state = "silver";
- dir = 8
+ dir = 8;
+ icon_state = "silver"
},
/area/almayer/command/airoom)
"vBm" = (
@@ -71238,6 +71218,9 @@
/obj/structure/pipes/standard/simple/hidden/supply{
dir = 4
},
+/obj/structure/machinery/firealarm{
+ pixel_y = -29
+ },
/turf/open/floor/almayer{
icon_state = "orange"
},
@@ -72549,17 +72532,17 @@
plane = -7
},
/obj/effect/step_trigger/ares_alert/public{
+ alert_id = "AresStairs";
alert_message = "Caution: Movement detected in ARES Core.";
- cooldown_duration = 1200;
- alert_id = "AresStairs"
+ cooldown_duration = 1200
},
/obj/structure/machinery/door/poddoor/almayer/blended/white/open{
- open_layer = 1.9;
+ closed_layer = 3.2;
id = "ARES Emergency";
- needs_power = 0;
- name = "ARES Emergency Lockdown";
layer = 3.2;
- closed_layer = 3.2;
+ name = "ARES Emergency Lockdown";
+ needs_power = 0;
+ open_layer = 1.9;
plane = -7
},
/turf/open/floor/almayer/no_build{
@@ -73204,9 +73187,9 @@
/obj/structure/surface/table/reinforced/almayer_B,
/obj/structure/machinery/door_control{
id = "ARES Emergency";
+ indestructible = 1;
name = "ARES Emergency Lockdown";
- req_one_access_txt = "91;92";
- indestructible = 1
+ req_one_access_txt = "91;92"
},
/turf/open/floor/almayer/no_build{
icon_state = "plating"
@@ -74530,8 +74513,8 @@
/area/almayer/living/gym)
"xbN" = (
/obj/structure/surface/rack{
- pixel_y = 16;
- density = 0
+ density = 0;
+ pixel_y = 16
},
/obj/structure/janitorialcart,
/obj/item/tool/mop,
@@ -75016,6 +74999,21 @@
/obj/structure/largecrate/random/barrel/yellow,
/turf/open/floor/plating/plating_catwalk,
/area/almayer/hull/lower_hull/l_m_s)
+"xoe" = (
+/obj/structure/pipes/standard/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/machinery/status_display{
+ pixel_y = -29
+ },
+/turf/open/floor/almayer{
+ dir = 8;
+ icon_state = "bluecorner"
+ },
+/area/almayer/squads/delta)
"xoh" = (
/obj/structure/disposalpipe/segment{
dir = 2;
@@ -75340,14 +75338,14 @@
/obj/structure/machinery/door_control{
id = "ARES StairsLower";
name = "ARES Core Lockdown";
- req_one_access_txt = "19;200;90;91;92";
pixel_x = 24;
- pixel_y = 8
+ pixel_y = 8;
+ req_one_access_txt = "19;200;90;91;92"
},
/obj/effect/step_trigger/clone_cleaner,
/turf/open/floor/almayer/no_build{
- icon_state = "silver";
- dir = 4
+ dir = 4;
+ icon_state = "silver"
},
/area/almayer/command/airoom)
"xvX" = (
@@ -76583,9 +76581,9 @@
/obj/structure/machinery/door_control{
id = "ARES StairsUpper";
name = "ARES Core Access";
- req_one_access_txt = "1;200;90;91;92";
+ pixel_x = 24;
pixel_y = 24;
- pixel_x = 24
+ req_one_access_txt = "1;200;90;91;92"
},
/turf/open/floor/almayer/no_build{
icon_state = "ai_floors"
@@ -117827,10 +117825,10 @@ aMC
aLT
avv
bfu
-bgV
-aPM
+rGj
+aQT
aLT
-aQP
+aTv
blB
bnp
aTx
@@ -117871,11 +117869,11 @@ bMy
bJC
cog
chN
-cje
-bFh
+mzg
+cdP
bJC
dpO
-ckR
+ckX
cli
coj
bSJ
@@ -118029,11 +118027,11 @@ aLT
aLT
aLT
aLT
-bfw
-bgV
-aPM
+bfx
+rGj
+aQT
aLT
-aQQ
+aTv
blB
kiU
aQL
@@ -118074,11 +118072,11 @@ bJC
bJC
bJC
chO
-cje
-bFh
+mzg
+cdP
bJC
-cks
-ckR
+dpO
+ckX
clj
bSJ
bSJ
@@ -118233,10 +118231,10 @@ aMB
bdA
aLT
ial
-aMz
-aPM
+rGj
+aPl
aLT
-aQP
+aPn
aRU
bnr
aQL
@@ -118277,11 +118275,11 @@ bMx
cgr
bJC
raK
-cje
-bFh
+mzg
+bgW
bJC
-cks
ckR
+ckX
iyS
bSJ
clJ
@@ -118435,11 +118433,11 @@ bco
bdr
bdA
aLT
-bfx
-bgV
-aPM
+bfw
+rGj
+aQT
aLT
-aQP
+aTv
blB
vJV
aQL
@@ -118480,11 +118478,11 @@ cfo
cgr
bJC
chQ
-cje
-bFh
+mzg
+cdP
bJC
-cks
-ckR
+dpO
+ckX
clk
bSJ
clJ
@@ -118639,10 +118637,10 @@ bdr
bdC
beR
bfy
-bgV
-aPM
+rGj
+aQT
aLT
-aQR
+aTv
blB
bnt
bpG
@@ -118683,11 +118681,11 @@ cfo
cgs
chk
chR
-cje
-bFh
+mzg
+cdP
bJC
-cku
-ckR
+dpO
+ckX
cll
clE
clK
@@ -118841,13 +118839,13 @@ bco
bdr
bdA
aLT
-bfx
+bfD
aPj
-aPN
+aPl
aLT
-aQS
-aRT
-bnu
+aPn
+blB
+sNb
aQL
brr
aRT
@@ -118885,13 +118883,13 @@ cdV
cfo
cgr
bJC
-chN
-bJD
-bFi
+foL
+mzg
+bgW
bJC
-ckv
-bTA
-clm
+ckR
+ckX
+loS
bSJ
clJ
clg
@@ -119045,12 +119043,12 @@ aMC
bdA
aLT
bfx
-bgW
-aPM
+bgY
+aQT
aLT
-aQP
+aTv
blB
-bnu
+nCp
aQL
brr
aUY
@@ -119089,11 +119087,11 @@ bMy
cgr
bJC
chP
-cje
-bFh
+mzg
+cdP
bJC
-cks
-ckR
+dpO
+ckX
cln
bSJ
clJ
@@ -119248,10 +119246,10 @@ aLT
aLT
aLT
hQW
-bgW
-aPM
+bgY
+aQT
aLT
-aQP
+aTv
blB
qhU
aQL
@@ -119292,11 +119290,11 @@ bJC
bJC
bJC
uUo
-cje
+mzg
cdP
bJC
-cjF
-ckR
+dpO
+ckX
sUO
bSJ
bSJ
@@ -119451,11 +119449,11 @@ aMB
bdD
aLT
bfz
+bgY
aPl
-aQT
aLT
-aTv
-aRT
+aPn
+blB
bnu
aQL
brt
@@ -119496,10 +119494,10 @@ cgt
bJC
chS
bQA
-bFh
+bgW
bJC
-cks
-bTA
+ckR
+ckX
meu
bSJ
clL
@@ -119653,13 +119651,13 @@ bcE
bdr
bdD
aLT
-bfx
-bgW
-aPM
+rrq
+bgY
+aQT
aLT
-aQP
+aTv
blB
-bnu
+mtr
aQL
brt
bpC
@@ -119699,11 +119697,11 @@ cgt
bJC
chQ
cjf
-bFh
+cdP
bJC
-cks
-ckR
-clo
+dpO
+ckX
+xoe
bSJ
clL
clg
@@ -119857,10 +119855,10 @@ bdr
bdC
beS
bfy
-bgW
-aPM
+bgY
+aQT
aLT
-aQP
+aTv
blB
bnt
bpH
@@ -119902,10 +119900,10 @@ cgs
chl
chR
cjf
-bFh
+cdP
bJC
-cks
-ckR
+dpO
+ckX
cll
clF
clK
@@ -120060,10 +120058,10 @@ aMC
bdD
aLT
bfC
+bgY
aPl
-aPM
aLT
-aQU
+aPn
aRX
cSQ
aQL
@@ -120104,10 +120102,10 @@ bMy
cgt
bJC
chV
-bQB
-bFh
+cjf
+bgW
bJC
-ckx
+ckR
bTC
mvl
bSJ
@@ -120262,13 +120260,13 @@ aLT
aLT
aLT
aLT
-bfD
-bgW
-aPM
+bfx
+bgY
+aQT
aLT
-aQV
+aTv
blB
-bnu
+sNb
aQL
aQL
aQL
@@ -120308,11 +120306,11 @@ bJC
bJC
chW
rvT
-bFh
+cdP
bJC
-cky
-ckR
-cln
+dpO
+ckX
+hAZ
bSJ
bSJ
bSJ
@@ -120467,12 +120465,12 @@ aLT
bpL
bfE
njd
-aPN
+aQT
aLT
-aQS
+aTv
blB
uvu
-sNb
+aUZ
aQL
bsS
mqK
@@ -120508,15 +120506,15 @@ bJC
cfp
cgu
bJC
-fcB
+bMx
chQ
cjf
-bFh
+cdP
bJC
-cks
-ckR
+dpO
+ckX
clo
-rrq
+bVn
bSJ
clM
clS
@@ -120669,11 +120667,11 @@ bdr
bkg
aMz
bfy
+bgY
aPl
-aPM
aLT
-aQP
-aRT
+aPn
+blB
bnt
aRT
ihY
@@ -120713,11 +120711,11 @@ cfo
chm
bJD
chR
-bQB
-bFi
+cjf
+bgW
bJC
-ckv
-bTA
+ckR
+ckX
cll
bTA
clG
@@ -120872,10 +120870,10 @@ aLT
aLT
brv
nuA
-bgW
-aPM
+bgY
+aQT
aLT
-aQP
+aTv
blB
oiQ
lml
@@ -120917,10 +120915,10 @@ bJC
cdf
jxx
cjf
-bFh
+cdP
bJC
-cks
-ckR
+dpO
+ckX
rXj
gfo
bSJ
@@ -121075,10 +121073,10 @@ bdr
bpK
aMz
bfy
-bgW
-aPM
+bgY
+aQT
aLT
-aQP
+aTv
blB
bnt
aRT
@@ -121120,10 +121118,10 @@ chn
bJD
chR
cjf
-bFh
+cdP
bJC
-cks
-ckR
+dpO
+ckX
cll
bTA
clH
@@ -121278,11 +121276,11 @@ bdv
aLT
bry
bfu
-aPn
+bgY
jVr
aLT
kXa
-aRZ
+blB
chL
lAl
aQL
@@ -121322,11 +121320,11 @@ cgv
bJC
wqc
chN
-bQC
+cjf
lok
bJC
ihM
-bTE
+ckX
clm
hXY
bSJ
diff --git a/sound/effects/alien_dragsound_large.ogg b/sound/effects/alien_dragsound_large.ogg
new file mode 100644
index 000000000000..bacd14b0eb07
Binary files /dev/null and b/sound/effects/alien_dragsound_large.ogg differ
diff --git a/sound/effects/burrowing_b.ogg b/sound/effects/burrowing_b.ogg
new file mode 100644
index 000000000000..cc44a8e19282
Binary files /dev/null and b/sound/effects/burrowing_b.ogg differ
diff --git a/sound/effects/burrowoff.ogg b/sound/effects/burrowoff.ogg
new file mode 100644
index 000000000000..66f10b253612
Binary files /dev/null and b/sound/effects/burrowoff.ogg differ
diff --git a/tgui/packages/tgui-panel/chat/constants.js b/tgui/packages/tgui-panel/chat/constants.js
index a73003e13267..ac9346d8d5f0 100644
--- a/tgui/packages/tgui-panel/chat/constants.js
+++ b/tgui/packages/tgui-panel/chat/constants.js
@@ -125,14 +125,8 @@ export const MESSAGE_TYPES = [
type: MESSAGE_TYPE_ADMINCHAT,
name: 'Admin Chat',
description: 'ASAY messages',
- selector: '.admin_channel, .adminsay, .headminsay',
- admin: true,
- },
- {
- type: MESSAGE_TYPE_MODCHAT,
- name: 'Mod Chat',
- description: 'MSAY messages',
- selector: '.mod_channel, .mod, .adminmod, .staffsay',
+ selector:
+ '.admin_channel, .adminsay, .headminsay, .mod_channel, .mod, .adminmod, .staffsay',
admin: true,
},
{
diff --git a/tgui/packages/tgui-say/helpers/index.tsx b/tgui/packages/tgui-say/helpers/index.tsx
index 44225cb876d3..c359c79a940f 100644
--- a/tgui/packages/tgui-say/helpers/index.tsx
+++ b/tgui/packages/tgui-say/helpers/index.tsx
@@ -166,13 +166,10 @@ export const getAvailableChannels = (
return availableChannels;
}
- if (roles.includes('Mod')) {
- availableChannels.push('MSAY');
- }
if (roles.includes('Mentor')) {
availableChannels.push('Mentor');
}
- if (roles.includes('Admin')) {
+ if (roles.includes('Mod')) {
availableChannels.push('ASAY');
}
diff --git a/tgui/packages/tgui-say/styles/colors.scss b/tgui/packages/tgui-say/styles/colors.scss
index 509b3e17f5ef..e0abb717edf3 100644
--- a/tgui/packages/tgui-say/styles/colors.scss
+++ b/tgui/packages/tgui-say/styles/colors.scss
@@ -14,7 +14,6 @@ $comms: #b4b4b4;
$me: #5975da;
$ooc: #1c52f5;
$looc: #e362b4;
-$msay: #74471b;
$mentor: #b5850d;
$asay: #9611d4;
@@ -49,7 +48,6 @@ $_channel_map: (
'ooc': $ooc,
'looc': $looc,
'whisper': $say,
- 'msay': $msay,
'mentor': $mentor,
'asay': $asay,
'department': $comms,