impregnation update

This commit is contained in:
quotefox
2019-10-25 17:03:19 +01:00
parent f99aa635e3
commit ab375c58d0
9 changed files with 68 additions and 39 deletions
@@ -301,7 +301,7 @@
setArousalLoss(min_arousal)
/mob/living/carbon/human/proc/mob_climax_partner(obj/item/organ/genital/G, mob/living/L, spillage = TRUE, mb_time = 30) //Used for climaxing with any living thing
/mob/living/carbon/human/proc/mob_climax_partner(obj/item/organ/genital/G, mob/living/L, spillage = TRUE, impreg = FALSE, mb_time = 30) //Used for climaxing with any living thing
var/total_fluids = 0
var/datum/reagents/fluid_source = null
@@ -329,8 +329,11 @@
"<span class='userlove'>You have climaxed with someone[spillage ? ", spilling out of them":""], using your [G.name].</span>")
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm)
SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm)
if(G.can_climax)
setArousalLoss(min_arousal)
else //knots and other non-spilling orgasms
if(do_after(src, mb_time, target = src) && in_range(src, L))
fluid_source.trans_to(L, total_fluids)
@@ -340,9 +343,17 @@
"<span class='userlove'>You have climaxed inside someone, your [G.name] spilling nothing.</span>")
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm)
SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm)
if(G.can_climax)
setArousalLoss(min_arousal)
if(impreg)
//Role them odds, only people with the dicks can send the chance to the person with the settings enabled at the momment.
if (rand(0,100) < L.impregchance && L.breedable == 1)
log_game("Debug: [L] has been impregnated by [src]")
var/obj/item/organ/genital/womb/W = L.getorganslot("womb")
W.pregnant = 1
/mob/living/carbon/human/proc/mob_fill_container(obj/item/organ/genital/G, obj/item/reagent_containers/container, mb_time = 30) //For beaker-filling, beware the bartender
var/total_fluids = 0
@@ -555,12 +566,30 @@
if(picked_organ)
var/mob/living/partner = pick_partner() //Get someone
if(partner)
var/spillage = input(src, "Would your fluids spill outside?", "Choose overflowing option", "Yes") as anything in list("Yes", "No")
if(spillage == "Yes")
mob_climax_partner(picked_organ, partner, TRUE)
else
mob_climax_partner(picked_organ, partner, FALSE)
return
if(partner.breedable == 1 && picked_organ.name == "penis")
var/impreg = input(src, "Would this action carry the risk of pregnancy?", "Choose a option", "Yes") as anything in list("Yes", "No")
if(impreg == "Yes") //If we are impregging
var/spillage = input(src, "Would your fluids spill outside?", "Choose overflowing option", "Yes") as anything in list("Yes", "No")
if(spillage == "Yes")
mob_climax_partner(picked_organ, partner, TRUE, TRUE)
else
mob_climax_partner(picked_organ, partner, FALSE, TRUE)
else
var/spillage = input(src, "Would your fluids spill outside?", "Choose overflowing option", "Yes") as anything in list("Yes", "No")
if(spillage == "Yes")
mob_climax_partner(picked_organ, partner, TRUE, FALSE)
else
mob_climax_partner(picked_organ, partner, FALSE, FALSE) //Wow, im trash at coding, I need to find a better way of coding this, ill rewrite it later.-quote
return
else //If we arent impregging
var/spillage = input(src, "Would your fluids spill outside?", "Choose overflowing option", "Yes") as anything in list("Yes", "No")
if(spillage == "Yes")
mob_climax_partner(picked_organ, partner, TRUE, FALSE)
else
mob_climax_partner(picked_organ, partner, FALSE, FALSE)
return
else
to_chat(src, "<span class='warning'>You cannot do this alone.</span>")
return
@@ -145,6 +145,8 @@
give_vagina()
if(dna.features["has_womb"])
give_womb()
if(dna.features["can_get_preg"])
make_breedable() //hyperstation set up the pregnancy stuff
if(dna.features["has_balls"])
give_balls()
if(dna.features["has_breasts"]) // since we have multi-boobs as a thing, we'll want to at least draw over these. but not over the pingas.
@@ -266,6 +268,10 @@
if(W)
W.update()
/mob/living/carbon/human/proc/make_breedable()
//Hyperstation, This makes the character able to use the impreg features of the game
breedable = 1
impregchance = 30 //30% is a good base chance
/datum/species/proc/genitals_layertext(layer)
switch(layer)
@@ -8,6 +8,8 @@
internal = TRUE
fluid_id = "femcum"
producing = TRUE
var/pregnant = FALSE //this is for pregnancy code
/obj/item/organ/genital/womb/on_life()
if(QDELETED(src))
@@ -72,6 +72,7 @@
WRITE_FILE(S["feature_vag_color"], features["vag_color"])
//womb features
WRITE_FILE(S["feature_has_womb"], features["has_womb"])
//pregnancy features
WRITE_FILE(S["feature_can_get_preg"], features["can_get_preg"])
//flavor text
WRITE_FILE(S["feature_flavor_text"], features["flavor_text"])