Sorts quirks into medical record categories (#50647)

* Sorts quirks into medical record categories

Removes Allergens from med record, still need to squash a bug.

* Makes Rohesie's requested changes

* typo

* Replaces magic numbers with defines
This commit is contained in:
RaveRadbury
2020-05-01 00:47:26 -07:00
committed by GitHub
parent 4cfcf55a4d
commit 8e4e34127b
6 changed files with 54 additions and 26 deletions
+6
View File
@@ -223,6 +223,12 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_SNOB "snob"
#define TRAIT_BALD "bald"
//Medical Categories for quirks
#define CAT_QUIRK_ALL 0
#define CAT_QUIRK_NOTES 1
#define CAT_QUIRK_MINOR_DISABILITY 2
#define CAT_QUIRK_MAJOR_DISABILITY 3
// common trait sources
#define TRAIT_GENERIC "generic"
#define GENERIC_ITEM_TRAIT "generic_item"
+6 -7
View File
@@ -260,15 +260,14 @@
M.fields["name"] = H.real_name
M.fields["blood_type"] = H.dna.blood_type
M.fields["b_dna"] = H.dna.unique_enzymes
M.fields["mi_dis"] = "None"
M.fields["mi_dis_d"] = "No minor disabilities have been declared."
M.fields["ma_dis"] = "None"
M.fields["ma_dis_d"] = "No major disabilities have been diagnosed."
M.fields["alg"] = "None"
M.fields["alg_d"] = "No allergies have been detected in this patient."
M.fields["mi_dis"] = H.get_trait_string(!medical, CAT_QUIRK_MINOR_DISABILITY)
M.fields["mi_dis_d"] = H.get_trait_string(medical, CAT_QUIRK_MINOR_DISABILITY)
M.fields["ma_dis"] = H.get_trait_string(!medical, CAT_QUIRK_MAJOR_DISABILITY)
M.fields["ma_dis_d"] = H.get_trait_string(medical, CAT_QUIRK_MAJOR_DISABILITY)
M.fields["cdi"] = "None"
M.fields["cdi_d"] = "No diseases have been diagnosed at the moment."
M.fields["notes"] = H.get_trait_string(medical)
M.fields["notes"] = H.get_trait_string(!medical, CAT_QUIRK_NOTES)
M.fields["notes_d"] = H.get_trait_string(medical, CAT_QUIRK_NOTES)
medical += M
//Security Record
+39 -15
View File
@@ -65,22 +65,46 @@
return
on_process()
/mob/living/proc/get_trait_string(medical) //helper string. gets a string of all the traits the mob has
/mob/living/proc/get_trait_string(medical, category) //helper string. gets a string of all the traits the mob has
var/list/dat = list()
if(!medical)
for(var/V in roundstart_quirks)
var/datum/quirk/T = V
dat += T.name
if(!dat.len)
return "None"
return dat.Join(", ")
else
for(var/V in roundstart_quirks)
var/datum/quirk/T = V
dat += T.medical_record_text
if(!dat.len)
return "None"
return dat.Join("<br>")
switch(category)
if(CAT_QUIRK_ALL)
for(var/V in roundstart_quirks)
var/datum/quirk/T = V
dat += medical ? T.medical_record_text : T.name
if(!dat.len)
return "None"
return medical ? dat.Join("<br>") : dat.Join(",")
//Major Disabilities
if(CAT_QUIRK_MAJOR_DISABILITY)
for(var/V in roundstart_quirks)
var/datum/quirk/T = V
if(T.value < -1)
dat += medical ? T.medical_record_text : T.name
if(!dat.len)
return medical ? "No major disabilities have been declared." : "None"
return medical ? dat.Join("<br>") : dat.Join(",")
//Minor Disabilities
if(CAT_QUIRK_MINOR_DISABILITY)
for(var/V in roundstart_quirks)
var/datum/quirk/T = V
if(T.value == -1)
dat += medical ? T.medical_record_text : T.name
if(!dat.len)
return medical ? "No minor disabilities have been declared." : "None"
return medical ? dat.Join("<br>") : dat.Join(",")
//Neutral and Positive quirks
if(CAT_QUIRK_NOTES)
for(var/V in roundstart_quirks)
var/datum/quirk/T = V
if(T.value > -1)
dat += medical ? T.medical_record_text : T.name
if(!dat.len)
return "None"
return medical ? dat.Join("<br>") : dat.Join(",")
/mob/living/proc/cleanse_trait_datums() //removes all trait datums
for(var/V in roundstart_quirks)
+1 -2
View File
@@ -122,11 +122,10 @@
dat += "<tr><td>Details:</td><td><A href='?src=[REF(src)];field=mi_dis_d'>&nbsp;[active2.fields["mi_dis_d"]]&nbsp;</A></td></tr>"
dat += "<tr><td><br>Major Disabilities:</td><td><br><A href='?src=[REF(src)];field=ma_dis'>&nbsp;[active2.fields["ma_dis"]]&nbsp;</A></td></tr>"
dat += "<tr><td>Details:</td><td><A href='?src=[REF(src)];field=ma_dis_d'>&nbsp;[active2.fields["ma_dis_d"]]&nbsp;</A></td></tr>"
dat += "<tr><td><br>Allergies:</td><td><br><A href='?src=[REF(src)];field=alg'>&nbsp;[active2.fields["alg"]]&nbsp;</A></td></tr>"
dat += "<tr><td>Details:</td><td><A href='?src=[REF(src)];field=alg_d'>&nbsp;[active2.fields["alg_d"]]&nbsp;</A></td></tr>"
dat += "<tr><td><br>Current Diseases:</td><td><br><A href='?src=[REF(src)];field=cdi'>&nbsp;[active2.fields["cdi"]]&nbsp;</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'>&nbsp;[active2.fields["cdi_d"]]&nbsp;</A></td></tr>"
dat += "<tr><td><br>Important Notes:</td><td><br><A href='?src=[REF(src)];field=notes'>&nbsp;[active2.fields["notes"]]&nbsp;</A></td></tr>"
dat += "<tr><td><br>Notes Cont'd:</td><td><br><A href='?src=[REF(src)];field=notes'>&nbsp;[active2.fields["notes_d"]]&nbsp;</A></td></tr>"
dat += "<tr><td><br><b><font size='4'>Comments/Log</font></b></td></tr>"
var/counter = 1
+1 -1
View File
@@ -191,7 +191,7 @@ GENE SCANNER
trauma_text += trauma_desc
render_list += "<span class='alert ml-1'>Cerebral traumas detected: subject appears to be suffering from [english_list(trauma_text)].</span>\n"
if(C.roundstart_quirks.len)
render_list += "<span class='info ml-1'>Subject has the following physiological traits: [C.get_trait_string()].</span>\n"
render_list += "<span class='info ml-1'>Subject has the following physiological traits: [C.get_trait_string(FALSE, CAT_QUIRK_ALL)].</span>\n"
if(advanced)
render_list += "<span class='info ml-1'>Brain Activity Level: [(200 - M.getOrganLoss(ORGAN_SLOT_BRAIN))/2]%.</span>\n"
@@ -829,7 +829,7 @@
to_chat(src, "<span class='info'>Your [damaged_message] [damaged_plural ? "are" : "is"] hurt.</span>")
if(roundstart_quirks.len)
to_chat(src, "<span class='notice'>You have these quirks: [get_trait_string()].</span>")
to_chat(src, "<span class='notice'>You have these quirks: [get_trait_string(FALSE, CAT_QUIRK_ALL)].</span>")
/mob/living/carbon/human/damage_clothes(damage_amount, damage_type = BRUTE, damage_flag = 0, def_zone)
if(damage_type != BRUTE && damage_type != BURN)