Fixes genital fuid production.
This commit is contained in:
@@ -68,7 +68,7 @@
|
|||||||
R.reaction(turfing ? target : target.loc, TOUCH, 1, 0)
|
R.reaction(turfing ? target : target.loc, TOUCH, 1, 0)
|
||||||
if(!turfing)
|
if(!turfing)
|
||||||
R.trans_to(target, R.total_volume * (spill ? G.fluid_transfer_factor : 1))
|
R.trans_to(target, R.total_volume * (spill ? G.fluid_transfer_factor : 1))
|
||||||
G.time_since_last_orgasm = 0
|
G.last_orgasmed = world.time
|
||||||
R.clear_reagents()
|
R.clear_reagents()
|
||||||
|
|
||||||
/mob/living/carbon/human/proc/mob_climax_outside(obj/item/organ/genital/G, mb_time = 30) //This is used for forced orgasms and other hands-free climaxes
|
/mob/living/carbon/human/proc/mob_climax_outside(obj/item/organ/genital/G, mb_time = 30) //This is used for forced orgasms and other hands-free climaxes
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
var/fluid_efficiency = 1
|
var/fluid_efficiency = 1
|
||||||
var/fluid_rate = CUM_RATE
|
var/fluid_rate = CUM_RATE
|
||||||
var/fluid_mult = 1
|
var/fluid_mult = 1
|
||||||
var/time_since_last_orgasm = 500
|
var/last_orgasmed = 0
|
||||||
var/aroused_state = FALSE //Boolean used in icon_state strings
|
var/aroused_state = FALSE //Boolean used in icon_state strings
|
||||||
var/obj/item/organ/genital/linked_organ
|
var/obj/item/organ/genital/linked_organ
|
||||||
var/linked_organ_slot //used for linking an apparatus' organ to its other half on update_link().
|
var/linked_organ_slot //used for linking an apparatus' organ to its other half on update_link().
|
||||||
@@ -24,10 +24,6 @@
|
|||||||
|
|
||||||
/obj/item/organ/genital/Initialize(mapload, do_update = TRUE)
|
/obj/item/organ/genital/Initialize(mapload, do_update = TRUE)
|
||||||
. = ..()
|
. = ..()
|
||||||
if(fluid_id)
|
|
||||||
create_reagents(fluid_max_volume, NONE, NO_REAGENTS_VALUE)
|
|
||||||
if(CHECK_BITFIELD(genital_flags, GENITAL_FUID_PRODUCTION))
|
|
||||||
reagents.add_reagent(fluid_id, fluid_max_volume)
|
|
||||||
if(do_update)
|
if(do_update)
|
||||||
update()
|
update()
|
||||||
|
|
||||||
@@ -140,8 +136,6 @@
|
|||||||
/obj/item/organ/genital/proc/modify_size(modifier, min = -INFINITY, max = INFINITY)
|
/obj/item/organ/genital/proc/modify_size(modifier, min = -INFINITY, max = INFINITY)
|
||||||
fluid_max_volume += modifier*2.5
|
fluid_max_volume += modifier*2.5
|
||||||
fluid_rate += modifier/10
|
fluid_rate += modifier/10
|
||||||
if(reagents)
|
|
||||||
reagents.maximum_volume = fluid_max_volume
|
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/item/organ/genital/proc/update_size()
|
/obj/item/organ/genital/proc/update_size()
|
||||||
@@ -151,18 +145,14 @@
|
|||||||
if(!owner || owner.stat == DEAD)
|
if(!owner || owner.stat == DEAD)
|
||||||
aroused_state = FALSE
|
aroused_state = FALSE
|
||||||
|
|
||||||
/obj/item/organ/genital/on_life()
|
|
||||||
. = ..()
|
|
||||||
if(!reagents || !.)
|
|
||||||
return
|
|
||||||
reagents.maximum_volume = fluid_max_volume
|
|
||||||
if(fluid_id && CHECK_BITFIELD(genital_flags, GENITAL_FUID_PRODUCTION))
|
|
||||||
time_since_last_orgasm++
|
|
||||||
|
|
||||||
/obj/item/organ/genital/proc/generate_fluid(datum/reagents/R)
|
/obj/item/organ/genital/proc/generate_fluid(datum/reagents/R)
|
||||||
var/amount = clamp(fluid_rate * time_since_last_orgasm * fluid_mult,0,fluid_max_volume)
|
var/amount = clamp((fluid_rate * ((world.time - last_orgasmed) / SSmobs.wait) * fluid_mult),0,fluid_max_volume)
|
||||||
R.clear_reagents()
|
R.clear_reagents()
|
||||||
R.add_reagent(fluid_id,amount)
|
R.maximum_volume = fluid_max_volume
|
||||||
|
if(fluid_id)
|
||||||
|
R.add_reagent(fluid_id,amount)
|
||||||
|
else if(linked_organ?.fluid_id)
|
||||||
|
R.add_reagent(linked_organ.fluid_id,amount)
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
/obj/item/organ/genital/proc/update_link()
|
/obj/item/organ/genital/proc/update_link()
|
||||||
|
|||||||
Reference in New Issue
Block a user