mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-16 20:52:33 +00:00
Done using this command sed -Ei 's/(\s*\S+)\s*\t+/\1 /g' code/**/*.dm We have countless examples in the codebase with this style gone wrong, and defines and such being on hideously different levels of indentation. Fixing this to keep the alignment involves tainting the blames of code your PR doesn't need to be touching at all. And ultimately, it's hideous. There are some files that this sed makes uglier. I can fix these when they are pointed out, but I believe this is ultimately for the greater good of readability. I'm more concerned with if any strings relied on this. Hi codeowners! Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
68 lines
2.8 KiB
Plaintext
68 lines
2.8 KiB
Plaintext
#define EXP_ASSIGN_WAYFINDER 1200
|
|
//Used to process and handle roundstart quirks
|
|
// - Quirk strings are used for faster checking in code
|
|
// - Quirk datums are stored and hold different effects, as well as being a vector for applying trait string
|
|
PROCESSING_SUBSYSTEM_DEF(quirks)
|
|
name = "Quirks"
|
|
init_order = INIT_ORDER_QUIRKS
|
|
flags = SS_BACKGROUND
|
|
runlevels = RUNLEVEL_GAME
|
|
wait = 1 SECONDS
|
|
|
|
var/list/quirks = list() //Assoc. list of all roundstart quirk datum types; "name" = /path/
|
|
var/list/quirk_points = list() //Assoc. list of quirk names and their "point cost"; positive numbers are good traits, and negative ones are bad
|
|
var/list/quirk_objects = list() //A list of all quirk objects in the game, since some may process
|
|
var/list/quirk_blacklist = list() //A list of quirks that can not be used with each other. Format: list(quirk1,quirk2),list(quirk3,quirk4)
|
|
///An assoc list of quirks that can be obtained as a hardcore character, and their hardcore value.
|
|
var/list/hardcore_quirks = list()
|
|
|
|
/datum/controller/subsystem/processing/quirks/Initialize(timeofday)
|
|
if(!quirks.len)
|
|
SetupQuirks()
|
|
|
|
quirk_blacklist = list(list("Blind","Nearsighted"), \
|
|
list("Jolly","Depression","Apathetic","Hypersensitive"), \
|
|
list("Ageusia","Vegetarian","Deviant Tastes"), \
|
|
list("Ananas Affinity","Ananas Aversion"), \
|
|
list("Alcohol Tolerance","Light Drinker"), \
|
|
list("Clown Fan","Mime Fan"), \
|
|
list("Bad Touch", "Friendly"), \
|
|
list("Extrovert", "Introvert"))
|
|
return ..()
|
|
|
|
/datum/controller/subsystem/processing/quirks/proc/SetupQuirks()
|
|
// Sort by Positive, Negative, Neutral; and then by name
|
|
var/list/quirk_list = sortList(subtypesof(/datum/quirk), /proc/cmp_quirk_asc)
|
|
|
|
for(var/V in quirk_list)
|
|
var/datum/quirk/T = V
|
|
quirks[initial(T.name)] = T
|
|
quirk_points[initial(T.name)] = initial(T.value)
|
|
|
|
var/hardcore_value = initial(T.hardcore_value)
|
|
|
|
if(!hardcore_value)
|
|
continue
|
|
hardcore_quirks[T] += hardcore_value
|
|
|
|
/datum/controller/subsystem/processing/quirks/proc/AssignQuirks(mob/living/user, client/cli, spawn_effects)
|
|
var/badquirk = FALSE
|
|
for(var/V in cli.prefs.all_quirks)
|
|
var/datum/quirk/Q = quirks[V]
|
|
if(Q)
|
|
user.add_quirk(Q, spawn_effects)
|
|
else
|
|
stack_trace("Invalid quirk \"[V]\" in client [cli.ckey] preferences")
|
|
cli.prefs.all_quirks -= V
|
|
badquirk = TRUE
|
|
if(badquirk)
|
|
cli.prefs.save_character()
|
|
|
|
if(ishuman(user))
|
|
var/mob/living/carbon/human/human = user
|
|
human.hardcore_survival_score = cli.prefs.hardcore_survival_score //Only do this if we actually asign quirks, to prevent sillicons etc from getting the points.
|
|
|
|
// Assign wayfinding pinpointer granting quirk if they're new
|
|
if(cli.get_exp_living(TRUE) < EXP_ASSIGN_WAYFINDER && !user.has_quirk(/datum/quirk/needswayfinder))
|
|
user.add_quirk(/datum/quirk/needswayfinder, TRUE)
|