Skip to content

Commit

Permalink
Feast of Owls Heretic Ritual : Forsake your ascension (#83769) (#2427)
Browse files Browse the repository at this point in the history
This adds a simple ritual that let's a heretic forsake their ascension
for immediate power - 5 knowledge points.

Heretic suffers from lack of gimmicks and it's not really because of
lack of tools that could support them, but rather due to heretics going
straight for ascension (who can blame them), this ritual allows a
heretic to restrict themself from ascending and in exchange gain a
sizeable amount of research points. Not only that, but this will also
help with people learning heretic, as it allows a new player to jump
immediately into heretic without the struggle of early game (the
struggle of early-game justifies late-game power, by rejecting late-game
power heretic gets a jump-start with points.)

:cl:
add: Adds Feast of Owls ritual to heretic which allows one to forsake
their ascension in exchange for immediate power.
/:cl:

---------

Co-authored-by: Djiq <[email protected]>
Co-authored-by: carlarctg <[email protected]>
  • Loading branch information
3 people authored Jul 21, 2024
1 parent a88535b commit 2196c22
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 1 deletion.
7 changes: 6 additions & 1 deletion code/modules/antagonists/heretic/heretic_antag.dm
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@
var/static/list/scribing_tools = typecacheof(list(/obj/item/pen, /obj/item/toy/crayon))
/// A blacklist of turfs we cannot scribe on.
var/static/list/blacklisted_rune_turfs = typecacheof(list(/turf/open/space, /turf/open/openspace, /turf/open/lava, /turf/open/chasm))
/// Wether we are allowed to ascend
var/feast_of_owls = FALSE
/// Static list of what each path converts to in the UI (colors are TGUI colors)
var/static/list/path_to_ui_color = list(
PATH_START = "grey",
Expand Down Expand Up @@ -485,7 +487,8 @@
succeeded = FALSE
parts += "<b>Objective #[count]</b>: [objective.explanation_text] [objective.get_roundend_success_suffix()]"
count++

if(feast_of_owls)
parts += span_greentext("Ascension Forsaken")
if(ascended)
parts += span_greentext(span_big("THE HERETIC ASCENDED!"))

Expand Down Expand Up @@ -694,6 +697,8 @@
/datum/antagonist/heretic/proc/can_ascend()
if(!can_assign_self_objectives)
return FALSE // We spurned the offer of the Mansus :(
if(feast_of_owls)
return FALSE // We sold our ambition for immediate power :/
for(var/datum/objective/must_be_done as anything in objectives)
if(!must_be_done.check_completion())
return FALSE
Expand Down
25 changes: 25 additions & 0 deletions code/modules/antagonists/heretic/knowledge/starting_lore.dm
Original file line number Diff line number Diff line change
Expand Up @@ -298,3 +298,28 @@ GLOBAL_LIST_INIT(heretic_start_knowledge, initialize_starting_knowledge())
body.do_jitter_animation()
body.visible_message(span_danger("An awful ripping sound is heard as [ripped_thing]'s [exterior_text] is ripped straight out, wrapping around [le_book || "the book"], turning into an eldritch shade of blue!"))
return ..()

/datum/heretic_knowledge/feast_of_owls
name = "Feast of Owls"
desc = "Allows you to undergo a ritual that gives you 5 knowledge points but locks you out of ascension. This can only be done once and cannot be reverted."
gain_text = "Under the soft glow of unreason there is a beast that stalks the night. I shall bring it forth and let it enter my presence. It will feast upon my amibitions and leave knowledge in its wake."
route = PATH_START
required_atoms = list()

/datum/heretic_knowledge/feast_of_owls/can_be_invoked(datum/antagonist/heretic/invoker)
return !invoker.feast_of_owls

/datum/heretic_knowledge/feast_of_owls/on_finished_recipe(mob/living/user, list/selected_atoms, turf/loc)
var/alert = tgui_alert(user, "Do you really want to forsake your ascension? This action cannot be reverted.", "Feast of Owls", list("Yes, I'm sure!", "No"), 30 SECONDS)
if(alert != "Yes, I'm sure!")
return FALSE
user.set_temp_blindness(5 SECONDS)
user.AdjustParalyzed(5 SECONDS)
var/datum/antagonist/heretic/heretic_datum = IS_HERETIC(user)
for(var/i in 0 to 4)
user.emote("scream")
playsound(loc, 'sound/items/eatfood.ogg', 100, TRUE)
heretic_datum.knowledge_points++
sleep(1 SECONDS)
to_chat(user, span_danger("You feel different..."))
heretic_datum.feast_of_owls = TRUE

0 comments on commit 2196c22

Please sign in to comment.