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
+37 -4
View File
@@ -226,16 +226,49 @@
lose_text = "<span class='notice'>Your vision returns.</span>"
/datum/brain_trauma/mild/nearsightedness/on_gain()
owner.disabilities |= BLIND
owner.disabilities |= NEARSIGHTED
..()
//no fiddling with genetics to get out of this one
/datum/brain_trauma/mild/nearsightedness/on_life()
if(!(owner.disabilities & BLIND))
if(!(owner.disabilities & NEARSIGHTED))
on_gain()
..()
/datum/brain_trauma/mild/nearsightedness/on_lose()
if(owner.disabilities & BLIND)
owner.disabilities &= ~BLIND
if(owner.disabilities & NEARSIGHTED)
owner.disabilities &= ~NEARSIGHTED
..()
/datum/brain_trauma/mild/colorblind
name = "Partial Colorblindedness"
desc = "Patient's brain is loosely connected to ocular cones."
scan_desc = "minor damage to the brain's occipital lobe"
gain_text = "<span class='warning'>Your perception of color distorts!</span>"
lose_text = "<span class='notice'>Your vision returns.</span>"
var/colorblindedness
/datum/brain_trauma/mild/colorblind/on_gain()
colorblindedness = pick("deuteranopia", "protanopia", "tritanopia")
switch(colorblindedness)
if("deuteranopia")
owner.add_client_color(/datum/client_color/deuteranopia)
if("protanopia")
owner.add_client_color(/datum/client_color/protanopia)
if("tritanopia")
owner.add_client_color(/datum/client_color/tritanopia)
..()
/datum/brain_trauma/mild/colorblind/on_life()
if(owner.client && !owner.client.color)
on_gain()
/datum/brain_trauma/mild/colorblind/on_lose()
switch(colorblindedness)
if("deuteranopia")
owner.remove_client_color(/datum/client_color/deuteranopia)
if("protanopia")
owner.remove_client_color(/datum/client_color/protanopia)
if("tritanopia")
owner.remove_client_color(/datum/client_color/tritanopia)
..()
+19
View File
@@ -218,4 +218,23 @@
/datum/brain_trauma/severe/pacifism/on_lose()
owner.disabilities &= ~PACIFIST
..()
/datum/brain_trauma/severe/total_colorblind
name = "Total Colorblindedness"
desc = "Patient's brain is loosely connected to ocular cones."
scan_desc = "minor damage to the brain's occipital lobe"
gain_text = "<span class='warning'>Your perception of color vanishes!</span>"
lose_text = "<span class='notice'>Your vision returns.</span>"
/datum/brain_trauma/severe/total_colorblind/on_gain()
owner.add_client_color(/datum/client_color/monochrome)
..()
/datum/brain_trauma/severe/total_colorblind/on_life()
if(owner.client && !owner.client.color)
on_gain()
/datum/brain_trauma/severe/total_colorblind/on_lose()
owner.remove_client_color(/datum/client_color/monochrome)
..()