added official winner/battle royale world
This commit is contained in:
6
dist/assets/organisms/_list.json
vendored
6
dist/assets/organisms/_list.json
vendored
@@ -1,4 +1,8 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"name": "Microquasar☣️",
|
||||||
|
"value": "microquasar"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "Purple Flower",
|
"name": "Purple Flower",
|
||||||
"value": "purple_flower"
|
"value": "purple_flower"
|
||||||
@@ -32,7 +36,7 @@
|
|||||||
"value": "Napoleon"
|
"value": "Napoleon"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "NED",
|
"name": "NED☣️",
|
||||||
"value": "NED"
|
"value": "NED"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
144
dist/assets/organisms/microquasar.json
vendored
Normal file
144
dist/assets/organisms/microquasar.json
vendored
Normal file
@@ -0,0 +1,144 @@
|
|||||||
|
{
|
||||||
|
"c": 9,
|
||||||
|
"r": 9,
|
||||||
|
"lifetime": [],
|
||||||
|
"food_collected": 12313,
|
||||||
|
"living": true,
|
||||||
|
"direction": 2,
|
||||||
|
"rotation": 0,
|
||||||
|
"can_rotate": false,
|
||||||
|
"move_count": -1,
|
||||||
|
"move_range": -1,
|
||||||
|
"ignore_brain_for": 5,
|
||||||
|
"mutability": 14,
|
||||||
|
"damage": 0,
|
||||||
|
"anatomy": {
|
||||||
|
"birth_distance": 4,
|
||||||
|
"is_producer": true,
|
||||||
|
"is_mover": true,
|
||||||
|
"has_eyes": true,
|
||||||
|
"cells": [
|
||||||
|
{
|
||||||
|
"loc_col": 0,
|
||||||
|
"loc_row": 0,
|
||||||
|
"state": {
|
||||||
|
"name": "producer"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"loc_col": 0,
|
||||||
|
"loc_row": 0,
|
||||||
|
"state": {
|
||||||
|
"name": "producer"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"loc_col": 0,
|
||||||
|
"loc_row": 0,
|
||||||
|
"state": {
|
||||||
|
"name": "producer"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"loc_col": 0,
|
||||||
|
"loc_row": 0,
|
||||||
|
"state": {
|
||||||
|
"name": "producer"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"loc_col": 0,
|
||||||
|
"loc_row": 0,
|
||||||
|
"state": {
|
||||||
|
"name": "producer"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"loc_col": 0,
|
||||||
|
"loc_row": 0,
|
||||||
|
"state": {
|
||||||
|
"name": "producer"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"loc_col": 0,
|
||||||
|
"loc_row": 0,
|
||||||
|
"state": {
|
||||||
|
"name": "producer"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"loc_col": 0,
|
||||||
|
"loc_row": 0,
|
||||||
|
"state": {
|
||||||
|
"name": "producer"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"loc_col": 0,
|
||||||
|
"loc_row": 0,
|
||||||
|
"state": {
|
||||||
|
"name": "producer"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"loc_col": 0,
|
||||||
|
"loc_row": 0,
|
||||||
|
"state": {
|
||||||
|
"name": "producer"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"loc_col": 0,
|
||||||
|
"loc_row": 0,
|
||||||
|
"direction": 2,
|
||||||
|
"state": {
|
||||||
|
"name": "eye"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"loc_col": 0,
|
||||||
|
"loc_row": 0,
|
||||||
|
"state": {
|
||||||
|
"name": "mouth"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"loc_col": 0,
|
||||||
|
"loc_row": 0,
|
||||||
|
"state": {
|
||||||
|
"name": "killer"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"loc_col": 0,
|
||||||
|
"loc_row": 0,
|
||||||
|
"state": {
|
||||||
|
"name": "mover"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"loc_col": 0,
|
||||||
|
"loc_row": 0,
|
||||||
|
"state": {
|
||||||
|
"name": "armor"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"brain": {
|
||||||
|
"decisions": {
|
||||||
|
"empty": 2,
|
||||||
|
"food": 2,
|
||||||
|
"wall": 0,
|
||||||
|
"mouth": 2,
|
||||||
|
"producer": 2,
|
||||||
|
"mover": 2,
|
||||||
|
"killer": 2,
|
||||||
|
"armor": 1,
|
||||||
|
"eye": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"species_name": "Microquasar"
|
||||||
|
}
|
||||||
4
dist/assets/worlds/_list.json
vendored
4
dist/assets/worlds/_list.json
vendored
@@ -1,7 +1,7 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "⚔️Battle Royale (upcoming competition!)",
|
"name": "☣️Unnatural Battle Royale⚔️",
|
||||||
"value": "battle_royale"
|
"value": "battleground"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Colony",
|
"name": "Colony",
|
||||||
|
|||||||
1
dist/assets/worlds/battleground.json
vendored
Normal file
1
dist/assets/worlds/battleground.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/index.html
vendored
1
dist/index.html
vendored
@@ -269,6 +269,7 @@
|
|||||||
<h2>Statistics</h2>
|
<h2>Statistics</h2>
|
||||||
<p id='org-count'>Total Population: </p>
|
<p id='org-count'>Total Population: </p>
|
||||||
<p id='species-count'>Number of Species: </p>
|
<p id='species-count'>Number of Species: </p>
|
||||||
|
<p id='top-species'>Most Populous Species: </p>
|
||||||
<p id='largest-org'>Largest Organism Ever: </p>
|
<p id='largest-org'>Largest Organism Ever: </p>
|
||||||
<p id='avg-mut'>Average Mutation Rate: </p>
|
<p id='avg-mut'>Average Mutation Rate: </p>
|
||||||
<label for="chart-option">Chart: </label>
|
<label for="chart-option">Chart: </label>
|
||||||
|
|||||||
@@ -197,7 +197,8 @@ class WorldEnvironment extends Environment{
|
|||||||
loadRaw(env) { // species name->stats map, evolution controls,
|
loadRaw(env) { // species name->stats map, evolution controls,
|
||||||
this.organisms = [];
|
this.organisms = [];
|
||||||
FossilRecord.clear_record();
|
FossilRecord.clear_record();
|
||||||
this.resizeGridColRow(this.grid_map.cell_size, env.grid.cols, env.grid.rows)
|
let cell_size = env.grid.cell_size ? env.grid.cell_size : this.grid_map.cell_size;
|
||||||
|
this.resizeGridColRow(cell_size, env.grid.cols, env.grid.rows)
|
||||||
this.grid_map.loadRaw(env.grid);
|
this.grid_map.loadRaw(env.grid);
|
||||||
for (let wall of env.grid.walls) {
|
for (let wall of env.grid.walls) {
|
||||||
this.walls.push(this.grid_map.cellAt(wall.c, wall.r));
|
this.walls.push(this.grid_map.cellAt(wall.c, wall.r));
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ class GridMap {
|
|||||||
// Rather than store every single cell, we will store non organism cells (food+walls)
|
// Rather than store every single cell, we will store non organism cells (food+walls)
|
||||||
// and assume everything else is empty. Organism cells will be set when the organism
|
// and assume everything else is empty. Organism cells will be set when the organism
|
||||||
// list is loaded. This reduces filesize and complexity.
|
// list is loaded. This reduces filesize and complexity.
|
||||||
let grid = {cols:this.cols, rows:this.rows};
|
let grid = {cell_size:this.cell_size, cols:this.cols, rows:this.rows};
|
||||||
grid.food = [];
|
grid.food = [];
|
||||||
grid.walls = [];
|
grid.walls = [];
|
||||||
for (let col of this.grid) {
|
for (let col of this.grid) {
|
||||||
|
|||||||
@@ -121,6 +121,18 @@ const FossilRecord = {
|
|||||||
this.av_cell_counts.push(cell_counts);
|
this.av_cell_counts.push(cell_counts);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getMostPopulousSpecies(){
|
||||||
|
var max_pop = 0;
|
||||||
|
var max_species = undefined;
|
||||||
|
for (let s of Object.values(this.extant_species)) {
|
||||||
|
if (s.population > max_pop) {
|
||||||
|
max_pop = s.population;
|
||||||
|
max_species = s;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return max_species;
|
||||||
|
},
|
||||||
|
|
||||||
clear_record() {
|
clear_record() {
|
||||||
this.extant_species = [];
|
this.extant_species = [];
|
||||||
this.extinct_species = [];
|
this.extinct_species = [];
|
||||||
|
|||||||
@@ -51,10 +51,13 @@ class StatsPanel {
|
|||||||
var org_count = this.env.organisms.length;
|
var org_count = this.env.organisms.length;
|
||||||
$('#org-count').text("Total Population: " + org_count);
|
$('#org-count').text("Total Population: " + org_count);
|
||||||
$('#species-count').text("Number of Species: " + FossilRecord.numExtantSpecies());
|
$('#species-count').text("Number of Species: " + FossilRecord.numExtantSpecies());
|
||||||
|
let top_species = FossilRecord.getMostPopulousSpecies();
|
||||||
|
if (top_species)
|
||||||
|
$('#top-species').text("Most Populous Species: \"" + top_species.name + "\" (" + top_species.population + " organisms)");
|
||||||
|
else
|
||||||
|
$('#top-species').text("Most Populous Species: None");
|
||||||
$('#largest-org').text("Largest Organism Ever: " + this.env.largest_cell_count + " cells");
|
$('#largest-org').text("Largest Organism Ever: " + this.env.largest_cell_count + " cells");
|
||||||
$('#avg-mut').text("Average Mutation Rate: " + Math.round(this.env.averageMutability() * 100) / 100);
|
$('#avg-mut').text("Average Mutation Rate: " + Math.round(this.env.averageMutability() * 100) / 100);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
reset() {
|
reset() {
|
||||||
|
|||||||
Reference in New Issue
Block a user