Skip to content

Commit

Permalink
Fix the PP! (#92)
Browse files Browse the repository at this point in the history
* PP Init

* FinalFixesPossibly

* ThickyPeePee

* PP organ Thick
  • Loading branch information
Lynx22330 authored Nov 30, 2024
1 parent 00dc8b9 commit 6869dfd
Show file tree
Hide file tree
Showing 15 changed files with 63 additions and 30 deletions.
4 changes: 3 additions & 1 deletion code/__DEFINES/DNA.dm
Original file line number Diff line number Diff line change
Expand Up @@ -165,14 +165,16 @@
#define PENIS_TYPE_BARBED 7
#define PENIS_TYPE_BARBED_KNOTTED 8
#define PENIS_TYPE_TENTACLE 9
#define PENIS_TYPE_THICK 10

#define SHEATH_TYPE_NONE 0
#define SHEATH_TYPE_NORMAL 1
#define SHEATH_TYPE_SLIT 2

#define ERECT_STATE_NONE 0
#define ERECT_STATE_PARTIAL 1
#define ERECT_STATE_HARD 2
#define ERECT_STATE_STIFF 2
#define ERECT_STATE_HARD 3

#define MIN_TESTICLES_SIZE 1
#define MAX_TESTICLES_SIZE 5
Expand Down
10 changes: 5 additions & 5 deletions code/__DEFINES/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,11 @@
#define HANDS_LAYER 11
#define HANDCUFF_LAYER 10
#define LEGCUFF_LAYER 9
#define BODY_FRONT_LAYER 8
#define BODY_FRONT_FRONT_LAYER 7
#define BODY_FRONT_FRONT_FRONT_LAYER 6
#define BODY_FFFFRONT_LAYER 5
#define BODY_FFFFFRONT_LAYER 4
#define BODY_FRONT_LAYER 8 //I hate genital code and .dmi bullshittery. 5 layers to accomodate for such.
#define BODY_FRONT_SECOND_LAYER 7
#define BODY_FRONT_THIRD_LAYER 6
#define BODY_FRONT_FOURTH_LAYER 5
#define BODY_FRONT_FIFTH_LAYER 4
#define HALO_LAYER 3 //blood cult ascended halo, because there's currently no better solution for adding/removing
#define FIRE_LAYER 2 //If you're on fire
#define TURF_LAYER 1 //If you're on fire
Expand Down
2 changes: 1 addition & 1 deletion code/datums/mob_descriptors/descriptors/other.dm
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@
if(penis.erect_state != ERECT_STATE_HARD && penis.sheath_type != SHEATH_TYPE_NONE)
switch(penis.sheath_type)
if(SHEATH_TYPE_NORMAL)
if(penis.penis_size == 3)
if(penis.penis_size >= 3)
used_name = "a fat sheath"
else
used_name = "a sheath"
Expand Down
15 changes: 11 additions & 4 deletions code/modules/client/customizer/customizers/organ/genitals.dm
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@
/datum/customizer_choice/organ/penis/barbed,
/datum/customizer_choice/organ/penis/barbed_knotted,
/datum/customizer_choice/organ/penis/tentacle,
/datum/customizer_choice/organ/penis/thick,
)

/datum/customizer/organ/penis/canine
Expand All @@ -82,6 +83,7 @@
/datum/customizer_choice/organ/penis/tapered,
/datum/customizer_choice/organ/penis/tapered_double,
/datum/customizer_choice/organ/penis/tapered_double_knot,
/datum/customizer_choice/organ/penis/thick,
)

/datum/customizer/organ/penis/equine
Expand All @@ -105,10 +107,7 @@
/datum/customizer_choice/organ/penis/knotted
name = "Knotted Penis"
organ_type = /obj/item/organ/penis/knotted
sprite_accessories = list(
/datum/sprite_accessory/penis/knotted,
/datum/sprite_accessory/penis/knotted2,
)
sprite_accessories = list(/datum/sprite_accessory/penis/knotted)

/datum/customizer_choice/organ/penis/equine
name = "Equine Penis"
Expand All @@ -117,6 +116,14 @@
/datum/sprite_accessory/penis/flared,
)


/datum/customizer_choice/organ/penis/thick
name = "Thick Penis"
organ_type = /obj/item/organ/penis/thick
sprite_accessories = list(
/datum/sprite_accessory/penis/thick,
)

