diff --git a/code/modules/halo/overmap/base_npc_ships.dm b/code/modules/halo/overmap/base_npc_ships.dm index 1c16eb643e50b..3eebdfd05bf74 100644 --- a/code/modules/halo/overmap/base_npc_ships.dm +++ b/code/modules/halo/overmap/base_npc_ships.dm @@ -205,6 +205,9 @@ GLOBAL_LIST_INIT(om_base_sectors, list()) return ..() /obj/effect/overmap/ship/npc_ship/Process() + //Let's wait until gametime to do anything. + if(ticker.current_state != 3) + return //despawn after a while if(world.time >= unload_at && unload_at != 0) lose_to_space() diff --git a/code/modules/halo/overmap/overmap_effects.dm b/code/modules/halo/overmap/overmap_effects.dm index fb92df0a0a32c..74ff61ad49810 100644 --- a/code/modules/halo/overmap/overmap_effects.dm +++ b/code/modules/halo/overmap/overmap_effects.dm @@ -54,7 +54,7 @@ /datum/overmap_effect/proc/effect_created() /datum/overmap_effect/proc/process_effect() - if(world.time >= live_until) + if(world.time >= live_until || ticker.current_state != 3) return 0 return 1 @@ -114,7 +114,7 @@ if(!.) target.weapon_miss_chance = olddodge return - if(prob(GAS_CLOUD_EMP_CHANCE)) + if(prob(GAS_CLOUD_EMP_CHANCE) && target.map_z) var/turf/emp_center = locate(rand(target.map_bounds[1],target.map_bounds[3]),rand(target.map_bounds[2],target.map_bounds[4]),pick(target.map_z)) empulse(emp_center, rand(2, 7), rand(7, 14)) return 1