From 3731de323d605994c6dcf4b3f139a37a4e473ba0 Mon Sep 17 00:00:00 2001 From: Renat Nasyrov Date: Thu, 9 Apr 2026 19:32:13 +0200 Subject: [PATCH 1/2] Deduplicate direction selection code in Field.js. --- jsiso/tile/Field.js | 44 ++++++++++++++------------------------------ 1 file changed, 14 insertions(+), 30 deletions(-) diff --git a/jsiso/tile/Field.js b/jsiso/tile/Field.js index 3cac0c2..bc5017f 100644 --- a/jsiso/tile/Field.js +++ b/jsiso/tile/Field.js @@ -948,39 +948,23 @@ function(EffectLoader, Emitter, utils) { } } else { - if (direction === "up") { - drawY += distance * curZoom; - // Offset moving for particle effect particles - for (particle in particleMapHolder) { - for (subPart in particleMapHolder[particle]) { - particleMapHolder[particle][subPart].ShiftBy(0, distance * curZoom); - } - } - } - else if (direction === "down") { - drawY -= distance * curZoom; - // Offset moving for particle effect particles - for (particle in particleMapHolder) { - for (subPart in particleMapHolder[particle]) { - particleMapHolder[particle][subPart].ShiftBy(0, -distance * curZoom); - } - } - } - else if (direction === "left") { - drawX += distance * curZoom; - // Offset moving for particle effect particles - for (particle in particleMapHolder) { - for (subPart in particleMapHolder[particle]) { - particleMapHolder[particle][subPart].ShiftBy(distance * curZoom, 0); - } - } - } - else if (direction === "right") { - drawX -= distance * curZoom; + var _delta = { + "up": {"x": 0, "y": 1}, + "down": {"x": 0, "y": -1}, + "left": {"x": 1, "y": 0}, + "right": {"x": -1, "y": 0} + }[direction]; + if (_delta) { + var _scaled_delta = { + "x": delta.x * distance * curZoom, + "y": delta.y * distance * curZoom + }; + drawX += _scaled_delta.x; + drawY += _scaled_delta.y; // Offset moving for particle effect particles for (particle in particleMapHolder) { for (subPart in particleMapHolder[particle]) { - particleMapHolder[particle][subPart].ShiftBy(-distance * curZoom, 0); + particleMapHolder[particle][subPart].ShiftBy(_scaled_delta.x, _scaled_delta.y); } } } From a933d4fae87139fd6049a8dbb1e8a8fb8319ca17 Mon Sep 17 00:00:00 2001 From: Renat Nasyrov Date: Thu, 9 Apr 2026 20:02:51 +0200 Subject: [PATCH 2/2] Deduplicate direction selection code in Field.js. --- jsiso/tile/Field.js | 62 ++++++++++++++++++++------------------------- 1 file changed, 28 insertions(+), 34 deletions(-) diff --git a/jsiso/tile/Field.js b/jsiso/tile/Field.js index bc5017f..b006d05 100644 --- a/jsiso/tile/Field.js +++ b/jsiso/tile/Field.js @@ -929,45 +929,39 @@ function(EffectLoader, Emitter, utils) { var particle, subPart; distance = distance || tileHeight; - if (isometric) { - if (direction === "up") { - drawY += distance / 2 * curZoom; - drawX += distance * curZoom; - } - else if (direction === "down") { - drawY += distance / 2 * curZoom; - drawX -= distance * curZoom; - } - else if (direction === "left") { - drawY -= distance / 2 * curZoom; - drawX -= distance * curZoom; - } - else if (direction === "right") { - drawY -= distance / 2 * curZoom; - drawX += distance * curZoom; - } - } - else { - var _delta = { + var scaled_step = distance * curZoom; + + var _delta = { + false: { "up": {"x": 0, "y": 1}, "down": {"x": 0, "y": -1}, "left": {"x": 1, "y": 0}, "right": {"x": -1, "y": 0} - }[direction]; - if (_delta) { - var _scaled_delta = { - "x": delta.x * distance * curZoom, - "y": delta.y * distance * curZoom - }; - drawX += _scaled_delta.x; - drawY += _scaled_delta.y; - // Offset moving for particle effect particles - for (particle in particleMapHolder) { - for (subPart in particleMapHolder[particle]) { - particleMapHolder[particle][subPart].ShiftBy(_scaled_delta.x, _scaled_delta.y); - } - } + }, + true: { + "up": {"x": 1, "y": 0.5}, + "down": {"x": -1, "y": 0.5}, + "left": {"x": -1, "y": -0.5}, + "right": {"x": 1, "y": -0.5} } + }[!!isometric][direction]; + + if !(_delta) return; + + var _scaled_delta = { + "x": _delta.x * scaled_step, + "y": _delta.y * scaled_step + }; + drawX += _scaled_delta.x; + drawY += _scaled_delta.y; + + if (!isometric) { + // Offset moving for particle effect particles + for (particle in particleMapHolder) { + for (subPart in particleMapHolder[particle]) { + particleMapHolder[particle][subPart].ShiftBy(_scaled_delta.x, _scaled_delta.y); + } + } } } };