diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm index fbb25c196c..1bfa2792de 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm @@ -117,7 +117,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_medic, list( list("Essential Medical Set", 0, /obj/effect/essentials_set/medic, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Standard Marine Apparel", 0, list(/obj/item/clothing/under/marine/medic, /obj/item/clothing/shoes/marine/knife, /obj/item/clothing/gloves/marine, /obj/item/device/radio/headset/almayer/marine, /obj/item/clothing/head/helmet/marine/medic), MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), + list("Standard Marine Apparel", 0, list(/obj/item/clothing/gloves/marine, /obj/item/clothing/head/helmet/marine/medic), MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("Combat Sterile Gloves", 0, /obj/item/clothing/gloves/marine/medical, MARINE_CAN_BUY_KIT, VENDOR_ITEM_REGULAR), list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), @@ -221,7 +221,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_upp_medic, list( list("Essential Medical Set", 0, /obj/effect/essentials_set/medic, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Standard Apparel", 0, list(/obj/item/clothing/under/marine/veteran/UPP/medic, /obj/item/clothing/shoes/marine/upp, /obj/item/clothing/gloves/marine/veteran/upp, /obj/item/device/radio/headset/distress/UPP, /obj/item/clothing/head/helmet/marine/veteran/UPP), MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), + list("Standard Apparel", 0, list(/obj/item/clothing/gloves/marine/veteran/upp, /obj/item/clothing/head/helmet/marine/veteran/UPP), MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("Combat Sterile Gloves", 0, /obj/item/clothing/gloves/marine/medical, MARINE_CAN_BUY_KIT, VENDOR_ITEM_REGULAR), list("Ration", 0, /obj/item/reagent_container/food/snacks/upp, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), @@ -283,7 +283,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_forecon_medic, list( list("Essential Medical Set", 0, /obj/effect/essentials_set/medic, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Standard Marine Apparel", 0, list(/obj/item/clothing/under/marine/medic/standard, /obj/item/clothing/shoes/marine/jungle/knife, /obj/item/clothing/gloves/marine, /obj/item/device/radio/headset/almayer/sof/survivor_forecon), MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), + list("Standard Marine Apparel", 0, list(/obj/item/clothing/gloves/marine), MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("Combat Sterile Gloves", 0, /obj/item/clothing/gloves/marine/medical, MARINE_CAN_BUY_KIT, VENDOR_ITEM_REGULAR), list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index d6148b23b7..86e902dbbb 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -7,9 +7,10 @@ layer = BELOW_OBJ_LAYER var/icon_closed = "closed" var/icon_opened = "open" - var/opened = 0 - var/welded = 0 - var/wall_mounted = 0 //never solid (You can always pass over it) + var/opened = FALSE + var/welded = FALSE + var/wall_mounted = FALSE //never solid (You can always pass over it) + var/can_be_stacked = FALSE health = 100 var/lastbang var/storage_capacity = 30 //This is so that someone can't pack hundreds of items in a locker/crate @@ -59,21 +60,25 @@ /obj/structure/closet/proc/can_open() if(src.welded) - return 0 - return 1 + return FALSE + return TRUE /obj/structure/closet/proc/can_close() + for(var/mob/living/carbon/xenomorph/xeno in get_turf(src)) + return FALSE + if(can_be_stacked) + return TRUE for(var/obj/structure/closet/closet in get_turf(src)) if(closet != src && !closet.wall_mounted) - return 0 - for(var/mob/living/carbon/xenomorph/xeno in get_turf(src)) - return 0 - return 1 + return FALSE + return TRUE /obj/structure/closet/proc/dump_contents() for(var/obj/I in src) I.forceMove(loc) + I.pixel_x = pixel_x + I.pixel_y = pixel_y for(var/mob/M in src) M.forceMove(loc) @@ -87,25 +92,25 @@ /obj/structure/closet/proc/open() if(opened) - return 0 + return FALSE if(!can_open()) - return 0 + return FALSE dump_contents() UnregisterSignal(src, COMSIG_CLOSET_FLASHBANGED) - opened = 1 + opened = TRUE update_icon() playsound(src.loc, open_sound, 15, 1) density = FALSE - return 1 + return TRUE /obj/structure/closet/proc/close() if(!src.opened) - return 0 + return FALSE if(!src.can_close()) - return 0 + return FALSE var/stored_units = 0 if(store_items) @@ -114,12 +119,12 @@ stored_units = store_mobs(stored_units) RegisterSignal(src, COMSIG_CLOSET_FLASHBANGED, PROC_REF(flashbang)) - opened = 0 + opened = FALSE update_icon() playsound(src.loc, close_sound, 15, 1) density = TRUE - return 1 + return TRUE /obj/structure/closet/proc/store_items(stored_units) for(var/obj/item/I in src.loc) @@ -209,7 +214,7 @@ src.MouseDrop_T(G.grabbed_thing, user) //act like they were dragged onto the closet return if(W.flags_item & ITEM_ABSTRACT) - return 0 + return FALSE if(material == MATERIAL_METAL) if(iswelder(W)) if(!HAS_TRAIT(W, TRAIT_TOOL_BLOWTORCH)) @@ -369,5 +374,5 @@ /obj/structure/closet/proc/break_open() if(!opened) - welded = 0 + welded = FALSE open() diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index 6e42dc370e..73cf11a6a3 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -124,7 +124,7 @@ desc = "A secure storage unit for an assistant squad leader." req_one_access = list(ACCESS_MARINE_LEADER, ACCESS_MARINE_TL_PREP) -/obj/structure/closet/secure_closet/squad_sergeant/Initialize() +/obj/structure/closet/secure_closet/squad_sergeant_forecon/Initialize() . = ..() new /obj/item/device/binoculars/range/designator(src) new /obj/item/device/whistle(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/marine_personal.dm b/code/game/objects/structures/crates_lockers/closets/secure/marine_personal.dm new file mode 100644 index 0000000000..7749987eb8 --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/secure/marine_personal.dm @@ -0,0 +1,32 @@ +/obj/structure/closet/secure_closet/marine_personal + name = "personal locker" + desc = "It's an immobile card-locked storage unit." + icon_state = "secure1" + can_be_stacked = TRUE + var/owner + var/job = "Rifleman" + var/has_cryo_gear = TRUE + +/obj/structure/closet/secure_closet/marine_personal/get_examine_text(mob/user) + . = ..() + . += SPAN_NOTICE("It has a name tag[owner ? ": [owner]." : ". They are still in hypersleep..."]") + +/obj/structure/closet/secure_closet/marine_personal/Initialize(mapload, ...) + . = ..() + GLOB.personal_closets += src + +/obj/structure/closet/secure_closet/marine_personal/Destroy() + GLOB.personal_closets -= src + return ..() + +/obj/structure/closet/secure_closet/marine_personal/allowed(mob/M) + if(owner == M.name) + return TRUE + return FALSE + +/obj/structure/closet/secure_closet/marine_personal/Initialize() + . = ..() + if(has_cryo_gear) + new /obj/item/clothing/under/marine(src) + new /obj/item/clothing/shoes/marine/knife(src) + new /obj/item/device/radio/headset/almayer/marine(src) diff --git a/code/modules/gear_presets/_select_equipment.dm b/code/modules/gear_presets/_select_equipment.dm index 69a8bb67a8..ce47c0ffec 100644 --- a/code/modules/gear_presets/_select_equipment.dm +++ b/code/modules/gear_presets/_select_equipment.dm @@ -153,7 +153,8 @@ load_gear(new_human, mob_client) load_id(new_human, mob_client) load_status(new_human, mob_client) - load_vanity(new_human, mob_client) + INVOKE_NEXT_TICK(src, PROC_REF(do_vanity), new_human, mob_client) + load_traits(new_human, mob_client) if(round_statistics && count_participant) round_statistics.track_new_participant(faction) @@ -168,6 +169,15 @@ new_human.hud_set_squad() new_human.add_to_all_mob_huds() +/datum/equipment_preset/proc/do_vanity(mob/living/carbon/human/new_human, client/mob_client) + var/turf/T = get_turf(new_human) + if(!T) + return + if(is_mainship_level(T.z)) + spawn_vanity_in_personal_lockers(new_human, mob_client) + else + load_vanity(new_human, mob_client) + /datum/equipment_preset/proc/load_vanity(mob/living/carbon/human/new_human, client/mob_client) if(!new_human.client || !new_human.client.prefs || !new_human.client.prefs.gear) return//We want to equip them with custom stuff second, after they are equipped with everything else. @@ -246,6 +256,96 @@ if(!new_human.equip_to_slot_if_possible(P, WEAR_R_HAND)) P.forceMove(new_human.loc) +GLOBAL_LIST_EMPTY(personal_closets) + +/datum/equipment_preset/proc/spawn_vanity_in_personal_lockers(mob/living/carbon/human/new_human, client/mob_client) + var/obj/structure/closet/secure_closet/marine_personal/closet_to_spawn_in + if(!new_human?.client?.prefs?.gear) + return//We want to equip them with custom stuff second, after they are equipped with everything else. + for(var/obj/structure/closet/secure_closet/marine_personal/closet in GLOB.personal_closets) + if(closet.owner) + continue + if(new_human.job != closet.job) + continue + closet.owner = new_human.real_name + closet_to_spawn_in = closet + closet_to_spawn_in.name = "[closet_to_spawn_in.owner]'s personal locker" + break + if(!closet_to_spawn_in) + load_vanity(new_human, mob_client) + return + + for(var/gear_name in new_human.client.prefs.gear) + var/datum/gear/current_gear = gear_datums_by_name[gear_name] + if(current_gear) + if(current_gear.allowed_roles && !(assignment in current_gear.allowed_roles)) + to_chat(new_human, SPAN_WARNING("Custom gear [current_gear.display_name] cannot be equipped: Invalid Role")) + return + if(current_gear.allowed_origins && !(new_human.origin in current_gear.allowed_origins)) + to_chat(new_human, SPAN_WARNING("Custom gear [current_gear.display_name] cannot be equipped: Invalid Origin")) + return + new current_gear.path(closet_to_spawn_in) + + //Gives ranks to the ranked + var/current_rank = paygrade + var/obj/item/card/id/I = new_human.get_idcard() + if(I) + current_rank = I.paygrade + if(current_rank) + var/rankpath = get_rank_pins(current_rank) + if(rankpath) + new rankpath(closet_to_spawn_in) + + if(flags & EQUIPMENT_PRESET_MARINE) + var/playtime = get_job_playtime(new_human.client, assignment) + var/medal_type + + switch(playtime) + if(JOB_PLAYTIME_TIER_1 to JOB_PLAYTIME_TIER_2) + medal_type = /obj/item/clothing/accessory/medal/bronze/service + if(JOB_PLAYTIME_TIER_2 to JOB_PLAYTIME_TIER_3) + medal_type = /obj/item/clothing/accessory/medal/silver/service + if(JOB_PLAYTIME_TIER_3 to JOB_PLAYTIME_TIER_4) + medal_type = /obj/item/clothing/accessory/medal/gold/service + if(JOB_PLAYTIME_TIER_4 to INFINITY) + medal_type = /obj/item/clothing/accessory/medal/platinum/service + + if(!new_human.client.prefs.playtime_perks) + medal_type = null + + if(medal_type) + var/obj/item/clothing/accessory/medal/medal = new medal_type(closet_to_spawn_in) + medal.recipient_name = new_human.real_name + medal.recipient_rank = current_rank + + + //Gives glasses to the vision impaired + if(new_human.disabilities & NEARSIGHTED) + new /obj/item/clothing/glasses/regular(closet_to_spawn_in) + + for(var/datum/view_record/medal_view/medal as anything in DB_VIEW(/datum/view_record/medal_view, DB_COMP("player_id", DB_EQUALS, new_human.client.player_data.id))) + if(!medal) + return + if(medal.recipient_name != new_human.real_name) + continue + if(medal.recipient_role != new_human.job) + continue + var/obj/item/clothing/accessory/medal/given_medal + switch(medal.medal_type) + if(MARINE_CONDUCT_MEDAL) + given_medal = new /obj/item/clothing/accessory/medal/bronze/conduct(closet_to_spawn_in) + if(MARINE_BRONZE_HEART_MEDAL) + given_medal = new /obj/item/clothing/accessory/medal/bronze/heart(closet_to_spawn_in) + if(MARINE_VALOR_MEDAL) + given_medal = new /obj/item/clothing/accessory/medal/silver/valor(closet_to_spawn_in) + if(MARINE_HEROISM_MEDAL) + given_medal = new /obj/item/clothing/accessory/medal/gold/heroism(closet_to_spawn_in) + else + return FALSE + given_medal.recipient_name = medal.recipient_name + given_medal.recipient_rank = medal.recipient_role + given_medal.medal_citation = medal.citation + /datum/equipment_preset/proc/load_traits(mob/living/carbon/human/new_human, client/mob_client) var/client/real_client = mob_client || new_human.client if(!real_client?.prefs?.traits) diff --git a/colonialmarines.dme b/colonialmarines.dme index 38cce11cb2..50b122a0a2 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -1309,6 +1309,7 @@ #include "code\game\objects\structures\crates_lockers\closets\secure\engineering.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\freezer.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\hydroponics.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\marine_personal.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\medical.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\personal.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\scientist.dm" diff --git a/maps/map_files/chapaev/chapaev.dmm b/maps/map_files/chapaev/chapaev.dmm index 7a493f30b4..9c9d47bd9d 100644 --- a/maps/map_files/chapaev/chapaev.dmm +++ b/maps/map_files/chapaev/chapaev.dmm @@ -98,6 +98,12 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, +/obj/structure/sign{ + desc = "Comrade! Don't forget to return your state-issued items to your assigned locker before returning to hypersleep!"; + icon_state = "securearea"; + pixel_y = 30; + name = "Vnimanie! 注意!" + }, /turf/open/floor/plating, /area/golden_arrow/cryo_cells) "aS" = ( @@ -1051,11 +1057,18 @@ }, /area/golden_arrow/platoon_sergeant) "kb" = ( -/obj/structure/closet/secure_closet/personal/cabinet{ - req_access = null - }, /obj/item/clothing/suit/storage/snow_suit/soviet, /obj/item/clothing/suit/gimmick/jason, +/obj/structure/closet/secure_closet/marine_personal{ + job = "Platoon Commander"; + icon_broken = "cabinetdetective_broken"; + icon_closed = "cabinetdetective"; + icon_locked = "cabinetdetective_locked"; + icon_state = "cabinetdetective_locked"; + icon_opened = "cabinetdetective_open"; + icon_off = "cabinetdetective_broken"; + has_cryo_gear = 0 + }, /turf/open/floor/strata{ dir = 6; icon_state = "multi_tiles" @@ -1850,8 +1863,13 @@ }, /area/golden_arrow/briefing) "rV" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/box/pillbottles, +/obj/structure/closet/secure_closet/marine_personal{ + has_cryo_gear = 0; + job = "Platoon Corpsman" + }, +/obj/item/clothing/shoes/marine/upp, +/obj/item/device/radio/headset/distress/UPP, +/obj/item/clothing/under/marine/veteran/UPP/medic, /turf/open/floor/strata{ dir = 4; icon_state = "cyan1" @@ -2328,7 +2346,6 @@ }, /area/golden_arrow/canteen) "wH" = ( -/obj/structure/closet, /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 @@ -2344,15 +2361,19 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, +/obj/structure/closet/secure_closet/marine_personal{ + has_cryo_gear = 0; + job = "Smartgunner" + }, /obj/item/clothing/shoes/marine/upp, -/obj/item/clothing/shoes/marine/upp, -/obj/item/clothing/under/marine/veteran/UPP, /obj/item/clothing/under/marine/veteran/UPP, +/obj/item/device/radio/headset/distress/UPP, /obj/structure/machinery/light{ - dir = 4 + dir = 4; + invisibility = 101; + unacidable = 1; + unslashable = 1 }, -/obj/item/device/radio/headset/distress/UPP, -/obj/item/device/radio/headset/distress/UPP, /turf/open/floor/strata{ dir = 4; icon_state = "floor3" @@ -2807,6 +2828,33 @@ }, /turf/open/floor/plating, /area/golden_arrow/engineering) +"BK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/closet/secure_closet/marine_personal{ + has_cryo_gear = 0 + }, +/obj/item/clothing/shoes/marine/upp, +/obj/item/clothing/under/marine/veteran/UPP, +/obj/item/device/radio/headset/distress/UPP, +/turf/open/floor/strata{ + dir = 4; + icon_state = "floor3" + }, +/area/golden_arrow/cryo_cells) "BQ" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/prop/almayer/CICmap{ @@ -2852,7 +2900,6 @@ }, /area/golden_arrow/supply) "Cq" = ( -/obj/structure/closet, /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 @@ -2868,15 +2915,19 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, +/obj/structure/closet/secure_closet/marine_personal{ + has_cryo_gear = 0; + job = "Squad Sergeant" + }, /obj/item/clothing/shoes/marine/upp, -/obj/item/clothing/shoes/marine/upp, -/obj/item/clothing/under/marine/veteran/UPP, /obj/item/clothing/under/marine/veteran/UPP, +/obj/item/device/radio/headset/distress/UPP, /obj/structure/machinery/light{ - dir = 8 + dir = 8; + invisibility = 101; + unacidable = 1; + unslashable = 1 }, -/obj/item/device/radio/headset/distress/UPP, -/obj/item/device/radio/headset/distress/UPP, /turf/open/floor/strata{ dir = 4; icon_state = "floor3" @@ -3736,6 +3787,9 @@ /area/golden_arrow/prep_hallway) "Ka" = ( /obj/structure/machinery/chem_master, +/obj/item/storage/box/pillbottles{ + pixel_y = 12 + }, /turf/open/floor/strata{ dir = 4; icon_state = "cyan1" @@ -3791,7 +3845,9 @@ /obj/structure/machinery/chem_dispenser{ desc = "A complex machine for mixing elements into chemicals. A MinZdrav product." }, -/obj/item/reagent_container/glass/beaker/bluespace, +/obj/item/reagent_container/glass/beaker/bluespace{ + pixel_y = 17 + }, /obj/structure/machinery/light{ dir = 4 }, @@ -4788,6 +4844,34 @@ icon_state = "floor3" }, /area/golden_arrow/briefing) +"VL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/closet/secure_closet/marine_personal{ + has_cryo_gear = 0; + job = "Squad Sergeant" + }, +/obj/item/clothing/shoes/marine/upp, +/obj/item/clothing/under/marine/veteran/UPP, +/obj/item/device/radio/headset/distress/UPP, +/turf/open/floor/strata{ + dir = 4; + icon_state = "floor3" + }, +/area/golden_arrow/cryo_cells) "VP" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -4898,7 +4982,6 @@ /turf/closed/wall/strata_outpost/reinforced/hull, /area/golden_arrow/hangar) "WP" = ( -/obj/structure/closet, /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 @@ -4914,11 +4997,12 @@ /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/obj/item/clothing/shoes/marine/upp, +/obj/structure/closet/secure_closet/marine_personal{ + has_cryo_gear = 0; + job = "Platoon Sergeant" + }, /obj/item/clothing/shoes/marine/upp, /obj/item/clothing/under/marine/veteran/UPP, -/obj/item/clothing/under/marine/veteran/UPP, -/obj/item/device/radio/headset/distress/UPP, /obj/item/device/radio/headset/distress/UPP, /turf/open/floor/strata{ dir = 4; @@ -13951,10 +14035,10 @@ nO EA HX cT -WP -WP +BK +BK Cq -WP +BK WP iO pk @@ -14559,11 +14643,11 @@ nO EA af cT -WP -WP +BK +BK wH -WP -WP +VL +BK iO bC CJ diff --git a/maps/map_files/golden_arrow/golden_arrow.dmm b/maps/map_files/golden_arrow/golden_arrow.dmm index 9225f4301d..885fa1b3d9 100644 --- a/maps/map_files/golden_arrow/golden_arrow.dmm +++ b/maps/map_files/golden_arrow/golden_arrow.dmm @@ -47,6 +47,17 @@ icon_state = "plate" }, /area/golden_arrow/hangar) +"am" = ( +/obj/structure/closet/secure_closet/marine_personal{ + pixel_x = -8 + }, +/obj/structure/closet/secure_closet/marine_personal{ + pixel_x = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/golden_arrow/dorms) "an" = ( /obj/structure/closet/emcloset, /obj/structure/machinery/light, @@ -268,6 +279,17 @@ icon_state = "plate" }, /area/golden_arrow/hangar) +"br" = ( +/obj/structure/closet/secure_closet/marine_personal{ + pixel_x = 8 + }, +/obj/structure/closet/secure_closet/marine_personal{ + pixel_x = -8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/golden_arrow/dorms) "bu" = ( /obj/structure/machinery/camera/autoname/golden_arrow, /obj/effect/decal/warning_stripes{ @@ -316,6 +338,18 @@ icon_state = "test_floor4" }, /area/golden_arrow/platoon_commander_rooms) +"bL" = ( +/obj/structure/closet/secure_closet/marine_personal{ + job = "Platoon Corpsman"; + has_cryo_gear = 0 + }, +/obj/item/clothing/shoes/marine/knife, +/obj/item/device/radio/headset/almayer/marine, +/obj/item/clothing/under/marine/medic, +/turf/open/floor/almayer{ + icon_state = "sterile_green" + }, +/area/golden_arrow/medical) "bO" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage{ req_one_access = list() @@ -1978,16 +2012,25 @@ }, /area/golden_arrow/prep_hallway) "lc" = ( -/obj/structure/closet/cryo, -/obj/structure/closet/cryo, +/obj/structure/surface/rack, +/obj/item/tool/soap, +/obj/item/tool/soap{ + pixel_y = 4; + pixel_x = 6 + }, +/obj/item/tool/soap{ + pixel_y = -5; + pixel_x = -5 + }, +/obj/item/tool/soap, /turf/open/floor/almayer{ icon_state = "plate" }, /area/golden_arrow/cryo_cells) "ld" = ( -/obj/structure/closet, /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light, +/obj/structure/machinery/disposal, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -2094,8 +2137,8 @@ /turf/closed/wall/almayer/outer, /area/golden_arrow/supply) "mc" = ( -/obj/structure/surface/rack, /obj/effect/decal/cleanable/dirt, +/obj/structure/surface/rack, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -2251,36 +2294,20 @@ }, /area/golden_arrow/briefing) "nj" = ( -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = -2; - pixel_y = 4 - }, -/obj/structure/window/reinforced{ - dir = 8; - layer = 3.3; - pixel_y = 4 - }, -/obj/structure/bed{ - can_buckle = 0 - }, -/obj/structure/bed{ - buckling_y = 13; - layer = 3.5; - pixel_y = 13 - }, -/obj/item/bedsheet/brown{ - layer = 3.4 - }, -/obj/item/bedsheet/brown{ - pixel_y = 13 - }, /obj/effect/decal/cleanable/dirt, /obj/structure/prop/invuln/lattice_prop{ icon_state = "lattice1"; pixel_x = 16; pixel_y = -15 }, +/obj/structure/closet/secure_closet/marine_personal{ + pixel_x = -8; + job = "Smartgunner" + }, +/obj/structure/closet/secure_closet/marine_personal{ + pixel_x = 8; + job = "Smartgunner" + }, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -2291,13 +2318,6 @@ }, /turf/open/floor/almayer, /area/golden_arrow/hangar) -"ns" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/cryo, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/golden_arrow/cryo_cells) "nx" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -2895,7 +2915,14 @@ }, /area/golden_arrow/cryo_cells) "rd" = ( -/obj/structure/closet/cryo, +/obj/structure/closet/wardrobe{ + name = "PT uniform" + }, +/obj/item/clothing/under/shorts/blue, +/obj/item/clothing/under/shorts/red, +/obj/item/clothing/under/shorts/blue, +/obj/item/clothing/head/headband/red, +/obj/item/clothing/under/shorts/red, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -3032,8 +3059,14 @@ /turf/open/floor/almayer/uscm/directional, /area/golden_arrow/briefing) "rX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet, +/obj/structure/closet/secure_closet/marine_personal{ + pixel_x = -8; + job = "Squad Sergeant" + }, +/obj/structure/closet/secure_closet/marine_personal{ + pixel_x = 8; + job = "Squad Sergeant" + }, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -3206,11 +3239,18 @@ }, /area/golden_arrow/supply) "sY" = ( -/obj/structure/closet/secure_closet/personal/cabinet{ - req_access = null - }, /obj/item/clothing/suit/storage/jacket/marine/service, /obj/item/clothing/suit/storage/jacket/marine/service/tanker, +/obj/structure/closet/secure_closet/marine_personal{ + job = "Platoon Commander"; + icon_broken = "cabinetdetective_broken"; + icon_closed = "cabinetdetective"; + icon_locked = "cabinetdetective_locked"; + icon_state = "cabinetdetective_locked"; + icon_opened = "cabinetdetective_open"; + icon_off = "cabinetdetective_broken"; + has_cryo_gear = 0 + }, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -3385,6 +3425,30 @@ icon_state = "dark_sterile" }, /area/golden_arrow/canteen) +"ur" = ( +/obj/structure/window/reinforced{ + dir = 8; + layer = 3.3; + pixel_y = 4 + }, +/obj/structure/bed{ + can_buckle = 0 + }, +/obj/structure/bed{ + buckling_y = 13; + layer = 3.5; + pixel_y = 13 + }, +/obj/item/bedsheet/brown{ + layer = 3.4 + }, +/obj/item/bedsheet/brown{ + pixel_y = 13 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/golden_arrow/dorms) "us" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -4818,6 +4882,16 @@ icon_state = "dark_sterile" }, /area/golden_arrow/canteen) +"CJ" = ( +/obj/structure/surface/rack, +/obj/item/reagent_container/spray/cleaner{ + name = "Weyland-Yutani premium shampoo"; + desc = "Can also be used as body wash, shaving foam, deodorant, bug repellant, lighter fluid and gatorade." + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/golden_arrow/cryo_cells) "CK" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -5632,10 +5706,16 @@ }, /area/golden_arrow/engineering) "Hd" = ( -/obj/structure/closet, /obj/structure/sign/banners/united_americas_flag{ pixel_y = 30 }, +/obj/structure/closet/secure_closet/marine_personal{ + pixel_x = -8 + }, +/obj/structure/closet/secure_closet/marine_personal{ + pixel_x = 8; + job = "Platoon Sergeant" + }, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -6310,25 +6390,6 @@ pixel_x = -2; pixel_y = 4 }, -/obj/structure/window/reinforced{ - dir = 8; - layer = 3.3; - pixel_y = 4 - }, -/obj/structure/bed{ - can_buckle = 0 - }, -/obj/structure/bed{ - buckling_y = 13; - layer = 3.5; - pixel_y = 13 - }, -/obj/item/bedsheet/brown{ - layer = 3.4 - }, -/obj/item/bedsheet/brown{ - pixel_y = 13 - }, /obj/structure/prop/invuln/lattice_prop{ dir = 1; icon_state = "lattice-simple"; @@ -6340,6 +6401,13 @@ pixel_x = 16; pixel_y = 16 }, +/obj/structure/closet/secure_closet/marine_personal{ + pixel_x = 8 + }, +/obj/structure/closet/secure_closet/marine_personal{ + pixel_x = -8; + job = "Smartgunner" + }, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -7685,29 +7753,11 @@ pixel_y = 29; serial_number = 16 }, -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = -2; - pixel_y = 4 - }, -/obj/structure/window/reinforced{ - dir = 8; - layer = 3.3; - pixel_y = 4 - }, -/obj/structure/bed{ - can_buckle = 0 - }, -/obj/structure/bed{ - buckling_y = 13; - layer = 3.5; - pixel_y = 13 +/obj/structure/closet/secure_closet/marine_personal{ + pixel_x = 8 }, -/obj/item/bedsheet/brown{ - layer = 3.4 - }, -/obj/item/bedsheet/brown{ - pixel_y = 13 +/obj/structure/closet/secure_closet/marine_personal{ + pixel_x = -8 }, /turf/open/floor/almayer{ icon_state = "plate" @@ -7938,11 +7988,6 @@ name = "General Listening Channel"; pixel_y = 28 }, -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = -2; - pixel_y = 4 - }, /obj/structure/window/reinforced{ dir = 8; layer = 3.3; @@ -16196,7 +16241,7 @@ wJ VQ qA zV -DY +KQ qA dl Bh @@ -18327,7 +18372,7 @@ KZ gL sk uH -wl +Vp Vp wd XQ @@ -18475,7 +18520,7 @@ Vr Vr As Vp -EQ +am JL Tb KK @@ -19695,7 +19740,7 @@ Tg wl FR wl -Tk +ur Vp UT XI @@ -19847,7 +19892,7 @@ Sd Cb Gf MJ -Tk +br Vp aQ XI @@ -20585,7 +20630,7 @@ JU Cv Cv dd -Mj +bL Nf fY hW @@ -22128,18 +22173,18 @@ DX HX Qx HK -ns -ns +Sc +Sc HK -rd -rd +Br +Br HK lc -rd -rd +CJ +Br HK -rd -rd +Br +Br rd HK eL diff --git a/maps/map_files/rover/rover.dmm b/maps/map_files/rover/rover.dmm index b35fb87e5f..12245ea429 100644 --- a/maps/map_files/rover/rover.dmm +++ b/maps/map_files/rover/rover.dmm @@ -168,8 +168,6 @@ }, /area/golden_arrow/hangar) "bS" = ( -/obj/structure/surface/rack, -/obj/item/weapon/gun/rifle/m41aMK1, /obj/structure/sign/poster/music{ pixel_y = 29 }, @@ -177,9 +175,7 @@ pixel_y = 34; pixel_x = 8 }, -/obj/item/weapon/gun/rifle/m41aMK1, -/obj/item/weapon/gun/rifle/m41aMK1, -/obj/item/weapon/gun/rifle/m41aMK1, +/obj/structure/gun_rack/m41, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -681,6 +677,12 @@ pixel_x = -27 }, /obj/effect/decal/cleanable/dirt, +/obj/structure/closet/secure_closet/marine_personal{ + has_cryo_gear = 0 + }, +/obj/item/clothing/shoes/marine/jungle/knife, +/obj/item/device/radio/headset/almayer/sof/survivor_forecon, +/obj/item/clothing/under/marine/standard, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -2375,6 +2377,12 @@ dir = 4; name = "ship-grade camera" }, +/obj/structure/closet/secure_closet/marine_personal{ + has_cryo_gear = 0 + }, +/obj/item/clothing/shoes/marine/jungle/knife, +/obj/item/device/radio/headset/almayer/sof/survivor_forecon, +/obj/item/clothing/under/marine/standard, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -2723,15 +2731,15 @@ }, /area/golden_arrow/platoon_commander_rooms) "zF" = ( -/obj/structure/closet, /obj/structure/machinery/light{ dir = 4 }, -/obj/item/clothing/shoes/marine/jungle/knife, +/obj/structure/closet/secure_closet/marine_personal{ + job = "Platoon Sergeant"; + has_cryo_gear = 0 + }, /obj/item/clothing/shoes/marine/jungle/knife, /obj/item/device/radio/headset/almayer/sof/survivor_forecon, -/obj/item/device/radio/headset/almayer/sof/survivor_forecon, -/obj/item/clothing/under/marine/standard, /obj/item/clothing/under/marine/standard, /turf/open/floor/almayer{ icon_state = "plate" @@ -3189,15 +3197,11 @@ }, /area/golden_arrow/dorms) "EF" = ( -/obj/structure/surface/rack, -/obj/item/weapon/gun/rifle/m41aMK1, /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light{ dir = 1 }, -/obj/item/weapon/gun/rifle/m41aMK1, -/obj/item/weapon/gun/rifle/m41aMK1, -/obj/item/weapon/gun/rifle/m41aMK1, +/obj/structure/gun_rack/m41, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -3667,6 +3671,13 @@ pixel_x = -30 }, /obj/effect/decal/cleanable/dirt, +/obj/structure/closet/secure_closet/marine_personal{ + job = "Smartgunner"; + has_cryo_gear = 0 + }, +/obj/item/clothing/shoes/marine/jungle/knife, +/obj/item/device/radio/headset/almayer/sof/survivor_forecon, +/obj/item/clothing/under/marine/standard, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -4192,12 +4203,12 @@ }, /area/golden_arrow/prep_hallway) "OU" = ( -/obj/structure/closet, -/obj/item/clothing/shoes/marine/jungle/knife, +/obj/structure/closet/secure_closet/marine_personal{ + job = "Squad Sergeant"; + has_cryo_gear = 0 + }, /obj/item/clothing/shoes/marine/jungle/knife, /obj/item/device/radio/headset/almayer/sof/survivor_forecon, -/obj/item/device/radio/headset/almayer/sof/survivor_forecon, -/obj/item/clothing/under/marine/standard, /obj/item/clothing/under/marine/standard, /turf/open/floor/almayer{ icon_state = "plate" @@ -4236,6 +4247,10 @@ "Pt" = ( /obj/structure/machinery/chem_dispenser, /obj/item/reagent_container/glass/beaker/bluespace, +/obj/item/storage/box/pillbottles{ + pixel_y = 18; + pixel_x = -5 + }, /turf/open/floor/almayer{ icon_state = "sterile_green" }, @@ -4273,6 +4288,18 @@ icon_state = "outerhull_dir" }, /area/space) +"PN" = ( +/obj/structure/closet/secure_closet/marine_personal{ + has_cryo_gear = 0; + job = "Radio Telephone Operator" + }, +/obj/item/clothing/shoes/marine/jungle/knife, +/obj/item/device/radio/headset/almayer/sof/survivor_forecon, +/obj/item/clothing/under/marine/standard, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/golden_arrow/dorms) "PY" = ( /obj/structure/machinery/light{ dir = 4; @@ -4510,8 +4537,13 @@ }, /area/golden_arrow/hangar) "SR" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/box/pillbottles, +/obj/structure/closet/secure_closet/marine_personal{ + job = "Platoon Corpsman"; + has_cryo_gear = 0 + }, +/obj/item/clothing/shoes/marine/jungle/knife, +/obj/item/device/radio/headset/almayer/sof/survivor_forecon, +/obj/item/clothing/under/marine/medic/standard, /turf/open/floor/almayer{ icon_state = "sterile_green" }, @@ -4717,13 +4749,7 @@ }, /area/golden_arrow/synthcloset) "VX" = ( -/obj/structure/closet, -/obj/item/clothing/shoes/marine/jungle/knife, -/obj/item/clothing/shoes/marine/jungle/knife, -/obj/item/device/radio/headset/almayer/sof/survivor_forecon, -/obj/item/device/radio/headset/almayer/sof/survivor_forecon, -/obj/item/clothing/under/marine/standard, -/obj/item/clothing/under/marine/standard, +/obj/structure/largecrate/random/case/small, /turf/open/floor/almayer, /area/golden_arrow/dorms) "Wf" = ( @@ -18341,7 +18367,7 @@ DM qs oR Nc -VX +PN Ap Ey OU