From be616f3e9320303e10f5e02344706169f6a1481e Mon Sep 17 00:00:00 2001 From: TheGamerdk <5618080+TheGamerdk@users.noreply.github.com> Date: Tue, 27 Jun 2023 09:44:26 +0200 Subject: [PATCH] Cluster OB now respects if a hive core is created while it is firing. (#3600) # About the pull request It checks for OB protection on the turf now. It'll remove the turf from consideration and try a different one. If no valid turfs remain the OB stops. # Explain why it's good for the game Seems fair enough, very niche case though. # Testing Photographs and Procedure # Changelog :cl: balance: Cluster OBs will now no longer hit turfs that have gotten OB protection after the initial OB was fired. /:cl: --- code/modules/cm_marines/orbital_cannon.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/modules/cm_marines/orbital_cannon.dm b/code/modules/cm_marines/orbital_cannon.dm index 431b03fb31d3..14e990809f4f 100644 --- a/code/modules/cm_marines/orbital_cannon.dm +++ b/code/modules/cm_marines/orbital_cannon.dm @@ -484,14 +484,13 @@ var/list/ob_type_fuel_requirements var/list/turf_list = list() for(var/turf/T in range(range_num, target)) - if(protected_by_pylon(TURF_PROTECTION_OB, T)) - continue - turf_list += T for(var/i = 1 to total_amount) for(var/k = 1 to instant_amount) var/turf/U = pick(turf_list) + if(protected_by_pylon(TURF_PROTECTION_OB, U)) //If the turf somehow gained OB protection while the cluster was firing + continue fire_in_a_hole(U) sleep(delay_between_clusters)