Skip to content

Commit

Permalink
Description tweaks and runtime fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
Ilysen committed Jul 25, 2023
1 parent f90c891 commit 1250369
Show file tree
Hide file tree
Showing 9 changed files with 33 additions and 34 deletions.
3 changes: 2 additions & 1 deletion code/game/gamemodes/cult/runes/_rune.dm
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,8 @@
words.Remove(word)
update_icon()

/// Sets up the appearance of all random runes at mapgen. Called here instead of `Initialize()` to avoid runtimes.
/// Sets up the appearance of all random runes that were placed before roundstart. Called here instead of `Initialize()` to avoid runtimes.
/hook/roundstart/proc/populate_malformed_runes()
for (var/obj/effect/rune/mapgen/M in cult.all_runes)
M.generate_words()
return TRUE
2 changes: 1 addition & 1 deletion code/game/gamemodes/cult/runes/astral_journey.dm
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
ghost.forbid_seeing_deadchat = TRUE
ghost.name = "???"
ghost.color = COLOR_LIGHT_RED
announce_ghost_joinleave(ghost, TRUE, "You feel that they had to use some [pick("dark", "black", "blood", "forgotten", "forbidden")] magic to [pick("invade","disturb","disrupt","infest","taint","spoil","blight")] this place!")
announce_ghost_joinleave(ghost, TRUE, "You feel that they had to use [pick("dark", "black", "blood", "forgotten", "forbidden")] magic to [pick("invade","disturb","disrupt","infest","taint","spoil","blight")] this place!")
START_PROCESSING(SSprocessing, src)

/obj/effect/rune/astral_journey/process()
Expand Down
2 changes: 1 addition & 1 deletion code/game/gamemodes/cult/runes/communicate.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/obj/effect/rune/communicate
rune_name = "Communicate"
rune_desc = "Allows you to communicate with other cultists by speaking aloud next to the rune. Can be muted or unmuted through invocation."
rune_desc = "Allows you to communicate with other cultists by speaking or whispering aloud next to the rune. The rune can be muted or unmuted by invoking it."
talisman_path = /obj/item/paper/talisman/communicate
circle_words = list(CULT_WORD_SELF, CULT_WORD_OTHER, CULT_WORD_TECHNOLOGY)
invocation = "O bidai nabora se'sma!"
Expand Down
25 changes: 12 additions & 13 deletions code/game/gamemodes/cult/runes/convert.dm
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
break
var/datum/gender/G = gender_datums[converting.get_visible_gender()]
converting.visible_message(
SPAN_DANGER("[converting] writhes in agony as the markings below [G.him] glow a sullen, bloody red."),
SPAN_DANGER("[converting] writhes as the markings below [G.him] glow a sullen, bloody red."),
SPAN_DANGER("AAAAAAHHHH-")
)
converting.emote("scream")
Expand All @@ -42,15 +42,15 @@
)
return
else
to_chat(user, SPAN_NOTICE("The ritual is begun. You must keep [converting] atop the rune until [G.him] succumb[G.s] to the Geometer's influence... or die from its revelation."))
to_chat(user, SPAN_NOTICE("The ritual is begun. You must keep [converting] atop the rune until [G.he] succumb[G.s] to the Geometer's influence - or die[G.s] from the revelation."))
impudence = 1
START_PROCESSING(SSprocessing, src)
process()

