Merge branch 'master' into Kristopher-Uniform-Patreon

This commit is contained in:
QuoteFox
2021-04-27 19:28:13 +01:00
committed by GitHub
148 changed files with 6694 additions and 5936 deletions
+26 -17
View File
@@ -321,7 +321,7 @@
setArousalLoss(min_arousal)
/mob/living/carbon/human/proc/mob_climax_partner(obj/item/organ/genital/G, mob/living/L, spillage = TRUE, impreg = FALSE,cover = FALSE, 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,cover = FALSE,remote = FALSE, mb_time = 30) //Used for climaxing with any living thing
var/total_fluids = 0
var/datum/reagents/fluid_source = null
@@ -334,10 +334,14 @@
fluid_source = G.linked_organ.reagents
total_fluids = fluid_source.total_volume
if(mb_time) //Skip warning if this is an instant climax.
if(mb_time && !remote) //Skip warning if this is an instant climax.
src.visible_message("<span class='love'>[src] is about to climax with [L]!</span>", \
"<span class='userlove'>You're about to climax with [L]!</span>", \
"<span class='userlove'>You're preparing to climax with something!</span>")
if(remote)
src.visible_message("<span class='love'>[src] is about to climax with someone!</span>", \
"<span class='userlove'>You're about to climax with someone!</span>", \
"<span class='userlove'>You're preparing to climax with something!</span>")
if(cover)//covering the partner in cum, this overrides other options.
if(do_after(src, mb_time, target = src) && in_range(src, L))
@@ -369,7 +373,9 @@
setArousalLoss(min_arousal)
if(spillage && !cover)
if(do_after(src, mb_time, target = src) && in_range(src, L))
if(do_after(src, mb_time, target = src))
if(!in_range(src, L) && !remote)
return
fluid_source.trans_to(L, total_fluids*G.fluid_transfer_factor)
total_fluids -= total_fluids*G.fluid_transfer_factor
if(total_fluids > 5)
@@ -411,19 +417,21 @@
if(impreg)
//Role them odds, only people with the dicks can send the chance to the person with the settings enabled at the momment.
var/obj/item/organ/genital/womb/W = L.getorganslot("womb")
if (L.breedable == 1 && W.pregnant == 0) //Dont get pregnant again, if you are pregnant.
log_game("Debug: [L] has been impregnated by [src]")
to_chat(L, "<span class='userlove'>You feel your hormones change, and a motherly instinct take over.</span>") //leting them know magic has happened.
W.pregnant = 1
if (HAS_TRAIT(L, TRAIT_HEAT))
SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "heat", /datum/mood_event/heat) //well done you perv.
REMOVE_TRAIT(L, TRAIT_HEAT, type) //take the heat away, you satisfied it!
if(prob(L.impregchance))
var/obj/item/organ/genital/womb/W = L.getorganslot("womb")
if(W) //check if they have a womb.
if (L.breedable == 1 && W.pregnant == 0) //Dont get pregnant again, if you are pregnant.
log_game("Debug: [L] has been impregnated by [src]")
to_chat(L, "<span class='userlove'>You feel your hormones change, and a motherly instinct take over.</span>") //leting them know magic has happened.
W.pregnant = 1
if (HAS_TRAIT(L, TRAIT_HEAT))
SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "heat", /datum/mood_event/heat) //well done you perv.
REMOVE_TRAIT(L, TRAIT_HEAT, type) //take the heat away, you satisfied it!
//Make breasts produce quicker.
var/obj/item/organ/genital/breasts/B = L.getorganslot("breasts")
if (B.fluid_mult < 0.5 && B)
B.fluid_mult = 0.5
//Make breasts produce quicker.
var/obj/item/organ/genital/breasts/B = L.getorganslot("breasts")
if (B.fluid_mult < 0.5 && B)
B.fluid_mult = 0.5
/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
@@ -458,9 +466,10 @@
if(do_after(src, mb_time, target = src) && in_range(src, container))
fluid_source.trans_to(container, total_fluids)
src.visible_message("<span class='love'>[src] uses [p_their()] [G.name] to fill [container]!</span>", \
"<span class='userlove'>You used your [G.name] to fill [container].</span>", \
"<span class='userlove'>You used your [G.name] and fill [container] with a total of [total_fluids]u's.</span>", \
"<span class='userlove'>You have relieved some pressure.</span>")
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm)
container.add_cum_overlay() //your aim is bad...
if(G.can_climax)
setArousalLoss(min_arousal)
@@ -491,7 +500,7 @@
if(!G.dontlist)
genitals_list += G
if(genitals_list.len)
ret_organ = input(src, "", "Gentials", null) as null|obj in genitals_list
ret_organ = input(src, "", "Genitals", null) as null|obj in genitals_list
return ret_organ
return null //error stuff
@@ -430,12 +430,12 @@
//otherwise, appear under clothing
if(G.slot == "penis" || G.slot == "testicles")
if(G.size < 3) //is actually "less than 11 inches"
genital_overlay.layer = -GENITALS_UNDER_LAYER
genital_overlay.layer = -GENITALS_UNDER_LAYER
if(G.slot == "breasts")
var/obj/item/organ/genital/breasts/B = G
if(B.cached_size < 8) //anything smaller than a g-cup
genital_overlay.layer = -GENITALS_UNDER_LAYER
//Get the icon
genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size]_[aroused_state]_[layertext]"
colourcode = S.color_src
@@ -99,16 +99,23 @@
path = /obj/item/clothing/head/crystalline
ckeywhitelist = list("dragontrance")
/datum/gear/lyricalpawsplush
name = "Winter Dawn Plushie"
category = SLOT_IN_BACKPACK
path = /obj/item/toy/plush/mammal/lyricalpaws
ckeywhitelist = list("lyricalpaws")
/datum/gear/lyricalpawssuit
name = "Fleet Commander's Overcoat"
category = SLOT_IN_BACKPACK
path = /obj/item/clothing/suit/hooded/wintercoat/chloe
path = /obj/item/clothing/suit/chloe
ckeywhitelist = list("lyricalpaws")
/datum/gear/lyricalpawshat
name = "Fleet Commander's Beret"
category = SLOT_IN_BACKPACK
path = /obj/item/clothing/head/chloe
cost = 0
ckeywhitelist = list("lyricalpaws")
datum/gear/darksabresheath
name = "Dark Sabre Sheath"
category = SLOT_IN_BACKPACK
path = /obj/item/storage/belt/sabre/chloesabre
ckeywhitelist = list("lyricalpaws")
/datum/gear/cherostavikmask
@@ -175,12 +175,12 @@
name = "Teal Lipstick"
category = SLOT_IN_BACKPACK
path = /obj/item/lipstick/teal
/datum/gear/lipstick_fuchsia
name = "Fuchsia Lipstick"
category = SLOT_IN_BACKPACK
path = /obj/item/lipstick/fuchsia
/datum/gear/lipstick_navy
name = "Navy Blue Lipstick"
category = SLOT_IN_BACKPACK
@@ -196,6 +196,46 @@
category = SLOT_IN_BACKPACK
path = /obj/item/lipstick/white
/datum/gear/nailpolish_red
name = "Red Nail Polish"
category = SLOT_IN_BACKPACK
path = /obj/item/nailpolish/red
/datum/gear/nailpolish_blue
name = "Blue Nail Polish"
category = SLOT_IN_BACKPACK
path = /obj/item/nailpolish/blue
/datum/gear/nailpolish_aqua
name = "Cyan Nail Polish"
category = SLOT_IN_BACKPACK
path = /obj/item/nailpolish/aqua
/datum/gear/nailpolish_black
name = "Black Nail Polish"
category = SLOT_IN_BACKPACK
path = /obj/item/nailpolish/black
/datum/gear/nailpolish_white
name = "White Nail Polish"
category = SLOT_IN_BACKPACK
path = /obj/item/nailpolish/white
/datum/gear/nailpolish_navy
name = "Navy Nail Polish"
category = SLOT_IN_BACKPACK
path = /obj/item/nailpolish/navy
/datum/gear/nailpolish_yellow
name = "Yellow Nail Polish"
category = SLOT_IN_BACKPACK
path = /obj/item/nailpolish/yellow
/datum/gear/nailpolish_purple
name = "Purple Nail Polish"
category = SLOT_IN_BACKPACK
path = /obj/item/nailpolish/purple
/datum/gear/condom
name = "Condom"
category = SLOT_IN_BACKPACK
@@ -50,8 +50,8 @@ GLOBAL_LIST_EMPTY(loadout_whitelist_ids)
var/path //item-to-spawn path
var/cost = 1 //normally, each loadout costs a single point.
var/geargroupID //defines the ID that the gear inherits from the config
var/list/restricted_roles
var/list/ckeywhitelist
var/list/restricted_roles = list()
var/list/ckeywhitelist = list()
var/restricted_desc
var/blacklist_join_equip = FALSE //If we don't equip this when we join
@@ -56,7 +56,6 @@
datum/preferences/copy_to(mob/living/carbon/human/character, icon_updates = 1)
..()
character.give_genitals(TRUE)
character.flavor_text = features["flavor_text"] //Let's update their flavor_text at least initially
character.ooc_text = features["ooc_text"] //Let's update their flavor_text at least initially
character.canbearoused = arousable
character.client?.prefs.lewdchem = lewdchem
@@ -85,6 +85,7 @@
WRITE_FILE(S["feature_can_get_preg"], features["can_get_preg"])
//flavor text
WRITE_FILE(S["feature_flavor_text"], features["flavor_text"])
WRITE_FILE(S["feature_silicon_flavor_text"], features["silicon_flavor_text"])
WRITE_FILE(S["feature_ooc_text"], features["ooc_text"])
//custom job titles
WRITE_FILE(S["alt_titles_preferences"], alt_titles_preferences)
@@ -1558,6 +1558,14 @@ datum/sprite_accessory/mam_tails/insect
name = "Wolf"
icon_state = "wolf"
/datum/sprite_accessory/mam_tails/spade
name = "Demon Spade"
icon_state = "spade"
/datum/sprite_accessory/mam_tails_animated/spade
name = "Demon Spade"
icon_state = "spade"
/datum/sprite_accessory/mam_tails/synthliz
recommended_species = list("synthliz")
color_src = MUTCOLORS
@@ -12,7 +12,6 @@
glass_icon_state = "semen"
glass_name = "chalice of semen"
glass_desc = "In the Sumerian mythology, Enki - the God of water, was believed to have created the Tigris and Euphrates rivers by masturbating and ejaculating into their empty riverbeds."
hydration = 2 * REAGENTS_METABOLISM //thats one way to stay hydrated...
/datum/reagent/consumable/semen/reaction_turf(turf/T, reac_volume)
if(!istype(T))
@@ -56,7 +55,6 @@
color = "#AAAAAA77"
can_synth = FALSE
nutriment_factor = 0.5 * REAGENTS_METABOLISM
hydration = 1 * REAGENTS_METABOLISM //thats one way to stay hydrated...
/obj/effect/decal/cleanable/femcum
name = "female ejaculate"