From accb202d6ec0c5eb6cf20f895ec09c39799d9e84 Mon Sep 17 00:00:00 2001 From: Fermi Date: Sun, 28 Apr 2019 09:41:10 +0100 Subject: [PATCH] BROKEN COMMIT. Just in case. --- .../code/datums/status_effects/chems.dm | 99 +++++++++++-------- .../code/modules/arousal/organs/breasts.dm | 35 +++---- .../code/modules/arousal/organs/penis.dm | 53 +++++++--- .../chemistry/reagents/fermi_reagents.dm | 83 +++++++++------- 4 files changed, 157 insertions(+), 113 deletions(-) diff --git a/modular_citadel/code/datums/status_effects/chems.dm b/modular_citadel/code/datums/status_effects/chems.dm index f91aad7009..1d81eaee9d 100644 --- a/modular_citadel/code/datums/status_effects/chems.dm +++ b/modular_citadel/code/datums/status_effects/chems.dm @@ -36,84 +36,97 @@ /datum/status_effect/chem/BElarger id = "BElarger" - var/list/items = list() + //var/list/items = list() + var/mob/living/carbon/human/o = owner + var/obj/item/organ/genital/breasts/B = o.getorganslot("breasts") + //var/items = o.get_contents() //mob/living/carbon/M = M tried, no dice //owner, tried, no dice /datum/status_effect/chem/BElarger/on_apply(mob/living/carbon/human/H)//Removes clothes, they're too small to contain you. You belong to space now. message_admins("BElarge started!") - //var/mob/living/carbon/human/H = M - var/items = H.get_contents() - for(var/obj/item/W in items) - if(W == H.w_uniform || W == H.wear_suit) - owner.dropItemToGround(W, TRUE) - message_admins("Dropping [W]") - playsound(owner.loc, 'sound/items/poster_ripped.ogg', 50, 1) - //items |= owner.get_equipped_items(TRUE) - owner.visible_message("[H]'s chest suddenly bursts forth, ripping their clothes off!'") - to_chat(owner, "Your clothes give, ripping into peices under the strain of your swelling breasts! Unless you manage to reduce the size of your breasts, there's no way you're going to be able to put anything on over these melons..!") - //owner.dropItemToGround(owner.wear_suit) - //owner.dropItemToGround(owner.w_uniform) + if(o.w_uniform) + o.dropItemToGround(H.w_uniform, TRUE) + if(o.wear_suit) + o.dropItemToGround(H.wear_suit, TRUE) + playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1) + o.visible_message("[H]'s chest suddenly bursts forth, ripping their clothes off!'") + to_chat(o, "Your clothes give, ripping into peices under the strain of your swelling breasts! Unless you manage to reduce the size of your breasts, there's no way you're going to be able to put anything on over these melons..!") return ..() /datum/status_effect/chem/BElarger/tick(mob/living/carbon/human/H)//If you try to wear clothes, you fail. Slows you down if you're comically huge message_admins("BElarge tick!") - var/mob/living/carbon/human/o = owner - var/obj/item/organ/genital/breasts/B = H.getorganslot("breasts") - //var/mob/living/carbon/human/H = M - message_admins("M: [H]") - message_admins("H: [H]") - message_admins("owner: [owner]") + if(o.w_uniform) + o.dropItemToGround(H.w_uniform, TRUE) + to_chat(owner, "Your enormous breasts are way to large to fit anything over!") + if(o.wear_suit) + o.dropItemToGround(H.wear_suit, TRUE) + to_chat(owner, "Your enormous breasts are way to large to fit anything over!") + /* var/items = o.get_contents() for(var/obj/item/W in items) if(W == o.w_uniform || W == o.wear_suit) o.dropItemToGround(W) //items |= owner.get_equipped_items(TRUE) - to_chat(owner, "Your enormous breasts are way to large to fit anything over!") + //owner.dropItemToGround(owner.wear_suit) //owner.dropItemToGround(owner.w_uniform) + */ switch(round(B.cached_size)) if(9) if (!(B.breast_sizes[B.prev_size] == B.size)) - owner.remove_movespeed_modifier("megamilk") - owner.next_move_modifier = 1 + o.remove_movespeed_modifier("megamilk") + o.next_move_modifier = 1 if(10 to INFINITY) if (!(B.breast_sizes[B.prev_size] == B.size)) to_chat(H, "Your indulgent busom is so substantial, it's affecting your movements!") - owner.add_movespeed_modifier("megamilk", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = (round(B.cached_size) - 8)) - owner.next_move_modifier = (round(B.cached_size) - 8) + o.add_movespeed_modifier("megamilk", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = (round(B.cached_size) - 8)) + o.next_move_modifier = (round(B.cached_size) - 8) ..() /datum/status_effect/chem/BElarger/on_remove(mob/living/carbon/M) owner.remove_movespeed_modifier("megamilk") owner.next_move_modifier = 1 + /datum/status_effect/chem/PElarger id = "PElarger" - //var/list/items = list() + var/mob/living/carbon/human/o = owner + var/obj/item/organ/genital/breasts/B = o.getorganslot("breasts") +/datum/status_effect/chem/PElarger/on_apply(mob/living/carbon/human/H)//Removes clothes, they're too small to contain you. You belong to space now. + message_admins("PElarge started!") + if(o.w_uniform) + o.dropItemToGround(H.w_uniform, TRUE) + playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1) + if(o.wear_suit) + o.dropItemToGround(H.wear_suit, TRUE) + playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1) + owner.visible_message("[M]'s schlong suddenly bursts forth, ripping their clothes off!'") + to_chat(M, "Your clothes give, ripping into peices under the strain of your swelling pecker! Unless you manage to reduce the size of your emancipated trouser snake, there's no way you're going to be able to put anything on over this girth..!") + return ..() -/datum/status_effect/chem/PElarger/on_apply(mob/living/carbon/M) - var/mob/living/carbon/human/H = M - for(var/obj/item/W in H) - if(W == H.w_uniform || W == H.wear_suit) - H.dropItemToGround(W) - playsound(M.loc, 'sound/items/poster_ripped.ogg', 50, 1) - //items |= M.get_equipped_items(TRUE) - owner.visible_message("[M]'s penis suddenly bursts forth, ripping their clothes off!'") - to_chat(M, "Your clothes give, ripping into peices under the strain of your swelling penis! Unless you manage to reduce the size of your emancipated trouser snake, there's no way you're going to be able to put anything on over this girth..!") - //owner.dropItemToGround(owner.wear_suit) - //owner.dropItemToGround(owner.w_uniform) /datum/status_effect/chem/PElarger/tick(mob/living/carbon/M) - var/mob/living/carbon/human/H = M - for(var/obj/item/W in H) - if(W == H.w_uniform || W == H.wear_suit) - H.dropItemToGround(W) - //items |= M.get_equipped_items(TRUE) + message_admins("PElarge tick!") + if(o.w_uniform) + o.dropItemToGround(H.w_uniform, TRUE) to_chat(owner, "Your enormous package is way to large to fit anything over!") - //owner.dropItemToGround(owner.wear_suit) - //owner.dropItemToGround(owner.w_uniform) + if(o.wear_suit) + o.dropItemToGround(H.wear_suit, TRUE) + to_chat(owner, "Your enormous package is way to large to fit anything over!") + switch(round(P.cached_size)) + if(11) + if (!(P.prev_size == P.size)) + to_chat(H, "Your rascally willy has become a more managable size, liberating your movements.") + o.remove_movespeed_modifier("hugedick") + o.next_move_modifier = 1 + if(12 to INFINITY) + if (!(P.prev_size == P.size)) + to_chat(H, "Your indulgent johnson is so substantial, it's affecting your movements!") + o.add_movespeed_modifier("hugedick", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = (P.length - 11.1)) + o.next_move_modifier = (round(B.cached_size) - 8) + ..() /*Doesn't work diff --git a/modular_citadel/code/modules/arousal/organs/breasts.dm b/modular_citadel/code/modules/arousal/organs/breasts.dm index 7a7b43cbaa..2f51cfb26f 100644 --- a/modular_citadel/code/modules/arousal/organs/breasts.dm +++ b/modular_citadel/code/modules/arousal/organs/breasts.dm @@ -76,55 +76,48 @@ //Should I turn someone with meter wide... assets into a blob? //this is far too lewd wah /obj/item/organ/genital/breasts/update_size()//wah - //var/mob/living/carbon/human/H = owner message_admins("Breast size at start: [size], [cached_size], [owner]") - //var/sprite_accessory/breasts = mob/living/carbon/M if(cached_size < 0)//I don't actually know what round() does to negative numbers, so to be safe!! var/obj/item/organ/genital/breasts/B = owner.getorganslot("breasts") to_chat(owner, "You feel your breasts shrinking away from your body as your chest flattens out.") B.Remove(owner) switch(round(cached_size)) - if(0) + if(0) //If flatchested size = "flat" if(statuscheck == TRUE) message_admins("Attempting to remove.") owner.remove_status_effect(/datum/status_effect/chem/BElarger) statuscheck = FALSE - if(1 to 8) + if(1 to 8) //If modest size size = breast_sizes[round(cached_size)] if(statuscheck == TRUE) message_admins("Attempting to remove.") owner.remove_status_effect(/datum/status_effect/chem/BElarger) statuscheck = FALSE - if(9 to 15) + if(9 to 15) //If massive size = breast_sizes[round(cached_size)] if(statuscheck == FALSE) message_admins("Attempting to apply.") owner.apply_status_effect(/datum/status_effect/chem/BElarger) statuscheck = TRUE - if(16 to INFINITY) + if(16 to INFINITY) //if Rediculous size = cached_size message_admins("Breast size: [size], [cached_size], [owner]") if(round(cached_size) < 16)//Because byond doesn't count from 0, I have to do this. - if (prev_size == 0) - prev_size = "flat" - if(size == 0)//Bloody byond with it's counting from 1 - size = "flat" - message_admins("1. [prev_size] vs [breast_values[size]]") + if (!isnum(prev_size)) + breast_values[prev_size] + if(!isnum(prev_size)//Bloody byond with it's counting from 1 + breast_values[prev_size] message_admins("2. [breast_values[size]] vs [breast_values[prev_size]]") if (breast_values[size] > breast_values[prev_size]) to_chat(owner, "Your breasts [pick("swell up to", "flourish into", "expand into", "burst forth into", "grow eagerly into", "amplify into")] a [uppertext(size)]-cup.") else if (breast_values[size] < breast_values[prev_size]) - to_chat(owner, "Your breasts [pick("shrink down to", "decrease into", "diminish into", "deflate into", "shrivel regretfully into", "shrivels into")] a [uppertext(size)]-cup.") + to_chat(owner, "Your breasts [pick("shrink down to", "decrease into", "diminish into", "deflate into", "shrivel regretfully into", "contracts into")] a [uppertext(size)]-cup.") prev_size = size - icon_state = "breasts_[shape]_[size]" - owner.update_body() - else - if(!isnum(prev_size)) - prev_size = breast_values[prev_size] - if(round(size) > round(prev_size)) + icon_state = sanitize_text("breasts_[shape]_[size]") + + else (cached_size == 16.2) to_chat(owner, "Your breasts [pick("swell up to", "flourish into", "expand into", "burst forth into", "grow eagerly into", "amplify into")] a hefty [uppertext(size)]cm diameter bosom, taking both of your hands to hold!.") - else if (round(size) < round(prev_size)) - to_chat(owner, "Your breasts do something crazy that the big Fermis in the sky didn't account for.") - //breasts.icon_state = "breasts_[shape]_[size]_0_FRONT" + owner.update_body() + B.update_icon() diff --git a/modular_citadel/code/modules/arousal/organs/penis.dm b/modular_citadel/code/modules/arousal/organs/penis.dm index 2665bfe449..f2219bf597 100644 --- a/modular_citadel/code/modules/arousal/organs/penis.dm +++ b/modular_citadel/code/modules/arousal/organs/penis.dm @@ -18,23 +18,50 @@ var/knot_girth_ratio = KNOT_GIRTH_RATIO_DEF var/list/dickflags = list() var/list/knotted_types = list("knotted", "barbed, knotted") + var/mob/living/carbon/human/o = owner + var/statuscheck = FALSE + var/prev_size = 6 + /obj/item/organ/genital/penis/update_size() - if(length == cached_length) - return - switch(length) - if(-INFINITY to 5) + + if(cached_length < 0)//I don't actually know what round() does to negative numbers, so to be safe!! + var/obj/item/organ/genital/penis/P = o.getorganslot("breasts") + to_chat(o, "You feel your tallywacker shrinking away from your body as your groin flattens out!") + P.Remove(o) + switch(round(cached_length)) + if(0 to 4) //If modest size + length = cached_length size = 1 - if(5 to 9) + if(statuscheck == TRUE) + message_admins("Attempting to remove.") + o.remove_status_effect(/datum/status_effect/chem/PElarger) + statuscheck = FALSE + if(5 to 8) //If modest size + length = cached_length size = 2 - if(9 to INFINITY) - size = 3//no new sprites for anything larger yet -/* if(9 to 15) - size = 3 - if(15 to INFINITY) - size = 3*/ + if(statuscheck == TRUE) + message_admins("Attempting to remove.") + o.remove_status_effect(/datum/status_effect/chem/PElarger) + statuscheck = FALSE + if(9 to INFINITY) //If massive + length = cached_length + size = 3 //no new sprites for anything larger yet + if(statuscheck == FALSE) + message_admins("Attempting to apply.") + o.apply_status_effect(/datum/status_effect/chem/PElarger) + statuscheck = TRUE + message_admins("Pinas size: [size], [cached_length], [o]") + message_admins("2. size vs prev_size") + if (round(length) > round(prev_size)) + to_chat(o, "Your [pick("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ", "cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "weenie", "tadger", "schlong", "thirsty ferret", "baloney pony", "schlanger")] [pick("swells up to", "flourishes into", "expands into", "bursts forth into", "grows eagerly into", "amplifys into")] a [uppertext(size)] inch penis.") + else if (round(length) < round(prev_size)) + to_chat(o, "Your [pick("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ", "cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "weenie", "tadger", "schlong", "thirsty ferret", "baloney pony", "schlanger")] [pick("shrinks down to", "decreases into", "diminishes into", "deflates into", "shrivels regretfully into", "contracts into")] a [uppertext(size)] inch penis.") + prev_size = length + icon_state = sanitize_text("penis_[shape]_[size]") + o.update_body() + P.update_icon() girth = (length * girth_ratio) - cached_length = length /obj/item/organ/genital/penis/update_appearance() var/string = "penis_[GLOB.cock_shapes_icons[shape]]_[size]" @@ -48,7 +75,7 @@ color = "#[skintone2hex(H.skin_tone)]" else color = "#[owner.dna.features["cock_color"]]" - //owner.update_body() + H.update_body() /obj/item/organ/genital/penis/update_link() if(owner) diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm index f4334f3230..f533fc517a 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm @@ -433,7 +433,6 @@ overdose_threshold = 12 metabolization_rate = 0.5 var/mob/living/carbon/human/H - var/target = get_bodypart(BODY_ZONE_CHEST) @@ -465,10 +464,10 @@ message_admins("Breast size: [B.size], [B.cached_size], [holder]") B.cached_size = B.cached_size + 0.1 if (B.cached_size >= 8.5 && B.cached_size < 9) + var/target = M.get_bodypart(BODY_ZONE_CHEST) to_chat(M, "Your breasts begin to strain against your clothes tightly!") M.adjustOxyLoss(10, 0) - M.apply_damage(5, BRUTE, target) - + M.apply_damage(2, BRUTE, target) B.update() ..() @@ -485,17 +484,10 @@ if(P) P.length = P.length - 0.1 - if (P.length <= 0.1) - to_chat(M, "You feel your penis shink, disappearing from your loins, leaving a strange smoothness in your pants.") - P.Remove(P) - if(T) - T.Remove(M) - else if (P.length > 7) - M.add_movespeed_modifier("hugedick", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = (P.length - 10.1))//Via la liberation - M.next_move_modifier -= 0.1 - else - M.remove_status_effect(/datum/status_effect/chem/PElarger) - P.update() + message_admins("Breast size: [P.size], [P.cached_size], [holder]") + P.update() + if(T) + T.Remove(M) if(!V) var/obj/item/organ/genital/vagina/nV = new nV.Insert(M) @@ -514,7 +506,6 @@ taste_description = "a salty and sticky substance." overdose_threshold = 12 metabolization_rate = 0.5 - var/target get_bodypart(BODY_ZONE_CHEST) //var/mob/living/carbon/M //var/mob/living/carbon/human/species/S /* @@ -527,36 +518,47 @@ var/mob/living/carbon/human/H /datum/reagent/fermi/PElarger/on_mob_life(mob/living/carbon/M) //Increases penis size - /* - switch(current_cycle) - if(0) - */ + var/obj/item/organ/genital/breasts/B = M.getorganslot("breasts") + if(!B) //If they don't have breasts, give them breasts. + message_admins("No breasts found!") + var/obj/item/organ/genital/breasts/nB = new + nB.Insert(M) + if(nB) + if(M.dna.species.use_skintones && M.dna.features["genitals_use_skintone"]) + nB.color = skintone2hex(H.skin_tone) + else if(M.dna.features["breasts_color"]) + nB.color = "#[M.dna.features["breasts_color"]]" + else + nB.color = skintone2hex(H.skin_tone) + nB.size = "flat" + + to_chat(M, "Your chest feels warm, tingling with newfound sensitivity.") + + B = nB + //If they have them, increase size. If size is comically big, limit movement and rip clothes. + message_admins("Breast size: [B.size], [B.cached_size], [holder]") + B.cached_size = B.cached_size + 0.1 + + B.update() var/obj/item/organ/genital/penis/P = M.getorganslot("penis") if(!P) - message_admins("No penis found!") + message_admins("No penis found!")//They do have a preponderance for escapism, or so I've heard. var/obj/item/organ/genital/penis/nP = new nP.Insert(M) if(nP) - /* - if(M.dna.species.use_skintones && H.dna.features["genitals_use_skintone"]) - nP.color = skintone2hex(H.skin_tone) - else if(M.dna.features["cock_color"]) - nP.color = "#[M.dna.features["cock_color"]]" - else*/ - //nP.color = skintone2hex(H.skin_tone) nP.length = 0.2 - to_chat(M, "Your groin feels warm, as you feel a new bulge down below.") + to_chat(M, "Your groin feels warm, as you feel a newly forming bulge down below.")//OwO + nP.cached_length = 0 + nP.prev_size = 0 + M.reagents.remove_reagent(src.id, 5) P = nP - P.update_size() else P.length = P.length + 0.1 - if (P.length > 9) - M.apply_status_effect(/datum/status_effect/chem/PElarger) - M.add_movespeed_modifier("hugedick", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = (P.length - 10.1)) - M.next_move_modifier += 0.1 - else if (P.length > 8.5) + if (P.cached_size >= 10.5 && P.cached_length < 11) //too low? + M.apply_damage(2, BRUTE, target) + var/target = M.get_bodypart(BODY_ZONE_CHEST) to_chat(M, "Your cock begin to strain against your clothes tightly!") M.apply_damage(5, BRUTE, target) @@ -586,13 +588,22 @@ if(!T) var/obj/item/organ/genital/testicles/nT = new nT.Insert(M) - + T = nT ..() /datum/reagent/fermi/Astral // Gives you the ability to astral project for a moment! name = "Astrogen" - id = "PElarger" + id = "astral" + description = "A volatile collodial mixture derived from various masculine solutions that encourages a larger gentleman's package via a potent testosterone mix." //The toxic masculinity thing is a joke because I thought it would be funny to include it in the reagents, but I don't think many would find it funny? + color = "#H60584" // rgb: 96, 0, 255 + taste_description = "a salty and sticky substance." + overdose_threshold = 12 + metabolization_rate = 0.5 + +/datum/reagent/fermi/Astral // Gives you the ability to astral project for a moment! + name = "Astrogen" + id = "astral" description = "A volatile collodial mixture derived from various masculine solutions that encourages a larger gentleman's package via a potent testosterone mix." //The toxic masculinity thing is a joke because I thought it would be funny to include it in the reagents, but I don't think many would find it funny? color = "#H60584" // rgb: 96, 0, 255 taste_description = "a salty and sticky substance."