From f7d05cfc70c6c4457ab10a9e934800afdeaeb5b3 Mon Sep 17 00:00:00 2001 From: SgtRyder <51496262+SgtRyder@users.noreply.github.com> Date: Sun, 28 Dec 2025 00:44:26 -0600 Subject: [PATCH 1/2] The accursed Baotha Mpreg ritual Adds the accursed Baothan mpreg ritual. Shamelessly copied code from https://github.com/Azure-Peak/Azure-Peak/pull/4659 that I can only guess won't break anything, but it seems to compile and the ritual appears to work. --- code/__DEFINES/sex.dm | 4 + code/__DEFINES/traits.dm | 1 + code/datums/mind.dm | 6 + code/datums/sexcon2/actions/sex/anal.dm | 2 + code/datums/sexcon2/actions/sex/slit.dm | 2 + code/datums/sexcon2/sex_procs.dm | 29 +++- .../mob/living/carbon/human/human_defines.dm | 4 + code/modules/sexcon/sex_organs/vagina.dm | 1 + icons/roguetown/misc/baotha_marking.dmi | Bin 0 -> 725 bytes .../code/game/objects/items/ritualcircles.dm | 159 +++++++++++++++++- roguetown.dme | 14 +- 11 files changed, 210 insertions(+), 12 deletions(-) create mode 100644 icons/roguetown/misc/baotha_marking.dmi diff --git a/code/__DEFINES/sex.dm b/code/__DEFINES/sex.dm index 1202a4b63cb..9286fffb867 100644 --- a/code/__DEFINES/sex.dm +++ b/code/__DEFINES/sex.dm @@ -241,3 +241,7 @@ GLOBAL_LIST_EMPTY(locked_sex_objects) #define KNOTTED_NULL 0 #define KNOTTED_AS_TOP 1 #define KNOTTED_AS_BTM 2 + +#define IMPREG_PROB_DEFAULT 25 +#define IMPREG_PROB_INCREMENT 10 +#define IMPREG_PROB_MAX 95 \ No newline at end of file diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 13b62428969..9c943f12f17 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -222,6 +222,7 @@ // ARMOR / CLOTHING GIVEN TRAITS (GIVEN BY WEARING CLOTHES/ARMOR PIECES) #define TRAIT_MONK_ROBE "Holy Vestatures" #define TRAIT_RACISMISBAD "Heritage Vision" +#define TRAIT_BAOTHA_FERTILITY_BOON "Marked and shaped by Baotha" //Caustic edit #define TRAIT_NECRAS_ABATEMENT "Necra's Abatement" //keeps deadites from doing much of anything in town diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 85e32c4f6b2..2684ee28894 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -787,6 +787,12 @@ GLOBAL_LIST_EMPTY(personal_objective_minds) for(var/obj/effect/proc_holder/S in spell_list) RemoveSpell(S) +//removes spells that have miracle = true on them +/datum/mind/proc/RemoveAllMiracles() + for(var/obj/effect/proc_holder/spell/spell in spell_list) + if(spell.miracle) + RemoveSpell(spell) + /datum/mind/proc/transfer_martial_arts(mob/living/new_character) if(!ishuman(new_character)) return diff --git a/code/datums/sexcon2/actions/sex/anal.dm b/code/datums/sexcon2/actions/sex/anal.dm index 305f15de524..96dc8d662a9 100644 --- a/code/datums/sexcon2/actions/sex/anal.dm +++ b/code/datums/sexcon2/actions/sex/anal.dm @@ -52,6 +52,8 @@ /datum/sex_action/sex/anal/handle_climax_message(mob/living/carbon/human/user, mob/living/carbon/human/target) user.visible_message(span_love("[user] cums into [target]'s butt!")) user.virginity = FALSE + if(HAS_TRAIT(target, TRAIT_BAOTHA_FERTILITY_BOON) && !target.getorganslot(ORGAN_SLOT_VAGINA)) + user.try_impregnate(target) return "into" diff --git a/code/datums/sexcon2/actions/sex/slit.dm b/code/datums/sexcon2/actions/sex/slit.dm index f733ad5f8b3..ae0b9d300d1 100644 --- a/code/datums/sexcon2/actions/sex/slit.dm +++ b/code/datums/sexcon2/actions/sex/slit.dm @@ -56,6 +56,8 @@ /datum/sex_action/sex/slit/handle_climax_message(mob/living/carbon/human/user, mob/living/carbon/human/target) user.visible_message(span_love("[user] cums into [target]'s slit!")) user.virginity = FALSE + if(HAS_TRAIT(target, TRAIT_BAOTHA_FERTILITY_BOON) && !target.getorganslot(ORGAN_SLOT_VAGINA)) + user.try_impregnate(target) return "into" /datum/sex_action/sex/slit/get_finish_message(mob/living/carbon/human/user, mob/living/carbon/human/target) diff --git a/code/datums/sexcon2/sex_procs.dm b/code/datums/sexcon2/sex_procs.dm index 063b8b8390d..4bb35bbbff1 100644 --- a/code/datums/sexcon2/sex_procs.dm +++ b/code/datums/sexcon2/sex_procs.dm @@ -53,10 +53,33 @@ if(!testes) return var/obj/item/organ/vagina/vag = wife.getorganslot(ORGAN_SLOT_VAGINA) - if(!vag) + if(!vag && !HAS_TRAIT(wife, TRAIT_BAOTHA_FERTILITY_BOON)) return - if(prob(25) && wife.is_fertile() && is_virile()) - vag.be_impregnated(src) + if(!is_virile()) + return + if(vag) + if(!wife.is_fertile()) + return + var/prob_for_impreg = vag.impregnation_probability + if(wife.has_status_effect(/datum/status_effect/knotted)) + prob_for_impreg = min(prob_for_impreg & 2, IMPREG_PROB_MAX) + if(prob(prob_for_impreg)) + vag.be_impregnated(src) + vag.impregnation_probability = IMPREG_PROB_DEFAULT + else + vag.impregnation_probability = min(prob_for_impreg + IMPREG_PROB_INCREMENT, IMPREG_PROB_MAX) + else + var/prob_for_impreg = wife.mpreg_chance + if(wife.has_status_effect(/datum/status_effect/knotted)) + prob_for_impreg = min(prob_for_impreg * 2, IMPREG_PROB_MAX) + if(prob(prob_for_impreg)) + if(wife.mpreg) + to_chat(wife, span_love("I feel a surge of warmth inside me again...")) + return + to_chat(wife, span_love("I feel a strange surge of warmth inside me... Am I pregnant?..")) + wife.mpreg = TRUE + else + wife.mpreg_chance = min(prob_for_impreg + IMPREG_PROB_INCREMENT, IMPREG_PROB_MAX) /mob/living/proc/can_do_sex() return TRUE diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 6ce60391f55..059d73ff23d 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -146,6 +146,8 @@ /// Ref to orison-like sunder object var/sunder_light_obj = null + var/already_converted_once = FALSE + /// Assoc list of culinary preferences of the mob var/list/culinary_preferences = list() @@ -175,5 +177,7 @@ var/virginity = FALSE // Used to prevent certain antag from having sex var/can_do_sex = TRUE + var/mpreg = FALSE + var/mpreg_chance = IMPREG_PROB_DEFAULT fovangle = FOV_DEFAULT diff --git a/code/modules/sexcon/sex_organs/vagina.dm b/code/modules/sexcon/sex_organs/vagina.dm index 99bc4c245fd..374ccca1a61 100644 --- a/code/modules/sexcon/sex_organs/vagina.dm +++ b/code/modules/sexcon/sex_organs/vagina.dm @@ -7,6 +7,7 @@ accessory_type = /datum/sprite_accessory/vagina/human var/pregnant = FALSE var/fertility = TRUE + var/impregnation_probability = IMPREG_PROB_DEFAULT /obj/item/organ/vagina/proc/be_impregnated(mob/living/carbon/human/father) if(pregnant) diff --git a/icons/roguetown/misc/baotha_marking.dmi b/icons/roguetown/misc/baotha_marking.dmi new file mode 100644 index 0000000000000000000000000000000000000000..50959ba601be74081b51999f9029e12fadac7acf GIT binary patch literal 725 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoRaGGoB`&GO$wiq3C7Jno3=9=> zN>ABxwHOGnU9c+d;(sgt|5m2TrX?4&Jq~2Fsd9Nntj|x>oW>v5S@&ZWXO+p9a>J7w zn=jUC1ufUP*?iG#$)3q)pG#}rese&hsn`DIc1w{ZVx62leOIJ%3pjgzSzg~BnKZ-X zOU4VP?l&4jE0tZ2FfcHQdAc};RLpsM*U*p2QNrP2eQ$4A*p_>ZVqCskn$FES)^&@^ zufcqRn_r{(1Cg>VA$JmVOSpRtXWqQ3e)#vK-p-S|PVW&AeLj8Fy4M2FTlO_3r!&l8 zOkit}WJtr#h-930`09(@{l{0GwF+5TKjG(&6IM#kZr`mdyt#XZ`w=CjW0%kV^?t=G zvupk9jTN;kg3j5W-SNyy=@?K+?akd8N=^GiND)kO6_+5CFfIjebW=Qq#Zy!uz> z2brBr3lRxO!#{o5ktUyc8lE2rB|+Rwfs`kw@sF~b=K1Lgxf3?wpiEE|j&?|SiV zxcm0{>4#Zj?{9Cq8dTJfrlz2D?DRvfn>V8`wfKE{_u}^F*T2@;&-6F{-oL-Z-(D-% zNxjnP**g1$@)?oBR$l^~yAwN<)Ji@`XGlJLpk6X(LgUYF33Ml&{+X}ox>D=gQ|0-L z#5i`tHO3CxU#e$VO`=#czP-|KUwyM|`~S_IGbb%8xn;*ZYwxe_HRb&$zQ`{tvATTG z>?4R{yK4^j0og}!fA!Y8TL1dVuzjhFC0e+=;azjBcwt!W^Ao^y%HZkh=d#Wzp$Py= Czcokz literal 0 HcmV?d00001 diff --git a/modular_azurepeak/code/game/objects/items/ritualcircles.dm b/modular_azurepeak/code/game/objects/items/ritualcircles.dm index 8abcf9bd708..f514d6f09e7 100644 --- a/modular_azurepeak/code/game/objects/items/ritualcircles.dm +++ b/modular_azurepeak/code/game/objects/items/ritualcircles.dm @@ -1518,8 +1518,69 @@ name = "Rune of Hedonism" desc = "A Holy Rune of Baotha. Relief for the broken hearted." icon_state = "baotha_chalky" - rituals = list(/datum/runeritual/joybringer::name = /datum/runeritual/joybringer) - allowed_patron = /datum/patron/inhumen/baotha + var/baotharites = list("Conversion", "Mark of Baotha", /datum/runeritual/joybringer::name = /datum/runeritual/joybringer) + +/obj/effect/decal/cleanable/roguerune/god/baotha/attack_hand(mob/living/user) + if((user.patron?.type) != /datum/patron/inhumen/baotha) + to_chat(user,span_smallred("I don't know the proper rites for this...")) + return + if(!HAS_TRAIT(user, TRAIT_RITUALIST)) + to_chat(user,span_smallred("I don't know the proper rites for this...")) + return + if(user.has_status_effect(/datum/status_effect/debuff/ritesexpended)) + to_chat(user,span_smallred("I have performed enough rituals for the day... I must rest before communing more.")) + return + if(!Adjacent(user)) + to_chat(user, "You must stand close to the rune to receive Baotha's blessing.") + return + var/riteselection = input(user, "Rituals of Desire", src) as null|anything in baotharites + switch(riteselection) // put ur rite selection here + if("Conversion") + var/list/valids_on_rune = list() + for(var/mob/living/carbon/human/peep in range(0, loc)) + if(HAS_TRAIT(peep, TRAIT_DEPRAVED)) + continue + valids_on_rune += peep + if(!valids_on_rune.len) + to_chat(user, "No valid targets on the rune!") + return + var/mob/living/carbon/human/target = input(user, "Choose a host") as null|anything in valids_on_rune + if(!target || QDELETED(target) || target.loc != loc) + return + if(do_after(user, 50)) + user.say("#Lady of Lust, grant this one succor...") + if(do_after(user, 20)) + user.say("#Bless them with thy carnal delight...") + if(do_after(user, 20)) + user.say("#Show them the pleasures of the flesh!") + if(do_after(user, 50)) + user.say("Praise Baotha!") + icon_state = "baotha_active" + baothaconversion(target) + spawn(120) + icon_state = "baotha_chalky" + if("Mark of Baotha") + var/list/valids_on_rune = list() + for(var/mob/living/carbon/human/peep in range(0, loc)) + valids_on_rune += peep + if(!valids_on_rune.len) + to_chat(user, "No valid targets on the rune!") + return + var/mob/living/carbon/human/target = input(user, "Choose a host") as null|anything in valids_on_rune + if(!target || QDELETED(target) || target.loc != loc) + return + if(do_after(user, 50)) + user.say("#Lady of Lust, hear my words...") + if(do_after(user, 50)) + user.say("#I offer to you this mortal vessel...") + if(do_after(user, 50)) + user.say("#Accept this offering, and bless their flesh with thy sigil!") + if(do_after(user, 50)) + user.say("Praise Baotha!") + icon_state = "baotha_active" + baothablessing(target) + spawn(120) + icon_state = "baotha_chalky" /datum/runeritual/joybringer name = "Rite of Joy" @@ -1552,6 +1613,100 @@ return TRUE +/obj/effect/decal/cleanable/roguerune/god/baotha/proc/baothaconversion(mob/living/carbon/human/target) + if(!target || QDELETED(target) || target.loc != loc) + to_chat(usr, "Selected target is not on the rune! [target.p_they(TRUE)] must be directly on top of the rune to receive Baotha's blessing.") + return + if(HAS_TRAIT(target, TRAIT_DEPRAVED)) + loc.visible_message(span_cult("THE RITE REJECTS ONE ALREADY DEPRAVED ENOUGH!!")) + return + if(target.already_converted_once) + loc.visible_message(span_cult("BLOODY NIMROD!!")) + target.apply_damage(150, BRUTE, BODY_ZONE_HEAD) + return + var/prompt = alert(target, "Sickly-sweet pleasure drips down your spine. You can feel a narcotic haze tugging at your mind...",, "INDULGE", "RESIST") + if(prompt == "INDULGE") + to_chat(target, span_love("A hot sensation gushes through your veins. Your body throbs with pleasure.")) + target.Stun(60) + target.Knockdown(60) + to_chat(target, span_userdanger("I can't hold back!")) + target.GetComponent(/datum/component/arousal)?.set_arousal(target, 300) + loc.visible_message(span_cult("[target] writhes and moans as they lose control of their body!")) + spawn(20) + playsound(target, 'sound/health/fastbeat.ogg', 60) + playsound(loc, 'sound/ambience/creepywind.ogg', 80) + target.adjust_skillrank(/datum/skill/misc/athletics, 1, TRUE) + target.adjust_skillrank(/datum/skill/misc/music, 1, TRUE) + target.adjust_skillrank(/datum/skill/misc/riding, 1, TRUE) // haha get it? + spawn(20) + to_chat(target, span_purple("You can't stop craving more...")) + if(target.devotion == null) + target.set_patron(new /datum/patron/inhumen/baotha) + return + else + var/previous_level = target.devotion.level //now you might ask why we get previous_level variable before switching le patron. reason is when swapping patrons it completely fucks up devotion data for people + target.set_patron(new /datum/patron/inhumen/baotha) + var/datum/devotion/C = new /datum/devotion(target, target.patron) + if(previous_level == 4) + target.mind?.RemoveAllMiracles() + C.grant_miracles(target, cleric_tier = CLERIC_T4, passive_gain = CLERIC_REGEN_MAJOR, start_maxed = TRUE) // gotta change? + if(previous_level == 3) + target.mind?.RemoveAllMiracles() + C.grant_miracles(target, cleric_tier = CLERIC_T3, passive_gain = CLERIC_REGEN_MAJOR, devotion_limit = CLERIC_REQ_3) // gotta change? + if(previous_level == 2) + target.mind?.RemoveAllMiracles() + C.grant_miracles(target, cleric_tier = CLERIC_T2, passive_gain = CLERIC_REGEN_MINOR, devotion_limit = CLERIC_REQ_2) + if(previous_level == 1) + target.mind?.RemoveAllMiracles() + C.grant_miracles(target, cleric_tier = CLERIC_T1, passive_gain = CLERIC_REGEN_DEVOTEE, devotion_limit = CLERIC_REQ_1) + if(prompt == "RESIST") + to_chat(target, span_warning("Your body seizes in pain!")) + target.Stun(60) + target.Knockdown(60) + to_chat(target, span_userdanger("YOUR FLESH BURNS!")) + target.emote("Agony") + target.apply_damage(60, BURN, BODY_ZONE_CHEST) + loc.visible_message(span_cult("[target] violently writhes and thrashes atop the rune as they dare to defy Baotha!")) + +/obj/effect/decal/cleanable/roguerune/god/baotha/proc/baothablessing(mob/living/carbon/human/target) + if(!target || QDELETED(target) || target.loc != loc) + to_chat(usr, "Selected target is not on the rune! [target.p_they(TRUE)] must be directly on top of the rune to receive Baotha's mark.") + return + if(HAS_TRAIT(target, TRAIT_BAOTHA_FERTILITY_BOON)) + loc.visible_message(span_cult("They have already been blessed!")) + return + var/prompt = alert(target, "Your hair stands on end. Shivers run down your spine. Something feels wrong...",, "SURRENDER", "RESIST") + if(prompt == "SURRENDER") + to_chat(target, span_love("A strange feeling of warmth blooms within your stomach.")) + target.reagents.add_reagent(/datum/reagent/fermented_crab, 5) + spawn(20) + to_chat(target, span_warning("You fall to your feet, your legs suddenly going limp.")) + target.Stun(60) + target.Knockdown(60) + spawn(20) + loc.visible_message(span_cult("[target] shuddders and moans as purple flames lick at their abdomen, burning a glowing pink symbol into their pelvis.")) + var/mutable_appearance/marking_overlay = mutable_appearance('icons/roguetown/misc/baotha_marking.dmi', "marking_[target.gender == "male" ? "m" : "f"]", -BODY_LAYER) + target.add_overlay(marking_overlay) + target.update_body_parts() + playsound(target, 'sound/health/fastbeat.ogg', 60) + target.adjust_skillrank(/datum/skill/misc/riding, 1, TRUE) // hue hue hue + spawn(40) + to_chat(target, span_purple("You have been marked by Baotha!")) + ADD_TRAIT(target, TRAIT_BAOTHA_FERTILITY_BOON, TRAIT_GENERIC) + if(!istype(target.charflaw, /datum/charflaw/addiction/lovefiend)) + target.charflaw = new /datum/charflaw/addiction/lovefiend(target) + var/obj/item/organ/vagina/vagina = target.getorganslot(ORGAN_SLOT_VAGINA) + if(vagina && !vagina.fertility) + vagina.fertility = TRUE + if(prompt == "RESIST") + to_chat(target, span_warning("White-hot flames sear your abdomen!")) + target.Stun(60) + target.Knockdown(60) + to_chat(target, span_userdanger("IT BURNS! MAKE IT STOP!")) + target.emote("Agony") + target.apply_damage(60, BURN, BODY_ZONE_CHEST) + loc.visible_message(span_cult("[target] violently writhes and thrashes atop the rune as their flesh is scorched by Baotha's wrath!")) + /obj/effect/decal/cleanable/roguerune/god/psydon name = "Rune of Enduring" desc = "A Holy Rune of Psydon. It depicts His holy symbol, yet nothing stirs within you." diff --git a/roguetown.dme b/roguetown.dme index 418bb7ee6b7..33cbf78e91a 100644 --- a/roguetown.dme +++ b/roguetown.dme @@ -2880,6 +2880,7 @@ #include "modular_causticcove\code\datums\combat_music.dm" #include "modular_causticcove\code\datums\loadout.dm" #include "modular_causticcove\code\game\objects\effects\landmarks.dm" +#include "modular_causticcove\code\game\objects\effects\spawners\loot_magical.dm" #include "modular_causticcove\code\game\objects\items\clothes\stockings.dm" #include "modular_causticcove\code\game\objects\items\rogueitems\leash.dm" #include "modular_causticcove\code\game\objects\items\rogueitems\util.dm" @@ -2941,6 +2942,7 @@ #include "modular_causticcove\code\modules\classes\shrine_priest\shrine_guardian.dm" #include "modular_causticcove\code\modules\classes\shrine_priest\shrine_priest.dm" #include "modular_causticcove\code\modules\client\customizers\organ\genitals.dm" +#include "modular_causticcove\code\modules\clothing\npc\hobgoblin_armor.dm" #include "modular_causticcove\code\modules\dcbot\config.dm" #include "modular_causticcove\code\modules\dcbot\internaltools\ahelprelay.dm" #include "modular_causticcove\code\modules\dcbot\internaltools\whitelost.dm" @@ -2949,6 +2951,8 @@ #include "modular_causticcove\code\modules\dcbot\topichandlers\fetchmanifest.dm" #include "modular_causticcove\code\modules\dcbot\topichandlers\fetchplayers.dm" #include "modular_causticcove\code\modules\deadite_pac\deadite_pac.dm" +#include "modular_causticcove\code\modules\events\adventure\random_bosses\random_boss.dm" +#include "modular_causticcove\code\modules\events\adventure\random_patrols\random_patrols.dm" #include "modular_causticcove\code\modules\extra_virtue\prefs.dm" #include "modular_causticcove\code\modules\grazer\stomach.dm" #include "modular_causticcove\code\modules\grazer\virtue.dm" @@ -2973,10 +2977,9 @@ #include "modular_causticcove\code\modules\mob\dead\new_player\sprite_accessory\horns.dm" #include "modular_causticcove\code\modules\mob\dead\new_player\sprite_accessory\snout.dm" #include "modular_causticcove\code\modules\mob\living\carbon\hobgoblin\hobgoblin.dm" +#include "modular_causticcove\code\modules\mob\living\carbon\hobgoblin\ambush_config\ambush_hobgoblin.dm" #include "modular_causticcove\code\modules\mob\living\carbon\hobgoblin\npc\hobgoblin_npc.dm" #include "modular_causticcove\code\modules\mob\living\carbon\hobgoblin\species\hobgoblin_species.dm" -#include "modular_causticcove\code\modules\clothing\npc\hobgoblin_armor.dm" -#include "modular_causticcove\code\modules\mob\living\carbon\hobgoblin\ambush_config\ambush_hobgoblin.dm" #include "modular_causticcove\code\modules\nat_armor\nat_armor.dm" #include "modular_causticcove\code\modules\nat_armor\virtue.dm" #include "modular_causticcove\code\modules\persistance\serialize.dm" @@ -2994,9 +2997,9 @@ #include "modular_causticcove\code\modules\spells\animagus\animagus_transformation.dm" #include "modular_causticcove\code\modules\spells\animagus\cat.dm" #include "modular_causticcove\code\modules\spells\animagus\zad.dm" -#include "modular_causticcove\code\modules\standardized_sprite\standardized_sprite_verb.dm" -#include "modular_causticcove\code\modules\spells\invoked_single_target\temperitem.dm" #include "modular_causticcove\code\modules\spells\components\temper_clothing.dm" +#include "modular_causticcove\code\modules\spells\invoked_single_target\temperitem.dm" +#include "modular_causticcove\code\modules\standardized_sprite\standardized_sprite_verb.dm" #include "modular_causticcove\code\modules\taurs\taur_bodyparts.dm" #include "modular_causticcove\code\modules\taurs\taur_markings.dm" #include "modular_causticcove\code\modules\vices\mind_broken.dm" @@ -3015,7 +3018,4 @@ #include "modular_hearthstone\code\modules\mob\living\simple_animal\rogue\orc.dm" #include "modular_hearthstone\code\modules\mob\living\simple_animal\rogue\rogue_corpse.dm" #include "modular_hearthstone\code\modules\reagents\reagent_containers\lux.dm" -#include "modular_causticcove\code\game\objects\effects\spawners\loot_magical.dm" -#include "modular_causticcove\code\modules\events\adventure\random_patrols\random_patrols.dm" -#include "modular_causticcove\code\modules\events\adventure\random_bosses\random_boss.dm" // END_INCLUDE From 0b757d5970af8b14c4d4507c92aa3af1a4840d3c Mon Sep 17 00:00:00 2001 From: SgtRyder <51496262+SgtRyder@users.noreply.github.com> Date: Sun, 28 Dec 2025 01:21:53 -0600 Subject: [PATCH 2/2] added Caustic edits signifiers --- code/__DEFINES/sex.dm | 4 +++- code/__DEFINES/traits.dm | 2 ++ code/datums/mind.dm | 2 ++ code/datums/sexcon2/actions/sex/anal.dm | 2 ++ code/datums/sexcon2/actions/sex/slit.dm | 2 ++ code/datums/sexcon2/sex_procs.dm | 2 ++ code/modules/mob/living/carbon/human/human_defines.dm | 4 ++++ code/modules/sexcon/sex_organs/vagina.dm | 2 ++ modular_azurepeak/code/game/objects/items/ritualcircles.dm | 4 +++- 9 files changed, 22 insertions(+), 2 deletions(-) diff --git a/code/__DEFINES/sex.dm b/code/__DEFINES/sex.dm index 9286fffb867..9e572660525 100644 --- a/code/__DEFINES/sex.dm +++ b/code/__DEFINES/sex.dm @@ -242,6 +242,8 @@ GLOBAL_LIST_EMPTY(locked_sex_objects) #define KNOTTED_AS_TOP 1 #define KNOTTED_AS_BTM 2 +//Caustic edit #define IMPREG_PROB_DEFAULT 25 #define IMPREG_PROB_INCREMENT 10 -#define IMPREG_PROB_MAX 95 \ No newline at end of file +#define IMPREG_PROB_MAX 95 +//Caustic edit end \ No newline at end of file diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 9c943f12f17..16e5dc527b9 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -222,7 +222,9 @@ // ARMOR / CLOTHING GIVEN TRAITS (GIVEN BY WEARING CLOTHES/ARMOR PIECES) #define TRAIT_MONK_ROBE "Holy Vestatures" #define TRAIT_RACISMISBAD "Heritage Vision" +//Caustic edit #define TRAIT_BAOTHA_FERTILITY_BOON "Marked and shaped by Baotha" +//Caustic edit end //Caustic edit #define TRAIT_NECRAS_ABATEMENT "Necra's Abatement" //keeps deadites from doing much of anything in town diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 2684ee28894..cbd07b930c5 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -787,11 +787,13 @@ GLOBAL_LIST_EMPTY(personal_objective_minds) for(var/obj/effect/proc_holder/S in spell_list) RemoveSpell(S) +//Caustic edit //removes spells that have miracle = true on them /datum/mind/proc/RemoveAllMiracles() for(var/obj/effect/proc_holder/spell/spell in spell_list) if(spell.miracle) RemoveSpell(spell) +//Caustic edit end /datum/mind/proc/transfer_martial_arts(mob/living/new_character) if(!ishuman(new_character)) diff --git a/code/datums/sexcon2/actions/sex/anal.dm b/code/datums/sexcon2/actions/sex/anal.dm index 96dc8d662a9..513c42af682 100644 --- a/code/datums/sexcon2/actions/sex/anal.dm +++ b/code/datums/sexcon2/actions/sex/anal.dm @@ -52,8 +52,10 @@ /datum/sex_action/sex/anal/handle_climax_message(mob/living/carbon/human/user, mob/living/carbon/human/target) user.visible_message(span_love("[user] cums into [target]'s butt!")) user.virginity = FALSE + //Caustic edit if(HAS_TRAIT(target, TRAIT_BAOTHA_FERTILITY_BOON) && !target.getorganslot(ORGAN_SLOT_VAGINA)) user.try_impregnate(target) + //Caustic edit end return "into" diff --git a/code/datums/sexcon2/actions/sex/slit.dm b/code/datums/sexcon2/actions/sex/slit.dm index ae0b9d300d1..1a9505d1404 100644 --- a/code/datums/sexcon2/actions/sex/slit.dm +++ b/code/datums/sexcon2/actions/sex/slit.dm @@ -56,8 +56,10 @@ /datum/sex_action/sex/slit/handle_climax_message(mob/living/carbon/human/user, mob/living/carbon/human/target) user.visible_message(span_love("[user] cums into [target]'s slit!")) user.virginity = FALSE + //Caustic edit if(HAS_TRAIT(target, TRAIT_BAOTHA_FERTILITY_BOON) && !target.getorganslot(ORGAN_SLOT_VAGINA)) user.try_impregnate(target) + //Caustic edit end return "into" /datum/sex_action/sex/slit/get_finish_message(mob/living/carbon/human/user, mob/living/carbon/human/target) diff --git a/code/datums/sexcon2/sex_procs.dm b/code/datums/sexcon2/sex_procs.dm index 4bb35bbbff1..a248cb50662 100644 --- a/code/datums/sexcon2/sex_procs.dm +++ b/code/datums/sexcon2/sex_procs.dm @@ -53,6 +53,7 @@ if(!testes) return var/obj/item/organ/vagina/vag = wife.getorganslot(ORGAN_SLOT_VAGINA) + //Caustic edit if(!vag && !HAS_TRAIT(wife, TRAIT_BAOTHA_FERTILITY_BOON)) return if(!is_virile()) @@ -80,6 +81,7 @@ wife.mpreg = TRUE else wife.mpreg_chance = min(prob_for_impreg + IMPREG_PROB_INCREMENT, IMPREG_PROB_MAX) + //Caustic edit end /mob/living/proc/can_do_sex() return TRUE diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 059d73ff23d..1453f1cf6f5 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -146,7 +146,9 @@ /// Ref to orison-like sunder object var/sunder_light_obj = null + //Caustic edit var/already_converted_once = FALSE + //Caustic edit end /// Assoc list of culinary preferences of the mob var/list/culinary_preferences = list() @@ -177,7 +179,9 @@ var/virginity = FALSE // Used to prevent certain antag from having sex var/can_do_sex = TRUE + //Caustic edit var/mpreg = FALSE var/mpreg_chance = IMPREG_PROB_DEFAULT + //Caustic edit end fovangle = FOV_DEFAULT diff --git a/code/modules/sexcon/sex_organs/vagina.dm b/code/modules/sexcon/sex_organs/vagina.dm index 374ccca1a61..03182f7f525 100644 --- a/code/modules/sexcon/sex_organs/vagina.dm +++ b/code/modules/sexcon/sex_organs/vagina.dm @@ -7,7 +7,9 @@ accessory_type = /datum/sprite_accessory/vagina/human var/pregnant = FALSE var/fertility = TRUE + //Caustic edit var/impregnation_probability = IMPREG_PROB_DEFAULT + //Caustic edit end /obj/item/organ/vagina/proc/be_impregnated(mob/living/carbon/human/father) if(pregnant) diff --git a/modular_azurepeak/code/game/objects/items/ritualcircles.dm b/modular_azurepeak/code/game/objects/items/ritualcircles.dm index f514d6f09e7..094c5c213f1 100644 --- a/modular_azurepeak/code/game/objects/items/ritualcircles.dm +++ b/modular_azurepeak/code/game/objects/items/ritualcircles.dm @@ -1514,6 +1514,7 @@ cloak = /obj/item/clothing/cloak/graggar r_hand = /obj/item/rogueweapon/greataxe/steel/doublehead/graggar +//Caustic edit /obj/effect/decal/cleanable/roguerune/god/baotha name = "Rune of Hedonism" desc = "A Holy Rune of Baotha. Relief for the broken hearted." @@ -1706,7 +1707,8 @@ target.emote("Agony") target.apply_damage(60, BURN, BODY_ZONE_CHEST) loc.visible_message(span_cult("[target] violently writhes and thrashes atop the rune as their flesh is scorched by Baotha's wrath!")) - +//Caustic edit end + /obj/effect/decal/cleanable/roguerune/god/psydon name = "Rune of Enduring" desc = "A Holy Rune of Psydon. It depicts His holy symbol, yet nothing stirs within you."