Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- "use strict";
- const Job = require("class.Job");
- const Creeper = require("class.Creeper");
- class UpgradeJob extends Job {
- constructor(jobId) {
- super(jobId);
- this.jobType = "upgrade";
- this.creepCount = 1;
- }
- get creeperCount() {
- return this.memory.cC || 1;
- }
- set creeperCount(v) {
- this.memory.cC = v;
- }
- get creepers() {
- if( !this.__creepers ) {
- this.__creepers = [];
- _.map(this.memory.c, c => this._creepers.push( new Creeper(c.id) ) );
- }
- return this.__creepers;
- }
- set creepers(v) {
- this.memory.c = _.map(v, c => c.id );
- return true;
- }
- prepareJob( ) {
- try {
- for( let i = 0; i < this.creeperCount; i++ ) {
- let creeper = new Creeper();
- creeper.jobId = this.id;
- creeper.type = "upgrader" // mainly what the body looks like
- creeper.respawn = true;
- this.creepers.push(creeper);
- }
- return "SUCCESS";
- } catch( e ) {
- console.log( `Upgrade.prepareJob Error: ${e.stack}` );
- return false;
- }
- }
- run() {
- try {
- if( this.creepers.length == 0 ) {
- this.showDebug( `UpgradeJob.run: ${this.id} no members defined` );
- return false;
- }
- this.showDebug(`UpgradeJob.run: start for job# ${this.id} `);
- for( let i = 0; i < this.creepers.length; i++ ) {
- if(this.creepers[i].id) {
- this.showDebug(`UpgradeJob.run: processing member ${member.id}`);
- if( !this.creepers[i].hasTask ) {
- // assign new task
- }
- this.creepers[i].run();
- }
- if(!member.id) {
- this.showDebug(`UpgradeJob.run: create respawnTask for ${member.t}`);
- }
- }
- this.nextTick = Game.time + 1;
- return true;
- } catch( e ) {
- console.log( `UpgradeJob.run Error: ${e.stack}` );
- return false;
- }
- }
- };
- module.exports = UpgradeJob;
- /*
- Object.defineProperty( Upgrade.prototype, "createMember", {
- value: function() {
- return {
- sp : "upgrader" // species
- , id : null
- , respawn : true
- , ttr : 50 // time till respawn
- }
- }
- , configurable: true
- , enumerable: false
- });
- Object.defineProperty( Upgrade.prototype, "init", {
- value: function() {
- try {
- if(!this.data) {
- return false;
- } else {
- this.members = this.data.members;
- }
- return "SUCCESS";
- } catch( e ) {
- console.log( `Upgrade.prepareJob Error: ${e.stack}` );
- return false;
- }
- }
- , configurable: true
- , enumerable: false
- });
- Object.defineProperty( Upgrade.prototype, "createSpawnTasks", {
- value: function( job ) {
- try {
- for( let i = 0; i <= job.members.length; i++ ) {
- // if member id is null and there is no spawn task already we have to create a spawn task
- if( !job.members[i].id && !job.members[i].spawnTaskId ) {
- job.members[i].spawnTaskId = empire.ownedRooms[job.ownedRoom].room.spawnManager.addTask(
- job.id
- , job.members[i].mId
- , job.members[i].species
- , job.members[i].size
- );
- }
- let creep = Game.creeps[job.members[i].id];
- // initiate respawn
- if( !creep ) {
- if( job.members[i].respawn && !job.members[i].spawnTaskId) {
- // creep died and needs to be respawned
- job.members[i].id = null;
- empire.ownedRooms[job.ownedRoom].room.spawnManager.addTask(job);
- } else {
- // creep does not have to be respawned
- job.members[i] = undefined;
- }
- } else if( creep && creep.ticksToLive < job.members[i].ttr && job.members[i].respawn ) {
- // creep is dying soon
- job.members.push(this.createMember());
- job.members[i].respawn = false; //this way it will still be processed, but we can respawn another one
- empire.ownedRooms[job.ownedRoom].room.spawnManager.addTask(job);
- }
- }
- job.save();
- } catch( e ) {
- console.log( `Upgrade.createSpawnTasks Error: ${e.stack}` );
- return false;
- }
- }
- , configurable: true
- , enumerable: false
- });
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement