Everything fixed.

BE largement (probably) fully functional
PE I think has issues ripping clothes?
This commit is contained in:
Fermi
2019-04-30 05:43:49 +01:00
parent 4bd2da202b
commit 5ade1a27f0
6 changed files with 67 additions and 65 deletions
+5 -4
View File
@@ -212,11 +212,12 @@
message = replacetext(message, "no", "nyo")
message = replacetext(message, "ove", "uv")
message = replacetext(message, "ove", "uv")
message = replacetext(message, "th", "ff")
//message = replacetext(message, "th", "ff") //too incoherent in practice
message = replacetext(message, "l", "w")
message = replacetext(message, "r", "w")
if(prob(20))
message = replacetext(message, ".", "OwO.")
message += "OwO"
else if(prob(30))
message = replacetext(message, ".", "uwu.")
message = lowertext(message)
message += "uwu"
message = lowertext(message)
return message
@@ -23,7 +23,7 @@
/datum/status_effect/chem/SGDF/tick()
//message_admins("SDGF ticking")
if(owner.stat == DEAD)
message_admins("SGDF status swapping")
//message_admins("SGDF status swapping")
if(fermi_Clone && fermi_Clone.stat != DEAD)
if(owner.mind)
owner.mind.transfer_to(fermi_Clone)
@@ -49,8 +49,12 @@
o.dropItemToGround(W, TRUE)
playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1)
//message_admins("BElarge started!")
o.visible_message("<span class='boldnotice'>[o]'s chest suddenly bursts forth, ripping their clothes off!'</span>")
to_chat(o, "<span class='warning'>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..!</b></span>")
if(o.w_uniform || o.wear_suit)
to_chat(o, "<span class='warning'>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..!</b></span>")
o.visible_message("<span class='boldnotice'>[o]'s chest suddenly bursts forth, ripping their clothes off!'</span>")
else
to_chat(o, "<span class='notice'>Your bountiful bosom is so rich with mass, you seriously doubt you'll be able to fit any clothes over it.</b></span>")
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
@@ -101,8 +105,11 @@
if(W == o.w_uniform || W == o.wear_suit)
o.dropItemToGround(W, TRUE)
playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1)
owner.visible_message("<span class='boldnotice'>[o]'s schlong suddenly bursts forth, ripping their clothes off!'</span>")
to_chat(o, "<span class='warning'>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..!</b></span>")
if(o.w_uniform || o.wear_suit)
to_chat(o, "<span class='warning'>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..!</b></span>")
owner.visible_message("<span class='boldnotice'>[o]'s schlong suddenly bursts forth, ripping their clothes off!'</span>")
else
to_chat(o, "<span class='notice'>Your emancipated trouser snake is so ripe with girth, you seriously doubt you'll be able to fit any clothes over it.</b></span>")
return ..()
@@ -8,9 +8,9 @@
w_class = 3
size = BREASTS_SIZE_DEF
var/cached_size = null//for enlargement
var/prev_size = BREASTS_SIZE_DEF//For flavour texts
var/breast_sizes = list ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "huge", "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)
var/prev_size //For flavour texts
var/breast_sizes = list ("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "huge", "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)
var/statuscheck = FALSE
fluid_id = "milk"
var/amount = 2
@@ -119,19 +119,13 @@
//message_admins("2. [breast_values[size]] vs [breast_values[prev_size]] || [size] vs [prev_size]")
if (breast_values[size] > breast_values[prev_size])
to_chat(owner, "<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>")
var/mob/living/carbon/human/H = owner
H.Force_update_genitals()
else if (breast_values[size] < breast_values[prev_size])
to_chat(owner, "<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>")
var/mob/living/carbon/human/H = owner
H.Force_update_genitals()
prev_size = size
else if (cached_size == 16.2)
to_chat(owner, "<span class='warning'>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!.</b></span>")
//icon_state = sanitize_text("breasts_[shape]_[size]")
//owner.update_body()
//update_icon()
message_admins("attempting to update sprite")
var/mob/living/carbon/human/H = owner
H.update_genitals()
//owner.update_genitals()
//if(src.is_exposed())
// update_icon()
to_chat(owner, "<span class='warning'>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.</b></span>")// taking both of your hands to hold!.</b></span>")
@@ -267,7 +267,13 @@
if(src && !QDELETED(src))
dna.species.handle_genitals(src)
/mob/living/carbon/human/proc/Force_update_genitals()
dna.species.handle_genitals(src)
//dna.species.handle_breasts(src)
/datum/species/proc/handle_genitals(mob/living/carbon/human/H)
message_admins("attempting to update sprite")
if(!H)//no args
CRASH("H = null")
if(!LAZYLEN(H.internal_organs))//if they have no organs, we're done
@@ -276,15 +282,12 @@
return
if(H.has_trait(TRAIT_HUSK))
return
var/list/genitals_to_add = list()
var/list/relevant_layers = list(GENITALS_BEHIND_LAYER, GENITALS_ADJ_LAYER, GENITALS_FRONT_LAYER)
var/list/standing = list()
var/size = null
for(var/L in relevant_layers) //Less hardcode
H.remove_overlay(L)
//start scanning for genitals
//var/list/worn_stuff = H.get_equipped_items()//cache this list so it's not built again
for(var/obj/item/organ/O in H.internal_organs)
@@ -293,7 +296,6 @@
if(G.is_exposed()) //Checks appropriate clothing slot and if it's through_clothes
genitals_to_add += H.getorganslot(G.slot)
//Now we added all genitals that aren't internal and should be rendered
//start applying overlays
for(var/layer in relevant_layers)
var/layertext = genitals_layertext(layer)
@@ -351,10 +353,11 @@
/*
/datum/species/proc/handle_breasts(mob/living/carbon/human/H)
//check for breasts first!
var/obj/item/organ/genital/breasts/B = M.getorganslot("breasts")
var/obj/item/organ/genital/breasts/B = H.getorganslot("breasts")
if(!B)
return
message_admins("attempting to update sprite in a hacky way")
///obj/item/organ/genital/breasts/update_icon(/obj/item/organ/genital) Where did this come from?
//Variables:
var/size = B.size
@@ -372,7 +375,7 @@
//If breasts are hueg (larger than 5 only have one sprite atm)
if (size > 5)
genital_overlay.icon_state = "[B.slot]_pair_[size]_0_[layertext]"//I haven't done around sizes above 5, I dunno how..!
genital_overlay.icon_state = "[B.slot]_[B.shape]_[size]_0_[layertext]"//I haven't done around sizes above 5, I dunno how..!
else
genital_overlay.icon_state = "[B.slot]_[S.icon_state]_[size]_[B.aroused_state]_[layertext]"
@@ -385,10 +388,6 @@
genital_overlay.color = "#[skintone2hex(H.skin_tone)]"
else
switch(S.color_src)
if("cock_color")
genital_overlay.color = "#[H.dna.features["cock_color"]]"
if("breasts_color")
genital_overlay.color = "#[H.dna.features["breasts_color"]]"
if("vag_color")
genital_overlay.color = "#[H.dna.features["vag_color"]]"
if(MUTCOLORS)
@@ -415,4 +414,4 @@
for(var/L in relevant_layers)
H.apply_overlay(L)
*/
*/
@@ -68,10 +68,12 @@
//update_body()
//P.update_icon() //Either of these don't work, why???
girth = (length * girth_ratio)
var/mob/living/carbon/human/H = owner
H.update_genitals()
//var/mob/living/carbon/human/H = owner
//H.update_genitals()
//owner.update_genitals()
//I have no idea on how to update sprites and I hate it
/obj/item/organ/genital/penis/update_appearance()
//var/mob/living/carbon/o = owner
var/string = "penis_[GLOB.cock_shapes_icons[shape]]_[size]"
@@ -85,7 +87,7 @@
color = "#[skintone2hex(H.skin_tone)]"
else
color = "#[owner.dna.features["cock_color"]]"
owner.update_body()
//owner.update_body()
/obj/item/organ/genital/penis/update_link()
if(owner)
@@ -247,23 +247,6 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
if(pollStarted == FALSE)
pollStarted = TRUE
candies = pollGhostCandidates("Do you want to play as a clone and do you agree to respect their character and act in a similar manner to them? I swear to god if you diddle them I will be very disapointed in you.")
/*
for(var/mob/dead/observer/G in GLOB.player_list)
group += G
for(var/m in group)
var/mob/W = m
message_admins("Attempting to poll")
showCandidatePollWindow(M, 190, "Do you want to play as a clone of [M.name] and do you agree to respect their character and act in a similar manner to them? I swear to god if you diddle them I will be very disapointed in you.", result, null, current_cycle, TRUE)
if(19)
for(var/mob/W in result)
if(!W.key || !W.client)
result -= W
candies = result
*/
if(20 to INFINITY)
message_admins("Number of candidates [LAZYLEN(candies)]")
if(LAZYLEN(candies) && src.playerClone == FALSE) //If there's candidates, clone the person and put them in there!
@@ -303,17 +286,23 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
//Damage the clone
SM.blood_volume = BLOOD_VOLUME_NORMAL/2
SM.adjustCloneLoss(80, 0)
SM.setBrainLoss(20)
SM.setBrainLoss(40)
SM.nutrition = startHunger/2
var/datum/reagents/SMR = SM
//var/datum/reagents/SMR = SM
///datum/reagents
//var/mob/living/carbon/human has a holder, carbon does not
// You need to add to a holder.
// reagentS not reagent (?)
//SM.create_reagents()
SMR = locate(/datum/reagents) in SM
SMR.add_reagent("SDGFheal", volume)
//Really hacky way to deal with this stupid problem I have
SM.reagents.add_reagent("SDGFheal", volume)
//holder.add_reagent("SDGFheal", volume)
holder.remove_reagent(src.id, 999)
//SMR = locate(/datum/reagents in SM)
//holder.trans_to(SMR, volume)
return
//BALANCE: should I make them a pacifist, or give them some cellular damage or weaknesses?
//after_success(user, SM)
@@ -410,7 +399,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
/datum/reagent/fermi/SDGFheal/on_mob_life(mob/living/carbon/M)//Used to heal the clone after splitting, the clone spawns damaged. (i.e. insentivies players to make more than required, so their clone doesn't have to be treated)
if(M.blood_volume < BLOOD_VOLUME_NORMAL)
M.blood_volume += 10
M.adjustCloneLoss(-2.5, 0)
M.adjustCloneLoss(-2, 0)
M.setBrainLoss(-1)
M.nutrition += 10
@@ -424,6 +413,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
/datum/reagent/fermi/SDGFtox/on_mob_life(mob/living/carbon/M)//Used to heal the clone after splitting - the clone spawns damaged. (i.e. insentivies players to make more than required, so their clone doesn't have to be treated)
M.blood_volume -= 10
M.adjustCloneLoss(2, 0)
..()
//Fail state of SDGF
/datum/reagent/fermi/SDZF
@@ -508,6 +498,16 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
metabolization_rate = 0.5
var/mob/living/carbon/human/H
/datum/reagent/fermi/BElarger/on_mob_add(mob/living/carbon/M)
var/mob/living/carbon/human/H = M
var/obj/item/organ/genital/breasts/B = H.getorganslot("breasts")
if(!B)
return
var/sizeConv = list("a" = 1, "b" = 2, "c" = 3, "d" = 4, "e" = 5)
B.prev_size = B.size
B.cached_size = [sizeConv[B.size]]
message_admins("init B size: [B.size], prev: [B.prev_size], cache = [B.cached_size], raw: [sizeConv[B.size]]")
/datum/reagent/fermi/BElarger/on_mob_life(mob/living/carbon/M) //Increases breast size
var/mob/living/carbon/human/H = M
var/obj/item/organ/genital/breasts/B = M.getorganslot("breasts")
@@ -529,7 +529,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
M.reagents.remove_reagent(src.id, 5)
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]")
//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)
if(H.w_uniform || H.wear_suit)
@@ -553,7 +553,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
if(P)
P.length = P.length - 0.1
message_admins("Breast size: [P.size], [P.cached_length], [holder]")
message_admins("lewdsnek size: [P.size], [P.cached_length], [holder]")
P.update()
if(T)
T.Remove(M)
@@ -760,10 +760,9 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
if(prob(20))
var/list/seen = viewers(5, get_turf(M))//Sound and sight checkers
for(var/victim in seen)
to_chat(M, "You notice [victim]'s bulge, OwO!")
to_chat(M, "You notice [victim]'s bulge [pick("OwO!", "UwU!")]")
if(21)
message_admins("holder define: [holder]")
var/obj/item/organ/tongue/T = M.getorganslot(BODY_ZONE_PRECISE_MOUTH)
var/obj/item/organ/tongue/T = M.getorganslot(ORGAN_SLOT_TONGUE)
var/obj/item/organ/tongue/nT = new /obj/item/organ/tongue/OwO
T.Remove(M)
nT.Insert(M)