From 62d2acf94f560a3999bdbd91886ccc624ebda293 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 6 Mar 2020 02:06:42 -0700 Subject: [PATCH] Update slime.dm --- code/modules/mob/living/simple_animal/slime/slime.dm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index 990e61974e..8594d53bd1 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -70,7 +70,8 @@ var/colour = "grey" var/coretype = /obj/item/slime_extract/grey - var/list/slime_mutation[4] + var/list/slime_mutation + var/static/list/color_mutation_cache = list() var/static/list/slime_colours = list("rainbow", "grey", "purple", "metal", "orange", "blue", "dark blue", "dark purple", "yellow", "silver", "pink", "red", @@ -84,6 +85,7 @@ /mob/living/simple_animal/slime/Initialize(mapload, new_colour="grey", new_is_adult=FALSE) + initialize_mutations() var/datum/action/innate/slime/feed/F = new F.Grant(src) @@ -108,10 +110,16 @@ AC.Remove(src) return ..() +/mob/living/simple_animal/slime/proc/initialize_mutations() + var/list/cached = color_mutation_cache[colour] + if(!cached) + cached = color_mutation_cache[colour] = mutation_table(colour) + slime_mutation = cached + /mob/living/simple_animal/slime/proc/set_colour(new_colour) colour = new_colour update_name() - slime_mutation = mutation_table(colour) + initialize_mutations() var/sanitizedcolour = replacetext(colour, " ", "") coretype = text2path("/obj/item/slime_extract/[sanitizedcolour]") regenerate_icons()