This commit is contained in:
Ghommie
2019-08-29 21:01:23 +02:00
476 changed files with 11498 additions and 2708 deletions
@@ -12,6 +12,9 @@
masturbation_verb = "massage"
orgasm_verb = "leaking"
fluid_transfer_factor = 0.5
var/breast_values = list ("a" = 1, "b" = 2, "c" = 3, "d" = 4, "e" = 5, "f" = 6, "g" = 7, "h" = 8, "i" = 9, "j" = 10, "k" = 11, "l" = 12, "m" = 13, "n" = 14, "o" = 15, "huge" = 16, "flat" = 0)
var/cached_size //for enlargement SHOULD BE A NUMBER
var/prev_size //For flavour texts SHOULD BE A LETTER
/obj/item/organ/genital/breasts/update_appearance()
. = ..()
@@ -25,10 +28,15 @@
desc = "You see three sets of breasts, running from their chest to their belly."
else
desc = "You see some breasts, they seem to be quite exotic."
if (size)
desc += " You estimate that they're [uppertext(size)]-cups."
else
desc += " You wouldn't measure them in cup sizes."
if(cached_size > 16)
desc = "You see [pick("some serious honkers", "a real set of badonkers", "some dobonhonkeros", "massive dohoonkabhankoloos", "two big old tonhongerekoogers", "a couple of giant bonkhonagahoogs", "a pair of humongous hungolomghnonoloughongous")]. Their volume is way beyond cupsize now, measuring in about [round(cached_size)]cm in diameter."
else if (!isnum(size))
if (size == "flat")
desc += " They're very small and flatchested, however."
else
desc += " You estimate that they're [uppertext(size)]-cups."
//string = "breasts_[lowertext(shape)]_[size]-s"
if(CHECK_BITFIELD(genital_flags, GENITAL_FUID_PRODUCTION) && aroused_state)
desc += " They're leaking [fluid_id]."
var/string
@@ -45,6 +53,47 @@
var/mob/living/carbon/human/H = owner
icon_state = sanitize_text(string)
H.update_genitals()
icon_state = sanitize_text(string)
//Allows breasts to grow and change size, with sprite changes too.
//maximum wah
//Comical sizes slow you down in movement and actions.
//Rediculous sizes makes you more cumbersome.
//this is far too lewd wah
/obj/item/organ/genital/breasts/update_size()//wah
if(cached_size == size)
return
if(cached_size < 0)//I don't actually know what round() does to negative numbers, so to be safe!!fixed
if(owner)
to_chat(owner, "<span class='warning'>You feel your breasts shrinking away from your body as your chest flattens out.</b></span>")
QDEL_IN(src, 1)
var/enlargement = FALSE
switch(cached_size)
if(0 to 0.99) //If flatchested
size = "flat"
if(16 to INFINITY) //if Rediculous
size = "huge"
enlargement = TRUE
if(owner && !enlargement)
if(!owner.has_status_effect(/datum/status_effect/chem/breast_enlarger))
owner.apply_status_effect(/datum/status_effect/chem/breast_enlarger)
size = breast_values[round(cached_size)]
if(round(cached_size) < 16)//Because byond doesn't count from 0, I have to do this.
if(isnum(prev_size))
prev_size = breast_values[prev_size]
if(owner)
var/mob/living/carbon/human/H = owner
if (breast_values[size] > breast_values[prev_size])
to_chat(H, "<span class='warning'>Your breasts [pick("swell up to", "flourish into", "expand into", "burst forth into", "grow eagerly into", "amplify into")] a [uppertext(size)]-cup.</b></span>")
H.dna.species.handle_genitals(src)
else if (breast_values[size] > 0.5)
to_chat(H, "<span class='warning'>Your breasts [pick("shrink down to", "decrease into", "diminish into", "deflate into", "shrivel regretfully into", "contracts into")] a [uppertext(size)]-cup.</b></span>")
H.dna.species.handle_genitals(src)
prev_size = size
else
size = "huge"
/obj/item/organ/genital/breasts/get_features(mob/living/carbon/human/H)
var/datum/dna/D = H.dna
@@ -55,3 +104,15 @@
size = D.features["breasts_size"]
shape = D.features["breasts_shape"]
fluid_id = D.features["breasts_fluid"]
if(!isnum(size))
if(size == "flat")
cached_size = 0
prev_size = 0
else if (cached_size == "huge")
prev_size = "huge"
else
cached_size = breast_values[size]
prev_size = size
else
cached_size = size
prev_size = size
@@ -10,30 +10,60 @@
fluid_transfer_factor = 0.5
size = 2 //arbitrary value derived from length and girth for sprites.
layer_index = PENIS_LAYER_INDEX
var/length = 6 //inches
var/length = 6 //inches
var/prev_length = 6 //really should be renamed to prev_length
var/cached_length //used to detect a change in length
var/girth = 0
var/girth = 4.38
var/girth_ratio = COCK_GIRTH_RATIO_DEF //0.73; check citadel_defines.dm
var/knot_girth_ratio = KNOT_GIRTH_RATIO_DEF
var/list/knotted_types = list("knotted", "barbed, knotted")
/obj/item/organ/genital/penis/update_size()
if(length == cached_length)
if(cached_length == length)
return
if(cached_length < 0)//I don't actually know what round() does to negative numbers, so to be safe!!
if(owner)
to_chat(owner, "<span class='warning'>You feel your tallywacker shrinking away from your body as your groin flattens out!</b></span>")
QDEL_IN(src, 1)
if(linked_organ)
QDEL_IN(linked_organ, 1)
return
var/new_size
switch(length)
if(-INFINITY to 6)
var/enlargement = FALSE
switch(round(cached_length))
if(0 to 6.99) //If modest size
new_size = 1
if(6 to 12)
new_size = 2
if(12 to INFINITY)
new_size = 3 //no new sprites for anything larger yet.
girth = (length * girth_ratio)
cached_length = length
if(7 to 10.99) //If large
size = 2
if(11 to 19.99) //If massive
size = 3
if(20 to 34.99) //If massive and due for large effects
size = 3
enlargement = TRUE
if(35 to INFINITY) //If comical
size = 4 //no new sprites for anything larger yet
enlargement = TRUE
length = cached_length
if(owner)
var/status_effect = owner.has_status_effect(/datum/status_effect/chem/penis_enlarger)
if(enlargement && !status_effect)
owner.apply_status_effect(/datum/status_effect/chem/penis_enlarger)
else if(status_effect)
owner.remove_status_effect(/datum/status_effect/chem/penis_enlarger)
if(linked_organ)
linked_organ.update_size(new_size - size)
size = new_size
if(owner)
if (round(length) > round(prev_length))
to_chat(owner, "<span class='warning'>Your [pick(GLOB.gentlemans_organ_names)] [pick("swells up to", "flourishes into", "expands into", "bursts forth into", "grows eagerly into", "amplifys into")] a [uppertext(round(length))] inch penis.</b></span>")
else if ((round(length) < round(prev_length)) && (length > 0.5))
to_chat(owner, "<span class='warning'>Your [pick(GLOB.gentlemans_organ_names)] [pick("shrinks down to", "decreases into", "diminishes into", "deflates into", "shrivels regretfully into", "contracts into")] a [uppertext(round(length))] inch penis.</b></span>")
prev_length = length
icon_state = sanitize_text("penis_[shape]_[size]")
girth = (length * girth_ratio)//Is it just me or is this ludicous, why not make it exponentially decay?
/obj/item/organ/genital/penis/update_appearance()
. = ..()
var/string
@@ -63,3 +93,5 @@
length = D.features["cock_length"]
girth_ratio = D.features["cock_girth_ratio"]
shape = D.features["cock_shape"]
prev_length = length
cached_length = length