From 2ef1435af8108eebcf8dbd9d10917631ae18d745 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 8 Sep 2019 18:22:44 +0200 Subject: [PATCH] fixes it with real testing --- code/__DEFINES/components.dm | 1 + code/controllers/subsystem/job.dm | 3 +++ code/datums/components/mood.dm | 11 ++++++----- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm index 412ec54a376..2938652ca00 100644 --- a/code/__DEFINES/components.dm +++ b/code/__DEFINES/components.dm @@ -271,6 +271,7 @@ #define COMSIG_HUMAN_MELEE_UNARMED_ATTACK "human_melee_unarmed_attack" //from mob/living/carbon/human/UnarmedAttack(): (atom/target, proximity) #define COMSIG_HUMAN_MELEE_UNARMED_ATTACKBY "human_melee_unarmed_attackby" //from mob/living/carbon/human/UnarmedAttack(): (mob/living/carbon/human/attacker) #define COMSIG_HUMAN_DISARM_HIT "human_disarm_hit" //Hit by successful disarm attack (mob/living/carbon/human/attacker,zone_targeted) +#define COMSIG_JOB_RECEIVED "job_received" //Whenever EquipRanked is called, called after job is set // /datum/species signals #define COMSIG_SPECIES_GAIN "species_gain" //from datum/species/on_species_gain(): (datum/species/new_species, datum/species/old_species) diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index ba83b9af7a1..e5dcfc2efc4 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -412,6 +412,9 @@ SUBSYSTEM_DEF(job) H.job = rank + SEND_SIGNAL(H, COMSIG_JOB_RECEIVED, H.job) + + //If we joined at roundstart we should be positioned at our workstation if(!joined_late) var/obj/S = null diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm index 4d34fbec510..e99b4d03cbf 100644 --- a/code/datums/components/mood.dm +++ b/code/datums/components/mood.dm @@ -25,22 +25,23 @@ RegisterSignal(parent, COMSIG_LIVING_REVIVE, .proc/on_revive) RegisterSignal(parent, COMSIG_MOB_HUD_CREATED, .proc/modify_hud) + RegisterSignal(parent, COMSIG_JOB_RECEIVED, .proc/register_job_signals) + var/mob/living/owner = parent if(owner.hud_used) modify_hud() var/datum/hud/hud = owner.hud_used hud.show_hud(hud.hud_version) - if(!ishuman(owner)) - return - var/mob/living/carbon/human/H = owner - if(H.mind?.assigned_role in list("Research Director", "Scientist", "Roboticist")) - RegisterSignal(parent, COMSIG_ADD_MOOD_EVENT_RND, .proc/add_event) //Only for RnD members /datum/component/mood/Destroy() STOP_PROCESSING(SSmood, src) unmodify_hud() return ..() +/datum/component/mood/proc/register_job_signals(datum/source, job) + if(job in list("Research Director", "Scientist", "Roboticist")) + RegisterSignal(parent, COMSIG_ADD_MOOD_EVENT_RND, .proc/add_event) //Mood events that are only for RnD members + /datum/component/mood/proc/print_mood(mob/user) var/msg = "*---------*\nYour current mood\n" msg += "My mental status: " //Long term