Skip to content

Commit 317d2a3

Browse files
author
Ava
committed
Polishing and consistency
1 parent de64c7d commit 317d2a3

File tree

11 files changed

+31
-21
lines changed

11 files changed

+31
-21
lines changed

code/game/gamemodes/cult/arcane_tome.dm

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@
9090
return
9191
. = ..()
9292

93+
/// Causes `user` to attempt to create a rune of type `rune_type`, using their blood (or equivalent) as the medium.
94+
/// Inflicts a small amount of damage to the hands and creates blood decals in the process that remain if interrupted.
9395
/obj/item/arcane_tome/proc/scribe_rune(mob/living/user, obj/effect/rune_type)
9496
if (locate(/obj/effect/rune) in get_turf(user))
9597
to_chat(user, SPAN_WARNING("You can only fit one rune on any given space."))

code/game/gamemodes/cult/cultify/mob.dm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
G.invisibility = 0
2929
to_chat(G, "<span class='sinister'>You feel relieved as what's left of your soul finally escapes its prison of flesh.</span>")
3030

31-
cult.harvested += G.mind
31+
LAZYADD(cult.harvested, G.mind)
3232
else
3333
dust()
3434

code/game/gamemodes/cult/runes/_rune.dm

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -78,23 +78,24 @@
7878
/**
7979
* Checks if a given mob can participate as an invoker for this rune.
8080
*
81-
* By default, a mob must be a human, a cultist, and able to speak.
81+
* By default, a mob must be a human or construct, a cultist, and able to speak.
8282
* Arguments:
8383
* * `invoker` - The mob being checked as a possible contributor
8484
* * `silent` - If non-true, shows an error message to the mob being checked. Defaults to `TRUE`
8585
*/
8686
/obj/effect/rune/proc/can_contribute(mob/living/invoker, silent = TRUE)
8787
var/fail_message
88-
if (!ishuman(invoker))
89-
return
90-
var/mob/living/carbon/human/H = invoker
91-
if (!iscultist(H))
88+
if (!iscultist(invoker))
9289
fail_message = "You can't mouth the arcane scratchings without fumbling over them."
93-
else if (H.is_muzzled() || H.silent || (H.sdisabilities & MUTE))
94-
fail_message = "You can't speak the words of \the [src]."
90+
if (ishuman(invoker))
91+
var/mob/living/carbon/human/H = invoker
92+
if (H.is_muzzled() || H.silent || (H.sdisabilities & MUTE))
93+
fail_message = "You can't speak the words of \the [src]."
94+
else if (!istype(invoker, /mob/living/simple_mob/construct))
95+
fail_message = "Your mind cannot comprehend the words of \the [src]."
9596
if (fail_message)
9697
if (!silent)
97-
to_chat(H, SPAN_WARNING(fail_message))
98+
to_chat(invoker, SPAN_WARNING(fail_message))
9899
return
99100
return TRUE
100101

code/game/gamemodes/cult/runes/sacrifice.dm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@
6262
if (sacrificing.mind && cult.sacrifice_target == sacrificing.mind)
6363
for (var/mob/living/C in invokers)
6464
to_chat(C, SPAN_OCCULT("The Geometer of Blood is sated. Your objective is now complete."))
65-
cult.sacrificed += sacrificing
65+
LAZYADD(cult.sacrificed, sacrificing)
6666
else
6767
for (var/mob/living/C in invokers)
6868
to_chat(C, SPAN_OCCULT("The Geometer of Blood feasts on your sacrifice. You have pleased It."))

code/game/gamemodes/cult/runes/tear_reality.dm

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
if (narsie_cometh)
1111
to_chat(invoker, SPAN_WARNING("The Geometer has already been called forth."))
1212
return
13+
else if (!cult.allow_narsie)
14+
to_chat(invoker, SPAN_WARNING("The Geometer does not wish the veil destroyed here this day."))
15+
return
1316
return TRUE
1417

1518
/obj/effect/rune/tear_reality/invoke(list/invokers)

code/game/gamemodes/cult/runes/teleport.dm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
/obj/effect/rune/teleport/examine(mob/user, infix, suffix)
1010
. = ..()
1111
if (iscultist(user) || isobserver(user))
12-
. += SPAN_DANGER("This rune has a key word of \"[key_word]\".")
12+
. += SPAN_DANGER("This rune's key word is \"[key_word]\".")
1313

