* Weeeeew

* Update interaction_datum.dm
This commit is contained in:
Gandalf
2022-02-08 02:20:58 +00:00
committed by GitHub
parent b533d245aa
commit f9ce2beba2
4 changed files with 45 additions and 1 deletions
@@ -196,3 +196,33 @@
/datum/preference/choiced/erp_status_mechanics/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences)
return FALSE
/datum/preference/choiced/erp_sexuality
category = PREFERENCE_CATEGORY_GAME_PREFERENCES
savefile_identifier = PREFERENCE_PLAYER
savefile_key = "erp_sexuality_pref"
/datum/preference/choiced/erp_sexuality/init_possible_values()
return list("Gay", "Straight", "None") // For simplicity's sake we only have 3 options.
/datum/preference/choiced/erp_sexuality/create_default_value()
return "None"
/datum/preference/choiced/erp_sexuality/is_accessible(datum/preferences/preferences)
if (!..(preferences))
return FALSE
if(CONFIG_GET(flag/disable_erp_preferences))
return FALSE
return preferences.read_preference(/datum/preference/toggle/master_erp_preferences)
/datum/preference/choiced/erp_sexuality/deserialize(input, datum/preferences/preferences)
if(CONFIG_GET(flag/disable_erp_preferences))
return "None"
if(!preferences.read_preference(/datum/preference/toggle/master_erp_preferences))
return "None"
. = ..()
/datum/preference/choiced/erp_sexuality/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences)
return FALSE
@@ -25,6 +25,8 @@
var/datum/interaction/interaction = GLOB.interaction_instances[iterating_interaction_id]
if(interaction.lewd && !self.client?.prefs?.read_preference(/datum/preference/toggle/erp))
continue
if(interaction.sexuality != "None" && interaction.sexuality != self.client?.prefs?.read_preference(/datum/preference/choiced/erp_sexuality))
continue
interactions.Add(interaction)
/datum/component/interactable/RegisterWithParent()
@@ -48,6 +48,8 @@ GLOBAL_LIST_EMPTY_TYPED(interaction_instances, /datum/interaction)
var/list/interaction_requires = list()
/// What color should the interaction button be?
var/color = "blue"
/// What sexuality preference do we display for.
var/sexuality = "None"
/datum/interaction/proc/allow_act(mob/living/carbon/human/user, mob/living/carbon/human/target)
if(target == user && usage == INTERACTION_OTHER)
@@ -155,6 +157,7 @@ GLOBAL_LIST_EMPTY_TYPED(interaction_instances, /datum/interaction)
target_pleasure = sanitize_integer(json["target_pleasure"], 0, 100, 0)
target_pain = sanitize_integer(json["target_pain"], 0, 100, 0)
lewd = sanitize_integer(json["lewd"], 0, 1, 0)
sexuality = sanitize_text(json["sexuality"])
return TRUE
/datum/interaction/proc/json_save(path)
@@ -184,6 +187,7 @@ GLOBAL_LIST_EMPTY_TYPED(interaction_instances, /datum/interaction)
"target_pleasure" = target_pleasure,
"target_pain" = target_pain,
"lewd" = lewd,
"sexuality" = sexuality,
)
var/file = file(fpath)
WRITE_FILE(file, json_encode(json))
@@ -253,6 +257,7 @@ GLOBAL_LIST_EMPTY_TYPED(interaction_instances, /datum/interaction)
interaction.target_pleasure = sanitize_integer(ijson["target_pleasure"], 0, 100, 0)
interaction.target_pain = sanitize_integer(ijson["target_pain"], 0, 100, 0)
interaction.lewd = sanitize_integer(ijson["lewd"], 0, 1, 0)
interaction.sexuality = sanitize_text(ijson["sexuality"])
GLOB.interaction_instances[iname] = interaction
@@ -1,4 +1,4 @@
import { CheckboxInput, FeatureToggle } from "../../base";
import { CheckboxInput, FeatureDropdownInput, FeatureChoiced, FeatureToggle } from "../../base";
export const master_erp_pref: FeatureToggle = {
name: "Show/Hide Erotic Roleplay Preferences",
@@ -76,3 +76,10 @@ export const autocum_pref: FeatureToggle = {
description: "Toggles whether you automatically cum using the arousal system, or if you need to do it manually.",
component: CheckboxInput,
};
export const erp_sexuality_pref: FeatureChoiced = {
name: "Sexuality Preference",
category: "ERP",
description: "Determines what sexual content you see, limited use. None will show all content.",
component: FeatureDropdownInput,
};