mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-10 09:54:52 +00:00
512 forward compatibility merge
This commit is contained in:
committed by
CitadelStationBot
parent
fd2705b6e6
commit
4b297f509e
@@ -3,7 +3,7 @@ sudo: false
|
|||||||
env:
|
env:
|
||||||
global:
|
global:
|
||||||
- BYOND_MAJOR="511"
|
- BYOND_MAJOR="511"
|
||||||
- BYOND_MINOR="1380"
|
- BYOND_MINOR="1385"
|
||||||
- NODE_VERSION="4"
|
- NODE_VERSION="4"
|
||||||
- BUILD_TOOLS=false
|
- BUILD_TOOLS=false
|
||||||
- BUILD_TESTING=false
|
- BUILD_TESTING=false
|
||||||
|
|||||||
@@ -116,17 +116,17 @@
|
|||||||
|
|
||||||
#define R_MAXPERMISSION 4096 //This holds the maximum value for a permission. It is used in iteration, so keep it updated.
|
#define R_MAXPERMISSION 4096 //This holds the maximum value for a permission. It is used in iteration, so keep it updated.
|
||||||
|
|
||||||
#define ADMIN_QUE(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];adminmoreinfo=\ref[user]'>?</a>)"
|
#define ADMIN_QUE(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];adminmoreinfo=[REF(user)]'>?</a>)"
|
||||||
#define ADMIN_FLW(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];adminplayerobservefollow=\ref[user]'>FLW</a>)"
|
#define ADMIN_FLW(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];adminplayerobservefollow=[REF(user)]'>FLW</a>)"
|
||||||
#define ADMIN_PP(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];adminplayeropts=\ref[user]'>PP</a>)"
|
#define ADMIN_PP(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];adminplayeropts=[REF(user)]'>PP</a>)"
|
||||||
#define ADMIN_VV(atom) "(<a href='?_src_=vars;[HrefToken(TRUE)];Vars=\ref[atom]'>VV</a>)"
|
#define ADMIN_VV(atom) "(<a href='?_src_=vars;[HrefToken(TRUE)];Vars=[REF(atom)]'>VV</a>)"
|
||||||
#define ADMIN_SM(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];subtlemessage=\ref[user]'>SM</a>)"
|
#define ADMIN_SM(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];subtlemessage=[REF(user)]'>SM</a>)"
|
||||||
#define ADMIN_TP(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];traitor=\ref[user]'>TP</a>)"
|
#define ADMIN_TP(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];traitor=[REF(user)]'>TP</a>)"
|
||||||
#define ADMIN_KICK(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];boot2=\ref[user]'>KICK</a>)"
|
#define ADMIN_KICK(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];boot2=[REF(user)]'>KICK</a>)"
|
||||||
#define ADMIN_CENTCOM_REPLY(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];CentComReply=\ref[user]'>RPLY</a>)"
|
#define ADMIN_CENTCOM_REPLY(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];CentComReply=[REF(user)]'>RPLY</a>)"
|
||||||
#define ADMIN_SYNDICATE_REPLY(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];SyndicateReply=\ref[user]'>RPLY</a>)"
|
#define ADMIN_SYNDICATE_REPLY(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];SyndicateReply=[REF(user)]'>RPLY</a>)"
|
||||||
#define ADMIN_SC(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];adminspawncookie=\ref[user]'>SC</a>)"
|
#define ADMIN_SC(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];adminspawncookie=[REF(user)]'>SC</a>)"
|
||||||
#define ADMIN_SMITE(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];adminsmite=\ref[user]'>SMITE</a>)"
|
#define ADMIN_SMITE(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];adminsmite=[REF(user)]'>SMITE</a>)"
|
||||||
#define ADMIN_LOOKUP(user) "[key_name_admin(user)][ADMIN_QUE(user)]"
|
#define ADMIN_LOOKUP(user) "[key_name_admin(user)][ADMIN_QUE(user)]"
|
||||||
#define ADMIN_LOOKUPFLW(user) "[key_name_admin(user)][ADMIN_QUE(user)] [ADMIN_FLW(user)]"
|
#define ADMIN_LOOKUPFLW(user) "[key_name_admin(user)][ADMIN_QUE(user)] [ADMIN_FLW(user)]"
|
||||||
#define ADMIN_SET_SD_CODE "(<a href='?_src_=holder;[HrefToken(TRUE)];set_selfdestruct_code=1'>SETCODE</a>)"
|
#define ADMIN_SET_SD_CODE "(<a href='?_src_=holder;[HrefToken(TRUE)];set_selfdestruct_code=1'>SETCODE</a>)"
|
||||||
@@ -135,7 +135,7 @@
|
|||||||
#define ADMIN_JMP(src) "(<a href='?_src_=holder;[HrefToken(TRUE)];adminplayerobservecoodjump=1;X=[src.x];Y=[src.y];Z=[src.z]'>JMP</a>)"
|
#define ADMIN_JMP(src) "(<a href='?_src_=holder;[HrefToken(TRUE)];adminplayerobservecoodjump=1;X=[src.x];Y=[src.y];Z=[src.z]'>JMP</a>)"
|
||||||
#define COORD(src) "[src ? "([src.x],[src.y],[src.z])" : "nonexistent location"]"
|
#define COORD(src) "[src ? "([src.x],[src.y],[src.z])" : "nonexistent location"]"
|
||||||
#define ADMIN_COORDJMP(src) "[src ? "[COORD(src)] [ADMIN_JMP(src)]" : "nonexistent location"]"
|
#define ADMIN_COORDJMP(src) "[src ? "[COORD(src)] [ADMIN_JMP(src)]" : "nonexistent location"]"
|
||||||
#define ADMIN_INDIVIDUALLOG(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];individuallog=\ref[user]'>LOGS</a>)"
|
#define ADMIN_INDIVIDUALLOG(user) "(<a href='?_src_=holder;[HrefToken(TRUE)];individuallog=[REF(user)]'>LOGS</a>)"
|
||||||
|
|
||||||
#define ADMIN_PUNISHMENT_LIGHTNING "Lightning bolt"
|
#define ADMIN_PUNISHMENT_LIGHTNING "Lightning bolt"
|
||||||
#define ADMIN_PUNISHMENT_BRAINDAMAGE "Brain damage"
|
#define ADMIN_PUNISHMENT_BRAINDAMAGE "Brain damage"
|
||||||
|
|||||||
@@ -466,9 +466,12 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
|
|||||||
|
|
||||||
//Dummy mob reserve slots
|
//Dummy mob reserve slots
|
||||||
#define DUMMY_HUMAN_SLOT_PREFERENCES "dummy_preference_preview"
|
#define DUMMY_HUMAN_SLOT_PREFERENCES "dummy_preference_preview"
|
||||||
|
|
||||||
#define DUMMY_HUMAN_SLOT_MANIFEST "dummy_manifest_generation"
|
#define DUMMY_HUMAN_SLOT_MANIFEST "dummy_manifest_generation"
|
||||||
|
|
||||||
#define PR_ANNOUNCEMENTS_PER_ROUND 5 //The number of unique PR announcements allowed per round
|
#define PR_ANNOUNCEMENTS_PER_ROUND 5 //The number of unique PR announcements allowed per round
|
||||||
//This makes sure that a single person can only spam 3 reopens and 3 closes before being ignored
|
//This makes sure that a single person can only spam 3 reopens and 3 closes before being ignored
|
||||||
|
|
||||||
#define MAX_PROC_DEPTH 195 // 200 proc calls deep and shit breaks, this is a bit lower to give some safety room
|
#define MAX_PROC_DEPTH 195 // 200 proc calls deep and shit breaks, this is a bit lower to give some safety room
|
||||||
|
|
||||||
|
#define DUMMY_HUMAN_SLOT_MANIFEST "dummy_manifest_generation"
|
||||||
|
|||||||
@@ -37,9 +37,9 @@
|
|||||||
#define EAVESDROP_EXTRA_RANGE 1 //how much past the specified message_range does the message get starred, whispering only
|
#define EAVESDROP_EXTRA_RANGE 1 //how much past the specified message_range does the message get starred, whispering only
|
||||||
|
|
||||||
// A link given to ghost alice to follow bob
|
// A link given to ghost alice to follow bob
|
||||||
#define FOLLOW_LINK(alice, bob) "<a href=?src=\ref[alice];follow=\ref[bob]>(F)</a>"
|
#define FOLLOW_LINK(alice, bob) "<a href=?src=[REF(alice)];follow=[REF(bob)]>(F)</a>"
|
||||||
#define TURF_LINK(alice, turfy) "<a href=?src=\ref[alice];x=[turfy.x];y=[turfy.y];z=[turfy.z]>(T)</a>"
|
#define TURF_LINK(alice, turfy) "<a href=?src=[REF(alice)];x=[turfy.x];y=[turfy.y];z=[turfy.z]>(T)</a>"
|
||||||
#define FOLLOW_OR_TURF_LINK(alice, bob, turfy) "<a href=?src=\ref[alice];follow=\ref[bob];x=[turfy.x];y=[turfy.y];z=[turfy.z]>(F)</a>"
|
#define FOLLOW_OR_TURF_LINK(alice, bob, turfy) "<a href=?src=[REF(alice)];follow=[REF(bob)];x=[turfy.x];y=[turfy.y];z=[turfy.z]>(F)</a>"
|
||||||
|
|
||||||
#define LOGSAY "say"
|
#define LOGSAY "say"
|
||||||
#define LOGWHISPER "whisper"
|
#define LOGWHISPER "whisper"
|
||||||
|
|||||||
@@ -178,7 +178,7 @@ mob
|
|||||||
// Send the icon to src's local cache
|
// Send the icon to src's local cache
|
||||||
src<<browse_rsc(I, iconName)
|
src<<browse_rsc(I, iconName)
|
||||||
// Update the label to show it
|
// Update the label to show it
|
||||||
winset(src,"imageLabel","image='\ref[I]'");
|
winset(src,"imageLabel","image='[REF(I)]'");
|
||||||
|
|
||||||
Add_Overlay()
|
Add_Overlay()
|
||||||
set name = "4. Add Overlay"
|
set name = "4. Add Overlay"
|
||||||
@@ -1140,7 +1140,7 @@ GLOBAL_LIST_INIT(freon_color_matrix, list("#2E5E69", "#60A2A8", "#A1AFB1", rgb(0
|
|||||||
|
|
||||||
// Either an atom or somebody fucked up and is gonna get a runtime, which I'm fine with.
|
// Either an atom or somebody fucked up and is gonna get a runtime, which I'm fine with.
|
||||||
var/atom/A = thing
|
var/atom/A = thing
|
||||||
var/key = "[istype(A.icon, /icon) ? "\ref[A.icon]" : A.icon]:[A.icon_state]"
|
var/key = "[istype(A.icon, /icon) ? "[REF(A.icon)]" : A.icon]:[A.icon_state]"
|
||||||
|
|
||||||
|
|
||||||
if (!bicon_cache[key]) // Doesn't exist, make it.
|
if (!bicon_cache[key]) // Doesn't exist, make it.
|
||||||
|
|||||||
@@ -1411,3 +1411,38 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
|
|||||||
//checks if a turf is in the planet z list.
|
//checks if a turf is in the planet z list.
|
||||||
/proc/turf_z_is_planet(turf/T)
|
/proc/turf_z_is_planet(turf/T)
|
||||||
return GLOB.z_is_planet["[T.z]"]
|
return GLOB.z_is_planet["[T.z]"]
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
|
||||||
|
//returns a GUID like identifier (using a mostly made up record format)
|
||||||
|
//guids are not on their own suitable for access or security tokens, as most of their bits are predictable.
|
||||||
|
// (But may make a nice salt to one)
|
||||||
|
/proc/GUID()
|
||||||
|
var/const/GUID_VERSION = "b"
|
||||||
|
var/const/GUID_VARIANT = "d"
|
||||||
|
var/node_id = copytext(md5("[rand()*rand(1,9999999)][world.name][world.hub][world.hub_password][world.internet_address][world.address][world.contents.len][world.status][world.port][rand()*rand(1,9999999)]"), 1, 13)
|
||||||
|
|
||||||
|
var/time_high = "[num2hex(text2num(time2text(world.realtime,"YYYY")), 2)][num2hex(world.realtime, 6)]"
|
||||||
|
|
||||||
|
var/time_mid = num2hex(world.timeofday, 4)
|
||||||
|
|
||||||
|
var/time_low = num2hex(world.time, 3)
|
||||||
|
|
||||||
|
var/time_clock = num2hex(TICK_DELTA_TO_MS(world.tick_usage), 3)
|
||||||
|
|
||||||
|
return "{[time_high]-[time_mid]-[GUID_VERSION][time_low]-[GUID_VARIANT][time_clock]-[node_id]}"
|
||||||
|
|
||||||
|
// \ref behaviour got changed in 512 so this is necesary to replicate old behaviour.
|
||||||
|
// If it ever becomes necesary to get a more performant REF(), this lies here in wait
|
||||||
|
// #define REF(thing) (thing && istype(thing, /datum) && thing:use_tag && thing:tag ? "[thing:tag]" : "\ref[thing]")
|
||||||
|
/proc/REF(input)
|
||||||
|
if(istype(input, /datum))
|
||||||
|
var/datum/thing = input
|
||||||
|
if(thing.use_tag)
|
||||||
|
if(!thing.tag)
|
||||||
|
WARNING("A ref was requested of an object with use_tag set but no tag: [thing]")
|
||||||
|
thing.use_tag = FALSE
|
||||||
|
else
|
||||||
|
return "\[[url_encode(thing.tag)]\]"
|
||||||
|
return "\ref[input]"
|
||||||
|
>>>>>>> 626302c... Merge pull request #32161 from ninjanomnom/512-experimental
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ GLOBAL_LIST_EMPTY(bombers)
|
|||||||
GLOBAL_PROTECT(bombers)
|
GLOBAL_PROTECT(bombers)
|
||||||
GLOBAL_LIST_EMPTY(admin_log)
|
GLOBAL_LIST_EMPTY(admin_log)
|
||||||
GLOBAL_PROTECT(admin_log)
|
GLOBAL_PROTECT(admin_log)
|
||||||
GLOBAL_LIST_EMPTY(lastsignalers) //keeps last 100 signals here in format: "[src] used \ref[src] @ location [src.loc]: [freq]/[code]"
|
GLOBAL_LIST_EMPTY(lastsignalers) //keeps last 100 signals here in format: "[src] used [REF(src)] @ location [src.loc]: [freq]/[code]"
|
||||||
GLOBAL_PROTECT(lastsignalers)
|
GLOBAL_PROTECT(lastsignalers)
|
||||||
GLOBAL_LIST_EMPTY(lawchanges) //Stores who uploaded laws to which silicon-based lifeform, and what the law was
|
GLOBAL_LIST_EMPTY(lawchanges) //Stores who uploaded laws to which silicon-based lifeform, and what the law was
|
||||||
GLOBAL_PROTECT(lawchanges)
|
GLOBAL_PROTECT(lawchanges)
|
||||||
|
|||||||
@@ -51,6 +51,14 @@
|
|||||||
return FALSE
|
return FALSE
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
/datum/config_entry/proc/VASProcCallGuard(str_val)
|
||||||
|
. = !(IsAdminAdvancedProcCall() && GLOB.LastAdminCalledProc == "ValidateAndSet" && GLOB.LastAdminCalledTargetRef == "[REF(src)]")
|
||||||
|
if(!.)
|
||||||
|
log_admin_private("Config set of [type] to [str_val] attempted by [key_name(usr)]")
|
||||||
|
|
||||||
|
>>>>>>> 626302c... Merge pull request #32161 from ninjanomnom/512-experimental
|
||||||
/datum/config_entry/proc/ValidateAndSet(str_val)
|
/datum/config_entry/proc/ValidateAndSet(str_val)
|
||||||
CRASH("Invalid config entry type!")
|
CRASH("Invalid config entry type!")
|
||||||
|
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ GLOBAL_PROTECT(config_dir)
|
|||||||
stat("[name]:", statclick)
|
stat("[name]:", statclick)
|
||||||
|
|
||||||
/datum/controller/configuration/proc/Get(entry_type)
|
/datum/controller/configuration/proc/Get(entry_type)
|
||||||
if(IsAdminAdvancedProcCall() && GLOB.LastAdminCalledProc == "Get" && GLOB.LastAdminCalledTargetRef == "\ref[src]")
|
if(IsAdminAdvancedProcCall() && GLOB.LastAdminCalledProc == "Get" && GLOB.LastAdminCalledTargetRef == "[REF(src)]")
|
||||||
log_admin_private("Config access of [entry_type] attempted by [key_name(usr)]")
|
log_admin_private("Config access of [entry_type] attempted by [key_name(usr)]")
|
||||||
return
|
return
|
||||||
var/datum/config_entry/E = entry_type
|
var/datum/config_entry/E = entry_type
|
||||||
@@ -137,7 +137,7 @@ GLOBAL_PROTECT(config_dir)
|
|||||||
return E.value
|
return E.value
|
||||||
|
|
||||||
/datum/controller/configuration/proc/Set(entry_type, new_val)
|
/datum/controller/configuration/proc/Set(entry_type, new_val)
|
||||||
if(IsAdminAdvancedProcCall() && GLOB.LastAdminCalledProc == "Set" && GLOB.LastAdminCalledTargetRef == "\ref[src]")
|
if(IsAdminAdvancedProcCall() && GLOB.LastAdminCalledProc == "Set" && GLOB.LastAdminCalledTargetRef == "[REF(src)]")
|
||||||
log_admin_private("Config rewrite of [entry_type] to [new_val] attempted by [key_name(usr)]")
|
log_admin_private("Config rewrite of [entry_type] to [new_val] attempted by [key_name(usr)]")
|
||||||
return
|
return
|
||||||
var/datum/config_entry/E = entry_type
|
var/datum/config_entry/E = entry_type
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ SUBSYSTEM_DEF(events)
|
|||||||
var/magic = ""
|
var/magic = ""
|
||||||
var/holiday = ""
|
var/holiday = ""
|
||||||
for(var/datum/round_event_control/E in SSevents.control)
|
for(var/datum/round_event_control/E in SSevents.control)
|
||||||
dat = "<BR><A href='?src=\ref[src];[HrefToken()];forceevent=\ref[E]'>[E]</A>"
|
dat = "<BR><A href='?src=[REF(src)];[HrefToken()];forceevent=[REF(E)]'>[E]</A>"
|
||||||
if(E.holidayID)
|
if(E.holidayID)
|
||||||
holiday += dat
|
holiday += dat
|
||||||
else if(E.wizardevent)
|
else if(E.wizardevent)
|
||||||
|
|||||||
@@ -164,7 +164,7 @@ SUBSYSTEM_DEF(garbage)
|
|||||||
#endif
|
#endif
|
||||||
var/type = D.type
|
var/type = D.type
|
||||||
var/datum/qdel_item/I = items[type]
|
var/datum/qdel_item/I = items[type]
|
||||||
testing("GC: -- \ref[D] | [type] was unable to be GC'd --")
|
testing("GC: -- \ref[src] | [type] was unable to be GC'd --")
|
||||||
I.failures++
|
I.failures++
|
||||||
if (GC_QUEUE_HARDDELETE)
|
if (GC_QUEUE_HARDDELETE)
|
||||||
HardDelete(D)
|
HardDelete(D)
|
||||||
|
|||||||
@@ -109,23 +109,23 @@ SUBSYSTEM_DEF(pai)
|
|||||||
dat += "<p class=\"top\">Please configure your pAI personality's options. Remember, what you enter here could determine whether or not the user requesting a personality chooses you!</p>"
|
dat += "<p class=\"top\">Please configure your pAI personality's options. Remember, what you enter here could determine whether or not the user requesting a personality chooses you!</p>"
|
||||||
dat += "<table>"
|
dat += "<table>"
|
||||||
dat += "<tr class=\"d0\"><td>Name:</td><td>[candidate.name]</td></tr>"
|
dat += "<tr class=\"d0\"><td>Name:</td><td>[candidate.name]</td></tr>"
|
||||||
dat += "<tr class=\"d1\"><td><a href='byond://?src=\ref[src];option=name;new=1;candidate=\ref[candidate]'>\[Edit\]</a></td><td>What you plan to call yourself. Suggestions: Any character name you would choose for a station character OR an AI.</td></tr>"
|
dat += "<tr class=\"d1\"><td><a href='byond://?src=[REF(src)];option=name;new=1;candidate=[REF(candidate)]'>\[Edit\]</a></td><td>What you plan to call yourself. Suggestions: Any character name you would choose for a station character OR an AI.</td></tr>"
|
||||||
|
|
||||||
dat += "<tr class=\"d0\"><td>Description:</td><td>[candidate.description]</td></tr>"
|
dat += "<tr class=\"d0\"><td>Description:</td><td>[candidate.description]</td></tr>"
|
||||||
dat += "<tr class=\"d1\"><td><a href='byond://?src=\ref[src];option=desc;new=1;candidate=\ref[candidate]'>\[Edit\]</a></td><td>What sort of pAI you typically play; your mannerisms, your quirks, etc. This can be as sparse or as detailed as you like.</td></tr>"
|
dat += "<tr class=\"d1\"><td><a href='byond://?src=[REF(src)];option=desc;new=1;candidate=[REF(candidate)]'>\[Edit\]</a></td><td>What sort of pAI you typically play; your mannerisms, your quirks, etc. This can be as sparse or as detailed as you like.</td></tr>"
|
||||||
|
|
||||||
dat += "<tr class=\"d0\"><td>Preferred Role:</td><td>[candidate.role]</td></tr>"
|
dat += "<tr class=\"d0\"><td>Preferred Role:</td><td>[candidate.role]</td></tr>"
|
||||||
dat += "<tr class=\"d1\"><td><a href='byond://?src=\ref[src];option=role;new=1;candidate=\ref[candidate]'>\[Edit\]</a></td><td>Do you like to partner with sneaky social ninjas? Like to help security hunt down thugs? Enjoy watching an engineer's back while he saves the station yet again? This doesn't have to be limited to just station jobs. Pretty much any general descriptor for what you'd like to be doing works here.</td></tr>"
|
dat += "<tr class=\"d1\"><td><a href='byond://?src=[REF(src)];option=role;new=1;candidate=[REF(candidate)]'>\[Edit\]</a></td><td>Do you like to partner with sneaky social ninjas? Like to help security hunt down thugs? Enjoy watching an engineer's back while he saves the station yet again? This doesn't have to be limited to just station jobs. Pretty much any general descriptor for what you'd like to be doing works here.</td></tr>"
|
||||||
|
|
||||||
dat += "<tr class=\"d0\"><td>OOC Comments:</td><td>[candidate.comments]</td></tr>"
|
dat += "<tr class=\"d0\"><td>OOC Comments:</td><td>[candidate.comments]</td></tr>"
|
||||||
dat += "<tr class=\"d1\"><td><a href='byond://?src=\ref[src];option=ooc;new=1;candidate=\ref[candidate]'>\[Edit\]</a></td><td>Anything you'd like to address specifically to the player reading this in an OOC manner. \"I prefer more serious RP.\", \"I'm still learning the interface!\", etc. Feel free to leave this blank if you want.</td></tr>"
|
dat += "<tr class=\"d1\"><td><a href='byond://?src=[REF(src)];option=ooc;new=1;candidate=[REF(candidate)]'>\[Edit\]</a></td><td>Anything you'd like to address specifically to the player reading this in an OOC manner. \"I prefer more serious RP.\", \"I'm still learning the interface!\", etc. Feel free to leave this blank if you want.</td></tr>"
|
||||||
|
|
||||||
dat += "</table>"
|
dat += "</table>"
|
||||||
|
|
||||||
dat += "<br>"
|
dat += "<br>"
|
||||||
dat += "<h3><a href='byond://?src=\ref[src];option=submit;new=1;candidate=\ref[candidate]'>Submit Personality</a></h3><br>"
|
dat += "<h3><a href='byond://?src=[REF(src)];option=submit;new=1;candidate=[REF(candidate)]'>Submit Personality</a></h3><br>"
|
||||||
dat += "<a href='byond://?src=\ref[src];option=save;new=1;candidate=\ref[candidate]'>Save Personality</a><br>"
|
dat += "<a href='byond://?src=[REF(src)];option=save;new=1;candidate=[REF(candidate)]'>Save Personality</a><br>"
|
||||||
dat += "<a href='byond://?src=\ref[src];option=load;new=1;candidate=\ref[candidate]'>Load Personality</a><br>"
|
dat += "<a href='byond://?src=[REF(src)];option=load;new=1;candidate=[REF(candidate)]'>Load Personality</a><br>"
|
||||||
|
|
||||||
M << browse(dat, "window=paiRecruit")
|
M << browse(dat, "window=paiRecruit")
|
||||||
|
|
||||||
@@ -182,7 +182,7 @@ SUBSYSTEM_DEF(pai)
|
|||||||
dat += "<tr class=\"d1\"><td>Description:</td><td>[c.description]</td></tr>"
|
dat += "<tr class=\"d1\"><td>Description:</td><td>[c.description]</td></tr>"
|
||||||
dat += "<tr class=\"d0\"><td>Preferred Role:</td><td>[c.role]</td></tr>"
|
dat += "<tr class=\"d0\"><td>Preferred Role:</td><td>[c.role]</td></tr>"
|
||||||
dat += "<tr class=\"d1\"><td>OOC Comments:</td><td>[c.comments]</td></tr>"
|
dat += "<tr class=\"d1\"><td>OOC Comments:</td><td>[c.comments]</td></tr>"
|
||||||
dat += "<tr class=\"d2\"><td><a href='byond://?src=\ref[src];download=1;candidate=\ref[c];device=\ref[p]'>\[Download [c.name]\]</a></td><td></td></tr>"
|
dat += "<tr class=\"d2\"><td><a href='byond://?src=[REF(src)];download=1;candidate=[REF(c)];device=[REF(p)]'>\[Download [c.name]\]</a></td><td></td></tr>"
|
||||||
|
|
||||||
dat += "</table>"
|
dat += "</table>"
|
||||||
|
|
||||||
|
|||||||
@@ -10,11 +10,11 @@ PROCESSING_SUBSYSTEM_DEF(radiation)
|
|||||||
/datum/controller/subsystem/processing/radiation/proc/warn(datum/component/radioactive)
|
/datum/controller/subsystem/processing/radiation/proc/warn(datum/component/radioactive)
|
||||||
if(!radioactive || QDELETED(radioactive))
|
if(!radioactive || QDELETED(radioactive))
|
||||||
return
|
return
|
||||||
if(warned_atoms["\ref[radioactive.parent]"])
|
if(warned_atoms["[REF(radioactive.parent)]"])
|
||||||
return
|
return
|
||||||
var/atom/master = radioactive.parent
|
var/atom/master = radioactive.parent
|
||||||
SSblackbox.add_details("contaminated", "[master.type]")
|
SSblackbox.add_details("contaminated", "[master.type]")
|
||||||
next_warn["\ref[master]"] = "\ref[radioactive]"
|
next_warn["[REF(master)]"] = "[REF(radioactive)]"
|
||||||
var/wait_time = max(0, 500-(world.time-last_warn))+20 // wait at least 20 ticks, longer if we just messaged
|
var/wait_time = max(0, 500-(world.time-last_warn))+20 // wait at least 20 ticks, longer if we just messaged
|
||||||
addtimer(CALLBACK(src, .proc/send_warn), wait_time, TIMER_UNIQUE | TIMER_OVERRIDE)
|
addtimer(CALLBACK(src, .proc/send_warn), wait_time, TIMER_UNIQUE | TIMER_OVERRIDE)
|
||||||
|
|
||||||
|
|||||||
@@ -615,7 +615,7 @@ SUBSYSTEM_DEF(ticker)
|
|||||||
if(5) //every 5 ticks check if there is a slot available
|
if(5) //every 5 ticks check if there is a slot available
|
||||||
if(living_player_count() < hpc)
|
if(living_player_count() < hpc)
|
||||||
if(next_in_line && next_in_line.client)
|
if(next_in_line && next_in_line.client)
|
||||||
to_chat(next_in_line, "<span class='userdanger'>A slot has opened! You have approximately 20 seconds to join. <a href='?src=\ref[next_in_line];late_join=override'>\>\>Join Game\<\<</a></span>")
|
to_chat(next_in_line, "<span class='userdanger'>A slot has opened! You have approximately 20 seconds to join. <a href='?src=[REF(next_in_line)];late_join=override'>\>\>Join Game\<\<</a></span>")
|
||||||
SEND_SOUND(next_in_line, sound('sound/misc/notice1.ogg'))
|
SEND_SOUND(next_in_line, sound('sound/misc/notice1.ogg'))
|
||||||
next_in_line.LateChoices()
|
next_in_line.LateChoices()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -243,7 +243,7 @@ SUBSYSTEM_DEF(timer)
|
|||||||
while(SStimer.timer_id_dict["timerid" + num2text(id, 8)])
|
while(SStimer.timer_id_dict["timerid" + num2text(id, 8)])
|
||||||
SStimer.timer_id_dict["timerid" + num2text(id, 8)] = src
|
SStimer.timer_id_dict["timerid" + num2text(id, 8)] = src
|
||||||
|
|
||||||
name = "Timer: " + num2text(id, 8) + ", TTR: [timeToRun], Flags: [jointext(bitfield2list(flags, list("TIMER_UNIQUE", "TIMER_OVERRIDE", "TIMER_CLIENT_TIME", "TIMER_STOPPABLE", "TIMER_NO_HASH_WAIT")), ", ")], callBack: \ref[callBack], callBack.object: [callBack.object]\ref[callBack.object]([getcallingtype()]), callBack.delegate:[callBack.delegate]([callBack.arguments ? callBack.arguments.Join(", ") : ""])"
|
name = "Timer: " + num2text(id, 8) + ", TTR: [timeToRun], Flags: [jointext(bitfield2list(flags, list("TIMER_UNIQUE", "TIMER_OVERRIDE", "TIMER_CLIENT_TIME", "TIMER_STOPPABLE", "TIMER_NO_HASH_WAIT")), ", ")], callBack: [REF(callBack)], callBack.object: [callBack.object][REF(callBack.object)]([getcallingtype()]), callBack.delegate:[callBack.delegate]([callBack.arguments ? callBack.arguments.Join(", ") : ""])"
|
||||||
|
|
||||||
if (spent)
|
if (spent)
|
||||||
CRASH("HOLY JESUS. WHAT IS THAT? WHAT THE FUCK IS THAT?")
|
CRASH("HOLY JESUS. WHAT IS THAT? WHAT THE FUCK IS THAT?")
|
||||||
@@ -362,9 +362,9 @@ SUBSYSTEM_DEF(timer)
|
|||||||
if (flags & TIMER_UNIQUE)
|
if (flags & TIMER_UNIQUE)
|
||||||
var/list/hashlist
|
var/list/hashlist
|
||||||
if(flags & TIMER_NO_HASH_WAIT)
|
if(flags & TIMER_NO_HASH_WAIT)
|
||||||
hashlist = list(callback.object, "(\ref[callback.object])", callback.delegate, flags & TIMER_CLIENT_TIME)
|
hashlist = list(callback.object, "([REF(callback.object)])", callback.delegate, flags & TIMER_CLIENT_TIME)
|
||||||
else
|
else
|
||||||
hashlist = list(callback.object, "(\ref[callback.object])", callback.delegate, wait, flags & TIMER_CLIENT_TIME)
|
hashlist = list(callback.object, "([REF(callback.object)])", callback.delegate, wait, flags & TIMER_CLIENT_TIME)
|
||||||
hashlist += callback.arguments
|
hashlist += callback.arguments
|
||||||
hash = hashlist.Join("|||||||")
|
hash = hashlist.Join("|||||||")
|
||||||
|
|
||||||
|
|||||||
@@ -199,7 +199,7 @@ SUBSYSTEM_DEF(vote)
|
|||||||
text += "\n[question]"
|
text += "\n[question]"
|
||||||
log_vote(text)
|
log_vote(text)
|
||||||
var/vp = CONFIG_GET(number/vote_period)
|
var/vp = CONFIG_GET(number/vote_period)
|
||||||
to_chat(world, "\n<font color='purple'><b>[text]</b>\nType <b>vote</b> or click <a href='?src=\ref[src]'>here</a> to place your votes.\nYou have [DisplayTimeText(vp)] to vote.</font>")
|
to_chat(world, "\n<font color='purple'><b>[text]</b>\nType <b>vote</b> or click <a href='?src=[REF(src)]'>here</a> to place your votes.\nYou have [DisplayTimeText(vp)] to vote.</font>")
|
||||||
time_remaining = round(vp/10)
|
time_remaining = round(vp/10)
|
||||||
for(var/c in GLOB.clients)
|
for(var/c in GLOB.clients)
|
||||||
var/client/C = c
|
var/client/C = c
|
||||||
@@ -232,36 +232,36 @@ SUBSYSTEM_DEF(vote)
|
|||||||
var/votes = choices[choices[i]]
|
var/votes = choices[choices[i]]
|
||||||
if(!votes)
|
if(!votes)
|
||||||
votes = 0
|
votes = 0
|
||||||
. += "<li><a href='?src=\ref[src];vote=[i]'>[choices[i]]</a> ([votes] votes)</li>"
|
. += "<li><a href='?src=[REF(src)];vote=[i]'>[choices[i]]</a> ([votes] votes)</li>"
|
||||||
. += "</ul><hr>"
|
. += "</ul><hr>"
|
||||||
if(admin)
|
if(admin)
|
||||||
. += "(<a href='?src=\ref[src];vote=cancel'>Cancel Vote</a>) "
|
. += "(<a href='?src=[REF(src)];vote=cancel'>Cancel Vote</a>) "
|
||||||
else
|
else
|
||||||
. += "<h2>Start a vote:</h2><hr><ul><li>"
|
. += "<h2>Start a vote:</h2><hr><ul><li>"
|
||||||
//restart
|
//restart
|
||||||
var/avr = CONFIG_GET(flag/allow_vote_restart)
|
var/avr = CONFIG_GET(flag/allow_vote_restart)
|
||||||
if(trialmin || avr)
|
if(trialmin || avr)
|
||||||
. += "<a href='?src=\ref[src];vote=restart'>Restart</a>"
|
. += "<a href='?src=[REF(src)];vote=restart'>Restart</a>"
|
||||||
else
|
else
|
||||||
. += "<font color='grey'>Restart (Disallowed)</font>"
|
. += "<font color='grey'>Restart (Disallowed)</font>"
|
||||||
if(trialmin)
|
if(trialmin)
|
||||||
. += "\t(<a href='?src=\ref[src];vote=toggle_restart'>[avr ? "Allowed" : "Disallowed"]</a>)"
|
. += "\t(<a href='?src=[REF(src)];vote=toggle_restart'>[avr ? "Allowed" : "Disallowed"]</a>)"
|
||||||
. += "</li><li>"
|
. += "</li><li>"
|
||||||
//gamemode
|
//gamemode
|
||||||
var/avm = CONFIG_GET(flag/allow_vote_mode)
|
var/avm = CONFIG_GET(flag/allow_vote_mode)
|
||||||
if(trialmin || avm)
|
if(trialmin || avm)
|
||||||
. += "<a href='?src=\ref[src];vote=gamemode'>GameMode</a>"
|
. += "<a href='?src=[REF(src)];vote=gamemode'>GameMode</a>"
|
||||||
else
|
else
|
||||||
. += "<font color='grey'>GameMode (Disallowed)</font>"
|
. += "<font color='grey'>GameMode (Disallowed)</font>"
|
||||||
if(trialmin)
|
if(trialmin)
|
||||||
. += "\t(<a href='?src=\ref[src];vote=toggle_gamemode'>[avm ? "Allowed" : "Disallowed"]</a>)"
|
. += "\t(<a href='?src=[REF(src)];vote=toggle_gamemode'>[avm ? "Allowed" : "Disallowed"]</a>)"
|
||||||
|
|
||||||
. += "</li>"
|
. += "</li>"
|
||||||
//custom
|
//custom
|
||||||
if(trialmin)
|
if(trialmin)
|
||||||
. += "<li><a href='?src=\ref[src];vote=custom'>Custom</a></li>"
|
. += "<li><a href='?src=[REF(src)];vote=custom'>Custom</a></li>"
|
||||||
. += "</ul><hr>"
|
. += "</ul><hr>"
|
||||||
. += "<a href='?src=\ref[src];vote=close' style='position:absolute;right:50px'>Close</a>"
|
. += "<a href='?src=[REF(src)];vote=close' style='position:absolute;right:50px'>Close</a>"
|
||||||
return .
|
return .
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -132,13 +132,13 @@
|
|||||||
|
|
||||||
var/output = {"<center><b>[Message]</b></center><br />
|
var/output = {"<center><b>[Message]</b></center><br />
|
||||||
<div style="text-align:center">
|
<div style="text-align:center">
|
||||||
<a style="font-size:large;float:[( Button2 ? "left" : "right" )]" href="?src=\ref[src];button=1">[Button1]</a>"}
|
<a style="font-size:large;float:[( Button2 ? "left" : "right" )]" href="?src=[REF(src)];button=1">[Button1]</a>"}
|
||||||
|
|
||||||
if (Button2)
|
if (Button2)
|
||||||
output += {"<a style="font-size:large;[( Button3 ? "" : "float:right" )]" href="?src=\ref[src];button=2">[Button2]</a>"}
|
output += {"<a style="font-size:large;[( Button3 ? "" : "float:right" )]" href="?src=[REF(src)];button=2">[Button2]</a>"}
|
||||||
|
|
||||||
if (Button3)
|
if (Button3)
|
||||||
output += {"<a style="font-size:large;float:right" href="?src=\ref[src];button=3">[Button3]</a>"}
|
output += {"<a style="font-size:large;float:right" href="?src=[REF(src)];button=3">[Button3]</a>"}
|
||||||
|
|
||||||
output += {"</div>"}
|
output += {"</div>"}
|
||||||
|
|
||||||
@@ -253,7 +253,7 @@
|
|||||||
return
|
return
|
||||||
var/param = "null"
|
var/param = "null"
|
||||||
if(ref)
|
if(ref)
|
||||||
param = "\ref[ref]"
|
param = "[REF(ref)]"
|
||||||
|
|
||||||
winset(user, windowid, "on-close=\".windowclose [param]\"")
|
winset(user, windowid, "on-close=\".windowclose [param]\"")
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
var/list/active_timers //for SStimer
|
var/list/active_timers //for SStimer
|
||||||
var/list/datum_components //for /datum/components
|
var/list/datum_components //for /datum/components
|
||||||
var/ui_screen = "home" //for tgui
|
var/ui_screen = "home" //for tgui
|
||||||
|
var/use_tag = FALSE
|
||||||
|
|
||||||
#ifdef TESTING
|
#ifdef TESTING
|
||||||
var/running_find_references
|
var/running_find_references
|
||||||
|
|||||||
@@ -25,10 +25,10 @@
|
|||||||
/datum/proc/vv_get_dropdown()
|
/datum/proc/vv_get_dropdown()
|
||||||
. = list()
|
. = list()
|
||||||
. += "---"
|
. += "---"
|
||||||
.["Call Proc"] = "?_src_=vars;[HrefToken()];proc_call=\ref[src]"
|
.["Call Proc"] = "?_src_=vars;[HrefToken()];proc_call=[REF(src)]"
|
||||||
.["Mark Object"] = "?_src_=vars;[HrefToken()];mark_object=\ref[src]"
|
.["Mark Object"] = "?_src_=vars;[HrefToken()];mark_object=[REF(src)]"
|
||||||
.["Delete"] = "?_src_=vars;[HrefToken()];delete=\ref[src]"
|
.["Delete"] = "?_src_=vars;[HrefToken()];delete=[REF(src)]"
|
||||||
.["Show VV To Player"] = "?_src_=vars;[HrefToken(TRUE)];expose=\ref[src]"
|
.["Show VV To Player"] = "?_src_=vars;[HrefToken(TRUE)];expose=[REF(src)]"
|
||||||
|
|
||||||
|
|
||||||
/datum/proc/on_reagent_change()
|
/datum/proc/on_reagent_change()
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
var/title = ""
|
var/title = ""
|
||||||
var/refid = "\ref[D]"
|
var/refid = "[REF(D)]"
|
||||||
var/icon/sprite
|
var/icon/sprite
|
||||||
var/hash
|
var/hash
|
||||||
|
|
||||||
@@ -71,7 +71,7 @@
|
|||||||
hash = md5(hash + AT.icon_state)
|
hash = md5(hash + AT.icon_state)
|
||||||
src << browse_rsc(sprite, "vv[hash].png")
|
src << browse_rsc(sprite, "vv[hash].png")
|
||||||
|
|
||||||
title = "[D] (\ref[D]) = [type]"
|
title = "[D] ([REF(D)]) = [type]"
|
||||||
|
|
||||||
var/sprite_text
|
var/sprite_text
|
||||||
if(sprite)
|
if(sprite)
|
||||||
@@ -394,9 +394,9 @@
|
|||||||
name = DA[name] //name is really the index until this line
|
name = DA[name] //name is really the index until this line
|
||||||
else
|
else
|
||||||
value = DA[name]
|
value = DA[name]
|
||||||
header = "<li style='backgroundColor:white'>(<a href='?_src_=vars;[HrefToken()];listedit=\ref[DA];index=[index]'>E</a>) (<a href='?_src_=vars;[HrefToken()];listchange=\ref[DA];index=[index]'>C</a>) (<a href='?_src_=vars;[HrefToken()];listremove=\ref[DA];index=[index]'>-</a>) "
|
header = "<li style='backgroundColor:white'>(<a href='?_src_=vars;[HrefToken()];listedit=[REF(DA)];index=[index]'>E</a>) (<a href='?_src_=vars;[HrefToken()];listchange=[REF(DA)];index=[index]'>C</a>) (<a href='?_src_=vars;[HrefToken()];listremove=[REF(DA)];index=[index]'>-</a>) "
|
||||||
else
|
else
|
||||||
header = "<li style='backgroundColor:white'>(<a href='?_src_=vars;[HrefToken()];datumedit=\ref[DA];varnameedit=[name]'>E</a>) (<a href='?_src_=vars;[HrefToken()];datumchange=\ref[DA];varnamechange=[name]'>C</a>) (<a href='?_src_=vars;[HrefToken()];datummass=\ref[DA];varnamemass=[name]'>M</a>) "
|
header = "<li style='backgroundColor:white'>(<a href='?_src_=vars;[HrefToken()];datumedit=[REF(DA)];varnameedit=[name]'>E</a>) (<a href='?_src_=vars;[HrefToken()];datumchange=[REF(DA)];varnamechange=[name]'>C</a>) (<a href='?_src_=vars;[HrefToken()];datummass=[REF(DA)];varnamemass=[name]'>M</a>) "
|
||||||
else
|
else
|
||||||
header = "<li>"
|
header = "<li>"
|
||||||
|
|
||||||
@@ -411,7 +411,7 @@
|
|||||||
#ifdef VARSICON
|
#ifdef VARSICON
|
||||||
var/icon/I = new/icon(value)
|
var/icon/I = new/icon(value)
|
||||||
var/rnd = rand(1,10000)
|
var/rnd = rand(1,10000)
|
||||||
var/rname = "tmp\ref[I][rnd].png"
|
var/rname = "tmp[REF(I)][rnd].png"
|
||||||
usr << browse_rsc(I, rname)
|
usr << browse_rsc(I, rname)
|
||||||
item = "[VV_HTML_ENCODE(name)] = (<span class='value'>[value]</span>) <img class=icon src=\"[rname]\">"
|
item = "[VV_HTML_ENCODE(name)] = (<span class='value'>[value]</span>) <img class=icon src=\"[rname]\">"
|
||||||
#else
|
#else
|
||||||
@@ -423,8 +423,8 @@
|
|||||||
var/rnd = rand(1, 10000)
|
var/rnd = rand(1, 10000)
|
||||||
var/image/I = value
|
var/image/I = value
|
||||||
|
|
||||||
src << browse_rsc(I.icon, "tmp\ref[value][rnd].png")
|
src << browse_rsc(I.icon, "tmp[REF(value)][rnd].png")
|
||||||
html += "[name] = <img src=\"tmp\ref[value][rnd].png\">"
|
html += "[name] = <img src=\"tmp[REF(value)][rnd].png\">"
|
||||||
#else
|
#else
|
||||||
html += "[name] = /image (<span class='value'>[value]</span>)"
|
html += "[name] = /image (<span class='value'>[value]</span>)"
|
||||||
#endif
|
#endif
|
||||||
@@ -434,14 +434,14 @@
|
|||||||
|
|
||||||
//else if (istype(value, /client))
|
//else if (istype(value, /client))
|
||||||
// var/client/C = value
|
// var/client/C = value
|
||||||
// item = "<a href='?_src_=vars;Vars=\ref[value]'>[VV_HTML_ENCODE(name)] \ref[value]</a> = [C] [C.type]"
|
// item = "<a href='?_src_=vars;Vars=[REF(value)]'>[VV_HTML_ENCODE(name)] [REF(value)]</a> = [C] [C.type]"
|
||||||
|
|
||||||
else if (istype(value, /datum))
|
else if (istype(value, /datum))
|
||||||
var/datum/D = value
|
var/datum/D = value
|
||||||
if ("[D]" != "[D.type]") //if the thing as a name var, lets use it.
|
if ("[D]" != "[D.type]") //if the thing as a name var, lets use it.
|
||||||
item = "<a href='?_src_=vars;[HrefToken()];Vars=\ref[value]'>[VV_HTML_ENCODE(name)] \ref[value]</a> = [D] [D.type]"
|
item = "<a href='?_src_=vars;[HrefToken()];Vars=[REF(value)]'>[VV_HTML_ENCODE(name)] [REF(value)]</a> = [D] [D.type]"
|
||||||
else
|
else
|
||||||
item = "<a href='?_src_=vars;[HrefToken()];Vars=\ref[value]'>[VV_HTML_ENCODE(name)] \ref[value]</a> = [D.type]"
|
item = "<a href='?_src_=vars;[HrefToken()];Vars=[REF(value)]'>[VV_HTML_ENCODE(name)] [REF(value)]</a> = [D.type]"
|
||||||
|
|
||||||
else if (islist(value))
|
else if (islist(value))
|
||||||
var/list/L = value
|
var/list/L = value
|
||||||
@@ -459,9 +459,9 @@
|
|||||||
|
|
||||||
items += debug_variable(key, val, level + 1, sanitize = sanitize)
|
items += debug_variable(key, val, level + 1, sanitize = sanitize)
|
||||||
|
|
||||||
item = "<a href='?_src_=vars;[HrefToken()];Vars=\ref[value]'>[VV_HTML_ENCODE(name)] = /list ([L.len])</a><ul>[items.Join()]</ul>"
|
item = "<a href='?_src_=vars;[HrefToken()];Vars=[REF(value)]'>[VV_HTML_ENCODE(name)] = /list ([L.len])</a><ul>[items.Join()]</ul>"
|
||||||
else
|
else
|
||||||
item = "<a href='?_src_=vars;[HrefToken()];Vars=\ref[value]'>[VV_HTML_ENCODE(name)] = /list ([L.len])</a>"
|
item = "<a href='?_src_=vars;[HrefToken()];Vars=[REF(value)]'>[VV_HTML_ENCODE(name)] = /list ([L.len])</a>"
|
||||||
|
|
||||||
else
|
else
|
||||||
item = "[VV_HTML_ENCODE(name)] = <span class='value'>[VV_HTML_ENCODE(value)]</span>"
|
item = "[VV_HTML_ENCODE(name)] = <span class='value'>[VV_HTML_ENCODE(value)]</span>"
|
||||||
@@ -561,7 +561,7 @@
|
|||||||
var/prompt = alert("Do you want to grant [C] access to view this VV window? (they will not be able to edit or change anything nor open nested vv windows unless they themselves are an admin)", "Confirm", "Yes", "No")
|
var/prompt = alert("Do you want to grant [C] access to view this VV window? (they will not be able to edit or change anything nor open nested vv windows unless they themselves are an admin)", "Confirm", "Yes", "No")
|
||||||
if (prompt != "Yes" || !usr.client)
|
if (prompt != "Yes" || !usr.client)
|
||||||
return
|
return
|
||||||
message_admins("[key_name_admin(usr)] Showed [key_name_admin(C)] a <a href='?_src_=vars;[HrefToken(TRUE)];datumrefresh=\ref[thing]'>VV window</a>")
|
message_admins("[key_name_admin(usr)] Showed [key_name_admin(C)] a <a href='?_src_=vars;[HrefToken(TRUE)];datumrefresh=[REF(thing)]'>VV window</a>")
|
||||||
log_admin("Admin [key_name(usr)] Showed [key_name(C)] a VV window of a [thing]")
|
log_admin("Admin [key_name(usr)] Showed [key_name(C)] a VV window of a [thing]")
|
||||||
to_chat(C, "[usr.client.holder.fakekey ? "an Administrator" : "[usr.client.key]"] has granted you access to view a View Variables window")
|
to_chat(C, "[usr.client.holder.fakekey ? "an Administrator" : "[usr.client.key]"] has granted you access to view a View Variables window")
|
||||||
C.debug_variables(thing)
|
C.debug_variables(thing)
|
||||||
|
|||||||
@@ -388,7 +388,7 @@
|
|||||||
|
|
||||||
var/out = "<B>[name]</B>[(current&&(current.real_name!=name))?" (as [current.real_name])":""]<br>"
|
var/out = "<B>[name]</B>[(current&&(current.real_name!=name))?" (as [current.real_name])":""]<br>"
|
||||||
out += "Mind currently owned by key: [key] [active?"(synced)":"(not synced)"]<br>"
|
out += "Mind currently owned by key: [key] [active?"(synced)":"(not synced)"]<br>"
|
||||||
out += "Assigned role: [assigned_role]. <a href='?src=\ref[src];role_edit=1'>Edit</a><br>"
|
out += "Assigned role: [assigned_role]. <a href='?src=[REF(src)];role_edit=1'>Edit</a><br>"
|
||||||
out += "Faction and special role: <b><font color='red'>[special_role]</font></b><br>"
|
out += "Faction and special role: <b><font color='red'>[special_role]</font></b><br>"
|
||||||
|
|
||||||
var/list/sections = list(
|
var/list/sections = list(
|
||||||
@@ -412,11 +412,11 @@
|
|||||||
text = uppertext(text)
|
text = uppertext(text)
|
||||||
text = "<i><b>[text]</b></i>: "
|
text = "<i><b>[text]</b></i>: "
|
||||||
if (src in SSticker.mode.traitors)
|
if (src in SSticker.mode.traitors)
|
||||||
text += "<b>TRAITOR</b> | <a href='?src=\ref[src];traitor=clear'>loyal</a>"
|
text += "<b>TRAITOR</b> | <a href='?src=[REF(src)];traitor=clear'>loyal</a>"
|
||||||
if (objectives.len==0)
|
if (objectives.len==0)
|
||||||
text += "<br>Objectives are empty! <a href='?src=\ref[src];traitor=autoobjectives'>Randomize</a>!"
|
text += "<br>Objectives are empty! <a href='?src=[REF(src)];traitor=autoobjectives'>Randomize</a>!"
|
||||||
else
|
else
|
||||||
text += "<a href='?src=\ref[src];traitor=traitor'>traitor</a> | <b>LOYAL</b>"
|
text += "<a href='?src=[REF(src)];traitor=traitor'>traitor</a> | <b>LOYAL</b>"
|
||||||
|
|
||||||
if(current && current.client && (ROLE_TRAITOR in current.client.prefs.be_special))
|
if(current && current.client && (ROLE_TRAITOR in current.client.prefs.be_special))
|
||||||
text += " | Enabled in Prefs"
|
text += " | Enabled in Prefs"
|
||||||
@@ -434,7 +434,7 @@
|
|||||||
text = uppertext(text)
|
text = uppertext(text)
|
||||||
text = "<i><b>[text]</b></i>: "
|
text = "<i><b>[text]</b></i>: "
|
||||||
if(src in SSticker.mode.brothers)
|
if(src in SSticker.mode.brothers)
|
||||||
text += "<b>Brother</b> | <a href='?src=\ref[src];brother=clear'>no</a>"
|
text += "<b>Brother</b> | <a href='?src=[REF(src)];brother=clear'>no</a>"
|
||||||
|
|
||||||
if(current && current.client && (ROLE_BROTHER in current.client.prefs.be_special))
|
if(current && current.client && (ROLE_BROTHER in current.client.prefs.be_special))
|
||||||
text += " | Enabled in Prefs"
|
text += " | Enabled in Prefs"
|
||||||
@@ -449,19 +449,19 @@
|
|||||||
text = uppertext(text)
|
text = uppertext(text)
|
||||||
text = "<i><b>[text]</b></i>: "
|
text = "<i><b>[text]</b></i>: "
|
||||||
if ((src in SSticker.mode.changelings) && special_role)
|
if ((src in SSticker.mode.changelings) && special_role)
|
||||||
text += "<b>YES</b> | <a href='?src=\ref[src];changeling=clear'>no</a>"
|
text += "<b>YES</b> | <a href='?src=[REF(src)];changeling=clear'>no</a>"
|
||||||
if (objectives.len==0)
|
if (objectives.len==0)
|
||||||
text += "<br>Objectives are empty! <a href='?src=\ref[src];changeling=autoobjectives'>Randomize!</a>"
|
text += "<br>Objectives are empty! <a href='?src=[REF(src)];changeling=autoobjectives'>Randomize!</a>"
|
||||||
if(changeling && changeling.stored_profiles.len && (current.real_name != changeling.first_prof.name) )
|
if(changeling && changeling.stored_profiles.len && (current.real_name != changeling.first_prof.name) )
|
||||||
text += "<br><a href='?src=\ref[src];changeling=initialdna'>Transform to initial appearance.</a>"
|
text += "<br><a href='?src=[REF(src)];changeling=initialdna'>Transform to initial appearance.</a>"
|
||||||
else if(src in SSticker.mode.changelings) //Station Aligned Changeling
|
else if(src in SSticker.mode.changelings) //Station Aligned Changeling
|
||||||
text += "<b>YES (but not an antag)</b> | <a href='?src=\ref[src];changeling=clear'>no</a>"
|
text += "<b>YES (but not an antag)</b> | <a href='?src=[REF(src)];changeling=clear'>no</a>"
|
||||||
if (objectives.len==0)
|
if (objectives.len==0)
|
||||||
text += "<br>Objectives are empty! <a href='?src=\ref[src];changeling=autoobjectives'>Randomize!</a>"
|
text += "<br>Objectives are empty! <a href='?src=[REF(src)];changeling=autoobjectives'>Randomize!</a>"
|
||||||
if(changeling && changeling.stored_profiles.len && (current.real_name != changeling.first_prof.name) )
|
if(changeling && changeling.stored_profiles.len && (current.real_name != changeling.first_prof.name) )
|
||||||
text += "<br><a href='?src=\ref[src];changeling=initialdna'>Transform to initial appearance.</a>"
|
text += "<br><a href='?src=[REF(src)];changeling=initialdna'>Transform to initial appearance.</a>"
|
||||||
else
|
else
|
||||||
text += "<a href='?src=\ref[src];changeling=changeling'>yes</a> | <b>NO</b>"
|
text += "<a href='?src=[REF(src)];changeling=changeling'>yes</a> | <b>NO</b>"
|
||||||
|
|
||||||
if(current && current.client && (ROLE_CHANGELING in current.client.prefs.be_special))
|
if(current && current.client && (ROLE_CHANGELING in current.client.prefs.be_special))
|
||||||
text += " | Enabled in Prefs"
|
text += " | Enabled in Prefs"
|
||||||
@@ -477,7 +477,7 @@
|
|||||||
text = uppertext(text)
|
text = uppertext(text)
|
||||||
text = "<i><b>[text]</b></i>: "
|
text = "<i><b>[text]</b></i>: "
|
||||||
if (ishuman(current))
|
if (ishuman(current))
|
||||||
text += "<a href='?src=\ref[src];monkey=healthy'>healthy</a> | <a href='?src=\ref[src];monkey=infected'>infected</a> | <b>HUMAN</b> | other"
|
text += "<a href='?src=[REF(src)];monkey=healthy'>healthy</a> | <a href='?src=[REF(src)];monkey=infected'>infected</a> | <b>HUMAN</b> | other"
|
||||||
else if(ismonkey(current))
|
else if(ismonkey(current))
|
||||||
var/found = FALSE
|
var/found = FALSE
|
||||||
for(var/datum/disease/transformation/jungle_fever/JF in current.viruses)
|
for(var/datum/disease/transformation/jungle_fever/JF in current.viruses)
|
||||||
@@ -485,9 +485,9 @@
|
|||||||
break
|
break
|
||||||
|
|
||||||
if(found)
|
if(found)
|
||||||
text += "<a href='?src=\ref[src];monkey=healthy'>healthy</a> | <b>INFECTED</b> | <a href='?src=\ref[src];monkey=human'>human</a> | other"
|
text += "<a href='?src=[REF(src)];monkey=healthy'>healthy</a> | <b>INFECTED</b> | <a href='?src=[REF(src)];monkey=human'>human</a> | other"
|
||||||
else
|
else
|
||||||
text += "<b>HEALTHY</b> | <a href='?src=\ref[src];monkey=infected'>infected</a> | <a href='?src=\ref[src];monkey=human'>human</a> | other"
|
text += "<b>HEALTHY</b> | <a href='?src=[REF(src)];monkey=infected'>infected</a> | <a href='?src=[REF(src)];monkey=human'>human</a> | other"
|
||||||
|
|
||||||
else
|
else
|
||||||
text += "healthy | infected | human | <b>OTHER</b>"
|
text += "healthy | infected | human | <b>OTHER</b>"
|
||||||
@@ -507,17 +507,17 @@
|
|||||||
text = uppertext(text)
|
text = uppertext(text)
|
||||||
text = "<i><b>[text]</b></i>: "
|
text = "<i><b>[text]</b></i>: "
|
||||||
if (src in SSticker.mode.syndicates)
|
if (src in SSticker.mode.syndicates)
|
||||||
text += "<b>OPERATIVE</b> | <a href='?src=\ref[src];nuclear=clear'>nanotrasen</a>"
|
text += "<b>OPERATIVE</b> | <a href='?src=[REF(src)];nuclear=clear'>nanotrasen</a>"
|
||||||
text += "<br><a href='?src=\ref[src];nuclear=lair'>To shuttle</a>, <a href='?src=\ref[src];common=undress'>undress</a>, <a href='?src=\ref[src];nuclear=dressup'>dress up</a>."
|
text += "<br><a href='?src=[REF(src)];nuclear=lair'>To shuttle</a>, <a href='?src=[REF(src)];common=undress'>undress</a>, <a href='?src=[REF(src)];nuclear=dressup'>dress up</a>."
|
||||||
var/code
|
var/code
|
||||||
for (var/obj/machinery/nuclearbomb/bombue in GLOB.machines)
|
for (var/obj/machinery/nuclearbomb/bombue in GLOB.machines)
|
||||||
if (length(bombue.r_code) <= 5 && bombue.r_code != "LOLNO" && bombue.r_code != "ADMIN")
|
if (length(bombue.r_code) <= 5 && bombue.r_code != "LOLNO" && bombue.r_code != "ADMIN")
|
||||||
code = bombue.r_code
|
code = bombue.r_code
|
||||||
break
|
break
|
||||||
if (code)
|
if (code)
|
||||||
text += " Code is [code]. <a href='?src=\ref[src];nuclear=tellcode'>tell the code.</a>"
|
text += " Code is [code]. <a href='?src=[REF(src)];nuclear=tellcode'>tell the code.</a>"
|
||||||
else
|
else
|
||||||
text += "<a href='?src=\ref[src];nuclear=nuclear'>operative</a> | <b>NANOTRASEN</b>"
|
text += "<a href='?src=[REF(src)];nuclear=nuclear'>operative</a> | <b>NANOTRASEN</b>"
|
||||||
|
|
||||||
if(current && current.client && (ROLE_OPERATIVE in current.client.prefs.be_special))
|
if(current && current.client && (ROLE_OPERATIVE in current.client.prefs.be_special))
|
||||||
text += " | Enabled in Prefs"
|
text += " | Enabled in Prefs"
|
||||||
@@ -533,10 +533,10 @@
|
|||||||
text = uppertext(text)
|
text = uppertext(text)
|
||||||
text = "<i><b>[text]</b></i>: "
|
text = "<i><b>[text]</b></i>: "
|
||||||
if (has_antag_datum(/datum/antagonist/wizard))
|
if (has_antag_datum(/datum/antagonist/wizard))
|
||||||
text += "<b>YES</b> | <a href='?src=\ref[src];wizard=clear'>no</a>"
|
text += "<b>YES</b> | <a href='?src=[REF(src)];wizard=clear'>no</a>"
|
||||||
text += "<br><a href='?src=\ref[src];wizard=lair'>To lair</a>, <a href='?src=\ref[src];common=undress'>undress</a>"
|
text += "<br><a href='?src=[REF(src)];wizard=lair'>To lair</a>, <a href='?src=[REF(src)];common=undress'>undress</a>"
|
||||||
else
|
else
|
||||||
text += "<a href='?src=\ref[src];wizard=wizard'>yes</a> | <b>NO</b>"
|
text += "<a href='?src=[REF(src)];wizard=wizard'>yes</a> | <b>NO</b>"
|
||||||
|
|
||||||
if(current && current.client && (ROLE_WIZARD in current.client.prefs.be_special))
|
if(current && current.client && (ROLE_WIZARD in current.client.prefs.be_special))
|
||||||
text += " | Enabled in Prefs"
|
text += " | Enabled in Prefs"
|
||||||
@@ -563,28 +563,28 @@
|
|||||||
if(M && (M.z in GLOB.station_z_levels) && !M.stat)
|
if(M && (M.z in GLOB.station_z_levels) && !M.stat)
|
||||||
last_healthy_headrev = FALSE
|
last_healthy_headrev = FALSE
|
||||||
break
|
break
|
||||||
text += "head | not mindshielded | <a href='?src=\ref[src];revolution=clear'>employee</a> | <b>[last_healthy_headrev ? "<font color='red'>LAST </font> " : ""]HEADREV</b> | <a href='?src=\ref[src];revolution=rev'>rev</a>"
|
text += "head | not mindshielded | <a href='?src=[REF(src)];revolution=clear'>employee</a> | <b>[last_healthy_headrev ? "<font color='red'>LAST </font> " : ""]HEADREV</b> | <a href='?src=[REF(src)];revolution=rev'>rev</a>"
|
||||||
text += "<br>Flash: <a href='?src=\ref[src];revolution=flash'>give</a>"
|
text += "<br>Flash: <a href='?src=[REF(src)];revolution=flash'>give</a>"
|
||||||
|
|
||||||
var/list/L = current.get_contents()
|
var/list/L = current.get_contents()
|
||||||
var/obj/item/device/assembly/flash/flash = locate() in L
|
var/obj/item/device/assembly/flash/flash = locate() in L
|
||||||
if (flash)
|
if (flash)
|
||||||
if(!flash.crit_fail)
|
if(!flash.crit_fail)
|
||||||
text += " | <a href='?src=\ref[src];revolution=takeflash'>take</a>."
|
text += " | <a href='?src=[REF(src)];revolution=takeflash'>take</a>."
|
||||||
else
|
else
|
||||||
text += " | <a href='?src=\ref[src];revolution=takeflash'>take</a> | <a href='?src=\ref[src];revolution=repairflash'>repair</a>."
|
text += " | <a href='?src=[REF(src)];revolution=takeflash'>take</a> | <a href='?src=[REF(src)];revolution=repairflash'>repair</a>."
|
||||||
else
|
else
|
||||||
text += "."
|
text += "."
|
||||||
|
|
||||||
text += " <a href='?src=\ref[src];revolution=reequip'>Reequip</a> (gives traitor uplink)."
|
text += " <a href='?src=[REF(src)];revolution=reequip'>Reequip</a> (gives traitor uplink)."
|
||||||
if (objectives.len==0)
|
if (objectives.len==0)
|
||||||
text += "<br>Objectives are empty! <a href='?src=\ref[src];revolution=autoobjectives'>Set to kill all heads</a>."
|
text += "<br>Objectives are empty! <a href='?src=[REF(src)];revolution=autoobjectives'>Set to kill all heads</a>."
|
||||||
else if(current.isloyal())
|
else if(current.isloyal())
|
||||||
text += "head | <b>MINDSHIELDED</b> | employee | <a href='?src=\ref[src];revolution=headrev'>headrev</a> | rev"
|
text += "head | <b>MINDSHIELDED</b> | employee | <a href='?src=[REF(src)];revolution=headrev'>headrev</a> | rev"
|
||||||
else if (has_antag_datum(/datum/antagonist/rev))
|
else if (has_antag_datum(/datum/antagonist/rev))
|
||||||
text += "head | not mindshielded | <a href='?src=\ref[src];revolution=clear'>employee</a> | <a href='?src=\ref[src];revolution=headrev'>headrev</a> | <b>REV</b>"
|
text += "head | not mindshielded | <a href='?src=[REF(src)];revolution=clear'>employee</a> | <a href='?src=[REF(src)];revolution=headrev'>headrev</a> | <b>REV</b>"
|
||||||
else
|
else
|
||||||
text += "head | not mindshielded | <b>EMPLOYEE</b> | <a href='?src=\ref[src];revolution=headrev'>headrev</a> | <a href='?src=\ref[src];revolution=rev'>rev</a>"
|
text += "head | not mindshielded | <b>EMPLOYEE</b> | <a href='?src=[REF(src)];revolution=headrev'>headrev</a> | <a href='?src=[REF(src)];revolution=rev'>rev</a>"
|
||||||
|
|
||||||
if(current && current.client && (ROLE_REV in current.client.prefs.be_special))
|
if(current && current.client && (ROLE_REV in current.client.prefs.be_special))
|
||||||
text += " | Enabled in Prefs"
|
text += " | Enabled in Prefs"
|
||||||
@@ -599,8 +599,8 @@
|
|||||||
text = uppertext(text)
|
text = uppertext(text)
|
||||||
text = "<i><b>[text]</b></i>: "
|
text = "<i><b>[text]</b></i>: "
|
||||||
if(src in SSticker.mode.abductors)
|
if(src in SSticker.mode.abductors)
|
||||||
text += "<b>Abductor</b> | <a href='?src=\ref[src];abductor=clear'>human</a>"
|
text += "<b>Abductor</b> | <a href='?src=[REF(src)];abductor=clear'>human</a>"
|
||||||
text += " | <a href='?src=\ref[src];common=undress'>undress</a> | <a href='?src=\ref[src];abductor=equip'>equip</a>"
|
text += " | <a href='?src=[REF(src)];common=undress'>undress</a> | <a href='?src=[REF(src)];abductor=equip'>equip</a>"
|
||||||
|
|
||||||
if(current && current.client && (ROLE_ABDUCTOR in current.client.prefs.be_special))
|
if(current && current.client && (ROLE_ABDUCTOR in current.client.prefs.be_special))
|
||||||
text += " | Enabled in Prefs"
|
text += " | Enabled in Prefs"
|
||||||
@@ -618,13 +618,13 @@
|
|||||||
var/datum/antagonist/devil/devilinfo = has_antag_datum(ANTAG_DATUM_DEVIL)
|
var/datum/antagonist/devil/devilinfo = has_antag_datum(ANTAG_DATUM_DEVIL)
|
||||||
if(devilinfo)
|
if(devilinfo)
|
||||||
if(!devilinfo.ascendable)
|
if(!devilinfo.ascendable)
|
||||||
text += "<b>DEVIL</b> | <a href='?src=\ref[src];devil=ascendable_devil'>ascendable devil</a> | sintouched | <a href='?src=\ref[src];devil=clear'>human</a>"
|
text += "<b>DEVIL</b> | <a href='?src=[REF(src)];devil=ascendable_devil'>ascendable devil</a> | sintouched | <a href='?src=[REF(src)];devil=clear'>human</a>"
|
||||||
else
|
else
|
||||||
text += "<a href='?src=\ref[src];devil=devil'>DEVIL</a> | <b>ASCENDABLE DEVIL</b> | sintouched | <a href='?src=\ref[src];devil=clear'>human</a>"
|
text += "<a href='?src=[REF(src)];devil=devil'>DEVIL</a> | <b>ASCENDABLE DEVIL</b> | sintouched | <a href='?src=[REF(src)];devil=clear'>human</a>"
|
||||||
else if(src in SSticker.mode.sintouched)
|
else if(src in SSticker.mode.sintouched)
|
||||||
text += "devil | ascendable devil | <b>SINTOUCHED</b> | <a href='?src=\ref[src];devil=clear'>human</a>"
|
text += "devil | ascendable devil | <b>SINTOUCHED</b> | <a href='?src=[REF(src)];devil=clear'>human</a>"
|
||||||
else
|
else
|
||||||
text += "<a href='?src=\ref[src];devil=devil'>devil</a> | <a href='?src=\ref[src];devil=ascendable_devil'>ascendable devil</a> | <a href='?src=\ref[src];devil=sintouched'>sintouched</a> | <b>HUMAN</b>"
|
text += "<a href='?src=[REF(src)];devil=devil'>devil</a> | <a href='?src=[REF(src)];devil=ascendable_devil'>ascendable devil</a> | <a href='?src=[REF(src)];devil=sintouched'>sintouched</a> | <b>HUMAN</b>"
|
||||||
|
|
||||||
if(current && current.client && (ROLE_DEVIL in current.client.prefs.be_special))
|
if(current && current.client && (ROLE_DEVIL in current.client.prefs.be_special))
|
||||||
text += " | Enabled in Prefs"
|
text += " | Enabled in Prefs"
|
||||||
@@ -641,11 +641,11 @@
|
|||||||
var/datum/antagonist/ninja/ninjainfo = has_antag_datum(ANTAG_DATUM_NINJA)
|
var/datum/antagonist/ninja/ninjainfo = has_antag_datum(ANTAG_DATUM_NINJA)
|
||||||
if(ninjainfo)
|
if(ninjainfo)
|
||||||
if(ninjainfo.helping_station)
|
if(ninjainfo.helping_station)
|
||||||
text += "<a href='?src=\ref[src];ninja=clear'>employee</a> | syndicate | <b>NANOTRASEN</b> | <b><a href='?src=\ref[src];ninja=equip'>EQUIP</a></b>"
|
text += "<a href='?src=[REF(src)];ninja=clear'>employee</a> | syndicate | <b>NANOTRASEN</b> | <b><a href='?src=[REF(src)];ninja=equip'>EQUIP</a></b>"
|
||||||
else
|
else
|
||||||
text += "<a href='?src=\ref[src];ninja=clear'>employee</a> | <b>SYNDICATE</b> | nanotrasen | <b><a href='?src=\ref[src];ninja=equip'>EQUIP</a></b>"
|
text += "<a href='?src=[REF(src)];ninja=clear'>employee</a> | <b>SYNDICATE</b> | nanotrasen | <b><a href='?src=[REF(src)];ninja=equip'>EQUIP</a></b>"
|
||||||
else
|
else
|
||||||
text += "<b>EMPLOYEE</b> | <a href='?src=\ref[src];ninja=syndicate'>syndicate</a> | <a href='?src=\ref[src];ninja=nanotrasen'>nanotrasen</a> | <a href='?src=\ref[src];ninja=random'>random allegiance</a>"
|
text += "<b>EMPLOYEE</b> | <a href='?src=[REF(src)];ninja=syndicate'>syndicate</a> | <a href='?src=[REF(src)];ninja=nanotrasen'>nanotrasen</a> | <a href='?src=[REF(src)];ninja=random'>random allegiance</a>"
|
||||||
if(current && current.client && (ROLE_NINJA in current.client.prefs.be_special))
|
if(current && current.client && (ROLE_NINJA in current.client.prefs.be_special))
|
||||||
text += " | Enabled in Prefs"
|
text += " | Enabled in Prefs"
|
||||||
else
|
else
|
||||||
@@ -660,10 +660,10 @@
|
|||||||
text = uppertext(text)
|
text = uppertext(text)
|
||||||
text = "<i><b>[text]</b></i>: "
|
text = "<i><b>[text]</b></i>: "
|
||||||
if(iscultist(current))
|
if(iscultist(current))
|
||||||
text += "not mindshielded | <a href='?src=\ref[src];cult=clear'>employee</a> | <b>CULTIST</b>"
|
text += "not mindshielded | <a href='?src=[REF(src)];cult=clear'>employee</a> | <b>CULTIST</b>"
|
||||||
text += "<br>Give <a href='?src=\ref[src];cult=tome'>tome</a> | <a href='?src=\ref[src];cult=amulet'>amulet</a>."
|
text += "<br>Give <a href='?src=[REF(src)];cult=tome'>tome</a> | <a href='?src=[REF(src)];cult=amulet'>amulet</a>."
|
||||||
else if(is_convertable_to_cult(current))
|
else if(is_convertable_to_cult(current))
|
||||||
text += "not mindshielded | <b>EMPLOYEE</b> | <a href='?src=\ref[src];cult=cultist'>cultist</a>"
|
text += "not mindshielded | <b>EMPLOYEE</b> | <a href='?src=[REF(src)];cult=cultist'>cultist</a>"
|
||||||
else
|
else
|
||||||
text += "[!current.isloyal() ? "not mindshielded" : "<b>MINDSHIELDED</b>"] | <b>EMPLOYEE</b> | <i>cannot serve Nar-Sie</i>"
|
text += "[!current.isloyal() ? "not mindshielded" : "<b>MINDSHIELDED</b>"] | <b>EMPLOYEE</b> | <i>cannot serve Nar-Sie</i>"
|
||||||
|
|
||||||
@@ -682,10 +682,10 @@
|
|||||||
text = uppertext(text)
|
text = uppertext(text)
|
||||||
text = "<i><b>[text]</b></i>: "
|
text = "<i><b>[text]</b></i>: "
|
||||||
if(is_servant_of_ratvar(current))
|
if(is_servant_of_ratvar(current))
|
||||||
text += "not mindshielded | <a href='?src=\ref[src];clockcult=clear'>employee</a> | <b>SERVANT</b>"
|
text += "not mindshielded | <a href='?src=[REF(src)];clockcult=clear'>employee</a> | <b>SERVANT</b>"
|
||||||
text += "<br><a href='?src=\ref[src];clockcult=slab'>Equip</a>"
|
text += "<br><a href='?src=[REF(src)];clockcult=slab'>Equip</a>"
|
||||||
else if(is_eligible_servant(current))
|
else if(is_eligible_servant(current))
|
||||||
text += "not mindshielded | <b>EMPLOYEE</b> | <a href='?src=\ref[src];clockcult=servant'>servant</a>"
|
text += "not mindshielded | <b>EMPLOYEE</b> | <a href='?src=[REF(src)];clockcult=servant'>servant</a>"
|
||||||
else
|
else
|
||||||
text += "[!current.isloyal() ? "not mindshielded" : "<b>MINDSHIELDED</b>"] | <b>EMPLOYEE</b> | <i>cannot serve Ratvar</i>"
|
text += "[!current.isloyal() ? "not mindshielded" : "<b>MINDSHIELDED</b>"] | <b>EMPLOYEE</b> | <i>cannot serve Ratvar</i>"
|
||||||
|
|
||||||
@@ -702,14 +702,14 @@
|
|||||||
text = "silicon"
|
text = "silicon"
|
||||||
var/mob/living/silicon/robot/robot = current
|
var/mob/living/silicon/robot/robot = current
|
||||||
if (istype(robot) && robot.emagged)
|
if (istype(robot) && robot.emagged)
|
||||||
text += "<br>Cyborg: Is emagged! <a href='?src=\ref[src];silicon=unemag'>Unemag!</a><br>0th law: [robot.laws.zeroth]"
|
text += "<br>Cyborg: Is emagged! <a href='?src=[REF(src)];silicon=unemag'>Unemag!</a><br>0th law: [robot.laws.zeroth]"
|
||||||
var/mob/living/silicon/ai/ai = current
|
var/mob/living/silicon/ai/ai = current
|
||||||
if (istype(ai) && ai.connected_robots.len)
|
if (istype(ai) && ai.connected_robots.len)
|
||||||
var/n_e_robots = 0
|
var/n_e_robots = 0
|
||||||
for (var/mob/living/silicon/robot/R in ai.connected_robots)
|
for (var/mob/living/silicon/robot/R in ai.connected_robots)
|
||||||
if (R.emagged)
|
if (R.emagged)
|
||||||
n_e_robots++
|
n_e_robots++
|
||||||
text += "<br>[n_e_robots] of [ai.connected_robots.len] slaved cyborgs are emagged. <a href='?src=\ref[src];silicon=unemagcyborgs'>Unemag</a>"
|
text += "<br>[n_e_robots] of [ai.connected_robots.len] slaved cyborgs are emagged. <a href='?src=[REF(src)];silicon=unemagcyborgs'>Unemag</a>"
|
||||||
if (SSticker.mode.config_tag == "traitorchan")
|
if (SSticker.mode.config_tag == "traitorchan")
|
||||||
if (sections["traitor"])
|
if (sections["traitor"])
|
||||||
out += sections["traitor"]+"<br>"
|
out += sections["traitor"]+"<br>"
|
||||||
@@ -727,12 +727,12 @@
|
|||||||
|
|
||||||
|
|
||||||
if(((src in SSticker.mode.traitors) || (src in SSticker.mode.syndicates)) && ishuman(current))
|
if(((src in SSticker.mode.traitors) || (src in SSticker.mode.syndicates)) && ishuman(current))
|
||||||
text = "Uplink: <a href='?src=\ref[src];common=uplink'>give</a>"
|
text = "Uplink: <a href='?src=[REF(src)];common=uplink'>give</a>"
|
||||||
var/obj/item/device/uplink/U = find_syndicate_uplink()
|
var/obj/item/device/uplink/U = find_syndicate_uplink()
|
||||||
if(U)
|
if(U)
|
||||||
text += " | <a href='?src=\ref[src];common=takeuplink'>take</a>"
|
text += " | <a href='?src=[REF(src)];common=takeuplink'>take</a>"
|
||||||
if (check_rights(R_FUN, 0))
|
if (check_rights(R_FUN, 0))
|
||||||
text += ", <a href='?src=\ref[src];common=crystals'>[U.telecrystals]</a> TC"
|
text += ", <a href='?src=[REF(src)];common=crystals'>[U.telecrystals]</a> TC"
|
||||||
else
|
else
|
||||||
text += ", [U.telecrystals] TC"
|
text += ", [U.telecrystals] TC"
|
||||||
text += "." //hiel grammar
|
text += "." //hiel grammar
|
||||||
@@ -742,18 +742,18 @@
|
|||||||
|
|
||||||
out += "<b>Memory:</b><br>"
|
out += "<b>Memory:</b><br>"
|
||||||
out += memory
|
out += memory
|
||||||
out += "<br><a href='?src=\ref[src];memory_edit=1'>Edit memory</a><br>"
|
out += "<br><a href='?src=[REF(src)];memory_edit=1'>Edit memory</a><br>"
|
||||||
out += "Objectives:<br>"
|
out += "Objectives:<br>"
|
||||||
if (objectives.len == 0)
|
if (objectives.len == 0)
|
||||||
out += "EMPTY<br>"
|
out += "EMPTY<br>"
|
||||||
else
|
else
|
||||||
var/obj_count = 1
|
var/obj_count = 1
|
||||||
for(var/datum/objective/objective in objectives)
|
for(var/datum/objective/objective in objectives)
|
||||||
out += "<B>[obj_count]</B>: [objective.explanation_text] <a href='?src=\ref[src];obj_edit=\ref[objective]'>Edit</a> <a href='?src=\ref[src];obj_delete=\ref[objective]'>Delete</a> <a href='?src=\ref[src];obj_completed=\ref[objective]'><font color=[objective.completed ? "green" : "red"]>Toggle Completion</font></a><br>"
|
out += "<B>[obj_count]</B>: [objective.explanation_text] <a href='?src=[REF(src)];obj_edit=[REF(objective)]'>Edit</a> <a href='?src=[REF(src)];obj_delete=[REF(objective)]'>Delete</a> <a href='?src=[REF(src)];obj_completed=[REF(objective)]'><font color=[objective.completed ? "green" : "red"]>Toggle Completion</font></a><br>"
|
||||||
obj_count++
|
obj_count++
|
||||||
out += "<a href='?src=\ref[src];obj_add=1'>Add objective</a><br><br>"
|
out += "<a href='?src=[REF(src)];obj_add=1'>Add objective</a><br><br>"
|
||||||
|
|
||||||
out += "<a href='?src=\ref[src];obj_announce=1'>Announce objectives</a><br><br>"
|
out += "<a href='?src=[REF(src)];obj_announce=1'>Announce objectives</a><br><br>"
|
||||||
|
|
||||||
var/datum/browser/popup = new(usr, "edit_memory", "", 600, 600)
|
var/datum/browser/popup = new(usr, "edit_memory", "", 600, 600)
|
||||||
popup.set_content(out)
|
popup.set_content(out)
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
this["desc"] = ""
|
this["desc"] = ""
|
||||||
this["refs"] = list()
|
this["refs"] = list()
|
||||||
for(var/spawner_obj in GLOB.mob_spawners[spawner])
|
for(var/spawner_obj in GLOB.mob_spawners[spawner])
|
||||||
this["refs"] += "\ref[spawner_obj]"
|
this["refs"] += "[REF(spawner_obj)]"
|
||||||
if(!this["desc"])
|
if(!this["desc"])
|
||||||
if(istype(spawner_obj, /obj/effect/mob_spawn))
|
if(istype(spawner_obj, /obj/effect/mob_spawn))
|
||||||
var/obj/effect/mob_spawn/MS = spawner_obj
|
var/obj/effect/mob_spawn/MS = spawner_obj
|
||||||
|
|||||||
@@ -335,7 +335,7 @@
|
|||||||
GLOBAL_LIST_EMPTY(blood_splatter_icons)
|
GLOBAL_LIST_EMPTY(blood_splatter_icons)
|
||||||
|
|
||||||
/atom/proc/blood_splatter_index()
|
/atom/proc/blood_splatter_index()
|
||||||
return "\ref[initial(icon)]-[initial(icon_state)]"
|
return "[REF(initial(icon))]-[initial(icon_state)]"
|
||||||
|
|
||||||
//returns the mob's dna info as a list, to be inserted in an object's blood_DNA list
|
//returns the mob's dna info as a list, to be inserted in an object's blood_DNA list
|
||||||
/mob/living/proc/get_blood_dna_list()
|
/mob/living/proc/get_blood_dna_list()
|
||||||
@@ -631,9 +631,9 @@ GLOBAL_LIST_EMPTY(blood_splatter_icons)
|
|||||||
var/turf/curturf = get_turf(src)
|
var/turf/curturf = get_turf(src)
|
||||||
if (curturf)
|
if (curturf)
|
||||||
.["Jump to"] = "?_src_=holder;[HrefToken()];adminplayerobservecoodjump=1;X=[curturf.x];Y=[curturf.y];Z=[curturf.z]"
|
.["Jump to"] = "?_src_=holder;[HrefToken()];adminplayerobservecoodjump=1;X=[curturf.x];Y=[curturf.y];Z=[curturf.z]"
|
||||||
.["Add reagent"] = "?_src_=vars;[HrefToken()];addreagent=\ref[src]"
|
.["Add reagent"] = "?_src_=vars;[HrefToken()];addreagent=[REF(src)]"
|
||||||
.["Trigger EM pulse"] = "?_src_=vars;[HrefToken()];emp=\ref[src]"
|
.["Trigger EM pulse"] = "?_src_=vars;[HrefToken()];emp=[REF(src)]"
|
||||||
.["Trigger explosion"] = "?_src_=vars;[HrefToken()];explode=\ref[src]"
|
.["Trigger explosion"] = "?_src_=vars;[HrefToken()];explode=[REF(src)]"
|
||||||
|
|
||||||
/atom/proc/drop_location()
|
/atom/proc/drop_location()
|
||||||
var/atom/L = loc
|
var/atom/L = loc
|
||||||
|
|||||||
@@ -523,7 +523,7 @@
|
|||||||
/atom/movable/vv_get_dropdown()
|
/atom/movable/vv_get_dropdown()
|
||||||
. = ..()
|
. = ..()
|
||||||
. -= "Jump to"
|
. -= "Jump to"
|
||||||
.["Follow"] = "?_src_=holder;[HrefToken()];adminplayerobservefollow=\ref[src]"
|
.["Follow"] = "?_src_=holder;[HrefToken()];adminplayerobservefollow=[REF(src)]"
|
||||||
|
|
||||||
/atom/movable/proc/ex_check(ex_id)
|
/atom/movable/proc/ex_check(ex_id)
|
||||||
if(!ex_id)
|
if(!ex_id)
|
||||||
|
|||||||
@@ -147,6 +147,7 @@ GLOBAL_LIST_INIT(reverseradiochannels, list(
|
|||||||
"1357" = "Engineering",
|
"1357" = "Engineering",
|
||||||
"1359" = "Security",
|
"1359" = "Security",
|
||||||
"1337" = "CentCom",
|
"1337" = "CentCom",
|
||||||
|
<<<<<<< HEAD
|
||||||
"1213" = "Syndicate",
|
"1213" = "Syndicate",
|
||||||
"1347" = "Supply",
|
"1347" = "Supply",
|
||||||
"1349" = "Service",
|
"1349" = "Service",
|
||||||
@@ -292,6 +293,153 @@ GLOBAL_VAR_INIT(RADIO_MAGNETS, "9")
|
|||||||
|
|
||||||
/datum/signal/proc/debug_print()
|
/datum/signal/proc/debug_print()
|
||||||
if (source)
|
if (source)
|
||||||
|
=======
|
||||||
|
"1213" = "Syndicate",
|
||||||
|
"1347" = "Supply",
|
||||||
|
"1349" = "Service",
|
||||||
|
"1447" = "AI Private",
|
||||||
|
"1215" = "Red Team",
|
||||||
|
"1217" = "Blue Team"
|
||||||
|
))
|
||||||
|
|
||||||
|
//depenging helpers
|
||||||
|
GLOBAL_VAR_CONST(SYND_FREQ, 1213) //nuke op frequency, coloured dark brown in chat window
|
||||||
|
GLOBAL_VAR_CONST(SUPP_FREQ, 1347) //supply, coloured light brown in chat window
|
||||||
|
GLOBAL_VAR_CONST(SERV_FREQ, 1349) //service, coloured green in chat window
|
||||||
|
GLOBAL_VAR_CONST(SCI_FREQ, 1351) //science, coloured plum in chat window
|
||||||
|
GLOBAL_VAR_CONST(COMM_FREQ, 1353) //command, colored gold in chat window
|
||||||
|
GLOBAL_VAR_CONST(MED_FREQ, 1355) //medical, coloured blue in chat window
|
||||||
|
GLOBAL_VAR_CONST(ENG_FREQ, 1357) //engineering, coloured orange in chat window
|
||||||
|
GLOBAL_VAR_CONST(SEC_FREQ, 1359) //security, coloured red in chat window
|
||||||
|
GLOBAL_VAR_CONST(CENTCOM_FREQ, 1337) //centcom frequency, coloured grey in chat window
|
||||||
|
GLOBAL_VAR_CONST(AIPRIV_FREQ, 1447) //AI private, colored magenta in chat window
|
||||||
|
GLOBAL_VAR_CONST(REDTEAM_FREQ, 1215) // red team (CTF) frequency, coloured red
|
||||||
|
GLOBAL_VAR_CONST(BLUETEAM_FREQ, 1217) // blue team (CTF) frequency, coloured blue
|
||||||
|
|
||||||
|
#define TRANSMISSION_WIRE 0
|
||||||
|
#define TRANSMISSION_RADIO 1
|
||||||
|
|
||||||
|
/* filters */
|
||||||
|
GLOBAL_VAR_INIT(RADIO_TO_AIRALARM, "1")
|
||||||
|
GLOBAL_VAR_INIT(RADIO_FROM_AIRALARM, "2")
|
||||||
|
GLOBAL_VAR_INIT(RADIO_CHAT, "3") //deprecated
|
||||||
|
GLOBAL_VAR_INIT(RADIO_ATMOSIA, "4")
|
||||||
|
GLOBAL_VAR_INIT(RADIO_NAVBEACONS, "5")
|
||||||
|
GLOBAL_VAR_INIT(RADIO_AIRLOCK, "6")
|
||||||
|
GLOBAL_VAR_INIT(RADIO_MAGNETS, "9")
|
||||||
|
|
||||||
|
/datum/radio_frequency
|
||||||
|
|
||||||
|
var/frequency as num
|
||||||
|
var/list/list/obj/devices = list()
|
||||||
|
|
||||||
|
//If range > 0, only post to devices on the same z_level and within range
|
||||||
|
//Use range = -1, to restrain to the same z_level without limiting range
|
||||||
|
/datum/radio_frequency/proc/post_signal(obj/source as obj|null, datum/signal/signal, filter = null as text|null, range = null as num|null)
|
||||||
|
|
||||||
|
//Apply filter to the signal. If none supply, broadcast to every devices
|
||||||
|
//_default channel is always checked
|
||||||
|
var/list/filter_list
|
||||||
|
|
||||||
|
if(filter)
|
||||||
|
filter_list = list(filter,"_default")
|
||||||
|
else
|
||||||
|
filter_list = devices
|
||||||
|
|
||||||
|
//If checking range, find the source turf
|
||||||
|
var/turf/start_point
|
||||||
|
if(range)
|
||||||
|
start_point = get_turf(source)
|
||||||
|
if(!start_point)
|
||||||
|
return 0
|
||||||
|
|
||||||
|
//Send the data
|
||||||
|
for(var/current_filter in filter_list)
|
||||||
|
for(var/obj/device in devices[current_filter])
|
||||||
|
if(device == source)
|
||||||
|
continue
|
||||||
|
if(range)
|
||||||
|
var/turf/end_point = get_turf(device)
|
||||||
|
if(!end_point)
|
||||||
|
continue
|
||||||
|
if(start_point.z != end_point.z || (range > 0 && get_dist(start_point, end_point) > range))
|
||||||
|
continue
|
||||||
|
device.receive_signal(signal, TRANSMISSION_RADIO, frequency)
|
||||||
|
|
||||||
|
/datum/radio_frequency/proc/add_listener(obj/device, filter as text|null)
|
||||||
|
if (!filter)
|
||||||
|
filter = "_default"
|
||||||
|
|
||||||
|
var/list/devices_line = devices[filter]
|
||||||
|
if(!devices_line)
|
||||||
|
devices_line = list()
|
||||||
|
devices[filter] = devices_line
|
||||||
|
devices_line += device
|
||||||
|
|
||||||
|
|
||||||
|
/datum/radio_frequency/proc/remove_listener(obj/device)
|
||||||
|
for(var/devices_filter in devices)
|
||||||
|
var/list/devices_line = devices[devices_filter]
|
||||||
|
if(!devices_line)
|
||||||
|
devices -= devices_filter
|
||||||
|
devices_line -= device
|
||||||
|
if(!devices_line.len)
|
||||||
|
devices -= devices_filter
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/client/proc/print_pointers()
|
||||||
|
set name = "Debug Signals"
|
||||||
|
set category = "Debug"
|
||||||
|
|
||||||
|
if(!holder)
|
||||||
|
return
|
||||||
|
|
||||||
|
var/datum/signal/S
|
||||||
|
to_chat(src, "There are [S.pointers.len] pointers:")
|
||||||
|
for(var/p in S.pointers)
|
||||||
|
to_chat(src, p)
|
||||||
|
S = locate(p)
|
||||||
|
if(istype(S))
|
||||||
|
to_chat(src, S.debug_print())
|
||||||
|
|
||||||
|
/obj/proc/receive_signal(datum/signal/signal, receive_method, receive_param)
|
||||||
|
return
|
||||||
|
|
||||||
|
/datum/signal
|
||||||
|
var/obj/source
|
||||||
|
|
||||||
|
var/transmission_method = 0
|
||||||
|
//0 = wire
|
||||||
|
//1 = radio transmission
|
||||||
|
//2 = subspace transmission
|
||||||
|
|
||||||
|
var/data = list()
|
||||||
|
var/encryption
|
||||||
|
|
||||||
|
var/frequency = 0
|
||||||
|
var/static/list/pointers = list()
|
||||||
|
|
||||||
|
/datum/signal/New()
|
||||||
|
..()
|
||||||
|
pointers += "[REF(src)]"
|
||||||
|
|
||||||
|
/datum/signal/Destroy()
|
||||||
|
pointers -= "[REF(src)]"
|
||||||
|
return ..()
|
||||||
|
|
||||||
|
/datum/signal/proc/copy_from(datum/signal/model)
|
||||||
|
source = model.source
|
||||||
|
transmission_method = model.transmission_method
|
||||||
|
data = model.data
|
||||||
|
encryption = model.encryption
|
||||||
|
frequency = model.frequency
|
||||||
|
|
||||||
|
/datum/signal/proc/debug_print()
|
||||||
|
if (source)
|
||||||
|
>>>>>>> 626302c... Merge pull request #32161 from ninjanomnom/512-experimental
|
||||||
. = "signal = {source = '[source]' [COORD(source)]\n"
|
. = "signal = {source = '[source]' [COORD(source)]\n"
|
||||||
else
|
else
|
||||||
. = "signal = {source = '[source]' ()\n"
|
. = "signal = {source = '[source]' ()\n"
|
||||||
|
|||||||
@@ -29,13 +29,13 @@
|
|||||||
dat += "<I>Using this contract, you may summon an apprentice to aid you on your mission.</I><BR>"
|
dat += "<I>Using this contract, you may summon an apprentice to aid you on your mission.</I><BR>"
|
||||||
dat += "<I>If you are unable to establish contact with your apprentice, you can feed the contract back to the spellbook to refund your points.</I><BR>"
|
dat += "<I>If you are unable to establish contact with your apprentice, you can feed the contract back to the spellbook to refund your points.</I><BR>"
|
||||||
dat += "<B>Which school of magic is your apprentice studying?:</B><BR>"
|
dat += "<B>Which school of magic is your apprentice studying?:</B><BR>"
|
||||||
dat += "<A href='byond://?src=\ref[src];school=[APPRENTICE_DESTRUCTION]'>Destruction</A><BR>"
|
dat += "<A href='byond://?src=[REF(src)];school=[APPRENTICE_DESTRUCTION]'>Destruction</A><BR>"
|
||||||
dat += "<I>Your apprentice is skilled in offensive magic. They know Magic Missile and Fireball.</I><BR>"
|
dat += "<I>Your apprentice is skilled in offensive magic. They know Magic Missile and Fireball.</I><BR>"
|
||||||
dat += "<A href='byond://?src=\ref[src];school=[APPRENTICE_BLUESPACE]'>Bluespace Manipulation</A><BR>"
|
dat += "<A href='byond://?src=[REF(src)];school=[APPRENTICE_BLUESPACE]'>Bluespace Manipulation</A><BR>"
|
||||||
dat += "<I>Your apprentice is able to defy physics, melting through solid objects and travelling great distances in the blink of an eye. They know Teleport and Ethereal Jaunt.</I><BR>"
|
dat += "<I>Your apprentice is able to defy physics, melting through solid objects and travelling great distances in the blink of an eye. They know Teleport and Ethereal Jaunt.</I><BR>"
|
||||||
dat += "<A href='byond://?src=\ref[src];school=[APPRENTICE_HEALING]'>Healing</A><BR>"
|
dat += "<A href='byond://?src=[REF(src)];school=[APPRENTICE_HEALING]'>Healing</A><BR>"
|
||||||
dat += "<I>Your apprentice is training to cast spells that will aid your survival. They know Forcewall and Charge and come with a Staff of Healing.</I><BR>"
|
dat += "<I>Your apprentice is training to cast spells that will aid your survival. They know Forcewall and Charge and come with a Staff of Healing.</I><BR>"
|
||||||
dat += "<A href='byond://?src=\ref[src];school=[APPRENTICE_ROBELESS]'>Robeless</A><BR>"
|
dat += "<A href='byond://?src=[REF(src)];school=[APPRENTICE_ROBELESS]'>Robeless</A><BR>"
|
||||||
dat += "<I>Your apprentice is training to cast spells without their robes. They know Knock and Mindswap.</I><BR>"
|
dat += "<I>Your apprentice is training to cast spells without their robes. They know Knock and Mindswap.</I><BR>"
|
||||||
user << browse(dat, "window=radio")
|
user << browse(dat, "window=radio")
|
||||||
onclose(user, "radio")
|
onclose(user, "radio")
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
dat += "<HR>"
|
dat += "<HR>"
|
||||||
for(var/s in possible_summons)
|
for(var/s in possible_summons)
|
||||||
var/datum/cult_supply/S = s
|
var/datum/cult_supply/S = s
|
||||||
dat += "<a href='?src=\ref[src];id=[initial(S.id)]'>[initial(S.invocation)]</a> - [initial(S.desc)]<br>"
|
dat += "<a href='?src=[REF(src)];id=[initial(S.id)]'>[initial(S.invocation)]</a> - [initial(S.desc)]<br>"
|
||||||
var/datum/browser/popup = new(user, "talisman", "", 400, 400)
|
var/datum/browser/popup = new(user, "talisman", "", 400, 400)
|
||||||
popup.set_content(dat.Join(""))
|
popup.set_content(dat.Join(""))
|
||||||
popup.open()
|
popup.open()
|
||||||
|
|||||||
@@ -160,7 +160,7 @@
|
|||||||
if(CONFIG_GET(flag/protect_assistant_from_antagonist))
|
if(CONFIG_GET(flag/protect_assistant_from_antagonist))
|
||||||
replacementmode.restricted_jobs += "Assistant"
|
replacementmode.restricted_jobs += "Assistant"
|
||||||
|
|
||||||
message_admins("The roundtype will be converted. If you have other plans for the station or feel the station is too messed up to inhabit <A HREF='?_src_=holder;[HrefToken()];toggle_midround_antag=\ref[usr]'>stop the creation of antags</A> or <A HREF='?_src_=holder;[HrefToken()];end_round=\ref[usr]'>end the round now</A>.")
|
message_admins("The roundtype will be converted. If you have other plans for the station or feel the station is too messed up to inhabit <A HREF='?_src_=holder;[HrefToken()];toggle_midround_antag=[REF(usr)]'>stop the creation of antags</A> or <A HREF='?_src_=holder;[HrefToken()];end_round=[REF(usr)]'>end the round now</A>.")
|
||||||
|
|
||||||
. = 1
|
. = 1
|
||||||
sleep(rand(600,1800))
|
sleep(rand(600,1800))
|
||||||
|
|||||||
@@ -133,9 +133,9 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list(
|
|||||||
dat += "<B>Install Module:</B><BR>"
|
dat += "<B>Install Module:</B><BR>"
|
||||||
dat += "<I>The number afterwards is the amount of processing time it consumes.</I><BR>"
|
dat += "<I>The number afterwards is the amount of processing time it consumes.</I><BR>"
|
||||||
for(var/datum/AI_Module/large/module in possible_modules)
|
for(var/datum/AI_Module/large/module in possible_modules)
|
||||||
dat += "<A href='byond://?src=\ref[src];[module.mod_pick_name]=1'>[module.module_name]</A><A href='byond://?src=\ref[src];showdesc=[module.mod_pick_name]'>\[?\]</A> ([module.cost])<BR>"
|
dat += "<A href='byond://?src=[REF(src)];[module.mod_pick_name]=1'>[module.module_name]</A><A href='byond://?src=[REF(src)];showdesc=[module.mod_pick_name]'>\[?\]</A> ([module.cost])<BR>"
|
||||||
for(var/datum/AI_Module/small/module in possible_modules)
|
for(var/datum/AI_Module/small/module in possible_modules)
|
||||||
dat += "<A href='byond://?src=\ref[src];[module.mod_pick_name]=1'>[module.module_name]</A><A href='byond://?src=\ref[src];showdesc=[module.mod_pick_name]'>\[?\]</A> ([module.cost])<BR>"
|
dat += "<A href='byond://?src=[REF(src)];[module.mod_pick_name]=1'>[module.module_name]</A><A href='byond://?src=[REF(src)];showdesc=[module.mod_pick_name]'>\[?\]</A> ([module.cost])<BR>"
|
||||||
dat += "<HR>"
|
dat += "<HR>"
|
||||||
if(temp)
|
if(temp)
|
||||||
dat += "[temp]"
|
dat += "[temp]"
|
||||||
|
|||||||
@@ -43,20 +43,20 @@
|
|||||||
dat += "Collected Samples : [points] <br>"
|
dat += "Collected Samples : [points] <br>"
|
||||||
dat += "Gear Credits: [credits] <br>"
|
dat += "Gear Credits: [credits] <br>"
|
||||||
dat += "<b>Transfer data in exchange for supplies:</b><br>"
|
dat += "<b>Transfer data in exchange for supplies:</b><br>"
|
||||||
dat += "<a href='?src=\ref[src];dispense=baton'>Advanced Baton</A><br>"
|
dat += "<a href='?src=[REF(src)];dispense=baton'>Advanced Baton</A><br>"
|
||||||
dat += "<a href='?src=\ref[src];dispense=helmet'>Agent Helmet</A><br>"
|
dat += "<a href='?src=[REF(src)];dispense=helmet'>Agent Helmet</A><br>"
|
||||||
dat += "<a href='?src=\ref[src];dispense=vest'>Agent Vest</A><br>"
|
dat += "<a href='?src=[REF(src)];dispense=vest'>Agent Vest</A><br>"
|
||||||
dat += "<a href='?src=\ref[src];dispense=silencer'>Radio Silencer</A><br>"
|
dat += "<a href='?src=[REF(src)];dispense=silencer'>Radio Silencer</A><br>"
|
||||||
dat += "<a href='?src=\ref[src];dispense=tool'>Science Tool</A><br>"
|
dat += "<a href='?src=[REF(src)];dispense=tool'>Science Tool</A><br>"
|
||||||
else
|
else
|
||||||
dat += "<span class='bad'>NO EXPERIMENT MACHINE DETECTED</span> <br>"
|
dat += "<span class='bad'>NO EXPERIMENT MACHINE DETECTED</span> <br>"
|
||||||
|
|
||||||
if(pad)
|
if(pad)
|
||||||
dat += "<span class='bad'>Emergency Teleporter System.</span>"
|
dat += "<span class='bad'>Emergency Teleporter System.</span>"
|
||||||
dat += "<span class='bad'>Consider using primary observation console first.</span>"
|
dat += "<span class='bad'>Consider using primary observation console first.</span>"
|
||||||
dat += "<a href='?src=\ref[src];teleporter_send=1'>Activate Teleporter</A><br>"
|
dat += "<a href='?src=[REF(src)];teleporter_send=1'>Activate Teleporter</A><br>"
|
||||||
if(gizmo && gizmo.marked)
|
if(gizmo && gizmo.marked)
|
||||||
dat += "<a href='?src=\ref[src];teleporter_retrieve=1'>Retrieve Mark</A><br>"
|
dat += "<a href='?src=[REF(src)];teleporter_retrieve=1'>Retrieve Mark</A><br>"
|
||||||
else
|
else
|
||||||
dat += "<span class='linkOff'>Retrieve Mark</span><br>"
|
dat += "<span class='linkOff'>Retrieve Mark</span><br>"
|
||||||
else
|
else
|
||||||
@@ -66,15 +66,15 @@
|
|||||||
dat += "<h4> Agent Vest Mode </h4><br>"
|
dat += "<h4> Agent Vest Mode </h4><br>"
|
||||||
var/mode = vest.mode
|
var/mode = vest.mode
|
||||||
if(mode == VEST_STEALTH)
|
if(mode == VEST_STEALTH)
|
||||||
dat += "<a href='?src=\ref[src];flip_vest=1'>Combat</A>"
|
dat += "<a href='?src=[REF(src)];flip_vest=1'>Combat</A>"
|
||||||
dat += "<span class='linkOff'>Stealth</span>"
|
dat += "<span class='linkOff'>Stealth</span>"
|
||||||
else
|
else
|
||||||
dat += "<span class='linkOff'>Combat</span>"
|
dat += "<span class='linkOff'>Combat</span>"
|
||||||
dat += "<a href='?src=\ref[src];flip_vest=1'>Stealth</A>"
|
dat += "<a href='?src=[REF(src)];flip_vest=1'>Stealth</A>"
|
||||||
|
|
||||||
dat+="<br>"
|
dat+="<br>"
|
||||||
dat += "<a href='?src=\ref[src];select_disguise=1'>Select Agent Vest Disguise</a><br>"
|
dat += "<a href='?src=[REF(src)];select_disguise=1'>Select Agent Vest Disguise</a><br>"
|
||||||
dat += "<a href='?src=\ref[src];toggle_vest=1'>[vest.flags_1 & NODROP_1 ? "Unlock" : "Lock"] Vest</a><br>"
|
dat += "<a href='?src=[REF(src)];toggle_vest=1'>[vest.flags_1 & NODROP_1 ? "Unlock" : "Lock"] Vest</a><br>"
|
||||||
else
|
else
|
||||||
dat += "<span class='bad'>NO AGENT VEST DETECTED</span>"
|
dat += "<span class='bad'>NO AGENT VEST DETECTED</span>"
|
||||||
var/datum/browser/popup = new(user, "computer", "Abductor Console", 400, 500)
|
var/datum/browser/popup = new(user, "computer", "Abductor Console", 400, 500)
|
||||||
|
|||||||
@@ -48,7 +48,7 @@
|
|||||||
item_count++
|
item_count++
|
||||||
var/g_color = gland_colors[i]
|
var/g_color = gland_colors[i]
|
||||||
var/amount = amounts[i]
|
var/amount = amounts[i]
|
||||||
dat += "<a class='box gland' style='background-color:[g_color]' href='?src=\ref[src];dispense=[i]'>[amount]</a>"
|
dat += "<a class='box gland' style='background-color:[g_color]' href='?src=[REF(src)];dispense=[i]'>[amount]</a>"
|
||||||
if(item_count == 4) // Four boxes per line
|
if(item_count == 4) // Four boxes per line
|
||||||
dat +="</br></br>"
|
dat +="</br></br>"
|
||||||
item_count = 0
|
item_count = 0
|
||||||
|
|||||||
@@ -104,9 +104,9 @@
|
|||||||
dat += "<table><tr><td>"
|
dat += "<table><tr><td>"
|
||||||
dat += "<img src=dissection_img height=80 width=80>" //Avert your eyes
|
dat += "<img src=dissection_img height=80 width=80>" //Avert your eyes
|
||||||
dat += "</td><td>"
|
dat += "</td><td>"
|
||||||
dat += "<a href='?src=\ref[src];experiment=1'>Probe</a><br>"
|
dat += "<a href='?src=[REF(src)];experiment=1'>Probe</a><br>"
|
||||||
dat += "<a href='?src=\ref[src];experiment=2'>Dissect</a><br>"
|
dat += "<a href='?src=[REF(src)];experiment=2'>Dissect</a><br>"
|
||||||
dat += "<a href='?src=\ref[src];experiment=3'>Analyze</a><br>"
|
dat += "<a href='?src=[REF(src)];experiment=3'>Analyze</a><br>"
|
||||||
dat += "</td></tr></table>"
|
dat += "</td></tr></table>"
|
||||||
else
|
else
|
||||||
dat += "<span class='linkOff'>Experiment </span>"
|
dat += "<span class='linkOff'>Experiment </span>"
|
||||||
@@ -127,8 +127,8 @@
|
|||||||
dat += "<br>"
|
dat += "<br>"
|
||||||
dat += "[flash]"
|
dat += "[flash]"
|
||||||
dat += "<br>"
|
dat += "<br>"
|
||||||
dat += "<a href='?src=\ref[src];refresh=1'>Scan</a>"
|
dat += "<a href='?src=[REF(src)];refresh=1'>Scan</a>"
|
||||||
dat += "<a href='?src=\ref[src];[state_open ? "close=1'>Close</a>" : "open=1'>Open</a>"]"
|
dat += "<a href='?src=[REF(src)];[state_open ? "close=1'>Close</a>" : "open=1'>Open</a>"]"
|
||||||
var/datum/browser/popup = new(user, "experiment", "Probing Console", 300, 300)
|
var/datum/browser/popup = new(user, "experiment", "Probing Console", 300, 300)
|
||||||
popup.set_title_image(user.browse_rsc_icon(icon, icon_state))
|
popup.set_title_image(user.browse_rsc_icon(icon, icon_state))
|
||||||
popup.set_content(dat)
|
popup.set_content(dat)
|
||||||
|
|||||||
@@ -77,6 +77,7 @@
|
|||||||
icon = 'icons/obj/machines/nuke_terminal.dmi'
|
icon = 'icons/obj/machines/nuke_terminal.dmi'
|
||||||
icon_state = "nuclearbomb_base"
|
icon_state = "nuclearbomb_base"
|
||||||
anchored = TRUE //stops it being moved
|
anchored = TRUE //stops it being moved
|
||||||
|
use_tag = TRUE
|
||||||
|
|
||||||
/obj/machinery/nuclearbomb/syndicate
|
/obj/machinery/nuclearbomb/syndicate
|
||||||
//ui_style = "syndicate" // actually the nuke op bomb is a stole nt bomb
|
//ui_style = "syndicate" // actually the nuke op bomb is a stole nt bomb
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
<<<<<<< HEAD
|
||||||
/*
|
/*
|
||||||
This is for the sandbox for now,
|
This is for the sandbox for now,
|
||||||
maybe useful later for an actual thing?
|
maybe useful later for an actual thing?
|
||||||
@@ -137,3 +138,144 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
interact()
|
interact()
|
||||||
|
=======
|
||||||
|
/*
|
||||||
|
This is for the sandbox for now,
|
||||||
|
maybe useful later for an actual thing?
|
||||||
|
-Sayu
|
||||||
|
*/
|
||||||
|
|
||||||
|
/obj/structure/door_assembly
|
||||||
|
var/datum/airlock_maker/maker = null
|
||||||
|
|
||||||
|
/obj/structure/door_assembly/attack_hand()
|
||||||
|
..()
|
||||||
|
if(maker)
|
||||||
|
maker.interact()
|
||||||
|
|
||||||
|
/datum/airlock_maker
|
||||||
|
var/obj/structure/door_assembly/linked = null
|
||||||
|
|
||||||
|
var/list/access_used = null
|
||||||
|
var/require_all = 1
|
||||||
|
|
||||||
|
var/paintjob = "none"
|
||||||
|
var/glassdoor = 0
|
||||||
|
|
||||||
|
var/doorname = "airlock"
|
||||||
|
|
||||||
|
/datum/airlock_maker/New(var/atom/target_loc)
|
||||||
|
linked = new(target_loc)
|
||||||
|
linked.maker = src
|
||||||
|
linked.anchored = FALSE
|
||||||
|
access_used = list()
|
||||||
|
|
||||||
|
interact()
|
||||||
|
|
||||||
|
/datum/airlock_maker/proc/linkpretty(href,desc,active)
|
||||||
|
if(!desc)
|
||||||
|
var/static/list/defaults = list("No","Yes")
|
||||||
|
desc = defaults[active+1]
|
||||||
|
if(active)
|
||||||
|
return "<a href='?src=[REF(src)];[href]'><b>[desc]</b></a>"
|
||||||
|
return "<a href='?src=[REF(src)];[href]'><i>[desc]</i></a>"
|
||||||
|
|
||||||
|
/datum/airlock_maker/proc/interact()
|
||||||
|
var/list/leftcolumn = list()
|
||||||
|
var/list/rightcolumn = list()
|
||||||
|
leftcolumn += "<u><b>Required Access</b></u>"
|
||||||
|
for(var/access in get_all_accesses())
|
||||||
|
leftcolumn += linkpretty("access=[access]",get_access_desc(access),access in access_used)
|
||||||
|
leftcolumn += "Require all listed accesses: [linkpretty("reqall",null,require_all)]"
|
||||||
|
|
||||||
|
rightcolumn += "<u><b>Paintjob</b></u>"
|
||||||
|
for(var/option in list("none","engineering","atmos","security","command","medical","research","mining","maintenance","external","highsecurity"))
|
||||||
|
rightcolumn += linkpretty("paint=[option]",option,option == paintjob)
|
||||||
|
rightcolumn += "Glass door: " + linkpretty("glass",null,glassdoor) + "<br><br>"
|
||||||
|
var/length = max(leftcolumn.len,rightcolumn.len)
|
||||||
|
|
||||||
|
var/dat = "You may move the model airlock around. A new airlock will be built in its space when you click done, below.<hr><br>"
|
||||||
|
dat += "<a href='?src=[REF(src)];rename'>Door name</a>: \"[doorname]\""
|
||||||
|
dat += "<table>"
|
||||||
|
for(var/i=1; i<=length; i++)
|
||||||
|
dat += "<tr><td>"
|
||||||
|
if(i<=leftcolumn.len)
|
||||||
|
dat += leftcolumn[i]
|
||||||
|
dat += "</td><td>"
|
||||||
|
if(i<=rightcolumn.len)
|
||||||
|
dat += rightcolumn[i]
|
||||||
|
dat += "</td></tr>"
|
||||||
|
|
||||||
|
dat += "</table><hr><a href='?src=[REF(src)];done'>Finalize Airlock Construction</a> | <a href='?src=[REF(src)];cancel'>Cancel and Destroy Airlock</a>"
|
||||||
|
usr << browse(dat,"window=airlockmaker")
|
||||||
|
|
||||||
|
/datum/airlock_maker/Topic(var/href,var/list/href_list)
|
||||||
|
if(!usr)
|
||||||
|
return
|
||||||
|
if(!src || !linked || !linked.loc)
|
||||||
|
usr << browse(null,"window=airlockmaker")
|
||||||
|
return
|
||||||
|
|
||||||
|
if("rename" in href_list)
|
||||||
|
var/newname = stripped_input(usr,"New airlock name:","Name the airlock",doorname)
|
||||||
|
if(newname)
|
||||||
|
doorname = newname
|
||||||
|
if("access" in href_list)
|
||||||
|
var/value = text2num(href_list["access"])
|
||||||
|
access_used ^= value
|
||||||
|
if("reqall" in href_list)
|
||||||
|
require_all = !require_all
|
||||||
|
if("paint" in href_list)
|
||||||
|
paintjob = href_list["paint"]
|
||||||
|
if("glass" in href_list)
|
||||||
|
glassdoor = !glassdoor
|
||||||
|
|
||||||
|
if("cancel" in href_list)
|
||||||
|
usr << browse(null,"window=airlockmaker")
|
||||||
|
qdel(linked)
|
||||||
|
qdel(src)
|
||||||
|
return
|
||||||
|
|
||||||
|
if("done" in href_list)
|
||||||
|
usr << browse(null,"window=airlockmaker")
|
||||||
|
var/turf/t_loc = linked.loc
|
||||||
|
qdel(linked)
|
||||||
|
if(!istype(t_loc))
|
||||||
|
return
|
||||||
|
|
||||||
|
var/target_type = "/obj/machinery/door/airlock"
|
||||||
|
if(glassdoor)
|
||||||
|
if(paintjob != "none")
|
||||||
|
if(paintjob in list("external","highsecurity","maintenance")) // no glass version
|
||||||
|
target_type += "/[paintjob]"
|
||||||
|
else
|
||||||
|
target_type += "/glass_[paintjob]"
|
||||||
|
else
|
||||||
|
target_type += "/glass"
|
||||||
|
else if(paintjob != "none")
|
||||||
|
target_type += "/[paintjob]"
|
||||||
|
var/final = target_type
|
||||||
|
target_type = text2path(final)
|
||||||
|
if(!target_type)
|
||||||
|
to_chat(usr, "Didn't work, contact Sayu with this: [final]")
|
||||||
|
usr << browse(null,"window=airlockmaker")
|
||||||
|
return
|
||||||
|
|
||||||
|
var/obj/machinery/door/D = new target_type(t_loc)
|
||||||
|
|
||||||
|
D.name = doorname
|
||||||
|
|
||||||
|
if(access_used.len == 0)
|
||||||
|
D.req_access = null
|
||||||
|
D.req_one_access = null
|
||||||
|
else if(require_all)
|
||||||
|
D.req_access = access_used.Copy()
|
||||||
|
D.req_one_access = null
|
||||||
|
else
|
||||||
|
D.req_access = null
|
||||||
|
D.req_one_access = access_used.Copy()
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
interact()
|
||||||
|
>>>>>>> 626302c... Merge pull request #32161 from ninjanomnom/512-experimental
|
||||||
|
|||||||
@@ -77,26 +77,26 @@ GLOBAL_VAR_INIT(hsboxspawn, TRUE)
|
|||||||
hsbinfo = "<center><b>Sandbox Panel</b></center><hr>"
|
hsbinfo = "<center><b>Sandbox Panel</b></center><hr>"
|
||||||
if(admin)
|
if(admin)
|
||||||
hsbinfo += "<b>Administration</b><br>"
|
hsbinfo += "<b>Administration</b><br>"
|
||||||
hsbinfo += "- <a href='?src=\ref[src];hsb=hsbtobj'>Toggle Object Spawning</a><br>"
|
hsbinfo += "- <a href='?src=[REF(src)];hsb=hsbtobj'>Toggle Object Spawning</a><br>"
|
||||||
hsbinfo += "- <a href='?src=\ref[src];hsb=hsbtac'>Toggle Item Spawn Panel Auto-close</a><br>"
|
hsbinfo += "- <a href='?src=[REF(src)];hsb=hsbtac'>Toggle Item Spawn Panel Auto-close</a><br>"
|
||||||
hsbinfo += "<b>Canister Spawning</b><br>"
|
hsbinfo += "<b>Canister Spawning</b><br>"
|
||||||
hsbinfo += "- <a href='?src=\ref[src];hsb=hsbspawn&path=[/obj/machinery/portable_atmospherics/canister/toxins]'>Spawn Plasma Canister</a><br>"
|
hsbinfo += "- <a href='?src=[REF(src)];hsb=hsbspawn&path=[/obj/machinery/portable_atmospherics/canister/toxins]'>Spawn Plasma Canister</a><br>"
|
||||||
hsbinfo += "- <a href='?src=\ref[src];hsb=hsbspawn&path=[/obj/machinery/portable_atmospherics/canister/carbon_dioxide]'>Spawn CO2 Canister</a><br>"
|
hsbinfo += "- <a href='?src=[REF(src)];hsb=hsbspawn&path=[/obj/machinery/portable_atmospherics/canister/carbon_dioxide]'>Spawn CO2 Canister</a><br>"
|
||||||
hsbinfo += "- <a href='?src=\ref[src];hsb=hsbspawn&path=[/obj/machinery/portable_atmospherics/canister/nitrogen]'>Spawn Nitrogen Canister</a><br>"
|
hsbinfo += "- <a href='?src=[REF(src)];hsb=hsbspawn&path=[/obj/machinery/portable_atmospherics/canister/nitrogen]'>Spawn Nitrogen Canister</a><br>"
|
||||||
hsbinfo += "- <a href='?src=\ref[src];hsb=hsbspawn&path=[/obj/machinery/portable_atmospherics/canister/nitrous_oxide]'>Spawn N2O Canister</a><hr>"
|
hsbinfo += "- <a href='?src=[REF(src)];hsb=hsbspawn&path=[/obj/machinery/portable_atmospherics/canister/nitrous_oxide]'>Spawn N2O Canister</a><hr>"
|
||||||
else
|
else
|
||||||
hsbinfo += "<i>Some item spawning may be disabled by the administrators.</i><br>"
|
hsbinfo += "<i>Some item spawning may be disabled by the administrators.</i><br>"
|
||||||
hsbinfo += "<i>Only administrators may spawn dangerous canisters.</i><br>"
|
hsbinfo += "<i>Only administrators may spawn dangerous canisters.</i><br>"
|
||||||
for(var/T in hrefs)
|
for(var/T in hrefs)
|
||||||
var/href = hrefs[T]
|
var/href = hrefs[T]
|
||||||
if(href)
|
if(href)
|
||||||
hsbinfo += "- <a href='?\ref[src];hsb=[hrefs[T]]'>[T]</a><br>"
|
hsbinfo += "- <a href='?[REF(src)];hsb=[hrefs[T]]'>[T]</a><br>"
|
||||||
else
|
else
|
||||||
hsbinfo += "<br><b>[T]</b><br>"
|
hsbinfo += "<br><b>[T]</b><br>"
|
||||||
hsbinfo += "<hr>"
|
hsbinfo += "<hr>"
|
||||||
hsbinfo += "- <a href='?\ref[src];hsb=hsbcloth'>Spawn Clothing...</a><br>"
|
hsbinfo += "- <a href='?[REF(src)];hsb=hsbcloth'>Spawn Clothing...</a><br>"
|
||||||
hsbinfo += "- <a href='?\ref[src];hsb=hsbreag'>Spawn Reagent Container...</a><br>"
|
hsbinfo += "- <a href='?[REF(src)];hsb=hsbreag'>Spawn Reagent Container...</a><br>"
|
||||||
hsbinfo += "- <a href='?\ref[src];hsb=hsbobj'>Spawn Other Item...</a><br><br>"
|
hsbinfo += "- <a href='?[REF(src)];hsb=hsbobj'>Spawn Other Item...</a><br><br>"
|
||||||
|
|
||||||
usr << browse(hsbinfo, "window=hsbpanel")
|
usr << browse(hsbinfo, "window=hsbpanel")
|
||||||
|
|
||||||
@@ -235,12 +235,12 @@ GLOBAL_VAR_INIT(hsboxspawn, TRUE)
|
|||||||
if(!GLOB.hsboxspawn) return
|
if(!GLOB.hsboxspawn) return
|
||||||
|
|
||||||
if(!clothinfo)
|
if(!clothinfo)
|
||||||
clothinfo = "<b>Clothing</b> <a href='?\ref[src];hsb=hsbreag'>(Reagent Containers)</a> <a href='?\ref[src];hsb=hsbobj'>(Other Items)</a><hr><br>"
|
clothinfo = "<b>Clothing</b> <a href='?[REF(src)];hsb=hsbreag'>(Reagent Containers)</a> <a href='?[REF(src)];hsb=hsbobj'>(Other Items)</a><hr><br>"
|
||||||
var/list/all_items = subtypesof(/obj/item/clothing)
|
var/list/all_items = subtypesof(/obj/item/clothing)
|
||||||
for(var/typekey in spawn_forbidden)
|
for(var/typekey in spawn_forbidden)
|
||||||
all_items -= typesof(typekey)
|
all_items -= typesof(typekey)
|
||||||
for(var/O in reverseRange(all_items))
|
for(var/O in reverseRange(all_items))
|
||||||
clothinfo += "<a href='?src=\ref[src];hsb=hsb_safespawn&path=[O]'>[O]</a><br>"
|
clothinfo += "<a href='?src=[REF(src)];hsb=hsb_safespawn&path=[O]'>[O]</a><br>"
|
||||||
|
|
||||||
usr << browse(clothinfo,"window=sandbox")
|
usr << browse(clothinfo,"window=sandbox")
|
||||||
|
|
||||||
@@ -249,12 +249,12 @@ GLOBAL_VAR_INIT(hsboxspawn, TRUE)
|
|||||||
if(!GLOB.hsboxspawn) return
|
if(!GLOB.hsboxspawn) return
|
||||||
|
|
||||||
if(!reaginfo)
|
if(!reaginfo)
|
||||||
reaginfo = "<b>Reagent Containers</b> <a href='?\ref[src];hsb=hsbcloth'>(Clothing)</a> <a href='?\ref[src];hsb=hsbobj'>(Other Items)</a><hr><br>"
|
reaginfo = "<b>Reagent Containers</b> <a href='?[REF(src)];hsb=hsbcloth'>(Clothing)</a> <a href='?[REF(src)];hsb=hsbobj'>(Other Items)</a><hr><br>"
|
||||||
var/list/all_items = subtypesof(/obj/item/reagent_containers)
|
var/list/all_items = subtypesof(/obj/item/reagent_containers)
|
||||||
for(var/typekey in spawn_forbidden)
|
for(var/typekey in spawn_forbidden)
|
||||||
all_items -= typesof(typekey)
|
all_items -= typesof(typekey)
|
||||||
for(var/O in reverseRange(all_items))
|
for(var/O in reverseRange(all_items))
|
||||||
reaginfo += "<a href='?src=\ref[src];hsb=hsb_safespawn&path=[O]'>[O]</a><br>"
|
reaginfo += "<a href='?src=[REF(src)];hsb=hsb_safespawn&path=[O]'>[O]</a><br>"
|
||||||
|
|
||||||
usr << browse(reaginfo,"window=sandbox")
|
usr << browse(reaginfo,"window=sandbox")
|
||||||
|
|
||||||
@@ -263,13 +263,13 @@ GLOBAL_VAR_INIT(hsboxspawn, TRUE)
|
|||||||
if(!GLOB.hsboxspawn) return
|
if(!GLOB.hsboxspawn) return
|
||||||
|
|
||||||
if(!objinfo)
|
if(!objinfo)
|
||||||
objinfo = "<b>Other Items</b> <a href='?\ref[src];hsb=hsbcloth'>(Clothing)</a> <a href='?\ref[src];hsb=hsbreag'>(Reagent Containers)</a><hr><br>"
|
objinfo = "<b>Other Items</b> <a href='?[REF(src)];hsb=hsbcloth'>(Clothing)</a> <a href='?[REF(src)];hsb=hsbreag'>(Reagent Containers)</a><hr><br>"
|
||||||
var/list/all_items = subtypesof(/obj/item/) - typesof(/obj/item/clothing) - typesof(/obj/item/reagent_containers)
|
var/list/all_items = subtypesof(/obj/item/) - typesof(/obj/item/clothing) - typesof(/obj/item/reagent_containers)
|
||||||
for(var/typekey in spawn_forbidden)
|
for(var/typekey in spawn_forbidden)
|
||||||
all_items -= typesof(typekey)
|
all_items -= typesof(typekey)
|
||||||
|
|
||||||
for(var/O in reverseRange(all_items))
|
for(var/O in reverseRange(all_items))
|
||||||
objinfo += "<a href='?src=\ref[src];hsb=hsb_safespawn&path=[O]'>[O]</a><br>"
|
objinfo += "<a href='?src=[REF(src)];hsb=hsb_safespawn&path=[O]'>[O]</a><br>"
|
||||||
|
|
||||||
usr << browse(objinfo,"window=sandbox")
|
usr << browse(objinfo,"window=sandbox")
|
||||||
|
|
||||||
|
|||||||
@@ -212,7 +212,7 @@
|
|||||||
/proc/makeNewConstruct(mob/living/simple_animal/hostile/construct/ctype, mob/target, mob/stoner = null, cultoverride = 0, loc_override = null)
|
/proc/makeNewConstruct(mob/living/simple_animal/hostile/construct/ctype, mob/target, mob/stoner = null, cultoverride = 0, loc_override = null)
|
||||||
var/mob/living/simple_animal/hostile/construct/newstruct = new ctype((loc_override) ? (loc_override) : (get_turf(target)))
|
var/mob/living/simple_animal/hostile/construct/newstruct = new ctype((loc_override) ? (loc_override) : (get_turf(target)))
|
||||||
if(stoner)
|
if(stoner)
|
||||||
newstruct.faction |= "\ref[stoner]"
|
newstruct.faction |= "[REF(stoner)]"
|
||||||
newstruct.master = stoner
|
newstruct.master = stoner
|
||||||
var/datum/action/innate/seek_master/SM = new()
|
var/datum/action/innate/seek_master/SM = new()
|
||||||
SM.Grant(newstruct)
|
SM.Grant(newstruct)
|
||||||
@@ -244,7 +244,7 @@
|
|||||||
S.key = T.key
|
S.key = T.key
|
||||||
S.language_holder = U.language_holder.copy(S)
|
S.language_holder = U.language_holder.copy(S)
|
||||||
if(U)
|
if(U)
|
||||||
S.faction |= "\ref[U]" //Add the master as a faction, allowing inter-mob cooperation
|
S.faction |= "[REF(U)]" //Add the master as a faction, allowing inter-mob cooperation
|
||||||
if(U && iscultist(U))
|
if(U && iscultist(U))
|
||||||
SSticker.mode.add_cultist(S.mind, 0)
|
SSticker.mode.add_cultist(S.mind, 0)
|
||||||
S.cancel_camera()
|
S.cancel_camera()
|
||||||
|
|||||||
@@ -652,7 +652,7 @@
|
|||||||
var/list/cat_dat = list()
|
var/list/cat_dat = list()
|
||||||
for(var/category in categories)
|
for(var/category in categories)
|
||||||
cat_dat[category] = "<hr>"
|
cat_dat[category] = "<hr>"
|
||||||
dat += "<li><a [tab==category?"class=selected":""] href='byond://?src=\ref[src];page=[category]'>[category]</a></li>"
|
dat += "<li><a [tab==category?"class=selected":""] href='byond://?src=[REF(src)];page=[category]'>[category]</a></li>"
|
||||||
|
|
||||||
dat += "<li><a><b>Points remaining : [uses]</b></a></li>"
|
dat += "<li><a><b>Points remaining : [uses]</b></a></li>"
|
||||||
dat += "</ul>"
|
dat += "</ul>"
|
||||||
@@ -663,11 +663,11 @@
|
|||||||
E = entries[i]
|
E = entries[i]
|
||||||
spell_info += E.GetInfo()
|
spell_info += E.GetInfo()
|
||||||
if(E.CanBuy(user,src))
|
if(E.CanBuy(user,src))
|
||||||
spell_info+= "<a href='byond://?src=\ref[src];buy=[i]'>[E.buy_word]</A><br>"
|
spell_info+= "<a href='byond://?src=[REF(src)];buy=[i]'>[E.buy_word]</A><br>"
|
||||||
else
|
else
|
||||||
spell_info+= "<span>Can't [E.buy_word]</span><br>"
|
spell_info+= "<span>Can't [E.buy_word]</span><br>"
|
||||||
if(E.CanRefund(user,src))
|
if(E.CanRefund(user,src))
|
||||||
spell_info+= "<a href='byond://?src=\ref[src];refund=[i]'>Refund</A><br>"
|
spell_info+= "<a href='byond://?src=[REF(src)];refund=[i]'>Refund</A><br>"
|
||||||
spell_info += "<hr>"
|
spell_info += "<hr>"
|
||||||
if(cat_dat[E.category])
|
if(cat_dat[E.category])
|
||||||
cat_dat[E.category] += spell_info
|
cat_dat[E.category] += spell_info
|
||||||
|
|||||||
@@ -107,8 +107,8 @@ GLOBAL_LIST_EMPTY(announcement_systems)
|
|||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
var/contents = "Arrival Announcement: <A href='?src=\ref[src];ArrivalT-Topic=1'>([(arrivalToggle ? "On" : "Off")])</a><br>\n<A href='?src=\ref[src];ArrivalTopic=1'>[arrival]</a><br><br>\n"
|
var/contents = "Arrival Announcement: <A href='?src=[REF(src)];ArrivalT-Topic=1'>([(arrivalToggle ? "On" : "Off")])</a><br>\n<A href='?src=[REF(src)];ArrivalTopic=1'>[arrival]</a><br><br>\n"
|
||||||
contents += "Departmental Head Announcement: <A href='?src=\ref[src];NewheadT-Topic=1'>([(newheadToggle ? "On" : "Off")])</a><br>\n<A href='?src=\ref[src];NewheadTopic=1'>[newhead]</a><br><br>\n"
|
contents += "Departmental Head Announcement: <A href='?src=[REF(src)];NewheadT-Topic=1'>([(newheadToggle ? "On" : "Off")])</a><br>\n<A href='?src=[REF(src)];NewheadTopic=1'>[newhead]</a><br><br>\n"
|
||||||
|
|
||||||
var/datum/browser/popup = new(user, "announcement_config", "Automated Announcement Configuration", 370, 220)
|
var/datum/browser/popup = new(user, "announcement_config", "Automated Announcement Configuration", 370, 220)
|
||||||
popup.set_content(contents)
|
popup.set_content(contents)
|
||||||
|
|||||||
@@ -240,8 +240,8 @@
|
|||||||
var/dat = "<div class='statusDisplay'><h3>Autolathe Menu:</h3><br>"
|
var/dat = "<div class='statusDisplay'><h3>Autolathe Menu:</h3><br>"
|
||||||
dat += materials_printout()
|
dat += materials_printout()
|
||||||
|
|
||||||
dat += "<form name='search' action='?src=\ref[src]'>\
|
dat += "<form name='search' action='?src=[REF(src)]'>\
|
||||||
<input type='hidden' name='src' value='\ref[src]'>\
|
<input type='hidden' name='src' value='[REF(src)]'>\
|
||||||
<input type='hidden' name='search' value='to_search'>\
|
<input type='hidden' name='search' value='to_search'>\
|
||||||
<input type='hidden' name='menu' value='[AUTOLATHE_SEARCH_MENU]'>\
|
<input type='hidden' name='menu' value='[AUTOLATHE_SEARCH_MENU]'>\
|
||||||
<input type='text' name='to_search'>\
|
<input type='text' name='to_search'>\
|
||||||
@@ -256,14 +256,14 @@
|
|||||||
dat += "</tr><tr>"
|
dat += "</tr><tr>"
|
||||||
line_length = 1
|
line_length = 1
|
||||||
|
|
||||||
dat += "<td><A href='?src=\ref[src];category=[C];menu=[AUTOLATHE_CATEGORY_MENU]'>[C]</A></td>"
|
dat += "<td><A href='?src=[REF(src)];category=[C];menu=[AUTOLATHE_CATEGORY_MENU]'>[C]</A></td>"
|
||||||
line_length++
|
line_length++
|
||||||
|
|
||||||
dat += "</tr></table></div>"
|
dat += "</tr></table></div>"
|
||||||
return dat
|
return dat
|
||||||
|
|
||||||
/obj/machinery/autolathe/proc/category_win(mob/user,selected_category)
|
/obj/machinery/autolathe/proc/category_win(mob/user,selected_category)
|
||||||
var/dat = "<A href='?src=\ref[src];menu=[AUTOLATHE_MAIN_MENU]'>Return to main menu</A>"
|
var/dat = "<A href='?src=[REF(src)];menu=[AUTOLATHE_MAIN_MENU]'>Return to main menu</A>"
|
||||||
dat += "<div class='statusDisplay'><h3>Browsing [selected_category]:</h3><br>"
|
dat += "<div class='statusDisplay'><h3>Browsing [selected_category]:</h3><br>"
|
||||||
dat += materials_printout()
|
dat += materials_printout()
|
||||||
|
|
||||||
@@ -275,22 +275,22 @@
|
|||||||
if(disabled || !can_build(D))
|
if(disabled || !can_build(D))
|
||||||
dat += "<span class='linkOff'>[D.name]</span>"
|
dat += "<span class='linkOff'>[D.name]</span>"
|
||||||
else
|
else
|
||||||
dat += "<a href='?src=\ref[src];make=[D.id];multiplier=1'>[D.name]</a>"
|
dat += "<a href='?src=[REF(src)];make=[D.id];multiplier=1'>[D.name]</a>"
|
||||||
|
|
||||||
if(ispath(D.build_path, /obj/item/stack))
|
if(ispath(D.build_path, /obj/item/stack))
|
||||||
GET_COMPONENT(materials, /datum/component/material_container)
|
GET_COMPONENT(materials, /datum/component/material_container)
|
||||||
var/max_multiplier = min(D.maxstack, D.materials[MAT_METAL] ?round(materials.amount(MAT_METAL)/D.materials[MAT_METAL]):INFINITY,D.materials[MAT_GLASS]?round(materials.amount(MAT_GLASS)/D.materials[MAT_GLASS]):INFINITY)
|
var/max_multiplier = min(D.maxstack, D.materials[MAT_METAL] ?round(materials.amount(MAT_METAL)/D.materials[MAT_METAL]):INFINITY,D.materials[MAT_GLASS]?round(materials.amount(MAT_GLASS)/D.materials[MAT_GLASS]):INFINITY)
|
||||||
if (max_multiplier>10 && !disabled)
|
if (max_multiplier>10 && !disabled)
|
||||||
dat += " <a href='?src=\ref[src];make=[D.id];multiplier=10'>x10</a>"
|
dat += " <a href='?src=[REF(src)];make=[D.id];multiplier=10'>x10</a>"
|
||||||
if (max_multiplier>25 && !disabled)
|
if (max_multiplier>25 && !disabled)
|
||||||
dat += " <a href='?src=\ref[src];make=[D.id];multiplier=25'>x25</a>"
|
dat += " <a href='?src=[REF(src)];make=[D.id];multiplier=25'>x25</a>"
|
||||||
if(max_multiplier > 0 && !disabled)
|
if(max_multiplier > 0 && !disabled)
|
||||||
dat += " <a href='?src=\ref[src];make=[D.id];multiplier=[max_multiplier]'>x[max_multiplier]</a>"
|
dat += " <a href='?src=[REF(src)];make=[D.id];multiplier=[max_multiplier]'>x[max_multiplier]</a>"
|
||||||
else
|
else
|
||||||
if(!disabled && can_build(D, 5))
|
if(!disabled && can_build(D, 5))
|
||||||
dat += " <a href='?src=\ref[src];make=[D.id];multiplier=5'>x5</a>"
|
dat += " <a href='?src=[REF(src)];make=[D.id];multiplier=5'>x5</a>"
|
||||||
if(!disabled && can_build(D, 10))
|
if(!disabled && can_build(D, 10))
|
||||||
dat += " <a href='?src=\ref[src];make=[D.id];multiplier=10'>x10</a>"
|
dat += " <a href='?src=[REF(src)];make=[D.id];multiplier=10'>x10</a>"
|
||||||
|
|
||||||
dat += "[get_design_cost(D)]<br>"
|
dat += "[get_design_cost(D)]<br>"
|
||||||
|
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
return dat
|
return dat
|
||||||
|
|
||||||
/obj/machinery/autolathe/proc/search_win(mob/user)
|
/obj/machinery/autolathe/proc/search_win(mob/user)
|
||||||
var/dat = "<A href='?src=\ref[src];menu=[AUTOLATHE_MAIN_MENU]'>Return to main menu</A>"
|
var/dat = "<A href='?src=[REF(src)];menu=[AUTOLATHE_MAIN_MENU]'>Return to main menu</A>"
|
||||||
dat += "<div class='statusDisplay'><h3>Search results:</h3><br>"
|
dat += "<div class='statusDisplay'><h3>Search results:</h3><br>"
|
||||||
dat += materials_printout()
|
dat += materials_printout()
|
||||||
|
|
||||||
@@ -307,17 +307,17 @@
|
|||||||
if(disabled || !can_build(D))
|
if(disabled || !can_build(D))
|
||||||
dat += "<span class='linkOff'>[D.name]</span>"
|
dat += "<span class='linkOff'>[D.name]</span>"
|
||||||
else
|
else
|
||||||
dat += "<a href='?src=\ref[src];make=[D.id];multiplier=1'>[D.name]</a>"
|
dat += "<a href='?src=[REF(src)];make=[D.id];multiplier=1'>[D.name]</a>"
|
||||||
|
|
||||||
if(ispath(D.build_path, /obj/item/stack))
|
if(ispath(D.build_path, /obj/item/stack))
|
||||||
GET_COMPONENT(materials, /datum/component/material_container)
|
GET_COMPONENT(materials, /datum/component/material_container)
|
||||||
var/max_multiplier = min(D.maxstack, D.materials[MAT_METAL] ?round(materials.amount(MAT_METAL)/D.materials[MAT_METAL]):INFINITY,D.materials[MAT_GLASS]?round(materials.amount(MAT_GLASS)/D.materials[MAT_GLASS]):INFINITY)
|
var/max_multiplier = min(D.maxstack, D.materials[MAT_METAL] ?round(materials.amount(MAT_METAL)/D.materials[MAT_METAL]):INFINITY,D.materials[MAT_GLASS]?round(materials.amount(MAT_GLASS)/D.materials[MAT_GLASS]):INFINITY)
|
||||||
if (max_multiplier>10 && !disabled)
|
if (max_multiplier>10 && !disabled)
|
||||||
dat += " <a href='?src=\ref[src];make=[D.id];multiplier=10'>x10</a>"
|
dat += " <a href='?src=[REF(src)];make=[D.id];multiplier=10'>x10</a>"
|
||||||
if (max_multiplier>25 && !disabled)
|
if (max_multiplier>25 && !disabled)
|
||||||
dat += " <a href='?src=\ref[src];make=[D.id];multiplier=25'>x25</a>"
|
dat += " <a href='?src=[REF(src)];make=[D.id];multiplier=25'>x25</a>"
|
||||||
if(max_multiplier > 0 && !disabled)
|
if(max_multiplier > 0 && !disabled)
|
||||||
dat += " <a href='?src=\ref[src];make=[D.id];multiplier=[max_multiplier]'>x[max_multiplier]</a>"
|
dat += " <a href='?src=[REF(src)];make=[D.id];multiplier=[max_multiplier]'>x[max_multiplier]</a>"
|
||||||
|
|
||||||
dat += "[get_design_cost(D)]<br>"
|
dat += "[get_design_cost(D)]<br>"
|
||||||
|
|
||||||
|
|||||||
@@ -62,11 +62,11 @@
|
|||||||
var/dat = "[world.name] secure vault. Authorized personnel only.<br>"
|
var/dat = "[world.name] secure vault. Authorized personnel only.<br>"
|
||||||
dat += "Current Balance: [SSshuttle.points] credits.<br>"
|
dat += "Current Balance: [SSshuttle.points] credits.<br>"
|
||||||
if(!siphoning)
|
if(!siphoning)
|
||||||
dat += "<A href='?src=\ref[src];siphon=1'>Siphon Credits</A><br>"
|
dat += "<A href='?src=[REF(src)];siphon=1'>Siphon Credits</A><br>"
|
||||||
else
|
else
|
||||||
dat += "<A href='?src=\ref[src];halt=1'>Halt Credit Siphon</A><br>"
|
dat += "<A href='?src=[REF(src)];halt=1'>Halt Credit Siphon</A><br>"
|
||||||
|
|
||||||
dat += "<a href='?src=\ref[user];mach_close=computer'>Close</a>"
|
dat += "<a href='?src=[REF(user)];mach_close=computer'>Close</a>"
|
||||||
|
|
||||||
var/datum/browser/popup = new(user, "computer", "Bank Vault", 300, 200)
|
var/datum/browser/popup = new(user, "computer", "Bank Vault", 300, 200)
|
||||||
popup.set_content("<center>[dat]</center>")
|
popup.set_content("<center>[dat]</center>")
|
||||||
|
|||||||
@@ -203,7 +203,7 @@
|
|||||||
if(U.name == "Unknown")
|
if(U.name == "Unknown")
|
||||||
to_chat(AI, "<b>[U]</b> holds <a href='?_src_=usr;show_paper=1;'>\a [itemname]</a> up to one of your cameras ...")
|
to_chat(AI, "<b>[U]</b> holds <a href='?_src_=usr;show_paper=1;'>\a [itemname]</a> up to one of your cameras ...")
|
||||||
else
|
else
|
||||||
to_chat(AI, "<b><a href='?src=\ref[AI];track=[html_encode(U.name)]'>[U]</a></b> holds <a href='?_src_=usr;show_paper=1;'>\a [itemname]</a> up to one of your cameras ...")
|
to_chat(AI, "<b><a href='?src=[REF(AI)];track=[html_encode(U.name)]'>[U]</a></b> holds <a href='?_src_=usr;show_paper=1;'>\a [itemname]</a> up to one of your cameras ...")
|
||||||
AI.last_paper_seen = "<HTML><HEAD><TITLE>[itemname]</TITLE></HEAD><BODY><TT>[info]</TT></BODY></HTML>"
|
AI.last_paper_seen = "<HTML><HEAD><TITLE>[itemname]</TITLE></HEAD><BODY><TT>[info]</TT></BODY></HTML>"
|
||||||
else if (O.client && O.client.eye == src)
|
else if (O.client && O.client.eye == src)
|
||||||
to_chat(O, "[U] holds \a [itemname] up to one of the cameras ...")
|
to_chat(O, "[U] holds \a [itemname] up to one of the cameras ...")
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
if (detectTime == 0)
|
if (detectTime == 0)
|
||||||
detectTime = world.time // start the clock
|
detectTime = world.time // start the clock
|
||||||
var/list/targets = getTargetList()
|
var/list/targets = getTargetList()
|
||||||
targets |= "\ref[target]"
|
targets |= "[REF(target)]"
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/obj/machinery/camera/Destroy()
|
/obj/machinery/camera/Destroy()
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
|
|
||||||
/obj/machinery/camera/proc/lostTarget(mob/target)
|
/obj/machinery/camera/proc/lostTarget(mob/target)
|
||||||
var/list/targets = getTargetList()
|
var/list/targets = getTargetList()
|
||||||
targets -= "\ref[target]"
|
targets -= "[REF(target)]"
|
||||||
if (targets.len == 0)
|
if (targets.len == 0)
|
||||||
cancelAlarm()
|
cancelAlarm()
|
||||||
|
|
||||||
|
|||||||
@@ -307,7 +307,7 @@
|
|||||||
comp.AttachCloner(src)
|
comp.AttachCloner(src)
|
||||||
else
|
else
|
||||||
P.buffer = src
|
P.buffer = src
|
||||||
to_chat(user, "<font color = #666633>-% Successfully stored \ref[P.buffer] [P.buffer.name] in buffer %-</font color>")
|
to_chat(user, "<font color = #666633>-% Successfully stored [REF(P.buffer)] [P.buffer.name] in buffer %-</font color>")
|
||||||
return
|
return
|
||||||
|
|
||||||
var/mob/living/mob_occupant = occupant
|
var/mob/living/mob_occupant = occupant
|
||||||
|
|||||||
@@ -61,10 +61,10 @@
|
|||||||
else
|
else
|
||||||
dat += "<span class='good'>AI functional</span>"
|
dat += "<span class='good'>AI functional</span>"
|
||||||
if (!src.active)
|
if (!src.active)
|
||||||
dat += {"<br><br><A href='byond://?src=\ref[src];fix=1'>Begin Reconstruction</A>"}
|
dat += {"<br><br><A href='byond://?src=[REF(src)];fix=1'>Begin Reconstruction</A>"}
|
||||||
else
|
else
|
||||||
dat += "<br><br>Reconstruction in process, please wait.<br>"
|
dat += "<br><br>Reconstruction in process, please wait.<br>"
|
||||||
dat += {"<br><A href='?src=\ref[user];mach_close=computer'>Close</A>"}
|
dat += {"<br><A href='?src=[REF(user)];mach_close=computer'>Close</A>"}
|
||||||
var/datum/browser/popup = new(user, "computer", "AI System Integrity Restorer", 400, 500)
|
var/datum/browser/popup = new(user, "computer", "AI System Integrity Restorer", 400, 500)
|
||||||
popup.set_content(dat)
|
popup.set_content(dat)
|
||||||
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
|
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
var/list/apcs //APCs the computer has access to
|
var/list/apcs //APCs the computer has access to
|
||||||
var/mob/living/operator //Who's operating the computer right now
|
var/mob/living/operator //Who's operating the computer right now
|
||||||
var/obj/machinery/power/apc/active_apc //The APC we're using right now
|
var/obj/machinery/power/apc/active_apc //The APC we're using right now
|
||||||
var/list/filters //For sorting the results
|
var/list/result_filters //For sorting the results
|
||||||
var/checking_logs = 0
|
var/checking_logs = 0
|
||||||
var/list/logs
|
var/list/logs
|
||||||
var/authenticated = 0
|
var/authenticated = 0
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
/obj/machinery/computer/apc_control/Initialize()
|
/obj/machinery/computer/apc_control/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
apcs = list() //To avoid BYOND making the list run through a ton of procs
|
apcs = list() //To avoid BYOND making the list run through a ton of procs
|
||||||
filters = list("Name" = null, "Charge Above" = null, "Charge Below" = null, "Responsive" = null)
|
result_filters = list("Name" = null, "Charge Above" = null, "Charge Below" = null, "Responsive" = null)
|
||||||
|
|
||||||
/obj/machinery/computer/apc_control/process()
|
/obj/machinery/computer/apc_control/process()
|
||||||
apcs = list() //Clear the list every tick
|
apcs = list() //Clear the list every tick
|
||||||
@@ -52,28 +52,28 @@
|
|||||||
if(!checking_logs)
|
if(!checking_logs)
|
||||||
dat += "Logged in as [auth_id].<br><br>"
|
dat += "Logged in as [auth_id].<br><br>"
|
||||||
dat += "<i>Filters</i><br>"
|
dat += "<i>Filters</i><br>"
|
||||||
dat += "<b>Name:</b> <a href='?src=\ref[src];name_filter=1'>[filters["Name"] ? filters["Name"] : "None set"]</a><br>"
|
dat += "<b>Name:</b> <a href='?src=[REF(src)];name_filter=1'>[result_filters["Name"] ? result_filters["Name"] : "None set"]</a><br>"
|
||||||
dat += "<b>Charge:</b> <a href='?src=\ref[src];above_filter=1'>\>[filters["Charge Above"] ? filters["Charge Above"] : "NaN"]%</a> and <a href='?src=\ref[src];below_filter=1'>\<[filters["Charge Below"] ? filters["Charge Below"] : "NaN"]%</a><br>"
|
dat += "<b>Charge:</b> <a href='?src=[REF(src)];above_filter=1'>\>[result_filters["Charge Above"] ? result_filters["Charge Above"] : "NaN"]%</a> and <a href='?src=[REF(src)];below_filter=1'>\<[result_filters["Charge Below"] ? result_filters["Charge Below"] : "NaN"]%</a><br>"
|
||||||
dat += "<b>Accessible:</b> <a href='?src=\ref[src];access_filter=1'>[filters["Responsive"] ? "Non-Responsive Only" : "All"]</a><br><br>"
|
dat += "<b>Accessible:</b> <a href='?src=[REF(src)];access_filter=1'>[result_filters["Responsive"] ? "Non-Responsive Only" : "All"]</a><br><br>"
|
||||||
for(var/A in apcs)
|
for(var/A in apcs)
|
||||||
var/obj/machinery/power/apc/APC = apcs[A]
|
var/obj/machinery/power/apc/APC = apcs[A]
|
||||||
if(filters["Name"] && !findtext(APC.name, filters["Name"]) && !findtext(APC.area.name, filters["Name"]))
|
if(result_filters["Name"] && !findtext(APC.name, result_filters["Name"]) && !findtext(APC.area.name, result_filters["Name"]))
|
||||||
continue
|
continue
|
||||||
if(filters["Charge Above"] && (APC.cell.charge / APC.cell.maxcharge) < filters["Charge Above"] / 100)
|
if(result_filters["Charge Above"] && (APC.cell.charge / APC.cell.maxcharge) < result_filters["Charge Above"] / 100)
|
||||||
continue
|
continue
|
||||||
if(filters["Charge Below"] && (APC.cell.charge / APC.cell.maxcharge) > filters["Charge Below"] / 100)
|
if(result_filters["Charge Below"] && (APC.cell.charge / APC.cell.maxcharge) > result_filters["Charge Below"] / 100)
|
||||||
continue
|
continue
|
||||||
if(filters["Responsive"] && !APC.aidisabled)
|
if(result_filters["Responsive"] && !APC.aidisabled)
|
||||||
continue
|
continue
|
||||||
dat += "<a href='?src=\ref[src];access_apc=\ref[APC]'>[A]</a><br>\
|
dat += "<a href='?src=[REF(src)];access_apc=[REF(APC)]'>[A]</a><br>\
|
||||||
<b>Charge:</b> [DisplayPower(APC.cell.charge)] / [DisplayPower(APC.cell.maxcharge)] ([round((APC.cell.charge / APC.cell.maxcharge) * 100)]%)<br>\
|
<b>Charge:</b> [DisplayPower(APC.cell.charge)] / [DisplayPower(APC.cell.maxcharge)] ([round((APC.cell.charge / APC.cell.maxcharge) * 100)]%)<br>\
|
||||||
<b>Area:</b> [APC.area]<br>\
|
<b>Area:</b> [APC.area]<br>\
|
||||||
[APC.aidisabled || APC.panel_open ? "<font color='#FF0000'>APC does not respond to interface query.</font>" : "<font color='#00FF00'>APC responds to interface query.</font>"]<br><br>"
|
[APC.aidisabled || APC.panel_open ? "<font color='#FF0000'>APC does not respond to interface query.</font>" : "<font color='#00FF00'>APC responds to interface query.</font>"]<br><br>"
|
||||||
dat += "<a href='?src=\ref[src];check_logs=1'>Check Logs</a><br>"
|
dat += "<a href='?src=[REF(src)];check_logs=1'>Check Logs</a><br>"
|
||||||
dat += "<a href='?src=\ref[src];log_out=1'>Log Out</a><br>"
|
dat += "<a href='?src=[REF(src)];log_out=1'>Log Out</a><br>"
|
||||||
if(emagged)
|
if(emagged)
|
||||||
dat += "<font color='#FF0000'>WARNING: Logging functionality partially disabled from outside source.</font><br>"
|
dat += "<font color='#FF0000'>WARNING: Logging functionality partially disabled from outside source.</font><br>"
|
||||||
dat += "<a href='?src=\ref[src];restore_logging=1'>Restore logging functionality?</a><br>"
|
dat += "<a href='?src=[REF(src)];restore_logging=1'>Restore logging functionality?</a><br>"
|
||||||
else
|
else
|
||||||
if(logs.len)
|
if(logs.len)
|
||||||
for(var/entry in logs)
|
for(var/entry in logs)
|
||||||
@@ -81,11 +81,11 @@
|
|||||||
else
|
else
|
||||||
dat += "<i>No activity has been recorded at this time.</i><br>"
|
dat += "<i>No activity has been recorded at this time.</i><br>"
|
||||||
if(emagged)
|
if(emagged)
|
||||||
dat += "<a href='?src=\ref[src];clear_logs=1'><font color='#FF0000'>@#%! CLEAR LOGS</a>"
|
dat += "<a href='?src=[REF(src)];clear_logs=1'><font color='#FF0000'>@#%! CLEAR LOGS</a>"
|
||||||
dat += "<a href='?src=\ref[src];check_apcs=1'>Return</a>"
|
dat += "<a href='?src=[REF(src)];check_apcs=1'>Return</a>"
|
||||||
operator = user
|
operator = user
|
||||||
else
|
else
|
||||||
dat = "<a href='?src=\ref[src];authenticate=1'>Please swipe a valid ID to log in...</a>"
|
dat = "<a href='?src=[REF(src)];authenticate=1'>Please swipe a valid ID to log in...</a>"
|
||||||
var/datum/browser/popup = new(user, "apc_control", name, 600, 400)
|
var/datum/browser/popup = new(user, "apc_control", name, 600, 400)
|
||||||
popup.set_content(dat)
|
popup.set_content(dat)
|
||||||
popup.set_title_image(user.browse_rsc_icon(icon, icon_state))
|
popup.set_title_image(user.browse_rsc_icon(icon, icon_state))
|
||||||
@@ -153,7 +153,7 @@
|
|||||||
return
|
return
|
||||||
log_activity("changed name filter to \"[new_filter]\"")
|
log_activity("changed name filter to \"[new_filter]\"")
|
||||||
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
|
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
|
||||||
filters["Name"] = new_filter
|
result_filters["Name"] = new_filter
|
||||||
if(href_list["above_filter"])
|
if(href_list["above_filter"])
|
||||||
playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0)
|
playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0)
|
||||||
var/new_filter = input(usr, "Enter a percentage from 1-100 to sort by (greater than).", name) as null|num
|
var/new_filter = input(usr, "Enter a percentage from 1-100 to sort by (greater than).", name) as null|num
|
||||||
@@ -163,7 +163,7 @@
|
|||||||
if(new_filter)
|
if(new_filter)
|
||||||
new_filter = Clamp(new_filter, 0, 100)
|
new_filter = Clamp(new_filter, 0, 100)
|
||||||
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
|
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
|
||||||
filters["Charge Above"] = new_filter
|
result_filters["Charge Above"] = new_filter
|
||||||
if(href_list["below_filter"])
|
if(href_list["below_filter"])
|
||||||
playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0)
|
playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0)
|
||||||
var/new_filter = input(usr, "Enter a percentage from 1-100 to sort by (lesser than).", name) as null|num
|
var/new_filter = input(usr, "Enter a percentage from 1-100 to sort by (lesser than).", name) as null|num
|
||||||
@@ -173,13 +173,13 @@
|
|||||||
if(new_filter)
|
if(new_filter)
|
||||||
new_filter = Clamp(new_filter, 0, 100)
|
new_filter = Clamp(new_filter, 0, 100)
|
||||||
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
|
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
|
||||||
filters["Charge Below"] = new_filter
|
result_filters["Charge Below"] = new_filter
|
||||||
if(href_list["access_filter"])
|
if(href_list["access_filter"])
|
||||||
if(isnull(filters["Responsive"]))
|
if(isnull(result_filters["Responsive"]))
|
||||||
filters["Responsive"] = 1
|
result_filters["Responsive"] = 1
|
||||||
log_activity("sorted by non-responsive APCs only")
|
log_activity("sorted by non-responsive APCs only")
|
||||||
else
|
else
|
||||||
filters["Responsive"] = !filters["Responsive"]
|
result_filters["Responsive"] = !result_filters["Responsive"]
|
||||||
log_activity("sorted by all APCs")
|
log_activity("sorted by all APCs")
|
||||||
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
|
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
|
||||||
if(href_list["check_logs"])
|
if(href_list["check_logs"])
|
||||||
|
|||||||
@@ -134,18 +134,18 @@
|
|||||||
if(..())
|
if(..())
|
||||||
return
|
return
|
||||||
user.set_machine(src)
|
user.set_machine(src)
|
||||||
var/dat = "<a href='byond://?src=\ref[src];close=1'>Close</a>"
|
var/dat = "<a href='byond://?src=[REF(src)];close=1'>Close</a>"
|
||||||
dat += "<center><h4>[enemy_name]</h4></center>"
|
dat += "<center><h4>[enemy_name]</h4></center>"
|
||||||
|
|
||||||
dat += "<br><center><h3>[temp]</h3></center>"
|
dat += "<br><center><h3>[temp]</h3></center>"
|
||||||
dat += "<br><center>Health: [player_hp] | Magic: [player_mp] | Enemy Health: [enemy_hp]</center>"
|
dat += "<br><center>Health: [player_hp] | Magic: [player_mp] | Enemy Health: [enemy_hp]</center>"
|
||||||
|
|
||||||
if (gameover)
|
if (gameover)
|
||||||
dat += "<center><b><a href='byond://?src=\ref[src];newgame=1'>New Game</a>"
|
dat += "<center><b><a href='byond://?src=[REF(src)];newgame=1'>New Game</a>"
|
||||||
else
|
else
|
||||||
dat += "<center><b><a href='byond://?src=\ref[src];attack=1'>Attack</a> | "
|
dat += "<center><b><a href='byond://?src=[REF(src)];attack=1'>Attack</a> | "
|
||||||
dat += "<a href='byond://?src=\ref[src];heal=1'>Heal</a> | "
|
dat += "<a href='byond://?src=[REF(src)];heal=1'>Heal</a> | "
|
||||||
dat += "<a href='byond://?src=\ref[src];charge=1'>Recharge Power</a>"
|
dat += "<a href='byond://?src=[REF(src)];charge=1'>Recharge Power</a>"
|
||||||
|
|
||||||
dat += "</b></center>"
|
dat += "</b></center>"
|
||||||
var/datum/browser/popup = new(user, "arcade", "Space Villian 2000")
|
var/datum/browser/popup = new(user, "arcade", "Space Villian 2000")
|
||||||
@@ -439,7 +439,7 @@
|
|||||||
name = "The Orion Trail"
|
name = "The Orion Trail"
|
||||||
desc = "Learn how our ancestors got to Orion, and have fun in the process!"
|
desc = "Learn how our ancestors got to Orion, and have fun in the process!"
|
||||||
|
|
||||||
dat += "<P ALIGN=Right><a href='byond://?src=\ref[src];menu=1'>May They Rest In Peace</a></P>"
|
dat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];menu=1'>May They Rest In Peace</a></P>"
|
||||||
else if(event)
|
else if(event)
|
||||||
dat = eventdat
|
dat = eventdat
|
||||||
else if(gameStatus == ORION_STATUS_NORMAL)
|
else if(gameStatus == ORION_STATUS_NORMAL)
|
||||||
@@ -452,16 +452,16 @@
|
|||||||
dat += "<br><b>Food: </b>[food] | <b>Fuel: </b>[fuel]"
|
dat += "<br><b>Food: </b>[food] | <b>Fuel: </b>[fuel]"
|
||||||
dat += "<br><b>Engine Parts: </b>[engine] | <b>Hull Panels: </b>[hull] | <b>Electronics: </b>[electronics]"
|
dat += "<br><b>Engine Parts: </b>[engine] | <b>Hull Panels: </b>[hull] | <b>Electronics: </b>[electronics]"
|
||||||
if(turns == 7)
|
if(turns == 7)
|
||||||
dat += "<P ALIGN=Right><a href='byond://?src=\ref[src];pastblack=1'>Go Around</a> <a href='byond://?src=\ref[src];blackhole=1'>Continue</a></P>"
|
dat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];pastblack=1'>Go Around</a> <a href='byond://?src=[REF(src)];blackhole=1'>Continue</a></P>"
|
||||||
else
|
else
|
||||||
dat += "<P ALIGN=Right><a href='byond://?src=\ref[src];continue=1'>Continue</a></P>"
|
dat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];continue=1'>Continue</a></P>"
|
||||||
dat += "<P ALIGN=Right><a href='byond://?src=\ref[src];killcrew=1'>Kill a Crewmember</a></P>"
|
dat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];killcrew=1'>Kill a Crewmember</a></P>"
|
||||||
dat += "<P ALIGN=Right><a href='byond://?src=\ref[src];close=1'>Close</a></P>"
|
dat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];close=1'>Close</a></P>"
|
||||||
else
|
else
|
||||||
dat = "<center><h2>The Orion Trail</h2></center>"
|
dat = "<center><h2>The Orion Trail</h2></center>"
|
||||||
dat += "<br><center><h3>Experience the journey of your ancestors!</h3></center><br><br>"
|
dat += "<br><center><h3>Experience the journey of your ancestors!</h3></center><br><br>"
|
||||||
dat += "<center><b><a href='byond://?src=\ref[src];newgame=1'>New Game</a></b></center>"
|
dat += "<center><b><a href='byond://?src=[REF(src)];newgame=1'>New Game</a></b></center>"
|
||||||
dat += "<P ALIGN=Right><a href='byond://?src=\ref[src];close=1'>Close</a></P>"
|
dat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];close=1'>Close</a></P>"
|
||||||
var/datum/browser/popup = new(user, "arcade", "The Orion Trail",400,700)
|
var/datum/browser/popup = new(user, "arcade", "The Orion Trail",400,700)
|
||||||
popup.set_content(dat)
|
popup.set_content(dat)
|
||||||
popup.set_title_image(user.browse_rsc_icon(icon, icon_state))
|
popup.set_title_image(user.browse_rsc_icon(icon, icon_state))
|
||||||
@@ -769,41 +769,41 @@
|
|||||||
eventdat += "<br>[deadname] tried to fight back, but was killed."
|
eventdat += "<br>[deadname] tried to fight back, but was killed."
|
||||||
else
|
else
|
||||||
eventdat += "<br>Fortunately, you fended them off without any trouble."
|
eventdat += "<br>Fortunately, you fended them off without any trouble."
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];eventclose=1'>Continue</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];eventclose=1'>Continue</a></P>"
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];close=1'>Close</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];close=1'>Close</a></P>"
|
||||||
canContinueEvent = 1
|
canContinueEvent = 1
|
||||||
|
|
||||||
if(ORION_TRAIL_FLUX)
|
if(ORION_TRAIL_FLUX)
|
||||||
eventdat += "This region of space is highly turbulent. <br>If we go slowly we may avoid more damage, but if we keep our speed we won't waste supplies."
|
eventdat += "This region of space is highly turbulent. <br>If we go slowly we may avoid more damage, but if we keep our speed we won't waste supplies."
|
||||||
eventdat += "<br>What will you do?"
|
eventdat += "<br>What will you do?"
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];slow=1'>Slow Down</a> <a href='byond://?src=\ref[src];keepspeed=1'>Continue</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];slow=1'>Slow Down</a> <a href='byond://?src=[REF(src)];keepspeed=1'>Continue</a></P>"
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];close=1'>Close</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];close=1'>Close</a></P>"
|
||||||
|
|
||||||
if(ORION_TRAIL_ILLNESS)
|
if(ORION_TRAIL_ILLNESS)
|
||||||
eventdat += "A deadly illness has been contracted!"
|
eventdat += "A deadly illness has been contracted!"
|
||||||
var/deadname = remove_crewmember()
|
var/deadname = remove_crewmember()
|
||||||
eventdat += "<br>[deadname] was killed by the disease."
|
eventdat += "<br>[deadname] was killed by the disease."
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];eventclose=1'>Continue</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];eventclose=1'>Continue</a></P>"
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];close=1'>Close</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];close=1'>Close</a></P>"
|
||||||
canContinueEvent = 1
|
canContinueEvent = 1
|
||||||
|
|
||||||
if(ORION_TRAIL_BREAKDOWN)
|
if(ORION_TRAIL_BREAKDOWN)
|
||||||
eventdat += "Oh no! The engine has broken down!"
|
eventdat += "Oh no! The engine has broken down!"
|
||||||
eventdat += "<br>You can repair it with an engine part, or you can make repairs for 3 days."
|
eventdat += "<br>You can repair it with an engine part, or you can make repairs for 3 days."
|
||||||
if(engine >= 1)
|
if(engine >= 1)
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];useengine=1'>Use Part</a><a href='byond://?src=\ref[src];wait=1'>Wait</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];useengine=1'>Use Part</a><a href='byond://?src=[REF(src)];wait=1'>Wait</a></P>"
|
||||||
else
|
else
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];wait=1'>Wait</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];wait=1'>Wait</a></P>"
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];close=1'>Close</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];close=1'>Close</a></P>"
|
||||||
|
|
||||||
if(ORION_TRAIL_MALFUNCTION)
|
if(ORION_TRAIL_MALFUNCTION)
|
||||||
eventdat += "The ship's systems are malfunctioning!"
|
eventdat += "The ship's systems are malfunctioning!"
|
||||||
eventdat += "<br>You can replace the broken electronics with spares, or you can spend 3 days troubleshooting the AI."
|
eventdat += "<br>You can replace the broken electronics with spares, or you can spend 3 days troubleshooting the AI."
|
||||||
if(electronics >= 1)
|
if(electronics >= 1)
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];useelec=1'>Use Part</a><a href='byond://?src=\ref[src];wait=1'>Wait</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];useelec=1'>Use Part</a><a href='byond://?src=[REF(src)];wait=1'>Wait</a></P>"
|
||||||
else
|
else
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];wait=1'>Wait</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];wait=1'>Wait</a></P>"
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];close=1'>Close</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];close=1'>Close</a></P>"
|
||||||
|
|
||||||
if(ORION_TRAIL_COLLISION)
|
if(ORION_TRAIL_COLLISION)
|
||||||
eventdat += "Something hit us! Looks like there's some hull damage."
|
eventdat += "Something hit us! Looks like there's some hull damage."
|
||||||
@@ -818,23 +818,23 @@
|
|||||||
eventdat += "<br>[deadname] was killed by rapid depressurization."
|
eventdat += "<br>[deadname] was killed by rapid depressurization."
|
||||||
eventdat += "<br>You can repair the damage with hull plates, or you can spend the next 3 days welding scrap together."
|
eventdat += "<br>You can repair the damage with hull plates, or you can spend the next 3 days welding scrap together."
|
||||||
if(hull >= 1)
|
if(hull >= 1)
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];usehull=1'>Use Part</a><a href='byond://?src=\ref[src];wait=1'>Wait</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];usehull=1'>Use Part</a><a href='byond://?src=[REF(src)];wait=1'>Wait</a></P>"
|
||||||
else
|
else
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];wait=1'>Wait</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];wait=1'>Wait</a></P>"
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];close=1'>Close</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];close=1'>Close</a></P>"
|
||||||
|
|
||||||
if(ORION_TRAIL_BLACKHOLE)
|
if(ORION_TRAIL_BLACKHOLE)
|
||||||
eventdat += "You were swept away into the black hole."
|
eventdat += "You were swept away into the black hole."
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];holedeath=1'>Oh...</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];holedeath=1'>Oh...</a></P>"
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];close=1'>Close</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];close=1'>Close</a></P>"
|
||||||
settlers = list()
|
settlers = list()
|
||||||
|
|
||||||
if(ORION_TRAIL_LING)
|
if(ORION_TRAIL_LING)
|
||||||
eventdat += "Strange reports warn of changelings infiltrating crews on trips to Orion..."
|
eventdat += "Strange reports warn of changelings infiltrating crews on trips to Orion..."
|
||||||
if(settlers.len <= 2)
|
if(settlers.len <= 2)
|
||||||
eventdat += "<br>Your crew's chance of reaching Orion is so slim the changelings likely avoided your ship..."
|
eventdat += "<br>Your crew's chance of reaching Orion is so slim the changelings likely avoided your ship..."
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];eventclose=1'>Continue</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];eventclose=1'>Continue</a></P>"
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];close=1'>Close</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];close=1'>Close</a></P>"
|
||||||
if(prob(10)) // "likely", I didn't say it was guaranteed!
|
if(prob(10)) // "likely", I didn't say it was guaranteed!
|
||||||
lings_aboard = min(++lings_aboard,2)
|
lings_aboard = min(++lings_aboard,2)
|
||||||
else
|
else
|
||||||
@@ -844,9 +844,9 @@
|
|||||||
else if(prob(70))
|
else if(prob(70))
|
||||||
lings_aboard = min(++lings_aboard,2)
|
lings_aboard = min(++lings_aboard,2)
|
||||||
|
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];killcrew=1'>Kill a Crewmember</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];killcrew=1'>Kill a Crewmember</a></P>"
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];eventclose=1'>Risk it</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];eventclose=1'>Risk it</a></P>"
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];close=1'>Close</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];close=1'>Close</a></P>"
|
||||||
canContinueEvent = 1
|
canContinueEvent = 1
|
||||||
|
|
||||||
if(ORION_TRAIL_LING_ATTACK)
|
if(ORION_TRAIL_LING_ATTACK)
|
||||||
@@ -892,8 +892,8 @@
|
|||||||
else
|
else
|
||||||
lings_aboard = max(0,--lings_aboard)
|
lings_aboard = max(0,--lings_aboard)
|
||||||
|
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];eventclose=1'>Continue</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];eventclose=1'>Continue</a></P>"
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];close=1'>Close</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];close=1'>Close</a></P>"
|
||||||
canContinueEvent = 1
|
canContinueEvent = 1
|
||||||
|
|
||||||
|
|
||||||
@@ -903,8 +903,8 @@
|
|||||||
eventdat += "The spaceport is on high alert! You've been barred from docking by the local authorities after your failed raid."
|
eventdat += "The spaceport is on high alert! You've been barred from docking by the local authorities after your failed raid."
|
||||||
if(last_spaceport_action)
|
if(last_spaceport_action)
|
||||||
eventdat += "<br><b>Last Spaceport Action:</b> [last_spaceport_action]"
|
eventdat += "<br><b>Last Spaceport Action:</b> [last_spaceport_action]"
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];leave_spaceport=1'>Depart Spaceport</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];leave_spaceport=1'>Depart Spaceport</a></P>"
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];close=1'>Close</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];close=1'>Close</a></P>"
|
||||||
else
|
else
|
||||||
eventdat += "Your jump into the sector yields a spaceport - a lucky find!"
|
eventdat += "Your jump into the sector yields a spaceport - a lucky find!"
|
||||||
eventdat += "<br>This spaceport is home to travellers who failed to reach Orion, but managed to find a different home..."
|
eventdat += "<br>This spaceport is home to travellers who failed to reach Orion, but managed to find a different home..."
|
||||||
@@ -943,13 +943,13 @@
|
|||||||
|
|
||||||
//Buy crew
|
//Buy crew
|
||||||
if(food >= 10 && fuel >= 10)
|
if(food >= 10 && fuel >= 10)
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];buycrew=1'>Hire a New Crewmember (-10FU, -10FO)</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];buycrew=1'>Hire a New Crewmember (-10FU, -10FO)</a></P>"
|
||||||
else
|
else
|
||||||
eventdat += "<P ALIGN=Right>You cannot afford a new crewmember.</P>"
|
eventdat += "<P ALIGN=Right>You cannot afford a new crewmember.</P>"
|
||||||
|
|
||||||
//Sell crew
|
//Sell crew
|
||||||
if(settlers.len > 1)
|
if(settlers.len > 1)
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];sellcrew=1'>Sell Crew for Fuel and Food (+7FU, +7FO)</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];sellcrew=1'>Sell Crew for Fuel and Food (+7FU, +7FO)</a></P>"
|
||||||
else
|
else
|
||||||
eventdat += "<P ALIGN=Right>You have no other crew to sell.</P>"
|
eventdat += "<P ALIGN=Right>You have no other crew to sell.</P>"
|
||||||
|
|
||||||
@@ -958,37 +958,37 @@
|
|||||||
|
|
||||||
//Engine parts
|
//Engine parts
|
||||||
if(fuel > 5)
|
if(fuel > 5)
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];buyparts=1'>Buy Engine Parts (-5FU)</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];buyparts=1'>Buy Engine Parts (-5FU)</a></P>"
|
||||||
else
|
else
|
||||||
eventdat += "<P ALIGN=Right>You cannot afford engine parts.</a>"
|
eventdat += "<P ALIGN=Right>You cannot afford engine parts.</a>"
|
||||||
|
|
||||||
//Hull plates
|
//Hull plates
|
||||||
if(fuel > 5)
|
if(fuel > 5)
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];buyparts=2'>Buy Hull Plates (-5FU)</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];buyparts=2'>Buy Hull Plates (-5FU)</a></P>"
|
||||||
else
|
else
|
||||||
eventdat += "<P ALIGN=Right>You cannot afford hull plates.</a>"
|
eventdat += "<P ALIGN=Right>You cannot afford hull plates.</a>"
|
||||||
|
|
||||||
//Electronics
|
//Electronics
|
||||||
if(fuel > 5)
|
if(fuel > 5)
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];buyparts=3'>Buy Spare Electronics (-5FU)</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];buyparts=3'>Buy Spare Electronics (-5FU)</a></P>"
|
||||||
else
|
else
|
||||||
eventdat += "<P ALIGN=Right>You cannot afford spare electronics.</a>"
|
eventdat += "<P ALIGN=Right>You cannot afford spare electronics.</a>"
|
||||||
|
|
||||||
//Trade
|
//Trade
|
||||||
if(fuel > 5)
|
if(fuel > 5)
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];trade=1'>Trade Fuel for Food (-5FU,+5FO)</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];trade=1'>Trade Fuel for Food (-5FU,+5FO)</a></P>"
|
||||||
else
|
else
|
||||||
eventdat += "<P ALIGN=Right>You don't have 5FU to trade.</P"
|
eventdat += "<P ALIGN=Right>You don't have 5FU to trade.</P"
|
||||||
|
|
||||||
if(food > 5)
|
if(food > 5)
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];trade=2'>Trade Food for Fuel (+5FU,-5FO)</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];trade=2'>Trade Food for Fuel (+5FU,-5FO)</a></P>"
|
||||||
else
|
else
|
||||||
eventdat += "<P ALIGN=Right>You don't have 5FO to trade.</P"
|
eventdat += "<P ALIGN=Right>You don't have 5FO to trade.</P"
|
||||||
|
|
||||||
//Raid the spaceport
|
//Raid the spaceport
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];raid_spaceport=1'>!! Raid Spaceport !!</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];raid_spaceport=1'>!! Raid Spaceport !!</a></P>"
|
||||||
|
|
||||||
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];leave_spaceport=1'>Depart Spaceport</a></P>"
|
eventdat += "<P ALIGN=Right><a href='byond://?src=[REF(src)];leave_spaceport=1'>Depart Spaceport</a></P>"
|
||||||
|
|
||||||
|
|
||||||
//Add Random/Specific crewmember
|
//Add Random/Specific crewmember
|
||||||
|
|||||||
@@ -145,18 +145,18 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
|
|||||||
var/crew = ""
|
var/crew = ""
|
||||||
for(var/datum/data/record/t in sortRecord(GLOB.data_core.general))
|
for(var/datum/data/record/t in sortRecord(GLOB.data_core.general))
|
||||||
crew += t.fields["name"] + " - " + t.fields["rank"] + "<br>"
|
crew += t.fields["name"] + " - " + t.fields["rank"] + "<br>"
|
||||||
dat = "<tt><b>Crew Manifest:</b><br>Please use security record computer to modify entries.<br><br>[crew]<a href='?src=\ref[src];choice=print'>Print</a><br><br><a href='?src=\ref[src];choice=mode;mode_target=0'>Access ID modification console.</a><br></tt>"
|
dat = "<tt><b>Crew Manifest:</b><br>Please use security record computer to modify entries.<br><br>[crew]<a href='?src=[REF(src)];choice=print'>Print</a><br><br><a href='?src=[REF(src)];choice=mode;mode_target=0'>Access ID modification console.</a><br></tt>"
|
||||||
|
|
||||||
else if(mode == 2)
|
else if(mode == 2)
|
||||||
// JOB MANAGEMENT
|
// JOB MANAGEMENT
|
||||||
dat = "<a href='?src=\ref[src];choice=return'>Return</a>"
|
dat = "<a href='?src=[REF(src)];choice=return'>Return</a>"
|
||||||
dat += " || Confirm Identity: "
|
dat += " || Confirm Identity: "
|
||||||
var/S
|
var/S
|
||||||
if(scan)
|
if(scan)
|
||||||
S = html_encode(scan.name)
|
S = html_encode(scan.name)
|
||||||
else
|
else
|
||||||
S = "--------"
|
S = "--------"
|
||||||
dat += "<a href='?src=\ref[src];choice=scan'>[S]</a>"
|
dat += "<a href='?src=[REF(src)];choice=scan'>[S]</a>"
|
||||||
dat += "<table>"
|
dat += "<table>"
|
||||||
dat += "<tr><td style='width:25%'><b>Job</b></td><td style='width:25%'><b>Slots</b></td><td style='width:25%'><b>Open job</b></td><td style='width:25%'><b>Close job</b><td style='width:25%'><b>Prioritize</b></td></td></tr>"
|
dat += "<tr><td style='width:25%'><b>Job</b></td><td style='width:25%'><b>Slots</b></td><td style='width:25%'><b>Open job</b></td><td style='width:25%'><b>Close job</b><td style='width:25%'><b>Prioritize</b></td></td></tr>"
|
||||||
var/ID
|
var/ID
|
||||||
@@ -174,7 +174,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
|
|||||||
switch(can_open_job(job))
|
switch(can_open_job(job))
|
||||||
if(1)
|
if(1)
|
||||||
if(ID)
|
if(ID)
|
||||||
dat += "<a href='?src=\ref[src];choice=make_job_available;job=[job.title]'>Open Position</a><br>"
|
dat += "<a href='?src=[REF(src)];choice=make_job_available;job=[job.title]'>Open Position</a><br>"
|
||||||
else
|
else
|
||||||
dat += "Open Position"
|
dat += "Open Position"
|
||||||
if(-1)
|
if(-1)
|
||||||
@@ -190,7 +190,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
|
|||||||
switch(can_close_job(job))
|
switch(can_close_job(job))
|
||||||
if(1)
|
if(1)
|
||||||
if(ID)
|
if(ID)
|
||||||
dat += "<a href='?src=\ref[src];choice=make_job_unavailable;job=[job.title]'>Close Position</a>"
|
dat += "<a href='?src=[REF(src)];choice=make_job_unavailable;job=[job.title]'>Close Position</a>"
|
||||||
else
|
else
|
||||||
dat += "Close Position"
|
dat += "Close Position"
|
||||||
if(-1)
|
if(-1)
|
||||||
@@ -209,10 +209,10 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
|
|||||||
else
|
else
|
||||||
if(ID)
|
if(ID)
|
||||||
if(job in SSjob.prioritized_jobs)
|
if(job in SSjob.prioritized_jobs)
|
||||||
dat += "<a href='?src=\ref[src];choice=prioritize_job;job=[job.title]'>Deprioritize</a>"
|
dat += "<a href='?src=[REF(src)];choice=prioritize_job;job=[job.title]'>Deprioritize</a>"
|
||||||
else
|
else
|
||||||
if(SSjob.prioritized_jobs.len < 5)
|
if(SSjob.prioritized_jobs.len < 5)
|
||||||
dat += "<a href='?src=\ref[src];choice=prioritize_job;job=[job.title]'>Prioritize</a>"
|
dat += "<a href='?src=[REF(src)];choice=prioritize_job;job=[job.title]'>Prioritize</a>"
|
||||||
else
|
else
|
||||||
dat += "Denied"
|
dat += "Denied"
|
||||||
else
|
else
|
||||||
@@ -247,14 +247,14 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
|
|||||||
|
|
||||||
if(!authenticated)
|
if(!authenticated)
|
||||||
header += "<br><i>Please insert the cards into the slots</i><br>"
|
header += "<br><i>Please insert the cards into the slots</i><br>"
|
||||||
header += "Target: <a href='?src=\ref[src];choice=modify'>[target_name]</a><br>"
|
header += "Target: <a href='?src=[REF(src)];choice=modify'>[target_name]</a><br>"
|
||||||
header += "Confirm Identity: <a href='?src=\ref[src];choice=scan'>[scan_name]</a><br>"
|
header += "Confirm Identity: <a href='?src=[REF(src)];choice=scan'>[scan_name]</a><br>"
|
||||||
else
|
else
|
||||||
header += "<div align='center'><br>"
|
header += "<div align='center'><br>"
|
||||||
header += "<a href='?src=\ref[src];choice=modify'>Remove [target_name]</a> || "
|
header += "<a href='?src=[REF(src)];choice=modify'>Remove [target_name]</a> || "
|
||||||
header += "<a href='?src=\ref[src];choice=scan'>Remove [scan_name]</a> <br> "
|
header += "<a href='?src=[REF(src)];choice=scan'>Remove [scan_name]</a> <br> "
|
||||||
header += "<a href='?src=\ref[src];choice=mode;mode_target=1'>Access Crew Manifest</a> <br> "
|
header += "<a href='?src=[REF(src)];choice=mode;mode_target=1'>Access Crew Manifest</a> <br> "
|
||||||
header += "<a href='?src=\ref[src];choice=logout'>Log Out</a></div>"
|
header += "<a href='?src=[REF(src)];choice=logout'>Log Out</a></div>"
|
||||||
|
|
||||||
header += "<hr>"
|
header += "<hr>"
|
||||||
|
|
||||||
@@ -262,7 +262,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
|
|||||||
var/list/alljobs = list("Unassigned")
|
var/list/alljobs = list("Unassigned")
|
||||||
alljobs += (istype(src, /obj/machinery/computer/card/centcom)? get_all_centcom_jobs() : get_all_jobs()) + "Custom"
|
alljobs += (istype(src, /obj/machinery/computer/card/centcom)? get_all_centcom_jobs() : get_all_jobs()) + "Custom"
|
||||||
for(var/job in alljobs)
|
for(var/job in alljobs)
|
||||||
jobs_all += "<a href='?src=\ref[src];choice=assign;assign_target=[job]'>[replacetext(job, " ", " ")]</a> " //make sure there isn't a line break in the middle of a job
|
jobs_all += "<a href='?src=[REF(src)];choice=assign;assign_target=[job]'>[replacetext(job, " ", " ")]</a> " //make sure there isn't a line break in the middle of a job
|
||||||
|
|
||||||
|
|
||||||
var/body
|
var/body
|
||||||
@@ -290,8 +290,8 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
|
|||||||
allJobsSlot.innerHTML = "<a href='#' onclick='showAll()'>show</a>";
|
allJobsSlot.innerHTML = "<a href='#' onclick='showAll()'>show</a>";
|
||||||
}
|
}
|
||||||
</script>"}
|
</script>"}
|
||||||
carddesc += "<form name='cardcomp' action='?src=\ref[src]' method='get'>"
|
carddesc += "<form name='cardcomp' action='?src=[REF(src)]' method='get'>"
|
||||||
carddesc += "<input type='hidden' name='src' value='\ref[src]'>"
|
carddesc += "<input type='hidden' name='src' value='[REF(src)]'>"
|
||||||
carddesc += "<input type='hidden' name='choice' value='reg'>"
|
carddesc += "<input type='hidden' name='choice' value='reg'>"
|
||||||
carddesc += "<b>registered name:</b> <input type='text' id='namefield' name='reg' value='[target_owner]' style='width:250px; background-color:white;' onchange='markRed()'>"
|
carddesc += "<b>registered name:</b> <input type='text' id='namefield' name='reg' value='[target_owner]' style='width:250px; background-color:white;' onchange='markRed()'>"
|
||||||
carddesc += "<input type='submit' value='Rename' onclick='markGreen()'>"
|
carddesc += "<input type='submit' value='Rename' onclick='markGreen()'>"
|
||||||
@@ -302,16 +302,16 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
|
|||||||
|
|
||||||
else
|
else
|
||||||
carddesc += "<b>registered_name:</b> [target_owner]</span>"
|
carddesc += "<b>registered_name:</b> [target_owner]</span>"
|
||||||
jobs += "<b>Assignment:</b> [target_rank] (<a href='?src=\ref[src];choice=demote'>Demote</a>)</span>"
|
jobs += "<b>Assignment:</b> [target_rank] (<a href='?src=[REF(src)];choice=demote'>Demote</a>)</span>"
|
||||||
|
|
||||||
var/accesses = ""
|
var/accesses = ""
|
||||||
if(istype(src, /obj/machinery/computer/card/centcom))
|
if(istype(src, /obj/machinery/computer/card/centcom))
|
||||||
accesses += "<h5>Central Command:</h5>"
|
accesses += "<h5>Central Command:</h5>"
|
||||||
for(var/A in get_all_centcom_access())
|
for(var/A in get_all_centcom_access())
|
||||||
if(A in modify.access)
|
if(A in modify.access)
|
||||||
accesses += "<a href='?src=\ref[src];choice=access;access_target=[A];allowed=0'><font color=\"red\">[replacetext(get_centcom_access_desc(A), " ", " ")]</font></a> "
|
accesses += "<a href='?src=[REF(src)];choice=access;access_target=[A];allowed=0'><font color=\"red\">[replacetext(get_centcom_access_desc(A), " ", " ")]</font></a> "
|
||||||
else
|
else
|
||||||
accesses += "<a href='?src=\ref[src];choice=access;access_target=[A];allowed=1'>[replacetext(get_centcom_access_desc(A), " ", " ")]</a> "
|
accesses += "<a href='?src=[REF(src)];choice=access;access_target=[A];allowed=1'>[replacetext(get_centcom_access_desc(A), " ", " ")]</a> "
|
||||||
else
|
else
|
||||||
accesses += "<div align='center'><b>Access</b></div>"
|
accesses += "<div align='center'><b>Access</b></div>"
|
||||||
accesses += "<table style='width:100%'>"
|
accesses += "<table style='width:100%'>"
|
||||||
@@ -327,19 +327,19 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
|
|||||||
accesses += "<td style='width:14%' valign='top'>"
|
accesses += "<td style='width:14%' valign='top'>"
|
||||||
for(var/A in get_region_accesses(i))
|
for(var/A in get_region_accesses(i))
|
||||||
if(A in modify.access)
|
if(A in modify.access)
|
||||||
accesses += "<a href='?src=\ref[src];choice=access;access_target=[A];allowed=0'><font color=\"red\">[replacetext(get_access_desc(A), " ", " ")]</font></a> "
|
accesses += "<a href='?src=[REF(src)];choice=access;access_target=[A];allowed=0'><font color=\"red\">[replacetext(get_access_desc(A), " ", " ")]</font></a> "
|
||||||
else
|
else
|
||||||
accesses += "<a href='?src=\ref[src];choice=access;access_target=[A];allowed=1'>[replacetext(get_access_desc(A), " ", " ")]</a> "
|
accesses += "<a href='?src=[REF(src)];choice=access;access_target=[A];allowed=1'>[replacetext(get_access_desc(A), " ", " ")]</a> "
|
||||||
accesses += "<br>"
|
accesses += "<br>"
|
||||||
accesses += "</td>"
|
accesses += "</td>"
|
||||||
accesses += "</tr></table>"
|
accesses += "</tr></table>"
|
||||||
body = "[carddesc]<br>[jobs]<br><br>[accesses]" //CHECK THIS
|
body = "[carddesc]<br>[jobs]<br><br>[accesses]" //CHECK THIS
|
||||||
|
|
||||||
else
|
else
|
||||||
body = "<a href='?src=\ref[src];choice=auth'>{Log in}</a> <br><hr>"
|
body = "<a href='?src=[REF(src)];choice=auth'>{Log in}</a> <br><hr>"
|
||||||
body += "<a href='?src=\ref[src];choice=mode;mode_target=1'>Access Crew Manifest</a>"
|
body += "<a href='?src=[REF(src)];choice=mode;mode_target=1'>Access Crew Manifest</a>"
|
||||||
if(!target_dept)
|
if(!target_dept)
|
||||||
body += "<br><hr><a href = '?src=\ref[src];choice=mode;mode_target=2'>Job Management</a>"
|
body += "<br><hr><a href = '?src=[REF(src)];choice=mode;mode_target=2'>Job Management</a>"
|
||||||
|
|
||||||
dat = "<tt>[header][body]<hr><br></tt>"
|
dat = "<tt>[header][body]<hr><br></tt>"
|
||||||
var/datum/browser/popup = new(user, "id_com", src.name, 900, 620)
|
var/datum/browser/popup = new(user, "id_com", src.name, 900, 620)
|
||||||
|
|||||||
@@ -138,7 +138,7 @@
|
|||||||
AttachCloner(pod)
|
AttachCloner(pod)
|
||||||
else
|
else
|
||||||
P.buffer = src
|
P.buffer = src
|
||||||
to_chat(user, "<font color = #666633>-% Successfully stored \ref[P.buffer] [P.buffer.name] in buffer %-</font color>")
|
to_chat(user, "<font color = #666633>-% Successfully stored [REF(P.buffer)] [P.buffer.name] in buffer %-</font color>")
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
return ..()
|
return ..()
|
||||||
@@ -158,13 +158,13 @@
|
|||||||
updatemodules(TRUE)
|
updatemodules(TRUE)
|
||||||
|
|
||||||
var/dat = ""
|
var/dat = ""
|
||||||
dat += "<a href='byond://?src=\ref[src];refresh=1'>Refresh</a>"
|
dat += "<a href='byond://?src=[REF(src)];refresh=1'>Refresh</a>"
|
||||||
|
|
||||||
if(scanner && HasEfficientPod() && scanner.scan_level > 2)
|
if(scanner && HasEfficientPod() && scanner.scan_level > 2)
|
||||||
if(!autoprocess)
|
if(!autoprocess)
|
||||||
dat += "<a href='byond://?src=\ref[src];task=autoprocess'>Autoprocess</a>"
|
dat += "<a href='byond://?src=[REF(src)];task=autoprocess'>Autoprocess</a>"
|
||||||
else
|
else
|
||||||
dat += "<a href='byond://?src=\ref[src];task=stopautoprocess'>Stop autoprocess</a>"
|
dat += "<a href='byond://?src=[REF(src)];task=stopautoprocess'>Stop autoprocess</a>"
|
||||||
else
|
else
|
||||||
dat += "<span class='linkOff'>Autoprocess</span>"
|
dat += "<span class='linkOff'>Autoprocess</span>"
|
||||||
dat += "<h3>Cloning Pod Status</h3>"
|
dat += "<h3>Cloning Pod Status</h3>"
|
||||||
@@ -175,7 +175,7 @@
|
|||||||
// Modules
|
// Modules
|
||||||
if (isnull(src.scanner) || !LAZYLEN(pods))
|
if (isnull(src.scanner) || !LAZYLEN(pods))
|
||||||
dat += "<h3>Modules</h3>"
|
dat += "<h3>Modules</h3>"
|
||||||
//dat += "<a href='byond://?src=\ref[src];relmodules=1'>Reload Modules</a>"
|
//dat += "<a href='byond://?src=[REF(src)];relmodules=1'>Reload Modules</a>"
|
||||||
if (isnull(src.scanner))
|
if (isnull(src.scanner))
|
||||||
dat += "<font class='bad'>ERROR: No Scanner detected!</font><br>"
|
dat += "<font class='bad'>ERROR: No Scanner detected!</font><br>"
|
||||||
if (!LAZYLEN(pods))
|
if (!LAZYLEN(pods))
|
||||||
@@ -200,36 +200,36 @@
|
|||||||
dat += "</div>"
|
dat += "</div>"
|
||||||
|
|
||||||
if(scanner_occupant)
|
if(scanner_occupant)
|
||||||
dat += "<a href='byond://?src=\ref[src];scan=1'>Start Scan</a>"
|
dat += "<a href='byond://?src=[REF(src)];scan=1'>Start Scan</a>"
|
||||||
dat += "<br><a href='byond://?src=\ref[src];lock=1'>[src.scanner.locked ? "Unlock Scanner" : "Lock Scanner"]</a>"
|
dat += "<br><a href='byond://?src=[REF(src)];lock=1'>[src.scanner.locked ? "Unlock Scanner" : "Lock Scanner"]</a>"
|
||||||
else
|
else
|
||||||
dat += "<span class='linkOff'>Start Scan</span>"
|
dat += "<span class='linkOff'>Start Scan</span>"
|
||||||
|
|
||||||
// Database
|
// Database
|
||||||
dat += "<h3>Database Functions</h3>"
|
dat += "<h3>Database Functions</h3>"
|
||||||
if (src.records.len && src.records.len > 0)
|
if (src.records.len && src.records.len > 0)
|
||||||
dat += "<a href='byond://?src=\ref[src];menu=2'>View Records ([src.records.len])</a><br>"
|
dat += "<a href='byond://?src=[REF(src)];menu=2'>View Records ([src.records.len])</a><br>"
|
||||||
else
|
else
|
||||||
dat += "<span class='linkOff'>View Records (0)</span><br>"
|
dat += "<span class='linkOff'>View Records (0)</span><br>"
|
||||||
if (src.diskette)
|
if (src.diskette)
|
||||||
dat += "<a href='byond://?src=\ref[src];disk=eject'>Eject Disk</a><br>"
|
dat += "<a href='byond://?src=[REF(src)];disk=eject'>Eject Disk</a><br>"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(2)
|
if(2)
|
||||||
dat += "<h3>Current records</h3>"
|
dat += "<h3>Current records</h3>"
|
||||||
dat += "<a href='byond://?src=\ref[src];menu=1'><< Back</a><br><br>"
|
dat += "<a href='byond://?src=[REF(src)];menu=1'><< Back</a><br><br>"
|
||||||
for(var/datum/data/record/R in records)
|
for(var/datum/data/record/R in records)
|
||||||
dat += "<h4>[R.fields["name"]]</h4>Scan ID [R.fields["id"]] <a href='byond://?src=\ref[src];view_rec=[R.fields["id"]]'>View Record</a>"
|
dat += "<h4>[R.fields["name"]]</h4>Scan ID [R.fields["id"]] <a href='byond://?src=[REF(src)];view_rec=[R.fields["id"]]'>View Record</a>"
|
||||||
if(3)
|
if(3)
|
||||||
dat += "<h3>Selected Record</h3>"
|
dat += "<h3>Selected Record</h3>"
|
||||||
dat += "<a href='byond://?src=\ref[src];menu=2'><< Back</a><br>"
|
dat += "<a href='byond://?src=[REF(src)];menu=2'><< Back</a><br>"
|
||||||
|
|
||||||
if (!src.active_record)
|
if (!src.active_record)
|
||||||
dat += "<font class='bad'>Record not found.</font>"
|
dat += "<font class='bad'>Record not found.</font>"
|
||||||
else
|
else
|
||||||
dat += "<h4>[src.active_record.fields["name"]]</h4>"
|
dat += "<h4>[src.active_record.fields["name"]]</h4>"
|
||||||
dat += "Scan ID [src.active_record.fields["id"]] <a href='byond://?src=\ref[src];clone=[active_record.fields["id"]]'>Clone</a><br>"
|
dat += "Scan ID [src.active_record.fields["id"]] <a href='byond://?src=[REF(src)];clone=[active_record.fields["id"]]'>Clone</a><br>"
|
||||||
|
|
||||||
var/obj/item/implant/health/H = locate(src.active_record.fields["imp"])
|
var/obj/item/implant/health/H = locate(src.active_record.fields["imp"])
|
||||||
|
|
||||||
@@ -253,12 +253,12 @@
|
|||||||
if(diskette.fields["SE"])
|
if(diskette.fields["SE"])
|
||||||
L += "Structural Enzymes"
|
L += "Structural Enzymes"
|
||||||
dat += english_list(L, "Empty", " + ", " + ")
|
dat += english_list(L, "Empty", " + ", " + ")
|
||||||
dat += "<br /><a href='byond://?src=\ref[src];disk=load'>Load from Disk</a>"
|
dat += "<br /><a href='byond://?src=[REF(src)];disk=load'>Load from Disk</a>"
|
||||||
|
|
||||||
dat += "<br /><a href='byond://?src=\ref[src];disk=save'>Save to Disk</a>"
|
dat += "<br /><a href='byond://?src=[REF(src)];disk=save'>Save to Disk</a>"
|
||||||
dat += "</div>"
|
dat += "</div>"
|
||||||
|
|
||||||
dat += "<font size=1><a href='byond://?src=\ref[src];del_rec=1'>Delete Record</a></font>"
|
dat += "<font size=1><a href='byond://?src=[REF(src)];del_rec=1'>Delete Record</a></font>"
|
||||||
|
|
||||||
if(4)
|
if(4)
|
||||||
if (!src.active_record)
|
if (!src.active_record)
|
||||||
@@ -266,8 +266,8 @@
|
|||||||
dat = "[src.temp]<br>"
|
dat = "[src.temp]<br>"
|
||||||
dat += "<h3>Confirm Record Deletion</h3>"
|
dat += "<h3>Confirm Record Deletion</h3>"
|
||||||
|
|
||||||
dat += "<b><a href='byond://?src=\ref[src];del_rec=1'>Scan card to confirm.</a></b><br>"
|
dat += "<b><a href='byond://?src=[REF(src)];del_rec=1'>Scan card to confirm.</a></b><br>"
|
||||||
dat += "<b><a href='byond://?src=\ref[src];menu=3'>Cancel</a></b>"
|
dat += "<b><a href='byond://?src=[REF(src)];menu=3'>Cancel</a></b>"
|
||||||
|
|
||||||
|
|
||||||
var/datum/browser/popup = new(user, "cloning", "Cloning System Control")
|
var/datum/browser/popup = new(user, "cloning", "Cloning System Control")
|
||||||
@@ -484,7 +484,7 @@
|
|||||||
R.fields["factions"] = mob_occupant.faction
|
R.fields["factions"] = mob_occupant.faction
|
||||||
|
|
||||||
if (!isnull(mob_occupant.mind)) //Save that mind so traitors can continue traitoring after cloning.
|
if (!isnull(mob_occupant.mind)) //Save that mind so traitors can continue traitoring after cloning.
|
||||||
R.fields["mind"] = "\ref[mob_occupant.mind]"
|
R.fields["mind"] = "[REF(mob_occupant.mind)]"
|
||||||
|
|
||||||
//Add an implant if needed
|
//Add an implant if needed
|
||||||
var/obj/item/implant/health/imp
|
var/obj/item/implant/health/imp
|
||||||
@@ -494,7 +494,7 @@
|
|||||||
if(!imp)
|
if(!imp)
|
||||||
imp = new /obj/item/implant/health(mob_occupant)
|
imp = new /obj/item/implant/health(mob_occupant)
|
||||||
imp.implant(mob_occupant)
|
imp.implant(mob_occupant)
|
||||||
R.fields["imp"] = "\ref[imp]"
|
R.fields["imp"] = "[REF(imp)]"
|
||||||
|
|
||||||
src.records += R
|
src.records += R
|
||||||
scantemp = "Subject successfully scanned."
|
scantemp = "Subject successfully scanned."
|
||||||
|
|||||||
@@ -449,33 +449,38 @@
|
|||||||
dat += "Unable to trace most recent shuttle call/recall signal.<BR>"
|
dat += "Unable to trace most recent shuttle call/recall signal.<BR>"
|
||||||
dat += "Logged in as: [auth_id]"
|
dat += "Logged in as: [auth_id]"
|
||||||
dat += "<BR>"
|
dat += "<BR>"
|
||||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=logout'>Log Out</A> \]<BR>"
|
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=logout'>Log Out</A> \]<BR>"
|
||||||
dat += "<BR><B>General Functions</B>"
|
dat += "<BR><B>General Functions</B>"
|
||||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=messagelist'>Message List</A> \]"
|
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=messagelist'>Message List</A> \]"
|
||||||
switch(SSshuttle.emergency.mode)
|
switch(SSshuttle.emergency.mode)
|
||||||
if(SHUTTLE_IDLE, SHUTTLE_RECALL)
|
if(SHUTTLE_IDLE, SHUTTLE_RECALL)
|
||||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=callshuttle'>Call Emergency Shuttle</A> \]"
|
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=callshuttle'>Call Emergency Shuttle</A> \]"
|
||||||
else
|
else
|
||||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=cancelshuttle'>Cancel Shuttle Call</A> \]"
|
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=cancelshuttle'>Cancel Shuttle Call</A> \]"
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=status'>Set Status Display</A> \]"
|
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=status'>Set Status Display</A> \]"
|
||||||
if (src.authenticated==2)
|
if (src.authenticated==2)
|
||||||
|
=======
|
||||||
|
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=status'>Set Status Display</A> \]"
|
||||||
|
if (authenticated==2)
|
||||||
|
>>>>>>> 626302c... Merge pull request #32161 from ninjanomnom/512-experimental
|
||||||
dat += "<BR><BR><B>Captain Functions</B>"
|
dat += "<BR><BR><B>Captain Functions</B>"
|
||||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=announce'>Make a Captain's Announcement</A> \]"
|
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=announce'>Make a Captain's Announcement</A> \]"
|
||||||
if(CONFIG_GET(string/cross_server_address))
|
if(CONFIG_GET(string/cross_server_address))
|
||||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=crossserver'>Send a message to an allied station</A> \]"
|
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=crossserver'>Send a message to an allied station</A> \]"
|
||||||
if(SSmapping.config.allow_custom_shuttles == "yes")
|
if(SSmapping.config.allow_custom_shuttles == "yes")
|
||||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=purchase_menu'>Purchase Shuttle</A> \]"
|
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=purchase_menu'>Purchase Shuttle</A> \]"
|
||||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=changeseclevel'>Change Alert Level</A> \]"
|
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=changeseclevel'>Change Alert Level</A> \]"
|
||||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=emergencyaccess'>Emergency Maintenance Access</A> \]"
|
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=emergencyaccess'>Emergency Maintenance Access</A> \]"
|
||||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=nukerequest'>Request Nuclear Authentication Codes</A> \]"
|
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=nukerequest'>Request Nuclear Authentication Codes</A> \]"
|
||||||
if(!emagged)
|
if(!emagged)
|
||||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=MessageCentCom'>Send Message to CentCom</A> \]"
|
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=MessageCentCom'>Send Message to CentCom</A> \]"
|
||||||
else
|
else
|
||||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=MessageSyndicate'>Send Message to \[UNKNOWN\]</A> \]"
|
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=MessageSyndicate'>Send Message to \[UNKNOWN\]</A> \]"
|
||||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=RestoreBackup'>Restore Backup Routing Data</A> \]"
|
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=RestoreBackup'>Restore Backup Routing Data</A> \]"
|
||||||
else
|
else
|
||||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=login'>Log In</A> \]"
|
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=login'>Log In</A> \]"
|
||||||
if(STATE_CALLSHUTTLE)
|
if(STATE_CALLSHUTTLE)
|
||||||
dat += get_call_shuttle_form()
|
dat += get_call_shuttle_form()
|
||||||
playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0)
|
playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0)
|
||||||
@@ -484,6 +489,7 @@
|
|||||||
playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0)
|
playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0)
|
||||||
if(STATE_MESSAGELIST)
|
if(STATE_MESSAGELIST)
|
||||||
dat += "Messages:"
|
dat += "Messages:"
|
||||||
|
<<<<<<< HEAD
|
||||||
for(var/i = 1; i<=src.messagetitle.len; i++)
|
for(var/i = 1; i<=src.messagetitle.len; i++)
|
||||||
dat += "<BR><A HREF='?src=\ref[src];operation=viewmessage;message-num=[i]'>[src.messagetitle[i]]</A>"
|
dat += "<BR><A HREF='?src=\ref[src];operation=viewmessage;message-num=[i]'>[src.messagetitle[i]]</A>"
|
||||||
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
|
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
|
||||||
@@ -492,48 +498,70 @@
|
|||||||
dat += "<B>[src.messagetitle[src.currmsg]]</B><BR><BR>[src.messagetext[src.currmsg]]"
|
dat += "<B>[src.messagetitle[src.currmsg]]</B><BR><BR>[src.messagetext[src.currmsg]]"
|
||||||
if (src.authenticated)
|
if (src.authenticated)
|
||||||
dat += "<BR><BR>\[ <A HREF='?src=\ref[src];operation=delmessage'>Delete</a> \]"
|
dat += "<BR><BR>\[ <A HREF='?src=\ref[src];operation=delmessage'>Delete</a> \]"
|
||||||
|
=======
|
||||||
|
for(var/i in 1 to messages.len)
|
||||||
|
var/datum/comm_message/M = messages[i]
|
||||||
|
dat += "<BR><A HREF='?src=[REF(src)];operation=viewmessage;message-num=[i]'>[M.title]</A>"
|
||||||
|
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
|
||||||
|
if(STATE_VIEWMESSAGE)
|
||||||
|
if (currmsg)
|
||||||
|
dat += "<B>[currmsg.title]</B><BR><BR>[currmsg.content]"
|
||||||
|
if(!currmsg.answered && currmsg.possible_answers.len)
|
||||||
|
for(var/i in 1 to currmsg.possible_answers.len)
|
||||||
|
var/answer = currmsg.possible_answers[i]
|
||||||
|
dat += "<br>\[ <A HREF='?src=[REF(src)];operation=respond;answer=[i]'>Answer : [answer]</A> \]"
|
||||||
|
else if(currmsg.answered)
|
||||||
|
var/answered = currmsg.possible_answers[currmsg.answered]
|
||||||
|
dat += "<br> Archived Answer : [answered]"
|
||||||
|
dat += "<BR><BR>\[ <A HREF='?src=[REF(src)];operation=delmessage'>Delete</A> \]"
|
||||||
|
>>>>>>> 626302c... Merge pull request #32161 from ninjanomnom/512-experimental
|
||||||
else
|
else
|
||||||
src.state = STATE_MESSAGELIST
|
src.state = STATE_MESSAGELIST
|
||||||
src.attack_hand(user)
|
src.attack_hand(user)
|
||||||
return
|
return
|
||||||
if(STATE_DELMESSAGE)
|
if(STATE_DELMESSAGE)
|
||||||
|
<<<<<<< HEAD
|
||||||
if (src.currmsg)
|
if (src.currmsg)
|
||||||
dat += "Are you sure you want to delete this message? \[ <A HREF='?src=\ref[src];operation=delmessage2'>OK</A> | <A HREF='?src=\ref[src];operation=viewmessage'>Cancel</A> \]"
|
dat += "Are you sure you want to delete this message? \[ <A HREF='?src=\ref[src];operation=delmessage2'>OK</A> | <A HREF='?src=\ref[src];operation=viewmessage'>Cancel</A> \]"
|
||||||
|
=======
|
||||||
|
if (currmsg)
|
||||||
|
dat += "Are you sure you want to delete this message? \[ <A HREF='?src=[REF(src)];operation=delmessage2'>OK</A> | <A HREF='?src=[REF(src)];operation=viewmessage'>Cancel</A> \]"
|
||||||
|
>>>>>>> 626302c... Merge pull request #32161 from ninjanomnom/512-experimental
|
||||||
else
|
else
|
||||||
src.state = STATE_MESSAGELIST
|
src.state = STATE_MESSAGELIST
|
||||||
src.attack_hand(user)
|
src.attack_hand(user)
|
||||||
return
|
return
|
||||||
if(STATE_STATUSDISPLAY)
|
if(STATE_STATUSDISPLAY)
|
||||||
dat += "Set Status Displays<BR>"
|
dat += "Set Status Displays<BR>"
|
||||||
dat += "\[ <A HREF='?src=\ref[src];operation=setstat;statdisp=blank'>Clear</A> \]<BR>"
|
dat += "\[ <A HREF='?src=[REF(src)];operation=setstat;statdisp=blank'>Clear</A> \]<BR>"
|
||||||
dat += "\[ <A HREF='?src=\ref[src];operation=setstat;statdisp=shuttle'>Shuttle ETA</A> \]<BR>"
|
dat += "\[ <A HREF='?src=[REF(src)];operation=setstat;statdisp=shuttle'>Shuttle ETA</A> \]<BR>"
|
||||||
dat += "\[ <A HREF='?src=\ref[src];operation=setstat;statdisp=message'>Message</A> \]"
|
dat += "\[ <A HREF='?src=[REF(src)];operation=setstat;statdisp=message'>Message</A> \]"
|
||||||
dat += "<ul><li> Line 1: <A HREF='?src=\ref[src];operation=setmsg1'>[ stat_msg1 ? stat_msg1 : "(none)"]</A>"
|
dat += "<ul><li> Line 1: <A HREF='?src=[REF(src)];operation=setmsg1'>[ stat_msg1 ? stat_msg1 : "(none)"]</A>"
|
||||||
dat += "<li> Line 2: <A HREF='?src=\ref[src];operation=setmsg2'>[ stat_msg2 ? stat_msg2 : "(none)"]</A></ul><br>"
|
dat += "<li> Line 2: <A HREF='?src=[REF(src)];operation=setmsg2'>[ stat_msg2 ? stat_msg2 : "(none)"]</A></ul><br>"
|
||||||
dat += "\[ Alert: <A HREF='?src=\ref[src];operation=setstat;statdisp=alert;alert=default'>None</A> |"
|
dat += "\[ Alert: <A HREF='?src=[REF(src)];operation=setstat;statdisp=alert;alert=default'>None</A> |"
|
||||||
dat += " <A HREF='?src=\ref[src];operation=setstat;statdisp=alert;alert=redalert'>Red Alert</A> |"
|
dat += " <A HREF='?src=[REF(src)];operation=setstat;statdisp=alert;alert=redalert'>Red Alert</A> |"
|
||||||
dat += " <A HREF='?src=\ref[src];operation=setstat;statdisp=alert;alert=lockdown'>Lockdown</A> |"
|
dat += " <A HREF='?src=[REF(src)];operation=setstat;statdisp=alert;alert=lockdown'>Lockdown</A> |"
|
||||||
dat += " <A HREF='?src=\ref[src];operation=setstat;statdisp=alert;alert=biohazard'>Biohazard</A> \]<BR><HR>"
|
dat += " <A HREF='?src=[REF(src)];operation=setstat;statdisp=alert;alert=biohazard'>Biohazard</A> \]<BR><HR>"
|
||||||
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
|
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
|
||||||
if(STATE_ALERT_LEVEL)
|
if(STATE_ALERT_LEVEL)
|
||||||
dat += "Current alert level: [get_security_level()]<BR>"
|
dat += "Current alert level: [get_security_level()]<BR>"
|
||||||
if(GLOB.security_level == SEC_LEVEL_DELTA)
|
if(GLOB.security_level == SEC_LEVEL_DELTA)
|
||||||
dat += "<font color='red'><b>The self-destruct mechanism is active. Find a way to deactivate the mechanism to lower the alert level or evacuate.</b></font>"
|
dat += "<font color='red'><b>The self-destruct mechanism is active. Find a way to deactivate the mechanism to lower the alert level or evacuate.</b></font>"
|
||||||
else
|
else
|
||||||
dat += "<A HREF='?src=\ref[src];operation=securitylevel;newalertlevel=[SEC_LEVEL_BLUE]'>Blue</A><BR>"
|
dat += "<A HREF='?src=[REF(src)];operation=securitylevel;newalertlevel=[SEC_LEVEL_BLUE]'>Blue</A><BR>"
|
||||||
dat += "<A HREF='?src=\ref[src];operation=securitylevel;newalertlevel=[SEC_LEVEL_GREEN]'>Green</A>"
|
dat += "<A HREF='?src=[REF(src)];operation=securitylevel;newalertlevel=[SEC_LEVEL_GREEN]'>Green</A>"
|
||||||
if(STATE_CONFIRM_LEVEL)
|
if(STATE_CONFIRM_LEVEL)
|
||||||
dat += "Current alert level: [get_security_level()]<BR>"
|
dat += "Current alert level: [get_security_level()]<BR>"
|
||||||
dat += "Confirm the change to: [num2seclevel(tmp_alertlevel)]<BR>"
|
dat += "Confirm the change to: [num2seclevel(tmp_alertlevel)]<BR>"
|
||||||
dat += "<A HREF='?src=\ref[src];operation=swipeidseclevel'>Swipe ID</A> to confirm change.<BR>"
|
dat += "<A HREF='?src=[REF(src)];operation=swipeidseclevel'>Swipe ID</A> to confirm change.<BR>"
|
||||||
if(STATE_TOGGLE_EMERGENCY)
|
if(STATE_TOGGLE_EMERGENCY)
|
||||||
playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0)
|
playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0)
|
||||||
if(GLOB.emergency_access == 1)
|
if(GLOB.emergency_access == 1)
|
||||||
dat += "<b>Emergency Maintenance Access is currently <font color='red'>ENABLED</font></b>"
|
dat += "<b>Emergency Maintenance Access is currently <font color='red'>ENABLED</font></b>"
|
||||||
dat += "<BR>Restore maintenance access restrictions? <BR>\[ <A HREF='?src=\ref[src];operation=disableemergency'>OK</A> | <A HREF='?src=\ref[src];operation=viewmessage'>Cancel</A> \]"
|
dat += "<BR>Restore maintenance access restrictions? <BR>\[ <A HREF='?src=[REF(src)];operation=disableemergency'>OK</A> | <A HREF='?src=[REF(src)];operation=viewmessage'>Cancel</A> \]"
|
||||||
else
|
else
|
||||||
dat += "<b>Emergency Maintenance Access is currently <font color='green'>DISABLED</font></b>"
|
dat += "<b>Emergency Maintenance Access is currently <font color='green'>DISABLED</font></b>"
|
||||||
dat += "<BR>Lift access restrictions on maintenance and external airlocks? <BR>\[ <A HREF='?src=\ref[src];operation=enableemergency'>OK</A> | <A HREF='?src=\ref[src];operation=viewmessage'>Cancel</A> \]"
|
dat += "<BR>Lift access restrictions on maintenance and external airlocks? <BR>\[ <A HREF='?src=[REF(src)];operation=enableemergency'>OK</A> | <A HREF='?src=[REF(src)];operation=viewmessage'>Cancel</A> \]"
|
||||||
|
|
||||||
if(STATE_PURCHASE)
|
if(STATE_PURCHASE)
|
||||||
dat += "Budget: [SSshuttle.points] Credits.<BR>"
|
dat += "Budget: [SSshuttle.points] Credits.<BR>"
|
||||||
@@ -544,9 +572,13 @@
|
|||||||
dat += "[S.description]<BR>"
|
dat += "[S.description]<BR>"
|
||||||
if(S.prerequisites)
|
if(S.prerequisites)
|
||||||
dat += "Prerequisites: [S.prerequisites]<BR>"
|
dat += "Prerequisites: [S.prerequisites]<BR>"
|
||||||
dat += "<A href='?src=\ref[src];operation=buyshuttle;chosen_shuttle=\ref[S]'>(<font color=red><i>Purchase</i></font>)</A><BR><BR>"
|
dat += "<A href='?src=[REF(src)];operation=buyshuttle;chosen_shuttle=[REF(S)]'>(<font color=red><i>Purchase</i></font>)</A><BR><BR>"
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
dat += "<BR><BR>\[ [(src.state != STATE_DEFAULT) ? "<A HREF='?src=\ref[src];operation=main'>Main Menu</A> | " : ""]<A HREF='?src=\ref[user];mach_close=communications'>Close</A> \]"
|
dat += "<BR><BR>\[ [(src.state != STATE_DEFAULT) ? "<A HREF='?src=\ref[src];operation=main'>Main Menu</A> | " : ""]<A HREF='?src=\ref[user];mach_close=communications'>Close</A> \]"
|
||||||
|
=======
|
||||||
|
dat += "<BR><BR>\[ [(state != STATE_DEFAULT) ? "<A HREF='?src=[REF(src)];operation=main'>Main Menu</A> | " : ""]<A HREF='?src=[REF(user)];mach_close=communications'>Close</A> \]"
|
||||||
|
>>>>>>> 626302c... Merge pull request #32161 from ninjanomnom/512-experimental
|
||||||
|
|
||||||
popup.set_content(dat)
|
popup.set_content(dat)
|
||||||
popup.open()
|
popup.open()
|
||||||
@@ -573,8 +605,8 @@
|
|||||||
/obj/machinery/computer/communications/proc/get_call_shuttle_form(ai_interface = 0)
|
/obj/machinery/computer/communications/proc/get_call_shuttle_form(ai_interface = 0)
|
||||||
var/form_id = "callshuttle"
|
var/form_id = "callshuttle"
|
||||||
var/dat = get_javascript_header(form_id)
|
var/dat = get_javascript_header(form_id)
|
||||||
dat += "<form name='callshuttle' id='[form_id]' action='?src=\ref[src]' method='get' style='display: inline'>"
|
dat += "<form name='callshuttle' id='[form_id]' action='?src=[REF(src)]' method='get' style='display: inline'>"
|
||||||
dat += "<input type='hidden' name='src' value='\ref[src]'>"
|
dat += "<input type='hidden' name='src' value='[REF(src)]'>"
|
||||||
dat += "<input type='hidden' name='operation' value='[ai_interface ? "ai-callshuttle2" : "callshuttle2"]'>"
|
dat += "<input type='hidden' name='operation' value='[ai_interface ? "ai-callshuttle2" : "callshuttle2"]'>"
|
||||||
dat += "<b>Nature of emergency:</b><BR> <input type='text' id='reasonfield' name='call' style='width:250px; background-color:#FFDDDD; onkeydown='getLength() onkeyup='getLength()' onkeypress='getLength()'>"
|
dat += "<b>Nature of emergency:</b><BR> <input type='text' id='reasonfield' name='call' style='width:250px; background-color:#FFDDDD; onkeydown='getLength() onkeyup='getLength()' onkeypress='getLength()'>"
|
||||||
dat += "<BR>Are you sure you want to call the shuttle? \[ <a href='#' onclick='submit()'>Call</a> \]"
|
dat += "<BR>Are you sure you want to call the shuttle? \[ <a href='#' onclick='submit()'>Call</a> \]"
|
||||||
@@ -583,8 +615,8 @@
|
|||||||
/obj/machinery/computer/communications/proc/get_cancel_shuttle_form()
|
/obj/machinery/computer/communications/proc/get_cancel_shuttle_form()
|
||||||
var/form_id = "cancelshuttle"
|
var/form_id = "cancelshuttle"
|
||||||
var/dat = get_javascript_header(form_id)
|
var/dat = get_javascript_header(form_id)
|
||||||
dat += "<form name='cancelshuttle' id='[form_id]' action='?src=\ref[src]' method='get' style='display: inline'>"
|
dat += "<form name='cancelshuttle' id='[form_id]' action='?src=[REF(src)]' method='get' style='display: inline'>"
|
||||||
dat += "<input type='hidden' name='src' value='\ref[src]'>"
|
dat += "<input type='hidden' name='src' value='[REF(src)]'>"
|
||||||
dat += "<input type='hidden' name='operation' value='cancelshuttle2'>"
|
dat += "<input type='hidden' name='operation' value='cancelshuttle2'>"
|
||||||
|
|
||||||
dat += "<BR>Are you sure you want to cancel the shuttle? \[ <a href='#' onclick='submit()'>Cancel</a> \]"
|
dat += "<BR>Are you sure you want to cancel the shuttle? \[ <a href='#' onclick='submit()'>Cancel</a> \]"
|
||||||
@@ -604,31 +636,53 @@
|
|||||||
else
|
else
|
||||||
dat += "Current login: None"
|
dat += "Current login: None"
|
||||||
dat += "<BR><BR><B>General Functions</B>"
|
dat += "<BR><BR><B>General Functions</B>"
|
||||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=ai-messagelist'>Message List</A> \]"
|
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=ai-messagelist'>Message List</A> \]"
|
||||||
if(SSshuttle.emergency.mode == SHUTTLE_IDLE)
|
if(SSshuttle.emergency.mode == SHUTTLE_IDLE)
|
||||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=ai-callshuttle'>Call Emergency Shuttle</A> \]"
|
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=ai-callshuttle'>Call Emergency Shuttle</A> \]"
|
||||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=ai-status'>Set Status Display</A> \]"
|
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=ai-status'>Set Status Display</A> \]"
|
||||||
dat += "<BR><BR><B>Special Functions</B>"
|
dat += "<BR><BR><B>Special Functions</B>"
|
||||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=ai-announce'>Make an Announcement</A> \]"
|
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=ai-announce'>Make an Announcement</A> \]"
|
||||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=ai-changeseclevel'>Change Alert Level</A> \]"
|
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=ai-changeseclevel'>Change Alert Level</A> \]"
|
||||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=ai-emergencyaccess'>Emergency Maintenance Access</A> \]"
|
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=ai-emergencyaccess'>Emergency Maintenance Access</A> \]"
|
||||||
if(STATE_CALLSHUTTLE)
|
if(STATE_CALLSHUTTLE)
|
||||||
dat += get_call_shuttle_form(1)
|
dat += get_call_shuttle_form(1)
|
||||||
if(STATE_MESSAGELIST)
|
if(STATE_MESSAGELIST)
|
||||||
dat += "Messages:"
|
dat += "Messages:"
|
||||||
|
<<<<<<< HEAD
|
||||||
for(var/i = 1; i<=src.messagetitle.len; i++)
|
for(var/i = 1; i<=src.messagetitle.len; i++)
|
||||||
dat += "<BR><A HREF='?src=\ref[src];operation=ai-viewmessage;message-num=[i]'>[src.messagetitle[i]]</A>"
|
dat += "<BR><A HREF='?src=\ref[src];operation=ai-viewmessage;message-num=[i]'>[src.messagetitle[i]]</A>"
|
||||||
if(STATE_VIEWMESSAGE)
|
if(STATE_VIEWMESSAGE)
|
||||||
if (src.aicurrmsg)
|
if (src.aicurrmsg)
|
||||||
dat += "<B>[src.messagetitle[src.aicurrmsg]]</B><BR><BR>[src.messagetext[src.aicurrmsg]]"
|
dat += "<B>[src.messagetitle[src.aicurrmsg]]</B><BR><BR>[src.messagetext[src.aicurrmsg]]"
|
||||||
dat += "<BR><BR>\[ <A HREF='?src=\ref[src];operation=ai-delmessage'>Delete</A> \]"
|
dat += "<BR><BR>\[ <A HREF='?src=\ref[src];operation=ai-delmessage'>Delete</A> \]"
|
||||||
|
=======
|
||||||
|
for(var/i in 1 to messages.len)
|
||||||
|
var/datum/comm_message/M = messages[i]
|
||||||
|
dat += "<BR><A HREF='?src=[REF(src)];operation=ai-viewmessage;message-num=[i]'>[M.title]</A>"
|
||||||
|
if(STATE_VIEWMESSAGE)
|
||||||
|
if (aicurrmsg)
|
||||||
|
dat += "<B>[aicurrmsg.title]</B><BR><BR>[aicurrmsg.content]"
|
||||||
|
if(!aicurrmsg.answered && aicurrmsg.possible_answers.len)
|
||||||
|
for(var/i in 1 to aicurrmsg.possible_answers.len)
|
||||||
|
var/answer = aicurrmsg.possible_answers[i]
|
||||||
|
dat += "<br>\[ <A HREF='?src=[REF(src)];operation=ai-respond;answer=[i]'>Answer : [answer]</A> \]"
|
||||||
|
else if(aicurrmsg.answered)
|
||||||
|
var/answered = aicurrmsg.possible_answers[aicurrmsg.answered]
|
||||||
|
dat += "<br> Archived Answer : [answered]"
|
||||||
|
dat += "<BR><BR>\[ <A HREF='?src=[REF(src)];operation=ai-delmessage'>Delete</A> \]"
|
||||||
|
>>>>>>> 626302c... Merge pull request #32161 from ninjanomnom/512-experimental
|
||||||
else
|
else
|
||||||
src.aistate = STATE_MESSAGELIST
|
src.aistate = STATE_MESSAGELIST
|
||||||
src.attack_hand(user)
|
src.attack_hand(user)
|
||||||
return null
|
return null
|
||||||
if(STATE_DELMESSAGE)
|
if(STATE_DELMESSAGE)
|
||||||
|
<<<<<<< HEAD
|
||||||
if(src.aicurrmsg)
|
if(src.aicurrmsg)
|
||||||
dat += "Are you sure you want to delete this message? \[ <A HREF='?src=\ref[src];operation=ai-delmessage2'>OK</A> | <A HREF='?src=\ref[src];operation=ai-viewmessage'>Cancel</A> \]"
|
dat += "Are you sure you want to delete this message? \[ <A HREF='?src=\ref[src];operation=ai-delmessage2'>OK</A> | <A HREF='?src=\ref[src];operation=ai-viewmessage'>Cancel</A> \]"
|
||||||
|
=======
|
||||||
|
if(aicurrmsg)
|
||||||
|
dat += "Are you sure you want to delete this message? \[ <A HREF='?src=[REF(src)];operation=ai-delmessage2'>OK</A> | <A HREF='?src=[REF(src)];operation=ai-viewmessage'>Cancel</A> \]"
|
||||||
|
>>>>>>> 626302c... Merge pull request #32161 from ninjanomnom/512-experimental
|
||||||
else
|
else
|
||||||
src.aistate = STATE_MESSAGELIST
|
src.aistate = STATE_MESSAGELIST
|
||||||
src.attack_hand(user)
|
src.attack_hand(user)
|
||||||
@@ -636,33 +690,37 @@
|
|||||||
|
|
||||||
if(STATE_STATUSDISPLAY)
|
if(STATE_STATUSDISPLAY)
|
||||||
dat += "Set Status Displays<BR>"
|
dat += "Set Status Displays<BR>"
|
||||||
dat += "\[ <A HREF='?src=\ref[src];operation=setstat;statdisp=blank'>Clear</A> \]<BR>"
|
dat += "\[ <A HREF='?src=[REF(src)];operation=setstat;statdisp=blank'>Clear</A> \]<BR>"
|
||||||
dat += "\[ <A HREF='?src=\ref[src];operation=setstat;statdisp=shuttle'>Shuttle ETA</A> \]<BR>"
|
dat += "\[ <A HREF='?src=[REF(src)];operation=setstat;statdisp=shuttle'>Shuttle ETA</A> \]<BR>"
|
||||||
dat += "\[ <A HREF='?src=\ref[src];operation=setstat;statdisp=message'>Message</A> \]"
|
dat += "\[ <A HREF='?src=[REF(src)];operation=setstat;statdisp=message'>Message</A> \]"
|
||||||
dat += "<ul><li> Line 1: <A HREF='?src=\ref[src];operation=setmsg1'>[ stat_msg1 ? stat_msg1 : "(none)"]</A>"
|
dat += "<ul><li> Line 1: <A HREF='?src=[REF(src)];operation=setmsg1'>[ stat_msg1 ? stat_msg1 : "(none)"]</A>"
|
||||||
dat += "<li> Line 2: <A HREF='?src=\ref[src];operation=setmsg2'>[ stat_msg2 ? stat_msg2 : "(none)"]</A></ul><br>"
|
dat += "<li> Line 2: <A HREF='?src=[REF(src)];operation=setmsg2'>[ stat_msg2 ? stat_msg2 : "(none)"]</A></ul><br>"
|
||||||
dat += "\[ Alert: <A HREF='?src=\ref[src];operation=setstat;statdisp=alert;alert=default'>None</A> |"
|
dat += "\[ Alert: <A HREF='?src=[REF(src)];operation=setstat;statdisp=alert;alert=default'>None</A> |"
|
||||||
dat += " <A HREF='?src=\ref[src];operation=setstat;statdisp=alert;alert=redalert'>Red Alert</A> |"
|
dat += " <A HREF='?src=[REF(src)];operation=setstat;statdisp=alert;alert=redalert'>Red Alert</A> |"
|
||||||
dat += " <A HREF='?src=\ref[src];operation=setstat;statdisp=alert;alert=lockdown'>Lockdown</A> |"
|
dat += " <A HREF='?src=[REF(src)];operation=setstat;statdisp=alert;alert=lockdown'>Lockdown</A> |"
|
||||||
dat += " <A HREF='?src=\ref[src];operation=setstat;statdisp=alert;alert=biohazard'>Biohazard</A> \]<BR><HR>"
|
dat += " <A HREF='?src=[REF(src)];operation=setstat;statdisp=alert;alert=biohazard'>Biohazard</A> \]<BR><HR>"
|
||||||
|
|
||||||
if(STATE_ALERT_LEVEL)
|
if(STATE_ALERT_LEVEL)
|
||||||
dat += "Current alert level: [get_security_level()]<BR>"
|
dat += "Current alert level: [get_security_level()]<BR>"
|
||||||
if(GLOB.security_level == SEC_LEVEL_DELTA)
|
if(GLOB.security_level == SEC_LEVEL_DELTA)
|
||||||
dat += "<font color='red'><b>The self-destruct mechanism is active. Find a way to deactivate the mechanism to lower the alert level or evacuate.</b></font>"
|
dat += "<font color='red'><b>The self-destruct mechanism is active. Find a way to deactivate the mechanism to lower the alert level or evacuate.</b></font>"
|
||||||
else
|
else
|
||||||
dat += "<A HREF='?src=\ref[src];operation=ai-securitylevel;newalertlevel=[SEC_LEVEL_BLUE]'>Blue</A><BR>"
|
dat += "<A HREF='?src=[REF(src)];operation=ai-securitylevel;newalertlevel=[SEC_LEVEL_BLUE]'>Blue</A><BR>"
|
||||||
dat += "<A HREF='?src=\ref[src];operation=ai-securitylevel;newalertlevel=[SEC_LEVEL_GREEN]'>Green</A>"
|
dat += "<A HREF='?src=[REF(src)];operation=ai-securitylevel;newalertlevel=[SEC_LEVEL_GREEN]'>Green</A>"
|
||||||
|
|
||||||
if(STATE_TOGGLE_EMERGENCY)
|
if(STATE_TOGGLE_EMERGENCY)
|
||||||
if(GLOB.emergency_access == 1)
|
if(GLOB.emergency_access == 1)
|
||||||
dat += "<b>Emergency Maintenance Access is currently <font color='red'>ENABLED</font></b>"
|
dat += "<b>Emergency Maintenance Access is currently <font color='red'>ENABLED</font></b>"
|
||||||
dat += "<BR>Restore maintenance access restrictions? <BR>\[ <A HREF='?src=\ref[src];operation=ai-disableemergency'>OK</A> | <A HREF='?src=\ref[src];operation=ai-viewmessage'>Cancel</A> \]"
|
dat += "<BR>Restore maintenance access restrictions? <BR>\[ <A HREF='?src=[REF(src)];operation=ai-disableemergency'>OK</A> | <A HREF='?src=[REF(src)];operation=ai-viewmessage'>Cancel</A> \]"
|
||||||
else
|
else
|
||||||
dat += "<b>Emergency Maintenance Access is currently <font color='green'>DISABLED</font></b>"
|
dat += "<b>Emergency Maintenance Access is currently <font color='green'>DISABLED</font></b>"
|
||||||
dat += "<BR>Lift access restrictions on maintenance and external airlocks? <BR>\[ <A HREF='?src=\ref[src];operation=ai-enableemergency'>OK</A> | <A HREF='?src=\ref[src];operation=ai-viewmessage'>Cancel</A> \]"
|
dat += "<BR>Lift access restrictions on maintenance and external airlocks? <BR>\[ <A HREF='?src=[REF(src)];operation=ai-enableemergency'>OK</A> | <A HREF='?src=[REF(src)];operation=ai-viewmessage'>Cancel</A> \]"
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
dat += "<BR><BR>\[ [(src.aistate != STATE_DEFAULT) ? "<A HREF='?src=\ref[src];operation=ai-main'>Main Menu</A> | " : ""]<A HREF='?src=\ref[user];mach_close=communications'>Close</A> \]"
|
dat += "<BR><BR>\[ [(src.aistate != STATE_DEFAULT) ? "<A HREF='?src=\ref[src];operation=ai-main'>Main Menu</A> | " : ""]<A HREF='?src=\ref[user];mach_close=communications'>Close</A> \]"
|
||||||
|
=======
|
||||||
|
dat += "<BR><BR>\[ [(aistate != STATE_DEFAULT) ? "<A HREF='?src=[REF(src)];operation=ai-main'>Main Menu</A> | " : ""]<A HREF='?src=[REF(user)];mach_close=communications'>Close</A> \]"
|
||||||
|
>>>>>>> 626302c... Merge pull request #32161 from ninjanomnom/512-experimental
|
||||||
return dat
|
return dat
|
||||||
|
|
||||||
/obj/machinery/computer/communications/proc/make_announcement(mob/living/user, is_silicon)
|
/obj/machinery/computer/communications/proc/make_announcement(mob/living/user, is_silicon)
|
||||||
|
|||||||
@@ -143,27 +143,27 @@
|
|||||||
status += "<div class='line'><div class='statusLabel'>Pulse Duration:</div><div class='statusValue'>[radduration]</div></div>"
|
status += "<div class='line'><div class='statusLabel'>Pulse Duration:</div><div class='statusValue'>[radduration]</div></div>"
|
||||||
status += "<div class='line'><div class='statusLabel'> \> Accuracy:</div><div class='statusValue'>[chance_to_hit]</div></div>"
|
status += "<div class='line'><div class='statusLabel'> \> Accuracy:</div><div class='statusValue'>[chance_to_hit]</div></div>"
|
||||||
status += "<br></div>" // Close statusDisplay div
|
status += "<br></div>" // Close statusDisplay div
|
||||||
var/buttons = "<a href='?src=\ref[src];'>Scan</a> "
|
var/buttons = "<a href='?src=[REF(src)];'>Scan</a> "
|
||||||
if(connected)
|
if(connected)
|
||||||
buttons += " <a href='?src=\ref[src];task=toggleopen;'>[connected.state_open ? "Close" : "Open"] Scanner</a> "
|
buttons += " <a href='?src=[REF(src)];task=toggleopen;'>[connected.state_open ? "Close" : "Open"] Scanner</a> "
|
||||||
if (connected.state_open)
|
if (connected.state_open)
|
||||||
buttons += "<span class='linkOff'>[connected.locked ? "Unlock" : "Lock"] Scanner</span> "
|
buttons += "<span class='linkOff'>[connected.locked ? "Unlock" : "Lock"] Scanner</span> "
|
||||||
else
|
else
|
||||||
buttons += "<a href='?src=\ref[src];task=togglelock;'>[connected.locked ? "Unlock" : "Lock"] Scanner</a> "
|
buttons += "<a href='?src=[REF(src)];task=togglelock;'>[connected.locked ? "Unlock" : "Lock"] Scanner</a> "
|
||||||
else
|
else
|
||||||
buttons += "<span class='linkOff'>Open Scanner</span> <span class='linkOff'>Lock Scanner</span> "
|
buttons += "<span class='linkOff'>Open Scanner</span> <span class='linkOff'>Lock Scanner</span> "
|
||||||
if(viable_occupant)
|
if(viable_occupant)
|
||||||
buttons += "<a href='?src=\ref[src];task=rejuv'>Inject Rejuvenators</a> "
|
buttons += "<a href='?src=[REF(src)];task=rejuv'>Inject Rejuvenators</a> "
|
||||||
else
|
else
|
||||||
buttons += "<span class='linkOff'>Inject Rejuvenators</span> "
|
buttons += "<span class='linkOff'>Inject Rejuvenators</span> "
|
||||||
if(diskette)
|
if(diskette)
|
||||||
buttons += "<a href='?src=\ref[src];task=ejectdisk'>Eject Disk</a> "
|
buttons += "<a href='?src=[REF(src)];task=ejectdisk'>Eject Disk</a> "
|
||||||
else
|
else
|
||||||
buttons += "<span class='linkOff'>Eject Disk</span> "
|
buttons += "<span class='linkOff'>Eject Disk</span> "
|
||||||
if(current_screen == "buffer")
|
if(current_screen == "buffer")
|
||||||
buttons += "<a href='?src=\ref[src];task=screen;text=mainmenu;'>Radiation Emitter Menu</a> "
|
buttons += "<a href='?src=[REF(src)];task=screen;text=mainmenu;'>Radiation Emitter Menu</a> "
|
||||||
else
|
else
|
||||||
buttons += "<a href='?src=\ref[src];task=screen;text=buffer;'>Buffer Menu</a> "
|
buttons += "<a href='?src=[REF(src)];task=screen;text=buffer;'>Buffer Menu</a> "
|
||||||
|
|
||||||
switch(current_screen)
|
switch(current_screen)
|
||||||
if("working")
|
if("working")
|
||||||
@@ -182,12 +182,12 @@
|
|||||||
if( !buffer_slot || !buffer_slot.len || !buffer_slot["name"] || !((buffer_slot["UI"] && buffer_slot["UE"]) || buffer_slot["SE"]) )
|
if( !buffer_slot || !buffer_slot.len || !buffer_slot["name"] || !((buffer_slot["UI"] && buffer_slot["UE"]) || buffer_slot["SE"]) )
|
||||||
temp_html += "<br>\tNo Data"
|
temp_html += "<br>\tNo Data"
|
||||||
if(viable_occupant)
|
if(viable_occupant)
|
||||||
temp_html += "<br><a href='?src=\ref[src];task=setbuffer;num=[i];'>Save to Buffer</a> "
|
temp_html += "<br><a href='?src=[REF(src)];task=setbuffer;num=[i];'>Save to Buffer</a> "
|
||||||
else
|
else
|
||||||
temp_html += "<br><span class='linkOff'>Save to Buffer</span> "
|
temp_html += "<br><span class='linkOff'>Save to Buffer</span> "
|
||||||
temp_html += "<span class='linkOff'>Clear Buffer</span> "
|
temp_html += "<span class='linkOff'>Clear Buffer</span> "
|
||||||
if(diskette)
|
if(diskette)
|
||||||
temp_html += "<a href='?src=\ref[src];task=loaddisk;num=[i];'>Load from Disk</a> "
|
temp_html += "<a href='?src=[REF(src)];task=loaddisk;num=[i];'>Load from Disk</a> "
|
||||||
else
|
else
|
||||||
temp_html += "<span class='linkOff'>Load from Disk</span> "
|
temp_html += "<span class='linkOff'>Load from Disk</span> "
|
||||||
temp_html += "<span class='linkOff'>Save to Disk</span> "
|
temp_html += "<span class='linkOff'>Save to Disk</span> "
|
||||||
@@ -198,18 +198,18 @@
|
|||||||
var/name = buffer_slot["name"]
|
var/name = buffer_slot["name"]
|
||||||
var/label = buffer_slot["label"]
|
var/label = buffer_slot["label"]
|
||||||
var/blood_type = buffer_slot["blood_type"]
|
var/blood_type = buffer_slot["blood_type"]
|
||||||
temp_html += "<br>\t<a href='?src=\ref[src];task=setbufferlabel;num=[i];'>Label</a>: [label ? label : name]"
|
temp_html += "<br>\t<a href='?src=[REF(src)];task=setbufferlabel;num=[i];'>Label</a>: [label ? label : name]"
|
||||||
temp_html += "<br>\tSubject: [name]"
|
temp_html += "<br>\tSubject: [name]"
|
||||||
if(ue && name && blood_type)
|
if(ue && name && blood_type)
|
||||||
temp_html += "<br>\tBlood Type: [blood_type]"
|
temp_html += "<br>\tBlood Type: [blood_type]"
|
||||||
temp_html += "<br>\tUE: [ue] "
|
temp_html += "<br>\tUE: [ue] "
|
||||||
if(viable_occupant)
|
if(viable_occupant)
|
||||||
temp_html += "<a href='?src=\ref[src];task=transferbuffer;num=[i];text=ue'>Occupant</a> "
|
temp_html += "<a href='?src=[REF(src)];task=transferbuffer;num=[i];text=ue'>Occupant</a> "
|
||||||
else
|
else
|
||||||
temp_html += "<span class='linkOff'>Occupant</span>"
|
temp_html += "<span class='linkOff'>Occupant</span>"
|
||||||
temp_html += "<a href='?src=\ref[src];task=setdelayed;num=[i];delayaction=[SCANNER_ACTION_UE]'>Occupant:Delayed</a> "
|
temp_html += "<a href='?src=[REF(src)];task=setdelayed;num=[i];delayaction=[SCANNER_ACTION_UE]'>Occupant:Delayed</a> "
|
||||||
if(injectorready < world.time)
|
if(injectorready < world.time)
|
||||||
temp_html += "<a href='?src=\ref[src];task=injector;num=[i];text=ue'>Injector</a>"
|
temp_html += "<a href='?src=[REF(src)];task=injector;num=[i];text=ue'>Injector</a>"
|
||||||
else
|
else
|
||||||
temp_html += "<span class='linkOff'>Injector</span>"
|
temp_html += "<span class='linkOff'>Injector</span>"
|
||||||
else
|
else
|
||||||
@@ -218,12 +218,12 @@
|
|||||||
if(ui)
|
if(ui)
|
||||||
temp_html += "<br>\tUI: [ui] "
|
temp_html += "<br>\tUI: [ui] "
|
||||||
if(viable_occupant)
|
if(viable_occupant)
|
||||||
temp_html += "<a href='?src=\ref[src];task=transferbuffer;num=[i];text=ui'>Occupant</a> "
|
temp_html += "<a href='?src=[REF(src)];task=transferbuffer;num=[i];text=ui'>Occupant</a> "
|
||||||
else
|
else
|
||||||
temp_html += "<span class='linkOff'>Occupant</span>"
|
temp_html += "<span class='linkOff'>Occupant</span>"
|
||||||
temp_html += "<a href='?src=\ref[src];task=setdelayed;num=[i];delayaction=[SCANNER_ACTION_UI]'>Occupant:Delayed</a> "
|
temp_html += "<a href='?src=[REF(src)];task=setdelayed;num=[i];delayaction=[SCANNER_ACTION_UI]'>Occupant:Delayed</a> "
|
||||||
if(injectorready < world.time)
|
if(injectorready < world.time)
|
||||||
temp_html += "<a href='?src=\ref[src];task=injector;num=[i];text=ui'>Injector</a>"
|
temp_html += "<a href='?src=[REF(src)];task=injector;num=[i];text=ui'>Injector</a>"
|
||||||
else
|
else
|
||||||
temp_html += "<span class='linkOff'>Injector</span>"
|
temp_html += "<span class='linkOff'>Injector</span>"
|
||||||
else
|
else
|
||||||
@@ -231,38 +231,38 @@
|
|||||||
if(ue && name && blood_type && ui)
|
if(ue && name && blood_type && ui)
|
||||||
temp_html += "<br>\tUI+UE: [ui]/[ue] "
|
temp_html += "<br>\tUI+UE: [ui]/[ue] "
|
||||||
if(viable_occupant)
|
if(viable_occupant)
|
||||||
temp_html += "<a href='?src=\ref[src];task=transferbuffer;num=[i];text=mixed'>Occupant</a> "
|
temp_html += "<a href='?src=[REF(src)];task=transferbuffer;num=[i];text=mixed'>Occupant</a> "
|
||||||
else
|
else
|
||||||
temp_html += "<span class='linkOff'>Occupant</span>"
|
temp_html += "<span class='linkOff'>Occupant</span>"
|
||||||
temp_html += "<a href='?src=\ref[src];task=setdelayed;num=[i];delayaction=[SCANNER_ACTION_MIXED]'>Occupant:Delayed</a> "
|
temp_html += "<a href='?src=[REF(src)];task=setdelayed;num=[i];delayaction=[SCANNER_ACTION_MIXED]'>Occupant:Delayed</a> "
|
||||||
if(injectorready < world.time)
|
if(injectorready < world.time)
|
||||||
temp_html += "<a href='?src=\ref[src];task=injector;num=[i];text=mixed'>UI+UE Injector</a>"
|
temp_html += "<a href='?src=[REF(src)];task=injector;num=[i];text=mixed'>UI+UE Injector</a>"
|
||||||
else
|
else
|
||||||
temp_html += "<span class='linkOff'>UI+UE Injector</span>"
|
temp_html += "<span class='linkOff'>UI+UE Injector</span>"
|
||||||
if(se)
|
if(se)
|
||||||
temp_html += "<br>\tSE: [se] "
|
temp_html += "<br>\tSE: [se] "
|
||||||
if(viable_occupant)
|
if(viable_occupant)
|
||||||
temp_html += "<a href='?src=\ref[src];task=transferbuffer;num=[i];text=se'>Occupant</a> "
|
temp_html += "<a href='?src=[REF(src)];task=transferbuffer;num=[i];text=se'>Occupant</a> "
|
||||||
else
|
else
|
||||||
temp_html += "<span class='linkOff'>Occupant</span> "
|
temp_html += "<span class='linkOff'>Occupant</span> "
|
||||||
temp_html += "<a href='?src=\ref[src];task=setdelayed;num=[i];delayaction=[SCANNER_ACTION_SE]'>Occupant:Delayed</a> "
|
temp_html += "<a href='?src=[REF(src)];task=setdelayed;num=[i];delayaction=[SCANNER_ACTION_SE]'>Occupant:Delayed</a> "
|
||||||
if(injectorready < world.time )
|
if(injectorready < world.time )
|
||||||
temp_html += "<a href='?src=\ref[src];task=injector;num=[i];text=se'>Injector</a>"
|
temp_html += "<a href='?src=[REF(src)];task=injector;num=[i];text=se'>Injector</a>"
|
||||||
else
|
else
|
||||||
temp_html += "<span class='linkOff'>Injector</span>"
|
temp_html += "<span class='linkOff'>Injector</span>"
|
||||||
else
|
else
|
||||||
temp_html += "<br>\tSE: No Data"
|
temp_html += "<br>\tSE: No Data"
|
||||||
if(viable_occupant)
|
if(viable_occupant)
|
||||||
temp_html += "<br><a href='?src=\ref[src];task=setbuffer;num=[i];'>Save to Buffer</a> "
|
temp_html += "<br><a href='?src=[REF(src)];task=setbuffer;num=[i];'>Save to Buffer</a> "
|
||||||
else
|
else
|
||||||
temp_html += "<br><span class='linkOff'>Save to Buffer</span> "
|
temp_html += "<br><span class='linkOff'>Save to Buffer</span> "
|
||||||
temp_html += "<a href='?src=\ref[src];task=clearbuffer;num=[i];'>Clear Buffer</a> "
|
temp_html += "<a href='?src=[REF(src)];task=clearbuffer;num=[i];'>Clear Buffer</a> "
|
||||||
if(diskette)
|
if(diskette)
|
||||||
temp_html += "<a href='?src=\ref[src];task=loaddisk;num=[i];'>Load from Disk</a> "
|
temp_html += "<a href='?src=[REF(src)];task=loaddisk;num=[i];'>Load from Disk</a> "
|
||||||
else
|
else
|
||||||
temp_html += "<span class='linkOff'>Load from Disk</span> "
|
temp_html += "<span class='linkOff'>Load from Disk</span> "
|
||||||
if(diskette && !diskette.read_only)
|
if(diskette && !diskette.read_only)
|
||||||
temp_html += "<a href='?src=\ref[src];task=savedisk;num=[i];'>Save to Disk</a> "
|
temp_html += "<a href='?src=[REF(src)];task=savedisk;num=[i];'>Save to Disk</a> "
|
||||||
else
|
else
|
||||||
temp_html += "<span class='linkOff'>Save to Disk</span> "
|
temp_html += "<span class='linkOff'>Save to Disk</span> "
|
||||||
else
|
else
|
||||||
@@ -270,8 +270,8 @@
|
|||||||
temp_html += buttons
|
temp_html += buttons
|
||||||
temp_html += "<h1>Radiation Emitter Menu</h1>"
|
temp_html += "<h1>Radiation Emitter Menu</h1>"
|
||||||
|
|
||||||
temp_html += "<a href='?src=\ref[src];task=setstrength;num=[radstrength-1];'>--</a> <a href='?src=\ref[src];task=setstrength;'>Output Level</a> <a href='?src=\ref[src];task=setstrength;num=[radstrength+1];'>++</a>"
|
temp_html += "<a href='?src=[REF(src)];task=setstrength;num=[radstrength-1];'>--</a> <a href='?src=[REF(src)];task=setstrength;'>Output Level</a> <a href='?src=[REF(src)];task=setstrength;num=[radstrength+1];'>++</a>"
|
||||||
temp_html += "<br><a href='?src=\ref[src];task=setduration;num=[radduration-1];'>--</a> <a href='?src=\ref[src];task=setduration;'>Pulse Duration</a> <a href='?src=\ref[src];task=setduration;num=[radduration+1];'>++</a>"
|
temp_html += "<br><a href='?src=[REF(src)];task=setduration;num=[radduration-1];'>--</a> <a href='?src=[REF(src)];task=setduration;'>Pulse Duration</a> <a href='?src=[REF(src)];task=setduration;num=[radduration+1];'>++</a>"
|
||||||
|
|
||||||
temp_html += "<h3>Irradiate Subject</h3>"
|
temp_html += "<h3>Irradiate Subject</h3>"
|
||||||
temp_html += "<div class='line'><div class='statusLabel'>Unique Identifier:</div><div class='statusValue'><div class='clearBoth'>"
|
temp_html += "<div class='line'><div class='statusLabel'>Unique Identifier:</div><div class='statusValue'><div class='clearBoth'>"
|
||||||
@@ -281,7 +281,7 @@
|
|||||||
temp_html += "<div class='dnaBlockNumber'>1</div>"
|
temp_html += "<div class='dnaBlockNumber'>1</div>"
|
||||||
var/len = length(viable_occupant.dna.uni_identity)
|
var/len = length(viable_occupant.dna.uni_identity)
|
||||||
for(var/i=1, i<=len, i++)
|
for(var/i=1, i<=len, i++)
|
||||||
temp_html += "<a class='dnaBlock' href='?src=\ref[src];task=pulseui;num=[i];'>[copytext(viable_occupant.dna.uni_identity,i,i+1)]</a>"
|
temp_html += "<a class='dnaBlock' href='?src=[REF(src)];task=pulseui;num=[i];'>[copytext(viable_occupant.dna.uni_identity,i,i+1)]</a>"
|
||||||
if ((i % max_line_len) == 0)
|
if ((i % max_line_len) == 0)
|
||||||
temp_html += "</div><div class='clearBoth'>"
|
temp_html += "</div><div class='clearBoth'>"
|
||||||
if((i % DNA_BLOCK_SIZE) == 0 && i < len)
|
if((i % DNA_BLOCK_SIZE) == 0 && i < len)
|
||||||
@@ -295,7 +295,7 @@
|
|||||||
temp_html += "<div class='dnaBlockNumber'>1</div>"
|
temp_html += "<div class='dnaBlockNumber'>1</div>"
|
||||||
var/len = length(viable_occupant.dna.struc_enzymes)
|
var/len = length(viable_occupant.dna.struc_enzymes)
|
||||||
for(var/i=1, i<=len, i++)
|
for(var/i=1, i<=len, i++)
|
||||||
temp_html += "<a class='dnaBlock' href='?src=\ref[src];task=pulsese;num=[i];'>[copytext(viable_occupant.dna.struc_enzymes,i,i+1)]</a>"
|
temp_html += "<a class='dnaBlock' href='?src=[REF(src)];task=pulsese;num=[i];'>[copytext(viable_occupant.dna.struc_enzymes,i,i+1)]</a>"
|
||||||
if ((i % max_line_len) == 0)
|
if ((i % max_line_len) == 0)
|
||||||
temp_html += "</div><div class='clearBoth'>"
|
temp_html += "</div><div class='clearBoth'>"
|
||||||
if((i % DNA_BLOCK_SIZE) == 0 && i < len)
|
if((i % DNA_BLOCK_SIZE) == 0 && i < len)
|
||||||
|
|||||||
@@ -60,7 +60,7 @@
|
|||||||
if(pad.stat & NOPOWER)
|
if(pad.stat & NOPOWER)
|
||||||
t+= "<span class='linkOff'>[pad.display_name]</span>"
|
t+= "<span class='linkOff'>[pad.display_name]</span>"
|
||||||
else
|
else
|
||||||
t+= "<A href='?src=\ref[src];choose_pad=1;pad=[i]'>[pad.display_name]</A>"
|
t+= "<A href='?src=[REF(src)];choose_pad=1;pad=[i]'>[pad.display_name]</A>"
|
||||||
else
|
else
|
||||||
launchpads -= get_pad(i)
|
launchpads -= get_pad(i)
|
||||||
t += "<BR>"
|
t += "<BR>"
|
||||||
@@ -68,24 +68,24 @@
|
|||||||
if(current_pad)
|
if(current_pad)
|
||||||
var/obj/machinery/launchpad/pad = get_pad(current_pad)
|
var/obj/machinery/launchpad/pad = get_pad(current_pad)
|
||||||
t += "<div class='statusDisplay'><b>[pad.display_name]</b></div>"
|
t += "<div class='statusDisplay'><b>[pad.display_name]</b></div>"
|
||||||
t += "<A href='?src=\ref[src];change_name=1;pad=[current_pad]'>Rename</A>"
|
t += "<A href='?src=[REF(src)];change_name=1;pad=[current_pad]'>Rename</A>"
|
||||||
t += "<A href='?src=\ref[src];remove=1;pad=[current_pad]'>Remove</A><BR><BR>"
|
t += "<A href='?src=[REF(src)];remove=1;pad=[current_pad]'>Remove</A><BR><BR>"
|
||||||
t += "<A href='?src=\ref[src];raisey=1;lowerx=1;pad=[current_pad]'>O</A>" //up-left
|
t += "<A href='?src=[REF(src)];raisey=1;lowerx=1;pad=[current_pad]'>O</A>" //up-left
|
||||||
t += "<A href='?src=\ref[src];raisey=1;pad=[current_pad]'>^</A>" //up
|
t += "<A href='?src=[REF(src)];raisey=1;pad=[current_pad]'>^</A>" //up
|
||||||
t += "<A href='?src=\ref[src];raisey=1;raisex=1;pad=[current_pad]'>O</A><BR>" //up-right
|
t += "<A href='?src=[REF(src)];raisey=1;raisex=1;pad=[current_pad]'>O</A><BR>" //up-right
|
||||||
t += "<A href='?src=\ref[src];lowerx=1;pad=[current_pad]'><</A>"//left
|
t += "<A href='?src=[REF(src)];lowerx=1;pad=[current_pad]'><</A>"//left
|
||||||
t += "<A href='?src=\ref[src];reset=1;pad=[current_pad]'>R</A>"//reset to 0
|
t += "<A href='?src=[REF(src)];reset=1;pad=[current_pad]'>R</A>"//reset to 0
|
||||||
t += "<A href='?src=\ref[src];raisex=1;pad=[current_pad]'>></A><BR>"//right
|
t += "<A href='?src=[REF(src)];raisex=1;pad=[current_pad]'>></A><BR>"//right
|
||||||
t += "<A href='?src=\ref[src];lowery=1;lowerx=1;pad=[current_pad]'>O</A>"//down-left
|
t += "<A href='?src=[REF(src)];lowery=1;lowerx=1;pad=[current_pad]'>O</A>"//down-left
|
||||||
t += "<A href='?src=\ref[src];lowery=1;pad=[current_pad]'>v</A>"//down
|
t += "<A href='?src=[REF(src)];lowery=1;pad=[current_pad]'>v</A>"//down
|
||||||
t += "<A href='?src=\ref[src];lowery=1;raisex=1;pad=[current_pad]'>O</A><BR>"//down-right
|
t += "<A href='?src=[REF(src)];lowery=1;raisex=1;pad=[current_pad]'>O</A><BR>"//down-right
|
||||||
t += "<BR>"
|
t += "<BR>"
|
||||||
t += "<div class='statusDisplay'>Current offset:</div><BR>"
|
t += "<div class='statusDisplay'>Current offset:</div><BR>"
|
||||||
t += "<div class='statusDisplay'>[abs(pad.y_offset)] [pad.y_offset > 0 ? "N":"S"]</div><BR>"
|
t += "<div class='statusDisplay'>[abs(pad.y_offset)] [pad.y_offset > 0 ? "N":"S"]</div><BR>"
|
||||||
t += "<div class='statusDisplay'>[abs(pad.x_offset)] [pad.x_offset > 0 ? "E":"W"]</div><BR>"
|
t += "<div class='statusDisplay'>[abs(pad.x_offset)] [pad.x_offset > 0 ? "E":"W"]</div><BR>"
|
||||||
|
|
||||||
t += "<BR><A href='?src=\ref[src];launch=1;pad=[current_pad]'>Launch</A>"
|
t += "<BR><A href='?src=[REF(src)];launch=1;pad=[current_pad]'>Launch</A>"
|
||||||
t += " <A href='?src=\ref[src];pull=1;pad=[current_pad]'>Pull</A>"
|
t += " <A href='?src=[REF(src)];pull=1;pad=[current_pad]'>Pull</A>"
|
||||||
|
|
||||||
var/datum/browser/popup = new(user, "launchpad", name, 300, 500)
|
var/datum/browser/popup = new(user, "launchpad", name, 300, 500)
|
||||||
popup.set_content(t.Join())
|
popup.set_content(t.Join())
|
||||||
|
|||||||
@@ -39,21 +39,21 @@
|
|||||||
return
|
return
|
||||||
var/dat
|
var/dat
|
||||||
if(src.temp)
|
if(src.temp)
|
||||||
dat = text("<TT>[src.temp]</TT><BR><BR><A href='?src=\ref[src];temp=1'>Clear Screen</A>")
|
dat = text("<TT>[src.temp]</TT><BR><BR><A href='?src=[REF(src)];temp=1'>Clear Screen</A>")
|
||||||
else
|
else
|
||||||
dat = text("Confirm Identity: <A href='?src=\ref[];scan=1'>[]</A><HR>", src, (src.scan ? text("[]", src.scan.name) : "----------"))
|
dat = text("Confirm Identity: <A href='?src=[REF(src)];scan=1'>[]</A><HR>", (src.scan ? text("[]", src.scan.name) : "----------"))
|
||||||
if(src.authenticated)
|
if(src.authenticated)
|
||||||
switch(src.screen)
|
switch(src.screen)
|
||||||
if(1)
|
if(1)
|
||||||
dat += {"
|
dat += {"
|
||||||
<A href='?src=\ref[src];search=1'>Search Records</A>
|
<A href='?src=[REF(src)];search=1'>Search Records</A>
|
||||||
<BR><A href='?src=\ref[src];screen=2'>List Records</A>
|
<BR><A href='?src=[REF(src)];screen=2'>List Records</A>
|
||||||
<BR>
|
<BR>
|
||||||
<BR><A href='?src=\ref[src];screen=5'>Virus Database</A>
|
<BR><A href='?src=[REF(src)];screen=5'>Virus Database</A>
|
||||||
<BR><A href='?src=\ref[src];screen=6'>Medbot Tracking</A>
|
<BR><A href='?src=[REF(src)];screen=6'>Medbot Tracking</A>
|
||||||
<BR>
|
<BR>
|
||||||
<BR><A href='?src=\ref[src];screen=3'>Record Maintenance</A>
|
<BR><A href='?src=[REF(src)];screen=3'>Record Maintenance</A>
|
||||||
<BR><A href='?src=\ref[src];logout=1'>{Log Out}</A><BR>
|
<BR><A href='?src=[REF(src)];logout=1'>{Log Out}</A><BR>
|
||||||
"}
|
"}
|
||||||
if(2)
|
if(2)
|
||||||
dat += {"
|
dat += {"
|
||||||
@@ -65,10 +65,10 @@
|
|||||||
</table>
|
</table>
|
||||||
<table style="text-align:center;" border="1" cellspacing="0" width="100%">
|
<table style="text-align:center;" border="1" cellspacing="0" width="100%">
|
||||||
<tr>
|
<tr>
|
||||||
<th><A href='?src=\ref[src];choice=Sorting;sort=name'>Name</A></th>
|
<th><A href='?src=[REF(src)];choice=Sorting;sort=name'>Name</A></th>
|
||||||
<th><A href='?src=\ref[src];choice=Sorting;sort=id'>ID</A></th>
|
<th><A href='?src=[REF(src)];choice=Sorting;sort=id'>ID</A></th>
|
||||||
<th>Fingerprints (F) | DNA (D)</th>
|
<th>Fingerprints (F) | DNA (D)</th>
|
||||||
<th><A href='?src=\ref[src];choice=Sorting;sort=bloodtype'>Blood Type</A></th>
|
<th><A href='?src=[REF(src)];choice=Sorting;sort=bloodtype'>Blood Type</A></th>
|
||||||
<th>Physical Status</th>
|
<th>Physical Status</th>
|
||||||
<th>Mental Status</th>
|
<th>Mental Status</th>
|
||||||
</tr>"}
|
</tr>"}
|
||||||
@@ -93,7 +93,7 @@
|
|||||||
else
|
else
|
||||||
background = "'background-color:#4F7529;'"
|
background = "'background-color:#4F7529;'"
|
||||||
|
|
||||||
dat += text("<tr style=[]><td><A href='?src=\ref[];d_rec=[]'>[]</a></td>", background, src, R.fields["id"], R.fields["name"])
|
dat += text("<tr style=[]><td><A href='?src=[REF(src)];d_rec=[]'>[]</a></td>", background, R.fields["id"], R.fields["name"])
|
||||||
dat += text("<td>[]</td>", R.fields["id"])
|
dat += text("<td>[]</td>", R.fields["id"])
|
||||||
dat += text("<td><b>F:</b> []<BR><b>D:</b> []</td>", R.fields["fingerprint"], b_dna)
|
dat += text("<td><b>F:</b> []<BR><b>D:</b> []</td>", R.fields["fingerprint"], b_dna)
|
||||||
dat += text("<td>[]</td>", blood_type)
|
dat += text("<td>[]</td>", blood_type)
|
||||||
@@ -102,11 +102,11 @@
|
|||||||
dat += "</table><hr width='75%' />"
|
dat += "</table><hr width='75%' />"
|
||||||
// if(GLOB.data_core.general)
|
// if(GLOB.data_core.general)
|
||||||
// for(var/datum/data/record/R in sortRecord(GLOB.data_core.general))
|
// for(var/datum/data/record/R in sortRecord(GLOB.data_core.general))
|
||||||
// dat += "<A href='?src=\ref[src];d_rec=[R.fields["id"]]'>[R.fields["id"]]: [R.fields["name"]]<BR>"
|
// dat += "<A href='?src=[REF(src)];d_rec=[R.fields["id"]]'>[R.fields["id"]]: [R.fields["name"]]<BR>"
|
||||||
// //Foreach goto(132)
|
// //Foreach goto(132)
|
||||||
dat += text("<HR><A href='?src=\ref[];screen=1'>Back</A>", src)
|
dat += "<HR><A href='?src=[REF(src)];screen=1'>Back</A>"
|
||||||
if(3)
|
if(3)
|
||||||
dat += text("<B>Records Maintenance</B><HR>\n<A href='?src=\ref[];back=1'>Backup To Disk</A><BR>\n<A href='?src=\ref[];u_load=1'>Upload From Disk</A><BR>\n<A href='?src=\ref[];del_all=1'>Delete All Records</A><BR>\n<BR>\n<A href='?src=\ref[];screen=1'>Back</A>", src, src, src, src)
|
dat += "<B>Records Maintenance</B><HR>\n<A href='?src=[REF(src)];back=1'>Backup To Disk</A><BR>\n<A href='?src=[REF(src)];u_load=1'>Upload From Disk</A><BR>\n<A href='?src=[REF(src)];del_all=1'>Delete All Records</A><BR>\n<BR>\n<A href='?src=[REF(src)];screen=1'>Back</A>"
|
||||||
if(4)
|
if(4)
|
||||||
|
|
||||||
dat += "<table><tr><td><b><font size='4'>Medical Record</font></b></td></tr>"
|
dat += "<table><tr><td><b><font size='4'>Medical Record</font></b></td></tr>"
|
||||||
@@ -118,45 +118,45 @@
|
|||||||
var/obj/item/photo/P2 = active1.fields["photo_side"]
|
var/obj/item/photo/P2 = active1.fields["photo_side"]
|
||||||
user << browse_rsc(P2.img, "photo_side")
|
user << browse_rsc(P2.img, "photo_side")
|
||||||
dat += "<tr><td>Name:</td><td>[active1.fields["name"]]</td>"
|
dat += "<tr><td>Name:</td><td>[active1.fields["name"]]</td>"
|
||||||
dat += "<td><a href='?src=\ref[src];field=show_photo_front'><img src=photo_front height=80 width=80 border=4></a></td>"
|
dat += "<td><a href='?src=[REF(src)];field=show_photo_front'><img src=photo_front height=80 width=80 border=4></a></td>"
|
||||||
dat += "<td><a href='?src=\ref[src];field=show_photo_side'><img src=photo_side height=80 width=80 border=4></a></td></tr>"
|
dat += "<td><a href='?src=[REF(src)];field=show_photo_side'><img src=photo_side height=80 width=80 border=4></a></td></tr>"
|
||||||
dat += "<tr><td>ID:</td><td>[active1.fields["id"]]</td></tr>"
|
dat += "<tr><td>ID:</td><td>[active1.fields["id"]]</td></tr>"
|
||||||
dat += "<tr><td>Sex:</td><td><A href='?src=\ref[src];field=sex'> [active1.fields["sex"]] </A></td></tr>"
|
dat += "<tr><td>Sex:</td><td><A href='?src=[REF(src)];field=sex'> [active1.fields["sex"]] </A></td></tr>"
|
||||||
dat += "<tr><td>Age:</td><td><A href='?src=\ref[src];field=age'> [active1.fields["age"]] </A></td></tr>"
|
dat += "<tr><td>Age:</td><td><A href='?src=[REF(src)];field=age'> [active1.fields["age"]] </A></td></tr>"
|
||||||
dat += "<tr><td>Species:</td><td><A href='?src=\ref[src];field=species'> [active1.fields["species"]] </A></td></tr>"
|
dat += "<tr><td>Species:</td><td><A href='?src=[REF(src)];field=species'> [active1.fields["species"]] </A></td></tr>"
|
||||||
dat += "<tr><td>Fingerprint:</td><td><A href='?src=\ref[src];field=fingerprint'> [active1.fields["fingerprint"]] </A></td></tr>"
|
dat += "<tr><td>Fingerprint:</td><td><A href='?src=[REF(src)];field=fingerprint'> [active1.fields["fingerprint"]] </A></td></tr>"
|
||||||
dat += "<tr><td>Physical Status:</td><td><A href='?src=\ref[src];field=p_stat'> [active1.fields["p_stat"]] </A></td></tr>"
|
dat += "<tr><td>Physical Status:</td><td><A href='?src=[REF(src)];field=p_stat'> [active1.fields["p_stat"]] </A></td></tr>"
|
||||||
dat += "<tr><td>Mental Status:</td><td><A href='?src=\ref[src];field=m_stat'> [active1.fields["m_stat"]] </A></td></tr>"
|
dat += "<tr><td>Mental Status:</td><td><A href='?src=[REF(src)];field=m_stat'> [active1.fields["m_stat"]] </A></td></tr>"
|
||||||
else
|
else
|
||||||
dat += "<tr><td>General Record Lost!</td></tr>"
|
dat += "<tr><td>General Record Lost!</td></tr>"
|
||||||
|
|
||||||
dat += "<tr><td><br><b><font size='4'>Medical Data</font></b></td></tr>"
|
dat += "<tr><td><br><b><font size='4'>Medical Data</font></b></td></tr>"
|
||||||
if(active2 in GLOB.data_core.medical)
|
if(active2 in GLOB.data_core.medical)
|
||||||
dat += "<tr><td>Blood Type:</td><td><A href='?src=\ref[src];field=blood_type'> [active2.fields["blood_type"]] </A></td></tr>"
|
dat += "<tr><td>Blood Type:</td><td><A href='?src=[REF(src)];field=blood_type'> [active2.fields["blood_type"]] </A></td></tr>"
|
||||||
dat += "<tr><td>DNA:</td><td><A href='?src=\ref[src];field=b_dna'> [active2.fields["b_dna"]] </A></td></tr>"
|
dat += "<tr><td>DNA:</td><td><A href='?src=[REF(src)];field=b_dna'> [active2.fields["b_dna"]] </A></td></tr>"
|
||||||
dat += "<tr><td><br>Minor Disabilities:</td><td><br><A href='?src=\ref[src];field=mi_dis'> [active2.fields["mi_dis"]] </A></td></tr>"
|
dat += "<tr><td><br>Minor Disabilities:</td><td><br><A href='?src=[REF(src)];field=mi_dis'> [active2.fields["mi_dis"]] </A></td></tr>"
|
||||||
dat += "<tr><td>Details:</td><td><A href='?src=\ref[src];field=mi_dis_d'> [active2.fields["mi_dis_d"]] </A></td></tr>"
|
dat += "<tr><td>Details:</td><td><A href='?src=[REF(src)];field=mi_dis_d'> [active2.fields["mi_dis_d"]] </A></td></tr>"
|
||||||
dat += "<tr><td><br>Major Disabilities:</td><td><br><A href='?src=\ref[src];field=ma_dis'> [active2.fields["ma_dis"]] </A></td></tr>"
|
dat += "<tr><td><br>Major Disabilities:</td><td><br><A href='?src=[REF(src)];field=ma_dis'> [active2.fields["ma_dis"]] </A></td></tr>"
|
||||||
dat += "<tr><td>Details:</td><td><A href='?src=\ref[src];field=ma_dis_d'> [active2.fields["ma_dis_d"]] </A></td></tr>"
|
dat += "<tr><td>Details:</td><td><A href='?src=[REF(src)];field=ma_dis_d'> [active2.fields["ma_dis_d"]] </A></td></tr>"
|
||||||
dat += "<tr><td><br>Allergies:</td><td><br><A href='?src=\ref[src];field=alg'> [active2.fields["alg"]] </A></td></tr>"
|
dat += "<tr><td><br>Allergies:</td><td><br><A href='?src=[REF(src)];field=alg'> [active2.fields["alg"]] </A></td></tr>"
|
||||||
dat += "<tr><td>Details:</td><td><A href='?src=\ref[src];field=alg_d'> [active2.fields["alg_d"]] </A></td></tr>"
|
dat += "<tr><td>Details:</td><td><A href='?src=[REF(src)];field=alg_d'> [active2.fields["alg_d"]] </A></td></tr>"
|
||||||
dat += "<tr><td><br>Current Diseases:</td><td><br><A href='?src=\ref[src];field=cdi'> [active2.fields["cdi"]] </A></td></tr>" //(per disease info placed in log/comment section)
|
dat += "<tr><td><br>Current Diseases:</td><td><br><A href='?src=[REF(src)];field=cdi'> [active2.fields["cdi"]] </A></td></tr>" //(per disease info placed in log/comment section)
|
||||||
dat += "<tr><td>Details:</td><td><A href='?src=\ref[src];field=cdi_d'> [active2.fields["cdi_d"]] </A></td></tr>"
|
dat += "<tr><td>Details:</td><td><A href='?src=[REF(src)];field=cdi_d'> [active2.fields["cdi_d"]] </A></td></tr>"
|
||||||
dat += "<tr><td><br>Important Notes:</td><td><br><A href='?src=\ref[src];field=notes'> [active2.fields["notes"]] </A></td></tr>"
|
dat += "<tr><td><br>Important Notes:</td><td><br><A href='?src=[REF(src)];field=notes'> [active2.fields["notes"]] </A></td></tr>"
|
||||||
|
|
||||||
dat += "<tr><td><br><b><font size='4'>Comments/Log</font></b></td></tr>"
|
dat += "<tr><td><br><b><font size='4'>Comments/Log</font></b></td></tr>"
|
||||||
var/counter = 1
|
var/counter = 1
|
||||||
while(src.active2.fields[text("com_[]", counter)])
|
while(src.active2.fields[text("com_[]", counter)])
|
||||||
dat += "<tr><td>[active2.fields[text("com_[]", counter)]]</td></tr><tr><td><A href='?src=\ref[src];del_c=[counter]'>Delete Entry</A></td></tr>"
|
dat += "<tr><td>[active2.fields[text("com_[]", counter)]]</td></tr><tr><td><A href='?src=[REF(src)];del_c=[counter]'>Delete Entry</A></td></tr>"
|
||||||
counter++
|
counter++
|
||||||
dat += "<tr><td><A href='?src=\ref[src];add_c=1'>Add Entry</A></td></tr>"
|
dat += "<tr><td><A href='?src=[REF(src)];add_c=1'>Add Entry</A></td></tr>"
|
||||||
|
|
||||||
dat += "<tr><td><br><A href='?src=\ref[src];del_r=1'>Delete Record (Medical Only)</A></td></tr>"
|
dat += "<tr><td><br><A href='?src=[REF(src)];del_r=1'>Delete Record (Medical Only)</A></td></tr>"
|
||||||
else
|
else
|
||||||
dat += "<tr><td>Medical Record Lost!</tr>"
|
dat += "<tr><td>Medical Record Lost!</tr>"
|
||||||
dat += "<tr><td><br><A href='?src=\ref[src];new=1'>New Record</A></td></tr>"
|
dat += "<tr><td><br><A href='?src=[REF(src)];new=1'>New Record</A></td></tr>"
|
||||||
dat += "<tr><td><A href='?src=\ref[src];print_p=1'>Print Record</A></td></tr>"
|
dat += "<tr><td><A href='?src=[REF(src)];print_p=1'>Print Record</A></td></tr>"
|
||||||
dat += "<tr><td><A href='?src=\ref[src];screen=2'>Back</A></td></tr>"
|
dat += "<tr><td><A href='?src=[REF(src)];screen=2'>Back</A></td></tr>"
|
||||||
dat += "</table>"
|
dat += "</table>"
|
||||||
if(5)
|
if(5)
|
||||||
dat += "<CENTER><B>Virus Database</B></CENTER>"
|
dat += "<CENTER><B>Virus Database</B></CENTER>"
|
||||||
@@ -166,11 +166,11 @@
|
|||||||
continue // TODO (tm): Add advance diseases to the virus database which no one uses.
|
continue // TODO (tm): Add advance diseases to the virus database which no one uses.
|
||||||
if(!Dis.desc)
|
if(!Dis.desc)
|
||||||
continue
|
continue
|
||||||
dat += "<br><a href='?src=\ref[src];vir=[Dt]'>[Dis.name]</a>"
|
dat += "<br><a href='?src=[REF(src)];vir=[Dt]'>[Dis.name]</a>"
|
||||||
dat += "<br><a href='?src=\ref[src];screen=1'>Back</a>"
|
dat += "<br><a href='?src=[REF(src)];screen=1'>Back</a>"
|
||||||
if(6)
|
if(6)
|
||||||
dat += "<center><b>Medical Robot Monitor</b></center>"
|
dat += "<center><b>Medical Robot Monitor</b></center>"
|
||||||
dat += "<a href='?src=\ref[src];screen=1'>Back</a>"
|
dat += "<a href='?src=[REF(src)];screen=1'>Back</a>"
|
||||||
dat += "<br><b>Medical Robots:</b>"
|
dat += "<br><b>Medical Robots:</b>"
|
||||||
var/bdat = null
|
var/bdat = null
|
||||||
for(var/mob/living/simple_animal/bot/medbot/M in GLOB.living_mob_list)
|
for(var/mob/living/simple_animal/bot/medbot/M in GLOB.living_mob_list)
|
||||||
@@ -191,7 +191,7 @@
|
|||||||
|
|
||||||
else
|
else
|
||||||
else
|
else
|
||||||
dat += text("<A href='?src=\ref[];login=1'>{Log In}</A>", src)
|
dat += "<A href='?src=[REF(src)];login=1'>{Log In}</A>"
|
||||||
var/datum/browser/popup = new(user, "med_rec", "Medical Records Console", 600, 400)
|
var/datum/browser/popup = new(user, "med_rec", "Medical Records Console", 600, 400)
|
||||||
popup.set_content(dat)
|
popup.set_content(dat)
|
||||||
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
|
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
|
||||||
@@ -286,7 +286,7 @@
|
|||||||
<BR><b>Severity:</b> [Dis.severity]"}
|
<BR><b>Severity:</b> [Dis.severity]"}
|
||||||
|
|
||||||
else if(href_list["del_all"])
|
else if(href_list["del_all"])
|
||||||
src.temp = text("Are you sure you wish to delete all records?<br>\n\t<A href='?src=\ref[];temp=1;del_all2=1'>Yes</A><br>\n\t<A href='?src=\ref[];temp=1'>No</A><br>", src, src)
|
src.temp = "Are you sure you wish to delete all records?<br>\n\t<A href='?src=[REF(src)];temp=1;del_all2=1'>Yes</A><br>\n\t<A href='?src=[REF(src)];temp=1'>No</A><br>"
|
||||||
|
|
||||||
else if(href_list["del_all2"])
|
else if(href_list["del_all2"])
|
||||||
investigate_log("[usr.name] ([usr.key]) has deleted all medical records.", INVESTIGATE_RECORDS)
|
investigate_log("[usr.name] ([usr.key]) has deleted all medical records.", INVESTIGATE_RECORDS)
|
||||||
@@ -377,13 +377,13 @@
|
|||||||
src.active2.fields["notes"] = t1
|
src.active2.fields["notes"] = t1
|
||||||
if("p_stat")
|
if("p_stat")
|
||||||
if(active1)
|
if(active1)
|
||||||
src.temp = text("<B>Physical Condition:</B><BR>\n\t<A href='?src=\ref[];temp=1;p_stat=deceased'>*Deceased*</A><BR>\n\t<A href='?src=\ref[];temp=1;p_stat=unconscious'>*Unconscious*</A><BR>\n\t<A href='?src=\ref[];temp=1;p_stat=active'>Active</A><BR>\n\t<A href='?src=\ref[];temp=1;p_stat=unfit'>Physically Unfit</A><BR>", src, src, src, src)
|
src.temp = "<B>Physical Condition:</B><BR>\n\t<A href='?src=[REF(src)];temp=1;p_stat=deceased'>*Deceased*</A><BR>\n\t<A href='?src=[REF(src)];temp=1;p_stat=unconscious'>*Unconscious*</A><BR>\n\t<A href='?src=[REF(src)];temp=1;p_stat=active'>Active</A><BR>\n\t<A href='?src=[REF(src)];temp=1;p_stat=unfit'>Physically Unfit</A><BR>"
|
||||||
if("m_stat")
|
if("m_stat")
|
||||||
if(active1)
|
if(active1)
|
||||||
src.temp = text("<B>Mental Condition:</B><BR>\n\t<A href='?src=\ref[];temp=1;m_stat=insane'>*Insane*</A><BR>\n\t<A href='?src=\ref[];temp=1;m_stat=unstable'>*Unstable*</A><BR>\n\t<A href='?src=\ref[];temp=1;m_stat=watch'>*Watch*</A><BR>\n\t<A href='?src=\ref[];temp=1;m_stat=stable'>Stable</A><BR>", src, src, src, src)
|
src.temp = "<B>Mental Condition:</B><BR>\n\t<A href='?src=[REF(src)];temp=1;m_stat=insane'>*Insane*</A><BR>\n\t<A href='?src=[REF(src)];temp=1;m_stat=unstable'>*Unstable*</A><BR>\n\t<A href='?src=[REF(src)];temp=1;m_stat=watch'>*Watch*</A><BR>\n\t<A href='?src=[REF(src)];temp=1;m_stat=stable'>Stable</A><BR>"
|
||||||
if("blood_type")
|
if("blood_type")
|
||||||
if(active2)
|
if(active2)
|
||||||
src.temp = text("<B>Blood Type:</B><BR>\n\t<A href='?src=\ref[];temp=1;blood_type=an'>A-</A> <A href='?src=\ref[];temp=1;blood_type=ap'>A+</A><BR>\n\t<A href='?src=\ref[];temp=1;blood_type=bn'>B-</A> <A href='?src=\ref[];temp=1;blood_type=bp'>B+</A><BR>\n\t<A href='?src=\ref[];temp=1;blood_type=abn'>AB-</A> <A href='?src=\ref[];temp=1;blood_type=abp'>AB+</A><BR>\n\t<A href='?src=\ref[];temp=1;blood_type=on'>O-</A> <A href='?src=\ref[];temp=1;blood_type=op'>O+</A><BR>", src, src, src, src, src, src, src, src)
|
src.temp = "<B>Blood Type:</B><BR>\n\t<A href='?src=[REF(src)];temp=1;blood_type=an'>A-</A> <A href='?src=[REF(src)];temp=1;blood_type=ap'>A+</A><BR>\n\t<A href='?src=[REF(src)];temp=1;blood_type=bn'>B-</A> <A href='?src=[REF(src)];temp=1;blood_type=bp'>B+</A><BR>\n\t<A href='?src=[REF(src)];temp=1;blood_type=abn'>AB-</A> <A href='?src=[REF(src)];temp=1;blood_type=abp'>AB+</A><BR>\n\t<A href='?src=[REF(src)];temp=1;blood_type=on'>O-</A> <A href='?src=[REF(src)];temp=1;blood_type=op'>O+</A><BR>"
|
||||||
if("b_dna")
|
if("b_dna")
|
||||||
if(active2)
|
if(active2)
|
||||||
var/t1 = stripped_input("Please input DNA hash:", "Med. records", src.active2.fields["b_dna"], null)
|
var/t1 = stripped_input("Please input DNA hash:", "Med. records", src.active2.fields["b_dna"], null)
|
||||||
@@ -452,7 +452,7 @@
|
|||||||
|
|
||||||
else if(href_list["del_r"])
|
else if(href_list["del_r"])
|
||||||
if(active2)
|
if(active2)
|
||||||
src.temp = text("Are you sure you wish to delete the record (Medical Portion Only)?<br>\n\t<A href='?src=\ref[];temp=1;del_r2=1'>Yes</A><br>\n\t<A href='?src=\ref[];temp=1'>No</A><br>", src, src)
|
src.temp = "Are you sure you wish to delete the record (Medical Portion Only)?<br>\n\t<A href='?src=[REF(src)];temp=1;del_r2=1'>Yes</A><br>\n\t<A href='?src=[REF(src)];temp=1'>No</A><br>"
|
||||||
|
|
||||||
else if(href_list["del_r2"])
|
else if(href_list["del_r2"])
|
||||||
investigate_log("[usr.name] ([usr.key]) has deleted the medical records for [active1.fields["name"]].", INVESTIGATE_RECORDS)
|
investigate_log("[usr.name] ([usr.key]) has deleted the medical records for [active1.fields["name"]].", INVESTIGATE_RECORDS)
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
<<<<<<< HEAD
|
||||||
|
|
||||||
// Allows you to monitor messages that passes the server.
|
// Allows you to monitor messages that passes the server.
|
||||||
|
|
||||||
@@ -471,3 +472,478 @@
|
|||||||
info_links = info
|
info_links = info
|
||||||
add_overlay("paper_words")
|
add_overlay("paper_words")
|
||||||
break
|
break
|
||||||
|
=======
|
||||||
|
|
||||||
|
// Allows you to monitor messages that passes the server.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/obj/machinery/computer/message_monitor
|
||||||
|
name = "message monitor console"
|
||||||
|
desc = "Used to Monitor the crew's messages, that are sent via PDA. Can also be used to view Request Console messages."
|
||||||
|
icon_screen = "comm_logs"
|
||||||
|
circuit = /obj/item/circuitboard/computer/message_monitor
|
||||||
|
//Server linked to.
|
||||||
|
var/obj/machinery/message_server/linkedServer = null
|
||||||
|
//Sparks effect - For emag
|
||||||
|
var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread
|
||||||
|
//Messages - Saves me time if I want to change something.
|
||||||
|
var/noserver = "<span class='alert'>ALERT: No server detected.</span>"
|
||||||
|
var/incorrectkey = "<span class='warning'>ALERT: Incorrect decryption key!</span>"
|
||||||
|
var/defaultmsg = "<span class='notice'>Welcome. Please select an option.</span>"
|
||||||
|
var/rebootmsg = "<span class='warning'>%$&(<28>: Critical %$$@ Error // !RestArting! <lOadiNg backUp iNput ouTput> - ?pLeaSe wAit!</span>"
|
||||||
|
//Computer properties
|
||||||
|
var/screen = 0 // 0 = Main menu, 1 = Message Logs, 2 = Hacked screen, 3 = Custom Message
|
||||||
|
var/hacking = 0 // Is it being hacked into by the AI/Cyborg
|
||||||
|
var/message = "<span class='notice'>System bootup complete. Please select an option.</span>" // The message that shows on the main menu.
|
||||||
|
var/auth = 0 // Are they authenticated?
|
||||||
|
var/optioncount = 7
|
||||||
|
// Custom Message Properties
|
||||||
|
var/customsender = "System Administrator"
|
||||||
|
var/obj/item/device/pda/customrecepient = null
|
||||||
|
var/customjob = "Admin"
|
||||||
|
var/custommessage = "This is a test, please ignore."
|
||||||
|
|
||||||
|
light_color = LIGHT_COLOR_GREEN
|
||||||
|
|
||||||
|
/obj/machinery/computer/message_monitor/attackby(obj/item/O, mob/living/user, params)
|
||||||
|
if(istype(O, /obj/item/screwdriver) && emagged)
|
||||||
|
//Stops people from just unscrewing the monitor and putting it back to get the console working again.
|
||||||
|
to_chat(user, "<span class='warning'>It is too hot to mess with!</span>")
|
||||||
|
else
|
||||||
|
return ..()
|
||||||
|
|
||||||
|
/obj/machinery/computer/message_monitor/emag_act(mob/user)
|
||||||
|
if(emagged)
|
||||||
|
return
|
||||||
|
if(!isnull(src.linkedServer))
|
||||||
|
emagged = TRUE
|
||||||
|
screen = 2
|
||||||
|
spark_system.set_up(5, 0, src)
|
||||||
|
src.spark_system.start()
|
||||||
|
var/obj/item/paper/monitorkey/MK = new/obj/item/paper/monitorkey
|
||||||
|
MK.loc = src.loc
|
||||||
|
// Will help make emagging the console not so easy to get away with.
|
||||||
|
MK.info += "<br><br><font color='red'><3E>%@%(*$%&(<28>&?*(%&<26>/{}</font>"
|
||||||
|
var/time = 100 * length(src.linkedServer.decryptkey)
|
||||||
|
addtimer(CALLBACK(src, .proc/UnmagConsole), time)
|
||||||
|
message = rebootmsg
|
||||||
|
else
|
||||||
|
to_chat(user, "<span class='notice'>A no server error appears on the screen.</span>")
|
||||||
|
|
||||||
|
/obj/machinery/computer/message_monitor/Initialize()
|
||||||
|
. = ..()
|
||||||
|
//Is the server isn't linked to a server, and there's a server available, default it to the first one in the list.
|
||||||
|
if(!linkedServer)
|
||||||
|
if(GLOB.message_servers && GLOB.message_servers.len > 0)
|
||||||
|
linkedServer = GLOB.message_servers[1]
|
||||||
|
|
||||||
|
/obj/machinery/computer/message_monitor/attack_hand(mob/living/user)
|
||||||
|
if(..())
|
||||||
|
return
|
||||||
|
//If the computer is being hacked or is emagged, display the reboot message.
|
||||||
|
if(hacking || emagged)
|
||||||
|
message = rebootmsg
|
||||||
|
var/dat = "<center><font color='blue'[message]</font>/</center>"
|
||||||
|
|
||||||
|
if(auth)
|
||||||
|
dat += "<h4><dd><A href='?src=[REF(src)];auth=1'>	<font color='green'>\[Authenticated\]</font></a>	/"
|
||||||
|
dat += " Server Power: <A href='?src=[REF(src)];active=1'>[src.linkedServer && src.linkedServer.active ? "<font color='green'>\[On\]</font>":"<font color='red'>\[Off\]</font>"]</a></h4>"
|
||||||
|
else
|
||||||
|
dat += "<h4><dd><A href='?src=[REF(src)];auth=1'>	<font color='red'>\[Unauthenticated\]</font></a>	/"
|
||||||
|
dat += " Server Power: <u>[src.linkedServer && src.linkedServer.active ? "<font color='green'>\[On\]</font>":"<font color='red'>\[Off\]</font>"]</u></h4>"
|
||||||
|
|
||||||
|
if(hacking || emagged)
|
||||||
|
screen = 2
|
||||||
|
else if(!auth || !linkedServer || (linkedServer.stat & (NOPOWER|BROKEN)))
|
||||||
|
if(!linkedServer || (linkedServer.stat & (NOPOWER|BROKEN)))
|
||||||
|
message = noserver
|
||||||
|
screen = 0
|
||||||
|
|
||||||
|
switch(screen)
|
||||||
|
//Main menu
|
||||||
|
if(0)
|
||||||
|
//	 = TAB
|
||||||
|
var/i = 0
|
||||||
|
dat += "<dd><A href='?src=[REF(src)];find=1'>	[++i]. Link To A Server</a></dd>"
|
||||||
|
if(auth)
|
||||||
|
if(!linkedServer || (linkedServer.stat & (NOPOWER|BROKEN)))
|
||||||
|
dat += "<dd><A>	ERROR: Server not found!</A><br></dd>"
|
||||||
|
else
|
||||||
|
dat += "<dd><A href='?src=[REF(src)];view=1'>	[++i]. View Message Logs </a><br></dd>"
|
||||||
|
dat += "<dd><A href='?src=[REF(src)];viewr=1'>	[++i]. View Request Console Logs </a></br></dd>"
|
||||||
|
dat += "<dd><A href='?src=[REF(src)];clear=1'>	[++i]. Clear Message Logs</a><br></dd>"
|
||||||
|
dat += "<dd><A href='?src=[REF(src)];clearr=1'>	[++i]. Clear Request Console Logs</a><br></dd>"
|
||||||
|
dat += "<dd><A href='?src=[REF(src)];pass=1'>	[++i]. Set Custom Key</a><br></dd>"
|
||||||
|
dat += "<dd><A href='?src=[REF(src)];msg=1'>	[++i]. Send Admin Message</a><br></dd>"
|
||||||
|
else
|
||||||
|
for(var/n = ++i; n <= optioncount; n++)
|
||||||
|
dat += "<dd><font color='blue'>	[n]. ---------------</font><br></dd>"
|
||||||
|
if(issilicon(usr) && is_special_character(usr))
|
||||||
|
//Malf/Traitor AIs can bruteforce into the system to gain the Key.
|
||||||
|
dat += "<dd><A href='?src=[REF(src)];hack=1'><i><font color='Red'>*&@#. Bruteforce Key</font></i></font></a><br></dd>"
|
||||||
|
else
|
||||||
|
dat += "<br>"
|
||||||
|
|
||||||
|
//Bottom message
|
||||||
|
if(!auth)
|
||||||
|
dat += "<br><hr><dd><span class='notice'>Please authenticate with the server in order to show additional options.</span>"
|
||||||
|
else
|
||||||
|
dat += "<br><hr><dd><span class='warning'>Reg, #514 forbids sending messages to a Head of Staff containing Erotic Rendering Properties.</span>"
|
||||||
|
|
||||||
|
//Message Logs
|
||||||
|
if(1)
|
||||||
|
var/index = 0
|
||||||
|
//var/recipient = "Unspecified" //name of the person
|
||||||
|
//var/sender = "Unspecified" //name of the sender
|
||||||
|
//var/message = "Blank" //transferred message
|
||||||
|
dat += "<center><A href='?src=[REF(src)];back=1'>Back</a> - <A href='?src=[REF(src)];refresh=1'>Refresh</center><hr>"
|
||||||
|
dat += "<table border='1' width='100%'><tr><th width = '5%'>X</th><th width='15%'>Sender</th><th width='15%'>Recipient</th><th width='300px' word-wrap: break-word>Message</th></tr>"
|
||||||
|
for(var/datum/data_pda_msg/pda in src.linkedServer.pda_msgs)
|
||||||
|
index++
|
||||||
|
if(index > 3000)
|
||||||
|
break
|
||||||
|
// Del - Sender - Recepient - Message
|
||||||
|
// X - Al Green - Your Mom - WHAT UP!?
|
||||||
|
dat += "<tr><td width = '5%'><center><A href='?src=[REF(src)];delete=[REF(pda)]' style='color: rgb(255,0,0)'>X</a></center></td><td width='15%'>[pda.sender]</td><td width='15%'>[pda.recipient]</td><td width='300px'>[pda.message][pda.photo ? "<a href='byond://?src=[REF(pda)];photo=1'>(Photo)</a>":""]</td></tr>"
|
||||||
|
dat += "</table>"
|
||||||
|
//Hacking screen.
|
||||||
|
if(2)
|
||||||
|
if(isAI(user) || iscyborg(user))
|
||||||
|
dat += "Brute-forcing for server key.<br> It will take 20 seconds for every character that the password has."
|
||||||
|
dat += "In the meantime, this console can reveal your true intentions if you let someone access it. Make sure no humans enter the room during that time."
|
||||||
|
else
|
||||||
|
//It's the same message as the one above but in binary. Because robots understand binary and humans don't... well I thought it was clever.
|
||||||
|
dat += {"01000010011100100111010101110100011001010010110<br>
|
||||||
|
10110011001101111011100100110001101101001011011100110011<br>
|
||||||
|
10010000001100110011011110111001000100000011100110110010<br>
|
||||||
|
10111001001110110011001010111001000100000011010110110010<br>
|
||||||
|
10111100100101110001000000100100101110100001000000111011<br>
|
||||||
|
10110100101101100011011000010000001110100011000010110101<br>
|
||||||
|
10110010100100000001100100011000000100000011100110110010<br>
|
||||||
|
10110001101101111011011100110010001110011001000000110011<br>
|
||||||
|
00110111101110010001000000110010101110110011001010111001<br>
|
||||||
|
00111100100100000011000110110100001100001011100100110000<br>
|
||||||
|
10110001101110100011001010111001000100000011101000110100<br>
|
||||||
|
00110000101110100001000000111010001101000011001010010000<br>
|
||||||
|
00111000001100001011100110111001101110111011011110111001<br>
|
||||||
|
00110010000100000011010000110000101110011001011100010000<br>
|
||||||
|
00100100101101110001000000111010001101000011001010010000<br>
|
||||||
|
00110110101100101011000010110111001110100011010010110110<br>
|
||||||
|
10110010100101100001000000111010001101000011010010111001<br>
|
||||||
|
10010000001100011011011110110111001110011011011110110110<br>
|
||||||
|
00110010100100000011000110110000101101110001000000111001<br>
|
||||||
|
00110010101110110011001010110000101101100001000000111100<br>
|
||||||
|
10110111101110101011100100010000001110100011100100111010<br>
|
||||||
|
10110010100100000011010010110111001110100011001010110111<br>
|
||||||
|
00111010001101001011011110110111001110011001000000110100<br>
|
||||||
|
10110011000100000011110010110111101110101001000000110110<br>
|
||||||
|
00110010101110100001000000111001101101111011011010110010<br>
|
||||||
|
10110111101101110011001010010000001100001011000110110001<br>
|
||||||
|
10110010101110011011100110010000001101001011101000010111<br>
|
||||||
|
00010000001001101011000010110101101100101001000000111001<br>
|
||||||
|
10111010101110010011001010010000001101110011011110010000<br>
|
||||||
|
00110100001110101011011010110000101101110011100110010000<br>
|
||||||
|
00110010101101110011101000110010101110010001000000111010<br>
|
||||||
|
00110100001100101001000000111001001101111011011110110110<br>
|
||||||
|
10010000001100100011101010111001001101001011011100110011<br>
|
||||||
|
10010000001110100011010000110000101110100001000000111010<br>
|
||||||
|
001101001011011010110010100101110"}
|
||||||
|
|
||||||
|
//Fake messages
|
||||||
|
if(3)
|
||||||
|
dat += "<center><A href='?src=[REF(src)];back=1'>Back</a> - <A href='?src=[REF(src)];Reset=1'>Reset</a></center><hr>"
|
||||||
|
|
||||||
|
dat += {"<table border='1' width='100%'>
|
||||||
|
<tr><td width='20%'><A href='?src=[REF(src)];select=Sender'>Sender</a></td>
|
||||||
|
<td width='20%'><A href='?src=[REF(src)];select=RecJob'>Sender's Job</a></td>
|
||||||
|
<td width='20%'><A href='?src=[REF(src)];select=Recepient'>Recipient</a></td>
|
||||||
|
<td width='300px' word-wrap: break-word><A href='?src=[REF(src)];select=Message'>Message</a></td></tr>"}
|
||||||
|
//Sender - Sender's Job - Recepient - Message
|
||||||
|
//Al Green- Your Dad - Your Mom - WHAT UP!?
|
||||||
|
|
||||||
|
dat += {"<tr><td width='20%'>[customsender]</td>
|
||||||
|
<td width='20%'>[customjob]</td>
|
||||||
|
<td width='20%'>[customrecepient ? customrecepient.owner : "NONE"]</td>
|
||||||
|
<td width='300px'>[custommessage]</td></tr>"}
|
||||||
|
dat += "</table><br><center><A href='?src=[REF(src)];select=Send'>Send</a>"
|
||||||
|
|
||||||
|
//Request Console Logs
|
||||||
|
if(4)
|
||||||
|
|
||||||
|
var/index = 0
|
||||||
|
/* data_rc_msg
|
||||||
|
X - 5%
|
||||||
|
var/rec_dpt = "Unspecified" //name of the person - 15%
|
||||||
|
var/send_dpt = "Unspecified" //name of the sender- 15%
|
||||||
|
var/message = "Blank" //transferred message - 300px
|
||||||
|
var/stamp = "Unstamped" - 15%
|
||||||
|
var/id_auth = "Unauthenticated" - 15%
|
||||||
|
var/priority = "Normal" - 10%
|
||||||
|
*/
|
||||||
|
dat += "<center><A href='?src=[REF(src)];back=1'>Back</a> - <A href='?src=[REF(src)];refresh=1'>Refresh</center><hr>"
|
||||||
|
dat += {"<table border='1' width='100%'><tr><th width = '5%'>X</th><th width='15%'>Sending Dep.</th><th width='15%'>Receiving Dep.</th>
|
||||||
|
<th width='300px' word-wrap: break-word>Message</th><th width='15%'>Stamp</th><th width='15%'>ID Auth.</th><th width='15%'>Priority.</th></tr>"}
|
||||||
|
for(var/datum/data_rc_msg/rc in src.linkedServer.rc_msgs)
|
||||||
|
index++
|
||||||
|
if(index > 3000)
|
||||||
|
break
|
||||||
|
// Del - Sender - Recepient - Message
|
||||||
|
// X - Al Green - Your Mom - WHAT UP!?
|
||||||
|
dat += {"<tr><td width = '5%'><center><A href='?src=[REF(src)];deleter=[REF(rc)]' style='color: rgb(255,0,0)'>X</a></center></td><td width='15%'>[rc.send_dpt]</td>
|
||||||
|
<td width='15%'>[rc.rec_dpt]</td><td width='300px'>[rc.message]</td><td width='15%'>[rc.stamp]</td><td width='15%'>[rc.id_auth]</td><td width='15%'>[rc.priority]</td></tr>"}
|
||||||
|
dat += "</table>"
|
||||||
|
|
||||||
|
message = defaultmsg
|
||||||
|
var/datum/browser/popup = new(user, "hologram_console", name, 700, 700)
|
||||||
|
popup.set_content(dat)
|
||||||
|
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
|
||||||
|
popup.open()
|
||||||
|
return
|
||||||
|
|
||||||
|
/obj/machinery/computer/message_monitor/proc/BruteForce(mob/user)
|
||||||
|
if(isnull(linkedServer))
|
||||||
|
to_chat(user, "<span class='warning'>Could not complete brute-force: Linked Server Disconnected!</span>")
|
||||||
|
else
|
||||||
|
var/currentKey = src.linkedServer.decryptkey
|
||||||
|
to_chat(user, "<span class='warning'>Brute-force completed! The key is '[currentKey]'.</span>")
|
||||||
|
src.hacking = 0
|
||||||
|
src.screen = 0 // Return the screen back to normal
|
||||||
|
|
||||||
|
/obj/machinery/computer/message_monitor/proc/UnmagConsole()
|
||||||
|
emagged = FALSE
|
||||||
|
|
||||||
|
/obj/machinery/computer/message_monitor/proc/ResetMessage()
|
||||||
|
customsender = "System Administrator"
|
||||||
|
customrecepient = null
|
||||||
|
custommessage = "This is a test, please ignore."
|
||||||
|
customjob = "Admin"
|
||||||
|
|
||||||
|
/obj/machinery/computer/message_monitor/Topic(href, href_list)
|
||||||
|
if(..())
|
||||||
|
return
|
||||||
|
|
||||||
|
if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr))
|
||||||
|
//Authenticate
|
||||||
|
if (href_list["auth"])
|
||||||
|
if(!linkedServer || linkedServer.stat & (NOPOWER|BROKEN))
|
||||||
|
message = noserver
|
||||||
|
else
|
||||||
|
if(auth)
|
||||||
|
auth = 0
|
||||||
|
screen = 0
|
||||||
|
else
|
||||||
|
var/dkey = trim(input(usr, "Please enter the decryption key.") as text|null)
|
||||||
|
if(dkey && dkey != "")
|
||||||
|
if(src.linkedServer.decryptkey == dkey)
|
||||||
|
auth = 1
|
||||||
|
else
|
||||||
|
message = incorrectkey
|
||||||
|
|
||||||
|
//Turn the server on/off.
|
||||||
|
if (href_list["active"])
|
||||||
|
if(auth)
|
||||||
|
linkedServer.active = !linkedServer.active
|
||||||
|
//Find a server
|
||||||
|
if (href_list["find"])
|
||||||
|
if(GLOB.message_servers && GLOB.message_servers.len > 1)
|
||||||
|
src.linkedServer = input(usr,"Please select a server.", "Select a server.", null) as null|anything in GLOB.message_servers
|
||||||
|
message = "<span class='alert'>NOTICE: Server selected.</span>"
|
||||||
|
else if(GLOB.message_servers && GLOB.message_servers.len > 0)
|
||||||
|
linkedServer = GLOB.message_servers[1]
|
||||||
|
message = "<span class='notice'>NOTICE: Only Single Server Detected - Server selected.</span>"
|
||||||
|
else
|
||||||
|
message = noserver
|
||||||
|
|
||||||
|
//View the logs - KEY REQUIRED
|
||||||
|
if (href_list["view"])
|
||||||
|
if(src.linkedServer == null || (src.linkedServer.stat & (NOPOWER|BROKEN)))
|
||||||
|
message = noserver
|
||||||
|
else
|
||||||
|
if(auth)
|
||||||
|
src.screen = 1
|
||||||
|
|
||||||
|
//Clears the logs - KEY REQUIRED
|
||||||
|
if (href_list["clear"])
|
||||||
|
if(!linkedServer || (src.linkedServer.stat & (NOPOWER|BROKEN)))
|
||||||
|
message = noserver
|
||||||
|
else
|
||||||
|
if(auth)
|
||||||
|
src.linkedServer.pda_msgs = list()
|
||||||
|
message = "<span class='notice'>NOTICE: Logs cleared.</span>"
|
||||||
|
//Clears the request console logs - KEY REQUIRED
|
||||||
|
if (href_list["clearr"])
|
||||||
|
if(!linkedServer || (src.linkedServer.stat & (NOPOWER|BROKEN)))
|
||||||
|
message = noserver
|
||||||
|
else
|
||||||
|
if(auth)
|
||||||
|
src.linkedServer.rc_msgs = list()
|
||||||
|
message = "<span class='notice'>NOTICE: Logs cleared.</span>"
|
||||||
|
//Change the password - KEY REQUIRED
|
||||||
|
if (href_list["pass"])
|
||||||
|
if(!linkedServer || (src.linkedServer.stat & (NOPOWER|BROKEN)))
|
||||||
|
message = noserver
|
||||||
|
else
|
||||||
|
if(auth)
|
||||||
|
var/dkey = trim(stripped_input(usr, "Please enter the decryption key."))
|
||||||
|
if(dkey && dkey != "")
|
||||||
|
if(src.linkedServer.decryptkey == dkey)
|
||||||
|
var/newkey = trim(input(usr,"Please enter the new key (3 - 16 characters max):"))
|
||||||
|
if(length(newkey) <= 3)
|
||||||
|
message = "<span class='notice'>NOTICE: Decryption key too short!</span>"
|
||||||
|
else if(length(newkey) > 16)
|
||||||
|
message = "<span class='notice'>NOTICE: Decryption key too long!</span>"
|
||||||
|
else if(newkey && newkey != "")
|
||||||
|
src.linkedServer.decryptkey = newkey
|
||||||
|
message = "<span class='notice'>NOTICE: Decryption key set.</span>"
|
||||||
|
else
|
||||||
|
message = incorrectkey
|
||||||
|
|
||||||
|
//Hack the Console to get the password
|
||||||
|
if (href_list["hack"])
|
||||||
|
if(issilicon(usr) && is_special_character(usr))
|
||||||
|
src.hacking = 1
|
||||||
|
src.screen = 2
|
||||||
|
//Time it takes to bruteforce is dependant on the password length.
|
||||||
|
spawn(100*length(src.linkedServer.decryptkey))
|
||||||
|
if(src && src.linkedServer && usr)
|
||||||
|
BruteForce(usr)
|
||||||
|
//Delete the log.
|
||||||
|
if (href_list["delete"])
|
||||||
|
//Are they on the view logs screen?
|
||||||
|
if(screen == 1)
|
||||||
|
if(!linkedServer || (src.linkedServer.stat & (NOPOWER|BROKEN)))
|
||||||
|
message = noserver
|
||||||
|
else //if(istype(href_list["delete"], /datum/data_pda_msg))
|
||||||
|
src.linkedServer.pda_msgs -= locate(href_list["delete"])
|
||||||
|
message = "<span class='notice'>NOTICE: Log Deleted!</span>"
|
||||||
|
//Delete the request console log.
|
||||||
|
if (href_list["deleter"])
|
||||||
|
//Are they on the view logs screen?
|
||||||
|
if(screen == 4)
|
||||||
|
if(!linkedServer || (src.linkedServer.stat & (NOPOWER|BROKEN)))
|
||||||
|
message = noserver
|
||||||
|
else //if(istype(href_list["delete"], /datum/data_pda_msg))
|
||||||
|
src.linkedServer.rc_msgs -= locate(href_list["deleter"])
|
||||||
|
message = "<span class='notice'>NOTICE: Log Deleted!</span>"
|
||||||
|
//Create a custom message
|
||||||
|
if (href_list["msg"])
|
||||||
|
if(src.linkedServer == null || (src.linkedServer.stat & (NOPOWER|BROKEN)))
|
||||||
|
message = noserver
|
||||||
|
else
|
||||||
|
if(auth)
|
||||||
|
src.screen = 3
|
||||||
|
//Fake messaging selection - KEY REQUIRED
|
||||||
|
if (href_list["select"])
|
||||||
|
if(src.linkedServer == null || (src.linkedServer.stat & (NOPOWER|BROKEN)))
|
||||||
|
message = noserver
|
||||||
|
screen = 0
|
||||||
|
else
|
||||||
|
switch(href_list["select"])
|
||||||
|
|
||||||
|
//Reset
|
||||||
|
if("Reset")
|
||||||
|
ResetMessage()
|
||||||
|
|
||||||
|
//Select Your Name
|
||||||
|
if("Sender")
|
||||||
|
customsender = stripped_input(usr, "Please enter the sender's name.")
|
||||||
|
|
||||||
|
//Select Receiver
|
||||||
|
if("Recepient")
|
||||||
|
//Get out list of viable PDAs
|
||||||
|
var/list/obj/item/device/pda/sendPDAs = get_viewable_pdas()
|
||||||
|
if(GLOB.PDAs && GLOB.PDAs.len > 0)
|
||||||
|
customrecepient = input(usr, "Select a PDA from the list.") as null|anything in sortNames(sendPDAs)
|
||||||
|
else
|
||||||
|
customrecepient = null
|
||||||
|
|
||||||
|
//Enter custom job
|
||||||
|
if("RecJob")
|
||||||
|
customjob = stripped_input(usr, "Please enter the sender's job.")
|
||||||
|
|
||||||
|
//Enter message
|
||||||
|
if("Message")
|
||||||
|
custommessage = stripped_input(usr, "Please enter your message.")
|
||||||
|
|
||||||
|
//Send message
|
||||||
|
if("Send")
|
||||||
|
|
||||||
|
if(isnull(customsender) || customsender == "")
|
||||||
|
customsender = "UNKNOWN"
|
||||||
|
|
||||||
|
if(isnull(customrecepient))
|
||||||
|
message = "<span class='notice'>NOTICE: No recepient selected!</span>"
|
||||||
|
return src.attack_hand(usr)
|
||||||
|
|
||||||
|
if(isnull(custommessage) || custommessage == "")
|
||||||
|
message = "<span class='notice'>NOTICE: No message entered!</span>"
|
||||||
|
return src.attack_hand(usr)
|
||||||
|
|
||||||
|
var/obj/item/device/pda/PDARec = null
|
||||||
|
for (var/obj/item/device/pda/P in get_viewable_pdas())
|
||||||
|
if(P.owner == customsender)
|
||||||
|
PDARec = P
|
||||||
|
//Sender isn't faking as someone who exists
|
||||||
|
if(isnull(PDARec))
|
||||||
|
src.linkedServer.send_pda_message("[customrecepient.owner]", "[customsender]","[custommessage]")
|
||||||
|
customrecepient.tnote += "<i><b>← From <a href='byond://?src=[REF(customrecepient)];choice=Message;target=[REF(src)]'>[customsender]</a> ([customjob]):</b></i><br>[custommessage]<br>"
|
||||||
|
if (!customrecepient.silent)
|
||||||
|
playsound(customrecepient.loc, 'sound/machines/twobeep.ogg', 50, 1)
|
||||||
|
customrecepient.audible_message("[icon2html(customrecepient, viewers(customrecepient))] *[customrecepient.ttone]*", null, 3)
|
||||||
|
if( customrecepient.loc && ishuman(customrecepient.loc) )
|
||||||
|
var/mob/living/carbon/human/H = customrecepient.loc
|
||||||
|
to_chat(H, "[icon2html(customrecepient, viewers(H))] <b>Message from [customsender] ([customjob]), </b>\"[custommessage]\" (<a href='byond://?src=[REF(src)];choice=Message;skiprefresh=1;target=[REF(src)]'>Reply</a>)")
|
||||||
|
log_talk(usr,"[key_name(usr)] (PDA: [customsender]) sent \"[custommessage]\" to [customrecepient.owner]",LOGPDA)
|
||||||
|
customrecepient.cut_overlays()
|
||||||
|
customrecepient.add_overlay(mutable_appearance('icons/obj/pda.dmi', "pda-r"))
|
||||||
|
//Sender is faking as someone who exists
|
||||||
|
else
|
||||||
|
src.linkedServer.send_pda_message("[customrecepient.owner]", "[PDARec.owner]","[custommessage]")
|
||||||
|
customrecepient.tnote += "<i><b>← From <a href='byond://?src=[REF(customrecepient)];choice=Message;target=[REF(PDARec)]'>[PDARec.owner]</a> ([customjob]):</b></i><br>[custommessage]<br>"
|
||||||
|
if (!customrecepient.silent)
|
||||||
|
playsound(customrecepient.loc, 'sound/machines/twobeep.ogg', 50, 1)
|
||||||
|
customrecepient.audible_message("[icon2html(customrecepient, viewers(customrecepient))] *[customrecepient.ttone]*", null, 3)
|
||||||
|
if( customrecepient.loc && ishuman(customrecepient.loc) )
|
||||||
|
var/mob/living/carbon/human/H = customrecepient.loc
|
||||||
|
to_chat(H, "[icon2html(customrecepient, H)] <b>Message from [PDARec.owner] ([customjob]), </b>\"[custommessage]\" (<a href='byond://?src=[REF(customrecepient)];choice=Message;skiprefresh=1;target=[REF(PDARec)]'>Reply</a>)")
|
||||||
|
log_talk(usr,"[key_name(usr)] (PDA: [PDARec.owner]) sent \"[custommessage]\" to [customrecepient.owner]",LOGPDA)
|
||||||
|
customrecepient.cut_overlays()
|
||||||
|
customrecepient.add_overlay(mutable_appearance('icons/obj/pda.dmi', "pda-r"))
|
||||||
|
//Finally..
|
||||||
|
ResetMessage()
|
||||||
|
|
||||||
|
//Request Console Logs - KEY REQUIRED
|
||||||
|
if(href_list["viewr"])
|
||||||
|
if(src.linkedServer == null || (src.linkedServer.stat & (NOPOWER|BROKEN)))
|
||||||
|
message = noserver
|
||||||
|
else
|
||||||
|
if(auth)
|
||||||
|
src.screen = 4
|
||||||
|
|
||||||
|
if (href_list["back"])
|
||||||
|
src.screen = 0
|
||||||
|
|
||||||
|
return src.attack_hand(usr)
|
||||||
|
|
||||||
|
|
||||||
|
/obj/item/paper/monitorkey
|
||||||
|
//..()
|
||||||
|
name = "monitor decryption key"
|
||||||
|
var/obj/machinery/message_server/server = null
|
||||||
|
|
||||||
|
/obj/item/paper/monitorkey/Initialize()
|
||||||
|
..()
|
||||||
|
return INITIALIZE_HINT_LATELOAD
|
||||||
|
|
||||||
|
/obj/item/paper/monitorkey/LateInitialize()
|
||||||
|
if(GLOB.message_servers)
|
||||||
|
for(var/obj/machinery/message_server/server in GLOB.message_servers)
|
||||||
|
if(!isnull(server))
|
||||||
|
if(!isnull(server.decryptkey))
|
||||||
|
info = "<center><h2>Daily Key Reset</h2></center><br>The new message monitor key is '[server.decryptkey]'.<br>Please keep this a secret and away from the clown.<br>If necessary, change the password to a more secure one."
|
||||||
|
info_links = info
|
||||||
|
add_overlay("paper_words")
|
||||||
|
break
|
||||||
|
>>>>>>> 626302c... Merge pull request #32161 from ninjanomnom/512-experimental
|
||||||
|
|||||||
@@ -48,21 +48,21 @@
|
|||||||
if(connected)
|
if(connected)
|
||||||
var/d2
|
var/d2
|
||||||
if(timing) //door controls do not need timers.
|
if(timing) //door controls do not need timers.
|
||||||
d2 = "<A href='?src=\ref[src];time=0'>Stop Time Launch</A>"
|
d2 = "<A href='?src=[REF(src)];time=0'>Stop Time Launch</A>"
|
||||||
else
|
else
|
||||||
d2 = "<A href='?src=\ref[src];time=1'>Initiate Time Launch</A>"
|
d2 = "<A href='?src=[REF(src)];time=1'>Initiate Time Launch</A>"
|
||||||
dat += "<HR>\nTimer System: [d2]\nTime Left: [DisplayTimeText(time)] <A href='?src=\ref[src];tp=-30'>-</A> <A href='?src=\ref[src];tp=-1'>-</A> <A href='?src=\ref[src];tp=1'>+</A> <A href='?src=\ref[src];tp=30'>+</A>"
|
dat += "<HR>\nTimer System: [d2]\nTime Left: [DisplayTimeText(time)] <A href='?src=[REF(src)];tp=-30'>-</A> <A href='?src=[REF(src)];tp=-1'>-</A> <A href='?src=[REF(src)];tp=1'>+</A> <A href='?src=[REF(src)];tp=30'>+</A>"
|
||||||
var/temp = ""
|
var/temp = ""
|
||||||
var/list/L = list( 0.25, 0.5, 1, 2, 4, 8, 16 )
|
var/list/L = list( 0.25, 0.5, 1, 2, 4, 8, 16 )
|
||||||
for(var/t in L)
|
for(var/t in L)
|
||||||
if(t == connected.power)
|
if(t == connected.power)
|
||||||
temp += "[t] "
|
temp += "[t] "
|
||||||
else
|
else
|
||||||
temp += "<A href = '?src=\ref[src];power=[t]'>[t]</A> "
|
temp += "<A href = '?src=[REF(src)];power=[t]'>[t]</A> "
|
||||||
dat += "<HR>\nPower Level: [temp]<BR>\n<A href = '?src=\ref[src];alarm=1'>Firing Sequence</A><BR>\n<A href = '?src=\ref[src];drive=1'>Test Fire Driver</A><BR>\n<A href = '?src=\ref[src];door=1'>Toggle Outer Door</A><BR>"
|
dat += "<HR>\nPower Level: [temp]<BR>\n<A href = '?src=[REF(src)];alarm=1'>Firing Sequence</A><BR>\n<A href = '?src=[REF(src)];drive=1'>Test Fire Driver</A><BR>\n<A href = '?src=[REF(src)];door=1'>Toggle Outer Door</A><BR>"
|
||||||
else
|
else
|
||||||
dat += "<BR>\n<A href = '?src=\ref[src];door=1'>Toggle Outer Door</A><BR>"
|
dat += "<BR>\n<A href = '?src=[REF(src)];door=1'>Toggle Outer Door</A><BR>"
|
||||||
dat += "<BR><BR><A href='?src=\ref[user];mach_close=computer'>Close</A>"
|
dat += "<BR><BR><A href='?src=[REF(user)];mach_close=computer'>Close</A>"
|
||||||
add_fingerprint(usr)
|
add_fingerprint(usr)
|
||||||
var/datum/browser/popup = new(user, "computer", title, 400, 500)
|
var/datum/browser/popup = new(user, "computer", title, 400, 500)
|
||||||
popup.set_content(dat)
|
popup.set_content(dat)
|
||||||
|
|||||||
@@ -21,16 +21,16 @@
|
|||||||
user.set_machine(src)
|
user.set_machine(src)
|
||||||
var/dat = ""
|
var/dat = ""
|
||||||
if(screen == 0)
|
if(screen == 0)
|
||||||
dat += "<HR><A href='?src=\ref[src];lock=1'>Unlock Console</A>"
|
dat += "<HR><A href='?src=[REF(src)];lock=1'>Unlock Console</A>"
|
||||||
else if(screen == 1)
|
else if(screen == 1)
|
||||||
dat += "<H3>Prisoner ID Management</H3>"
|
dat += "<H3>Prisoner ID Management</H3>"
|
||||||
if(inserted_id)
|
if(inserted_id)
|
||||||
dat += text("<A href='?src=\ref[src];id=eject'>[inserted_id]</A><br>")
|
dat += text("<A href='?src=[REF(src)];id=eject'>[inserted_id]</A><br>")
|
||||||
dat += text("Collected Points: [inserted_id.points]. <A href='?src=\ref[src];id=reset'>Reset.</A><br>")
|
dat += text("Collected Points: [inserted_id.points]. <A href='?src=[REF(src)];id=reset'>Reset.</A><br>")
|
||||||
dat += text("Card goal: [inserted_id.goal]. <A href='?src=\ref[src];id=setgoal'>Set </A><br>")
|
dat += text("Card goal: [inserted_id.goal]. <A href='?src=[REF(src)];id=setgoal'>Set </A><br>")
|
||||||
dat += text("Space Law recommends quotas of 100 points per minute they would normally serve in the brig.<BR>")
|
dat += text("Space Law recommends quotas of 100 points per minute they would normally serve in the brig.<BR>")
|
||||||
else
|
else
|
||||||
dat += text("<A href='?src=\ref[src];id=insert'>Insert Prisoner ID.</A><br>")
|
dat += text("<A href='?src=[REF(src)];id=insert'>Insert Prisoner ID.</A><br>")
|
||||||
dat += "<H3>Prisoner Implant Management</H3>"
|
dat += "<H3>Prisoner Implant Management</H3>"
|
||||||
dat += "<HR>Chemical Implants<BR>"
|
dat += "<HR>Chemical Implants<BR>"
|
||||||
var/turf/Tr = null
|
var/turf/Tr = null
|
||||||
@@ -42,9 +42,9 @@
|
|||||||
continue
|
continue
|
||||||
dat += "ID: [C.imp_in.name] | Remaining Units: [C.reagents.total_volume] <BR>"
|
dat += "ID: [C.imp_in.name] | Remaining Units: [C.reagents.total_volume] <BR>"
|
||||||
dat += "| Inject: "
|
dat += "| Inject: "
|
||||||
dat += "<A href='?src=\ref[src];inject1=\ref[C]'>(<font class='bad'>(1)</font>)</A>"
|
dat += "<A href='?src=[REF(src)];inject1=[REF(C)]'>(<font class='bad'>(1)</font>)</A>"
|
||||||
dat += "<A href='?src=\ref[src];inject5=\ref[C]'>(<font class='bad'>(5)</font>)</A>"
|
dat += "<A href='?src=[REF(src)];inject5=[REF(C)]'>(<font class='bad'>(5)</font>)</A>"
|
||||||
dat += "<A href='?src=\ref[src];inject10=\ref[C]'>(<font class='bad'>(10)</font>)</A><BR>"
|
dat += "<A href='?src=[REF(src)];inject10=[REF(C)]'>(<font class='bad'>(10)</font>)</A><BR>"
|
||||||
dat += "********************************<BR>"
|
dat += "********************************<BR>"
|
||||||
dat += "<HR>Tracking Implants<BR>"
|
dat += "<HR>Tracking Implants<BR>"
|
||||||
for(var/obj/item/implant/tracking/T in GLOB.tracked_implants)
|
for(var/obj/item/implant/tracking/T in GLOB.tracked_implants)
|
||||||
@@ -61,9 +61,9 @@
|
|||||||
loc_display = mob_loc.loc
|
loc_display = mob_loc.loc
|
||||||
|
|
||||||
dat += "ID: [T.imp_in.name] | Location: [loc_display]<BR>"
|
dat += "ID: [T.imp_in.name] | Location: [loc_display]<BR>"
|
||||||
dat += "<A href='?src=\ref[src];warn=\ref[T]'>(<font class='bad'><i>Message Holder</i></font>)</A> |<BR>"
|
dat += "<A href='?src=[REF(src)];warn=[REF(T)]'>(<font class='bad'><i>Message Holder</i></font>)</A> |<BR>"
|
||||||
dat += "********************************<BR>"
|
dat += "********************************<BR>"
|
||||||
dat += "<HR><A href='?src=\ref[src];lock=1'>Lock Console</A>"
|
dat += "<HR><A href='?src=[REF(src)];lock=1'>Lock Console</A>"
|
||||||
var/datum/browser/popup = new(user, "computer", "Prisoner Management Console", 400, 500)
|
var/datum/browser/popup = new(user, "computer", "Prisoner Management Console", 400, 500)
|
||||||
popup.set_content(dat)
|
popup.set_content(dat)
|
||||||
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
|
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
icon_screen = "robot"
|
icon_screen = "robot"
|
||||||
icon_keyboard = "rd_key"
|
icon_keyboard = "rd_key"
|
||||||
req_access = list(ACCESS_ROBOTICS)
|
req_access = list(ACCESS_ROBOTICS)
|
||||||
|
<<<<<<< HEAD
|
||||||
circuit = /obj/item/circuitboard/computer/robotics
|
circuit = /obj/item/circuitboard/computer/robotics
|
||||||
var/temp = null
|
var/temp = null
|
||||||
|
|
||||||
@@ -158,6 +159,159 @@
|
|||||||
|
|
||||||
else if (href_list["killdrone"])
|
else if (href_list["killdrone"])
|
||||||
if(src.allowed(usr))
|
if(src.allowed(usr))
|
||||||
|
=======
|
||||||
|
circuit = /obj/item/circuitboard/computer/robotics
|
||||||
|
var/temp = null
|
||||||
|
|
||||||
|
light_color = LIGHT_COLOR_PINK
|
||||||
|
|
||||||
|
/obj/machinery/computer/robotics/proc/can_control(mob/user, mob/living/silicon/robot/R)
|
||||||
|
if(!istype(R))
|
||||||
|
return 0
|
||||||
|
if(isAI(user))
|
||||||
|
if (R.connected_ai != user)
|
||||||
|
return 0
|
||||||
|
if(iscyborg(user))
|
||||||
|
if (R != user)
|
||||||
|
return 0
|
||||||
|
if(R.scrambledcodes)
|
||||||
|
return 0
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/obj/machinery/computer/robotics/attack_hand(mob/user)
|
||||||
|
if(..())
|
||||||
|
return
|
||||||
|
interact(user)
|
||||||
|
|
||||||
|
/obj/machinery/computer/robotics/interact(mob/user)
|
||||||
|
if (src.z > 6)
|
||||||
|
to_chat(user, "<span class='boldannounce'>Unable to establish a connection</span>: \black You're too far away from the station!")
|
||||||
|
return
|
||||||
|
user.set_machine(src)
|
||||||
|
var/dat
|
||||||
|
var/robots = 0
|
||||||
|
for(var/mob/living/silicon/robot/R in GLOB.mob_list)
|
||||||
|
if(!can_control(user, R))
|
||||||
|
continue
|
||||||
|
robots++
|
||||||
|
dat += "[R.name] |"
|
||||||
|
if(R.stat)
|
||||||
|
dat += " Not Responding |"
|
||||||
|
else if (!R.canmove)
|
||||||
|
dat += " Locked Down |"
|
||||||
|
else
|
||||||
|
dat += " Operating Normally |"
|
||||||
|
if (!R.canmove)
|
||||||
|
else if(R.cell)
|
||||||
|
dat += " Battery Installed ([R.cell.charge]/[R.cell.maxcharge]) |"
|
||||||
|
else
|
||||||
|
dat += " No Cell Installed |"
|
||||||
|
if(R.module)
|
||||||
|
dat += " Module Installed ([R.module.name]) |"
|
||||||
|
else
|
||||||
|
dat += " No Module Installed |"
|
||||||
|
if(R.connected_ai)
|
||||||
|
dat += " Slaved to [R.connected_ai.name] |"
|
||||||
|
else
|
||||||
|
dat += " Independent from AI |"
|
||||||
|
if(issilicon(user) || IsAdminGhost(user))
|
||||||
|
if(is_servant_of_ratvar(user) && user != R)
|
||||||
|
dat += "<A href='?src=[REF(src)];convert=[REF(R)]'>(<font color=#BE8700><i>Convert</i></font>)</A> "
|
||||||
|
else if(((issilicon(user) && is_special_character(user)) || IsAdminGhost(user)) && !R.emagged && (user != R || R.syndicate))
|
||||||
|
dat += "<A href='?src=[REF(src)];magbot=[REF(R)]'>(<font color=blue><i>Hack</i></font>)</A> "
|
||||||
|
dat += "<A href='?src=[REF(src)];stopbot=[REF(R)]'>(<font color=green><i>[R.canmove ? "Lockdown" : "Release"]</i></font>)</A> "
|
||||||
|
dat += "<A href='?src=[REF(src)];killbot=[REF(R)]'>(<font color=red><i>Destroy</i></font>)</A>"
|
||||||
|
dat += "<BR>"
|
||||||
|
|
||||||
|
if(!robots)
|
||||||
|
dat += "No Cyborg Units detected within access parameters."
|
||||||
|
dat += "<BR>"
|
||||||
|
|
||||||
|
var/drones = 0
|
||||||
|
for(var/mob/living/simple_animal/drone/D in GLOB.mob_list)
|
||||||
|
if(D.hacked)
|
||||||
|
continue
|
||||||
|
drones++
|
||||||
|
dat += "[D.name] |"
|
||||||
|
if(D.stat)
|
||||||
|
dat += " Not Responding |"
|
||||||
|
dat += "<A href='?src=[REF(src)];killdrone=[REF(D)]'>(<font color=red><i>Destroy</i></font>)</A>"
|
||||||
|
dat += "<BR>"
|
||||||
|
|
||||||
|
if(!drones)
|
||||||
|
dat += "No Drone Units detected within access parameters."
|
||||||
|
|
||||||
|
var/datum/browser/popup = new(user, "computer", "Cyborg Control Console", 400, 500)
|
||||||
|
popup.set_content(dat)
|
||||||
|
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
|
||||||
|
popup.open()
|
||||||
|
return
|
||||||
|
|
||||||
|
/obj/machinery/computer/robotics/Topic(href, href_list)
|
||||||
|
if(..())
|
||||||
|
return
|
||||||
|
|
||||||
|
if (href_list["temp"])
|
||||||
|
src.temp = null
|
||||||
|
|
||||||
|
else if (href_list["killbot"])
|
||||||
|
if(src.allowed(usr))
|
||||||
|
var/mob/living/silicon/robot/R = locate(href_list["killbot"]) in GLOB.silicon_mobs
|
||||||
|
if(can_control(usr, R))
|
||||||
|
var/choice = input("Are you certain you wish to detonate [R.name]?") in list("Confirm", "Abort")
|
||||||
|
if(choice == "Confirm" && can_control(usr, R) && !..())
|
||||||
|
if(R.syndicate && R.emagged)
|
||||||
|
to_chat(R, "Extreme danger. Termination codes detected. Scrambling security codes and automatic AI unlink triggered.")
|
||||||
|
if(R.connected_ai)
|
||||||
|
to_chat(R.connected_ai, "<br><br><span class='alert'>ALERT - Cyborg detonation detected: [R.name]</span><br>")
|
||||||
|
R.ResetSecurityCodes()
|
||||||
|
else
|
||||||
|
var/turf/T = get_turf(R)
|
||||||
|
message_admins("<span class='notice'>[ADMIN_LOOKUPFLW(usr)] detonated [key_name(R, R.client)][ADMIN_JMP(T)]!</span>")
|
||||||
|
log_game("\<span class='notice'>[key_name(usr)] detonated [key_name(R)]!</span>")
|
||||||
|
if(R.connected_ai)
|
||||||
|
to_chat(R.connected_ai, "<br><br><span class='alert'>ALERT - Cyborg detonation detected: [R.name]</span><br>")
|
||||||
|
R.self_destruct()
|
||||||
|
else
|
||||||
|
to_chat(usr, "<span class='danger'>Access Denied.</span>")
|
||||||
|
|
||||||
|
else if (href_list["stopbot"])
|
||||||
|
if(src.allowed(usr))
|
||||||
|
var/mob/living/silicon/robot/R = locate(href_list["stopbot"]) in GLOB.silicon_mobs
|
||||||
|
if(can_control(usr, R))
|
||||||
|
var/choice = input("Are you certain you wish to [R.canmove ? "lock down" : "release"] [R.name]?") in list("Confirm", "Abort")
|
||||||
|
if(choice == "Confirm" && can_control(usr, R) && !..())
|
||||||
|
message_admins("<span class='notice'>[ADMIN_LOOKUPFLW(usr)] [R.canmove ? "locked down" : "released"] [key_name(R, R.client)][ADMIN_LOOKUPFLW(R)]!</span>")
|
||||||
|
log_game("[key_name(usr)] [R.canmove ? "locked down" : "released"] [key_name(R)]!")
|
||||||
|
R.SetLockdown(!R.lockcharge)
|
||||||
|
to_chat(R, "[!R.lockcharge ? "<span class='notice'>Your lockdown has been lifted!" : "<span class='alert'>You have been locked down!"]</span>")
|
||||||
|
if(R.connected_ai)
|
||||||
|
to_chat(R.connected_ai, "[!R.lockcharge ? "<span class='notice'>NOTICE - Cyborg lockdown lifted" : "<span class='alert'>ALERT - Cyborg lockdown detected"]: <a href='?src=[REF(R.connected_ai)];track=[html_encode(R.name)]'>[R.name]</a></span><br>")
|
||||||
|
|
||||||
|
else
|
||||||
|
to_chat(usr, "<span class='danger'>Access Denied.</span>")
|
||||||
|
|
||||||
|
else if (href_list["magbot"])
|
||||||
|
if((issilicon(usr) && is_special_character(usr)) || IsAdminGhost(usr))
|
||||||
|
var/mob/living/silicon/robot/R = locate(href_list["magbot"]) in GLOB.silicon_mobs
|
||||||
|
if(istype(R) && !R.emagged && ((R.syndicate && R == usr) || R.connected_ai == usr || IsAdminGhost(usr)) && !R.scrambledcodes && can_control(usr, R))
|
||||||
|
log_game("[key_name(usr)] emagged [R.name] using robotic console!")
|
||||||
|
message_admins("[key_name_admin(usr)] emagged cyborg [key_name_admin(R)] using robotic console!")
|
||||||
|
R.SetEmagged(1)
|
||||||
|
if(is_special_character(R))
|
||||||
|
R.verbs += /mob/living/silicon/robot/proc/ResetSecurityCodes
|
||||||
|
|
||||||
|
else if(href_list["convert"])
|
||||||
|
if(issilicon(usr) && is_special_character(usr))
|
||||||
|
var/mob/living/silicon/robot/R = locate(href_list["convert"]) in GLOB.silicon_mobs
|
||||||
|
if(istype(R) && !is_servant_of_ratvar(R) && is_servant_of_ratvar(usr) && R.connected_ai == usr)
|
||||||
|
log_game("[key_name(usr)] converted [R.name] using robotic console!")
|
||||||
|
message_admins("[key_name_admin(usr)] converted cyborg [key_name_admin(R)] using robotic console!")
|
||||||
|
add_servant_of_ratvar(R)
|
||||||
|
|
||||||
|
else if (href_list["killdrone"])
|
||||||
|
if(src.allowed(usr))
|
||||||
|
>>>>>>> 626302c... Merge pull request #32161 from ninjanomnom/512-experimental
|
||||||
var/mob/living/simple_animal/drone/D = locate(href_list["killdrone"]) in GLOB.mob_list
|
var/mob/living/simple_animal/drone/D = locate(href_list["killdrone"]) in GLOB.mob_list
|
||||||
if(D.hacked)
|
if(D.hacked)
|
||||||
to_chat(usr, "<span class='danger'>ERROR: [D] is not responding to external commands.</span>")
|
to_chat(usr, "<span class='danger'>ERROR: [D] is not responding to external commands.</span>")
|
||||||
|
|||||||
@@ -63,9 +63,9 @@
|
|||||||
var/dat
|
var/dat
|
||||||
|
|
||||||
if(temp)
|
if(temp)
|
||||||
dat = text("<TT>[]</TT><BR><BR><A href='?src=\ref[];choice=Clear Screen'>Clear Screen</A>", temp, src)
|
dat = text("<TT>[]</TT><BR><BR><A href='?src=[REF(src)];choice=Clear Screen'>Clear Screen</A>", temp)
|
||||||
else
|
else
|
||||||
dat = text("Confirm Identity: <A href='?src=\ref[];choice=Confirm Identity'>[]</A><HR>", src, (scan ? text("[]", scan.name) : "----------"))
|
dat = text("Confirm Identity: <A href='?src=[REF(src)];choice=Confirm Identity'>[]</A><HR>", (scan ? text("[]", scan.name) : "----------"))
|
||||||
if(authenticated)
|
if(authenticated)
|
||||||
switch(screen)
|
switch(screen)
|
||||||
if(1)
|
if(1)
|
||||||
@@ -111,7 +111,7 @@
|
|||||||
"}
|
"}
|
||||||
dat += {"
|
dat += {"
|
||||||
<p style='text-align:center;'>"}
|
<p style='text-align:center;'>"}
|
||||||
dat += text("<A href='?src=\ref[];choice=New Record (General)'>New Record</A><BR>", src)
|
dat += "<A href='?src=[REF(src)];choice=New Record (General)'>New Record</A><BR>"
|
||||||
//search bar
|
//search bar
|
||||||
dat += {"
|
dat += {"
|
||||||
<table width='560' align='center' cellspacing='0' cellpadding='5' id='maintable'>
|
<table width='560' align='center' cellspacing='0' cellpadding='5' id='maintable'>
|
||||||
@@ -133,10 +133,10 @@
|
|||||||
<span id='maintable_data_archive'>
|
<span id='maintable_data_archive'>
|
||||||
<table id='maintable_data' style="text-align:center;" border="1" cellspacing="0" width="100%">
|
<table id='maintable_data' style="text-align:center;" border="1" cellspacing="0" width="100%">
|
||||||
<tr>
|
<tr>
|
||||||
<th><A href='?src=\ref[src];choice=Sorting;sort=name'>Name</A></th>
|
<th><A href='?src=[REF(src)];choice=Sorting;sort=name'>Name</A></th>
|
||||||
<th><A href='?src=\ref[src];choice=Sorting;sort=id'>ID</A></th>
|
<th><A href='?src=[REF(src)];choice=Sorting;sort=id'>ID</A></th>
|
||||||
<th><A href='?src=\ref[src];choice=Sorting;sort=rank'>Rank</A></th>
|
<th><A href='?src=[REF(src)];choice=Sorting;sort=rank'>Rank</A></th>
|
||||||
<th><A href='?src=\ref[src];choice=Sorting;sort=fingerprint'>Fingerprints</A></th>
|
<th><A href='?src=[REF(src)];choice=Sorting;sort=fingerprint'>Fingerprints</A></th>
|
||||||
<th>Criminal Status</th>
|
<th>Criminal Status</th>
|
||||||
</tr>"}
|
</tr>"}
|
||||||
if(!isnull(GLOB.data_core.general))
|
if(!isnull(GLOB.data_core.general))
|
||||||
@@ -161,7 +161,7 @@
|
|||||||
background = "''" //"'background-color:#FFFFFF;'"
|
background = "''" //"'background-color:#FFFFFF;'"
|
||||||
crimstat = "No Record."
|
crimstat = "No Record."
|
||||||
dat += "<tr style=[background]>"
|
dat += "<tr style=[background]>"
|
||||||
dat += text("<td><input type='hidden' value='[] [] [] []'></input><A href='?src=\ref[];choice=Browse Record;d_rec=\ref[]'>[]</a></td>", R.fields["name"], R.fields["id"], R.fields["rank"], R.fields["fingerprint"], src, R, R.fields["name"])
|
dat += text("<td><input type='hidden' value='[] [] [] []'></input><A href='?src=[REF(src)];choice=Browse Record;d_rec=[REF(R)]'>[]</a></td>", R.fields["name"], R.fields["id"], R.fields["rank"], R.fields["fingerprint"], R.fields["name"])
|
||||||
dat += text("<td>[]</td>", R.fields["id"])
|
dat += text("<td>[]</td>", R.fields["id"])
|
||||||
dat += text("<td>[]</td>", R.fields["rank"])
|
dat += text("<td>[]</td>", R.fields["rank"])
|
||||||
dat += text("<td>[]</td>", R.fields["fingerprint"])
|
dat += text("<td>[]</td>", R.fields["fingerprint"])
|
||||||
@@ -173,11 +173,11 @@
|
|||||||
var complete_list = maintable.innerHTML;
|
var complete_list = maintable.innerHTML;
|
||||||
</script>
|
</script>
|
||||||
<hr width='75%' />"}
|
<hr width='75%' />"}
|
||||||
dat += text("<A href='?src=\ref[];choice=Record Maintenance'>Record Maintenance</A><br><br>", src)
|
dat += "<A href='?src=[REF(src)];choice=Record Maintenance'>Record Maintenance</A><br><br>"
|
||||||
dat += text("<A href='?src=\ref[];choice=Log Out'>{Log Out}</A>",src)
|
dat += "<A href='?src=[REF(src)];choice=Log Out'>{Log Out}</A>"
|
||||||
if(2)
|
if(2)
|
||||||
dat += "<B>Records Maintenance</B><HR>"
|
dat += "<B>Records Maintenance</B><HR>"
|
||||||
dat += "<BR><A href='?src=\ref[src];choice=Delete All Records'>Delete All Records</A><BR><BR><A href='?src=\ref[src];choice=Return'>Back</A>"
|
dat += "<BR><A href='?src=[REF(src)];choice=Delete All Records'>Delete All Records</A><BR><BR><A href='?src=[REF(src)];choice=Return'>Back</A>"
|
||||||
if(3)
|
if(3)
|
||||||
dat += "<font size='4'><b>Security Record</b></font><br>"
|
dat += "<font size='4'><b>Security Record</b></font><br>"
|
||||||
if(istype(active1, /datum/data/record) && GLOB.data_core.general.Find(active1))
|
if(istype(active1, /datum/data/record) && GLOB.data_core.general.Find(active1))
|
||||||
@@ -188,27 +188,27 @@
|
|||||||
var/obj/item/photo/P2 = active1.fields["photo_side"]
|
var/obj/item/photo/P2 = active1.fields["photo_side"]
|
||||||
user << browse_rsc(P2.img, "photo_side")
|
user << browse_rsc(P2.img, "photo_side")
|
||||||
dat += {"<table><tr><td><table>
|
dat += {"<table><tr><td><table>
|
||||||
<tr><td>Name:</td><td><A href='?src=\ref[src];choice=Edit Field;field=name'> [active1.fields["name"]] </A></td></tr>
|
<tr><td>Name:</td><td><A href='?src=[REF(src)];choice=Edit Field;field=name'> [active1.fields["name"]] </A></td></tr>
|
||||||
<tr><td>ID:</td><td><A href='?src=\ref[src];choice=Edit Field;field=id'> [active1.fields["id"]] </A></td></tr>
|
<tr><td>ID:</td><td><A href='?src=[REF(src)];choice=Edit Field;field=id'> [active1.fields["id"]] </A></td></tr>
|
||||||
<tr><td>Sex:</td><td><A href='?src=\ref[src];choice=Edit Field;field=sex'> [active1.fields["sex"]] </A></td></tr>
|
<tr><td>Sex:</td><td><A href='?src=[REF(src)];choice=Edit Field;field=sex'> [active1.fields["sex"]] </A></td></tr>
|
||||||
<tr><td>Age:</td><td><A href='?src=\ref[src];choice=Edit Field;field=age'> [active1.fields["age"]] </A></td></tr>"}
|
<tr><td>Age:</td><td><A href='?src=[REF(src)];choice=Edit Field;field=age'> [active1.fields["age"]] </A></td></tr>"}
|
||||||
dat += "<tr><td>Species:</td><td><A href ='?src=\ref[src];choice=Edit Field;field=species'> [active1.fields["species"]] </A></td></tr>"
|
dat += "<tr><td>Species:</td><td><A href ='?src=[REF(src)];choice=Edit Field;field=species'> [active1.fields["species"]] </A></td></tr>"
|
||||||
dat += {"<tr><td>Rank:</td><td><A href='?src=\ref[src];choice=Edit Field;field=rank'> [active1.fields["rank"]] </A></td></tr>
|
dat += {"<tr><td>Rank:</td><td><A href='?src=[REF(src)];choice=Edit Field;field=rank'> [active1.fields["rank"]] </A></td></tr>
|
||||||
<tr><td>Fingerprint:</td><td><A href='?src=\ref[src];choice=Edit Field;field=fingerprint'> [active1.fields["fingerprint"]] </A></td></tr>
|
<tr><td>Fingerprint:</td><td><A href='?src=[REF(src)];choice=Edit Field;field=fingerprint'> [active1.fields["fingerprint"]] </A></td></tr>
|
||||||
<tr><td>Physical Status:</td><td> [active1.fields["p_stat"]] </td></tr>
|
<tr><td>Physical Status:</td><td> [active1.fields["p_stat"]] </td></tr>
|
||||||
<tr><td>Mental Status:</td><td> [active1.fields["m_stat"]] </td></tr>
|
<tr><td>Mental Status:</td><td> [active1.fields["m_stat"]] </td></tr>
|
||||||
</table></td>
|
</table></td>
|
||||||
<td><table><td align = center><a href='?src=\ref[src];choice=Edit Field;field=show_photo_front'><img src=photo_front height=80 width=80 border=4></a><br>
|
<td><table><td align = center><a href='?src=[REF(src)];choice=Edit Field;field=show_photo_front'><img src=photo_front height=80 width=80 border=4></a><br>
|
||||||
<a href='?src=\ref[src];choice=Edit Field;field=upd_photo_front'>Update front photo</a></td>
|
<a href='?src=[REF(src)];choice=Edit Field;field=upd_photo_front'>Update front photo</a></td>
|
||||||
<td align = center><a href='?src=\ref[src];choice=Edit Field;field=show_photo_side'><img src=photo_side height=80 width=80 border=4></a><br>
|
<td align = center><a href='?src=[REF(src)];choice=Edit Field;field=show_photo_side'><img src=photo_side height=80 width=80 border=4></a><br>
|
||||||
<a href='?src=\ref[src];choice=Edit Field;field=upd_photo_side'>Update side photo</a></td></table>
|
<a href='?src=[REF(src)];choice=Edit Field;field=upd_photo_side'>Update side photo</a></td></table>
|
||||||
</td></tr></table></td></tr></table>"}
|
</td></tr></table></td></tr></table>"}
|
||||||
else
|
else
|
||||||
dat += "<br>General Record Lost!<br>"
|
dat += "<br>General Record Lost!<br>"
|
||||||
if((istype(active2, /datum/data/record) && GLOB.data_core.security.Find(active2)))
|
if((istype(active2, /datum/data/record) && GLOB.data_core.security.Find(active2)))
|
||||||
dat += "<font size='4'><b>Security Data</b></font>"
|
dat += "<font size='4'><b>Security Data</b></font>"
|
||||||
dat += "<br>Criminal Status: <A href='?src=\ref[src];choice=Edit Field;field=criminal'>[active2.fields["criminal"]]</A>"
|
dat += "<br>Criminal Status: <A href='?src=[REF(src)];choice=Edit Field;field=criminal'>[active2.fields["criminal"]]</A>"
|
||||||
dat += "<br><br>Minor Crimes: <A href='?src=\ref[src];choice=Edit Field;field=mi_crim_add'>Add New</A>"
|
dat += "<br><br>Minor Crimes: <A href='?src=[REF(src)];choice=Edit Field;field=mi_crim_add'>Add New</A>"
|
||||||
|
|
||||||
|
|
||||||
dat +={"<table style="text-align:center;" border="1" cellspacing="0" width="100%">
|
dat +={"<table style="text-align:center;" border="1" cellspacing="0" width="100%">
|
||||||
@@ -224,12 +224,12 @@
|
|||||||
dat += "<td>[c.crimeDetails]</td>"
|
dat += "<td>[c.crimeDetails]</td>"
|
||||||
dat += "<td>[c.author]</td>"
|
dat += "<td>[c.author]</td>"
|
||||||
dat += "<td>[c.time]</td>"
|
dat += "<td>[c.time]</td>"
|
||||||
dat += "<td><A href='?src=\ref[src];choice=Edit Field;field=mi_crim_delete;cdataid=[c.dataId]'>\[X\]</A></td>"
|
dat += "<td><A href='?src=[REF(src)];choice=Edit Field;field=mi_crim_delete;cdataid=[c.dataId]'>\[X\]</A></td>"
|
||||||
dat += "</tr>"
|
dat += "</tr>"
|
||||||
dat += "</table>"
|
dat += "</table>"
|
||||||
|
|
||||||
|
|
||||||
dat += "<br>Major Crimes: <A href='?src=\ref[src];choice=Edit Field;field=ma_crim_add'>Add New</A>"
|
dat += "<br>Major Crimes: <A href='?src=[REF(src)];choice=Edit Field;field=ma_crim_add'>Add New</A>"
|
||||||
|
|
||||||
dat +={"<table style="text-align:center;" border="1" cellspacing="0" width="100%">
|
dat +={"<table style="text-align:center;" border="1" cellspacing="0" width="100%">
|
||||||
<tr>
|
<tr>
|
||||||
@@ -244,27 +244,27 @@
|
|||||||
dat += "<td>[c.crimeDetails]</td>"
|
dat += "<td>[c.crimeDetails]</td>"
|
||||||
dat += "<td>[c.author]</td>"
|
dat += "<td>[c.author]</td>"
|
||||||
dat += "<td>[c.time]</td>"
|
dat += "<td>[c.time]</td>"
|
||||||
dat += "<td><A href='?src=\ref[src];choice=Edit Field;field=ma_crim_delete;cdataid=[c.dataId]'>\[X\]</A></td>"
|
dat += "<td><A href='?src=[REF(src)];choice=Edit Field;field=ma_crim_delete;cdataid=[c.dataId]'>\[X\]</A></td>"
|
||||||
dat += "</tr>"
|
dat += "</tr>"
|
||||||
dat += "</table>"
|
dat += "</table>"
|
||||||
|
|
||||||
dat += "<br>\nImportant Notes:<br>\n\t<A href='?src=\ref[src];choice=Edit Field;field=notes'> [active2.fields["notes"]] </A>"
|
dat += "<br>\nImportant Notes:<br>\n\t<A href='?src=[REF(src)];choice=Edit Field;field=notes'> [active2.fields["notes"]] </A>"
|
||||||
dat += "<br><br><font size='4'><b>Comments/Log</b></font><br>"
|
dat += "<br><br><font size='4'><b>Comments/Log</b></font><br>"
|
||||||
var/counter = 1
|
var/counter = 1
|
||||||
while(active2.fields[text("com_[]", counter)])
|
while(active2.fields[text("com_[]", counter)])
|
||||||
dat += (active2.fields[text("com_[]", counter)] + "<BR>")
|
dat += (active2.fields[text("com_[]", counter)] + "<BR>")
|
||||||
if(active2.fields[text("com_[]", counter)] != "<B>Deleted</B>")
|
if(active2.fields[text("com_[]", counter)] != "<B>Deleted</B>")
|
||||||
dat += text("<A href='?src=\ref[];choice=Delete Entry;del_c=[]'>Delete Entry</A><BR><BR>", src, counter)
|
dat += text("<A href='?src=[REF(src)];choice=Delete Entry;del_c=[]'>Delete Entry</A><BR><BR>", counter)
|
||||||
counter++
|
counter++
|
||||||
dat += text("<A href='?src=\ref[];choice=Add Entry'>Add Entry</A><br><br>", src)
|
dat += "<A href='?src=[REF(src)];choice=Add Entry'>Add Entry</A><br><br>"
|
||||||
dat += text("<A href='?src=\ref[];choice=Delete Record (Security)'>Delete Record (Security Only)</A><br>", src)
|
dat += "<A href='?src=[REF(src)];choice=Delete Record (Security)'>Delete Record (Security Only)</A><br>"
|
||||||
else
|
else
|
||||||
dat += "Security Record Lost!<br>"
|
dat += "Security Record Lost!<br>"
|
||||||
dat += text("<A href='?src=\ref[];choice=New Record (Security)'>New Security Record</A><br><br>", src)
|
dat += "<A href='?src=[REF(src)];choice=New Record (Security)'>New Security Record</A><br><br>"
|
||||||
dat += text("<A href='?src=\ref[];choice=Delete Record (ALL)'>Delete Record (ALL)</A><br><A href='?src=\ref[];choice=Print Record'>Print Record</A><BR><A href='?src=\ref[];choice=Print Poster'>Print Wanted Poster</A><BR><A href='?src=\ref[];choice=Return'>Back</A><BR>", src, src, src, src)
|
dat += "<A href='?src=[REF(src)];choice=Delete Record (ALL)'>Delete Record (ALL)</A><br><A href='?src=[REF(src)];choice=Print Record'>Print Record</A><BR><A href='?src=[REF(src)];choice=Print Poster'>Print Wanted Poster</A><BR><A href='?src=[REF(src)];choice=Return'>Back</A><BR>"
|
||||||
else
|
else
|
||||||
else
|
else
|
||||||
dat += text("<A href='?src=\ref[];choice=Log In'>{Log In}</A>", src)
|
dat += "<A href='?src=[REF(src)];choice=Log In'>{Log In}</A>"
|
||||||
var/datum/browser/popup = new(user, "secure_rec", "Security Records Console", 600, 400)
|
var/datum/browser/popup = new(user, "secure_rec", "Security Records Console", 600, 400)
|
||||||
popup.set_content(dat)
|
popup.set_content(dat)
|
||||||
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
|
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
|
||||||
@@ -451,8 +451,8 @@ What a mess.*/
|
|||||||
if("Delete All Records")
|
if("Delete All Records")
|
||||||
temp = ""
|
temp = ""
|
||||||
temp += "Are you sure you wish to delete all Security records?<br>"
|
temp += "Are you sure you wish to delete all Security records?<br>"
|
||||||
temp += "<a href='?src=\ref[src];choice=Purge All Records'>Yes</a><br>"
|
temp += "<a href='?src=[REF(src)];choice=Purge All Records'>Yes</a><br>"
|
||||||
temp += "<a href='?src=\ref[src];choice=Clear Screen'>No</a>"
|
temp += "<a href='?src=[REF(src)];choice=Clear Screen'>No</a>"
|
||||||
|
|
||||||
if("Purge All Records")
|
if("Purge All Records")
|
||||||
investigate_log("[usr.name] ([usr.key]) has purged all the security records.", INVESTIGATE_RECORDS)
|
investigate_log("[usr.name] ([usr.key]) has purged all the security records.", INVESTIGATE_RECORDS)
|
||||||
@@ -476,14 +476,14 @@ What a mess.*/
|
|||||||
if("Delete Record (ALL)")
|
if("Delete Record (ALL)")
|
||||||
if(active1)
|
if(active1)
|
||||||
temp = "<h5>Are you sure you wish to delete the record (ALL)?</h5>"
|
temp = "<h5>Are you sure you wish to delete the record (ALL)?</h5>"
|
||||||
temp += "<a href='?src=\ref[src];choice=Delete Record (ALL) Execute'>Yes</a><br>"
|
temp += "<a href='?src=[REF(src)];choice=Delete Record (ALL) Execute'>Yes</a><br>"
|
||||||
temp += "<a href='?src=\ref[src];choice=Clear Screen'>No</a>"
|
temp += "<a href='?src=[REF(src)];choice=Clear Screen'>No</a>"
|
||||||
|
|
||||||
if("Delete Record (Security)")
|
if("Delete Record (Security)")
|
||||||
if(active2)
|
if(active2)
|
||||||
temp = "<h5>Are you sure you wish to delete the record (Security Portion Only)?</h5>"
|
temp = "<h5>Are you sure you wish to delete the record (Security Portion Only)?</h5>"
|
||||||
temp += "<a href='?src=\ref[src];choice=Delete Record (Security) Execute'>Yes</a><br>"
|
temp += "<a href='?src=[REF(src)];choice=Delete Record (Security) Execute'>Yes</a><br>"
|
||||||
temp += "<a href='?src=\ref[src];choice=Clear Screen'>No</a>"
|
temp += "<a href='?src=[REF(src)];choice=Clear Screen'>No</a>"
|
||||||
|
|
||||||
if("Delete Entry")
|
if("Delete Entry")
|
||||||
if((istype(active2, /datum/data/record) && active2.fields[text("com_[]", href_list["del_c"])]))
|
if((istype(active2, /datum/data/record) && active2.fields[text("com_[]", href_list["del_c"])]))
|
||||||
@@ -657,11 +657,11 @@ What a mess.*/
|
|||||||
if(istype(active2, /datum/data/record))
|
if(istype(active2, /datum/data/record))
|
||||||
temp = "<h5>Criminal Status:</h5>"
|
temp = "<h5>Criminal Status:</h5>"
|
||||||
temp += "<ul>"
|
temp += "<ul>"
|
||||||
temp += "<li><a href='?src=\ref[src];choice=Change Criminal Status;criminal2=none'>None</a></li>"
|
temp += "<li><a href='?src=[REF(src)];choice=Change Criminal Status;criminal2=none'>None</a></li>"
|
||||||
temp += "<li><a href='?src=\ref[src];choice=Change Criminal Status;criminal2=arrest'>*Arrest*</a></li>"
|
temp += "<li><a href='?src=[REF(src)];choice=Change Criminal Status;criminal2=arrest'>*Arrest*</a></li>"
|
||||||
temp += "<li><a href='?src=\ref[src];choice=Change Criminal Status;criminal2=incarcerated'>Incarcerated</a></li>"
|
temp += "<li><a href='?src=[REF(src)];choice=Change Criminal Status;criminal2=incarcerated'>Incarcerated</a></li>"
|
||||||
temp += "<li><a href='?src=\ref[src];choice=Change Criminal Status;criminal2=parolled'>Parolled</a></li>"
|
temp += "<li><a href='?src=[REF(src)];choice=Change Criminal Status;criminal2=parolled'>Parolled</a></li>"
|
||||||
temp += "<li><a href='?src=\ref[src];choice=Change Criminal Status;criminal2=released'>Discharged</a></li>"
|
temp += "<li><a href='?src=[REF(src)];choice=Change Criminal Status;criminal2=released'>Discharged</a></li>"
|
||||||
temp += "</ul>"
|
temp += "</ul>"
|
||||||
if("rank")
|
if("rank")
|
||||||
var/list/L = list( "Head of Personnel", "Captain", "AI", "Central Command" )
|
var/list/L = list( "Head of Personnel", "Captain", "AI", "Central Command" )
|
||||||
@@ -670,7 +670,7 @@ What a mess.*/
|
|||||||
temp = "<h5>Rank:</h5>"
|
temp = "<h5>Rank:</h5>"
|
||||||
temp += "<ul>"
|
temp += "<ul>"
|
||||||
for(var/rank in get_all_jobs())
|
for(var/rank in get_all_jobs())
|
||||||
temp += "<li><a href='?src=\ref[src];choice=Change Rank;rank=[rank]'>[rank]</a></li>"
|
temp += "<li><a href='?src=[REF(src)];choice=Change Rank;rank=[rank]'>[rank]</a></li>"
|
||||||
temp += "</ul>"
|
temp += "</ul>"
|
||||||
else
|
else
|
||||||
alert(usr, "You do not have the required rank to do this!")
|
alert(usr, "You do not have the required rank to do this!")
|
||||||
|
|||||||
@@ -97,8 +97,8 @@ GLOBAL_LIST_INIT(possible_uplinker_IDs, list("Alfa","Bravo","Charlie","Delta","E
|
|||||||
if(uplinkholder)
|
if(uplinkholder)
|
||||||
dat += "[uplinkholder.hidden_uplink.telecrystals] telecrystals remain in this uplink.<BR>"
|
dat += "[uplinkholder.hidden_uplink.telecrystals] telecrystals remain in this uplink.<BR>"
|
||||||
if(linkedboss)
|
if(linkedboss)
|
||||||
dat += "Donate TC: <a href='byond://?src=\ref[src];donate=1'>1</a> | <a href='byond://?src=\ref[src];donate=5'>5</a> | <a href='byond://?src=\ref[src];donate=-1'>All</a>"
|
dat += "Donate TC: <a href='byond://?src=[REF(src)];donate=1'>1</a> | <a href='byond://?src=[REF(src)];donate=5'>5</a> | <a href='byond://?src=[REF(src)];donate=-1'>All</a>"
|
||||||
dat += "<br><a href='byond://?src=\ref[src];eject=1'>Eject Uplink</a>"
|
dat += "<br><a href='byond://?src=[REF(src)];eject=1'>Eject Uplink</a>"
|
||||||
|
|
||||||
|
|
||||||
var/datum/browser/popup = new(user, "computer", "Telecrystal Upload/Receive Station", 700, 500)
|
var/datum/browser/popup = new(user, "computer", "Telecrystal Upload/Receive Station", 700, 500)
|
||||||
@@ -167,7 +167,7 @@ GLOBAL_LIST_INIT(possible_uplinker_IDs, list("Alfa","Bravo","Charlie","Delta","E
|
|||||||
|
|
||||||
|
|
||||||
var/dat = ""
|
var/dat = ""
|
||||||
dat += "<a href='byond://?src=\ref[src];scan=1'>Scan for TC stations.</a><BR>"
|
dat += "<a href='byond://?src=[REF(src)];scan=1'>Scan for TC stations.</a><BR>"
|
||||||
dat += "[storedcrystals] telecrystals are available for distribution. <BR>"
|
dat += "[storedcrystals] telecrystals are available for distribution. <BR>"
|
||||||
dat += "<BR><BR>"
|
dat += "<BR><BR>"
|
||||||
|
|
||||||
@@ -177,11 +177,11 @@ GLOBAL_LIST_INIT(possible_uplinker_IDs, list("Alfa","Bravo","Charlie","Delta","E
|
|||||||
if(A.uplinkholder)
|
if(A.uplinkholder)
|
||||||
dat += "[A.uplinkholder.hidden_uplink.telecrystals] telecrystals."
|
dat += "[A.uplinkholder.hidden_uplink.telecrystals] telecrystals."
|
||||||
if(storedcrystals)
|
if(storedcrystals)
|
||||||
dat+= "<BR>Add TC: <a href ='?src=\ref[src];target=\ref[A];give=1'>1</a> | <a href ='?src=\ref[src];target=\ref[A];give=5'>5</a> | <a href ='?src=\ref[src];target=\ref[A];give=10'>10</a> | <a href ='?src=\ref[src];target=\ref[A];give=-1'>All</a>"
|
dat+= "<BR>Add TC: <a href ='?src=[REF(src)];target=[REF(A)];give=1'>1</a> | <a href ='?src=[REF(src)];target=[REF(A)];give=5'>5</a> | <a href ='?src=[REF(src)];target=[REF(A)];give=10'>10</a> | <a href ='?src=[REF(src)];target=[REF(A)];give=-1'>All</a>"
|
||||||
dat += "<BR>"
|
dat += "<BR>"
|
||||||
|
|
||||||
if(TCstations.len && storedcrystals)
|
if(TCstations.len && storedcrystals)
|
||||||
dat += "<BR><BR><a href='byond://?src=\ref[src];distrib=1'>Evenly distribute remaining TC.</a><BR><BR>"
|
dat += "<BR><BR><a href='byond://?src=[REF(src)];distrib=1'>Evenly distribute remaining TC.</a><BR><BR>"
|
||||||
|
|
||||||
|
|
||||||
for(var/entry in transferlog)
|
for(var/entry in transferlog)
|
||||||
|
|||||||
@@ -70,16 +70,16 @@
|
|||||||
data += "Calibration: <font color='red'>Sub-Optimal</font>"
|
data += "Calibration: <font color='red'>Sub-Optimal</font>"
|
||||||
data += "</div><BR>"
|
data += "</div><BR>"
|
||||||
|
|
||||||
data += "<A href='?src=\ref[src];regimeset=1'>Change regime</A><BR>"
|
data += "<A href='?src=[REF(src)];regimeset=1'>Change regime</A><BR>"
|
||||||
data += "<A href='?src=\ref[src];settarget=1'>Set target</A><BR>"
|
data += "<A href='?src=[REF(src)];settarget=1'>Set target</A><BR>"
|
||||||
if(locked)
|
if(locked)
|
||||||
data += "<BR><A href='?src=\ref[src];locked=1'>Get target from memory</A><BR>"
|
data += "<BR><A href='?src=[REF(src)];locked=1'>Get target from memory</A><BR>"
|
||||||
data += "<A href='?src=\ref[src];eject=1'>Eject GPS device</A><BR>"
|
data += "<A href='?src=[REF(src)];eject=1'>Eject GPS device</A><BR>"
|
||||||
else
|
else
|
||||||
data += "<BR><span class='linkOff'>Get target from memory</span><BR>"
|
data += "<BR><span class='linkOff'>Get target from memory</span><BR>"
|
||||||
data += "<span class='linkOff'>Eject GPS device</span><BR>"
|
data += "<span class='linkOff'>Eject GPS device</span><BR>"
|
||||||
|
|
||||||
data += "<BR><A href='?src=\ref[src];calibrate=1'>Calibrate Hub</A>"
|
data += "<BR><A href='?src=[REF(src)];calibrate=1'>Calibrate Hub</A>"
|
||||||
|
|
||||||
var/datum/browser/popup = new(user, "teleporter", name, 400, 400)
|
var/datum/browser/popup = new(user, "teleporter", name, 400, 400)
|
||||||
popup.set_content(data)
|
popup.set_content(data)
|
||||||
|
|||||||
@@ -92,21 +92,21 @@
|
|||||||
user.set_machine(src)
|
user.set_machine(src)
|
||||||
var/list/dat = list()
|
var/list/dat = list()
|
||||||
dat +="<div class='statusDisplay' style='text-align:center'>"
|
dat +="<div class='statusDisplay' style='text-align:center'>"
|
||||||
dat += "<b><A href='?src=\ref[src];action=toggle'>[!active ? "BREAK IT DOWN" : "SHUT IT DOWN"]<b></A><br>"
|
dat += "<b><A href='?src=[REF(src)];action=toggle'>[!active ? "BREAK IT DOWN" : "SHUT IT DOWN"]<b></A><br>"
|
||||||
dat += "</div><br>"
|
dat += "</div><br>"
|
||||||
dat += "<A href='?src=\ref[src];action=select'> Select Track</A><br>"
|
dat += "<A href='?src=[REF(src)];action=select'> Select Track</A><br>"
|
||||||
dat += "Track Selected: [selection.song_name]<br>"
|
dat += "Track Selected: [selection.song_name]<br>"
|
||||||
dat += "Track Length: [DisplayTimeText(selection.song_length)]<br><br>"
|
dat += "Track Length: [DisplayTimeText(selection.song_length)]<br><br>"
|
||||||
dat += "<br>DJ's Soundboard:<b><br>"
|
dat += "<br>DJ's Soundboard:<b><br>"
|
||||||
dat +="<div class='statusDisplay'><div style='text-align:center'>"
|
dat +="<div class='statusDisplay'><div style='text-align:center'>"
|
||||||
dat += "<A href='?src=\ref[src];action=horn'>Air Horn</A> "
|
dat += "<A href='?src=[REF(src)];action=horn'>Air Horn</A> "
|
||||||
dat += "<A href='?src=\ref[src];action=alert'>Station Alert</A> "
|
dat += "<A href='?src=[REF(src)];action=alert'>Station Alert</A> "
|
||||||
dat += "<A href='?src=\ref[src];action=siren'>Warning Siren</A> "
|
dat += "<A href='?src=[REF(src)];action=siren'>Warning Siren</A> "
|
||||||
dat += "<A href='?src=\ref[src];action=honk'>Honk</A><br>"
|
dat += "<A href='?src=[REF(src)];action=honk'>Honk</A><br>"
|
||||||
dat += "<A href='?src=\ref[src];action=pump'>Shotgun Pump</A>"
|
dat += "<A href='?src=[REF(src)];action=pump'>Shotgun Pump</A>"
|
||||||
dat += "<A href='?src=\ref[src];action=pop'>Gunshot</A>"
|
dat += "<A href='?src=[REF(src)];action=pop'>Gunshot</A>"
|
||||||
dat += "<A href='?src=\ref[src];action=saber'>Esword</A>"
|
dat += "<A href='?src=[REF(src)];action=saber'>Esword</A>"
|
||||||
dat += "<A href='?src=\ref[src];action=harm'>Harm Alarm</A>"
|
dat += "<A href='?src=[REF(src)];action=harm'>Harm Alarm</A>"
|
||||||
var/datum/browser/popup = new(user, "vending", "Radiance Dance Machine - Mark IV", 400, 350)
|
var/datum/browser/popup = new(user, "vending", "Radiance Dance Machine - Mark IV", 400, 350)
|
||||||
popup.set_content(dat.Join())
|
popup.set_content(dat.Join())
|
||||||
popup.open()
|
popup.open()
|
||||||
|
|||||||
@@ -632,23 +632,23 @@
|
|||||||
if(wires.is_cut(WIRE_IDSCAN))
|
if(wires.is_cut(WIRE_IDSCAN))
|
||||||
t1 += text("IdScan wire is cut.<br>\n")
|
t1 += text("IdScan wire is cut.<br>\n")
|
||||||
else if(src.aiDisabledIdScanner)
|
else if(src.aiDisabledIdScanner)
|
||||||
t1 += text("IdScan disabled. <A href='?src=\ref[];aiEnable=1'>Enable?</a><br>\n", src)
|
t1 += "IdScan disabled. <A href='?src=[REF(src)];aiEnable=1'>Enable?</a><br>\n"
|
||||||
else
|
else
|
||||||
t1 += text("IdScan enabled. <A href='?src=\ref[];aiDisable=1'>Disable?</a><br>\n", src)
|
t1 += "IdScan enabled. <A href='?src=[REF(src)];aiDisable=1'>Disable?</a><br>\n"
|
||||||
|
|
||||||
if(src.emergency)
|
if(src.emergency)
|
||||||
t1 += text("Emergency Access Override is enabled. <A href='?src=\ref[];aiDisable=11'>Disable?</a><br>\n", src)
|
t1 += "Emergency Access Override is enabled. <A href='?src=[REF(src)];aiDisable=11'>Disable?</a><br>\n"
|
||||||
else
|
else
|
||||||
t1 += text("Emergency Access Override is disabled. <A href='?src=\ref[];aiEnable=11'>Enable?</a><br>\n", src)
|
t1 += "Emergency Access Override is disabled. <A href='?src=[REF(src)];aiEnable=11'>Enable?</a><br>\n"
|
||||||
|
|
||||||
if(wires.is_cut(WIRE_POWER1))
|
if(wires.is_cut(WIRE_POWER1))
|
||||||
t1 += text("Main Power Input wire is cut.<br>\n")
|
t1 += text("Main Power Input wire is cut.<br>\n")
|
||||||
if(wires.is_cut(WIRE_POWER2))
|
if(wires.is_cut(WIRE_POWER2))
|
||||||
t1 += text("Main Power Output wire is cut.<br>\n")
|
t1 += text("Main Power Output wire is cut.<br>\n")
|
||||||
if(!secondsMainPowerLost)
|
if(!secondsMainPowerLost)
|
||||||
t1 += text("<A href='?src=\ref[];aiDisable=2'>Temporarily disrupt main power?</a>.<br>\n", src)
|
t1 += "<A href='?src=[REF(src)];aiDisable=2'>Temporarily disrupt main power?</a>.<br>\n"
|
||||||
if(!secondsBackupPowerLost)
|
if(!secondsBackupPowerLost)
|
||||||
t1 += text("<A href='?src=\ref[];aiDisable=3'>Temporarily disrupt backup power?</a>.<br>\n", src)
|
t1 += "<A href='?src=[REF(src)];aiDisable=3'>Temporarily disrupt backup power?</a>.<br>\n"
|
||||||
|
|
||||||
if(wires.is_cut(WIRE_BACKUP1))
|
if(wires.is_cut(WIRE_BACKUP1))
|
||||||
t1 += text("Backup Power Input wire is cut.<br>\n")
|
t1 += text("Backup Power Input wire is cut.<br>\n")
|
||||||
@@ -658,53 +658,53 @@
|
|||||||
if(wires.is_cut(WIRE_BOLTS))
|
if(wires.is_cut(WIRE_BOLTS))
|
||||||
t1 += text("Door bolt drop wire is cut.<br>\n")
|
t1 += text("Door bolt drop wire is cut.<br>\n")
|
||||||
else if(!src.locked)
|
else if(!src.locked)
|
||||||
t1 += text("Door bolts are up. <A href='?src=\ref[];aiDisable=4'>Drop them?</a><br>\n", src)
|
t1 += "Door bolts are up. <A href='?src=[REF(src)];aiDisable=4'>Drop them?</a><br>\n"
|
||||||
else
|
else
|
||||||
t1 += text("Door bolts are down.")
|
t1 += text("Door bolts are down.")
|
||||||
if(src.hasPower())
|
if(src.hasPower())
|
||||||
t1 += text(" <A href='?src=\ref[];aiEnable=4'>Raise?</a><br>\n", src)
|
t1 += " <A href='?src=[REF(src)];aiEnable=4'>Raise?</a><br>\n"
|
||||||
else
|
else
|
||||||
t1 += text(" Cannot raise door bolts due to power failure.<br>\n")
|
t1 += text(" Cannot raise door bolts due to power failure.<br>\n")
|
||||||
|
|
||||||
if(wires.is_cut(WIRE_LIGHT))
|
if(wires.is_cut(WIRE_LIGHT))
|
||||||
t1 += text("Door bolt lights wire is cut.<br>\n")
|
t1 += text("Door bolt lights wire is cut.<br>\n")
|
||||||
else if(!src.lights)
|
else if(!src.lights)
|
||||||
t1 += text("Door bolt lights are off. <A href='?src=\ref[];aiEnable=10'>Enable?</a><br>\n", src)
|
t1 += "Door bolt lights are off. <A href='?src=[REF(src)];aiEnable=10'>Enable?</a><br>\n"
|
||||||
else
|
else
|
||||||
t1 += text("Door bolt lights are on. <A href='?src=\ref[];aiDisable=10'>Disable?</a><br>\n", src)
|
t1 += "Door bolt lights are on. <A href='?src=[REF(src)];aiDisable=10'>Disable?</a><br>\n"
|
||||||
|
|
||||||
if(wires.is_cut(WIRE_SHOCK))
|
if(wires.is_cut(WIRE_SHOCK))
|
||||||
t1 += text("Electrification wire is cut.<br>\n")
|
t1 += text("Electrification wire is cut.<br>\n")
|
||||||
if(secondsElectrified==ELECTRIFIED_PERMANENT)
|
if(secondsElectrified==ELECTRIFIED_PERMANENT)
|
||||||
t1 += text("Door is electrified indefinitely. <A href='?src=\ref[];aiDisable=5'>Un-electrify it?</a><br>\n", src)
|
t1 += "Door is electrified indefinitely. <A href='?src=[REF(src)];aiDisable=5'>Un-electrify it?</a><br>\n"
|
||||||
else if(secondsElectrified>NOT_ELECTRIFIED)
|
else if(secondsElectrified>NOT_ELECTRIFIED)
|
||||||
t1 += text("Door is electrified temporarily ([] seconds). <A href='?src=\ref[];aiDisable=5'>Un-electrify it?</a><br>\n", secondsElectrified, src)
|
t1 += text("Door is electrified temporarily ([] seconds). <A href='?src=[REF(src)];aiDisable=5'>Un-electrify it?</a><br>\n", secondsElectrified)
|
||||||
else
|
else
|
||||||
t1 += text("Door is not electrified. <A href='?src=\ref[];aiEnable=5'>Electrify it for 30 seconds?</a> Or, <A href='?src=\ref[];aiEnable=6'>Electrify it indefinitely until someone cancels the electrification?</a><br>\n", src, src)
|
t1 += "Door is not electrified. <A href='?src=[REF(src)];aiEnable=5'>Electrify it for 30 seconds?</a> Or, <A href='?src=[REF(src)];aiEnable=6'>Electrify it indefinitely until someone cancels the electrification?</a><br>\n"
|
||||||
|
|
||||||
if(wires.is_cut(WIRE_SAFETY))
|
if(wires.is_cut(WIRE_SAFETY))
|
||||||
t1 += text("Door force sensors not responding.</a><br>\n")
|
t1 += text("Door force sensors not responding.</a><br>\n")
|
||||||
else if(src.safe)
|
else if(src.safe)
|
||||||
t1 += text("Door safeties operating normally. <A href='?src=\ref[];aiDisable=8'>Override?</a><br>\n",src)
|
t1 += "Door safeties operating normally. <A href='?src=[REF(src)];aiDisable=8'>Override?</a><br>\n"
|
||||||
else
|
else
|
||||||
t1 += text("Danger. Door safeties disabled. <A href='?src=\ref[];aiEnable=8'>Restore?</a><br>\n",src)
|
t1 += "Danger. Door safeties disabled. <A href='?src=[REF(src)];aiEnable=8'>Restore?</a><br>\n"
|
||||||
|
|
||||||
if(wires.is_cut(WIRE_TIMING))
|
if(wires.is_cut(WIRE_TIMING))
|
||||||
t1 += text("Door timing circuitry not responding.</a><br>\n")
|
t1 += text("Door timing circuitry not responding.</a><br>\n")
|
||||||
else if(src.normalspeed)
|
else if(src.normalspeed)
|
||||||
t1 += text("Door timing circuitry operating normally. <A href='?src=\ref[];aiDisable=9'>Override?</a><br>\n",src)
|
t1 += "Door timing circuitry operating normally. <A href='?src=[REF(src)];aiDisable=9'>Override?</a><br>\n"
|
||||||
else
|
else
|
||||||
t1 += text("Warning. Door timing circuitry operating abnormally. <A href='?src=\ref[];aiEnable=9'>Restore?</a><br>\n",src)
|
t1 += "Warning. Door timing circuitry operating abnormally. <A href='?src=[REF(src)];aiEnable=9'>Restore?</a><br>\n"
|
||||||
|
|
||||||
if(src.welded)
|
if(src.welded)
|
||||||
t1 += text("Door appears to have been welded shut.<br>\n")
|
t1 += text("Door appears to have been welded shut.<br>\n")
|
||||||
else if(!src.locked)
|
else if(!src.locked)
|
||||||
if(src.density)
|
if(src.density)
|
||||||
t1 += text("<A href='?src=\ref[];aiEnable=7'>Open door</a><br>\n", src)
|
t1 += "<A href='?src=[REF(src)];aiEnable=7'>Open door</a><br>\n"
|
||||||
else
|
else
|
||||||
t1 += text("<A href='?src=\ref[];aiDisable=7'>Close door</a><br>\n", src)
|
t1 += "<A href='?src=[REF(src)];aiDisable=7'>Close door</a><br>\n"
|
||||||
|
|
||||||
t1 += text("<p><a href='?src=\ref[];close=1'>Close</a></p>\n", src)
|
t1 += "<p><a href='?src=[REF(src)];close=1'>Close</a></p>\n"
|
||||||
user << browse(t1, "window=airlock")
|
user << browse(t1, "window=airlock")
|
||||||
onclose(user, "airlock")
|
onclose(user, "airlock")
|
||||||
|
|
||||||
|
|||||||
@@ -277,29 +277,29 @@
|
|||||||
if(!exteriorAirlock || !interiorAirlock)
|
if(!exteriorAirlock || !interiorAirlock)
|
||||||
if(!exteriorAirlock)
|
if(!exteriorAirlock)
|
||||||
if(interiorAirlock.density)
|
if(interiorAirlock.density)
|
||||||
output = "<A href='?src=\ref[src];command=open_interior'>Open Interior Airlock</A><BR>"
|
output = "<A href='?src=[REF(src)];command=open_interior'>Open Interior Airlock</A><BR>"
|
||||||
else
|
else
|
||||||
output = "<A href='?src=\ref[src];command=close_interior'>Close Interior Airlock</A><BR>"
|
output = "<A href='?src=[REF(src)];command=close_interior'>Close Interior Airlock</A><BR>"
|
||||||
else
|
else
|
||||||
if(exteriorAirlock.density)
|
if(exteriorAirlock.density)
|
||||||
output = "<A href='?src=\ref[src];command=open_exterior'>Open Exterior Airlock</A><BR>"
|
output = "<A href='?src=[REF(src)];command=open_exterior'>Open Exterior Airlock</A><BR>"
|
||||||
else
|
else
|
||||||
output = "<A href='?src=\ref[src];command=close_exterior'>Close Exterior Airlock</A><BR>"
|
output = "<A href='?src=[REF(src)];command=close_exterior'>Close Exterior Airlock</A><BR>"
|
||||||
else
|
else
|
||||||
if(exteriorAirlock.density)
|
if(exteriorAirlock.density)
|
||||||
if(interiorAirlock.density)
|
if(interiorAirlock.density)
|
||||||
output = {"<A href='?src=\ref[src];command=open_exterior'>Open Exterior Airlock</A><BR>
|
output = {"<A href='?src=[REF(src)];command=open_exterior'>Open Exterior Airlock</A><BR>
|
||||||
<A href='?src=\ref[src];command=open_interior'>Open Interior Airlock</A><BR>"}
|
<A href='?src=[REF(src)];command=open_interior'>Open Interior Airlock</A><BR>"}
|
||||||
else
|
else
|
||||||
output = {"<A href='?src=\ref[src];command=cycle_exterior'>Cycle to Exterior Airlock</A><BR>
|
output = {"<A href='?src=[REF(src)];command=cycle_exterior'>Cycle to Exterior Airlock</A><BR>
|
||||||
<A href='?src=\ref[src];command=close_interior'>Close Interior Airlock</A><BR>"}
|
<A href='?src=[REF(src)];command=close_interior'>Close Interior Airlock</A><BR>"}
|
||||||
else
|
else
|
||||||
if(interiorAirlock.density)
|
if(interiorAirlock.density)
|
||||||
output = {"<A href='?src=\ref[src];command=close_exterior'>Close Exterior Airlock</A><BR>
|
output = {"<A href='?src=[REF(src)];command=close_exterior'>Close Exterior Airlock</A><BR>
|
||||||
<A href='?src=\ref[src];command=cycle_interior'>Cycle to Interior Airlock</A><BR>"}
|
<A href='?src=[REF(src)];command=cycle_interior'>Cycle to Interior Airlock</A><BR>"}
|
||||||
else
|
else
|
||||||
output = {"<A href='?src=\ref[src];command=close_exterior'>Close Exterior Airlock</A><BR>
|
output = {"<A href='?src=[REF(src)];command=close_exterior'>Close Exterior Airlock</A><BR>
|
||||||
<A href='?src=\ref[src];command=close_interior'>Close Interior Airlock</A><BR>"}
|
<A href='?src=[REF(src)];command=close_interior'>Close Interior Airlock</A><BR>"}
|
||||||
|
|
||||||
|
|
||||||
output = {"<B>Access Control Console</B><HR>
|
output = {"<B>Access Control Console</B><HR>
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
<<<<<<< HEAD
|
||||||
//States for airlock_control
|
//States for airlock_control
|
||||||
#define AIRLOCK_STATE_INOPEN -2
|
#define AIRLOCK_STATE_INOPEN -2
|
||||||
#define AIRLOCK_STATE_PRESSURIZE -1
|
#define AIRLOCK_STATE_PRESSURIZE -1
|
||||||
@@ -294,3 +295,301 @@
|
|||||||
[state_options]"}
|
[state_options]"}
|
||||||
|
|
||||||
return output
|
return output
|
||||||
|
=======
|
||||||
|
//States for airlock_control
|
||||||
|
#define AIRLOCK_STATE_INOPEN -2
|
||||||
|
#define AIRLOCK_STATE_PRESSURIZE -1
|
||||||
|
#define AIRLOCK_STATE_CLOSED 0
|
||||||
|
#define AIRLOCK_STATE_DEPRESSURIZE 1
|
||||||
|
#define AIRLOCK_STATE_OUTOPEN 2
|
||||||
|
|
||||||
|
/datum/computer/file/embedded_program/airlock_controller
|
||||||
|
var/id_tag
|
||||||
|
var/exterior_door_tag
|
||||||
|
var/interior_door_tag
|
||||||
|
var/airpump_tag
|
||||||
|
var/sensor_tag
|
||||||
|
var/sanitize_external
|
||||||
|
|
||||||
|
state = AIRLOCK_STATE_CLOSED
|
||||||
|
var/target_state = AIRLOCK_STATE_CLOSED
|
||||||
|
var/sensor_pressure = null
|
||||||
|
|
||||||
|
/datum/computer/file/embedded_program/airlock_controller/receive_signal(datum/signal/signal, receive_method, receive_param)
|
||||||
|
var/receive_tag = signal.data["tag"]
|
||||||
|
if(!receive_tag)
|
||||||
|
return
|
||||||
|
|
||||||
|
if(receive_tag==sensor_tag)
|
||||||
|
if(signal.data["pressure"])
|
||||||
|
sensor_pressure = text2num(signal.data["pressure"])
|
||||||
|
|
||||||
|
else if(receive_tag==exterior_door_tag)
|
||||||
|
memory["exterior_status"] = signal.data["door_status"]
|
||||||
|
|
||||||
|
else if(receive_tag==interior_door_tag)
|
||||||
|
memory["interior_status"] = signal.data["door_status"]
|
||||||
|
|
||||||
|
else if(receive_tag==airpump_tag)
|
||||||
|
if(signal.data["power"])
|
||||||
|
memory["pump_status"] = signal.data["direction"]
|
||||||
|
else
|
||||||
|
memory["pump_status"] = "off"
|
||||||
|
|
||||||
|
else if(receive_tag==id_tag)
|
||||||
|
switch(signal.data["command"])
|
||||||
|
if("cycle")
|
||||||
|
if(state < AIRLOCK_STATE_CLOSED)
|
||||||
|
target_state = AIRLOCK_STATE_OUTOPEN
|
||||||
|
else
|
||||||
|
target_state = AIRLOCK_STATE_INOPEN
|
||||||
|
|
||||||
|
/datum/computer/file/embedded_program/airlock_controller/receive_user_command(command)
|
||||||
|
switch(command)
|
||||||
|
if("cycle_closed")
|
||||||
|
target_state = AIRLOCK_STATE_CLOSED
|
||||||
|
if("cycle_exterior")
|
||||||
|
target_state = AIRLOCK_STATE_OUTOPEN
|
||||||
|
if("cycle_interior")
|
||||||
|
target_state = AIRLOCK_STATE_INOPEN
|
||||||
|
if("abort")
|
||||||
|
target_state = AIRLOCK_STATE_CLOSED
|
||||||
|
|
||||||
|
/datum/computer/file/embedded_program/airlock_controller/process()
|
||||||
|
var/process_again = 1
|
||||||
|
while(process_again)
|
||||||
|
process_again = 0
|
||||||
|
switch(state)
|
||||||
|
if(AIRLOCK_STATE_INOPEN) // state -2
|
||||||
|
if(target_state > state)
|
||||||
|
if(memory["interior_status"] == "closed")
|
||||||
|
state = AIRLOCK_STATE_CLOSED
|
||||||
|
process_again = 1
|
||||||
|
else
|
||||||
|
var/datum/signal/signal = new
|
||||||
|
signal.data["tag"] = interior_door_tag
|
||||||
|
signal.data["command"] = "secure_close"
|
||||||
|
post_signal(signal)
|
||||||
|
else
|
||||||
|
if(memory["pump_status"] != "off")
|
||||||
|
var/datum/signal/signal = new
|
||||||
|
signal.data = list(
|
||||||
|
"tag" = airpump_tag,
|
||||||
|
"power" = 0,
|
||||||
|
"sigtype"="command"
|
||||||
|
)
|
||||||
|
post_signal(signal)
|
||||||
|
|
||||||
|
if(AIRLOCK_STATE_PRESSURIZE)
|
||||||
|
if(target_state < state)
|
||||||
|
if(sensor_pressure >= ONE_ATMOSPHERE*0.95)
|
||||||
|
if(memory["interior_status"] == "open")
|
||||||
|
state = AIRLOCK_STATE_INOPEN
|
||||||
|
process_again = 1
|
||||||
|
else
|
||||||
|
var/datum/signal/signal = new
|
||||||
|
signal.data["tag"] = interior_door_tag
|
||||||
|
signal.data["command"] = "secure_open"
|
||||||
|
post_signal(signal)
|
||||||
|
else
|
||||||
|
var/datum/signal/signal = new
|
||||||
|
signal.data = list(
|
||||||
|
"tag" = airpump_tag,
|
||||||
|
"sigtype"="command"
|
||||||
|
)
|
||||||
|
if(memory["pump_status"] == "siphon")
|
||||||
|
signal.data["stabalize"] = 1
|
||||||
|
else if(memory["pump_status"] != "release")
|
||||||
|
signal.data["power"] = 1
|
||||||
|
post_signal(signal)
|
||||||
|
else if(target_state > state)
|
||||||
|
state = AIRLOCK_STATE_CLOSED
|
||||||
|
process_again = 1
|
||||||
|
|
||||||
|
if(AIRLOCK_STATE_CLOSED)
|
||||||
|
if(target_state > state)
|
||||||
|
if(memory["interior_status"] == "closed")
|
||||||
|
state = AIRLOCK_STATE_DEPRESSURIZE
|
||||||
|
process_again = 1
|
||||||
|
else
|
||||||
|
var/datum/signal/signal = new
|
||||||
|
signal.data["tag"] = interior_door_tag
|
||||||
|
signal.data["command"] = "secure_close"
|
||||||
|
post_signal(signal)
|
||||||
|
else if(target_state < state)
|
||||||
|
if(memory["exterior_status"] == "closed")
|
||||||
|
state = AIRLOCK_STATE_PRESSURIZE
|
||||||
|
process_again = 1
|
||||||
|
else
|
||||||
|
var/datum/signal/signal = new
|
||||||
|
signal.data["tag"] = exterior_door_tag
|
||||||
|
signal.data["command"] = "secure_close"
|
||||||
|
post_signal(signal)
|
||||||
|
|
||||||
|
else
|
||||||
|
if(memory["pump_status"] != "off")
|
||||||
|
var/datum/signal/signal = new
|
||||||
|
signal.data = list(
|
||||||
|
"tag" = airpump_tag,
|
||||||
|
"power" = 0,
|
||||||
|
"sigtype"="command"
|
||||||
|
)
|
||||||
|
post_signal(signal)
|
||||||
|
|
||||||
|
if(AIRLOCK_STATE_DEPRESSURIZE)
|
||||||
|
var/target_pressure = ONE_ATMOSPHERE*0.05
|
||||||
|
if(sanitize_external)
|
||||||
|
target_pressure = ONE_ATMOSPHERE*0.01
|
||||||
|
|
||||||
|
if(sensor_pressure <= target_pressure)
|
||||||
|
if(target_state > state)
|
||||||
|
if(memory["exterior_status"] == "open")
|
||||||
|
state = AIRLOCK_STATE_OUTOPEN
|
||||||
|
else
|
||||||
|
var/datum/signal/signal = new
|
||||||
|
signal.data["tag"] = exterior_door_tag
|
||||||
|
signal.data["command"] = "secure_open"
|
||||||
|
post_signal(signal)
|
||||||
|
else if(target_state < state)
|
||||||
|
state = AIRLOCK_STATE_CLOSED
|
||||||
|
process_again = 1
|
||||||
|
else if((target_state < state) && !sanitize_external)
|
||||||
|
state = AIRLOCK_STATE_CLOSED
|
||||||
|
process_again = 1
|
||||||
|
else
|
||||||
|
var/datum/signal/signal = new
|
||||||
|
signal.transmission_method = 1 //radio signal
|
||||||
|
signal.data = list(
|
||||||
|
"tag" = airpump_tag,
|
||||||
|
"sigtype"="command"
|
||||||
|
)
|
||||||
|
if(memory["pump_status"] == "release")
|
||||||
|
signal.data["purge"] = 1
|
||||||
|
else if(memory["pump_status"] != "siphon")
|
||||||
|
signal.data["power"] = 1
|
||||||
|
post_signal(signal)
|
||||||
|
|
||||||
|
if(AIRLOCK_STATE_OUTOPEN) //state 2
|
||||||
|
if(target_state < state)
|
||||||
|
if(memory["exterior_status"] == "closed")
|
||||||
|
if(sanitize_external)
|
||||||
|
state = AIRLOCK_STATE_DEPRESSURIZE
|
||||||
|
process_again = 1
|
||||||
|
else
|
||||||
|
state = AIRLOCK_STATE_CLOSED
|
||||||
|
process_again = 1
|
||||||
|
else
|
||||||
|
var/datum/signal/signal = new
|
||||||
|
signal.data["tag"] = exterior_door_tag
|
||||||
|
signal.data["command"] = "secure_close"
|
||||||
|
post_signal(signal)
|
||||||
|
else
|
||||||
|
if(memory["pump_status"] != "off")
|
||||||
|
var/datum/signal/signal = new
|
||||||
|
signal.data = list(
|
||||||
|
"tag" = airpump_tag,
|
||||||
|
"power" = 0,
|
||||||
|
"sigtype"="command"
|
||||||
|
)
|
||||||
|
post_signal(signal)
|
||||||
|
|
||||||
|
memory["sensor_pressure"] = sensor_pressure
|
||||||
|
memory["processing"] = state != target_state
|
||||||
|
//sensor_pressure = null //not sure if we can comment this out. Uncomment in case of problems -rastaf0
|
||||||
|
|
||||||
|
return 1
|
||||||
|
|
||||||
|
|
||||||
|
/obj/machinery/embedded_controller/radio/airlock_controller
|
||||||
|
icon = 'icons/obj/airlock_machines.dmi'
|
||||||
|
icon_state = "airlock_control_standby"
|
||||||
|
|
||||||
|
name = "airlock console"
|
||||||
|
density = FALSE
|
||||||
|
|
||||||
|
frequency = 1449
|
||||||
|
power_channel = ENVIRON
|
||||||
|
|
||||||
|
// Setup parameters only
|
||||||
|
var/id_tag
|
||||||
|
var/exterior_door_tag
|
||||||
|
var/interior_door_tag
|
||||||
|
var/airpump_tag
|
||||||
|
var/sensor_tag
|
||||||
|
var/sanitize_external
|
||||||
|
|
||||||
|
/obj/machinery/embedded_controller/radio/airlock_controller/Initialize(mapload)
|
||||||
|
. = ..()
|
||||||
|
if(!mapload)
|
||||||
|
return
|
||||||
|
|
||||||
|
var/datum/computer/file/embedded_program/airlock_controller/new_prog = new
|
||||||
|
|
||||||
|
new_prog.id_tag = id_tag
|
||||||
|
new_prog.exterior_door_tag = exterior_door_tag
|
||||||
|
new_prog.interior_door_tag = interior_door_tag
|
||||||
|
new_prog.airpump_tag = airpump_tag
|
||||||
|
new_prog.sensor_tag = sensor_tag
|
||||||
|
new_prog.sanitize_external = sanitize_external
|
||||||
|
|
||||||
|
new_prog.master = src
|
||||||
|
program = new_prog
|
||||||
|
|
||||||
|
/obj/machinery/embedded_controller/radio/airlock_controller/update_icon()
|
||||||
|
if(on && program)
|
||||||
|
if(program.memory["processing"])
|
||||||
|
icon_state = "airlock_control_process"
|
||||||
|
else
|
||||||
|
icon_state = "airlock_control_standby"
|
||||||
|
else
|
||||||
|
icon_state = "airlock_control_off"
|
||||||
|
|
||||||
|
|
||||||
|
/obj/machinery/embedded_controller/radio/airlock_controller/return_text()
|
||||||
|
var/state_options = null
|
||||||
|
|
||||||
|
var/state = 0
|
||||||
|
var/sensor_pressure = "----"
|
||||||
|
var/exterior_status = "----"
|
||||||
|
var/interior_status = "----"
|
||||||
|
var/pump_status = "----"
|
||||||
|
var/current_status = "Inactive<BR> "
|
||||||
|
if(program)
|
||||||
|
state = program.state
|
||||||
|
sensor_pressure = program.memory["sensor_pressure"] ? program.memory["sensor_pressure"] : "----"
|
||||||
|
exterior_status = program.memory["exterior_status"] ? program.memory["exterior_status"] : "----"
|
||||||
|
interior_status = program.memory["interior_status"] ? program.memory["interior_status"] : "----"
|
||||||
|
pump_status = program.memory["pump_status"] ? program.memory["pump_status"] : "----"
|
||||||
|
|
||||||
|
switch(state)
|
||||||
|
if(AIRLOCK_STATE_INOPEN)
|
||||||
|
state_options = {"<A href='?src=[REF(src)];command=cycle_closed'>Close Interior Airlock</A><BR>
|
||||||
|
<A href='?src=[REF(src)];command=cycle_exterior'>Cycle to Exterior Airlock</A><BR>"}
|
||||||
|
current_status = "Interior Airlock Open<BR><span class='good'>Chamber Pressurized</span>"
|
||||||
|
if(AIRLOCK_STATE_PRESSURIZE)
|
||||||
|
state_options = "<A href='?src=[REF(src)];command=abort'>Abort Cycling</A><BR>"
|
||||||
|
current_status = "Cycling to Interior Airlock<BR><span class='average'>Chamber Pressurizing</span>"
|
||||||
|
if(AIRLOCK_STATE_CLOSED)
|
||||||
|
state_options = {"<A href='?src=[REF(src)];command=cycle_interior'>Open Interior Airlock</A><BR>
|
||||||
|
<A href='?src=[REF(src)];command=cycle_exterior'>Open Exterior Airlock</A><BR>"}
|
||||||
|
if(AIRLOCK_STATE_DEPRESSURIZE)
|
||||||
|
state_options = "<A href='?src=[REF(src)];command=abort'>Abort Cycling</A><BR>"
|
||||||
|
current_status = "Cycling to Exterior Airlock<BR><span class='average'>Chamber Depressurizing</span>"
|
||||||
|
if(AIRLOCK_STATE_OUTOPEN)
|
||||||
|
state_options = {"<A href='?src=[REF(src)];command=cycle_interior'>Cycle to Interior Airlock</A><BR>
|
||||||
|
<A href='?src=[REF(src)];command=cycle_closed'>Close Exterior Airlock</A><BR>"}
|
||||||
|
current_status = "Exterior Airlock Open<BR><span class='bad'>Chamber Depressurized</span>"
|
||||||
|
|
||||||
|
var/output = {"<h3>Airlock Status</h3>
|
||||||
|
<div class='statusDisplay'>
|
||||||
|
<div class='line'><div class='statusLabel'>Current Status:</div><div class='statusValue'>[current_status]</div></div>
|
||||||
|
<div class='line'> </div>
|
||||||
|
<div class='line'><div class='statusLabel'>\> Chamber Pressure:</div><div class='statusValue'>[sensor_pressure] kPa</div></div>
|
||||||
|
<div class='line'><div class='statusLabel'>\> Control Pump:</div><div class='statusValue'>[pump_status]</div></div>
|
||||||
|
<div class='line'><div class='statusLabel'>\> Interior Door:</div><div class='statusValue'>[interior_status]</div></div>
|
||||||
|
<div class='line'><div class='statusLabel'>\> Exterior Door:</div><div class='statusValue'>[exterior_status]</div></div>
|
||||||
|
</div>
|
||||||
|
[state_options]"}
|
||||||
|
|
||||||
|
return output
|
||||||
|
>>>>>>> 626302c... Merge pull request #32161 from ninjanomnom/512-experimental
|
||||||
|
|||||||
@@ -53,6 +53,7 @@
|
|||||||
|
|
||||||
/obj/machinery/embedded_controller/radio/simple_vent_controller/Initialize(mapload)
|
/obj/machinery/embedded_controller/radio/simple_vent_controller/Initialize(mapload)
|
||||||
. = ..()
|
. = ..()
|
||||||
|
<<<<<<< HEAD
|
||||||
if(!mapload)
|
if(!mapload)
|
||||||
return
|
return
|
||||||
var/datum/computer/file/embedded_program/simple_vent_controller/new_prog = new
|
var/datum/computer/file/embedded_program/simple_vent_controller/new_prog = new
|
||||||
@@ -77,3 +78,29 @@
|
|||||||
[state_options]<HR>"}
|
[state_options]<HR>"}
|
||||||
|
|
||||||
return output
|
return output
|
||||||
|
=======
|
||||||
|
if(!mapload)
|
||||||
|
return
|
||||||
|
var/datum/computer/file/embedded_program/simple_vent_controller/new_prog = new
|
||||||
|
|
||||||
|
new_prog.airpump_tag = airpump_tag
|
||||||
|
new_prog.master = src
|
||||||
|
program = new_prog
|
||||||
|
|
||||||
|
/obj/machinery/embedded_controller/radio/simple_vent_controller/update_icon()
|
||||||
|
if(on && program)
|
||||||
|
icon_state = "airlock_control_standby"
|
||||||
|
else
|
||||||
|
icon_state = "airlock_control_off"
|
||||||
|
|
||||||
|
|
||||||
|
/obj/machinery/embedded_controller/radio/simple_vent_controller/return_text()
|
||||||
|
var/state_options = null
|
||||||
|
state_options = {"<A href='?src=[REF(src)];command=vent_inactive'>Deactivate Vent</A><BR>
|
||||||
|
<A href='?src=[REF(src)];command=vent_pump'>Activate Vent / Pump</A><BR>
|
||||||
|
<A href='?src=[REF(src)];command=vent_clear'>Activate Vent / Clear</A><BR>"}
|
||||||
|
var/output = {"<B>Vent Control Console</B><HR>
|
||||||
|
[state_options]<HR>"}
|
||||||
|
|
||||||
|
return output
|
||||||
|
>>>>>>> 626302c... Merge pull request #32161 from ninjanomnom/512-experimental
|
||||||
|
|||||||
@@ -67,7 +67,7 @@
|
|||||||
var/mob/thismob = i
|
var/mob/thismob = i
|
||||||
var/list/mob_info = list()
|
var/list/mob_info = list()
|
||||||
mob_info["name"] = thismob.real_name
|
mob_info["name"] = thismob.real_name
|
||||||
mob_info["mob"] = "\ref[thismob]"
|
mob_info["mob"] = "[REF(thismob)]"
|
||||||
mobs += list(mob_info)
|
mobs += list(mob_info)
|
||||||
|
|
||||||
data["mobs"] = mobs
|
data["mobs"] = mobs
|
||||||
|
|||||||
@@ -120,8 +120,8 @@ Possible to do for anyone motivated enough:
|
|||||||
if(temp)
|
if(temp)
|
||||||
dat = temp
|
dat = temp
|
||||||
else
|
else
|
||||||
dat = "<a href='?src=\ref[src];AIrequest=1'>Request an AI's presence.</a><br>"
|
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>"
|
dat += "<a href='?src=[REF(src)];Holocall=1'>Call another holopad.</a><br>"
|
||||||
|
|
||||||
if(LAZYLEN(holo_calls))
|
if(LAZYLEN(holo_calls))
|
||||||
dat += "=====================================================<br>"
|
dat += "=====================================================<br>"
|
||||||
@@ -131,7 +131,7 @@ Possible to do for anyone motivated enough:
|
|||||||
for(var/I in holo_calls)
|
for(var/I in holo_calls)
|
||||||
var/datum/holocall/HC = I
|
var/datum/holocall/HC = I
|
||||||
if(HC.connected_holopad != src)
|
if(HC.connected_holopad != src)
|
||||||
dat += "<a href='?src=\ref[src];connectcall=\ref[HC]'>Answer call from [get_area(HC.calling_holopad)].</a><br>"
|
dat += "<a href='?src=[REF(src)];connectcall=[REF(HC)]'>Answer call from [get_area(HC.calling_holopad)].</a><br>"
|
||||||
one_unanswered_call = TRUE
|
one_unanswered_call = TRUE
|
||||||
else
|
else
|
||||||
one_answered_call = TRUE
|
one_answered_call = TRUE
|
||||||
@@ -142,7 +142,7 @@ Possible to do for anyone motivated enough:
|
|||||||
for(var/I in holo_calls)
|
for(var/I in holo_calls)
|
||||||
var/datum/holocall/HC = I
|
var/datum/holocall/HC = I
|
||||||
if(HC.connected_holopad == src)
|
if(HC.connected_holopad == src)
|
||||||
dat += "<a href='?src=\ref[src];disconnectcall=\ref[HC]'>Disconnect call from [HC.user].</a><br>"
|
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, 130)
|
var/datum/browser/popup = new(user, "holopad", name, 300, 130)
|
||||||
@@ -166,22 +166,22 @@ Possible to do for anyone motivated enough:
|
|||||||
if(last_request + 200 < world.time)
|
if(last_request + 200 < world.time)
|
||||||
last_request = world.time
|
last_request = world.time
|
||||||
temp = "You requested an AI's presence.<BR>"
|
temp = "You requested an AI's presence.<BR>"
|
||||||
temp += "<A href='?src=\ref[src];mainmenu=1'>Main Menu</A>"
|
temp += "<A href='?src=[REF(src)];mainmenu=1'>Main Menu</A>"
|
||||||
var/area/area = get_area(src)
|
var/area/area = get_area(src)
|
||||||
for(var/mob/living/silicon/ai/AI in GLOB.silicon_mobs)
|
for(var/mob/living/silicon/ai/AI in GLOB.silicon_mobs)
|
||||||
if(!AI.client)
|
if(!AI.client)
|
||||||
continue
|
continue
|
||||||
to_chat(AI, "<span class='info'>Your presence is requested at <a href='?src=\ref[AI];jumptoholopad=\ref[src]'>\the [area]</a>.</span>")
|
to_chat(AI, "<span class='info'>Your presence is requested at <a href='?src=[REF(AI)];jumptoholopad=[REF(src)]'>\the [area]</a>.</span>")
|
||||||
else
|
else
|
||||||
temp = "A request for AI presence was already sent recently.<BR>"
|
temp = "A request for AI presence was already sent recently.<BR>"
|
||||||
temp += "<A href='?src=\ref[src];mainmenu=1'>Main Menu</A>"
|
temp += "<A href='?src=[REF(src)];mainmenu=1'>Main Menu</A>"
|
||||||
|
|
||||||
else if(href_list["Holocall"])
|
else if(href_list["Holocall"])
|
||||||
if(outgoing_call)
|
if(outgoing_call)
|
||||||
return
|
return
|
||||||
|
|
||||||
temp = "You must stand on the holopad to make a call!<br>"
|
temp = "You must stand on the holopad to make a call!<br>"
|
||||||
temp += "<A href='?src=\ref[src];mainmenu=1'>Main Menu</A>"
|
temp += "<A href='?src=[REF(src)];mainmenu=1'>Main Menu</A>"
|
||||||
if(usr.loc == loc)
|
if(usr.loc == loc)
|
||||||
var/list/callnames = list()
|
var/list/callnames = list()
|
||||||
for(var/I in holopads)
|
for(var/I in holopads)
|
||||||
@@ -196,7 +196,7 @@ Possible to do for anyone motivated enough:
|
|||||||
|
|
||||||
if(usr.loc == loc)
|
if(usr.loc == loc)
|
||||||
temp = "Dialing...<br>"
|
temp = "Dialing...<br>"
|
||||||
temp += "<A href='?src=\ref[src];mainmenu=1'>Main Menu</A>"
|
temp += "<A href='?src=[REF(src)];mainmenu=1'>Main Menu</A>"
|
||||||
new /datum/holocall(usr, src, callnames[result])
|
new /datum/holocall(usr, src, callnames[result])
|
||||||
|
|
||||||
else if(href_list["connectcall"])
|
else if(href_list["connectcall"])
|
||||||
|
|||||||
@@ -160,7 +160,7 @@
|
|||||||
|
|
||||||
/obj/machinery/limbgrower/proc/main_win(mob/user)
|
/obj/machinery/limbgrower/proc/main_win(mob/user)
|
||||||
var/dat = "<div class='statusDisplay'><h3>Limb Grower Menu:</h3><br>"
|
var/dat = "<div class='statusDisplay'><h3>Limb Grower Menu:</h3><br>"
|
||||||
dat += "<A href='?src=\ref[src];menu=[LIMBGROWER_CHEMICAL_MENU]'>Chemical Storage</A>"
|
dat += "<A href='?src=[REF(src)];menu=[LIMBGROWER_CHEMICAL_MENU]'>Chemical Storage</A>"
|
||||||
dat += materials_printout()
|
dat += materials_printout()
|
||||||
dat += "<table style='width:100%' align='center'><tr>"
|
dat += "<table style='width:100%' align='center'><tr>"
|
||||||
|
|
||||||
@@ -168,7 +168,7 @@
|
|||||||
if(C=="special" && !emagged) //Only want to show special when console is emagged
|
if(C=="special" && !emagged) //Only want to show special when console is emagged
|
||||||
continue
|
continue
|
||||||
|
|
||||||
dat += "<td><A href='?src=\ref[src];category=[C];menu=[LIMBGROWER_CATEGORY_MENU]'>[C]</A></td>"
|
dat += "<td><A href='?src=[REF(src)];category=[C];menu=[LIMBGROWER_CATEGORY_MENU]'>[C]</A></td>"
|
||||||
dat += "</tr><tr>"
|
dat += "</tr><tr>"
|
||||||
//one category per line
|
//one category per line
|
||||||
|
|
||||||
@@ -176,7 +176,7 @@
|
|||||||
return dat
|
return dat
|
||||||
|
|
||||||
/obj/machinery/limbgrower/proc/category_win(mob/user,selected_category)
|
/obj/machinery/limbgrower/proc/category_win(mob/user,selected_category)
|
||||||
var/dat = "<A href='?src=\ref[src];menu=[LIMBGROWER_MAIN_MENU]'>Return to main menu</A>"
|
var/dat = "<A href='?src=[REF(src)];menu=[LIMBGROWER_MAIN_MENU]'>Return to main menu</A>"
|
||||||
dat += "<div class='statusDisplay'><h3>Browsing [selected_category]:</h3><br>"
|
dat += "<div class='statusDisplay'><h3>Browsing [selected_category]:</h3><br>"
|
||||||
dat += materials_printout()
|
dat += materials_printout()
|
||||||
|
|
||||||
@@ -187,7 +187,7 @@
|
|||||||
if(disabled || !can_build(D))
|
if(disabled || !can_build(D))
|
||||||
dat += "<span class='linkOff'>[D.name]</span>"
|
dat += "<span class='linkOff'>[D.name]</span>"
|
||||||
else
|
else
|
||||||
dat += "<a href='?src=\ref[src];make=[D.id];multiplier=1'>[D.name]</a>"
|
dat += "<a href='?src=[REF(src)];make=[D.id];multiplier=1'>[D.name]</a>"
|
||||||
dat += "[get_design_cost(D)]<br>"
|
dat += "[get_design_cost(D)]<br>"
|
||||||
|
|
||||||
dat += "</div>"
|
dat += "</div>"
|
||||||
@@ -195,13 +195,13 @@
|
|||||||
|
|
||||||
|
|
||||||
/obj/machinery/limbgrower/proc/chemical_win(mob/user)
|
/obj/machinery/limbgrower/proc/chemical_win(mob/user)
|
||||||
var/dat = "<A href='?src=\ref[src];menu=[LIMBGROWER_MAIN_MENU]'>Return to main menu</A>"
|
var/dat = "<A href='?src=[REF(src)];menu=[LIMBGROWER_MAIN_MENU]'>Return to main menu</A>"
|
||||||
dat += "<div class='statusDisplay'><h3>Browsing Chemical Storage:</h3><br>"
|
dat += "<div class='statusDisplay'><h3>Browsing Chemical Storage:</h3><br>"
|
||||||
dat += materials_printout()
|
dat += materials_printout()
|
||||||
|
|
||||||
for(var/datum/reagent/R in reagents.reagent_list)
|
for(var/datum/reagent/R in reagents.reagent_list)
|
||||||
dat += "[R.name]: [R.volume]"
|
dat += "[R.name]: [R.volume]"
|
||||||
dat += "<A href='?src=\ref[src];disposeI=[R.id]'>Purge</A><BR>"
|
dat += "<A href='?src=[REF(src)];disposeI=[R.id]'>Purge</A><BR>"
|
||||||
|
|
||||||
dat += "</div>"
|
dat += "</div>"
|
||||||
return dat
|
return dat
|
||||||
|
|||||||
@@ -249,9 +249,9 @@
|
|||||||
var/dat = "<B>Magnetic Control Console</B><BR><BR>"
|
var/dat = "<B>Magnetic Control Console</B><BR><BR>"
|
||||||
if(!autolink)
|
if(!autolink)
|
||||||
dat += {"
|
dat += {"
|
||||||
Frequency: <a href='?src=\ref[src];operation=setfreq'>[frequency]</a><br>
|
Frequency: <a href='?src=[REF(src)];operation=setfreq'>[frequency]</a><br>
|
||||||
Code: <a href='?src=\ref[src];operation=setfreq'>[code]</a><br>
|
Code: <a href='?src=[REF(src)];operation=setfreq'>[code]</a><br>
|
||||||
<a href='?src=\ref[src];operation=probe'>Probe Generators</a><br>
|
<a href='?src=[REF(src)];operation=probe'>Probe Generators</a><br>
|
||||||
"}
|
"}
|
||||||
|
|
||||||
if(magnets.len >= 1)
|
if(magnets.len >= 1)
|
||||||
@@ -260,11 +260,11 @@
|
|||||||
var/i = 0
|
var/i = 0
|
||||||
for(var/obj/machinery/magnetic_module/M in magnets)
|
for(var/obj/machinery/magnetic_module/M in magnets)
|
||||||
i++
|
i++
|
||||||
dat += " < \[[i]\] (<a href='?src=\ref[src];radio-op=togglepower'>[M.on ? "On":"Off"]</a>) | Electricity level: <a href='?src=\ref[src];radio-op=minuselec'>-</a> [M.electricity_level] <a href='?src=\ref[src];radio-op=pluselec'>+</a>; Magnetic field: <a href='?src=\ref[src];radio-op=minusmag'>-</a> [M.magnetic_field] <a href='?src=\ref[src];radio-op=plusmag'>+</a><br>"
|
dat += " < \[[i]\] (<a href='?src=[REF(src)];radio-op=togglepower'>[M.on ? "On":"Off"]</a>) | Electricity level: <a href='?src=[REF(src)];radio-op=minuselec'>-</a> [M.electricity_level] <a href='?src=[REF(src)];radio-op=pluselec'>+</a>; Magnetic field: <a href='?src=[REF(src)];radio-op=minusmag'>-</a> [M.magnetic_field] <a href='?src=[REF(src)];radio-op=plusmag'>+</a><br>"
|
||||||
|
|
||||||
dat += "<br>Speed: <a href='?src=\ref[src];operation=minusspeed'>-</a> [speed] <a href='?src=\ref[src];operation=plusspeed'>+</a><br>"
|
dat += "<br>Speed: <a href='?src=[REF(src)];operation=minusspeed'>-</a> [speed] <a href='?src=[REF(src)];operation=plusspeed'>+</a><br>"
|
||||||
dat += "Path: {<a href='?src=\ref[src];operation=setpath'>[path]</a>}<br>"
|
dat += "Path: {<a href='?src=[REF(src)];operation=setpath'>[path]</a>}<br>"
|
||||||
dat += "Moving: <a href='?src=\ref[src];operation=togglemoving'>[moving ? "Enabled":"Disabled"]</a>"
|
dat += "Moving: <a href='?src=[REF(src)];operation=togglemoving'>[moving ? "Enabled":"Disabled"]</a>"
|
||||||
|
|
||||||
|
|
||||||
user << browse(dat, "window=magnet;size=400x500")
|
user << browse(dat, "window=magnet;size=400x500")
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
|
|
||||||
/obj/machinery/navbeacon/Initialize()
|
/obj/machinery/navbeacon/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
|
<<<<<<< HEAD
|
||||||
|
|
||||||
set_codes()
|
set_codes()
|
||||||
|
|
||||||
@@ -205,4 +206,187 @@ Transponder Codes:<UL>"}
|
|||||||
|
|
||||||
codes[newkey] = newval
|
codes[newkey] = newval
|
||||||
|
|
||||||
|
=======
|
||||||
|
|
||||||
|
set_codes()
|
||||||
|
|
||||||
|
var/turf/T = loc
|
||||||
|
hide(T.intact)
|
||||||
|
if(codes["patrol"])
|
||||||
|
if(!GLOB.navbeacons["[z]"])
|
||||||
|
GLOB.navbeacons["[z]"] = list()
|
||||||
|
GLOB.navbeacons["[z]"] += src //Register with the patrol list!
|
||||||
|
if(codes["delivery"])
|
||||||
|
GLOB.deliverybeacons += src
|
||||||
|
GLOB.deliverybeacontags += location
|
||||||
|
|
||||||
|
/obj/machinery/navbeacon/Destroy()
|
||||||
|
GLOB.navbeacons["[z]"] -= src //Remove from beacon list, if in one.
|
||||||
|
GLOB.deliverybeacons -= src
|
||||||
|
return ..()
|
||||||
|
|
||||||
|
// set the transponder codes assoc list from codes_txt
|
||||||
|
/obj/machinery/navbeacon/proc/set_codes()
|
||||||
|
if(!codes_txt)
|
||||||
|
return
|
||||||
|
|
||||||
|
codes = new()
|
||||||
|
|
||||||
|
var/list/entries = splittext(codes_txt, ";") // entries are separated by semicolons
|
||||||
|
|
||||||
|
for(var/e in entries)
|
||||||
|
var/index = findtext(e, "=") // format is "key=value"
|
||||||
|
if(index)
|
||||||
|
var/key = copytext(e, 1, index)
|
||||||
|
var/val = copytext(e, index+1)
|
||||||
|
codes[key] = val
|
||||||
|
else
|
||||||
|
codes[e] = "1"
|
||||||
|
|
||||||
|
|
||||||
|
// called when turf state changes
|
||||||
|
// hide the object if turf is intact
|
||||||
|
/obj/machinery/navbeacon/hide(intact)
|
||||||
|
invisibility = intact ? INVISIBILITY_MAXIMUM : 0
|
||||||
|
updateicon()
|
||||||
|
|
||||||
|
// update the icon_state
|
||||||
|
/obj/machinery/navbeacon/proc/updateicon()
|
||||||
|
var/state="navbeacon[open]"
|
||||||
|
|
||||||
|
if(invisibility)
|
||||||
|
icon_state = "[state]-f" // if invisible, set icon to faded version
|
||||||
|
// in case revealed by T-scanner
|
||||||
|
else
|
||||||
|
icon_state = "[state]"
|
||||||
|
|
||||||
|
/obj/machinery/navbeacon/attackby(obj/item/I, mob/user, params)
|
||||||
|
var/turf/T = loc
|
||||||
|
if(T.intact)
|
||||||
|
return // prevent intraction when T-scanner revealed
|
||||||
|
|
||||||
|
if(istype(I, /obj/item/screwdriver))
|
||||||
|
open = !open
|
||||||
|
|
||||||
|
user.visible_message("[user] [open ? "opens" : "closes"] the beacon's cover.", "<span class='notice'>You [open ? "open" : "close"] the beacon's cover.</span>")
|
||||||
|
|
||||||
|
updateicon()
|
||||||
|
|
||||||
|
else if (istype(I, /obj/item/card/id)||istype(I, /obj/item/device/pda))
|
||||||
|
if(open)
|
||||||
|
if (src.allowed(user))
|
||||||
|
src.locked = !src.locked
|
||||||
|
to_chat(user, "<span class='notice'>Controls are now [src.locked ? "locked" : "unlocked"].</span>")
|
||||||
|
else
|
||||||
|
to_chat(user, "<span class='danger'>Access denied.</span>")
|
||||||
|
updateDialog()
|
||||||
|
else
|
||||||
|
to_chat(user, "<span class='warning'>You must open the cover first!</span>")
|
||||||
|
else
|
||||||
|
return ..()
|
||||||
|
|
||||||
|
/obj/machinery/navbeacon/attack_ai(mob/user)
|
||||||
|
interact(user, 1)
|
||||||
|
|
||||||
|
/obj/machinery/navbeacon/attack_paw()
|
||||||
|
return
|
||||||
|
|
||||||
|
/obj/machinery/navbeacon/attack_hand(mob/user)
|
||||||
|
interact(user, 0)
|
||||||
|
|
||||||
|
/obj/machinery/navbeacon/interact(mob/user, ai = 0)
|
||||||
|
var/turf/T = loc
|
||||||
|
if(T.intact)
|
||||||
|
return // prevent intraction when T-scanner revealed
|
||||||
|
|
||||||
|
if(!open && !ai) // can't alter controls if not open, unless you're an AI
|
||||||
|
to_chat(user, "<span class='warning'>The beacon's control cover is closed!</span>")
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
var/t
|
||||||
|
|
||||||
|
if(locked && !ai)
|
||||||
|
t = {"<TT><B>Navigation Beacon</B><HR><BR>
|
||||||
|
<i>(swipe card to unlock controls)</i><BR>
|
||||||
|
Location: [location ? location : "(none)"]</A><BR>
|
||||||
|
Transponder Codes:<UL>"}
|
||||||
|
|
||||||
|
for(var/key in codes)
|
||||||
|
t += "<LI>[key] ... [codes[key]]"
|
||||||
|
t+= "<UL></TT>"
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
t = {"<TT><B>Navigation Beacon</B><HR><BR>
|
||||||
|
<i>(swipe card to lock controls)</i><BR>
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
Location: <A href='byond://?src=[REF(src)];locedit=1'>[location ? location : "None"]</A><BR>
|
||||||
|
Transponder Codes:<UL>"}
|
||||||
|
|
||||||
|
for(var/key in codes)
|
||||||
|
t += "<LI>[key] ... [codes[key]]"
|
||||||
|
t += " <A href='byond://?src=[REF(src)];edit=1;code=[key]'>Edit</A>"
|
||||||
|
t += " <A href='byond://?src=[REF(src)];delete=1;code=[key]'>Delete</A><BR>"
|
||||||
|
t += " <A href='byond://?src=[REF(src)];add=1;'>Add New</A><BR>"
|
||||||
|
t+= "<UL></TT>"
|
||||||
|
|
||||||
|
var/datum/browser/popup = new(user, "navbeacon", "Navigation Beacon", 300, 400)
|
||||||
|
popup.set_content(t)
|
||||||
|
popup.open()
|
||||||
|
return
|
||||||
|
|
||||||
|
/obj/machinery/navbeacon/Topic(href, href_list)
|
||||||
|
if(..())
|
||||||
|
return
|
||||||
|
if(open && !locked)
|
||||||
|
usr.set_machine(src)
|
||||||
|
|
||||||
|
if(href_list["locedit"])
|
||||||
|
var/newloc = copytext(sanitize(input("Enter New Location", "Navigation Beacon", location) as text|null),1,MAX_MESSAGE_LEN)
|
||||||
|
if(newloc)
|
||||||
|
location = newloc
|
||||||
|
updateDialog()
|
||||||
|
|
||||||
|
else if(href_list["edit"])
|
||||||
|
var/codekey = href_list["code"]
|
||||||
|
|
||||||
|
var/newkey = stripped_input(usr, "Enter Transponder Code Key", "Navigation Beacon", codekey)
|
||||||
|
if(!newkey)
|
||||||
|
return
|
||||||
|
|
||||||
|
var/codeval = codes[codekey]
|
||||||
|
var/newval = stripped_input(usr, "Enter Transponder Code Value", "Navigation Beacon", codeval)
|
||||||
|
if(!newval)
|
||||||
|
newval = codekey
|
||||||
|
return
|
||||||
|
|
||||||
|
codes.Remove(codekey)
|
||||||
|
codes[newkey] = newval
|
||||||
|
|
||||||
|
updateDialog()
|
||||||
|
|
||||||
|
else if(href_list["delete"])
|
||||||
|
var/codekey = href_list["code"]
|
||||||
|
codes.Remove(codekey)
|
||||||
|
updateDialog()
|
||||||
|
|
||||||
|
else if(href_list["add"])
|
||||||
|
|
||||||
|
var/newkey = stripped_input(usr, "Enter New Transponder Code Key", "Navigation Beacon")
|
||||||
|
if(!newkey)
|
||||||
|
return
|
||||||
|
|
||||||
|
var/newval = stripped_input(usr, "Enter New Transponder Code Value", "Navigation Beacon")
|
||||||
|
if(!newval)
|
||||||
|
newval = "1"
|
||||||
|
return
|
||||||
|
|
||||||
|
if(!codes)
|
||||||
|
codes = new()
|
||||||
|
|
||||||
|
codes[newkey] = newval
|
||||||
|
|
||||||
|
>>>>>>> 626302c... Merge pull request #32161 from ninjanomnom/512-experimental
|
||||||
updateDialog()
|
updateDialog()
|
||||||
@@ -267,21 +267,21 @@ GLOBAL_LIST_EMPTY(allCasters)
|
|||||||
dat += "Welcome to Newscasting Unit #[unit_no].<BR> Interface & News networks Operational."
|
dat += "Welcome to Newscasting Unit #[unit_no].<BR> Interface & News networks Operational."
|
||||||
dat += "<BR><FONT SIZE=1>Property of Nanotrasen Inc</FONT>"
|
dat += "<BR><FONT SIZE=1>Property of Nanotrasen Inc</FONT>"
|
||||||
if(GLOB.news_network.wanted_issue.active)
|
if(GLOB.news_network.wanted_issue.active)
|
||||||
dat+= "<HR><A href='?src=\ref[src];view_wanted=1'>Read Wanted Issue</A>"
|
dat+= "<HR><A href='?src=[REF(src)];view_wanted=1'>Read Wanted Issue</A>"
|
||||||
dat+= "<HR><BR><A href='?src=\ref[src];create_channel=1'>Create Feed Channel</A>"
|
dat+= "<HR><BR><A href='?src=[REF(src)];create_channel=1'>Create Feed Channel</A>"
|
||||||
dat+= "<BR><A href='?src=\ref[src];view=1'>View Feed Channels</A>"
|
dat+= "<BR><A href='?src=[REF(src)];view=1'>View Feed Channels</A>"
|
||||||
dat+= "<BR><A href='?src=\ref[src];create_feed_story=1'>Submit new Feed story</A>"
|
dat+= "<BR><A href='?src=[REF(src)];create_feed_story=1'>Submit new Feed story</A>"
|
||||||
dat+= "<BR><A href='?src=\ref[src];menu_paper=1'>Print newspaper</A>"
|
dat+= "<BR><A href='?src=[REF(src)];menu_paper=1'>Print newspaper</A>"
|
||||||
dat+= "<BR><A href='?src=\ref[src];refresh=1'>Re-scan User</A>"
|
dat+= "<BR><A href='?src=[REF(src)];refresh=1'>Re-scan User</A>"
|
||||||
dat+= "<BR><BR><A href='?src=\ref[human_or_robot_user];mach_close=newscaster_main'>Exit</A>"
|
dat+= "<BR><BR><A href='?src=[REF(human_or_robot_user)];mach_close=newscaster_main'>Exit</A>"
|
||||||
if(securityCaster)
|
if(securityCaster)
|
||||||
var/wanted_already = 0
|
var/wanted_already = 0
|
||||||
if(GLOB.news_network.wanted_issue.active)
|
if(GLOB.news_network.wanted_issue.active)
|
||||||
wanted_already = 1
|
wanted_already = 1
|
||||||
dat+="<HR><B>Feed Security functions:</B><BR>"
|
dat+="<HR><B>Feed Security functions:</B><BR>"
|
||||||
dat+="<BR><A href='?src=\ref[src];menu_wanted=1'>[(wanted_already) ? ("Manage") : ("Publish")] \"Wanted\" Issue</A>"
|
dat+="<BR><A href='?src=[REF(src)];menu_wanted=1'>[(wanted_already) ? ("Manage") : ("Publish")] \"Wanted\" Issue</A>"
|
||||||
dat+="<BR><A href='?src=\ref[src];menu_censor_story=1'>Censor Feed Stories</A>"
|
dat+="<BR><A href='?src=[REF(src)];menu_censor_story=1'>Censor Feed Stories</A>"
|
||||||
dat+="<BR><A href='?src=\ref[src];menu_censor_channel=1'>Mark Feed Channel with Nanotrasen D-Notice</A>"
|
dat+="<BR><A href='?src=[REF(src)];menu_censor_channel=1'>Mark Feed Channel with Nanotrasen D-Notice</A>"
|
||||||
dat+="<BR><HR>The newscaster recognises you as: <FONT COLOR='green'>[scanned_user]</FONT>"
|
dat+="<BR><HR>The newscaster recognises you as: <FONT COLOR='green'>[scanned_user]</FONT>"
|
||||||
if(1)
|
if(1)
|
||||||
dat+= "Station Feed Channels<HR>"
|
dat+= "Station Feed Channels<HR>"
|
||||||
@@ -290,31 +290,31 @@ GLOBAL_LIST_EMPTY(allCasters)
|
|||||||
else
|
else
|
||||||
for(var/datum/newscaster/feed_channel/CHANNEL in GLOB.news_network.network_channels)
|
for(var/datum/newscaster/feed_channel/CHANNEL in GLOB.news_network.network_channels)
|
||||||
if(CHANNEL.is_admin_channel)
|
if(CHANNEL.is_admin_channel)
|
||||||
dat+="<B><FONT style='BACKGROUND-COLOR: LightGreen '><A href='?src=\ref[src];show_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A></FONT></B><BR>"
|
dat+="<B><FONT style='BACKGROUND-COLOR: LightGreen '><A href='?src=[REF(src)];show_channel=[REF(CHANNEL)]'>[CHANNEL.channel_name]</A></FONT></B><BR>"
|
||||||
else
|
else
|
||||||
dat+="<B><A href='?src=\ref[src];show_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : ()]<BR></B>"
|
dat+="<B><A href='?src=[REF(src)];show_channel=[REF(CHANNEL)]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : ()]<BR></B>"
|
||||||
dat+="<BR><HR><A href='?src=\ref[src];refresh=1'>Refresh</A>"
|
dat+="<BR><HR><A href='?src=[REF(src)];refresh=1'>Refresh</A>"
|
||||||
dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Back</A>"
|
dat+="<BR><A href='?src=[REF(src)];setScreen=[0]'>Back</A>"
|
||||||
if(2)
|
if(2)
|
||||||
dat+="Creating new Feed Channel..."
|
dat+="Creating new Feed Channel..."
|
||||||
dat+="<HR><B><A href='?src=\ref[src];set_channel_name=1'>Channel Name</A>:</B> [channel_name]<BR>"
|
dat+="<HR><B><A href='?src=[REF(src)];set_channel_name=1'>Channel Name</A>:</B> [channel_name]<BR>"
|
||||||
dat+="<B>Channel Author:</B> <FONT COLOR='green'>[scanned_user]</FONT><BR>"
|
dat+="<B>Channel Author:</B> <FONT COLOR='green'>[scanned_user]</FONT><BR>"
|
||||||
dat+="<B><A href='?src=\ref[src];set_channel_lock=1'>Will Accept Public Feeds</A>:</B> [(c_locked) ? ("NO") : ("YES")]<BR><BR>"
|
dat+="<B><A href='?src=[REF(src)];set_channel_lock=1'>Will Accept Public Feeds</A>:</B> [(c_locked) ? ("NO") : ("YES")]<BR><BR>"
|
||||||
dat+="<BR><A href='?src=\ref[src];submit_new_channel=1'>Submit</A><BR><BR><A href='?src=\ref[src];setScreen=[0]'>Cancel</A><BR>"
|
dat+="<BR><A href='?src=[REF(src)];submit_new_channel=1'>Submit</A><BR><BR><A href='?src=[REF(src)];setScreen=[0]'>Cancel</A><BR>"
|
||||||
if(3)
|
if(3)
|
||||||
dat+="Creating new Feed Message..."
|
dat+="Creating new Feed Message..."
|
||||||
dat+="<HR><B><A href='?src=\ref[src];set_channel_receiving=1'>Receiving Channel</A>:</B> [channel_name]<BR>"
|
dat+="<HR><B><A href='?src=[REF(src)];set_channel_receiving=1'>Receiving Channel</A>:</B> [channel_name]<BR>"
|
||||||
dat+="<B>Message Author:</B> <FONT COLOR='green'>[scanned_user]</FONT><BR>"
|
dat+="<B>Message Author:</B> <FONT COLOR='green'>[scanned_user]</FONT><BR>"
|
||||||
dat+="<B><A href='?src=\ref[src];set_new_message=1'>Message Body</A>:</B> <BR><font face=\"[PEN_FONT]\">[parsemarkdown(msg, user)]</font><BR>"
|
dat+="<B><A href='?src=[REF(src)];set_new_message=1'>Message Body</A>:</B> <BR><font face=\"[PEN_FONT]\">[parsemarkdown(msg, user)]</font><BR>"
|
||||||
dat+="<B><A href='?src=\ref[src];set_attachment=1'>Attach Photo</A>:</B> [(photo ? "Photo Attached" : "No Photo")]</BR>"
|
dat+="<B><A href='?src=[REF(src)];set_attachment=1'>Attach Photo</A>:</B> [(photo ? "Photo Attached" : "No Photo")]</BR>"
|
||||||
dat+="<B><A href='?src=\ref[src];set_comment=1'>Comments [allow_comments ? "Enabled" : "Disabled"]</A></B><BR>"
|
dat+="<B><A href='?src=[REF(src)];set_comment=1'>Comments [allow_comments ? "Enabled" : "Disabled"]</A></B><BR>"
|
||||||
dat+="<BR><A href='?src=\ref[src];submit_new_message=1'>Submit</A><BR><BR><A href='?src=\ref[src];setScreen=[0]'>Cancel</A><BR>"
|
dat+="<BR><A href='?src=[REF(src)];submit_new_message=1'>Submit</A><BR><BR><A href='?src=[REF(src)];setScreen=[0]'>Cancel</A><BR>"
|
||||||
if(4)
|
if(4)
|
||||||
dat+="Feed story successfully submitted to [channel_name].<BR><BR>"
|
dat+="Feed story successfully submitted to [channel_name].<BR><BR>"
|
||||||
dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Return</A><BR>"
|
dat+="<BR><A href='?src=[REF(src)];setScreen=[0]'>Return</A><BR>"
|
||||||
if(5)
|
if(5)
|
||||||
dat+="Feed Channel [channel_name] created successfully.<BR><BR>"
|
dat+="Feed Channel [channel_name] created successfully.<BR><BR>"
|
||||||
dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Return</A><BR>"
|
dat+="<BR><A href='?src=[REF(src)];setScreen=[0]'>Return</A><BR>"
|
||||||
if(6)
|
if(6)
|
||||||
dat+="<B><FONT COLOR='maroon'>ERROR: Could not submit Feed story to Network.</B></FONT><HR><BR>"
|
dat+="<B><FONT COLOR='maroon'>ERROR: Could not submit Feed story to Network.</B></FONT><HR><BR>"
|
||||||
if(channel_name=="")
|
if(channel_name=="")
|
||||||
@@ -323,7 +323,7 @@ GLOBAL_LIST_EMPTY(allCasters)
|
|||||||
dat+="<FONT COLOR='maroon'>Channel author unverified.</FONT><BR>"
|
dat+="<FONT COLOR='maroon'>Channel author unverified.</FONT><BR>"
|
||||||
if(msg == "" || msg == "\[REDACTED\]")
|
if(msg == "" || msg == "\[REDACTED\]")
|
||||||
dat+="<FONT COLOR='maroon'>Invalid message body.</FONT><BR>"
|
dat+="<FONT COLOR='maroon'>Invalid message body.</FONT><BR>"
|
||||||
dat+="<BR><A href='?src=\ref[src];setScreen=[3]'>Return</A><BR>"
|
dat+="<BR><A href='?src=[REF(src)];setScreen=[3]'>Return</A><BR>"
|
||||||
if(7)
|
if(7)
|
||||||
dat+="<B><FONT COLOR='maroon'>ERROR: Could not submit Feed Channel to Network.</B></FONT><HR><BR>"
|
dat+="<B><FONT COLOR='maroon'>ERROR: Could not submit Feed Channel to Network.</B></FONT><HR><BR>"
|
||||||
var/list/existing_authors = list()
|
var/list/existing_authors = list()
|
||||||
@@ -345,7 +345,7 @@ GLOBAL_LIST_EMPTY(allCasters)
|
|||||||
dat+="<FONT COLOR='maroon'>Channel name already in use.</FONT><BR>"
|
dat+="<FONT COLOR='maroon'>Channel name already in use.</FONT><BR>"
|
||||||
if(scanned_user=="Unknown")
|
if(scanned_user=="Unknown")
|
||||||
dat+="<FONT COLOR='maroon'>Channel author unverified.</FONT><BR>"
|
dat+="<FONT COLOR='maroon'>Channel author unverified.</FONT><BR>"
|
||||||
dat+="<BR><A href='?src=\ref[src];setScreen=[2]'>Return</A><BR>"
|
dat+="<BR><A href='?src=[REF(src)];setScreen=[2]'>Return</A><BR>"
|
||||||
if(8)
|
if(8)
|
||||||
var/total_num=length(GLOB.news_network.network_channels)
|
var/total_num=length(GLOB.news_network.network_channels)
|
||||||
var/active_num=total_num
|
var/active_num=total_num
|
||||||
@@ -357,8 +357,8 @@ GLOBAL_LIST_EMPTY(allCasters)
|
|||||||
active_num--
|
active_num--
|
||||||
dat+="Network currently serves a total of [total_num] Feed channels, [active_num] of which are active, and a total of [message_num] Feed Stories."
|
dat+="Network currently serves a total of [total_num] Feed channels, [active_num] of which are active, and a total of [message_num] Feed Stories."
|
||||||
dat+="<BR><BR><B>Liquid Paper remaining:</B> [(paper_remaining) *100 ] cm^3"
|
dat+="<BR><BR><B>Liquid Paper remaining:</B> [(paper_remaining) *100 ] cm^3"
|
||||||
dat+="<BR><BR><A href='?src=\ref[src];print_paper=[0]'>Print Paper</A>"
|
dat+="<BR><BR><A href='?src=[REF(src)];print_paper=[0]'>Print Paper</A>"
|
||||||
dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Cancel</A>"
|
dat+="<BR><A href='?src=[REF(src)];setScreen=[0]'>Cancel</A>"
|
||||||
if(9)
|
if(9)
|
||||||
dat+="<B>[viewing_channel.channel_name]: </B><FONT SIZE=1>\[created by: <FONT COLOR='maroon'>[viewing_channel.returnAuthor(-1)]</FONT>\]</FONT><HR>"
|
dat+="<B>[viewing_channel.channel_name]: </B><FONT SIZE=1>\[created by: <FONT COLOR='maroon'>[viewing_channel.returnAuthor(-1)]</FONT>\]</FONT><HR>"
|
||||||
if(viewing_channel.censored)
|
if(viewing_channel.censored)
|
||||||
@@ -385,9 +385,9 @@ GLOBAL_LIST_EMPTY(allCasters)
|
|||||||
if(MESSAGE.locked)
|
if(MESSAGE.locked)
|
||||||
dat+="<b>Comments locked</b><br>"
|
dat+="<b>Comments locked</b><br>"
|
||||||
else
|
else
|
||||||
dat+="<a href='?src=\ref[src];new_comment=\ref[MESSAGE]'>Comment</a><br>"
|
dat+="<a href='?src=[REF(src)];new_comment=[REF(MESSAGE)]'>Comment</a><br>"
|
||||||
dat+="<BR><HR><A href='?src=\ref[src];refresh=1'>Refresh</A>"
|
dat+="<BR><HR><A href='?src=[REF(src)];refresh=1'>Refresh</A>"
|
||||||
dat+="<BR><A href='?src=\ref[src];setScreen=[1]'>Back</A>"
|
dat+="<BR><A href='?src=[REF(src)];setScreen=[1]'>Back</A>"
|
||||||
if(10)
|
if(10)
|
||||||
dat+="<B>Nanotrasen Feed Censorship Tool</B><BR>"
|
dat+="<B>Nanotrasen Feed Censorship Tool</B><BR>"
|
||||||
dat+="<FONT SIZE=1>NOTE: Due to the nature of news Feeds, total deletion of a Feed Story is not possible.<BR>"
|
dat+="<FONT SIZE=1>NOTE: Due to the nature of news Feeds, total deletion of a Feed Story is not possible.<BR>"
|
||||||
@@ -397,8 +397,8 @@ GLOBAL_LIST_EMPTY(allCasters)
|
|||||||
dat+="<I>No feed channels found active...</I><BR>"
|
dat+="<I>No feed channels found active...</I><BR>"
|
||||||
else
|
else
|
||||||
for(var/datum/newscaster/feed_channel/CHANNEL in GLOB.news_network.network_channels)
|
for(var/datum/newscaster/feed_channel/CHANNEL in GLOB.news_network.network_channels)
|
||||||
dat+="<A href='?src=\ref[src];pick_censor_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : ()]<BR>"
|
dat+="<A href='?src=[REF(src)];pick_censor_channel=[REF(CHANNEL)]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : ()]<BR>"
|
||||||
dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Cancel</A>"
|
dat+="<BR><A href='?src=[REF(src)];setScreen=[0]'>Cancel</A>"
|
||||||
if(11)
|
if(11)
|
||||||
dat+="<B>Nanotrasen D-Notice Handler</B><HR>"
|
dat+="<B>Nanotrasen D-Notice Handler</B><HR>"
|
||||||
dat+="<FONT SIZE=1>A D-Notice is to be bestowed upon the channel if the handling Authority deems it as harmful for the station's"
|
dat+="<FONT SIZE=1>A D-Notice is to be bestowed upon the channel if the handling Authority deems it as harmful for the station's"
|
||||||
@@ -408,24 +408,24 @@ GLOBAL_LIST_EMPTY(allCasters)
|
|||||||
dat+="<I>No feed channels found active...</I><BR>"
|
dat+="<I>No feed channels found active...</I><BR>"
|
||||||
else
|
else
|
||||||
for(var/datum/newscaster/feed_channel/CHANNEL in GLOB.news_network.network_channels)
|
for(var/datum/newscaster/feed_channel/CHANNEL in GLOB.news_network.network_channels)
|
||||||
dat+="<A href='?src=\ref[src];pick_d_notice=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : ()]<BR>"
|
dat+="<A href='?src=[REF(src)];pick_d_notice=[REF(CHANNEL)]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : ()]<BR>"
|
||||||
dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Back</A>"
|
dat+="<BR><A href='?src=[REF(src)];setScreen=[0]'>Back</A>"
|
||||||
if(12)
|
if(12)
|
||||||
dat+="<B>[viewing_channel.channel_name]: </B><FONT SIZE=1>\[ created by: <FONT COLOR='maroon'>[viewing_channel.returnAuthor(-1)]</FONT> \]</FONT><BR>"
|
dat+="<B>[viewing_channel.channel_name]: </B><FONT SIZE=1>\[ created by: <FONT COLOR='maroon'>[viewing_channel.returnAuthor(-1)]</FONT> \]</FONT><BR>"
|
||||||
dat+="<FONT SIZE=2><A href='?src=\ref[src];censor_channel_author=\ref[viewing_channel]'>[(viewing_channel.authorCensor) ? ("Undo Author censorship") : ("Censor channel Author")]</A></FONT><HR>"
|
dat+="<FONT SIZE=2><A href='?src=[REF(src)];censor_channel_author=[REF(viewing_channel)]'>[(viewing_channel.authorCensor) ? ("Undo Author censorship") : ("Censor channel Author")]</A></FONT><HR>"
|
||||||
if(isemptylist(viewing_channel.messages))
|
if(isemptylist(viewing_channel.messages))
|
||||||
dat+="<I>No feed messages found in channel...</I><BR>"
|
dat+="<I>No feed messages found in channel...</I><BR>"
|
||||||
else
|
else
|
||||||
for(var/datum/newscaster/feed_message/MESSAGE in viewing_channel.messages)
|
for(var/datum/newscaster/feed_message/MESSAGE in viewing_channel.messages)
|
||||||
dat+="-[MESSAGE.returnBody(-1)] <BR><FONT SIZE=1>\[Story by <FONT COLOR='maroon'>[MESSAGE.returnAuthor(-1)]</FONT>\]</FONT><BR>"
|
dat+="-[MESSAGE.returnBody(-1)] <BR><FONT SIZE=1>\[Story by <FONT COLOR='maroon'>[MESSAGE.returnAuthor(-1)]</FONT>\]</FONT><BR>"
|
||||||
dat+="<FONT SIZE=2><A href='?src=\ref[src];censor_channel_story_body=\ref[MESSAGE]'>[(MESSAGE.bodyCensor) ? ("Undo story censorship") : ("Censor story")]</A> - <A href='?src=\ref[src];censor_channel_story_author=\ref[MESSAGE]'>[(MESSAGE.authorCensor) ? ("Undo Author Censorship") : ("Censor message Author")]</A></FONT><BR>"
|
dat+="<FONT SIZE=2><A href='?src=[REF(src)];censor_channel_story_body=[REF(MESSAGE)]'>[(MESSAGE.bodyCensor) ? ("Undo story censorship") : ("Censor story")]</A> - <A href='?src=[REF(src)];censor_channel_story_author=[REF(MESSAGE)]'>[(MESSAGE.authorCensor) ? ("Undo Author Censorship") : ("Censor message Author")]</A></FONT><BR>"
|
||||||
dat+="[MESSAGE.comments.len] comment[MESSAGE.comments.len > 1 ? "s" : ""]: <a href='?src=\ref[src];lock_comment=\ref[MESSAGE]'>[MESSAGE.locked ? "Unlock" : "Lock"]</a><br>"
|
dat+="[MESSAGE.comments.len] comment[MESSAGE.comments.len > 1 ? "s" : ""]: <a href='?src=[REF(src)];lock_comment=[REF(MESSAGE)]'>[MESSAGE.locked ? "Unlock" : "Lock"]</a><br>"
|
||||||
for(var/datum/newscaster/feed_comment/comment in MESSAGE.comments)
|
for(var/datum/newscaster/feed_comment/comment in MESSAGE.comments)
|
||||||
dat+="[comment.body] <a href='?src=\ref[src];del_comment=\ref[comment];del_comment_msg=\ref[MESSAGE]'>X</a><br><font size=1>[comment.author] [comment.time_stamp]</font><br>"
|
dat+="[comment.body] <a href='?src=[REF(src)];del_comment=[REF(comment)];del_comment_msg=[REF(MESSAGE)]'>X</a><br><font size=1>[comment.author] [comment.time_stamp]</font><br>"
|
||||||
dat+="<BR><A href='?src=\ref[src];setScreen=[10]'>Back</A>"
|
dat+="<BR><A href='?src=[REF(src)];setScreen=[10]'>Back</A>"
|
||||||
if(13)
|
if(13)
|
||||||
dat+="<B>[viewing_channel.channel_name]: </B><FONT SIZE=1>\[ created by: <FONT COLOR='maroon'>[viewing_channel.returnAuthor(-1)]</FONT> \]</FONT><BR>"
|
dat+="<B>[viewing_channel.channel_name]: </B><FONT SIZE=1>\[ created by: <FONT COLOR='maroon'>[viewing_channel.returnAuthor(-1)]</FONT> \]</FONT><BR>"
|
||||||
dat+="Channel messages listed below. If you deem them dangerous to the station, you can <A href='?src=\ref[src];toggle_d_notice=\ref[viewing_channel]'>Bestow a D-Notice upon the channel</A>.<HR>"
|
dat+="Channel messages listed below. If you deem them dangerous to the station, you can <A href='?src=[REF(src)];toggle_d_notice=[REF(viewing_channel)]'>Bestow a D-Notice upon the channel</A>.<HR>"
|
||||||
if(viewing_channel.censored)
|
if(viewing_channel.censored)
|
||||||
dat+="<FONT COLOR='red'><B>ATTENTION: </B></FONT>This channel has been deemed as threatening to the welfare of the station, and marked with a Nanotrasen D-Notice.<BR>"
|
dat+="<FONT COLOR='red'><B>ATTENTION: </B></FONT>This channel has been deemed as threatening to the welfare of the station, and marked with a Nanotrasen D-Notice.<BR>"
|
||||||
dat+="No further feed story additions are allowed while the D-Notice is in effect.</FONT><BR><BR>"
|
dat+="No further feed story additions are allowed while the D-Notice is in effect.</FONT><BR><BR>"
|
||||||
@@ -435,7 +435,7 @@ GLOBAL_LIST_EMPTY(allCasters)
|
|||||||
else
|
else
|
||||||
for(var/datum/newscaster/feed_message/MESSAGE in viewing_channel.messages)
|
for(var/datum/newscaster/feed_message/MESSAGE in viewing_channel.messages)
|
||||||
dat+="-[MESSAGE.returnBody(-1)] <BR><FONT SIZE=1>\[Story by <FONT COLOR='maroon'>[MESSAGE.returnAuthor(-1)]</FONT>\]</FONT><BR>"
|
dat+="-[MESSAGE.returnBody(-1)] <BR><FONT SIZE=1>\[Story by <FONT COLOR='maroon'>[MESSAGE.returnAuthor(-1)]</FONT>\]</FONT><BR>"
|
||||||
dat+="<BR><A href='?src=\ref[src];setScreen=[11]'>Back</A>"
|
dat+="<BR><A href='?src=[REF(src)];setScreen=[11]'>Back</A>"
|
||||||
if(14)
|
if(14)
|
||||||
dat+="<B>Wanted Issue Handler:</B>"
|
dat+="<B>Wanted Issue Handler:</B>"
|
||||||
var/wanted_already = 0
|
var/wanted_already = 0
|
||||||
@@ -446,20 +446,20 @@ GLOBAL_LIST_EMPTY(allCasters)
|
|||||||
if(wanted_already)
|
if(wanted_already)
|
||||||
dat+="<FONT SIZE=2><BR><I>A wanted issue is already in Feed Circulation. You can edit or cancel it below.</FONT></I>"
|
dat+="<FONT SIZE=2><BR><I>A wanted issue is already in Feed Circulation. You can edit or cancel it below.</FONT></I>"
|
||||||
dat+="<HR>"
|
dat+="<HR>"
|
||||||
dat+="<A href='?src=\ref[src];set_wanted_name=1'>Criminal Name</A>: [channel_name] <BR>"
|
dat+="<A href='?src=[REF(src)];set_wanted_name=1'>Criminal Name</A>: [channel_name] <BR>"
|
||||||
dat+="<A href='?src=\ref[src];set_wanted_desc=1'>Description</A>: [msg] <BR>"
|
dat+="<A href='?src=[REF(src)];set_wanted_desc=1'>Description</A>: [msg] <BR>"
|
||||||
dat+="<A href='?src=\ref[src];set_attachment=1'>Attach Photo</A>: [(photo ? "Photo Attached" : "No Photo")]</BR>"
|
dat+="<A href='?src=[REF(src)];set_attachment=1'>Attach Photo</A>: [(photo ? "Photo Attached" : "No Photo")]</BR>"
|
||||||
if(wanted_already)
|
if(wanted_already)
|
||||||
dat+="<B>Wanted Issue created by:</B><FONT COLOR='green'>[GLOB.news_network.wanted_issue.scannedUser]</FONT><BR>"
|
dat+="<B>Wanted Issue created by:</B><FONT COLOR='green'>[GLOB.news_network.wanted_issue.scannedUser]</FONT><BR>"
|
||||||
else
|
else
|
||||||
dat+="<B>Wanted Issue will be created under prosecutor:</B><FONT COLOR='green'>[scanned_user]</FONT><BR>"
|
dat+="<B>Wanted Issue will be created under prosecutor:</B><FONT COLOR='green'>[scanned_user]</FONT><BR>"
|
||||||
dat+="<BR><A href='?src=\ref[src];submit_wanted=[end_param]'>[(wanted_already) ? ("Edit Issue") : ("Submit")]</A>"
|
dat+="<BR><A href='?src=[REF(src)];submit_wanted=[end_param]'>[(wanted_already) ? ("Edit Issue") : ("Submit")]</A>"
|
||||||
if(wanted_already)
|
if(wanted_already)
|
||||||
dat+="<BR><A href='?src=\ref[src];cancel_wanted=1'>Take down Issue</A>"
|
dat+="<BR><A href='?src=[REF(src)];cancel_wanted=1'>Take down Issue</A>"
|
||||||
dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Cancel</A>"
|
dat+="<BR><A href='?src=[REF(src)];setScreen=[0]'>Cancel</A>"
|
||||||
if(15)
|
if(15)
|
||||||
dat+="<FONT COLOR='green'>Wanted issue for [channel_name] is now in Network Circulation.</FONT><BR><BR>"
|
dat+="<FONT COLOR='green'>Wanted issue for [channel_name] is now in Network Circulation.</FONT><BR><BR>"
|
||||||
dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Return</A><BR>"
|
dat+="<BR><A href='?src=[REF(src)];setScreen=[0]'>Return</A><BR>"
|
||||||
if(16)
|
if(16)
|
||||||
dat+="<B><FONT COLOR='maroon'>ERROR: Wanted Issue rejected by Network.</B></FONT><HR><BR>"
|
dat+="<B><FONT COLOR='maroon'>ERROR: Wanted Issue rejected by Network.</B></FONT><HR><BR>"
|
||||||
if(channel_name=="" || channel_name == "\[REDACTED\]")
|
if(channel_name=="" || channel_name == "\[REDACTED\]")
|
||||||
@@ -468,10 +468,10 @@ GLOBAL_LIST_EMPTY(allCasters)
|
|||||||
dat+="<FONT COLOR='maroon'>Issue author unverified.</FONT><BR>"
|
dat+="<FONT COLOR='maroon'>Issue author unverified.</FONT><BR>"
|
||||||
if(msg == "" || msg == "\[REDACTED\]")
|
if(msg == "" || msg == "\[REDACTED\]")
|
||||||
dat+="<FONT COLOR='maroon'>Invalid description.</FONT><BR>"
|
dat+="<FONT COLOR='maroon'>Invalid description.</FONT><BR>"
|
||||||
dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Return</A><BR>"
|
dat+="<BR><A href='?src=[REF(src)];setScreen=[0]'>Return</A><BR>"
|
||||||
if(17)
|
if(17)
|
||||||
dat+="<B>Wanted Issue successfully deleted from Circulation</B><BR>"
|
dat+="<B>Wanted Issue successfully deleted from Circulation</B><BR>"
|
||||||
dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Return</A><BR>"
|
dat+="<BR><A href='?src=[REF(src)];setScreen=[0]'>Return</A><BR>"
|
||||||
if(18)
|
if(18)
|
||||||
if(GLOB.news_network.wanted_issue.active)
|
if(GLOB.news_network.wanted_issue.active)
|
||||||
dat+="<B><FONT COLOR ='maroon'>-- STATIONWIDE WANTED ISSUE --</B></FONT><BR><FONT SIZE=2>\[Submitted by: <FONT COLOR='green'>[GLOB.news_network.wanted_issue.scannedUser]</FONT>\]</FONT><HR>"
|
dat+="<B><FONT COLOR ='maroon'>-- STATIONWIDE WANTED ISSUE --</B></FONT><BR><FONT SIZE=2>\[Submitted by: <FONT COLOR='green'>[GLOB.news_network.wanted_issue.scannedUser]</FONT>\]</FONT><HR>"
|
||||||
@@ -485,16 +485,16 @@ GLOBAL_LIST_EMPTY(allCasters)
|
|||||||
dat+="None"
|
dat+="None"
|
||||||
else
|
else
|
||||||
dat+="No current wanted issue found.<BR><BR>"
|
dat+="No current wanted issue found.<BR><BR>"
|
||||||
dat+="<BR><BR><A href='?src=\ref[src];setScreen=[0]'>Back</A><BR>"
|
dat+="<BR><BR><A href='?src=[REF(src)];setScreen=[0]'>Back</A><BR>"
|
||||||
if(19)
|
if(19)
|
||||||
dat+="<FONT COLOR='green'>Wanted issue for [channel_name] successfully edited.</FONT><BR><BR>"
|
dat+="<FONT COLOR='green'>Wanted issue for [channel_name] successfully edited.</FONT><BR><BR>"
|
||||||
dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Return</A><BR>"
|
dat+="<BR><A href='?src=[REF(src)];setScreen=[0]'>Return</A><BR>"
|
||||||
if(20)
|
if(20)
|
||||||
dat+="<FONT COLOR='green'>Printing successful. Please receive your newspaper from the bottom of the machine.</FONT><BR><BR>"
|
dat+="<FONT COLOR='green'>Printing successful. Please receive your newspaper from the bottom of the machine.</FONT><BR><BR>"
|
||||||
dat+="<A href='?src=\ref[src];setScreen=[0]'>Return</A>"
|
dat+="<A href='?src=[REF(src)];setScreen=[0]'>Return</A>"
|
||||||
if(21)
|
if(21)
|
||||||
dat+="<FONT COLOR='maroon'>Unable to print newspaper. Insufficient paper. Please notify maintenance personnel to refill machine storage.</FONT><BR><BR>"
|
dat+="<FONT COLOR='maroon'>Unable to print newspaper. Insufficient paper. Please notify maintenance personnel to refill machine storage.</FONT><BR><BR>"
|
||||||
dat+="<A href='?src=\ref[src];setScreen=[0]'>Return</A>"
|
dat+="<A href='?src=[REF(src)];setScreen=[0]'>Return</A>"
|
||||||
var/datum/browser/popup = new(human_or_robot_user, "newscaster_main", "Newscaster Unit #[unit_no]", 400, 600)
|
var/datum/browser/popup = new(human_or_robot_user, "newscaster_main", "Newscaster Unit #[unit_no]", 400, 600)
|
||||||
popup.set_content(dat)
|
popup.set_content(dat)
|
||||||
popup.set_title_image(human_or_robot_user.browse_rsc_icon(icon, icon_state))
|
popup.set_title_image(human_or_robot_user.browse_rsc_icon(icon, icon_state))
|
||||||
@@ -933,7 +933,7 @@ GLOBAL_LIST_EMPTY(allCasters)
|
|||||||
dat+="</ul>"
|
dat+="</ul>"
|
||||||
if(scribble_page==curr_page)
|
if(scribble_page==curr_page)
|
||||||
dat+="<BR><I>There is a small scribble near the end of this page... It reads: \"[scribble]\"</I>"
|
dat+="<BR><I>There is a small scribble near the end of this page... It reads: \"[scribble]\"</I>"
|
||||||
dat+= "<HR><DIV STYLE='float:right;'><A href='?src=\ref[src];next_page=1'>Next Page</A></DIV> <div style='float:left;'><A href='?src=\ref[human_user];mach_close=newspaper_main'>Done reading</A></DIV>"
|
dat+= "<HR><DIV STYLE='float:right;'><A href='?src=[REF(src)];next_page=1'>Next Page</A></DIV> <div style='float:left;'><A href='?src=[REF(human_user)];mach_close=newspaper_main'>Done reading</A></DIV>"
|
||||||
if(1) // X channel pages inbetween.
|
if(1) // X channel pages inbetween.
|
||||||
for(var/datum/newscaster/feed_channel/NP in news_content)
|
for(var/datum/newscaster/feed_channel/NP in news_content)
|
||||||
pages++
|
pages++
|
||||||
@@ -962,7 +962,7 @@ GLOBAL_LIST_EMPTY(allCasters)
|
|||||||
dat+="</ul>"
|
dat+="</ul>"
|
||||||
if(scribble_page==curr_page)
|
if(scribble_page==curr_page)
|
||||||
dat+="<BR><I>There is a small scribble near the end of this page... It reads: \"[scribble]\"</I>"
|
dat+="<BR><I>There is a small scribble near the end of this page... It reads: \"[scribble]\"</I>"
|
||||||
dat+= "<BR><HR><DIV STYLE='float:left;'><A href='?src=\ref[src];prev_page=1'>Previous Page</A></DIV> <DIV STYLE='float:right;'><A href='?src=\ref[src];next_page=1'>Next Page</A></DIV>"
|
dat+= "<BR><HR><DIV STYLE='float:left;'><A href='?src=[REF(src)];prev_page=1'>Previous Page</A></DIV> <DIV STYLE='float:right;'><A href='?src=[REF(src)];next_page=1'>Next Page</A></DIV>"
|
||||||
if(2) //Last page
|
if(2) //Last page
|
||||||
for(var/datum/newscaster/feed_channel/NP in news_content)
|
for(var/datum/newscaster/feed_channel/NP in news_content)
|
||||||
pages++
|
pages++
|
||||||
@@ -980,7 +980,7 @@ GLOBAL_LIST_EMPTY(allCasters)
|
|||||||
dat+="<I>Apart from some uninteresting classified ads, there's nothing on this page...</I>"
|
dat+="<I>Apart from some uninteresting classified ads, there's nothing on this page...</I>"
|
||||||
if(scribble_page==curr_page)
|
if(scribble_page==curr_page)
|
||||||
dat+="<BR><I>There is a small scribble near the end of this page... It reads: \"[scribble]\"</I>"
|
dat+="<BR><I>There is a small scribble near the end of this page... It reads: \"[scribble]\"</I>"
|
||||||
dat+= "<HR><DIV STYLE='float:left;'><A href='?src=\ref[src];prev_page=1'>Previous Page</A></DIV>"
|
dat+= "<HR><DIV STYLE='float:left;'><A href='?src=[REF(src)];prev_page=1'>Previous Page</A></DIV>"
|
||||||
dat+="<BR><HR><div align='center'>[curr_page+1]</div>"
|
dat+="<BR><HR><div align='center'>[curr_page+1]</div>"
|
||||||
human_user << browse(dat, "window=newspaper_main;size=300x400")
|
human_user << browse(dat, "window=newspaper_main;size=300x400")
|
||||||
onclose(human_user, "newspaper_main")
|
onclose(human_user, "newspaper_main")
|
||||||
|
|||||||
@@ -15,32 +15,32 @@
|
|||||||
if(..())
|
if(..())
|
||||||
return 1
|
return 1
|
||||||
var/dat = {"
|
var/dat = {"
|
||||||
PIPING LAYER: <A href='?src=\ref[src];layer_down=1'>--</A><b>[piping_layer]</b><A href='?src=\ref[src];layer_up=1'>++</A><BR>
|
PIPING LAYER: <A href='?src=[REF(src)];layer_down=1'>--</A><b>[piping_layer]</b><A href='?src=[REF(src)];layer_up=1'>++</A><BR>
|
||||||
<b>Pipes:</b><BR>
|
<b>Pipes:</b><BR>
|
||||||
<A href='?src=\ref[src];make=[/obj/machinery/atmospherics/pipe/simple];dir=1'>Pipe</A><BR>
|
<A href='?src=[REF(src)];make=[/obj/machinery/atmospherics/pipe/simple];dir=1'>Pipe</A><BR>
|
||||||
<A href='?src=\ref[src];make=[/obj/machinery/atmospherics/pipe/simple];dir=5'>Bent Pipe</A><BR>
|
<A href='?src=[REF(src)];make=[/obj/machinery/atmospherics/pipe/simple];dir=5'>Bent Pipe</A><BR>
|
||||||
<A href='?src=\ref[src];make=[/obj/machinery/atmospherics/pipe/manifold];dir=1'>Manifold</A><BR>
|
<A href='?src=[REF(src)];make=[/obj/machinery/atmospherics/pipe/manifold];dir=1'>Manifold</A><BR>
|
||||||
<A href='?src=\ref[src];make=[/obj/machinery/atmospherics/pipe/layer_manifold];dir=1'>Layer Manifold</A><BR>
|
<A href='?src=[REF(src)];make=[/obj/machinery/atmospherics/pipe/layer_manifold];dir=1'>Layer Manifold</A><BR>
|
||||||
<A href='?src=\ref[src];make=[/obj/machinery/atmospherics/pipe/manifold4w];dir=1'>4-Way Manifold</A><BR>
|
<A href='?src=[REF(src)];make=[/obj/machinery/atmospherics/pipe/manifold4w];dir=1'>4-Way Manifold</A><BR>
|
||||||
<A href='?src=\ref[src];make=[/obj/machinery/atmospherics/components/binary/valve];dir=1'>Manual Valve</A><BR>
|
<A href='?src=[REF(src)];make=[/obj/machinery/atmospherics/components/binary/valve];dir=1'>Manual Valve</A><BR>
|
||||||
<A href='?src=\ref[src];make=[/obj/machinery/atmospherics/components/binary/valve/digital];dir=1'>Digital Valve</A><BR>
|
<A href='?src=[REF(src)];make=[/obj/machinery/atmospherics/components/binary/valve/digital];dir=1'>Digital Valve</A><BR>
|
||||||
<b>Devices:</b><BR>
|
<b>Devices:</b><BR>
|
||||||
<A href='?src=\ref[src];make=[/obj/machinery/atmospherics/components/unary/portables_connector];dir=1'>Connector</A><BR>
|
<A href='?src=[REF(src)];make=[/obj/machinery/atmospherics/components/unary/portables_connector];dir=1'>Connector</A><BR>
|
||||||
<A href='?src=\ref[src];make=[/obj/machinery/atmospherics/components/unary/vent_pump];dir=1'>Vent</A><BR>
|
<A href='?src=[REF(src)];make=[/obj/machinery/atmospherics/components/unary/vent_pump];dir=1'>Vent</A><BR>
|
||||||
<A href='?src=\ref[src];make=[/obj/machinery/atmospherics/components/binary/pump];dir=1'>Gas Pump</A><BR>
|
<A href='?src=[REF(src)];make=[/obj/machinery/atmospherics/components/binary/pump];dir=1'>Gas Pump</A><BR>
|
||||||
<A href='?src=\ref[src];make=[/obj/machinery/atmospherics/components/binary/passive_gate];dir=1'>Passive Gate</A><BR>
|
<A href='?src=[REF(src)];make=[/obj/machinery/atmospherics/components/binary/passive_gate];dir=1'>Passive Gate</A><BR>
|
||||||
<A href='?src=\ref[src];make=[/obj/machinery/atmospherics/components/binary/volume_pump];dir=1'>Volume Pump</A><BR>
|
<A href='?src=[REF(src)];make=[/obj/machinery/atmospherics/components/binary/volume_pump];dir=1'>Volume Pump</A><BR>
|
||||||
<A href='?src=\ref[src];make=[/obj/machinery/atmospherics/components/unary/vent_scrubber];dir=1'>Scrubber</A><BR>
|
<A href='?src=[REF(src)];make=[/obj/machinery/atmospherics/components/unary/vent_scrubber];dir=1'>Scrubber</A><BR>
|
||||||
<A href='?src=\ref[src];makemeter=1'>Meter</A><BR>
|
<A href='?src=[REF(src)];makemeter=1'>Meter</A><BR>
|
||||||
<A href='?src=\ref[src];make=[/obj/machinery/atmospherics/components/trinary/filter];dir=1'>Gas Filter</A><BR>
|
<A href='?src=[REF(src)];make=[/obj/machinery/atmospherics/components/trinary/filter];dir=1'>Gas Filter</A><BR>
|
||||||
<A href='?src=\ref[src];make=[/obj/machinery/atmospherics/components/trinary/mixer];dir=1'>Gas Mixer</A><BR>
|
<A href='?src=[REF(src)];make=[/obj/machinery/atmospherics/components/trinary/mixer];dir=1'>Gas Mixer</A><BR>
|
||||||
<b>Heat exchange:</b><BR>
|
<b>Heat exchange:</b><BR>
|
||||||
<A href='?src=\ref[src];make=[/obj/machinery/atmospherics/pipe/heat_exchanging/simple];dir=1'>Pipe</A><BR>
|
<A href='?src=[REF(src)];make=[/obj/machinery/atmospherics/pipe/heat_exchanging/simple];dir=1'>Pipe</A><BR>
|
||||||
<A href='?src=\ref[src];make=[/obj/machinery/atmospherics/pipe/heat_exchanging/simple];dir=5'>Bent Pipe</A><BR>
|
<A href='?src=[REF(src)];make=[/obj/machinery/atmospherics/pipe/heat_exchanging/simple];dir=5'>Bent Pipe</A><BR>
|
||||||
<A href='?src=\ref[src];make=[/obj/machinery/atmospherics/pipe/heat_exchanging/manifold];dir=1'>Manifold</A><BR>
|
<A href='?src=[REF(src)];make=[/obj/machinery/atmospherics/pipe/heat_exchanging/manifold];dir=1'>Manifold</A><BR>
|
||||||
<A href='?src=\ref[src];make=[/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w];dir=1'>4-Way Manifold</A><BR>
|
<A href='?src=[REF(src)];make=[/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w];dir=1'>4-Way Manifold</A><BR>
|
||||||
<A href='?src=\ref[src];make=[/obj/machinery/atmospherics/pipe/heat_exchanging/junction];dir=1'>Junction</A><BR>
|
<A href='?src=[REF(src)];make=[/obj/machinery/atmospherics/pipe/heat_exchanging/junction];dir=1'>Junction</A><BR>
|
||||||
<A href='?src=\ref[src];make=[/obj/machinery/atmospherics/components/unary/heat_exchanger];dir=1'>Heat Exchanger</A><BR>
|
<A href='?src=[REF(src)];make=[/obj/machinery/atmospherics/components/unary/heat_exchanger];dir=1'>Heat Exchanger</A><BR>
|
||||||
"}
|
"}
|
||||||
|
|
||||||
|
|
||||||
@@ -148,15 +148,15 @@ Nah
|
|||||||
return 1
|
return 1
|
||||||
|
|
||||||
var/dat = {"<b>Disposal Pipes</b><br><br>
|
var/dat = {"<b>Disposal Pipes</b><br><br>
|
||||||
<A href='?src=\ref[src];dmake=[DISP_PIPE_STRAIGHT]'>Pipe</A><BR>
|
<A href='?src=[REF(src)];dmake=[DISP_PIPE_STRAIGHT]'>Pipe</A><BR>
|
||||||
<A href='?src=\ref[src];dmake=[DISP_PIPE_BENT]'>Bent Pipe</A><BR>
|
<A href='?src=[REF(src)];dmake=[DISP_PIPE_BENT]'>Bent Pipe</A><BR>
|
||||||
<A href='?src=\ref[src];dmake=[DISP_JUNCTION]'>Junction</A><BR>
|
<A href='?src=[REF(src)];dmake=[DISP_JUNCTION]'>Junction</A><BR>
|
||||||
<A href='?src=\ref[src];dmake=[DISP_YJUNCTION]'>Y-Junction</A><BR>
|
<A href='?src=[REF(src)];dmake=[DISP_YJUNCTION]'>Y-Junction</A><BR>
|
||||||
<A href='?src=\ref[src];dmake=[DISP_END_TRUNK]'>Trunk</A><BR>
|
<A href='?src=[REF(src)];dmake=[DISP_END_TRUNK]'>Trunk</A><BR>
|
||||||
<A href='?src=\ref[src];dmake=[DISP_END_BIN]'>Bin</A><BR>
|
<A href='?src=[REF(src)];dmake=[DISP_END_BIN]'>Bin</A><BR>
|
||||||
<A href='?src=\ref[src];dmake=[DISP_END_OUTLET]'>Outlet</A><BR>
|
<A href='?src=[REF(src)];dmake=[DISP_END_OUTLET]'>Outlet</A><BR>
|
||||||
<A href='?src=\ref[src];dmake=[DISP_END_CHUTE]'>Chute</A><BR>
|
<A href='?src=[REF(src)];dmake=[DISP_END_CHUTE]'>Chute</A><BR>
|
||||||
<A href='?src=\ref[src];dmake=[DISP_SORTJUNCTION]'>Sort Junction</A><BR>
|
<A href='?src=[REF(src)];dmake=[DISP_SORTJUNCTION]'>Sort Junction</A><BR>
|
||||||
"}
|
"}
|
||||||
|
|
||||||
user << browse("<HEAD><TITLE>[src]</TITLE></HEAD><TT>[dat]</TT>", "window=pipedispenser")
|
user << browse("<HEAD><TITLE>[src]</TITLE></HEAD><TT>[dat]</TT>", "window=pipedispenser")
|
||||||
@@ -198,16 +198,16 @@ Nah
|
|||||||
return 1
|
return 1
|
||||||
|
|
||||||
var/dat = {"<B>Transit Tubes:</B><BR>
|
var/dat = {"<B>Transit Tubes:</B><BR>
|
||||||
<A href='?src=\ref[src];tube=[TRANSIT_TUBE_STRAIGHT]'>Straight Tube</A><BR>
|
<A href='?src=[REF(src)];tube=[TRANSIT_TUBE_STRAIGHT]'>Straight Tube</A><BR>
|
||||||
<A href='?src=\ref[src];tube=[TRANSIT_TUBE_STRAIGHT_CROSSING]'>Straight Tube with Crossing</A><BR>
|
<A href='?src=[REF(src)];tube=[TRANSIT_TUBE_STRAIGHT_CROSSING]'>Straight Tube with Crossing</A><BR>
|
||||||
<A href='?src=\ref[src];tube=[TRANSIT_TUBE_CURVED]'>Curved Tube</A><BR>
|
<A href='?src=[REF(src)];tube=[TRANSIT_TUBE_CURVED]'>Curved Tube</A><BR>
|
||||||
<A href='?src=\ref[src];tube=[TRANSIT_TUBE_DIAGONAL]'>Diagonal Tube</A><BR>
|
<A href='?src=[REF(src)];tube=[TRANSIT_TUBE_DIAGONAL]'>Diagonal Tube</A><BR>
|
||||||
<A href='?src=\ref[src];tube=[TRANSIT_TUBE_DIAGONAL_CROSSING]'>Diagonal Tube with Crossing</A><BR>
|
<A href='?src=[REF(src)];tube=[TRANSIT_TUBE_DIAGONAL_CROSSING]'>Diagonal Tube with Crossing</A><BR>
|
||||||
<A href='?src=\ref[src];tube=[TRANSIT_TUBE_JUNCTION]'>Junction</A><BR>
|
<A href='?src=[REF(src)];tube=[TRANSIT_TUBE_JUNCTION]'>Junction</A><BR>
|
||||||
<b>Station Equipment:</b><BR>
|
<b>Station Equipment:</b><BR>
|
||||||
<A href='?src=\ref[src];tube=[TRANSIT_TUBE_STATION]'>Through Tube Station</A><BR>
|
<A href='?src=[REF(src)];tube=[TRANSIT_TUBE_STATION]'>Through Tube Station</A><BR>
|
||||||
<A href='?src=\ref[src];tube=[TRANSIT_TUBE_TERMINUS]'>Terminus Tube Station</A><BR>
|
<A href='?src=[REF(src)];tube=[TRANSIT_TUBE_TERMINUS]'>Terminus Tube Station</A><BR>
|
||||||
<A href='?src=\ref[src];tube=[TRANSIT_TUBE_POD]'>Transit Tube Pod</A><BR>
|
<A href='?src=[REF(src)];tube=[TRANSIT_TUBE_POD]'>Transit Tube Pod</A><BR>
|
||||||
"}
|
"}
|
||||||
|
|
||||||
user << browse("<HEAD><TITLE>[src]</TITLE></HEAD><TT>[dat]</TT>", "window=pipedispenser")
|
user << browse("<HEAD><TITLE>[src]</TITLE></HEAD><TT>[dat]</TT>", "window=pipedispenser")
|
||||||
|
|||||||
@@ -166,15 +166,15 @@
|
|||||||
|
|
||||||
/obj/machinery/porta_turret/interact(mob/user)
|
/obj/machinery/porta_turret/interact(mob/user)
|
||||||
var/dat
|
var/dat
|
||||||
dat += "Status: <a href='?src=\ref[src];power=1'>[on ? "On" : "Off"]</a><br>"
|
dat += "Status: <a href='?src=[REF(src)];power=1'>[on ? "On" : "Off"]</a><br>"
|
||||||
dat += "Behaviour controls are [locked ? "locked" : "unlocked"]<br>"
|
dat += "Behaviour controls are [locked ? "locked" : "unlocked"]<br>"
|
||||||
|
|
||||||
if(!locked)
|
if(!locked)
|
||||||
dat += "Check for Weapon Authorization: <A href='?src=\ref[src];operation=authweapon'>[auth_weapons ? "Yes" : "No"]</A><BR>"
|
dat += "Check for Weapon Authorization: <A href='?src=[REF(src)];operation=authweapon'>[auth_weapons ? "Yes" : "No"]</A><BR>"
|
||||||
dat += "Check Security Records: <A href='?src=\ref[src];operation=checkrecords'>[check_records ? "Yes" : "No"]</A><BR>"
|
dat += "Check Security Records: <A href='?src=[REF(src)];operation=checkrecords'>[check_records ? "Yes" : "No"]</A><BR>"
|
||||||
dat += "Neutralize Identified Criminals: <A href='?src=\ref[src];operation=shootcrooks'>[criminals ? "Yes" : "No"]</A><BR>"
|
dat += "Neutralize Identified Criminals: <A href='?src=[REF(src)];operation=shootcrooks'>[criminals ? "Yes" : "No"]</A><BR>"
|
||||||
dat += "Neutralize All Non-Security and Non-Command Personnel: <A href='?src=\ref[src];operation=shootall'>[stun_all ? "Yes" : "No"]</A><BR>"
|
dat += "Neutralize All Non-Security and Non-Command Personnel: <A href='?src=[REF(src)];operation=shootall'>[stun_all ? "Yes" : "No"]</A><BR>"
|
||||||
dat += "Neutralize All Unidentified Life Signs: <A href='?src=\ref[src];operation=checkxenos'>[check_anomalies ? "Yes" : "No"]</A><BR>"
|
dat += "Neutralize All Unidentified Life Signs: <A href='?src=[REF(src)];operation=checkxenos'>[check_anomalies ? "Yes" : "No"]</A><BR>"
|
||||||
|
|
||||||
var/datum/browser/popup = new(user, "autosec", "Automatic Portable Turret Installation", 300, 300)
|
var/datum/browser/popup = new(user, "autosec", "Automatic Portable Turret Installation", 300, 300)
|
||||||
popup.set_content(dat)
|
popup.set_content(dat)
|
||||||
@@ -747,8 +747,8 @@
|
|||||||
else
|
else
|
||||||
if(!issilicon(user) && !IsAdminGhost(user))
|
if(!issilicon(user) && !IsAdminGhost(user))
|
||||||
t += "<div class='notice icon'>Swipe ID card to lock interface</div>"
|
t += "<div class='notice icon'>Swipe ID card to lock interface</div>"
|
||||||
t += "Turrets [enabled?"activated":"deactivated"] - <A href='?src=\ref[src];toggleOn=1'>[enabled?"Disable":"Enable"]?</a><br>"
|
t += "Turrets [enabled?"activated":"deactivated"] - <A href='?src=[REF(src)];toggleOn=1'>[enabled?"Disable":"Enable"]?</a><br>"
|
||||||
t += "Currently set for [lethal?"lethal":"stun repeatedly"] - <A href='?src=\ref[src];toggleLethal=1'>Change to [lethal?"Stun repeatedly":"Lethal"]?</a><br>"
|
t += "Currently set for [lethal?"lethal":"stun repeatedly"] - <A href='?src=[REF(src)];toggleLethal=1'>Change to [lethal?"Stun repeatedly":"Lethal"]?</a><br>"
|
||||||
|
|
||||||
var/datum/browser/popup = new(user, "turretid", "Turret Control Panel ([area.name])")
|
var/datum/browser/popup = new(user, "turretid", "Turret Control Panel ([area.name])")
|
||||||
popup.set_content(t)
|
popup.set_content(t)
|
||||||
@@ -901,7 +901,7 @@
|
|||||||
if(team_color == "red" && istype(H.wear_suit, /obj/item/clothing/suit/bluetag))
|
if(team_color == "red" && istype(H.wear_suit, /obj/item/clothing/suit/bluetag))
|
||||||
return
|
return
|
||||||
|
|
||||||
var/dat = "Status: <a href='?src=\ref[src];power=1'>[on ? "On" : "Off"]</a>"
|
var/dat = "Status: <a href='?src=[REF(src)];power=1'>[on ? "On" : "Off"]</a>"
|
||||||
|
|
||||||
var/datum/browser/popup = new(user, "autosec", "Automatic Portable Turret Installation", 300, 300)
|
var/datum/browser/popup = new(user, "autosec", "Automatic Portable Turret Installation", 300, 300)
|
||||||
popup.set_content(dat)
|
popup.set_content(dat)
|
||||||
|
|||||||
@@ -145,13 +145,13 @@ GLOBAL_LIST_EMPTY(allConsoles)
|
|||||||
if (dpt != department)
|
if (dpt != department)
|
||||||
dat += "<tr>"
|
dat += "<tr>"
|
||||||
dat += "<td width='55%'>[dpt]</td>"
|
dat += "<td width='55%'>[dpt]</td>"
|
||||||
dat += "<td width='45%'><A href='?src=\ref[src];write=[ckey(dpt)]'>Normal</A> <A href='?src=\ref[src];write=[ckey(dpt)];priority=2'>High</A>"
|
dat += "<td width='45%'><A href='?src=[REF(src)];write=[ckey(dpt)]'>Normal</A> <A href='?src=[REF(src)];write=[ckey(dpt)];priority=2'>High</A>"
|
||||||
if(hackState)
|
if(hackState)
|
||||||
dat += "<A href='?src=\ref[src];write=[ckey(dpt)];priority=3'>EXTREME</A>"
|
dat += "<A href='?src=[REF(src)];write=[ckey(dpt)];priority=3'>EXTREME</A>"
|
||||||
dat += "</td>"
|
dat += "</td>"
|
||||||
dat += "</tr>"
|
dat += "</tr>"
|
||||||
dat += "</table>"
|
dat += "</table>"
|
||||||
dat += "<BR><A href='?src=\ref[src];setScreen=0'><< Back</A><BR>"
|
dat += "<BR><A href='?src=[REF(src)];setScreen=0'><< Back</A><BR>"
|
||||||
|
|
||||||
if(2) //req. supplies
|
if(2) //req. supplies
|
||||||
dat += "Which department do you need supplies from?<BR><BR>"
|
dat += "Which department do you need supplies from?<BR><BR>"
|
||||||
@@ -160,13 +160,13 @@ GLOBAL_LIST_EMPTY(allConsoles)
|
|||||||
if (dpt != department)
|
if (dpt != department)
|
||||||
dat += "<tr>"
|
dat += "<tr>"
|
||||||
dat += "<td width='55%'>[dpt]</td>"
|
dat += "<td width='55%'>[dpt]</td>"
|
||||||
dat += "<td width='45%'><A href='?src=\ref[src];write=[ckey(dpt)]'>Normal</A> <A href='?src=\ref[src];write=[ckey(dpt)];priority=2'>High</A>"
|
dat += "<td width='45%'><A href='?src=[REF(src)];write=[ckey(dpt)]'>Normal</A> <A href='?src=[REF(src)];write=[ckey(dpt)];priority=2'>High</A>"
|
||||||
if(hackState)
|
if(hackState)
|
||||||
dat += "<A href='?src=\ref[src];write=[ckey(dpt)];priority=3'>EXTREME</A>"
|
dat += "<A href='?src=[REF(src)];write=[ckey(dpt)];priority=3'>EXTREME</A>"
|
||||||
dat += "</td>"
|
dat += "</td>"
|
||||||
dat += "</tr>"
|
dat += "</tr>"
|
||||||
dat += "</table>"
|
dat += "</table>"
|
||||||
dat += "<BR><A href='?src=\ref[src];setScreen=0'><< Back</A><BR>"
|
dat += "<BR><A href='?src=[REF(src)];setScreen=0'><< Back</A><BR>"
|
||||||
|
|
||||||
if(3) //relay information
|
if(3) //relay information
|
||||||
dat += "Which department would you like to send information to?<BR><BR>"
|
dat += "Which department would you like to send information to?<BR><BR>"
|
||||||
@@ -175,21 +175,21 @@ GLOBAL_LIST_EMPTY(allConsoles)
|
|||||||
if (dpt != department)
|
if (dpt != department)
|
||||||
dat += "<tr>"
|
dat += "<tr>"
|
||||||
dat += "<td width='55%'>[dpt]</td>"
|
dat += "<td width='55%'>[dpt]</td>"
|
||||||
dat += "<td width='45%'><A href='?src=\ref[src];write=[ckey(dpt)]'>Normal</A> <A href='?src=\ref[src];write=[ckey(dpt)];priority=2'>High</A>"
|
dat += "<td width='45%'><A href='?src=[REF(src)];write=[ckey(dpt)]'>Normal</A> <A href='?src=[REF(src)];write=[ckey(dpt)];priority=2'>High</A>"
|
||||||
if(hackState)
|
if(hackState)
|
||||||
dat += "<A href='?src=\ref[src];write=[ckey(dpt)];priority=3'>EXTREME</A>"
|
dat += "<A href='?src=[REF(src)];write=[ckey(dpt)];priority=3'>EXTREME</A>"
|
||||||
dat += "</td>"
|
dat += "</td>"
|
||||||
dat += "</tr>"
|
dat += "</tr>"
|
||||||
dat += "</table>"
|
dat += "</table>"
|
||||||
dat += "<BR><A href='?src=\ref[src];setScreen=0'><< Back</A><BR>"
|
dat += "<BR><A href='?src=[REF(src)];setScreen=0'><< Back</A><BR>"
|
||||||
|
|
||||||
if(6) //sent successfully
|
if(6) //sent successfully
|
||||||
dat += "<span class='good'>Message sent.</span><BR><BR>"
|
dat += "<span class='good'>Message sent.</span><BR><BR>"
|
||||||
dat += "<A href='?src=\ref[src];setScreen=0'>Continue</A><BR>"
|
dat += "<A href='?src=[REF(src)];setScreen=0'>Continue</A><BR>"
|
||||||
|
|
||||||
if(7) //unsuccessful; not sent
|
if(7) //unsuccessful; not sent
|
||||||
dat += "<span class='bad'>An error occurred.</span><BR><BR>"
|
dat += "<span class='bad'>An error occurred.</span><BR><BR>"
|
||||||
dat += "<A href='?src=\ref[src];setScreen=0'>Continue</A><BR>"
|
dat += "<A href='?src=[REF(src)];setScreen=0'>Continue</A><BR>"
|
||||||
|
|
||||||
if(8) //view messages
|
if(8) //view messages
|
||||||
for (var/obj/machinery/requests_console/Console in GLOB.allConsoles)
|
for (var/obj/machinery/requests_console/Console in GLOB.allConsoles)
|
||||||
@@ -203,7 +203,7 @@ GLOBAL_LIST_EMPTY(allConsoles)
|
|||||||
for(var/msg in messages) // This puts more recent messages at the *top*, where they belong.
|
for(var/msg in messages) // This puts more recent messages at the *top*, where they belong.
|
||||||
messageComposite = "<div class='block'>[msg]</div>" + messageComposite
|
messageComposite = "<div class='block'>[msg]</div>" + messageComposite
|
||||||
dat += messageComposite
|
dat += messageComposite
|
||||||
dat += "<BR><A href='?src=\ref[src];setScreen=0'><< Back to Main Menu</A><BR>"
|
dat += "<BR><A href='?src=[REF(src)];setScreen=0'><< Back to Main Menu</A><BR>"
|
||||||
|
|
||||||
if(9) //authentication before sending
|
if(9) //authentication before sending
|
||||||
dat += "<B>Message Authentication</B><BR><BR>"
|
dat += "<B>Message Authentication</B><BR><BR>"
|
||||||
@@ -211,8 +211,8 @@ GLOBAL_LIST_EMPTY(allConsoles)
|
|||||||
dat += "<div class='notice'>You may authenticate your message now by scanning your ID or your stamp</div><BR>"
|
dat += "<div class='notice'>You may authenticate your message now by scanning your ID or your stamp</div><BR>"
|
||||||
dat += "<b>Validated by:</b> [msgVerified ? msgVerified : "<i>Not Validated</i>"]<br>"
|
dat += "<b>Validated by:</b> [msgVerified ? msgVerified : "<i>Not Validated</i>"]<br>"
|
||||||
dat += "<b>Stamped by:</b> [msgStamped ? msgStamped : "<i>Not Stamped</i>"]<br><br>"
|
dat += "<b>Stamped by:</b> [msgStamped ? msgStamped : "<i>Not Stamped</i>"]<br><br>"
|
||||||
dat += "<A href='?src=\ref[src];department=[dpt]'>Send Message</A><BR>"
|
dat += "<A href='?src=[REF(src)];department=[dpt]'>Send Message</A><BR>"
|
||||||
dat += "<BR><A href='?src=\ref[src];setScreen=0'><< Discard Message</A><BR>"
|
dat += "<BR><A href='?src=[REF(src)];setScreen=0'><< Discard Message</A><BR>"
|
||||||
|
|
||||||
if(10) //send announcement
|
if(10) //send announcement
|
||||||
dat += "<h3>Station-wide Announcement</h3>"
|
dat += "<h3>Station-wide Announcement</h3>"
|
||||||
@@ -221,12 +221,12 @@ GLOBAL_LIST_EMPTY(allConsoles)
|
|||||||
else
|
else
|
||||||
dat += "<div class='notice'>Swipe your card to authenticate yourself</div><BR>"
|
dat += "<div class='notice'>Swipe your card to authenticate yourself</div><BR>"
|
||||||
dat += "<b>Message: </b>[message ? message : "<i>No Message</i>"]<BR>"
|
dat += "<b>Message: </b>[message ? message : "<i>No Message</i>"]<BR>"
|
||||||
dat += "<A href='?src=\ref[src];writeAnnouncement=1'>[message ? "Edit" : "Write"] Message</A><BR><BR>"
|
dat += "<A href='?src=[REF(src)];writeAnnouncement=1'>[message ? "Edit" : "Write"] Message</A><BR><BR>"
|
||||||
if ((announceAuth || IsAdminGhost(user)) && message)
|
if ((announceAuth || IsAdminGhost(user)) && message)
|
||||||
dat += "<A href='?src=\ref[src];sendAnnouncement=1'>Announce Message</A><BR>"
|
dat += "<A href='?src=[REF(src)];sendAnnouncement=1'>Announce Message</A><BR>"
|
||||||
else
|
else
|
||||||
dat += "<span class='linkOff'>Announce Message</span><BR>"
|
dat += "<span class='linkOff'>Announce Message</span><BR>"
|
||||||
dat += "<BR><A href='?src=\ref[src];setScreen=0'><< Back</A><BR>"
|
dat += "<BR><A href='?src=[REF(src)];setScreen=0'><< Back</A><BR>"
|
||||||
|
|
||||||
else //main menu
|
else //main menu
|
||||||
screen = 0
|
screen = 0
|
||||||
@@ -237,25 +237,25 @@ GLOBAL_LIST_EMPTY(allConsoles)
|
|||||||
dat += "<div class='notice'>There are new <b>PRIORITY</b> messages</div><BR>"
|
dat += "<div class='notice'>There are new <b>PRIORITY</b> messages</div><BR>"
|
||||||
if (newmessagepriority == 3)
|
if (newmessagepriority == 3)
|
||||||
dat += "<div class='notice'>There are new <b>EXTREME PRIORITY</b> messages</div><BR>"
|
dat += "<div class='notice'>There are new <b>EXTREME PRIORITY</b> messages</div><BR>"
|
||||||
dat += "<A href='?src=\ref[src];setScreen=8'>View Messages</A><BR><BR>"
|
dat += "<A href='?src=[REF(src)];setScreen=8'>View Messages</A><BR><BR>"
|
||||||
|
|
||||||
dat += "<A href='?src=\ref[src];setScreen=1'>Request Assistance</A><BR>"
|
dat += "<A href='?src=[REF(src)];setScreen=1'>Request Assistance</A><BR>"
|
||||||
dat += "<A href='?src=\ref[src];setScreen=2'>Request Supplies</A><BR>"
|
dat += "<A href='?src=[REF(src)];setScreen=2'>Request Supplies</A><BR>"
|
||||||
dat += "<A href='?src=\ref[src];setScreen=3'>Relay Anonymous Information</A><BR><BR>"
|
dat += "<A href='?src=[REF(src)];setScreen=3'>Relay Anonymous Information</A><BR><BR>"
|
||||||
|
|
||||||
if(!emergency)
|
if(!emergency)
|
||||||
dat += "<A href='?src=\ref[src];emergency=1'>Emergency: Security</A><BR>"
|
dat += "<A href='?src=[REF(src)];emergency=1'>Emergency: Security</A><BR>"
|
||||||
dat += "<A href='?src=\ref[src];emergency=2'>Emergency: Engineering</A><BR>"
|
dat += "<A href='?src=[REF(src)];emergency=2'>Emergency: Engineering</A><BR>"
|
||||||
dat += "<A href='?src=\ref[src];emergency=3'>Emergency: Medical</A><BR><BR>"
|
dat += "<A href='?src=[REF(src)];emergency=3'>Emergency: Medical</A><BR><BR>"
|
||||||
else
|
else
|
||||||
dat += "<B><font color='red'>[emergency] has been dispatched to this location.</font></B><BR><BR>"
|
dat += "<B><font color='red'>[emergency] has been dispatched to this location.</font></B><BR><BR>"
|
||||||
|
|
||||||
if(announcementConsole)
|
if(announcementConsole)
|
||||||
dat += "<A href='?src=\ref[src];setScreen=10'>Send Station-wide Announcement</A><BR><BR>"
|
dat += "<A href='?src=[REF(src)];setScreen=10'>Send Station-wide Announcement</A><BR><BR>"
|
||||||
if (silent)
|
if (silent)
|
||||||
dat += "Speaker <A href='?src=\ref[src];setSilent=0'>OFF</A>"
|
dat += "Speaker <A href='?src=[REF(src)];setSilent=0'>OFF</A>"
|
||||||
else
|
else
|
||||||
dat += "Speaker <A href='?src=\ref[src];setSilent=1'>ON</A>"
|
dat += "Speaker <A href='?src=[REF(src)];setSilent=1'>ON</A>"
|
||||||
var/datum/browser/popup = new(user, "req_console", "[department] Requests Console", 450, 440)
|
var/datum/browser/popup = new(user, "req_console", "[department] Requests Console", 450, 440)
|
||||||
popup.set_content(dat)
|
popup.set_content(dat)
|
||||||
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
|
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
|
||||||
@@ -454,7 +454,7 @@ GLOBAL_LIST_EMPTY(allConsoles)
|
|||||||
var/linkedsender
|
var/linkedsender
|
||||||
if(istype(source, /obj/machinery/requests_console))
|
if(istype(source, /obj/machinery/requests_console))
|
||||||
var/obj/machinery/requests_console/sender = source
|
var/obj/machinery/requests_console/sender = source
|
||||||
linkedsender = "<a href='?src=\ref[src];write=[ckey(sender.department)]'>[sender.department]</a>"
|
linkedsender = "<a href='?src=[REF(src)];write=[ckey(sender.department)]'>[sender.department]</a>"
|
||||||
else
|
else
|
||||||
capitalize(source)
|
capitalize(source)
|
||||||
linkedsender = source
|
linkedsender = source
|
||||||
|
|||||||
@@ -58,13 +58,13 @@ Please wait until completion...</TT><BR>
|
|||||||
dat = {"
|
dat = {"
|
||||||
<B>Metal Amount:</B> [min(150000, src.metal_amount)] cm<sup>3</sup> (MAX: 150,000)<BR><HR>
|
<B>Metal Amount:</B> [min(150000, src.metal_amount)] cm<sup>3</sup> (MAX: 150,000)<BR><HR>
|
||||||
<BR>
|
<BR>
|
||||||
<A href='?src=\ref[src];make=1'>Left Arm (25,000 cc metal.)<BR>
|
<A href='?src=[REF(src)];make=1'>Left Arm (25,000 cc metal.)<BR>
|
||||||
<A href='?src=\ref[src];make=2'>Right Arm (25,000 cc metal.)<BR>
|
<A href='?src=[REF(src)];make=2'>Right Arm (25,000 cc metal.)<BR>
|
||||||
<A href='?src=\ref[src];make=3'>Left Leg (25,000 cc metal.)<BR>
|
<A href='?src=[REF(src)];make=3'>Left Leg (25,000 cc metal.)<BR>
|
||||||
<A href='?src=\ref[src];make=4'>Right Leg (25,000 cc metal).<BR>
|
<A href='?src=[REF(src)];make=4'>Right Leg (25,000 cc metal).<BR>
|
||||||
<A href='?src=\ref[src];make=5'>Chest (50,000 cc metal).<BR>
|
<A href='?src=[REF(src)];make=5'>Chest (50,000 cc metal).<BR>
|
||||||
<A href='?src=\ref[src];make=6'>Head (50,000 cc metal).<BR>
|
<A href='?src=[REF(src)];make=6'>Head (50,000 cc metal).<BR>
|
||||||
<A href='?src=\ref[src];make=7'>Robot Frame (75,000 cc metal).<BR>
|
<A href='?src=[REF(src)];make=7'>Robot Frame (75,000 cc metal).<BR>
|
||||||
"}
|
"}
|
||||||
|
|
||||||
user << browse("<HEAD><TITLE>Robotic Fabricator Control Panel</TITLE></HEAD><TT>[dat]</TT>", "window=robot_fabricator")
|
user << browse("<HEAD><TITLE>Robotic Fabricator Control Panel</TITLE></HEAD><TT>[dat]</TT>", "window=robot_fabricator")
|
||||||
|
|||||||
@@ -134,11 +134,11 @@
|
|||||||
<B>Credit Remaining:</B> [balance]<BR>
|
<B>Credit Remaining:</B> [balance]<BR>
|
||||||
[plays] players have tried their luck today, and [jackpots] have won a jackpot!<BR>
|
[plays] players have tried their luck today, and [jackpots] have won a jackpot!<BR>
|
||||||
<HR><BR>
|
<HR><BR>
|
||||||
<A href='?src=\ref[src];spin=1'>Play!</A><BR>
|
<A href='?src=[REF(src)];spin=1'>Play!</A><BR>
|
||||||
<BR>
|
<BR>
|
||||||
[reeltext]
|
[reeltext]
|
||||||
<BR>
|
<BR>
|
||||||
<font size='1'><A href='?src=\ref[src];refund=1'>Refund balance</A><BR>"}
|
<font size='1'><A href='?src=[REF(src)];refund=1'>Refund balance</A><BR>"}
|
||||||
|
|
||||||
var/datum/browser/popup = new(user, "slotmachine", "Slot Machine")
|
var/datum/browser/popup = new(user, "slotmachine", "Slot Machine")
|
||||||
popup.set_content(dat)
|
popup.set_content(dat)
|
||||||
|
|||||||
@@ -30,23 +30,23 @@
|
|||||||
|
|
||||||
if(0)
|
if(0)
|
||||||
dat += "<br>[temp]<br>"
|
dat += "<br>[temp]<br>"
|
||||||
dat += "<br>Current Network: <a href='?src=\ref[src];network=1'>[network]</a><br>"
|
dat += "<br>Current Network: <a href='?src=[REF(src)];network=1'>[network]</a><br>"
|
||||||
if(servers.len)
|
if(servers.len)
|
||||||
dat += "<br>Detected Telecommunication Servers:<ul>"
|
dat += "<br>Detected Telecommunication Servers:<ul>"
|
||||||
for(var/obj/machinery/telecomms/T in servers)
|
for(var/obj/machinery/telecomms/T in servers)
|
||||||
dat += "<li><a href='?src=\ref[src];viewserver=[T.id]'>\ref[T] [T.name]</a> ([T.id])</li>"
|
dat += "<li><a href='?src=[REF(src)];viewserver=[T.id]'>[REF(T)] [T.name]</a> ([T.id])</li>"
|
||||||
dat += "</ul>"
|
dat += "</ul>"
|
||||||
dat += "<br><a href='?src=\ref[src];operation=release'>\[Flush Buffer\]</a>"
|
dat += "<br><a href='?src=[REF(src)];operation=release'>\[Flush Buffer\]</a>"
|
||||||
|
|
||||||
else
|
else
|
||||||
dat += "<br>No servers detected. Scan for servers: <a href='?src=\ref[src];operation=scan'>\[Scan\]</a>"
|
dat += "<br>No servers detected. Scan for servers: <a href='?src=[REF(src)];operation=scan'>\[Scan\]</a>"
|
||||||
|
|
||||||
|
|
||||||
// --- Viewing Server ---
|
// --- Viewing Server ---
|
||||||
|
|
||||||
if(1)
|
if(1)
|
||||||
dat += "<br>[temp]<br>"
|
dat += "<br>[temp]<br>"
|
||||||
dat += "<center><a href='?src=\ref[src];operation=mainmenu'>\[Main Menu\]</a> <a href='?src=\ref[src];operation=refresh'>\[Refresh\]</a></center>"
|
dat += "<center><a href='?src=[REF(src)];operation=mainmenu'>\[Main Menu\]</a> <a href='?src=[REF(src)];operation=refresh'>\[Refresh\]</a></center>"
|
||||||
dat += "<br>Current Network: [network]"
|
dat += "<br>Current Network: [network]"
|
||||||
dat += "<br>Selected Server: [SelectedServer.id]"
|
dat += "<br>Selected Server: [SelectedServer.id]"
|
||||||
|
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
// If the log is a speech file
|
// If the log is a speech file
|
||||||
if(C.input_type == "Speech File")
|
if(C.input_type == "Speech File")
|
||||||
|
|
||||||
dat += "<li><font color = #008F00>[C.name]</font color> <font color = #FF0000><a href='?src=\ref[src];delete=[i]'>\[X\]</a></font color><br>"
|
dat += "<li><font color = #008F00>[C.name]</font color> <font color = #FF0000><a href='?src=[REF(src)];delete=[i]'>\[X\]</a></font color><br>"
|
||||||
|
|
||||||
// -- Determine race of orator --
|
// -- Determine race of orator --
|
||||||
|
|
||||||
@@ -128,7 +128,7 @@
|
|||||||
|
|
||||||
else if(C.input_type == "Execution Error")
|
else if(C.input_type == "Execution Error")
|
||||||
|
|
||||||
dat += "<li><font color = #990000>[C.name]</font color> <font color = #FF0000><a href='?src=\ref[src];delete=[i]'>\[X\]</a></font color><br>"
|
dat += "<li><font color = #990000>[C.name]</font color> <font color = #FF0000><a href='?src=[REF(src)];delete=[i]'>\[X\]</a></font color><br>"
|
||||||
dat += "<u><font color = #787700>Output</font color></u>: \"[C.parameters["message"]]\"<br>"
|
dat += "<u><font color = #787700>Output</font color></u>: \"[C.parameters["message"]]\"<br>"
|
||||||
dat += "</li><br>"
|
dat += "</li><br>"
|
||||||
|
|
||||||
|
|||||||
@@ -32,28 +32,28 @@
|
|||||||
|
|
||||||
if(0)
|
if(0)
|
||||||
dat += "<br>[temp]<br><br>"
|
dat += "<br>[temp]<br><br>"
|
||||||
dat += "<br>Current Network: <a href='?src=\ref[src];network=1'>[network]</a><br>"
|
dat += "<br>Current Network: <a href='?src=[REF(src)];network=1'>[network]</a><br>"
|
||||||
if(machinelist.len)
|
if(machinelist.len)
|
||||||
dat += "<br>Detected Network Entities:<ul>"
|
dat += "<br>Detected Network Entities:<ul>"
|
||||||
for(var/obj/machinery/telecomms/T in machinelist)
|
for(var/obj/machinery/telecomms/T in machinelist)
|
||||||
dat += "<li><a href='?src=\ref[src];viewmachine=[T.id]'>\ref[T] [T.name]</a> ([T.id])</li>"
|
dat += "<li><a href='?src=[REF(src)];viewmachine=[T.id]'>[REF(T)] [T.name]</a> ([T.id])</li>"
|
||||||
dat += "</ul>"
|
dat += "</ul>"
|
||||||
dat += "<br><a href='?src=\ref[src];operation=release'>\[Flush Buffer\]</a>"
|
dat += "<br><a href='?src=[REF(src)];operation=release'>\[Flush Buffer\]</a>"
|
||||||
else
|
else
|
||||||
dat += "<a href='?src=\ref[src];operation=probe'>\[Probe Network\]</a>"
|
dat += "<a href='?src=[REF(src)];operation=probe'>\[Probe Network\]</a>"
|
||||||
|
|
||||||
|
|
||||||
// --- Viewing Machine ---
|
// --- Viewing Machine ---
|
||||||
|
|
||||||
if(1)
|
if(1)
|
||||||
dat += "<br>[temp]<br>"
|
dat += "<br>[temp]<br>"
|
||||||
dat += "<center><a href='?src=\ref[src];operation=mainmenu'>\[Main Menu\]</a></center>"
|
dat += "<center><a href='?src=[REF(src)];operation=mainmenu'>\[Main Menu\]</a></center>"
|
||||||
dat += "<br>Current Network: [network]<br>"
|
dat += "<br>Current Network: [network]<br>"
|
||||||
dat += "Selected Network Entity: [SelectedMachine.name] ([SelectedMachine.id])<br>"
|
dat += "Selected Network Entity: [SelectedMachine.name] ([SelectedMachine.id])<br>"
|
||||||
dat += "Linked Entities: <ol>"
|
dat += "Linked Entities: <ol>"
|
||||||
for(var/obj/machinery/telecomms/T in SelectedMachine.links)
|
for(var/obj/machinery/telecomms/T in SelectedMachine.links)
|
||||||
if(!T.hide)
|
if(!T.hide)
|
||||||
dat += "<li><a href='?src=\ref[src];viewmachine=[T.id]'>\ref[T.id] [T.name]</a> ([T.id])</li>"
|
dat += "<li><a href='?src=[REF(src)];viewmachine=[T.id]'>[REF(T.id)] [T.name]</a> ([T.id])</li>"
|
||||||
dat += "</ol>"
|
dat += "</ol>"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -52,13 +52,13 @@
|
|||||||
var/dat
|
var/dat
|
||||||
dat = "<font face = \"Courier\"><HEAD><TITLE>[name]</TITLE></HEAD><center><H3>[name] Access</H3></center>"
|
dat = "<font face = \"Courier\"><HEAD><TITLE>[name]</TITLE></HEAD><center><H3>[name] Access</H3></center>"
|
||||||
dat += "<br>[temp]<br>"
|
dat += "<br>[temp]<br>"
|
||||||
dat += "<br>Power Status: <a href='?src=\ref[src];input=toggle'>[toggled ? "On" : "Off"]</a>"
|
dat += "<br>Power Status: <a href='?src=[REF(src)];input=toggle'>[toggled ? "On" : "Off"]</a>"
|
||||||
if(on && toggled)
|
if(on && toggled)
|
||||||
if(id != "" && id)
|
if(id != "" && id)
|
||||||
dat += "<br>Identification String: <a href='?src=\ref[src];input=id'>[id]</a>"
|
dat += "<br>Identification String: <a href='?src=[REF(src)];input=id'>[id]</a>"
|
||||||
else
|
else
|
||||||
dat += "<br>Identification String: <a href='?src=\ref[src];input=id'>NULL</a>"
|
dat += "<br>Identification String: <a href='?src=[REF(src)];input=id'>NULL</a>"
|
||||||
dat += "<br>Network: <a href='?src=\ref[src];input=network'>[network]</a>"
|
dat += "<br>Network: <a href='?src=[REF(src)];input=network'>[network]</a>"
|
||||||
dat += "<br>Prefabrication: [autolinkers.len ? "TRUE" : "FALSE"]"
|
dat += "<br>Prefabrication: [autolinkers.len ? "TRUE" : "FALSE"]"
|
||||||
if(hide)
|
if(hide)
|
||||||
dat += "<br>Shadow Link: ACTIVE</a>"
|
dat += "<br>Shadow Link: ACTIVE</a>"
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
i++
|
i++
|
||||||
if(T.hide && !hide)
|
if(T.hide && !hide)
|
||||||
continue
|
continue
|
||||||
dat += "<li>\ref[T] [T.name] ([T.id]) <a href='?src=\ref[src];unlink=[i]'>\[X\]</a></li>"
|
dat += "<li>[REF(T)] [T.name] ([T.id]) <a href='?src=[REF(src)];unlink=[i]'>\[X\]</a></li>"
|
||||||
dat += "</ol>"
|
dat += "</ol>"
|
||||||
|
|
||||||
dat += "<br>Filtering Frequencies: "
|
dat += "<br>Filtering Frequencies: "
|
||||||
@@ -83,21 +83,21 @@
|
|||||||
for(var/x in freq_listening)
|
for(var/x in freq_listening)
|
||||||
i++
|
i++
|
||||||
if(i < length(freq_listening))
|
if(i < length(freq_listening))
|
||||||
dat += "[format_frequency(x)] GHz<a href='?src=\ref[src];delete=[x]'>\[X\]</a>; "
|
dat += "[format_frequency(x)] GHz<a href='?src=[REF(src)];delete=[x]'>\[X\]</a>; "
|
||||||
else
|
else
|
||||||
dat += "[format_frequency(x)] GHz<a href='?src=\ref[src];delete=[x]'>\[X\]</a>"
|
dat += "[format_frequency(x)] GHz<a href='?src=[REF(src)];delete=[x]'>\[X\]</a>"
|
||||||
else
|
else
|
||||||
dat += "NONE"
|
dat += "NONE"
|
||||||
|
|
||||||
dat += "<br> <a href='?src=\ref[src];input=freq'>\[Add Filter\]</a>"
|
dat += "<br> <a href='?src=[REF(src)];input=freq'>\[Add Filter\]</a>"
|
||||||
dat += "<hr>"
|
dat += "<hr>"
|
||||||
|
|
||||||
if(P)
|
if(P)
|
||||||
var/obj/machinery/telecomms/T = P.buffer
|
var/obj/machinery/telecomms/T = P.buffer
|
||||||
if(istype(T))
|
if(istype(T))
|
||||||
dat += "<br><br>MULTITOOL BUFFER: [T] ([T.id]) <a href='?src=\ref[src];link=1'>\[Link\]</a> <a href='?src=\ref[src];flush=1'>\[Flush\]"
|
dat += "<br><br>MULTITOOL BUFFER: [T] ([T.id]) <a href='?src=[REF(src)];link=1'>\[Link\]</a> <a href='?src=[REF(src)];flush=1'>\[Flush\]"
|
||||||
else
|
else
|
||||||
dat += "<br><br>MULTITOOL BUFFER: <a href='?src=\ref[src];buffer=1'>\[Add Machine\]</a>"
|
dat += "<br><br>MULTITOOL BUFFER: <a href='?src=[REF(src)];buffer=1'>\[Add Machine\]</a>"
|
||||||
|
|
||||||
dat += "</font>"
|
dat += "</font>"
|
||||||
temp = ""
|
temp = ""
|
||||||
@@ -151,8 +151,8 @@
|
|||||||
|
|
||||||
/obj/machinery/telecomms/relay/Options_Menu()
|
/obj/machinery/telecomms/relay/Options_Menu()
|
||||||
var/dat = ""
|
var/dat = ""
|
||||||
dat += "<br>Broadcasting: <A href='?src=\ref[src];broadcast=1'>[broadcasting ? "YES" : "NO"]</a>"
|
dat += "<br>Broadcasting: <A href='?src=[REF(src)];broadcast=1'>[broadcasting ? "YES" : "NO"]</a>"
|
||||||
dat += "<br>Receiving: <A href='?src=\ref[src];receive=1'>[receiving ? "YES" : "NO"]</a>"
|
dat += "<br>Receiving: <A href='?src=[REF(src)];receive=1'>[receiving ? "YES" : "NO"]</a>"
|
||||||
return dat
|
return dat
|
||||||
|
|
||||||
/obj/machinery/telecomms/relay/Options_Topic(href, href_list)
|
/obj/machinery/telecomms/relay/Options_Topic(href, href_list)
|
||||||
@@ -167,7 +167,7 @@
|
|||||||
// BUS
|
// BUS
|
||||||
|
|
||||||
/obj/machinery/telecomms/bus/Options_Menu()
|
/obj/machinery/telecomms/bus/Options_Menu()
|
||||||
var/dat = "<br>Change Signal Frequency: <A href='?src=\ref[src];change_freq=1'>[change_frequency ? "YES ([change_frequency])" : "NO"]</a>"
|
var/dat = "<br>Change Signal Frequency: <A href='?src=[REF(src)];change_freq=1'>[change_frequency ? "YES ([change_frequency])" : "NO"]</a>"
|
||||||
return dat
|
return dat
|
||||||
|
|
||||||
/obj/machinery/telecomms/bus/Options_Topic(href, href_list)
|
/obj/machinery/telecomms/bus/Options_Topic(href, href_list)
|
||||||
@@ -254,7 +254,7 @@
|
|||||||
if(text2num(href_list["unlink"]) <= length(links))
|
if(text2num(href_list["unlink"]) <= length(links))
|
||||||
var/obj/machinery/telecomms/T = links[text2num(href_list["unlink"])]
|
var/obj/machinery/telecomms/T = links[text2num(href_list["unlink"])]
|
||||||
if(T)
|
if(T)
|
||||||
temp = "<font color = #666633>-% Removed \ref[T] [T.name] from linked entities. %-</font color>"
|
temp = "<font color = #666633>-% Removed [REF(T)] [T.name] from linked entities. %-</font color>"
|
||||||
|
|
||||||
// Remove link entries from both T and src.
|
// Remove link entries from both T and src.
|
||||||
|
|
||||||
@@ -276,7 +276,7 @@
|
|||||||
if(!(T in links))
|
if(!(T in links))
|
||||||
links += T
|
links += T
|
||||||
|
|
||||||
temp = "<font color = #666633>-% Successfully linked with \ref[T] [T.name] %-</font color>"
|
temp = "<font color = #666633>-% Successfully linked with [REF(T)] [T.name] %-</font color>"
|
||||||
|
|
||||||
else
|
else
|
||||||
temp = "<font color = #666633>-% Unable to acquire buffer %-</font color>"
|
temp = "<font color = #666633>-% Unable to acquire buffer %-</font color>"
|
||||||
@@ -284,7 +284,7 @@
|
|||||||
if(href_list["buffer"])
|
if(href_list["buffer"])
|
||||||
|
|
||||||
P.buffer = src
|
P.buffer = src
|
||||||
temp = "<font color = #666633>-% Successfully stored \ref[P.buffer] [P.buffer.name] in buffer %-</font color>"
|
temp = "<font color = #666633>-% Successfully stored [REF(P.buffer)] [P.buffer.name] in buffer %-</font color>"
|
||||||
|
|
||||||
|
|
||||||
if(href_list["flush"])
|
if(href_list["flush"])
|
||||||
|
|||||||
@@ -373,7 +373,7 @@
|
|||||||
for (var/datum/data/vending_product/R in display_records)
|
for (var/datum/data/vending_product/R in display_records)
|
||||||
dat += "<li>"
|
dat += "<li>"
|
||||||
if(R.amount > 0)
|
if(R.amount > 0)
|
||||||
dat += "<a href='byond://?src=\ref[src];vend=\ref[R]'>Vend</a> "
|
dat += "<a href='byond://?src=[REF(src)];vend=[REF(R)]'>Vend</a> "
|
||||||
else
|
else
|
||||||
dat += "<span class='linkOff'>Sold out</span> "
|
dat += "<span class='linkOff'>Sold out</span> "
|
||||||
dat += "<font color = '[R.display_color]'><b>[sanitize(R.product_name)]</b>:</font>"
|
dat += "<font color = '[R.display_color]'><b>[sanitize(R.product_name)]</b>:</font>"
|
||||||
@@ -384,7 +384,7 @@
|
|||||||
if(premium.len > 0)
|
if(premium.len > 0)
|
||||||
dat += "<b>Change Return:</b> "
|
dat += "<b>Change Return:</b> "
|
||||||
if (coin || bill)
|
if (coin || bill)
|
||||||
dat += "[(coin ? coin : "")][(bill ? bill : "")] <a href='byond://?src=\ref[src];remove_coin=1'>Remove</a>"
|
dat += "[(coin ? coin : "")][(bill ? bill : "")] <a href='byond://?src=[REF(src)];remove_coin=1'>Remove</a>"
|
||||||
else
|
else
|
||||||
dat += "<i>No money</i> <span class='linkOff'>Remove</span>"
|
dat += "<i>No money</i> <span class='linkOff'>Remove</span>"
|
||||||
if(istype(src, /obj/machinery/vending/snack))
|
if(istype(src, /obj/machinery/vending/snack))
|
||||||
@@ -393,7 +393,7 @@
|
|||||||
for (var/O in dish_quants)
|
for (var/O in dish_quants)
|
||||||
if(dish_quants[O] > 0)
|
if(dish_quants[O] > 0)
|
||||||
var/N = dish_quants[O]
|
var/N = dish_quants[O]
|
||||||
dat += "<a href='byond://?src=\ref[src];dispense=[sanitize(O)]'>Dispense</A> "
|
dat += "<a href='byond://?src=[REF(src)];dispense=[sanitize(O)]'>Dispense</A> "
|
||||||
dat += "<B>[capitalize(O)]: [N]</B><br>"
|
dat += "<B>[capitalize(O)]: [N]</B><br>"
|
||||||
dat += "</div>"
|
dat += "</div>"
|
||||||
user.set_machine(src)
|
user.set_machine(src)
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
max_temperature = 25000
|
max_temperature = 25000
|
||||||
infra_luminosity = 5
|
infra_luminosity = 5
|
||||||
operation_req_access = list(ACCESS_THEATRE)
|
operation_req_access = list(ACCESS_THEATRE)
|
||||||
|
<<<<<<< HEAD
|
||||||
wreckage = /obj/structure/mecha_wreckage/honker
|
wreckage = /obj/structure/mecha_wreckage/honker
|
||||||
add_req_access = 0
|
add_req_access = 0
|
||||||
max_equip = 3
|
max_equip = 3
|
||||||
@@ -154,3 +155,149 @@
|
|||||||
return color
|
return color
|
||||||
|
|
||||||
|
|
||||||
|
=======
|
||||||
|
wreckage = /obj/structure/mecha_wreckage/honker
|
||||||
|
add_req_access = 0
|
||||||
|
max_equip = 3
|
||||||
|
var/squeak = 0
|
||||||
|
|
||||||
|
/*
|
||||||
|
/obj/mecha/combat/honker/New()
|
||||||
|
..()
|
||||||
|
|
||||||
|
weapons += new /datum/mecha_weapon/honker(src)
|
||||||
|
weapons += new /datum/mecha_weapon/missile_rack/banana_mortar(src)
|
||||||
|
weapons += new /datum/mecha_weapon/missile_rack/mousetrap_mortar(src)
|
||||||
|
selected_weapon = weapons[1]
|
||||||
|
return
|
||||||
|
*/
|
||||||
|
|
||||||
|
/obj/mecha/combat/honker/get_stats_part()
|
||||||
|
var/integrity = obj_integrity/max_integrity*100
|
||||||
|
var/cell_charge = get_charge()
|
||||||
|
var/datum/gas_mixture/int_tank_air = internal_tank.return_air()
|
||||||
|
var/tank_pressure = internal_tank ? round(int_tank_air.return_pressure(),0.01) : "None"
|
||||||
|
var/tank_temperature = internal_tank ? int_tank_air.temperature : "Unknown"
|
||||||
|
var/cabin_pressure = round(return_pressure(),0.01)
|
||||||
|
var/output = {"[report_internal_damage()]
|
||||||
|
[integrity<30?"<font color='red'><b>DAMAGE LEVEL CRITICAL</b></font><br>":null]
|
||||||
|
[internal_damage&MECHA_INT_TEMP_CONTROL?"<font color='red'><b>CLOWN SUPPORT SYSTEM MALFUNCTION</b></font><br>":null]
|
||||||
|
[internal_damage&MECHA_INT_TANK_BREACH?"<font color='red'><b>GAS TANK HONK</b></font><br>":null]
|
||||||
|
[internal_damage&MECHA_INT_CONTROL_LOST?"<font color='red'><b>HONK-A-DOODLE</b></font> - <a href='?src=[REF(src)];repair_int_control_lost=1'>Recalibrate</a><br>":null]
|
||||||
|
<b>IntegriHONK: </b> [integrity]%<br>
|
||||||
|
<b>PowerHONK charge: </b>[isnull(cell_charge)?"No powercell installed":"[cell.percent()]%"]<br>
|
||||||
|
<b>Air source: </b>[use_internal_tank?"Internal Airtank":"Environment"]<br>
|
||||||
|
<b>AirHONK pressure: </b>[tank_pressure]kPa<br>
|
||||||
|
<b>AirHONK temperature: </b>[tank_temperature]°K|[tank_temperature - T0C]°C<br>
|
||||||
|
<b>HONK pressure: </b>[cabin_pressure>WARNING_HIGH_PRESSURE ? "<font color='red'>[cabin_pressure]</font>": cabin_pressure]kPa<br>
|
||||||
|
<b>HONK temperature: </b> [return_temperature()]°K|[return_temperature() - T0C]°C<br>
|
||||||
|
<b>Lights: </b>[lights?"on":"off"]<br>
|
||||||
|
[dna_lock?"<b>DNA-locked:</b><br> <span style='font-size:10px;letter-spacing:-1px;'>[dna_lock]</span> \[<a href='?src=[REF(src)];reset_dna=1'>Reset</a>\]<br>":null]
|
||||||
|
"}
|
||||||
|
return output
|
||||||
|
|
||||||
|
/obj/mecha/combat/honker/get_stats_html()
|
||||||
|
var/output = {"<html>
|
||||||
|
<head><title>[src.name] data</title>
|
||||||
|
<style>
|
||||||
|
body {color: #00ff00; background: #32CD32; font-family:"Courier",monospace; font-size: 12px;}
|
||||||
|
hr {border: 1px solid #0f0; color: #fff; background-color: #000;}
|
||||||
|
a {padding:2px 5px;;color:#0f0;}
|
||||||
|
.wr {margin-bottom: 5px;}
|
||||||
|
.header {cursor:pointer;}
|
||||||
|
.open, .closed {background: #32CD32; color:#000; padding:1px 2px;}
|
||||||
|
.links a {margin-bottom: 2px;padding-top:3px;}
|
||||||
|
.visible {display: block;}
|
||||||
|
.hidden {display: none;}
|
||||||
|
</style>
|
||||||
|
<script language='javascript' type='text/javascript'>
|
||||||
|
[js_byjax]
|
||||||
|
[js_dropdowns]
|
||||||
|
function SSticker() {
|
||||||
|
setInterval(function(){
|
||||||
|
window.location='byond://?src=[REF(src)]&update_content=1';
|
||||||
|
document.body.style.color = get_rand_color_string();
|
||||||
|
document.body.style.background = get_rand_color_string();
|
||||||
|
}, 1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_rand_color_string() {
|
||||||
|
var color = new Array;
|
||||||
|
for(var i=0;i<3;i++){
|
||||||
|
color.push(Math.floor(Math.random()*255));
|
||||||
|
}
|
||||||
|
return "rgb("+color.toString()+")";
|
||||||
|
}
|
||||||
|
|
||||||
|
window.onload = function() {
|
||||||
|
dropdowns();
|
||||||
|
SSticker();
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id='content'>
|
||||||
|
[src.get_stats_part()]
|
||||||
|
</div>
|
||||||
|
<div id='eq_list'>
|
||||||
|
[src.get_equipment_list()]
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div id='commands'>
|
||||||
|
[src.get_commands()]
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
"}
|
||||||
|
return output
|
||||||
|
|
||||||
|
/obj/mecha/combat/honker/get_commands()
|
||||||
|
var/output = {"<div class='wr'>
|
||||||
|
<div class='header'>Sounds of HONK:</div>
|
||||||
|
<div class='links'>
|
||||||
|
<a href='?src=[REF(src)];play_sound=sadtrombone'>Sad Trombone</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
"}
|
||||||
|
output += ..()
|
||||||
|
return output
|
||||||
|
|
||||||
|
|
||||||
|
/obj/mecha/combat/honker/get_equipment_list()
|
||||||
|
if(!equipment.len)
|
||||||
|
return
|
||||||
|
var/output = "<b>Honk-ON-Systems:</b><div style=\"margin-left: 15px;\">"
|
||||||
|
for(var/obj/item/mecha_parts/mecha_equipment/MT in equipment)
|
||||||
|
output += "<div id='[REF(MT)]'>[MT.get_equip_info()]</div>"
|
||||||
|
output += "</div>"
|
||||||
|
return output
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/obj/mecha/combat/honker/mechstep(direction)
|
||||||
|
var/result = step(src,direction)
|
||||||
|
if(result)
|
||||||
|
if(!squeak)
|
||||||
|
playsound(src, "clownstep", 70, 1)
|
||||||
|
squeak = 1
|
||||||
|
else
|
||||||
|
squeak = 0
|
||||||
|
return result
|
||||||
|
|
||||||
|
/obj/mecha/combat/honker/Topic(href, href_list)
|
||||||
|
..()
|
||||||
|
if (href_list["play_sound"])
|
||||||
|
switch(href_list["play_sound"])
|
||||||
|
if("sadtrombone")
|
||||||
|
playsound(src, 'sound/misc/sadtrombone.ogg', 50)
|
||||||
|
return
|
||||||
|
|
||||||
|
/proc/rand_hex_color()
|
||||||
|
var/list/colors = list("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f")
|
||||||
|
var/color=""
|
||||||
|
for (var/i=0;i<6;i++)
|
||||||
|
color = color+pick(colors)
|
||||||
|
return color
|
||||||
|
|
||||||
|
|
||||||
|
>>>>>>> 626302c... Merge pull request #32161 from ninjanomnom/512-experimental
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/proc/update_equip_info()
|
/obj/item/mecha_parts/mecha_equipment/proc/update_equip_info()
|
||||||
if(chassis)
|
if(chassis)
|
||||||
send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",get_equip_info())
|
send_byjax(chassis.occupant,"exosuit.browser","[REF(src)]",get_equip_info())
|
||||||
return 1
|
return 1
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
if(chassis.selected == src)
|
if(chassis.selected == src)
|
||||||
txt += "<b>[src.name]</b>"
|
txt += "<b>[src.name]</b>"
|
||||||
else if(selectable)
|
else if(selectable)
|
||||||
txt += "<a href='?src=\ref[chassis];select_equip=\ref[src]'>[src.name]</a>"
|
txt += "<a href='?src=[REF(chassis)];select_equip=[REF(src)]'>[src.name]</a>"
|
||||||
else
|
else
|
||||||
txt += "[src.name]"
|
txt += "[src.name]"
|
||||||
|
|
||||||
@@ -132,7 +132,7 @@
|
|||||||
/obj/item/mecha_parts/mecha_equipment/proc/set_ready_state(state)
|
/obj/item/mecha_parts/mecha_equipment/proc/set_ready_state(state)
|
||||||
equip_ready = state
|
equip_ready = state
|
||||||
if(chassis)
|
if(chassis)
|
||||||
send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info())
|
send_byjax(chassis.occupant,"exosuit.browser","[REF(src)]",src.get_equip_info())
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/proc/occupant_message(message)
|
/obj/item/mecha_parts/mecha_equipment/proc/occupant_message(message)
|
||||||
|
|||||||
@@ -104,21 +104,21 @@
|
|||||||
if(output)
|
if(output)
|
||||||
var/temp = ""
|
var/temp = ""
|
||||||
if(patient)
|
if(patient)
|
||||||
temp = "<br />\[Occupant: [patient] ([patient.stat > 1 ? "*DECEASED*" : "Health: [patient.health]%"])\]<br /><a href='?src=\ref[src];view_stats=1'>View stats</a>|<a href='?src=\ref[src];eject=1'>Eject</a>"
|
temp = "<br />\[Occupant: [patient] ([patient.stat > 1 ? "*DECEASED*" : "Health: [patient.health]%"])\]<br /><a href='?src=[REF(src)];view_stats=1'>View stats</a>|<a href='?src=[REF(src)];eject=1'>Eject</a>"
|
||||||
return "[output] [temp]"
|
return "[output] [temp]"
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/medical/sleeper/Topic(href,href_list)
|
/obj/item/mecha_parts/mecha_equipment/medical/sleeper/Topic(href,href_list)
|
||||||
..()
|
..()
|
||||||
var/datum/topic_input/filter = new /datum/topic_input(href,href_list)
|
var/datum/topic_input/afilter = new /datum/topic_input(href,href_list)
|
||||||
if(filter.get("eject"))
|
if(afilter.get("eject"))
|
||||||
go_out()
|
go_out()
|
||||||
if(filter.get("view_stats"))
|
if(afilter.get("view_stats"))
|
||||||
chassis.occupant << browse(get_patient_stats(),"window=msleeper")
|
chassis.occupant << browse(get_patient_stats(),"window=msleeper")
|
||||||
onclose(chassis.occupant, "msleeper")
|
onclose(chassis.occupant, "msleeper")
|
||||||
return
|
return
|
||||||
if(filter.get("inject"))
|
if(afilter.get("inject"))
|
||||||
inject_reagent(filter.getType("inject", /datum/reagent),filter.getObj("source"))
|
inject_reagent(afilter.getType("inject", /datum/reagent),afilter.getObj("source"))
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/medical/sleeper/proc/get_patient_stats()
|
/obj/item/mecha_parts/mecha_equipment/medical/sleeper/proc/get_patient_stats()
|
||||||
@@ -184,7 +184,7 @@
|
|||||||
if(SG && SG.reagents && islist(SG.reagents.reagent_list))
|
if(SG && SG.reagents && islist(SG.reagents.reagent_list))
|
||||||
for(var/datum/reagent/R in SG.reagents.reagent_list)
|
for(var/datum/reagent/R in SG.reagents.reagent_list)
|
||||||
if(R.volume > 0)
|
if(R.volume > 0)
|
||||||
output += "<a href=\"?src=\ref[src];inject=\ref[R];source=\ref[SG]\">Inject [R.name]</a><br />"
|
output += "<a href=\"?src=[REF(src)];inject=[REF(R)];source=[REF(SG)]\">Inject [R.name]</a><br />"
|
||||||
return output
|
return output
|
||||||
|
|
||||||
|
|
||||||
@@ -287,7 +287,7 @@
|
|||||||
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/get_equip_info()
|
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/get_equip_info()
|
||||||
var/output = ..()
|
var/output = ..()
|
||||||
if(output)
|
if(output)
|
||||||
return "[output] \[<a href=\"?src=\ref[src];toggle_mode=1\">[mode? "Analyze" : "Launch"]</a>\]<br />\[Syringes: [syringes.len]/[max_syringes] | Reagents: [reagents.total_volume]/[reagents.maximum_volume]\]<br /><a href='?src=\ref[src];show_reagents=1'>Reagents list</a>"
|
return "[output] \[<a href=\"?src=[REF(src)];toggle_mode=1\">[mode? "Analyze" : "Launch"]</a>\]<br />\[Syringes: [syringes.len]/[max_syringes] | Reagents: [reagents.total_volume]/[reagents.maximum_volume]\]<br /><a href='?src=[REF(src)];show_reagents=1'>Reagents list</a>"
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/action(atom/movable/target)
|
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/action(atom/movable/target)
|
||||||
@@ -358,19 +358,19 @@
|
|||||||
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/Topic(href,href_list)
|
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/Topic(href,href_list)
|
||||||
..()
|
..()
|
||||||
var/datum/topic_input/filter = new (href,href_list)
|
var/datum/topic_input/afilter = new (href,href_list)
|
||||||
if(filter.get("toggle_mode"))
|
if(afilter.get("toggle_mode"))
|
||||||
mode = !mode
|
mode = !mode
|
||||||
update_equip_info()
|
update_equip_info()
|
||||||
return
|
return
|
||||||
if(filter.get("select_reagents"))
|
if(afilter.get("select_reagents"))
|
||||||
processed_reagents.len = 0
|
processed_reagents.len = 0
|
||||||
var/m = 0
|
var/m = 0
|
||||||
var/message
|
var/message
|
||||||
for(var/i=1 to known_reagents.len)
|
for(var/i=1 to known_reagents.len)
|
||||||
if(m>=synth_speed)
|
if(m>=synth_speed)
|
||||||
break
|
break
|
||||||
var/reagent = filter.get("reagent_[i]")
|
var/reagent = afilter.get("reagent_[i]")
|
||||||
if(reagent && (reagent in known_reagents))
|
if(reagent && (reagent in known_reagents))
|
||||||
message = "[m ? ", " : null][known_reagents[reagent]]"
|
message = "[m ? ", " : null][known_reagents[reagent]]"
|
||||||
processed_reagents += reagent
|
processed_reagents += reagent
|
||||||
@@ -382,14 +382,14 @@
|
|||||||
occupant_message("Reagent processing started.")
|
occupant_message("Reagent processing started.")
|
||||||
log_message("Reagent processing started.")
|
log_message("Reagent processing started.")
|
||||||
return
|
return
|
||||||
if(filter.get("show_reagents"))
|
if(afilter.get("show_reagents"))
|
||||||
chassis.occupant << browse(get_reagents_page(),"window=msyringegun")
|
chassis.occupant << browse(get_reagents_page(),"window=msyringegun")
|
||||||
if(filter.get("purge_reagent"))
|
if(afilter.get("purge_reagent"))
|
||||||
var/reagent = filter.get("purge_reagent")
|
var/reagent = afilter.get("purge_reagent")
|
||||||
if(reagent)
|
if(reagent)
|
||||||
reagents.del_reagent(reagent)
|
reagents.del_reagent(reagent)
|
||||||
return
|
return
|
||||||
if(filter.get("purge_all"))
|
if(afilter.get("purge_all"))
|
||||||
reagents.clear_reagents()
|
reagents.clear_reagents()
|
||||||
return
|
return
|
||||||
return
|
return
|
||||||
@@ -426,7 +426,7 @@
|
|||||||
var/r_list = get_reagents_list()
|
var/r_list = get_reagents_list()
|
||||||
var/inputs
|
var/inputs
|
||||||
if(r_list)
|
if(r_list)
|
||||||
inputs += "<input type=\"hidden\" name=\"src\" value=\"\ref[src]\">"
|
inputs += "<input type=\"hidden\" name=\"src\" value=\"[REF(src)]\">"
|
||||||
inputs += "<input type=\"hidden\" name=\"select_reagents\" value=\"1\">"
|
inputs += "<input type=\"hidden\" name=\"select_reagents\" value=\"1\">"
|
||||||
inputs += "<input id=\"submit\" type=\"submit\" value=\"Apply settings\">"
|
inputs += "<input id=\"submit\" type=\"submit\" value=\"Apply settings\">"
|
||||||
var/output = {"<form action="byond://" method="get">
|
var/output = {"<form action="byond://" method="get">
|
||||||
@@ -448,9 +448,9 @@
|
|||||||
var/output
|
var/output
|
||||||
for(var/datum/reagent/R in reagents.reagent_list)
|
for(var/datum/reagent/R in reagents.reagent_list)
|
||||||
if(R.volume > 0)
|
if(R.volume > 0)
|
||||||
output += "[R]: [round(R.volume,0.001)] - <a href=\"?src=\ref[src];purge_reagent=[R.id]\">Purge Reagent</a><br />"
|
output += "[R]: [round(R.volume,0.001)] - <a href=\"?src=[REF(src)];purge_reagent=[R.id]\">Purge Reagent</a><br />"
|
||||||
if(output)
|
if(output)
|
||||||
output += "Total: [round(reagents.total_volume,0.001)]/[reagents.maximum_volume] - <a href=\"?src=\ref[src];purge_all=1\">Purge All</a>"
|
output += "Total: [round(reagents.total_volume,0.001)]/[reagents.maximum_volume] - <a href=\"?src=[REF(src)];purge_all=1\">Purge All</a>"
|
||||||
return output || "None"
|
return output || "None"
|
||||||
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/proc/load_syringe(obj/item/reagent_containers/syringe/S)
|
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/proc/load_syringe(obj/item/reagent_containers/syringe/S)
|
||||||
|
|||||||
@@ -92,20 +92,20 @@
|
|||||||
return
|
return
|
||||||
locked = target
|
locked = target
|
||||||
occupant_message("Locked on [target]")
|
occupant_message("Locked on [target]")
|
||||||
send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info())
|
send_byjax(chassis.occupant,"exosuit.browser","[REF(src)]",src.get_equip_info())
|
||||||
else if(target!=locked)
|
else if(target!=locked)
|
||||||
if(locked in view(chassis))
|
if(locked in view(chassis))
|
||||||
var/turf/targ = get_turf(target)
|
var/turf/targ = get_turf(target)
|
||||||
var/turf/orig = get_turf(locked)
|
var/turf/orig = get_turf(locked)
|
||||||
locked.throw_at(target, 14, 1.5)
|
locked.throw_at(target, 14, 1.5)
|
||||||
locked = null
|
locked = null
|
||||||
send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info())
|
send_byjax(chassis.occupant,"exosuit.browser","[REF(src)]",src.get_equip_info())
|
||||||
log_game("[key_name(chassis.occupant)] used a Gravitational Catapult to throw [locked]([COORD(orig)]) at [target]([COORD(targ)]).")
|
log_game("[key_name(chassis.occupant)] used a Gravitational Catapult to throw [locked]([COORD(orig)]) at [target]([COORD(targ)]).")
|
||||||
return TRUE
|
return TRUE
|
||||||
else
|
else
|
||||||
locked = null
|
locked = null
|
||||||
occupant_message("Lock on [locked] disengaged.")
|
occupant_message("Lock on [locked] disengaged.")
|
||||||
send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info())
|
send_byjax(chassis.occupant,"exosuit.browser","[REF(src)]",src.get_equip_info())
|
||||||
if(2)
|
if(2)
|
||||||
var/list/atoms = list()
|
var/list/atoms = list()
|
||||||
if(isturf(target))
|
if(isturf(target))
|
||||||
@@ -126,13 +126,13 @@
|
|||||||
|
|
||||||
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/gravcatapult/get_equip_info()
|
/obj/item/mecha_parts/mecha_equipment/gravcatapult/get_equip_info()
|
||||||
return "[..()] [mode==1?"([locked||"Nothing"])":null] \[<a href='?src=\ref[src];mode=1'>S</a>|<a href='?src=\ref[src];mode=2'>P</a>\]"
|
return "[..()] [mode==1?"([locked||"Nothing"])":null] \[<a href='?src=[REF(src)];mode=1'>S</a>|<a href='?src=[REF(src)];mode=2'>P</a>\]"
|
||||||
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/gravcatapult/Topic(href, href_list)
|
/obj/item/mecha_parts/mecha_equipment/gravcatapult/Topic(href, href_list)
|
||||||
..()
|
..()
|
||||||
if(href_list["mode"])
|
if(href_list["mode"])
|
||||||
mode = text2num(href_list["mode"])
|
mode = text2num(href_list["mode"])
|
||||||
send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info())
|
send_byjax(chassis.occupant,"exosuit.browser","[REF(src)]",src.get_equip_info())
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
@@ -212,7 +212,7 @@
|
|||||||
/obj/item/mecha_parts/mecha_equipment/repair_droid/get_equip_info()
|
/obj/item/mecha_parts/mecha_equipment/repair_droid/get_equip_info()
|
||||||
if(!chassis)
|
if(!chassis)
|
||||||
return
|
return
|
||||||
return "<span style=\"color:[equip_ready?"#0f0":"#f00"];\">*</span> [src.name] - <a href='?src=\ref[src];toggle_repairs=1'>[equip_ready?"A":"Dea"]ctivate</a>"
|
return "<span style=\"color:[equip_ready?"#0f0":"#f00"];\">*</span> [src.name] - <a href='?src=[REF(src)];toggle_repairs=1'>[equip_ready?"A":"Dea"]ctivate</a>"
|
||||||
|
|
||||||
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/repair_droid/Topic(href, href_list)
|
/obj/item/mecha_parts/mecha_equipment/repair_droid/Topic(href, href_list)
|
||||||
@@ -230,7 +230,7 @@
|
|||||||
log_message("Deactivated.")
|
log_message("Deactivated.")
|
||||||
set_ready_state(1)
|
set_ready_state(1)
|
||||||
chassis.add_overlay(droid_overlay)
|
chassis.add_overlay(droid_overlay)
|
||||||
send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info())
|
send_byjax(chassis.occupant,"exosuit.browser","[REF(src)]",src.get_equip_info())
|
||||||
|
|
||||||
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/repair_droid/process()
|
/obj/item/mecha_parts/mecha_equipment/repair_droid/process()
|
||||||
@@ -320,7 +320,7 @@
|
|||||||
/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/get_equip_info()
|
/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/get_equip_info()
|
||||||
if(!chassis)
|
if(!chassis)
|
||||||
return
|
return
|
||||||
return "<span style=\"color:[equip_ready?"#0f0":"#f00"];\">*</span> [src.name] - <a href='?src=\ref[src];toggle_relay=1'>[equip_ready?"A":"Dea"]ctivate</a>"
|
return "<span style=\"color:[equip_ready?"#0f0":"#f00"];\">*</span> [src.name] - <a href='?src=[REF(src)];toggle_relay=1'>[equip_ready?"A":"Dea"]ctivate</a>"
|
||||||
|
|
||||||
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/process()
|
/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/process()
|
||||||
@@ -397,13 +397,13 @@
|
|||||||
/obj/item/mecha_parts/mecha_equipment/generator/get_equip_info()
|
/obj/item/mecha_parts/mecha_equipment/generator/get_equip_info()
|
||||||
var/output = ..()
|
var/output = ..()
|
||||||
if(output)
|
if(output)
|
||||||
return "[output] \[[fuel]: [round(fuel.amount*fuel.perunit,0.1)] cm<sup>3</sup>\] - <a href='?src=\ref[src];toggle=1'>[equip_ready?"A":"Dea"]ctivate</a>"
|
return "[output] \[[fuel]: [round(fuel.amount*fuel.perunit,0.1)] cm<sup>3</sup>\] - <a href='?src=[REF(src)];toggle=1'>[equip_ready?"A":"Dea"]ctivate</a>"
|
||||||
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/generator/action(target)
|
/obj/item/mecha_parts/mecha_equipment/generator/action(target)
|
||||||
if(chassis)
|
if(chassis)
|
||||||
var/result = load_fuel(target)
|
var/result = load_fuel(target)
|
||||||
if(result)
|
if(result)
|
||||||
send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info())
|
send_byjax(chassis.occupant,"exosuit.browser","[REF(src)]",src.get_equip_info())
|
||||||
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/generator/proc/load_fuel(var/obj/item/stack/sheet/P)
|
/obj/item/mecha_parts/mecha_equipment/generator/proc/load_fuel(var/obj/item/stack/sheet/P)
|
||||||
if(P.type == fuel.type && P.amount > 0)
|
if(P.type == fuel.type && P.amount > 0)
|
||||||
|
|||||||
@@ -288,7 +288,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/rcd/get_equip_info()
|
/obj/item/mecha_parts/mecha_equipment/rcd/get_equip_info()
|
||||||
return "[..()] \[<a href='?src=\ref[src];mode=0'>D</a>|<a href='?src=\ref[src];mode=1'>C</a>|<a href='?src=\ref[src];mode=2'>A</a>\]"
|
return "[..()] \[<a href='?src=[REF(src)];mode=0'>D</a>|<a href='?src=[REF(src)];mode=1'>C</a>|<a href='?src=[REF(src)];mode=2'>A</a>\]"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -342,7 +342,7 @@
|
|||||||
cable.amount += to_load
|
cable.amount += to_load
|
||||||
target.use(to_load)
|
target.use(to_load)
|
||||||
occupant_message("<span class='notice'>[to_load] meters of cable successfully loaded.</span>")
|
occupant_message("<span class='notice'>[to_load] meters of cable successfully loaded.</span>")
|
||||||
send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info())
|
send_byjax(chassis.occupant,"exosuit.browser","[REF(src)]",src.get_equip_info())
|
||||||
else
|
else
|
||||||
occupant_message("<span class='warning'>Reel is full.</span>")
|
occupant_message("<span class='warning'>Reel is full.</span>")
|
||||||
else
|
else
|
||||||
@@ -371,7 +371,7 @@
|
|||||||
/obj/item/mecha_parts/mecha_equipment/cable_layer/get_equip_info()
|
/obj/item/mecha_parts/mecha_equipment/cable_layer/get_equip_info()
|
||||||
var/output = ..()
|
var/output = ..()
|
||||||
if(output)
|
if(output)
|
||||||
return "[output] \[Cable: [cable ? cable.amount : 0] m\][(cable && cable.amount) ? "- <a href='?src=\ref[src];toggle=1'>[!equip_ready?"Dea":"A"]ctivate</a>|<a href='?src=\ref[src];cut=1'>Cut</a>" : null]"
|
return "[output] \[Cable: [cable ? cable.amount : 0] m\][(cable && cable.amount) ? "- <a href='?src=[REF(src)];toggle=1'>[!equip_ready?"Dea":"A"]ctivate</a>|<a href='?src=[REF(src)];cut=1'>Cut</a>" : null]"
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/cable_layer/proc/use_cable(amount)
|
/obj/item/mecha_parts/mecha_equipment/cable_layer/proc/use_cable(amount)
|
||||||
|
|||||||
@@ -210,7 +210,7 @@
|
|||||||
return 1
|
return 1
|
||||||
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/get_equip_info()
|
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/get_equip_info()
|
||||||
return "[..()] \[[src.projectiles]\][(src.projectiles < initial(src.projectiles))?" - <a href='?src=\ref[src];rearm=1'>Rearm</a>":null]"
|
return "[..()] \[[src.projectiles]\][(src.projectiles < initial(src.projectiles))?" - <a href='?src=[REF(src)];rearm=1'>Rearm</a>":null]"
|
||||||
|
|
||||||
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/rearm()
|
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/rearm()
|
||||||
@@ -220,7 +220,7 @@
|
|||||||
projectiles++
|
projectiles++
|
||||||
projectiles_to_add--
|
projectiles_to_add--
|
||||||
chassis.use_power(projectile_energy_cost)
|
chassis.use_power(projectile_energy_cost)
|
||||||
send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info())
|
send_byjax(chassis.occupant,"exosuit.browser","[REF(src)]",src.get_equip_info())
|
||||||
log_message("Rearmed [src.name].")
|
log_message("Rearmed [src.name].")
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
@@ -239,7 +239,7 @@
|
|||||||
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/action(atom/target)
|
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/action(atom/target)
|
||||||
if(..())
|
if(..())
|
||||||
projectiles -= get_shot_amount()
|
projectiles -= get_shot_amount()
|
||||||
send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info())
|
send_byjax(chassis.occupant,"exosuit.browser","[REF(src)]",src.get_equip_info())
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -98,8 +98,8 @@
|
|||||||
continue
|
continue
|
||||||
output += "<div class='part'>[output_part_info(D)]<br>\["
|
output += "<div class='part'>[output_part_info(D)]<br>\["
|
||||||
if(check_resources(D))
|
if(check_resources(D))
|
||||||
output += "<a href='?src=\ref[src];part=[D.id]'>Build</a> | "
|
output += "<a href='?src=[REF(src)];part=[D.id]'>Build</a> | "
|
||||||
output += "<a href='?src=\ref[src];add_to_queue=[D.id]'>Add to queue</a>\]\[<a href='?src=\ref[src];part_desc=[D.id]'>?</a>\]</div>"
|
output += "<a href='?src=[REF(src)];add_to_queue=[D.id]'>Add to queue</a>\]\[<a href='?src=[REF(src)];part_desc=[D.id]'>?</a>\]</div>"
|
||||||
return output
|
return output
|
||||||
|
|
||||||
/obj/machinery/mecha_part_fabricator/proc/output_part_info(datum/design/D)
|
/obj/machinery/mecha_part_fabricator/proc/output_part_info(datum/design/D)
|
||||||
@@ -121,10 +121,10 @@
|
|||||||
var/datum/material/M = materials.materials[mat_id]
|
var/datum/material/M = materials.materials[mat_id]
|
||||||
output += "<span class=\"res_name\">[M.name]: </span>[M.amount] cm³"
|
output += "<span class=\"res_name\">[M.name]: </span>[M.amount] cm³"
|
||||||
if(M.amount >= MINERAL_MATERIAL_AMOUNT)
|
if(M.amount >= MINERAL_MATERIAL_AMOUNT)
|
||||||
output += "<span style='font-size:80%;'>- Remove \[<a href='?src=\ref[src];remove_mat=1;material=[mat_id]'>1</a>\]"
|
output += "<span style='font-size:80%;'>- Remove \[<a href='?src=[REF(src)];remove_mat=1;material=[mat_id]'>1</a>\]"
|
||||||
if(M.amount >= (MINERAL_MATERIAL_AMOUNT * 10))
|
if(M.amount >= (MINERAL_MATERIAL_AMOUNT * 10))
|
||||||
output += " | \[<a href='?src=\ref[src];remove_mat=10;material=[mat_id]'>10</a>\]"
|
output += " | \[<a href='?src=[REF(src)];remove_mat=10;material=[mat_id]'>10</a>\]"
|
||||||
output += " | \[<a href='?src=\ref[src];remove_mat=50;material=[mat_id]'>All</a>\]</span>"
|
output += " | \[<a href='?src=[REF(src)];remove_mat=50;material=[mat_id]'>All</a>\]</span>"
|
||||||
output += "<br/>"
|
output += "<br/>"
|
||||||
return output
|
return output
|
||||||
|
|
||||||
@@ -206,7 +206,7 @@
|
|||||||
if(!check_resources(D))
|
if(!check_resources(D))
|
||||||
say("Not enough resources. Queue processing stopped.")
|
say("Not enough resources. Queue processing stopped.")
|
||||||
temp = {"<span class='alert'>Not enough resources to build next part.</span><br>
|
temp = {"<span class='alert'>Not enough resources to build next part.</span><br>
|
||||||
<a href='?src=\ref[src];process_queue=1'>Try again</a> | <a href='?src=\ref[src];clear_temp=1'>Return</a><a>"}
|
<a href='?src=[REF(src)];process_queue=1'>Try again</a> | <a href='?src=[REF(src)];clear_temp=1'>Return</a><a>"}
|
||||||
return 0
|
return 0
|
||||||
remove_from_queue(1)
|
remove_from_queue(1)
|
||||||
build_part(D)
|
build_part(D)
|
||||||
@@ -225,12 +225,12 @@
|
|||||||
var/obj/part = D.build_path
|
var/obj/part = D.build_path
|
||||||
output += "<li[!check_resources(D)?" style='color: #f00;'":null]>"
|
output += "<li[!check_resources(D)?" style='color: #f00;'":null]>"
|
||||||
output += initial(part.name) + " - "
|
output += initial(part.name) + " - "
|
||||||
output += "[i>1?"<a href='?src=\ref[src];queue_move=-1;index=[i]' class='arrow'>↑</a>":null] "
|
output += "[i>1?"<a href='?src=[REF(src)];queue_move=-1;index=[i]' class='arrow'>↑</a>":null] "
|
||||||
output += "[i<queue.len?"<a href='?src=\ref[src];queue_move=+1;index=[i]' class='arrow'>↓</a>":null] "
|
output += "[i<queue.len?"<a href='?src=[REF(src)];queue_move=+1;index=[i]' class='arrow'>↓</a>":null] "
|
||||||
output += "<a href='?src=\ref[src];remove_from_queue=[i]'>Remove</a></li>"
|
output += "<a href='?src=[REF(src)];remove_from_queue=[i]'>Remove</a></li>"
|
||||||
|
|
||||||
output += "</ol>"
|
output += "</ol>"
|
||||||
output += "\[<a href='?src=\ref[src];process_queue=1'>Process queue</a> | <a href='?src=\ref[src];clear_queue=1'>Clear queue</a>\]"
|
output += "\[<a href='?src=[REF(src)];process_queue=1'>Process queue</a> | <a href='?src=[REF(src)];clear_queue=1'>Clear queue</a>\]"
|
||||||
return output
|
return output
|
||||||
|
|
||||||
/obj/machinery/mecha_part_fabricator/proc/sync()
|
/obj/machinery/mecha_part_fabricator/proc/sync()
|
||||||
@@ -250,13 +250,13 @@
|
|||||||
files.RefreshResearch()
|
files.RefreshResearch()
|
||||||
temp = "Processed equipment designs.<br>"
|
temp = "Processed equipment designs.<br>"
|
||||||
//check if the tech coefficients have changed
|
//check if the tech coefficients have changed
|
||||||
temp += "<a href='?src=\ref[src];clear_temp=1'>Return</a>"
|
temp += "<a href='?src=[REF(src)];clear_temp=1'>Return</a>"
|
||||||
|
|
||||||
updateUsrDialog()
|
updateUsrDialog()
|
||||||
say("Successfully synchronized with R&D server.")
|
say("Successfully synchronized with R&D server.")
|
||||||
return
|
return
|
||||||
|
|
||||||
temp = "Unable to connect to local R&D Database.<br>Please check your connections and try again.<br><a href='?src=\ref[src];clear_temp=1'>Return</a>"
|
temp = "Unable to connect to local R&D Database.<br>Please check your connections and try again.<br><a href='?src=[REF(src)];clear_temp=1'>Return</a>"
|
||||||
updateUsrDialog()
|
updateUsrDialog()
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -289,12 +289,12 @@
|
|||||||
switch(screen)
|
switch(screen)
|
||||||
if("main")
|
if("main")
|
||||||
left_part = output_available_resources()+"<hr>"
|
left_part = output_available_resources()+"<hr>"
|
||||||
left_part += "<a href='?src=\ref[src];sync=1'>Sync with R&D servers</a><hr>"
|
left_part += "<a href='?src=[REF(src)];sync=1'>Sync with R&D servers</a><hr>"
|
||||||
for(var/part_set in part_sets)
|
for(var/part_set in part_sets)
|
||||||
left_part += "<a href='?src=\ref[src];part_set=[part_set]'>[part_set]</a> - \[<a href='?src=\ref[src];partset_to_queue=[part_set]'>Add all parts to queue</a>\]<br>"
|
left_part += "<a href='?src=[REF(src)];part_set=[part_set]'>[part_set]</a> - \[<a href='?src=[REF(src)];partset_to_queue=[part_set]'>Add all parts to queue</a>\]<br>"
|
||||||
if("parts")
|
if("parts")
|
||||||
left_part += output_parts_list(part_set)
|
left_part += output_parts_list(part_set)
|
||||||
left_part += "<hr><a href='?src=\ref[src];screen=main'>Return</a>"
|
left_part += "<hr><a href='?src=[REF(src)];screen=main'>Return</a>"
|
||||||
dat = {"<html>
|
dat = {"<html>
|
||||||
<head>
|
<head>
|
||||||
<title>[name]</title>
|
<title>[name]</title>
|
||||||
@@ -332,9 +332,9 @@
|
|||||||
/obj/machinery/mecha_part_fabricator/Topic(href, href_list)
|
/obj/machinery/mecha_part_fabricator/Topic(href, href_list)
|
||||||
if(..())
|
if(..())
|
||||||
return
|
return
|
||||||
var/datum/topic_input/filter = new /datum/topic_input(href,href_list)
|
var/datum/topic_input/afilter = new /datum/topic_input(href,href_list)
|
||||||
if(href_list["part_set"])
|
if(href_list["part_set"])
|
||||||
var/tpart_set = filter.getStr("part_set")
|
var/tpart_set = afilter.getStr("part_set")
|
||||||
if(tpart_set)
|
if(tpart_set)
|
||||||
if(tpart_set=="clear")
|
if(tpart_set=="clear")
|
||||||
part_set = null
|
part_set = null
|
||||||
@@ -342,7 +342,7 @@
|
|||||||
part_set = tpart_set
|
part_set = tpart_set
|
||||||
screen = "parts"
|
screen = "parts"
|
||||||
if(href_list["part"])
|
if(href_list["part"])
|
||||||
var/T = filter.getStr("part")
|
var/T = afilter.getStr("part")
|
||||||
for(var/v in files.known_designs)
|
for(var/v in files.known_designs)
|
||||||
var/datum/design/D = files.known_designs[v]
|
var/datum/design/D = files.known_designs[v]
|
||||||
if(D.build_type & MECHFAB)
|
if(D.build_type & MECHFAB)
|
||||||
@@ -353,7 +353,7 @@
|
|||||||
add_to_queue(D)
|
add_to_queue(D)
|
||||||
break
|
break
|
||||||
if(href_list["add_to_queue"])
|
if(href_list["add_to_queue"])
|
||||||
var/T = filter.getStr("add_to_queue")
|
var/T = afilter.getStr("add_to_queue")
|
||||||
for(var/v in files.known_designs)
|
for(var/v in files.known_designs)
|
||||||
var/datum/design/D = files.known_designs[v]
|
var/datum/design/D = files.known_designs[v]
|
||||||
if(D.build_type & MECHFAB)
|
if(D.build_type & MECHFAB)
|
||||||
@@ -362,10 +362,10 @@
|
|||||||
break
|
break
|
||||||
return update_queue_on_page()
|
return update_queue_on_page()
|
||||||
if(href_list["remove_from_queue"])
|
if(href_list["remove_from_queue"])
|
||||||
remove_from_queue(filter.getNum("remove_from_queue"))
|
remove_from_queue(afilter.getNum("remove_from_queue"))
|
||||||
return update_queue_on_page()
|
return update_queue_on_page()
|
||||||
if(href_list["partset_to_queue"])
|
if(href_list["partset_to_queue"])
|
||||||
add_part_set_to_queue(filter.get("partset_to_queue"))
|
add_part_set_to_queue(afilter.get("partset_to_queue"))
|
||||||
return update_queue_on_page()
|
return update_queue_on_page()
|
||||||
if(href_list["process_queue"])
|
if(href_list["process_queue"])
|
||||||
spawn(0)
|
spawn(0)
|
||||||
@@ -379,8 +379,8 @@
|
|||||||
if(href_list["screen"])
|
if(href_list["screen"])
|
||||||
screen = href_list["screen"]
|
screen = href_list["screen"]
|
||||||
if(href_list["queue_move"] && href_list["index"])
|
if(href_list["queue_move"] && href_list["index"])
|
||||||
var/index = filter.getNum("index")
|
var/index = afilter.getNum("index")
|
||||||
var/new_index = index + filter.getNum("queue_move")
|
var/new_index = index + afilter.getNum("queue_move")
|
||||||
if(isnum(index) && isnum(new_index) && IsInteger(index) && IsInteger(new_index))
|
if(isnum(index) && isnum(new_index) && IsInteger(index) && IsInteger(new_index))
|
||||||
if(IsInRange(new_index,1,queue.len))
|
if(IsInRange(new_index,1,queue.len))
|
||||||
queue.Swap(index,new_index)
|
queue.Swap(index,new_index)
|
||||||
@@ -391,7 +391,7 @@
|
|||||||
if(href_list["sync"])
|
if(href_list["sync"])
|
||||||
sync()
|
sync()
|
||||||
if(href_list["part_desc"])
|
if(href_list["part_desc"])
|
||||||
var/T = filter.getStr("part_desc")
|
var/T = afilter.getStr("part_desc")
|
||||||
for(var/v in files.known_designs)
|
for(var/v in files.known_designs)
|
||||||
var/datum/design/D = files.known_designs[v]
|
var/datum/design/D = files.known_designs[v]
|
||||||
if(D.build_type & MECHFAB)
|
if(D.build_type & MECHFAB)
|
||||||
@@ -399,7 +399,7 @@
|
|||||||
var/obj/part = D.build_path
|
var/obj/part = D.build_path
|
||||||
temp = {"<h1>[initial(part.name)] description:</h1>
|
temp = {"<h1>[initial(part.name)] description:</h1>
|
||||||
[initial(part.desc)]<br>
|
[initial(part.desc)]<br>
|
||||||
<a href='?src=\ref[src];clear_temp=1'>Return</a>
|
<a href='?src=[REF(src)];clear_temp=1'>Return</a>
|
||||||
"}
|
"}
|
||||||
break
|
break
|
||||||
|
|
||||||
|
|||||||
@@ -647,7 +647,7 @@
|
|||||||
to_chat(user, "[B.get_mecha_info()]")
|
to_chat(user, "[B.get_mecha_info()]")
|
||||||
break
|
break
|
||||||
//Nothing like a big, red link to make the player feel powerful!
|
//Nothing like a big, red link to make the player feel powerful!
|
||||||
to_chat(user, "<a href='?src=\ref[user];ai_take_control=\ref[src]'><span class='userdanger'>ASSUME DIRECT CONTROL?</span></a><br>")
|
to_chat(user, "<a href='?src=[REF(user)];ai_take_control=[REF(src)]'><span class='userdanger'>ASSUME DIRECT CONTROL?</span></a><br>")
|
||||||
else
|
else
|
||||||
examine(user)
|
examine(user)
|
||||||
if(occupant)
|
if(occupant)
|
||||||
@@ -661,7 +661,7 @@
|
|||||||
if(!can_control_mech)
|
if(!can_control_mech)
|
||||||
to_chat(user, "<span class='warning'>You cannot control exosuits without AI control beacons installed.</span>")
|
to_chat(user, "<span class='warning'>You cannot control exosuits without AI control beacons installed.</span>")
|
||||||
return
|
return
|
||||||
to_chat(user, "<a href='?src=\ref[user];ai_take_control=\ref[src]'><span class='boldnotice'>Take control of exosuit?</span></a><br>")
|
to_chat(user, "<a href='?src=[REF(user)];ai_take_control=[REF(src)]'><span class='boldnotice'>Take control of exosuit?</span></a><br>")
|
||||||
|
|
||||||
/obj/mecha/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/device/aicard/card)
|
/obj/mecha/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/device/aicard/card)
|
||||||
if(!..())
|
if(!..())
|
||||||
|
|||||||
@@ -23,15 +23,15 @@
|
|||||||
var/answer = TR.get_mecha_info()
|
var/answer = TR.get_mecha_info()
|
||||||
if(answer)
|
if(answer)
|
||||||
dat += {"<hr>[answer]<br/>
|
dat += {"<hr>[answer]<br/>
|
||||||
<a href='?src=\ref[src];send_message=\ref[TR]'>Send message</a><br/>
|
<a href='?src=[REF(src)];send_message=[REF(TR)]'>Send message</a><br/>
|
||||||
<a href='?src=\ref[src];get_log=\ref[TR]'>Show exosuit log</a> | <a style='color: #f00;' href='?src=\ref[src];shock=\ref[TR]'>(EMP pulse)</a><br>"}
|
<a href='?src=[REF(src)];get_log=[REF(TR)]'>Show exosuit log</a> | <a style='color: #f00;' href='?src=[REF(src)];shock=[REF(TR)]'>(EMP pulse)</a><br>"}
|
||||||
|
|
||||||
if(screen==1)
|
if(screen==1)
|
||||||
dat += "<h3>Log contents</h3>"
|
dat += "<h3>Log contents</h3>"
|
||||||
dat += "<a href='?src=\ref[src];return=1'>Return</a><hr>"
|
dat += "<a href='?src=[REF(src)];return=1'>Return</a><hr>"
|
||||||
dat += "[stored_data]"
|
dat += "[stored_data]"
|
||||||
|
|
||||||
dat += "<A href='?src=\ref[src];refresh=1'>(Refresh)</A><BR>"
|
dat += "<A href='?src=[REF(src)];refresh=1'>(Refresh)</A><BR>"
|
||||||
dat += "</body></html>"
|
dat += "</body></html>"
|
||||||
|
|
||||||
user << browse(dat, "window=computer;size=400x500")
|
user << browse(dat, "window=computer;size=400x500")
|
||||||
@@ -41,19 +41,19 @@
|
|||||||
/obj/machinery/computer/mecha/Topic(href, href_list)
|
/obj/machinery/computer/mecha/Topic(href, href_list)
|
||||||
if(..())
|
if(..())
|
||||||
return
|
return
|
||||||
var/datum/topic_input/filter = new /datum/topic_input(href,href_list)
|
var/datum/topic_input/afilter = new /datum/topic_input(href,href_list)
|
||||||
if(href_list["send_message"])
|
if(href_list["send_message"])
|
||||||
var/obj/item/mecha_parts/mecha_tracking/MT = filter.getObj("send_message")
|
var/obj/item/mecha_parts/mecha_tracking/MT = afilter.getObj("send_message")
|
||||||
var/message = stripped_input(usr,"Input message","Transmit message")
|
var/message = stripped_input(usr,"Input message","Transmit message")
|
||||||
var/obj/mecha/M = MT.in_mecha()
|
var/obj/mecha/M = MT.in_mecha()
|
||||||
if(trim(message) && M)
|
if(trim(message) && M)
|
||||||
M.occupant_message(message)
|
M.occupant_message(message)
|
||||||
return
|
return
|
||||||
if(href_list["shock"])
|
if(href_list["shock"])
|
||||||
var/obj/item/mecha_parts/mecha_tracking/MT = filter.getObj("shock")
|
var/obj/item/mecha_parts/mecha_tracking/MT = afilter.getObj("shock")
|
||||||
MT.shock()
|
MT.shock()
|
||||||
if(href_list["get_log"])
|
if(href_list["get_log"])
|
||||||
var/obj/item/mecha_parts/mecha_tracking/MT = filter.getObj("get_log")
|
var/obj/item/mecha_parts/mecha_tracking/MT = afilter.getObj("get_log")
|
||||||
stored_data = MT.get_mecha_log()
|
stored_data = MT.get_mecha_log()
|
||||||
screen = 1
|
screen = 1
|
||||||
if(href_list["return"])
|
if(href_list["return"])
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
[js_dropdowns]
|
[js_dropdowns]
|
||||||
function SSticker() {
|
function SSticker() {
|
||||||
setInterval(function(){
|
setInterval(function(){
|
||||||
window.location='byond://?src=\ref[src]&update_content=1';
|
window.location='byond://?src=[REF(src)]&update_content=1';
|
||||||
}, 1000);
|
}, 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,7 +55,7 @@
|
|||||||
"[MECHA_INT_FIRE]" = "<span class='userdanger'>INTERNAL FIRE</span>",
|
"[MECHA_INT_FIRE]" = "<span class='userdanger'>INTERNAL FIRE</span>",
|
||||||
"[MECHA_INT_TEMP_CONTROL]" = "<span class='userdanger'>LIFE SUPPORT SYSTEM MALFUNCTION</span>",
|
"[MECHA_INT_TEMP_CONTROL]" = "<span class='userdanger'>LIFE SUPPORT SYSTEM MALFUNCTION</span>",
|
||||||
"[MECHA_INT_TANK_BREACH]" = "<span class='userdanger'>GAS TANK BREACH</span>",
|
"[MECHA_INT_TANK_BREACH]" = "<span class='userdanger'>GAS TANK BREACH</span>",
|
||||||
"[MECHA_INT_CONTROL_LOST]" = "<span class='userdanger'>COORDINATION SYSTEM CALIBRATION FAILURE</span> - <a href='?src=\ref[src];repair_int_control_lost=1'>Recalibrate</a>",
|
"[MECHA_INT_CONTROL_LOST]" = "<span class='userdanger'>COORDINATION SYSTEM CALIBRATION FAILURE</span> - <a href='?src=[REF(src)];repair_int_control_lost=1'>Recalibrate</a>",
|
||||||
"[MECHA_INT_SHORT_CIRCUIT]" = "<span class='userdanger'>SHORT CIRCUIT</span>"
|
"[MECHA_INT_SHORT_CIRCUIT]" = "<span class='userdanger'>SHORT CIRCUIT</span>"
|
||||||
)
|
)
|
||||||
for(var/tflag in dam_reports)
|
for(var/tflag in dam_reports)
|
||||||
@@ -84,7 +84,7 @@
|
|||||||
<b>Airtank temperature: </b>[tank_temperature]°K|[tank_temperature - T0C]°C<br>
|
<b>Airtank temperature: </b>[tank_temperature]°K|[tank_temperature - T0C]°C<br>
|
||||||
<b>Cabin pressure: </b>[cabin_pressure>WARNING_HIGH_PRESSURE ? "<span class='danger'>[cabin_pressure]</span>": cabin_pressure]kPa<br>
|
<b>Cabin pressure: </b>[cabin_pressure>WARNING_HIGH_PRESSURE ? "<span class='danger'>[cabin_pressure]</span>": cabin_pressure]kPa<br>
|
||||||
<b>Cabin temperature: </b> [return_temperature()]°K|[return_temperature() - T0C]°C<br>
|
<b>Cabin temperature: </b> [return_temperature()]°K|[return_temperature() - T0C]°C<br>
|
||||||
[dna_lock?"<b>DNA-locked:</b><br> <span style='font-size:10px;letter-spacing:-1px;'>[dna_lock]</span> \[<a href='?src=\ref[src];reset_dna=1'>Reset</a>\]<br>":""]<br>
|
[dna_lock?"<b>DNA-locked:</b><br> <span style='font-size:10px;letter-spacing:-1px;'>[dna_lock]</span> \[<a href='?src=[REF(src)];reset_dna=1'>Reset</a>\]<br>":""]<br>
|
||||||
[thrusters_action.owner ? "<b>Thrusters: </b> [thrusters_active ? "Enabled" : "Disabled"]<br>" : ""]
|
[thrusters_action.owner ? "<b>Thrusters: </b> [thrusters_active ? "Enabled" : "Disabled"]<br>" : ""]
|
||||||
[defense_action.owner ? "<b>Defence Mode: </b> [defence_mode ? "Enabled" : "Disabled"]<br>" : ""]
|
[defense_action.owner ? "<b>Defence Mode: </b> [defence_mode ? "Enabled" : "Disabled"]<br>" : ""]
|
||||||
[overload_action.owner ? "<b>Leg Actuators Overload: </b> [leg_overload_mode ? "Enabled" : "Disabled"]<br>" : ""]
|
[overload_action.owner ? "<b>Leg Actuators Overload: </b> [leg_overload_mode ? "Enabled" : "Disabled"]<br>" : ""]
|
||||||
@@ -100,25 +100,25 @@
|
|||||||
<div class='header'>Electronics</div>
|
<div class='header'>Electronics</div>
|
||||||
<div class='links'>
|
<div class='links'>
|
||||||
<b>Radio settings:</b><br>
|
<b>Radio settings:</b><br>
|
||||||
Microphone: <a href='?src=\ref[src];rmictoggle=1'><span id="rmicstate">[radio.broadcasting?"Engaged":"Disengaged"]</span></a><br>
|
Microphone: <a href='?src=[REF(src)];rmictoggle=1'><span id="rmicstate">[radio.broadcasting?"Engaged":"Disengaged"]</span></a><br>
|
||||||
Speaker: <a href='?src=\ref[src];rspktoggle=1'><span id="rspkstate">[radio.listening?"Engaged":"Disengaged"]</span></a><br>
|
Speaker: <a href='?src=[REF(src)];rspktoggle=1'><span id="rspkstate">[radio.listening?"Engaged":"Disengaged"]</span></a><br>
|
||||||
Frequency:
|
Frequency:
|
||||||
<a href='?src=\ref[src];rfreq=-10'>-</a>
|
<a href='?src=[REF(src)];rfreq=-10'>-</a>
|
||||||
<a href='?src=\ref[src];rfreq=-2'>-</a>
|
<a href='?src=[REF(src)];rfreq=-2'>-</a>
|
||||||
<span id="rfreq">[format_frequency(radio.frequency)]</span>
|
<span id="rfreq">[format_frequency(radio.frequency)]</span>
|
||||||
<a href='?src=\ref[src];rfreq=2'>+</a>
|
<a href='?src=[REF(src)];rfreq=2'>+</a>
|
||||||
<a href='?src=\ref[src];rfreq=10'>+</a><br>
|
<a href='?src=[REF(src)];rfreq=10'>+</a><br>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class='wr'>
|
<div class='wr'>
|
||||||
<div class='header'>Permissions & Logging</div>
|
<div class='header'>Permissions & Logging</div>
|
||||||
<div class='links'>
|
<div class='links'>
|
||||||
<a href='?src=\ref[src];toggle_id_upload=1'><span id='t_id_upload'>[add_req_access?"L":"Unl"]ock ID upload panel</span></a><br>
|
<a href='?src=[REF(src)];toggle_id_upload=1'><span id='t_id_upload'>[add_req_access?"L":"Unl"]ock ID upload panel</span></a><br>
|
||||||
<a href='?src=\ref[src];toggle_maint_access=1'><span id='t_maint_access'>[maint_access?"Forbid":"Permit"] maintenance protocols</span></a><br>
|
<a href='?src=[REF(src)];toggle_maint_access=1'><span id='t_maint_access'>[maint_access?"Forbid":"Permit"] maintenance protocols</span></a><br>
|
||||||
<a href='?src=\ref[src];toggle_port_connection=1'><span id='t_port_connection'>[internal_tank.connected_port?"Disconnect from":"Connect to"] gas port</span></a><br>
|
<a href='?src=[REF(src)];toggle_port_connection=1'><span id='t_port_connection'>[internal_tank.connected_port?"Disconnect from":"Connect to"] gas port</span></a><br>
|
||||||
<a href='?src=\ref[src];dna_lock=1'>DNA-lock</a><br>
|
<a href='?src=[REF(src)];dna_lock=1'>DNA-lock</a><br>
|
||||||
<a href='?src=\ref[src];view_log=1'>View internal log</a><br>
|
<a href='?src=[REF(src)];view_log=1'>View internal log</a><br>
|
||||||
<a href='?src=\ref[src];change_name=1'>Change exosuit name</a><br>
|
<a href='?src=[REF(src)];change_name=1'>Change exosuit name</a><br>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id='equipment_menu'>[get_equipment_menu()]</div>
|
<div id='equipment_menu'>[get_equipment_menu()]</div>
|
||||||
@@ -133,7 +133,7 @@
|
|||||||
<div class='links'>"}
|
<div class='links'>"}
|
||||||
for(var/X in equipment)
|
for(var/X in equipment)
|
||||||
var/obj/item/mecha_parts/mecha_equipment/W = X
|
var/obj/item/mecha_parts/mecha_equipment/W = X
|
||||||
. += "[W.name] <a href='?src=\ref[W];detach=1'>Detach</a><br>"
|
. += "[W.name] <a href='?src=[REF(W)];detach=1'>Detach</a><br>"
|
||||||
. += "<b>Available equipment slots:</b> [max_equip-equipment.len]"
|
. += "<b>Available equipment slots:</b> [max_equip-equipment.len]"
|
||||||
. += "</div></div>"
|
. += "</div></div>"
|
||||||
|
|
||||||
@@ -143,7 +143,7 @@
|
|||||||
return
|
return
|
||||||
. = "<b>Equipment:</b><div style=\"margin-left: 15px;\">"
|
. = "<b>Equipment:</b><div style=\"margin-left: 15px;\">"
|
||||||
for(var/obj/item/mecha_parts/mecha_equipment/MT in equipment)
|
for(var/obj/item/mecha_parts/mecha_equipment/MT in equipment)
|
||||||
. += "<div id='\ref[MT]'>[MT.get_equip_info()]</div>"
|
. += "<div id='[REF(MT)]'>[MT.get_equip_info()]</div>"
|
||||||
. += "</div>"
|
. += "</div>"
|
||||||
|
|
||||||
|
|
||||||
@@ -171,7 +171,7 @@
|
|||||||
<body>
|
<body>
|
||||||
<h1>Following keycodes are present in this system:</h1>"}
|
<h1>Following keycodes are present in this system:</h1>"}
|
||||||
for(var/a in operation_req_access)
|
for(var/a in operation_req_access)
|
||||||
. += "[get_access_desc(a)] - <a href='?src=\ref[src];del_req_access=[a];user=\ref[user];id_card=\ref[id_card]'>Delete</a><br>"
|
. += "[get_access_desc(a)] - <a href='?src=[REF(src)];del_req_access=[a];user=[REF(user)];id_card=[REF(id_card)]'>Delete</a><br>"
|
||||||
. += "<hr><h1>Following keycodes were detected on portable device:</h1>"
|
. += "<hr><h1>Following keycodes were detected on portable device:</h1>"
|
||||||
for(var/a in id_card.access)
|
for(var/a in id_card.access)
|
||||||
if(a in operation_req_access)
|
if(a in operation_req_access)
|
||||||
@@ -179,8 +179,8 @@
|
|||||||
var/a_name = get_access_desc(a)
|
var/a_name = get_access_desc(a)
|
||||||
if(!a_name)
|
if(!a_name)
|
||||||
continue //there's some strange access without a name
|
continue //there's some strange access without a name
|
||||||
. += "[a_name] - <a href='?src=\ref[src];add_req_access=[a];user=\ref[user];id_card=\ref[id_card]'>Add</a><br>"
|
. += "[a_name] - <a href='?src=[REF(src)];add_req_access=[a];user=[REF(user)];id_card=[REF(id_card)]'>Add</a><br>"
|
||||||
. += "<hr><a href='?src=\ref[src];finish_req_access=1;user=\ref[user]'>Finish</a> "
|
. += "<hr><a href='?src=[REF(src)];finish_req_access=1;user=[REF(user)]'>Finish</a> "
|
||||||
. += "<span class='danger'>(Warning! The ID upload panel will be locked. It can be unlocked only through Exosuit Interface.)</span>"
|
. += "<span class='danger'>(Warning! The ID upload panel will be locked. It can be unlocked only through Exosuit Interface.)</span>"
|
||||||
. += "</body></html>"
|
. += "</body></html>"
|
||||||
user << browse(., "window=exosuit_add_access")
|
user << browse(., "window=exosuit_add_access")
|
||||||
@@ -198,9 +198,9 @@
|
|||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
[add_req_access?"<a href='?src=\ref[src];req_access=1;id_card=\ref[id_card];user=\ref[user]'>Edit operation keycodes</a>":null]
|
[add_req_access?"<a href='?src=[REF(src)];req_access=1;id_card=[REF(id_card)];user=[REF(user)]'>Edit operation keycodes</a>":null]
|
||||||
[maint_access?"<a href='?src=\ref[src];maint_access=1;id_card=\ref[id_card];user=\ref[user]'>Initiate maintenance protocol</a>":null]
|
[maint_access?"<a href='?src=[REF(src)];maint_access=1;id_card=[REF(id_card)];user=[REF(user)]'>Initiate maintenance protocol</a>":null]
|
||||||
[(state>0) ?"<a href='?src=\ref[src];set_internal_tank_valve=1;user=\ref[user]'>Set Cabin Air Pressure</a>":null]
|
[(state>0) ?"<a href='?src=[REF(src)];set_internal_tank_valve=1;user=[REF(user)]'>Set Cabin Air Pressure</a>":null]
|
||||||
</body>
|
</body>
|
||||||
</html>"}
|
</html>"}
|
||||||
user << browse(., "window=exosuit_maint_console")
|
user << browse(., "window=exosuit_maint_console")
|
||||||
@@ -221,15 +221,15 @@
|
|||||||
if(usr.incapacitated())
|
if(usr.incapacitated())
|
||||||
return
|
return
|
||||||
|
|
||||||
var/datum/topic_input/filter = new /datum/topic_input(href,href_list)
|
var/datum/topic_input/afilter = new /datum/topic_input(href,href_list)
|
||||||
|
|
||||||
if(in_range(src, usr))
|
if(in_range(src, usr))
|
||||||
|
|
||||||
if(href_list["req_access"] && add_req_access)
|
if(href_list["req_access"] && add_req_access)
|
||||||
output_access_dialog(filter.getObj("id_card"),filter.getMob("user"))
|
output_access_dialog(afilter.getObj("id_card"),afilter.getMob("user"))
|
||||||
|
|
||||||
if(href_list["maint_access"] && maint_access)
|
if(href_list["maint_access"] && maint_access)
|
||||||
var/mob/user = filter.getMob("user")
|
var/mob/user = afilter.getMob("user")
|
||||||
if(user)
|
if(user)
|
||||||
if(state==0)
|
if(state==0)
|
||||||
state = 1
|
state = 1
|
||||||
@@ -237,27 +237,27 @@
|
|||||||
else if(state==1)
|
else if(state==1)
|
||||||
state = 0
|
state = 0
|
||||||
to_chat(user, "The securing bolts are now hidden.")
|
to_chat(user, "The securing bolts are now hidden.")
|
||||||
output_maintenance_dialog(filter.getObj("id_card"),user)
|
output_maintenance_dialog(afilter.getObj("id_card"),user)
|
||||||
|
|
||||||
if(href_list["set_internal_tank_valve"] && state >=1)
|
if(href_list["set_internal_tank_valve"] && state >=1)
|
||||||
var/mob/user = filter.getMob("user")
|
var/mob/user = afilter.getMob("user")
|
||||||
if(user)
|
if(user)
|
||||||
var/new_pressure = input(user,"Input new output pressure","Pressure setting",internal_tank_valve) as num
|
var/new_pressure = input(user,"Input new output pressure","Pressure setting",internal_tank_valve) as num
|
||||||
if(new_pressure)
|
if(new_pressure)
|
||||||
internal_tank_valve = new_pressure
|
internal_tank_valve = new_pressure
|
||||||
to_chat(user, "The internal pressure valve has been set to [internal_tank_valve]kPa.")
|
to_chat(user, "The internal pressure valve has been set to [internal_tank_valve]kPa.")
|
||||||
|
|
||||||
if(href_list["add_req_access"] && add_req_access && filter.getObj("id_card"))
|
if(href_list["add_req_access"] && add_req_access && afilter.getObj("id_card"))
|
||||||
operation_req_access += filter.getNum("add_req_access")
|
operation_req_access += afilter.getNum("add_req_access")
|
||||||
output_access_dialog(filter.getObj("id_card"),filter.getMob("user"))
|
output_access_dialog(afilter.getObj("id_card"),afilter.getMob("user"))
|
||||||
|
|
||||||
if(href_list["del_req_access"] && add_req_access && filter.getObj("id_card"))
|
if(href_list["del_req_access"] && add_req_access && afilter.getObj("id_card"))
|
||||||
operation_req_access -= filter.getNum("del_req_access")
|
operation_req_access -= afilter.getNum("del_req_access")
|
||||||
output_access_dialog(filter.getObj("id_card"),filter.getMob("user"))
|
output_access_dialog(afilter.getObj("id_card"),afilter.getMob("user"))
|
||||||
|
|
||||||
if(href_list["finish_req_access"])
|
if(href_list["finish_req_access"])
|
||||||
add_req_access = 0
|
add_req_access = 0
|
||||||
var/mob/user = filter.getMob("user")
|
var/mob/user = afilter.getMob("user")
|
||||||
user << browse(null,"window=exosuit_add_access")
|
user << browse(null,"window=exosuit_add_access")
|
||||||
|
|
||||||
if(usr != occupant)
|
if(usr != occupant)
|
||||||
@@ -267,7 +267,7 @@
|
|||||||
send_byjax(src.occupant,"exosuit.browser","content",src.get_stats_part())
|
send_byjax(src.occupant,"exosuit.browser","content",src.get_stats_part())
|
||||||
|
|
||||||
if(href_list["select_equip"])
|
if(href_list["select_equip"])
|
||||||
var/obj/item/mecha_parts/mecha_equipment/equip = filter.getObj("select_equip")
|
var/obj/item/mecha_parts/mecha_equipment/equip = afilter.getObj("select_equip")
|
||||||
if(equip && equip.selectable)
|
if(equip && equip.selectable)
|
||||||
src.selected = equip
|
src.selected = equip
|
||||||
src.occupant_message("You switch to [equip]")
|
src.occupant_message("You switch to [equip]")
|
||||||
@@ -283,7 +283,7 @@
|
|||||||
send_byjax(src.occupant,"exosuit.browser","rspkstate",(radio.listening?"Engaged":"Disengaged"))
|
send_byjax(src.occupant,"exosuit.browser","rspkstate",(radio.listening?"Engaged":"Disengaged"))
|
||||||
|
|
||||||
if(href_list["rfreq"])
|
if(href_list["rfreq"])
|
||||||
var/new_frequency = (radio.frequency + filter.getNum("rfreq"))
|
var/new_frequency = (radio.frequency + afilter.getNum("rfreq"))
|
||||||
if (!radio.freerange || (radio.frequency < 1200 || radio.frequency > 1600))
|
if (!radio.freerange || (radio.frequency < 1200 || radio.frequency > 1600))
|
||||||
new_frequency = sanitize_frequency(new_frequency)
|
new_frequency = sanitize_frequency(new_frequency)
|
||||||
radio.set_frequency(new_frequency)
|
radio.set_frequency(new_frequency)
|
||||||
|
|||||||
@@ -149,7 +149,7 @@
|
|||||||
output += "<b>Cargo Compartment Contents:</b><div style=\"margin-left: 15px;\">"
|
output += "<b>Cargo Compartment Contents:</b><div style=\"margin-left: 15px;\">"
|
||||||
if(cargo.len)
|
if(cargo.len)
|
||||||
for(var/obj/O in cargo)
|
for(var/obj/O in cargo)
|
||||||
output += "<a href='?src=\ref[src];drop_from_cargo=\ref[O]'>Unload</a> : [O]<br>"
|
output += "<a href='?src=[REF(src)];drop_from_cargo=[REF(O)]'>Unload</a> : [O]<br>"
|
||||||
else
|
else
|
||||||
output += "Nothing"
|
output += "Nothing"
|
||||||
output += "</div>"
|
output += "</div>"
|
||||||
|
|||||||
@@ -288,7 +288,7 @@
|
|||||||
var/mob/M = get_mob_by_key(carry.my_atom.fingerprintslast)
|
var/mob/M = get_mob_by_key(carry.my_atom.fingerprintslast)
|
||||||
var/more = ""
|
var/more = ""
|
||||||
if(M)
|
if(M)
|
||||||
more = "(<A HREF='?_src_=holder;[HrefToken()];adminmoreinfo=\ref[M]'>?</a>) (<A HREF='?_src_=holder;[HrefToken()];adminplayerobservefollow=\ref[M]'>FLW</A>) "
|
more = "(<A HREF='?_src_=holder;[HrefToken()];adminmoreinfo=[REF(M)]'>?</a>) (<A HREF='?_src_=holder;[HrefToken()];adminplayerobservefollow=[REF(M)]'>FLW</A>) "
|
||||||
message_admins("Smoke: ([whereLink])[contained]. Key: [carry.my_atom.fingerprintslast][more].", 0, 1)
|
message_admins("Smoke: ([whereLink])[contained]. Key: [carry.my_atom.fingerprintslast][more].", 0, 1)
|
||||||
log_game("A chemical smoke reaction has taken place in ([where])[contained]. Last associated key is [carry.my_atom.fingerprintslast].")
|
log_game("A chemical smoke reaction has taken place in ([where])[contained]. Last associated key is [carry.my_atom.fingerprintslast].")
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -198,7 +198,7 @@
|
|||||||
S.directive = directive
|
S.directive = directive
|
||||||
if(player_spiders)
|
if(player_spiders)
|
||||||
S.playable_spider = TRUE
|
S.playable_spider = TRUE
|
||||||
notify_ghosts("Spider [S.name] can be controlled", null, enter_link="<a href=?src=\ref[S];activate=1>(Click to play)</a>", source=S, action=NOTIFY_ATTACK)
|
notify_ghosts("Spider [S.name] can be controlled", null, enter_link="<a href=?src=[REF(S)];activate=1>(Click to play)</a>", source=S, action=NOTIFY_ATTACK)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -172,11 +172,11 @@ ARCD
|
|||||||
|
|
||||||
|
|
||||||
if(use_one_access)
|
if(use_one_access)
|
||||||
t1 += "Restriction Type: <a href='?src=\ref[src];access=one'>At least one access required</a><br>"
|
t1 += "Restriction Type: <a href='?src=[REF(src)];access=one'>At least one access required</a><br>"
|
||||||
else
|
else
|
||||||
t1 += "Restriction Type: <a href='?src=\ref[src];access=one'>All accesses required</a><br>"
|
t1 += "Restriction Type: <a href='?src=[REF(src)];access=one'>All accesses required</a><br>"
|
||||||
|
|
||||||
t1 += "<a href='?src=\ref[src];access=all'>Remove All</a><br>"
|
t1 += "<a href='?src=[REF(src)];access=all'>Remove All</a><br>"
|
||||||
|
|
||||||
var/accesses = ""
|
var/accesses = ""
|
||||||
accesses += "<div align='center'><b>Access</b></div>"
|
accesses += "<div align='center'><b>Access</b></div>"
|
||||||
@@ -189,15 +189,15 @@ ARCD
|
|||||||
accesses += "<td style='width:14%' valign='top'>"
|
accesses += "<td style='width:14%' valign='top'>"
|
||||||
for(var/A in get_region_accesses(i))
|
for(var/A in get_region_accesses(i))
|
||||||
if(A in conf_access)
|
if(A in conf_access)
|
||||||
accesses += "<a href='?src=\ref[src];access=[A]'><font color=\"red\">[replacetext(get_access_desc(A), " ", " ")]</font></a> "
|
accesses += "<a href='?src=[REF(src)];access=[A]'><font color=\"red\">[replacetext(get_access_desc(A), " ", " ")]</font></a> "
|
||||||
else
|
else
|
||||||
accesses += "<a href='?src=\ref[src];access=[A]'>[replacetext(get_access_desc(A), " ", " ")]</a> "
|
accesses += "<a href='?src=[REF(src)];access=[A]'>[replacetext(get_access_desc(A), " ", " ")]</a> "
|
||||||
accesses += "<br>"
|
accesses += "<br>"
|
||||||
accesses += "</td>"
|
accesses += "</td>"
|
||||||
accesses += "</tr></table>"
|
accesses += "</tr></table>"
|
||||||
t1 += "<tt>[accesses]</tt>"
|
t1 += "<tt>[accesses]</tt>"
|
||||||
|
|
||||||
t1 += text("<p><a href='?src=\ref[];close=1'>Close</a></p>\n", src)
|
t1 += "<p><a href='?src=[REF(src)];close=1'>Close</a></p>\n"
|
||||||
|
|
||||||
var/datum/browser/popup = new(usr, "airlock_electronics", "Access Control", 900, 500)
|
var/datum/browser/popup = new(usr, "airlock_electronics", "Access Control", 900, 500)
|
||||||
popup.set_content(t1)
|
popup.set_content(t1)
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ RPD
|
|||||||
/datum/pipe_info/proc/Render(dispenser,label)
|
/datum/pipe_info/proc/Render(dispenser,label)
|
||||||
|
|
||||||
/datum/pipe_info/pipe/Render(dispenser,label,dir=NORTH)
|
/datum/pipe_info/pipe/Render(dispenser,label,dir=NORTH)
|
||||||
return "<li><a href='?src=\ref[dispenser];makepipe=[id];dir=[dir];type=[dirtype]'>[label]</a></li>"
|
return "<li><a href='?src=[REF(dispenser)];makepipe=[id];dir=[dir];type=[dirtype]'>[label]</a></li>"
|
||||||
|
|
||||||
/datum/pipe_info/meter
|
/datum/pipe_info/meter
|
||||||
categoryId = CATEGORY_ATMOS
|
categoryId = CATEGORY_ATMOS
|
||||||
@@ -46,7 +46,7 @@ RPD
|
|||||||
return
|
return
|
||||||
|
|
||||||
/datum/pipe_info/meter/Render(dispenser,label)
|
/datum/pipe_info/meter/Render(dispenser,label)
|
||||||
return "<li><a href='?src=\ref[dispenser];makemeter=1;type=[dirtype]'>[label]</a></li>" //hardcoding is no
|
return "<li><a href='?src=[REF(dispenser)];makemeter=1;type=[dirtype]'>[label]</a></li>" //hardcoding is no
|
||||||
|
|
||||||
GLOBAL_LIST_INIT(disposalpipeID2State, list(
|
GLOBAL_LIST_INIT(disposalpipeID2State, list(
|
||||||
"pipe-s",
|
"pipe-s",
|
||||||
@@ -74,7 +74,7 @@ GLOBAL_LIST_INIT(disposalpipeID2State, list(
|
|||||||
icon_state = "con[icon_state]"
|
icon_state = "con[icon_state]"
|
||||||
|
|
||||||
/datum/pipe_info/disposal/Render(dispenser,label)
|
/datum/pipe_info/disposal/Render(dispenser,label)
|
||||||
return "<li><a href='?src=\ref[dispenser];dmake=[id];type=[dirtype]'>[label]</a></li>" //avoid hardcoding.
|
return "<li><a href='?src=[REF(dispenser)];dmake=[id];type=[dirtype]'>[label]</a></li>" //avoid hardcoding.
|
||||||
|
|
||||||
//find these defines in code\game\machinery\pipe\consruction.dm
|
//find these defines in code\game\machinery\pipe\consruction.dm
|
||||||
GLOBAL_LIST_INIT(RPD_recipes, list(
|
GLOBAL_LIST_INIT(RPD_recipes, list(
|
||||||
@@ -177,7 +177,7 @@ GLOBAL_LIST_INIT(RPD_recipes, list(
|
|||||||
var/selected=" class=\"imglink\""
|
var/selected=" class=\"imglink\""
|
||||||
if(_dir == p_dir)
|
if(_dir == p_dir)
|
||||||
selected=" class=\"imglink selected\""
|
selected=" class=\"imglink selected\""
|
||||||
return "<a href=\"?src=\ref[src];setdir=[_dir];flipped=[flipped]\" title=\"[title]\"[selected]\"><img src=\"[pic]\" /></a>"
|
return "<a href=\"?src=[REF(src)];setdir=[_dir];flipped=[flipped]\" title=\"[title]\"[selected]\"><img src=\"[pic]\" /></a>"
|
||||||
|
|
||||||
/obj/item/pipe_dispenser/proc/show_menu(mob/user)
|
/obj/item/pipe_dispenser/proc/show_menu(mob/user)
|
||||||
if(!user || !src)
|
if(!user || !src)
|
||||||
@@ -186,27 +186,27 @@ GLOBAL_LIST_INIT(RPD_recipes, list(
|
|||||||
<b>Utilities:</b>
|
<b>Utilities:</b>
|
||||||
<ul>"}
|
<ul>"}
|
||||||
if(p_class != EATING_MODE)
|
if(p_class != EATING_MODE)
|
||||||
dat += "<li><a href='?src=\ref[src];eatpipes=1;type=-1'>Eat Pipes</a></li>"
|
dat += "<li><a href='?src=[REF(src)];eatpipes=1;type=-1'>Eat Pipes</a></li>"
|
||||||
else
|
else
|
||||||
dat += "<li><span class='linkOn'>Eat Pipes</span></li>"
|
dat += "<li><span class='linkOn'>Eat Pipes</span></li>"
|
||||||
if(p_class != PAINT_MODE)
|
if(p_class != PAINT_MODE)
|
||||||
dat += "<li><a href='?src=\ref[src];paintpipes=1;type=-1'>Paint Pipes</a></li>"
|
dat += "<li><a href='?src=[REF(src)];paintpipes=1;type=-1'>Paint Pipes</a></li>"
|
||||||
else
|
else
|
||||||
dat += "<li><span class='linkOn'>Paint Pipes</span></li>"
|
dat += "<li><span class='linkOn'>Paint Pipes</span></li>"
|
||||||
dat += "</ul>"
|
dat += "</ul>"
|
||||||
|
|
||||||
dat += "<b>Category:</b><ul>"
|
dat += "<b>Category:</b><ul>"
|
||||||
if(screen == CATEGORY_ATMOS)
|
if(screen == CATEGORY_ATMOS)
|
||||||
dat += "<span class='linkOn'>Atmospherics</span> <A href='?src=\ref[src];screen=[CATEGORY_DISPOSALS];dmake=0;type=0'>Disposals</A><BR>"
|
dat += "<span class='linkOn'>Atmospherics</span> <A href='?src=[REF(src)];screen=[CATEGORY_DISPOSALS];dmake=0;type=0'>Disposals</A><BR>"
|
||||||
else if(screen == CATEGORY_DISPOSALS)
|
else if(screen == CATEGORY_DISPOSALS)
|
||||||
dat += "<A href='?src=\ref[src];screen=[CATEGORY_ATMOS];makepipe=[/obj/machinery/atmospherics/pipe/simple];dir=1;type=0'>Atmospherics</A> <span class='linkOn'>Disposals</span><BR>"
|
dat += "<A href='?src=[REF(src)];screen=[CATEGORY_ATMOS];makepipe=[/obj/machinery/atmospherics/pipe/simple];dir=1;type=0'>Atmospherics</A> <span class='linkOn'>Disposals</span><BR>"
|
||||||
var/generated_layer_list = ""
|
var/generated_layer_list = ""
|
||||||
var/layers_total = PIPING_LAYER_MAX - PIPING_LAYER_MIN + 1
|
var/layers_total = PIPING_LAYER_MAX - PIPING_LAYER_MIN + 1
|
||||||
for(var/iter = PIPING_LAYER_MIN, iter <= layers_total, iter++)
|
for(var/iter = PIPING_LAYER_MIN, iter <= layers_total, iter++)
|
||||||
if(iter == piping_layer)
|
if(iter == piping_layer)
|
||||||
generated_layer_list += "<span class='linkOn'><A href='?src=\ref[src];setlayer=[iter]'>[iter]</A></span>"
|
generated_layer_list += "<span class='linkOn'><A href='?src=[REF(src)];setlayer=[iter]'>[iter]</A></span>"
|
||||||
else
|
else
|
||||||
generated_layer_list += "<A href='?src=\ref[src];setlayer=[iter]'>[iter]</A>"
|
generated_layer_list += "<A href='?src=[REF(src)];setlayer=[iter]'>[iter]</A>"
|
||||||
dat += "Atmospherics Piping Layer: [generated_layer_list]<BR>"
|
dat += "Atmospherics Piping Layer: [generated_layer_list]<BR>"
|
||||||
dat += "</ul>"
|
dat += "</ul>"
|
||||||
|
|
||||||
@@ -254,7 +254,7 @@ GLOBAL_LIST_INIT(RPD_recipes, list(
|
|||||||
var/selected=""
|
var/selected=""
|
||||||
if(color_name==paint_color)
|
if(color_name==paint_color)
|
||||||
selected = " selected"
|
selected = " selected"
|
||||||
color_picker += {"<a class="color [color_name][selected]" href="?src=\ref[src];set_color=[color_name]">•</a>"}
|
color_picker += {"<a class="color [color_name][selected]" href="?src=[REF(src)];set_color=[color_name]">•</a>"}
|
||||||
|
|
||||||
var/dirsel="<h2>Direction</h2>"
|
var/dirsel="<h2>Direction</h2>"
|
||||||
switch(p_conntype)
|
switch(p_conntype)
|
||||||
@@ -276,8 +276,8 @@ GLOBAL_LIST_INIT(RPD_recipes, list(
|
|||||||
else
|
else
|
||||||
dirsel+={"
|
dirsel+={"
|
||||||
<p>
|
<p>
|
||||||
<a href="?src=\ref[src];setdir=1; flipped=0" title="vertical">↕</a>
|
<a href="?src=[REF(src)];setdir=1; flipped=0" title="vertical">↕</a>
|
||||||
<a href="?src=\ref[src];setdir=4; flipped=0" title="horizontal">↔</a>
|
<a href="?src=[REF(src)];setdir=4; flipped=0" title="horizontal">↔</a>
|
||||||
</p>
|
</p>
|
||||||
"}
|
"}
|
||||||
|
|
||||||
@@ -303,14 +303,14 @@ GLOBAL_LIST_INIT(RPD_recipes, list(
|
|||||||
else
|
else
|
||||||
dirsel+={"
|
dirsel+={"
|
||||||
<p>
|
<p>
|
||||||
<a href="?src=\ref[src];setdir=1; flipped=0" title="vertical">↕</a>
|
<a href="?src=[REF(src)];setdir=1; flipped=0" title="vertical">↕</a>
|
||||||
<a href="?src=\ref[src];setdir=4; flipped=0" title="horizontal">↔</a>
|
<a href="?src=[REF(src)];setdir=4; flipped=0" title="horizontal">↔</a>
|
||||||
<br />
|
<br />
|
||||||
<a href="?src=\ref[src];setdir=9; flipped=0" title="West to North">╝</a>
|
<a href="?src=[REF(src)];setdir=9; flipped=0" title="West to North">╝</a>
|
||||||
<a href="?src=\ref[src];setdir=5; flipped=0" title="North to East">╚</a>
|
<a href="?src=[REF(src)];setdir=5; flipped=0" title="North to East">╚</a>
|
||||||
<br />
|
<br />
|
||||||
<a href="?src=\ref[src];setdir=10; flipped=0" title="South to West">╗</a>
|
<a href="?src=[REF(src)];setdir=10; flipped=0" title="South to West">╗</a>
|
||||||
<a href="?src=\ref[src];setdir=6; flipped=0" title="East to South">╔</a>
|
<a href="?src=[REF(src)];setdir=6; flipped=0" title="East to South">╔</a>
|
||||||
</p>
|
</p>
|
||||||
"}
|
"}
|
||||||
if(PIPE_TRINARY) // Manifold
|
if(PIPE_TRINARY) // Manifold
|
||||||
@@ -330,11 +330,11 @@ GLOBAL_LIST_INIT(RPD_recipes, list(
|
|||||||
else
|
else
|
||||||
dirsel+={"
|
dirsel+={"
|
||||||
<p>
|
<p>
|
||||||
<a href="?src=\ref[src];setdir=1; flipped=0" title="West, South, East">╦</a>
|
<a href="?src=[REF(src)];setdir=1; flipped=0" title="West, South, East">╦</a>
|
||||||
<a href="?src=\ref[src];setdir=4; flipped=0" title="North, West, South">╣</a>
|
<a href="?src=[REF(src)];setdir=4; flipped=0" title="North, West, South">╣</a>
|
||||||
<br />
|
<br />
|
||||||
<a href="?src=\ref[src];setdir=2; flipped=0" title="East, North, West">╩</a>
|
<a href="?src=[REF(src)];setdir=2; flipped=0" title="East, North, West">╩</a>
|
||||||
<a href="?src=\ref[src];setdir=8; flipped=0" title="South, East, North">╠</a>
|
<a href="?src=[REF(src)];setdir=8; flipped=0" title="South, East, North">╠</a>
|
||||||
</p>
|
</p>
|
||||||
"}
|
"}
|
||||||
if(PIPE_TRIN_M) // Mirrored ones
|
if(PIPE_TRIN_M) // Mirrored ones
|
||||||
@@ -364,17 +364,17 @@ GLOBAL_LIST_INIT(RPD_recipes, list(
|
|||||||
else
|
else
|
||||||
dirsel+={"
|
dirsel+={"
|
||||||
<p>
|
<p>
|
||||||
<a href="?src=\ref[src];setdir=1; flipped=0" title="West, South, East">╦</a>
|
<a href="?src=[REF(src)];setdir=1; flipped=0" title="West, South, East">╦</a>
|
||||||
<a href="?src=\ref[src];setdir=4; flipped=0" title="North, West, South">╣</a>
|
<a href="?src=[REF(src)];setdir=4; flipped=0" title="North, West, South">╣</a>
|
||||||
<br />
|
<br />
|
||||||
<a href="?src=\ref[src];setdir=2; flipped=0" title="East, North, West">╩</a>
|
<a href="?src=[REF(src)];setdir=2; flipped=0" title="East, North, West">╩</a>
|
||||||
<a href="?src=\ref[src];setdir=8; flipped=0" title="South, East, North">╠</a>
|
<a href="?src=[REF(src)];setdir=8; flipped=0" title="South, East, North">╠</a>
|
||||||
<br />
|
<br />
|
||||||
<a href="?src=\ref[src];setdir=6; flipped=1" title="West, South, East">╦</a>
|
<a href="?src=[REF(src)];setdir=6; flipped=1" title="West, South, East">╦</a>
|
||||||
<a href="?src=\ref[src];setdir=5; flipped=1" title="North, West, South">╣</a>
|
<a href="?src=[REF(src)];setdir=5; flipped=1" title="North, West, South">╣</a>
|
||||||
<br />
|
<br />
|
||||||
<a href="?src=\ref[src];setdir=9; flipped=1" title="East, North, West">╩</a>
|
<a href="?src=[REF(src)];setdir=9; flipped=1" title="East, North, West">╩</a>
|
||||||
<a href="?src=\ref[src];setdir=10; flipped=1" title="South, East, North">╠</a>
|
<a href="?src=[REF(src)];setdir=10; flipped=1" title="South, East, North">╠</a>
|
||||||
</p>
|
</p>
|
||||||
"}
|
"}
|
||||||
if(PIPE_UNARY) // Stuff with four directions - includes pumps etc.
|
if(PIPE_UNARY) // Stuff with four directions - includes pumps etc.
|
||||||
@@ -393,10 +393,10 @@ GLOBAL_LIST_INIT(RPD_recipes, list(
|
|||||||
else
|
else
|
||||||
dirsel+={"
|
dirsel+={"
|
||||||
<p>
|
<p>
|
||||||
<a href="?src=\ref[src];setdir=[NORTH]; flipped=0" title="North">↑</a>
|
<a href="?src=[REF(src)];setdir=[NORTH]; flipped=0" title="North">↑</a>
|
||||||
<a href="?src=\ref[src];setdir=[EAST]; flipped=0" title="East">→</a>
|
<a href="?src=[REF(src)];setdir=[EAST]; flipped=0" title="East">→</a>
|
||||||
<a href="?src=\ref[src];setdir=[SOUTH]; flipped=0" title="South">↓</a>
|
<a href="?src=[REF(src)];setdir=[SOUTH]; flipped=0" title="South">↓</a>
|
||||||
<a href="?src=\ref[src];setdir=[WEST]; flipped=0" title="West">←</a>
|
<a href="?src=[REF(src)];setdir=[WEST]; flipped=0" title="West">←</a>
|
||||||
</p>
|
</p>
|
||||||
"}
|
"}
|
||||||
if(PIPE_QUAD) // Single icon_state (eg 4-way manifolds)
|
if(PIPE_QUAD) // Single icon_state (eg 4-way manifolds)
|
||||||
@@ -409,7 +409,7 @@ GLOBAL_LIST_INIT(RPD_recipes, list(
|
|||||||
else
|
else
|
||||||
dirsel+={"
|
dirsel+={"
|
||||||
<p>
|
<p>
|
||||||
<a href="?src=\ref[src];setdir=1; flipped=0" title="Pipe">↕</a>
|
<a href="?src=[REF(src)];setdir=1; flipped=0" title="Pipe">↕</a>
|
||||||
</p>
|
</p>
|
||||||
"}
|
"}
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
switch(get_area_type())
|
switch(get_area_type())
|
||||||
if(AREA_SPACE)
|
if(AREA_SPACE)
|
||||||
text += "<p>According to the [src.name], you are now in an unclaimed territory.</p> \
|
text += "<p>According to the [src.name], you are now in an unclaimed territory.</p> \
|
||||||
<p><a href='?src=\ref[src];create_area=1'>Mark this place as new area.</a></p>"
|
<p><a href='?src=[REF(src)];create_area=1'>Mark this place as new area.</a></p>"
|
||||||
if(AREA_SPECIAL)
|
if(AREA_SPECIAL)
|
||||||
text += "<p>This place is not noted on the [src.name].</p>"
|
text += "<p>This place is not noted on the [src.name].</p>"
|
||||||
return text
|
return text
|
||||||
@@ -69,20 +69,20 @@
|
|||||||
var/area/A = get_area()
|
var/area/A = get_area()
|
||||||
if(get_area_type() == AREA_STATION)
|
if(get_area_type() == AREA_STATION)
|
||||||
. += "<p>According to \the [src], you are now in <b>\"[html_encode(A.name)]\"</b>.</p>"
|
. += "<p>According to \the [src], you are now in <b>\"[html_encode(A.name)]\"</b>.</p>"
|
||||||
. += "<p>You may <a href='?src=\ref[src];edit_area=1'>make an amendment</a> to the drawing.</p>"
|
. += "<p>You may <a href='?src=[REF(src)];edit_area=1'>make an amendment</a> to the drawing.</p>"
|
||||||
. += "<p><a href='?src=\ref[src];view_legend=1'>View wire colour legend</a></p>"
|
. += "<p><a href='?src=[REF(src)];view_legend=1'>View wire colour legend</a></p>"
|
||||||
if(!viewing)
|
if(!viewing)
|
||||||
. += "<p><a href='?src=\ref[src];view_blueprints=1'>View structural data</a></p>"
|
. += "<p><a href='?src=[REF(src)];view_blueprints=1'>View structural data</a></p>"
|
||||||
else
|
else
|
||||||
. += "<p><a href='?src=\ref[src];refresh=1'>Refresh structural data</a></p>"
|
. += "<p><a href='?src=[REF(src)];refresh=1'>Refresh structural data</a></p>"
|
||||||
. += "<p><a href='?src=\ref[src];hide_blueprints=1'>Hide structural data</a></p>"
|
. += "<p><a href='?src=[REF(src)];hide_blueprints=1'>Hide structural data</a></p>"
|
||||||
else
|
else
|
||||||
if(legend == TRUE)
|
if(legend == TRUE)
|
||||||
. += "<a href='?src=\ref[src];exit_legend=1'><< Back</a>"
|
. += "<a href='?src=[REF(src)];exit_legend=1'><< Back</a>"
|
||||||
. += view_wire_devices(user);
|
. += view_wire_devices(user);
|
||||||
else
|
else
|
||||||
//legend is a wireset
|
//legend is a wireset
|
||||||
. += "<a href='?src=\ref[src];view_legend=1'><< Back</a>"
|
. += "<a href='?src=[REF(src)];view_legend=1'><< Back</a>"
|
||||||
. += view_wire_set(user, legend)
|
. += view_wire_set(user, legend)
|
||||||
var/datum/browser/popup = new(user, "blueprints", "[src]", 700, 500)
|
var/datum/browser/popup = new(user, "blueprints", "[src]", 700, 500)
|
||||||
popup.set_content(.)
|
popup.set_content(.)
|
||||||
@@ -169,7 +169,7 @@
|
|||||||
/obj/item/areaeditor/blueprints/proc/view_wire_devices(mob/user)
|
/obj/item/areaeditor/blueprints/proc/view_wire_devices(mob/user)
|
||||||
var/message = "<br>You examine the wire legend.<br>"
|
var/message = "<br>You examine the wire legend.<br>"
|
||||||
for(var/wireset in GLOB.wire_color_directory)
|
for(var/wireset in GLOB.wire_color_directory)
|
||||||
message += "<br><a href='?src=\ref[src];view_wireset=[wireset]'>[GLOB.wire_name_directory[wireset]]</a>"
|
message += "<br><a href='?src=[REF(src)];view_wireset=[wireset]'>[GLOB.wire_name_directory[wireset]]</a>"
|
||||||
message += "</p>"
|
message += "</p>"
|
||||||
return message
|
return message
|
||||||
|
|
||||||
|
|||||||
@@ -59,7 +59,7 @@
|
|||||||
to_chat(user, "Your name has been sent to your employers for approval.")
|
to_chat(user, "Your name has been sent to your employers for approval.")
|
||||||
// Autoapproves after a certain time
|
// Autoapproves after a certain time
|
||||||
response_timer_id = addtimer(CALLBACK(src, .proc/rename_station, new_name, user.name, user.real_name, key_name(user)), approval_time, TIMER_STOPPABLE)
|
response_timer_id = addtimer(CALLBACK(src, .proc/rename_station, new_name, user.name, user.real_name, key_name(user)), approval_time, TIMER_STOPPABLE)
|
||||||
to_chat(GLOB.admins, "<span class='adminnotice'><b><font color=orange>CUSTOM STATION RENAME:</font></b>[ADMIN_LOOKUPFLW(user)] proposes to rename the [name_type] to [new_name] (will autoapprove in [DisplayTimeText(approval_time)]). [ADMIN_SMITE(user)] (<A HREF='?_src_=holder;[HrefToken(TRUE)];reject_custom_name=\ref[src]'>REJECT</A>) [ADMIN_CENTCOM_REPLY(user)]</span>")
|
to_chat(GLOB.admins, "<span class='adminnotice'><b><font color=orange>CUSTOM STATION RENAME:</font></b>[ADMIN_LOOKUPFLW(user)] proposes to rename the [name_type] to [new_name] (will autoapprove in [DisplayTimeText(approval_time)]). [ADMIN_SMITE(user)] (<A HREF='?_src_=holder;[HrefToken(TRUE)];reject_custom_name=[REF(src)]'>REJECT</A>) [ADMIN_CENTCOM_REPLY(user)]</span>")
|
||||||
|
|
||||||
/obj/item/station_charter/proc/reject_proposed(user)
|
/obj/item/station_charter/proc/reject_proposed(user)
|
||||||
if(!user)
|
if(!user)
|
||||||
|
|||||||
@@ -167,18 +167,18 @@ GLOBAL_LIST_EMPTY(PDAs)
|
|||||||
var/dat = "<!DOCTYPE html><html><head><title>Personal Data Assistant</title><link href=\"https://fonts.googleapis.com/css?family=Orbitron|Share+Tech+Mono|VT323\" rel=\"stylesheet\"></head><body bgcolor=\"" + background_color + "\"><style>body{" + font_mode + "}ul,ol{list-style-type: none;}a, a:link, a:visited, a:active, a:hover { color: #000000;text-decoration:none; }img {border-style:none;}a img{padding-right: 9px;}</style>"
|
var/dat = "<!DOCTYPE html><html><head><title>Personal Data Assistant</title><link href=\"https://fonts.googleapis.com/css?family=Orbitron|Share+Tech+Mono|VT323\" rel=\"stylesheet\"></head><body bgcolor=\"" + background_color + "\"><style>body{" + font_mode + "}ul,ol{list-style-type: none;}a, a:link, a:visited, a:active, a:hover { color: #000000;text-decoration:none; }img {border-style:none;}a img{padding-right: 9px;}</style>"
|
||||||
|
|
||||||
|
|
||||||
dat += "<a href='byond://?src=\ref[src];choice=Refresh'><img src=pda_refresh.png>Refresh</a>"
|
dat += "<a href='byond://?src=[REF(src)];choice=Refresh'><img src=pda_refresh.png>Refresh</a>"
|
||||||
|
|
||||||
if ((!isnull(cartridge)) && (mode == 0))
|
if ((!isnull(cartridge)) && (mode == 0))
|
||||||
dat += " | <a href='byond://?src=\ref[src];choice=Eject'><img src=pda_eject.png>Eject [cartridge]</a>"
|
dat += " | <a href='byond://?src=[REF(src)];choice=Eject'><img src=pda_eject.png>Eject [cartridge]</a>"
|
||||||
if (mode)
|
if (mode)
|
||||||
dat += " | <a href='byond://?src=\ref[src];choice=Return'><img src=pda_menu.png>Return</a>"
|
dat += " | <a href='byond://?src=[REF(src)];choice=Return'><img src=pda_menu.png>Return</a>"
|
||||||
|
|
||||||
if (mode == 0)
|
if (mode == 0)
|
||||||
dat += "<div align=\"center\">"
|
dat += "<div align=\"center\">"
|
||||||
dat += "<br><a href='byond://?src=\ref[src];choice=Toggle_Font'>Toggle Font</a>"
|
dat += "<br><a href='byond://?src=[REF(src)];choice=Toggle_Font'>Toggle Font</a>"
|
||||||
dat += " | <a href='byond://?src=\ref[src];choice=Change_Color'>Change Color</a>"
|
dat += " | <a href='byond://?src=[REF(src)];choice=Change_Color'>Change Color</a>"
|
||||||
dat += " | <a href='byond://?src=\ref[src];choice=Toggle_Underline'>Toggle Underline</a>" //underline button
|
dat += " | <a href='byond://?src=[REF(src)];choice=Toggle_Underline'>Toggle Underline</a>" //underline button
|
||||||
|
|
||||||
dat += "</div>"
|
dat += "</div>"
|
||||||
|
|
||||||
@@ -186,14 +186,14 @@ GLOBAL_LIST_EMPTY(PDAs)
|
|||||||
|
|
||||||
if (!owner)
|
if (!owner)
|
||||||
dat += "Warning: No owner information entered. Please swipe card.<br><br>"
|
dat += "Warning: No owner information entered. Please swipe card.<br><br>"
|
||||||
dat += "<a href='byond://?src=\ref[src];choice=Refresh'><img src=pda_refresh.png>Retry</a>"
|
dat += "<a href='byond://?src=[REF(src)];choice=Refresh'><img src=pda_refresh.png>Retry</a>"
|
||||||
else
|
else
|
||||||
switch (mode)
|
switch (mode)
|
||||||
if (0)
|
if (0)
|
||||||
dat += "<h2>PERSONAL DATA ASSISTANT v.1.2</h2>"
|
dat += "<h2>PERSONAL DATA ASSISTANT v.1.2</h2>"
|
||||||
dat += "Owner: [owner], [ownjob]<br>"
|
dat += "Owner: [owner], [ownjob]<br>"
|
||||||
dat += text("ID: <a href='?src=\ref[src];choice=Authenticate'>[id ? "[id.registered_name], [id.assignment]" : "----------"]")
|
dat += text("ID: <a href='?src=[REF(src)];choice=Authenticate'>[id ? "[id.registered_name], [id.assignment]" : "----------"]")
|
||||||
dat += text("<br><a href='?src=\ref[src];choice=UpdateInfo'>[id ? "Update PDA Info" : ""]</A><br><br>")
|
dat += text("<br><a href='?src=[REF(src)];choice=UpdateInfo'>[id ? "Update PDA Info" : ""]</A><br><br>")
|
||||||
|
|
||||||
dat += "[worldtime2text()]<br>" //:[world.time / 100 % 6][world.time / 100 % 10]"
|
dat += "[worldtime2text()]<br>" //:[world.time / 100 % 6][world.time / 100 % 10]"
|
||||||
dat += "[time2text(world.realtime, "MMM DD")] [GLOB.year_integer+540]"
|
dat += "[time2text(world.realtime, "MMM DD")] [GLOB.year_integer+540]"
|
||||||
@@ -202,38 +202,38 @@ GLOBAL_LIST_EMPTY(PDAs)
|
|||||||
|
|
||||||
dat += "<h4>General Functions</h4>"
|
dat += "<h4>General Functions</h4>"
|
||||||
dat += "<ul>"
|
dat += "<ul>"
|
||||||
dat += "<li><a href='byond://?src=\ref[src];choice=1'><img src=pda_notes.png>Notekeeper</a></li>"
|
dat += "<li><a href='byond://?src=[REF(src)];choice=1'><img src=pda_notes.png>Notekeeper</a></li>"
|
||||||
dat += "<li><a href='byond://?src=\ref[src];choice=2'><img src=pda_mail.png>Messenger</a></li>"
|
dat += "<li><a href='byond://?src=[REF(src)];choice=2'><img src=pda_mail.png>Messenger</a></li>"
|
||||||
|
|
||||||
if (cartridge)
|
if (cartridge)
|
||||||
if (cartridge.access & CART_CLOWN)
|
if (cartridge.access & CART_CLOWN)
|
||||||
dat += "<li><a href='byond://?src=\ref[src];choice=Honk'><img src=pda_honk.png>Honk Synthesizer</a></li>"
|
dat += "<li><a href='byond://?src=[REF(src)];choice=Honk'><img src=pda_honk.png>Honk Synthesizer</a></li>"
|
||||||
dat += "<li><a href='byond://?src=\ref[src];choice=Trombone'><img src=pda_honk.png>Sad Trombone</a></li>"
|
dat += "<li><a href='byond://?src=[REF(src)];choice=Trombone'><img src=pda_honk.png>Sad Trombone</a></li>"
|
||||||
if (cartridge.access & CART_MANIFEST)
|
if (cartridge.access & CART_MANIFEST)
|
||||||
dat += "<li><a href='byond://?src=\ref[src];choice=41'><img src=pda_notes.png>View Crew Manifest</a></li>"
|
dat += "<li><a href='byond://?src=[REF(src)];choice=41'><img src=pda_notes.png>View Crew Manifest</a></li>"
|
||||||
if(cartridge.access & CART_STATUS_DISPLAY)
|
if(cartridge.access & CART_STATUS_DISPLAY)
|
||||||
dat += "<li><a href='byond://?src=\ref[src];choice=42'><img src=pda_status.png>Set Status Display</a></li>"
|
dat += "<li><a href='byond://?src=[REF(src)];choice=42'><img src=pda_status.png>Set Status Display</a></li>"
|
||||||
dat += "</ul>"
|
dat += "</ul>"
|
||||||
if (cartridge.access & CART_ENGINE)
|
if (cartridge.access & CART_ENGINE)
|
||||||
dat += "<h4>Engineering Functions</h4>"
|
dat += "<h4>Engineering Functions</h4>"
|
||||||
dat += "<ul>"
|
dat += "<ul>"
|
||||||
dat += "<li><a href='byond://?src=\ref[src];choice=43'><img src=pda_power.png>Power Monitor</a></li>"
|
dat += "<li><a href='byond://?src=[REF(src)];choice=43'><img src=pda_power.png>Power Monitor</a></li>"
|
||||||
dat += "</ul>"
|
dat += "</ul>"
|
||||||
if (cartridge.access & CART_MEDICAL)
|
if (cartridge.access & CART_MEDICAL)
|
||||||
dat += "<h4>Medical Functions</h4>"
|
dat += "<h4>Medical Functions</h4>"
|
||||||
dat += "<ul>"
|
dat += "<ul>"
|
||||||
dat += "<li><a href='byond://?src=\ref[src];choice=44'><img src=pda_medical.png>Medical Records</a></li>"
|
dat += "<li><a href='byond://?src=[REF(src)];choice=44'><img src=pda_medical.png>Medical Records</a></li>"
|
||||||
dat += "<li><a href='byond://?src=\ref[src];choice=Medical Scan'><img src=pda_scanner.png>[scanmode == 1 ? "Disable" : "Enable"] Medical Scanner</a></li>"
|
dat += "<li><a href='byond://?src=[REF(src)];choice=Medical Scan'><img src=pda_scanner.png>[scanmode == 1 ? "Disable" : "Enable"] Medical Scanner</a></li>"
|
||||||
dat += "</ul>"
|
dat += "</ul>"
|
||||||
if (cartridge.access & CART_SECURITY)
|
if (cartridge.access & CART_SECURITY)
|
||||||
dat += "<h4>Security Functions</h4>"
|
dat += "<h4>Security Functions</h4>"
|
||||||
dat += "<ul>"
|
dat += "<ul>"
|
||||||
dat += "<li><a href='byond://?src=\ref[src];choice=45'><img src=pda_cuffs.png>Security Records</A></li>"
|
dat += "<li><a href='byond://?src=[REF(src)];choice=45'><img src=pda_cuffs.png>Security Records</A></li>"
|
||||||
dat += "</ul>"
|
dat += "</ul>"
|
||||||
if(cartridge.access & CART_QUARTERMASTER)
|
if(cartridge.access & CART_QUARTERMASTER)
|
||||||
dat += "<h4>Quartermaster Functions:</h4>"
|
dat += "<h4>Quartermaster Functions:</h4>"
|
||||||
dat += "<ul>"
|
dat += "<ul>"
|
||||||
dat += "<li><a href='byond://?src=\ref[src];choice=47'><img src=pda_crate.png>Supply Records</A></li>"
|
dat += "<li><a href='byond://?src=[REF(src)];choice=47'><img src=pda_crate.png>Supply Records</A></li>"
|
||||||
dat += "</ul>"
|
dat += "</ul>"
|
||||||
dat += "</ul>"
|
dat += "</ul>"
|
||||||
|
|
||||||
@@ -241,47 +241,47 @@ GLOBAL_LIST_EMPTY(PDAs)
|
|||||||
dat += "<ul>"
|
dat += "<ul>"
|
||||||
if (cartridge)
|
if (cartridge)
|
||||||
if(cartridge.bot_access_flags)
|
if(cartridge.bot_access_flags)
|
||||||
dat += "<li><a href='byond://?src=\ref[src];choice=54'><img src=pda_medbot.png>Bots Access</a></li>"
|
dat += "<li><a href='byond://?src=[REF(src)];choice=54'><img src=pda_medbot.png>Bots Access</a></li>"
|
||||||
if (cartridge.access & CART_JANITOR)
|
if (cartridge.access & CART_JANITOR)
|
||||||
dat += "<li><a href='byond://?src=\ref[src];choice=49'><img src=pda_bucket.png>Custodial Locator</a></li>"
|
dat += "<li><a href='byond://?src=[REF(src)];choice=49'><img src=pda_bucket.png>Custodial Locator</a></li>"
|
||||||
if (istype(cartridge.radio, /obj/item/radio/integrated/signal))
|
if (istype(cartridge.radio, /obj/item/radio/integrated/signal))
|
||||||
dat += "<li><a href='byond://?src=\ref[src];choice=40'><img src=pda_signaler.png>Signaler System</a></li>"
|
dat += "<li><a href='byond://?src=[REF(src)];choice=40'><img src=pda_signaler.png>Signaler System</a></li>"
|
||||||
if (cartridge.access & CART_NEWSCASTER)
|
if (cartridge.access & CART_NEWSCASTER)
|
||||||
dat += "<li><a href='byond://?src=\ref[src];choice=53'><img src=pda_notes.png>Newscaster Access </a></li>"
|
dat += "<li><a href='byond://?src=[REF(src)];choice=53'><img src=pda_notes.png>Newscaster Access </a></li>"
|
||||||
if (cartridge.access & CART_REAGENT_SCANNER)
|
if (cartridge.access & CART_REAGENT_SCANNER)
|
||||||
dat += "<li><a href='byond://?src=\ref[src];choice=Reagent Scan'><img src=pda_reagent.png>[scanmode == 3 ? "Disable" : "Enable"] Reagent Scanner</a></li>"
|
dat += "<li><a href='byond://?src=[REF(src)];choice=Reagent Scan'><img src=pda_reagent.png>[scanmode == 3 ? "Disable" : "Enable"] Reagent Scanner</a></li>"
|
||||||
if (cartridge.access & CART_ENGINE)
|
if (cartridge.access & CART_ENGINE)
|
||||||
dat += "<li><a href='byond://?src=\ref[src];choice=Halogen Counter'><img src=pda_reagent.png>[scanmode == 4 ? "Disable" : "Enable"] Halogen Counter</a></li>"
|
dat += "<li><a href='byond://?src=[REF(src)];choice=Halogen Counter'><img src=pda_reagent.png>[scanmode == 4 ? "Disable" : "Enable"] Halogen Counter</a></li>"
|
||||||
if (cartridge.access & CART_ATMOS)
|
if (cartridge.access & CART_ATMOS)
|
||||||
dat += "<li><a href='byond://?src=\ref[src];choice=Gas Scan'><img src=pda_reagent.png>[scanmode == 5 ? "Disable" : "Enable"] Gas Scanner</a></li>"
|
dat += "<li><a href='byond://?src=[REF(src)];choice=Gas Scan'><img src=pda_reagent.png>[scanmode == 5 ? "Disable" : "Enable"] Gas Scanner</a></li>"
|
||||||
if (cartridge.access & CART_REMOTE_DOOR)
|
if (cartridge.access & CART_REMOTE_DOOR)
|
||||||
dat += "<li><a href='byond://?src=\ref[src];choice=Toggle Door'><img src=pda_rdoor.png>Toggle Remote Door</a></li>"
|
dat += "<li><a href='byond://?src=[REF(src)];choice=Toggle Door'><img src=pda_rdoor.png>Toggle Remote Door</a></li>"
|
||||||
if (cartridge.access & CART_DRONEPHONE)
|
if (cartridge.access & CART_DRONEPHONE)
|
||||||
dat += "<li><a href='byond://?src=\ref[src];choice=Drone Phone'><img src=pda_dronephone.png>Drone Phone</a></li>"
|
dat += "<li><a href='byond://?src=[REF(src)];choice=Drone Phone'><img src=pda_dronephone.png>Drone Phone</a></li>"
|
||||||
dat += "<li><a href='byond://?src=\ref[src];choice=3'><img src=pda_atmos.png>Atmospheric Scan</a></li>"
|
dat += "<li><a href='byond://?src=[REF(src)];choice=3'><img src=pda_atmos.png>Atmospheric Scan</a></li>"
|
||||||
dat += "<li><a href='byond://?src=\ref[src];choice=Light'><img src=pda_flashlight.png>[fon ? "Disable" : "Enable"] Flashlight</a></li>"
|
dat += "<li><a href='byond://?src=[REF(src)];choice=Light'><img src=pda_flashlight.png>[fon ? "Disable" : "Enable"] Flashlight</a></li>"
|
||||||
if (pai)
|
if (pai)
|
||||||
if(pai.loc != src)
|
if(pai.loc != src)
|
||||||
pai = null
|
pai = null
|
||||||
update_icon()
|
update_icon()
|
||||||
else
|
else
|
||||||
dat += "<li><a href='byond://?src=\ref[src];choice=pai;option=1'>pAI Device Configuration</a></li>"
|
dat += "<li><a href='byond://?src=[REF(src)];choice=pai;option=1'>pAI Device Configuration</a></li>"
|
||||||
dat += "<li><a href='byond://?src=\ref[src];choice=pai;option=2'>Eject pAI Device</a></li>"
|
dat += "<li><a href='byond://?src=[REF(src)];choice=pai;option=2'>Eject pAI Device</a></li>"
|
||||||
dat += "</ul>"
|
dat += "</ul>"
|
||||||
|
|
||||||
if (1)
|
if (1)
|
||||||
dat += "<h4><img src=pda_notes.png> Notekeeper V2.2</h4>"
|
dat += "<h4><img src=pda_notes.png> Notekeeper V2.2</h4>"
|
||||||
dat += "<a href='byond://?src=\ref[src];choice=Edit'>Edit</a><br>"
|
dat += "<a href='byond://?src=[REF(src)];choice=Edit'>Edit</a><br>"
|
||||||
if(notescanned)
|
if(notescanned)
|
||||||
dat += "(This is a scanned image, editing it may cause some text formatting to change.)<br>"
|
dat += "(This is a scanned image, editing it may cause some text formatting to change.)<br>"
|
||||||
dat += "<HR><font face=\"[PEN_FONT]\">[(!notehtml ? note : notehtml)]</font>"
|
dat += "<HR><font face=\"[PEN_FONT]\">[(!notehtml ? note : notehtml)]</font>"
|
||||||
|
|
||||||
if (2)
|
if (2)
|
||||||
dat += "<h4><img src=pda_mail.png> SpaceMessenger V3.9.6</h4>"
|
dat += "<h4><img src=pda_mail.png> SpaceMessenger V3.9.6</h4>"
|
||||||
dat += "<a href='byond://?src=\ref[src];choice=Toggle Ringer'><img src=pda_bell.png>Ringer: [silent == 1 ? "Off" : "On"]</a> | "
|
dat += "<a href='byond://?src=[REF(src)];choice=Toggle Ringer'><img src=pda_bell.png>Ringer: [silent == 1 ? "Off" : "On"]</a> | "
|
||||||
dat += "<a href='byond://?src=\ref[src];choice=Toggle Messenger'><img src=pda_mail.png>Send / Receive: [toff == 1 ? "Off" : "On"]</a> | "
|
dat += "<a href='byond://?src=[REF(src)];choice=Toggle Messenger'><img src=pda_mail.png>Send / Receive: [toff == 1 ? "Off" : "On"]</a> | "
|
||||||
dat += "<a href='byond://?src=\ref[src];choice=Ringtone'><img src=pda_bell.png>Set Ringtone</a> | "
|
dat += "<a href='byond://?src=[REF(src)];choice=Ringtone'><img src=pda_bell.png>Set Ringtone</a> | "
|
||||||
dat += "<a href='byond://?src=\ref[src];choice=21'><img src=pda_mail.png>Messages</a><br>"
|
dat += "<a href='byond://?src=[REF(src)];choice=21'><img src=pda_mail.png>Messages</a><br>"
|
||||||
|
|
||||||
if(cartridge)
|
if(cartridge)
|
||||||
dat += cartridge.message_header()
|
dat += cartridge.message_header()
|
||||||
@@ -295,7 +295,7 @@ GLOBAL_LIST_EMPTY(PDAs)
|
|||||||
for (var/obj/item/device/pda/P in sortNames(get_viewable_pdas()))
|
for (var/obj/item/device/pda/P in sortNames(get_viewable_pdas()))
|
||||||
if (P == src)
|
if (P == src)
|
||||||
continue
|
continue
|
||||||
dat += "<li><a href='byond://?src=\ref[src];choice=Message;target=\ref[P]'>[P]</a>"
|
dat += "<li><a href='byond://?src=[REF(src)];choice=Message;target=[REF(P)]'>[P]</a>"
|
||||||
if(cartridge)
|
if(cartridge)
|
||||||
dat += cartridge.message_special(P)
|
dat += cartridge.message_special(P)
|
||||||
dat += "</li>"
|
dat += "</li>"
|
||||||
@@ -304,11 +304,11 @@ GLOBAL_LIST_EMPTY(PDAs)
|
|||||||
if (count == 0)
|
if (count == 0)
|
||||||
dat += "None detected.<br>"
|
dat += "None detected.<br>"
|
||||||
else if(cartridge && cartridge.spam_enabled)
|
else if(cartridge && cartridge.spam_enabled)
|
||||||
dat += "<a href='byond://?src=\ref[src];choice=MessageAll'>Send To All</a>"
|
dat += "<a href='byond://?src=[REF(src)];choice=MessageAll'>Send To All</a>"
|
||||||
|
|
||||||
if(21)
|
if(21)
|
||||||
dat += "<h4><img src=pda_mail.png> SpaceMessenger V3.9.6</h4>"
|
dat += "<h4><img src=pda_mail.png> SpaceMessenger V3.9.6</h4>"
|
||||||
dat += "<a href='byond://?src=\ref[src];choice=Clear'><img src=pda_blank.png>Clear Messages</a>"
|
dat += "<a href='byond://?src=[REF(src)];choice=Clear'><img src=pda_blank.png>Clear Messages</a>"
|
||||||
|
|
||||||
dat += "<h4><img src=pda_mail.png> Messages</h4>"
|
dat += "<h4><img src=pda_mail.png> Messages</h4>"
|
||||||
|
|
||||||
@@ -633,7 +633,7 @@ GLOBAL_LIST_EMPTY(PDAs)
|
|||||||
tnote += "<i><b>→ To [multiple ? "Everyone" : msg.recipient]:</b></i><br>[msg.message][msg.get_photo_ref()]<br>"
|
tnote += "<i><b>→ To [multiple ? "Everyone" : msg.recipient]:</b></i><br>[msg.message][msg.get_photo_ref()]<br>"
|
||||||
|
|
||||||
/obj/item/device/pda/proc/show_recieved_message(datum/data_pda_msg/msg,obj/item/device/pda/source)
|
/obj/item/device/pda/proc/show_recieved_message(datum/data_pda_msg/msg,obj/item/device/pda/source)
|
||||||
tnote += "<i><b>← From <a href='byond://?src=\ref[src];choice=Message;target=\ref[source]'>[source.owner]</a> ([source.ownjob]):</b></i><br>[msg.message][msg.get_photo_ref()]<br>"
|
tnote += "<i><b>← From <a href='byond://?src=[REF(src)];choice=Message;target=[REF(source)]'>[source.owner]</a> ([source.ownjob]):</b></i><br>[msg.message][msg.get_photo_ref()]<br>"
|
||||||
|
|
||||||
if (!silent)
|
if (!silent)
|
||||||
playsound(loc, 'sound/machines/twobeep.ogg', 50, 1)
|
playsound(loc, 'sound/machines/twobeep.ogg', 50, 1)
|
||||||
@@ -651,10 +651,10 @@ GLOBAL_LIST_EMPTY(PDAs)
|
|||||||
var/hrefstart
|
var/hrefstart
|
||||||
var/hrefend
|
var/hrefend
|
||||||
if (isAI(L))
|
if (isAI(L))
|
||||||
hrefstart = "<a href='?src=\ref[L];track=[html_encode(source.owner)]'>"
|
hrefstart = "<a href='?src=[REF(L)];track=[html_encode(source.owner)]'>"
|
||||||
hrefend = "</a>"
|
hrefend = "</a>"
|
||||||
|
|
||||||
to_chat(L, "[icon2html(src)] <b>Message from [hrefstart][source.owner] ([source.ownjob])[hrefend], </b>\"[msg.message]\"[msg.get_photo_ref()] (<a href='byond://?src=\ref[src];choice=Message;skiprefresh=1;target=\ref[source]'>Reply</a>)")
|
to_chat(L, "[icon2html(src)] <b>Message from [hrefstart][source.owner] ([source.ownjob])[hrefend], </b>\"[msg.message]\"[msg.get_photo_ref()] (<a href='byond://?src=[REF(src)];choice=Message;skiprefresh=1;target=[REF(source)]'>Reply</a>)")
|
||||||
|
|
||||||
update_icon()
|
update_icon()
|
||||||
add_overlay(icon_alert)
|
add_overlay(icon_alert)
|
||||||
|
|||||||
@@ -229,20 +229,20 @@
|
|||||||
menu = "<h4><img src=pda_signaler.png> Remote Signaling System</h4>"
|
menu = "<h4><img src=pda_signaler.png> Remote Signaling System</h4>"
|
||||||
|
|
||||||
menu += {"
|
menu += {"
|
||||||
<a href='byond://?src=\ref[src];choice=Send Signal'>Send Signal</A><BR>
|
<a href='byond://?src=[REF(src)];choice=Send Signal'>Send Signal</A><BR>
|
||||||
Frequency:
|
Frequency:
|
||||||
<a href='byond://?src=\ref[src];choice=Signal Frequency;sfreq=-10'>-</a>
|
<a href='byond://?src=[REF(src)];choice=Signal Frequency;sfreq=-10'>-</a>
|
||||||
<a href='byond://?src=\ref[src];choice=Signal Frequency;sfreq=-2'>-</a>
|
<a href='byond://?src=[REF(src)];choice=Signal Frequency;sfreq=-2'>-</a>
|
||||||
[format_frequency(S.frequency)]
|
[format_frequency(S.frequency)]
|
||||||
<a href='byond://?src=\ref[src];choice=Signal Frequency;sfreq=2'>+</a>
|
<a href='byond://?src=[REF(src)];choice=Signal Frequency;sfreq=2'>+</a>
|
||||||
<a href='byond://?src=\ref[src];choice=Signal Frequency;sfreq=10'>+</a><br>
|
<a href='byond://?src=[REF(src)];choice=Signal Frequency;sfreq=10'>+</a><br>
|
||||||
<br>
|
<br>
|
||||||
Code:
|
Code:
|
||||||
<a href='byond://?src=\ref[src];choice=Signal Code;scode=-5'>-</a>
|
<a href='byond://?src=[REF(src)];choice=Signal Code;scode=-5'>-</a>
|
||||||
<a href='byond://?src=\ref[src];choice=Signal Code;scode=-1'>-</a>
|
<a href='byond://?src=[REF(src)];choice=Signal Code;scode=-1'>-</a>
|
||||||
[S.code]
|
[S.code]
|
||||||
<a href='byond://?src=\ref[src];choice=Signal Code;scode=1'>+</a>
|
<a href='byond://?src=[REF(src)];choice=Signal Code;scode=1'>+</a>
|
||||||
<a href='byond://?src=\ref[src];choice=Signal Code;scode=5'>+</a><br>"}
|
<a href='byond://?src=[REF(src)];choice=Signal Code;scode=5'>+</a><br>"}
|
||||||
if (41) //crew manifest
|
if (41) //crew manifest
|
||||||
|
|
||||||
menu = "<h4><img src=pda_notes.png> Crew Manifest</h4>"
|
menu = "<h4><img src=pda_notes.png> Crew Manifest</h4>"
|
||||||
@@ -256,15 +256,15 @@ Code:
|
|||||||
if (42) //status displays
|
if (42) //status displays
|
||||||
menu = "<h4><img src=pda_status.png> Station Status Display Interlink</h4>"
|
menu = "<h4><img src=pda_status.png> Station Status Display Interlink</h4>"
|
||||||
|
|
||||||
menu += "\[ <A HREF='?src=\ref[src];choice=Status;statdisp=blank'>Clear</A> \]<BR>"
|
menu += "\[ <A HREF='?src=[REF(src)];choice=Status;statdisp=blank'>Clear</A> \]<BR>"
|
||||||
menu += "\[ <A HREF='?src=\ref[src];choice=Status;statdisp=shuttle'>Shuttle ETA</A> \]<BR>"
|
menu += "\[ <A HREF='?src=[REF(src)];choice=Status;statdisp=shuttle'>Shuttle ETA</A> \]<BR>"
|
||||||
menu += "\[ <A HREF='?src=\ref[src];choice=Status;statdisp=message'>Message</A> \]"
|
menu += "\[ <A HREF='?src=[REF(src)];choice=Status;statdisp=message'>Message</A> \]"
|
||||||
menu += "<ul><li> Line 1: <A HREF='?src=\ref[src];choice=Status;statdisp=setmsg1'>[ message1 ? message1 : "(none)"]</A>"
|
menu += "<ul><li> Line 1: <A HREF='?src=[REF(src)];choice=Status;statdisp=setmsg1'>[ message1 ? message1 : "(none)"]</A>"
|
||||||
menu += "<li> Line 2: <A HREF='?src=\ref[src];choice=Status;statdisp=setmsg2'>[ message2 ? message2 : "(none)"]</A></ul><br>"
|
menu += "<li> Line 2: <A HREF='?src=[REF(src)];choice=Status;statdisp=setmsg2'>[ message2 ? message2 : "(none)"]</A></ul><br>"
|
||||||
menu += "\[ Alert: <A HREF='?src=\ref[src];choice=Status;statdisp=alert;alert=default'>None</A> |"
|
menu += "\[ Alert: <A HREF='?src=[REF(src)];choice=Status;statdisp=alert;alert=default'>None</A> |"
|
||||||
menu += " <A HREF='?src=\ref[src];choice=Status;statdisp=alert;alert=redalert'>Red Alert</A> |"
|
menu += " <A HREF='?src=[REF(src)];choice=Status;statdisp=alert;alert=redalert'>Red Alert</A> |"
|
||||||
menu += " <A HREF='?src=\ref[src];choice=Status;statdisp=alert;alert=lockdown'>Lockdown</A> |"
|
menu += " <A HREF='?src=[REF(src)];choice=Status;statdisp=alert;alert=lockdown'>Lockdown</A> |"
|
||||||
menu += " <A HREF='?src=\ref[src];choice=Status;statdisp=alert;alert=biohazard'>Biohazard</A> \]<BR>"
|
menu += " <A HREF='?src=[REF(src)];choice=Status;statdisp=alert;alert=biohazard'>Biohazard</A> \]<BR>"
|
||||||
|
|
||||||
if (43)
|
if (43)
|
||||||
menu = "<h4><img src=pda_power.png> Power Monitors - Please select one</h4><BR>"
|
menu = "<h4><img src=pda_power.png> Power Monitors - Please select one</h4><BR>"
|
||||||
@@ -288,7 +288,7 @@ Code:
|
|||||||
var/count = 0
|
var/count = 0
|
||||||
for(var/obj/machinery/computer/monitor/pMon in powermonitors)
|
for(var/obj/machinery/computer/monitor/pMon in powermonitors)
|
||||||
count++
|
count++
|
||||||
menu += "<a href='byond://?src=\ref[src];choice=Power Select;target=[count]'>[pMon] </a><BR>"
|
menu += "<a href='byond://?src=[REF(src)];choice=Power Select;target=[count]'>[pMon] </a><BR>"
|
||||||
|
|
||||||
menu += "</FONT>"
|
menu += "</FONT>"
|
||||||
|
|
||||||
@@ -323,7 +323,7 @@ Code:
|
|||||||
menu = "<h4><img src=pda_medical.png> Medical Record List</h4>"
|
menu = "<h4><img src=pda_medical.png> Medical Record List</h4>"
|
||||||
if(GLOB.data_core.general)
|
if(GLOB.data_core.general)
|
||||||
for(var/datum/data/record/R in sortRecord(GLOB.data_core.general))
|
for(var/datum/data/record/R in sortRecord(GLOB.data_core.general))
|
||||||
menu += "<a href='byond://?src=\ref[src];choice=Medical Records;target=[R.fields["id"]]'>[R.fields["id"]]: [R.fields["name"]]<br>"
|
menu += "<a href='byond://?src=[REF(src)];choice=Medical Records;target=[R.fields["id"]]'>[R.fields["id"]]: [R.fields["name"]]<br>"
|
||||||
menu += "<br>"
|
menu += "<br>"
|
||||||
if(441)
|
if(441)
|
||||||
menu = "<h4><img src=pda_medical.png> Medical Record</h4>"
|
menu = "<h4><img src=pda_medical.png> Medical Record</h4>"
|
||||||
@@ -366,7 +366,7 @@ Code:
|
|||||||
menu = "<h4><img src=pda_cuffs.png> Security Record List</h4>"
|
menu = "<h4><img src=pda_cuffs.png> Security Record List</h4>"
|
||||||
if(GLOB.data_core.general)
|
if(GLOB.data_core.general)
|
||||||
for (var/datum/data/record/R in sortRecord(GLOB.data_core.general))
|
for (var/datum/data/record/R in sortRecord(GLOB.data_core.general))
|
||||||
menu += "<a href='byond://?src=\ref[src];choice=Security Records;target=[R.fields["id"]]'>[R.fields["id"]]: [R.fields["name"]]<br>"
|
menu += "<a href='byond://?src=[REF(src)];choice=Security Records;target=[R.fields["id"]]'>[R.fields["id"]]: [R.fields["name"]]<br>"
|
||||||
|
|
||||||
menu += "<br>"
|
menu += "<br>"
|
||||||
if(451)
|
if(451)
|
||||||
@@ -521,11 +521,11 @@ Code:
|
|||||||
|
|
||||||
else
|
else
|
||||||
menu += "ERROR: Unable to determine current location."
|
menu += "ERROR: Unable to determine current location."
|
||||||
menu += "<br><br><A href='byond://?src=\ref[src];choice=49'>Refresh GPS Locator</a>"
|
menu += "<br><br><A href='byond://?src=[REF(src)];choice=49'>Refresh GPS Locator</a>"
|
||||||
|
|
||||||
if (53) // Newscaster
|
if (53) // Newscaster
|
||||||
menu = "<h4><img src=pda_notes.png> Newscaster Access</h4>"
|
menu = "<h4><img src=pda_notes.png> Newscaster Access</h4>"
|
||||||
menu += "<br> Current Newsfeed: <A href='byond://?src=\ref[src];choice=Newscaster Switch Channel'>[current_channel ? current_channel : "None"]</a> <br>"
|
menu += "<br> Current Newsfeed: <A href='byond://?src=[REF(src)];choice=Newscaster Switch Channel'>[current_channel ? current_channel : "None"]</a> <br>"
|
||||||
var/datum/newscaster/feed_channel/current
|
var/datum/newscaster/feed_channel/current
|
||||||
for(var/datum/newscaster/feed_channel/chan in GLOB.news_network.network_channels)
|
for(var/datum/newscaster/feed_channel/chan in GLOB.news_network.network_channels)
|
||||||
if (chan.channel_name == current_channel)
|
if (chan.channel_name == current_channel)
|
||||||
@@ -543,7 +543,7 @@ Code:
|
|||||||
i++
|
i++
|
||||||
for(var/datum/newscaster/feed_comment/comment in msg.comments)
|
for(var/datum/newscaster/feed_comment/comment in msg.comments)
|
||||||
menu +="<font size=1><small>[comment.body]</font><br><font size=1><small><small><small>[comment.author] [comment.time_stamp]</small></small></small></small></font><br>"
|
menu +="<font size=1><small>[comment.body]</font><br><font size=1><small><small><small>[comment.author] [comment.time_stamp]</small></small></small></small></font><br>"
|
||||||
menu += "<br> <A href='byond://?src=\ref[src];choice=Newscaster Message'>Post Message</a>"
|
menu += "<br> <A href='byond://?src=[REF(src)];choice=Newscaster Message'>Post Message</a>"
|
||||||
|
|
||||||
if (54) // Beepsky, Medibot, Floorbot, and Cleanbot access
|
if (54) // Beepsky, Medibot, Floorbot, and Cleanbot access
|
||||||
menu = "<h4><img src=pda_medbot.png> Bots Interlink</h4>"
|
menu = "<h4><img src=pda_medbot.png> Bots Interlink</h4>"
|
||||||
@@ -673,7 +673,7 @@ Code:
|
|||||||
// menu = "Interlink Error - Please reinsert cartridge."
|
// menu = "Interlink Error - Please reinsert cartridge."
|
||||||
// return
|
// return
|
||||||
if(active_bot)
|
if(active_bot)
|
||||||
menu += "<B>[active_bot]</B><BR> Status: (<A href='byond://?src=\ref[src];op=control;bot=\ref[active_bot]'><img src=pda_refresh.png><i>refresh</i></A>)<BR>"
|
menu += "<B>[active_bot]</B><BR> Status: (<A href='byond://?src=[REF(src)];op=control;bot=[REF(active_bot)]'><img src=pda_refresh.png><i>refresh</i></A>)<BR>"
|
||||||
menu += "Model: [active_bot.model]<BR>"
|
menu += "Model: [active_bot.model]<BR>"
|
||||||
menu += "Location: [get_area(active_bot)]<BR>"
|
menu += "Location: [get_area(active_bot)]<BR>"
|
||||||
menu += "Mode: [active_bot.get_mode()]"
|
menu += "Mode: [active_bot.get_mode()]"
|
||||||
@@ -682,7 +682,7 @@ Code:
|
|||||||
if(active_bot.paicard && active_bot.paicard.pai)
|
if(active_bot.paicard && active_bot.paicard.pai)
|
||||||
menu += "[active_bot.paicard.pai.name]"
|
menu += "[active_bot.paicard.pai.name]"
|
||||||
if(active_bot.bot_core.allowed(usr))
|
if(active_bot.bot_core.allowed(usr))
|
||||||
menu += " (<A href='byond://?src=\ref[src];op=ejectpai'><i>eject</i></A>)"
|
menu += " (<A href='byond://?src=[REF(src)];op=ejectpai'><i>eject</i></A>)"
|
||||||
else
|
else
|
||||||
menu += "<i>none</i>"
|
menu += "<i>none</i>"
|
||||||
|
|
||||||
@@ -690,35 +690,35 @@ Code:
|
|||||||
if(active_bot.bot_type == MULE_BOT)
|
if(active_bot.bot_type == MULE_BOT)
|
||||||
var/mob/living/simple_animal/bot/mulebot/MULE = active_bot
|
var/mob/living/simple_animal/bot/mulebot/MULE = active_bot
|
||||||
var/atom/Load = MULE.load
|
var/atom/Load = MULE.load
|
||||||
menu += "<BR>Current Load: [ !Load ? "<i>none</i>" : "[Load.name] (<A href='byond://?src=\ref[src];mule=unload'><i>unload</i></A>)" ]<BR>"
|
menu += "<BR>Current Load: [ !Load ? "<i>none</i>" : "[Load.name] (<A href='byond://?src=[REF(src)];mule=unload'><i>unload</i></A>)" ]<BR>"
|
||||||
menu += "Destination: [MULE.destination ? MULE.destination : "<i>None</i>"] (<A href='byond://?src=\ref[src];mule=destination'><i>set</i></A>)<BR>"
|
menu += "Destination: [MULE.destination ? MULE.destination : "<i>None</i>"] (<A href='byond://?src=[REF(src)];mule=destination'><i>set</i></A>)<BR>"
|
||||||
menu += "Set ID: [MULE.suffix] <A href='byond://?src=\ref[src];mule=setid'><i> Modify</i></A><BR>"
|
menu += "Set ID: [MULE.suffix] <A href='byond://?src=[REF(src)];mule=setid'><i> Modify</i></A><BR>"
|
||||||
menu += "Power: [MULE.cell ? MULE.cell.percent() : 0]%<BR>"
|
menu += "Power: [MULE.cell ? MULE.cell.percent() : 0]%<BR>"
|
||||||
menu += "Home: [!MULE.home_destination ? "<i>none</i>" : MULE.home_destination ]<BR>"
|
menu += "Home: [!MULE.home_destination ? "<i>none</i>" : MULE.home_destination ]<BR>"
|
||||||
menu += "Delivery Reporting: <A href='byond://?src=\ref[src];mule=report'>[MULE.report_delivery ? "(<B>On</B>)": "(<B>Off</B>)"]</A><BR>"
|
menu += "Delivery Reporting: <A href='byond://?src=[REF(src)];mule=report'>[MULE.report_delivery ? "(<B>On</B>)": "(<B>Off</B>)"]</A><BR>"
|
||||||
menu += "Auto Return Home: <A href='byond://?src=\ref[src];mule=autoret'>[MULE.auto_return ? "(<B>On</B>)": "(<B>Off</B>)"]</A><BR>"
|
menu += "Auto Return Home: <A href='byond://?src=[REF(src)];mule=autoret'>[MULE.auto_return ? "(<B>On</B>)": "(<B>Off</B>)"]</A><BR>"
|
||||||
menu += "Auto Pickup Crate: <A href='byond://?src=\ref[src];mule=autopick'>[MULE.auto_pickup ? "(<B>On</B>)": "(<B>Off</B>)"]</A><BR><BR>" //Hue.
|
menu += "Auto Pickup Crate: <A href='byond://?src=[REF(src)];mule=autopick'>[MULE.auto_pickup ? "(<B>On</B>)": "(<B>Off</B>)"]</A><BR><BR>" //Hue.
|
||||||
|
|
||||||
menu += "\[<A href='byond://?src=\ref[src];mule=stop'>Stop</A>\] "
|
menu += "\[<A href='byond://?src=[REF(src)];mule=stop'>Stop</A>\] "
|
||||||
menu += "\[<A href='byond://?src=\ref[src];mule=go'>Proceed</A>\] "
|
menu += "\[<A href='byond://?src=[REF(src)];mule=go'>Proceed</A>\] "
|
||||||
menu += "\[<A href='byond://?src=\ref[src];mule=home'>Return Home</A>\]<BR>"
|
menu += "\[<A href='byond://?src=[REF(src)];mule=home'>Return Home</A>\]<BR>"
|
||||||
|
|
||||||
else
|
else
|
||||||
menu += "<BR>\[<A href='byond://?src=\ref[src];op=patroloff'>Stop Patrol</A>\] " //patrolon
|
menu += "<BR>\[<A href='byond://?src=[REF(src)];op=patroloff'>Stop Patrol</A>\] " //patrolon
|
||||||
menu += "\[<A href='byond://?src=\ref[src];op=patrolon'>Start Patrol</A>\] " //patroloff
|
menu += "\[<A href='byond://?src=[REF(src)];op=patrolon'>Start Patrol</A>\] " //patroloff
|
||||||
menu += "\[<A href='byond://?src=\ref[src];op=summon'>Summon Bot</A>\]<BR>" //summon
|
menu += "\[<A href='byond://?src=[REF(src)];op=summon'>Summon Bot</A>\]<BR>" //summon
|
||||||
menu += "Keep an ID inserted to upload access codes upon summoning."
|
menu += "Keep an ID inserted to upload access codes upon summoning."
|
||||||
|
|
||||||
menu += "<HR><A href='byond://?src=\ref[src];op=botlist'><img src=pda_back.png>Return to bot list</A>"
|
menu += "<HR><A href='byond://?src=[REF(src)];op=botlist'><img src=pda_back.png>Return to bot list</A>"
|
||||||
else
|
else
|
||||||
menu += "<BR><A href='byond://?src=\ref[src];op=botlist'><img src=pda_refresh.png>Scan for active bots</A><BR><BR>"
|
menu += "<BR><A href='byond://?src=[REF(src)];op=botlist'><img src=pda_refresh.png>Scan for active bots</A><BR><BR>"
|
||||||
var/turf/current_turf = get_turf(src)
|
var/turf/current_turf = get_turf(src)
|
||||||
var/zlevel = current_turf.z
|
var/zlevel = current_turf.z
|
||||||
var/botcount = 0
|
var/botcount = 0
|
||||||
for(Bot in GLOB.living_mob_list) //Git da botz
|
for(Bot in GLOB.living_mob_list) //Git da botz
|
||||||
if(!Bot.on || Bot.z != zlevel || Bot.remote_disabled || !(bot_access_flags & Bot.bot_type)) //Only non-emagged bots on the same Z-level are detected!
|
if(!Bot.on || Bot.z != zlevel || Bot.remote_disabled || !(bot_access_flags & Bot.bot_type)) //Only non-emagged bots on the same Z-level are detected!
|
||||||
continue //Also, the PDA must have access to the bot type.
|
continue //Also, the PDA must have access to the bot type.
|
||||||
menu += "<A href='byond://?src=\ref[src];op=control;bot=\ref[Bot]'><b>[Bot.name]</b> ([Bot.get_mode()])<BR>"
|
menu += "<A href='byond://?src=[REF(src)];op=control;bot=[REF(Bot)]'><b>[Bot.name]</b> ([Bot.get_mode()])<BR>"
|
||||||
botcount++
|
botcount++
|
||||||
if(!botcount) //No bots at all? Lame.
|
if(!botcount) //No bots at all? Lame.
|
||||||
menu += "No bots found.<BR>"
|
menu += "No bots found.<BR>"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
/obj/item/cartridge/virus/message_special(obj/item/device/pda/target)
|
/obj/item/cartridge/virus/message_special(obj/item/device/pda/target)
|
||||||
if (!istype(loc, /obj/item/device/pda))
|
if (!istype(loc, /obj/item/device/pda))
|
||||||
return "" //Sanity check, this shouldn't be possible.
|
return "" //Sanity check, this shouldn't be possible.
|
||||||
return " (<a href='byond://?src=\ref[loc];choice=cart;special=virus;target=\ref[target]'>*Send Virus*</a>)"
|
return " (<a href='byond://?src=[REF(loc)];choice=cart;special=virus;target=[REF(target)]'>*Send Virus*</a>)"
|
||||||
|
|
||||||
/obj/item/cartridge/virus/special(mob/living/user, list/params)
|
/obj/item/cartridge/virus/special(mob/living/user, list/params)
|
||||||
var/obj/item/device/pda/P = locate(params["target"])//Leaving it alone in case it may do something useful, I guess.
|
var/obj/item/device/pda/P = locate(params["target"])//Leaving it alone in case it may do something useful, I guess.
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
<<<<<<< HEAD
|
||||||
|
|
||||||
#define BUGMODE_LIST 0
|
#define BUGMODE_LIST 0
|
||||||
#define BUGMODE_MONITOR 1
|
#define BUGMODE_MONITOR 1
|
||||||
@@ -295,3 +296,302 @@
|
|||||||
#undef BUGMODE_LIST
|
#undef BUGMODE_LIST
|
||||||
#undef BUGMODE_MONITOR
|
#undef BUGMODE_MONITOR
|
||||||
#undef BUGMODE_TRACK
|
#undef BUGMODE_TRACK
|
||||||
|
=======
|
||||||
|
|
||||||
|
#define BUGMODE_LIST 0
|
||||||
|
#define BUGMODE_MONITOR 1
|
||||||
|
#define BUGMODE_TRACK 2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/obj/item/device/camera_bug
|
||||||
|
name = "camera bug"
|
||||||
|
desc = "For illicit snooping through the camera network."
|
||||||
|
icon = 'icons/obj/device.dmi'
|
||||||
|
icon_state = "camera_bug"
|
||||||
|
w_class = WEIGHT_CLASS_TINY
|
||||||
|
item_state = "camera_bug"
|
||||||
|
throw_speed = 4
|
||||||
|
throw_range = 20
|
||||||
|
origin_tech = "syndicate=1;engineering=3"
|
||||||
|
flags_1 = NOBLUDGEON_1
|
||||||
|
|
||||||
|
var/obj/machinery/camera/current = null
|
||||||
|
|
||||||
|
var/last_net_update = 0
|
||||||
|
var/list/bugged_cameras = list()
|
||||||
|
|
||||||
|
var/track_mode = BUGMODE_LIST
|
||||||
|
var/last_tracked = 0
|
||||||
|
var/refresh_interval = 50
|
||||||
|
|
||||||
|
var/tracked_name = null
|
||||||
|
var/atom/tracking = null
|
||||||
|
|
||||||
|
var/last_found = null
|
||||||
|
var/last_seen = null
|
||||||
|
|
||||||
|
/obj/item/device/camera_bug/New()
|
||||||
|
..()
|
||||||
|
START_PROCESSING(SSobj, src)
|
||||||
|
|
||||||
|
/obj/item/device/camera_bug/Destroy()
|
||||||
|
get_cameras()
|
||||||
|
for(var/cam_tag in bugged_cameras)
|
||||||
|
var/obj/machinery/camera/camera = bugged_cameras[cam_tag]
|
||||||
|
if(camera.bug == src)
|
||||||
|
camera.bug = null
|
||||||
|
bugged_cameras = list()
|
||||||
|
if(tracking)
|
||||||
|
tracking = null
|
||||||
|
return ..()
|
||||||
|
|
||||||
|
|
||||||
|
/obj/item/device/camera_bug/interact(mob/user = usr)
|
||||||
|
var/datum/browser/popup = new(user, "camerabug","Camera Bug",nref=src)
|
||||||
|
popup.set_content(menu(get_cameras()))
|
||||||
|
popup.open()
|
||||||
|
|
||||||
|
/obj/item/device/camera_bug/attack_self(mob/user)
|
||||||
|
user.set_machine(src)
|
||||||
|
interact(user)
|
||||||
|
|
||||||
|
/obj/item/device/camera_bug/check_eye(mob/user)
|
||||||
|
if ( loc != user || user.incapacitated() || user.eye_blind || !current )
|
||||||
|
user.unset_machine()
|
||||||
|
return 0
|
||||||
|
var/turf/T = get_turf(user.loc)
|
||||||
|
if(T.z != current.z || !current.can_use())
|
||||||
|
to_chat(user, "<span class='danger'>[src] has lost the signal.</span>")
|
||||||
|
current = null
|
||||||
|
user.unset_machine()
|
||||||
|
return 0
|
||||||
|
return 1
|
||||||
|
/obj/item/device/camera_bug/on_unset_machine(mob/user)
|
||||||
|
user.reset_perspective(null)
|
||||||
|
|
||||||
|
/obj/item/device/camera_bug/proc/get_cameras()
|
||||||
|
if( world.time > (last_net_update + 100))
|
||||||
|
bugged_cameras = list()
|
||||||
|
for(var/obj/machinery/camera/camera in GLOB.cameranet.cameras)
|
||||||
|
if(camera.stat || !camera.can_use())
|
||||||
|
continue
|
||||||
|
if(length(list("SS13","MINE")&camera.network))
|
||||||
|
bugged_cameras[camera.c_tag] = camera
|
||||||
|
sortList(bugged_cameras)
|
||||||
|
return bugged_cameras
|
||||||
|
|
||||||
|
|
||||||
|
/obj/item/device/camera_bug/proc/menu(list/cameras)
|
||||||
|
if(!cameras || !cameras.len)
|
||||||
|
return "No bugged cameras found."
|
||||||
|
|
||||||
|
var/html
|
||||||
|
switch(track_mode)
|
||||||
|
if(BUGMODE_LIST)
|
||||||
|
html = "<h3>Select a camera:</h3> <a href='?src=[REF(src)];view'>\[Cancel camera view\]</a><hr><table>"
|
||||||
|
for(var/entry in cameras)
|
||||||
|
var/obj/machinery/camera/C = cameras[entry]
|
||||||
|
var/functions = ""
|
||||||
|
if(C.bug == src)
|
||||||
|
functions = " - <a href='?src=[REF(src)];monitor=[REF(C)]'>\[Monitor\]</a> <a href='?src=[REF(src)];emp=[REF(C)]'>\[Disable\]</a>"
|
||||||
|
else
|
||||||
|
functions = " - <a href='?src=[REF(src)];monitor=[REF(C)]'>\[Monitor\]</a>"
|
||||||
|
html += "<tr><td><a href='?src=[REF(src)];view=[REF(C)]'>[entry]</a></td><td>[functions]</td></tr>"
|
||||||
|
|
||||||
|
if(BUGMODE_MONITOR)
|
||||||
|
if(current)
|
||||||
|
html = "Analyzing Camera '[current.c_tag]' <a href='?[REF(src)];mode=0'>\[Select Camera\]</a><br>"
|
||||||
|
html += camera_report()
|
||||||
|
else
|
||||||
|
track_mode = BUGMODE_LIST
|
||||||
|
return .(cameras)
|
||||||
|
if(BUGMODE_TRACK)
|
||||||
|
if(tracking)
|
||||||
|
html = "Tracking '[tracked_name]' <a href='?[REF(src)];mode=0'>\[Cancel Tracking\]</a> <a href='?src=[REF(src)];view'>\[Cancel camera view\]</a><br>"
|
||||||
|
if(last_found)
|
||||||
|
var/time_diff = round((world.time - last_seen) / 150)
|
||||||
|
var/obj/machinery/camera/C = bugged_cameras[last_found]
|
||||||
|
var/outstring
|
||||||
|
if(C)
|
||||||
|
outstring = "<a href='?[REF(src)];view=[REF(C)]'>[last_found]</a>"
|
||||||
|
else
|
||||||
|
outstring = last_found
|
||||||
|
if(!time_diff)
|
||||||
|
html += "Last seen near [outstring] (now)<br>"
|
||||||
|
else
|
||||||
|
// 15 second intervals ~ 1/4 minute
|
||||||
|
var/m = round(time_diff/4)
|
||||||
|
var/s = (time_diff - 4*m) * 15
|
||||||
|
if(!s)
|
||||||
|
s = "00"
|
||||||
|
html += "Last seen near [outstring] ([m]:[s] minute\s ago)<br>"
|
||||||
|
if( C && (C.bug == src)) //Checks to see if the camera has a bug
|
||||||
|
html += "<a href='?src=[REF(src)];emp=[REF(C)]'>\[Disable\]</a>"
|
||||||
|
|
||||||
|
else
|
||||||
|
html += "Not yet seen."
|
||||||
|
else
|
||||||
|
track_mode = BUGMODE_LIST
|
||||||
|
return .(cameras)
|
||||||
|
return html
|
||||||
|
|
||||||
|
/obj/item/device/camera_bug/proc/get_seens()
|
||||||
|
if(current && current.can_use())
|
||||||
|
var/list/seen = current.can_see()
|
||||||
|
return seen
|
||||||
|
|
||||||
|
/obj/item/device/camera_bug/proc/camera_report()
|
||||||
|
// this should only be called if current exists
|
||||||
|
var/dat = ""
|
||||||
|
var/list/seen = get_seens()
|
||||||
|
if(seen && seen.len >= 1)
|
||||||
|
var/list/names = list()
|
||||||
|
for(var/obj/singularity/S in seen) // god help you if you see more than one
|
||||||
|
if(S.name in names)
|
||||||
|
names[S.name]++
|
||||||
|
dat += "[S.name] ([names[S.name]])"
|
||||||
|
else
|
||||||
|
names[S.name] = 1
|
||||||
|
dat += "[S.name]"
|
||||||
|
var/stage = round(S.current_size / 2)+1
|
||||||
|
dat += " (Stage [stage])"
|
||||||
|
dat += " <a href='?[REF(src)];track=[REF(S)]'>\[Track\]</a><br>"
|
||||||
|
|
||||||
|
for(var/obj/mecha/M in seen)
|
||||||
|
if(M.name in names)
|
||||||
|
names[M.name]++
|
||||||
|
dat += "[M.name] ([names[M.name]])"
|
||||||
|
else
|
||||||
|
names[M.name] = 1
|
||||||
|
dat += "[M.name]"
|
||||||
|
dat += " <a href='?[REF(src)];track=[REF(M)]'>\[Track\]</a><br>"
|
||||||
|
|
||||||
|
|
||||||
|
for(var/mob/living/M in seen)
|
||||||
|
if(M.name in names)
|
||||||
|
names[M.name]++
|
||||||
|
dat += "[M.name] ([names[M.name]])"
|
||||||
|
else
|
||||||
|
names[M.name] = 1
|
||||||
|
dat += "[M.name]"
|
||||||
|
if(M.buckled && !M.lying)
|
||||||
|
dat += " (Sitting)"
|
||||||
|
if(M.lying)
|
||||||
|
dat += " (Laying down)"
|
||||||
|
dat += " <a href='?[REF(src)];track=[REF(M)]'>\[Track\]</a><br>"
|
||||||
|
if(length(dat) == 0)
|
||||||
|
dat += "No motion detected."
|
||||||
|
return dat
|
||||||
|
else
|
||||||
|
return "Camera Offline<br>"
|
||||||
|
|
||||||
|
/obj/item/device/camera_bug/Topic(href,list/href_list)
|
||||||
|
if(usr != loc)
|
||||||
|
usr.unset_machine()
|
||||||
|
usr << browse(null, "window=camerabug")
|
||||||
|
return
|
||||||
|
usr.set_machine(src)
|
||||||
|
if("mode" in href_list)
|
||||||
|
track_mode = text2num(href_list["mode"])
|
||||||
|
if("monitor" in href_list)
|
||||||
|
//You can't locate on a list with keys
|
||||||
|
var/list/cameras = flatten_list(bugged_cameras)
|
||||||
|
var/obj/machinery/camera/C = locate(href_list["monitor"]) in cameras
|
||||||
|
if(C && istype(C))
|
||||||
|
track_mode = BUGMODE_MONITOR
|
||||||
|
current = C
|
||||||
|
usr.reset_perspective(null)
|
||||||
|
interact()
|
||||||
|
if("track" in href_list)
|
||||||
|
var/list/seen = get_seens()
|
||||||
|
if(seen && seen.len >= 1)
|
||||||
|
var/atom/A = locate(href_list["track"]) in seen
|
||||||
|
if(A && istype(A))
|
||||||
|
tracking = A
|
||||||
|
tracked_name = A.name
|
||||||
|
last_found = current.c_tag
|
||||||
|
last_seen = world.time
|
||||||
|
track_mode = BUGMODE_TRACK
|
||||||
|
if("emp" in href_list)
|
||||||
|
//You can't locate on a list with keys
|
||||||
|
var/list/cameras = flatten_list(bugged_cameras)
|
||||||
|
var/obj/machinery/camera/C = locate(href_list["emp"]) in cameras
|
||||||
|
if(C && istype(C) && C.bug == src)
|
||||||
|
C.emp_act(EMP_HEAVY)
|
||||||
|
C.bug = null
|
||||||
|
bugged_cameras -= C.c_tag
|
||||||
|
interact()
|
||||||
|
return
|
||||||
|
if("close" in href_list)
|
||||||
|
usr.unset_machine()
|
||||||
|
current = null
|
||||||
|
return
|
||||||
|
if("view" in href_list)
|
||||||
|
//You can't locate on a list with keys
|
||||||
|
var/list/cameras = flatten_list(bugged_cameras)
|
||||||
|
var/obj/machinery/camera/C = locate(href_list["view"]) in cameras
|
||||||
|
if(C && istype(C))
|
||||||
|
if(!C.can_use())
|
||||||
|
to_chat(usr, "<span class='warning'>Something's wrong with that camera! You can't get a feed.</span>")
|
||||||
|
return
|
||||||
|
var/turf/T = get_turf(loc)
|
||||||
|
if(!T || C.z != T.z)
|
||||||
|
to_chat(usr, "<span class='warning'>You can't get a signal!</span>")
|
||||||
|
return
|
||||||
|
current = C
|
||||||
|
spawn(6)
|
||||||
|
if(src.check_eye(usr))
|
||||||
|
usr.reset_perspective(C)
|
||||||
|
interact()
|
||||||
|
else
|
||||||
|
usr.unset_machine()
|
||||||
|
usr << browse(null, "window=camerabug")
|
||||||
|
return
|
||||||
|
else
|
||||||
|
usr.unset_machine()
|
||||||
|
|
||||||
|
interact()
|
||||||
|
|
||||||
|
/obj/item/device/camera_bug/process()
|
||||||
|
if(track_mode == BUGMODE_LIST || (world.time < (last_tracked + refresh_interval)))
|
||||||
|
return
|
||||||
|
last_tracked = world.time
|
||||||
|
if(track_mode == BUGMODE_TRACK ) // search for user
|
||||||
|
// Note that it will be tricked if your name appears to change.
|
||||||
|
// This is not optimal but it is better than tracking you relentlessly despite everything.
|
||||||
|
if(!tracking)
|
||||||
|
src.updateSelfDialog()
|
||||||
|
return
|
||||||
|
|
||||||
|
if(tracking.name != tracked_name) // Hiding their identity, tricksy
|
||||||
|
var/mob/M = tracking
|
||||||
|
if(istype(M))
|
||||||
|
if(!(tracked_name == "Unknown" && findtext(tracking.name,"Unknown"))) // we saw then disguised before
|
||||||
|
if(!(tracked_name == M.real_name && findtext(tracking.name,M.real_name))) // or they're still ID'd
|
||||||
|
src.updateSelfDialog()//But if it's neither of those cases
|
||||||
|
return // you won't find em on the cameras
|
||||||
|
else
|
||||||
|
src.updateSelfDialog()
|
||||||
|
return
|
||||||
|
|
||||||
|
var/list/tracking_cams = list()
|
||||||
|
var/list/b_cams = get_cameras()
|
||||||
|
for(var/entry in b_cams)
|
||||||
|
tracking_cams += b_cams[entry]
|
||||||
|
var/list/target_region = view(tracking)
|
||||||
|
|
||||||
|
for(var/obj/machinery/camera/C in (target_region & tracking_cams))
|
||||||
|
if(!can_see(C,tracking)) // target may have xray, that doesn't make them visible to cameras
|
||||||
|
continue
|
||||||
|
if(C.can_use())
|
||||||
|
last_found = C.c_tag
|
||||||
|
last_seen = world.time
|
||||||
|
break
|
||||||
|
src.updateSelfDialog()
|
||||||
|
|
||||||
|
|
||||||
|
#undef BUGMODE_LIST
|
||||||
|
#undef BUGMODE_MONITOR
|
||||||
|
#undef BUGMODE_TRACK
|
||||||
|
>>>>>>> 626302c... Merge pull request #32161 from ninjanomnom/512-experimental
|
||||||
|
|||||||
@@ -29,30 +29,30 @@
|
|||||||
var/dat = "<TT><B>Personal AI Device</B><BR>"
|
var/dat = "<TT><B>Personal AI Device</B><BR>"
|
||||||
if(pai)
|
if(pai)
|
||||||
if(!pai.master_dna || !pai.master)
|
if(!pai.master_dna || !pai.master)
|
||||||
dat += "<a href='byond://?src=\ref[src];setdna=1'>Imprint Master DNA</a><br>"
|
dat += "<a href='byond://?src=[REF(src)];setdna=1'>Imprint Master DNA</a><br>"
|
||||||
dat += "Installed Personality: [pai.name]<br>"
|
dat += "Installed Personality: [pai.name]<br>"
|
||||||
dat += "Prime directive: <br>[pai.laws.zeroth]<br>"
|
dat += "Prime directive: <br>[pai.laws.zeroth]<br>"
|
||||||
for(var/slaws in pai.laws.supplied)
|
for(var/slaws in pai.laws.supplied)
|
||||||
dat += "Additional directives: <br>[slaws]<br>"
|
dat += "Additional directives: <br>[slaws]<br>"
|
||||||
dat += "<a href='byond://?src=\ref[src];setlaws=1'>Configure Directives</a><br>"
|
dat += "<a href='byond://?src=[REF(src)];setlaws=1'>Configure Directives</a><br>"
|
||||||
dat += "<br>"
|
dat += "<br>"
|
||||||
dat += "<h3>Device Settings</h3><br>"
|
dat += "<h3>Device Settings</h3><br>"
|
||||||
if(pai.radio)
|
if(pai.radio)
|
||||||
dat += "<b>Radio Uplink</b><br>"
|
dat += "<b>Radio Uplink</b><br>"
|
||||||
dat += "Transmit: <A href='byond://?src=\ref[src];wires=[WIRE_TX]'>[(pai.radio.wires.is_cut(WIRE_TX)) ? "Disabled" : "Enabled"]</A><br>"
|
dat += "Transmit: <A href='byond://?src=[REF(src)];wires=[WIRE_TX]'>[(pai.radio.wires.is_cut(WIRE_TX)) ? "Disabled" : "Enabled"]</A><br>"
|
||||||
dat += "Receive: <A href='byond://?src=\ref[src];wires=[WIRE_RX]'>[(pai.radio.wires.is_cut(WIRE_RX)) ? "Disabled" : "Enabled"]</A><br>"
|
dat += "Receive: <A href='byond://?src=[REF(src)];wires=[WIRE_RX]'>[(pai.radio.wires.is_cut(WIRE_RX)) ? "Disabled" : "Enabled"]</A><br>"
|
||||||
else
|
else
|
||||||
dat += "<b>Radio Uplink</b><br>"
|
dat += "<b>Radio Uplink</b><br>"
|
||||||
dat += "<font color=red><i>Radio firmware not loaded. Please install a pAI personality to load firmware.</i></font><br>"
|
dat += "<font color=red><i>Radio firmware not loaded. Please install a pAI personality to load firmware.</i></font><br>"
|
||||||
if(ishuman(user))
|
if(ishuman(user))
|
||||||
var/mob/living/carbon/human/H = user
|
var/mob/living/carbon/human/H = user
|
||||||
if(H.real_name == pai.master || H.dna.unique_enzymes == pai.master_dna)
|
if(H.real_name == pai.master || H.dna.unique_enzymes == pai.master_dna)
|
||||||
dat += "<A href='byond://?src=\ref[src];toggle_holo=1'>\[[pai.canholo? "Disable" : "Enable"] holomatrix projectors\]</a><br>"
|
dat += "<A href='byond://?src=[REF(src)];toggle_holo=1'>\[[pai.canholo? "Disable" : "Enable"] holomatrix projectors\]</a><br>"
|
||||||
dat += "<A href='byond://?src=\ref[src];wipe=1'>\[Wipe current pAI personality\]</a><br>"
|
dat += "<A href='byond://?src=[REF(src)];wipe=1'>\[Wipe current pAI personality\]</a><br>"
|
||||||
else
|
else
|
||||||
dat += "No personality installed.<br>"
|
dat += "No personality installed.<br>"
|
||||||
dat += "Searching for a personality... Press view available personalities to notify potential candidates."
|
dat += "Searching for a personality... Press view available personalities to notify potential candidates."
|
||||||
dat += "<A href='byond://?src=\ref[src];request=1'>\[View available personalities\]</a><br>"
|
dat += "<A href='byond://?src=[REF(src)];request=1'>\[View available personalities\]</a><br>"
|
||||||
user << browse(dat, "window=paicard")
|
user << browse(dat, "window=paicard")
|
||||||
onclose(user, "paicard")
|
onclose(user, "paicard")
|
||||||
return
|
return
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user