mirror of
https://github.com/quotefox/Hyper-Station-13.git
synced 2026-08-23 12:46:17 +01:00
begins porting 10243
compiles but doesn't work yet
This commit is contained in:
@@ -132,7 +132,16 @@
|
||||
#define EATING_NOISES (1<<1)
|
||||
#define DIGESTION_NOISES (1<<2)
|
||||
|
||||
#define TOGGLES_CITADEL (EATING_NOISES|DIGESTION_NOISES)
|
||||
#define BREAST_ENLARGEMENT (1<<3)
|
||||
#define PENIS_ENLARGEMENT (1<<4)
|
||||
#define FORCED_FEM (1<<5)
|
||||
#define FORCED_MASC (1<<6)
|
||||
#define HYPNO (1<<7)
|
||||
#define NEVER_HYPNO (1<<8)
|
||||
#define NO_APHRO (1<<9)
|
||||
#define NO_ASS_SLAP (1<<9)
|
||||
|
||||
#define TOGGLES_CITADEL (EATING_NOISES|DIGESTION_NOISES|BREAST_ENLARGEMENT|PENIS_ENLARGEMENT)
|
||||
|
||||
//component stuff
|
||||
#define COMSIG_COMBAT_TOGGLED "combatmode_toggled" //called by combat mode toggle on all equipped items. args: (mob/user, combatmode)
|
||||
|
||||
@@ -170,14 +170,14 @@
|
||||
#define TRAIT_TAGGER "tagger"
|
||||
#define TRAIT_PHOTOGRAPHER "photographer"
|
||||
#define TRAIT_MUSICIAN "musician"
|
||||
#define TRAIT_CROCRIN_IMMUNE "crocin_immune"
|
||||
//#define TRAIT_CROCRIN_IMMUNE "crocin_immune" replaced with pref
|
||||
#define TRAIT_NYMPHO "nymphomania"
|
||||
#define TRAIT_DISTANT "headpat_hater"
|
||||
//#define TRAIT_FLUID_LEAK "leaky_fluids" removed because milk snail trails are not okay
|
||||
#define TRAIT_MASO "masochism"
|
||||
#define TRAIT_CHOKE_SLUT "choke_slut"
|
||||
#define TRAIT_HIGH_BLOOD "high_blood"
|
||||
#define TRAIT_PHARMA "hepatic_pharmacokinesis"
|
||||
//#define TRAIT_PHARMA "hepatic_pharmacokinesis" replaced with pref
|
||||
#define TRAIT_PARA "paraplegic"
|
||||
#define TRAIT_EMPATH "empath"
|
||||
#define TRAIT_FRIENDLY "friendly"
|
||||
|
||||
@@ -117,16 +117,6 @@
|
||||
if(quirk_holder)
|
||||
quirk_holder.remove_client_colour(/datum/client_colour/monochrome)
|
||||
|
||||
/datum/quirk/crocrin_immunity
|
||||
name = "Crocin Immunity"
|
||||
desc = "You're one of the few people in the galaxy who are genetically immune to Crocin and Hexacrocin products and their addictive properties! However, you can still get brain damage from Hexacrocin addiction."
|
||||
mob_trait = TRAIT_CROCRIN_IMMUNE
|
||||
value = 0
|
||||
category = CATEGORY_SEXUAL
|
||||
gain_text = "<span class='notice'>You feel more prudish.</span>"
|
||||
lose_text = "<span class='notice'>You don't feel as prudish as before.</span>"
|
||||
medical_record_text = "Patient exhibits a special gene that makes them immune to Crocin and Hexacrocin."
|
||||
|
||||
/datum/quirk/assblastusa
|
||||
name = "Buns of Steel"
|
||||
desc = "You've never skipped ass day. With this trait, you are completely immune to all forms of ass slapping and anyone who tries to slap your rock hard ass usually gets a broken hand."
|
||||
@@ -137,6 +127,17 @@
|
||||
gain_text = "<span class='notice'>Your ass rivals those of golems.</span>"
|
||||
lose_text = "<span class='notice'>Your butt feels more squishy and slappable.</span>"
|
||||
|
||||
/* REPLACED WITH PREFS
|
||||
/datum/quirk/crocrin_immunity
|
||||
name = "Crocin Immunity"
|
||||
desc = "You're one of the few people in the galaxy who are genetically immune to Crocin and Hexacrocin products and their addictive properties! However, you can still get brain damage from Hexacrocin addiction."
|
||||
mob_trait = TRAIT_CROCRIN_IMMUNE
|
||||
value = 0
|
||||
category = CATEGORY_SEXUAL
|
||||
gain_text = "<span class='notice'>You feel more prudish.</span>"
|
||||
lose_text = "<span class='notice'>You don't feel as prudish as before.</span>"
|
||||
medical_record_text = "Patient exhibits a special gene that makes them immune to Crocin and Hexacrocin."
|
||||
|
||||
/datum/quirk/headpat_slut
|
||||
name = "Headpat Slut"
|
||||
desc = "You like headpats, alot, maybe even a little bit too much. Headpats give you a bigger mood boost and cause arousal"
|
||||
@@ -152,6 +153,7 @@
|
||||
value = 0
|
||||
category = CATEGORY_SEXUAL //Any better place to put it? Doesn't really affect gameplay
|
||||
medical_record_text = "Patient cares little with or dislikes being touched."
|
||||
*/
|
||||
|
||||
/datum/quirk/colorist
|
||||
name = "Colorist"
|
||||
@@ -168,4 +170,4 @@
|
||||
/datum/quirk/colorist/post_add()
|
||||
var/mob/living/carbon/human/H = quirk_holder
|
||||
SEND_SIGNAL(H.back, COMSIG_TRY_STORAGE_SHOW, H)
|
||||
to_chat(quirk_holder, "<span class='boldnotice'>You brought some extra dye with you! It's in your bag if you forgot.</span>")
|
||||
to_chat(quirk_holder, "<span class='boldnotice'>You brought some extra dye with you! It's in your bag if you forgot.</span>")
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
to_chat(target, "<span class='warning'>You feel something interfering with your mental conditioning, but you resist it!</span>")
|
||||
else
|
||||
to_chat(target, "<span class='notice'>You feel a sense of peace and security. You are now enslaved!</span>")
|
||||
var/slave_objective = "[(target.client?.prefs.lewdchem?"Security has enslaved you into being their pet! Obey their commands, but remember: a good pet is not violent.":"You've been neutralized by security! Follow their orders, but remember: neutralization also means nonviolence.")]"
|
||||
var/slave_objective = "[((target.client?.prefs.cit_toggles & HYPNO)?"Security has enslaved you into being their pet! Obey their commands, but remember: a good pet is not violent.":"You've been neutralized by security! Follow their orders, but remember: neutralization also means nonviolence.")]"
|
||||
brainwash(target, slave_objective)
|
||||
target.sec_hud_set_implants()
|
||||
return TRUE
|
||||
|
||||
@@ -312,6 +312,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "<a href='?_src_=prefs;preference=tab;tab=3' [current_tab == 3 ? "class='linkOn'" : ""]>Loadout</a>"
|
||||
dat += "<a href='?_src_=prefs;preference=tab;tab=1' [current_tab == 1 ? "class='linkOn'" : ""]>Game Preferences</a>"
|
||||
dat += "<a href='?_src_=prefs;preference=tab;tab=4' [current_tab == 4 ? "class='linkOn'" : ""]>Antagonist Preferences</a>"
|
||||
dat += "<a href='?_src_=prefs;preference=tab;tab=4' [current_tab == 5 ? "class='linkOn'" : ""]>Content Preferences</a>"
|
||||
|
||||
if(!path)
|
||||
dat += "<div class='notice'>Please create an account to save your preferences</div>"
|
||||
@@ -1013,12 +1014,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
|
||||
dat +="<td width='300px' height='300px' valign='top'>"
|
||||
dat += "<h2>Citadel Preferences</h2>" //Because fuck me if preferences can't be fucking modularized and expected to update in a reasonable timeframe.
|
||||
dat += "<b>Arousal:</b><a href='?_src_=prefs;preference=arousable'>[arousable == TRUE ? "Enabled" : "Disabled"]</a><BR>"
|
||||
dat += "<b>Exhibitionist:</b><a href='?_src_=prefs;preference=exhibitionist'>[features["exhibitionist"] == TRUE ? "Yes" : "No"]</a><BR>"
|
||||
dat += "<b>Voracious MediHound sleepers:</b> <a href='?_src_=prefs;preference=hound_sleeper'>[(cit_toggles & MEDIHOUND_SLEEPER) ? "Yes" : "No"]</a><br>"
|
||||
dat += "<b>Hear Vore Sounds:</b> <a href='?_src_=prefs;preference=toggleeatingnoise'>[(cit_toggles & EATING_NOISES) ? "Yes" : "No"]</a><br>"
|
||||
dat += "<b>Hear Vore Digestion Sounds:</b> <a href='?_src_=prefs;preference=toggledigestionnoise'>[(cit_toggles & DIGESTION_NOISES) ? "Yes" : "No"]</a><br>"
|
||||
dat += "<b>Lewdchem:</b><a href='?_src_=prefs;preference=lewdchem'>[lewdchem == TRUE ? "Enabled" : "Disabled"]</a><BR>"
|
||||
dat += "<b>Widescreen:</b> <a href='?_src_=prefs;preference=widescreenpref'>[widescreenpref ? "Enabled ([CONFIG_GET(string/default_view)])" : "Disabled (15x15)"]</a><br>"
|
||||
dat += "<b>Auto stand:</b> <a href='?_src_=prefs;preference=autostand'>[autostand ? "Enabled" : "Disabled"]</a><br>"
|
||||
dat += "<b>Screen Shake:</b> <a href='?_src_=prefs;preference=screenshake'>[(screenshake==100) ? "Full" : ((screenshake==0) ? "None" : "[screenshake]")]</a><br>"
|
||||
@@ -1169,7 +1164,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "</td><td><font size=2><i>[gear.description]</i></font></td></tr>"
|
||||
dat += "</table>"
|
||||
|
||||
if(4) //Antag Preferences
|
||||
if(4) //Antag Preferences
|
||||
dat += "<h1>Special Role Settings</h1>"
|
||||
if(jobban_isbanned(user, ROLE_SYNDICATE))
|
||||
dat += "<font color=red><h3><b>You are banned from antagonist roles.</b></h3></font>"
|
||||
@@ -1191,6 +1186,27 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "<b>Be [capitalize(i)]:</b> <a href='?_src_=prefs;preference=be_special;be_special_type=[i]'>[(i in be_special) ? "Enabled" : "Disabled"]</a><br>"
|
||||
dat += "<b>Midround Antagonist:</b> <a href='?_src_=prefs;preference=allow_midround_antag'>[(toggles & MIDROUND_ANTAG) ? "Enabled" : "Disabled"]</a><br>"
|
||||
|
||||
if(5) //Content Preferences
|
||||
dat += "<table><tr><td width='340px' height='300px' valign='top'>"
|
||||
dat += "<h2>Fetish content prefs</h2>"
|
||||
dat += "<b>Arousal:</b><a href='?_src_=prefs;preference=arousable'>[arousable == TRUE ? "Enabled" : "Disabled"]</a><BR>"
|
||||
dat += "<b>Exhibitionist:</b><a href='?_src_=prefs;preference=exhibitionist'>[features["exhibitionist"] == TRUE ? "Yes" : "No"]</a><BR>"
|
||||
dat += "<b>Voracious MediHound sleepers:</b> <a href='?_src_=prefs;preference=hound_sleeper'>[(cit_toggles & MEDIHOUND_SLEEPER) ? "Yes" : "No"]</a><br>"
|
||||
dat += "<b>Hear Vore Sounds:</b> <a href='?_src_=prefs;preference=toggleeatingnoise'>[(cit_toggles & EATING_NOISES) ? "Yes" : "No"]</a><br>"
|
||||
dat += "<b>Hear Vore Digestion Sounds:</b> <a href='?_src_=prefs;preference=toggledigestionnoise'>[(cit_toggles & DIGESTION_NOISES) ? "Yes" : "No"]</a><br>"
|
||||
dat += "<b>Forced Feminization:</b> <a href='?_src_=prefs;preference=feminization'>[(cit_toggles & FORCED_FEM) ? "Allowed" : "Disallowed"]</a><br>"
|
||||
dat += "<b>Forced Masculinization:</b> <a href='?_src_=prefs;preference=masculinization'>[(cit_toggles & FORCED_MASC) ? "Allowed" : "Disallowed"]</a><br>"
|
||||
dat += "<b>Lewd Hypno:</b> <a href='?_src_=prefs;preference=hypno'>[(cit_toggles & HYPNO) ? "Allowed" : "Disallowed"]</a><br>"
|
||||
dat += "</td>"
|
||||
dat +="<td width='300px' height='300px' valign='top'>"
|
||||
dat += "<h2>Other content prefs</h2>"
|
||||
dat += "<b>Breast Enlargement:</b> <a href='?_src_=prefs;preference=breast_enlargement'>[(cit_toggles & BREAST_ENLARGEMENT) ? "Allowed" : "Disallowed"]</a><br>"
|
||||
dat += "<b>Penis Enlargement:</b> <a href='?_src_=prefs;preference=penis_enlargement'>[(cit_toggles & PENIS_ENLARGEMENT) ? "Allowed" : "Disallowed"]</a><br>"
|
||||
dat += "<b>Hypno:</b> <a href='?_src_=prefs;preference=hypno'>[(cit_toggles & NEVER_HYPNO) ? "Disallowed" : "Allowed"]</a><br>"
|
||||
dat += "<b>Aphrodisiacs:</b> <a href='?_src_=prefs;preference=aphro'>[(cit_toggles & NO_APHRO) ? "Disallowed" : "Allowed"]</a><br>"
|
||||
dat += "<b>Ass Slapping:</b> <a href='?_src_=prefs;preference=aphro'>[(cit_toggles & NO_ASS_SLAP) ? "Disallowed" : "Allowed"]</a><br>"
|
||||
dat += "<br>"
|
||||
|
||||
dat += "<hr><center>"
|
||||
|
||||
if(!IsGuestKey(user.key))
|
||||
@@ -2538,8 +2554,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
features["genitals_use_skintone"] = !features["genitals_use_skintone"]
|
||||
if("arousable")
|
||||
arousable = !arousable
|
||||
if("lewdchem")
|
||||
lewdchem = !lewdchem
|
||||
if("noncon")
|
||||
noncon = !noncon
|
||||
if("has_cock")
|
||||
@@ -2716,6 +2730,22 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
|
||||
if("toggledigestionnoise")
|
||||
cit_toggles ^= DIGESTION_NOISES
|
||||
|
||||
if("breast_enlargement")
|
||||
cit_toggles ^= BREAST_ENLARGEMENT
|
||||
|
||||
if("penis_enlargement")
|
||||
cit_toggles ^= PENIS_ENLARGEMENT
|
||||
|
||||
if("feminization")
|
||||
cit_toggles ^= FORCED_FEM
|
||||
|
||||
if("masculinization")
|
||||
cit_toggles ^= FORCED_MASC
|
||||
|
||||
if("hypno")
|
||||
cit_toggles ^= HYPNO
|
||||
|
||||
//END CITADEL EDIT
|
||||
|
||||
if("ambientocclusion")
|
||||
|
||||
@@ -137,7 +137,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
S["widescreenpref"] >> widescreenpref
|
||||
S["autostand"] >> autostand
|
||||
S["cit_toggles"] >> cit_toggles
|
||||
S["lewdchem"] >> lewdchem
|
||||
|
||||
//Hyper code
|
||||
S["noncon"] >> noncon
|
||||
@@ -262,7 +261,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
WRITE_FILE(S["widescreenpref"], widescreenpref)
|
||||
WRITE_FILE(S["autostand"], autostand)
|
||||
WRITE_FILE(S["cit_toggles"], cit_toggles)
|
||||
WRITE_FILE(S["lewdchem"], lewdchem)
|
||||
|
||||
//Hyper
|
||||
WRITE_FILE(S["noncon"], noncon)
|
||||
@@ -562,6 +560,21 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
medical_records = copytext(medical_records, 1, MAX_FLAVOR_LEN)
|
||||
all_quirks = SANITIZE_LIST(all_quirks)
|
||||
|
||||
for(var/V in all_quirks) // quirk migration
|
||||
switch(V)
|
||||
if("Acute hepatic pharmacokinesis")
|
||||
DISABLE_BITFIELD(cit_toggles, PENIS_ENLARGEMENT)
|
||||
DISABLE_BITFIELD(cit_toggles, BREAST_ENLARGEMENT)
|
||||
ENABLE_BITFIELD(cit_toggles,FORCED_FEM)
|
||||
ENABLE_BITFIELD(cit_toggles,FORCED_MASC)
|
||||
all_quirks -= V
|
||||
if("Crocin Immunity")
|
||||
ENABLE_BITFIELD(cit_toggles,NO_APHRO)
|
||||
all_quirks -= V
|
||||
if("Buns of Steel")
|
||||
ENABLE_BITFIELD(cit_toggles,NO_ASS_SLAP)
|
||||
all_quirks -= V
|
||||
|
||||
cit_character_pref_load(S)
|
||||
|
||||
return 1
|
||||
|
||||
@@ -331,7 +331,7 @@
|
||||
var/obj/item/organ/vocal_cords/Vc = user.getorganslot(ORGAN_SLOT_VOICE)
|
||||
if(Vc)
|
||||
if(istype(Vc, /obj/item/organ/vocal_cords/velvet))
|
||||
if(client?.prefs.lewdchem)
|
||||
if(client.prefs.cit_toggles & HYPNO)
|
||||
msg += "<span class='velvet'><i>You feel your chords resonate looking at them.</i></span>\n"
|
||||
|
||||
|
||||
|
||||
@@ -1612,6 +1612,9 @@ GLOBAL_LIST_EMPTY(roundstart_races)
|
||||
user.adjustStaminaLossBuffered(3)
|
||||
return FALSE
|
||||
else if(aim_for_groin && (target == user || target.lying || same_dir) && (target_on_help || target_restrained || target_aiming_for_groin))
|
||||
if(target.client?.prefs.cit_toggles & NO_ASS_SLAP)
|
||||
to_chat(user,"A force stays your hand, preventing you from slapping \the [target]'s ass!")
|
||||
return FALSE
|
||||
user.do_attack_animation(target, ATTACK_EFFECT_ASS_SLAP)
|
||||
user.adjustStaminaLossBuffered(3)
|
||||
if(HAS_TRAIT(target, TRAIT_ASSBLASTUSA))
|
||||
@@ -1625,7 +1628,6 @@ GLOBAL_LIST_EMPTY(roundstart_races)
|
||||
playsound(target.loc, 'sound/weapons/tap.ogg', 50, 1, -1)
|
||||
user.emote("scream")
|
||||
return FALSE
|
||||
|
||||
playsound(target.loc, 'sound/weapons/slap.ogg', 50, 1, -1)
|
||||
user.visible_message(\
|
||||
"<span class='danger'>\The [user] slaps \the [target]'s ass!</span>",\
|
||||
|
||||
@@ -816,9 +816,8 @@
|
||||
E.enthrallTally += (power_multiplier*(((length(message))/200) + 1)) //encourage players to say more than one word.
|
||||
else
|
||||
E.enthrallTally += power_multiplier*1.25 //thinking about it, I don't know how this can proc
|
||||
if(L.canbearoused)
|
||||
if(L.client?.prefs.lewdchem)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='nicegreen'><i><b>[E.enthrallGender] is so nice to listen to.</b></i></span>"), 5)
|
||||
if(L.canbearoused && E.lewd)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='nicegreen'><i><b>[E.enthrallGender] is so nice to listen to.</b></i></span>"), 5)
|
||||
E.cooldown += 1
|
||||
|
||||
//REWARD mixable works
|
||||
@@ -829,7 +828,7 @@
|
||||
power_multiplier *= distancelist[get_dist(user, V)+1]
|
||||
if(L == user)
|
||||
continue
|
||||
if (L.client?.prefs.lewdchem)
|
||||
if (E.lewd)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='love'>[E.enthrallGender] has praised me!!</span>"), 5)
|
||||
if(HAS_TRAIT(L, TRAIT_NYMPHO))
|
||||
L.adjustArousalLoss(2*power_multiplier)
|
||||
@@ -841,7 +840,7 @@
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='nicegreen'><b><i>I've been praised for doing a good job!</b></i></span>"), 5)
|
||||
E.resistanceTally -= power_multiplier
|
||||
E.enthrallTally += power_multiplier
|
||||
var/descmessage = "<span class='love'><i>[(L.client?.prefs.lewdchem?"I feel so happy! I'm a good pet who [E.enthrallGender] loves!":"I did a good job!")]</i></span>"
|
||||
var/descmessage = "<span class='love'><i>[(E.lewd?"I feel so happy! I'm a good pet who [E.enthrallGender] loves!":"I did a good job!")]</i></span>"
|
||||
SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "enthrallpraise", /datum/mood_event/enthrallpraise, descmessage)
|
||||
E.cooldown += 1
|
||||
|
||||
@@ -850,10 +849,10 @@
|
||||
for(var/V in listeners)
|
||||
var/mob/living/L = V
|
||||
var/datum/status_effect/chem/enthrall/E = L.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
var/descmessage = "[(L.client?.prefs.lewdchem?"I've failed [E.enthrallGender]... What a bad, bad pet!":"I did a bad job...")]"
|
||||
var/descmessage = "[(E.lewd?"I've failed [E.enthrallGender]... What a bad, bad pet!":"I did a bad job...")]"
|
||||
if(L == user)
|
||||
continue
|
||||
if (L.client?.prefs.lewdchem)
|
||||
if (E.lewd)
|
||||
if(HAS_TRAIT(L, TRAIT_MASO))
|
||||
L.adjustArousalLoss(3*power_multiplier)
|
||||
descmessage += "And yet, it feels so good..!</span>" //I don't really understand masco, is this the right sort of thing they like?
|
||||
@@ -880,7 +879,7 @@
|
||||
var/datum/status_effect/chem/enthrall/E = C.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
REMOVE_TRAIT(C, TRAIT_MUTE, "enthrall")
|
||||
C.silent = 0
|
||||
if(C.client?.prefs.lewdchem)
|
||||
if(E.lewd)
|
||||
addtimer(CALLBACK(C, /atom/movable/proc/say, "[E.enthrallGender]"), 5)
|
||||
else
|
||||
addtimer(CALLBACK(C, /atom/movable/proc/say, "[E.master]"), 5)
|
||||
@@ -896,7 +895,7 @@
|
||||
E.phase = 3
|
||||
E.status = null
|
||||
user.emote("snap")
|
||||
if(L.client?.prefs.lewdchem)
|
||||
if(E.lewd)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='big warning'>The snapping of your [E.enthrallGender]'s fingers brings you back to your enthralled state, obedient and ready to serve.</b></span>"), 5)
|
||||
else
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='big warning'>The snapping of [E.master]'s fingers brings you back to being under their influence.</b></span>"), 5)
|
||||
@@ -919,11 +918,11 @@
|
||||
addtimer(CALLBACK(H, /atom/movable/proc/say, "I feel happy being with you."), 5)
|
||||
continue
|
||||
if(2)
|
||||
speaktrigger += "[(H.client?.prefs.lewdchem?"I think I'm in love with you... ":"I find you really inspirational, ")]" //'
|
||||
speaktrigger += "[(E.lewd?"I think I'm in love with you... ":"I find you really inspirational, ")]" //'
|
||||
if(3)
|
||||
speaktrigger += "[(H.client?.prefs.lewdchem?"I'm devoted to being your pet":"I'm commited to following your cause!")]! "
|
||||
speaktrigger += "[(E.lewd?"I'm devoted to being your pet":"I'm commited to following your cause!")]! "
|
||||
if(4)
|
||||
speaktrigger += "[(H.client?.prefs.lewdchem?"You are my whole world and all of my being belongs to you, ":"I cannot think of anything else but aiding your cause, ")] "//Redflags!!
|
||||
speaktrigger += "[(E.lewd?"You are my whole world and all of my being belongs to you, ":"I cannot think of anything else but aiding your cause, ")] "//Redflags!!
|
||||
|
||||
//mood
|
||||
var/datum/component/mood/mood = H.GetComponent(/datum/component/mood)
|
||||
@@ -1012,7 +1011,7 @@
|
||||
speaktrigger += "I feel like I'm on the brink of losing my mind, "
|
||||
|
||||
//horny
|
||||
if(HAS_TRAIT(H, TRAIT_NYMPHO) && H.canbearoused && H.client?.prefs.lewdchem)
|
||||
if(HAS_TRAIT(H, TRAIT_NYMPHO) && H.canbearoused && E.lewd)
|
||||
switch(H.getArousalLoss())
|
||||
if(40 to 60)
|
||||
speaktrigger += "I'm feeling a little horny, "
|
||||
@@ -1022,10 +1021,10 @@
|
||||
speaktrigger += "I'm really, really horny, "
|
||||
|
||||
//collar
|
||||
if(istype(H.wear_neck, /obj/item/clothing/neck/petcollar) && H.client?.prefs.lewdchem)
|
||||
if(istype(H.wear_neck, /obj/item/clothing/neck/petcollar) && E.lewd)
|
||||
speaktrigger += "I love the collar you gave me, "
|
||||
//End
|
||||
if(H.client?.prefs.lewdchem)
|
||||
if(E.lewd)
|
||||
speaktrigger += "[E.enthrallGender]!"
|
||||
else
|
||||
speaktrigger += "[user.first_name()]!"
|
||||
@@ -1053,7 +1052,7 @@
|
||||
REMOVE_TRAIT(C, TRAIT_MUTE, "enthrall")
|
||||
C.silent = 0
|
||||
E.cooldown += 3
|
||||
to_chat(user, "<span class='notice'><i>You [(C.client?.prefs.lewdchem?"allow [C] to speak again":"encourage [C] to speak again")].</i></span>")
|
||||
to_chat(user, "<span class='notice'><i>You [(E.lewd?"allow [C] to speak again":"encourage [C] to speak again")].</i></span>")
|
||||
|
||||
|
||||
//Antiresist
|
||||
@@ -1083,7 +1082,7 @@
|
||||
for(var/mob/living/carbon/C in listeners)
|
||||
var/datum/status_effect/chem/enthrall/E = C.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
if(E.phase == 4)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "<span class='warning'>You're unable to forget about [(C.client?.prefs.lewdchem?"the dominating presence of [E.enthrallGender]":"[E.master]")]!</b></span>"), 5)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "<span class='warning'>You're unable to forget about [(E.lewd?"the dominating presence of [E.enthrallGender]":"[E.master]")]!</b></span>"), 5)
|
||||
continue
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "<span class='warning'>You wake up, forgetting everything that just happened. You must've dozed off..? How embarassing!</b></span>"), 5)
|
||||
C.Sleeping(50)
|
||||
@@ -1095,7 +1094,7 @@
|
||||
if(3)
|
||||
E.phase = 0
|
||||
E.cooldown = 0
|
||||
if(C.client?.prefs.lewdchem)
|
||||
if(E.lewd)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "<span class='big warning'>You revert to yourself before being enthralled by your [E.enthrallGender], with no memory of what happened.</b></span>"), 5)
|
||||
else
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "<span class='big warning'>You revert to who you were before, with no memory of what happened with [E.master].</b></span>"), 5)
|
||||
@@ -1122,7 +1121,7 @@
|
||||
var/mob/living/carbon/human/H = V
|
||||
var/datum/status_effect/chem/enthrall/E = H.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
if(E.phase > 1)
|
||||
if(HAS_TRAIT(H, TRAIT_NYMPHO) && H.canbearoused && H.client?.prefs.lewdchem) // probably a redundant check but for good measure
|
||||
if(HAS_TRAIT(H, TRAIT_NYMPHO) && H.canbearoused && E.lewd) // probably a redundant check but for good measure
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "<span class='love'>Your [E.enthrallGender] pushes you over the limit, overwhelming your body with pleasure.</b></span>"), 5)
|
||||
H.mob_climax(forced_climax=TRUE)
|
||||
H.SetStun(20)
|
||||
@@ -1178,7 +1177,7 @@
|
||||
for(var/obj/item/W in items)
|
||||
if(W == H.wear_suit)
|
||||
H.dropItemToGround(W, TRUE)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "<span class='[(H.client?.prefs.lewdchem?"love":"warning")]'>Before you can even think about it, you quickly remove your clothes in response to [(H.client?.prefs.lewdchem?"your [E.enthrallGender]'s command'":"[E.master]'s directive'")].</b></span>"), 5)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "<span class='[(E.lewd?"love":"warning")]'>Before you can even think about it, you quickly remove your clothes in response to [(E.lewd?"your [E.enthrallGender]'s command'":"[E.master]'s directive'")].</b></span>"), 5)
|
||||
E.cooldown += 10
|
||||
|
||||
//WALK
|
||||
@@ -1216,7 +1215,7 @@
|
||||
if(2 to INFINITY)
|
||||
L.lay_down()
|
||||
E.cooldown += 10
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "[(L.client?.prefs.lewdchem?"<span class='love'>You eagerly lie down!":"<span class='notice'>You suddenly lie down!")]</b></span>"), 5)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "[(E.lewd?"<span class='love'>You eagerly lie down!":"<span class='notice'>You suddenly lie down!")]</b></span>"), 5)
|
||||
to_chat(user, "<span class='notice'><i>You encourage [L] to lie down.</i></span>")
|
||||
|
||||
//KNOCKDOWN
|
||||
@@ -1247,7 +1246,7 @@
|
||||
for (var/trigger in E.customTriggers)
|
||||
speaktrigger += "[trigger], "
|
||||
to_chat(user, "<b>[C]</b> whispers, \"<i>[speaktrigger] are my triggers.</i>\"")//So they don't trigger themselves!
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "<span class='notice'>You whisper your triggers to [(C.client?.prefs.lewdchem?"Your [E.enthrallGender]":"[E.master]")].</span>"), 5)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "<span class='notice'>You whisper your triggers to [(E.lewd?"Your [E.enthrallGender]":"[E.master]")].</span>"), 5)
|
||||
|
||||
|
||||
//CUSTOM TRIGGERS
|
||||
@@ -1259,7 +1258,7 @@
|
||||
if (get_dist(user, H) > 1)//Requires user to be next to their pet.
|
||||
to_chat(user, "<span class='warning'>You need to be next to your pet to give them a new trigger!</b></span>")
|
||||
continue
|
||||
if(!H.client?.prefs.lewdchem)
|
||||
if(!E.lewd)
|
||||
to_chat(user, "<span class='warning'>[H] seems incapable of being implanted with triggers.</b></span>")
|
||||
continue
|
||||
else
|
||||
@@ -1282,7 +1281,7 @@
|
||||
E.customTriggers[trigger] = trigger2
|
||||
log_game("FERMICHEM: [H] has been implanted by [user] with [trigger], triggering [trigger2].")
|
||||
E.mental_capacity -= 5
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "<span class='notice'>[(H.client?.prefs.lewdchem?"your [E.enthrallGender]":"[E.master]")] whispers you a new trigger.</span>"), 5)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "<span class='notice'>[(E.lewd?"your [E.enthrallGender]":"[E.master]")] whispers you a new trigger.</span>"), 5)
|
||||
to_chat(user, "<span class='notice'><i>You sucessfully set the trigger word [trigger] in [H]</i></span>")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>Your pet looks at you confused, it seems they don't understand that effect!</b></span>")
|
||||
@@ -1300,7 +1299,7 @@
|
||||
if (get_dist(user, H) > 1)//Requires user to be next to their pet.
|
||||
to_chat(user, "<span class='warning'>You need to be next to your pet to give them a new echophrase!</b></span>")
|
||||
continue
|
||||
if(!H.client?.prefs.lewdchem)
|
||||
if(!E.lewd)
|
||||
to_chat(user, "<span class='warning'>[H] seems incapable of being implanted with an echoing phrase.</b></span>")
|
||||
continue
|
||||
else
|
||||
@@ -1344,7 +1343,7 @@
|
||||
objective = replacetext(lowertext(objective), "suicide", "self-love")
|
||||
message_admins("[H] has been implanted by [user] with the objective [objective].")
|
||||
log_game("FERMICHEM: [H] has been implanted by [user] with the objective [objective] via MKUltra.")
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "<span class='notice'>[(H.client?.prefs.lewdchem?"Your [E.enthrallGender]":"[E.master]")] whispers you a new objective.</span>"), 5)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "<span class='notice'>[(E.lewd?"Your [E.enthrallGender]":"[E.master]")] whispers you a new objective.</span>"), 5)
|
||||
brainwash(H, objective)
|
||||
E.mental_capacity -= 200
|
||||
to_chat(user, "<span class='notice'><i>You sucessfully give an objective to [H]</i></span>")
|
||||
@@ -1358,7 +1357,7 @@
|
||||
for(var/V in listeners)
|
||||
var/mob/living/carbon/human/H = V
|
||||
var/datum/status_effect/chem/enthrall/E = H.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
if(E.phase >= 3 && H.client?.prefs.lewdchem)
|
||||
if(E.phase >= 3 && E.lewd)
|
||||
var/instill = stripped_input(user, "Instill an emotion in [H].", MAX_MESSAGE_LEN)
|
||||
to_chat(H, "<i>[instill]</i>")
|
||||
to_chat(user, "<span class='notice'><i>You sucessfully instill a feeling in [H]</i></span>")
|
||||
@@ -1373,7 +1372,7 @@
|
||||
if(E.phase > 1)
|
||||
if(user.ckey == E.enthrallID && user.real_name == E.master.real_name)
|
||||
E.master = user
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "<span class='nicegreen'>[(H.client?.prefs.lewdchem?"You hear the words of your [E.enthrallGender] again!! They're back!!":"You recognise the voice of [E.master].")]</b></span>"), 5)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "<span class='nicegreen'>[(E.lewd?"You hear the words of your [E.enthrallGender] again!! They're back!!":"You recognise the voice of [E.master].")]</b></span>"), 5)
|
||||
to_chat(user, "<span class='notice'><i>[H] looks at you with sparkling eyes, recognising you!</i></span>")
|
||||
|
||||
//I dunno how to do state objectives without them revealing they're an antag
|
||||
|
||||
@@ -176,12 +176,12 @@
|
||||
var/lewd = TRUE
|
||||
*/
|
||||
|
||||
/mob/living/verb/toggle_lewd()
|
||||
/mob/living/verb/toggle_hypno()
|
||||
set category = "IC"
|
||||
set name = "Toggle Lewdchem"
|
||||
set desc = "Allows you to toggle if you'd like lewd flavour messages."
|
||||
client.prefs.lewdchem = !(client.prefs.lewdchem)
|
||||
to_chat(usr, "You [(client.prefs.lewdchem?"will":"no longer")] receive lewdchem messages.")
|
||||
set name = "Toggle Lewd MKUltra"
|
||||
set desc = "Allows you to toggle if you'd like lewd flavour messages for MKUltra."
|
||||
client.prefs.cit_toggles ^= HYPNO
|
||||
to_chat(usr, "You [((client.prefs.cit_toggles & HYPNO) ?"will":"no longer")] receive lewd flavour messages for MKUltra.")
|
||||
|
||||
/datum/status_effect/chem/enthrall
|
||||
id = "enthrall"
|
||||
@@ -219,11 +219,13 @@
|
||||
var/customEcho //Custom looping text in owner
|
||||
var/customSpan //Custom spans for looping text
|
||||
|
||||
var/lewd = FALSE // Set on on_apply. Will only be true if both individuals involved have opted in.
|
||||
|
||||
/datum/status_effect/chem/enthrall/on_apply()
|
||||
var/mob/living/carbon/M = owner
|
||||
var/datum/reagent/fermi/enthrall/E = locate(/datum/reagent/fermi/enthrall) in M.reagents.reagent_list
|
||||
if(!E)
|
||||
message_admins("WARNING: FermiChem: No master found in thrall, did you bus in the status? You need to set up the vars manually in the chem if it's not reacted/bussed. Someone set up the reaction/status proc incorrectly if not (Don't use donor blood). Console them with a chemcat plush maybe?")
|
||||
message_admins("WARNING: FermiChem: No master found in thrall, did you bus in the status? You need to set up the vars manually in the chem if it's not reacted/bussed. Someone set up the reaction/status proc incorrectly if not (Don't use donor blood).")
|
||||
owner.remove_status_effect(src)
|
||||
enthrallID = E.creatorID
|
||||
enthrallGender = E.creatorGender
|
||||
@@ -237,10 +239,11 @@
|
||||
var/mob/living/carbon/human/H = owner
|
||||
if(H)//Prefs
|
||||
if(!H.canbearoused)
|
||||
H.client?.prefs.lewdchem = FALSE
|
||||
var/message = "[(owner.client?.prefs.lewdchem?"I am a good pet for [enthrallGender].":"[master] is a really inspirational person!")]"
|
||||
H.client?.prefs.cit_toggles &= ~HYPNO
|
||||
lewd = (owner.client?.prefs.cit_toggles & HYPNO) && (master.client?.prefs.cit_toggles & HYPNO)
|
||||
var/message = "[(lewd ? "I am a good pet for [enthrallGender]." : "[master] is a really inspirational person!")]"
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "enthrall", /datum/mood_event/enthrall, message)
|
||||
to_chat(owner, "<span class='[(owner.client?.prefs.lewdchem?"big velvet":"big warning")]'><b>You feel inexplicably drawn towards [master], their words having a demonstrable effect on you. It seems the closer you are to them, the stronger the effect is. However you aren't fully swayed yet and can resist their effects by repeatedly resisting as much as you can!</b></span>")
|
||||
to_chat(owner, "<span class='[(lewd?"big velvet":"big warning")]'><b>You feel inexplicably drawn towards [master], their words having a demonstrable effect on you. It seems the closer you are to them, the stronger the effect is. However you aren't fully swayed yet and can resist their effects by repeatedly resisting as much as you can!</b></span>")
|
||||
log_game("FERMICHEM: MKULTRA: Status applied on [owner] ckey: [owner.key] with a master of [master] ckey: [enthrallID].")
|
||||
SSblackbox.record_feedback("tally", "fermi_chem", 1, "Enthrall attempts")
|
||||
return ..()
|
||||
@@ -286,7 +289,7 @@
|
||||
resistanceTally /= 2
|
||||
enthrallTally = 0
|
||||
SSblackbox.record_feedback("tally", "fermi_chem", 1, "Enthralled to state 2")
|
||||
if(owner.client?.prefs.lewdchem)
|
||||
if(lewd)
|
||||
to_chat(owner, "<span class='big velvet'><i>Your conciousness slips, as you sink deeper into trance and servitude.</i></span>")
|
||||
else
|
||||
to_chat(owner, "<span class='big velvet'><i>Your conciousness slips, as you feel more drawn to following [master].</i></span>")
|
||||
@@ -295,24 +298,23 @@
|
||||
phase = -1
|
||||
to_chat(owner, "<span class='warning'><i>You break free of the influence in your mind, your thoughts suddenly turning lucid!</i></span>")
|
||||
if(DistApart < 10)
|
||||
to_chat(master, "<span class='warning'>[(master.client?.prefs.lewdchem?"Your pet":"Your thrall")] seems to have broken free of your enthrallment!</i></span>")
|
||||
to_chat(master, "<span class='warning'>[(lewd?"Your pet":"Your thrall")] seems to have broken free of your enthrallment!</i></span>")
|
||||
SSblackbox.record_feedback("tally", "fermi_chem", 1, "Thralls broken free")
|
||||
owner.remove_status_effect(src) //If resisted in phase 1, effect is removed.
|
||||
if(prob(10))
|
||||
if(owner.client?.prefs.lewdchem)
|
||||
to_chat(owner, "<span class='small velvet'><i>[pick("It feels so good to listen to [master].", "You can't keep your eyes off [master].", "[master]'s voice is making you feel so sleepy.", "You feel so comfortable with [master]", "[master] is so dominant, it feels right to obey them.")].</b></span>")
|
||||
if(lewd && prob(10))
|
||||
to_chat(owner, "<span class='velvet'><i>[pick("It feels so good to listen to [enthrallGender].", "You can't keep your eyes off [enthrallGender].", "[enthrallGender]'s voice is making you feel so sleepy.", "You feel so comfortable with [enthrallGender]", "[enthrallGender] is so dominant, it feels right to obey them.")].</i></span>")
|
||||
if (2) //partially enthralled
|
||||
if(enthrallTally > 200)
|
||||
phase += 1
|
||||
mental_capacity -= resistanceTally//leftover resistance per step is taken away from mental_capacity.
|
||||
enthrallTally = 0
|
||||
resistanceTally /= 2
|
||||
if(owner.client?.prefs.lewdchem)
|
||||
if(lewd)
|
||||
to_chat(owner, "<span class='love'><b><i>Your mind gives, eagerly obeying and serving [master].</b></i></span>")
|
||||
to_chat(owner, "<span class='big warning'><b>You are now fully enthralled to [master], and eager to follow their commands. However you find that in your intoxicated state you are unable to resort to violence. Equally you are unable to commit suicide, even if ordered to, as you cannot serve your [enthrallGender] in death. </i></span>")//If people start using this as an excuse to be violent I'll just make them all pacifists so it's not OP.
|
||||
else
|
||||
to_chat(owner, "<span class='big nicegreen'><i>You are unable to put up a resistance any longer, and now are under the influence of [master]. However you find that in your intoxicated state you are unable to resort to violence. Equally you are unable to commit suicide, even if ordered to, as you cannot follow [master] in death. </i></span>")
|
||||
to_chat(master, "<span class='notice'><i>Your [(master.client?.prefs.lewdchem?"pet":"follower")] [owner] appears to have fully fallen under your sway.</i></span>")
|
||||
to_chat(master, "<span class='notice'><i>Your [(lewd?"pet":"follower")] [owner] appears to have fully fallen under your sway.</i></span>")
|
||||
log_game("FERMICHEM: MKULTRA: Status on [owner] ckey: [owner.key] has been fully entrhalled (state 3) with a master of [master] ckey: [enthrallID].")
|
||||
SSblackbox.record_feedback("tally", "fermi_chem", 1, "thralls fully enthralled.")
|
||||
else if (resistanceTally > 200)
|
||||
@@ -322,7 +324,7 @@
|
||||
resistGrowth = 0
|
||||
to_chat(owner, "<span class='notice'><i>You manage to shake some of the effects from your addled mind, however you can still feel yourself drawn towards [master].</i></span>")
|
||||
if(prob(10))
|
||||
if(owner.client?.prefs.lewdchem)
|
||||
if(lewd)
|
||||
to_chat(owner, "<span class='velvet'><i>[pick("It feels so good to listen to [enthrallGender].", "You can't keep your eyes off [enthrallGender].", "[enthrallGender]'s voice is making you feel so sleepy.", "You feel so comfortable with [enthrallGender]", "[enthrallGender] is so dominant, it feels right to obey them.")].</i></span>")
|
||||
if (3)//fully entranced
|
||||
if ((resistanceTally >= 200 && withdrawalTick >= 150) || (HAS_TRAIT(M, TRAIT_MINDSHIELD) && (resistanceTally >= 100)))
|
||||
@@ -330,11 +332,10 @@
|
||||
phase -= 1
|
||||
resistanceTally = 0
|
||||
resistGrowth = 0
|
||||
to_chat(owner, "<span class='notice'><i>The separation from [(owner.client?.prefs.lewdchem?"your [enthrallGender]":"[master]")] sparks a small flame of resistance in yourself, as your mind slowly starts to return to normal.</i></span>")
|
||||
to_chat(owner, "<span class='notice'><i>The separation from [(lewd?"your [enthrallGender]":"[master]")] sparks a small flame of resistance in yourself, as your mind slowly starts to return to normal.</i></span>")
|
||||
REMOVE_TRAIT(owner, TRAIT_PACIFISM, "MKUltra")
|
||||
if(prob(1))
|
||||
if(owner.client?.prefs.lewdchem && !customEcho)
|
||||
to_chat(owner, "<span class='love'><i>[pick("I belong to [enthrallGender].", "[enthrallGender] knows whats best for me.", "Obedence is pleasure.", "I exist to serve [enthrallGender].", "[enthrallGender] is so dominant, it feels right to obey them.")].</i></span>")
|
||||
if(lewd && prob(1) && !customEcho)
|
||||
to_chat(owner, "<span class='love'><i>[pick("I belong to [enthrallGender].", "[enthrallGender] knows whats best for me.", "Obedence is pleasure.", "I exist to serve [enthrallGender].", "[enthrallGender] is so dominant, it feels right to obey them.")].</i></span>")
|
||||
if (4) //mindbroken
|
||||
if (mental_capacity >= 499 && (owner.getOrganLoss(ORGAN_SLOT_BRAIN) <=0 || HAS_TRAIT(M, TRAIT_MINDSHIELD)) && !owner.reagents.has_reagent(/datum/reagent/fermi/enthrall))
|
||||
phase = 2
|
||||
@@ -350,7 +351,7 @@
|
||||
cooldownMsg = FALSE
|
||||
else if (cooldownMsg == FALSE)
|
||||
if(DistApart < 10)
|
||||
if(master.client?.prefs.lewdchem)
|
||||
if(lewd)
|
||||
to_chat(master, "<span class='notice'><i>Your pet [owner] appears to have finished internalising your last command.</i></span>")
|
||||
cooldownMsg = TRUE
|
||||
else
|
||||
@@ -358,7 +359,7 @@
|
||||
cooldownMsg = TRUE
|
||||
if(get_dist(master, owner) > 10)
|
||||
if(prob(10))
|
||||
to_chat(owner, "<span class='velvet'><i>You feel [(owner.client?.prefs.lewdchem?"a deep NEED to return to your [enthrallGender]":"like you have to return to [master]")].</i></span>")
|
||||
to_chat(owner, "<span class='velvet'><i>You feel [(lewd?"a deep NEED to return to your [enthrallGender]":"like you have to return to [master]")].</i></span>")
|
||||
M.throw_at(get_step_towards(master,owner), 5, 1)
|
||||
return//If you break the mind of someone, you can't use status effects on them.
|
||||
|
||||
@@ -391,29 +392,29 @@
|
||||
if (withdrawal == TRUE)//Your minions are really REALLY needy.
|
||||
switch(withdrawalTick)//denial
|
||||
if(5)//To reduce spam
|
||||
to_chat(owner, "<span class='big warning'><b>You are unable to complete [(owner.client?.prefs.lewdchem?"your [enthrallGender]":"[master]")]'s orders without their presence, and any commands and objectives given to you prior are not in effect until you are back with them.</b></span>")
|
||||
to_chat(owner, "<span class='big warning'><b>You are unable to complete [(lewd?"your [enthrallGender]":"[master]")]'s orders without their presence, and any commands and objectives given to you prior are not in effect until you are back with them.</b></span>")
|
||||
ADD_TRAIT(owner, TRAIT_PACIFISM, "MKUltra") //IMPORTANT
|
||||
if(10 to 35)//Gives wiggle room, so you're not SUPER needy
|
||||
if(prob(5))
|
||||
to_chat(owner, "<span class='notice'><i>You're starting to miss [(owner.client?.prefs.lewdchem?"your [enthrallGender]":"[master]")].</i></span>")
|
||||
to_chat(owner, "<span class='notice'><i>You're starting to miss [(lewd?"your [enthrallGender]":"[master]")].</i></span>")
|
||||
if(prob(5))
|
||||
owner.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.1)
|
||||
to_chat(owner, "<i>[(owner.client?.prefs.lewdchem?"[enthrallGender]":"[master]")] will surely be back soon</i>") //denial
|
||||
to_chat(owner, "<i>[(lewd?"[enthrallGender]":"[master]")] will surely be back soon</i>") //denial
|
||||
if(36)
|
||||
var/message = "[(owner.client?.prefs.lewdchem?"I feel empty when [enthrallGender]'s not around..":"I miss [master]'s presence")]"
|
||||
var/message = "[(lewd?"I feel empty when [enthrallGender]'s not around..":"I miss [master]'s presence")]"
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "EnthMissing1", /datum/mood_event/enthrallmissing1, message)
|
||||
if(37 to 65)//barganing
|
||||
if(prob(10))
|
||||
to_chat(owner, "<i>They are coming back, right...?</i>")
|
||||
owner.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.5)
|
||||
if(prob(10))
|
||||
if(owner.client?.prefs.lewdchem)
|
||||
if(lewd)
|
||||
to_chat(owner, "<i>I just need to be a good pet for [enthrallGender], they'll surely return if I'm a good pet.</i>")
|
||||
owner.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1.5)
|
||||
if(66)
|
||||
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing1")
|
||||
var/message = "[(owner.client?.prefs.lewdchem?"I feel so lost in this complicated world without [enthrallGender]..":"I have to return to [master]!")]"
|
||||
to_chat(owner, "<span class='warning'>You start to feel really angry about how you're not with [(owner.client?.prefs.lewdchem?"your [enthrallGender]":"[master]")]!</span>")
|
||||
var/message = "[(lewd?"I feel so lost in this complicated world without [enthrallGender]..":"I have to return to [master]!")]"
|
||||
to_chat(owner, "<span class='warning'>You start to feel really angry about how you're not with [(lewd?"your [enthrallGender]":"[master]")]!</span>")
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "EnthMissing2", /datum/mood_event/enthrallmissing2, message)
|
||||
owner.stuttering += 50
|
||||
owner.jitteriness += 250
|
||||
@@ -421,15 +422,15 @@
|
||||
if(prob(10))
|
||||
addtimer(CALLBACK(M, /mob/verb/a_intent_change, INTENT_HARM), 2)
|
||||
addtimer(CALLBACK(M, /mob/proc/click_random_mob), 2)
|
||||
if(owner.client?.prefs.lewdchem)
|
||||
if(lewd)
|
||||
to_chat(owner, "<span class='warning'>You are overwhelmed with anger at the lack of [enthrallGender]'s presence and suddenly lash out!</span>")
|
||||
else
|
||||
to_chat(owner, "<span class='warning'>You are overwhelmed with anger and suddenly lash out!</span>")
|
||||
if(90)
|
||||
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing2")
|
||||
var/message = "[(owner.client?.prefs.lewdchem?"Where are you [enthrallGender]??!":"I need to find [master]!")]"
|
||||
var/message = "[(lewd?"Where are you [enthrallGender]??!":"I need to find [master]!")]"
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "EnthMissing3", /datum/mood_event/enthrallmissing3, message)
|
||||
if(owner.client?.prefs.lewdchem)
|
||||
if(lewd)
|
||||
to_chat(owner, "<span class='warning'><i>You need to find your [enthrallGender] at all costs, you can't hold yourself back anymore!</i></span>")
|
||||
else
|
||||
to_chat(owner, "<span class='warning'><i>You need to find [master] at all costs, you can't hold yourself back anymore!</i></span>")
|
||||
@@ -442,15 +443,15 @@
|
||||
M.hallucination += 10
|
||||
if(101)
|
||||
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing3")
|
||||
var/message = "[(owner.client?.prefs.lewdchem?"I'm all alone, It's so hard to continute without [enthrallGender]...":"I really need to find [master]!!!")]"
|
||||
var/message = "[(lewd?"I'm all alone, It's so hard to continute without [enthrallGender]...":"I really need to find [master]!!!")]"
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "EnthMissing4", /datum/mood_event/enthrallmissing4, message)
|
||||
to_chat(owner, "<span class='warning'><i>You can hardly find the strength to continue without [(owner.client?.prefs.lewdchem?"your [enthrallGender]":"[master]")].</i></span>")
|
||||
to_chat(owner, "<span class='warning'><i>You can hardly find the strength to continue without [(lewd?"your [enthrallGender]":"[master]")].</i></span>")
|
||||
M.gain_trauma_type(BRAIN_TRAUMA_SEVERE)
|
||||
if(102 to 140) //depression 2, revengeance
|
||||
if(prob(20))
|
||||
owner.Stun(50)
|
||||
owner.emote("cry")//does this exist?
|
||||
if(owner.client?.prefs.lewdchem)
|
||||
if(lewd)
|
||||
to_chat(owner, "<span class='warning'><i>You're unable to hold back your tears, suddenly sobbing as the desire to see your [enthrallGender] oncemore overwhelms you.</i></span>")
|
||||
else
|
||||
to_chat(owner, "<span class='warning'><i>You are overwheled with withdrawl from [master].</i></span>")
|
||||
@@ -472,7 +473,7 @@
|
||||
deltaResist += 5
|
||||
owner.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1)
|
||||
if(prob(20))
|
||||
if(owner.client?.prefs.lewdchem)
|
||||
if(lewd)
|
||||
to_chat(owner, "<i><span class='small green'>Maybe you'll be okay without your [enthrallGender].</i></span>")
|
||||
else
|
||||
to_chat(owner, "<i><span class='small green'>You feel your mental functions slowly begin to return.</i></span>")
|
||||
@@ -505,7 +506,7 @@
|
||||
else if(status == "charge")
|
||||
ADD_TRAIT(owner, TRAIT_GOTTAGOFAST, "MKUltra")
|
||||
status = "charged"
|
||||
if(master.client?.prefs.lewdchem)
|
||||
if(lewd)
|
||||
to_chat(owner, "<span class='notice'><i>Your [enthrallGender]'s order fills you with a burst of speed!</i></span>")
|
||||
else
|
||||
to_chat(owner, "<span class='notice'><i>[master]'s command fills you with a burst of speed!</i></span>")
|
||||
@@ -528,7 +529,7 @@
|
||||
//adrenals?
|
||||
|
||||
//customEcho
|
||||
if(customEcho && withdrawal == FALSE && owner.client?.prefs.lewdchem)
|
||||
if(customEcho && withdrawal == FALSE && lewd)
|
||||
if(prob(2))
|
||||
if(!customSpan) //just in case!
|
||||
customSpan = "notice"
|
||||
@@ -544,7 +545,7 @@
|
||||
cooldownMsg = FALSE
|
||||
else if (cooldownMsg == FALSE)
|
||||
if(DistApart < 10)
|
||||
if(master.client?.prefs.lewdchem)
|
||||
if(lewd)
|
||||
to_chat(master, "<span class='notice'><i>Your pet [owner] appears to have finished internalising your last command.</i></span>")
|
||||
else
|
||||
to_chat(master, "<span class='notice'><i>Your thrall [owner] appears to have finished internalising your last command.</i></span>")
|
||||
@@ -577,7 +578,7 @@
|
||||
|
||||
|
||||
/datum/status_effect/chem/enthrall/proc/owner_hear(datum/source, list/hearing_args)
|
||||
if(owner.client?.prefs.lewdchem == FALSE)
|
||||
if(lewd == FALSE)
|
||||
return
|
||||
if (cTriggered > 0)
|
||||
return
|
||||
@@ -607,7 +608,7 @@
|
||||
|
||||
//Shocking truth!
|
||||
else if (lowertext(customTriggers[trigger]) == "shock")
|
||||
if (C.canbearoused && C.client?.prefs.lewdchem)
|
||||
if (C.canbearoused && lewd)
|
||||
C.adjustArousalLoss(5)
|
||||
C.jitteriness += 100
|
||||
C.stuttering += 25
|
||||
@@ -617,7 +618,7 @@
|
||||
|
||||
//wah intensifies wah-rks
|
||||
else if (lowertext(customTriggers[trigger]) == "cum")//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
if (HAS_TRAIT(C, TRAIT_NYMPHO) && C.client?.prefs.lewdchem)
|
||||
if (HAS_TRAIT(C, TRAIT_NYMPHO) && lewd)
|
||||
if (C.getArousalLoss() > 80)
|
||||
C.mob_climax(forced_climax=TRUE)
|
||||
C.SetStun(10)//We got your stun effects in somewhere, Kev.
|
||||
@@ -658,20 +659,20 @@
|
||||
if (status == "Sleeper" || phase == 0)
|
||||
return
|
||||
else if (phase == 4)
|
||||
if(owner.client?.prefs.lewdchem)
|
||||
if(lewd)
|
||||
to_chat(owner, "<span class='warning'><i>Your mind is too far gone to even entertain the thought of resisting. Unless you can fix the brain damage, you won't be able to break free of your [enthrallGender]'s control.</i></span>")
|
||||
else
|
||||
to_chat(owner, "<span class='warning'><i>Your brain is too overwhelmed with from the high volume of chemicals in your system, rendering you unable to resist, unless you can fix the brain damage.</i></span>")
|
||||
return
|
||||
else if (phase == 3 && withdrawal == FALSE)
|
||||
if(owner.client?.prefs.lewdchem)
|
||||
if(lewd)
|
||||
to_chat(owner, "<span class='hypnophrase'><i>The presence of your [enthrallGender] fully captures the horizon of your mind, removing any thoughts of resistance. If you get split up from them, then you might be able to entertain the idea of resisting.</i></span>")
|
||||
else
|
||||
to_chat(owner, "<span class='hypnophrase'><i>You are unable to resist [master] in your current state. If you get split up from them, then you might be able to resist.</i></span>")
|
||||
return
|
||||
else if (status == "Antiresist")//If ordered to not resist; resisting while ordered to not makes it last longer, and increases the rate in which you are enthralled.
|
||||
if (statusStrength > 0)
|
||||
if(owner.client?.prefs.lewdchem)
|
||||
if(lewd)
|
||||
to_chat(owner, "<span class='warning'><i>The order from your [enthrallGender] to give in is conflicting with your attempt to resist, drawing you deeper into trance! You'll have to wait a bit before attemping again, lest your attempts become frustrated again.</i></span>")
|
||||
else
|
||||
to_chat(owner, "<span class='warning'><i>The order from your [master] to give in is conflicting with your attempt to resist. You'll have to wait a bit before attemping again, lest your attempts become frustrated again.</i></span>")
|
||||
@@ -711,7 +712,7 @@
|
||||
deltaResist *= 1.25
|
||||
if (owner.reagents.has_reagent(/datum/reagent/medicine/neurine))
|
||||
deltaResist *= 1.5
|
||||
if (!HAS_TRAIT(owner, TRAIT_CROCRIN_IMMUNE) && M.canbearoused && owner.client?.prefs.lewdchem)
|
||||
if (!(owner.client?.prefs.cit_toggles & NO_APHRO) && M.canbearoused && lewd)
|
||||
if (owner.reagents.has_reagent(/datum/reagent/drug/anaphrodisiac))
|
||||
deltaResist *= 1.5
|
||||
if (owner.reagents.has_reagent(/datum/reagent/drug/anaphrodisiacplus))
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
mob_trait = TRAIT_CHOKE_SLUT
|
||||
gain_text = "<span class='notice'>You feel like you want to feel fingers around your neck, choking you until you pass out or make a mess... Maybe both.</span>"
|
||||
lose_text = "<span class='notice'>Seems you don't have a kink for suffocation anymore.</span>"
|
||||
|
||||
/*
|
||||
/datum/quirk/pharmacokinesis //Prevents unwanted organ additions.
|
||||
name = "Acute hepatic pharmacokinesis"
|
||||
desc = "You've a rare genetic disorder that causes Incubus draft and Sucubus milk to be absorbed by your liver instead."
|
||||
@@ -52,7 +52,7 @@
|
||||
var/active = FALSE
|
||||
var/power = 0
|
||||
var/cachedmoveCalc = 1
|
||||
/*
|
||||
|
||||
/datum/quirk/fluid_leak
|
||||
name = "Leaky breasts"
|
||||
desc = "You don't stop making milk, and you have a habit of leaking everywhere when your breasts are full"
|
||||
|
||||
@@ -368,9 +368,11 @@
|
||||
var/organCheck = FALSE
|
||||
var/breastCheck = FALSE
|
||||
var/willyCheck = FALSE
|
||||
/* pharma trait deprecieated
|
||||
if(!canbearoused)
|
||||
ADD_TRAIT(src, TRAIT_PHARMA, "pharma")//Prefs prevent unwanted organs.
|
||||
return
|
||||
*/
|
||||
for(var/obj/item/organ/O in internal_organs)
|
||||
if(istype(O, /obj/item/organ/genital))
|
||||
organCheck = TRUE
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
var/widescreenpref = TRUE
|
||||
var/autostand = TRUE
|
||||
var/auto_ooc = FALSE
|
||||
var/lewdchem = TRUE
|
||||
//var/lewdchem = TRUE replaced with new prefs
|
||||
|
||||
//vore prefs
|
||||
var/toggleeatingnoise = TRUE
|
||||
@@ -58,6 +58,6 @@ datum/preferences/copy_to(mob/living/carbon/human/character, icon_updates = 1)
|
||||
character.give_genitals(TRUE)
|
||||
character.ooc_text = features["ooc_text"] //Let's update their flavor_text at least initially
|
||||
character.canbearoused = arousable
|
||||
character.client?.prefs.lewdchem = lewdchem
|
||||
//character.client?.prefs.lewdchem = lewdchem
|
||||
if(icon_updates)
|
||||
character.update_genitals()
|
||||
|
||||
@@ -167,6 +167,11 @@ Creating a chem with a low purity will make you permanently fall in love with so
|
||||
|
||||
/datum/reagent/fermi/enthrall/on_mob_add(mob/living/carbon/M)
|
||||
. = ..()
|
||||
/* TODO FIGURE OUT A WAY TO MAKE THIS SHIT WORK!!!
|
||||
if(M.client?.prefs.cit_toggles & NEVER_HYPNO) // Just in case people are opting out of this
|
||||
holder.remove_reagent(id, 10000000)
|
||||
return
|
||||
*/
|
||||
if(!ishuman(M))//Just to make sure screwy stuff doesn't happen.
|
||||
return
|
||||
if(!creatorID)
|
||||
@@ -180,7 +185,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
|
||||
E.enthrallID = creatorID
|
||||
E.enthrallGender = creatorGender
|
||||
E.master = get_mob_by_key(creatorID)
|
||||
to_chat(M, to_chat(M, "<span class='big love'><i>Your aldled, plastic, mind bends under the chemical influence of a new [(M.client?.prefs.lewdchem?"master":"leader")]. Your highest priority is now to stay by [creatorName]'s side, following and aiding them at all costs.</i></span>")) //THIS SHOULD ONLY EVER APPEAR IF YOU MINDBREAK YOURSELF AND THEN GET INJECTED FROM SOMEONE ELSE.
|
||||
to_chat(M, "<span class='big love'><i>Your addled, plastic, mind bends under the chemical influence of a new [(E.lewd?"master":"leader")]. Your highest priority is now to stay by [creatorName]'s side, following and aiding them at all costs.</i></span>") //THIS SHOULD ONLY EVER APPEAR IF YOU MINDBREAK YOURSELF AND THEN GET INJECTED FROM SOMEONE ELSE.
|
||||
log_game("FERMICHEM: Narcissist [M] ckey: [M.key] been rebound to [creatorName], ID: [creatorID]")
|
||||
return
|
||||
if((M.ckey == creatorID) && (creatorName == M.real_name)) //same name AND same player - same instance of the player. (should work for clones?)
|
||||
@@ -191,7 +196,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
|
||||
Vc.Remove(M)
|
||||
nVc.Insert(M)
|
||||
qdel(Vc)
|
||||
to_chat(M, "<span class='notice'><i>You feel your vocal chords tingle you speak in a more charasmatic and sultry tone.)]</span>")
|
||||
to_chat(M, "<span class='notice'><i>You feel your vocal chords tingle you speak in a more charasmatic and sultry tone.</i></span>")
|
||||
else
|
||||
log_game("FERMICHEM: MKUltra: [creatorName], [creatorID], is enthralling [M.name], [M.ckey]")
|
||||
M.apply_status_effect(/datum/status_effect/chem/enthrall)
|
||||
@@ -230,7 +235,6 @@ Creating a chem with a low purity will make you permanently fall in love with so
|
||||
M.reagents.del_reagent(type)
|
||||
FallInLove(C, M)
|
||||
return
|
||||
|
||||
if (M.ckey == creatorID && creatorName == M.real_name)//If you yourself drink it, it supresses the vocal effects, for stealth. NEVERMIND ADD THIS LATER I CAN'T GET IT TO WORK
|
||||
return
|
||||
if(!M.client)
|
||||
@@ -261,7 +265,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
|
||||
E.master = creator
|
||||
else
|
||||
E = M.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
if(M.client?.prefs.lewdchem)
|
||||
if(E.lewd)
|
||||
to_chat(M, "<span class='big love'><i>Your mind shatters under the volume of the mild altering chem inside of you, breaking all will and thought completely. Instead the only force driving you now is the instinctual desire to obey and follow [creatorName]. Your highest priority is now to stay by their side and protect them at all costs.</i></span>")
|
||||
else
|
||||
to_chat(M, "<span class='big warning'><i>The might volume of chemicals in your system overwhelms your mind, and you suddenly agree with what [creatorName] has been saying. Your highest priority is now to stay by their side and protect them at all costs.</i></span>")
|
||||
@@ -287,6 +291,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
|
||||
chemical_flags = REAGENT_DONOTSPLIT
|
||||
can_synth = FALSE
|
||||
var/mob/living/carbon/love
|
||||
var/lewd = FALSE
|
||||
|
||||
/datum/reagent/fermi/enthrallExplo/on_mob_life(mob/living/carbon/M)//Love gas, only affects while it's in your system,Gives a positive moodlet if close, gives brain damagea and a negative moodlet if not close enough.
|
||||
if(HAS_TRAIT(M, TRAIT_MINDSHIELD))
|
||||
@@ -302,24 +307,25 @@ Creating a chem with a low purity will make you permanently fall in love with so
|
||||
if(!love)
|
||||
return
|
||||
M.apply_status_effect(STATUS_EFFECT_INLOVE, love)
|
||||
to_chat(M, "[(M.client?.prefs.lewdchem?"<span class='love'>":"<span class='warning'>")][(M.client?.prefs.lewdchem?"You develop a sudden crush on [love], your heart beginning to race as you look upon them with new eyes.":"You suddenly feel like making friends with [love].")] You feel strangely drawn towards them.</span>")
|
||||
lewd = (M.client?.prefs.cit_toggles & HYPNO) && (love.client?.prefs.cit_toggles & HYPNO)
|
||||
to_chat(M, "[(lewd?"<span class='love'>":"<span class='warning'>")][(lewd?"You develop a sudden crush on [love], your heart beginning to race as you look upon them with new eyes.":"You suddenly feel like making friends with [love].")] You feel strangely drawn towards them.</span>")
|
||||
log_game("FERMICHEM: [M] ckey: [M.key] has temporarily bonded with [love] ckey: [love.key]")
|
||||
SSblackbox.record_feedback("tally", "fermi_chem", 1, "Times people have bonded")
|
||||
else
|
||||
if(get_dist(M, love) < 8)
|
||||
if(HAS_TRAIT(M, TRAIT_NYMPHO)) //Add this back when merged/updated.
|
||||
M.adjustArousalLoss(5)
|
||||
var/message = "[(M.client?.prefs.lewdchem?"I'm next to my crush..! Eee!":"I'm making friends with [love]!")]"
|
||||
var/message = "[(lewd?"I'm next to my crush..! Eee!":"I'm making friends with [love]!")]"
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "InLove", /datum/mood_event/InLove, message)
|
||||
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "MissingLove")
|
||||
else
|
||||
var/message = "[(M.client?.prefs.lewdchem?"I can't keep my crush off my mind, I need to see them again!":"I really want to make friends with [love]!")]"
|
||||
var/message = "[(lewd?"I can't keep my crush off my mind, I need to see them again!":"I really want to make friends with [love]!")]"
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "MissingLove", /datum/mood_event/MissingLove, message)
|
||||
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "InLove")
|
||||
if(prob(5))
|
||||
M.Stun(10)
|
||||
M.emote("whimper")//does this exist?
|
||||
to_chat(M, "[(M.client?.prefs.lewdchem?"<span class='love'>":"<span class='warning'>")] You're overcome with a desire to see [love].</span>")
|
||||
to_chat(M, "[(lewd?"<span class='love'>":"<span class='warning'>")] You're overcome with a desire to see [love].</span>")
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.5)//I found out why everyone was so damaged!
|
||||
..()
|
||||
|
||||
@@ -329,7 +335,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
|
||||
M.remove_status_effect(STATUS_EFFECT_INLOVE)
|
||||
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "InLove")
|
||||
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "MissingLove")
|
||||
to_chat(M, "[(M.client?.prefs.lewdchem?"<span class='love'>":"<span class='warning'>")]Your feelings for [love] suddenly vanish!")
|
||||
to_chat(M, "[(lewd?"<span class='love'>":"<span class='warning'>")]Your feelings for [love] suddenly vanish!")
|
||||
log_game("FERMICHEM: [M] ckey: [M.key] is no longer in temp bond")
|
||||
..()
|
||||
|
||||
@@ -337,7 +343,8 @@ Creating a chem with a low purity will make you permanently fall in love with so
|
||||
if(Lover.has_status_effect(STATUS_EFFECT_INLOVE))
|
||||
to_chat(Lover, "<span class='warning'>You are already fully devoted to someone else!</span>")
|
||||
return
|
||||
to_chat(Lover, "[(Lover.client?.prefs.lewdchem?"<span class='love'>":"<span class='warning'>")]You develop a deep and sudden bond with [Love][(Lover.client?.prefs.lewdchem?", your heart beginning to race as your mind filles with thoughts about them.":".")] You are determined to keep them safe and happy, and feel drawn towards them.</span>")
|
||||
var/lewd = (Lover.client?.prefs.cit_toggles & HYPNO) && (Love.client?.prefs.cit_toggles & HYPNO)
|
||||
to_chat(Lover, "[(lewd?"<span class='love'>":"<span class='warning'>")]You develop a deep and sudden bond with [Love][(lewd?", your heart beginning to race as your mind filles with thoughts about them.":".")] You are determined to keep them safe and happy, and feel drawn towards them.</span>")
|
||||
if(Lover.mind)
|
||||
Lover.mind.store_memory("You are in love with [Love].")
|
||||
Lover.faction |= "[REF(Love)]"
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
taste_description = "a milky ice cream like flavour."
|
||||
overdose_threshold = 17
|
||||
metabolization_rate = 0.25
|
||||
impure_chem = /datum/reagent/fermi/BEsmaller //If you make an inpure chem, it stalls growth
|
||||
impure_chem = /datum/reagent/fermi/BEsmaller //If you make an impure chem, it stalls growth
|
||||
inverse_chem_val = 0.35
|
||||
inverse_chem = /datum/reagent/fermi/BEsmaller //At really impure vols, it just becomes 100% inverse
|
||||
can_synth = FALSE
|
||||
@@ -49,7 +49,7 @@
|
||||
B.throw_at(T2, 8, 1)
|
||||
M.reagents.del_reagent(type)
|
||||
return
|
||||
log_game("FERMICHEM: [M] ckey: [M.key] has ingested Sucubus milk")
|
||||
log_game("FERMICHEM: [M] ckey: [M.key] has ingested Succubus milk")
|
||||
var/mob/living/carbon/human/H = M
|
||||
H.genital_override = TRUE
|
||||
var/obj/item/organ/genital/breasts/B = H.getorganslot("breasts")
|
||||
@@ -69,8 +69,8 @@
|
||||
var/obj/item/organ/genital/breasts/B = M.getorganslot("breasts")
|
||||
if(!B) //If they don't have breasts, give them breasts.
|
||||
|
||||
//If they have Acute hepatic pharmacokinesis, then route processing though liver.
|
||||
if(HAS_TRAIT(M, TRAIT_PHARMA))
|
||||
//If they've opted out, then route processing though liver.
|
||||
if(!(H.client?.prefs.cit_toggles & BREAST_ENLARGEMENT))
|
||||
var/obj/item/organ/liver/L = M.getorganslot("liver")
|
||||
if(L)
|
||||
L.swelling+= 0.05
|
||||
@@ -101,9 +101,7 @@
|
||||
..()
|
||||
|
||||
/datum/reagent/fermi/breast_enlarger/overdose_process(mob/living/carbon/M) //Turns you into a female if male and ODing, doesn't touch nonbinary and object genders.
|
||||
|
||||
//Acute hepatic pharmacokinesis.
|
||||
if(HAS_TRAIT(M, TRAIT_PHARMA))
|
||||
if(!(M.client?.prefs.cit_toggles & FORCED_FEM))
|
||||
var/obj/item/organ/liver/L = M.getorganslot("liver")
|
||||
L.swelling+= 0.05
|
||||
return ..()
|
||||
@@ -142,15 +140,10 @@
|
||||
|
||||
/datum/reagent/fermi/BEsmaller/on_mob_life(mob/living/carbon/M)
|
||||
var/obj/item/organ/genital/breasts/B = M.getorganslot("breasts")
|
||||
if(!B)
|
||||
//Acute hepatic pharmacokinesis.
|
||||
if(HAS_TRAIT(M, TRAIT_PHARMA))
|
||||
var/obj/item/organ/liver/L = M.getorganslot("liver")
|
||||
L.swelling-= 0.05
|
||||
return ..()
|
||||
|
||||
//otherwise proceed as normal
|
||||
return..()
|
||||
if(!(M.client?.prefs.cit_toggles & BREAST_ENLARGEMENT) || !B)
|
||||
var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
L.swelling-= 0.05
|
||||
return ..()
|
||||
B.cached_size = B.cached_size - 0.05
|
||||
B.update()
|
||||
..()
|
||||
@@ -240,12 +233,12 @@
|
||||
/datum/reagent/fermi/penis_enlarger/on_mob_life(mob/living/carbon/M) //Increases penis size, 5u = +1 inch.
|
||||
if(!ishuman(M))
|
||||
return
|
||||
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/obj/item/organ/genital/testicles/T = M.getorganslot("testicles") //Hyper Change, testicles come first so the dick isn't hidden behind the testicles layer
|
||||
var/obj/item/organ/genital/penis/P = M.getorganslot("penis")
|
||||
if(!T)//Hyper change// Adds testicles if there are none.
|
||||
|
||||
//If they have Acute hepatic pharmacokinesis, then route processing though liver.
|
||||
if(HAS_TRAIT(M, TRAIT_PHARMA))
|
||||
if(!(H.client?.prefs.cit_toggles & PENIS_ENLARGEMENT))
|
||||
var/obj/item/organ/liver/L = M.getorganslot("liver")
|
||||
if(L)
|
||||
L.swelling+= 0.05
|
||||
@@ -263,11 +256,8 @@
|
||||
nT.cached_size = 1
|
||||
nT.sack_size = BALLS_SACK_SIZE_DEF
|
||||
T = nT
|
||||
|
||||
if(!P)//They do have a preponderance for escapism, or so I've heard.
|
||||
|
||||
//If they have Acute hepatic pharmacokinesis, then route processing though liver.
|
||||
if(HAS_TRAIT(M, TRAIT_PHARMA))
|
||||
if(!P)
|
||||
if(!(H.client?.prefs.cit_toggles & PENIS_ENLARGEMENT))
|
||||
var/obj/item/organ/liver/L = M.getorganslot("liver")
|
||||
if(L)
|
||||
L.swelling+= 0.05
|
||||
@@ -295,8 +285,7 @@
|
||||
..()
|
||||
|
||||
/datum/reagent/fermi/penis_enlarger/overdose_process(mob/living/carbon/M) //Turns you into a male if female and ODing, doesn't touch nonbinary and object genders.
|
||||
//Acute hepatic pharmacokinesis.
|
||||
if(HAS_TRAIT(M, TRAIT_PHARMA))
|
||||
if(!(M.client?.prefs.cit_toggles & FORCED_MASC))
|
||||
var/obj/item/organ/liver/L = M.getorganslot("liver")
|
||||
L.swelling+= 0.05
|
||||
return..()
|
||||
@@ -334,14 +323,9 @@
|
||||
/datum/reagent/fermi/PEsmaller/on_mob_life(mob/living/carbon/M)
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/obj/item/organ/genital/penis/P = H.getorganslot("penis")
|
||||
if(!P)
|
||||
//Acute hepatic pharmacokinesis.
|
||||
if(HAS_TRAIT(M, TRAIT_PHARMA))
|
||||
var/obj/item/organ/liver/L = M.getorganslot("liver")
|
||||
L.swelling-= 0.05
|
||||
return..()
|
||||
|
||||
//otherwise proceed as normal
|
||||
if(!(H.client?.prefs.cit_toggles & PENIS_ENLARGEMENT) || !P)
|
||||
var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
L.swelling-= 0.05
|
||||
return..()
|
||||
P.cached_length = P.cached_length - 0.1
|
||||
P.update()
|
||||
@@ -426,4 +410,4 @@
|
||||
if(B.size < 5) //just make sure you dont break sprites
|
||||
B.size = B.size + 0.05
|
||||
B.update()
|
||||
..()
|
||||
..()
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
color = "#FFADFF"//PINK, rgb(255, 173, 255)
|
||||
|
||||
/datum/reagent/drug/aphrodisiac/on_mob_life(mob/living/M)
|
||||
if(M && M.canbearoused && !HAS_TRAIT(M, TRAIT_CROCRIN_IMMUNE))
|
||||
if(M && M.canbearoused && !(M.client?.prefs.cit_toggles & NO_APHRO))
|
||||
if(prob(33))
|
||||
M.adjustArousalLoss(2)
|
||||
if(prob(5))
|
||||
@@ -162,7 +162,7 @@
|
||||
overdose_threshold = 20
|
||||
|
||||
/datum/reagent/drug/aphrodisiacplus/on_mob_life(mob/living/M)
|
||||
if(M && M.canbearoused && !HAS_TRAIT(M, TRAIT_CROCRIN_IMMUNE))
|
||||
if(M && M.canbearoused && !(M.client?.prefs.cit_toggles & NO_APHRO))
|
||||
if(prob(33))
|
||||
M.adjustArousalLoss(6)//not quite six times as powerful, but still considerably more powerful.
|
||||
if(prob(5))
|
||||
@@ -194,7 +194,7 @@
|
||||
..()
|
||||
|
||||
/datum/reagent/drug/aphrodisiacplus/overdose_process(mob/living/M)
|
||||
if(M && M.canbearoused && !HAS_TRAIT(M, TRAIT_CROCRIN_IMMUNE) && prob(33))
|
||||
if(M && M.canbearoused && !(M.client?.prefs.cit_toggles & NO_APHRO) && prob(33))
|
||||
if(prob(5) && M.getArousalLoss() >= 100 && ishuman(M) && M.has_dna())
|
||||
if(prob(5)) //Less spam
|
||||
to_chat(M, "<span class='love'>Your libido is going haywire!</span>")
|
||||
|
||||
Reference in New Issue
Block a user