diff --git a/dist/index.html b/dist/index.html
index 846801a..6342042 100644
--- a/dist/index.html
+++ b/dist/index.html
@@ -210,6 +210,9 @@
+
+
+
diff --git a/src/Controllers/ControlPanel.js b/src/Controllers/ControlPanel.js
index c45c03c..59bc4d5 100644
--- a/src/Controllers/ControlPanel.js
+++ b/src/Controllers/ControlPanel.js
@@ -229,6 +229,10 @@ class ControlPanel {
$('#food-drop-rate').change(function() {
Hyperparams.foodDropProb = $('#food-drop-rate').val();
});
+ $('#extra-mover-cost').change(function() {
+ console.log(parseInt($('#extra-mover-cost').val()))
+ Hyperparams.extraMoverFoodCost = parseInt($('#extra-mover-cost').val());
+ });
$('#evolved-mutation').change( function() {
if (this.checked) {
@@ -311,6 +315,7 @@ class ControlPanel {
$('#movers-produce').prop('checked', Hyperparams.moversCanProduce);
$('#food-blocks').prop('checked', Hyperparams.foodBlocksReproduction);
$('#food-drop-rate').val(Hyperparams.foodDropProb);
+ $('#extra-mover-cost').val(Hyperparams.extraMoverFoodCost);
$('#look-range').val(Hyperparams.lookRange);
if (!Hyperparams.useGlobalMutability) {
diff --git a/src/Hyperparameters.js b/src/Hyperparameters.js
index b4dfa02..9579f11 100644
--- a/src/Hyperparameters.js
+++ b/src/Hyperparameters.js
@@ -24,6 +24,8 @@ const Hyperparams = {
this.lookRange = 20;
this.foodDropProb = 0;
+
+ this.extraMoverFoodCost = 0;
},
loadJsonObj(obj) {
diff --git a/src/Organism/Organism.js b/src/Organism/Organism.js
index ef38f03..a1db6b6 100644
--- a/src/Organism/Organism.js
+++ b/src/Organism/Organism.js
@@ -47,11 +47,10 @@ class Organism {
// amount of food required before it can reproduce
foodNeeded() {
- return this.anatomy.cells.length;
+ return this.anatomy.is_mover ? this.anatomy.cells.length + Hyperparams.extraMoverFoodCost : this.anatomy.cells.length;
}
lifespan() {
- // console.log(Hyperparams.lifespanMultiplier)
return this.anatomy.cells.length * Hyperparams.lifespanMultiplier;
}
@@ -118,7 +117,7 @@ class Organism {
org.species.addPop();
}
}
- this.food_collected -= this.foodNeeded();
+ Math.max(this.food_collected -= this.foodNeeded(), 0);
}