crowds/puzzle/levels_old/4_simple_group.js

87 lines
1.8 KiB
JavaScript

canvas.style.width = 500;
canvas.style.height = 500;
canvas.width = parseInt(canvas.style.width)*2;
canvas.height = parseInt(canvas.style.height)*2;
PEEP_STATE_COLORS[2] = "#8b9dc3";
/*var initData = {
"contagion":0,
"peeps":[[199,165,1],[292,165,1],[146,251,1],[347,251,1],[202,333,1],[297,334,1]],
"connections":[]
}*/
var initData = {
"contagion":0,
"peeps":[[199,165,1],[292,165,1],[146,251,1],[347,251,1],[202,333,1],[297,334,1]],
"connections":[[4,2],[2,0],[0,1],[1,3],[3,5],[5,4]]
};
_makeUncuttable(initData.connections);
// Add peeps!
loadNetwork(initData);
// Update
update();
// SHOW CONTAGION UI
showContagionUI();
/////////////////////
// TEST EVERY PEEP //
/////////////////////
var PEEP_TO_INFECT = 0;
function _startSimulation(){
PEEP_TO_INFECT = 0;
var peep = peeps[PEEP_TO_INFECT];
peep.infect();
peep._hack_TESTED = true;
}
function _stopSimulation(){
peeps.forEach(function(peep){
peep._hack_TESTED = false;
});
}
function _stepSimulation(){
// Everyone infected?
var everyoneIsInfected = _isEveryoneInfected();
// If everyone infected, reset! and increment.
if(everyoneIsInfected){
PEEP_TO_INFECT++;
if(peeps[PEEP_TO_INFECT]){
SIM_STEP = 0;
_resetToBeforeSimStarted();
var peep = peeps[PEEP_TO_INFECT];
peep.infect();
peep._hack_TESTED = true;
}else{
YOU_ARE_WINNER = true;
}
}else{
// Otherwise, keep on infecting.
_infectPeople();
// If didn't infect in single step, you MESSED UP.
everyoneIsInfected = _isEveryoneInfected();
if(!everyoneIsInfected){
setTimeout(function(){
alert("Alas, you did not infect everyone in a SINGLE step!");
_stopSim();
},500);
}
}
}
function _isEveryoneInfected(){
var everyoneIsInfected = true;
peeps.forEach(function(peep){
if(peep.state!=2) everyoneIsInfected=false;
});
return everyoneIsInfected;
}