From a2f3e5f1b9f2d17ab1cebd4f28f4d98fafb03ac8 Mon Sep 17 00:00:00 2001 From: EnterTheJake <102721711+EnterTheJake@users.noreply.github.com> Date: Mon, 23 Sep 2024 01:35:24 +0200 Subject: [PATCH] [NO GBP] Nerfs Void Conduit. (#86808) ## About The Pull Request Void conduit has been given slightly less range and the pulse affects only structures within LoS. ## Why It's Good For The Game I tested this skill in game a couple of times, it's admittedly a bit overtuned, the pulse ignoring LoS leads to a lot of cheesy scenarios, like RCDing walls all around the portal while being able to space multiple areas. It's still a very good spell, just less insane. ## Changelog :cl: balance: Void Conduit has less range and no longer ignores Line of Sight. /:cl: --- .../antagonists/heretic/magic/void_conduit.dm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/code/modules/antagonists/heretic/magic/void_conduit.dm b/code/modules/antagonists/heretic/magic/void_conduit.dm index 07ca0cbe2ab..bd7ba950dce 100644 --- a/code/modules/antagonists/heretic/magic/void_conduit.dm +++ b/code/modules/antagonists/heretic/magic/void_conduit.dm @@ -33,7 +33,7 @@ ///List of tiles that we added an overlay to, so we can clear them when the conduit is deleted var/list/overlayed_turfs = list() ///How many tiles far our effect is - var/effect_range = 12 + var/effect_range = 8 ///id of the deletion timer var/timerid ///Audio loop for the rift being alive @@ -44,7 +44,12 @@ soundloop = new(src, start_immediately = TRUE) timerid = QDEL_IN_STOPPABLE(src, 1 MINUTES) START_PROCESSING(SSobj, src) - for(var/turf/affected_turf as anything in RANGE_TURFS(effect_range, src)) + build_view_turfs() + +/obj/structure/void_conduit/proc/build_view_turfs() + for(var/turf/affected_turf as anything in overlayed_turfs) + affected_turf.cut_overlay(void_overlay) + for(var/turf/affected_turf as anything in view(effect_range, src)) if(!isopenturf(affected_turf)) continue affected_turf.add_overlay(void_overlay) @@ -61,12 +66,13 @@ return ..() /obj/structure/void_conduit/process(seconds_per_tick) + build_view_turfs() do_conduit_pulse() ///Sends out a pulse /obj/structure/void_conduit/proc/do_conduit_pulse() var/list/turfs_to_affect = list() - for(var/turf/affected_turf as anything in RANGE_TURFS(effect_range, loc)) + for(var/turf/affected_turf as anything in view(effect_range, loc)) var/distance = get_dist(loc, affected_turf) if(!turfs_to_affect["[distance]"]) turfs_to_affect["[distance]"] = list()