Abling Disability (#4485)

This PR implements a system for manipulating a client's color safely and also ports a prioritization system for sorting client color from /tg/. Currently this PR also implements client coloration in the form of color blindness, namely:
Monochromacy
Deuteranopia
Tritanopia
Protanopia

DTP are mild brain traumas, whereas monocrhomacy is a severe brain trauma.
Furthermore, this PR removes the Needs Glasses prompt in character creation, and replaces it with a disability selector, allowing people to more closely refine their special little snowflakes.
Current disabilities available:
Nervousness
Nearsightedness
Deuteranopia
Tritanopia
Protanopia
Deafness
Muteness
This commit is contained in:
LordFowl
2018-04-05 21:57:50 +03:00
committed by Erki
parent b39269225e
commit 64e386785c
31 changed files with 272 additions and 15 deletions
+9
View File
@@ -55,6 +55,7 @@ var/global/list/facial_hair_styles_male_list = list()
var/global/list/facial_hair_styles_female_list = list()
var/global/list/skin_styles_female_list = list() //unused
var/global/list/body_marking_styles_list = list()
var/global/list/chargen_disabilities_list = list()
//Underwear
var/global/list/underwear_m = list("White" = "m1", "Grey" = "m2", "Green" = "m3", "Blue" = "m4", "Black" = "m5", "Mankini" = "m6", "Boxers" = "boxers", "Green and blue boxers" = "boxers_green_and_blue","Loveheart boxers" = "boxers_loveheart","None") //Curse whoever made male/female underwear diffrent colours
var/global/list/underwear_f = list("Red" = "f1", "White" = "f2", "Yellow" = "f3", "Blue" = "f4", "Black" = "f5", "Thong" = "f6", "Black Sports" = "f7","White Sports" = "f8","None")
@@ -169,6 +170,14 @@ var/global/list/cloaking_devices = list()
sortTim(body_marking_styles_list, /proc/cmp_text_asc)
//Disability datums
paths = subtypesof(/datum/character_disabilities)
for(var/path in paths)
var/datum/character_disabilities/T = new path()
chargen_disabilities_list[T.name] = T
sortTim(chargen_disabilities_list, /proc/cmp_text_asc)
//Surgery Steps - Initialize all /datum/surgery_step into a list
paths = subtypesof(/datum/surgery_step)
for(var/T in paths)
+3
View File
@@ -89,3 +89,6 @@ var/cmp_field = "name"
/proc/cmp_planelayer(atom/A, atom/B)
return (B.plane - A.plane) || (B.layer - A.layer)
/proc/cmp_clientcolor_priority(datum/client_color/A, datum/client_color/B)
return B.priority - A.priority