plushmium: the fermichem that creates sentient plushies (#12450)

* create plushie mob and chem

* better plush

* sentience

* fixes

* more fixes

* spelling error

* okay this works better

* more work on sentiency

* fixes

* further fixes

* revert plush storage changes, add splash effect

* fix icons

* undo a change that i guess isnt needed

* remove spaces

* plushies are now space immune

* make warning text more clear

* dont give them more health than bears?

* give them 0/1 stamina damage

* bugfix

* squeak when attacked

* small refactor
This commit is contained in:
Timothy Teakettle
2020-06-09 11:21:18 +01:00
committed by GitHub
parent 26ef2c6812
commit 3692323615
5 changed files with 139 additions and 3 deletions
@@ -159,6 +159,35 @@
log_reagent("FERMICHEM: [M] ckey: [M.key]'s tongue has been made permanent")
////////////////////////////////////////////////////////////////////////////////////////////////////
// PLUSHMIUM
///////////////////////////////////////////////////////////////////////////////////////////////////
//A chemical you can spray on plushies to turn them into a 'shell'
//Hugging the plushie turns yourself into the plushie!
/datum/reagent/fermi/plushmium
name = "Plushmium"
description = "A strange chemical, seeming almost fluffy, if it were not for it being a liquid. Known to have a strange effect on plushies."
color = "#fbcbd7"
taste_description = "the soft feeling of a plushie"
pH = 5
value = 50
can_synth = TRUE
/datum/reagent/fermi/plushmium/reaction_obj(obj/O, reac_volume)
if(istype(O, /obj/item/toy/plush) && reac_volume >= 5)
O.loc.visible_message("<span class='warning'>The plushie seems to be staring back at you.</span>")
var/obj/item/toy/plushie_shell/new_shell = new /obj/item/toy/plushie_shell(O.loc)
new_shell.name = O.name
new_shell.icon = O.icon
new_shell.icon_state = O.icon_state
new_shell.stored_plush = O
O.forceMove(new_shell)
//Extra interaction for which spraying it on an existing sentient plushie aheals them, so they can be revived!
/datum/reagent/fermi/plushmium/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
if(istype(M, /mob/living/simple_animal/pet/plushie) && reac_volume >= 1)
M.revive(full_heal = 1, admin_revive = 1)
///////////////////////////////////////////////////////////////////////////////////////////////
//Nanite removal
//Writen by Trilby!! Embellsished a little by me.
@@ -480,6 +480,33 @@
RateUpLim = 15
FermiChem = TRUE
/datum/chemical_reaction/fermi/plushmium // done
name = "Plushification serum"
id = /datum/reagent/fermi/plushmium
results = list(/datum/reagent/fermi/plushmium = 5)
required_reagents = list(/datum/reagent/medicine/strange_reagent = 5, /datum/reagent/drug/happiness = 3, /datum/reagent/blood = 10, /datum/reagent/consumable/laughter = 5, /datum/reagent/toxin/bad_food = 6)
//mix_message = ""
//FermiChem vars:
OptimalTempMin = 400
OptimalTempMax = 666
ExplodeTemp = 800
OptimalpHMin = 2
OptimalpHMax = 5
ReactpHLim = 6
//CatalystFact = 0 //To do 1
CurveSharpT = 8
CurveSharppH = 0.5
ThermicConstant = -2
HIonRelease = -0.1
RateUpLim = 2
FermiChem = TRUE
FermiExplode = TRUE
PurityMin = 0.6
/datum/chemical_reaction/fermi/plushmium/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH)
new /obj/item/toy/plush/random(get_turf(my_atom))
my_atom.visible_message("<span class='warning'>The reaction suddenly zaps, creating a plushie!</b></span>")
my_atom.reagents.clear_reagents()
/datum/chemical_reaction/fermi/basic_buffer/FermiFinish(datum/reagents/holder, atom/my_atom) //might need this
var/datum/reagent/fermi/basic_buffer/Fb = locate(/datum/reagent/fermi/basic_buffer) in my_atom.reagents.reagent_list