From 06f2155c3bf60cd43afbfdf97db68e330cfa22f4 Mon Sep 17 00:00:00 2001
From: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Date: Wed, 14 Apr 2021 22:03:49 +0200
Subject: [PATCH] [MIRROR] Breaking a mirror now gives you a bad omen (#4908)
* breaking a mirror is bad for your health (#58381)
* Breaking a mirror now gives you a bad omen
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
---
code/game/objects/structures/mirror.dm | 34 ++++++++++++++++++++------
1 file changed, 27 insertions(+), 7 deletions(-)
diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm
index 15ca2299e9a..56f5be23708 100644
--- a/code/game/objects/structures/mirror.dm
+++ b/code/game/objects/structures/mirror.dm
@@ -53,14 +53,34 @@
return list()// no message spam
return ..()
+/obj/structure/mirror/attacked_by(obj/item/I, mob/living/user)
+ if(broken || !istype(user) || !I.force)
+ return ..()
+
+ . = ..()
+ if(broken) // breaking a mirror truly gets you bad luck!
+ to_chat(user, "A chill runs down your spine as [src] shatters...")
+ user.AddComponent(/datum/component/omen, silent=TRUE) // we have our own message
+
+/obj/structure/mirror/bullet_act(obj/projectile/P)
+ if(broken || !isliving(P.firer) || !P.damage)
+ return ..()
+
+ . = ..()
+ if(broken) // breaking a mirror truly gets you bad luck!
+ var/mob/living/unlucky_dude = P.firer
+ to_chat(unlucky_dude, "A chill runs down your spine as [src] shatters...")
+ unlucky_dude.AddComponent(/datum/component/omen, silent=TRUE) // we have our own message
+
/obj/structure/mirror/obj_break(damage_flag, mapload)
- if(!broken && !(flags_1 & NODECONSTRUCT_1))
- icon_state = "mirror_broke"
- if(!mapload)
- playsound(src, "shatter", 70, TRUE)
- if(desc == initial(desc))
- desc = "Oh no, seven years of bad luck!"
- broken = TRUE
+ if(broken || (flags_1 & NODECONSTRUCT_1))
+ return
+ icon_state = "mirror_broke"
+ if(!mapload)
+ playsound(src, "shatter", 70, TRUE)
+ if(desc == initial(desc))
+ desc = "Oh no, seven years of bad luck!"
+ broken = TRUE
/obj/structure/mirror/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))