From 0c1c1adff724dc3cdab2bc190d5de44fc9fc6dad Mon Sep 17 00:00:00 2001 From: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com> Date: Tue, 1 Mar 2022 19:49:26 -0500 Subject: [PATCH] Minor refactor for /obj/projectile/proc/select_target (#65018) --- code/modules/projectiles/projectile.dm | 29 +++++++++++--------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index b04d0fc659f..b406b7e65d3 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -452,32 +452,27 @@ * 4. Turf * 5. Nothing */ -/obj/projectile/proc/select_target(turf/T, atom/target, atom/bumped) +/obj/projectile/proc/select_target(turf/our_turf, atom/target, atom/bumped) // 1. original if(can_hit_target(original, TRUE, FALSE, original == bumped)) return original - var/list/atom/possible = list() // let's define these ONCE - var/list/atom/considering = list() + var/list/atom/considering = list() // let's define this ONCE // 2. mobs - possible = typecache_filter_list(T, GLOB.typecache_living) // living only - for(var/i in possible) - if(!can_hit_target(i, i == original, TRUE, i == bumped)) - continue - considering += i + for(var/mob/living/iter_possible_target in our_turf) + if(can_hit_target(iter_possible_target, iter_possible_target == original, TRUE, iter_possible_target == bumped)) + considering += iter_possible_target if(considering.len) - var/mob/living/M = pick(considering) - return M.lowest_buckled_mob() - considering.len = 0 + var/mob/living/hit_living = pick(considering) + return hit_living.lowest_buckled_mob() // 3. objs and other dense things - for(var/i in T.contents) - if(!can_hit_target(i, i == original, TRUE, i == bumped)) - continue - considering += i + for(var/i in our_turf) + if(can_hit_target(i, i == original, TRUE, i == bumped)) + considering += i if(considering.len) return pick(considering) // 4. turf - if(can_hit_target(T, T == original, TRUE, T == bumped)) - return T + if(can_hit_target(our_turf, our_turf == original, TRUE, our_turf == bumped)) + return our_turf // 5. nothing // (returns null)