From 9dcb99690154f2ffdd89439ad469deb548237af5 Mon Sep 17 00:00:00 2001 From: SandPoot Date: Sat, 4 Nov 2023 01:11:52 -0300 Subject: [PATCH] additional --- code/modules/arousal/arousal.dm | 24 +++++++++++++-- .../chemistry/reagents/other_reagents.dm | 30 +++++++++++-------- .../effects/decals/cleanable/lewd_decals.dm | 3 +- 3 files changed, 41 insertions(+), 16 deletions(-) diff --git a/code/modules/arousal/arousal.dm b/code/modules/arousal/arousal.dm index 2cbd56d6ab..12037f695d 100644 --- a/code/modules/arousal/arousal.dm +++ b/code/modules/arousal/arousal.dm @@ -72,8 +72,28 @@ var/turfing = isturf(target) G.generate_fluid(R) log_message("Climaxed using [G] with [target]", LOG_EMOTE) - if(spill && R.total_volume >= 5) - R.reaction(turfing ? target : target.loc, TOUCH, 1, 0) + if(spill && R.total_volume > 0) + var/turf/location = get_turf(target) + + var/obj/effect/decal/cleanable/semen/S = locate(/obj/effect/decal/cleanable/semen) in location + if(S) + if(R.trans_to(S, R.total_volume)) + S.blood_DNA |= get_blood_dna_list() + S.update_icon() + return + + 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)) + drip.blood_DNA |= get_blood_dna_list() + drip.update_icon() + if(drip.reagents.total_volume >= 10) + S = new(location) + drip.reagents.trans_to(S, drip.reagents.total_volume) + S.blood_DNA |= drip.blood_DNA + S.update_icon() + qdel(drip) + return + if(!turfing) // sandstorm edit - advanced cum drip var/amount_to_transfer = R.total_volume * (spill ? G.fluid_transfer_factor : 1) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index bc6b3e36dc..89b614121f 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -2507,19 +2507,26 @@ nutriment_factor = 0.5 * REAGENTS_METABOLISM var/decal_path = /obj/effect/decal/cleanable/semen -/datum/reagent/consumable/semen/reaction_turf(turf/T, reac_volume) +/datum/reagent/consumable/semen/reaction_turf(turf/location, reac_volume) ..() - if(!istype(T)) - return - if(reac_volume < 10) + if(!istype(location)) return - var/obj/effect/decal/cleanable/semen/S = locate() in T - if(!S) - S = new decal_path(T) - // Sandstorm edit - cum carries your genetic info (all of it) - if(data) - S.add_blood_DNA(data) + var/obj/effect/decal/cleanable/semen/S = locate(/obj/effect/decal/cleanable/semen) in location + if(S) + if(S.reagents.add_reagent(type, volume, data)) + S.update_icon() + return + + var/obj/effect/decal/cleanable/semendrip/drip = (locate(/obj/effect/decal/cleanable/semendrip) 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 /obj/effect/decal/cleanable/semen name = "semen" @@ -2550,8 +2557,7 @@ /obj/effect/decal/cleanable/semen/update_icon() . = ..() - add_atom_colour(blood_DNA_to_color(), FIXED_COLOUR_PRIORITY) - blend_mode = blood_DNA_to_blend() + add_atom_colour(mix_color_from_reagents(reagents.reagent_list), FIXED_COLOUR_PRIORITY) /datum/reagent/consumable/semen/femcum name = "Female Ejaculate" diff --git a/modular_sand/code/game/objects/effects/decals/cleanable/lewd_decals.dm b/modular_sand/code/game/objects/effects/decals/cleanable/lewd_decals.dm index 24c71b6c5c..e52c7a8bd7 100644 --- a/modular_sand/code/game/objects/effects/decals/cleanable/lewd_decals.dm +++ b/modular_sand/code/game/objects/effects/decals/cleanable/lewd_decals.dm @@ -28,5 +28,4 @@ /obj/effect/decal/cleanable/semendrip/update_icon() . = ..() - add_atom_colour(blood_DNA_to_color(), FIXED_COLOUR_PRIORITY) - blend_mode = blood_DNA_to_blend() + add_atom_colour(mix_color_from_reagents(reagents.reagent_list), FIXED_COLOUR_PRIORITY)