diff --git a/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm b/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm index c933283ee50..eddb4b32f50 100644 --- a/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm +++ b/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm @@ -11,8 +11,7 @@ var/no_cost = FALSE //If the slab is admin-only and needs no components and has no scripture locks var/nonhuman_usable = FALSE //if the slab can be used by nonhumans, defaults to off var/produces_components = TRUE //if it produces components at all - var/list/shown_scripture = list(SCRIPTURE_DRIVER = FALSE, SCRIPTURE_SCRIPT = FALSE, SCRIPTURE_APPLICATION = FALSE, SCRIPTURE_REVENANT = FALSE, SCRIPTURE_JUDGEMENT = FALSE) - var/text_hidden = FALSE + var/list/shown_scripture = list(SCRIPTURE_DRIVER = TRUE, SCRIPTURE_SCRIPT = FALSE, SCRIPTURE_APPLICATION = FALSE, SCRIPTURE_REVENANT = FALSE, SCRIPTURE_JUDGEMENT = FALSE) var/compact_scripture = FALSE var/obj/effect/proc_holder/slab/slab_ability //the slab's current bound ability, for certain scripture var/datum/clockwork_scripture/quickbind_slot_one //these are paths, not instances @@ -209,39 +208,13 @@ return 0 switch(action) if("Recital") - try_recite_scripture(user) - if("Recollection") - user.set_machine(src) interact(user) + if("Recollection") + recollection(user) if("Cancel") return return 1 -/obj/item/clockwork/slab/proc/try_recite_scripture(mob/living/user) - var/list/tiers_of_scripture = scripture_unlock_check() - for(var/i in tiers_of_scripture) - if(!tiers_of_scripture[i] && !ratvar_awakens && !no_cost) - tiers_of_scripture["[i] \[LOCKED\]"] = TRUE - tiers_of_scripture -= i - var/scripture_tier = input(user, "Choose a category of scripture to recite.", "[src]") as null|anything in tiers_of_scripture - if(!scripture_tier || !user.canUseTopic(src)) - return FALSE - var/list/available_scriptures = list() - switch(scripture_tier) - if(SCRIPTURE_DRIVER,SCRIPTURE_SCRIPT,SCRIPTURE_APPLICATION,SCRIPTURE_REVENANT,SCRIPTURE_JUDGEMENT); //; for the empty if - else - user << "That section of scripture is still locked!" - return FALSE - for(var/S in sortList(subtypesof(/datum/clockwork_scripture), /proc/cmp_clockscripture_priority)) - var/datum/clockwork_scripture/C = S - if(initial(C.tier) == scripture_tier) - available_scriptures["[initial(C.name)] ([initial(C.descname)])"] = C - if(!available_scriptures.len) - return FALSE - var/chosen_scripture_key = input(user, "Choose a piece of scripture to recite.", "[src]") as null|anything in available_scriptures - var/datum/clockwork_scripture/chosen_scripture = available_scriptures[chosen_scripture_key] - return recite_scripture(chosen_scripture, user, TRUE) - /obj/item/clockwork/slab/proc/recite_scripture(datum/clockwork_scripture/scripture, mob/living/user, delayed) if(!scripture || !user || !user.canUseTopic(src) || (!nonhuman_usable && !ishuman(user))) return FALSE @@ -258,8 +231,73 @@ scripture_to_recite.run_scripture() return TRUE -//Guide to Serving Ratvar /obj/item/clockwork/slab/interact(mob/living/user) + var/text = "
A complete list of scripture can be found and Quickbound below.

\ + \ + Key:" + for(var/i in clockwork_component_cache) + text += " [get_component_name(i)][i != REPLICANT_ALLOY ? "s":""]" + text += "


Compact Scripture Text: [compact_scripture ? "ON":"OFF"]

" + var/text_to_add = "" + var/drivers = "
[SCRIPTURE_DRIVER]
These scriptures are always unlocked.
" + var/scripts = "
[SCRIPTURE_SCRIPT]
These scriptures require at least 5 Servants and \ + 1 Tinkerer's Cache.
" + var/applications = "
[SCRIPTURE_APPLICATION]
These scriptures require at least 8 Servants, \ + 3 Tinkerer's Caches, and 100CV.
" + var/revenant = "
[SCRIPTURE_REVENANT]
These scriptures require at least 10 Servants, \ + 4 Tinkerer's Caches, and 200CV.
" + var/judgement = "
[SCRIPTURE_JUDGEMENT]
This scripture requires at least 12 Servants, \ + 5 Tinkerer's Caches, and 300CV.
In addition, there may not be any active non-Servant AIs.

