From c47c812fdffe74419cb3ed0a0d220122bc088e69 Mon Sep 17 00:00:00 2001 From: fludd12 Date: Mon, 11 Jun 2018 01:03:55 -0400 Subject: [PATCH] Fixes and Upgrades Stabilized Gold Extracts --- .../crossbreeding/_status_effects.dm | 15 ++++++ .../xenobiology/crossbreeding/stabilized.dm | 46 +++++++++++++++++++ 2 files changed, 61 insertions(+) diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm index b100e73bc7..7a7b928e28 100644 --- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm @@ -760,9 +760,24 @@ datum/status_effect/stabilized/blue/on_remove() var/mob/living/simple_animal/familiar /datum/status_effect/stabilized/gold/tick() +<<<<<<< HEAD if(!familiar) familiar = create_random_mob(get_turf(owner.loc), FRIENDLY_SPAWN) familiar.del_on_death = TRUE +======= + var/obj/item/slimecross/stabilized/gold/linked = linked_extract + if(QDELETED(familiar)) + familiar = new linked.mob_type(get_turf(owner.loc)) + familiar.name = linked.mob_name + familiar.del_on_death = TRUE + familiar.copy_known_languages_from(owner, FALSE) + if(linked.saved_mind) + linked.saved_mind.transfer_to(familiar) + familiar.ckey = linked.saved_mind.key + else + if(familiar.mind) + linked.saved_mind = familiar.mind +>>>>>>> b2e9fe8... Fixes and Upgrades Stabilized Gold Extracts (#38394) return ..() /datum/status_effect/stabilized/gold/on_remove() diff --git a/code/modules/research/xenobiology/crossbreeding/stabilized.dm b/code/modules/research/xenobiology/crossbreeding/stabilized.dm index aea4f47576..4eec61ade1 100644 --- a/code/modules/research/xenobiology/crossbreeding/stabilized.dm +++ b/code/modules/research/xenobiology/crossbreeding/stabilized.dm @@ -96,6 +96,52 @@ Stabilized extracts: /obj/item/slimecross/stabilized/gold colour = "gold" +<<<<<<< HEAD +======= + var/mob_type + var/datum/mind/saved_mind + var/mob_name = "Familiar" + +/obj/item/slimecross/stabilized/gold/proc/generate_mobtype() + var/static/list/mob_spawn_pets = list() + if(mob_spawn_pets.len <= 0) + for(var/T in typesof(/mob/living/simple_animal)) + var/mob/living/simple_animal/SA = T + switch(initial(SA.gold_core_spawnable)) + if(FRIENDLY_SPAWN) + mob_spawn_pets += T + mob_type = pick(mob_spawn_pets) + +/obj/item/slimecross/stabilized/gold/Initialize() + ..() + generate_mobtype() + +/obj/item/slimecross/stabilized/gold/attack_self(mob/user) + var/choice = input(user, "Which do you want to reset?", "Familiar Adjustment") as null|anything in list("Familiar Location", "Familiar Species", "Familiar Sentience", "Familiar Name") + if(!user.canUseTopic(src, BE_CLOSE)) + return + if(isliving(user)) + var/mob/living/L = user + if(L.has_status_effect(/datum/status_effect/stabilized/gold)) + L.remove_status_effect(/datum/status_effect/stabilized/gold) + if(choice == "Familiar Location") + to_chat(user, "You prod [src], and it shudders slightly.") + START_PROCESSING(SSobj, src) + if(choice == "Familiar Species") + to_chat(user, "You squeeze [src], and a shape seems to shift around inside.") + generate_mobtype() + START_PROCESSING(SSobj, src) + if(choice == "Familiar Sentience") + to_chat(user, "You poke [src], and it lets out a glowing pulse.") + saved_mind = null + START_PROCESSING(SSobj, src) + if(choice == "Familiar Name") + var/newname = copytext(sanitize(input(user, "Would you like to change the name of [mob_name]", "Name change", mob_name) as null|text),1,MAX_NAME_LEN) + if(newname) + mob_name = newname + to_chat(user, "You speak softly into [src], and it shakes slightly in response.") + START_PROCESSING(SSobj, src) +>>>>>>> b2e9fe8... Fixes and Upgrades Stabilized Gold Extracts (#38394) /obj/item/slimecross/stabilized/oil colour = "oil"