From bb2953b28378e2ba50f79de5ad093118105954dc Mon Sep 17 00:00:00 2001 From: Mloc Date: Wed, 1 Oct 2014 08:50:28 +0100 Subject: [PATCH 1/4] re-port trange() from tg was lost in the multiz update Signed-off-by: Mloc --- code/__HELPERS/game.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 8c6befa38f..5b828f8c9b 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -90,6 +90,14 @@ //turfs += centerturf return atoms +/proc/trange(rad = 0, turf/centre = null) //alternative to range (ONLY processes turfs and thus less intensive) + if(!centre) + return + + var/turf/x1y1 = locate(((centre.x-rad)<1 ? 1 : centre.x-rad),((centre.y-rad)<1 ? 1 : centre.y-rad),centre.z) + var/turf/x2y2 = locate(((centre.x+rad)>world.maxx ? world.maxx : centre.x+rad),((centre.y+rad)>world.maxy ? world.maxy : centre.y+rad),centre.z) + return block(x1y1,x2y2) + /proc/get_dist_euclidian(atom/Loc1 as turf|mob|obj,atom/Loc2 as turf|mob|obj) var/dx = Loc1.x - Loc2.x var/dy = Loc1.y - Loc2.y From 39781326cc9e40e6b71db54abbc5919a962087cd Mon Sep 17 00:00:00 2001 From: Mloc Date: Wed, 1 Oct 2014 09:54:39 +0100 Subject: [PATCH 2/4] fix for artifact teleportation effect will no longer teleport you inside random objects. Signed-off-by: Mloc --- .../artifact/effects/unknown_effect_teleport.dm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_teleport.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_teleport.dm index 254be3f3d0..8eca5f355d 100644 --- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_teleport.dm +++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_teleport.dm @@ -13,10 +13,11 @@ var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread() sparks.set_up(3, 0, get_turf(user)) sparks.start() - // - user.loc = pick(orange(get_turf(holder), 50)) + + user.Move(pick(trange(50, get_turf(holder)))) + sparks = new /datum/effect/effect/system/spark_spread() - sparks.set_up(3, 0, get_turf(user)) + sparks.set_up(3, 0, user.loc) sparks.start() /datum/artifact_effect/teleport/DoEffectAura() From d43dbaa7b5b9acfeea3c9f60dbab112ab4e36266 Mon Sep 17 00:00:00 2001 From: Mloc Date: Wed, 1 Oct 2014 10:13:15 +0100 Subject: [PATCH 3/4] resolves #6260 chance was being checked twice, for some reason. Signed-off-by: Mloc --- code/modules/virus2/items_devices.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/modules/virus2/items_devices.dm b/code/modules/virus2/items_devices.dm index 8736486734..b8604b67f8 100644 --- a/code/modules/virus2/items_devices.dm +++ b/code/modules/virus2/items_devices.dm @@ -58,12 +58,11 @@ return ..() if(prob(50)) - user << "\The [src] shatters!" + user << "\The [src] shatters!" if(virus2.infectionchance > 0) for(var/mob/living/carbon/target in view(1, get_turf(src))) if(airborne_can_reach(get_turf(src), get_turf(target))) - if(get_infection_chance(target)) - infect_virus2(target,src.virus2) + infect_virus2(target, src.virus2) del src /obj/item/weapon/virusdish/examine() From ee4eafa660af3bf1fb192d48465959c46a342a03 Mon Sep 17 00:00:00 2001 From: Mloc Date: Wed, 1 Oct 2014 10:17:55 +0100 Subject: [PATCH 4/4] fixes #6090 Signed-off-by: Mloc --- code/ZAS/Airflow.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/ZAS/Airflow.dm b/code/ZAS/Airflow.dm index 67ace07fe2..5d63512c14 100644 --- a/code/ZAS/Airflow.dm +++ b/code/ZAS/Airflow.dm @@ -103,7 +103,7 @@ obj/item/check_airflow_movable(n) density = 1 od = 1 while(airflow_speed > 0) - if(airflow_speed <= 0) return + if(airflow_speed <= 0) break airflow_speed = min(airflow_speed,15) airflow_speed -= vsc.airflow_speed_decay if(airflow_speed > 7) @@ -120,9 +120,9 @@ obj/item/check_airflow_movable(n) if ((!( src.airflow_dest ) || src.loc == src.airflow_dest)) src.airflow_dest = locate(min(max(src.x + xo, 1), world.maxx), min(max(src.y + yo, 1), world.maxy), src.z) if ((src.x == 1 || src.x == world.maxx || src.y == 1 || src.y == world.maxy)) - return + break if(!istype(loc, /turf)) - return + break step_towards(src, src.airflow_dest) if(ismob(src) && src:client) src:client:move_delay = world.time + vsc.airflow_mob_slowdown