" + for(var/V in sortList(subtypesof(/datum/clockwork_scripture), /proc/cmp_clockscripture_priority)) + var/datum/clockwork_scripture/S = V + var/initial_tier = initial(S.tier) + if(initial_tier != SCRIPTURE_PERIPHERAL && shown_scripture[initial_tier]) + var/datum/clockwork_scripture/S2 = new V + var/list/req_comps = S2.required_components + var/list/cons_comps = S2.consumed_components + qdel(S2) + var/scripture_text = "
[initial(S.name)] ([initial(S.descname)]):" + if(!compact_scripture) + scripture_text += "
[initial(S.desc)]
Invocation Time: [initial(S.channel_time) / 10] second\s\ + [initial(S.invokers_required) > 1 ? "
Invokers Required: [initial(S.invokers_required)]":""]\ +
Component Requirement:" + for(var/i in req_comps) + if(req_comps[i]) + scripture_text += " [req_comps[i]] [get_component_acronym(i)]" + if(!compact_scripture) + for(var/a in cons_comps) + if(cons_comps[a]) + scripture_text += "
Component Cost:" + for(var/i in cons_comps) + if(cons_comps[i]) + scripture_text += " [cons_comps[i]] [get_component_acronym(i)]" + break //we want this to only show up if the scripture has a cost of some sort + scripture_text += "
Tip: [initial(S.usage_tip)]" + if(initial(S.quickbind)) + scripture_text += "
[S == quickbind_slot_one || S == quickbind_slot_two ? "Currently Quickbound":\ + "Quickbind to button One| Quickbind to button Two"]" + scripture_text += "
Recite
" + switch(initial_tier) + if(SCRIPTURE_DRIVER) + drivers += scripture_text + if(SCRIPTURE_SCRIPT) + scripts += scripture_text + if(SCRIPTURE_APPLICATION) + applications += scripture_text + if(SCRIPTURE_REVENANT) + revenant += scripture_text + if(SCRIPTURE_JUDGEMENT) + judgement += scripture_text + text_to_add += "[drivers]
[scripts]
[applications]
[revenant]
[judgement]
" + text += text_to_add + text += "

Purge all untruths and honor Ratvar.
" + var/datum/browser/popup = new(user, "recital", "", 600, 500) + popup.set_content(text) + popup.open() + return 1 + +//Guide to Serving Ratvar +/obj/item/clockwork/slab/proc/recollection(mob/living/user) var/text = "If you're seeing this, file a bug report." if(ratvar_awakens) text = "" @@ -267,134 +305,69 @@ text += "HONOR RATVAR " text += "" else + var/servants = 0 + var/production_time = SLAB_PRODUCTION_TIME + for(var/mob/living/M in living_mob_list) + if(is_servant_of_ratvar(M) && (ishuman(M) || issilicon(M))) + servants++ + if(servants > 5) + servants -= 5 + production_time += min(SLAB_SERVANT_SLOWDOWN * servants, SLAB_SLOWDOWN_MAXIMUM) + var/production_text_addon = "" + if(production_time != SLAB_PRODUCTION_TIME+SLAB_SLOWDOWN_MAXIMUM) + production_text_addon = ", which increases for each human or silicon servant above 5" + production_time = production_time/600 + var/production_text = "[round(production_time)] minute\s" + if(production_time != round(production_time)) + production_time -= round(production_time) + production_time *= 60 + production_text += " and [round(production_time, 1)] second\s" + production_text += "" + production_text += production_text_addon text = "
Chetr nyy hagehguf-naq-ubabe Ratvar.

\ \ -
[text_hidden ? "Show":"Hide"] Information

" - if(!text_hidden) - var/servants = 0 - var/production_time = SLAB_PRODUCTION_TIME - for(var/mob/living/M in living_mob_list) - if(is_servant_of_ratvar(M) && (ishuman(M) || issilicon(M))) - servants++ - if(servants > 5) - servants -= 5 - production_time += min(SLAB_SERVANT_SLOWDOWN * servants, SLAB_SLOWDOWN_MAXIMUM) - var/production_text_addon = "" - if(production_time != SLAB_PRODUCTION_TIME+SLAB_SLOWDOWN_MAXIMUM) - production_text_addon = ", which increases for each human or silicon servant above 5" - production_time = production_time/600 - var/production_text = "[round(production_time)] minute\s" - if(production_time != round(production_time)) - production_time -= round(production_time) - production_time *= 60 - production_text += " and [round(production_time, 1)] second\s" - production_text += "" - production_text += production_text_addon - - text += "First and foremost, you serve Ratvar, the Clockwork Justicar, in any ways he sees fit. This is with no regard to your personal well-being, and you would do well to think of the larger \ - scale of things than your life. Ratvar wishes retribution upon those that trapped him in Reebe - the Nar-Sian cultists - and you are to help him obtain it.

\ - \ - Ratvar, being trapped in Reebe, the Celestial Derelict, cannot directly affect the mortal plane. However, links, such as this Clockwork Slab, can be created to draw \ - Components, fragments of the Justicar, from Reebe, and those Components can be used to draw power and material from Reebe through arcane chants \ - known as Scripture.

\ - \ - One component of a random type is made in this slab every [production_text].
\ - Components are stored either within slabs, where they can only be accessed by that slab, or in the Global Cache accessed by Tinkerer's Caches, which all slabs \ - can draw from to recite scripture.
\ - There are five types of component, and in general, Belligerent Eyes are aggressive and judgemental, Vanguard Cogwheels are defensive and \ - repairing, Geis Capacitors are for conversion and control, Replicant Alloy is for construction and fuel, and \ - Hierophant Ansibles are for transmission and power, though in combination their effects become more nuanced.

\ - \ - There are also five tiers of Scripture; [SCRIPTURE_DRIVER], [SCRIPTURE_SCRIPT], [SCRIPTURE_APPLICATION], [SCRIPTURE_REVENANT], and [SCRIPTURE_JUDGEMENT].
\ - Each tier has additional requirements, including Servants, Tinkerer's Caches, and Construction Value(CV). Construction Value is gained by creating structures or converting the \ - station, and everything too large to hold will grant some amount of it.

\ - \ - This would be a massive amount of information to try and keep track of, but all Servants have the Global Records alert, which appears in the top right.
\ - Mousing over that alert will display Servants, Caches, CV, and other information, such as the tiers of scripture that are unlocked.

\ - \ - On that note, Scripture is recited through Recital, the first and most important function of the slab.
\ - All scripture requires some amount of Components to recite, and only the weakest scripture does not consume any components when recited.
\ - However, weak is relative when it comes to scripture; even the 'weakest' could be enough to dominate a station in the hands of cunning Servants, and higher tiers of scripture are even \ - stronger in the right hands.

\ - \ - Some effects of scripture include granting the invoker a temporary complete immunity to stuns, summoning a turret that can attack anything that sets eyes on it, binding a powerful guardian \ - to the invoker, or even, at one of the highest tiers, granting all nearby Servants temporary invulnerability.
\ - However, the most important scripture is Geis, which allows you to convert heathens with relative ease.

\ - \ - The second function of the clockwork slab is Recollection, which will display this guide and allows for the quickbinding and recital \ - of scripture.

\ - \ - The third to fifth functions are three buttons in the top left while holding the slab.
From left to right, they are:
\ - Hierophant Network, which allows communication to other Servants.
\ - Quickbind slot One, currently set to [initial(quickbind_slot_one.name)].
\ - Quickbind slot Two, currently set to [initial(quickbind_slot_two.name)].

\ - \ - Examine the slab to check the number of components it has available.

\ - \ -
Hide Above Information

" - - text += "A complete list of scripture, its effects, and its requirements can be found, and thus Quickbound to this slab, below.
\ - Key:
" - for(var/i in clockwork_component_cache) - text += "[get_component_acronym(i)] = [get_component_name(i)][i != REPLICANT_ALLOY ? "s":""]
" - text += "

Compact Scripture Text: [compact_scripture ? "ON":"OFF"]

" - var/text_to_add = "" - var/drivers = "
[SCRIPTURE_DRIVER]
These scriptures are always unlocked.[compact_scripture ? "":""]
" - var/scripts = "
[SCRIPTURE_SCRIPT]
These scriptures require at least 5 Servants and \ - 1 Tinkerer's Cache.[compact_scripture ? "":""]
" - var/applications = "
[SCRIPTURE_APPLICATION]
These scriptures require at least 8 Servants, \ - 3 Tinkerer's Caches, and 100CV.[compact_scripture ? "":""]
" - var/revenant = "
[SCRIPTURE_REVENANT]
These scriptures require at least 10 Servants, \ - 4 Tinkerer's Caches, and 200CV.[compact_scripture ? "":""]
" - var/judgement = "
[SCRIPTURE_JUDGEMENT]
This scripture requires at least 12 Servants, \ - 5 Tinkerer's Caches, and 300CV.
In addition, there may not be any active non-Servant AIs.
[compact_scripture ? "":"
"]
" - for(var/V in sortList(subtypesof(/datum/clockwork_scripture), /proc/cmp_clockscripture_priority)) - var/datum/clockwork_scripture/S = V - var/initial_tier = initial(S.tier) - if(initial_tier != SCRIPTURE_PERIPHERAL && shown_scripture[initial_tier]) - var/datum/clockwork_scripture/S2 = new V - var/list/req_comps = S2.required_components - var/list/cons_comps = S2.consumed_components - qdel(S2) - var/scripture_text = "
[initial(S.name)]:" - if(!compact_scripture) - scripture_text += "
[initial(S.desc)]
Invocation Time: [initial(S.channel_time) / 10] second\s\ - [initial(S.invokers_required) > 1 ? "
Invokers Required: [initial(S.invokers_required)]":""]\ -
Component Requirement:" - for(var/i in req_comps) - if(req_comps[i]) - scripture_text += " [req_comps[i]] [get_component_acronym(i)]" - if(!compact_scripture) - for(var/a in cons_comps) - if(cons_comps[a]) - scripture_text += "
Component Cost:" - for(var/i in cons_comps) - if(cons_comps[i]) - scripture_text += " [cons_comps[i]] [get_component_acronym(i)]" - break //we want this to only show up if the scripture has a cost of some sort - scripture_text += "
Tip: [initial(S.usage_tip)]" - if(initial(S.quickbind)) - scripture_text += "
[S == quickbind_slot_one || S == quickbind_slot_two ? "Currently Quickbound":\ - "Quickbind to button One| Quickbind to button Two"]" - scripture_text += "
Recite
" - switch(initial_tier) - if(SCRIPTURE_DRIVER) - drivers += scripture_text - if(SCRIPTURE_SCRIPT) - scripts += scripture_text - if(SCRIPTURE_APPLICATION) - applications += scripture_text - if(SCRIPTURE_REVENANT) - revenant += scripture_text - if(SCRIPTURE_JUDGEMENT) - judgement += scripture_text - if(compact_scripture) - text_to_add += "[drivers][scripts][applications][revenant][judgement]" - else - text_to_add += "[drivers][scripts][applications][revenant][judgement]" - text_to_add += "
Purge all untruths and honor Ratvar.
" - text += text_to_add + First and foremost, you serve Ratvar, the Clockwork Justicar, in any ways he sees fit. This is with no regard to your personal well-being, and you would do well to think of the larger \ + scale of things than your life. Ratvar wishes retribution upon those that trapped him in Reebe - the Nar-Sian cultists - and you are to help him obtain it.

\ + \ + Ratvar, being trapped in Reebe, the Celestial Derelict, cannot directly affect the mortal plane. However, links, such as this Clockwork Slab, can be created to draw \ + Components, fragments of the Justicar, from Reebe, and those Components can be used to draw power and material from Reebe through arcane chants \ + known as Scripture.

\ + \ + One component of a random type is made in this slab every [production_text].
\ + Components are stored either within slabs, where they can only be accessed by that slab, or in the Global Cache accessed by Tinkerer's Caches, which all slabs \ + can draw from to recite scripture.
\ + There are five types of component, and in general, Belligerent Eyes are aggressive and judgemental, Vanguard Cogwheels are defensive and \ + repairing, Geis Capacitors are for conversion and control, Replicant Alloy is for construction and fuel, and \ + Hierophant Ansibles are for transmission and power, though in combination their effects become more nuanced.

\ + \ + There are also five tiers of Scripture; [SCRIPTURE_DRIVER], [SCRIPTURE_SCRIPT], [SCRIPTURE_APPLICATION], [SCRIPTURE_REVENANT], and [SCRIPTURE_JUDGEMENT].
\ + Each tier has additional requirements, including Servants, Tinkerer's Caches, and Construction Value(CV). Construction Value is gained by creating structures or converting the \ + station, and everything too large to hold will grant some amount of it.

\ + \ + This would be a massive amount of information to try and keep track of, but all Servants have the Global Records alert, which appears in the top right.
\ + Mousing over that alert will display Servants, Caches, CV, and other information, such as the tiers of scripture that are unlocked.

\ + \ + On that note, Scripture is recited through Recital, the first and most important function of the slab.
\ + All scripture requires some amount of Components to recite, and only the weakest scripture does not consume any components when recited.
\ + However, weak is relative when it comes to scripture; even the 'weakest' could be enough to dominate a station in the hands of cunning Servants, and higher tiers of scripture are even \ + stronger in the right hands.

\ + \ + Some effects of scripture include granting the invoker a temporary complete immunity to stuns, summoning a turret that can attack anything that sets eyes on it, binding a powerful guardian \ + to the invoker, or even, at one of the highest tiers, granting all nearby Servants temporary invulnerability.
\ + However, the most important scripture is Geis, which allows you to convert heathens with relative ease.

\ + \ + The second function of the clockwork slab is Recollection, which will display this guide and allows for the quickbinding and recital \ + of scripture.

\ + \ + The third to fifth functions are three buttons in the top left while holding the slab.
From left to right, they are:
\ + Hierophant Network, which allows communication to other Servants.
\ + Quickbind slot One, currently set to [initial(quickbind_slot_one.name)].
\ + Quickbind slot Two, currently set to [initial(quickbind_slot_two.name)].

\ + \ + Examine the slab to check the number of components it has available.

\ + \ +
Purge all untruths and honor Ratvar.
" var/datum/browser/popup = new(user, "slab", "", 600, 500) popup.set_content(text) popup.open() @@ -406,8 +379,6 @@ return . if(!usr || !src || !(src in usr) || usr.incapacitated()) - if(usr && usr.machine == src) - usr.unset_machine() return 0 if(href_list["Recite"]) @@ -421,9 +392,6 @@ if(href_list["Quickbindtwo"]) quickbind_to_two(href_list["Quickbindtwo"]) - if(href_list["hidetext"]) - text_hidden = !text_hidden - if(href_list["compactscripture"]) compact_scripture = !compact_scripture diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm index b4646a5a9dd..8802a3dffc2 100644 --- a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm @@ -4,7 +4,7 @@ //Sigil of Accession: Creates a sigil of accession, which is like a sigil of submission, but can convert any number of non-implanted targets and up to one implanted target. /datum/clockwork_scripture/create_object/sigil_of_accession - descname = "Permenant Conversion Trap" + descname = "Trap, Permenant Conversion" name = "Sigil of Accession" desc = "Places a luminous sigil much like a Sigil of Submission, but it will remain even after successfully converting a non-implanted target. \ It will penetrate mindshield implants once before disappearing." @@ -27,7 +27,7 @@ //Vitality Matrix: Creates a sigil which will drain health from nonservants and can use that health to heal or even revive servants. /datum/clockwork_scripture/create_object/vitality_matrix - descname = "Damage Trap" + descname = "Trap, Damage to Healing" name = "Vitality Matrix" desc = "Scribes a sigil beneath the invoker which drains life from any living non-Servants that cross it. Servants that cross it, however, will be healed based on how much it drained from non-Servants. \ Dead Servants can be revived by this sigil if it has enough stored vitality." diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm index 7f9b5a582c0..0a6554955dd 100644 --- a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm @@ -108,7 +108,7 @@ //Geis: Grants a short-range binding that will immediately start chanting on binding a valid target. /datum/clockwork_scripture/ranged_ability/geis_prep - descname = "Convert Attack" + descname = "Melee Convert Attack" name = "Geis" desc = "Charges your slab with divine energy, allowing you to bind a nearby heretic for conversion. This is very obvious and will make your slab visible in-hand." invocations = list("Divinity, grant me strength...", "...to enlighten the heathen!") @@ -249,7 +249,7 @@ //Tinkerer's Cache: Creates a tinkerer's cache, allowing global component storage. /datum/clockwork_scripture/create_object/tinkerers_cache - descname = "Necessary, Shares Components" + descname = "Necessary Structure, Shares Components" name = "Tinkerer's Cache" desc = "Forms a cache that can store an infinite amount of components. All caches are linked and will provide components to slabs." invocations = list("Constructing...", "...a cache!") @@ -298,7 +298,7 @@ //Sigil of Transgression: Creates a sigil of transgression, which stuns the first nonservant to cross it. /datum/clockwork_scripture/create_object/sigil_of_transgression - descname = "Stun Trap" + descname = "Trap, Stunning" name = "Sigil of Transgression" desc = "Wards a tile with a sigil. The next person to cross the sigil will be smitten and unable to move. Nar-Sian cultists are stunned altogether." invocations = list("Divinity, dazzle...", "...those who tresspass here!") diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_judgement.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_judgement.dm index aa1bf727c68..0cbabe4b576 100644 --- a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_judgement.dm +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_judgement.dm @@ -4,7 +4,7 @@ //Ark of the Clockwork Justiciar: Creates a Gateway to the Celestial Derelict, either summoning ratvar or proselytizing everything. /datum/clockwork_scripture/ark_of_the_clockwork_justiciar - descname = "Win Condition" + descname = "Structure, Win Condition" name = "Ark of the Clockwork Justiciar" desc = "Pulls from the power of all of Ratvar's servants and generals to construct a massive machine used to tear apart a rift in spacetime to Reebe, the Celestial Derelict.\n\ This gateway will either call forth Ratvar from his exile if that is the task he has set you, or proselytize the entire station if it is not." diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_revenant.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_revenant.dm index 5740aab9001..8f87704f773 100644 --- a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_revenant.dm +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_revenant.dm @@ -4,7 +4,7 @@ //Invoke Inath-neq, the Resonant Cogwheel: Grants invulnerability and stun immunity to everyone nearby for 15 seconds. /datum/clockwork_scripture/invoke_inathneq - descname = "Area Invuln" + descname = "Area Invulnerability" name = "Invoke Inath-neq, the Resonant Cogwheel" desc = "Taps the limitless power of Inath-neq, one of Ratvar's four generals. The benevolence of Inath-Neq will grant complete invulnerability to all servants in range for fifteen seconds." invocations = list("I call upon you, Vanguard!!", "Let the Resonant Cogs turn once more!!", "Grant me and my allies the strength to vanquish our foes!!") @@ -37,64 +37,6 @@ return TRUE -//Invoke Nezbere, the Brass Eidolon: Invokes Nezbere, bolstering the strength of many clockwork items for one minute. -/datum/clockwork_scripture/invoke_nezbere - descname = "Structure Buff" - name = "Invoke Nezbere, the Brass Eidolon" - desc = "Taps the limitless power of Nezbere, one of Ratvar's four generals. The restless toil of the Eidolon will empower a wide variety of clockwork apparatus for a full minute - notably, \ - clockwork proselytizers will cost no replicant alloy to use." - invocations = list("I call upon you, Armorer!!", "Let your machinations reign on this miserable station!!", "Let your power flow through the tools of your master!!") - channel_time = 150 - required_components = list(BELLIGERENT_EYE = 3, VANGUARD_COGWHEEL = 3, GEIS_CAPACITOR = 3, REPLICANT_ALLOY = 6) - consumed_components = list(BELLIGERENT_EYE = 3, VANGUARD_COGWHEEL = 3, GEIS_CAPACITOR = 3, REPLICANT_ALLOY = 6) - usage_tip = "Ocular wardens will become empowered, clockwork proselytizers will require no alloy, tinkerer's daemons will produce twice as quickly, \ - and interdiction lenses, mending motors, mania motors, tinkerer's daemons, and clockwork obelisks will all require no power." - tier = SCRIPTURE_REVENANT - primary_component = REPLICANT_ALLOY - sort_priority = 3 - invokers_required = 3 - multiple_invokers_used = TRUE - -/datum/clockwork_scripture/invoke_nezbere/check_special_requirements() - if(!slab.no_cost && clockwork_generals_invoked["nezbere"] > world.time) - invoker << "\"[text2ratvar("Not just yet, friend. Patience is a virtue.")]\"\n\ - Nezbere has already been invoked recently! You must wait several minutes before calling upon the Brass Eidolon." - return FALSE - if(!slab.no_cost && ratvar_awakens) - invoker << "\"[text2ratvar("Our master is here already. You do not require my help, friend.")]\"\n\ - Nezbere will not grant his power while Ratvar's dwarfs his own!" - return FALSE - return TRUE - -/datum/clockwork_scripture/invoke_nezbere/scripture_effects() - new/obj/effect/clockwork/general_marker/nezbere(get_turf(invoker)) - hierophant_message("[text2ratvar("Armorer: \"I heed your call, champions. May your artifacts bring ruin upon the heathens that oppose our master!")]\"", FALSE, invoker) - clockwork_generals_invoked["nezbere"] = world.time + CLOCKWORK_GENERAL_COOLDOWN - playsound(invoker, 'sound/magic/clockwork/invoke_general.ogg', 50, 0) - for(var/obj/structure/destructible/clockwork/ocular_warden/W in all_clockwork_objects) //Ocular wardens have increased damage and radius - W.damage_per_tick *= 1.5 - W.sight_range *= 2 - for(var/obj/item/clockwork/clockwork_proselytizer/P in all_clockwork_objects) //Proselytizers no longer require alloy - P.uses_alloy = FALSE - for(var/obj/structure/destructible/clockwork/powered/M in all_clockwork_objects) //Powered clockwork structures no longer need power - M.needs_power = FALSE - if(istype(M, /obj/structure/destructible/clockwork/powered/tinkerers_daemon)) //Daemons produce components twice as quickly - var/obj/structure/destructible/clockwork/powered/tinkerers_daemon/D = M - D.production_time *= 0.5 - spawn(600) - for(var/obj/structure/destructible/clockwork/ocular_warden/W in all_clockwork_objects) - W.damage_per_tick = initial(W.damage_per_tick) - W.sight_range = initial(W.sight_range) - for(var/obj/item/clockwork/clockwork_proselytizer/P in all_clockwork_objects) - P.uses_alloy = initial(P.uses_alloy) - for(var/obj/structure/destructible/clockwork/powered/M in all_clockwork_objects) - M.needs_power = initial(M.needs_power) - if(istype(M, /obj/structure/destructible/clockwork/powered/tinkerers_daemon)) - var/obj/structure/destructible/clockwork/powered/tinkerers_daemon/D = M - D.production_time = initial(D.production_time) - return TRUE - - //Invoke Sevtug, the Formless Pariah: Causes massive global hallucinations, braindamage, confusion, and dizziness to all humans on the same zlevel. /datum/clockwork_scripture/invoke_sevtug descname = "Global Hallucination" @@ -107,11 +49,11 @@ consumed_components = list(BELLIGERENT_EYE = 3, VANGUARD_COGWHEEL = 3, GEIS_CAPACITOR = 6, HIEROPHANT_ANSIBLE = 3) usage_tip = "Causes brain damage, hallucinations, confusion, and dizziness in massive amounts." tier = SCRIPTURE_REVENANT - sort_priority = 4 + sort_priority = 3 primary_component = GEIS_CAPACITOR invokers_required = 3 multiple_invokers_used = TRUE - var/list/mindbreaksayings = list("\"Oh, great. I get to shatter some minds.\"", "\"More minds to crush.\"", \ + var/static/list/mindbreaksayings = list("\"Oh, great. I get to shatter some minds.\"", "\"More minds to crush.\"", \ "\"Really, this is almost boring.\"", "\"None of these minds have anything interesting in them.\"", "\"Maybe I can instill a little bit of terror in this one.\"", \ "\"What a waste of my power.\"", "\"I'm sure I could just control these minds instead, but they never ask.\"") @@ -166,9 +108,67 @@ return TRUE +//Invoke Nezbere, the Brass Eidolon: Invokes Nezbere, bolstering the strength of many clockwork items for one minute. +/datum/clockwork_scripture/invoke_nezbere + descname = "Global Structure Buff" + name = "Invoke Nezbere, the Brass Eidolon" + desc = "Taps the limitless power of Nezbere, one of Ratvar's four generals. The restless toil of the Eidolon will empower a wide variety of clockwork apparatus for a full minute - notably, \ + clockwork proselytizers will cost no replicant alloy to use." + invocations = list("I call upon you, Armorer!!", "Let your machinations reign on this miserable station!!", "Let your power flow through the tools of your master!!") + channel_time = 150 + required_components = list(BELLIGERENT_EYE = 3, VANGUARD_COGWHEEL = 3, GEIS_CAPACITOR = 3, REPLICANT_ALLOY = 6) + consumed_components = list(BELLIGERENT_EYE = 3, VANGUARD_COGWHEEL = 3, GEIS_CAPACITOR = 3, REPLICANT_ALLOY = 6) + usage_tip = "Ocular wardens will become empowered, clockwork proselytizers will require no alloy, tinkerer's daemons will produce twice as quickly, \ + and interdiction lenses, mending motors, mania motors, tinkerer's daemons, and clockwork obelisks will all require no power." + tier = SCRIPTURE_REVENANT + primary_component = REPLICANT_ALLOY + sort_priority = 4 + invokers_required = 3 + multiple_invokers_used = TRUE + +/datum/clockwork_scripture/invoke_nezbere/check_special_requirements() + if(!slab.no_cost && clockwork_generals_invoked["nezbere"] > world.time) + invoker << "\"[text2ratvar("Not just yet, friend. Patience is a virtue.")]\"\n\ + Nezbere has already been invoked recently! You must wait several minutes before calling upon the Brass Eidolon." + return FALSE + if(!slab.no_cost && ratvar_awakens) + invoker << "\"[text2ratvar("Our master is here already. You do not require my help, friend.")]\"\n\ + Nezbere will not grant his power while Ratvar's dwarfs his own!" + return FALSE + return TRUE + +/datum/clockwork_scripture/invoke_nezbere/scripture_effects() + new/obj/effect/clockwork/general_marker/nezbere(get_turf(invoker)) + hierophant_message("[text2ratvar("Armorer: \"I heed your call, champions. May your artifacts bring ruin upon the heathens that oppose our master!")]\"", FALSE, invoker) + clockwork_generals_invoked["nezbere"] = world.time + CLOCKWORK_GENERAL_COOLDOWN + playsound(invoker, 'sound/magic/clockwork/invoke_general.ogg', 50, 0) + for(var/obj/structure/destructible/clockwork/ocular_warden/W in all_clockwork_objects) //Ocular wardens have increased damage and radius + W.damage_per_tick *= 1.5 + W.sight_range *= 2 + for(var/obj/item/clockwork/clockwork_proselytizer/P in all_clockwork_objects) //Proselytizers no longer require alloy + P.uses_alloy = FALSE + for(var/obj/structure/destructible/clockwork/powered/M in all_clockwork_objects) //Powered clockwork structures no longer need power + M.needs_power = FALSE + if(istype(M, /obj/structure/destructible/clockwork/powered/tinkerers_daemon)) //Daemons produce components twice as quickly + var/obj/structure/destructible/clockwork/powered/tinkerers_daemon/D = M + D.production_time *= 0.5 + spawn(600) + for(var/obj/structure/destructible/clockwork/ocular_warden/W in all_clockwork_objects) + W.damage_per_tick = initial(W.damage_per_tick) + W.sight_range = initial(W.sight_range) + for(var/obj/item/clockwork/clockwork_proselytizer/P in all_clockwork_objects) + P.uses_alloy = initial(P.uses_alloy) + for(var/obj/structure/destructible/clockwork/powered/M in all_clockwork_objects) + M.needs_power = initial(M.needs_power) + if(istype(M, /obj/structure/destructible/clockwork/powered/tinkerers_daemon)) + var/obj/structure/destructible/clockwork/powered/tinkerers_daemon/D = M + D.production_time = initial(D.production_time) + return TRUE + + //Invoke Nzcrentr, the Eternal Thunderbolt: Imbues an immense amount of energy into the invoker. After several seconds, everyone near the invoker will be hit with a devastating lightning blast. /datum/clockwork_scripture/invoke_nzcrentr - descname = "Lightning Blast" + descname = "Area Lightning Blast" name = "Invoke Nzcrentr, the Eternal Thunderbolt" desc = "Taps the limitless power of Nzcrentr, one of Ratvar's four generals. The immense energy Nzcrentr wields will allow you to imbue a tiny fraction of it into your body. After several \ seconds, anyone near you will be struck by a devastating lightning bolt." diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_scripts.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_scripts.dm index d8abc3c4397..f2a8e4c3d1a 100644 --- a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_scripts.dm +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_scripts.dm @@ -4,7 +4,7 @@ //Ocular Warden: Creates an ocular warden, which defends a small area near it. /datum/clockwork_scripture/create_object/ocular_warden - descname = "Turret" + descname = "Structure, Turret" name = "Ocular Warden" desc = "Forms an automatic short-range turret that deals low sustained damage to the unenlightened in its range." invocations = list("Guardians...", "...of the Engine...", "...defend us!") @@ -90,7 +90,7 @@ //Sigil of Submission: Creates a sigil of submission, which converts one heretic above it after a delay. /datum/clockwork_scripture/create_object/sigil_of_submission - descname = "Conversion Trap" + descname = "Trap, Conversion" name = "Sigil of Submission" desc = "Places a luminous sigil that will enslave any valid beings standing on it after a time." invocations = list("Divinity, enlighten...", "...those who trespass here!") @@ -132,7 +132,7 @@ //Clockwork Proselytizer: Creates a clockwork proselytizer, used to convert objects and repair clockwork structures. /datum/clockwork_scripture/create_object/clockwork_proselytizer - descname = "Necessary, Converts Objects" + descname = "Converts Objects to Ratvarian" name = "Clockwork Proselytizer" desc = "Forms a device that, when used on certain objects, converts them into their Ratvarian equivalents. It requires replicant alloy to function." invocations = list("With this device...", "...his presence shall be made known.") @@ -153,7 +153,7 @@ //Function Call: Grants the invoker the ability to call forth a Ratvarian spear that deals significant damage to silicons. /datum/clockwork_scripture/function_call - descname = "Summonable Spear" + descname = "Permenant Summonable Spear" name = "Function Call" desc = "Grants the invoker the ability to call forth a powerful Ratvarian spear every three minutes. The spear will deal significant damage to Nar-Sie's dogs and silicon lifeforms, but will \ vanish three minutes after being summoned."