From b17541e91decb83866ecd454d1acd0ea132f323c Mon Sep 17 00:00:00 2001 From: WolvesAndOwls <79985892+WolvesAndOwls@users.noreply.github.com> Date: Fri, 10 Jul 2026 16:27:38 -0500 Subject: [PATCH] Capture cryatal tweaks (#19593) * Fix mob eating food pathway * Remove redundant alert * Moved eating message to better location * Add capturing edge case * Fix Capture crystal OOC Escape to stop CC ruining. * Better OOC Fix for Caprture crystals * Logic check * Sync changes on branch Capture-crystal-tweaks * Manual merge with upstream * Added a very neccesary and time consuming "Space" * 4 more Spaces added to the commit * Cleared up admin log * Spellcheck --- code/game/objects/items/weapons/capture_crystal.dm | 11 +++++++++-- code/modules/vore/eating/living_vr.dm | 3 +-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/code/game/objects/items/weapons/capture_crystal.dm b/code/game/objects/items/weapons/capture_crystal.dm index 439e1084ec5..d6572ba8000 100644 --- a/code/game/objects/items/weapons/capture_crystal.dm +++ b/code/game/objects/items/weapons/capture_crystal.dm @@ -337,8 +337,15 @@ else if(!M.capture_crystal || M.capture_caught) to_chat(U, span_warning("This creature is not suitable for capture.")) playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1) - else if(tgui_alert(M, "Would you like to be caught by in [src] by [U]? You will be bound to their will.", "Become Caught",list("No","Yes")) == "Yes") - if(tgui_alert(M, "Are you really sure? The only way to undo this is to OOC escape while you're in the crystal.", "Become Caught", list("No","Yes")) == "Yes") + //What if someone slips and tries to capture themselves? + else if(M == U && tgui_alert(M, "Would you like to be caught by [src]? You will be bound to the will of whomever claims ownership of the crystal.", "Become Caught",list("No","Yes")) == "Yes") + if(tgui_alert(M, "Are you really sure? The only way to undo this is to OOC escape while you're in the crystal.", "Become Caught", list("No", "Yes")) == "Yes") + log_admin("[key_name(M)] has, by their own volition and discretion, decided to catch themselves with [src].") + capture(M, null) + return + //Make sure the player can opt out of getting captured + else if(M != U && tgui_alert(M, "Would you like to be caught in [src] by [U]? You will be bound to their will.", "Become Caught",list("No", "Yes")) == "Yes") + if(tgui_alert(M, "Are you really sure? The only way to undo this is to OOC escape while you're in the crystal.", "Become Caught", list("No", "Yes")) == "Yes") log_admin("[key_name(M)] has agreed to become caught by [key_name(U)].") capture(M, U) recall(U) diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index 02bd2b32ba9..22cdcb3f40a 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -580,8 +580,7 @@ else if(iscapturecrystal(loc)) var/obj/item/capture_crystal/crystal = loc crystal.unleash() - crystal.bound_mob = null - crystal.bound_mob = capture_crystal = 0 + crystal.mob_was_deleted() clear_fullscreen(ATOM_BELLY_FULLSCREEN) log_and_message_admins("used the OOC escape button to get out of [crystal] owned by [crystal.owner]. [ADMIN_FLW(src)]", src)