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 6207776
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 from the dead fully healthy, 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 6207776

Please sign in to comment.