// 2 - Simple Contagion // Puzzles for re-use in Complex Contagion... var CONTAGION_PUZZLE = { "peeps":[[53,195,1],[169,297,0],[416,228,0],[323,325,0],[550,234,0],[787,304,0],[627,328,0],[415,419,0],[544,422,0],[906,199,0]], "connections":[[0,1],[1,3],[3,2],[3,7],[7,8],[8,6],[6,4],[4,2],[6,5],[5,9]] }; var CASCADE_PUZZLE = { "peeps":[[31,201,1],[148,238,0],[267,317,0],[166,392,0],[282,437,0],[481,202,0],[401,284,0],[472,367,0],[590,340,0],[602,236,0],[843,313,0],[719,376,0],[930,413,0],[846,514,0],[728,488,0]], "connections":[[0,1,1],[3,2,1],[2,4,1],[4,3,1],[6,7,1],[7,8,1],[8,9,1],[9,5,1],[5,6,1],[6,9,1],[9,7,1],[7,5,1],[5,8,1],[8,6,1],[11,10,1],[11,14,1],[14,13,1],[13,12,1],[12,10,1],[11,12,1],[12,14,1],[14,10,1],[10,13,1],[13,11,1]] } SLIDES.push( { chapter: "Simple", clear:true, add:[ // Intro text { type:"box", id:"simple_simple", text:"simple_simple", x:80, y:0, w:800, h:160, align: "center" }, // Lil' contagion { type:"sim", id:"contagion", x:0, y:80, fullscreen: true, network: { "contagion":0, "peeps":CONTAGION_PUZZLE.peeps, "connections":CONTAGION_PUZZLE.connections }, options:{ infectedFrame: 1, scale: 1.25, _dunce: true } }, // UI for the simulation { type:"box", id:"ui", x:380, y:165, sim_ui:"red" }, // Outro text { id:"end", type:"box", text:"simple_simple_end", x:660, y:440, w:300, h:100, hidden:true } ], onupdate:function(slideshow, state){ // Show end if EVERYONE is infected if(!state.ended){ var sim = slideshow.simulations.sims[0]; var peepCount = 0; sim.peeps.forEach(function(peep){ if(peep.infected) peepCount++; }); if(peepCount==sim.peeps.length){ /*var boxes = slideshow.boxes; boxes.showChildByID("end", true);*/ state.ended = true; slideshow.next(); } } } }, { remove:[ {type:"box", id:"simple_simple"} ], move:[ {type:"box", id:"ui", y:5}, {type:"sim", id:"contagion", y:-80} ], add:[ { type:"box", text:"simple_simple_2", x:0, y:390, w:650, h:100, align: "right" }, { type:"box", text:"simple_simple_end", x:660, y:440, w:300, h:90 } ] }, { chapter: "Simple-Cascade", clear:true, add:[ // Intro text { type:"box", id:"simple_cascade", text:"simple_cascade", x:80, y:0, w:800, h:100, align: "center" }, // Sim { type:"sim", id:"contagion", x:0, y:-60, fullscreen: true, network: { "contagion":0, "peeps":CASCADE_PUZZLE.peeps, "connections":CASCADE_PUZZLE.connections }, options:{ infectedFrame: 1, scale: 1.25, startUncuttable: true, _dunce: true } }, // UI for the simulation { type:"box", id:"ui", x:380, y:360, sim_ui:"red" }, // End text { id:"end", type:"box", text:"simple_cascade_end", x:330, y:460, w:300, h:100, hidden:true }, ], onupdate:function(slideshow, state){ // Show end if EVERYONE is infected if(!state.ended){ var sim = slideshow.simulations.sims[0]; var peepCount = 0; sim.peeps.forEach(function(peep){ if(peep.infected) peepCount++; }); if(peepCount==sim.peeps.length){ var boxes = slideshow.boxes; boxes.showChildByID("end", true); state.ended = true; sim.win({ small:true, x:280, y:200, width:400, height:200 }); } } } }, { remove:[ {type:"box", id:"simple_cascade"}, {type:"box", id:"end"} ], move:[ {type:"box", id:"ui", y:360-80-200}, {type:"sim", id:"contagion", y:-140-200} ], add:[ { type:"box", text:"simple_post_cascade", x:80, y:210, w:800, h:150, align: "center" }/*, { type:"box", text:"simple_post_cascade_end", x:660, y:450, w:300, h:90 }*/ ] }, );