Advertisement
Guest User

Untitled

a guest
Aug 16th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. "use strict";
  2.  
  3. const Job     = require("class.Job");
  4. const Creeper = require("class.Creeper");
  5.  
  6. class UpgradeJob extends Job {
  7.  
  8.     constructor(jobId) {
  9.         super(jobId);
  10.         this.jobType    = "upgrade";
  11.         this.creepCount = 1;
  12.     }
  13.  
  14.     get creeperCount() {
  15.         return this.memory.cC || 1;
  16.     }
  17.     set creeperCount(v) {
  18.         this.memory.cC = v;
  19.     }
  20.  
  21.     get creepers() {
  22.         if( !this.__creepers ) {
  23.             this.__creepers = [];
  24.             _.map(this.memory.c, c => this._creepers.push( new Creeper(c.id) ) );
  25.         }
  26.         return this.__creepers;
  27.     }
  28.     set creepers(v) {
  29.         this.memory.c = _.map(v, c => c.id );
  30.         return true;
  31.     }
  32.    
  33.     prepareJob( ) {
  34.         try {
  35.             for( let i = 0; i < this.creeperCount; i++ ) {
  36.                 let creeper = new Creeper();
  37.                 creeper.jobId  = this.id;
  38.                 creeper.type   = "upgrader" // mainly what the body looks like
  39.                 creeper.respawn = true;
  40.                 this.creepers.push(creeper);
  41.             }
  42.            
  43.             return "SUCCESS";
  44.         } catch( e ) {
  45.             console.log( `Upgrade.prepareJob Error: ${e.stack}` );
  46.             return false;
  47.         }
  48.        
  49.     }
  50.  
  51.    
  52.     run() {
  53.         try {
  54.             if( this.creepers.length == 0 ) {
  55.                 this.showDebug( `UpgradeJob.run: ${this.id} no members defined` );
  56.                 return false;
  57.             }
  58.             this.showDebug(`UpgradeJob.run: start for job# ${this.id} `);
  59.             for( let i = 0; i < this.creepers.length; i++ ) {
  60.                 if(this.creepers[i].id) {
  61.                     this.showDebug(`UpgradeJob.run: processing member ${member.id}`);
  62.                     if( !this.creepers[i].hasTask ) {
  63.                             // assign new task
  64.                     }
  65.                     this.creepers[i].run();
  66.                 }
  67.                 if(!member.id) {
  68.                     this.showDebug(`UpgradeJob.run: create respawnTask for ${member.t}`);
  69.                 }
  70.             }
  71.             this.nextTick = Game.time + 1;
  72.             return true;
  73.         } catch( e ) {
  74.             console.log( `UpgradeJob.run Error: ${e.stack}` );
  75.             return false;
  76.         }
  77.     }
  78.  
  79. };
  80. module.exports = UpgradeJob;
  81.  
  82. /*
  83.  
  84. Object.defineProperty( Upgrade.prototype, "createMember", {
  85.     value: function() {
  86.         return {
  87.             sp      : "upgrader" // species
  88.           , id      : null
  89.           , respawn : true
  90.           , ttr     : 50         // time till respawn
  91.         }
  92.     }
  93.   , configurable: true
  94.   , enumerable: false
  95. });
  96.  
  97.  
  98. Object.defineProperty( Upgrade.prototype, "init", {
  99.     value: function() {
  100.         try {
  101.             if(!this.data) {
  102.                 return false;
  103.             } else {
  104.                 this.members = this.data.members;
  105.             }
  106.             return "SUCCESS";
  107.         } catch( e ) {
  108.             console.log( `Upgrade.prepareJob Error: ${e.stack}` );
  109.             return false;
  110.         }
  111.        
  112.     }
  113.   , configurable: true
  114.   , enumerable: false
  115. });
  116.  
  117.  
  118.  
  119. Object.defineProperty( Upgrade.prototype, "createSpawnTasks", {
  120.     value: function( job ) {
  121.         try {
  122.             for( let i = 0; i <= job.members.length; i++ ) {
  123.                
  124.                 // if member id is null and there is no spawn task already we have to create a spawn task
  125.                 if( !job.members[i].id && !job.members[i].spawnTaskId ) {
  126.                     job.members[i].spawnTaskId = empire.ownedRooms[job.ownedRoom].room.spawnManager.addTask(
  127.                                                      job.id
  128.                                                    , job.members[i].mId
  129.                                                    , job.members[i].species
  130.                                                    , job.members[i].size
  131.                                                  );
  132.                    
  133.                 }
  134.                
  135.                 let creep = Game.creeps[job.members[i].id];
  136.                
  137.                 // initiate respawn
  138.                 if( !creep ) {
  139.                     if( job.members[i].respawn && !job.members[i].spawnTaskId) {
  140.                         // creep died and needs to be respawned
  141.                         job.members[i].id = null;
  142.                         empire.ownedRooms[job.ownedRoom].room.spawnManager.addTask(job);
  143.                     } else {
  144.                         // creep does not have to be respawned
  145.                         job.members[i] = undefined;
  146.                     }
  147.                 } else if( creep && creep.ticksToLive < job.members[i].ttr && job.members[i].respawn ) {
  148.                     // creep is dying soon
  149.                     job.members.push(this.createMember());
  150.                     job.members[i].respawn = false; //this way it will still be processed, but we can respawn another one
  151.                    
  152.                     empire.ownedRooms[job.ownedRoom].room.spawnManager.addTask(job);
  153.                 }
  154.             }
  155.             job.save();
  156.         } catch( e ) {
  157.             console.log( `Upgrade.createSpawnTasks Error: ${e.stack}` );
  158.             return false;
  159.         }
  160.     }
  161.   , configurable: true
  162.   , enumerable: false
  163. });
  164. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement