Ramping up to logging and a few more fixes.

This commit is contained in:
Fermi
2019-06-13 05:51:28 +01:00
parent da6f1da624
commit 378af882d3
6 changed files with 66 additions and 77 deletions
@@ -1235,31 +1235,30 @@ Creating a chem with a low purity will make you permanently fall in love with so
/datum/reagent/fermi/hatmium //for hatterhat
name = "Hat growth serium"
id = "hatmium"
description = "A strange substance that draws in a hat from the hat dimention, "
description = "A strange substance that draws in a hat from the hat dimention."
color = "#A080H4" // rgb: , 0, 255
taste_description = "like jerky, whiskey and an off aftertaste of a crypt"
taste_description = "like jerky, whiskey and an off aftertaste of a crypt."
overdose_threshold = 25
var/obj/item/clothing/head/hattip/hat
DoNotSplit = TRUE
pH = 4
/datum/reagent/fermi/hatmium/on_mob_add(mob/living/carbon/human/M)
. = ..()
var/items = M.get_contents()
for(var/obj/item/W in items)
if(W == M.head)
if(W == /obj/item/clothing/head/hattip)
qdel(W)
else
M.dropItemToGround(W, TRUE)
if(M.head)
var/obj/item/W = M.head
if(W == /obj/item/clothing/head/hattip)
qdel(W)
else
M.dropItemToGround(W, TRUE)
hat = new /obj/item/clothing/head/hattip()
M.equip_to_slot(hat, SLOT_HEAD, 1, 1)
/datum/reagent/fermi/hatmium/on_mob_life(mob/living/carbon/human/M)
//hat.armor = list("melee" = (1+(current_cycle/20)), "bullet" = (1+(current_cycle/20)), "laser" = (1+(current_cycle/20)), "energy" = (1+(current_cycle/20)), "bomb" = (1+(current_cycle/20)), "bio" = (1+(current_cycle/20)), "rad" = (1+(current_cycle/20)), "fire" = (1+(current_cycle/20)), "acid" = (1+(current_cycle/20)))
M.head
var/hatArmor = (1+(current_cycle/30))*purity
for(var/datum/armor in )
if(!overdosed)
hat.armor = list("melee" = hatArmor, "bullet" = hatArmor, "laser" = hatArmor, "energy" = hatArmor, "bomb" = hatArmor, "bio" = hatArmor, "rad" = hatArmor, "fire" = hatArmor)
else
@@ -1341,19 +1340,19 @@ Creating a chem with a low purity will make you permanently fall in love with so
//Nanite removal
//Writen by Trilby!! Embellsished a little by me.
/datum/reagent/fermi/naninte_b_gone
/datum/reagent/fermi/nanite_b_gone
name = "Naninte bain"
id = "naninte_b_gone"
id = "nanite_b_gone"
description = "A rather simple toxin to small nano machines that will kill them off at a rapid rate well in system."
color = "#5a7267" // rgb: 90, 114, 103
overdose_threshold = 15
ImpureChem = "naninte_b_goneTox" //If you make an inpure chem, it stalls growth
ImpureChem = "nanite_b_goneTox" //If you make an inpure chem, it stalls growth
InverseChemVal = 0.25
InverseChem = "naninte_b_goneTox" //At really impure vols, it just becomes 100% inverse
InverseChem = "nanite_b_goneTox" //At really impure vols, it just becomes 100% inverse
taste_description = "what can only be described as licking a battery."
pH = 9
/datum/reagent/fermi/naninte_b_gone/on_mob_life(mob/living/carbon/C)
/datum/reagent/fermi/nanite_b_gone/on_mob_life(mob/living/carbon/C)
//var/component/nanites/N = M.GetComponent(/datum/component/nanites)
GET_COMPONENT_FROM(N, /datum/component/nanites, C)
if(isnull(N))
@@ -1361,7 +1360,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
N.nanite_volume = -0.55//0.5 seems to be the default to me, so it'll neuter them.
..()
/datum/reagent/fermi/naninte_b_gone/overdose_process(mob/living/carbon/C)
/datum/reagent/fermi/nanite_b_gone/overdose_process(mob/living/carbon/C)
//var/component/nanites/N = M.GetComponent(/datum/component/nanites)
GET_COMPONENT_FROM(N, /datum/component/nanites, C)
if(prob(5))
@@ -1371,21 +1370,21 @@ Creating a chem with a low purity will make you permanently fall in love with so
//empulse((get_turf(C)), 3, 2)//So the nanites randomize
var/atom/T = C
T.emp_act(EMP_HEAVY)
to_chat(C, "<span class='warning'>The nanintes short circuit within your system!</b></span>")
to_chat(C, "<span class='warning'>The nanites short circuit within your system!</b></span>")
if(isnull(N))
return ..()
N.nanite_volume = -2//12.5 seems crazy high?
..()
//Unobtainable, used if SDGF is impure but not too impure
/datum/reagent/fermi/naninte_b_goneTox
/datum/reagent/fermi/nanite_b_goneTox
name = "Naninte bain"
id = "naninte_b_goneTox"
id = "nanite_b_goneTox"
description = "Poorly made, and shocks you!"
metabolization_rate = 1
//Increases shock events.
/datum/reagent/fermi/naninte_b_goneTox/on_mob_life(mob/living/carbon/C)//Damages the taker if their purity is low. Extended use of impure chemicals will make the original die. (thus can't be spammed unless you've very good)
/datum/reagent/fermi/nanite_b_goneTox/on_mob_life(mob/living/carbon/C)//Damages the taker if their purity is low. Extended use of impure chemicals will make the original die. (thus can't be spammed unless you've very good)
if(prob(15))
to_chat(C, "<span class='warning'>The residual voltage in your system causes you to seize up!</b></span>")
C.electrocute_act(10, (get_turf(C)), 1, FALSE, FALSE, FALSE, TRUE)
@@ -1548,19 +1547,10 @@ Creating a chem with a low purity will make you permanently fall in love with so
/datum/reagent/fermi/secretcatchem/on_mob_add(mob/living/carbon/human/H)
. = ..()
var/current_species = H.dna.species.type
var/datum/species/mutation = /datum/species/human/felinid
if((mutation != current_species) && (purity >= 0.8))//ONLY if purity is high, and given the stuff is random. It's very unlikely to get this to 1. It already requires felind too, so no new functionality there.
H.set_species(mutation)
H.gender = FEMALE
//exception(al) handler:
H.dna.features["mam_tail"] = "Cat"
H.dna.features["tail_human"] = "Cat"
H.dna.features["ears"] = "Cat"
H.dna.features["mam_ears"] = "Cat"
H.dna.features["tail_lizard"] = "Cat"
H.dna.features["mam_tail"] = "Cat"
H.dna.features["mam_tail_animated"] = "Cat"
H.facial_hair_style = "Shaved"
H.verb_say = "mewls"
catshift = TRUE
playsound(get_turf(H), 'modular_citadel/sound/voice/merowr.ogg', 50, 1, -1)
@@ -1583,7 +1573,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
H.forceMove(catto.loc)
catto.mind.transfer_to(H)
if(catshift == TRUE)
words += " ...But wait, are those ears and a tail?"
words += " ...But wait, are those cat ears?"
H.say("*wag")//force update sprites.
to_chat(H, "<span class='notice'>[words]</span>")
qdel(catto)
@@ -1,22 +1,20 @@
//TO TWEAK:
/datum/chemical_reaction/fermi
mix_sound = 'sound/effects/bubbles.ogg'
//Called for every reaction step
/datum/chemical_reaction/fermi/proc/FermiCreate(holder) //You can get holder by reagents.holder WHY DID I LEARN THIS NOW???
/datum/chemical_reaction/fermi/proc/FermiCreate(holder)
return
//Called when reaction STOP_PROCESSING
/datum/chemical_reaction/fermi/proc/FermiFinish(datum/reagents/holder, multipler) //You can get holder by reagents.holder WHY DID I LEARN THIS NOW???
/datum/chemical_reaction/fermi/proc/FermiFinish(datum/reagents/holder, multipler)
return
//Called when temperature is above a certain threshold, or if purity is too low.
/datum/chemical_reaction/fermi/proc/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH, Exploding = FALSE) //You can get holder by reagents.holder WHY DID I LEARN THIS NOW???
/datum/chemical_reaction/fermi/proc/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH, Exploding = FALSE)
if (Exploding == TRUE)
return
if(!pH)//Dunno how things got here without a pH.
if(!pH)//Dunno how things got here without a pH, but just in case
pH = 7
var/ImpureTot = 0
//var/pHmod = 1
@@ -66,27 +64,27 @@
my_atom.reagents.clear_reagents() //just in case
return
/datum/chemical_reaction/fermi/eigenstate//done
/datum/chemical_reaction/fermi/eigenstate
name = "Eigenstasium"
id = "eigenstate"
results = list("eigenstate" = 0.1)
required_reagents = list("bluespace" = 0.1, "stable_plasma" = 0.1, "sugar" = 0.1)
mix_message = "the reaction zaps suddenly!"
//FermiChem vars:
OptimalTempMin = 350 // Lower area of bell curve for determining heat based rate reactions
OptimalTempMax = 600 // Upper end for above
ExplodeTemp = 750 //Temperature at which reaction explodes
OptimalpHMin = 6 // Lowest value of pH determining pH a 1 value for pH based rate reactions (Plateu phase)
OptimalpHMax = 8 // Higest value for above
ReactpHLim = 4 // How far out pH wil react, giving impurity place (Exponential phase)
CatalystFact = 0 // How much the catalyst affects the reaction (0 = no catalyst)
CurveSharpT = 0.6 // How sharp the temperature exponential curve is (to the power of value)
CurveSharppH = 2 // 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 = 5 //Optimal/max rate possible if all conditions are perfect
FermiChem = TRUE//If the chemical uses the Fermichem reaction mechanics
FermiExplode = FALSE //If the chemical explodes in a special way
OptimalTempMin = 350 // Lower area of bell curve for determining heat based rate reactions
OptimalTempMax = 600 // Upper end for above
ExplodeTemp = 750 //Temperature at which reaction explodes
OptimalpHMin = 6 // Lowest value of pH determining pH a 1 value for pH based rate reactions (Plateu phase)
OptimalpHMax = 8 // Higest value for above
ReactpHLim = 4 // How far out pH wil react, giving impurity place (Exponential phase)
CatalystFact = 0 // How much the catalyst affects the reaction (0 = no catalyst)
CurveSharpT = 0.6 // How sharp the temperature exponential curve is (to the power of value)
CurveSharppH = 2 // 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 = 5 //Optimal/max rate possible if all conditions are perfect
FermiChem = TRUE//If the chemical uses the Fermichem reaction mechanics
FermiExplode = FALSE //If the chemical explodes in a special way
/datum/chemical_reaction/fermi/eigenstate/FermiFinish(datum/reagents/holder, var/atom/my_atom)//Strange how this doesn't work but the other does.
var/turf/open/location = get_turf(my_atom)
@@ -95,7 +93,7 @@
//serum
/datum/chemical_reaction/fermi/SDGF //DONE
/datum/chemical_reaction/fermi/SDGF
name = "Synthetic-derived growth factor"
id = "SDGF"
results = list("SDGF" = 0.3)
@@ -118,7 +116,7 @@
FermiExplode = TRUE // If the chemical explodes in a special way
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
/datum/chemical_reaction/fermi/SDGF/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH)//Spawns an angery teratoma!
var/turf/T = get_turf(my_atom)
var/mob/living/simple_animal/slime/S = new(T,"grey")
S.damage_coeff = list(BRUTE = 0.9 , BURN = 2, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1)
@@ -158,7 +156,7 @@
var/obj/item/organ/genital/breasts/B = new /obj/item/organ/genital/breasts(get_turf(my_atom))
var/list/seen = viewers(8, get_turf(my_atom))
for(var/mob/M in seen)
to_chat(M, "<span class='warning'>The reaction suddenly condenses, creating a pair of breasts!</b></span>")//OwO
to_chat(M, "<span class='warning'>The reaction suddenly condenses, creating a pair of breasts!</b></span>")
var/datum/reagent/fermi/breast_enlarger/BE = locate(/datum/reagent/fermi/breast_enlarger) in my_atom.reagents.reagent_list
B.size = ((BE.volume * BE.purity) / 10) //half as effective.
my_atom.reagents.clear_reagents()
@@ -190,7 +188,7 @@
var/obj/item/organ/genital/penis/P = new /obj/item/organ/genital/penis(get_turf(my_atom))
var/list/seen = viewers(8, get_turf(my_atom))
for(var/mob/M in seen)
to_chat(M, "<span class='warning'>The reaction suddenly condenses, creating a penis!</b></span>")//OwO
to_chat(M, "<span class='warning'>The reaction suddenly condenses, creating a penis!</b></span>")
var/datum/reagent/fermi/penis_enlarger/PE = locate(/datum/reagent/fermi/penis_enlarger) in my_atom.reagents.reagent_list
P.length = ((PE.volume * PE.purity) / 10)//half as effective.
my_atom.reagents.clear_reagents()
@@ -249,7 +247,7 @@
if(!B.data)
var/list/seen = viewers(5, get_turf(my_atom))
for(var/mob/M in seen)
to_chat(M, "<span class='warning'>The reaction splutters and fails to react.</span>") //if this appears, WHAT?!
to_chat(M, "<span class='warning'>The reaction splutters and fails to react.</span>") //Just in case
E.purity = 0
if (B.data.["gender"] == "female")
E.data.["creatorGender"] = "Mistress"
@@ -272,7 +270,7 @@
if(!B.data)
var/list/seen = viewers(5, get_turf(my_atom))
for(var/mob/M in seen)
to_chat(M, "<span class='warning'>The reaction splutters and fails to react.</span>") //if this appears, WHAT?!
to_chat(M, "<span class='warning'>The reaction splutters and fails to react.</span>") //Just in case
E.purity = 0
if (B.data.["gender"] == "female")
E.data.["creatorGender"] = "Mistress"
@@ -351,10 +349,10 @@
//There's a weird rounding error or something ugh.
//Nano-b-gone
/datum/chemical_reaction/fermi/naninte_b_gone//done test
/datum/chemical_reaction/fermi/nanite_b_gone//done test
name = "Naninte bain"
id = "naninte_b_gone"
results = list("naninte_b_gone" = 4)
id = "nanite_b_gone"
results = list("nanite_b_gone" = 4)
required_reagents = list("synthflesh" = 1, "uranium" = 1, "iron" = 1, "salglu_solution" = 1)
mix_message = "the reaction gurgles, encapsulating the reagents in flesh before the emp can be set off."
required_temp = 499//To force fermireactions before EMP.