From 53c2ab49b2183dd9a0f3820193e8a7cdd6cacde7 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Sat, 21 Jul 2018 17:55:38 -0700
Subject: [PATCH] Flash confusion stacking clamped to 2x of power (#39188)
so 10 seconds in most cases unless admins custom proccall'd or something
---
code/modules/assembly/flash.dm | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm
index b5a7c5d3c58..b89a3f876df 100644
--- a/code/modules/assembly/flash.dm
+++ b/code/modules/assembly/flash.dm
@@ -1,3 +1,4 @@
+#define CONFUSION_STACK_MAX_MULTIPLIER 2
/obj/item/assembly/flash
name = "flash"
desc = "A powerful and versatile flashbulb device, with applications ranging from disorienting attackers to acting as visual receptors in robot production."
@@ -108,7 +109,9 @@
to_chat(M, "[src] emits a blinding light!")
if(targeted)
if(M.flash_act(1, 1))
- M.confused += power
+ if(M.confused < power)
+ var/diff = power * CONFUSION_STACK_MAX_MULTIPLIER - M.confused
+ M.confused += min(power, diff)
if(user)
terrible_conversion_proc(M, user)
visible_message("[user] blinds [M] with the flash!")
@@ -125,7 +128,8 @@
to_chat(M, "[src] fails to blind you!")
else
if(M.flash_act())
- M.confused += power
+ var/diff = power * CONFUSION_STACK_MAX_MULTIPLIER - M.confused
+ M.confused += min(power, diff)
/obj/item/assembly/flash/attack(mob/living/M, mob/user)
if(!try_use_flash(user))
@@ -137,8 +141,9 @@
var/mob/living/silicon/robot/R = M
add_logs(user, R, "flashed", src)
update_icon(1)
- M.Knockdown(rand(80,120))
- R.confused += 5
+ R.Knockdown(rand(80,120))
+ var/diff = 5 * CONFUSION_STACK_MAX_MULTIPLIER - M.confused
+ R.confused += min(5, diff)
R.flash_act(affect_silicon = 1)
user.visible_message("[user] overloads [R]'s sensors with the flash!", "You overload [R]'s sensors with the flash!")
return TRUE