Little Game 5x5

Little Game

by Konstantin Cryman

HTML

<button id="openChest"> test </button>
<br>
<div id="chestResult"> test </div>

JavaScript

var Util = (function(){

	function Util(){
  
	}

	Util.Chanser = function( arrayToChance ){

		// chanser received array of arrays  [
		// 		element: any,
		// 		chanceWeight: Float || Integer
		// ]

		var totalChances = 0;
		for( var i = 0; i < arrayToChance.length; i++ ){
			totalChances += arrayToChance[ i ][1];
		}
		var ChanceMap = [];
		var nextStartPoint = 0;
		for( var i = 0; i < arrayToChance.length; i++ ){
			var nextItem = {
				item: arrayToChance[ i ][0],
				from: nextStartPoint,
				to: nextStartPoint + ( arrayToChance[ i ][1] / totalChances )
			};
			nextStartPoint += ( nextItem.to - nextItem.from ) ;
			ChanceMap.push( nextItem );
		}
		let nextRandomNum = Math.random();
		let resultItem = false;
		for( var i = 0; i < ChanceMap.length; i++ ){
			if( nextRandomNum > ChanceMap[i].from && nextRandomNum < ChanceMap[i].to ){
				resultItem = ChanceMap[i];
				break;
			}
		}
		return resultItem.item;

	};

	return Util;
  
})();

var Filed = (function(){

	function Field(){
  
	}

	return Field;
  
})();

var Game = (function(){

	function Game(){
  
	}

	return Game;
  
})();

var Unit = (function(){

	function Unit(){
  
	}

	return Unit;
  
})();

var Element = (function(){

	var elementsList = [
			[ "EARTH", 35 ],
			[ "WIND", 5 ],
			[ "FIRE", 5 ],
			[ "LIGHT", 1 ],
			[ "DARK", 1 ],
			[ "GOD", 0.5 ]
	];

	var elementsConfig = {
		"EARTH": {
			chance: 35,
			color: '#444411'
		},
		"WIND": {
			chance: 5,
			color: '#eeeeff'
		},
		"FIRE": {
			chance: 5,
			color: '#ff3300'
		},
		"LIGHT": {
			chance: 1,
			color: '#ffff66'
		},
		"DARK": {
			chance: 1,
			color: '#550055'
		},
		"GOD": {
			chance: 0.5,
			color: '#eeeeee'
		}
	};


	function Element(){

	}

	Element.listForChanser = function(){

		var arrToReturn = [];

		for( var key in elementsConfig ){
			arrToReturn.push( [
				key,
				elementsConfig[ key ]
			] );
		}

		arrToReturn.sort( function( a, b ){
			return a[1] - b[1]
		} );

		return...