diff --git a/code/__DEFINES/clockcult.dm b/code/__DEFINES/clockcult.dm index f84d69f109..f597eb4ae7 100644 --- a/code/__DEFINES/clockcult.dm +++ b/code/__DEFINES/clockcult.dm @@ -35,7 +35,7 @@ GLOBAL_LIST_EMPTY(all_scripture) //a list containing scripture instances; not us #define MAX_CLOCKWORK_POWER 80000 //The max power in W that the cult can stockpile #define SCRIPT_UNLOCK_THRESHOLD 35000 //Scripts will unlock if the total power reaches this amount #define APPLICATION_UNLOCK_THRESHOLD 50000 //Applications will unlock if the total power reaches this amount -#define JUDGEMENT_UNLOCK_THRESHOLD 80000 +#define JUDGEMENT_UNLOCK_THRESHOLD 80000 //might as well have this unlock at a power amount like the other scriptures, Judgement unlocks at this amount. //clockcult power defines #define MIN_CLOCKCULT_POWER 25 //the minimum amount of power clockcult machines will handle gracefully @@ -61,11 +61,11 @@ GLOBAL_LIST_EMPTY(all_scripture) //a list containing scripture instances; not us //Ark defines #define GATEWAY_SUMMON_RATE 1 //the time amount the Gateway to the Celestial Derelict gets each process tick; defaults to 1 per tick -#define GATEWAY_REEBE_FOUND 240 //when progress is at or above this, the gateway finds reebe and begins drawing power +#define GATEWAY_REEBE_FOUND 120 //when progress is at or above this, the gateway finds reebe and begins drawing power -#define GATEWAY_RATVAR_COMING 480 //when progress is at or above this, ratvar has entered and is coming through the gateway +#define GATEWAY_RATVAR_COMING 240 //when progress is at or above this, ratvar has entered and is coming through the gateway -#define GATEWAY_RATVAR_ARRIVAL 600 //when progress is at or above this, game over ratvar's here everybody go home +#define GATEWAY_RATVAR_ARRIVAL 300 //when progress is at or above this, game over ratvar's here everybody go home //Objective text define #define CLOCKCULT_OBJECTIVE "Construct the Ark of the Clockwork Justicar and free Ratvar." @@ -95,4 +95,4 @@ GLOBAL_LIST_EMPTY(all_scripture) //a list containing scripture instances; not us #define ARK_SCREAM_COOLDOWN 300 //This much time has to pass between instances of the Ark taking damage before it will "scream" again -#define PRISM_DELAY_DURATION 1200 //how long prolonging prisms delay the shuttle for; defaults to 2 minutes +#define PRISM_DELAY_DURATION 1200 //how long prolonging prisms delay the shuttle for; defaults to 2 minutes \ No newline at end of file diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 11531a701e..8afd3345e1 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -447,8 +447,6 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." var/time_name if(G.seconds_until_activation) time_name = "until the Ark activates" - else if(G.grace_period) - time_name = "of grace period remaining" else if(G.progress_in_seconds) time_name = "until the Ark finishes summoning" if(time_info) diff --git a/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm b/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm index 3153f12b0f..bb44d0683a 100644 --- a/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm +++ b/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm @@ -1,5 +1,3 @@ -#define ARK_GRACE_PERIOD 300 //In seconds, how long the crew has before the Ark truly "begins" - /proc/clockwork_ark_active() //A helper proc so the Ark doesn't have to be typecast every time it's checked; returns null if there is no Ark and its active var otherwise var/obj/structure/destructible/clockwork/massive/celestial_gateway/G = GLOB.ark_of_the_clockwork_justiciar if(!G) @@ -22,9 +20,8 @@ immune_to_servant_attacks = TRUE var/active = FALSE var/progress_in_seconds = 0 //Once this reaches GATEWAY_RATVAR_ARRIVAL, it's game over - var/grace_period = ARK_GRACE_PERIOD //This exists to allow the crew to gear up and prepare for the invasion - var/initial_activation_delay = 10 //How many seconds the Ark will have initially taken to activate - var/seconds_until_activation = 50 //How many seconds until the Ark activates; if it should never activate, set this to -1 + var/initial_activation_delay = 5 //How many seconds the Ark will have initially taken to activate + var/seconds_until_activation = 5 //How many seconds until the Ark activates; if it should never activate, set this to -1 var/purpose_fulfilled = FALSE var/first_sound_played = FALSE var/second_sound_played = FALSE @@ -67,22 +64,13 @@ GLOB.servants_active = TRUE SSshuttle.registerHostileEnvironment(src) -/obj/structure/destructible/clockwork/massive/celestial_gateway/proc/cry_havoc() - visible_message("[src] shudders and roars to life, its parts beginning to whirr and screech!") - hierophant_message("The Ark is activating!") - for(var/mob/M in GLOB.player_list) - var/turf/T = get_turf(M) - if(is_servant_of_ratvar(M) || isobserver(M) || (T && T.z == z)) - M.playsound_local(M, 'sound/magic/clockwork/ark_activation_sequence.ogg', 30, FALSE, pressure_affected = FALSE) - addtimer(CALLBACK(src, .proc/let_slip_the_dogs), 300) - /obj/structure/destructible/clockwork/massive/celestial_gateway/proc/let_slip_the_dogs() - spawn_animation() first_sound_played = TRUE active = TRUE + visible_message("[src] shudders and roars to life, its parts beginning to whirr and screech!") priority_announce("Massive [Gibberish("bluespace", 100)] anomaly detected on all frequencies. All crew are directed to \ @!$, [text2ratvar("PURGE ALL UNTRUTHS")] <&. the anomalies and destroy their source to prevent further damage to corporate property. This is \ - not a drill.", "Central Command Higher Dimensional Affairs", 'sound/magic/clockwork/ark_activation.ogg') + not a drill.", "Central Command Higher Dimensional Affairs", 'sound/magic/clockwork/ark_activation_sequence.ogg') set_security_level("delta") for(var/V in SSticker.mode.servants_of_ratvar) var/datum/mind/M = V @@ -90,13 +78,6 @@ continue if(ishuman(M.current)) M.current.add_overlay(mutable_appearance('icons/effects/genetics.dmi', "servitude", -MUTATIONS_LAYER)) - for(var/V in GLOB.brass_recipes) - var/datum/stack_recipe/R = V - if(!R) - continue - if(R.title == "wall gear") - R.time *= 2 //Building walls becomes slower when the Ark activates - var/turf/T = get_turf(src) var/list/open_turfs = list() for(var/turf/open/OT in orange(1, T)) @@ -106,9 +87,6 @@ for(var/mob/living/L in T) L.forceMove(pick(open_turfs)) -/obj/structure/destructible/clockwork/massive/celestial_gateway/proc/open_portal(turf/T) - new/obj/effect/clockwork/city_of_cogs_rift(T) - /obj/structure/destructible/clockwork/massive/celestial_gateway/proc/spawn_animation() var/turf/T = get_turf(src) new/obj/effect/clockwork/general_marker/inathneq(T) @@ -135,7 +113,6 @@ if(open_turfs.len) for(var/mob/living/L in T) L.forceMove(pick(open_turfs)) - glow = new(get_turf(src)) countdown = new(src) countdown.start() @@ -166,35 +143,22 @@ transform = matrix() * 2 animate(src, transform = matrix() * 0.5, time = 30, flags = ANIMATION_END_NOW) -/obj/structure/destructible/clockwork/massive/celestial_gateway/Destroy() +obj/structure/destructible/clockwork/massive/celestial_gateway/Destroy() STOP_PROCESSING(SSprocessing, src) + if(!purpose_fulfilled) + var/area/gate_area = get_area(src) + hierophant_message("An Ark of the Clockwork Justicar has fallen at [gate_area.map_name]!") + send_to_playing_players(sound(null, 0, channel = CHANNEL_JUSTICAR_ARK)) + var/was_stranded = SSshuttle.emergency.mode == SHUTTLE_STRANDED SSshuttle.clearHostileEnvironment(src) - if(!purpose_fulfilled && istype(SSticker.mode, /datum/game_mode/clockwork_cult)) - hierophant_message("The Ark has fallen!") - sound_to_playing_players(null, channel = CHANNEL_JUSTICAR_ARK) - SSticker.force_ending = TRUE //rip + if(!was_stranded && !purpose_fulfilled) + priority_announce("Massive energy anomaly no longer on short-range scanners, bluespace distortions still detected.","Central Command Higher Dimensional Affairs") if(glow) qdel(glow) glow = null if(countdown) qdel(countdown) countdown = null - for(var/mob/L in GLOB.player_list) - var/turf/T = get_turf(L) - if(T && T.z == z) - var/atom/movable/target = L - if(isobj(L.loc)) - target = L.loc - target.forceMove(get_turf(pick(GLOB.generic_event_spawns))) - L.overlay_fullscreen("flash", /obj/screen/fullscreen/flash/static) - L.clear_fullscreen("flash", 30) - if(isliving(L)) - var/mob/living/LI = L - LI.Stun(50) - for(var/obj/effect/clockwork/city_of_cogs_rift/R in GLOB.all_clockwork_objects) - qdel(R) - if(GLOB.ark_of_the_clockwork_justiciar == src) - GLOB.ark_of_the_clockwork_justiciar = null . = ..() /obj/structure/destructible/clockwork/massive/celestial_gateway/deconstruct(disassembled = TRUE) @@ -228,8 +192,6 @@ /obj/structure/destructible/clockwork/massive/celestial_gateway/proc/get_arrival_time(var/deciseconds = TRUE) if(seconds_until_activation) . = seconds_until_activation - else if(grace_period) - . = grace_period else if(GATEWAY_RATVAR_ARRIVAL - progress_in_seconds > 0) . = round(max((GATEWAY_RATVAR_ARRIVAL - progress_in_seconds) / (GATEWAY_SUMMON_RATE), 0), 1) if(deciseconds) @@ -238,8 +200,6 @@ /obj/structure/destructible/clockwork/massive/celestial_gateway/proc/get_arrival_text(s_on_time) if(seconds_until_activation) return "[get_arrival_time()][s_on_time ? "S" : ""]" - if(grace_period) - return "[get_arrival_time()][s_on_time ? "S" : ""]" . = "IMMINENT" if(!obj_integrity) . = "DETONATING" @@ -275,8 +235,6 @@ . += "The anomaly is stable! Something is coming through!" /obj/structure/destructible/clockwork/massive/celestial_gateway/process() - if(seconds_until_activation == -1) //we never do anything - return adjust_clockwork_power(2.5) //Provides weak power generation on its own if(seconds_until_activation) if(!countdown) @@ -284,8 +242,7 @@ countdown.start() seconds_until_activation-- if(!seconds_until_activation) - cry_havoc() - seconds_until_activation = 30 //we'll set this after cry_havoc() + let_slip_the_dogs() return if(!first_sound_played || prob(7)) for(var/mob/M in GLOB.player_list) @@ -311,29 +268,24 @@ M.forceMove(get_step(src, SOUTH)) M.overlay_fullscreen("flash", /obj/screen/fullscreen/flash) M.clear_fullscreen("flash", 5) - if(grace_period) - grace_period-- - return progress_in_seconds += GATEWAY_SUMMON_RATE switch(progress_in_seconds) if(-INFINITY to GATEWAY_REEBE_FOUND) if(!second_sound_played) - for(var/V in GLOB.generic_event_spawns) - addtimer(CALLBACK(src, .proc/open_portal, get_turf(V)), rand(100, 600)) sound_to_playing_players('sound/magic/clockwork/invoke_general.ogg', 30, FALSE) - sound_to_playing_players(volume = 20, channel = CHANNEL_JUSTICAR_ARK, S = sound('sound/effects/clockcult_gateway_charging.ogg', TRUE)) + sound_to_playing_players(volume = 10, channel = CHANNEL_JUSTICAR_ARK, S = sound('sound/effects/clockcult_gateway_charging.ogg', TRUE)) second_sound_played = TRUE make_glow() glow.icon_state = "clockwork_gateway_charging" if(GATEWAY_REEBE_FOUND to GATEWAY_RATVAR_COMING) if(!third_sound_played) - sound_to_playing_players(volume = 25, channel = CHANNEL_JUSTICAR_ARK, S = sound('sound/effects/clockcult_gateway_active.ogg', TRUE)) + sound_to_playing_players(volume = 30, channel = CHANNEL_JUSTICAR_ARK, S = sound('sound/effects/clockcult_gateway_active.ogg', TRUE)) third_sound_played = TRUE make_glow() glow.icon_state = "clockwork_gateway_active" if(GATEWAY_RATVAR_COMING to GATEWAY_RATVAR_ARRIVAL) if(!fourth_sound_played) - sound_to_playing_players(volume = 30, channel = CHANNEL_JUSTICAR_ARK, S = sound('sound/effects/clockcult_gateway_closing.ogg', TRUE)) + sound_to_playing_players(volume = 70, channel = CHANNEL_JUSTICAR_ARK, S = sound('sound/effects/clockcult_gateway_closing.ogg', TRUE)) fourth_sound_played = TRUE make_glow() glow.icon_state = "clockwork_gateway_closing" @@ -353,7 +305,6 @@ GLOB.clockwork_gateway_activated = TRUE var/turf/T = SSmapping.get_station_center() new /obj/structure/destructible/clockwork/massive/ratvar(T) - SSticker.force_ending = TRUE var/x0 = T.x var/y0 = T.y for(var/I in spiral_range_turfs(255, T, tick_checked = TRUE)) @@ -380,9 +331,9 @@ if(alert(user, "You're REALLY SURE? This cannot be undone.", name, "Yes - Activate the Ark", "No") == "Yes - Activate the Ark") message_admins("Admin [key_name_admin(user)] started the Ark's countdown!") log_admin("Admin [key_name(user)] started the Ark's countdown on a non-clockcult mode!") - to_chat(user, "The gamemode is now being treated as clockwork cult, and the Ark is counting down from 30 \ + to_chat(user, "The gamemode is now being treated as clockwork cult, and the Ark is counting down from 5 \ minutes. You will need to create servant players yourself.") - final_countdown(35) + final_countdown(5) diff --git a/code/modules/antagonists/clockcult/clock_structures/ratvar_the_clockwork_justicar.dm b/code/modules/antagonists/clockcult/clock_structures/ratvar_the_clockwork_justicar.dm index c17885315f..ffaf157337 100644 --- a/code/modules/antagonists/clockcult/clock_structures/ratvar_the_clockwork_justicar.dm +++ b/code/modules/antagonists/clockcult/clock_structures/ratvar_the_clockwork_justicar.dm @@ -101,7 +101,7 @@ return clashing = TRUE GLOB.cult_narsie.clashing = TRUE - to_chat(world, "\"YOU.\"") + to_chat(world, "\"[pick("YOU.", "BLOOD GOD!!")]\"") to_chat(world, "\"Ratvar?!\"") clash_of_the_titans(GLOB.cult_narsie) // >:( return TRUE @@ -137,7 +137,7 @@ base_victory_chance *= 2 //The clash has a higher chance of resolving each time both gods attack one another switch(winner) if("Ratvar") - send_to_playing_players("\"[pick("DIE.", "ROT.")]\"\n\ + send_to_playing_players("\"[pick("DIE.", "ROT FOR CENTURIES, AS I HAVE!.","PERISH, HEATHEN.")]\"\n\ \"[pick("Nooooo...", "Not die. To y-", "Die. Ratv-", "Sas tyen re-")]\"") //Nar'Sie get out sound_to_playing_players('sound/magic/clockwork/anima_fragment_attack.ogg') sound_to_playing_players('sound/magic/demon_dies.ogg', 50)