From a477b18ade685a8df3edbec150836a354d8fe285 Mon Sep 17 00:00:00 2001 From: Leshana Date: Fri, 20 Mar 2020 23:44:04 -0400 Subject: [PATCH] Added mob_living.set_stat() observer --- code/datums/observation/stat_set.dm | 24 ++++++++++++++++++++++++ polaris.dme | 1 + 2 files changed, 25 insertions(+) create mode 100644 code/datums/observation/stat_set.dm diff --git a/code/datums/observation/stat_set.dm b/code/datums/observation/stat_set.dm new file mode 100644 index 0000000000..b980d06ecc --- /dev/null +++ b/code/datums/observation/stat_set.dm @@ -0,0 +1,24 @@ +// Observer Pattern Implementation: Stat Set +// Registration type: /mob/living +// +// Raised when: A /mob/living changes stat, using the set_stat() proc +// +// Arguments that the called proc should expect: +// /mob/living/stat_mob: The mob whose stat changed +// /old_stat: Status before the change. +// /new_stat: Status after the change. + +GLOBAL_DATUM_INIT(stat_set_event, /decl/observ/stat_set, new) + +/decl/observ/stat_set + name = "Stat Set" + expected_type = /mob/living + +/**************** +* Stat Handling * +****************/ +/mob/living/set_stat(var/new_stat) + var/old_stat = stat + . = ..() + if(stat != old_stat) + GLOB.stat_set_event.raise_event(src, old_stat, new_stat) diff --git a/polaris.dme b/polaris.dme index 554931f8e9..8c1c72f871 100644 --- a/polaris.dme +++ b/polaris.dme @@ -294,6 +294,7 @@ #include "code\datums\observation\observation.dm" #include "code\datums\observation\shuttle_added.dm" #include "code\datums\observation\shuttle_moved.dm" +#include "code\datums\observation\stat_set.dm" #include "code\datums\observation\turf_changed.dm" #include "code\datums\observation\unequipped.dm" #include "code\datums\observation\z_moved.dm"