From cbc446a479bcb3281108bd30c3afdd849ab04ac8 Mon Sep 17 00:00:00 2001 From: Aurorablade Date: Fri, 2 Feb 2018 00:31:19 -0500 Subject: [PATCH] it works tiger pants --- code/controllers/Processes/effect_process.dm | 0 code/datums/status_effects/neutral.dm | 5 ++- code/datums/status_effects/status_effect.dm | 3 ++ code/modules/mob/living/carbon/human/emote.dm | 35 ++++++++++--------- paradise.dme | 1 - 5 files changed, 25 insertions(+), 19 deletions(-) delete mode 100644 code/controllers/Processes/effect_process.dm diff --git a/code/controllers/Processes/effect_process.dm b/code/controllers/Processes/effect_process.dm deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/code/datums/status_effects/neutral.dm b/code/datums/status_effects/neutral.dm index 270dbc71cdc..b82fc629eef 100644 --- a/code/datums/status_effects/neutral.dm +++ b/code/datums/status_effects/neutral.dm @@ -3,4 +3,7 @@ /datum/status_effect/high_five id = "high_five" duration = 25 - alert_type = null \ No newline at end of file + alert_type = null + +/datum/status_effect/high_five/on_timeout() + owner.visible_message("[owner] was left hanging....") \ No newline at end of file diff --git a/code/datums/status_effects/status_effect.dm b/code/datums/status_effects/status_effect.dm index 90ea9b3be11..196aa6f55d9 100644 --- a/code/datums/status_effects/status_effect.dm +++ b/code/datums/status_effects/status_effect.dm @@ -10,6 +10,7 @@ var/mob/living/owner //The mob affected by the status effect. var/status_type = STATUS_EFFECT_UNIQUE //How many of the effect can be on one mob, and what happens when you try to add another var/on_remove_on_mob_delete = FALSE //if we call on_remove() when the mob is deleted + var/can_timeout = FALSE //use for effect that to a diffrent thing on time out (so it can do something on time out rather then on just remove) var/examine_text //If defined, this text will appear when the mob is examined - to use he, she etc. use "SUBJECTPRONOUN" and replace it in the examines themselves var/alert_type = /obj/screen/alert/status_effect //the alert thrown by the status effect, contains name and description var/obj/screen/alert/status_effect/linked_alert = null //the alert itself, if it exists @@ -52,11 +53,13 @@ tick() tick_interval = world.time + initial(tick_interval) if(duration != -1 && duration < world.time) + on_timeout() qdel(src) /datum/status_effect/proc/on_apply() //Called whenever the buff is applied; returning FALSE will cause it to autoremove itself. return TRUE /datum/status_effect/proc/tick() //Called every tick. +/datum/status_effect/proc/on_timeout()//called when a buff times out /datum/status_effect/proc/on_remove() //Called whenever the buff expires or is removed; do note that at the point this is called, it is out of the owner's status_effects but owner is not yet null /datum/status_effect/proc/be_replaced() //Called instead of on_remove when a status effect is replaced by itself or when a status effect with on_remove_on_mob_delete = FALSE has its mob deleted owner.clear_alert(id) diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 309724b4eb3..cb383a7955f 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -840,27 +840,28 @@ if("highfive") if(restrained()) return - visible_message("[name] requests a highfive.", "You request a highfive.") - if(!has_status_effect(STATUS_EFFECT_HIGHFIVE)) - apply_status_effect(STATUS_EFFECT_HIGHFIVE) - - for(var/mob/living/carbon/C in orange(1)) - if(!C || C == src) - visible_message("[name] was left hanging. Embarrassing.", "You are left hanging. How embarrassing!") - else - C.apply_status_effect(STATUS_EFFECT_HIGHFIVE) - if(C.has_status_effect(STATUS_EFFECT_HIGHFIVE)) - if((mind.special_role == SPECIAL_ROLE_WIZARD) && (C.mind && (C.mind.special_role == SPECIAL_ROLE_WIZARD))) - visible_message("[name] and [C.name] high-five EPICALLY!") + if(has_status_effect(STATUS_EFFECT_HIGHFIVE)) + to_chat(src, "You give up on the highfive.") + remove_status_effect(STATUS_EFFECT_HIGHFIVE) + return + visible_message("[name] requests a highfive.", "You request a high five.") + apply_status_effect(STATUS_EFFECT_HIGHFIVE) + for(var/mob/living/L in orange(1)) + L.apply_status_effect(STATUS_EFFECT_HIGHFIVE) + if(L.has_status_effect(STATUS_EFFECT_HIGHFIVE)) + if((mind && mind.special_role == SPECIAL_ROLE_WIZARD) && (L.mind && L.mind.special_role == SPECIAL_ROLE_WIZARD)) + visible_message("[name] and [L.name] high-five EPICALLY!") status_flags |= GODMODE - C.status_flags |= GODMODE + L.status_flags |= GODMODE explosion(loc,5,2,1,3) status_flags &= ~GODMODE - C.status_flags &= ~GODMODE - break - visible_message("[name] and [C.name] high-five!") + L.status_flags &= ~GODMODE + return + visible_message("[name] and [L.name] high-five!") playsound('sound/effects/snap.ogg', 50) - break + remove_status_effect(STATUS_EFFECT_HIGHFIVE) + L.remove_status_effect(STATUS_EFFECT_HIGHFIVE) + return if("help") var/emotelist = "aflap(s), airguitar, blink(s), blink(s)_r, blush(es), bow(s)-(none)/mob, burp(s), choke(s), chuckle(s), clap(s), collapse(s), cough(s),cry, cries, custom, dance, dap(s)(none)/mob," \ diff --git a/paradise.dme b/paradise.dme index 1dc15bf5891..50d948012f7 100644 --- a/paradise.dme +++ b/paradise.dme @@ -177,7 +177,6 @@ #include "code\controllers\voting.dm" #include "code\controllers\Processes\air.dm" #include "code\controllers\Processes\alarm.dm" -#include "code\controllers\Processes\effect_process.dm" #include "code\controllers\Processes\event.dm" #include "code\controllers\Processes\fast_process.dm" #include "code\controllers\Processes\fires.dm"