From 8a8fac1d078b99c7829d3d2575b7100ff275ff68 Mon Sep 17 00:00:00 2001 From: Djiq <42111655+EdgeLordExe@users.noreply.github.com> Date: Thu, 20 Jun 2024 20:13:13 +0200 Subject: [PATCH] Feast of Owls Heretic Ritual : Forsake your ascension (#83769) ## About The Pull Request This adds a simple ritual that let's a heretic forsake their ascension for immediate power - 5 knowledge points. ## Why It's Good For The Game 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.) ## Changelog :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: carlarctg <53100513+carlarctg@users.noreply.github.com> --- .../antagonists/heretic/heretic_antag.dm | 7 +++++- .../heretic/knowledge/starting_lore.dm | 25 +++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/code/modules/antagonists/heretic/heretic_antag.dm b/code/modules/antagonists/heretic/heretic_antag.dm index 9c41c54e84e..416dbe390e1 100644 --- a/code/modules/antagonists/heretic/heretic_antag.dm +++ b/code/modules/antagonists/heretic/heretic_antag.dm @@ -56,6 +56,8 @@ var/static/list/blacklisted_rune_turfs = typecacheof(list(/turf/open/space, /turf/open/openspace, /turf/open/lava, /turf/open/chasm)) /// Controls what types of turf we can spread rust to, increases as we unlock more powerful rust abilites var/rust_strength = 0 + /// 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", @@ -478,7 +480,8 @@ succeeded = FALSE parts += "Objective #[count]: [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!")) @@ -695,6 +698,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 diff --git a/code/modules/antagonists/heretic/knowledge/starting_lore.dm b/code/modules/antagonists/heretic/knowledge/starting_lore.dm index f1b5f7f55ea..50b57fd9e96 100644 --- a/code/modules/antagonists/heretic/knowledge/starting_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/starting_lore.dm @@ -293,3 +293,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