diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 5f5d2a17240..903ca7902ba 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -241,13 +241,67 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." alerttooltipstyle = "blob" // CLOCKCULT -/obj/screen/alert/nocache +/obj/screen/alert/clockwork + alerttooltipstyle = "clockcult" + +/obj/screen/alert/clockwork/nocache name = "No Tinkerer's Cache" desc = "In order to share components and unlock higher tier \ scripture, a tinkerer's cache must be constructed somewhere \ in the world. Try to place it somewhere accessible, yet hidden." icon_state = "nocache" +/obj/screen/alert/clockwork/infodump + name = "Global Records" + desc = "You shouldn't be seeing this description, because it should be dynamically generated." + icon_state = "clockinfo" + +/obj/screen/alert/clockwork/infodump/MouseEntered(location,control,params) + if(ratvar_awakens) + desc = "Chetr nyy hagehguf-naq-ubabe Ratvar." + else + var/servants = 0 + var/validservants = 0 + var/unconverted_ai_exists = FALSE + var/list/scripture_states = get_scripture_states() + for(var/mob/living/L in living_mob_list) + if(is_servant_of_ratvar(L)) + servants++ + if(ishuman(L) || issilicon(L)) + validservants++ + else if(isAI(L)) + unconverted_ai_exists = TRUE + if(servants > 1) + if(validservants > 1) + desc = "[servants] Servants, [validservants] of which count towards scripture.
" + else + desc = "[servants] Servants, [validservants ? "[validservants] of which counts":"none of which count"] towards scripture.
" + else + desc = "[servants] Servant, who [validservants ? "counts":"does not count"] towards scripture.
" + desc += "[clockwork_caches ? "[clockwork_caches] Tinkerer's Caches.":"No Tinkerer's Caches, construct one!"]
\ + [clockwork_construction_value] Construction Value.
" + if(clockwork_daemons) + desc += "[clockwork_daemons] Tinkerer's Daemons: [servants * 0.2 < clockwork_daemons ? "DISABLED":"ACTIVE"]
" + else + desc += "No Tinkerer's Daemons.
" + if(unconverted_ai_exists) + desc += "An unconverted AI exists!
" + if(scripture_states["Revenant"]) + var/inathneq_available = clockwork_generals_invoked["inath-neq"] <= world.time + var/sevtug_available = clockwork_generals_invoked["sevtug"] <= world.time + var/nezbere_available = clockwork_generals_invoked["nezbere"] <= world.time + var/nezcrentr_available = clockwork_generals_invoked["nzcrentr"] <= world.time + if(inathneq_available || sevtug_available || nezbere_available || nezcrentr_available) + desc += "Generals available:
[inathneq_available ? "INATH-NEQ
":""][sevtug_available ? "SEVTUG
":""]\ + [nezbere_available ? "NEZBERE
":""][nezcrentr_available ? "NZCRENTR":""]

" + else + desc += "Generals available: NONE
" + else + desc += "Generals available: NONE
" + for(var/i in scripture_states) + desc += "[i] Scripture: [scripture_states[i] ? "UNLOCKED":"LOCKED"]
" + ..() + //GUARDIANS /obj/screen/alert/cancharge diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm index fbf0b21d25a..2fb713dc4ac 100644 --- a/code/game/gamemodes/clock_cult/clock_cult.dm +++ b/code/game/gamemodes/clock_cult/clock_cult.dm @@ -135,6 +135,7 @@ This file's folder contains: if(istype(ticker.mode, /datum/game_mode/clockwork_cult)) var/datum/game_mode/clockwork_cult/C = ticker.mode C.present_tasks(M) //Memorize the objectives + M.throw_alert("clockinfo", /obj/screen/alert/clockwork/infodump) cache_check(M) return 1 @@ -155,6 +156,7 @@ This file's folder contains: M.languages_understood &= ~RATVAR M.update_action_buttons_icon() //because a few clockcult things are action buttons and we may be wearing/holding them, we need to update buttons M.attack_log += "\[[time_stamp()]\] Has renounced the cult of Ratvar!" + M.clear_alert("clockinfo") M.clear_alert("nocache") for(var/datum/action/innate/function_call/F in M.actions) //Removes any bound Ratvarian spears qdel(F) diff --git a/code/game/gamemodes/clock_cult/clock_items.dm b/code/game/gamemodes/clock_cult/clock_items.dm index efe337bcb0c..31d16e11498 100644 --- a/code/game/gamemodes/clock_cult/clock_items.dm +++ b/code/game/gamemodes/clock_cult/clock_items.dm @@ -185,14 +185,14 @@ user << "[src] refuses to work, displaying the message: \"[busy]!\"" return 0 if(!nonhuman_usable && !ishuman(user)) - show_stats(user) //if it's not human, show it stats + user << "[src] hums fitfully in your hands, but doesn't seem to do anything..." return 0 access_display(user) /obj/item/clockwork/slab/proc/access_display(mob/living/user) if(!is_servant_of_ratvar(user)) return 0 - var/action = alert(user, "Among the swathes of information, you see...", "[src]", "Recital", "Recollection", "Records") + var/action = alert(user, "Among the swathes of information, you see...", "[src]", "Recital", "Recollection", "Cancel") if(!action || !user.canUseTopic(src)) return 0 switch(action) @@ -201,10 +201,10 @@ user << "You need to hold the slab in your active hand to recite scripture!" return recite_scripture(user) - if("Records") - show_stats(user) if("Recollection") show_guide(user) + if("Cancel") + return return 1 /obj/item/clockwork/slab/proc/recite_scripture(mob/living/user) @@ -256,25 +256,6 @@ scripture_to_recite.run_scripture() return 1 -/obj/item/clockwork/slab/proc/show_stats(mob/living/user) //A bit barebones, but there really isn't any more needed - var/servants = 0 - var/validservants = 0 - for(var/mob/living/L in living_mob_list) - if(is_servant_of_ratvar(L)) - servants++ - if(ishuman(L) || issilicon(L)) - validservants++ - user << "State of the Enlightened" - user << "Total servants: [servants]" - user << "Servants valid for scripture unlock: [validservants]" - user << "Total construction value: [clockwork_construction_value]" - user << "Total tinkerer's caches: [clockwork_caches]" - user << "Total tinkerer's daemons: [clockwork_daemons] ([servants / 5 < clockwork_daemons ? "DISABLED: Too few servants (5 servants per daemon)!" : "Functioning Normally"])" - user << "Nezbere: [clockwork_generals_invoked["nezbere"] <= world.time ? "Ready" : "Invoked"]" - user << "Sevtug: [clockwork_generals_invoked["sevtug"] <= world.time ? "Ready" : "Invoked"]" - user << "Nzcrentr: [clockwork_generals_invoked["nzcrentr"] <= world.time ? "Ready" : "Invoked"]" - user << "Inath-neq: [clockwork_generals_invoked["inath-neq"] <= world.time ? "Ready" : "Invoked"]" - /obj/item/clockwork/slab/proc/show_guide(mob/living/user) var/text = "
Chetr nyy hagehguf-naq-ubabe Ratvar.


\ \ @@ -297,10 +278,12 @@ effects usually considered magical in nature. Effects vary considerably - you might drain the power of nearby APCs, cause mass confusion, or force people to walk. Nevertheless, scripture \ is extremely important to a successful takeover.

\ \ - The second functionality of the clockwork slab is Records. The slab is not a one-way link and can also feed information into the stream that it draws from. Records will allow many \ - important statistics to be displayed, such as the amount of people converted and total construction value. You should check it often.

\ + The second functionality of the clockwork slab is Recollection, which will display this guide.

\ \ - The third and final functionality is Recollection, which will display this guide. Recollection will automatically be initiated if you have not used a slab before.

\ + The third to fifth functionalities are several buttons in the top left while holding the slab, from left to right, they are:
\ + Hierophant Network, which allows communication to other servants.
\ + Guvax, which simply allows you to quickly invoke the Guvax scripture.
\ + Vanguard, which, like Guvax, simply allows you to quickly invoke the Vanguard scripture.

\ \ Examine the slab for component amount information.

\ \ diff --git a/code/game/gamemodes/clock_cult/clock_unsorted.dm b/code/game/gamemodes/clock_cult/clock_unsorted.dm index 303dac03d5b..62c858a16be 100644 --- a/code/game/gamemodes/clock_cult/clock_unsorted.dm +++ b/code/game/gamemodes/clock_cult/clock_unsorted.dm @@ -134,8 +134,7 @@ for(var/mob/living/M in living_mob_list) if(is_servant_of_ratvar(M) && (ishuman(M) || issilicon(M))) servants++ - for(var/mob/living/silicon/ai/ai in living_mob_list) - if(!is_servant_of_ratvar(ai) && ai.client) + else if(isAI(M)) unconverted_ai_exists = TRUE switch(scripture_tier) if(SCRIPTURE_DRIVER) @@ -258,7 +257,7 @@ /proc/cache_check(mob/M) if(!clockwork_caches) - M.throw_alert("nocache", /obj/screen/alert/nocache) + M.throw_alert("nocache", /obj/screen/alert/clockwork/nocache) else M.clear_alert("nocache") diff --git a/code/modules/tooltip/tooltip.html b/code/modules/tooltip/tooltip.html index d0c6acfb056..cb94f6c0b75 100644 --- a/code/modules/tooltip/tooltip.html +++ b/code/modules/tooltip/tooltip.html @@ -54,6 +54,9 @@ .cult .wrap {border-color: #610002;} .cult .content {color: #0F0B0C; border-color: #A10000; background-color: #4A363B;} + .clockcult .wrap {border-color: #170800;} + .clockcult .content {color: #B18B25; border-color: #000000; background-color: #5F380E;} + .pod .wrap {border-color: #052401;} .pod .content {border-color: #326D29; background-color: #569F4B;} diff --git a/icons/mob/screen_alert.dmi b/icons/mob/screen_alert.dmi index 2d010d68dc7..3408a3e8262 100644 Binary files a/icons/mob/screen_alert.dmi and b/icons/mob/screen_alert.dmi differ