mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-14 17:37:04 +01:00
Cum code part 1
Fixes production and capacity, and adds a new trait
This commit is contained in:
@@ -10,8 +10,9 @@
|
||||
shape = "single"
|
||||
var/sack_size = BALLS_SACK_SIZE_DEF
|
||||
var/cached_size = 6
|
||||
fluid_mult = 0.133 // Set to a lower value due to production scaling with size (I.E. 6 inches the "normal" amount)
|
||||
fluid_max_volume = 6
|
||||
//fluid_mult = 0.133 // Set to a lower value due to production scaling with size (I.E. 6 inches the "normal" amount)
|
||||
fluid_mult = 1.0 //Defaults to 1 no matter what you do. It just does. Just gonna adapt I guess.
|
||||
fluid_max_volume = 3
|
||||
fluid_id = "semen"
|
||||
producing = TRUE
|
||||
can_masturbate_with = FALSE
|
||||
@@ -24,17 +25,19 @@
|
||||
return
|
||||
if(!reagents || !owner)
|
||||
return
|
||||
reagents.maximum_volume = fluid_max_volume * cached_size// fluid amount is also scaled by the size of the organ
|
||||
//reagents.maximum_volume = fluid_max_volume * cached_size// fluid amount is also scaled by the size of the organ
|
||||
reagents.maximum_volume = fluid_max_volume * ((cached_size / 2) + 1) * ((size / 2) + 1) * fluid_mult //Hyper - New calculation for more dynamic fluid levels. I can't believe I typed that.
|
||||
if(fluid_id && producing)
|
||||
if(reagents.total_volume == 0) // Apparently, 0.015 gets rounded down to zero and no reagents are created if we don't start it with 0.1 in the tank.
|
||||
fluid_rate = 0.1
|
||||
else
|
||||
fluid_rate = CUM_RATE * cached_size * fluid_mult // fluid rate is scaled by the size of the organ
|
||||
//fluid_rate = CUM_RATE * cached_size * fluid_mult // fluid rate is scaled by the size of the organ
|
||||
fluid_rate = ((CUM_RATE / 5) * (cached_size / 3) * (size / 4) * fluid_mult) / 10 //Hyper - Production was way too high by default. This should drop it back down, but allow for it to get really high
|
||||
generate_cum()
|
||||
|
||||
/obj/item/organ/genital/testicles/proc/generate_cum()
|
||||
reagents.maximum_volume = fluid_max_volume
|
||||
if(reagents.total_volume >= reagents.maximum_volume)
|
||||
//reagents.maximum_volume = fluid_max_volume //This is the line that broke cum for so long
|
||||
if(reagents.total_volume >= reagents.maximum_volume - 0.1) //Hyper - Check for it being close to the maximum. It sometimes doesn't proc due to a rounding error.
|
||||
if(!sent_full_message)
|
||||
send_full_message()
|
||||
sent_full_message = TRUE
|
||||
@@ -66,11 +69,14 @@
|
||||
|
||||
/obj/item/organ/genital/testicles/update_appearance()
|
||||
switch(size)
|
||||
if(0.1 to 1)
|
||||
//if(0.1 to 1) //Hyper - Change the displayed ball sizes
|
||||
if(0.1 to 3)
|
||||
size_name = "average"
|
||||
if(1.1 to 2)
|
||||
//if(1.1 to 2)
|
||||
if(3.1 to 8)
|
||||
size_name = "enlarged"
|
||||
if(2.1 to INFINITY)
|
||||
//if(2.1 to INFINITY)
|
||||
if(8.1 to INFINITY)
|
||||
size_name = "engorged"
|
||||
else
|
||||
size_name = "nonexistant"
|
||||
|
||||
@@ -251,6 +251,7 @@
|
||||
return
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/obj/item/organ/genital/penis/P = M.getorganslot("penis")
|
||||
var/obj/item/organ/genital/testicles/T = M.getorganslot("testicles") //Hyper Change
|
||||
if(!P)//They do have a preponderance for escapism, or so I've heard.
|
||||
|
||||
//If they have Acute hepatic pharmacokinesis, then route processing though liver.
|
||||
@@ -273,8 +274,33 @@
|
||||
nP.prev_length = 1
|
||||
M.reagents.remove_reagent(id, 5)
|
||||
P = nP
|
||||
|
||||
if(!T)//Hyper change// Adds testicles if there are none.
|
||||
|
||||
//If they have Acute hepatic pharmacokinesis, then route processing though liver.
|
||||
if(HAS_TRAIT(M, TRAIT_PHARMA))
|
||||
var/obj/item/organ/liver/L = M.getorganslot("liver")
|
||||
if(L)
|
||||
L.swelling+= 0.05
|
||||
return..()
|
||||
else
|
||||
M.adjustToxLoss(1)
|
||||
return..()
|
||||
|
||||
//otherwise proceed as normal
|
||||
var/obj/item/organ/genital/testicles/nT = new
|
||||
nT.Insert(M)
|
||||
if(nT)
|
||||
nT.size = BALLS_SIZE_MIN
|
||||
to_chat(M, "<span class='warning'>Your groin feels warm, as you feel two sensitive orbs taking shape below.</b></span>")
|
||||
nT.cached_size = 1
|
||||
nT.sack_size = BALLS_SACK_SIZE_DEF
|
||||
T = nT
|
||||
|
||||
P.cached_length = P.cached_length + 0.1
|
||||
//Hyper change// Increase ball size too
|
||||
T.size = T.size + 0.1
|
||||
|
||||
if (P.cached_length >= 20.5 && P.cached_length < 21)
|
||||
if(H.w_uniform || H.wear_suit|| H.arousalloss > 33)
|
||||
//Hyper change// Check for a flag before we remove clothes.
|
||||
@@ -286,6 +312,7 @@
|
||||
to_chat(M, "<span class='warning'>Your cock begins to strain against your clothes tightly!</b></span>")
|
||||
M.apply_damage(1, BRUTE, target)
|
||||
|
||||
T.update() //Hyper change - Make the ball size update
|
||||
P.update()
|
||||
..()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user