Range bug in beginner level mobile artillery


#1

There seems to be a small bug in mobile artillery beginner level. The range distance of the artillery unit is 30 and if an attack is made at 30, it fails with a range/distance failure. Example:

this.moveXY(45,30);

// fails:
// "{x: 45, y:60, z: 0} out of range (distance 30 / range 30)
this.attackXY(45,60); 

Looks to me like a less-than check should be a less-than/equal-to check.


#2

I guess, but it’s just a minor error. You could easily move a space closer.


#3

As another player I’d just like to point out that I just tried this on the Mobile Artillery level and it worked for me. I wonder if someone fixed it or maybe you are looking at a different level.

If I go over to the level editor the attack component does say

return true if distance <= @attackRange

But since it is displaying toFixed(0) in the out of range error it’s hard to tell if it is a rounding error or something.


#4

Hmm, I thought i had an idea for what might be happening: the Artillery thinks its moveXY is done when it gets very very close to (45, 30) and then tries to shoot at (45, 60) when it is still about 30.001 units away. But I just tried to reproduce it and couldn’t. Could you post the full example code you’re using, or a multiplayer link to it? It could be something even more tricky.


#5

Sorry I took so long to reply; vacation and all. Here’s the full example:

this.moveXY(30, 26);  // Move into range
this.attackXY(46, 5);  // Shoot once in the middle of the ogres

this.moveXY(49, 36);
this.attackXY(69, 56);

this.moveXY(40, 31);
this.attackXY(50, 38);

this.moveXY(45, 30);
this.attackXY(45, 60);

this.moveXY(40, 31);
this.attackXY(43, 43);

Interestingly enough, I tried some other examples where there was a distance of 30 and could not reproduce it either. Example:

this.moveXY(49, 36);
this.attackXY(49, 66); // works fine!

So must be pretty subtle.


#6

Cool, thanks for the example. I’ve added an issue over here in the GitHub; I think some sort of tiny leeway on the range check will do it.


#7

Should be fixed now by one of our Archmages; let me know if you run into any more issues with it.