Everything fixed.
BE largement (probably) fully functional PE I think has issues ripping clothes?
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user