FermiChem? More like, FermiFixes!
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
var/obj/item/organ/vocal_cords/Vc = getorganslot(ORGAN_SLOT_VOICE)
|
||||
if(Vc)
|
||||
if(Vc.name == "velvet chords" )
|
||||
..()
|
||||
//..()
|
||||
velvetspeech(message, src)
|
||||
|
||||
var/obj/item/organ/tongue/T = getorganslot(ORGAN_SLOT_TONGUE)
|
||||
|
||||
@@ -56,3 +56,39 @@ Where what the reactions do, the code that sets what they do.
|
||||
|
||||
~\ss13\Citadel-Station-13\tgui\src\interfaces~
|
||||
This contains the 4 scripts for generation of the UI for operation of the various chemical equipments.
|
||||
|
||||
//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
|
||||
//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
|
||||
//phase1
|
||||
var/static/regex/silence_words = regex("shut up|silence|be silent|ssh|quiet|hush") //works
|
||||
var/static/regex/antiresist_words = regex("unable to resist|give in")//useful if you think your target is resisting a lot
|
||||
var/static/regex/resist_words = regex("resist|snap out of it|fight")//useful if two enthrallers are fighting
|
||||
var/static/regex/forget_words = regex("forget|muddled|awake and forget")
|
||||
var/static/regex/attract_words = regex("come here|come to me|get over here|attract")
|
||||
//phase 2
|
||||
var/static/regex/orgasm_words = regex("cum|orgasm|climax|squirt|heyo") //wah, lewd
|
||||
var/static/regex/awoo_words = regex("howl|awoo|bark")
|
||||
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/knockdown_words = regex("drop|fall|trip|knockdown|kneel")
|
||||
//phase 3
|
||||
var/static/regex/statecustom_words = regex("state triggers|state your triggers")
|
||||
var/static/regex/custom_words = regex("new trigger|listen to me")
|
||||
var/static/regex/custom_words_words = regex("speak|echo|shock|cum|kneel|strip|trance")//What a descriptive name!
|
||||
var/static/regex/objective_words = regex("new objective|obey this command|unable to resist|compulsed")
|
||||
var/static/regex/heal_words = regex("live|heal|survive|mend|life|pets never die")
|
||||
var/static/regex/stun_words = regex("stop|wait|stand still|hold on|halt")
|
||||
var/static/regex/hallucinate_words = regex("trip balls|hallucinate")
|
||||
var/static/regex/hot_words = regex("heat|hot|hell")
|
||||
var/static/regex/cold_words = regex("cold|cool down|chill|freeze")
|
||||
var/static/regex/getup_words = regex("get up")
|
||||
var/static/regex/pacify_words = regex("more and more docile|complaisant|friendly|pacifist")
|
||||
var/static/regex/charge_words = regex("charge|oorah|attack")
|
||||
|
||||
@@ -459,7 +459,7 @@ im
|
||||
var/datum/chemical_reaction/C = selected_reaction
|
||||
|
||||
if (C.FermiChem == TRUE && !continue_reacting)
|
||||
//message_admins("FermiChem Proc'd")
|
||||
message_admins("FermiChem Proc'd")
|
||||
|
||||
for(var/P in selected_reaction.results)
|
||||
targetVol = cached_results[P]*multiplier
|
||||
@@ -555,6 +555,8 @@ im
|
||||
//var/datum/reagent/fermi/Ferm = GLOB.chemical_reagents_list[C.id]
|
||||
C.FermiFinish(src, my_atom, multiplier)
|
||||
//C.on_reaction(src, multiplier, special_react_result)
|
||||
for(var/mob/M in seen)
|
||||
to_chat(M, "<span class='notice'>[iconhtml] [selected_reaction.mix_message]</span>")
|
||||
return
|
||||
for(var/P in cached_results)
|
||||
targetVol = cached_results[P]*multiplier
|
||||
@@ -580,6 +582,8 @@ im
|
||||
//var/datum/reagent/fermi/Ferm = GLOB.chemical_reagents_list[C.id]
|
||||
C.FermiFinish(src, my_atom, multiplier)
|
||||
//C.on_reaction(src, multiplier, special_react_result)
|
||||
for(var/mob/M in seen)
|
||||
to_chat(M, "<span class='notice'>[iconhtml] [selected_reaction.mix_message]</span>")
|
||||
return
|
||||
else
|
||||
STOP_PROCESSING(SSprocessing, src)
|
||||
@@ -592,6 +596,8 @@ im
|
||||
//var/datum/reagent/fermi/Ferm = GLOB.chemical_reagents_list[C.id]
|
||||
C.FermiFinish(src, my_atom, multiplier)
|
||||
//C.on_reaction(src, multiplier, special_react_result)
|
||||
for(var/mob/M in seen)
|
||||
to_chat(M, "<span class='notice'>[iconhtml] [selected_reaction.mix_message]</span>")
|
||||
return
|
||||
|
||||
//handle_reactions()
|
||||
@@ -901,6 +907,8 @@ im
|
||||
if(data)
|
||||
R.data = data
|
||||
R.on_new(data)
|
||||
if(R.addProc == TRUE)
|
||||
R.on_new()
|
||||
if(istype(D, /datum/reagent/fermi))//Is this a fermichem?
|
||||
var/datum/reagent/fermi/Ferm = D //It's Fermi time!
|
||||
Ferm.FermiNew(my_atom) //Seriously what is "data" ????
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
var/self_consuming = FALSE
|
||||
//Fermichem vars:
|
||||
var/purity = 1
|
||||
var/addProc = FALSE //When this reagent is added to a new beaker, it does something.
|
||||
//var/ImpureChem = "toxin"
|
||||
var/loc = null //Should be the creation location!
|
||||
var/pH = 7
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
color = "#792300" // rgb: 121, 35, 0
|
||||
toxpwr = 2.5
|
||||
taste_description = "mushroom"
|
||||
pH = 13
|
||||
|
||||
/datum/reagent/toxin/mutagen
|
||||
name = "Unstable mutagen"
|
||||
@@ -32,6 +33,7 @@
|
||||
toxpwr = 0
|
||||
taste_description = "slime"
|
||||
taste_mult = 0.9
|
||||
pH = 2
|
||||
|
||||
/datum/reagent/toxin/mutagen/reaction_mob(mob/living/carbon/M, method=TOUCH, reac_volume)
|
||||
if(!..())
|
||||
@@ -61,6 +63,7 @@
|
||||
taste_mult = 1.5
|
||||
color = "#8228A0"
|
||||
toxpwr = 3
|
||||
pH = 4
|
||||
|
||||
/datum/reagent/toxin/plasma/on_mob_life(mob/living/carbon/C)
|
||||
if(holder.has_reagent("epinephrine"))
|
||||
@@ -93,6 +96,7 @@
|
||||
color = "#7DC3A0"
|
||||
toxpwr = 0
|
||||
taste_description = "acid"
|
||||
pH = 1.2
|
||||
|
||||
/datum/reagent/toxin/lexorin/on_mob_life(mob/living/carbon/C)
|
||||
. = TRUE
|
||||
@@ -115,6 +119,7 @@
|
||||
toxpwr = 0
|
||||
taste_description = "slime"
|
||||
taste_mult = 1.3
|
||||
pH = 10
|
||||
|
||||
/datum/reagent/toxin/slimejelly/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(10))
|
||||
@@ -133,6 +138,7 @@
|
||||
color = "#CF3600" // rgb: 207, 54, 0
|
||||
toxpwr = 0
|
||||
taste_description = "mint"
|
||||
pH = 8
|
||||
|
||||
/datum/reagent/toxin/minttoxin/on_mob_life(mob/living/carbon/M)
|
||||
if(M.has_trait(TRAIT_FAT))
|
||||
@@ -146,6 +152,7 @@
|
||||
color = "#003333" // rgb: 0, 51, 51
|
||||
toxpwr = 2
|
||||
taste_description = "fish"
|
||||
pH = 12
|
||||
|
||||
/datum/reagent/toxin/zombiepowder
|
||||
name = "Zombie Powder"
|
||||
@@ -155,6 +162,7 @@
|
||||
color = "#669900" // rgb: 102, 153, 0
|
||||
toxpwr = 0.5
|
||||
taste_description = "death"
|
||||
pH = 13
|
||||
|
||||
/datum/reagent/toxin/zombiepowder/on_mob_add(mob/living/L)
|
||||
..()
|
||||
@@ -177,6 +185,7 @@
|
||||
color = "#664700" // rgb: 102, 71, 0
|
||||
toxpwr = 0.8
|
||||
taste_description = "death"
|
||||
pH = 14.5
|
||||
|
||||
/datum/reagent/toxin/ghoulpowder/on_mob_add(mob/living/L)
|
||||
..()
|
||||
@@ -198,6 +207,7 @@
|
||||
color = "#B31008" // rgb: 139, 166, 233
|
||||
toxpwr = 0
|
||||
taste_description = "sourness"
|
||||
pH = 11
|
||||
|
||||
/datum/reagent/toxin/mindbreaker/on_mob_life(mob/living/carbon/M)
|
||||
M.hallucination += 5
|
||||
@@ -210,6 +220,7 @@
|
||||
color = "#49002E" // rgb: 73, 0, 46
|
||||
toxpwr = 1
|
||||
taste_mult = 1
|
||||
pH = 2
|
||||
|
||||
/datum/reagent/toxin/plantbgone/reaction_obj(obj/O, reac_volume)
|
||||
if(istype(O, /obj/structure/alien/weeds))
|
||||
@@ -234,6 +245,7 @@
|
||||
id = "weedkiller"
|
||||
description = "A harmful toxic mixture to kill weeds. Do not ingest!"
|
||||
color = "#4B004B" // rgb: 75, 0, 75
|
||||
pH = 3
|
||||
|
||||
/datum/reagent/toxin/pestkiller
|
||||
name = "Pest Killer"
|
||||
@@ -241,6 +253,7 @@
|
||||
description = "A harmful toxic mixture to kill pests. Do not ingest!"
|
||||
color = "#4B004B" // rgb: 75, 0, 75
|
||||
toxpwr = 1
|
||||
pH = 3.2
|
||||
|
||||
/datum/reagent/toxin/pestkiller/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
|
||||
..()
|
||||
@@ -254,6 +267,7 @@
|
||||
description = "A natural toxin produced by blob spores that inhibits vision when ingested."
|
||||
color = "#9ACD32"
|
||||
toxpwr = 1
|
||||
pH = 11
|
||||
|
||||
/datum/reagent/toxin/spore/on_mob_life(mob/living/carbon/C)
|
||||
C.damageoverlaytemp = 60
|
||||
@@ -268,6 +282,7 @@
|
||||
color = "#9ACD32"
|
||||
toxpwr = 0.5
|
||||
taste_description = "burning"
|
||||
pH = 13
|
||||
|
||||
/datum/reagent/toxin/spore_burning/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_fire_stacks(2)
|
||||
@@ -282,6 +297,7 @@
|
||||
color = "#000067" // rgb: 0, 0, 103
|
||||
toxpwr = 0
|
||||
metabolization_rate = 1.5 * REAGENTS_METABOLISM
|
||||
pH = 11
|
||||
|
||||
/datum/reagent/toxin/chloralhydrate/on_mob_life(mob/living/carbon/M)
|
||||
switch(current_cycle)
|
||||
@@ -325,6 +341,7 @@
|
||||
glass_icon_state = "beerglass"
|
||||
glass_name = "glass of beer"
|
||||
glass_desc = "A freezing pint of beer."
|
||||
pH = 2
|
||||
|
||||
/datum/reagent/toxin/fakebeer/on_mob_life(mob/living/carbon/M)
|
||||
switch(current_cycle)
|
||||
@@ -342,6 +359,7 @@
|
||||
reagent_state = SOLID
|
||||
color = "#5B2E0D" // rgb: 91, 46, 13
|
||||
toxpwr = 0.5
|
||||
pH = 4.2
|
||||
|
||||
/datum/reagent/toxin/teapowder
|
||||
name = "Ground Tea Leaves"
|
||||
@@ -350,6 +368,7 @@
|
||||
reagent_state = SOLID
|
||||
color = "#7F8400" // rgb: 127, 132, 0
|
||||
toxpwr = 0.5
|
||||
pH = 4.9
|
||||
|
||||
/datum/reagent/toxin/mutetoxin //the new zombie powder.
|
||||
name = "Mute Toxin"
|
||||
@@ -358,6 +377,7 @@
|
||||
color = "#F0F8FF" // rgb: 240, 248, 255
|
||||
toxpwr = 0
|
||||
taste_description = "silence"
|
||||
pH = 12.2
|
||||
|
||||
/datum/reagent/toxin/mutetoxin/on_mob_life(mob/living/carbon/M)
|
||||
M.silent = max(M.silent, 3)
|
||||
|
||||
@@ -827,7 +827,7 @@
|
||||
//CALLBACKS ARE USED FOR MESSAGES BECAUSE SAY IS HANDLED AFTER THE PROCESSING.
|
||||
|
||||
//Tier 1
|
||||
//ENTHRAL mixable
|
||||
//ENTHRAL mixable (works I think)
|
||||
if(findtext(message, enthral_words))
|
||||
for(var/V in listeners)
|
||||
var/mob/living/L = V
|
||||
@@ -838,9 +838,11 @@
|
||||
E.enthrallTally += (power_multiplier*(((length(message))/200) + 1)) //encourage players to say more than one word.
|
||||
else
|
||||
E.enthrallTally += power_multiplier*1.25
|
||||
if(L.canbearoused)
|
||||
addtimer(CALLBACK(L, .proc/to_chat, "<span class='nicegreen'>[E.master] is so nice to listen to.</b></span>"), 5)
|
||||
E.cooldown += 1
|
||||
|
||||
//REWARD mixable
|
||||
//REWARD mixable works
|
||||
if(findtext(message, reward_words))
|
||||
for(var/V in listeners)
|
||||
var/mob/living/L = V
|
||||
@@ -850,12 +852,14 @@
|
||||
if (L.canbearoused)
|
||||
//E.resistanceTally -= 1
|
||||
L.adjustArousalLoss(1*power_multiplier)
|
||||
addtimer(CALLBACK(L, .proc/to_chat, "<span class='nicegreen'>[E.enthrallGender] has praised me!!</b></span>"), 5)
|
||||
else
|
||||
E.resistanceTally /= 2*power_multiplier
|
||||
addtimer(CALLBACK(L, .proc/to_chat, "<span class='nicegreen'>I've been praised for doing a good job!</b></span>"), 5)
|
||||
SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "enthrallpraise", /datum/mood_event/enthrallpraise)
|
||||
E.cooldown += 1
|
||||
|
||||
//PUNISH mixable
|
||||
//PUNISH mixable works
|
||||
else if(findtext(message, punish_words))
|
||||
for(var/V in listeners)
|
||||
var/mob/living/L = V
|
||||
@@ -865,19 +869,24 @@
|
||||
if (L.canbearoused)
|
||||
E.resistanceTally /= 1*power_multiplier
|
||||
L.adjustArousalLoss(-2*power_multiplier)
|
||||
addtimer(CALLBACK(L, .proc/to_chat, "<span class='warning'>I've let [E.enthrallGender] down...</b></span>"), 5)
|
||||
else
|
||||
E.resistanceTally /= 3*power_multiplier //asexuals are masochists apparently (not seriously)
|
||||
SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "enthrallscold", /datum/mood_event/enthrallscold)
|
||||
addtimer(CALLBACK(L, .proc/to_chat, "<span class='warning'>I've failed [E.master]...</b></span>"), 5)
|
||||
SEND_SIGNAL(L, COMSIG_ADD_MOOD_tEVENT, "enthrallscold", /datum/mood_event/enthrallscold)
|
||||
E.cooldown += 1
|
||||
|
||||
//teir 0
|
||||
//SAY MY NAME
|
||||
//SAY MY NAME works
|
||||
if((findtext(message, saymyname_words)))
|
||||
for(var/V in listeners)
|
||||
var/mob/living/carbon/C = V
|
||||
var/datum/status_effect/chem/enthrall/E = C.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
C.remove_trait(TRAIT_MUTE, "enthrall")
|
||||
addtimer(CALLBACK(C, /atom/movable/proc/say, "Master"), 5)//When I figure out how to do genedered names put them here
|
||||
|
||||
if(C.canbearoused)
|
||||
addtimer(CALLBACK(C, /atom/movable/proc/say, "[E.enthrallGender]"), 5)
|
||||
else
|
||||
addtimer(CALLBACK(C, /atom/movable/proc/say, "My director."), 5)
|
||||
//WAKE UP
|
||||
else if((findtext(message, wakeup_words)))
|
||||
for(var/V in listeners)
|
||||
@@ -888,8 +897,11 @@
|
||||
if(0)
|
||||
E.phase = 3
|
||||
E.status = null
|
||||
addtimer(CALLBACK(L, /proc/to_chat, "<span class='warning'>The snapping of your Master's fingers brings you back to your enthralled state, obedient and ready to serve.</b></span>"), 5)
|
||||
//to_chat(L, )
|
||||
if(C.canbearoused)
|
||||
addtimer(CALLBACK(L, .proc/to_chat, "<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(L, .proc/to_chat, "<span class='big warning'>The snapping of [E.master]'s fingers brings you back to being under their command.</b></span>"), 5)
|
||||
//to_chat(L, )
|
||||
|
||||
|
||||
//tier 1
|
||||
@@ -941,6 +953,10 @@
|
||||
if(3)
|
||||
E.phase = 0
|
||||
E.cooldown = 0
|
||||
if(C.canbearoused)
|
||||
addtimer(CALLBACK(L, .proc/to_chat, "<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(L, .proc/to_chat, "<span class='big warning'>You revert to who you were before, with no memory of what happened with [E.master].</b></span>"), 5)
|
||||
|
||||
//ATTRACT
|
||||
else if((findtext(message, attract_words)))
|
||||
@@ -1052,7 +1068,7 @@
|
||||
//tier3
|
||||
|
||||
//STATE TRIGGERS
|
||||
else if((findtext(message, statecustom_words)))
|
||||
else if((findtext(message, statecustom_words)))//doesn't work
|
||||
for(var/V in listeners)
|
||||
var/speaktrigger = ""
|
||||
var/mob/living/L = V
|
||||
|
||||
Reference in New Issue
Block a user