/obj/effect/rune/convert/process()
if (!can_convert(converting) || !cult.can_become_antag(converting.mind) || get_turf(converting) != get_turf(src))
if (converting)
to_chat(converting, SPAN_DANGER("And then, just like that, it was gone. The blackness slowly recedes, and you are yourself again. It has taken something precious from you."))
to_chat(converting, SPAN_DANGER("And then, just like that, it was gone. The blackness slowly recedes, and you are yourself again. Are you still whole?"))
converting = null
waiting_for_input = FALSE
STOP_PROCESSING(SSprocessing, src)
Expand All @@ -64,29 +64,28 @@
var/choice = alert(converting, "Submit to the presence invading your head?", "Submit to Nar-Sie", "Submit!", "Resist!")
waiting_for_input = FALSE
if (choice == "Submit!")
cult.add_antagonist(converting.mind)
converting.hallucination = 0
to_chat(converting, SPAN_OCCULT("Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible truth. The veil of reality has been ripped away and in the festering wound left behind something sinister takes root."))
to_chat(converting, SPAN_OCCULT("Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back."))
cult.add_antagonist(converting.mind)
converting.hallucination = 0
converting = null
STOP_PROCESSING(SSprocessing, src)
if (impudence)
converting.take_overall_damage(0, min(5 * impudence, 20))
converting.apply_effect(min(5 * impudence, 20), AGONY)
switch (converting.getFireLoss())
if (0 to 25)
to_chat(converting, SPAN_DANGER("You feel like every part of you is on fire as you force yourself to resist the corruption invading every corner of your mind."))
if(25 to 45)
to_chat(converting, SPAN_DANGER("Everything is so, so hot. It feels like it's inside your body. Inside your <i>soul</i>."))
if(45 to 75)
to_chat(converting, SPAN_DANGER("Flickering images of a vast, vast, dark thing engulf your vision. Your will is crumbling."))
if (45 to 75)
to_chat(converting, SPAN_DANGER("Flickering images of a vast, vast, dark thing engulf your vision. Everything is so, so hot."))
converting.apply_effect(rand(1, 10), STUTTER)
if(75 to 100)
to_chat(converting, SPAN_DANGER("You feel like you're being cremated. Images of unspeakable horrors are bombarding the last remnants of your mental resistance."))
if (75 to 100)
to_chat(converting, SPAN_DANGER("You feel like you're being cremated. Images of unspeakable horror flicker through your senses like a slideshow."))
converting.hallucination = min(converting.hallucination + 100, 500)
converting.apply_effect(10, STUTTER)
converting.adjustBrainLoss(1)
if(100 to INFINITY)
to_chat(converting, SPAN_DANGER("You are broken. Everything is on fire. You feel yourself slipping away, drawn towards inexorable nothingness."))
if (100 to INFINITY)
to_chat(converting, SPAN_DANGER("Everything is on fire. You feel yourself coming apart, drawn towards inexorable nothingness."))
converting.hallucination = min(converting.hallucination + 100, 500)
converting.apply_effect(15, STUTTER)
converting.adjustBrainLoss(1)
Expand Down
3 changes: 2 additions & 1 deletion code/game/gamemodes/cult/runes/imbue_talisman.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/obj/effect/rune/imbue_talisman
rune_name = "Imbue Talisman"
rune_desc = "Etches the markings of a nearby rune onto a piece of paper on top of this one. Only some runes can be made into talismans."
rune_desc = "Used to create talismans. To use, place a sheet of paper onto this rune, then scribe a different type of rune adjacent to this one. Invoke this one afterwards, and the other rune will be etched onto the paper, creating a talisman out of it. Only some runes can be made into talismans."
rune_shorthand = "Used to create talismans out of sheets of paper and other runes."
circle_words = list(CULT_WORD_HELL, CULT_WORD_TECHNOLOGY, CULT_WORD_JOIN)
invocation = "H'drak v'loso, mir'kanas verbot!"

