代码ts化, 修复编译上传脚本

This commit is contained in:
jie
2024-11-03 22:04:05 +08:00
parent 916150eea2
commit 57c28c29ef
21 changed files with 410 additions and 216 deletions

179
dist/main.js vendored
View File

@@ -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;