Beispiel #1
0
    run: function (flag) {
        if (!Game.rooms[flag.pos.roomName]) return;

        //console.log("flagMineral run flag",flag);
        if (gf.isStructureTypeAtPos(flag.pos, STRUCTURE_EXTRACTOR)) {
            flag.memory.extractor = true;
        }

        if (flag.memory.extractor) {
            if ( roomBase.isMyRoom(flag.pos.roomName)) {
                flag.memory.linkerFrom = { room : flag.pos.roomName, distance : 0 };
                flag.memory.porterFrom = { room : flag.pos.roomName, distance : 0 };
            } else  {
                console.log(roomBase.isNeutralRoom(flag.pos.roomName),
                    "flagMineral flag", flag, JSON.stringify(flag.memory));
                //var atPos = flag.pos.lookFor(LOOK_STRUCTURES);
                //var extractorFound = false;
                //for ( var i = 0 ; i < atPos.length ; i++ ){
                 //   if (atPos.structureType == STRUCTURE_EXTRACTOR)
                 //       extractorFound = true;
                //}
                if ( roomBase.isNeutralRoom(flag.pos.roomName)
                    && flag.memory.extractor ) {
                    console.log("flagMineral flag extractor found", flag);
                    flag.memory.linkerFrom = this.linkerSupplyRoom(flag);
                  //  flag.memory.porterFrom = this.porterSupplyRoom(flag);
                }
            }
        }
    },
    draftNewPolicyId: function(oldPolicy) {
        if (this.readyAttackKeeper(oldPolicy)) {
            var insideKeeperRoom = roomBase.justInsideNextRoom(
                oldPolicy.flag.pos.roomName, oldPolicy.keeperRoom, oldPolicy.flag.pos);

            if (insideKeeperRoom) {
                oldPolicy.flag.setPosition(insideKeeperRoom);
                this.creepsMoveToFlag(currentPolicy)
                return policyFrameworks.policyKeeperSectorAttack(oldPolicy, true);
            }
        }
        return oldPolicy;
    },
TaskLinkerRepairDump.prototype.doTask = function(creep, task) {
    var flag = Game.flags[task.flagName];
    var container = Game.getObjectById(flag.memory.mainDumpId);
    if (!container || container.structureType != STRUCTURE_CONTAINER ) {
        TaskFlexiLink.prototype.resetState(creep, task);
    }
    var timeOperating = Game.time - flag.memory.operator.ageStarted;
    var workParts = creep.getActiveBodyparts(WORK);
    var repairInterval;
    if (roomBase.isMyRoom(creep.room.name)) {
        repairInterval = 10 * workParts;
    } else {
        repairInterval = 2 * workParts;
    }
    if ( timeOperating % repairInterval == 0 ) {
        creep.repair(container);
    } else {
        TaskLinkerDump.prototype.doTask(creep, task);
    }
};
Beispiel #4
0
module.exports.loop = function () {
    //profiler.wrap(function() {
   // console.log("************************ Start ", Game.time," *********************************");
    PathFinder.use(true);
    ayrtepPad.top();
    freememory.freeCreeps();

    raceBase.moveCreeps();
    buildingBase.moveBuildings();
    policy.enactPolicies();


    roomBase.examineRooms();
    if (Game.time % gc.FLAG_UPDATE_RATE == 0 ){
        flagBase.run();
    }
    ayrtepPad.bottom();

    console.log("************************ End ",  Game.time, " *********************************");
   // }) // profiler.wrap(function()
};
Beispiel #5
0
    run: function (flag) {
       // console.log(flag,"flagLink run",JSON.stringify(flag));
        if (!flag.room || !flag.memory)
            return;
        if ( roomBase.isMyRoom(flag.pos.roomName)) {
            if (flag.room.storage) {
                if (flag.pos.inRangeTo(flag.room.storage, 2)) {
                    flag.memory.isStorageLink = true;
                } else {
                    flag.memory.isStorageLink = false;
                }
            }
            if (flag.room.terminal) {
                if (flag.pos.inRangeTo(flag.room.terminal, 2)) {
                    flag.memory.isTerminalLink = true;
                } else {
                    flag.memory.isTerminalLink = false;
                }
            }
            if (!flag.memory.isStorageLink) {

                var links = flag.room.find(FIND_MY_STRUCTURES, {
                    filter: { structureType: STRUCTURE_LINK }
                });
               // console.log(flag,"flag link list of links in room",links);
                for ( var i = 0 ; i < links.length ; i++ ) {
                    var linkFlag = Game.flags[links[i].id];
                 //   console.log(flag,"flag link in for i",i,"linkFlag",linkFlag);
                    if (linkFlag && linkFlag.memory) {
                        if (linkFlag.memory.isStorageLink ) {
                            flag.memory.nextLinkId = linkFlag.name;
                            break;
                        }
                        //else if( linkFlag.memory.isTerminalLink )
                        //    flag.memory.nextLinkId = linkFlag.name;
                    }
                } //for
            } // if (!flag.memory.isStorageLink)
        } // if ( roomBase.isMyRoom(flag.pos.roomName))
    }