Beispiel #1
0
TaskMovePos.prototype.doTask = function(creep, task) {
    if (task.finsihCondition) {
        var module = require(task.finishModule);
        var rtv = module[task.finsihCondition](creep);
        if (rtv) return rtv;
    }
    if (task.startRoom === undefined) { //First call to function. Initialise data.
        task.startRoom = creep.room.name;
        if (undefined === task.roomPos) {
            console.log(creep,"position undefined in TaskMovePos");
            return gc.RESULT_FINISHED;
        }
        task.roomName = task.roomPos.roomName; // ToDP error
        task.x = task.roomPos.x;
        task.y = task.roomPos.y;
        task.pathIndex = 0;
    }
    if (undefined == task.roomPos)
        return gc.RESULT_FINISHED;
    task.roomName = task.roomPos.roomName;
    if (creep.room.name == task.roomPos.roomName
        && !TaskMoveRoom.prototype.atBorder(creep.pos.x,creep.pos.y)) {
        return TaskMoveXY.prototype.doTask(creep, task);
    }
    TaskMoveRoom.prototype.doTask(creep, task, task.customMoveToFunction, task.functionModule);
    return  gc.RESULT_UNFINISHED;
}
Beispiel #2
0
TaskFollow.prototype.doTask = function(creep, task) {
    var target = Game.getObjectById(task.targetId)
    if (!target) return gc.RESULT_FINISHED
    console.log(creep,"TaskFollow",target);
    if (!target) return gc.RESULT_FINISHED;
    if (target.room == creep.room) {
        var result;
        if (task.customMoveToFunction) {
            if(task.functionModule) {
                var fModule = require(task.functionModule);
                result = fModule[task.customMoveToFunction](creep, target);
            } else {
                result = task.customMoveToFunction(creep, target);
            }
        } else {
            result = creep.moveTo(target);
        }

        //creep.moveTo(target);
    } else {
        task.roomName = target.room;
        //console.log(creep,"follow targt",target,target.room, target.pos.roomName)
        TaskMoveRoom.prototype.doTask(creep, task);
    }
    if (creep.getActiveBodyparts(HEAL) > 0) {
        tasks.heal(creep);
    }
    return  gc.RESULT_UNFINISHED;
};