/datum/customizer_choice/organ/penis/tapered_mammal
name = "Tapered Penis (Mammal)"
organ_type = /obj/item/organ/penis/tapered_mammal
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -177,11 +177,13 @@
return "ADJ"
if(BODY_FRONT_LAYER)
return "FRONT"
if(BODY_FRONT_FRONT_LAYER)
if(BODY_FRONT_SECOND_LAYER)
return "FRONT"
if(BODY_FFFFRONT_LAYER)
if(BODY_FRONT_THIRD_LAYER)
return "FRONT"
if(BODY_FFFFFRONT_LAYER)
if(BODY_FRONT_FOURTH_LAYER)
return "FRONT"
if(BODY_FRONT_FIFTH_LAYER)
return "FRONT"
if(BODY_UNDER_LAYER)
return "UNDER"
Expand Down
31 changes: 23 additions & 8 deletions code/modules/mob/dead/new_player/sprite_accessory/genitals.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
icon = 'icons/mob/sprite_accessory/genitals/penis.dmi'
color_keys = 2
color_key_names = list("Member", "Skin")
relevant_layers = list(BODY_BEHIND_LAYER,BODY_FRONT_FRONT_FRONT_LAYER)
relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_SECOND_LAYER)

/datum/sprite_accessory/penis/adjust_appearance_list(list/appearance_list, obj/item/organ/organ, obj/item/bodypart/bodypart, mob/living/carbon/owner)
generic_gender_feature_adjust(appearance_list, organ, bodypart, owner, OFFSET_BELT, OFFSET_BELT_F)
Expand All @@ -21,10 +21,19 @@
return "slit_1"
else
return "slit_2"

if(pp.erect_state == ERECT_STATE_HARD)
return "[icon_state]_[min(3,pp.penis_size+1)]"
return "penis_[icon_state]_[max(1, min(5, pp.penis_size))]_1"
if(pp.erect_state == ERECT_STATE_STIFF)
return "penis_[icon_state]_[max(1, min(5, pp.penis_size-1))]_1"

//Normal penis check for those without a sheath, just hang flaccid with -1 size.
else if(pp.sheath_type == SHEATH_TYPE_NONE && pp.erect_state == ERECT_STATE_NONE)
return "penis_[icon_state]_[max(1, min(5, pp.penis_size-1))]_0"

//Penis should no longer be aroused, and is hidden, transitions with sheath states as well.
else
return "[icon_state]_[pp.penis_size]"
return "blank"

/datum/sprite_accessory/penis/is_visible(obj/item/organ/organ, obj/item/bodypart/bodypart, mob/living/carbon/owner)
if(owner.underwear)
Expand All @@ -42,11 +51,17 @@
color_key_defaults = list(null, KEY_CHEST_COLOR)
default_colors = list("C52828", null)

/datum/sprite_accessory/penis/knotted2
/datum/sprite_accessory/penis/thick
icon_state = "thick"
name = "Thick"
color_key_defaults = list(null, KEY_CHEST_COLOR)
default_colors = list("C52828", null)

/* /datum/sprite_accessory/penis/knotted2
name = "Knotted 2"
icon_state = "knotted2"
color_key_defaults = list(null, KEY_CHEST_COLOR)
default_colors = list("C52828", null)
default_colors = list("C52828", null) */ //We won't miss this right?

/datum/sprite_accessory/penis/flared
icon_state = "flared"
Expand Down Expand Up @@ -88,7 +103,7 @@
/datum/sprite_accessory/testicles
icon = 'icons/mob/sprite_accessory/genitals/testicles.dmi'
color_key_name = "Sack"
relevant_layers = list(BODY_BEHIND_LAYER,BODY_FRONT_FRONT_LAYER)
relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_SECOND_LAYER)

/datum/sprite_accessory/testicles/adjust_appearance_list(list/appearance_list, obj/item/organ/organ, obj/item/bodypart/bodypart, mob/living/carbon/owner)
generic_gender_feature_adjust(appearance_list, organ, bodypart, owner, OFFSET_BELT, OFFSET_BELT_F)
Expand All @@ -113,7 +128,7 @@
/datum/sprite_accessory/breasts
icon = 'icons/mob/sprite_accessory/genitals/breasts.dmi'
color_key_name = "Breasts"
relevant_layers = list(BODY_BEHIND_LAYER,BODY_FFFFFRONT_LAYER)
relevant_layers = list(BODY_BEHIND_LAYER,BODY_FRONT_FIFTH_LAYER)

/datum/sprite_accessory/breasts/get_icon_state(obj/item/organ/organ, obj/item/bodypart/bodypart, mob/living/carbon/owner)
var/obj/item/organ/breasts/badonkers = organ
Expand Down Expand Up @@ -193,7 +208,7 @@
/datum/sprite_accessory/belly
icon = 'icons/mob/sprite_accessory/genitals/belly.dmi'
color_key_name = "Belly"
relevant_layers = list(BODY_BEHIND_LAYER, BODY_FFFFRONT_LAYER)
relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_FOURTH_LAYER)

