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.

392 lines
8.6 KiB
JavaScript

SLIDES.push({
id: "distrust",
onjump: function(self){
// Tournament
Tournament.resetGlobalVariables();
self.add({id:"tournament", type:"Tournament", x:-20, y:20});
},
onstart: function(self){
var o = self.objects;
// Reset Tournament
_.resetTournament = function(){
Tournament.resetGlobalVariables();
Tournament.INITIAL_AGENTS = [
{strategy:"all_c", count:23},
{strategy:"all_d", count:1},
{strategy:"tft", count:1}
];
o.tournament.reset();
};
_.resetTournament();
// Move tournament
o.tournament.dom.style.left = 480;
// Words to the side
self.add({
id:"text", type:"TextBox",
x:0, y:30, width:450, height:500,
text_id:"distrust_1"
});
_hide(o.text); _fadeIn(o.text, 600);
/////////////////////////////////////////
// BUTTONS for playing //////////////////
/////////////////////////////////////////
var x = 635;
var y = 175;
var dy = 70;
self.add({
id:"playButton", type:"Button",
x:x, y:y, text_id:"label_start",
onclick: function(){
if(o.tournament.isAutoPlaying){
publish("tournament/autoplay/stop");
}else{
publish("tournament/autoplay/start");
}
}
});
listen(_, "tournament/autoplay/stop",function(){
o.playButton.setText("label_start");
});
listen(_, "tournament/autoplay/start",function(){
o.playButton.setText("label_stop");
});
self.add({
id:"stepButton", type:"Button",
x:x, y:y+dy, text_id:"label_step", message:"tournament/step"
});
self.add({
id:"resetButton", type:"Button",
x:x, y:y+dy*2, text_id:"label_reset", message:"tournament/reset"
});
_hide(o.playButton); _fadeIn(o.playButton, 800);
_hide(o.stepButton); _fadeIn(o.stepButton, 900);
_hide(o.resetButton); _fadeIn(o.resetButton, 1000);
///////////
_.misc = {};
listen(_.misc, "tournament/step/completed", function(step){
if(step=="reproduce"){
publish("slideshow/next");
}
});
},
onend: function(self){
unlisten(_.misc);
}
});
SLIDES.push({
onstart: function(self){
var o = self.objects;
// Words
o.text.setTextID("distrust_2");
_hide(o.text); _fadeIn(o.text, 100);
// Slider Label & Slider
var x = 0;
var y = 350;
self.add({
id:"roundsLabel", type:"TextBox",
x:0, y:y, width:450, size:25, noSelect:true
});
self.add({
id:"roundsSlider", type:"Slider",
x:0, y:y+30, width:450,
min:1, max:20, step:1,
message: "rules/turns"
});
_.misc = {};
var _updateLabel = function(value){
var words = (value==1) ? Words.get("sandbox_rules_1_single") : Words.get("sandbox_rules_1"); // plural?
words = words.replace(/\[N\]/g, value+""); // replace [N] with the number value
o.roundsLabel.setText("<b>"+words+"</b>");
};
listen(_.misc, "rules/turns", function(value){
_updateLabel(value);
o.tournament.reset();
});
o.roundsSlider.setValue(10);
_updateLabel(10);
_hide(o.roundsLabel); _fadeIn(o.roundsLabel, 500);
_hide(o.roundsSlider); _fadeIn(o.roundsSlider, 500);
// Continue...
listen(_.misc, "tournament/autoplay/start",function(){
if(_showContinue) _showContinue();
});
var _showContinue = function(){
_showContinue = null;
var x = 125;
var y = 430;
self.add({
id:"continueLabel", type:"TextBox",
x:x, y:y+5, width:200, height:50,
align:"right", color:"#aaa", size:17,
text_id:"distrust_2_end"
});
self.add({
id:"continueButton", type:"Button",
x:x+215, y:y, size:"short",
text_id:"label_continue",
message: "slideshow/next"
});
_hide(o.continueLabel); _fadeIn(o.continueLabel, 100);
_hide(o.continueButton); _fadeIn(o.continueButton, 100);
};
},
onend: function(self){
unlisten(_.misc);
self.remove("roundsLabel");
self.remove("roundsSlider");
self.remove("continueLabel");
self.remove("continueButton");
}
});
// Explain that...
SLIDES.push({
onstart: function(self){
var o = self.objects;
// Words
o.text.setTextID("distrust_3");
_hide(o.text); _fadeIn(o.text, 100);
// Worse...
self.add({
id:"next", type:"Button",
x:0, y:450, size:"long",
text_id:"distrust_3_btn",
message: "slideshow/next"
});
_hide(o.next); _fadeIn(o.next, 400);
},
onend: function(self){
self.remove("text");
self.remove("next");
}
});
// Change PAYOFFS
SLIDES.push({
onstart: function(self){
var o = self.objects;
_.misc = {};
// Words
self.add({
id:"text", type:"TextBox",
x:0, y:0, width:450, height:500,
text_id:"distrust_4"
});
_hide(o.text); _fadeIn(o.text, 100);
// PAYOFFS
self.add({
id:"payoffs", type:"PayoffsUI",
x:105, y:73, scale:0.8, slideshow:self
});
_hide(o.payoffs); _fadeIn(o.payoffs, 300);
listen(_.misc, "payoffs/onchange", function(value){
o.tournament.reset();
});
// More words
self.add({
id:"text2", type:"TextBox",
x:0, y:320, width:450, height:500,
text_id:"distrust_4_2"
});
_hide(o.text2); _fadeIn(o.text2, 500);
// Note 1
var _showContinue = function(){
_showContinue = null;
self.add({
id:"continueLabel", type:"TextBox",
x:0, y:480, width:320,
align:"right", color:"#aaa", size:17,
text_id:"distrust_4_note"
});
self.add({
id:"continueButton", type:"Button",
x:340, y:471, size:"short",
text_id:"label_continue",
message: "slideshow/next"
});
_hide(o.continueLabel); _fadeIn(o.continueLabel, 100);
_hide(o.continueButton); _fadeIn(o.continueButton, 100);
};
listen(_.misc, "tournament/autoplay/start",function(){
if(_showContinue) _showContinue();
});
// Note 2
self.add({
id:"note2", type:"TextBox",
x:583, y:510, width:300, height:50,
align:"center", color:"#aaa", size:17,
text_id:"distrust_4_note_2"
});
_hide(o.note2); _fadeIn(o.note2, 500);
// TOURNAMENT
Tournament.resetGlobalVariables();
Tournament.INITIAL_AGENTS = [
{strategy:"all_c", count:23},
{strategy:"all_d", count:1},
{strategy:"tft", count:1}
];
Tournament.NUM_TURNS = 10;
o.tournament.reset();
},
onend: function(self){
unlisten(_.misc);
self.remove("text");
self.remove("payoffs");
self.remove("text2");
self.remove("note2");
self.remove("continueLabel");
self.remove("continueButton");
}
});
// Explain that...
SLIDES.push({
onstart: function(self){
var o = self.objects;
// Words
self.add({
id:"text", type:"TextBox",
x:0, y:30, width:450, height:500,
text_id:"distrust_5"
});
_hide(o.text); _fadeIn(o.text, 100);
// Worse...
self.add({
id:"next", type:"Button",
x:0, y:410, size:"long",
text_id:"distrust_5_btn",
message: "slideshow/next"
});
_hide(o.next); _fadeIn(o.next, 400);
},
onend: function(self){
self.remove("text");
self.remove("next");
}
});
// Play with BOTH
SLIDES.push({
onstart: function(self){
var o = self.objects;
_.misc = {};
// TOURNAMENT
Tournament.resetGlobalVariables();
Tournament.INITIAL_AGENTS = [
{strategy:"all_c", count:23},
{strategy:"all_d", count:1},
{strategy:"tft", count:1}
];
PD.PAYOFFS.P = -4;
PD.PAYOFFS.S = -1;
PD.PAYOFFS.R = 1;
PD.PAYOFFS.T = 3;
o.tournament.reset();
// Words
self.add({
id:"text", type:"TextBox",
x:0, y:0, width:450, height:500,
text_id:"distrust_6"
});
_hide(o.text); _fadeIn(o.text, 100);
listen(_.misc, "payoffs/onchange", function(value){
o.tournament.reset();
});
// SLIDER
// HAX - COPY PASTE CODE WHATEVER
var x = 0;
var y = 95;
self.add({
id:"roundsLabel", type:"TextBox",
x:0, y:y, width:450, size:25, noSelect:true
});
self.add({
id:"roundsSlider", type:"Slider",
x:0, y:y+30, width:450,
min:1, max:20, step:1,
message: "rules/turns"
});
var _updateLabel = function(value){
var words = (value==1) ? Words.get("sandbox_rules_1_single") : Words.get("sandbox_rules_1"); // plural?
words = words.replace(/\[N\]/g, value+""); // replace [N] with the number value
o.roundsLabel.setText("<b>"+words+"</b>");
};
listen(_.misc, "rules/turns", function(value){
_updateLabel(value);
o.tournament.reset();
});
o.roundsSlider.setValue(10);
_updateLabel(10);
_hide(o.roundsLabel); _fadeIn(o.roundsLabel, 300);
_hide(o.roundsSlider); _fadeIn(o.roundsSlider, 300);
// PAYOFFS
self.add({
id:"payoffs", type:"PayoffsUI",
x:105, y:170, scale:0.8, slideshow:self
});
_hide(o.payoffs); _fadeIn(o.payoffs, 300);
// Words
self.add({
id:"text2", type:"TextBox",
x:0, y:410, width:450, height:500,
text_id:"distrust_6_end"
});
_hide(o.text2); _fadeIn(o.text2, 500);
// FINALLY.
self.add({
id:"next", type:"Button",
x:0, y:475, size:"long",
text_id:"distrust_6_btn",
message: "slideshow/scratch"
});
_hide(o.next); _fadeIn(o.next, 700);
},
onend: function(self){
unlisten(_);
unlisten(_.misc);
self.clear();
}
});