Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Fluid Trait #1145

Open
wants to merge 21 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
15c2c1f
Трубы + лодаут.
Krashly Oct 19, 2023
ac0ee37
Revert "Трубы + лодаут."
Krashly Oct 19, 2023
083c0e1
Revert "Revert "Трубы + лодаут.""
Krashly Oct 19, 2023
980a220
Merge branch 'BlueMoon-Labs:master' into master
Krashly Oct 19, 2023
d11bf42
Merge branch 'BlueMoon-Labs:master' into master
Krashly Oct 21, 2023
b042f16
Merge branch 'BlueMoon-Labs:master' into master
Krashly Oct 21, 2023
84d21a4
Merge branch 'BlueMoon-Labs:master' into master
Krashly Oct 24, 2023
068527e
Merge branch 'BlueMoon-Labs:master' into master
Krashly Oct 27, 2023
c8bcc36
Create readme.txt
Krashly Nov 9, 2023
12e9ad6
Merge branch 'master' of https://github.com/BlueMoon-Labs/MOLOT-BlueM…
Krashly Nov 9, 2023
dd3eba5
Merge branch 'master' of https://github.com/Krashly/BlueMoon-Station-13
Krashly Nov 9, 2023
0147519
Merge branch 'BlueMoon-Labs:master' into master
Krashly Apr 3, 2024
fd70eb1
Merge branch 'BlueMoon-Labs:master' into master
Krashly Jul 17, 2024
02d72fd
Merge branch 'master' of https://github.com/Krashly/BlueMoon-Station-13
Krashly Jul 19, 2024
b39595a
New Trait
Krashly Jul 20, 2024
48e0978
pizda
Krashly Jul 20, 2024
62fe74c
Delete modular_bluemoon/krashly/readme.txt
Krashly Jul 20, 2024
2eefda9
Fixes and Renaming
Krashly Aug 26, 2024
71ab3b5
Улучшаем производительность
Krashly Aug 26, 2024
db17520
Merge https://github.com/BlueMoon-Labs/MOLOT-BlueMoon-Station into pr…
SmiLeYre Sep 24, 2024
dabf6b4
Merge https://github.com/BlueMoon-Labs/MOLOT-BlueMoon-Station into pr…
SmiLeYre Sep 25, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion code/__DEFINES/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -290,7 +290,11 @@
//used because it's more reliable than checking for the component
#define TRAIT_DULLAHAN "dullahan"

#define TRAIT_AKIMBO "akimbo"
#define TRAIT_AKIMBO "akimbo" // BLUEMOON ADDITION
#define TRAIT_FLUID "fluid" // BLUEMOON ADDITION
#define TRAIT_FLUID_TITS "fluid_tits" // BLUEMOON ADDITION
#define TRAIT_FLUID_WOMB "fluid_womb" // BLUEMOON ADDITION
#define TRAIT_FLUID_PENIS "fluid_penis" // BLUEMOON ADDITION


// mobility flag traits
Expand Down
2 changes: 2 additions & 0 deletions code/datums/components/mood.dm
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,8 @@
HandleNutrition(owner)
HandleThirst(owner)

HandleFluid(owner) // BLUEMOON ADDITION

/datum/component/mood/proc/setSanity(amount, minimum=SANITY_INSANE, maximum=SANITY_NEUTRAL)//I'm sure bunging this in here will have no negative repercussions.
var/mob/living/master = parent

