From 7824a0497544f3261ca6eb5ca9dbd79bab92c2cb Mon Sep 17 00:00:00 2001 From: Geeves Date: Tue, 2 Jun 2020 11:55:19 +0200 Subject: [PATCH] Diona Cult Manifestation Tweak (#8986) --- aurorastation.dme | 1 + code/game/gamemodes/cult/runes/manifest_ghost.dm | 13 +++++++------ .../living/carbon/human/species/species_damage.dm | 11 +++++++++++ html/changelogs/geeves-diona_ruin_everything.yml | 6 ++++++ 4 files changed, 25 insertions(+), 6 deletions(-) create mode 100644 code/modules/mob/living/carbon/human/species/species_damage.dm create mode 100644 html/changelogs/geeves-diona_ruin_everything.yml 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