mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-09 23:27:56 +01:00
15ed8137da
Quirks can now define if they're "species appropriate," where the base proc's behavior is simply "does this species already have the quirk's main trait" I am unsure if that on its own imposes any new restrictions, currently. Additionally, blood deficiency cannot be picked on any species without blood or that doesn't breathe. I'm sure there's more that might make sense, I'm open to suggestions Alternative to #90238 Currently, reduces the possibility of taking something like blood deficiency on a race which suffers no downside from it in order to get free positive quirks. Future-ly, potentially allows quirks exclusive to only a select few species as offered by #90238 🆑 fix: Species without blood can no longer be blood deficient /🆑
65 lines
2.2 KiB
Plaintext
65 lines
2.2 KiB
Plaintext
/// Preference middleware is code that helps to decentralize complicated preference features.
|
|
/datum/preference_middleware
|
|
/// The preferences datum
|
|
var/datum/preferences/preferences
|
|
|
|
/// The key that will be used for get_constant_data().
|
|
/// If null, will use the typepath minus /datum/preference_middleware.
|
|
var/key = null
|
|
|
|
/// Map of ui_act actions -> proc paths to call.
|
|
/// Signature is `(list/params, mob/user) -> TRUE/FALSE.
|
|
/// Return output is the same as ui_act--TRUE if it should update, FALSE if it should not
|
|
var/list/action_delegations = list()
|
|
|
|
/datum/preference_middleware/New(datum/preferences)
|
|
src.preferences = preferences
|
|
|
|
if (isnull(key))
|
|
// + 2 coming from the off-by-one of copytext, and then another from the slash
|
|
key = copytext("[type]", length("[parent_type]") + 2)
|
|
|
|
/datum/preference_middleware/Destroy()
|
|
preferences = null
|
|
return ..()
|
|
|
|
/// Append all of these into ui_data
|
|
/datum/preference_middleware/proc/get_ui_data(mob/user)
|
|
return list()
|
|
|
|
/// Append all of these into ui_static_data
|
|
/datum/preference_middleware/proc/get_ui_static_data(mob/user)
|
|
return list()
|
|
|
|
/// Append all of these into ui_assets
|
|
/datum/preference_middleware/proc/get_ui_assets()
|
|
return list()
|
|
|
|
/// Append all of these into /datum/asset/json/preferences.
|
|
/datum/preference_middleware/proc/get_constant_data()
|
|
return null
|
|
|
|
/// Merge this into the result of compile_character_preferences.
|
|
/datum/preference_middleware/proc/get_character_preferences(mob/user)
|
|
return null
|
|
|
|
/// Called every set_preference, returns TRUE if this handled it.
|
|
/datum/preference_middleware/proc/pre_set_preference(mob/user, preference, value)
|
|
return FALSE
|
|
|
|
/// Called when a character is changed.
|
|
/datum/preference_middleware/proc/on_new_character(mob/user)
|
|
return
|
|
|
|
// SKYRAT EDIT
|
|
/// Called after every update_preference, returns TRUE if this handled it.
|
|
/datum/preference_middleware/proc/post_set_preference(mob/user, preference, value)
|
|
return
|
|
|
|
/// Called when applying preferences to the mob.
|
|
/datum/preference_middleware/proc/apply_to_human(mob/living/carbon/human/target, datum/preferences/preferences, visuals_only = FALSE) //SKYRAT EDIT CHANGE
|
|
SHOULD_NOT_SLEEP(TRUE)
|
|
SHOULD_CALL_PARENT(FALSE)
|
|
return
|
|
//SKYRAT EDIT END
|