Merge pull request #803 from ArchieBeepBoop/tablechem

Introducing... Tablesmitium.
This commit is contained in:
QuoteFox
2021-01-03 05:46:34 +00:00
committed by GitHub
3 changed files with 85 additions and 1 deletions
Binary file not shown.
@@ -400,4 +400,63 @@
H.say("*wag")//force update sprites.
to_chat(H, "<span class='notice'>[words]</span>")
qdel(catto)
log_game("FERMICHEM: [H] ckey: [H.key] has returned to normal")
log_game("FERMICHEM: [H] ckey: [H.key] has returned to normal")
//Tablesmitium
/datum/reagent/fermi/tablesmitium
name = "Tablesmitium"
description = "Why is this a thing? Why did CentCom even commission such a thing?"
color = "#7bbcd6"
overdose_threshold = 30
impure_chem = /datum/reagent/toxin/acid //AAAA
inverse_chem_val = 0.25
inverse_chem = /datum/reagent/toxin/acid //OW. ACID.
taste_description = "what can only be described as licking every single table in the galaxy at the same time. Curious."
pH = 9
value = 90
can_synth = FALSE
/datum/reagent/fermi/tablesmitium/on_mob_life(mob/living/carbon/C)
var/list/areas = list()
for(var/area/A in world)
if(A.z == SSmapping.station_start)
areas += A
var/area/B = pick(areas)
var/list/obj/structure/table/tables = list()
for(var/obj/structure/table/T in B)
tables += T
if(tables.len)
var/obj/structure/table/S = pick(tables)
do_sparks(5,FALSE,C)
S.tablepush(C, C)
do_sparks(5,FALSE,C)
playsound(C.loc, 'sound/effects/phasein.ogg', 50, 1)
playsound(C.loc, 'hyperstation/sound/misc/slam.ogg', 50, 1)
..()
/datum/reagent/fermi/tablesmitium/overdose_start(mob/living/M)
. = ..()
to_chat(M, "<span class='userdanger'>You have stared into the abyss of tables... And it gazed back.</span>")
log_game("FERMICHEM: [M] ckey: [M.key] has overdosed on tablesmitium")
M.Jitter(20)
metabolization_rate += 0.5 //So you're not stuck forever tabling.
/datum/reagent/fermi/tablesmitium/overdose_process(mob/living/carbon/C)
var/list/obj/structure/table/tables = list()
for(var/obj/structure/table/T in view_or_range(10, C, "range"))
tables += T
if(tables.len)
var/obj/structure/table/S = pick(tables)
C.throw_at(S, rand(8,10), 14, C)
if(prob(25))
radiation_pulse(C, 10)
playsound(C.loc, 'sound/effects/supermatter.ogg', 50, 1)
var/turf/B = get_turf(C.loc)
if(!isspaceturf(B))
var/obj/effect/decal/cleanable/greenglow/radioactive/GG = locate() in B.contents
if(!GG)
GG = new/obj/effect/decal/cleanable/greenglow/radioactive(B)
GG.reagents.add_reagent(/datum/reagent/uranium, 3)
..()
@@ -555,3 +555,28 @@
HIonRelease = 0.1
RateUpLim = 2
FermiChem = TRUE
//Tablesmitium, oh no
/datum/chemical_reaction/fermi/tablesmitium
name = "Tablesmitium"
id = /datum/reagent/fermi/tablesmitium
results = list(/datum/reagent/fermi/tablesmitium = 1)
required_reagents = list(/datum/reagent/bluespace = 1, /datum/reagent/uranium = 1, /datum/reagent/consumable/coffee = 1)
mix_message = "the reaction... Smells like admin abuse?"
//FermiChem vars:
OptimalTempMin = 500 // Lower area of bell curve for determining heat based rate reactions
OptimalTempMax = 600 // Upper end for above
ExplodeTemp = 635 //Temperature at which reaction explodes
OptimalpHMin = 7 // Lowest value of pH determining pH a 1 value for pH based rate reactions (Plateu phase)
OptimalpHMax = 9 // Higest value for above
ReactpHLim = 5 // How far out pH wil react, giving impurity place (Exponential phase)
CatalystFact = 0 // How much the catalyst affects the reaction (0 = no catalyst)
CurveSharpT = 3 // How sharp the temperature exponential curve is (to the power of value)
CurveSharppH = 5 // How sharp the pH exponential curve is (to the power of value)
ThermicConstant = 10 //Temperature change per 1u produced
HIonRelease = -0.02 //pH change per 1u reaction
RateUpLim = 3 //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
PurityMin = 0.4 //The minimum purity something has to be above, otherwise it explodes.