mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-15 00:53:23 +01:00
Merge pull request #492 from SkyMarshal/master
Fixed #460, #456, and #478
This commit is contained in:
@@ -636,7 +636,6 @@
|
||||
#include "code\game\objects\devices\chameleonproj.dm"
|
||||
#include "code\game\objects\devices\flash.dm"
|
||||
#include "code\game\objects\devices\flashlight.dm"
|
||||
#include "code\game\objects\devices\geneanalyzer.dm"
|
||||
#include "code\game\objects\devices\infra_sensor.dm"
|
||||
#include "code\game\objects\devices\multitool.dm"
|
||||
#include "code\game\objects\devices\paicard.dm"
|
||||
|
||||
@@ -12,6 +12,9 @@
|
||||
///Chemistry.
|
||||
var/datum/reagents/reagents = null
|
||||
|
||||
//Detective Work, used for the duplicate data points kept in the scanners
|
||||
var/atom/original_atom = null
|
||||
|
||||
//var/chem_is_open_container = 0
|
||||
// replaced by OPENCONTAINER flags and atom/proc/is_open_container()
|
||||
///Chemistry.
|
||||
|
||||
+10
-5
@@ -93,15 +93,17 @@
|
||||
var/mob/living/carbon/human/H = M
|
||||
if (!istype(H.dna, /datum/dna))
|
||||
return 0
|
||||
if (H.gloves)
|
||||
if (H.gloves && H.gloves != src)
|
||||
if(src.fingerprintslast != H.key)
|
||||
src.fingerprintshidden += text("(Wearing gloves). Real name: [], Key: []",H.real_name, H.key)
|
||||
src.fingerprintslast = H.key
|
||||
H.gloves.add_fingerprint(M)
|
||||
if (H.dna.uni_identity)
|
||||
if(prob(75) && istype(H.gloves, /obj/item/clothing/gloves/latex))
|
||||
return 0
|
||||
else if(H.gloves && !istype(H.gloves, /obj/item/clothing/gloves/latex))
|
||||
return 0
|
||||
if(H.gloves != src)
|
||||
if(prob(75) && istype(H.gloves, /obj/item/clothing/gloves/latex))
|
||||
return 0
|
||||
else if(H.gloves && !istype(H.gloves, /obj/item/clothing/gloves/latex))
|
||||
return 0
|
||||
if(src.fingerprintslast != H.key)
|
||||
src.fingerprintshidden += text("Real name: [], Key: []",H.real_name, H.key)
|
||||
src.fingerprintslast = H.key
|
||||
@@ -302,6 +304,9 @@
|
||||
src.fingerprints[i] = "1=" + prints["1"] + "&2=" + new_print
|
||||
if(!src.fingerprints)
|
||||
src.fingerprints = list()
|
||||
if(istype(src, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/M = src
|
||||
M.update_clothing()
|
||||
return
|
||||
|
||||
/atom/MouseDrop(atom/over_object as mob|obj|turf|area)
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
src.get_targets()
|
||||
src.icon_state = "cleanbot[src.on]"
|
||||
|
||||
should_patrol = 0
|
||||
should_patrol = 1
|
||||
|
||||
src.botcard = new /obj/item/weapon/card/id(src)
|
||||
src.botcard.access = get_access("Janitor")
|
||||
|
||||
@@ -360,9 +360,9 @@
|
||||
// if (subject.suiciding == 1)
|
||||
// src.temp = "Error: Subject's brain is not responding to scanning stimuli."
|
||||
// return
|
||||
if ((!subject.ckey) || (!subject.client))
|
||||
src.temp = "Error: Mental interface failure."
|
||||
return
|
||||
// if ((!subject.ckey) || (!subject.client))
|
||||
// src.temp = "Error: Mental interface failure."
|
||||
// return
|
||||
if (subject.mutations & HUSK)
|
||||
src.temp = "Error: Mental interface failure."
|
||||
return
|
||||
@@ -372,9 +372,13 @@
|
||||
|
||||
subject.dna.check_integrity()
|
||||
|
||||
var/ckey = subject.ckey
|
||||
if(!ckey && subject && subject.mind)
|
||||
ckey = subject.mind.key
|
||||
|
||||
var/datum/data/record/R = new /datum/data/record( )
|
||||
R.fields["mrace"] = subject.mutantrace
|
||||
R.fields["ckey"] = subject.ckey
|
||||
R.fields["ckey"] = ckey
|
||||
R.fields["name"] = subject.real_name
|
||||
R.fields["id"] = copytext(md5(subject.real_name), 2, 6)
|
||||
R.fields["UI"] = subject.dna.uni_identity
|
||||
|
||||
@@ -477,6 +477,10 @@
|
||||
tnote += "<i><b>→ To [P.owner]:</b></i><br>[t]<br>"
|
||||
P.tnote += "<i><b>← From <a href='byond://?src=\ref[P];choice=Message;target=\ref[src]'>[owner]</a>:</b></i><br>[t]<br>"
|
||||
|
||||
// Give every ghost the ability to see all messages
|
||||
for (var/mob/dead/observer/G in world)
|
||||
G.show_message("<i>PDA message from <b>[src.owner]</b> to <b>[P:owner]</b>: [t]</i>")
|
||||
|
||||
if (prob(15)) //Give the AI a chance of intercepting the message
|
||||
var/who = src.owner
|
||||
if(prob(50))
|
||||
@@ -763,8 +767,19 @@
|
||||
user << "\blue Unable to locate any fingerprints on [A]!"
|
||||
else
|
||||
user << "\blue Isolated [A:fingerprints.len] fingerprints."
|
||||
// for(var/i in L)
|
||||
// user << "\blue \t [i]"
|
||||
var/list/prints = A:fingerprints
|
||||
var/list/complete_prints = list()
|
||||
for(var/i in prints)
|
||||
var/list/templist = params2list(i)
|
||||
var/temp = stringpercent(templist["2"])
|
||||
if(temp <= 6)
|
||||
complete_prints += templist["2"]
|
||||
if(complete_prints.len < 1)
|
||||
user << "\blue No intact prints found"
|
||||
else
|
||||
user << "\blue Found [complete_prints.len] intact prints"
|
||||
for(var/i in complete_prints)
|
||||
user << "\blue " + i
|
||||
|
||||
if(3)
|
||||
if(!isnull(A.reagents))
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
/obj/item/device/geneticsanalyzer
|
||||
name = "Genetics Analyser"
|
||||
icon = 'device.dmi'
|
||||
icon_state = "genetics"
|
||||
w_class = 2
|
||||
|
||||
/obj/item/device/geneticsanalyzer/attack(mob/M as mob, mob/user as mob)
|
||||
for(var/mob/O in viewers(M, null))
|
||||
O.show_message(text("\red [] has analyzed []'s genetic code!", user, M), 1)
|
||||
//Foreach goto(67)
|
||||
user.show_message(text("\blue Analyzing Results for [M]: [M.dna.struc_enzymes]\n\t"), 1)
|
||||
user.show_message(text("\blue \t Epilepsy: [isblockon(getblock(M.dna.struc_enzymes, HEADACHEBLOCK,3),HEADACHEBLOCK) ? "Yes" : "No"]"), 1)
|
||||
user.show_message(text("\blue \t Cough: [isblockon(getblock(M.dna.struc_enzymes, COUGHBLOCK,3),COUGHBLOCK) ? "Yes" : "No"]"), 1)
|
||||
user.show_message(text("\blue \t Clumsy: [isblockon(getblock(M.dna.struc_enzymes, CLUMSYBLOCK,3),CLUMSYBLOCK) ? "Yes" : "No"]"), 1)
|
||||
user.show_message(text("\blue \t Twitch: [isblockon(getblock(M.dna.struc_enzymes, TWITCHBLOCK,3),TWITCHBLOCK) ? "Yes" : "No"]"), 1)
|
||||
user.show_message(text("\blue \t Nervous: [isblockon(getblock(M.dna.struc_enzymes, NERVOUSBLOCK,3),NERVOUSBLOCK) ? "Yes" : "No"]"), 1)
|
||||
user.show_message(text("\blue \t Blind: [isblockon(getblock(M.dna.struc_enzymes, BLINDBLOCK,3),BLINDBLOCK) ? "Yes" : "No"]"), 1)
|
||||
user.show_message(text("\blue \t Deaf: [isblockon(getblock(M.dna.struc_enzymes, DEAFBLOCK,3),DEAFBLOCK) ? "Yes" : "No"]"), 1)
|
||||
user.show_message(text("\blue \t Requires Glasses: [isblockon(getblock(M.dna.struc_enzymes, GLASSESBLOCK,3),GLASSESBLOCK) ? "Yes" : "No"]"), 1)
|
||||
|
||||
/*
|
||||
var/unknow = 0
|
||||
var/list/unknowns = list(HULKBLOCK,TELEBLOCK,FIREBLOCK,XRAYBLOCK,NOBREATHBLOCK,REMOTEVIEWBLOCK,REGENERATEBLOCK,INCREASERUNBLOCK,REMOTETALKBLOCK,MORPHBLOCK,BLENDBLOCK,HALLUCINATIONBLOCK,NOPRINTSBLOCK,SHOCKIMMUNITYBLOCK,SMALLSIZEBLOCK)
|
||||
for(var/unknown in unknowns)
|
||||
if(isblockon(getblock(M.dna.struc_enzymes, unknown,3),unknown))
|
||||
unknow += 1
|
||||
user.show_message(text("\blue \t Unknown Anomalies: [unknow]"))*/
|
||||
@@ -204,8 +204,8 @@ MASS SPECTROMETER
|
||||
var/merged = 0
|
||||
for(var/i = 1, i < (stored.len + 1), i++) //Lets see if the object is already in there!
|
||||
var/list/temp = stored[i]
|
||||
var/checker = temp[1]
|
||||
if(checker == A) //It is! Merge!
|
||||
var/atom/checker = temp[1]
|
||||
if(checker.original_atom == A || checker.original_atom == A.original_atom) //It is! Merge!
|
||||
merged = 1
|
||||
var/list/prints = temp[2]
|
||||
if(!prints)
|
||||
@@ -239,7 +239,7 @@ MASS SPECTROMETER
|
||||
if(!blood.Find(A.blood_DNA[j])) //It isn't! Add!
|
||||
blood += A.blood_DNA[j]
|
||||
var/list/sum_list[4] //Pack it back up!
|
||||
sum_list[1] = A
|
||||
sum_list[1] = checker
|
||||
sum_list[2] = prints
|
||||
sum_list[3] = fibers
|
||||
sum_list[4] = blood
|
||||
@@ -247,7 +247,7 @@ MASS SPECTROMETER
|
||||
break //We found it, we're done here.
|
||||
if(!merged) //Uh, oh! New data point!
|
||||
var/list/sum_list[4] //Pack it back up!
|
||||
sum_list[1] = A
|
||||
sum_list[1] = A.get_duplicate(src)
|
||||
if(!A.fingerprints)
|
||||
world << "Report this to a dev! [A] was lacking a list() for fingerprints!"
|
||||
sum_list[2] = list()
|
||||
|
||||
@@ -59,6 +59,26 @@
|
||||
|
||||
|
||||
/obj/structure/displaycase/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W, /obj/item/weapon/gun/energy/laser/captain))
|
||||
if(!src.occupied)
|
||||
user << "\b You put the [W] back into the display case."
|
||||
del(W)
|
||||
src.occupied = 1
|
||||
update_icon()
|
||||
return
|
||||
if(istype(W, /obj/item/stack/sheet/glass))
|
||||
if(src.occupied && src.destroyed)
|
||||
var/obj/item/stack/sheet/glass/G = W
|
||||
user << "\b You repair the display case."
|
||||
G.amount--
|
||||
if (G.amount <= 0)
|
||||
user.update_clothing()
|
||||
del(G)
|
||||
src.destroyed = 0
|
||||
src.density = 1
|
||||
src.health = 30
|
||||
update_icon()
|
||||
return
|
||||
src.health -= W.force
|
||||
src.healthcheck()
|
||||
..()
|
||||
|
||||
@@ -219,6 +219,7 @@
|
||||
return
|
||||
|
||||
src.created_name = t
|
||||
user.update_clothing()
|
||||
|
||||
return
|
||||
|
||||
|
||||
@@ -49,6 +49,21 @@ atom/proc/add_fibers(mob/living/carbon/human/M)
|
||||
suit_fibers += "Material from a pair of [M.gloves.name]."
|
||||
if(!suit_fibers.len) del suit_fibers
|
||||
|
||||
atom/proc/get_duplicate(var/atom/location)
|
||||
var/atom/temp_atom = new src.type(location)
|
||||
temp_atom.name = src.name
|
||||
temp_atom.desc = src.desc
|
||||
temp_atom.icon = src.icon
|
||||
temp_atom.icon_state = src.icon_state
|
||||
temp_atom.fingerprints = src.fingerprints
|
||||
temp_atom.blood_DNA = src.blood_DNA
|
||||
temp_atom.suit_fibers = src.suit_fibers
|
||||
if(src.original_atom)
|
||||
temp_atom.original_atom = src.original_atom
|
||||
else
|
||||
temp_atom.original_atom = src
|
||||
return temp_atom
|
||||
|
||||
#define FINGERPRINT_COMPLETE 6 //This is the output of the stringpercent(print) proc, and means about 80% of
|
||||
//the print must be there for it to be complete. (Prints are 32 digits)
|
||||
|
||||
@@ -167,12 +182,20 @@ obj/machinery/computer/forensic_scanning
|
||||
M.drop_item()
|
||||
I.loc = src
|
||||
else
|
||||
temp = "Invalid Object Rejected."
|
||||
usr << "Invalid Object Rejected."
|
||||
if("card")
|
||||
var/mob/M = usr
|
||||
var/obj/item/I = M.equipped()
|
||||
if(!(I && istype(I,/obj/item/weapon/f_card)))
|
||||
I = card
|
||||
if(I && istype(I,/obj/item/weapon/f_card))
|
||||
card = I
|
||||
if(card.amount > 1 || !card.fingerprints.len)
|
||||
usr << "\red ERROR: No prints/too many cards."
|
||||
if(card.loc == src)
|
||||
card.loc = src.loc
|
||||
card = null
|
||||
return
|
||||
M.drop_item()
|
||||
I.loc = src
|
||||
process_card()
|
||||
@@ -181,8 +204,16 @@ obj/machinery/computer/forensic_scanning
|
||||
usr << "\red Invalid Object Rejected."
|
||||
if("database")
|
||||
canclear = 1
|
||||
if(href_list["delete_record"])
|
||||
delete_dossier(text2num(href_list["delete_record"]))
|
||||
if(href_list["delete_aux"])
|
||||
delete_record(text2num(href_list["delete_aux"]))
|
||||
if((!misc || !misc.len) && (!files || !files.len))
|
||||
temp = "Database is empty."
|
||||
for(var/atom/A in contents)
|
||||
if(A == scanning)
|
||||
continue
|
||||
del(A)
|
||||
else
|
||||
if(files && files.len)
|
||||
temp = "<b>Criminal Evidence Database</b><br><br>"
|
||||
@@ -238,7 +269,7 @@ obj/machinery/computer/forensic_scanning
|
||||
temp += " No blood found.<br>"
|
||||
else
|
||||
temp = "ERROR. Database not found!<br>"
|
||||
temp += "<br><a href='?src=\ref[src];operation=delete;identifier=[href_list["identifier"]]'>{delete}</a>"
|
||||
temp += "<br><a href='?src=\ref[src];operation=database;delete_record=[href_list["identifier"]]'>{Delete this Dossier}</a>"
|
||||
temp += "<br><a href='?src=\ref[src];operation=databaseprint;identifier=[href_list["identifier"]]'>{Print}</a>"
|
||||
temp += "<br><a href='?src=\ref[src];operation=database'>{Return}</a>"
|
||||
if("databaseprint")
|
||||
@@ -305,7 +336,7 @@ obj/machinery/computer/forensic_scanning
|
||||
temp += " No blood found.<br>"
|
||||
else
|
||||
temp = "ERROR. Database not found!<br>"
|
||||
temp += "<br><a href='?src=\ref[src];operation=delete_aux;identifier=[href_list["identifier"]]'>{Delete This Record}</a>"
|
||||
temp += "<br><a href='?src=\ref[src];operation=database;delete_aux=[href_list["identifier"]]'>{Delete This Record}</a>"
|
||||
temp += "<br><a href='?src=\ref[src];operation=auxiliaryprint;identifier=[href_list["identifier"]]'>{Print}</a>"
|
||||
temp += "<br><a href='?src=\ref[src];operation=database'>{Return}</a>"
|
||||
if("auxiliaryprint")
|
||||
@@ -427,10 +458,6 @@ obj/machinery/computer/forensic_scanning
|
||||
temp = "Print Failed: No Data"
|
||||
if("erase")
|
||||
scan_data = ""
|
||||
if("delete_aux")
|
||||
delete_record(text2num(href_list["identifier"]))
|
||||
if("delete")
|
||||
delete_dossier(text2num(href_list["identifier"]))
|
||||
if("cancel")
|
||||
scan_process = 0
|
||||
if("add")
|
||||
@@ -448,6 +475,10 @@ obj/machinery/computer/forensic_scanning
|
||||
add_fingerprint(usr)
|
||||
files = list()
|
||||
misc = list()
|
||||
for(var/atom/A in contents)
|
||||
if(A == scanning)
|
||||
continue
|
||||
del(A)
|
||||
return
|
||||
|
||||
|
||||
@@ -460,6 +491,9 @@ obj/machinery/computer/forensic_scanning
|
||||
var/list/data = W.stored[i]
|
||||
add_data(data[1],1,data[2],data[3],data[4])
|
||||
W.stored = list()
|
||||
for(var/atom/A in W.contents)
|
||||
del(A)
|
||||
return
|
||||
|
||||
|
||||
proc/add_data(var/atom/A, var/override = 0, var/tempfingerprints, var/tempsuit_fibers,var/tempblood_DNA)
|
||||
@@ -483,8 +517,8 @@ obj/machinery/computer/forensic_scanning
|
||||
if(misc)
|
||||
for(var/i = 1, i <= misc.len, i++) //Lets see if we can find it.
|
||||
var/list/templist = misc[i]
|
||||
var/check = templist[1]
|
||||
if(check == A) //There it is!
|
||||
var/atom/check = templist[1]
|
||||
if(check.original_atom == A || check.original_atom == A.original_atom) //There it is!
|
||||
merged = 1
|
||||
var/list/fibers = templist[2]
|
||||
if(!fibers)
|
||||
@@ -501,14 +535,14 @@ obj/machinery/computer/forensic_scanning
|
||||
if(!blood.Find(A.blood_DNA[j])) //It isn't! Add!
|
||||
blood += A.blood_DNA[j]
|
||||
var/list/sum_list[3] //Pack it back up!
|
||||
sum_list[1] = A
|
||||
sum_list[1] = check
|
||||
sum_list[2] = fibers
|
||||
sum_list[3] = blood
|
||||
misc[i] = sum_list //Store it!
|
||||
break //We found it, we're done here.
|
||||
if(!merged) //Nope! Guess we have to add it!
|
||||
var/list/templist[3]
|
||||
templist[1] = A
|
||||
templist[1] = A.get_duplicate(src)
|
||||
templist[2] = A.suit_fibers
|
||||
templist[3] = A.blood_DNA
|
||||
misc.len++
|
||||
@@ -532,7 +566,8 @@ obj/machinery/computer/forensic_scanning
|
||||
found_prints[m] = 1
|
||||
for(var/n = 2, n <= perp_list.len, n++) //Lets see if it is already in the database
|
||||
var/list/target = perp_list[n]
|
||||
if(target[1] == A) //Found the original object!
|
||||
var/atom/atom_checker = target[1]
|
||||
if(atom_checker.original_atom == A || atom_checker.original_atom == A.original_atom) //Found the original object!
|
||||
found2 = 1
|
||||
var/list/prints = target[2]
|
||||
if(!prints)
|
||||
@@ -566,7 +601,7 @@ obj/machinery/computer/forensic_scanning
|
||||
if(!blood.Find(A.blood_DNA[j])) //It isn't! Add!
|
||||
blood += A.blood_DNA[j]
|
||||
var/list/sum_list[4] //Pack it back up!
|
||||
sum_list[1] = A
|
||||
sum_list[1] = atom_checker
|
||||
sum_list[2] = prints
|
||||
sum_list[3] = fibers
|
||||
sum_list[4] = blood
|
||||
@@ -575,7 +610,7 @@ obj/machinery/computer/forensic_scanning
|
||||
break //We found it, we're done here.
|
||||
if(!found2) //Add a new datapoint to this perp!
|
||||
var/list/sum_list[4]
|
||||
sum_list[1] = A
|
||||
sum_list[1] = A.get_duplicate(src)
|
||||
sum_list[2] = A.fingerprints
|
||||
sum_list[3] = A.suit_fibers
|
||||
sum_list[4] = A.blood_DNA
|
||||
@@ -586,7 +621,7 @@ obj/machinery/computer/forensic_scanning
|
||||
if(found_prints[m] == 0)
|
||||
var/list/newperp[2]
|
||||
var/list/sum_list[4]
|
||||
sum_list[1] = A
|
||||
sum_list[1] = A.get_duplicate(src)
|
||||
sum_list[2] = A.fingerprints
|
||||
sum_list[3] = A.suit_fibers
|
||||
sum_list[4] = A.blood_DNA
|
||||
@@ -628,7 +663,7 @@ obj/machinery/computer/forensic_scanning
|
||||
|
||||
proc/process_card() //I am tired, but this updates the master print from a fingerprint card
|
||||
//which is used to determine completion of a print.
|
||||
if(card.fingerprints)
|
||||
if(card.fingerprints && !(card.amount > 1))
|
||||
for(var/k = 1, k <= card.fingerprints.len, k++)
|
||||
var/list/test_prints = params2list(card.fingerprints[k])
|
||||
var/print = test_prints[num2text(1)]
|
||||
@@ -640,7 +675,13 @@ obj/machinery/computer/forensic_scanning
|
||||
test_list[1] = "1=" + print + "&2=" + print
|
||||
files[i] = test_list
|
||||
break
|
||||
del(card)
|
||||
del(card)
|
||||
else
|
||||
usr << "\red ERROR: No prints/too many cards."
|
||||
if(card.loc == src)
|
||||
card.loc = src.loc
|
||||
card = null
|
||||
return
|
||||
return
|
||||
|
||||
proc/delete_record(var/location)
|
||||
|
||||
@@ -1413,6 +1413,7 @@
|
||||
else user << "\red [M] finishes eating [src]."
|
||||
del(src)
|
||||
playsound(M.loc,'eatfood.ogg', rand(10,50), 1)
|
||||
user.update_clothing()
|
||||
return 1
|
||||
else if(istype(M, /mob/living/simple_animal/livestock))
|
||||
if(M == user) //If you're eating it yourself.
|
||||
@@ -1465,6 +1466,8 @@
|
||||
if(!reagents.total_volume)
|
||||
if(M == user) user << "\red You finish eating [src]."
|
||||
else user << "\red [M] finishes eating [src]."
|
||||
spawn(2)
|
||||
user.update_clothing()
|
||||
del(src)
|
||||
playsound(M.loc,'eatfood.ogg', rand(10,50), 1)
|
||||
return 1
|
||||
|
||||
@@ -130,7 +130,7 @@
|
||||
var/pr = 50
|
||||
if(prob(pr))
|
||||
adjustToxLoss(1)
|
||||
else
|
||||
else if (stat != 0)
|
||||
if(!lying)
|
||||
lying = 1 //Seriously, stay down :x
|
||||
update_clothing()
|
||||
|
||||
@@ -188,6 +188,7 @@
|
||||
var/turf/T = get_turf(loc)
|
||||
if (istype(T))
|
||||
T.Entered(W)
|
||||
update_clothing()
|
||||
return
|
||||
|
||||
/mob/proc/before_take_item(var/obj/item/item)
|
||||
|
||||
@@ -170,13 +170,7 @@ datum/preferences
|
||||
dat += "<hr><b>Eyes</b><br>"
|
||||
dat += "<a href='byond://?src=\ref[user];preferences=1;eyes=input'>Change Color</a> <font face=\"fixedsys\" size=\"3\" color=\"#[num2hex(r_eyes, 2)][num2hex(g_eyes, 2)][num2hex(b_eyes, 2)]\"><table style='display:inline;' bgcolor=\"#[num2hex(r_eyes, 2)][num2hex(g_eyes, 2)][num2hex(b_eyes)]\"><tr><td>__</td></tr></table></font>"
|
||||
|
||||
dat += "<hr><b>Disabilities: </b><br>"
|
||||
dat += "Need Glasses? <a href=\"byond://?src=\ref[user];preferences=1;disabilities=0\">[disabilities & (1<<0) ? "Yes" : "No"]</a><br>"
|
||||
dat += "Seizures? <a href=\"byond://?src=\ref[user];preferences=1;disabilities=1\">[disabilities & (1<<1) ? "Yes" : "No"]</a><br>"
|
||||
dat += "Coughing? <a href=\"byond://?src=\ref[user];preferences=1;disabilities=2\">[disabilities & (1<<2) ? "Yes" : "No"]</a><br>"
|
||||
dat += "Tourettes/Twitching? <a href=\"byond://?src=\ref[user];preferences=1;disabilities=3\">[disabilities & (1<<3) ? "Yes" : "No"]</a><br>"
|
||||
dat += "Nervousness? <a href=\"byond://?src=\ref[user];preferences=1;disabilities=4\">[disabilities & (1<<4) ? "Yes" : "No"]</a><br>"
|
||||
dat += "Deafness? <a href=\"byond://?src=\ref[user];preferences=1;disabilities=5\">[disabilities & (1<<5) ? "Yes" : "No"]</a><br>"
|
||||
dat += "<hr><b><a href=\"byond://?src=\ref[user];preferences=1;disabilities=-1\">Disabilities</a></b><br>"
|
||||
|
||||
dat += "<hr><b>Flavor Text</b><br>"
|
||||
dat += "<a href='byond://?src=\ref[user];preferences=1;flavor_text=1'>Change</a><br>"
|
||||
@@ -224,6 +218,26 @@ datum/preferences
|
||||
proc/closesave(mob/user)
|
||||
user << browse(null, "window=saves;size=300x640")
|
||||
|
||||
proc/SetDisabilities(mob/user)
|
||||
var/HTML = "<body>"
|
||||
HTML += "<tt><center>"
|
||||
HTML += "<b>Choose disabilities</b><br>"
|
||||
|
||||
HTML += "Need Glasses? <a href=\"byond://?src=\ref[user];preferences=1;disabilities=0\">[disabilities & (1<<0) ? "Yes" : "No"]</a><br>"
|
||||
HTML += "Seizures? <a href=\"byond://?src=\ref[user];preferences=1;disabilities=1\">[disabilities & (1<<1) ? "Yes" : "No"]</a><br>"
|
||||
HTML += "Coughing? <a href=\"byond://?src=\ref[user];preferences=1;disabilities=2\">[disabilities & (1<<2) ? "Yes" : "No"]</a><br>"
|
||||
HTML += "Tourettes/Twitching? <a href=\"byond://?src=\ref[user];preferences=1;disabilities=3\">[disabilities & (1<<3) ? "Yes" : "No"]</a><br>"
|
||||
HTML += "Nervousness? <a href=\"byond://?src=\ref[user];preferences=1;disabilities=4\">[disabilities & (1<<4) ? "Yes" : "No"]</a><br>"
|
||||
HTML += "Deafness? <a href=\"byond://?src=\ref[user];preferences=1;disabilities=5\">[disabilities & (1<<5) ? "Yes" : "No"]</a><br>"
|
||||
|
||||
HTML += "<br>"
|
||||
HTML += "<a href=\"byond://?src=\ref[user];preferences=1;disabilities=-2\">\[Done\]</a>"
|
||||
HTML += "</center></tt>"
|
||||
|
||||
user << browse(null, "window=preferences")
|
||||
user << browse(HTML, "window=disabil;size=350x300")
|
||||
return
|
||||
|
||||
proc/GetAltTitle(datum/job/job)
|
||||
return job_alt_titles.Find(job.title) > 0 \
|
||||
? job_alt_titles[job.title] \
|
||||
@@ -694,7 +708,13 @@ datum/preferences
|
||||
midis = 1
|
||||
disabilities = 0
|
||||
if(link_tags["disabilities"])
|
||||
disabilities ^= (1<<text2num(link_tags["disabilities"])) //MAGIC
|
||||
if(text2num(link_tags["disabilities"]) >= -1)
|
||||
if(text2num(link_tags["disabilities"]) >= 0)
|
||||
disabilities ^= (1<<text2num(link_tags["disabilities"])) //MAGIC
|
||||
SetDisabilities(user)
|
||||
return
|
||||
else
|
||||
user << browse(null, "window=disabil")
|
||||
|
||||
ShowChoices(user)
|
||||
|
||||
|
||||
@@ -3609,7 +3609,7 @@
|
||||
"bru" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=AftH"; location = "AIW"},/obj/machinery/door/firedoor/border_only{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft)
|
||||
"brv" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=HOP"; location = "AIE"},/turf/simulated/floor,/area/hallway/primary/aft)
|
||||
"brw" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor,/area/hallway/primary/aft)
|
||||
"brx" = (/obj/machinery/door/airlock/maintenance{name = "Kitchen Maintenance"; req_access_txt = "28"},/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j1s"; sortType = list("Courtroom")},/turf/simulated/floor/plating,/area/crew_quarters/kitchen)
|
||||
"brx" = (/obj/machinery/door/airlock/maintenance{name = "Kitchen Maintenance"; req_access_txt = "28"},/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = list("Courtroom")},/turf/simulated/floor/plating,/area/crew_quarters/kitchen)
|
||||
"bry" = (/obj/machinery/door/window/westleft{base_state = "right"; dir = 1; icon_state = "right"; name = "Kitchen Delivery"; req_access_txt = "28"},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "delivery"},/area/crew_quarters/kitchen)
|
||||
"brz" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/crew_quarters/kitchen)
|
||||
"brA" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/disposal,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/cafeteria)
|
||||
@@ -3900,7 +3900,7 @@
|
||||
"bwZ" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
|
||||
"bxa" = (/obj/machinery/scan_consolenew,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
|
||||
"bxb" = (/obj/structure/table,/obj/machinery/camera{c_tag = "Genetics Cloning"; dir = 1; network = "Medbay"; pixel_x = 22},/obj/item/weapon/packageWrap,/obj/item/weapon/packageWrap,/obj/item/device/destTagger,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
|
||||
"bxc" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin,/obj/item/device/geneticsanalyzer,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
|
||||
"bxc" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
|
||||
"bxd" = (/obj/machinery/scan_consolenew,/obj/machinery/camera{c_tag = "Genetics Research"; dir = 8; network = "Research"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
|
||||
"bxe" = (/obj/structure/disposalpipe/segment{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
|
||||
"bxf" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
|
||||
|
||||
Reference in New Issue
Block a user