trimill.xyz/src/templates/projects/elementsgame/data.js

318 lines
8.8 KiB
JavaScript

// Classes and their color
let classes = [
['null', 0, 0, 0 ],
['water', 5, 30, 140],
['earth', 145, 90, 30 ],
['fire', 160, 20, 5 ],
['air', 60, 130, 200],
['stone', 70, 70, 70 ],
['energy', 240, 200, 20 ],
['life', 80, 165, 40 ],
['animal', 195, 65, 45 ],
['human', 240, 100, 10 ],
['death', 60, 90, 15 ],
['space', 20, 20, 30 ],
['wood', 70, 40, 0 ],
['food', 110, 50, 130],
['tools', 210, 200, 200],
['computer',160, 160, 170]
]
// Elements and their class
let elements = [
['Water', 'water'],
['Earth', 'earth'],
['Fire', 'fire'],
['Air', 'air'],
['Mud', 'earth'],
['Lava', 'fire'],
['Stone', 'stone'],
['Cloud', 'air'],
['Smoke', 'air'],
['Steam', 'air'],
['Sand', 'stone'],
['Rain', 'water'],
['Ocean', 'water'],
['Salt', 'stone'],
['Energy', 'energy'],
['Earthquake', 'earth'],
['Swamp', 'earth'],
['Life', 'life'],
['Algae', 'life'],
['Bird', 'animal'],
['Plant', 'life'],
['Mammal', 'animal'],
['Tree', 'life'],
['Glass', 'stone'],
['Brick', 'stone'],
['Monkey', 'animal'],
['Egg', 'life'],
['Phoenix', 'fire'],
['Human', 'human'],
['Love', 'human'],
['Clay', 'earth'],
['Wall', 'stone'],
['Family', 'human'],
['House', 'human'],
['Town', 'human'],
['City', 'human'],
['Metal', 'stone'],
['Electricity', 'energy'],
['Dust', 'earth'],
['Lightning', 'energy'],
['Atmosphere', 'air'],
['Planet', 'space'],
['Star', 'space'],
['Ash', 'stone'],
['Mountain', 'earth'],
['Volcano', 'fire'],
['Stick', 'wood'],
['Axe', 'tools'],
['Wood', 'wood'],
['Campfire', 'fire'],
['Wind', 'air'],
['Cold', 'air'],
['Seeds', 'life'],
['Grass', 'life'],
['Penguin', 'animal'],
['Ostrich', 'animal'],
['Chicken', 'animal'],
['Roast Chicken', 'food'],
['Pig', 'animal'],
['Bacon', 'food'],
['Ham', 'food'],
['Cow', 'animal'],
['Steak', 'food'],
['Wheat', 'life'],
['Flour', 'food'],
['Dough', 'food'],
['Bread', 'food'],
['Toast', 'food'],
['Blade', 'tools'],
['Knife', 'tools'],
['Shavings', 'wood'],
['Wood Pulp', 'wood'],
['Paper', 'tools'],
['Ice', 'water'],
['Snow', 'water'],
['Fish', 'animal'],
['Whale', 'animal'],
['Sheep', 'animal'],
['Worker', 'human'],
['Blacksmith', 'human'],
['Shepherd', 'human'],
['Farmer', 'human'],
['Wire', 'computer'],
['Robot', 'computer'],
['Computer', 'computer'],
['Network', 'computer'],
['Internet', 'computer'],
['Pet', 'animal'],
['Cat', 'animal'],
['Dog', 'animal'],
['Meme', 'computer'],
['Corpse', 'death'],
['Bone', 'death'],
['Zombie', 'death'],
['Alien', 'death'],
['Rainbow', 'air'],
['Unicorn', 'animal'],
['Bonfire', 'fire'],
['Storm', 'air'],
['Hurricane', 'air'],
['Tornado', 'air'],
['Potato', 'food'],
['Fruit', 'life'],
['Apple', 'food'],
['Watermelon', 'food'],
['Eggplant', 'food'],
['Crab', 'animal'],
['Milk', 'food'],
['Butter', 'food'],
['Forest', 'life'],
['Jungle', 'life'],
['Banana', 'food'],
['Skyscraper', 'human'],
['Goldfish', 'animal'],
['Wheel', 'wood'],
['Car', 'computer'],
['Book', 'tools'],
['Children', 'human'],
['School', 'human']
]
// Recipes: two inputs and some outputs
let recipes = [
['Water', 'Earth', ['Mud']],
['Fire', 'Earth', ['Lava']],
['Lava', 'Water', ['Stone']],
['Air', 'Water', ['Cloud']],
['Air', 'Fire', ['Smoke']],
['Stone', 'Water', ['Sand']],
['Water', 'Cloud', ['Rain']],
['Water', 'Water', ['Ocean']],
['Ocean', 'Fire', ['Salt']],
['Water', 'Fire', ['Steam', 'Energy']],
['Energy', 'Earth', ['Earthquake']],
['Mud', 'Water', ['Swamp']],
['Swamp', 'Energy', ['Life']],
['Life', 'Water', ['Algae']],
['Life', 'Air', ['Bird']],
['Algae', 'Earth', ['Plant']],
['Life', 'Earth', ['Mammal']],
['Plant', 'Air', ['Tree']],
['Sand', 'Fire', ['Glass']],
['Clay', 'Fire', ['Brick']],
['Tree', 'Mammal', ['Monkey']],
['Monkey', 'Fire', ['Human']],
['Bird', 'Stone', ['Egg']],
['Bird', 'Fire', ['Phoenix']],
['Monkey', 'Fire', ['Human']],
['Human', 'Human', ['Love']],
['Mud', 'Swamp', ['Clay']],
['Brick', 'Brick', ['Wall']],
['Human', 'Love', ['Family']],
['Wall', 'Family', ['House']],
['House', 'House', ['Town']],
['Town', 'Town', ['City']],
['Fire', 'Stone', ['Metal']],
['Metal', 'Energy', ['Electricity']],
['Air', 'Earth', ['Dust']],
['Fire', 'Air', ['Smoke']],
['Energy', 'Air', ['Lightning']],
['Air', 'Air', ['Atmosphere']],
['Atmosphere', 'Earth', ['Planet']],
['Planet', 'Fire', ['Star']],
['Tree', 'Fire', ['Ash']],
['Plant', 'Fire', ['Ash']],
['Earth', 'Earth', ['Mountain']],
['Lava', 'Mountain', ['Volcano']],
['Tree', 'Stone', ['Stick']],
['Stick', 'Stone', ['Axe']],
['Tree', 'Axe', ['Wood']],
['Wood', 'Fire', ['Campfire', 'Smoke']],
['Air', 'Atmosphere', ['Wind']],
['Wind', 'Water', ['Cold']],
['Life', 'Sand', ['Seeds']],
['Seeds', 'Earth', ['Grass']],
['Bird', 'Cold', ['Penguin']],
['Bird', 'Sand', ['Ostrich']],
['Earth', 'Bird', ['Chicken']],
['Fire', 'Chicken',['Roast Chicken']],
['Mammal', 'Mud', ['Pig']],
['Pig', 'Fire', ['Ham']],
['Pig', 'Smoke', ['Bacon']],
['Mammal', 'Grass', ['Cow']],
['Cow', 'Fire', ['Steak']],
['Grass', 'Air', ['Wheat']],
['Wheat', 'Stone', ['Flour']],
['Flour', 'Water', ['Dough']],
['Dough', 'Fire', ['Bread']],
['Bread', 'Fire', ['Toast']],
['Metal', 'Stone', ['Blade']],
['Blade', 'Stick', ['Knife']],
['Knife', 'Wood', ['Shavings']],
['Water', 'Shavings', ['Wood Pulp']],
['Fire', 'Wood Pulp', ['Paper']],
['Cold', 'Water', ['Ice']],
['Cold', 'Rain', ['Snow']],
['Ocean', 'Life', ['Fish']],
['Ocean', 'Mammal', ['Whale']],
['Mammal', 'Cloud', ['Sheep']],
['Human', 'Axe', ['Worker']],
['Worker', 'Metal', ['Blacksmith']],
['Worker', 'Sheep', ['Shepherd']],
['Worker', 'Wheat', ['Farmer']],
['Metal', 'Electricity', ['Wire']],
['Wire', 'Wire', ['Computer']],
['Human', 'Computer', ['Robot']],
['Computer', 'Computer', ['Network']],
['Network','Network',['Internet']],
['Human', 'Mammal', ['Pet']],
['Pet', 'Milk', ['Cat']],
['Pet', 'Bone', ['Dog']],
['Cat', 'Internet', ['Meme']],
['Human', 'Fire', ['Corpse']],
['Corpse', 'Fire', ['Bone', 'Ash']],
['Corpse', 'Life', ['Zombie']],
['Planet', 'Life', ['Alien']],
['Star', 'Rain', ['Rainbow']],
['Rainbow','Mammal', ['Unicorn']],
['Fire', 'Fire', ['Bonfire']],
['Rain', 'Rain', ['Storm']],
['Storm', 'Wind', ['Hurricane']],
['Hurricane','Wind', ['Tornado']],
['Plant', 'Earth', ['Potato']],
['Plant', 'Plant', ['Fruit']],
['Fruit', 'Tree', ['Apple']],
['Fruit', 'Water', ['Watermelon']],
['Fruit', 'Egg', ['Eggplant']],
['Fish', 'Earth', ['Crab']],
['Cow', 'Water', ['Milk']],
['Milk', 'Energy', ['Butter']],
['Tree', 'Tree', ['Forest']],
['Forest', 'Monkey', ['Jungle']],
['Fruit', 'Monkey', ['Banana']],
['Metal', 'City', ['Skyscraper']],
['Fish', 'Pet', ['Goldfish']],
['Energy', 'Wood', ['Wheel']]
['Wheel', 'Metal', ['Car']],
['Paper', 'Paper', ['Book']],
['Family', 'Love', ['Children']],
['House', 'Children', ['School']]
]
// Get the outputs when two elements are combined
function getOutputs(e1, e2) {
for(let r = 0; r < recipes.length; r++) {
if((recipes[r][0] == e1 && recipes[r][1] == e2) || (recipes[r][0] == e2 && recipes[r][1] == e1)) {
return recipes[r][2];
}
}
return null;
}
// Get the color of a class
function getColor(clazz) {
for(let c = 0; c < classes.length; c++) {
if(classes[c][0] == clazz) {
return [classes[c][1], classes[c][2], classes[c][3]];
}
}
}
// Get the class of an element
function getClass(element) {
let clazz = classes[0][0];
for(let e = 0; e < elements.length; e++) {
if(elements[e][0] == element) {
clazz = elements[e][1]
}
}
return clazz;
}
// The help text shown when 'q' is pressed
let helpText =
'Click on an element to select it and then click' +
' on another one to combine them. Try to get all ' +
elements.length + '!' +
'\n \n' +
'A hint will select an element that you can combine' +
' with another element you have to create something' +
' you do not have.' +
'\n \n' +
'Sorting modes will sort your elements either by' +
' order added, alphabetically, by class, or randomly.' +
'\n \n' +
'Some elements can be combined with themselves. Some' +
' elements cannot be used in any combinations.' +
'\n' +
'\n Q - View this help message' +
'\n M - Change sorting mode' +
'\n T - Show/hide time' +
'\n H - Use a hint' +
'\n Enter - Recalculate' +
'\n Mouse Wheel - Scrolling' +
'\n X - Clear savedata';