mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-13 17:08:53 +01:00
impregnation update
This commit is contained in:
@@ -24,7 +24,7 @@
|
||||
var/moving_diagonally = 0 //0: not doing a diagonal move. 1 and 2: doing the first/second step of the diagonal move
|
||||
var/list/client_mobs_in_contents // This contains all the client mobs within this container
|
||||
var/list/acted_explosions //for explosion dodging
|
||||
glide_size = 14
|
||||
glide_size = 13
|
||||
appearance_flags = TILE_BOUND|PIXEL_SCALE
|
||||
var/datum/forced_movement/force_moving = null //handled soley by forced_movement.dm
|
||||
var/floating = FALSE
|
||||
|
||||
@@ -576,9 +576,10 @@
|
||||
//h13 assign your characters custom height.
|
||||
if (H.custom_body_size > 0)
|
||||
H.resize = (H.custom_body_size * 0.01)
|
||||
//Move large characters up slightly. small character dont really need this.
|
||||
H.pixel_y = min(((H.custom_body_size-100) * 0.25), 0)
|
||||
|
||||
//h13 give your starting impregchance (30%)
|
||||
if (H.breedable == TRUE)
|
||||
H.impregchance = 30
|
||||
|
||||
. = H
|
||||
new_character = .
|
||||
|
||||
@@ -53,8 +53,10 @@
|
||||
|
||||
var/mob_size = MOB_SIZE_HUMAN
|
||||
|
||||
//H13 custom body size
|
||||
//H13 custom body size and impregnation
|
||||
var/custom_body_size = 1
|
||||
var/breedable = 0
|
||||
var/impregchance = 0
|
||||
|
||||
|
||||
var/list/mob_biotypes = list(MOB_ORGANIC)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/obj/item/pregnancytest
|
||||
name = "pregnancy test"
|
||||
desc = "a one time use small device, used to determine if someone is pregnant or not. Also comes with a force feature to freak out your ex (alt click)."
|
||||
desc = "a one time use small device, used to determine if someone is pregnant or not."
|
||||
icon = 'hyperstation/icons/obj/pregnancytest.dmi'
|
||||
throwforce = 0
|
||||
icon_state = "ptest"
|
||||
@@ -22,34 +22,22 @@
|
||||
return //Already been used once, pregnancy tests only work once.
|
||||
test(user)
|
||||
|
||||
|
||||
/obj/item/pregnancytest/AltClick(mob/living/user)
|
||||
if(QDELETED(src))
|
||||
return
|
||||
if(!isliving(user))
|
||||
return
|
||||
if(isAI(user))
|
||||
return
|
||||
if(user.stat > 0)//unconscious or dead
|
||||
return //Already been used once, pregnancy tests only work once.
|
||||
if(status == 1)
|
||||
return
|
||||
force(user)
|
||||
|
||||
/obj/item/pregnancytest/proc/force(mob/living/user)
|
||||
//just for fun or roleplay, force it.
|
||||
results = "positive"
|
||||
icon_state = "positive"
|
||||
status = 1
|
||||
name = "[results] pregnancy test"
|
||||
to_chat(user, "<span class='notice'>You force the device to read possive.</span>")
|
||||
|
||||
|
||||
|
||||
/obj/item/pregnancytest/proc/test(mob/living/user)
|
||||
//This is where the pregancy checker would be, if and when pregnancy is coded. SO we can always assume the person is not pregnant because there is no code for it.
|
||||
results = "negative"
|
||||
//Force it negative
|
||||
icon_state = "negative"
|
||||
name = "[results] pregnancy test"
|
||||
status = 1
|
||||
to_chat(user, "<span class='notice'>You use the pregnancy test, after a pause one pink line lights up on the display, reading negative.</span>")
|
||||
to_chat(user, "<span class='notice'>You use the pregnancy test, the display reads positive!</span>")
|
||||
|
||||
|
||||
/obj/item/pregnancytest/proc/test(mob/living/user)
|
||||
|
||||
var/obj/item/organ/genital/womb/W = user.getorganslot("womb")
|
||||
if(W.pregnant == 1)
|
||||
results = "positive"
|
||||
icon_state = "positive"
|
||||
name = "[results] pregnancy test"
|
||||
status = 1
|
||||
to_chat(user, "<span class='notice'>You use the pregnancy test, the display reads positive!</span>")
|
||||
else
|
||||
force(user)
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 472 B After Width: | Height: | Size: 487 B |
@@ -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"])
|
||||
|
||||
Reference in New Issue
Block a user