diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 34979d03325..5f5d2a17240 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -240,6 +240,14 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." icon_state = "blobbernaut_nofactory" alerttooltipstyle = "blob" +// CLOCKCULT +/obj/screen/alert/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" + //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 d2abe8656d0..659ad2a8890 100644 --- a/code/game/gamemodes/clock_cult/clock_cult.dm +++ b/code/game/gamemodes/clock_cult/clock_cult.dm @@ -119,6 +119,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 + cache_check(M) return 1 /proc/remove_servant_of_ratvar(mob/living/M, silent = FALSE) @@ -138,6 +139,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("nocache") for(var/datum/action/innate/function_call/F in M.actions) //Removes any bound Ratvarian spears qdel(F) for(var/datum/action/innate/hierophant/H in M.actions) //Removes any communication actions diff --git a/code/game/gamemodes/clock_cult/clock_structures.dm b/code/game/gamemodes/clock_cult/clock_structures.dm index 536ccde2065..143569f8df4 100644 --- a/code/game/gamemodes/clock_cult/clock_structures.dm +++ b/code/game/gamemodes/clock_cult/clock_structures.dm @@ -159,12 +159,16 @@ clockwork_caches++ scripture_unlock_alert(scripture_states) SetLuminosity(2,1) + for(var/i in all_clockwork_mobs) + cache_check(i) /obj/structure/clockwork/cache/Destroy() var/list/scripture_states = get_scripture_states() clockwork_caches-- scripture_unlock_alert(scripture_states) STOP_PROCESSING(SSobj, src) + for(var/i in all_clockwork_mobs) + cache_check(i) return ..() /obj/structure/clockwork/cache/destroyed() diff --git a/code/game/gamemodes/clock_cult/clock_unsorted.dm b/code/game/gamemodes/clock_cult/clock_unsorted.dm index 83ef2ec46f0..59e7f2cc70a 100644 --- a/code/game/gamemodes/clock_cult/clock_unsorted.dm +++ b/code/game/gamemodes/clock_cult/clock_unsorted.dm @@ -197,6 +197,12 @@ AM.say(message) AM.languages_spoken = old_languages_spoken +/proc/cache_check(mob/M) + if(!clockwork_caches) + M.throw_alert("nocache", /obj/screen/alert/nocache) + else + M.clear_alert("nocache") + /* The Ratvarian Language diff --git a/icons/mob/screen_alert.dmi b/icons/mob/screen_alert.dmi index 4998f8638b2..2d010d68dc7 100644 Binary files a/icons/mob/screen_alert.dmi and b/icons/mob/screen_alert.dmi differ