added official winner/battle royale world

This commit is contained in:
MaxRobinsonTheGreat
2023-06-17 13:27:16 -05:00
parent aeb0d1861c
commit 41820e1b2e
9 changed files with 173 additions and 7 deletions

View File

@@ -1,4 +1,8 @@
[
{
"name": "Microquasar☣",
"value": "microquasar"
},
{
"name": "Purple Flower",
"value": "purple_flower"
@@ -32,7 +36,7 @@
"value": "Napoleon"
},
{
"name": "NED",
"name": "NED☣️",
"value": "NED"
},
{

144
dist/assets/organisms/microquasar.json vendored Normal file
View 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"
}

View File

@@ -1,7 +1,7 @@
[
{
"name": "⚔️Battle Royale (upcoming competition!)",
"value": "battle_royale"
"name": "Unnatural Battle Royale⚔️",
"value": "battleground"
},
{
"name": "Colony",

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
View File

@@ -269,6 +269,7 @@
<h2>Statistics</h2>
<p id='org-count'>Total Population: </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='avg-mut'>Average Mutation Rate: </p>
<label for="chart-option">Chart: </label>

View File

@@ -197,7 +197,8 @@ class WorldEnvironment extends Environment{
loadRaw(env) { // species name->stats map, evolution controls,
this.organisms = [];
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);
for (let wall of env.grid.walls) {
this.walls.push(this.grid_map.cellAt(wall.c, wall.r));

View File

@@ -83,7 +83,7 @@ class GridMap {
// 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
// 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.walls = [];
for (let col of this.grid) {

View File

@@ -121,6 +121,18 @@ const FossilRecord = {
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() {
this.extant_species = [];
this.extinct_species = [];

View File

@@ -51,10 +51,13 @@ class StatsPanel {
var org_count = this.env.organisms.length;
$('#org-count').text("Total Population: " + org_count);
$('#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");
$('#avg-mut').text("Average Mutation Rate: " + Math.round(this.env.averageMutability() * 100) / 100);
}
reset() {