Expand Down
16 changes: 7 additions & 9 deletions code/game/gamemodes/cult/runes/raise_dead.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/obj/effect/rune/raise_dead
rune_name = "Raise Dead"
rune_desc = "This rune allows for the resurrection of any dead person. You will need a dead human body and a living human sacrifice. Make 2 raise dead runes. Put a living, awake human on top of one, and a dead body on the other one. When you invoke the rune, the life force of the living human will be transferred into the dead body, allowing a ghost standing on top of the dead body to enter it, instantly and fully healing it. Use other runes to ensure there is a ghost ready to be resurrected."
rune_desc = "This rune allows for the resurrection of a dead body. You will need two copies of this rune - place a living human on top of one to use as a sacrifice, and the corpse you wish to resurrect on the other one. If the ritual is successful, the corpse will return to life, while the sacrifice will be torn apart."
rune_shorthand = "Brings a dead body to life using the sacrifice of a living human on another copy of the rune. If the dead body is not a cultist, they will become one."
circle_words = list(CULT_WORD_BLOOD, CULT_WORD_JOIN, CULT_WORD_SELF)
invocation = "Pasnar val'keriam usinar. Savrae ines amutan. Yam'toth remium il'tarat!"
Expand Down Expand Up @@ -53,7 +53,7 @@
if (ghost)
ghost.notify_revive("The cultist [L.real_name] is attempting to raise you from the dead. Return to your body if you wish to be risen into the service of Nar-Sie!", 'sound/effects/genetics.ogg', source = src)
if (do_after(shears, 5 SECONDS, lamb, FALSE, incapacitation_flags = INCAPACITATION_NONE))
resurrect(shears, lamb)
resurrect(shears, lamb, invokers[1])
return
to_chat(L, SPAN_NOTICE("The ritual's participants must remain stationary!"))
if (shears)
Expand All @@ -75,11 +75,11 @@
shears.visible_message(SPAN_WARNING("\The [shears] drops unceremoniously to the ground."))
lamb.visible_message(
SPAN_WARNING("\The [lamb] drops unceremoniously to the ground."),
SPAN_DANGER("THe force releases its hold on you, and you fall back to the ground!")
SPAN_DANGER("The force releases its hold on you, and you fall back to the ground!")
)
playsound(shears, "bodyfall", 50, TRUE)
playsound(lamb, "bodyfall", 50, TRUE)
to_chat(invoker, SPAN_WARNING("The deceased's spirit did not return to its body. It may if you try again, or it may not."))
to_chat(invoker, SPAN_WARNING("The deceased's spirit did not return to its body. It might work if you try again, or it might not."))
return
var/datum/gender/GS = gender_datums[shears.get_visible_gender()]
lamb.visible_message(
Expand All @@ -90,13 +90,11 @@
for (var/obj/item/organ/external/E in lamb.organs)
E.droplimb(FALSE, DROPLIMB_EDGE)
shears.revive()
shears.visible_message(
SPAN_DANGER("\The [shears] convulses violently as [GS.he] suddenly comes back to life!"),
SPAN_DANGER("Life... you're alive again...")
)
shears.visible_message(SPAN_DANGER("\The [shears] convulses violently as [GS.he] suddenly comes back to life!"))
to_chat(shears, SPAN_DANGER(FONT_LARGE("You are enveloped in a burning red light, plucked from death and forced back into your corpse like a taxidermist might stuff an animal.")))
if (!iscultist(shears))
cult.add_antagonist(shears.mind)
to_chat(shears, SPAN_OCCULT("Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible truth. The veil of reality has been ripped away and in the festering wound left behind something sinister takes root."))
to_chat(shears, SPAN_OCCULT("Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back."))
cult.add_antagonist(shears.mind)
shears.flash_eyes(override_blindness_check = TRUE)
shears.Paralyse(10)
2 changes: 1 addition & 1 deletion code/game/gamemodes/cult/runes/stun.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/obj/effect/rune/stun
rune_name = "Stun"
rune_desc = "This rune is specialized for use in talismans; invoked on its own, its only effect is to slightly disorient nearby beings."
rune_desc = "This rune is specialized for use in talismans; invoked on its own, its only effect is to slightly disorient nearby beings. Cultists are also affected."
talisman_path = /obj/item/paper/talisman/stun
circle_words = list(CULT_WORD_JOIN, CULT_WORD_HIDE, CULT_WORD_TECHNOLOGY)
invocation = "Fuu ma'jin!"
Expand Down
6 changes: 3 additions & 3 deletions code/game/gamemodes/cult/runes/weapon.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/obj/effect/rune/weapon
rune_name = "Weapon"
rune_desc = "Creates a deadly blade, adept at maiming and dismemberment. Use sparingly, for the Geometer disdains bloodshed not executed at Its behest."
rune_desc = "Creates a deadly blade, adept at maiming and dismemberment. Use sparingly, for the Geometer disdains bloodshed not executed at Its request."
circle_words = list(CULT_WORD_HELL, CULT_WORD_DESTROY, CULT_WORD_OTHER)
invocation = "Sa tatha rajin!"

Expand All @@ -9,7 +9,7 @@
var/obj/item/melee/cultblade/C = new (get_turf(src))
L.put_in_active_hand(C)
L.visible_message(
SPAN_DANGER("The runes coalesce into a long, cruel blade, which [L.get_active_hand() == C ? "\the [L] picks up" : "settles on the floor"]."),
SPAN_DANGER("The runes coalesce into a serrated blade[L.get_active_hand() == C ? ", which you pick up" : ""].")
SPAN_DANGER("The runes coalesce into a long and cruel blade, which [L.get_active_hand() == C ? "\the [L] picks up" : "settles on the floor"]."),
SPAN_DANGER("The runes coalesce into a long and cruel blade[L.get_active_hand() == C ? ", which you pick up" : ""].")
)
qdel(src)
8 changes: 4 additions & 4 deletions code/game/gamemodes/cult/talismans/stun.dm
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
/obj/item/paper/talisman/stun
talisman_name = "Stun"
talisman_desc = "Forces the concentrated energy of a stun rune into a struck target, immediately knocking them to the ground. Humans will be prevented from speaking for a time."
tome_desc = "Forces concentrated energy into a struck target, knocking them to the ground and preventing them from speaking. Must be on Harm intent to use."
invocation = "Dream sign 'Evil Sealing Talisman'!" // I think this is a touhou reference
talisman_desc = "Forces concentrated energy into a struck target, immediately knocking them to the ground. Humans will be prevented from speaking for a time. This will be obvious to anyone nearby."
tome_desc = "Forces concentrated energy into a struck target, knocking them to the ground and preventing them from speaking. This is obvious to anyone nearby."
invocation = "Dream sign 'Evil Sealing Talisman'!" // I think this is a touhou reference, but I'm not sure - I kept it from the old implementation just in case
whispered = FALSE

/obj/item/paper/talisman/stun/attack_self(mob/living/user)
if (iscultist(user))
to_chat(user, SPAN_NOTICE("To use this talisman, attack someone with it."))
to_chat(user, SPAN_NOTICE("To use this talisman, attack someone with it while on Harm intent."))
return

/obj/item/paper/talisman/stun/attack(mob/living/carbon/T, mob/living/user)
Expand Down

0 comments on commit 1250369

Please sign in to comment.