diff --git a/code/datums/components/heirloom.dm b/code/datums/components/heirloom.dm new file mode 100644 index 00000000000..e7e62187d06 --- /dev/null +++ b/code/datums/components/heirloom.dm @@ -0,0 +1,16 @@ +/datum/component/heirloom + var/datum/mind/owner + var/family_name + +/datum/component/heirloom/Initialize(new_owner, new_family_name) + if(!isitem(parent)) + return COMPONENT_INCOMPATIBLE + + owner = new_owner + family_name = new_family_name + + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examine) + +/datum/component/heirloom/proc/examine(datum/source, mob/user) + if(user.mind == owner) + to_chat(user, "It is your precious [family_name] family heirloom. Keep it safe!") diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 2f8b425d259..ba9a69fb64c 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -159,8 +159,11 @@ SEND_SIGNAL(H.back, COMSIG_TRY_STORAGE_SHOW, H) to_chat(quirk_holder, "There is a precious family [heirloom.name] [where], passed down from generation to generation. Keep it safe!") - var/list/family_name = splittext(quirk_holder.real_name, " ") - heirloom.name = "\improper [family_name[family_name.len]] family [heirloom.name]" + + var/list/names = splittext(quirk_holder.real_name, " ") + var/family_name = names[names.len] + + heirloom.AddComponent(/datum/component/heirloom, quirk_holder.mind, family_name) /datum/quirk/family_heirloom/on_process() if(heirloom in quirk_holder.GetAllContents()) diff --git a/tgstation.dme b/tgstation.dme index 23efe4fa672..903e18e4af3 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -340,6 +340,7 @@ #include "code\datums\components\footstep.dm" #include "code\datums\components\forced_gravity.dm" #include "code\datums\components\forensics.dm" +#include "code\datums\components\heirloom.dm" #include "code\datums\components\infective.dm" #include "code\datums\components\jousting.dm" #include "code\datums\components\knockoff.dm"