Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
KoishiVibe committed Mar 19, 2024
2 parents 9d80933 + 6933acc commit 202b037
Show file tree
Hide file tree
Showing 30 changed files with 752 additions and 221 deletions.
2 changes: 1 addition & 1 deletion code/__HELPERS/unsorted.dm
Original file line number Diff line number Diff line change
Expand Up @@ -318,7 +318,7 @@
var/obj/item/card/id/ID = A
if(ID.registered_name == oldname)
ID.registered_name = newname
ID.name = "[newname]'s ID Card ([ID.assignment])"
ID.name = "[newname]'s [ID.card_name] ([ID.assignment])"
if(!search_pda) break
search_id = 0
return 1
Expand Down
6 changes: 3 additions & 3 deletions code/game/jobs/job/marine/squads.dm
Original file line number Diff line number Diff line change
Expand Up @@ -360,7 +360,7 @@
continue

marine_card.assignment = "[new_name] [marine.job]"
marine_card.name = "[marine_card.registered_name]'s ID Card ([marine_card.assignment])"
marine_card.name = "[marine_card.registered_name]'s [marine_card.card_name] ([marine_card.assignment])"

/datum/squad/proc/setup_supply_drop_list()
SIGNAL_HANDLER
Expand Down Expand Up @@ -607,7 +607,7 @@

if(paygrade)
C.paygrade = paygrade
C.name = "[C.registered_name]'s ID Card ([C.assignment])"
C.name = "[C.registered_name]'s [C.card_name] ([C.assignment])"

var/obj/item/device/radio/headset/almayer/marine/headset = locate() in list(M.wear_l_ear, M.wear_r_ear)
if(headset && radio_freq)
Expand All @@ -629,7 +629,7 @@

C.access -= src.access
C.assignment = M.assigned_equipment_preset.assignment
C.name = "[C.registered_name]'s ID Card ([C.assignment])"
C.name = "[C.registered_name]'s [C.card_name] ([C.assignment])"

forget_marine_in_squad(M)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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),

Expand Down Expand Up @@ -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),

Expand Down Expand Up @@ -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),

Expand Down
13 changes: 8 additions & 5 deletions code/game/objects/items/cards_ids.dm
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@
/// actual job
var/rank = null
/// Marine's paygrade
var/paygrade = "ME1"
var/paygrade = "C"
/// For medics and engineers to 'claim' a locker
var/claimedgear = 1

Expand All @@ -92,6 +92,8 @@

var/modification_log = list()

var/card_name = "ID Card"

/obj/item/card/id/Initialize(mapload, ...)
. = ..()

Expand Down Expand Up @@ -132,7 +134,7 @@

/obj/item/card/id/proc/set_assignment(new_assignment)
assignment = new_assignment
name = "[registered_name]'s ID Card ([assignment])"
name = "[registered_name]'s [card_name] ([assignment])"

/obj/item/card/id/GetAccess()
return access
Expand Down Expand Up @@ -279,7 +281,7 @@
else
registered_name = "Agent Card"
assignment = "Agent"
name = "[registered_name]'s ID Card ([assignment])"
name = "[registered_name]'s [card_name] ([assignment])"

/obj/item/card/id/syndicate/afterattack(obj/item/O as obj, mob/user as mob, proximity)
if(!proximity) return
Expand All @@ -304,7 +306,7 @@
src.registered_name = ""
return
src.assignment = u
src.name = "[src.registered_name]'s ID Card ([src.assignment])"
src.name = "[src.registered_name]'s [card_name] ([src.assignment])"
to_chat(user, SPAN_NOTICE(" You successfully forge the ID card."))
registered_user = user
else if(!registered_user || registered_user == user)
Expand All @@ -324,7 +326,7 @@
alert("Invalid assignment.")
return
src.assignment = u
src.name = "[src.registered_name]'s ID Card ([src.assignment])"
src.name = "[src.registered_name]'s [card_name] ([src.assignment])"
to_chat(user, SPAN_NOTICE(" You successfully forge the ID card."))
return
if("Show")
Expand Down Expand Up @@ -387,6 +389,7 @@
item_state = "dogtag"
pinned_on_uniform = FALSE
var/dogtag_taken = FALSE
card_name = "dog tags"


/obj/item/card/id/dogtag/get_examine_text(mob/user)
Expand Down
6 changes: 6 additions & 0 deletions code/game/objects/items/storage/belt.dm
Original file line number Diff line number Diff line change
Expand Up @@ -608,6 +608,9 @@
new /obj/item/ammo_magazine/smartgun(src)
new /obj/item/ammo_magazine/smartgun(src)

