diff --git a/aurorastation.dme b/aurorastation.dme
index c12f53a3f30..93b27b4818d 100644
--- a/aurorastation.dme
+++ b/aurorastation.dme
@@ -1928,6 +1928,7 @@
#include "code\modules\mob\living\carbon\human\whisper.dm"
#include "code\modules\mob\living\carbon\human\species\species.dm"
#include "code\modules\mob\living\carbon\human\species\species_attack.dm"
+#include "code\modules\mob\living\carbon\human\species\species_damage.dm"
#include "code\modules\mob\living\carbon\human\species\species_hud.dm"
#include "code\modules\mob\living\carbon\human\species\outsider\shadow.dm"
#include "code\modules\mob\living\carbon\human\species\outsider\undead.dm"
diff --git a/code/game/gamemodes/cult/runes/manifest_ghost.dm b/code/game/gamemodes/cult/runes/manifest_ghost.dm
index 66f3bdc552c..ec66cf33c4d 100644
--- a/code/game/gamemodes/cult/runes/manifest_ghost.dm
+++ b/code/game/gamemodes/cult/runes/manifest_ghost.dm
@@ -1,7 +1,7 @@
/obj/effect/rune/manifest
var/mob/living/carbon/human/apparition/apparition
-/obj/effect/rune/manifest/do_rune_action(mob/living/user)
+/obj/effect/rune/manifest/do_rune_action(mob/living/carbon/user)
if(!iscarbon(user))
to_chat(user, span("warning", "Your primitive form cannot use this rune!"))
if(apparition)
@@ -45,17 +45,18 @@
log_and_message_admins("used a manifest rune.")
// The cultist doesn't have to stand on the rune, but they will continually take damage for as long as they have a summoned ghost
- while(user?.stat == CONSCIOUS && user.client)
- user.take_organ_damage(1, 0)
+ var/can_manifest = TRUE
+ while(user?.stat == CONSCIOUS && user.client && can_manifest)
+ can_manifest = user.species.take_manifest_ghost_damage(user)
sleep(30)
apparition_check()
return
/obj/effect/rune/manifest/proc/apparition_check()
if(apparition)
- apparition.visible_message("[apparition] slowly dissipates into dust and bones.", \
- "You feel pain, as bonds formed between your soul and this homunculus break.", \
- "You hear a faint rustling.")
+ apparition.visible_message(FONT_LARGE(SPAN_WARNING("\The [apparition] slowly dissipates into dust and bones.")), \
+ FONT_LARGE(SPAN_WARNING("You feel pain, as bonds formed between your soul and this homunculus break.")), \
+ SPAN_WARNING("You hear a faint rustling."))
apparition.dust()
apparition = null
diff --git a/code/modules/mob/living/carbon/human/species/species_damage.dm b/code/modules/mob/living/carbon/human/species/species_damage.dm
new file mode 100644
index 00000000000..a10b42c4b63
--- /dev/null
+++ b/code/modules/mob/living/carbon/human/species/species_damage.dm
@@ -0,0 +1,11 @@
+/datum/species/proc/take_manifest_ghost_damage(var/mob/living/carbon/C)
+ C.take_organ_damage(1, 0)
+ return TRUE
+
+/datum/species/diona/take_manifest_ghost_damage(mob/living/carbon/C)
+ C.take_organ_damage(2, 0)
+ C.adjustNutritionLoss(5)
+ if(C.nutrition <= C.max_nutrition * 0.05)
+ to_chat(C, SPAN_WARNING("We cannot support our summoned apparitions with our biomass any longer..."))
+ return FALSE
+ return TRUE
\ No newline at end of file
diff --git a/html/changelogs/geeves-diona_ruin_everything.yml b/html/changelogs/geeves-diona_ruin_everything.yml
new file mode 100644
index 00000000000..b2ed9adf63f
--- /dev/null
+++ b/html/changelogs/geeves-diona_ruin_everything.yml
@@ -0,0 +1,6 @@
+author: Geeves
+
+delete-after: True
+
+changes:
+ - rscadd: "Diona now have a biomass drain when they have apparitions summoned, they also take slightly more damage."
\ No newline at end of file