代码ts化, 修复编译上传脚本
This commit is contained in:
179
dist/main.js
vendored
179
dist/main.js
vendored
@@ -3333,8 +3333,183 @@ const errorMapper = function (next) {
|
||||
}
|
||||
};
|
||||
|
||||
var loop = errorMapper(function () {
|
||||
console.log("Game Start");
|
||||
function FindCapacity(creep) {
|
||||
return creep.room.find(FIND_STRUCTURES, {
|
||||
filter: (structure) => {
|
||||
let type = structure.structureType;
|
||||
return ((type == STRUCTURE_EXTENSION ||
|
||||
type == STRUCTURE_SPAWN) &&
|
||||
structure.store.getFreeCapacity() != null && structure.store.getFreeCapacity() > 0);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function Harvest(creep) {
|
||||
if (creep.store.getFreeCapacity() > 0) {
|
||||
let sources = creep.room.find(FIND_SOURCES);
|
||||
if (creep.harvest(sources[0]) == ERR_NOT_IN_RANGE) {
|
||||
creep.moveTo(sources[0], { visualizePathStyle: { stroke: "#ffaa00" } });
|
||||
}
|
||||
}
|
||||
else {
|
||||
let targets = FindCapacity(creep);
|
||||
if (targets.length > 0) {
|
||||
if (creep.transfer(targets[0], RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
|
||||
creep.moveTo(targets[0], { visualizePathStyle: { stroke: "#ffffff" } });
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function Build(creep) {
|
||||
if (creep.memory.working && creep.store[RESOURCE_ENERGY] == 0) {
|
||||
creep.memory.working = false;
|
||||
creep.say("harvest");
|
||||
}
|
||||
if (!creep.memory.working && creep.store.getFreeCapacity(RESOURCE_ENERGY) == 0) {
|
||||
creep.memory.working = true;
|
||||
creep.say("builder");
|
||||
}
|
||||
if (creep.memory.working) {
|
||||
let target = creep.room.find(FIND_CONSTRUCTION_SITES);
|
||||
if (target.length > 0) {
|
||||
if (creep.build(target[0]) == ERR_NOT_IN_RANGE) {
|
||||
creep.moveTo(target[0], { visualizePathStyle: { stroke: "#ffaa00" } });
|
||||
}
|
||||
}
|
||||
else {
|
||||
let targets = FindCapacity(creep);
|
||||
if (targets.length > 0) {
|
||||
target.sort();
|
||||
if (creep.transfer(targets[0], RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
|
||||
creep.moveTo(targets[0], { visualizePathStyle: { stroke: "#ffaa00" } });
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
creep.memory.working = false;
|
||||
let sources = creep.room.find(FIND_SOURCES);
|
||||
if (creep.harvest(sources[0]) == ERR_NOT_IN_RANGE) {
|
||||
creep.moveTo(sources[0], { visualizePathStyle: { stroke: "#ffaa00" } });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**@param {Creep} creep */
|
||||
function Upgrade(creep) {
|
||||
if (creep.memory.working && creep.store[RESOURCE_ENERGY] == 0) {
|
||||
creep.memory.working = false;
|
||||
creep.say('🔄 harvest');
|
||||
}
|
||||
if (!creep.memory.working && creep.store.getFreeCapacity() == 0) {
|
||||
creep.memory.working = true;
|
||||
creep.say('⚡ upgrade');
|
||||
}
|
||||
if (creep.memory.working) {
|
||||
if (creep.upgradeController(creep.room.controller) == ERR_NOT_IN_RANGE) {
|
||||
creep.moveTo(creep.room.controller, { visualizePathStyle: { stroke: '#ffffff' } });
|
||||
}
|
||||
}
|
||||
else {
|
||||
var sources = creep.room.find(FIND_SOURCES);
|
||||
if (creep.harvest(sources[0]) == ERR_NOT_IN_RANGE) {
|
||||
creep.moveTo(sources[0], { visualizePathStyle: { stroke: '#ffaa00' } });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let HARVESTER_COUNT = 2;
|
||||
let BUILDER_COUNT = 2;
|
||||
let UPGRADER_COUNT = 6;
|
||||
|
||||
var createDefaultHarvester = (spawn) => {
|
||||
let name = "Harvester" + Game.time;
|
||||
return spawn.spawnCreep([WORK, CARRY, MOVE], name, {
|
||||
memory: {
|
||||
role: "Harvester",
|
||||
working: false
|
||||
}
|
||||
});
|
||||
};
|
||||
var createDefaultBuilder = (spawn) => {
|
||||
let name = "Builder" + Game.time;
|
||||
return spawn.spawnCreep([WORK, CARRY, MOVE], name, {
|
||||
memory: {
|
||||
role: "Builder",
|
||||
working: false
|
||||
}
|
||||
});
|
||||
};
|
||||
var createDefaultUpgrader = (spawn) => {
|
||||
let name = "Upgrader" + Game.time;
|
||||
return spawn.spawnCreep([WORK, CARRY, MOVE], name, {
|
||||
memory: {
|
||||
role: "Upgrader",
|
||||
working: false
|
||||
}
|
||||
});
|
||||
};
|
||||
function SpawnCreep(spawn) {
|
||||
if (spawn.spawning)
|
||||
return;
|
||||
let harvesters = _.filter(Game.creeps,
|
||||
/**@param {Creep} creep*/
|
||||
(creep) => {
|
||||
return creep.memory.role == "Harvester";
|
||||
});
|
||||
let builders = _.filter(Game.creeps,
|
||||
/**@param {Creep} creep*/
|
||||
(creep) => {
|
||||
return creep.memory.role == "Builder";
|
||||
});
|
||||
let upgraders = _.filter(Game.creeps,
|
||||
/**@param {Creep} creep*/
|
||||
(creep) => {
|
||||
return creep.memory.role == "Upgrader";
|
||||
});
|
||||
if (harvesters.length < HARVESTER_COUNT) {
|
||||
if (createDefaultHarvester(spawn) == 0) {
|
||||
console.log("Spawn Harvester");
|
||||
}
|
||||
}
|
||||
if (upgraders.length < UPGRADER_COUNT) {
|
||||
if (createDefaultUpgrader(spawn) == 0) {
|
||||
console.log("Spawn Upgrader");
|
||||
}
|
||||
}
|
||||
if (builders.length < BUILDER_COUNT) {
|
||||
if (createDefaultBuilder(spawn) == 0) {
|
||||
console.log("Spawn Builder");
|
||||
}
|
||||
}
|
||||
if (spawn.spawning) {
|
||||
var spawningCreep = Game.creeps[spawn.spawning.name];
|
||||
spawn.room.visual.text('🛠️' + spawningCreep.memory.role, spawn.pos.x + 1, spawn.pos.y, { align: 'left', opacity: 0.8 });
|
||||
}
|
||||
}
|
||||
|
||||
const loop = errorMapper(() => {
|
||||
let mainSpawn = Game.spawns["Spawn1"];
|
||||
SpawnCreep(mainSpawn);
|
||||
for (var name in Memory.creeps) {
|
||||
if (!Game.creeps[name]) {
|
||||
delete Memory.creeps[name];
|
||||
console.log("clearing non-existing creep memory:", name);
|
||||
}
|
||||
}
|
||||
for (var name in Game.creeps) {
|
||||
let creep = Game.creeps[name];
|
||||
if (creep.memory.role == "Harvester") {
|
||||
Harvest(creep);
|
||||
}
|
||||
else if (creep.memory.role == "Upgrader") {
|
||||
Upgrade(creep);
|
||||
}
|
||||
else if (creep.memory.role == "Builder") {
|
||||
Build(creep);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
exports.loop = loop;
|
||||
|
||||
Reference in New Issue
Block a user