From e6842e216ab561db5cd31da348211482249c60b1 Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Thu, 7 Jan 2016 00:28:40 -0800 Subject: [PATCH] Fun is the worst, don't have it ever --- code/modules/mob/living/carbon/human/human.dm | 2 ++ code/modules/mob/living/carbon/human/species/species.dm | 8 ++++++++ code/modules/mob/living/carbon/human/species/station.dm | 6 ++---- html/changelogs/crazylemon-funisdumb.yml | 7 +++++++ 4 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 html/changelogs/crazylemon-funisdumb.yml diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 12bf73b43d4..49466400585 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1486,6 +1486,8 @@ if(species.default_language) remove_language(species.default_language) + species.handle_pre_loss(src) + species = all_species[new_species] if(oldspecies) diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index f1fbf8c8299..e0c35cbffa0 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -308,6 +308,14 @@ /datum/species/proc/handle_post_spawn(var/mob/living/carbon/C) //Handles anything not already covered by basic species assignment. handle_dna(C) + for (var/foo in abilities) + C.verbs |= foo + return + +// Used so that species lose their abilities before +/datum/species/proc/handle_pre_loss(var/mob/living/carbon/C) + for (var/foo in abilities) + C.verbs -= foo return /datum/species/proc/handle_dna(var/mob/living/carbon/C, var/remove) //Handles DNA mutations, as that doesn't work at init. diff --git a/code/modules/mob/living/carbon/human/species/station.dm b/code/modules/mob/living/carbon/human/species/station.dm index b8a8338ccab..ebab34d6fc7 100644 --- a/code/modules/mob/living/carbon/human/species/station.dm +++ b/code/modules/mob/living/carbon/human/species/station.dm @@ -527,11 +527,9 @@ "r_foot" = list("path" = /obj/item/organ/external/foot/right/ipc) ) + abilities = list(/mob/living/carbon/human/proc/change_monitor,) + /datum/species/machine/handle_death(var/mob/living/carbon/human/H) H.h_style = "" spawn(100) if(H) H.update_hair() - -/datum/species/machine/handle_post_spawn(var/mob/living/carbon/human/H) - ..() - H.verbs += /mob/living/carbon/human/proc/change_monitor diff --git a/html/changelogs/crazylemon-funisdumb.yml b/html/changelogs/crazylemon-funisdumb.yml new file mode 100644 index 00000000000..57184327dce --- /dev/null +++ b/html/changelogs/crazylemon-funisdumb.yml @@ -0,0 +1,7 @@ +author: Crazylemon + +delete-after: True + +changes: + - rscadd: "Fully enables a system to allow species to have unique procs and verbs that come and go with the species." + - rscdel: "IPCs lose their change monitor verb when changing species now. Gone are the days of recalling a past IPC life to perform self-barbery! Oh, woe is me!"