Merge pull request #2446 from Citadel-Station-13/upstream-merge-30024
[MIRROR] Makes the Ark of the Clockwork Justicar much more fancy
This commit is contained in:
@@ -130,13 +130,19 @@
|
|||||||
playsound(src, 'sound/effects/empulse.ogg', 50, 1)
|
playsound(src, 'sound/effects/empulse.ogg', 50, 1)
|
||||||
playsound(linked_gateway, 'sound/effects/empulse.ogg', 50, 1)
|
playsound(linked_gateway, 'sound/effects/empulse.ogg', 50, 1)
|
||||||
transform = matrix() * 1.5
|
transform = matrix() * 1.5
|
||||||
animate(src, transform = matrix() / 1.5, time = 10, flags = ANIMATION_END_NOW)
|
|
||||||
linked_gateway.transform = matrix() * 1.5
|
linked_gateway.transform = matrix() * 1.5
|
||||||
animate(linked_gateway, transform = matrix() / 1.5, time = 10, flags = ANIMATION_END_NOW)
|
|
||||||
A.forceMove(get_turf(linked_gateway))
|
A.forceMove(get_turf(linked_gateway))
|
||||||
if(!no_cost)
|
if(!no_cost)
|
||||||
uses = max(0, uses - 1)
|
uses = max(0, uses - 1)
|
||||||
linked_gateway.uses = max(0, linked_gateway.uses - 1)
|
linked_gateway.uses = max(0, linked_gateway.uses - 1)
|
||||||
|
if(!uses)
|
||||||
|
animate(src, transform = matrix() * 0.1, time = 10, flags = ANIMATION_END_NOW)
|
||||||
|
animate(linked_gateway, transform = matrix() * 0.1, time = 10, flags = ANIMATION_END_NOW)
|
||||||
|
density = FALSE
|
||||||
|
linked_gateway.density = FALSE
|
||||||
|
else
|
||||||
|
animate(src, transform = matrix() / 1.5, time = 10, flags = ANIMATION_END_NOW)
|
||||||
|
animate(linked_gateway, transform = matrix() / 1.5, time = 10, flags = ANIMATION_END_NOW)
|
||||||
addtimer(CALLBACK(src, .proc/check_uses), 10)
|
addtimer(CALLBACK(src, .proc/check_uses), 10)
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
|
|||||||
@@ -68,7 +68,7 @@
|
|||||||
if(!purpose_fulfilled)
|
if(!purpose_fulfilled)
|
||||||
var/area/gate_area = get_area(src)
|
var/area/gate_area = get_area(src)
|
||||||
hierophant_message("<span class='large_brass'><b>An Ark of the Clockwork Justicar has fallen at [gate_area.map_name]!</b></span>")
|
hierophant_message("<span class='large_brass'><b>An Ark of the Clockwork Justicar has fallen at [gate_area.map_name]!</b></span>")
|
||||||
send_to_playing_players(sound(null, 0, channel = CHANNEL_JUSTICAR_ARK))
|
sound_to_playing_players(channel = CHANNEL_JUSTICAR_ARK, S = sound(null, 0))
|
||||||
var/was_stranded = SSshuttle.emergency.mode == SHUTTLE_STRANDED
|
var/was_stranded = SSshuttle.emergency.mode == SHUTTLE_STRANDED
|
||||||
SSshuttle.clearHostileEnvironment(src)
|
SSshuttle.clearHostileEnvironment(src)
|
||||||
if(!was_stranded && !purpose_fulfilled)
|
if(!was_stranded && !purpose_fulfilled)
|
||||||
@@ -87,7 +87,7 @@
|
|||||||
resistance_flags |= INDESTRUCTIBLE
|
resistance_flags |= INDESTRUCTIBLE
|
||||||
countdown.stop()
|
countdown.stop()
|
||||||
visible_message("<span class='userdanger'>[src] begins to pulse uncontrollably... you might want to run!</span>")
|
visible_message("<span class='userdanger'>[src] begins to pulse uncontrollably... you might want to run!</span>")
|
||||||
send_to_playing_players(sound('sound/effects/clockcult_gateway_disrupted.ogg', 0, channel = CHANNEL_JUSTICAR_ARK, volume = 50))
|
sound_to_playing_players(volume = 50, channel = CHANNEL_JUSTICAR_ARK, S = sound('sound/effects/clockcult_gateway_disrupted.ogg', 0))
|
||||||
make_glow()
|
make_glow()
|
||||||
glow.icon_state = "clockwork_gateway_disrupted"
|
glow.icon_state = "clockwork_gateway_disrupted"
|
||||||
resistance_flags |= INDESTRUCTIBLE
|
resistance_flags |= INDESTRUCTIBLE
|
||||||
@@ -208,7 +208,7 @@
|
|||||||
if(still_needs_components())
|
if(still_needs_components())
|
||||||
if(!first_sound_played)
|
if(!first_sound_played)
|
||||||
priority_announce("Massive energy anomaly detected on short-range scanners. Attempting to triangulate location...", "Anomaly Alert")
|
priority_announce("Massive energy anomaly detected on short-range scanners. Attempting to triangulate location...", "Anomaly Alert")
|
||||||
send_to_playing_players(sound('sound/effects/clockcult_gateway_charging.ogg', 1, channel = CHANNEL_JUSTICAR_ARK, volume = 10))
|
sound_to_playing_players(volume = 10, channel = CHANNEL_JUSTICAR_ARK, S = sound('sound/effects/clockcult_gateway_charging.ogg', 1))
|
||||||
first_sound_played = TRUE
|
first_sound_played = TRUE
|
||||||
make_glow()
|
make_glow()
|
||||||
glow.icon_state = "clockwork_gateway_components"
|
glow.icon_state = "clockwork_gateway_components"
|
||||||
@@ -228,7 +228,8 @@
|
|||||||
switch(progress_in_seconds)
|
switch(progress_in_seconds)
|
||||||
if(-INFINITY to GATEWAY_REEBE_FOUND)
|
if(-INFINITY to GATEWAY_REEBE_FOUND)
|
||||||
if(!second_sound_played)
|
if(!second_sound_played)
|
||||||
send_to_playing_players(sound('sound/effects/clockcult_gateway_charging.ogg', 1, channel = CHANNEL_JUSTICAR_ARK, volume = 30))
|
new /obj/effect/temp_visual/decoy/fading/threesecond(loc, glow)
|
||||||
|
sound_to_playing_players(volume = 30, channel = CHANNEL_JUSTICAR_ARK, S = sound('sound/effects/clockcult_gateway_charging.ogg', 1))
|
||||||
second_sound_played = TRUE
|
second_sound_played = TRUE
|
||||||
make_glow()
|
make_glow()
|
||||||
glow.icon_state = "clockwork_gateway_charging"
|
glow.icon_state = "clockwork_gateway_charging"
|
||||||
@@ -236,13 +237,15 @@
|
|||||||
if(!third_sound_played)
|
if(!third_sound_played)
|
||||||
var/area/gate_area = get_area(src)
|
var/area/gate_area = get_area(src)
|
||||||
priority_announce("Location of massive energy anomaly has been triangulated. Location: [gate_area.map_name].", "Anomaly Alert")
|
priority_announce("Location of massive energy anomaly has been triangulated. Location: [gate_area.map_name].", "Anomaly Alert")
|
||||||
send_to_playing_players(sound('sound/effects/clockcult_gateway_active.ogg', 1, channel = CHANNEL_JUSTICAR_ARK, volume = 35))
|
new /obj/effect/temp_visual/decoy/fading/threesecond(loc, glow)
|
||||||
|
sound_to_playing_players(volume = 35, channel = CHANNEL_JUSTICAR_ARK, S = sound('sound/effects/clockcult_gateway_active.ogg', 1))
|
||||||
third_sound_played = TRUE
|
third_sound_played = TRUE
|
||||||
make_glow()
|
make_glow()
|
||||||
glow.icon_state = "clockwork_gateway_active"
|
glow.icon_state = "clockwork_gateway_active"
|
||||||
if(GATEWAY_RATVAR_COMING to GATEWAY_RATVAR_ARRIVAL)
|
if(GATEWAY_RATVAR_COMING to GATEWAY_RATVAR_ARRIVAL)
|
||||||
if(!fourth_sound_played)
|
if(!fourth_sound_played)
|
||||||
send_to_playing_players(sound('sound/effects/clockcult_gateway_closing.ogg', 1, channel = CHANNEL_JUSTICAR_ARK, volume = 40))
|
new /obj/effect/temp_visual/decoy/fading/threesecond(loc, glow)
|
||||||
|
sound_to_playing_players(volume = 40, channel = CHANNEL_JUSTICAR_ARK, S = sound('sound/effects/clockcult_gateway_closing.ogg', 1))
|
||||||
fourth_sound_played = TRUE
|
fourth_sound_played = TRUE
|
||||||
make_glow()
|
make_glow()
|
||||||
glow.icon_state = "clockwork_gateway_closing"
|
glow.icon_state = "clockwork_gateway_closing"
|
||||||
@@ -252,20 +255,20 @@
|
|||||||
resistance_flags |= INDESTRUCTIBLE
|
resistance_flags |= INDESTRUCTIBLE
|
||||||
purpose_fulfilled = TRUE
|
purpose_fulfilled = TRUE
|
||||||
make_glow()
|
make_glow()
|
||||||
animate(glow, transform = matrix() * 1.5, alpha = 255, time = 125)
|
animate(glow, transform = matrix() * 3, time = 125)
|
||||||
send_to_playing_players(sound('sound/effects/ratvar_rises.ogg', 0, channel = CHANNEL_JUSTICAR_ARK)) //End the sounds
|
sound_to_playing_players('sound/effects/ratvar_rises.ogg', channel = CHANNEL_JUSTICAR_ARK) //End the sounds
|
||||||
sleep(125)
|
sleep(125)
|
||||||
make_glow()
|
|
||||||
animate(glow, transform = matrix() * 3, alpha = 0, time = 5)
|
|
||||||
var/turf/startpoint = get_turf(src)
|
var/turf/startpoint = get_turf(src)
|
||||||
QDEL_IN(src, 3)
|
make_glow()
|
||||||
sleep(3)
|
glow.transform = matrix() * 4.5
|
||||||
|
animate(glow, transform = matrix() * 0.1, time = 10)
|
||||||
|
QDEL_IN(src, 10)
|
||||||
GLOB.clockwork_gateway_activated = TRUE
|
GLOB.clockwork_gateway_activated = TRUE
|
||||||
new/obj/structure/destructible/clockwork/massive/ratvar(startpoint)
|
new/obj/structure/destructible/clockwork/massive/ratvar(startpoint)
|
||||||
send_to_playing_players("<span class='inathneq_large'>\"[text2ratvar("See Engine's mercy")]!\"</span>\n\
|
send_to_playing_players("<span class='inathneq_large'>\"[text2ratvar("See Engine's mercy")]!\"</span>\n\
|
||||||
<span class='sevtug_large'>\"[text2ratvar("Observe Engine's design skills")]!\"</span>\n<span class='nezbere_large'>\"[text2ratvar("Behold Engine's light")]!!\"</span>\n\
|
<span class='sevtug_large'>\"[text2ratvar("Observe Engine's design skills")]!\"</span>\n<span class='nezbere_large'>\"[text2ratvar("Behold Engine's light")]!!\"</span>\n\
|
||||||
<span class='nzcrentr_large'>\"[text2ratvar("Gaze upon Engine's power")].\"</span>")
|
<span class='nzcrentr_large'>\"[text2ratvar("Gaze upon Engine's power")].\"</span>")
|
||||||
send_to_playing_players('sound/magic/clockwork/invoke_general.ogg')
|
sound_to_playing_players('sound/effects/empulse.ogg')
|
||||||
var/x0 = startpoint.x
|
var/x0 = startpoint.x
|
||||||
var/y0 = startpoint.y
|
var/y0 = startpoint.y
|
||||||
for(var/I in spiral_range_turfs(255, startpoint))
|
for(var/I in spiral_range_turfs(255, startpoint))
|
||||||
|
|||||||
@@ -23,12 +23,12 @@
|
|||||||
for(var/obj/O in GLOB.all_clockwork_objects)
|
for(var/obj/O in GLOB.all_clockwork_objects)
|
||||||
O.ratvar_act()
|
O.ratvar_act()
|
||||||
START_PROCESSING(SSobj, src)
|
START_PROCESSING(SSobj, src)
|
||||||
|
INVOKE_ASYNC(SSshuttle.emergency, /obj/docking_port/mobile/emergency.proc/request, null, 0, null, FALSE, 0)
|
||||||
send_to_playing_players("<span class='ratvar'>\"[text2ratvar("ONCE AGAIN MY LIGHT SHALL SHINE ACROSS THIS PATHETIC REALM")]!!\"</span>")
|
send_to_playing_players("<span class='ratvar'>\"[text2ratvar("ONCE AGAIN MY LIGHT SHALL SHINE ACROSS THIS PATHETIC REALM")]!!\"</span>")
|
||||||
sound_to_playing_players('sound/effects/ratvar_reveal.ogg')
|
sound_to_playing_players('sound/effects/ratvar_reveal.ogg')
|
||||||
var/mutable_appearance/alert_overlay = mutable_appearance('icons/effects/clockwork_effects.dmi', "ratvar_alert")
|
var/mutable_appearance/alert_overlay = mutable_appearance('icons/effects/clockwork_effects.dmi', "ratvar_alert")
|
||||||
var/area/A = get_area(src)
|
var/area/A = get_area(src)
|
||||||
notify_ghosts("The Justiciar's light calls to you! Reach out to Ratvar in [A.name] to be granted a shell to spread his glory!", null, source = src, alert_overlay = alert_overlay)
|
notify_ghosts("The Justiciar's light calls to you! Reach out to Ratvar in [A.name] to be granted a shell to spread his glory!", null, source = src, alert_overlay = alert_overlay)
|
||||||
INVOKE_ASYNC(SSshuttle.emergency, /obj/docking_port/mobile/emergency.proc/request, null, 0, null, FALSE, 0)
|
|
||||||
|
|
||||||
/obj/structure/destructible/clockwork/massive/ratvar/Destroy()
|
/obj/structure/destructible/clockwork/massive/ratvar/Destroy()
|
||||||
GLOB.ratvar_awakens--
|
GLOB.ratvar_awakens--
|
||||||
|
|||||||
@@ -476,7 +476,7 @@ structure_check() searches for nearby cultist structures required for the invoca
|
|||||||
//BEGIN THE SUMMONING
|
//BEGIN THE SUMMONING
|
||||||
used = TRUE
|
used = TRUE
|
||||||
..()
|
..()
|
||||||
send_to_playing_players('sound/effects/dimensional_rend.ogg')
|
sound_to_playing_players('sound/effects/dimensional_rend.ogg')
|
||||||
var/turf/T = get_turf(src)
|
var/turf/T = get_turf(src)
|
||||||
sleep(40)
|
sleep(40)
|
||||||
if(src)
|
if(src)
|
||||||
|
|||||||
@@ -194,6 +194,9 @@
|
|||||||
. = ..()
|
. = ..()
|
||||||
animate(src, alpha = 0, time = duration)
|
animate(src, alpha = 0, time = duration)
|
||||||
|
|
||||||
|
/obj/effect/temp_visual/decoy/fading/threesecond
|
||||||
|
duration = 40
|
||||||
|
|
||||||
/obj/effect/temp_visual/decoy/fading/fivesecond
|
/obj/effect/temp_visual/decoy/fading/fivesecond
|
||||||
duration = 50
|
duration = 50
|
||||||
|
|
||||||
|
|||||||
+7
-6
@@ -80,12 +80,13 @@
|
|||||||
|
|
||||||
SEND_SOUND(src, S)
|
SEND_SOUND(src, S)
|
||||||
|
|
||||||
/proc/sound_to_playing_players(sound, volume = 100, vary)
|
/proc/sound_to_playing_players(soundin, volume = 100, vary = FALSE, frequency = 0, falloff = FALSE, channel = 0, pressure_affected = FALSE, sound/S)
|
||||||
sound = get_sfx(sound)
|
if(!S)
|
||||||
for(var/M in GLOB.player_list)
|
S = sound(get_sfx(soundin))
|
||||||
if(ismob(M) && !isnewplayer(M))
|
for(var/m in GLOB.player_list)
|
||||||
var/mob/MO = M
|
if(ismob(m) && !isnewplayer(m))
|
||||||
MO.playsound_local(MO, sound, volume, vary, pressure_affected = FALSE)
|
var/mob/M = m
|
||||||
|
M.playsound_local(M, null, volume, vary, frequency, falloff, channel, pressure_affected, S)
|
||||||
|
|
||||||
/proc/open_sound_channel()
|
/proc/open_sound_channel()
|
||||||
var/static/next_channel = 1 //loop through the available 1024 - (the ones we reserve) channels and pray that its not still being used
|
var/static/next_channel = 1 //loop through the available 1024 - (the ones we reserve) channels and pray that its not still being used
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 1.6 MiB |
Reference in New Issue
Block a user