From d29784f6aa9f5360d875266c4eaa2d3bbe4b392e Mon Sep 17 00:00:00 2001
From: WickedCybs <52309324+WickedCybs@users.noreply.github.com>
Date: Fri, 6 May 2022 05:57:00 -0600
Subject: [PATCH] Total Autodrobe Removal + Spawn locker buffs (#13724)
---
aurorastation.dme | 1 -
code/controllers/subsystems/job.dm | 36 +++----
code/datums/outfits/outfit.dm | 13 +--
code/game/antagonist/station/traitor.dm | 2 -
code/game/machinery/megavend.dm | 102 ------------------
code/game/objects/items.dm | 1 -
.../objects/items/weapons/storage/boxes.dm | 20 +---
.../objects/items/weapons/vaurca_items.dm | 1 -
.../modules/client/preferences_spawnpoints.dm | 2 -
.../modules/ghostroles/spawner/human/human.dm | 1 -
.../human/species/station/tajara/tajara.dm | 3 +-
.../human/species/station/unathi/unathi.dm | 3 +-
.../human/species/station/vaurca/vaurca.dm | 6 +-
code/modules/mob/mob_defines.dm | 1 -
html/changelogs/wickedcybs_nodrobe.yml | 43 ++++++++
icons/obj/stationobjs.dmi | Bin 102408 -> 101574 bytes
maps/aurora/aurora-1_centcomm.dmm | 8 +-
maps/aurora/aurora-4_mainlevel.dmm | 2 -
maps/aurora/aurora-6_surface.dmm | 3 +-
maps/event/odin_departure/odin_depature-1.dmm | 1 -
.../backup/placeholder-4_centcomm.dmm | 1 -
maps/sccv_horizon/sccv_horizon-2_deck_2.dmm | 5 +-
maps/sccv_horizon/sccv_horizon-3_deck_3.dmm | 6 +-
maps/sccv_horizon/sccv_horizon-4_centcomm.dmm | 1 -
24 files changed, 75 insertions(+), 187 deletions(-)
delete mode 100644 code/game/machinery/megavend.dm
create mode 100644 html/changelogs/wickedcybs_nodrobe.yml
diff --git a/aurorastation.dme b/aurorastation.dme
index 12f285cbfc3..cb5dbb5c2ce 100644
--- a/aurorastation.dme
+++ b/aurorastation.dme
@@ -734,7 +734,6 @@
#include "code\game\machinery\mass_driver.dm"
#include "code\game\machinery\mech_recharger.dm"
#include "code\game\machinery\mecha_fabricator.dm"
-#include "code\game\machinery\megavend.dm"
#include "code\game\machinery\navbeacon.dm"
#include "code\game\machinery\newscaster.dm"
#include "code\game\machinery\nuclear_bomb.dm"
diff --git a/code/controllers/subsystems/job.dm b/code/controllers/subsystems/job.dm
index fa14511684e..3d685e7f4cd 100644
--- a/code/controllers/subsystems/job.dm
+++ b/code/controllers/subsystems/job.dm
@@ -305,11 +305,11 @@
unassigned -= player
return TRUE
-/datum/controller/subsystem/jobs/proc/EquipRank(mob/living/carbon/human/H, rank, joined_late = FALSE, megavend = FALSE)
+/datum/controller/subsystem/jobs/proc/EquipRank(mob/living/carbon/human/H, rank, joined_late = FALSE)
if(!H)
return null
- Debug("ER/([H]): Entry, joined_late=[joined_late],megavend=[megavend].")
+ Debug("ER/([H]): Entry, joined_late=[joined_late].")
if(SSatlas.current_sector.description)
to_chat(H, SSatlas.current_sector.get_chat_description())
@@ -326,18 +326,16 @@
var/list/custom_equip_slots = list() //If more than one item takes the same slot, all after the first one spawn in storage.
var/list/custom_equip_leftovers = list()
//Equip job items.
- if(!megavend) //Equip custom gear loadout.
- Debug("ER/([H]): Equipping custom loadout.")
- job.pre_equip(H)
- job.setup_account(H)
+ Debug("ER/([H]): Equipping custom loadout.")
+ job.pre_equip(H)
+ job.setup_account(H)
- EquipCustom(H, job, H.client.prefs, custom_equip_leftovers, spawn_in_storage, custom_equip_slots)
+ EquipCustom(H, job, H.client.prefs, custom_equip_leftovers, spawn_in_storage, custom_equip_slots)
job.equip(H)
UniformReturn(H, H.client.prefs, job)
- if (!megavend)
- spawn_in_storage += EquipCustomDeferred(H, H.client.prefs, custom_equip_leftovers, custom_equip_slots)
+ spawn_in_storage += EquipCustomDeferred(H, H.client.prefs, custom_equip_leftovers, custom_equip_slots)
else
to_chat(H,"Your job is [rank] and the game just can't handle it! Please report this bug to an administrator.")
@@ -381,10 +379,10 @@
return H
//Deferred item spawning.
- if(!megavend && LAZYLEN(spawn_in_storage))
+ if(LAZYLEN(spawn_in_storage))
EquipItemsStorage(H, H.client.prefs, spawn_in_storage)
- if(istype(H) && !megavend) //give humans wheelchairs, if they need them.
+ if(istype(H)) //give humans wheelchairs, if they need them.
if(H.needs_wheelchair())
H.equip_wheelchair()
@@ -394,7 +392,7 @@
to_chat(H, "As [job.intro_prefix] [alt_title ? alt_title : rank] you answer directly to [job.supervisors]. Special circumstances may change this.")
//Gives glasses to the vision impaired
- if(H.disabilities & NEARSIGHTED && !megavend)
+ if(H.disabilities & NEARSIGHTED)
var/equipped = H.equip_to_slot_or_del(new /obj/item/clothing/glasses/regular(H), slot_glasses)
if(equipped != 1)
var/obj/item/clothing/glasses/G = H.glasses
@@ -423,7 +421,6 @@
break
Debug("ER/([H]): Completed.")
- H.megavend = 1
return H
/mob/living/carbon/human
@@ -450,10 +447,8 @@
to_chat(src, "You come to the sudden realization that you never left the Aurora at all! You were in cryo the whole time!")
src.forceMove(pick(spawnpos.turfs))
global_announcer.autosay("[real_name], [mind.role_alt_title], [spawnpos.msg].", "Cryogenic Oversight")
- if(!src.megavend)
- var/rank= src.mind.assigned_role
- SSjobs.EquipRank(src, rank, 1, megavend = TRUE)
- src.megavend = TRUE
+ var/rank= src.mind.assigned_role
+ SSjobs.EquipRank(src, rank, 1)
else
SSjobs.centcomm_despawn_mob(src) //somehow they can't spawn at cryo, so this is the only recourse of action.
@@ -500,7 +495,7 @@
Debug("EP/([H]): Abort, H is AI.")
return EquipRank(H, rank, 1)
- if(!current_map.command_spawn_enabled || spawning_at != "Arrivals Shuttle" && spawning_at != "Cryogenic Storage" && spawning_at != "Living Quarters Lift")
+ if(!current_map.command_spawn_enabled || spawning_at != "Arrivals Shuttle")
return EquipRank(H, rank, 1)
if("Arrivals Shuttle" in current_map.allowed_spawns)
@@ -510,7 +505,7 @@
H.job = rank
- if(spawning_at != "Arrivals Shuttle" && spawning_at != "Cryogenic Storage" && spawning_at != "Living Quarters Lift" || job.latejoin_at_spawnpoints)
+ if(spawning_at != "Arrivals Shuttle" || job.latejoin_at_spawnpoints)
return EquipRank(H, rank, 1)
var/list/spawn_in_storage = list()
@@ -549,7 +544,6 @@
if(equipped != 1)
var/obj/item/clothing/glasses/G = H.glasses
G.prescription = 7
- G.autodrobe_no_remove = TRUE
if(H.species && !H.species_items_equipped)
H.species.equip_later_gear(H)
@@ -790,7 +784,6 @@
leftovers += thing
Debug("EC/([H]): [thing] failed mask/suit/head check; leftovers=[!!leftovers]")
else if (H.equip_to_slot_or_del(CI, G.slot))
- CI.autodrobe_no_remove = TRUE
to_chat(H, "Equipping you with [thing]!")
if(G.slot != slot_tie)
custom_equip_slots += G.slot
@@ -827,7 +820,6 @@
if (H.equip_to_slot_or_del(CI, G.slot))
to_chat(H, "Equipping you with [thing]!")
used_slots += G.slot
- CI.autodrobe_no_remove = TRUE
Debug("ECD/([H]): Equipped [thing] successfully.")
else
diff --git a/code/datums/outfits/outfit.dm b/code/datums/outfits/outfit.dm
index 243adf19e26..6c99677251b 100644
--- a/code/datums/outfits/outfit.dm
+++ b/code/datums/outfits/outfit.dm
@@ -167,10 +167,6 @@
else
equip_item(H, back, slot_back)
- if(istype(H.back,/obj/item/storage/backpack))
- var/obj/item/storage/backpack/B = H.back
- B.autodrobe_no_remove = TRUE
-
if(allow_headset_choice)
switch(H.headset_choice)
if (OUTFIT_NOTHING)
@@ -185,15 +181,15 @@
else
l_ear = headset //Department headset
if(l_ear)
- equip_item(H, l_ear, slot_l_ear, TRUE)
+ equip_item(H, l_ear, slot_l_ear)
else if (wrist)
- equip_item(H, wrist, slot_wrists, TRUE)
+ equip_item(H, wrist, slot_wrists)
return
// Used to equip an item to the mob. Mainly to prevent copypasta for collect_not_del.
//override_collect temporarily allows equip_or_collect without enabling it for the job. Mostly used to prevent weirdness with hand equips when the player is missing one
-/datum/outfit/proc/equip_item(mob/living/carbon/human/H, path, slot, var/set_no_remove = FALSE, var/override_collect = FALSE)
+/datum/outfit/proc/equip_item(mob/living/carbon/human/H, path, slot, var/override_collect = FALSE)
var/obj/item/I
if(isnum(path)) //Check if parameter is not numeric. Must be a path, list of paths or name of a gear datum
@@ -208,9 +204,6 @@
else
I = new path(H) //As fallback treat it as a path
- if(set_no_remove)
- I.autodrobe_no_remove = TRUE
-
if(collect_not_del || override_collect)
H.equip_or_collect(I, slot)
else
diff --git a/code/game/antagonist/station/traitor.dm b/code/game/antagonist/station/traitor.dm
index d419139b645..e861a818e59 100644
--- a/code/game/antagonist/station/traitor.dm
+++ b/code/game/antagonist/station/traitor.dm
@@ -160,7 +160,6 @@ var/datum/antagonist/traitor/traitors
var/obj/item/device/uplink/hidden/T = new(R, traitor_mob.mind)
target_radio.hidden_uplink = T
target_radio.traitor_frequency = freq
- R.autodrobe_no_remove = TRUE
to_chat(traitor_mob, "A portable object teleportation relay has been installed in your [R.name] [loc]. Simply dial the frequency [format_frequency(freq)] to unlock its hidden features.")
traitor_mob.mind.store_memory("Radio Freq: [format_frequency(freq)] ([R.name] [loc]).")
@@ -170,7 +169,6 @@ var/datum/antagonist/traitor/traitors
var/obj/item/device/uplink/hidden/T = new(R, traitor_mob.mind)
R.hidden_uplink = T
T.pda_code = pda_pass
- R.autodrobe_no_remove = TRUE
to_chat(traitor_mob, "A portable object teleportation relay has been installed in your [R.name] [loc]. Simply enter the code \"[pda_pass]\" into the ringtone select to unlock its hidden features.")
traitor_mob.mind.store_memory("Uplink Passcode: [pda_pass] ([R.name] [loc]).")
diff --git a/code/game/machinery/megavend.dm b/code/game/machinery/megavend.dm
deleted file mode 100644
index c753ebffc9f..00000000000
--- a/code/game/machinery/megavend.dm
+++ /dev/null
@@ -1,102 +0,0 @@
-
-/obj/machinery/megavendor
- name = "\improper AutoDrobe"
- desc = "NanoTrasen science proudly brings to you the wardrobe of the future! No more hassle in getting dressed! Order one today!"
- icon = 'icons/obj/stationobjs.dmi'
- icon_state = "tele0"
- layer = 2.9
- anchored = 1
- density = 0
- use_power = 0
- var/selectedrank
- var/last_reply = 0
- var/last_slogan = 0 //When did we last pitch?
- var/slogan_delay = 6000 //How long until we can pitch again?
- var/change_message = "You feel a pleasant breeze as the autolocker whisks away all of your clothes, packing them neatly in a box."
-
- // Stuff relating vocalizations
- var/list/slogan_list = list("Don't deploy just yet! Grab your gear!","Forgetting something?","Don't hop on in your skivvies, mate!","It's not Casual Friday, y'know?","Heaven's above, put some clothes on!")
- var/shut_up = FALSE //Stop spouting those godawful pitches!
-
-/obj/machinery/megavendor/machinery_process()
- if(((src.last_slogan + src.slogan_delay) <= world.time) && (src.slogan_list.len > 0) && (!src.shut_up) && prob(5))
- var/slogan = pick(src.slogan_list)
- src.ping(slogan)
- src.last_slogan = world.time
-
-/obj/machinery/megavendor/Crossed(O)
- if(istype(O,/mob/living/carbon/human))
- var/mob/living/carbon/human/H = O
- if(!H.megavend)
- flick("telefast",src)
- playsound(src,'sound/effects/sparks4.ogg',50,1)
- megavend(H)
-
-/obj/machinery/megavendor/proc/megavend(var/mob/living/carbon/human/H)
- if(H.megavend)
- return
-
- var/obj/item/storage/box/gearbox = new(null, TRUE)
- var/list/AC
- var/obj/BE
- LAZYINITLIST(AC)
- gearbox.name = "personal possessions box"
- gearbox.desc = "All of the personal effects of [H.real_name], packaged neatly by the AutoDrobe."
-
- if(H.belt)
- BE = H.belt
- for(var/obj/item/W in H.contents) //Strip 'em
- if(istype(W,/obj/item/organ))
- continue
- if(W.autodrobe_no_remove)
- continue
- if(!W.canremove)
- continue
-
- if(isclothing(W))
- var/obj/item/clothing/U = W
- for(var/obj/item/clothing/accessory/A in U.accessories)
- U.remove_accessory(H, A)
- LAZYADD(AC, A)
- H.drop_from_inventory(W,gearbox)
-
- to_chat(H, SPAN_NOTICE(change_message))
-
- SSjobs.EquipRank(H, H.job, 1, 1) //Equip 'em
-
- //Give them the box
- if(istype(H.back,/obj/item/storage/backpack))
- var/obj/item/storage/backpack/B = H.back
- if(!B.insert_into_storage(gearbox))
- H.put_in_any_hand_if_possible(gearbox)
- else
- H.put_in_any_hand_if_possible(gearbox)
-
- for(var/obj/item/clothing/accessory/A as anything in AC)
- H.remove_from_mob(A)
- H.equip_to_slot(A, slot_tie, FALSE)
- LAZYREMOVE(AC, A)
- if(BE)
- H.equip_to_slot_if_possible(BE, slot_belt, disable_warning = TRUE)
- return
-
-/obj/machinery/megavendor/vendor
- name = "\improper AutoDrobe Vendor"
- desc = "A NanoTrasen AutoDrobe machine to help through the trouble of getting dressed for work in the spur of a moment!"
- icon_state = "clothing"
- shut_up = TRUE
- density = 1
- change_message = "The autolocker issues your equipment and you quickly get changed."
-
-/obj/machinery/megavendor/vendor/Crossed(O)
- return
-
-/obj/machinery/megavendor/vendor/attack_hand(mob/user)
- ..()
- if(ishuman(user) && Adjacent(user))
- var/mob/living/carbon/human/H = user
- if(!H.megavend)
- playsound(src,'sound/effects/sparks4.ogg',50,1)
- megavend(H)
- else
- to_chat(user, "\The [src]'s screen lights up a brief message: 'Equipment already claimed. Have a nice day!'")
\ No newline at end of file
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 350744fd977..8c87920d706 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -16,7 +16,6 @@
var/no_attack_log = 0 //If it's an item we don't want to log attack_logs with, set this to 1
pass_flags = PASSTABLE
var/obj/item/master
- var/autodrobe_no_remove = 0
var/heat_protection = 0 //flags which determine which body parts are protected from heat. Use the HEAD, UPPER_TORSO, LOWER_TORSO, etc. flags. See setup.dm
var/cold_protection = 0 //flags which determine which body parts are protected from cold. Use the HEAD, UPPER_TORSO, LOWER_TORSO, etc. flags. See setup.dm
diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm
index 5a431bd5f80..7ac5178b30e 100644
--- a/code/game/objects/items/weapons/storage/boxes.dm
+++ b/code/game/objects/items/weapons/storage/boxes.dm
@@ -126,7 +126,6 @@
name = "emergency survival box"
desc = "A faithful box that will remain with you, no matter where you go, and probably save you."
icon_state = "e_box"
- autodrobe_no_remove = 1
max_storage_space = 14
can_hold = list(
/obj/item/clothing/mask,
@@ -155,29 +154,12 @@
/obj/item/reagent_containers/hypospray/autoinjector/inaprovaline = 1
)
-/obj/item/storage/box/survival/fill()
- ..()
- for(var/obj/item/thing in contents)
- thing.autodrobe_no_remove = 1
-
/obj/item/storage/box/engineer
- autodrobe_no_remove = 1
starts_with = list(/obj/item/clothing/mask/breath = 1, /obj/item/tank/emergency_oxygen/engi = 1)
-/obj/item/storage/box/engineer/fill()
- ..()
- for(var/obj/item/thing in contents)
- thing.autodrobe_no_remove = 1
-
/obj/item/storage/box/vaurca
- autodrobe_no_remove = 1
starts_with = list(/obj/item/clothing/mask/breath = 1, /obj/item/reagent_containers/inhaler/phoron_special = 1)
-/obj/item/storage/box/vaurca/fill()
- ..()
- for(var/obj/item/thing in contents)
- thing.autodrobe_no_remove = 1
-
/obj/item/storage/box/gloves
name = "box of sterile gloves"
desc = "Contains sterile gloves."
@@ -991,7 +973,7 @@
if(choice == "SmileyFace")
var/obj/item/clothing/head/papersack/smiley/S = new()
user.put_in_hands(S)
- else
+ else
var/obj/item/clothing/head/papersack/PS = new()
user.put_in_hands(PS)
qdel(src)
diff --git a/code/game/objects/items/weapons/vaurca_items.dm b/code/game/objects/items/weapons/vaurca_items.dm
index 34c95d38bde..5d6f656d454 100644
--- a/code/game/objects/items/weapons/vaurca_items.dm
+++ b/code/game/objects/items/weapons/vaurca_items.dm
@@ -8,7 +8,6 @@
icon_state = "m_garment"
item_state = "m_garment"
contained_sprite = 1
- autodrobe_no_remove = TRUE
/obj/item/clothing/mask/breath/vaurca/adjust_mask(mob/user)
to_chat(user, "This mask is too tight to adjust.")
diff --git a/code/modules/client/preferences_spawnpoints.dm b/code/modules/client/preferences_spawnpoints.dm
index 70431f01cd5..8c22d112f0b 100644
--- a/code/modules/client/preferences_spawnpoints.dm
+++ b/code/modules/client/preferences_spawnpoints.dm
@@ -47,7 +47,6 @@
C.set_occupant(victim, 1)
victim.Sleeping(3)
to_chat(victim, SPAN_NOTICE("You are slowly waking up from the cryostasis aboard [current_map.full_name]. It might take a few seconds."))
- to_chat(victim, FONT_LARGE("Your workplace attire is waiting for you at the nearest autodrobe vendor."))
return
/datum/spawnpoint/cyborg
@@ -76,5 +75,4 @@
if(!C.occupant)
C.set_occupant(victim, 1)
to_chat(victim, SPAN_NOTICE("You have arrived from the living quarters aboard the [current_map.full_name]."))
- to_chat(victim, FONT_LARGE("Your workplace attire is waiting for you at the nearest autodrobe vendor."))
return
diff --git a/code/modules/ghostroles/spawner/human/human.dm b/code/modules/ghostroles/spawner/human/human.dm
index ff8689217b8..21bc647ddca 100644
--- a/code/modules/ghostroles/spawner/human/human.dm
+++ b/code/modules/ghostroles/spawner/human/human.dm
@@ -105,7 +105,6 @@
//Move the mob
M.forceMove(T)
M.lastarea = get_area(M.loc) //So gravity doesnt fuck them.
- M.megavend = TRUE //So the autodrobe ignores them
//Setup the appearance
if(allow_appearance_change)
diff --git a/code/modules/mob/living/carbon/human/species/station/tajara/tajara.dm b/code/modules/mob/living/carbon/human/species/station/tajara/tajara.dm
index b514fc5a8ce..ea5cd1a3be1 100644
--- a/code/modules/mob/living/carbon/human/species/station/tajara/tajara.dm
+++ b/code/modules/mob/living/carbon/human/species/station/tajara/tajara.dm
@@ -127,5 +127,4 @@
if(H.shoes)
return
var/obj/item/clothing/shoes/sandal/S = new /obj/item/clothing/shoes/sandal(H)
- if(H.equip_to_slot_or_del(S,slot_shoes))
- S.autodrobe_no_remove = TRUE
+ H.equip_to_slot_or_del(S,slot_shoes)
diff --git a/code/modules/mob/living/carbon/human/species/station/unathi/unathi.dm b/code/modules/mob/living/carbon/human/species/station/unathi/unathi.dm
index 68a05ecca3d..9b58ccb4daf 100644
--- a/code/modules/mob/living/carbon/human/species/station/unathi/unathi.dm
+++ b/code/modules/mob/living/carbon/human/species/station/unathi/unathi.dm
@@ -138,5 +138,4 @@
if(H.shoes)
return
var/obj/item/clothing/shoes/sandal/S = new /obj/item/clothing/shoes/sandal(H)
- if(H.equip_to_slot_or_del(S,slot_shoes))
- S.autodrobe_no_remove = TRUE
+ H.equip_to_slot_or_del(S,slot_shoes)
diff --git a/code/modules/mob/living/carbon/human/species/station/vaurca/vaurca.dm b/code/modules/mob/living/carbon/human/species/station/vaurca/vaurca.dm
index 118de901ecc..8cd7c6992ea 100644
--- a/code/modules/mob/living/carbon/human/species/station/vaurca/vaurca.dm
+++ b/code/modules/mob/living/carbon/human/species/station/vaurca/vaurca.dm
@@ -142,15 +142,13 @@
. = ..()
H.gender = NEUTER
var/obj/item/clothing/mask/breath/vaurca/filter/M = new /obj/item/clothing/mask/breath/vaurca/filter(H)
- if(H.equip_to_slot_or_del(M, slot_wear_mask))
- M.autodrobe_no_remove = 1
+ H.equip_to_slot_or_del(M, slot_wear_mask)
/datum/species/bug/after_equip(var/mob/living/carbon/human/H)
if(H.shoes)
return
var/obj/item/clothing/shoes/sandal/S = new /obj/item/clothing/shoes/sandal(H)
- if(H.equip_to_slot_or_del(S,slot_shoes))
- S.autodrobe_no_remove = 1
+ H.equip_to_slot_or_del(S,slot_shoes)
/datum/species/bug/handle_post_spawn(var/mob/living/carbon/human/H)
H.gender = NEUTER
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index 2cdd550d9e1..1d5b7144554 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -162,7 +162,6 @@
var/inertia_dir = 0
var/job = null//Living
- var/megavend = 0 //determines if this ID has claimed their megavend stache
var/const/blindness = 1//Carbon
var/const/deafness = 2//Carbon
diff --git a/html/changelogs/wickedcybs_nodrobe.yml b/html/changelogs/wickedcybs_nodrobe.yml
new file mode 100644
index 00000000000..4036e4a14f7
--- /dev/null
+++ b/html/changelogs/wickedcybs_nodrobe.yml
@@ -0,0 +1,43 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscadd (general adding of nice things)
+# rscdel (general deleting of nice things)
+# imageadd
+# imagedel
+# maptweak
+# spellcheck (typo fixes)
+# experiment
+# balance
+# admin
+# backend
+# security
+# refactor
+#################################
+
+# Your name.
+author: Mikomyazaki, WickedCybs
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - rscdel: "Autodrobes and associated code have been removed from the game."
+ - maptweak: "The Horizon and Aurora autodrobes were removed."
+ - maptweak: "Buffs the emergency lockers that start at the lift room and cryo room on the Horizon. They each get one red toolbox with emergency gear and a crowbar."
diff --git a/icons/obj/stationobjs.dmi b/icons/obj/stationobjs.dmi
index 90b7ece92747d25913f52e012b67b462225d3e51..f09a40738d18321d7a323f4aeb5b3a82a6b39346 100644
GIT binary patch
delta 7042
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
delta 7975
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
diff --git a/maps/aurora/aurora-1_centcomm.dmm b/maps/aurora/aurora-1_centcomm.dmm
index f695b230f1e..43d4b5e5f99 100644
--- a/maps/aurora/aurora-1_centcomm.dmm
+++ b/maps/aurora/aurora-1_centcomm.dmm
@@ -4159,10 +4159,6 @@
icon_state = "dark2"
},
/area/centcom/specops)
-"aBL" = (
-/obj/machinery/megavendor,
-/turf/unsimulated/floor,
-/area/centcom/spawning)
"aBO" = (
/obj/structure/closet/secure_closet/guncabinet{
name = "CCIA Bodyguard Sidearm";
@@ -76467,7 +76463,7 @@ aKK
urj
gdU
aBl
-aBL
+aMW
aBl
weB
aOa
@@ -78009,7 +78005,7 @@ aKK
uVh
gdU
aBl
-aBL
+aMW
aBl
weB
aOa
diff --git a/maps/aurora/aurora-4_mainlevel.dmm b/maps/aurora/aurora-4_mainlevel.dmm
index 2ac044c0c83..7df7f58fb8e 100644
--- a/maps/aurora/aurora-4_mainlevel.dmm
+++ b/maps/aurora/aurora-4_mainlevel.dmm
@@ -31594,7 +31594,6 @@
/area/bridge)
"bcG" = (
/obj/machinery/firealarm/west,
-/obj/machinery/megavendor/vendor,
/turf/simulated/floor/carpet/blue,
/area/crew_quarters/heads/cryo)
"bcH" = (
@@ -71213,7 +71212,6 @@
/turf/simulated/floor/tiled/white,
/area/crew_quarters/kitchen)
"xUe" = (
-/obj/machinery/megavendor/vendor,
/turf/simulated/floor/tiled/white,
/area/crew_quarters/sleep/main)
"xVv" = (
diff --git a/maps/aurora/aurora-6_surface.dmm b/maps/aurora/aurora-6_surface.dmm
index 8b0e59c58da..f49a77313cb 100644
--- a/maps/aurora/aurora-6_surface.dmm
+++ b/maps/aurora/aurora-6_surface.dmm
@@ -21107,7 +21107,8 @@
pixel_x = 27
},
/obj/effect/floor_decal/corner/grey/diagonal,
-/obj/machinery/megavendor/vendor,
+/obj/structure/closet/emcloset,
+/obj/item/storage/toolbox/emergency,
/turf/simulated/floor/tiled/white,
/area/crew_quarters/sleep/cryo)
"seu" = (
diff --git a/maps/event/odin_departure/odin_depature-1.dmm b/maps/event/odin_departure/odin_depature-1.dmm
index 23b610ed928..c02fd50cbf6 100644
--- a/maps/event/odin_departure/odin_depature-1.dmm
+++ b/maps/event/odin_departure/odin_depature-1.dmm
@@ -4168,7 +4168,6 @@
},
/area/centcom/specops)
"aBL" = (
-/obj/machinery/megavendor,
/turf/unsimulated/floor,
/area/centcom/spawning)
"aBO" = (
diff --git a/maps/sccv_horizon/backup/placeholder-4_centcomm.dmm b/maps/sccv_horizon/backup/placeholder-4_centcomm.dmm
index 8417d5125ae..f100211253a 100644
--- a/maps/sccv_horizon/backup/placeholder-4_centcomm.dmm
+++ b/maps/sccv_horizon/backup/placeholder-4_centcomm.dmm
@@ -16301,7 +16301,6 @@
},
/area/centcom/spawning)
"aNb" = (
-/obj/machinery/megavendor,
/turf/unsimulated/floor{
name = "plating"
},
diff --git a/maps/sccv_horizon/sccv_horizon-2_deck_2.dmm b/maps/sccv_horizon/sccv_horizon-2_deck_2.dmm
index 04ac41b1cc3..add93739054 100644
--- a/maps/sccv_horizon/sccv_horizon-2_deck_2.dmm
+++ b/maps/sccv_horizon/sccv_horizon-2_deck_2.dmm
@@ -5939,6 +5939,7 @@
},
/obj/structure/cable/green,
/obj/structure/closet/emcloset,
+/obj/item/storage/toolbox/emergency,
/obj/item/crowbar/red,
/turf/simulated/floor/tiled/dark,
/area/crew_quarters/sleep/cryo/living_quarters_lift)
@@ -8242,6 +8243,7 @@
/obj/effect/floor_decal/corner/paleblue{
dir = 10
},
+/obj/item/storage/toolbox/emergency,
/obj/item/crowbar/red,
/turf/simulated/floor/tiled/dark,
/area/crew_quarters/sleep/cryo/living_quarters_lift)
@@ -25026,9 +25028,6 @@
/obj/effect/floor_decal/corner/paleblue/full{
dir = 1
},
-/obj/machinery/megavendor/vendor{
- pixel_y = 16
- },
/obj/machinery/disposal/small/west{
pixel_y = -6
},
diff --git a/maps/sccv_horizon/sccv_horizon-3_deck_3.dmm b/maps/sccv_horizon/sccv_horizon-3_deck_3.dmm
index 6392cdcdcbd..e8532bf922e 100644
--- a/maps/sccv_horizon/sccv_horizon-3_deck_3.dmm
+++ b/maps/sccv_horizon/sccv_horizon-3_deck_3.dmm
@@ -3767,7 +3767,9 @@
dir = 4;
pixel_x = -28
},
-/obj/machinery/megavendor/vendor,
+/obj/structure/closet/emcloset,
+/obj/item/crowbar/red,
+/obj/item/storage/toolbox/emergency,
/turf/simulated/floor/tiled/white,
/area/crew_quarters/sleep/cryo)
"is" = (
@@ -16462,7 +16464,7 @@
"Mb" = (
/obj/effect/floor_decal/corner/grey/diagonal,
/obj/structure/closet/emcloset,
-/obj/item/crowbar/red,
+/obj/item/storage/toolbox/emergency,
/obj/item/crowbar/red,
/turf/simulated/floor/tiled/white,
/area/crew_quarters/sleep/cryo)
diff --git a/maps/sccv_horizon/sccv_horizon-4_centcomm.dmm b/maps/sccv_horizon/sccv_horizon-4_centcomm.dmm
index c75e444cf67..4dc2be04294 100644
--- a/maps/sccv_horizon/sccv_horizon-4_centcomm.dmm
+++ b/maps/sccv_horizon/sccv_horizon-4_centcomm.dmm
@@ -15829,7 +15829,6 @@
/turf/unsimulated/floor/plating,
/area/centcom/spawning)
"aMo" = (
-/obj/machinery/megavendor,
/turf/unsimulated/floor,
/area/centcom/spawning)
"aMp" = (