You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

108 lines
2.8 KiB
JavaScript

function SandboxUI(config){
var self = this;
self.id = config.id;
// Create DOM
self.dom = document.createElement("div");
self.dom.className = "object";
var dom = self.dom;
/////////////////////////////////////////
// BUTTONS for playing //////////////////
/////////////////////////////////////////
var playButton = new Button({x:130, y:135, text_id:"label_play", message:"tournament/autoplay"});
dom.appendChild(playButton.dom);
var stepButton = new Button({x:130, y:135+70, text_id:"label_step", message:"tournament/step"});
dom.appendChild(stepButton.dom);
var resetButton = new Button({x:130, y:135+70*2, text_id:"label_reset", message:"tournament/reset"});
dom.appendChild(resetButton.dom);
/////////////////////////////////////////
// Create TABS & PAGES //////////////////
/////////////////////////////////////////
// Tabs
var tabs = document.createElement("div");
tabs.id = "sandbox_tabs";
dom.appendChild(tabs);
// Tab Hitboxes
var _makeHitbox = function(label, x, width, pageIndex){
label = label.toUpperCase();
var hitbox = document.createElement("div");
hitbox.className = "hitbox";
hitbox.style.left = x+"px";
hitbox.style.width = width+"px";
hitbox.innerHTML = label;
tabs.appendChild(hitbox);
(function(pageIndex){
hitbox.onclick = function(){
_goToPage(pageIndex);
};
})(pageIndex);
};
_makeHitbox(Words.get("label_population"), 30, 100, 0);
_makeHitbox(Words.get("label_payoffs"), 220, 100, 1);
_makeHitbox(Words.get("label_rules"), 366, 100, 2);
// Pages
var pages = [];
var _makePage = function(){
var page = document.createElement("div");
page.className = "sandbox_page";
tabs.appendChild(page);
pages.push(page);
};
for(var i=0; i<3; i++) _makePage(); // make three pages
// Go To Page
var _goToPage = function(showIndex){
// Background
tabs.style.backgroundPosition = (-showIndex*500)+"px 0px";
// Show page
for(var i=0; i<pages.length; i++) pages[i].style.display = "none";
pages[showIndex].style.display = "block";
};
_goToPage(0);
/////////////////////////////////////////
// PAGE 0: POPULATION ///////////////////
/////////////////////////////////////////
/////////////////////////////////////////
// PAGE 1: PAYOFFS //////////////////////
/////////////////////////////////////////
var page = pages[1];
var label = _makeLabel("sandbox_payoffs", 0, 0, 433);
page.appendChild(label);
/////////////////////////////////////////
// PAGE 2: RULES ////////////////////////
/////////////////////////////////////////
/////////////////////////////////////////
// Add & Remove Object //////////////////
/////////////////////////////////////////
// Add...
self.add = function(INSTANT){
return _add(self);
};
// Remove...
self.remove = function(INSTANT){
return _remove(self);
};
}