1414
/obj/effect/rune/teleport/after_scribe(mob/living/author)
1515
var/word = input(author, "Choose a key word for this rune.", rune_name) as null|anything in cult.english_words

code/game/gamemodes/cult/talismans/_talisman.dm

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
return
3636
return ..()
3737

38+
/// The per-type proc for the talisman actually doing something on activation. This is what you want to override.
39+
/// Some talismans (like Stun) have their own logic and thus ignore this proc.
3840
/obj/item/paper/talisman/proc/invoke(mob/living/user)
3941
return
4042

code/game/gamemodes/cult/talismans/armor.dm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@
1212
var/datum/gender/G = gender_datums[user.get_visible_gender()]
1313
user.visible_message(
1414
SPAN_DANGER("\The [src] expands to briefly envelop \the [user]'s body before [G.he] tears through it in a gushing spurt of black sludge."),
15-
SPAN_DANGER("The talisman expands to wrap you tightly, and you allow it to shroud you with tainted magmellite before you tear through the un-paper.")
15+
SPAN_NOTICE("The talisman expands to wrap you tightly, and you allow it to shroud you with tainted magmellite before you tear through the un-paper.")
1616
)

code/game/gamemodes/cult/talismans/teleport.dm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
/obj/item/paper/talisman/teleport/examine(mob/user)
99
. = ..()
1010
if (iscultist(user) || isobserver(user))
11-
. += SPAN_OCCULT("Its key word is \"[key_word]\".")
11+
. += SPAN_DANGER("This talisman's key word is \"[key_word]\".")
1212

1313
/obj/item/paper/talisman/teleport/invoke(mob/living/user)
1414
var/list/runes

code/game/gamemodes/objective.dm

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -861,7 +861,7 @@ var/global/list/all_objectives = list()
861861
if(target) explanation_text = "Sacrifice [target.name], the [target.assigned_role]. You will need the sacrifice rune (Hell blood join) and three acolytes to do so."
862862

863863
/datum/objective/cult/sacrifice/check_completion()
864-
return (target && cult && !cult.sacrificed.Find(target))
864+
return (target && cult && LAZYFIND(cult.sacrificed, target))
865865

866866
/datum/objective/rev/find_target()
867867
..()
@@ -896,4 +896,3 @@ var/global/list/all_objectives = list()
896896
rval = 2
897897
return 0
898898
return rval
899-

code/modules/antagonist/station/cultist.dm

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,16 @@ var/global/datum/antagonist/cultist/cult
3131
initial_spawn_target = 6
3232
antaghud_indicator = "hudcultist"
3333

34-
var/allow_narsie = 1
34+
/// Whether or not the Tear Reality rune can be used.
35+
var/allow_narsie = TRUE
36+
/// The mind datum of the mob that this cult must sacrifice to fulfill their objective.
3537
var/datum/mind/sacrifice_target
36-
var/list/sacrificed = list()
37-
var/list/harvested = list()
38+
/// A list of all mobs that this cult has sacrificed. Uses lazylist macros.
39+
var/list/sacrificed
40+
/// A list of all non-cultists that have been killed by Nar-Sie (in the rare event that an admin spawns it or something.) Uses lazylist macros.
41+
var/list/harvested
42+
/// A list of all runes in the game world. Uses lazylist macros.
43+
var/list/all_runes
3844

3945
/**
4046
* So here's how the cult vocabulary works:
@@ -48,9 +54,6 @@ var/global/datum/antagonist/cultist/cult
4854
var/list/english_words = list(CULT_WORD_BLOOD, CULT_WORD_DESTROY, CULT_WORD_HELL, CULT_WORD_HIDE, CULT_WORD_JOIN, CULT_WORD_OTHER, CULT_WORD_SELF, CULT_WORD_SEE, CULT_WORD_TECHNOLOGY, CULT_WORD_TRAVEL)
4955
var/list/cult_words = list(CULT_WORD_BALAQ, CULT_WORD_CERTUM, CULT_WORD_EGO, CULT_WORD_GEERI, CULT_WORD_IRE, CULT_WORD_KARAZET, CULT_WORD_JATKAA, CULT_WORD_MGAR, CULT_WORD_NAHLIZET, CULT_WORD_VERI)
5056

51-
/// A list of all runes in the game world.
52-
var/list/all_runes
53-
5457
/datum/antagonist/cultist/New()
5558
..()
5659
cult = src

0 commit comments

Comments
 (0)