Files
lifeEngine/src/Organism/Cell/BodyCells/ProducerCell.js
2021-02-04 17:27:47 -07:00

32 lines
1.1 KiB
JavaScript

const CellStates = require("../CellStates");
const BodyCell = require("./BodyCell");
const Hyperparams = require("../../../Hyperparameters");
class ProducerCell extends BodyCell{
constructor(org, loc_col, loc_row){
super(CellStates.producer, org, loc_col, loc_row);
this.org.anatomy.is_producer = true;
}
performFunction() {
if (this.org.anatomy.is_mover && !Hyperparams.moversCanProduce)
return;
var env = this.org.env;
var prob = Hyperparams.foodProdProb;
var real_c = this.getRealCol();
var real_r = this.getRealRow();
if (Math.random() * 100 <= prob) {
var loc = Hyperparams.growableNeighbors[Math.floor(Math.random() * Hyperparams.growableNeighbors.length)]
var loc_c=loc[0];
var loc_r=loc[1];
var cell = env.grid_map.cellAt(real_c+loc_c, real_r+loc_r);
if (cell != null && cell.state == CellStates.empty){
env.changeCell(real_c+loc_c, real_r+loc_r, CellStates.food, null);
return;
}
}
}
}
module.exports = ProducerCell;