diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm index 6aefce0a6a..c1aed96d61 100644 --- a/code/datums/helper_datums/teleport.dm +++ b/code/datums/helper_datums/teleport.dm @@ -142,7 +142,8 @@ // Can most things breathe? if(trace_gases) continue - if(A.get_moles(/datum/gas/oxygen) < 16) + var/oxy_moles = A.get_moles(/datum/gas/oxygen) + if(oxy_moles < 16 || oxy_moles > 50) continue if(A.get_moles(/datum/gas/plasma)) continue diff --git a/code/modules/antagonists/eldritch_cult/eldritch_book.dm b/code/modules/antagonists/eldritch_cult/eldritch_book.dm index 265f4db095..808932443f 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_book.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_book.dm @@ -89,6 +89,7 @@ var/list/lore = list() data["charges"] = charge + data["total_sacs"] = cultie.total_sacrifices for(var/X in to_know) lore = list() @@ -96,7 +97,11 @@ lore["type"] = EK.type lore["name"] = EK.name lore["cost"] = EK.cost - lore["disabled"] = EK.cost <= charge ? FALSE : TRUE + lore["sacs"] = EK.sacs_needed + if(EK.cost <= charge && cultie.total_sacrifices >= EK.sacs_needed) + lore["disabled"] = FALSE + else + lore["disabled"] = TRUE lore["path"] = EK.route lore["state"] = "Research" lore["flavour"] = EK.gain_text @@ -108,6 +113,7 @@ var/datum/eldritch_knowledge/EK = known[X] lore["name"] = EK.name lore["cost"] = EK.cost + lore["sacs"] = EK.sacs_needed lore["disabled"] = TRUE lore["path"] = EK.route lore["state"] = "Researched" diff --git a/code/modules/antagonists/eldritch_cult/eldritch_effects.dm b/code/modules/antagonists/eldritch_cult/eldritch_effects.dm index 2fbd9aa2d0..3d6059dfe3 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_effects.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_effects.dm @@ -219,7 +219,7 @@ /obj/effect/broken_illusion/Initialize() . = ..() addtimer(CALLBACK(src,.proc/show_presence),15 SECONDS) - addtimer(CALLBACK(src,.proc/remove_presence),30 SECONDS) + addtimer(CALLBACK(src,.proc/remove_presence),195 SECONDS) var/image/I = image('icons/effects/eldritch.dmi',src,null,OBJ_LAYER) I.override = TRUE diff --git a/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm b/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm index d2132be4bc..33a17c3278 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm @@ -15,6 +15,8 @@ var/gain_text = "" ///Cost of knowledge in souls var/cost = 0 + ///Required sacrifices to unlock + var/sacs_needed = 0 ///Next knowledge in the research tree var/list/next_knowledge = list() ///What knowledge is incompatible with this. This will simply make it impossible to research knowledges that are in banned_knowledge once this gets researched. @@ -230,7 +232,6 @@ atoms -= H H.gib() - /////////////// ///Base lore/// /////////////// diff --git a/code/modules/antagonists/eldritch_cult/knowledge/ash_lore.dm b/code/modules/antagonists/eldritch_cult/knowledge/ash_lore.dm index 0256382723..e453f5456d 100644 --- a/code/modules/antagonists/eldritch_cult/knowledge/ash_lore.dm +++ b/code/modules/antagonists/eldritch_cult/knowledge/ash_lore.dm @@ -109,10 +109,15 @@ gain_text = "When the Glory of the Lantern scorches and sears their skin, nothing will protect them from the ashes." desc = "Fire off five streams of fire from your hand, each setting ablaze targets hit and scorching them upon contact." cost = 2 + sacs_needed = 3 spell_to_add = /obj/effect/proc_holder/spell/pointed/nightwatchers_rite next_knowledge = list(/datum/eldritch_knowledge/final/ash_final) route = PATH_ASH +/datum/eldritch_knowledge/spell/nightwatchers_rite/on_gain(mob/user) + . = ..() + priority_announce("Large heat signatures discovered! A swelling fiery horror is coming..", sound = 'sound/misc/notice1.ogg') + /datum/eldritch_knowledge/ash_blade_upgrade name = "Fiery Blade" gain_text = "Blade in hand, he swung and swung as the ash fell from the skies. His city, his people... all burnt to cinders, and yet life still remained in his charred body." @@ -181,6 +186,7 @@ desc = "Bring 3 corpses onto a transmutation rune, you will become immune to fire, the vacuum of space, cold and other enviromental hazards and become overall sturdier to all other damages. You will gain a spell that passively creates ring of fire around you as well ,as you will gain a powerful ability that lets you create a wave of flames all around you." required_atoms = list(/mob/living/carbon/human) cost = 5 + sacs_needed = 8 route = PATH_ASH var/list/trait_list = list(TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE) diff --git a/code/modules/antagonists/eldritch_cult/knowledge/flesh_lore.dm b/code/modules/antagonists/eldritch_cult/knowledge/flesh_lore.dm index 9e71f34735..1241b504ba 100644 --- a/code/modules/antagonists/eldritch_cult/knowledge/flesh_lore.dm +++ b/code/modules/antagonists/eldritch_cult/knowledge/flesh_lore.dm @@ -217,6 +217,7 @@ desc = "Bring 3 bodies onto a transmutation rune to shed your human form and ascend to untold power." required_atoms = list(/mob/living/carbon/human) cost = 5 + sacs_needed = 8 route = PATH_FLESH /datum/eldritch_knowledge/final/flesh_final/on_finished_recipe(mob/living/user, list/atoms, loc) @@ -257,6 +258,11 @@ gain_text = "The ignorant mind that inhabits their feeble bodies will crumble when they acknowledge - willingly or not, the truth." desc = "By forcing the knowledge of the Mansus upon my foes, I can show them things that would drive any normal man insane." cost = 2 + sacs_needed = 3 spell_to_add = /obj/effect/proc_holder/spell/targeted/touch/mad_touch next_knowledge = list(/datum/eldritch_knowledge/final/flesh_final) route = PATH_FLESH + +/datum/eldritch_knowledge/spell/touch_of_madness/on_gain(mob/user) + . = ..() + priority_announce("The stench of rotting flesh fills the air... An approaching abomination has been detected!", sound = 'sound/misc/notice1.ogg') \ No newline at end of file diff --git a/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm b/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm index 8184beb3aa..d119ab0c95 100644 --- a/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm +++ b/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm @@ -159,15 +159,21 @@ desc = "Applying your knowledge of rust to the human body, a knowledge that could decay your foes from the inside out, resulting in organ failure, vomiting, or eventual death through the peeling of rotting flesh." gain_text = "Rust, decay, it's all the same. All that remains is application." cost = 2 + sacs_needed = 3 spell_to_add = /obj/effect/proc_holder/spell/targeted/touch/grasp_of_decay next_knowledge = list(/datum/eldritch_knowledge/final/rust_final) route = PATH_RUST +/datum/eldritch_knowledge/spell/grasp_of_decay/on_gain(mob/user) + . = ..() + priority_announce("A foul wind is blowing... The floor creaks with rust as something sinister approaches!", sound = 'sound/misc/notice1.ogg') + /datum/eldritch_knowledge/final/rust_final name = "Rustbringer's Oath" desc = "Bring three corpses onto a transmutation rune. After you finish the ritual, rust will now automatically spread from the rune. Your healing on rust is also tripled, while you become more resilient overall." gain_text = "Champion of rust. Corruptor of steel. Fear the dark for the Rustbringer has come! Rusted Hills, CALL MY NAME!" cost = 5 + sacs_needed = 8 required_atoms = list(/mob/living/carbon/human) route = PATH_RUST diff --git a/code/modules/antagonists/eldritch_cult/knowledge/void_lore.dm b/code/modules/antagonists/eldritch_cult/knowledge/void_lore.dm index 6046bfbdf5..97b5af0f4d 100644 --- a/code/modules/antagonists/eldritch_cult/knowledge/void_lore.dm +++ b/code/modules/antagonists/eldritch_cult/knowledge/void_lore.dm @@ -160,15 +160,21 @@ gain_text = "This world will be my stage, and nothing will be out of my reach." desc = "Gain the ability to mark a 7x7 area as your domain after a short delay. Creatures in your domain are slowed and branded with a void mark, allowing you to quickly teleport to them and slash them, further inhibiting their ability to move." cost = 2 + sacs_needed = 3 spell_to_add = /obj/effect/proc_holder/spell/aoe_turf/domain_expansion next_knowledge = list(/datum/eldritch_knowledge/final/void_final) route = PATH_VOID +/datum/eldritch_knowledge/spell/domain_expansion/on_gain(mob/user) + . = ..() + priority_announce("Echos of the lost in space are heard... An ominous presence is being detected! ", sound = 'sound/misc/notice1.ogg') + /datum/eldritch_knowledge/final/void_final name = "Waltz at the End of Time" desc = "Bring 3 corpses onto the transmutation rune. After you finish the ritual you will automatically silence people around you and will summon a snow storm around you." gain_text = "The world falls into darkness. I stand in an empty plane, small flakes of ice fall from the sky. The Aristocrat stands before me, he motions to me. We will play a waltz to the whispers of dying reality, as the world is destroyed before our eyes." cost = 5 + sacs_needed = 8 required_atoms = list(/mob/living/carbon/human) route = PATH_VOID ///soundloop for the void theme diff --git a/tgui/packages/tgui/interfaces/ForbiddenLore.js b/tgui/packages/tgui/interfaces/ForbiddenLore.js index 1225132810..2474628dd5 100644 --- a/tgui/packages/tgui/interfaces/ForbiddenLore.js +++ b/tgui/packages/tgui/interfaces/ForbiddenLore.js @@ -7,7 +7,7 @@ import { Window } from '../layouts'; export const ForbiddenLore = (props, context) => { const { act, data } = useBackend(context); const { - charges, + charges, total_sacs } = data; const to_know = flow([ sortBy(to_know => to_know.state !== "Research", @@ -21,6 +21,8 @@ export const ForbiddenLore = (props, context) => {
Charges left : {charges} +
+ Completed Sacrifices : {total_sacs} {to_know!== null ? ( to_know.map(knowledge => (
{ cost: knowledge.cost, })} /> {' '} - Cost : {knowledge.cost} + Cost : {knowledge.cost} | Sacrifices Required : {knowledge.sacs} {knowledge.flavour}