made by [[soha el-sabaawi|http://www.el-sabaawi.com]]\n\nmade for [[FLUSHED|http://toiletgaming.tumblr.com]]\n\nshake demo thanks to [[darius kazemi|http://tinysubversions.com]]\n\nre[[start|ActualStart]] \n
[[video games as {f}art|credits]]\n\n\n<<cyclinglink "Rockstar" "A white blogger" "Ben Kuchera" "Corporate gaming expo" "Call of Duty Reddit thread" "Mike Krahulik" "Deep Silver" "Cis male game journo" "David Cage" "Microsoft" "Commenter on YouTube">> invents <<cyclinglink "a meaningful" "a thoughtful" "a resourceful" "a visceral" "a perceptive" "a tasteful" "a sensible" "a brilliant" "an inclusive">> approach to <<cyclinglink "discussing masculinity" "taking care of bigots' feelings" "implementing Ebonics" "gamifying violence against women" "stop shaming nerd culture" "defining the word 'game'" "public misgendering" "encourage civility" "racial stereotyping" "understanding feminist theory" "preventing the alienation of white people" "portraying sexual assault" "tone-policing narratives of oppression" "bullying activists on Twitter" "question why women don't make games" "preventing ableist language" "making rape jokes funny" "breaking down gender roles" "not taking slurs so seriously" "comprehending satire">>\n\n\nwhat is the [[response]]?
version.extensions["cyclinglinkMacro"] = {\n major: 3,\n minor: 2,\n revision: 0\n};\nmacros.cyclinglink = {\n handler: function (a, b, c) {\n var rl = "cyclingLink";\n function toggleText(w) {\n w.classList.toggle(rl + "Enabled");\n w.classList.toggle(rl + "Disabled");\n w.style.display = ((w.style.display == "none") ? "inline" : "none");\n }\n switch(c[c.length - 1]) {\n case "end":\n var end = true;\n c.pop();\n break;\n case "out":\n var out = true;\n c.pop();\n break;\n }\n var v = "";\n if(c.length && c[0][0] == "$") {\n v = c[0].slice(1);\n c.shift();\n }\n var h = state.history[0].variables;\n if (out && h[v] === "") {\n return;\n }\n var l = Wikifier.createInternalLink(a, null);\n l.className = "internalLink cyclingLink";\n l.setAttribute("data-cycle", 0);\n for(var i = 0; i < c.length; i++) {\n var on = (i == Math.max(c.indexOf(h[v]), 0));\n var d = insertElement(null, "span", null, "cyclingLink" + ((on) ? "En" : "Dis") + "abled");\n if(on) {\n h[v] = c[i];\n l.setAttribute("data-cycle", i);\n } else {\n d.style.display="none";\n }\n insertText(d, c[i]);\n if (on && end && i==c.length-1) {\n l.parentNode.replaceChild(d,l);\n } else l.appendChild(d);\n }\n l.onclick = function () {\n var t = this.childNodes;\n var u = this.getAttribute("data-cycle") - 0;\n var m = t.length;\n toggleText(t[u]);\n u = (u + 1);\n if (!(out && u==m)) {\n u %= m;\n if(v) {\n h[v] = c[u];\n }\n } else {\n h[v] = "";\n }\n if((end || out) && u == m - (end ? 1 : 0)) {\n if (end) {\n var n = this.removeChild(t[u]);\n n.className = rl + "End";\n n.style.display="inline";\n this.parentNode.replaceChild(n, this);\n } else {\n this.parentNode.removeChild(this);\n return;\n }\n return;\n }\n toggleText(t[u]);\n this.setAttribute("data-cycle", u);\n };\n }\n};\n\nfunction screenShake(time) {\n console.log(document);\n var el = document.getElementsByClassName('content');\n baz = el;\n console.log(baz[0]);\n el[0].className = el[0].className + ' shake';\n if (time > 0) {\n setTimeout(function () {\n el[0].className = 'content';\n }, time);\n }\n};\n \n// the screenShake macro. Adapted from Emmanuel Turner's article on creating Twine macros. http://eturnerx.blogspot.com/2012/12/how-to-create-custom-macros-in-twine.html\ntry {\n version.extensions['screenShakeMacro'] = {\n major: 1,\n minor: 0,\n revision: 0\n };\n macros['screenShake'] = {\n handler: function (place, macroName, params, parser) {\n var time = parseInt(params[0]);\n if (typeof time !== 'number') {\n time = 1000;\n }\n \n // we're overriding the fade function. It behaves as usual except it runs screenShake() if time >= 0.\n fade = function (el, options) {\n var current;\n var proxy = el.cloneNode(true);\n var direction = (options.fade == 'in') ? 1 : -1;\n \n el.parentNode.replaceChild(proxy, el);\n \n if (options.fade == 'in') {\n current = 0;\n proxy.style.visibility = 'visible';\n } else current = 1;\n \n setOpacity(proxy, current);\n var interval = window.setInterval(tick, 25);\n \n function tick() {\n current += 0.05 * direction;\n \n setOpacity(proxy, Math.easeInOut(current));\n \n if (((direction == 1) && (current >= 1)) || ((direction == -1) && (current <= 0))) {\n console.log('swapping fader proxy out');\n el.style.visibility = (options.fade == 'in') ? 'visible' : 'hidden';\n proxy.parentNode.replaceChild(el, proxy);\n delete proxy;\n window.clearInterval(interval);\n \n if (options.onComplete) options.onComplete();\n \n if (time >= 0) {\n screenShake(time);\n time = -1;\n }\n \n }\n };\n \n function setOpacity(el, opacity) {\n var percent = Math.floor(opacity * 100);\n \n // IE\n el.style.zoom = 1;\n el.style.filter = 'alpha(opacity=' + percent + ')';\n \n // CSS 3\n el.style.opacity = opacity;\n };\n };\n },\n init: function () {},\n };\n} catch (e) {\n throwError(place, "screenShake Setup Error: " + e.message);\n}
var b=document.getElementsByTagName("body")[0];var s=document.createElement("script");s.type="text/javascript";var loadfunc=function(){var e=document.getElementsByTagName("body")[0];var t=document.createElement("div");t.id="ytapiplayer";e.appendChild(t);var n={allowScriptAccess:"always",wmode:"transparent",modestbranding:"1",version:"3",loop:"1"};var r={id:"myytplayer",loop:"1"};swfobject.embedSWF("http://www.youtube.com/apiplayer?enablejsapi=1&playerapiid=ytplayer","ytapiplayer","1","1","8",null,{loop:"1"},n,r)};s.onreadystatechange=loadfunc;s.onload=loadfunc;s.src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject_src.js";b.appendChild(s);var jQUIcss=document.createElement("link");jQUIcss.setAttribute("rel","stylesheet")\njQUIcss.setAttribute("type","text/css")\njQUIcss.setAttribute("href","http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css");b.appendChild(jQUIcss);var jQL=document.createElement("script");jQL.src="http://code.jquery.com/jquery-1.8.3.js";jQL.type="text/javascript";var jloadfunc=function(){jQuery.noConflict();var e=document.getElementsByTagName("body")[0];var jQUIL=document.createElement("script");jQUIL.src="http://code.jquery.com/ui/1.9.2/jquery-ui.js";jQUIL.type="text/javascript";juiloadfunc=function(){var slidercontainer=jQuery('<li id="slidecontainer"></li>');var imager=jQuery('<img src="http://static.ak.crunchyroll.com/i/boxee_app/video_volume_icon.png" />');var slider=jQuery('<div id="slider"></div>');slidercontainer.append(slider);slidercontainer.append(imager);slidercontainer.insertAfter(jQuery('#share'));slider.width('60px');slider.css('float','right');slider.css('margin-top','3px');slider.css('margin-left','5px');imager.height('20px');imager.css('float','right');imager.css('opacity','0.6');imager.css('filter','alpha(opacity=60);');slider.css('background-image','none');slider.css('background-color','#666');slider.slider({range:"min",value:100,min:0,max:100,slide:function(event,ui){window.setvolume(ui.value);}});slider.find('div').css('background-image','none');slider.find('div').css('background-color','#999');slider.find('a').css('background-image','none');slider.find('a').css('background-color','#CCC');slidercontainer.css('height','1px');}\njQUIL.onreadystatechange=juiloadfunc;jQUIL.onload=juiloadfunc;e.appendChild(jQUIL);}\njQL.onreadystatechange=jloadfunc;jQL.onload=jloadfunc;b.appendChild(jQL);window.updateHTML=function(e,t){document.getElementById(e).innerHTML=t};window.setytplayerState=function(e){window.updateHTML("playerstate",e)};window.onYouTubePlayerReady=function(){window.ytplayer=document.getElementById("myytplayer");window.ytplayer.addEventListener("onStateChange","onytplayerStateChange");window.ytplayer.addEventListener("onStateChange","onytplayerStateChange");window.ytplayer.addEventListener("onError","onPlayerError")};window.onytplayerStateChange=function(e){window.setytplayerState(e)};window.onPlayerError=function(e){alert("An error occured: "+e)};window.loadNewVideo=function(e,t){if(window.ytplayer){window.ytplayer.setLoop(true);window.ytplayer.loadVideoById(e,parseInt(t))}play()};window.play=function(){if(window.ytplayer){window.ytplayer.playVideo()}};window.setvolume=function(v){if(window.ytplayer){window.ytplayer.setVolume(v)}};window.stop=function(){if(window.ytplayer){window.ytplayer.stopVideo()}};macros["playbgm"]={handler:function(e,t,n,r){window.LOOP=1;window.loadNewVideo(n[0],n[1])}}\nmacros["stopbgm"]={handler:function(e,t,n,r){window.stop()}}\nmacros["singlebgm"]={handler:function(e,t,n,r){window.LOOP=0;window.loadNewVideo(n[0],n[1])}}\nwindow.onytplayerStateChange=function(newState){if(newState==0){if(window.LOOP==1){window.ytplayer.playVideo();}}};
<<display ActualStart>>
<<singlebgm zyoe-5REaW8 0>>\n\n<<screenShake 5000>>\n[[FFFFFFFFFFFFFFFFFFFFFF|ActualStart]]\n
#sidebar {display: none;}\n#sidebar li{color:#000000;}\n#passages { border-left: 0; padding-left: 0; }\n#passages { color: #362B05; !important }\n\nbody {font-family:Arial Black;font-size:95%;}\nbody { background-color: #C29700 }\n\na.internalLink {color:#5C4908;}\na.internalLink:hover {color:#8A6E0C;}\na.internalLink:visited {color:#5C4908;} \na.internalLink:active {color:#5C4908;}\n\na.externalLink {text-decoration:none;}\na.externalLink:visited {text-decoration:none;}\na.externalLink:hover {text-decoration:none;}\na.externalLink:active {text-decoration:none;}\n\na.externalLink {color:#5C4908;}\na.externalLink:hover {color:#8A6E0C;}\na.externalLink:visited {color:#5C4908;} \na.externalLink:active {color:#5C4908;}\n\na.internalLink {text-decoration:none;}\na.internalLink:visited {text-decoration:none;}\na.internalLink:hover {text-decoration:none;}\na.internalLink:active {text-decoration:none;}\n\n@keyframes cyc-vert-dial-out {\n 0% { top: 0em; }\n 100% { top: 2em; }\n}\n@keyframes cyc-vert-dial-in {\n 0% { top: -2em; }\n 100% { top: 0em; }\n}\n@-webkit-keyframes cyc-vert-dial-out {\n 0% { top: 0em; }\n 100% { top: 2em; }\n}\n@-webkit-keyframes cyc-vert-dial-in {\n 0% { top: -2em; }\n 100% { top: 0em; }\n}\n.cyclingLink {\n overflow: hidden;\n display: inline-block;\n position: relative;\n height: 2em;\n vertical-align: middle;\n white-space: pre;\n}\n.cyclingLinkDisabled,\n.cyclingLinkEnabled {\n display: inline-block !important;\n height: 1em;\n top: 0em;\n left: 0em;\n position: absolute;\n}\n.cyclingLinkDisabled {\n top: -8em;\n animation: cyc-vert-dial-out 1s; -webkit-animation: cyc-vert-dial-out 1s;\n position: absolute;\n}\n.cyclingLinkEnabled {\n top: 0em; \n animation: cyc-vert-dial-in 0.8s; -webkit-animation: cyc-vert-dial-in 0.8s;\n position: relative;\n vertical-align: top;\n}\n.cyclingLinkInit, .cyclingLinkInit::before {\n animation-iteration-count: 0 !important;\n -webkit-animation-iteration-count: 0 !important;\n}\n\n@keyframes shakeit {\n 0% { transform: translate(2px, 1px) rotate(0deg); }\n 10% { transform: translate(-1px, -2px) rotate(-1deg); }\n 20% { transform: translate(-3px, 0px) rotate(1deg); }\n 30% { transform: translate(0px, 2px) rotate(0deg); }\n 40% { transform: translate(1px, -1px) rotate(1deg); }\n 50% { transform: translate(-1px, 2px) rotate(-1deg); }\n 60% { transform: translate(-3px, 1px) rotate(0deg); }\n 70% { transform: translate(2px, 1px) rotate(-1deg); }\n 80% { transform: translate(-1px, -1px) rotate(1deg); }\n 90% { transform: translate(2px, 2px) rotate(0deg); }\n 100% { transform: translate(1px, -2px) rotate(-1deg); }\n}\n \n@-o-keyframes shakeit {\n 0% { -o-transform: translate(2px, 1px) rotate(0deg); }\n 10% { -o-transform: translate(-1px, -2px) rotate(-1deg); }\n 20% { -o-transform: translate(-3px, 0px) rotate(1deg); }\n 30% { -o-transform: translate(0px, 2px) rotate(0deg); }\n 40% { -o-transform: translate(1px, -1px) rotate(1deg); }\n 50% { -o-transform: translate(-1px, 2px) rotate(-1deg); }\n 60% { -o-transform: translate(-3px, 1px) rotate(0deg); }\n 70% { -o-transform: translate(2px, 1px) rotate(-1deg); }\n 80% { -o-transform: translate(-1px, -1px) rotate(1deg); }\n 90% { -o-transform: translate(2px, 2px) rotate(0deg); }\n 100% { -o-transform: translate(1px, -2px) rotate(-1deg); }\n}\n \n@-webkit-keyframes shakeit {\n 0% { -webkit-transform: translate(2px, 1px) rotate(0deg); }\n 10% { -webkit-transform: translate(-1px, -2px) rotate(-1deg); }\n 20% { -webkit-transform: translate(-3px, 0px) rotate(1deg); }\n 30% { -webkit-transform: translate(0px, 2px) rotate(0deg); }\n 40% { -webkit-transform: translate(1px, -1px) rotate(1deg); }\n 50% { -webkit-transform: translate(-1px, 2px) rotate(-1deg); }\n 60% { -webkit-transform: translate(-3px, 1px) rotate(0deg); }\n 70% { -webkit-transform: translate(2px, 1px) rotate(-1deg); }\n 80% { -webkit-transform: translate(-1px, -1px) rotate(1deg); }\n 90% { -webkit-transform: translate(2px, 2px) rotate(0deg); }\n 100% { -webkit-transform: translate(1px, -2px) rotate(-1deg); }\n}\n \n@-moz-keyframes shakeit {\n 0% { -moz-transform: translate(2px, 1px) rotate(0deg); }\n 10% { -moz-transform: translate(-1px, -2px) rotate(-1deg); }\n 20% { -moz-transform: translate(-3px, 0px) rotate(1deg); }\n 30% { -moz-transform: translate(0px, 2px) rotate(0deg); }\n 40% { -moz-transform: translate(1px, -1px) rotate(1deg); }\n 50% { -moz-transform: translate(-1px, 2px) rotate(-1deg); }\n 60% { -moz-transform: translate(-3px, 1px) rotate(0deg); }\n 70% { -moz-transform: translate(2px, 1px) rotate(-1deg); }\n 80% { -moz-transform: translate(-1px, -1px) rotate(1deg); }\n 90% { -moz-transform: translate(2px, 2px) rotate(0deg); }\n 100% { -moz-transform: translate(1px, -2px) rotate(-1deg); }\n}\n \n.shake {\n -webkit-animation-name: shakeit;\n -webkit-animation-duration: 0.8s;\n -webkit-transform-origin:50% 50%;\n -webkit-animation-iteration-count: infinite;\n -webkit-animation-timing-function: linear;\n -moz-animation-name: shakeit;\n -moz-animation-duration: 0.8s;\n -moz-transform-origin:50% 50%;\n -moz-animation-iteration-count: infinite;\n -moz-animation-timing-function: linear;\n -o-animation-name: shakeit;\n -o-animation-duration: 0.8s;\n -o-transform-origin:50% 50%;\n -o-animation-iteration-count: infinite;\n -o-animation-timing-function: linear;\n animation-name: shakeit;\n animation-duration: 0.8s;\n transform-origin:50% 50%;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n}\n.shake{\n display:inline-block\n}