/obj/item/storage/belt/marine/smartgunner/standard
has_gamemode_skin = FALSE

/obj/item/storage/belt/marine/quackers
name = "Mr. Quackers"
desc = "What are we going to do today, Mr. Quackers?"
Expand Down Expand Up @@ -1640,6 +1643,9 @@
)
has_gamemode_skin = TRUE

/obj/item/storage/belt/gun/smartgunner/standard
has_gamemode_skin = FALSE

/obj/item/storage/belt/gun/smartgunner/full/fill_preset_inventory()
handle_item_insertion(new /obj/item/weapon/gun/pistol/m4a3())
new /obj/item/ammo_magazine/pistol/hp(src)
Expand Down
43 changes: 24 additions & 19 deletions code/game/objects/structures/crates_lockers/closets.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand All @@ -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)
Expand All @@ -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)
Expand Down Expand Up @@ -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))
Expand Down Expand Up @@ -369,5 +374,5 @@

/obj/structure/closet/proc/break_open()
if(!opened)
welded = 0
welded = FALSE
open()
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -146,6 +146,23 @@
new /obj/item/storage/belt/marine/smartgunner(src)
new /obj/item/storage/belt/gun/smartgunner(src)

/obj/structure/closet/secure_closet/smartgunner_forecon
name = "smartgunner locker"
desc = "A secure storage unit for a smartgunner."
req_one_access = list(ACCESS_MARINE_LEADER, ACCESS_MARINE_SMARTPREP)

/obj/structure/closet/secure_closet/smartgunner_forecon/Initialize()
. = ..()
new /obj/item/weapon/gun/smartgun(src)
new /obj/item/smartgun_battery(src)
new /obj/item/clothing/suit/storage/marine/smartgunner/standard(src)
new /obj/item/ammo_magazine/smartgun(src)
new /obj/item/ammo_magazine/smartgun(src)
new /obj/item/ammo_magazine/smartgun(src)
new /obj/item/ammo_magazine/smartgun(src)
new /obj/item/storage/belt/marine/smartgunner/standard(src)
new /obj/item/storage/belt/gun/smartgunner/standard(src)

/obj/structure/closet/cryo/Initialize()
. = ..()
new /obj/item/clothing/under/marine(src)
Expand Down
Original file line number Diff line number Diff line change
@@ -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)
6 changes: 6 additions & 0 deletions code/game/objects/structures/watercloset.dm
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,8 @@
var/mobpresent = 0 //true if there is a mob on the shower's loc, this is to ease process()
var/is_washing = 0

COOLDOWN_DECLARE(last_sound)

/obj/structure/machinery/shower/Initialize()
. = ..()
create_reagents(2)
Expand Down Expand Up @@ -379,6 +381,10 @@

/obj/structure/machinery/shower/process()
if(!on) return

if(COOLDOWN_FINISHED(src, last_sound))
COOLDOWN_START(src, last_sound, 8 SECONDS)
playsound(src, "gurgle", 25, FALSE)
wash_floor()
if(!mobpresent) return
for(var/mob/living/carbon/C in loc)
Expand Down
2 changes: 2 additions & 0 deletions code/game/sound.dm
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,8 @@
S = pick('sound/effects/thud1.ogg','sound/effects/thud2.ogg','sound/effects/thud3.ogg')
if("paper_writing")
S = pick('sound/items/writing_noises/paper_writing_1.wav', 'sound/items/writing_noises/paper_writing_2.wav', 'sound/items/writing_noises/paper_writing_3.wav', 'sound/items/writing_noises/paper_writing_4.ogg')
if("gurgle")
S = pick('sound/effects/gurgle1.ogg', 'sound/effects/gurgle2.ogg', 'sound/effects/gurgle3.ogg', 'sound/effects/gurgle4.ogg')
// Weapons/bullets
if("shell_load")
S = pick('sound/weapons/shell_load1.ogg','sound/weapons/shell_load2.ogg','sound/weapons/shell_load3.ogg','sound/weapons/shell_load4.ogg')
Expand Down
1 change: 1 addition & 0 deletions code/modules/admin/game_master/game_master.dm
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ GLOBAL_VAR_INIT(radio_communication_clarity, 100)
var/list/submenu_types = list(
/obj/structure/pipes/vents = /datum/game_master_submenu/ambush/vents,
/obj/structure/tunnel = /datum/game_master_submenu/ambush/tunnels,
/mob/living/carbon/human = /datum/game_master_submenu/infest,
)

/// List of current submenus
Expand Down
Loading

0 comments on commit 202b037

Please sign in to comment.