Prebed tweaks
This commit is contained in:
@@ -347,7 +347,7 @@ im
|
||||
/datum/reagents/proc/beaker_check(atom/A)
|
||||
if(istype(A, /obj/item/reagent_containers/glass/beaker/meta))
|
||||
return
|
||||
if((A.type == /obj/item/reagent_containers/glass/beaker/plastic))
|
||||
if(istype(A, /obj/item/reagent_containers/glass/beaker/plastic))
|
||||
if(chem_temp > 444)//assuming polypropylene
|
||||
var/list/seen = viewers(5, get_turf(A))
|
||||
var/iconhtml = icon2html(A, seen)
|
||||
@@ -361,6 +361,7 @@ im
|
||||
var/list/seen = viewers(5, get_turf(A))
|
||||
var/iconhtml = icon2html(A, seen)
|
||||
for(var/mob/M in seen)
|
||||
message_admins("pH at melting: [pH]")
|
||||
to_chat(M, "<span class='notice'>[iconhtml] \The [my_atom]'s melts from the extreme pH!</span>")
|
||||
playsound(get_turf(A), 'sound/FermiChem/acidmelt.ogg', 80, 1)
|
||||
qdel(A)
|
||||
@@ -723,7 +724,7 @@ im
|
||||
|
||||
//TODO: Check overall beaker purity with proc
|
||||
//Then adjust purity of result AND yeild ammount with said purity.
|
||||
stepChemAmmount *= reactant_purity(C)
|
||||
purity *= reactant_purity(C)
|
||||
|
||||
// End.
|
||||
/*
|
||||
@@ -758,15 +759,17 @@ im
|
||||
//return said amount to compare for next step.
|
||||
return (reactedVol)
|
||||
|
||||
//Currently calculates it irrespective of required reagents at the start
|
||||
/datum/reagents/proc/reactant_purity(var/datum/chemical_reaction/fermi/C, holder)
|
||||
var/list/cached_reagents = reagent_list
|
||||
var/i
|
||||
var/i = 0
|
||||
var/cachedPurity
|
||||
//var/fermiChem
|
||||
for(var/datum/reagent/R in my_atom.reagents.reagent_list)
|
||||
if (R in cached_reagents)
|
||||
cachedPurity += R.purity
|
||||
i++
|
||||
//message_admins("total reactant purity = [cachedPurity/i]")
|
||||
return cachedPurity/i
|
||||
|
||||
/datum/reagents/proc/isolate_reagent(reagent)
|
||||
@@ -952,7 +955,7 @@ im
|
||||
R.data = data
|
||||
R.on_new(data)
|
||||
if(R.addProc == TRUE)
|
||||
R.on_new(src)
|
||||
R.on_new(pH) //Add more as desired.
|
||||
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" ????
|
||||
|
||||
@@ -837,7 +837,7 @@
|
||||
if(length(message))
|
||||
E.enthrallTally += (power_multiplier*(((length(message))/200) + 1)) //encourage players to say more than one word.
|
||||
else
|
||||
E.enthrallTally += power_multiplier*1.25
|
||||
E.enthrallTally += power_multiplier*1.25 //thinking about it, I don't know how this can proc
|
||||
if(L.canbearoused)
|
||||
if(L.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)
|
||||
@@ -851,10 +851,10 @@
|
||||
power_multiplier *= distancelist[get_dist(user, V)+1]
|
||||
//power_multiplier += (get_dist(V, user)**-2)*2 //2, 2, 0.5, 0.2, 0.125, 0.05, 0.04, 0.03, alternatively make a list and use the return as index values
|
||||
if (L.lewd)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='nicegreen'>[E.enthrallGender] has praised me!!</b></span>"), 5)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='love'>[E.enthrallGender] has praised me!!</b></span>"), 5)
|
||||
if(L.has_trait(TRAIT_NYMPHO))
|
||||
L.adjustArousalLoss(2*power_multiplier)
|
||||
/* TODO: ADD THIS IN WHEN MASO IS MERGED
|
||||
/*enable when maso is added
|
||||
if(L.has_trait(TRAIT_MASO))
|
||||
E.enthrallTally -= power_multiplier
|
||||
E.resistanceTally += power_multiplier
|
||||
@@ -864,7 +864,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 = "[(L.lewd?"I feel so happy! I'm a good pet who [E.enthrallGender] loves!":"I did a good job!")]"
|
||||
var/descmessage = "<span class='love'><i>[(L.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
|
||||
|
||||
@@ -877,14 +877,16 @@
|
||||
//power_multiplier += (get_dist(V, user)**-2)*2 //2, 2, 0.5, 0.2, 0.125, 0.05, 0.04, 0.03, alternatively make a list and use the return as index values
|
||||
var/descmessage = "[(L.lewd?"I've failed [E.enthrallGender]... What a bad, bad pet!":"I did a bad job...")]"
|
||||
if (L.lewd)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='warning'>I've let [E.enthrallGender] down...</b></span>"), 5)
|
||||
/* TODO: ADD THIS IN WHEN MASO IS MERGED
|
||||
//TODO: ADD THIS IN WHEN MASO IS MERGED
|
||||
/*
|
||||
if(L.has_trait(TRAIT_MASO))
|
||||
L.adjustArousalLoss(3*power_multiplier)
|
||||
descmessage += " And yet, it feels good..!"
|
||||
descmessage += "And yet, it feels so good..!</span>" //I don't really understand masco, is this the right sort of thing they like?
|
||||
E.enthrallTally += power_multiplier
|
||||
E.resistanceTally -= power_multiplier
|
||||
*/
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='love'>I've let [E.enthrallGender] down...!</b></span>"), 5)
|
||||
else*/
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='warning'>I've let [E.enthrallGender] down...</b></span>"), 5)
|
||||
else
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='warning'>I've failed [E.master]...</b></span>"), 5)
|
||||
E.resistanceTally += power_multiplier
|
||||
@@ -1000,7 +1002,9 @@
|
||||
var/datum/status_effect/chem/enthrall/E = H.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
if(E.phase > 1)
|
||||
if(H.has_trait(TRAIT_NYMPHO) && H.canbearoused) // 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)
|
||||
H.setArousalLoss(H.min_arousal)
|
||||
E.resistanceTally = 0 //makes resistance 0, but resets arousal, resistance buildup is faster unaroused (massively so).
|
||||
E.enthrallTally += power_multiplier
|
||||
@@ -1027,7 +1031,7 @@
|
||||
var/datum/status_effect/chem/enthrall/E = H.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
switch(E.phase)
|
||||
if(2 to INFINITY)
|
||||
playsound(get_turf(H), pick('sound/effects/meow1.ogg', 'modular_citadel/sound/voice/nya.ogg'), 50, 1, -1)
|
||||
playsound(get_turf(H), pick('sound/effects/meow1.ogg', 'modular_citadel/sound/voice/nya.ogg'), 50, 1, -1) //I'm very tempted to write a Fermis clause that makes them merowr.ogg if it's me. But, I also don't think snowflakism is okay. I would've gotten away for it too, if it wern't for my morals.
|
||||
H.emote("me", 1, "lets out a nya!")
|
||||
E.cooldown += 1
|
||||
|
||||
@@ -1051,7 +1055,7 @@
|
||||
for(var/obj/item/W in items)
|
||||
if(W == H.w_uniform || W == H.wear_suit)
|
||||
H.dropItemToGround(W, TRUE)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "<span class='warning'>Before you can even think about it, you quickly remove your clothes in response to [(H.lewd?"your [E.enthrallGender]'s command'":"[E.master]'s directive'")].</b></span>"), 5)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "<span class='[(H.lewd?"love":"warning")]'>Before you can even think about it, you quickly remove your clothes in response to [(H.lewd?"your [E.enthrallGender]'s command'":"[E.master]'s directive'")].</b></span>"), 5)
|
||||
E.cooldown += 10
|
||||
|
||||
//WALK doesn't work? it does, randomly, work now
|
||||
@@ -1065,7 +1069,7 @@
|
||||
L.toggle_move_intent()
|
||||
E.cooldown += 1
|
||||
|
||||
//RUN doesn't work?
|
||||
//RUN doesn't work? Nope, it randomly works now
|
||||
else if((findtext(message, run_words)))
|
||||
for(var/V in listeners)
|
||||
var/mob/living/L = V
|
||||
@@ -1085,7 +1089,7 @@
|
||||
if(2 to INFINITY)//Tier 2 only
|
||||
L.lay_down()
|
||||
E.cooldown += 10
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='notice'>You suddenly lie down!'</b></span>"), 5)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "[(L.lewd?"<span class='love'>You eagerly lie down!":"<span class='notice'>You suddenly lie down!'")]</b></span>"), 5)
|
||||
|
||||
//KNOCKDOWN
|
||||
else if(findtext(message, knockdown_words))
|
||||
@@ -1217,7 +1221,7 @@
|
||||
if(3 to INFINITY)//Tier 3 only
|
||||
L.Stun(40 * power_multiplier)
|
||||
E.cooldown += 8
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='notice'>You freeze up!</b></span>"), 5)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='notice'>Your muscles freeze up!</b></span>"), 5)
|
||||
|
||||
//HALLUCINATE
|
||||
else if(findtext(message, hallucinate_words))
|
||||
|
||||
@@ -192,29 +192,31 @@
|
||||
/datum/status_effect/chem/enthrall
|
||||
id = "enthrall"
|
||||
alert_type = null
|
||||
var/mob/living/E //E for enchanter
|
||||
//var/mob/living/V = list() //V for victims
|
||||
var/enthrallTally = 1 //Keeps track of the enthralling process
|
||||
var/resistanceTally = 0 //Keeps track of the resistance
|
||||
var/deltaResist //The total resistance added per resist click
|
||||
//var/deltaEnthrall //currently unused (i think)
|
||||
|
||||
var/phase = 1 //-1: resisted state, due to be removed.0: sleeper agent, no effects unless triggered 1: initial, 2: 2nd stage - more commands, 3rd: fully enthralled, 4th Mindbroken
|
||||
|
||||
var/status = null //status effects
|
||||
var/statusStrength = 0 //strength of status effect
|
||||
|
||||
var/mob/living/master //Enchanter's person
|
||||
var/enthrallID //Enchanter's ckey
|
||||
var/enthrallGender //Use master or mistress
|
||||
//var/mob/living/master == null
|
||||
|
||||
var/mental_capacity //Higher it is, lower the cooldown on commands, capacity reduces with resistance.
|
||||
//var/mental_cost //Current cost of custom triggers
|
||||
//var/mindbroken = FALSE //Not sure I use this, replaced with phase 4
|
||||
var/datum/weakref/redirect_component //resistance
|
||||
//var/datum/weakref/redirect_component2 //say
|
||||
//var/datum/weakref/redirect_component3 //hear
|
||||
|
||||
var/distancelist = list(2,1.5,1,0.8,0.6,0.5,0.4,0.3,0.2) //Distance multipliers
|
||||
|
||||
var/withdrawal = FALSE //withdrawl
|
||||
var/withdrawalTick = 0 //counts how long withdrawl is going on for
|
||||
|
||||
var/list/customTriggers = list() //the list of custom triggers (maybe have to split into two)
|
||||
|
||||
var/cooldown = 0
|
||||
var/cooldownMsg = TRUE
|
||||
var/cTriggered = FALSE
|
||||
@@ -244,7 +246,7 @@
|
||||
mental_capacity = 500 - B.get_brain_damage()
|
||||
var/message = "[(owner.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='big warning'><i>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 still repeatedly resist their effects! (Mash resist to fight back!!)</i></span>")
|
||||
to_chat(owner, "<span class='[(owner.lewd?"big love":"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>")
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/chem/enthrall/tick()
|
||||
@@ -267,8 +269,8 @@
|
||||
mental_capacity += 10
|
||||
|
||||
//mindshield check
|
||||
if(M.has_trait(TRAIT_MINDSHIELD))//If you manage to enrapture a head, wow, GJ.
|
||||
resistanceTally += 5
|
||||
if(M.has_trait(TRAIT_MINDSHIELD))//If you manage to enrapture a head, wow, GJ. (resisting gives a bigger bonus with a mindshield)
|
||||
resistanceTally += 2
|
||||
if(prob(10))
|
||||
to_chat(owner, "<span class='notice'><i>You feel lucidity returning to your mind as the mindshield buzzes, attempting to return your brain to normal function.</i></span>")
|
||||
if(phase == 4)
|
||||
@@ -301,18 +303,18 @@
|
||||
if(owner.lewd)
|
||||
to_chat(owner, "<span class='small hypnophrase'><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.")].</i></span>")
|
||||
if (2) //partially enthralled
|
||||
if (enthrallTally > 200)
|
||||
if (enthrallTally > 250)
|
||||
phase += 1
|
||||
mental_capacity -= resistanceTally//leftover resistance per step is taken away from mental_capacity.
|
||||
enthrallTally = 0
|
||||
resistanceTally /= 2
|
||||
if(owner.lewd)
|
||||
to_chat(owner, "<span class='notice'><i>Your mind gives, eagerly obeying and serving [master].</i></span>")
|
||||
to_chat(owner, "<span class='big nicegreen'><i>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.
|
||||
to_chat(owner, "<span class='userlove'><i>Your mind gives, eagerly obeying and serving [master].</i></span>")
|
||||
to_chat(owner, "<span class='big love'><i>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 control 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 serve your [master] in death. </i></span>")
|
||||
owner.add_trait(TRAIT_PACIFISM, "MKUltra") //IMPORTANT
|
||||
else if (resistanceTally > 200)
|
||||
else if (resistanceTally > 250)
|
||||
enthrallTally *= 0.5
|
||||
phase -= 1
|
||||
resistanceTally = 0
|
||||
@@ -332,7 +334,7 @@
|
||||
owner.remove_trait(TRAIT_PACIFISM, "MKUltra")
|
||||
if(prob(2))
|
||||
if(owner.lewd)
|
||||
to_chat(owner, "<span class='notice'><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>")
|
||||
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.getBrainLoss() >=20 || M.has_trait(TRAIT_MINDSHIELD)) && !owner.reagents.has_reagent("MKUltra"))
|
||||
phase = 2
|
||||
@@ -362,14 +364,14 @@
|
||||
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing2")
|
||||
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing3")
|
||||
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing3")
|
||||
if(9 to INFINITY)//If
|
||||
if(9 to INFINITY)//If they're not nearby, enable withdrawl effects.
|
||||
withdrawal = TRUE
|
||||
|
||||
//Withdrawal subproc:
|
||||
if (withdrawal == TRUE)//Your minions are really REALLY needy.
|
||||
switch(withdrawalTick)//denial
|
||||
if(5)//To reduce spam
|
||||
to_chat(owner, "<span class='big warning'><i>You are unable to complete your [master]'s orders without their presence, and any commands given to you prior are not in effect until you are back with them.</i></span>")
|
||||
to_chat(owner, "<span class='big warning'><b>You are unable to complete your [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>")
|
||||
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.lewd?"your [enthrallGender]":"[master]")].</i></span>")
|
||||
@@ -422,7 +424,7 @@
|
||||
var/message = "[(owner.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 your [enthrallGender].</i></span>")
|
||||
if(120 to 140) //depression
|
||||
if(120 to 140) //depression 2, revengeance
|
||||
if(prob(15))
|
||||
owner.Stun(50)
|
||||
owner.emote("cry")//does this exist?
|
||||
@@ -447,7 +449,7 @@
|
||||
owner.adjustBrainLoss(2)
|
||||
M.hallucination += 50
|
||||
|
||||
withdrawalTick += 0.5
|
||||
withdrawalTick += 0.5//Usually enough to leave you with a major brain trauma, but not kill you.
|
||||
|
||||
//Status subproc - statuses given to you from your Master
|
||||
//currently 3 statuses; antiresist -if you press resist, increases your enthrallment instead, HEAL - which slowly heals the pet, CHARGE - which breifly increases speed, PACIFY - makes pet a pacifist, ANTIRESIST - frustrates resist presses.
|
||||
@@ -498,19 +500,20 @@
|
||||
resistanceTally += deltaResist
|
||||
deltaResist = 0
|
||||
if (cooldown > 0)
|
||||
cooldown -= (1 + (mental_capacity/1000))
|
||||
cooldown -= (0.8 + (mental_capacity/500))
|
||||
cooldownMsg = FALSE
|
||||
else if (cooldownMsg == FALSE)
|
||||
if(master.lewd)
|
||||
to_chat(master, "<span class='notice'><i>Your pet [owner] appears to have finished internalising your last command.</i></span>")
|
||||
to_chat(master, "<span class='love'><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>")
|
||||
cooldownMsg = TRUE
|
||||
cooldown = 0
|
||||
if (tranceTime > 0) //custom trances only last 50 ticks.
|
||||
tranceTime -= 1
|
||||
else
|
||||
else if (!tranceTime == null) //remove trance after.
|
||||
M.remove_status_effect(/datum/status_effect/trance)
|
||||
tranceTime = null
|
||||
//..()
|
||||
|
||||
//Remove all stuff
|
||||
@@ -579,6 +582,7 @@
|
||||
if (C.has_trait(TRAIT_NYMPHO))
|
||||
if (C.getArousalLoss() > 80)
|
||||
C.mob_climax(forced_climax=TRUE)
|
||||
C.SetStun(20)//We got your stun effects in somewhere, Kev.
|
||||
else
|
||||
C.adjustArousalLoss(10)
|
||||
else
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
desc += " They're very small and flatchested, however."
|
||||
else
|
||||
desc += " You estimate that they're [uppertext(size)]-cups."
|
||||
string = "breasts_[lowertext(shape)]_[size]-s"
|
||||
//string = "breasts_[lowertext(shape)]_[size]-s"
|
||||
|
||||
if(producing && aroused_state)
|
||||
desc += " They're leaking [fluid_id]."
|
||||
|
||||
@@ -122,7 +122,7 @@
|
||||
addiction_stage2_end = 30
|
||||
addiction_stage3_end = 41
|
||||
addiction_stage4_end = 44 //Incase it's too long
|
||||
var/location_created
|
||||
var/turf/open/location_created
|
||||
var/turf/open/location_return = null
|
||||
var/addictCyc1 = 0
|
||||
var/addictCyc2 = 0
|
||||
@@ -1185,6 +1185,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
|
||||
|
||||
|
||||
/datum/reagent/fermi/enthrall/on_mob_life(mob/living/carbon/M)
|
||||
. = ..()
|
||||
if(purity < 0.5)//DO NOT SPLIT INTO DIFFERENT CHEM: This relies on DoNotSplit - has to be done this way.
|
||||
if (M.ckey == creatorID && creatorName == M.real_name)//If the creator drinks it, they fall in love randomly. If someone else drinks it, the creator falls in love with them.
|
||||
if(M.has_status_effect(STATUS_EFFECT_INLOVE))
|
||||
@@ -1287,7 +1288,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
|
||||
if(!love)
|
||||
return
|
||||
M.apply_status_effect(STATUS_EFFECT_INLOVE, love)
|
||||
to_chat(M, "<span class='notice'>You develop deep feelings for [love], your heart beginning to race as you look upon them with new eyes.</span>")
|
||||
to_chat(M, "<span class='notice'>You develop overwhelmingly deep feelings for [love], your heart beginning to race as you look upon them with new eyes. You are determined to keep them safe above all other priorities.</span>")
|
||||
else
|
||||
if(get_dist(M, love) < 8)
|
||||
if(M.has_trait(TRAIT_NYMPHO)) //Add this back when merged/updated.
|
||||
@@ -1504,7 +1505,8 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
|
||||
name = "Acid vapour"
|
||||
id = "fermiAcid"
|
||||
description = "Someone didn't do like an otter, and add acid to water."
|
||||
taste_description = "acid burns, ow!!"
|
||||
taste_description = "acid burns, ow"
|
||||
color = "#000000"
|
||||
pH = 0
|
||||
|
||||
/datum/reagent/fermi/fermiAcid/on_mob_life(mob/living/carbon/C, method)
|
||||
@@ -1577,6 +1579,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
|
||||
id = "fermiTox"
|
||||
description = "You should be really careful with this...! Also, how did you get this?"
|
||||
data = "merge"
|
||||
color = "#000000"
|
||||
|
||||
/datum/reagent/fermi/fermiTox/on_mob_life(mob/living/carbon/C, method)
|
||||
if(C.dna && istype(C.dna.species, /datum/species/jelly))
|
||||
@@ -1592,10 +1595,11 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
|
||||
taste_description = "an acidy sort of taste, blech."
|
||||
color = "#fbc314"
|
||||
addProc = FALSE
|
||||
pH = 3
|
||||
pH = 6
|
||||
|
||||
/datum/reagent/fermi/fermiABuffer/on_new()
|
||||
/datum/reagent/fermi/fermiABuffer/on_new(oldpH)
|
||||
if(LAZYLEN(holder.reagent_list) == 1)
|
||||
|
||||
return
|
||||
pH = ((holder.pH * holder.total_volume)+(pH * src.volume))/(holder.total_volume + src.volume)
|
||||
holder.remove_reagent(src.id, 1000)
|
||||
@@ -1608,7 +1612,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
|
||||
taste_description = "an soapy sort of taste, blech."
|
||||
color = "#3853a4"
|
||||
addProc = FALSE
|
||||
pH = 11
|
||||
pH = 8
|
||||
|
||||
/datum/reagent/fermi/fermiBBuffer/on_new()
|
||||
if(LAZYLEN(holder.reagent_list) == 1)
|
||||
|
||||
@@ -30,8 +30,9 @@
|
||||
pHmod = 2
|
||||
|
||||
for (var/datum/reagent/reagent in my_atom.reagents.reagent_list) //make gas for reagents
|
||||
if (istype(reagent, /datum/reagent/fermi))
|
||||
/*if (istype(reagent, /datum/reagent/fermi))
|
||||
continue //Don't allow fermichems into the mix (fermi explosions are handled elsewhere and it's a huge pain)
|
||||
*/
|
||||
R.add_reagent(reagent, reagent.volume)
|
||||
if (reagent.purity < 0.6)
|
||||
ImpureTot = (ImpureTot + (1-reagent.purity)) / 2
|
||||
@@ -114,11 +115,11 @@
|
||||
CurveSharpT = 4 // How sharp the temperature exponential curve is (to the power of value)
|
||||
CurveSharppH = 4 // How sharp the pH exponential curve is (to the power of value)
|
||||
ThermicConstant = -5 // Temperature change per 1u produced
|
||||
HIonRelease = 0.05 // pH change per 1u reaction
|
||||
RateUpLim = 2 // Optimal/max rate possible if all conditions are perfect
|
||||
HIonRelease = 0.05 // pH change per 1u reaction (inverse for some reason)
|
||||
RateUpLim = 3 // Optimal/max rate possible if all conditions are perfect
|
||||
FermiChem = TRUE // If the chemical uses the Fermichem reaction mechanics
|
||||
FermiExplode = TRUE // If the chemical explodes in a special way
|
||||
PurityMin = 0.25
|
||||
PurityMin = 0.2
|
||||
|
||||
/datum/chemical_reaction/fermi/SDGF/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH)//Spawns an angery teratoma!! Spooky..! be careful!! TODO: Add teratoma slime subspecies
|
||||
var/turf/T = get_turf(my_atom)
|
||||
@@ -201,8 +202,8 @@
|
||||
/datum/chemical_reaction/fermi/astral //done //BORKEN
|
||||
name = "Astrogen"
|
||||
id = "astral"
|
||||
results = list("astral" = 5)
|
||||
required_reagents = list("eigenstate" = 1, "plasma" = 1, "synaptizine" = 1, "aluminium" = 5)
|
||||
results = list("astral" = 0.5)
|
||||
required_reagents = list("eigenstate" = 0.1, "plasma" = 0.1, "synaptizine" = 0.1, "aluminium" = 0.5)
|
||||
//FermiChem vars:
|
||||
OptimalTempMin = 700
|
||||
OptimalTempMax = 800
|
||||
@@ -328,7 +329,7 @@
|
||||
CurveSharppH = 0.5
|
||||
ThermicConstant = -10
|
||||
HIonRelease = -0.1
|
||||
RateUpLim = 2
|
||||
RateUpLim = 10
|
||||
FermiChem = TRUE
|
||||
PurityMin = 0.30
|
||||
|
||||
@@ -379,11 +380,15 @@
|
||||
RateUpLim = 20
|
||||
FermiChem = TRUE
|
||||
|
||||
//This reaction bugs and turns everything in it to FermiABuffer - but now it's a feature instead!
|
||||
//This reaction bugs and turns everything in it to FermiABuffer - but now it's a feature instead! And then I fixed it anyways
|
||||
/datum/chemical_reaction/fermi/fermiABuffer/FermiFinish(datum/reagents/holder, var/atom/my_atom) //might need this
|
||||
var/datum/reagent/fermi/fermiABuffer/Fa = locate(/datum/reagent/fermi/fermiABuffer) in my_atom.reagents.reagent_list
|
||||
if (Fa.pH <= 3)
|
||||
Fa.pH = 3
|
||||
Fa.data = 3
|
||||
return
|
||||
Fa.pH = my_atom.reagents.pH
|
||||
Fa.data = "merge"
|
||||
Fa.data = Fa.pH
|
||||
|
||||
/datum/chemical_reaction/fermi/fermiBBuffer//done test
|
||||
name = "Ethyl Ethanoate buffer"
|
||||
@@ -406,8 +411,12 @@
|
||||
RateUpLim = 15
|
||||
FermiChem = TRUE
|
||||
|
||||
//This reaction bugs and turns everything in it to FermiBBuffer - but now it's a feature instead!
|
||||
//This reaction bugs and turns everything in it to FermiBBuffer - but now it's a feature instead! And then I fixed it anyways
|
||||
/datum/chemical_reaction/fermi/fermiBBuffer/FermiFinish(datum/reagents/holder, var/atom/my_atom) //might need this
|
||||
var/datum/reagent/fermi/fermiBBuffer/Fb = locate(/datum/reagent/fermi/fermiBBuffer) in my_atom.reagents.reagent_list
|
||||
if (Fb.pH >= 11)
|
||||
Fb.pH = 11
|
||||
Fb.data = 11
|
||||
return
|
||||
Fb.pH = my_atom.reagents.pH
|
||||
Fb.data = "merge"
|
||||
Fb.data = Fb.pH
|
||||
|
||||
+6
-6
@@ -2504,12 +2504,6 @@
|
||||
#include "code\modules\research\server.dm"
|
||||
#include "code\modules\research\stock_parts.dm"
|
||||
#include "code\modules\research\designs\AI_module_designs.dm"
|
||||
#include "code\modules\research\designs\autolathe_desings\autolathe_designs_construction.dm"
|
||||
#include "code\modules\research\designs\autolathe_desings\autolathe_designs_electronics.dm"
|
||||
#include "code\modules\research\designs\autolathe_desings\autolathe_designs_medical_and_dinnerware.dm"
|
||||
#include "code\modules\research\designs\autolathe_desings\autolathe_designs_sec_and_hacked.dm"
|
||||
#include "code\modules\research\designs\autolathe_desings\autolathe_designs_tcomms_and_misc.dm"
|
||||
#include "code\modules\research\designs\autolathe_desings\autolathe_designs_tools.dm"
|
||||
#include "code\modules\research\designs\biogenerator_designs.dm"
|
||||
#include "code\modules\research\designs\bluespace_designs.dm"
|
||||
#include "code\modules\research\designs\comp_board_designs.dm"
|
||||
@@ -2529,6 +2523,12 @@
|
||||
#include "code\modules\research\designs\stock_parts_designs.dm"
|
||||
#include "code\modules\research\designs\telecomms_designs.dm"
|
||||
#include "code\modules\research\designs\weapon_designs.dm"
|
||||
#include "code\modules\research\designs\autolathe_desings\autolathe_designs_construction.dm"
|
||||
#include "code\modules\research\designs\autolathe_desings\autolathe_designs_electronics.dm"
|
||||
#include "code\modules\research\designs\autolathe_desings\autolathe_designs_medical_and_dinnerware.dm"
|
||||
#include "code\modules\research\designs\autolathe_desings\autolathe_designs_sec_and_hacked.dm"
|
||||
#include "code\modules\research\designs\autolathe_desings\autolathe_designs_tcomms_and_misc.dm"
|
||||
#include "code\modules\research\designs\autolathe_desings\autolathe_designs_tools.dm"
|
||||
#include "code\modules\research\machinery\_production.dm"
|
||||
#include "code\modules\research\machinery\circuit_imprinter.dm"
|
||||
#include "code\modules\research\machinery\departmental_circuit_imprinter.dm"
|
||||
|
||||
Reference in New Issue
Block a user