Clone targetPos in attackPlan

On a rejoined client the data isn't the same anymore. But it's equal.
Likely this is because the data isn't aquired at the same turn.

This could also be solved more generally by copying all data which is
pushed to the AI. Or by using the same serializer for AI as for the rest
of the simulation.
This commit is contained in:
phosit 2025-09-24 16:40:58 +02:00
parent 3ddf101a06
commit 55f2d356ff
No known key found for this signature in database
GPG key ID: C9430B600671C268

View file

@ -1239,7 +1239,7 @@ AttackPlan.prototype.getPathToTarget = function(gameState, fixedRallyPoint = fal
const endPos = { "x": this.targetPos[0], "y": this.targetPos[1] };
const path = Engine.ComputePath(startPos, endPos, gameState.getPassabilityClassMask("large"));
this.path = [];
this.path.push(this.targetPos);
this.path.push(clone(this.targetPos));
for (const p in path)
this.path.push([path[p].x, path[p].y]);
this.path.push(this.rallyPoint);
@ -2271,7 +2271,7 @@ AttackPlan.prototype.Serialize = function()
"isBlocked": this.isBlocked,
"targetPlayer": this.targetPlayer,
"target": this.target !== undefined ? this.target.id() : undefined,
"targetPos": this.targetPos,
"targetPos": clone(this.targetPos),
"uniqueTargetId": this.uniqueTargetId,
"path": this.path,
"unitCollUpdateArray": this.unitCollUpdateArray