/datum/sprite_accessory/belly/get_icon_state(obj/item/organ/organ, obj/item/bodypart/bodypart, mob/living/carbon/owner)
var/obj/item/organ/belly/belleh = organ
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@
//TAUR BULLSHIT MARKINGS AAAAAAAAAAAA

/datum/sprite_accessory/tail_feature/taur
relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_FRONT_LAYER, BODY_ADJ_LAYER)
relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_SECOND_LAYER, BODY_ADJ_LAYER)

/datum/sprite_accessory/tail_feature/taur/adjust_appearance_list(list/appearance_list, obj/item/organ/organ, obj/item/bodypart/bodypart, mob/living/carbon/owner)
generic_gender_feature_adjust(appearance_list, organ, bodypart, owner, OFFSET_TAUR, OFFSET_TAUR_F)
Expand Down
6 changes: 3 additions & 3 deletions code/modules/mob/dead/new_player/sprite_accessory/tails.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
abstract_type = /datum/sprite_accessory/tail
icon = 'icons/mob/sprite_accessory/tails/tails.dmi'
color_key_name = "Tail"
relevant_layers = list(BODY_FRONT_FRONT_LAYER, BODY_BEHIND_LAYER)
relevant_layers = list(BODY_FRONT_SECOND_LAYER, BODY_BEHIND_LAYER)
var/can_wag = FALSE

/datum/sprite_accessory/tail/is_visible(obj/item/organ/organ, obj/item/bodypart/bodypart, mob/living/carbon/owner)
Expand Down Expand Up @@ -31,7 +31,7 @@
/datum/sprite_accessory/tail/cat
name = "Cat"
icon_state = "cat"
relevant_layers = list(BODY_FRONT_FRONT_LAYER)
relevant_layers = list(BODY_FRONT_SECOND_LAYER)
can_wag = TRUE

/datum/sprite_accessory/tail/monkey
Expand Down Expand Up @@ -353,7 +353,7 @@

//TAUR BULLSHIT HELP
/datum/sprite_accessory/tail/taur
relevant_layers = list(BODY_FRONT_FRONT_LAYER, BODY_BEHIND_LAYER)
relevant_layers = list(BODY_FRONT_SECOND_LAYER, BODY_BEHIND_LAYER)

/datum/sprite_accessory/tail/taur/snake
name = "Snake Taur"
Expand Down
2 changes: 1 addition & 1 deletion code/modules/mob/living/carbon/human/species.dm
Original file line number Diff line number Diff line change
Expand Up @@ -553,7 +553,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
return "ADJ"
if(BODY_FRONT_LAYER)
return "FRONT"
if(BODY_FRONT_FRONT_LAYER)
if(BODY_FRONT_SECOND_LAYER)
return "FFRONT"
if(BODY_UNDER_LAYER)
return "UNDER"
Expand Down
13 changes: 10 additions & 3 deletions code/modules/surgery/organs/feature_organs/genitals.dm
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,13 @@
var/new_state = ERECT_STATE_NONE
if(owner)
var/mob/living/carbon/human/human = owner
if(human.sexcon.arousal > 20)
if(human.sexcon.arousal >= 20)
new_state = ERECT_STATE_HARD
else if(human.sexcon.arousal > 10)
else if(human.sexcon.arousal >= 10 && human.sexcon.arousal <= 20)
new_state = ERECT_STATE_PARTIAL
else
else if(human.sexcon.arousal > 0 && human.sexcon.arousal <= 10) //Shows the sheathe sprites below this threshold.
new_state = ERECT_STATE_STIFF
else if(human.sexcon.arousal == 0)
new_state = ERECT_STATE_NONE

erect_state = new_state
Expand All @@ -43,6 +45,11 @@
penis_type = PENIS_TYPE_EQUINE
sheath_type = SHEATH_TYPE_NORMAL

/obj/item/organ/penis/thick
name = "thick penis"
penis_type = PENIS_TYPE_THICK
sheath_type = SHEATH_TYPE_SLIT

/obj/item/organ/penis/tapered_mammal
name = "tapered penis"
penis_type = PENIS_TYPE_TAPERED
Expand Down
Binary file modified icons/mob/sprite_accessory/genitals/breasts.dmi
Binary file not shown.
Binary file modified icons/mob/sprite_accessory/genitals/butt.dmi
Binary file not shown.
Binary file modified icons/mob/sprite_accessory/genitals/penis.dmi
Binary file not shown.
Binary file modified icons/mob/sprite_accessory/genitals/testicles.dmi
Binary file not shown.
Binary file modified icons/mob/sprite_accessory/genitals/vagina.dmi
Binary file not shown.

0 comments on commit 6869dfd

Please sign in to comment.