forked from Bubberstation/Bubberstation
-
Notifications
You must be signed in to change notification settings - Fork 13
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
21 changed files
with
526 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,11 @@ | ||
///arachnid organ slots | ||
//sex | ||
#define ORGAN_SLOT_BUTT "butt" | ||
#define ORGAN_SLOT_BELLY "belly" | ||
//arachnid organ slots | ||
#define ORGAN_SLOT_EXTERNAL_MANDIBLES "mandibles" | ||
#define ORGAN_SLOT_EXTERNAL_SPINNERET "spinneret" | ||
#define ORGAN_SLOT_EXTERNAL_SPIDER_LEGS "spider_legs" | ||
|
||
|
||
#define BUTT_MIN_SIZE 1 | ||
#define BUTT_MAX_SIZE 8 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
161 changes: 161 additions & 0 deletions
161
modular_zzplurt/code/modules/client/preferences/genitals.dm
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,161 @@ | ||
//butt | ||
/datum/preference/choiced/genital/butt | ||
savefile_key = "feature_butt" | ||
relevant_mutant_bodypart = ORGAN_SLOT_BUTT | ||
default_accessory_type = /datum/sprite_accessory/genital/butt/none | ||
|
||
/datum/preference/toggle/genital_skin_tone/butt | ||
savefile_key = "butt_skin_tone" | ||
relevant_mutant_bodypart = ORGAN_SLOT_BUTT | ||
genital_pref_type = /datum/preference/choiced/genital/butt | ||
|
||
/datum/preference/toggle/genital_skin_tone/butt/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences) | ||
target.dna.features["butt_uses_skintones"] = value | ||
|
||
/datum/preference/toggle/genital_skin_color/butt | ||
savefile_key = "butt_skin_color" | ||
relevant_mutant_bodypart = ORGAN_SLOT_BUTT | ||
genital_pref_type = /datum/preference/choiced/genital/butt | ||
|
||
/datum/preference/toggle/genital_skin_color/butt/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences) | ||
if(!..()) // Don't apply it if it failed the check in the parent. | ||
value = FALSE | ||
|
||
target.dna.features["butt_uses_skincolor"] = value | ||
|
||
/datum/preference/numeric/butt_size | ||
category = PREFERENCE_CATEGORY_SECONDARY_FEATURES | ||
savefile_identifier = PREFERENCE_CHARACTER | ||
savefile_key = "butt_size" | ||
relevant_mutant_bodypart = ORGAN_SLOT_BUTT | ||
minimum = BUTT_MIN_SIZE | ||
maximum = BUTT_MAX_SIZE | ||
|
||
/datum/preference/numeric/butt_size/is_accessible(datum/preferences/preferences) | ||
var/passed_initial_check = ..(preferences) | ||
var/allowed = preferences.read_preference(/datum/preference/toggle/allow_mismatched_parts) | ||
var/erp_allowed = preferences.read_preference(/datum/preference/toggle/master_erp_preferences) && preferences.read_preference(/datum/preference/toggle/allow_genitals) | ||
var/part_enabled = is_factual_sprite_accessory(relevant_mutant_bodypart, preferences.read_preference(/datum/preference/choiced/genital/butt)) | ||
return erp_allowed && part_enabled && (passed_initial_check || allowed) | ||
|
||
/datum/preference/numeric/butt_size/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences) | ||
target.dna.features["butt_size"] = value | ||
|
||
/datum/preference/numeric/butt_size/create_default_value() | ||
return BUTT_MIN_SIZE | ||
|
||
/datum/preference/tri_color/genital/butt | ||
savefile_key = "butt_color" | ||
relevant_mutant_bodypart = ORGAN_SLOT_BUTT | ||
type_to_check = /datum/preference/choiced/genital/butt | ||
skin_color_type = /datum/preference/toggle/genital_skin_color/butt | ||
|
||
/datum/preference/tri_bool/genital/butt | ||
savefile_key = "butt_emissive" | ||
relevant_mutant_bodypart = ORGAN_SLOT_BUTT | ||
type_to_check = /datum/preference/choiced/genital/butt | ||
skin_color_type = /datum/preference/toggle/genital_skin_color/butt | ||
|
||
|
||
|
||
//butthole | ||
/datum/preference/choiced/genital/anus | ||
savefile_key = "feature_anus" | ||
relevant_mutant_bodypart = ORGAN_SLOT_ANUS | ||
default_accessory_type = /datum/sprite_accessory/genital/anus/none | ||
|
||
/datum/preference/choiced/genital/anus/is_accessible(datum/preferences/preferences) | ||
return ..() && preferences.read_preference(/datum/preference/choiced/genital/butt) != "None" | ||
|
||
/datum/preference/toggle/genital_skin_tone/anus | ||
savefile_key = "anus_skin_tone" | ||
relevant_mutant_bodypart = ORGAN_SLOT_ANUS | ||
genital_pref_type = /datum/preference/choiced/genital/anus | ||
|
||
/datum/preference/toggle/genital_skin_tone/anus/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences) | ||
target.dna.features["anus_uses_skintones"] = value | ||
|
||
/datum/preference/toggle/genital_skin_color/anus | ||
savefile_key = "anus_skin_color" | ||
relevant_mutant_bodypart = ORGAN_SLOT_ANUS | ||
genital_pref_type = /datum/preference/choiced/genital/anus | ||
|
||
/datum/preference/toggle/genital_skin_color/anus/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences) | ||
if(!..()) // Don't apply it if it failed the check in the parent. | ||
value = FALSE | ||
|
||
target.dna.features["anus_uses_skincolor"] = value | ||
|
||
|
||
/datum/preference/tri_color/genital/anus | ||
savefile_key = "anus_color" | ||
relevant_mutant_bodypart = ORGAN_SLOT_ANUS | ||
type_to_check = /datum/preference/choiced/genital/anus | ||
skin_color_type = /datum/preference/toggle/genital_skin_color/anus | ||
|
||
/datum/preference/tri_bool/genital/anus | ||
savefile_key = "anus_emissive" | ||
relevant_mutant_bodypart = ORGAN_SLOT_ANUS | ||
type_to_check = /datum/preference/choiced/genital/anus | ||
skin_color_type = /datum/preference/toggle/genital_skin_color/anus | ||
|
||
|
||
//belly | ||
/datum/preference/choiced/genital/belly | ||
savefile_key = "feature_belly" | ||
relevant_mutant_bodypart = ORGAN_SLOT_BELLY | ||
default_accessory_type = /datum/sprite_accessory/genital/belly/none | ||
|
||
/datum/preference/numeric/belly_size | ||
category = PREFERENCE_CATEGORY_SECONDARY_FEATURES | ||
savefile_identifier = PREFERENCE_CHARACTER | ||
savefile_key = "belly_size" | ||
relevant_mutant_bodypart = ORGAN_SLOT_BELLY | ||
minimum = 1 | ||
maximum = 10 | ||
|
||
/datum/preference/numeric/belly_size/create_default_value() | ||
return 1 | ||
|
||
/datum/preference/numeric/belly_size/is_accessible(datum/preferences/preferences) | ||
var/passed_initial_check = ..(preferences) | ||
var/allowed = preferences.read_preference(/datum/preference/toggle/allow_mismatched_parts) | ||
var/erp_allowed = preferences.read_preference(/datum/preference/toggle/master_erp_preferences) && preferences.read_preference(/datum/preference/toggle/allow_genitals) | ||
var/part_enabled = is_factual_sprite_accessory(relevant_mutant_bodypart, preferences.read_preference(/datum/preference/choiced/genital/belly)) | ||
return erp_allowed && part_enabled && (passed_initial_check || allowed) | ||
|
||
/datum/preference/numeric/belly_size/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences) | ||
target.dna.features["belly_size"] = value | ||
|
||
|
||
/datum/preference/toggle/genital_skin_tone/belly | ||
savefile_key = "belly_skin_tone" | ||
relevant_mutant_bodypart = ORGAN_SLOT_BELLY | ||
genital_pref_type = /datum/preference/choiced/genital/belly | ||
|
||
/datum/preference/toggle/genital_skin_tone/belly/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences) | ||
target.dna.features["belly_uses_skintones"] = value | ||
|
||
/datum/preference/toggle/genital_skin_color/belly | ||
savefile_key = "belly_skin_color" | ||
relevant_mutant_bodypart = ORGAN_SLOT_BELLY | ||
genital_pref_type = /datum/preference/choiced/genital/belly | ||
|
||
/datum/preference/toggle/genital_skin_color/belly/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences) | ||
if(!..()) // Don't apply it if it failed the check in the parent. | ||
value = FALSE | ||
|
||
target.dna.features["belly_uses_skincolor"] = value | ||
|
||
|
||
/datum/preference/tri_color/genital/belly | ||
savefile_key = "belly_color" | ||
relevant_mutant_bodypart = ORGAN_SLOT_BELLY | ||
type_to_check = /datum/preference/choiced/genital/belly | ||
skin_color_type = /datum/preference/toggle/genital_skin_color/belly | ||
|
||
/datum/preference/tri_bool/genital/belly | ||
savefile_key = "belly_emissive" | ||
relevant_mutant_bodypart = ORGAN_SLOT_BELLY | ||
type_to_check = /datum/preference/choiced/genital/belly | ||
skin_color_type = /datum/preference/toggle/genital_skin_color/belly |
73 changes: 73 additions & 0 deletions
73
modular_zzplurt/code/modules/sprite_accessories/genitals.dm
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
/datum/sprite_accessory/genital/penis | ||
icon = 'modular_zzplurt/icons/mob/human/genitals/penis.dmi' | ||
|
||
/datum/sprite_accessory/genital/testicles | ||
icon = 'modular_zzplurt/icons/mob/human/genitals/testicles.dmi' | ||
|
||
/datum/sprite_accessory/genital/vagina | ||
icon = 'modular_zzplurt/icons/mob/human/genitals/vagina.dmi' | ||
|
||
/datum/sprite_accessory/genital/breasts | ||
icon = 'modular_zzplurt/icons/mob/human/genitals/breasts.dmi' | ||
|
||
/datum/sprite_accessory/genital/butt | ||
icon = 'modular_zzplurt/icons/mob/human/genitals/butt.dmi' | ||
organ_type = /obj/item/organ/external/genital/butt | ||
associated_organ_slot = ORGAN_SLOT_BUTT | ||
key = ORGAN_SLOT_BUTT | ||
color_src = USE_MATRIXED_COLORS | ||
always_color_customizable = TRUE | ||
relevent_layers = list(BODY_ADJ_LAYER) | ||
genetic = TRUE | ||
|
||
|
||
/datum/sprite_accessory/genital/butt/none | ||
icon_state = "none" | ||
name = SPRITE_ACCESSORY_NONE | ||
factual = FALSE | ||
color_src = null | ||
|
||
/datum/sprite_accessory/genital/butt/pair | ||
icon_state = "pair" | ||
name = "Pair" | ||
|
||
|
||
|
||
/datum/sprite_accessory/genital/anus | ||
icon = 'modular_zzplurt/icons/mob/human/genitals/anus.dmi' | ||
organ_type = /obj/item/organ/external/genital/anus | ||
associated_organ_slot = ORGAN_SLOT_BUTT // :3 | ||
key = ORGAN_SLOT_ANUS | ||
color_src = USE_MATRIXED_COLORS | ||
always_color_customizable = TRUE | ||
relevent_layers = list(BODY_FRONT_LAYER) | ||
genetic = TRUE | ||
|
||
/datum/sprite_accessory/genital/anus/normal | ||
icon_state = "donut" | ||
color_src = USE_MATRIXED_COLORS | ||
name = "Donut" | ||
|
||
/datum/sprite_accessory/genital/anus/squished | ||
icon_state = "squished" | ||
name = "Squished" | ||
color_src = USE_MATRIXED_COLORS | ||
|
||
|
||
/datum/sprite_accessory/genital/belly | ||
icon = 'modular_zzplurt/icons/mob/human/genitals/belly.dmi' | ||
organ_type = /obj/item/organ/external/genital/belly | ||
associated_organ_slot = ORGAN_SLOT_BELLY | ||
key = ORGAN_SLOT_BELLY | ||
genetic = TRUE | ||
|
||
/datum/sprite_accessory/genital/belly/none | ||
icon_state = "none" | ||
name = SPRITE_ACCESSORY_NONE | ||
factual = FALSE | ||
color_src = null | ||
|
||
/datum/sprite_accessory/genital/belly/normal | ||
icon_state = "pair" //???? | ||
name = "Belly" | ||
color_src = null |
18 changes: 18 additions & 0 deletions
18
modular_zzplurt/code/modules/surgery/organs/genitals/anus.dm
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
/obj/item/organ/external/genital/anus/get_description_string(datum/sprite_accessory/genital/gas) | ||
var/u_His = owner?.p_their() || "their" | ||
|
||
desc = "You see [u_His] squishy [lowertext(gas.icon_state)] pucker parting [u_His] asscheeks" | ||
|
||
/obj/item/organ/external/genital/anus/get_sprite_size_string() | ||
. = "[genital_type]_[floor(genital_size)]" | ||
if(uses_skintones) | ||
. += "_s" | ||
|
||
/obj/item/organ/external/genital/anus/build_from_dna(datum/dna/DNA, associated_key) | ||
set_size(DNA.features["butt_size"]) // yes | ||
uses_skin_color = DNA.features["anus_uses_skincolor"] | ||
|
||
return ..() | ||
|
||
/datum/bodypart_overlay/mutant/genital/anus | ||
layers = EXTERNAL_FRONT |
Oops, something went wrong.