Adds tutorial holopads for the hazard course. (#35464)

* Hazard Course

* Hello, and welcome to the Black Mesa Hazard Course, where you'll be trained in the use of a Hazardous Environment Suit.

* Ain't no grave
This commit is contained in:
Dax Dupont
2018-02-19 21:38:46 +01:00
committed by CitadelStationBot
parent fef23bd7cc
commit 4f5dd83be9
+57 -19
View File
@@ -59,10 +59,44 @@ Possible to do for anyone motivated enough:
var/static/list/holopads = list()
var/obj/effect/overlay/holoray/ray
var/offset = FALSE
var/on_network = TRUE
/obj/machinery/holopad/tutorial
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
flags_1 = NODECONSTRUCT_1
on_network = FALSE
var/proximity_range = 1
/obj/machinery/holopad/tutorial/Initialize(mapload)
. = ..()
if(proximity_range)
proximity_monitor = new(src, proximity_range)
if(mapload)
var/obj/item/disk/holodisk/new_disk = locate(/obj/item/disk/holodisk) in src.loc
if(new_disk && !disk)
new_disk.forceMove(src)
disk = new_disk
/obj/machinery/holopad/tutorial/attack_hand(mob/user)
if(!istype(user))
return
if(user.incapacitated() || !is_operational())
return
if(replay_mode)
replay_stop()
else if(disk && disk.record)
replay_start()
/obj/machinery/holopad/tutorial/HasProximity(atom/movable/AM)
if (!isliving(AM))
return
if(!replay_mode && (disk && disk.record))
replay_start()
/obj/machinery/holopad/Initialize()
. = ..()
holopads += src
if(on_network)
holopads += src
/obj/machinery/holopad/Destroy()
if(outgoing_call)
@@ -150,8 +184,9 @@ Possible to do for anyone motivated enough:
if(temp)
dat = temp
else
dat = "<a href='?src=[REF(src)];AIrequest=1'>Request an AI's presence</a><br>"
dat += "<a href='?src=[REF(src)];Holocall=1'>Call another holopad</a><br>"
if(on_network)
dat += "<a href='?src=[REF(src)];AIrequest=1'>Request an AI's presence</a><br>"
dat += "<a href='?src=[REF(src)];Holocall=1'>Call another holopad</a><br>"
if(disk)
if(disk.record)
//Replay
@@ -168,23 +203,24 @@ Possible to do for anyone motivated enough:
if(LAZYLEN(holo_calls))
dat += "=====================================================<br>"
var/one_answered_call = FALSE
var/one_unanswered_call = FALSE
for(var/I in holo_calls)
var/datum/holocall/HC = I
if(HC.connected_holopad != src)
dat += "<a href='?src=[REF(src)];connectcall=[REF(HC)]'>Answer call from [get_area(HC.calling_holopad)]</a><br>"
one_unanswered_call = TRUE
else
one_answered_call = TRUE
if(on_network)
var/one_answered_call = FALSE
var/one_unanswered_call = FALSE
for(var/I in holo_calls)
var/datum/holocall/HC = I
if(HC.connected_holopad != src)
dat += "<a href='?src=[REF(src)];connectcall=[REF(HC)]'>Answer call from [get_area(HC.calling_holopad)]</a><br>"
one_unanswered_call = TRUE
else
one_answered_call = TRUE
if(one_answered_call && one_unanswered_call)
dat += "=====================================================<br>"
//we loop twice for formatting
for(var/I in holo_calls)
var/datum/holocall/HC = I
if(HC.connected_holopad == src)
dat += "<a href='?src=[REF(src)];disconnectcall=[REF(HC)]'>Disconnect call from [HC.user]</a><br>"
if(one_answered_call && one_unanswered_call)
dat += "=====================================================<br>"
//we loop twice for formatting
for(var/I in holo_calls)
var/datum/holocall/HC = I
if(HC.connected_holopad == src)
dat += "<a href='?src=[REF(src)];disconnectcall=[REF(HC)]'>Disconnect call from [HC.user]</a><br>"
var/datum/browser/popup = new(user, "holopad", name, 300, 175)
@@ -292,6 +328,8 @@ Possible to do for anyone motivated enough:
/obj/machinery/holopad/attack_ai(mob/living/silicon/ai/user)
if (!istype(user))
return
if (!on_network)
return
/*There are pretty much only three ways to interact here.
I don't need to check for client since they're clicking on an object.
This may change in the future but for now will suffice.*/