diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 31992e4c276..d1c8e545f90 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -472,6 +472,11 @@ return new_character +/proc/send_to_playing_players(thing) //sends a whatever to all playing players; use instead of world << where needed + for(var/M in player_list) + if(M && !isnewplayer(M)) + M << thing + /proc/window_flash(var/client_or_usr) if (!client_or_usr) return diff --git a/code/game/gamemodes/clock_cult/clock_structures/ark_of_the_clockwork_justicar.dm b/code/game/gamemodes/clock_cult/clock_structures/ark_of_the_clockwork_justicar.dm index 7887bf44916..1c236867060 100644 --- a/code/game/gamemodes/clock_cult/clock_structures/ark_of_the_clockwork_justicar.dm +++ b/code/game/gamemodes/clock_cult/clock_structures/ark_of_the_clockwork_justicar.dm @@ -32,7 +32,7 @@ if(!purpose_fulfilled) var/area/gate_area = get_area(src) hierophant_message("A gateway to the Celestial Derelict has fallen at [gate_area.map_name]!") - world << sound(null, 0, channel = 8) + send_to_playing_players(sound(null, 0, channel = 8)) if(glow) qdel(glow) glow = null @@ -46,7 +46,7 @@ if(!disassembled) countdown.stop() visible_message("The [src] begins to pulse uncontrollably... you might want to run!") - world << sound('sound/effects/clockcult_gateway_disrupted.ogg', 0, channel = 8, volume = 50) + send_to_playing_players(sound('sound/effects/clockcult_gateway_disrupted.ogg', 0, channel = 8, volume = 50)) make_glow() glow.icon_state = "clockwork_gateway_disrupted" resistance_flags |= INDESTRUCTIBLE @@ -94,27 +94,28 @@ /obj/structure/destructible/clockwork/massive/celestial_gateway/process() if(!progress_in_seconds || prob(7)) - for(var/M in mob_list) - M << "You hear otherworldly sounds from the [dir2text(get_dir(get_turf(M), get_turf(src)))]..." + for(var/M in player_list) + if(M && !isnewplayer(M)) + M << "You hear otherworldly sounds from the [dir2text(get_dir(get_turf(M), get_turf(src)))]..." if(!obj_integrity) return 0 progress_in_seconds += GATEWAY_SUMMON_RATE switch(progress_in_seconds) if(-INFINITY to GATEWAY_REEBE_FOUND) if(!first_sound_played) - world << sound('sound/effects/clockcult_gateway_charging.ogg', 1, channel = 8, volume = 30) + send_to_playing_players(sound('sound/effects/clockcult_gateway_charging.ogg', 1, channel = 8, volume = 30)) first_sound_played = TRUE make_glow() glow.icon_state = "clockwork_gateway_charging" if(GATEWAY_REEBE_FOUND to GATEWAY_RATVAR_COMING) if(!second_sound_played) - world << sound('sound/effects/clockcult_gateway_active.ogg', 1, channel = 8, volume = 35) + send_to_playing_players(sound('sound/effects/clockcult_gateway_active.ogg', 1, channel = 8, volume = 35)) second_sound_played = TRUE make_glow() glow.icon_state = "clockwork_gateway_active" if(GATEWAY_RATVAR_COMING to GATEWAY_RATVAR_ARRIVAL) if(!third_sound_played) - world << sound('sound/effects/clockcult_gateway_closing.ogg', 1, channel = 8, volume = 40) + send_to_playing_players(sound('sound/effects/clockcult_gateway_closing.ogg', 1, channel = 8, volume = 40)) third_sound_played = TRUE make_glow() glow.icon_state = "clockwork_gateway_closing" @@ -125,7 +126,7 @@ purpose_fulfilled = TRUE make_glow() animate(glow, transform = matrix() * 1.5, alpha = 255, time = 125) - world << sound('sound/effects/ratvar_rises.ogg', 0, channel = 8) //End the sounds + send_to_playing_players(sound('sound/effects/ratvar_rises.ogg', 0, channel = 8)) //End the sounds sleep(125) make_glow() animate(glow, transform = matrix() * 3, alpha = 0, time = 5) @@ -138,10 +139,10 @@ else addtimer(SSshuttle.emergency, "request", 0, FALSE, null, 0) //call the shuttle immediately sleep(3) - world << "\"[text2ratvar("Behold")]!\"\n\"[text2ratvar("See Engine's mercy")]!\"\n\ + send_to_playing_players("\"[text2ratvar("Behold")]!\"\n\"[text2ratvar("See Engine's mercy")]!\"\n\ \"[text2ratvar("Observe Engine's design skills")]!\"\n\"[text2ratvar("Behold Engine's light")]!!\"\n\ - \"[text2ratvar("Gaze upon Engine's power")]!\"" - world << 'sound/magic/clockwork/invoke_general.ogg' + \"[text2ratvar("Gaze upon Engine's power")]!\"") + send_to_playing_players('sound/magic/clockwork/invoke_general.ogg') var/x0 = startpoint.x var/y0 = startpoint.y for(var/I in spiral_range_turfs(255, startpoint)) @@ -149,7 +150,7 @@ if(!T) continue var/dist = cheap_hypotenuse(T.x, T.y, x0, y0) - if(dist < 60) + if(dist < 100) dist = TRUE else dist = FALSE diff --git a/code/game/gamemodes/clock_cult/clock_structures/ratvar_the_clockwork_justicar.dm b/code/game/gamemodes/clock_cult/clock_structures/ratvar_the_clockwork_justicar.dm index 13d5203f775..6f0ec64bac3 100644 --- a/code/game/gamemodes/clock_cult/clock_structures/ratvar_the_clockwork_justicar.dm +++ b/code/game/gamemodes/clock_cult/clock_structures/ratvar_the_clockwork_justicar.dm @@ -19,8 +19,8 @@ for(var/obj/item/clockwork/ratvarian_spear/R in all_clockwork_objects) R.update_force() START_PROCESSING(SSobj, src) - world << "\"[text2ratvar("ONCE AGAIN MY LIGHT SHALL SHINE ACROSS THIS PATHETIC REALM")]!!\"" - world << 'sound/effects/ratvar_reveal.ogg' + send_to_playing_players("\"[text2ratvar("ONCE AGAIN MY LIGHT SHALL SHINE ACROSS THIS PATHETIC REALM")]!!\"") + send_to_playing_players('sound/effects/ratvar_reveal.ogg') var/image/alert_overlay = image('icons/effects/clockwork_effects.dmi', "ratvar_alert") 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) @@ -31,7 +31,7 @@ for(var/obj/item/clockwork/ratvarian_spear/R in all_clockwork_objects) R.update_force() STOP_PROCESSING(SSobj, src) - world << "\"NO! I will not... be... banished... again...\"" + send_to_playing_players("\"NO! I will not... be... banished... again...\"") return ..() /obj/structure/destructible/clockwork/massive/ratvar/attack_ghost(mob/dead/observer/O) @@ -103,11 +103,12 @@ var/winner = "Undeclared" var/base_victory_chance = 1 while(src && narsie) - world << 'sound/magic/clockwork/ratvar_attack.ogg' + send_to_playing_players('sound/magic/clockwork/ratvar_attack.ogg') sleep(5.2) for(var/mob/M in mob_list) - flash_color(M, flash_color="#966400", flash_time=1) - shake_camera(M, 4, 3) + if(!isnewplayer(M)) + flash_color(M, flash_color="#966400", flash_time=1) + shake_camera(M, 4, 3) var/ratvar_chance = min(ticker.mode.servants_of_ratvar.len, 50) var/narsie_chance = ticker.mode.cult.len for(var/mob/living/simple_animal/hostile/construct/harvester/C in player_list) @@ -118,26 +119,27 @@ winner = "Ratvar" break sleep(rand(2,5)) - world << 'sound/magic/clockwork/narsie_attack.ogg' + send_to_playing_players('sound/magic/clockwork/narsie_attack.ogg') sleep(7.4) for(var/mob/M in mob_list) - flash_color(M, flash_color="#C80000", flash_time=1) - shake_camera(M, 4, 3) + if(!isnewplayer(M)) + flash_color(M, flash_color="#C80000", flash_time=1) + shake_camera(M, 4, 3) if(narsie_chance > ratvar_chance) winner = "Nar-Sie" break base_victory_chance *= 2 //The clash has a higher chance of resolving each time both gods attack one another switch(winner) if("Ratvar") - world << "\"[pick("DIE! DIE! DIE!", "FILTH!!!", "SUFFER!!!", text2ratvar("ROT FOR CENTURIES AS I HAVE!!"))]\"" //nar-sie get out - world << "\"[pick("Nooooo...", "Not die. To y-", "Die. Ratv-", "Sas tyen re-")]\"" - world << 'sound/magic/clockwork/anima_fragment_attack.ogg' - world << 'sound/magic/demon_dies.ogg' + send_to_playing_players("\"[pick("DIE! DIE! DIE!", "FILTH!!!", "SUFFER!!!", text2ratvar("ROT FOR CENTURIES AS I HAVE!!"))]\"\n\ + \"[pick("Nooooo...", "Not die. To y-", "Die. Ratv-", "Sas tyen re-")]\"") //nar-sie get out + send_to_playing_players('sound/magic/clockwork/anima_fragment_attack.ogg') + send_to_playing_players('sound/magic/demon_dies.ogg') clashing = FALSE qdel(narsie) if("Nar-Sie") - world << "\"[pick("Ha.", "Ra'sha fonn dest.", "You fool. To come here.")]\"" //Broken English - world << 'sound/magic/demon_attack1.ogg' - world << 'sound/magic/clockwork/anima_fragment_death.ogg' + send_to_playing_players("\"[pick("Ha.", "Ra'sha fonn dest.", "You fool. To come here.")]\"") //Broken English + send_to_playing_players('sound/magic/demon_attack1.ogg') + send_to_playing_players('sound/magic/clockwork/anima_fragment_death.ogg') narsie.clashing = FALSE qdel(src) diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 88140a9e89f..64ca0839d94 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -500,7 +500,7 @@ var/list/teleport_runes = list() //BEGIN THE SUMMONING used = 1 ..() - world << 'sound/effects/dimensional_rend.ogg' //There used to be a message for this but every time it was changed it got edgier so I removed it + send_to_playing_players('sound/effects/dimensional_rend.ogg') //There used to be a message for this but every time it was changed it got edgier so I removed it var/turf/T = get_turf(src) sleep(40) if(src) diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 2e8cc58622e..91f9a3e7f72 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -174,10 +174,7 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3"," var/converted = (prob(40) || force) if(converted) ChangeTurf(/turf/open/floor/clockwork) - for(var/I in src) - var/atom/A = I - if(ismob(A) || converted) - A.ratvar_act() + ..(converted) /turf/open/floor/initialize() ..() diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm index e45be3ea9d5..74025555409 100644 --- a/code/game/turfs/simulated/floor/misc_floor.dm +++ b/code/game/turfs/simulated/floor/misc_floor.dm @@ -148,10 +148,6 @@ new/obj/item/clockwork/alloy_shards/medium(src) return ..() -/turf/open/floor/clockwork/ratvar_act() - for(var/mob/M in src) - M.ratvar_act() - /turf/open/floor/clockwork/narsie_act() ..() if(istype(src, /turf/open/floor/clockwork)) //if we haven't changed type diff --git a/code/game/turfs/simulated/wall/misc_walls.dm b/code/game/turfs/simulated/wall/misc_walls.dm index 6320b21860f..1cc84597895 100644 --- a/code/game/turfs/simulated/wall/misc_walls.dm +++ b/code/game/turfs/simulated/wall/misc_walls.dm @@ -94,10 +94,6 @@ return 1 return ..() -/turf/closed/wall/clockwork/ratvar_act() - for(var/mob/M in src) - M.ratvar_act() - /turf/closed/wall/clockwork/narsie_act() ..() if(istype(src, /turf/closed/wall/clockwork)) //if we haven't changed type diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 6fb8221effa..7511d758dbf 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -259,10 +259,7 @@ var/converted = (prob(40) || force) if(converted) ChangeTurf(/turf/closed/wall/clockwork) - for(var/I in src) - var/atom/A = I - if(ismob(A) || converted) - A.ratvar_act() + ..(converted) /turf/closed/wall/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user) return 0 diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index d07d5563d94..3d9019085e5 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -286,9 +286,12 @@ if(A.level >= affecting_level) A.ex_act(severity, target) -/turf/ratvar_act() - for(var/mob/M in src) - M.ratvar_act() +/turf/ratvar_act(force) + var/converted = (prob(40) || force) + for(var/I in src) + var/atom/A = I + if(ismob(A) || converted) + A.ratvar_act() /turf/proc/add_blueprints(atom/movable/AM) var/image/I = new diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index 6c9c98da31d..3a19ec72b10 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -25,8 +25,8 @@ /obj/singularity/narsie/large/New() ..() - world << "NAR-SIE HAS RISEN" - world << pick('sound/hallucinations/im_here1.ogg', 'sound/hallucinations/im_here2.ogg') + send_to_playing_players("NAR-SIE HAS RISEN") + send_to_playing_players(pick('sound/hallucinations/im_here1.ogg', 'sound/hallucinations/im_here2.ogg')) var/area/A = get_area(src) if(A)