YzbH2`2bW@H1y?^8u&V(@fH$??k~e$+00VSML_t(oh1HhpQrj>Pg^`t1
zK$1diij)Lm3bhqXOK-H$mX@}IdH+Z1?n=JJvf}*cOuNHnAalMwTFE-z+4+0L>VE`5
zz?-#E&IUEYkn?Aa61#tU8|3?g8eqsr0%}~;WITSpd*G8Ff__>80?>y-1Z5#a>_(mX
zqa)P6C;+y9bPOexghIls(*v8&5BC?-lhZn2DIzK3SSn=*$FPXdZGoMEfyLtF^koT{
zfP)Biag6$y2(ykkvNP-t1{w~Qqz3?)APiU#p=$~3ob*)16fb|cSO%nr{;??>!z+ga
z(9aJCi=voaf*=RbIZ5IKf5RI1ENwer=Vzq>235=;jKF~+eVnM6hQMd-eMJ3ye_-U*
zzlU5z8uVpJvz0A?=|8Bv*8nRpo?wB03url@{s6cfu!i0O6xxSx{DC{!cEC#gnzIX@
z!V;)E_OAd34*h?+eFG3tCar(i2Hc0X1JdIY)Y1bWgo9`u#C9Lx9E5u<{pDp_PD>y_
zOczO&0~H)Z@bx2FKu?TMN=SXae58
zd;h_$-x+=!!DUbZ@JN7z#>2#JK7GEu^8!?{1RNu7LRx>n57^C@ueaa203062$nF9H
zU?bsL6SXC<`>XHFv4JH)gb@;yGDk5BI@J~+q9CaXPQgsn^mo@k{Q#aW
z;Z_WyqVQ%HbH3tCjIv@hns8Pf6Qvh@iupnGe4Ttb$
ztM=(e`G0>=+vk6?w$A^Se!Ki{`QI}Co&DjMDqC8^2t4`k1T0Aoc|nLw^GRp^I{=jb
z=FNd9N@jf0mH%!BOVU5u7Z6-TSN^+-^1td&9Nm%s9ZP@_=#2X3a9f~0bLW2-0P;Vh
z{&`Lpmy*hv|6Ksge=RfA=T?tv*b1=H)E@w-e}sR1Xy?BlVEX4d=y3{i8wZsCTIEkq
zR*z#e`7e3`ApfB@?XikItNm%
z=f59-`Hx!CyRer3egMX|hRP8@dU%`O;$b2{rdP_G11$|8?SCIo{_7PQFx#Ni
zsF^$e8wrsAna=V`KWgNEAAm3a`>es6|Gfyl{O?EbnpQP%uPJI#FCNLP|bYVlF>OHceMORbW3^Wh*^ILtknsIzTy3S*MQ;
zFDL+$ehZ_F4NXD?erpSldkdh64JjG`H6Z{#CR>Wi@K%dI#K3RKL)CD3VsY-pYsE_iM+1a0X6P@JddzgwkG8_zzVDNW-II%cKbuui^B2LorM#I=0eQoi(hZz
sjt_l%7lp^OZ$d&SLAand0{>L37kecL%4xmeG5`Po07*qoM6N<$g33dgVgLXD
From 6ecad59ad3e831a40556cd75c33dc850b2be08f8 Mon Sep 17 00:00:00 2001
From: LazennG <58535870+LazennG@users.noreply.github.com>
Date: Wed, 24 Apr 2024 14:11:11 -0700
Subject: [PATCH 2/9] Update doppelmirror.dm
---
.../modules/mining/lavaland/doppelmirror.dm | 47 +++++++++++++------
1 file changed, 33 insertions(+), 14 deletions(-)
diff --git a/yogstation/code/modules/mining/lavaland/doppelmirror.dm b/yogstation/code/modules/mining/lavaland/doppelmirror.dm
index 095267f27d43..7821949b37d5 100644
--- a/yogstation/code/modules/mining/lavaland/doppelmirror.dm
+++ b/yogstation/code/modules/mining/lavaland/doppelmirror.dm
@@ -4,30 +4,28 @@
desc = "What do you see looking back at you?"
icon = 'yogstation/icons/obj/lavaland/artefacts.dmi'
icon_state = "mirrornormal"
- actions_types = list(/datum/action/item_action/mirrorrecall)
- var/possessed = FALSE
- var/list/reflection = list()
+ actions_types = list(/datum/action/item_action/mirrorrecall, /datum/action/item_action/rerollmirror)
var/next_recall = 0
var/mob/living/carbon/original = null
+ var/mob/living/simple_animal/hostile/double/reflected = null
/obj/item/dopmirror/pickup(mob/user)
..()
original = user
/obj/item/dopmirror/attack_self(mob/living/user)
- if(possessed)
+ if(reflected)
return
if(!(GLOB.ghost_role_flags & GHOSTROLE_STATION_SENTIENCE))
to_chat(user, span_notice("Anomalous otherworldly energies keep the mirror from reflecting anything!"))
return
to_chat(user, "You peer into the mirror...")
- possessed = TRUE
var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you want to play as the living reflection in service of [user.real_name]?", ROLE_PAI, null, FALSE, 100, POLL_IGNORE_POSSESSED_BLADE)
if(LAZYLEN(candidates))
var/mob/dead/observer/C = pick(candidates)
var/mob/living/simple_animal/hostile/double/S = new(src)
- reflection |= S
+ reflected = S
S.ckey = C.ckey
S.fully_replace_character_name(null, "living reflection")
S.copy_languages(user, LANGUAGE_MASTER)
@@ -46,37 +44,51 @@
src.update_icon()
else
to_chat(user, "... and your reflection stares back at you. Try again later.")
- possessed = FALSE
/obj/item/dopmirror/Destroy()
- for(var/mob/living/simple_animal/hostile/double/S in reflection)
- to_chat(S, "You were destroyed along with the mirror!")
- qdel(S)
+ to_chat(reflected, span_userdanger("Your world shatters."))
+ qdel(reflected)
return ..()
-
/obj/item/dopmirror/ui_action_click(mob/living/user, action)
if(istype(action, /datum/action/item_action/mirrorrecall))
if(next_recall > world.time)
to_chat(user, span_warning("You can't do that yet!"))
return
- if(reflection.len < 1)
+ if(!reflected)
to_chat(user, span_notice("You don't have anything to call back!"))
return
playsound(src, 'sound/effects/glassknock.ogg', 75)
to_chat(user, span_notice("You knock on the mirror and call your reflection back into focus."))
- for(var/mob/living/simple_animal/hostile/double/doppelganger in reflection)
- doppelganger.forceMove(src)
+ reflected.forceMove(src)
update_icon(inhabited = TRUE)
next_recall = world.time + COOLDOWN_RECALL
+ if(istype(action, /datum/action/item_action/rerollmirror))
+ if(!reflected)
+ to_chat(user, span_notice("The mirror is dormant."))
+ return
+ if(tgui_alert(user, "Are you sure? This will likely replace the current reflection with someone else!",,list("Yes","No")) != "Yes")
+ return
+ to_chat(user, span_notice("You shake the mirror violently."))
+ var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you want to play as the living reflection in service of [user.real_name]?", ROLE_PAI, null, FALSE, 100, POLL_IGNORE_POSSESSED_BLADE)
+ if (!LAZYLEN(candidates))
+ to_chat(src, span_notice("There were no other residents willing to work with you. Looks like you're stuck with this one for now."))
+ return
+ var/mob/dead/observer/C = pick(candidates)
+ to_chat(reflected, span_notice("Your host shook you off, and you were replaced by one of your neighbors. Looks like they weren't happy with your performance."))
+ to_chat(user, span_notice(span_bold("The reflection in the mirror looks back at you differently now.")))
+ log_game("[key_name(user)] has reset their reflection, it is now [key_name(reflected)] (initiated by [user])")
+ reflected.key = C.key
/obj/item/dopmirror/update_icon(inhabited = FALSE)
+ . = ..()
if(inhabited == TRUE)
icon_state = "mirrornormal"
return
icon_state = "mirrorcrack"
return
+
/obj/item/dopmirror/dropped(mob/user, silent)
. = ..()
if(src in user)
@@ -90,6 +102,12 @@
button_icon = 'yogstation/icons/obj/lavaland/artefacts.dmi'
button_icon_state = "mirrornormal"
+/datum/action/item_action/rerollmirror
+ name = "Shake Mirror"
+ desc = "Attempt to have a different mirror resident replace the current one."
+ button_icon = 'icons/mob/actions/actions_spells.dmi'
+ button_icon_state = "mindswap"
+
//doppelganger code
/mob/living/simple_animal/hostile/double
@@ -219,6 +237,7 @@
if(doppelganger.mirror.original == null) //for the sake of avoiding setting up play dates with megafauna
to_chat(doppelganger, span_warning("You can't leave the mirror without an original to copy!"))
return
+ doppelganger.hibernating = FALSE
doppelganger.mirror.update_icon()
if(died == TRUE)
next_appearance = world.time + RESET_TIME
From e31905d04f73f7f8ed7f325a190927cc82e939fc Mon Sep 17 00:00:00 2001
From: LazennG <58535870+LazennG@users.noreply.github.com>
Date: Wed, 24 Apr 2024 15:12:09 -0700
Subject: [PATCH 3/9] a
---
.../mining/lavaland/necropolis_chests.dm | 2 +-
.../modules/mining/lavaland/doppelmirror.dm | 19 ++++++++++++-------
2 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index 859732d9b6d3..8abbbc931d7c 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -56,7 +56,7 @@ GLOBAL_LIST_EMPTY(aide_list)
if(16)
new /obj/item/clothing/suit/space/hardsuit/powerarmor_advanced(src)
if(17)
- new /obj/item/book_of_babel(src)
+ new /obj/item/dopmirror(src)
if(18)
new /obj/item/borg/upgrade/modkit/lifesteal(src)
new /obj/item/bedsheet/cult(src)
diff --git a/yogstation/code/modules/mining/lavaland/doppelmirror.dm b/yogstation/code/modules/mining/lavaland/doppelmirror.dm
index 7821949b37d5..9ba7306a1a0a 100644
--- a/yogstation/code/modules/mining/lavaland/doppelmirror.dm
+++ b/yogstation/code/modules/mining/lavaland/doppelmirror.dm
@@ -1,4 +1,4 @@
-#define COOLDOWN_RECALL 50
+#define COOLDOWN_RECALL 5 SECONDS
/obj/item/dopmirror
name = "ominous mirror"
desc = "What do you see looking back at you?"
@@ -194,7 +194,7 @@
/mob/living/simple_animal/hostile/double/AttackingTarget()
..()
var/mob/living/simple_animal/M = target
- if(ismegafauna(M) || istype(M, /mob/living/simple_animal/hostile/asteroid))
+ if(ismegafauna(M) || istype(M, /mob/living/simple_animal/hostile/asteroid) || istype(M, /mob/living/simple_animal/hostile/yog_jungle))
M.apply_damage(melee_fauna_bonus, BRUTE)
@@ -221,7 +221,7 @@
playsound(doppelganger, 'sound/effects/glassknock.ogg', 75)
-#define RESET_TIME 200
+#define RESET_TIME 20 SECONDS
/datum/action/innate/appear
name = "Exit Mirror"
button_icon = 'yogstation/icons/obj/lavaland/artefacts.dmi'
@@ -234,8 +234,13 @@
if(next_appearance > world.time)
to_chat(doppelganger, span_warning("You can't leave the mirror yet!"))
return
- if(doppelganger.mirror.original == null) //for the sake of avoiding setting up play dates with megafauna
- to_chat(doppelganger, span_warning("You can't leave the mirror without an original to copy!"))
+ if(doppelganger.mirror.original == null)
+ if(!(doppelganger.hibernating))
+ return
+ if(doppelganger.mirror.original.stat != CONSCIOUS)
+ to_chat(doppelganger, span_warning("You wouldn't be able to do anything as they are now!"))
+ return
+ to_chat(doppelganger, span_warning("You can't leave the mirror without a host to copy!"))
return
doppelganger.hibernating = FALSE
doppelganger.mirror.update_icon()
@@ -247,7 +252,7 @@
doppelganger.alpha = 130
-#define SWAP_TIME 150
+#define SWAP_TIME 15 SECONDS
/datum/action/innate/swap
name = "Swap"
button_icon = 'icons/mob/actions/actions_minor_antag.dmi'
@@ -289,5 +294,5 @@
/obj/projectile/doppshot/on_hit(atom/target, blocked = FALSE)
var/mob/living/M = target
M.apply_damage(actual_damage, BRUTE)
- if(ismegafauna(M) || istype(M, /mob/living/simple_animal/hostile/asteroid))
+ if(ismegafauna(M) || istype(M, /mob/living/simple_animal/hostile/asteroid) || istype(M, /mob/living/simple_animal/hostile/yog_jungle))
M.apply_damage(ranged_fauna_bonus, BRUTE)
From b155d7ce7b163f560c3446434edbeabac5dbd050 Mon Sep 17 00:00:00 2001
From: LazennG <58535870+LazennG@users.noreply.github.com>
Date: Wed, 24 Apr 2024 16:35:51 -0700
Subject: [PATCH 4/9] dense
---
yogstation/code/modules/mining/lavaland/doppelmirror.dm | 1 +
1 file changed, 1 insertion(+)
diff --git a/yogstation/code/modules/mining/lavaland/doppelmirror.dm b/yogstation/code/modules/mining/lavaland/doppelmirror.dm
index 9ba7306a1a0a..a4097dd33a70 100644
--- a/yogstation/code/modules/mining/lavaland/doppelmirror.dm
+++ b/yogstation/code/modules/mining/lavaland/doppelmirror.dm
@@ -122,6 +122,7 @@
maxHealth = 20
health = 20
speed = -1
+ density = FALSE
projectiletype = /obj/projectile/doppshot
projectilesound = 'sound/weapons/pierce.ogg'
ranged = TRUE
From 8704357d181d0912f4193ac37c582023c0811291 Mon Sep 17 00:00:00 2001
From: LazennG <58535870+LazennG@users.noreply.github.com>
Date: Wed, 24 Apr 2024 17:29:29 -0700
Subject: [PATCH 5/9] bullets pass thorugh
---
yogstation/code/modules/mining/lavaland/doppelmirror.dm | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/yogstation/code/modules/mining/lavaland/doppelmirror.dm b/yogstation/code/modules/mining/lavaland/doppelmirror.dm
index a4097dd33a70..b417ab4645e5 100644
--- a/yogstation/code/modules/mining/lavaland/doppelmirror.dm
+++ b/yogstation/code/modules/mining/lavaland/doppelmirror.dm
@@ -198,6 +198,10 @@
if(ismegafauna(M) || istype(M, /mob/living/simple_animal/hostile/asteroid) || istype(M, /mob/living/simple_animal/hostile/yog_jungle))
M.apply_damage(melee_fauna_bonus, BRUTE)
+/mob/living/simple_animal/hostile/double/bullet_act(obj/projectile/P)
+ src.adjustBruteLoss(0.25* P.damage)
+ return BULLET_ACT_FORCE_PIERCE
+
/mob/living/simple_animal/hostile/double/dust(just_ash, drop_items, force)
death()
From 82572901c4f5c40c9b12da2b38a1bcb47b62d43b Mon Sep 17 00:00:00 2001
From: LazennG <58535870+LazennG@users.noreply.github.com>
Date: Fri, 26 Apr 2024 21:04:54 -0700
Subject: [PATCH 6/9] stop beating on the ears of all ghosts
---
yogstation/code/modules/mining/lavaland/doppelmirror.dm | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/yogstation/code/modules/mining/lavaland/doppelmirror.dm b/yogstation/code/modules/mining/lavaland/doppelmirror.dm
index b417ab4645e5..02d5780524b0 100644
--- a/yogstation/code/modules/mining/lavaland/doppelmirror.dm
+++ b/yogstation/code/modules/mining/lavaland/doppelmirror.dm
@@ -1,4 +1,6 @@
#define COOLDOWN_RECALL 5 SECONDS
+#define COOLDOWN_MIRRORSEARCH 10 SECONDS
+
/obj/item/dopmirror
name = "ominous mirror"
desc = "What do you see looking back at you?"
@@ -6,6 +8,7 @@
icon_state = "mirrornormal"
actions_types = list(/datum/action/item_action/mirrorrecall, /datum/action/item_action/rerollmirror)
var/next_recall = 0
+ var/next_search = 0
var/mob/living/carbon/original = null
var/mob/living/simple_animal/hostile/double/reflected = null
@@ -19,8 +22,11 @@
if(!(GLOB.ghost_role_flags & GHOSTROLE_STATION_SENTIENCE))
to_chat(user, span_notice("Anomalous otherworldly energies keep the mirror from reflecting anything!"))
return
+ if(next_search > world.time)
+ return
to_chat(user, "You peer into the mirror...")
+ next_search = world.time + COOLDOWN_MIRRORSEARCH
var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you want to play as the living reflection in service of [user.real_name]?", ROLE_PAI, null, FALSE, 100, POLL_IGNORE_POSSESSED_BLADE)
if(LAZYLEN(candidates))
var/mob/dead/observer/C = pick(candidates)
From 5711bfc17d4fbde4a1e58b9c8b4457a6bcce61b4 Mon Sep 17 00:00:00 2001
From: LazennG <58535870+LazennG@users.noreply.github.com>
Date: Fri, 26 Apr 2024 22:52:37 -0700
Subject: [PATCH 7/9] ecooldown
---
.../modules/mining/lavaland/doppelmirror.dm | 28 +++++++++----------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/yogstation/code/modules/mining/lavaland/doppelmirror.dm b/yogstation/code/modules/mining/lavaland/doppelmirror.dm
index 02d5780524b0..38c9191574c1 100644
--- a/yogstation/code/modules/mining/lavaland/doppelmirror.dm
+++ b/yogstation/code/modules/mining/lavaland/doppelmirror.dm
@@ -7,8 +7,8 @@
icon = 'yogstation/icons/obj/lavaland/artefacts.dmi'
icon_state = "mirrornormal"
actions_types = list(/datum/action/item_action/mirrorrecall, /datum/action/item_action/rerollmirror)
- var/next_recall = 0
- var/next_search = 0
+ COOLDOWN_DECLARE(next_search)
+ COOLDOWN_DECLARE(next_recall)
var/mob/living/carbon/original = null
var/mob/living/simple_animal/hostile/double/reflected = null
@@ -22,11 +22,11 @@
if(!(GLOB.ghost_role_flags & GHOSTROLE_STATION_SENTIENCE))
to_chat(user, span_notice("Anomalous otherworldly energies keep the mirror from reflecting anything!"))
return
- if(next_search > world.time)
+ if(!COOLDOWN_FINISHED(src, next_search))
return
+ COOLDOWN_START(src, next_search, COOLDOWN_MIRRORSEARCH)
to_chat(user, "You peer into the mirror...")
- next_search = world.time + COOLDOWN_MIRRORSEARCH
var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you want to play as the living reflection in service of [user.real_name]?", ROLE_PAI, null, FALSE, 100, POLL_IGNORE_POSSESSED_BLADE)
if(LAZYLEN(candidates))
var/mob/dead/observer/C = pick(candidates)
@@ -58,7 +58,7 @@
/obj/item/dopmirror/ui_action_click(mob/living/user, action)
if(istype(action, /datum/action/item_action/mirrorrecall))
- if(next_recall > world.time)
+ if(!COOLDOWN_FINISHED(src, next_recall))
to_chat(user, span_warning("You can't do that yet!"))
return
if(!reflected)
@@ -68,7 +68,7 @@
to_chat(user, span_notice("You knock on the mirror and call your reflection back into focus."))
reflected.forceMove(src)
update_icon(inhabited = TRUE)
- next_recall = world.time + COOLDOWN_RECALL
+ COOLDOWN_START(src, next_search, COOLDOWN_RECALL)
if(istype(action, /datum/action/item_action/rerollmirror))
if(!reflected)
to_chat(user, span_notice("The mirror is dormant."))
@@ -232,17 +232,17 @@
playsound(doppelganger, 'sound/effects/glassknock.ogg', 75)
-#define RESET_TIME 20 SECONDS
+#define COOLDOWN_REAPPEAR 20 SECONDS
/datum/action/innate/appear
name = "Exit Mirror"
button_icon = 'yogstation/icons/obj/lavaland/artefacts.dmi'
button_icon_state = "mirrorcrack"
- var/next_appearance = 0
+ COOLDOWN_DECLARE(next_appearance)
/datum/action/innate/appear/Activate(died = FALSE)
var/mob/living/simple_animal/hostile/double/doppelganger = owner
var/turf/M = get_turf(doppelganger.mirror)
- if(next_appearance > world.time)
+ if(!COOLDOWN_FINISHED(src, next_appearance))
to_chat(doppelganger, span_warning("You can't leave the mirror yet!"))
return
if(doppelganger.mirror.original == null)
@@ -256,25 +256,25 @@
doppelganger.hibernating = FALSE
doppelganger.mirror.update_icon()
if(died == TRUE)
- next_appearance = world.time + RESET_TIME
+ COOLDOWN_START(src, next_appearance, COOLDOWN_REAPPEAR)
return
doppelganger.forceMove(M)
doppelganger.appearance = doppelganger.mirror.original.appearance
doppelganger.alpha = 130
-#define SWAP_TIME 15 SECONDS
+#define COOLDOWN_SPOTSWAP 15 SECONDS
/datum/action/innate/swap
name = "Swap"
button_icon = 'icons/mob/actions/actions_minor_antag.dmi'
button_icon_state = "separate"
- var/next_swap = 0
+ COOLDOWN_DECLARE(next_swap)
/datum/action/innate/swap/Activate(died = FALSE)
var/mob/living/simple_animal/hostile/double/doppelganger = owner
var/turf/going = get_turf(doppelganger.mirror)
var/turf/doppspot = get_turf(doppelganger)
- if(next_swap > world.time)
+ if(!COOLDOWN_FINISHED(src, next_swap))
to_chat(doppelganger, span_warning("You can't exchange locations yet!"))
return
if(!isturf(doppelganger.loc)) //so it's not used from inside the mirror
@@ -285,7 +285,7 @@
if(istype(doppspot, /turf/open/lava))
to_chat(doppelganger, span_warning("You probably shouldn't risk the mirror falling into lava."))
return
- next_swap = world.time + SWAP_TIME
+ COOLDOWN_START(src, next_swap, COOLDOWN_SPOTSWAP)
doppelganger.forceMove(going)
doppelganger.mirror.original.forceMove(doppspot)
playsound(going, 'sound/effects/bamf.ogg', 50)
From 2f3b79e27111faee0d4a25378c707d7da0fc4f0f Mon Sep 17 00:00:00 2001
From: LazennG <58535870+LazennG@users.noreply.github.com>
Date: Tue, 30 Apr 2024 01:28:02 -0700
Subject: [PATCH 8/9] think i removed correctly
---
yogstation/code/modules/mining/lavaland/doppelmirror.dm | 3 +++
1 file changed, 3 insertions(+)
diff --git a/yogstation/code/modules/mining/lavaland/doppelmirror.dm b/yogstation/code/modules/mining/lavaland/doppelmirror.dm
index 38c9191574c1..a9e11fd5a295 100644
--- a/yogstation/code/modules/mining/lavaland/doppelmirror.dm
+++ b/yogstation/code/modules/mining/lavaland/doppelmirror.dm
@@ -53,6 +53,9 @@
/obj/item/dopmirror/Destroy()
to_chat(reflected, span_userdanger("Your world shatters."))
+ reflected.jumpback.Remove(reflected)
+ reflected.appear.Remove(reflected)
+ reflected.swap.Remove(reflected)
qdel(reflected)
return ..()
From e88b001177c1c0f0b1b945eb35c2d7c93bd85f1a Mon Sep 17 00:00:00 2001
From: LazennG <58535870+LazennG@users.noreply.github.com>
Date: Fri, 3 May 2024 19:18:52 -0700
Subject: [PATCH 9/9] next review in another week
---
.../code/modules/mining/lavaland/doppelmirror.dm | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/yogstation/code/modules/mining/lavaland/doppelmirror.dm b/yogstation/code/modules/mining/lavaland/doppelmirror.dm
index a9e11fd5a295..9ddd50f45dcc 100644
--- a/yogstation/code/modules/mining/lavaland/doppelmirror.dm
+++ b/yogstation/code/modules/mining/lavaland/doppelmirror.dm
@@ -53,9 +53,6 @@
/obj/item/dopmirror/Destroy()
to_chat(reflected, span_userdanger("Your world shatters."))
- reflected.jumpback.Remove(reflected)
- reflected.appear.Remove(reflected)
- reflected.swap.Remove(reflected)
qdel(reflected)
return ..()
@@ -187,6 +184,16 @@
appear.Activate(died = TRUE)
return FALSE // want the way to kill it being linked directly to the mirror
+/mob/living/simple_animal/hostile/double/Destroy()
+ jumpback.Remove(src)
+ appear.Remove(src)
+ swap.Remove(src)
+ qdel(jumpback)
+ qdel(appear)
+ qdel(swap)
+ . = ..()
+
+
/mob/living/simple_animal/hostile/double/Life()
if(hibernating == TRUE)