Skip to content

creep.moveTo calculates new Path when creep fatigued and reusePath and visualizePathStyle is used #130

Open
@Xtrapat

Description

@Xtrapat

I don't know if this is intended or not, but if a creep uses moveTo over multiple Ticks while using the Options reusePath and visualizePathStyle, then every Tick the creep is fatigued when calling moveTo, a new Path is generated instead of using the one already saved in memory.

Example call over multiple Ticks: creep.moveTo(target, {reusePath: 50, visualizePathStyle: {})

I think the issue lies here:

engine/src/game/creeps.js

Lines 173 to 175 in 92a3fff

if(data(this.id).fatigue > 0 && (!opts || !opts.visualizePathStyle)) {
return C.ERR_TIRED;
}

This gets skipped when visualizePathStyle is in use, regardless of the .fatigue value.
Then when getting to this Point, at the end of the reusePath Block:

engine/src/game/creeps.js

Lines 271 to 283 in 92a3fff

var result = this.moveByPath(path);
if(result == C.OK) {
return C.OK;
}
}
}
if(opts.noPathFinding) {
return C.ERR_NOT_FOUND;
}
var path = this.pos.findPathTo(targetPos, opts);

var result = this.moveByPath(path); results, down the line in creep.move(), with C.ERR_TIRED, but creep.moveTo only returns on OK, thus continuing further down and generating a new Path at this.pos.findPathTo(targetPos, opts);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions