Files
Aurora.3/code/_helpers/sorting/cmp.dm
LordFowl 64e386785c 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
2018-04-05 21:57:50 +03:00

95 lines
3.1 KiB
Plaintext

/proc/cmp_numeric_dsc(a,b)
return b - a
/proc/cmp_numeric_asc(a,b)
return a - b
/proc/cmp_text_asc(a,b)
return sorttext(b,a)
/proc/cmp_text_dsc(a,b)
return sorttext(a,b)
/proc/cmp_name_asc(atom/a, atom/b)
return sorttext(b.name, a.name)
/proc/cmp_name_dsc(atom/a, atom/b)
return sorttext(a.name, b.name)
var/cmp_field = "name"
/proc/cmp_records_asc(datum/data/record/a, datum/data/record/b)
return sorttext(b.fields[cmp_field], a.fields[cmp_field])
/proc/cmp_records_dsc(datum/data/record/a, datum/data/record/b)
return sorttext(a.fields[cmp_field], b.fields[cmp_field])
/proc/cmp_ckey_asc(client/a, client/b)
return sorttext(b.ckey, a.ckey)
/proc/cmp_ckey_dsc(client/a, client/b)
return sorttext(a.ckey, b.ckey)
/proc/cmp_subsystem_init(datum/controller/subsystem/a, datum/controller/subsystem/b)
return b.init_order - a.init_order
/proc/cmp_subsystem_display(datum/controller/subsystem/a, datum/controller/subsystem/b)
return sorttext(b.name, a.name)
/proc/cmp_subsystem_priority(datum/controller/subsystem/a, datum/controller/subsystem/b)
return a.priority - b.priority
/proc/cmp_timer(datum/timedevent/a, datum/timedevent/b)
return a.timeToRun - b.timeToRun
/proc/cmp_camera(obj/machinery/camera/a, obj/machinery/camera/b)
if (a.c_tag_order != b.c_tag_order)
return b.c_tag_order - a.c_tag_order
return sorttext(b.c_tag, a.c_tag)
/proc/cmp_alarm(datum/alarm/a, datum/alarm/b)
return sorttext(b.last_name, a.last_name)
/proc/cmp_uplink_item(datum/uplink_item/a, datum/uplink_item/b)
return b.cost(INFINITY) - a.cost(INFINITY)
/proc/cmp_access(datum/access/a, datum/access/b)
return sorttext("[b.access_type][b.desc]", "[a.access_type][a.desc]")
/proc/cmp_player_setup_group(datum/category_group/player_setup_category/a, datum/category_group/player_setup_category/b)
return a.sort_order - b.sort_order
/proc/cmp_cardstate(datum/card_state/a, datum/card_state/b)
return sorttext(b.name, a.name)
/proc/cmp_uplink_category(datum/uplink_category/a, datum/uplink_category/b)
return sorttext(b.name, a.name)
/proc/cmp_admin_secret(datum/admin_secret_item/a, datum/admin_secret_item/b)
return sorttext(b.name, a.name)
/proc/cmp_supply_drop(datum/supply_drop_loot/a, datum/supply_drop_loot/b)
return sorttext(b.name, a.name)
/proc/cmp_rcon_smes(obj/machinery/power/smes/buildable/S1, obj/machinery/power/smes/buildable/S2)
return sorttext(S2.RCon_tag, S1.RCon_tag)
/proc/cmp_rcon_bbox(obj/machinery/power/breakerbox/BR1, obj/machinery/power/breakerbox/BR2)
return sorttext(BR2.RCon_tag, BR1.RCon_tag)
/proc/cmp_surgery(datum/surgery_step/a, datum/surgery_step/b)
return b.priority - a.priority
/proc/cmp_recipe_complexity_dsc(datum/recipe/A, datum/recipe/B)
var/a_score = LAZYLEN(A.items) + LAZYLEN(A.reagents) + LAZYLEN(A.fruit)
var/b_score = LAZYLEN(B.items) + LAZYLEN(B.reagents) + LAZYLEN(B.fruit)
return b_score - a_score
/proc/cmp_pda(obj/item/device/pda/A, obj/item/device/pda/B)
return sorttext(B.owner, A.owner)
/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