Ports Nebula's spawn blurb + makes people spawn asleep in cryo cells. (#9227)

This commit is contained in:
Matt Atlas
2020-07-01 11:20:18 +02:00
committed by GitHub
parent b9b237cddd
commit 298bdfc725
7 changed files with 145 additions and 59 deletions

View File

@@ -377,15 +377,8 @@
EquipItemsStorage(H, H.client.prefs, spawn_in_storage)
if(istype(H) && !megavend) //give humans wheelchairs, if they need them.
var/obj/item/organ/external/l_foot = H.get_organ(BP_L_FOOT)
var/obj/item/organ/external/r_foot = H.get_organ(BP_R_FOOT)
if(!l_foot || !r_foot)
var/obj/structure/bed/chair/wheelchair/W = new /obj/structure/bed/chair/wheelchair(H.loc)
H.buckled = W
H.update_canmove()
W.set_dir(H.dir)
W.buckled_mob = H
W.add_fingerprint(H)
if(H.needs_wheelchair())
H.equip_wheelchair()
to_chat(H, "<B>You are [job.total_positions == 1 ? "the" : "a"] [alt_title ? alt_title : rank].</B>")
@@ -406,6 +399,8 @@
BITSET(H.hud_updateflag, IMPLOYAL_HUD)
BITSET(H.hud_updateflag, SPECIALROLE_HUD)
INVOKE_ASYNC(GLOBAL_PROC, .proc/show_location_blurb, H.client, 30)
Debug("ER/([H]): Completed.")
return H
@@ -520,16 +515,7 @@
if(LAZYLEN(spawn_in_storage))
EquipItemsStorage(H, H.client.prefs, spawn_in_storage)
if(istype(H)) //give humans wheelchairs, if they need them.
var/obj/item/organ/external/l_foot = H.get_organ(BP_L_FOOT)
var/obj/item/organ/external/r_foot = H.get_organ(BP_R_FOOT)
if(!l_foot || !r_foot)
var/obj/structure/bed/chair/wheelchair/W = new /obj/structure/bed/chair/wheelchair(H.loc)
H.buckled = W
H.update_canmove()
W.set_dir(H.dir)
W.buckled_mob = H
W.add_fingerprint(H)
//Gives glasses to the vision impaired
if(H.disabilities & NEARSIGHTED)
@@ -661,6 +647,7 @@
if(spawnpos.check_job_spawning(rank))
H.forceMove(pick(spawnpos.turfs))
. = spawnpos.msg
spawnpos.after_join(H)
else
to_chat(H, "Your chosen spawnpoint ([spawnpos.display_name]) is unavailable for your chosen job. Spawning you at the Arrivals shuttle instead.")
H.forceMove(pick(latejoin))
@@ -914,4 +901,33 @@
Debug("EA/([H]): Complete.")
return TRUE
/proc/show_location_blurb(client/C, duration)
set waitfor = 0
var/style = "font-family: 'Fixedsys'; -dm-text-outline: 1 black; font-size: 11px;"
var/area/A = get_area(C.mob)
var/text = "[worlddate2text()], [worldtime2text()]\n[station_name()], [A.name]"
text = uppertext(text)
var/obj/effect/overlay/T = new()
T.maptext_height = 64
T.maptext_width = 512
T.layer = SCREEN_LAYER+1
T.plane = FLOAT_PLANE
T.screen_loc = "LEFT+1,BOTTOM+2"
C.screen += T
animate(T, alpha = 255, time = 10)
for(var/i = 1 to length(text)+1)
T.maptext = "<span style=\"[style]\">[copytext(text,1,i)] </span>"
sleep(1)
addtimer(CALLBACK(GLOBAL_PROC, .proc/fade_location_blurb, C, T), duration)
/proc/fade_location_blurb(client/C, obj/T)
animate(T, alpha = 0, time = 5)
sleep(5)
C.screen -= T
qdel(T)
#undef Debug