diff --git a/modular_citadel/code/datums/status_effects/chems.dm b/modular_citadel/code/datums/status_effects/chems.dm index 43f8b18cd0..3d5a8a99bb 100644 --- a/modular_citadel/code/datums/status_effects/chems.dm +++ b/modular_citadel/code/datums/status_effects/chems.dm @@ -39,7 +39,7 @@ var/list/items = list() /datum/status_effect/chem/BElarger/on_apply(mob/living/carbon/M) - var/mob/living/carbon/human/H + var/mob/living/carbon/human/H = M if(H.w_uniform || H.wear_suit) playsound(M.loc, 'sound/items/poster_ripped.ogg', 50, 1) items |= M.get_equipped_items(TRUE) @@ -49,31 +49,47 @@ M.dropItemToGround(H.w_uniform) /datum/status_effect/chem/BElarger/tick(mob/living/carbon/M) - var/mob/living/carbon/human/H + var/obj/item/organ/genital/breasts/B = M.getorganslot("breasts") + var/mob/living/carbon/human/H = M if(H.w_uniform || H.wear_suit) items |= M.get_equipped_items(TRUE) to_chat(M, "Your enormous breasts are way to large to fit anything over!") M.dropItemToGround(H.wear_suit) M.dropItemToGround(H.w_uniform) + switch(round(B.cached_size)) + if(9) + if (!(B.breast_sizes[B.prev_size] == B.size)) + M.remove_movespeed_modifier("megamilk") + M.next_move_modifier = 1 + if(10 to INFINITY) + if (!(B.breast_sizes[B.prev_size] == B.size)) + to_chat(M, "Your indulgent busom is so substantial, it's affecting your movements!") + M.add_movespeed_modifier("megamilk", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = (round(B.cached_size) - 8)) + M.next_move_modifier = (round(B.cached_size) - 8) + +/datum/status_effect/chem/BElarger/on_remove(mob/living/carbon/M) + M.remove_movespeed_modifier("megamilk") + M.next_move_modifier = 1 /datum/status_effect/chem/PElarger id = "PElarger" - var/list/items = list() + //var/list/items = list() + /datum/status_effect/chem/PElarger/on_apply(mob/living/carbon/M) - var/mob/living/carbon/human/H + var/mob/living/carbon/human/H = M if(H.w_uniform || H.wear_suit) playsound(M.loc, 'sound/items/poster_ripped.ogg', 50, 1) - items |= M.get_equipped_items(TRUE) + //items |= M.get_equipped_items(TRUE) M.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..!") M.dropItemToGround(H.wear_suit) M.dropItemToGround(H.w_uniform) /datum/status_effect/chem/PElarger/tick(mob/living/carbon/M) - var/mob/living/carbon/human/H + var/mob/living/carbon/human/H = M if(H.w_uniform || H.wear_suit) - items |= M.get_equipped_items(TRUE) + //items |= M.get_equipped_items(TRUE) to_chat(M, "Your enormous package is way to large to fit anything over!") M.dropItemToGround(H.wear_suit) M.dropItemToGround(H.w_uniform) diff --git a/modular_citadel/code/modules/arousal/organs/breasts.dm b/modular_citadel/code/modules/arousal/organs/breasts.dm index 1ea7d68cfc..1b0a3679d7 100644 --- a/modular_citadel/code/modules/arousal/organs/breasts.dm +++ b/modular_citadel/code/modules/arousal/organs/breasts.dm @@ -7,6 +7,10 @@ slot = "breasts" w_class = 3 size = BREASTS_SIZE_DEF + var/cached_size = 3//for enlargement + var/prev_size = 3//For flavour texts + var/breast_sizes = list ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "flat") + 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) fluid_id = "milk" var/amount = 2 producing = TRUE @@ -19,6 +23,7 @@ /obj/item/organ/genital/breasts/Initialize() . = ..() reagents.add_reagent(fluid_id, fluid_max_volume) + prev_size = size /obj/item/organ/genital/breasts/on_life() if(QDELETED(src)) @@ -44,12 +49,12 @@ desc = "You see a pair of breasts." else desc = "You see some breasts, they seem to be quite exotic." - if (size <= 7) + if (size == "huge") desc += " You estimate that they're [uppertext(size)]-cups." - else if (size > 7) - desc = "You see [pick("some serious honkers", "a real set of badonkers", "some dobonhonkeros", "massive dohoonkabhankoloos", "big old tonhongerekoogers", "giant bonkhonagahoogs", "humongous hungolomghnonoloughongous")]. Their volume is way beyond cupsize now, measuring in about [size]cm in diameter." else - desc += " You wouldn't measure them in cup sizes." + desc = "You see [pick("some serious honkers", "a real set of badonkers", "some dobonhonkeros", "massive dohoonkabhankoloos", "big old tonhongerekoogers", "giant bonkhonagahoogs", "humongous hungolomghnonoloughongous")]. Their volume is way beyond cupsize now, measuring in about [size]cm in diameter." + //else + // desc += " You wouldn't measure them in cup sizes." if(producing && aroused_state) desc += " They're leaking [fluid_id]." if(owner) @@ -59,3 +64,32 @@ color = "#[skintone2hex(H.skin_tone)]" else color = "#[owner.dna.features["breasts_color"]]" + +/obj/item/organ/genital/breasts/update_size(mob/living/carbon/M) + + switch(round(cached_size)) + if(0) + size = "flat" + if(!M.has_status_effect(/datum/status_effect/chem/BElarger)) + owner.remove_status_effect(/datum/status_effect/chem/BElarger) + if(1 to 8) + size = breast_sizes[round(cached_size)] + if(!M.has_status_effect(/datum/status_effect/chem/BElarger)) + owner.remove_status_effect(/datum/status_effect/chem/BElarger) + if(9 to 15) + size = breast_sizes[round(cached_size)] + if(M.has_status_effect(/datum/status_effect/chem/BElarger)) + owner.apply_status_effect(/datum/status_effect/chem/BElarger) + if(16 to INFINITY) + size = "huge" + if (!(breast_sizes[prev_size] == size)) + if (breast_values[size] > breast_values[prev_size]) + to_chat(M, "Your breasts [pick("swell up to", "flourish into", "expand into", "burst forth into", "grow eagerly into", "amplify into")] a [uppertext(size)]-cup.") + prev_size = cached_size + else if (breast_values[size] > breast_values[prev_size]) + to_chat(M, "Your breasts [pick("shrink down to", "decrease into", "diminish into", "deflate into", "shrivel regretfully into", "shrivels into")] a [uppertext(size)]-cup.") + prev_size = cached_size + if(cached_size < 0) + var/obj/item/organ/genital/breasts/B = M.getorganslot("breasts") + to_chat(M, "You feel your breasts shrinking away from your body as your chest flattens out.") + B.Remove(M) 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 3ed6a4fa30..b5a09502c8 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm @@ -86,7 +86,7 @@ do_sparks(5,FALSE,src) do_teleport(M, get_turf(M), 10, asoundin = 'sound/effects/phasein.ogg') do_sparks(5,FALSE,src) - holder.remove_reagent("eigenstate", 0.5, FALSE)//So you're not stuck for 10 minutes teleporting + holder.remove_reagent(src.id, 0.5)//So you're not stuck for 10 minutes teleporting ..() //loop function @@ -283,7 +283,7 @@ M.nutrition = 150 reaction_mob(SM, ) - holder.remove_reagent("SDGF", 999) + holder.remove_reagent(src.id, 999) //BALANCE: should I make them a pacifist, or give them some cellular damage or weaknesses? //after_success(user, SM) @@ -328,7 +328,7 @@ to_chat(M, "Your body splits away from the cell clone of yourself, leaving you with a drained and hollow feeling inside.") M.apply_status_effect(/datum/status_effect/chem/SGDF) if(87 to INFINITY) - holder.remove_reagent("SGDF", 1)//removes SGDF on completion. + holder.remove_reagent(src.id, 1)//removes SGDF on completion. message_admins("Purging SGDF [volume]") message_admins("Growth nucleation occuring (SDGF), step [current_cycle] of 77") @@ -402,7 +402,7 @@ ZI.real_name = M.real_name//Give your offspring a big old kiss. ZI.name = M.real_name //ZI.updateappearance(mutcolor_update=1) - M.reagents.remove_reagent("SDZF", 20) + holder.remove_reagent(src.id, 20) else to_chat(M, "The pentetic acid seems to have stopped the decay for now, clumping up the cells into a horrifying tumour.") if(87 to INFINITY)//purges chemical fast, producing a "slime" for each one. Said slime is weak to fire. @@ -413,7 +413,7 @@ S.real_name = "Living teratoma" S.rabid = 1 //S.updateappearance(mutcolor_update=1) - M.reagents.remove_reagent("SDZF", 20) + holder.remove_reagent(src.id, 20) M.adjustToxLoss(10, 0) to_chat(M, "A large glob of the tumour suddenly splits itself from your body. You feel grossed out and slimey...") message_admins("Growth nucleation occuring (SDGF), step [current_cycle] of 20") @@ -422,6 +422,7 @@ //breast englargement //Honestly the most requested chems +//I'm not a very kinky person, sorry if it's not great //I tried to make it interesting..!! /datum/reagent/fermi/BElarger name = "Sucubus milk" @@ -461,50 +462,19 @@ nB.color = "#[M.dna.features["breasts_color"]]" else nB.color = skintone2hex(H.skin_tone) - nB.size = "a" + nB.size = "flat" + nB.cached_size = 0 to_chat(M, "Your chest feels warm, tingling with newfound sensitivity.") M.reagents.remove_reagent(src.id, 5) - else //If they have them, increase size. If size is comically big, limit movement and rip clothes. - message_admins("Breast size: [B.size], [holder]") - if(B.size == "a") - B.size = "b" - to_chat(M, "You feel your breasts grow to a modest size.") - M.reagents.remove_reagent(src.id, 5) - sleep(500) - else if(B.size == "b") - B.size = "c" - to_chat(M, "Your breasts swell up to a substancial size.") - M.reagents.remove_reagent(src.id, 5) - sleep(500) - else if(B.size == "c") - B.size = "d" - to_chat(M, "Your breasts flourish into a full pair.") - M.reagents.remove_reagent(src.id, 5) - sleep(500) - else if(B.size == "d") - B.size = "e" - to_chat(M, "Your breasts expand into a large voluptuous pair!") - M.reagents.remove_reagent(src.id, 5) - sleep(500) - else if(B.size == "e") - B.size = 7 - to_chat(M, "Your breasts burst forth into [pick("some serious honkers", "a real set of badonkers", "some dobonhonkeros", "massive dohoonkabhankoloos", "big old tonhongerekoogers", "giant bonkhonagahoogs", "humongous hungolomghnonoloughongous")].") - M.reagents.remove_reagent(src.id, 5) - sleep(500) - if(B.size >= 7) - B.size = B.size + 0.1 - if (B.size > 9) - //M.adjustOxyLoss((-50, 0) - M.apply_status_effect(/datum/status_effect/chem/BElarger) - M.add_movespeed_modifier("megamilk", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = (B.size - 8.1)) - M.next_move_modifier += 0.1 - else if (B.size > 8.5) - to_chat(M, "Your breasts begin to strain against your clothes tightly!") - M.adjustOxyLoss(10, 0) - M.adjustBruteLoss(2, 0) - sleep(500) + //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 + if (B.cached_size >= 8 && B.cached_size < 8.5) + to_chat(M, "Your breasts begin to strain against your clothes tightly!") + M.adjustOxyLoss(10, 0) + M.adjustBruteLoss(2, 0) - B.update_appearance() + B.update() ..() /datum/reagent/fermi/BElarger/overdose_start(mob/living/carbon/M) //Turns you into a female if male and ODing, doesn't touch nonbinary and object genders. @@ -611,23 +581,12 @@ M.visible_message("[M] suddenly looks more masculine!", "You suddenly feel more masculine!") if(B) - B.size -= 0.1 - if (B.size < 0.1) - to_chat(M, "You feel your breasts shrinking away from your body as your chest flattens out.") - B.Remove(M) - else if (B.size >= 9) - M.add_movespeed_modifier("megamilk", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = (B.size - 8.1))//Via la liberation - M.next_move_modifier -= 0.1 - H.dna.species.no_equip = list(SLOT_WEAR_SUIT, SLOT_W_UNIFORM) - if(V) - V.Remove(M) - if(W) - W.Remove(M) - B.update_appearance() - else - M.remove_status_effect(/datum/status_effect/chem/BElarger) - - + B.cached_size = B.cached_size - B.cached_size + B.update() + if(V) + V.Remove(M) + if(W) + W.Remove(M) if(!T) var/obj/item/organ/genital/testicles/nT = new nT.Insert(M)