Lifts and more (#2269)

Changes the main access lift into two seperate lifts. Should vastly decrease congestion.
Changes the AutoLocker into an AutoDrobe, a floor mounted pad that does what the autolocker did instantly. Should solve round-start confusion.
Fixes a handful of bugs.
Off-topicedly, pretty much doubles Vaurca starting phoron, adds more phoron to K'ois and K'ois byproducts while removing more K'ois from raw K'ois. Adds a moderately expensive K'ois bar to the snack vendors for until I can figure out how to code phoron suppositories.
This commit is contained in:
LordFowl
2017-05-15 18:52:39 +03:00
committed by skull132
parent 17654c608a
commit 20c1ca90b5
16 changed files with 591 additions and 497 deletions
-107
View File
@@ -1,107 +0,0 @@
// Using /area/shuttle for lifts as there are checks around the code that is useful for them
// Rather not repete code over twice
//
// Maybe change to ?
// /area/movable_zone/shuttle
// /area/movable_zone/lift
//
/area/shuttle/medical
station_area = 1
/area/shuttle/medical/main
name = "\improper Medical Lift Main Floor"
icon_state = "shuttle"
/area/shuttle/medical/lower
name = "\improper Medical Lift Lower Floor"
icon_state = "shuttle"
/area/shuttle/science
station_area = 1
/area/shuttle/science/main
name = "\improper Science Lift Main Floor"
icon_state = "shuttle"
/area/shuttle/science/lower
name = "\improper Science Lift Lower Floor"
icon_state = "shuttle"
/area/shuttle/engineering
station_area = 1
/area/shuttle/engineering/main
name = "\improper Engineering Lift Main Floor"
icon_state = "shuttle"
/area/shuttle/engineering/lower
name = "\improper Engineering Lift Lower Floor"
icon_state = "shuttle"
/area/shuttle/ai
station_area = 1
/area/shuttle/ai/main
name = "\improper AI Core Lift Main Floor"
icon_state = "shuttle"
/area/shuttle/ai/lower
name = "\improper AI Core Lift Lower Floor"
icon_state = "shuttle"
/area/shuttle/vault
station_area = 1
/area/shuttle/vault/main
name = "\improper Vault Lift Main Floor"
icon_state = "shuttle"
/area/shuttle/vault/lower
name = "\improper Vault Lift Lower Floor"
icon_state = "shuttle"
/area/shuttle/civilian
station_area = 1
/area/shuttle/civilian/main
name = "\improper Civilian Lift Main Floor"
icon_state = "shuttle"
/area/shuttle/civilian/transit
name = "\improper Civilian Lift Shaft"
icon_state = "shuttle"
/area/shuttle/civilian/upper
name = "\improper Civilian Lift Top Floor"
icon_state = "shuttle"
/area/shuttle/cargo
station_area = 1
/area/shuttle/cargo/main
name = "\improper Cargo Lift Main Floor"
icon_state = "shuttle"
/area/shuttle/cargo/transit
name = "\improper Cargo Lift Shaft"
icon_state = "shuttle"
/area/shuttle/cargo/upper
name = "\improper Cargo Lift Top Floor"
icon_state = "shuttle"
/area/shuttle/command
station_area = 1
/area/shuttle/command/main
name = "\improper Command Lift Main Floor"
icon_state = "shuttle"
/area/shuttle/command/transit
name = "\improper Command Lift Shaft"
icon_state = "shuttle"
/area/shuttle/command/upper
name = "\improper Command Lift Top Floor"
icon_state = "shuttle"
+3
View File
@@ -595,6 +595,9 @@ var/global/datum/controller/occupations/job_master
BITSET(H.hud_updateflag, ID_HUD)
BITSET(H.hud_updateflag, IMPLOYAL_HUD)
BITSET(H.hud_updateflag, SPECIALROLE_HUD)
H << "<b>Welcome to the Odin! Simply proceed down and to the right to board the shuttle to your workplace!</b>."
return H
+18 -199
View File
@@ -1,16 +1,13 @@
/obj/machinery/megavendor
name = "\improper NanoTrasen Auto-Locker"
desc = "This amazing machine is used to deploy the official equipment for your current employment."
icon = 'icons/obj/Cryogenic2.dmi'
icon_state = "clothes_scanner_0"
var/base_icon_state = "clothes_scanner_0"
var/occupied_icon_state = "clothes_scanner_1"
name = "\improper NanoTrasen 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 = 1
density = 0
use_power = 0
var/isvending = 0
var/selectedrank
var/last_reply = 0
var/last_slogan = 0 //When did we last pitch?
@@ -19,217 +16,39 @@
// 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 = 0 //Stop spouting those godawful pitches!
var/allow_occupant_types = list(/mob/living/carbon/human)
var/mob/occupant = null
var/on_enter_occupant_message = "The Auto-Locker's doors clang shut loudly, encasing you in darkness."
/obj/machinery/megavendor/proc/check_occupant_allowed(mob/M)
var/correct_type = 0
for(var/type in allow_occupant_types)
if(istype(M, type))
correct_type = 1
break
if(!correct_type) return 0
return 1
/obj/machinery/megavendor/attackby(var/obj/item/weapon/G as obj, var/mob/user as mob)
if(istype(G, /obj/item/weapon/grab))
if(occupant)
user << "<span class='notice'>\The [src] is in use.</span>"
return
if(!ismob(G:affecting))
return
if(!check_occupant_allowed(G:affecting))
return
var/mob/M = G:affecting
visible_message("[user] starts putting [G:affecting:name] into \the [name].", 3)
if(do_after(user, 20))
if(!M || !G || !G:affecting) return
M.forceMove(src)
if(M.client)
M.client.perspective = EYE_PERSPECTIVE
M.client.eye = src
icon_state = occupied_icon_state
M << "<span class='notice'>[on_enter_occupant_message]</span>"
set_occupant(M)
src.add_fingerprint(M)
/obj/machinery/megavendor/MouseDrop_T(atom/movable/O as mob|obj, mob/living/user as mob)
if(!istype(user))
return
if(!check_occupant_allowed(O))
return
if(occupant)
user << "<span class='notice'>\The [src] is in use.</span>"
return
var/mob/living/L = O
if(L == user)
visible_message("[user] starts climbing into \the [name].", 3)
else
visible_message("[user] starts putting [L] into \the [name].", 3)
if(do_after(user, 20))
if(!L) return
L.loc = src
if(L.client)
L.client.perspective = EYE_PERSPECTIVE
L.client.eye = src
else
user << "<span class='notice'>You stop [L == user ? "climbing into" : "putting [L] into"] \the [name].</span>"
return
icon_state = occupied_icon_state
L << "<span class='notice'>[on_enter_occupant_message]</span>"
occupant = L
src.add_fingerprint(L)
return
/obj/machinery/megavendor/verb/eject()
set name = "Eject Auto-Locker"
set category = "Object"
set src in oview(1)
if(usr.stat != 0)
return
if(isvending)
return
src.go_out()
add_fingerprint(usr)
return
/obj/machinery/megavendor/verb/move_inside()
set name = "Enter Auto-Locker"
set category = "Object"
set src in oview(1)
if(usr.stat != 0 || !check_occupant_allowed(usr))
return
if(src.occupant)
usr << "<span class='notice'><B>\The [src] is in use.</B></span>"
return
visible_message("[usr] starts climbing into \the [src].", 3)
if(do_after(usr, 20))
if(!usr || !usr.client)
return
if(src.occupant)
usr << "<span class='notice'><B>\The [src] is in use.</B></span>"
return
usr.stop_pulling()
usr.client.perspective = EYE_PERSPECTIVE
usr.client.eye = src
usr.forceMove(src)
set_occupant(usr)
icon_state = occupied_icon_state
usr << "<span class='notice'>[on_enter_occupant_message]</span>"
src.add_fingerprint(usr)
return
/obj/machinery/megavendor/proc/set_occupant(var/occupant)
src.occupant = occupant
name = initial(name)
if(occupant)
name = "[name] ([occupant])"
/obj/machinery/megavendor/proc/go_out()
if(!occupant)
return
ping("<span class='notice'>[src] disgorges its contents with a ping.</span>")
icon_state = base_icon_state
//Eject any items that aren't meant to be in the pod.
var/list/items = src.contents
if(occupant) items -= occupant
for(var/obj/item/W in items)
W.forceMove(get_turf(src))
if(occupant.client)
occupant.client.eye = src.occupant.client.mob
occupant.client.perspective = MOB_PERSPECTIVE
occupant.forceMove(get_turf(src))
set_occupant(null)
name = initial(name)
icon_state = base_icon_state
isvending = 0
return
/obj/machinery/megavendor/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
if(occupant && !isvending)
isvending = 1
INVOKE_ASYNC(src, .proc/megavend, occupant)
/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)
src.speak("Scan error: Subject has already used a NT Auto-Locker within the past twelve hours!")
src.go_out()
return
src.speak("Analyzing...")
sleep(40)
src.speak("Record match. Name: [H.real_name]. Current occupation: [H.job].")
src.visible_message("<span class='notice'>[src] rumbles to life, and begins to whir loudly.</span>")
playsound(src.loc, 'sound/items/poster_being_created.ogg', 50, 1)
var/obj/item/weapon/storage/box/gearbox = new(src)
gearbox.name = "\improper Personal possessions box"
gearbox.desc = "All of the personal effects of [H.real_name], packaged neatly by the Auto-Locker."
gearbox.desc = "All of the personal effects of [H.real_name], packaged neatly by the AutoDrobe."
for(var/obj/item/W in H.contents)
if(istype(W,/obj/item/organ))
continue
H.drop_from_inventory(W,gearbox)
W.forceMove(gearbox)
H.put_in_any_hand_if_possible(gearbox)
H << "<span class='notice'>You feel a pleasant breeze as the autolocker whisks away all of your clothes, packing them neatly in a box.</span>"
sleep(20)
job_master.EquipRank(H, H.job, 1, 1)
sleep(20)
src.speak("Welcome aboard, [H.real_name]. Have a nice shift.")
H.megavend = 1
src.go_out()
return
/obj/machinery/megavendor/proc/speak(var/message)
if (!message)
return
ping("<span class='game say'><span class='name'>\The [src]</span> beeps, \"[message]\"</span>")
if(occupant)
occupant << "<span class='game say'><span class='name'>\The [src]</span> beeps, \"[message]\"</span>"
return
+5 -3
View File
@@ -39,7 +39,7 @@
/obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice = 4,
/obj/item/weapon/reagent_containers/food/drinks/bottle/cream = 4,
/obj/item/weapon/reagent_containers/food/drinks/cans/tonic = 8,
/obj/item/weapon/reagent_containers/food/drinks/bottle/cola = 5,
/obj/item/weapon/reagent_containers/food/drinks/bottle/cola = 5,
/obj/item/weapon/reagent_containers/food/drinks/bottle/space_up = 5,
/obj/item/weapon/reagent_containers/food/drinks/bottle/space_mountain_wind = 5,
/obj/item/weapon/reagent_containers/food/drinks/cans/sodawater = 15,
@@ -126,7 +126,8 @@
/obj/item/weapon/reagent_containers/food/snacks/skrellsnacks = 3,
/obj/item/weapon/reagent_containers/food/snacks/meatsnack = 2,
/obj/item/weapon/reagent_containers/food/snacks/maps = 2,
/obj/item/weapon/reagent_containers/food/snacks/nathisnack = 2
/obj/item/weapon/reagent_containers/food/snacks/nathisnack = 2,
/obj/item/weapon/reagent_containers/food/snacks/koisbar = 4
)
contraband = list(
/obj/item/weapon/reagent_containers/food/snacks/syndicake = 6
@@ -143,7 +144,8 @@
/obj/item/weapon/reagent_containers/food/snacks/skrellsnacks = 40,
/obj/item/weapon/reagent_containers/food/snacks/meatsnack = 22,
/obj/item/weapon/reagent_containers/food/snacks/maps = 23,
/obj/item/weapon/reagent_containers/food/snacks/nathisnack = 24
/obj/item/weapon/reagent_containers/food/snacks/nathisnack = 24,
/obj/item/weapon/reagent_containers/food/snacks/koisbar = 115
)
+2 -2
View File
@@ -348,8 +348,8 @@
display_name = "k'ois spores"
mutants = null
chems = list(
"koispaste" = list(5),
"phoron" = list(1))
"koispaste" = list(2),
"phoron" = list(4))
splat_type = /obj/effect/plant
kitchen_tag = "koisspore"
+1 -1
View File
@@ -247,7 +247,7 @@ obj/item/organ/vaurca/neuralsocket/process()
src.air_contents.adjust_gas("phoron", (ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C))
src.air_contents.volume = volume //liters
src.air_contents.temperature = T20C
src.distribute_pressure = ((pick(1.0,1.1,1.2,1.3)*ONE_ATMOSPHERE)*O2STANDARD)
src.distribute_pressure = ((pick(1.8,2.0,2.4,2.8)*ONE_ATMOSPHERE)*O2STANDARD)
START_PROCESSING(SSprocessing, src)
var/mob/living/carbon/location = loc
@@ -414,14 +414,15 @@
/obj/item/weapon/reagent_containers/food/snacks/koisbar
name = "k'ois bar"
desc = "Bland NanoTrasen produced K'ois bars, rich in syrup."
desc = "Bland NanoTrasen produced K'ois bars, rich in syrup and injected with extra phoron."
icon_state = "koisbar"
trash = /obj/item/trash/koisbar
filling_color = "#dcd9cd"
/obj/item/weapon/reagent_containers/food/snacks/koisbar/New()
..()
reagents.add_reagent("koispaste", 20)
reagents.add_reagent("koispaste", 10)
reagents.add_reagent("phoron", 15)
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/aesirsalad
@@ -3772,7 +3773,7 @@
/obj/item/weapon/reagent_containers/food/snacks/friedkois/New()
..()
reagents.add_reagent("koispaste", 6)
reagents.add_reagent("phoron", 3)
reagents.add_reagent("phoron", 9)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/friedkois/attackby(obj/item/weapon/W as obj, mob/user as mob)
@@ -3796,7 +3797,7 @@
/obj/item/weapon/reagent_containers/food/snacks/koiskebab1/New()
..()
reagents.add_reagent("koispaste", 6)
reagents.add_reagent("phoron", 3)
reagents.add_reagent("phoron", 9)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/koiskebab1/attackby(obj/item/weapon/W as obj, mob/user as mob)
@@ -3817,7 +3818,7 @@
/obj/item/weapon/reagent_containers/food/snacks/koiskebab2/New()
..()
reagents.add_reagent("koispaste", 12)
reagents.add_reagent("phoron", 6)
reagents.add_reagent("phoron", 12)
bitesize = 6
/obj/item/weapon/reagent_containers/food/snacks/koiskebab2/attackby(obj/item/weapon/W as obj, mob/user as mob)
@@ -3837,7 +3838,7 @@
/obj/item/weapon/reagent_containers/food/snacks/koiskebab3/New()
..()
reagents.add_reagent("koispaste", 18)
reagents.add_reagent("phoron", 9)
reagents.add_reagent("phoron", 15)
bitesize = 9
/obj/item/weapon/reagent_containers/food/snacks/koissoup
@@ -3850,7 +3851,7 @@
/obj/item/weapon/reagent_containers/food/snacks/koissoup/New()
..()
reagents.add_reagent("koispaste", 15)
reagents.add_reagent("phoron", 5)
reagents.add_reagent("phoron", 10)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/koiswaffles
@@ -3863,7 +3864,7 @@
/obj/item/weapon/reagent_containers/food/snacks/koiswaffles/New()
..()
reagents.add_reagent("koispaste", 25)
reagents.add_reagent("phoron", 5)
reagents.add_reagent("phoron", 12)
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/koisjelly
@@ -3876,7 +3877,7 @@
..()
reagents.add_reagent("koispaste", 25)
reagents.add_reagent("imidazoline", 20)
reagents.add_reagent("phoron", 10)
reagents.add_reagent("phoron", 20)
bitesize = 5
//unathi snacks - sprites by Araskael
+58 -3
View File
@@ -7,11 +7,11 @@
//Main Lift
/obj/turbolift_map_holder/aurora/civilian
name = "Aurora lift placeholder - Main"
dir = SOUTH
dir = WEST
depth = 3
lift_size_x = 6
lift_size_y = 6
lift_size_x = 4
lift_size_y = 4
areas_to_use = list(
/area/turbolift/main_station,
@@ -19,6 +19,20 @@
/area/turbolift/main_arrivals
)
/obj/turbolift_map_holder/aurora/civilian_aux
name = "Aurora lift placeholder - Aux"
dir = WEST
depth = 3
lift_size_x = 4
lift_size_y = 4
areas_to_use = list(
/area/turbolift/main_station_aux,
/area/turbolift/main_mid_aux,
/area/turbolift/main_arrivals_aux
)
/area/turbolift/main_arrivals
name = "Civilian Lift - Arrivals"
lift_announce_str = "Arriving at the Surface Level. Facilities on this floor include: Blue, Red and Yellow Docks, Cryogenics Storage, Cargo Bay, Primary Tool Storage, Recreational Facilities."
@@ -26,6 +40,13 @@
lift_floor_label = "Surface Lvl."
lift_floor_name = "Surface Lvl."
/area/turbolift/main_arrivals_aux
name = "Civilian Lift - Arrivals"
lift_announce_str = "Arriving at the Surface Level. Facilities on this floor include: Blue, Red and Yellow Docks, Cryogenics Storage, Cargo Bay, Primary Tool Storage, Recreational Facilities."
lift_floor_label = "Surface Lvl."
lift_floor_name = "Surface Lvl."
/area/turbolift/main_station
name = "Civilian Lift - Main"
lift_announce_str = "Arriving at the Main Level. Facilities on this floor include: Engineering, Medical, Security, Science, Command departments, Cargo Office, Chapel, Bar, Kitchen."
@@ -33,6 +54,17 @@
lift_floor_label = "Main Lvl."
lift_floor_name = "Main Lvl."
base_turf = /turf/simulated/floor/plating
/area/turbolift/main_station_aux
name = "Civilian Lift - Main"
lift_announce_str = "Arriving at the Main Level. Facilities on this floor include: Engineering, Medical, Security, Science, Command departments, Cargo Office, Chapel, Bar, Kitchen."
lift_floor_label = "Main Lvl."
lift_floor_name = "Main Lvl."
base_turf = /turf/simulated/floor/plating
/area/turbolift/main_mid
name = "Civilian Lift - Mid Level"
lift_announce_str = "Arriving at (Unknown). Facilities on this floor include: (Unknown)."
@@ -40,6 +72,13 @@
lift_floor_label = "Under construction"
lift_floor_name = "Under construction"
/area/turbolift/main_mid_aux
name = "Civilian Lift - Mid Level"
lift_announce_str = "Arriving at (Unknown). Facilities on this floor include: (Unknown)."
lift_floor_label = "Under construction"
lift_floor_name = "Under construction"
//Security
/obj/turbolift_map_holder/aurora/security
name = "Aurora lift placeholder - Security"
@@ -67,6 +106,8 @@
lift_floor_label = "Lower Sec"
lift_floor_name = "Lower Sec"
base_turf = /turf/simulated/floor/plating
//Research
/obj/turbolift_map_holder/aurora/research
name = "Aurora lift placeholder - Research"
@@ -96,6 +137,8 @@
lift_floor_label = "Sub-Level (Research)"
lift_floor_name = "Sub-Level (Research)"
base_turf = /turf/simulated/floor/plating
//Engineering
/obj/turbolift_map_holder/aurora/engineering
name = "Aurora lift placeholder - Engineering"
@@ -124,6 +167,8 @@
lift_floor_label = "Sub-Level (Engineering)"
lift_floor_name = "Sub-Level (Engineering)"
base_turf = /turf/simulated/floor/plating
//Cargo
/obj/turbolift_map_holder/aurora/cargo
name = "Aurora lift placeholder - Cargo"
@@ -146,6 +191,8 @@
lift_floor_label = "Main Level (Cargo)"
lift_floor_name = "Main Level (Cargo)"
base_turf = /turf/simulated/floor/plating
/area/turbolift/cargo_deliverys
name = "Arrivals - Cargo"
lift_announce_str = "Arriving at the Cargo Surface Level. Facilities in this floor include: Cargo Shuttle Dock, Cargo Bay, Sorting Office."
@@ -189,6 +236,8 @@
lift_floor_label = "Sub-Level (Medical)"
lift_floor_name = "Sub-Level (Medical)"
base_turf = /turf/simulated/floor/plating
//AI Access
/obj/turbolift_map_holder/aurora/aiaccess
name = "Aurora lift placeholder - AI Access"
@@ -217,6 +266,8 @@
lift_floor_label = "Sub-Level (Command)"
lift_floor_name = "Sub-Level (Command)"
base_turf = /turf/simulated/floor/plating
//Vault
@@ -248,6 +299,8 @@
lift_floor_label = "Sub-Level (Vault)"
lift_floor_name = "Sub-Level (Vault)"
base_turf = /turf/simulated/floor/plating
//Command
/obj/turbolift_map_holder/aurora/command
@@ -271,6 +324,8 @@
lift_floor_label = "Surface Level (Command)"
lift_floor_name = "Surface Level (Command)"
base_turf = /turf/simulated/floor/plating
/area/turbolift/command_sub
name = "Command Lift - Sub"
lift_announce_str = "Arriving at the Command Main Level. Facilities in this floor include: Bridge, Command Dormitories, Command Recreational Area."