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