From 543dc9a399e63eb9b8668b5dfa217e8468caa01f Mon Sep 17 00:00:00 2001 From: Fermi Date: Wed, 29 May 2019 01:33:07 +0100 Subject: [PATCH] Final fixes, finally fixed all problems. --- code/modules/surgery/organs/vocal_cords.dm | 9 ++-- .../code/datums/status_effects/chems.dm | 51 +++++++------------ .../code/modules/arousal/organs/breasts.dm | 9 ++-- .../code/modules/arousal/organs/genitals.dm | 35 +++++++------ .../chemistry/reagents/fermi_reagents.dm | 6 +-- 5 files changed, 49 insertions(+), 61 deletions(-) diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm index a12a6d5809..01e03bc8b8 100644 --- a/code/modules/surgery/organs/vocal_cords.dm +++ b/code/modules/surgery/organs/vocal_cords.dm @@ -784,8 +784,8 @@ //Mixables var/static/regex/enthral_words = regex("relax|obey|love|serve|docile|so easy|ara ara") //enthral_words works - var/static/regex/reward_words = regex("good boy|good girl|good pet") //reward_words works - var/static/regex/punish_words = regex("bad boy|bad girl|bad pet") ////punish_words works + var/static/regex/reward_words = regex("good boy|good girl|good pet|good job") //reward_words works + var/static/regex/punish_words = regex("bad boy|bad girl|bad pet|bad job") ////punish_words works //phase 0 var/static/regex/saymyname_words = regex("say my name|who am i|whoami") //works I think var/static/regex/wakeup_words = regex("revert|awaken|snap") //works @@ -801,8 +801,8 @@ var/static/regex/nya_words = regex("nya|meow|mewl") var/static/regex/sleep_words = regex("sleep|slumber|rest") var/static/regex/strip_words = regex("strip|derobe|nude") - var/static/regex/walk_words = regex("slow down") - var/static/regex/run_words = regex("run") + var/static/regex/walk_words = regex("slow down|walk") + var/static/regex/run_words = regex("run|speed up") var/static/regex/liedown_words = regex("lie down") //TO ADD var/static/regex/knockdown_words = regex("drop|fall|trip|knockdown|kneel") //phase 3 @@ -951,7 +951,6 @@ var/mob/living/L = V var/datum/status_effect/chem/enthrall/E = L.has_status_effect(/datum/status_effect/chem/enthrall) E.status = "Antiresist" - addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "I've let [E.enthrallGender] down..."), 5) addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "Your mind clouds over, as you find yourself unable to resist!"), 5) E.statusStrength = (1 * power_multiplier * E.phase) E.cooldown += 15//Too short? yes, made 15 diff --git a/modular_citadel/code/datums/status_effects/chems.dm b/modular_citadel/code/datums/status_effects/chems.dm index f235851686..443633791b 100644 --- a/modular_citadel/code/datums/status_effects/chems.dm +++ b/modular_citadel/code/datums/status_effects/chems.dm @@ -98,12 +98,13 @@ if((B.cached_size) < 16) switch(round(B.cached_size)) if(9) - if (!(B.breast_sizes[B.prev_size] == B.size)) + if (B.breast_sizes[B.prev_size] != B.breast_sizes[B.size]) to_chat(o, "Your expansive chest has become a more managable size, liberating your movements.") if(10 to INFINITY) - if (!(B.breast_sizes[B.prev_size] == B.size)) + if (B.breast_sizes[B.prev_size] != B.breast_sizes[B.size]) to_chat(H, "Your indulgent busom is so substantial, it's affecting your movements!") if(prob(5)) + to_chat(owner, "Your back is feeling a little sore.") ..() @@ -126,7 +127,6 @@ var/moveCalc /datum/status_effect/chem/PElarger/on_apply(mob/living/carbon/human/H)//Removes clothes, they're too small to contain you. You belong to space now. - message_admins("PElarge started!") var/mob/living/carbon/human/o = owner var/items = o.get_contents() if(o.w_uniform || o.wear_suit) @@ -144,7 +144,7 @@ /datum/status_effect/chem/PElarger/tick(mob/living/carbon/M) var/mob/living/carbon/human/o = owner var/obj/item/organ/genital/penis/P = o.getorganslot("penis") - moveCalc = 1+((round(P.length) - 21)/10) //effects how fast you can move + moveCalc = 1+((round(P.length) - 21)/5) //effects how fast you can move bloodCalc = 1+((round(P.length) - 21)/10) //effects how much blood you need (I didn' bother adding an arousal check because I'm spending too much time on this organ already.) if(!P) o.remove_movespeed_modifier("hugedick") @@ -298,6 +298,8 @@ else if (resistanceTally > 150) phase = -1 to_chat(owner, "You break free of the influence in your mind, your thoughts suddenly turning lucid!") + if(DistApart < 10) + to_chat(master, "[(H.lewd?"Your pet":"Your thrall")] seems to have broken free of your enthrallment!") owner.remove_status_effect(src) //If resisted in phase 1, effect is removed. if(prob(10)) if(owner.lewd) @@ -503,10 +505,11 @@ cooldown -= (0.8 + (mental_capacity/500)) cooldownMsg = FALSE else if (cooldownMsg == FALSE) - if(master.lewd) - to_chat(master, "Your pet [owner] appears to have finished internalising your last command.") - else - to_chat(master, "Your thrall [owner] appears to have finished internalising your last command.") + if(DistApart < 10) + if(master.lewd) + to_chat(master, "Your pet [owner] appears to have finished internalising your last command.") + else + to_chat(master, "Your thrall [owner] appears to have finished internalising your last command.") cooldownMsg = TRUE cooldown = 0 if (tranceTime > 0) //custom trances only last 50 ticks. @@ -653,7 +656,7 @@ deltaResist += 0.1 //Though I commend your spamming efforts. return else - deltaResist = 1.75 + resistGrowth + deltaResist = 1.7 + resistGrowth resistGrowth += 0.05 //distance modifer @@ -692,24 +695,23 @@ //Antag resistance //cultists are already brainwashed by their god if(iscultist(owner)) - deltaResist *= 1.5 + deltaResist *= 1.3 else if (is_servant_of_ratvar(owner)) - deltaResist *= 1.5 + deltaResist *= 1.3 //antags should be able to resist, so they can do their other objectives. This chem does frustrate them, but they've all the tools to break free when an oportunity presents itself. else if (owner.mind.assigned_role in GLOB.antagonists) - deltaResist *= 1.4 + deltaResist *= 1.2 //role resistance //Chaplains are already brainwashed by their god if(owner.mind.assigned_role == "Chaplain") - deltaResist *= 1.5 + deltaResist *= 1.2 //Command staff has authority, if(owner.mind.assigned_role in GLOB.command_positions) - deltaResist *= 1.4 - //if(owner.has_status == "sub"); power_multiplier *= 0.8 //for skylar //I'm kidding <3 + deltaResist *= 1.1 //Chemists should be familiar with drug effects if(owner.mind.assigned_role == "Chemist") - deltaResist *= 1.3 + deltaResist *= 1.2 //Happiness resistance //Your Thralls are like pets, you need to keep them happy. @@ -727,22 +729,5 @@ if(M.has_trait(TRAIT_MINDSHIELD)) deltaResist += 5//even faster! - /* - if (deltaResist>0)//just in case - deltaResist /= phase//later phases require more resistance - */ message_admins("Enthrall processing for [M]: enthrallTally: [enthrallTally], resistanceTally: [resistanceTally], delta: [deltaResist]") return - -//I think this can be left out, but I'll leave the code incase anyone wants to add to it. -/* -/datum/status_effect/chem/enthrall/proc/owner_say(mob/speaker, message) //I can only hope this works - - //var/datum/status_effect/chem/enthrall/E = owner.has_status_effect(/datum/status_effect/chem/enthrall) - //var/mob/living/master = E.master - message_admins("[owner] said something") - var/static/regex/owner_words = regex("[master]") - if(findtext(message, owner_words)) - message = replacetext(lowertext(message), lowertext(master), "[enthrallGender]") - return message -*/ diff --git a/modular_citadel/code/modules/arousal/organs/breasts.dm b/modular_citadel/code/modules/arousal/organs/breasts.dm index 6d1a49a66b..27a2d720bf 100644 --- a/modular_citadel/code/modules/arousal/organs/breasts.dm +++ b/modular_citadel/code/modules/arousal/organs/breasts.dm @@ -6,8 +6,8 @@ zone = "chest" slot = "breasts" w_class = 3 - size = "c" //SHOULD BE A LETTER, starts as a number...??? - var/cached_size = BREASTS_SIZE_DEF //for enlargement SHOULD BE A NUMBER + size = BREASTS_SIZE_DEF //SHOULD BE A LETTER, starts as a number...??? + var/cached_size = null //for enlargement SHOULD BE A NUMBER var/prev_size //For flavour texts SHOULD BE A LETTER var/breast_sizes = list ("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "huge", "flat") var/breast_values = list ("a" = 1, "b" = 2, "c" = 3, "d" = 4, "e" = 5, "f" = 6, "g" = 7, "h" = 8, "i" = 9, "j" = 10, "k" = 11, "l" = 12, "m" = 13, "n" = 14, "o" = 15, "huge" = 16, "flat" = 0) @@ -78,15 +78,14 @@ //Allows breasts to grow and change size, with sprite changes too. //maximum wah //Comical sizes slow you down in movement and actions. -//Rediculous sizes makes you more cumberson. -//Should I turn someone with meter wide... assets into a blob? +//Rediculous sizes makes you more cumbersome. //this is far too lewd wah /obj/item/organ/genital/breasts/update_size()//wah if(!ishuman(owner) || !owner) return - if(cached_size < 0)//I don't actually know what round() does to negative numbers, so to be safe!!(Why does this runtime??) - fixed + if(cached_size < 0)//I don't actually know what round() does to negative numbers, so to be safe!!fixed to_chat(owner, "You feel your breasts shrinking away from your body as your chest flattens out.") src.Remove(owner) switch(round(cached_size)) diff --git a/modular_citadel/code/modules/arousal/organs/genitals.dm b/modular_citadel/code/modules/arousal/organs/genitals.dm index 45cfb6303e..f63adf3962 100644 --- a/modular_citadel/code/modules/arousal/organs/genitals.dm +++ b/modular_citadel/code/modules/arousal/organs/genitals.dm @@ -1,6 +1,6 @@ /obj/item/organ/genital color = "#fcccb3" - var/shape = "human" + var/shape = "Human" //Changed to be uppercase, let me know if this breaks everything..!! var/sensitivity = 1 var/list/genital_flags = list() var/can_masturbate_with = FALSE @@ -210,13 +210,20 @@ else B.color = "#[dna.features["breasts_color"]]" B.size = dna.features["breasts_size"] - B.prev_size = B.size - message_admins("B.size[B.size]") - if (!B.size == "huge") - if(isnum(B.size)) - B.cached_size = B.size + if(!isnum(B.size)) + if(B.size == "flat") + B.cached_size = 0 + B.prev_size = 0 + else if (B.cached_size == "huge") + B.prev_size = "huge" + message_admins("I hate genitals, this should not appear. I'm so mad.") else B.cached_size = B.breast_values[B.size] + B.prev_size = B.size + else + B.cached_size = B.size + B.prev_size = B.size + message_admins("B.size [B.size], Cache [B.cached_size], prev [B.prev_size]") B.shape = dna.features["breasts_shape"] B.fluid_id = dna.features["breasts_fluid"] B.update() @@ -293,23 +300,21 @@ if(istype(O, /obj/item/organ/genital)) organCheck = TRUE if(/obj/item/organ/genital/penis) - if(!dna.features["has_cock"] == 1) - dna.features["has_cock"] = 1//Goddamnit get in there. + dna.features["has_cock"] = TRUE + if(/obj/item/organ/genital/breasts) + dna.features["has_breasts"] = TRUE//Goddamnit get in there. if (organCheck == FALSE) if(ishuman(src) && dna.species.id == "human") dna.features["genitals_use_skintone"] = TRUE dna.species.use_skintones = TRUE - - /* I can't get this to work. if(MUTCOLORS) if(src.dna.species.fixed_mut_color) - dna.features["cock_color"] = "#[src.dna.species.fixed_mut_color]" - dna.features["breasts_color"] = "#[src.dna.species.fixed_mut_color]" + dna.features["cock_color"] = "[src.dna.species.fixed_mut_color]" + dna.features["breasts_color"] = "[src.dna.species.fixed_mut_color]" return //So people who haven't set stuff up don't get rainbow surprises. - dna.features["cock_color"] = "#[dna.features["mcolor"]]" - dna.features["breasts_color"] = "#[dna.features["mcolor"]]" - */ + dna.features["cock_color"] = "[dna.features["mcolor"]]" + dna.features["breasts_color"] = "[dna.features["mcolor"]]" return /datum/species/proc/handle_genitals(mob/living/carbon/human/H)//more like handle sadness diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm index 3950297212..6ff655c8c5 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm @@ -597,7 +597,6 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING H.genital_override = TRUE var/obj/item/organ/genital/breasts/B = H.getorganslot("breasts") if(!B) - H.emergent_genital_call() return if(!B.size == "huge") var/sizeConv = list("a" = 1, "b" = 2, "c" = 3, "d" = 4, "e" = 5) @@ -612,6 +611,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING if(!B) //If they don't have breasts, give them breasts. var/obj/item/organ/genital/breasts/nB = new nB.Insert(M) + H.emergent_genital_call() if(nB) if(M.dna.species.use_skintones && M.dna.features["genitals_use_skintone"]) nB.color = skintone2hex(H.skin_tone) @@ -719,7 +719,6 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING H.genital_override = TRUE var/obj/item/organ/genital/penis/P = M.getorganslot("penis") if(!P) - H.emergent_genital_call() return P.prev_size = P.length P.cached_length = P.length @@ -732,6 +731,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING if(!P)//They do have a preponderance for escapism, or so I've heard. var/obj/item/organ/genital/penis/nP = new nP.Insert(M) + H.emergent_genital_call() if(nP) nP.length = 1 to_chat(M, "Your groin feels warm, as you feel a newly forming bulge down below.")//OwO @@ -1038,7 +1038,7 @@ Okay, seriously, unless you're an antag, it will be difficult to enthrall people If it becomes an issue, I'll make all pets pacifists and apply more weakness effects based on mood and state. I'll probably do this anyways as I want the bond between the two to be imperative. As stated earlier the biggest concern is the use as a murder aid, which I have ideas for. (weaken the enthraller during the enthrallment process?) -And as stated earlier, this chem is hard to make, and is punishing on failure. You fall in love with the chem dispencer and have to stay within 8 tiles of it. Additionally, you hug the dispencer instead of using it - thus making you unable to continue chemistry for that round, and likely getting the CMO mad as hecc at you. +And as stated earlier, this chem is hard to make, and is punishing on failure. You fall in love with someone if it's impure, and then your piorities change. (thats not written yet but thats the idea.) */