mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-27 23:27:34 +01:00
Merge pull request #9321 from KorPhaeron/master
Slime Mutation Changes +new reactions
This commit is contained in:
@@ -147,19 +147,6 @@
|
||||
temp_change = (temperature - current)
|
||||
return temp_change
|
||||
|
||||
/mob/living/simple_animal/slime/handle_chemicals_in_body()
|
||||
|
||||
if(reagents)
|
||||
reagents.metabolize(src)
|
||||
|
||||
if (reagents.get_reagent_amount("plasma")>=5)
|
||||
mutation_chance = min(mutation_chance + 5,50) //Prevents mutation chance going >50%
|
||||
reagents.remove_reagent("plasma", 5)
|
||||
if (reagents.get_reagent_amount("epinephrine")>=5)
|
||||
mutation_chance = max(mutation_chance - 5,0) //Prevents muation chance going <0%
|
||||
reagents.remove_reagent("epinephrine", 5)
|
||||
updatehealth()
|
||||
|
||||
/mob/living/simple_animal/slime/handle_regular_status_updates()
|
||||
|
||||
if(..())
|
||||
|
||||
@@ -191,6 +191,7 @@
|
||||
if(i != 1) step_away(M,src)
|
||||
M.Friends = Friends.Copy()
|
||||
babies += M
|
||||
M.mutation_chance = Clamp(mutation_chance+(rand(5,-5)),0,100)
|
||||
feedback_add_details("slime_babies_born","slimebirth_[replacetext(M.colour," ","_")]")
|
||||
|
||||
var/mob/living/simple_animal/slime/new_slime = pick(babies)
|
||||
|
||||
@@ -61,6 +61,7 @@
|
||||
var/list/speech_buffer = list() // Last phrase said near it and person who said it
|
||||
|
||||
var/mood = "" // To show its face
|
||||
var/mutator_used = FALSE //So you can't shove a dozen mutators into a single slime
|
||||
|
||||
///////////TIME FOR SUBSPECIES
|
||||
|
||||
@@ -80,7 +81,6 @@
|
||||
icon_dead = "[icon_state] dead"
|
||||
real_name = name
|
||||
slime_mutation = mutation_table(colour)
|
||||
mutation_chance = rand(25, 35)
|
||||
var/sanitizedcolour = replacetext(colour, " ", "")
|
||||
coretype = text2path("/obj/item/slime_extract/[sanitizedcolour]")
|
||||
..()
|
||||
|
||||
@@ -218,6 +218,23 @@
|
||||
/datum/chemical_reaction/slimefrost/on_reaction(var/datum/reagents/holder)
|
||||
feedback_add_details("slime_cores_used","[replacetext(name," ","_")]")
|
||||
|
||||
|
||||
/datum/chemical_reaction/slimestabilizer
|
||||
name = "Slime Stabilizer"
|
||||
id = "m_slimestabilizer"
|
||||
result = null
|
||||
required_reagents = list("blood" = 1)
|
||||
result_amount = 1
|
||||
required_container = /obj/item/slime_extract/blue
|
||||
required_other = 1
|
||||
|
||||
/datum/chemical_reaction/slimestabilizer/on_reaction(var/datum/reagents/holder)
|
||||
feedback_add_details("slime_cores_used","[replacetext(name," ","_")]")
|
||||
var/obj/item/weapon/slimestabilizer/P = new /obj/item/weapon/slimestabilizer
|
||||
P.loc = get_turf(holder.my_atom)
|
||||
|
||||
|
||||
|
||||
//Dark Blue
|
||||
/datum/chemical_reaction/slimefreeze
|
||||
name = "Slime Freeze"
|
||||
@@ -363,7 +380,7 @@
|
||||
P.loc = get_turf(holder.my_atom)
|
||||
|
||||
//Red
|
||||
/datum/chemical_reaction/slimeglycerol
|
||||
/*/datum/chemical_reaction/slimeglycerol
|
||||
name = "Slime Glycerol"
|
||||
id = "m_glycerol"
|
||||
result = "glycerol"
|
||||
@@ -374,7 +391,21 @@
|
||||
|
||||
/datum/chemical_reaction/slimeglycerol/on_reaction(var/datum/reagents/holder)
|
||||
feedback_add_details("slime_cores_used","[replacetext(name," ","_")]")
|
||||
*/
|
||||
|
||||
/datum/chemical_reaction/slimemutator
|
||||
name = "Slime Mutator"
|
||||
id = "m_slimemutator"
|
||||
result = null
|
||||
required_reagents = list("plasma" = 1)
|
||||
result_amount = 1
|
||||
required_container = /obj/item/slime_extract/red
|
||||
required_other = 1
|
||||
|
||||
/datum/chemical_reaction/slimemutator/on_reaction(var/datum/reagents/holder)
|
||||
feedback_add_details("slime_cores_used","[replacetext(name," ","_")]")
|
||||
var/obj/item/weapon/slimemutator/P = new /obj/item/weapon/slimemutator
|
||||
P.loc = get_turf(holder.my_atom)
|
||||
|
||||
/datum/chemical_reaction/slimebloodlust
|
||||
name = "Bloodlust"
|
||||
|
||||
@@ -236,6 +236,13 @@
|
||||
M.cores = 3
|
||||
qdel(src)
|
||||
|
||||
|
||||
/obj/item/weapon/slimesteroid3
|
||||
name = "slime steroid"
|
||||
desc = "A potent chemical mix that will cause a slime to generate more extract."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle16"
|
||||
|
||||
/obj/item/weapon/slimesteroid2
|
||||
name = "extract enhancer"
|
||||
desc = "A potent chemical mix that will give a slime extract three uses."
|
||||
@@ -256,6 +263,54 @@
|
||||
qdel(src)*/
|
||||
|
||||
|
||||
/obj/item/weapon/slimestabilizer
|
||||
name = "slime stabilizer"
|
||||
desc = "A potent chemical mix that will reduce the chance of a slime mutating."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle15"
|
||||
|
||||
/obj/item/weapon/slimestabilizer/attack(mob/living/simple_animal/slime/M as mob, mob/user as mob)
|
||||
if(!isslime(M))
|
||||
user << "<span class='warning'> The stabilizer only works on slimes!</span>"
|
||||
return ..()
|
||||
if(M.stat)
|
||||
user << "<span class='warning'> The slime is dead!</span>"
|
||||
return..()
|
||||
if(M.mutation_chance == 0)
|
||||
user <<"<span class='warning'> The slime already has no chance of mutating!</span>"
|
||||
return..()
|
||||
|
||||
user <<"<span class='notice'>You feed the slime the stabilizer. It is now less likely to mutate.</span>"
|
||||
M.mutation_chance = Clamp(M.mutation_chance-15,0,100)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/slimemutator
|
||||
name = "slime mutator"
|
||||
desc = "A potent chemical mix that will increase the chance of a slime mutating."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle3"
|
||||
|
||||
/obj/item/weapon/slimemutator/attack(mob/living/simple_animal/slime/M as mob, mob/user as mob)
|
||||
if(!isslime(M))
|
||||
user << "<span class='warning'> The mutator only works on slimes!</span>"
|
||||
return ..()
|
||||
if(M.stat)
|
||||
user << "<span class='warning'> The slime is dead!</span>"
|
||||
return..()
|
||||
if(M.mutator_used)
|
||||
user << "<span class='warning'> This slime has already consumed a mutator, any more would be far too unstable!</span>"
|
||||
return..()
|
||||
if(M.mutation_chance == 100)
|
||||
user <<"<span class='warning'> The slime is already guaranteed to mutate!</span>"
|
||||
return..()
|
||||
|
||||
user <<"<span class='notice'>You feed the slime the mutator. It is now more likely to mutate.</span>"
|
||||
M.mutation_chance = Clamp(M.mutation_chance+12,0,100)
|
||||
M.mutator_used = TRUE
|
||||
qdel(src)
|
||||
|
||||
|
||||
|
||||
////////Adamantine Golem stuff I dunno where else to put it
|
||||
|
||||
// This will eventually be removed.
|
||||
@@ -362,4 +417,4 @@
|
||||
G.loc = src.loc
|
||||
G.key = ghost.key
|
||||
G << "You are an adamantine golem. You move slowly, but are highly resistant to heat and cold as well as blunt trauma. You are unable to wear clothes, but can still use most tools. Serve [user], and assist them in completing their goals at any cost."
|
||||
qdel(src)
|
||||
qdel(src)
|
||||
|
||||
Reference in New Issue
Block a user