Expand Down
6 changes: 6 additions & 0 deletions code/modules/arousal/arousal.dm
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@
if(condomning)
to_chat(src, "<span class='userlove'>Ты чувствуешь, как презерватив наполняется изнутри твоей спермой!</span>")
R.trans_to(condomning, R.total_volume)
sender.fluid_volume = 0
else
if(spill && R.total_volume > 0)
var/turf/location = get_turf(target)
Expand All @@ -99,12 +100,14 @@
if(istype(sender, /obj/item/organ/genital/penis))
if(S)
if(R.trans_to(S, R.total_volume))
sender.fluid_volume = 0
S.blood_DNA |= get_blood_dna_list()
S.update_icon()
return
else
var/obj/effect/decal/cleanable/semendrip/drip = (locate(/obj/effect/decal/cleanable/semendrip) in location) || new(location)
if(R.trans_to(drip, R.total_volume))
sender.fluid_volume = 0
drip.blood_DNA |= get_blood_dna_list()
drip.update_icon()
if(drip.reagents.total_volume >= 10)
Expand All @@ -117,12 +120,14 @@
if(istype(sender, /obj/item/organ/genital/vagina))
if(F)
if(R.trans_to(F, R.total_volume))
sender.fluid_volume = 0
F.blood_DNA |= get_blood_dna_list()
F.update_icon()
return
else
F = new(location)
if(R.trans_to(F, R.total_volume))
sender.fluid_volume = 0
F.blood_DNA |= get_blood_dna_list()
F.update_icon()
return
Expand All @@ -139,6 +144,7 @@
if(copy.total_volume > 0)
cummed_on.apply_status_effect(STATUS_EFFECT_DRIPPING_CUM, copy, get_blood_dna_list(), receiver)
R.trans_to(target, amount_to_transfer, log = TRUE)
sender.fluid_volume = 0
//
sender.last_orgasmed = world.time
R.clear_reagents()
Expand Down
2 changes: 1 addition & 1 deletion code/modules/arousal/genitals.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
var/fluid_transfer_factor = 0 //How much would a partner get in them if they climax using this?
var/size = 2 //can vary between num or text, just used in icon_state strings
var/datum/reagent/fluid_id = null
var/fluid_max_volume = 50
var/fluid_max_volume = 100 // BLUEMOON EDIT || 50 to 100
var/fluid_efficiency = 1
var/fluid_rate = CUM_RATE
var/fluid_mult = 1
Expand Down
11 changes: 11 additions & 0 deletions code/modules/mob/living/carbon/human/examine.dm
Original file line number Diff line number Diff line change
Expand Up @@ -523,6 +523,17 @@
if (!isnull(trait_exam))
msg += trait_exam

if(HAS_TRAIT(user, TRAIT_FLUID))
if(HAS_TRAIT(user, TRAIT_FLUID_TITS))
if(breasts_protechka_examine != null)
. += breasts_protechka_examine
if(HAS_TRAIT(user, TRAIT_FLUID_PENIS))
if(penis_protechka_examine != null)
. += penis_protechka_examine
if(HAS_TRAIT(user, TRAIT_FLUID_WOMB))
if(womb_protechka_examine != null)
. += womb_protechka_examine

var/scar_severity = 0
for(var/i in all_scars)
var/datum/scar/S = i
Expand Down
14 changes: 14 additions & 0 deletions modular_bluemoon/SmiLeY/code/serverside/pronouns_ru.dm
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@
/datum/proc/ru_aya_oy(temp_gender)
. = "ой"

/datum/proc/ru_oy_im(temp_gender)
. = "ым"

//like clients, which do have gender.
/client/ru_who(capitalized, temp_gender)
Expand Down Expand Up @@ -128,6 +130,18 @@
if(capitalized)
. = capitalize(.)

/atom/ru_oy_im(capitalized, temp_gender) // Я чувствую себя свободн(ым/ой)
if(!temp_gender)
temp_gender = gender
. = "ым"
switch(temp_gender)
if(FEMALE)
. = "ой"
if(MALE)
. = "ым"
if(capitalized)
. = capitalize(.)

//mobs(and atoms but atoms don't really matter write your own proc overrides) also have gender!
/atom/ru_who(capitalized, temp_gender)
if(!temp_gender)
Expand Down
12 changes: 12 additions & 0 deletions modular_bluemoon/krashly/code/modules/sexfluids_limits/_limits.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#define MAX_FLUID 300
#define OCHEN_BLIZKO_FLUID 280
Krashly marked this conversation as resolved.
Show resolved Hide resolved
#define BLIZKO_TO_MAX_FLUID 200
#define SREDNE_FLUID 150
#define MIN_FLUID 0

#define MIN_FLUID_SPAWN 100
#define MAX_FLUID_SPAWN 200

