diff --git a/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm b/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm
index 23bc29d296..92a446eb3c 100644
--- a/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm
+++ b/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm
@@ -185,6 +185,8 @@
H.toggle_hud_vis()
H.stop_sound_channel(CHANNEL_PREYLOOP)
H.add_modifier(/datum/modifier/dark_respite, 10 MINUTES)
+ H.muffled = FALSE
+ H.forced_psay = FALSE
spawn(5 MINUTES)
diff --git a/code/modules/mob/living/carbon/human/species/shadekin/shadekin_abilities.dm b/code/modules/mob/living/carbon/human/species/shadekin/shadekin_abilities.dm
index 27ec88fa45..5480955a87 100644
--- a/code/modules/mob/living/carbon/human/species/shadekin/shadekin_abilities.dm
+++ b/code/modules/mob/living/carbon/human/species/shadekin/shadekin_abilities.dm
@@ -5,6 +5,21 @@
return TRUE
return ..()
+//CHOMPEdit Start - General ability check
+/mob/living/carbon/human/proc/shadekin_ability_check()
+ var/datum/species/shadekin/SK = species
+ if(!istype(SK))
+ to_chat(src, "Only a shadekin can use that!")
+ return FALSE
+ else if(stat)
+ to_chat(src, "Can't use that ability in your state!")
+ return FALSE
+ else if((ability_flags & AB_DARK_RESPITE || has_modifier_of_type(/datum/modifier/dark_respite)) && !(ability_flags & AB_PHASE_SHIFTED))
+ to_chat(src, "You can't use that so soon after an emergency warp!")
+ return FALSE
+ return TRUE
+//CHOMPEdit End
+
/////////////////////
/// PHASE SHIFT ///
/////////////////////
@@ -80,6 +95,7 @@
var/datum/species/shadekin/SK = species
+ /* CHOMPEdit start - general shadekin ability check
if(!istype(SK))
to_chat(src, "Only a shadekin can use that!")
return FALSE
@@ -90,7 +106,10 @@
else if((ability_flags & AB_DARK_RESPITE || has_modifier_of_type(/datum/modifier/dark_respite)) && !(ability_flags & AB_PHASE_SHIFTED))
to_chat(src, "You can't use that so soon after an emergency warp!")
return FALSE
- //CHOMPEdit End
+ */
+ if(!shadekin_ability_check())
+ return FALSE
+ //CHOMPEdit End
//CHOMPEdit Start - Prevent bugs when spamming phase button
else if(SK.doing_phase)
to_chat(src, "You are already trying to phase!")
@@ -279,6 +298,7 @@
var/ability_cost = 50
+ /* CHOMPEdit start - general shadekin ability check
var/datum/species/shadekin/SK = species
if(!istype(SK))
to_chat(src, "Only a shadekin can use that!")
@@ -287,10 +307,13 @@
to_chat(src, "Can't use that ability in your state!")
return FALSE
//CHOMPEdit Start - Dark Respite
- else if(ability_flags & AB_DARK_RESPITE || has_modifier_of_type(/datum/modifier/dark_respite))
+ else if((ability_flags & AB_DARK_RESPITE || has_modifier_of_type(/datum/modifier/dark_respite)) && !(ability_flags & AB_PHASE_SHIFTED))
to_chat(src, "You can't use that so soon after an emergency warp!")
return FALSE
- //CHOMPEdit End
+ */
+ if(!shadekin_ability_check())
+ return FALSE
+ //CHOMPEdit End
else if(shadekin_get_energy() < ability_cost)
to_chat(src, "Not enough energy for that ability!")
return FALSE
@@ -353,6 +376,7 @@
var/ability_cost = 25
+ /* CHOMPEdit start - general shadekin ability check
var/datum/species/shadekin/SK = species
if(!istype(SK))
to_chat(src, "Only a shadekin can use that!")
@@ -361,10 +385,13 @@
to_chat(src, "Can't use that ability in your state!")
return FALSE
//CHOMPEdit Start - Dark Respite
- else if(ability_flags & AB_DARK_RESPITE || has_modifier_of_type(/datum/modifier/dark_respite))
+ else if((ability_flags & AB_DARK_RESPITE || has_modifier_of_type(/datum/modifier/dark_respite)) && !(ability_flags & AB_PHASE_SHIFTED))
to_chat(src, "You can't use that so soon after an emergency warp!")
return FALSE
- //CHOMPEdit End
+ */
+ if(!shadekin_ability_check())
+ return FALSE
+ //CHOMPEdit End
else if(shadekin_get_energy() < ability_cost)
to_chat(src, "Not enough energy for that ability!")
return FALSE
@@ -426,6 +453,7 @@
var/ability_cost = 100
+ /* CHOMPEdit start - general shadekin ability check
var/datum/species/shadekin/SK = species
if(!istype(SK))
to_chat(src, "Only a shadekin can use that!")
@@ -433,12 +461,14 @@
else if(stat)
to_chat(src, "Can't use that ability in your state!")
return FALSE
- else if(shadekin_get_energy() < ability_cost)
- to_chat(src, "Not enough energy for that ability!")
- return FALSE
- else if(ability_flags & AB_DARK_RESPITE || has_modifier_of_type(/datum/modifier/dark_respite))
+ //CHOMPEdit Start - Dark Respite
+ else if((ability_flags & AB_DARK_RESPITE || has_modifier_of_type(/datum/modifier/dark_respite)) && !(ability_flags & AB_PHASE_SHIFTED))
to_chat(src, "You can't use that so soon after an emergency warp!")
return FALSE
+ */
+ if(!shadekin_ability_check())
+ return FALSE
+ //CHOMPEdit End
else if(ability_flags & AB_PHASE_SHIFTED)
to_chat(src, "You can't use that while phase shifted!")
return FALSE
@@ -484,7 +514,7 @@
template.annihilate_plants(deploy_location)
template.load(deploy_location, centered = TRUE)
template.update_lighting(deploy_location)
- ability_flags &= AB_DARK_TUNNEL
+ ability_flags |= AB_DARK_TUNNEL
shadekin_adjust_energy(-(ability_cost - 10)) //Leaving enough energy to actually activate the portal
return TRUE
else
diff --git a/maps/southern_cross/southern_cross_overrides.dm b/maps/southern_cross/southern_cross_overrides.dm
index 75600c6fa2..79edece64d 100644
--- a/maps/southern_cross/southern_cross_overrides.dm
+++ b/maps/southern_cross/southern_cross_overrides.dm
@@ -17,6 +17,13 @@
. = ..()
blacklisted_areas = typecacheof(list(/area/centcom, /area/shadekin, /area/vr))
+/mob/living/carbon/human/shadekin_ability_check()
+ . = ..()
+ if(. && istype(get_area(src), /area/vr))
+ to_chat(src, "The VR systems cannot comprehend this power! This is useless to you!")
+ . = FALSE
+
+
/obj/item/weapon/disposable_teleporter/attack_self(mob/user as mob)//Prevents people from using technomancer gear to escape to station from the VR pods.
if(istype(get_area(user), /area/vr))
to_chat(user, "\The [src] does not appear to work in VR! This is useless to you!")