Total Autodrobe Removal + Spawn locker buffs (#13724)

This commit is contained in:
WickedCybs
2022-05-06 13:57:00 +02:00
committed by GitHub
parent 87df296300
commit d29784f6aa
24 changed files with 75 additions and 187 deletions
-1
View File
@@ -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"
+14 -22
View File
@@ -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, "<b>As [job.intro_prefix] [alt_title ? alt_title : rank] you answer directly to [job.supervisors]. Special circumstances may change this.</b>")
//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, "<span class='warning'>You come to the sudden realization that you never left the Aurora at all! You were in cryo the whole time!</span>")
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, "<span class='notice'>Equipping you with [thing]!</span>")
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, "<span class='notice'>Equipping you with [thing]!</span>")
used_slots += G.slot
CI.autodrobe_no_remove = TRUE
Debug("ECD/([H]): Equipped [thing] successfully.")
else
+3 -10
View File
@@ -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
-2
View File
@@ -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("<B>Radio Freq:</B> [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("<B>Uplink Passcode:</B> [pda_pass] ([R.name] [loc]).")
-102
View File
@@ -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!'")
-1
View File
@@ -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
@@ -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)
@@ -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.")
@@ -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("<b>Your workplace attire is waiting for you at the nearest autodrobe vendor.</b>"))
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("<b>Your workplace attire is waiting for you at the nearest autodrobe vendor.</b>"))
return
@@ -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)
@@ -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)
@@ -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)
@@ -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
-1
View File
@@ -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
+43
View File
@@ -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."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 99 KiB

+2 -6
View File
@@ -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
-2
View File
@@ -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" = (
+2 -1
View File
@@ -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" = (
@@ -4168,7 +4168,6 @@
},
/area/centcom/specops)
"aBL" = (
/obj/machinery/megavendor,
/turf/unsimulated/floor,
/area/centcom/spawning)
"aBO" = (
@@ -16301,7 +16301,6 @@
},
/area/centcom/spawning)
"aNb" = (
/obj/machinery/megavendor,
/turf/unsimulated/floor{
name = "plating"
},
+2 -3
View File
@@ -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
},
+4 -2
View File
@@ -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)
@@ -15829,7 +15829,6 @@
/turf/unsimulated/floor/plating,
/area/centcom/spawning)
"aMo" = (
/obj/machinery/megavendor,
/turf/unsimulated/floor,
/area/centcom/spawning)
"aMp" = (