#define NETU 1
Krashly marked this conversation as resolved.
Show resolved Hide resolved
#define CHUTKA 2
#define OVERDOHUYA 3
101 changes: 101 additions & 0 deletions modular_bluemoon/krashly/code/modules/sexfluids_limits/effects.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
/obj/effect/decal/cleanable/fluidrip
name = "fluid"
density = 0
layer = ABOVE_NORMAL_TURF_LAYER
icon = 'modular_bluemoon/krashly/code/modules/sexfluids_limits/icons/drips.dmi'
icon_state = "drip1"
random_icon_states = list("drip1", "drip2", "drip3", "drip4", "drip5")

/obj/effect/decal/cleanable/fluidrip/replace_decal(obj/effect/decal/cleanable/fluidrip/C)
. = ..()
if(!. || QDELETED(src))
return FALSE
var/obj/effect/decal/cleanable/fluid/S = (locate(/obj/effect/decal/cleanable/fluid) in C.loc)
if(S) // Merge ourselves into this puddle.
reagents.trans_to(S, reagents.total_volume)
S.transfer_blood_dna(blood_DNA)
update_icon()
return TRUE
reagents.trans_to(C, reagents.total_volume)
C.transfer_blood_dna(blood_DNA)
if(C.reagents.total_volume >= 10) // Turn the drip into a puddle.
S = new(C.loc)
C.reagents.trans_to(S, C.reagents.total_volume)
C.transfer_blood_dna(S.blood_DNA)
S.update_icon()
qdel(C)
update_icon()

/obj/effect/decal/cleanable/fluidrip/update_icon()
. = ..()
add_atom_colour(mix_color_from_reagents(reagents.reagent_list), FIXED_COLOUR_PRIORITY)

///

/obj/effect/decal/cleanable/fluid
name = "fluid"
desc = null
gender = PLURAL
density = 0
layer = ABOVE_NORMAL_TURF_LAYER
icon = 'modular_bluemoon/krashly/code/modules/sexfluids_limits/icons/drips.dmi'
icon_state = "pool"

/obj/effect/decal/cleanable/fluid/Initialize(mapload)
. = ..()
dir = GLOB.cardinals
if(mapload)
reagents.add_reagent(/datum/reagent/consumable/fluid, 10)
add_blood_DNA(list("Non-human DNA" = "A+"))
update_icon()

/obj/effect/decal/cleanable/fluid/replace_decal(obj/effect/decal/cleanable/fluid/S)
if(reagents.total_volume > 0)
reagents.trans_to(S.reagents, reagents.total_volume)
if(blood_DNA)
S.blood_DNA |= blood_DNA
S.update_icon()
return ..()

/obj/effect/decal/cleanable/fluid/update_icon()
. = ..()
if(QDELETED(src) || !reagents)
return
add_atom_colour(mix_color_from_reagents(reagents.reagent_list), FIXED_COLOUR_PRIORITY)

///

/datum/reagent/consumable/fluid
name = "Fluid"
description = "Fluid from some animal. Useless for anything but insemination, really."
taste_description = "something salty"
taste_mult = 2 //Not very overpowering flavor
data = list("donor"=null,"viruses"=null,"donor_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null)
reagent_state = LIQUID
color = "#FFFFFF" // rgb: 255, 255, 255
can_synth = FALSE
// you know i wouldn't
// boiling_point = T0C + 100
nutriment_factor = 0.5 * REAGENTS_METABOLISM
var/decal_path = /obj/effect/decal/cleanable/fluid

/datum/reagent/consumable/fluid/reaction_turf(turf/location, reac_volume)
..()
if(!istype(location))
return

var/obj/effect/decal/cleanable/fluid/S = locate(/obj/effect/decal/cleanable/fluid) in location
if(S)
if(S.reagents.add_reagent(type, volume, data))
S.update_icon()
return

var/obj/effect/decal/cleanable/fluidrip/drip = (locate(/obj/effect/decal/cleanable/fluidrip) in location) || new(location)
if(drip.reagents.add_reagent(type, volume, data))
drip.update_icon()
if(drip.reagents.total_volume >= 10)
S = new(location)
drip.reagents.trans_to(S, drip.reagents.total_volume)
S.update_icon()
qdel(drip)
return
Binary file not shown.
Binary file not shown.
Loading
Loading