diff --git a/code/__DEFINES/speech_channels.dm b/code/__DEFINES/speech_channels.dm index 405506678407..3f6e4720bde9 100644 --- a/code/__DEFINES/speech_channels.dm +++ b/code/__DEFINES/speech_channels.dm @@ -4,6 +4,5 @@ #define ME_CHANNEL "Me" #define OOC_CHANNEL "OOC" #define LOOC_CHANNEL "LOOC" -#define MOD_CHANNEL "MSAY" #define ADMIN_CHANNEL "ASAY" #define MENTOR_CHANNEL "Mentor" diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 4897a04fea82..288604434e34 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -181,6 +181,8 @@ #define TRAIT_ABILITY_NO_PLASMA_TRANSFER "t_ability_no_plasma_transfer" /// Shows that the xeno queen is on ovi #define TRAIT_ABILITY_OVIPOSITOR "t_ability_ovipositor" +/// Used for burrowed mobs, prevent's SG/sentrys/claymores from autofiring +#define TRAIT_ABILITY_BURROWED "t_ability_burrowed" //-- item traits -- // TOOL TRAITS @@ -233,7 +235,8 @@ GLOBAL_LIST_INIT(mob_traits, list( TRAIT_TWOBORE_TRAINING, TRAIT_LEADERSHIP, TRAIT_DEXTROUS, - TRAIT_REAGENT_SCANNER + TRAIT_REAGENT_SCANNER, + TRAIT_ABILITY_BURROWED )) /* diff --git a/code/controllers/subsystem/x_evolution.dm b/code/controllers/subsystem/x_evolution.dm index 9f84513e9e2d..be787b37de80 100644 --- a/code/controllers/subsystem/x_evolution.dm +++ b/code/controllers/subsystem/x_evolution.dm @@ -3,7 +3,7 @@ #define EVOLUTION_INCREMENT_TIME (30 MINUTES) // Evolution increases by 1 every 25 minutes. SUBSYSTEM_DEF(xevolution) - name = "Evilution" + name = "Evilution" //This is not a typo, do not change it. wait = 1 MINUTES priority = SS_PRIORITY_INACTIVITY diff --git a/code/datums/components/footstep.dm b/code/datums/components/footstep.dm index 0d218ba94da4..ef77aaf471dc 100644 --- a/code/datums/components/footstep.dm +++ b/code/datums/components/footstep.dm @@ -13,8 +13,9 @@ var/falloff ///This can be a list OR a soundfile OR null. Determines whatever sound gets played. var/footstep_sounds + var/drag_sounds -/datum/component/footstep/Initialize(steps_ = 2, volume_ = 50, range_ = null, falloff_ = 1, footstep_sounds_ = "alien_footstep_large") +/datum/component/footstep/Initialize(steps_ = 2, volume_ = 50, range_ = null, falloff_ = 1, footstep_sounds_ = "alien_footstep_large", drag_sounds_ = 'sound/effects/alien_dragsound_large.ogg') if(!isliving(parent)) return COMPONENT_INCOMPATIBLE steps = steps_ @@ -22,6 +23,7 @@ range = range_ falloff = falloff_ footstep_sounds = footstep_sounds_ + drag_sounds = drag_sounds_ RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED), PROC_REF(play_simplestep)) @@ -44,5 +46,8 @@ var/turf/open/T = prepare_step() if(!T) return - if(isfile(footstep_sounds) || istext(footstep_sounds)) + var/mob/living/parent_mob = parent + if(parent_mob.lying && (isfile(drag_sounds) || istext(drag_sounds))) + playsound(T, drag_sounds, volume, rand(20000, 25000), range, falloff = falloff) + else if(isfile(footstep_sounds) || istext(footstep_sounds)) playsound(T, footstep_sounds, volume, rand(20000, 25000), range, falloff = falloff) diff --git a/code/datums/keybinding/communication.dm b/code/datums/keybinding/communication.dm index 9a438fc6dabd..4164198d4818 100644 --- a/code/datums/keybinding/communication.dm +++ b/code/datums/keybinding/communication.dm @@ -42,13 +42,6 @@ full_name = "IC Comms (;)" keybind_signal = COMSIG_KG_CLIENT_RADIO_DOWN -/datum/keybinding/client/communication/mod_say - hotkey_keys = list("Unbound") - classic_keys = list("Unbound") - name = MOD_CHANNEL - full_name = "Mod Say" - keybind_signal = COMSIG_KB_ADMIN_ASAY_DOWN - /datum/keybinding/client/communication/asay hotkey_keys = list("F3") classic_keys = list("F5") diff --git a/code/datums/redis/callbacks/msay.dm b/code/datums/redis/callbacks/msay.dm deleted file mode 100644 index 3c0db7638a3a..000000000000 --- a/code/datums/redis/callbacks/msay.dm +++ /dev/null @@ -1,16 +0,0 @@ -/datum/redis_callback/msay - channel = "byond.msay" - -/datum/redis_callback/msay/on_message(message) - var/list/data = json_decode(message) - - if(data["source"] == SSredis.instance_name) - return - - var/msg = "[data["rank"]]: [data["author"]]@[data["source"]]: [strip_html(data["message"])]" - - for(var/client/client in GLOB.admins) - if(!(R_MOD & client.admin_holder.rights)) - continue - - to_chat(client, msg) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 937c19b4512b..dc4cca423c64 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -580,7 +580,7 @@ Parameters are passed from New. if(!ismovable(src)) var/turf/curturf = get_turf(src) if(curturf) - . += "" + . += "" VV_DROPDOWN_OPTION(VV_HK_MODIFY_TRANSFORM, "Modify Transform") VV_DROPDOWN_OPTION(VV_HK_ADD_REAGENT, "Add Reagent") VV_DROPDOWN_OPTION(VV_HK_TRIGGER_EMP, "EMP Pulse") diff --git a/code/game/machinery/vending/vendor_types/crew/synthetic.dm b/code/game/machinery/vending/vendor_types/crew/synthetic.dm index 1d8e5e289066..be6939a6f9dd 100644 --- a/code/game/machinery/vending/vendor_types/crew/synthetic.dm +++ b/code/game/machinery/vending/vendor_types/crew/synthetic.dm @@ -110,7 +110,6 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth, list( list("HELMET (CHOOSE 1)", 0, null, null, null), list("Expedition Cap", 0, /obj/item/clothing/head/cmcap/flap, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("Hard Hat, Orange", 0, /obj/item/clothing/head/hardhat/orange, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), - list("Surgical Cap, Green", 0, /obj/item/clothing/head/surgery/green, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("Welding Helmet", 0, /obj/item/clothing/head/welding, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("SUIT (CHOOSE 1)", 0, null, null, null), @@ -181,13 +180,19 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( list("Medical Scrubs, White", 12, /obj/item/clothing/under/rank/medical, null, VENDOR_ITEM_REGULAR), list("USCM Service Uniform", 12, /obj/item/clothing/under/marine/officer/bridge, null, VENDOR_ITEM_REGULAR), list("USCM Flightsuit", 12, /obj/item/clothing/under/rank/synthetic/flight, null, VENDOR_ITEM_REGULAR), - list("Engineer Uniform", 12, /obj/item/clothing/under/marine/officer/engi, null, VENDOR_ITEM_REGULAR), + list("USCM Engineer Uniform", 12, /obj/item/clothing/under/marine/officer/engi, null, VENDOR_ITEM_REGULAR), list("White T-Shirt and Brown Jeans", 12, /obj/item/clothing/under/tshirt/w_br, null, VENDOR_ITEM_REGULAR), list("Gray T-Shirt and Blue Jeans", 12, /obj/item/clothing/under/tshirt/gray_blu, null, VENDOR_ITEM_REGULAR), list("Red T-Shirt and Black Jeans", 12, /obj/item/clothing/under/tshirt/r_bla, null, VENDOR_ITEM_REGULAR), - list("Gray Utilities", 12, /obj/item/clothing/under/colonist/ua_civvies, null, VENDOR_ITEM_REGULAR), - list("Brown Utilities", 12, /obj/item/clothing/under/colonist/wy_davisone, null, VENDOR_ITEM_REGULAR), - list("Steward Utilities", 12, /obj/item/clothing/under/colonist/wy_joliet_shopsteward, null, VENDOR_ITEM_REGULAR), + list("Frontier Jumpsuit", 12, /obj/item/clothing/under/rank/synthetic/frontier, null, VENDOR_ITEM_REGULAR), + list("UA Grey Jumpsuit", 12, /obj/item/clothing/under/colonist/ua_civvies, null, VENDOR_ITEM_REGULAR), + list("UA Brown Jumpsuit", 12, /obj/item/clothing/under/colonist/wy_davisone, null, VENDOR_ITEM_REGULAR), + list("UA Green Utility Uniform", 12, /obj/item/clothing/under/rank/synthetic/utility, null, VENDOR_ITEM_REGULAR), + list("Grey Utilities", 12, /obj/item/clothing/under/rank/synthetic/utility/yellow, null, VENDOR_ITEM_REGULAR), + list("Grey Utilities and Blue Jeans", 12, /obj/item/clothing/under/rank/synthetic/utility/red, null, VENDOR_ITEM_REGULAR), + list("Blue Utilities and Brown Jeans", 12, /obj/item/clothing/under/rank/synthetic/utility/blue, null, VENDOR_ITEM_REGULAR), + list("Steward Clothes", 12, /obj/item/clothing/under/colonist/wy_joliet_shopsteward, null, VENDOR_ITEM_REGULAR), + list("Red Dress Skirt", 12, /obj/item/clothing/under/blackskirt, null, VENDOR_ITEM_REGULAR), list("Working Joe Uniform", 36, /obj/item/clothing/under/rank/synthetic/joe, null, VENDOR_ITEM_REGULAR), list("GLASSES", 0, null, null, null), @@ -208,6 +213,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( list("Shoes, Red", 12, /obj/item/clothing/shoes/red, null, VENDOR_ITEM_REGULAR), list("Shoes, White", 12, /obj/item/clothing/shoes/white, null, VENDOR_ITEM_REGULAR), list("Shoes, Yellow", 12, /obj/item/clothing/shoes/yellow, null, VENDOR_ITEM_REGULAR), + list("Shoes, Seegson", 24, /obj/item/clothing/shoes/dress, null, VENDOR_ITEM_REGULAR), list("HELMET", 0, null, null, null), list("Beanie", 12, /obj/item/clothing/head/beanie, null, VENDOR_ITEM_REGULAR), @@ -216,31 +222,32 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( list("Beret, Red", 12, /obj/item/clothing/head/beret/cm/red, null, VENDOR_ITEM_REGULAR), list("Beret, Standard", 12, /obj/item/clothing/head/beret/cm, null, VENDOR_ITEM_REGULAR), list("Beret, Tan", 12, /obj/item/clothing/head/beret/cm/tan, null, VENDOR_ITEM_REGULAR), - list("Cap", 12, /obj/item/clothing/head/cmcap, null, VENDOR_ITEM_REGULAR), list("Surgical Cap, Blue", 12, /obj/item/clothing/head/surgery/blue, null, VENDOR_ITEM_REGULAR), list("Surgical Cap, Blue", 12, /obj/item/clothing/head/surgery/purple, null, VENDOR_ITEM_REGULAR), list("Surgical Cap, Green", 12, /obj/item/clothing/head/surgery/green, null, VENDOR_ITEM_REGULAR), list("Ushanka", 12, /obj/item/clothing/head/ushanka, null, VENDOR_ITEM_REGULAR), + list("Cap", 12, /obj/item/clothing/head/cmcap, null, VENDOR_ITEM_REGULAR), list("MP Cap", 12, /obj/item/clothing/head/beret/marine/mp/mpcap, null, VENDOR_ITEM_REGULAR), list("RO Cap", 12, /obj/item/clothing/head/cmcap/req, null, VENDOR_ITEM_REGULAR), list("Officer Cap", 12, /obj/item/clothing/head/cmcap/ro, null, VENDOR_ITEM_REGULAR), list("SUIT", 0, null, null, null), - list("Brown Bomber Jacket", 12, /obj/item/clothing/suit/storage/bomber, null, VENDOR_ITEM_REGULAR), - list("Black Bomber Jacket", 12, /obj/item/clothing/suit/storage/bomber/alt, null, VENDOR_ITEM_REGULAR), - list("External webbing", 12, /obj/item/clothing/suit/storage/webbing, null, VENDOR_ITEM_REGULAR), - list("Orange Hazard Vest", 12, /obj/item/clothing/suit/storage/hazardvest, null, VENDOR_ITEM_REGULAR), - list("Blue Hazard Vest", 12, /obj/item/clothing/suit/storage/hazardvest/blue, null, VENDOR_ITEM_REGULAR), - list("Yellow Hazard Vest", 12, /obj/item/clothing/suit/storage/hazardvest/yellow, null, VENDOR_ITEM_REGULAR), - list("Black Hazard Vest", 12, /obj/item/clothing/suit/storage/hazardvest/black, null, VENDOR_ITEM_REGULAR), + list("Bomber Jacket, Brown", 12, /obj/item/clothing/suit/storage/bomber, null, VENDOR_ITEM_REGULAR), + list("Bomber Jacket, Black", 12, /obj/item/clothing/suit/storage/bomber/alt, null, VENDOR_ITEM_REGULAR), + list("External Webbing", 12, /obj/item/clothing/suit/storage/webbing, null, VENDOR_ITEM_REGULAR), + list("Utility Vest", 12, /obj/item/clothing/suit/storage/utility_vest, null, VENDOR_ITEM_REGULAR), + list("Hazard Vest(Orange)", 12, /obj/item/clothing/suit/storage/hazardvest, null, VENDOR_ITEM_REGULAR), + list("Hazard Vest(Blue)", 12, /obj/item/clothing/suit/storage/hazardvest/blue, null, VENDOR_ITEM_REGULAR), + list("Hazard Vest(Yellow)", 12, /obj/item/clothing/suit/storage/hazardvest/yellow, null, VENDOR_ITEM_REGULAR), + list("Hazard Vest(Black)", 12, /obj/item/clothing/suit/storage/hazardvest/black, null, VENDOR_ITEM_REGULAR), list("Synthetic's Snow Suit", 12, /obj/item/clothing/suit/storage/snow_suit/synth, null, VENDOR_ITEM_REGULAR), list("USCM Service Jacket", 12, /obj/item/clothing/suit/storage/jacket/marine/service, null, VENDOR_ITEM_REGULAR), list("USCM MP Service Jacket", 12, /obj/item/clothing/suit/storage/jacket/marine/service/mp, null, VENDOR_ITEM_REGULAR), - list("Brown Windbreaker", 12, /obj/item/clothing/suit/storage/windbreaker/windbreaker_brown, null, VENDOR_ITEM_REGULAR), - list("Gray Windbreaker", 12, /obj/item/clothing/suit/storage/windbreaker/windbreaker_gray, null, VENDOR_ITEM_REGULAR), - list("Green Windbreaker", 12, /obj/item/clothing/suit/storage/windbreaker/windbreaker_green, null, VENDOR_ITEM_REGULAR), - list("First Responder Windbreaker", 12, /obj/item/clothing/suit/storage/windbreaker/windbreaker_fr, null, VENDOR_ITEM_REGULAR), - list("Exploration Windbreaker", 12, /obj/item/clothing/suit/storage/windbreaker/windbreaker_covenant, null, VENDOR_ITEM_REGULAR), + list("Windbreaker, Brown", 12, /obj/item/clothing/suit/storage/windbreaker/windbreaker_brown, null, VENDOR_ITEM_REGULAR), + list("Windbreaker, Grey", 12, /obj/item/clothing/suit/storage/windbreaker/windbreaker_gray, null, VENDOR_ITEM_REGULAR), + list("Windbreaker, Green", 12, /obj/item/clothing/suit/storage/windbreaker/windbreaker_green, null, VENDOR_ITEM_REGULAR), + list("Windbreaker, First Responder", 12, /obj/item/clothing/suit/storage/windbreaker/windbreaker_fr, null, VENDOR_ITEM_REGULAR), + list("Windbreaker, Exploration", 12, /obj/item/clothing/suit/storage/windbreaker/windbreaker_covenant, null, VENDOR_ITEM_REGULAR), list("Labcoat", 12, /obj/item/clothing/suit/storage/labcoat, null, VENDOR_ITEM_REGULAR), list("Labcoat, Researcher", 12, /obj/item/clothing/suit/storage/labcoat/researcher, null, VENDOR_ITEM_REGULAR), list("RO Jacket", 12, /obj/item/clothing/suit/storage/RO, null, VENDOR_ITEM_REGULAR), @@ -248,9 +255,8 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( list("BACKPACK", 0, null, null, null), list("Backpack, Industrial", 12, /obj/item/storage/backpack/industrial, null, VENDOR_ITEM_REGULAR), - list("Backpack, USCM IMB", 12, /obj/item/storage/backpack/marine, null, VENDOR_ITEM_REGULAR), list("Backpack, USCM Medical", 12, /obj/item/storage/backpack/marine/medic, null, VENDOR_ITEM_REGULAR), - list("Backpack, USCM Technician", 12, /obj/item/storage/backpack/marine/tech, null, VENDOR_ITEM_REGULAR), + list("Chestrig, Technician", 12, /obj/item/storage/backpack/marine/satchel/tech, null, VENDOR_ITEM_REGULAR), list("Satchel, USCM", 12, /obj/item/storage/backpack/marine/satchel, null, VENDOR_ITEM_REGULAR), list("Satchel, Leather", 12, /obj/item/storage/backpack/satchel, null, VENDOR_ITEM_REGULAR), list("Satchel, Medical", 12, /obj/item/storage/backpack/satchel/med, null, VENDOR_ITEM_REGULAR), diff --git a/code/game/objects/effects/landmarks/survivor_spawner.dm b/code/game/objects/effects/landmarks/survivor_spawner.dm index fbd04babdf20..335d4e9f4774 100644 --- a/code/game/objects/effects/landmarks/survivor_spawner.dm +++ b/code/game/objects/effects/landmarks/survivor_spawner.dm @@ -67,7 +67,7 @@ /obj/effect/landmark/survivor_spawner/bigred_crashed_pmc equipment = /datum/equipment_preset/survivor/pmc - 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.") @@ -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,