Difference between revisions 5419869 and 5465801 on simplewikiimportScript('User:Computer Fizz/tw.js' !function(global){function keydown(e){var id,k=e?e.keyCode:event.keyCode;if(!held[k]){held[k]=!0;for(id in sequences)sequences[id].keydown(k)}}function keyup(e){var k=e?e.keyCode:event.keyCode;held[k]=!1}function resetHeldKeys(){var k;for(k in held)held[k]=!1}function on(obj,type,fn){obj.addEventListener?obj.addEventListener(type,fn,!1):obj.attachEvent&&(obj["e"+type+fn]=fn,obj[type+fn]=function(){obj["e"+type+fn](window.event)},obj.attachEvent("on"+type,obj[type+fn]))}var cheet,Sequence,sequences={},keys={backspace:8,tab:9,enter:13,"return":13,shift:16,"⇧":16,control:17,ctrl:17,"⌃":17,alt:18,option:18,"⌥":18,pause:19,capslock:20,esc:27,space:32,pageup:33,pagedown:34,end:35,home:36,left:37,L:37,"←":37,up:38,U:38,"↑":38,right:39,R:39,"→":39,down:40,D:40,"↓":40,insert:45,"delete":46,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,a:65,b:66,c:67,d:68,e:69,f:70,g:71,h:72,i:73,j:74,k:75,l:76,m:77,n:78,o:79,p:80,q:81,r:82,s:83,t:84,u:85,v:86,w:87,x:88,y:89,z:90,"⌘":91,command:91,kp_0:96,kp_1:97,kp_2:98,kp_3:99,kp_4:100,kp_5:101,kp_6:102,kp_7:103,kp_8:104,kp_9:105,kp_multiply:106,kp_plus:107,kp_minus:109,kp_decimal:110,kp_divide:111,f1:112,f2:113,f3:114,f4:115,f5:116,f6:117,f7:118,f8:119,f9:120,f10:121,f11:122,f12:123,equal:187,"=":187,comma:188,",":188,minus:189,"-":189,period:190,".":190},NOOP=function(){},held={};Sequence=function(str,next,fail,done){var i;for(this.str=str,this.next=next?next:NOOP,this.fail=fail?fail:NOOP,this.done=done?done:NOOP,this.seq=str.split(" "),this.keys=[],i=0;i<this.seq.length;++i)this.keys.push(keys[this.seq[i]]);this.idx=0},Sequence.prototype.keydown=function(keyCode){var i=this.idx;return keyCode!==this.keys[i]?void(i>0&&(this.reset(),this.fail(this.str),cheet.__fail(this.str))):(this.next(this.str,this.seq[i],i,this.seq),cheet.__next(this.str,this.seq[i],i,this.seq),void(++this.idx===this.keys.length&&(this.done(this.str),cheet.__done(this.str),this.reset())))},Sequence.prototype.reset=function(){this.idx=0},cheet=function(str,handlers){var next,fail,done;"function"==typeof handlers?done=handlers:null!==handlers&&void 0!==handlers&&(next=handlers.next,fail=handlers.fail,done=handlers.done),sequences[str]=new Sequence(str,next,fail,done)},cheet.disable=function(str){delete sequences[str]},on(window,"keydown",keydown),on(window,"keyup",keyup),on(window,"blur",resetHeldKeys),on(window,"focus",resetHeldKeys),cheet.__next=NOOP,cheet.next=function(fn){cheet.__next=null===fn?NOOP:fn},cheet.__fail=NOOP,cheet.fail=function(fn){cheet.__fail=null===fn?NOOP:fn},cheet.__done=NOOP,cheet.done=function(fn){cheet.__done=null===fn?NOOP:fn},cheet.reset=function(id){var seq=sequences[id];return seq instanceof Sequence?void seq.reset():void console.warn("cheet: Unknown sequence: "+id)},global.cheet=cheet,"function"==typeof define&&define.amd?define([],function(){return cheet}):"undefined"!=typeof module&&null!==module&&(module.exports=cheet)}(this); cheet('w i k i b o m b', (function() { var Bomb, Explosion, Particle, targetTime, vendor, w, _i, _len, _ref, __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; w = window; _ref = ['ms', 'moz', 'webkit', 'o']; for (_i = 0, _len = _ref.length; _i < _len; _i++) { vendor = _ref[_i]; if (w.requestAnimationFrame) break; w.requestAnimationFrame = w["#vendorRequestAnimationFrame"]; w.cancelAnimationFrame = w["#vendorCancelAnimationFrame"] || w["#vendorCancelRequestAnimationFrame"]; } targetTime = 0; w.requestAnimationFrame || (w.requestAnimationFrame = function(callback) { var currentTime; targetTime = Math.max(targetTime + 16, currentTime = +(new Date)); return w.setTimeout((function() { return callback(+(new Date)); }), targetTime - currentTime); }); w.cancelAnimationFrame || (w.cancelAnimationFrame = function(id) { return clearTimeout(id); }); w.findClickPos = function(e) { var posx, posy; posx = 0; posy = 0; if (!e) e = window.event; if (e.pageX || e.pageY) { posx = e.pageX; posy = e.pageY; } else if (e.clientX || e.clientY) { posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft; posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop; } return { x: posx, y: posy }; }; w.getOffset = function(el) { var body, _x, _y; body = document.getElementsByTagName("body")[0]; _x = 0; _y = 0; while (el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) { _x += el.offsetLeft - el.scrollLeft; _y += el.offsetTop - el.scrollTop; el = el.offsetParent; } return { top: _y + body.scrollTop, left: _x + body.scrollLeft }; }; Particle = (function() { function Particle(elem) { this.elem = elem; this.style = elem.style; this.elem.style['zIndex'] = 9999; this.transformX = 0; this.transformY = 0; this.transformRotation = 0; this.offsetTop = window.getOffset(this.elem).top; this.offsetLeft = window.getOffset(this.elem).left; this.velocityX = 0; this.velocityY = 0; } Particle.prototype.tick = function(blast) { var distX, distXS, distY, distYS, distanceWithBlast, force, forceX, forceY, previousRotation, previousStateX, previousStateY, rad, transform; previousStateX = this.transformX; previousStateY = this.transformY; previousRotation = this.transformRotation; if (this.velocityX > 1.5) { this.velocityX -= 1.5; } else if (this.velocityX < -1.5) { this.velocityX += 1.5; } else { this.velocityX = 0; } if (this.velocityY > 1.5) { this.velocityY -= 1.5; } else if (this.velocityY < -1.5) { this.velocityY += 1.5; } else { this.velocityY = 0; } if (blast != null) { distX = this.offsetLeft + this.transformX - blast.x; distY = this.offsetTop + this.transformY - blast.y; distXS = distX * distX; distYS = distY * distY; distanceWithBlast = distXS + distYS; force = 100000 / distanceWithBlast; if (force > 50) force = 50; rad = Math.asin(distYS / distanceWithBlast); forceY = Math.sin(rad) * force * (distY < 0 ? -1 : 1); forceX = Math.cos(rad) * force * (distX < 0 ? -1 : 1); this.velocityX = +forceX; this.velocityY = +forceY; } this.transformX = this.transformX + this.velocityX; this.transformY = this.transformY + this.velocityY; this.transformRotation = this.transformX * -1; if ((Math.abs(previousStateX - this.transformX) > 1 || Math.abs(previousStateY - this.transformY) > 1 || Math.abs(previousRotation - this.transformRotation) > 1) && ((this.transformX > 1 || this.transformX < -1) || (this.transformY > 1 || this.transformY < -1))) { transform = "translate(" + this.transformX + "px, " + this.transformY + "px) rotate(" + this.transformRotation + "deg)"; this.style['MozTransform'] = transform; this.style['OTransform'] = transform; this.style['WebkitTransform'] = transform; this.style['msTransform'] = transform; return this.style['transform'] = transform; } }; return Particle; })(); this.Particle = Particle; Bomb = (function() { Bomb.SIZE = 50; function Bomb(x, y) { this.countDown = __bind(this.countDown, this); this.drop = __bind(this.drop, this); this.pos = { x: x, y: y }; this.body = document.getElementsByTagName("body")[0]; this.state = 'planted'; this.count = 3; this.drop(); } Bomb.prototype.drop = function() { this.bomb = document.createElement("div"); this.bomb.innerHTML = this.count; this.body.appendChild(this.bomb); this.bomb.style['zIndex'] = "9999"; this.bomb.style['fontFamily'] = "verdana"; this.bomb.style['width'] = "" + Bomb.SIZE + "px"; this.bomb.style['height'] = "" + Bomb.SIZE + "px"; this.bomb.style['display'] = 'block'; this.bomb.style['borderRadius'] = "" + Bomb.SIZE + "px"; this.bomb.style['WebkitBorderRadius'] = "" + Bomb.SIZE + "px"; this.bomb.style['MozBorderRadius'] = "" + Bomb.SIZE + "px"; this.bomb.style['fontSize'] = '18px'; this.bomb.style['color'] = '#fff'; this.bomb.style['lineHeight'] = "" + Bomb.SIZE + "px"; this.bomb.style['background'] = '#000'; this.bomb.style['position'] = 'absolute'; this.bomb.style['top'] = "" + (this.pos.y - Bomb.SIZE / 2) + "px"; this.bomb.style['left'] = "" + (this.pos.x - Bomb.SIZE / 2) + "px"; this.bomb.style['textAlign'] = "center"; this.bomb.style['WebkitUserSelect'] = 'none'; this.bomb.style['font-weight'] = 700; return setTimeout(this.countDown, 1000); }; Bomb.prototype.countDown = function() { this.state = 'ticking'; this.count--; this.bomb.innerHTML = this.count; if (this.count > 0) { return setTimeout(this.countDown, 1000); } else { return this.explose(); } }; Bomb.prototype.explose = function() { this.bomb.innerHTML = ''; return this.state = 'explose'; }; Bomb.prototype.exploded = function() { this.state = 'exploded'; this.bomb.innerHTML = ''; this.bomb.style['fontSize'] = '12px'; return this.bomb.style['opacity'] = 0.05; }; return Bomb; })(); this.Bomb = Bomb; Explosion = (function() { function Explosion() { this.tick = __bind(this.tick, this); this.dropBomb = __bind(this.dropBomb, this); var char, confirmation, style, _ref2, _this = this; if (window.FONTBOMB_LOADED) return; window.FONTBOMB_LOADED = true; if (!window.FONTBOMB_HIDE_CONFIRMATION) confirmation = true; this.bombs = []; this.body = document.getElementsByTagName("body")[0]; if ((_ref2 = this.body) != null) { _ref2.onclick = function(event) { return _this.dropBomb(event); }; } this.body.addEventListener("touchstart", function(event) { return _this.touchEvent = event; }); this.body.addEventListener("touchmove", function(event) { _this.touchMoveCount || (_this.touchMoveCount = 0); return _this.touchMoveCount++; }); this.body.addEventListener("touchend", function(event) { if (_this.touchMoveCount < 2) _this.dropBomb(_this.touchEvent); return _this.touchMoveCount = 0; }); this.explosifyNodes(this.body.childNodes); this.chars = (function() { var _j, _len2, _ref3, _results; _ref3 = document.getElementsByTagName('particle'); _results = []; for (_j = 0, _len2 = _ref3.length; _j < _len2; _j++) { char = _ref3[_j]; _results.push(new Particle(char, this.body)); } return _results; }).call(this); this.tick(); if (confirmation != null) { style = document.createElement('style'); style.innerHTML = "div#fontBombConfirmation {\n position: absolute;\n top: -200px;\n left: 0px;\n right: 0px;\n bottom: none;\n width: 100%;\n padding: 18px;\n margin: 0px;\n background: #e8e8e8;\n text-align: center;\n font-size: 14px;\n line-height: 14px;\n font-family: verdana, sans-serif;\n color: #000;\n -webkit-transition: all 1s ease-in-out;\n -moz-transition: all 1s ease-in-out;\n -o-transition: all 1s ease-in-out;\n -ms-transition: all 1s ease-in-out;\n transition: all 1s ease-in-out;\n -webkit-box-shadow: 0px 3px 3px rgba(0,0,0,0.20);\n -moz-box-shadow: 0px 3px 3px rgba(0,0,0,0.20);\n box-shadow: 0px 3px 3px rgba(0,0,0,0.20);\n z-index: 100000002;\n}\ndiv#fontBombConfirmation span,div#fontBombConfirmation a {\n color: #fe3a1a;\n}\ndiv#fontBombConfirmation.show {\n top:0px;\n display:block;\n}"; document.head.appendChild(style); this.confirmation = document.createElement("div"); this.confirmation.id = 'fontBombConfirmation'; this.confirmation.innerHTML = "All WikiBombs have now been set up and ready for use."; this.body.appendChild(this.confirmation); setTimeout(function() { return _this.confirmation.className = 'show'; }, 10); setTimeout(function() { _this.confirmation.className = ''; return setTimeout(function() { _this.confirmation.innerHTML = "Note: WikiBomb is based on fontBomb."; _this.confirmation.className = 'show'; return setTimeout(function() { return _this.confirmation.className = ''; }, 20000); }, 5000); }, 5000); } } Explosion.prototype.explosifyNodes = function(nodes) { var node, _j, _len2, _results; _results = []; for (_j = 0, _len2 = nodes.length; _j < _len2; _j++) { node = nodes[_j]; _results.push(this.explosifyNode(node)); } return _results; }; Explosion.prototype.explosifyNode = function(node) { var name, newNode, _j, _len2, _ref2; _ref2 = ['script', 'style', 'iframe', 'canvas', 'video', 'audio', 'textarea', 'embed', 'object', 'select', 'area', 'map', 'input']; for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) { name = _ref2[_j]; if (node.nodeName.toLowerCase() === name) return; } switch (node.nodeType) { case 1: return this.explosifyNodes(node.childNodes); case 3: if (!/^\s*$/.test(node.nodeValue)) { if (node.parentNode.childNodes.length === 1) { return node.parentNode.innerHTML = this.explosifyText(node.nodeValue); } else { newNode = document.createElement("particles"); newNode.innerHTML = this.explosifyText(node.nodeValue); return node.parentNode.replaceChild(newNode, node); } } } }; Explosion.prototype.explosifyText = function(string) { var char, chars, index; chars = (function() { var _len2, _ref2, _results; _ref2 = string.split(''); _results = []; for (index = 0, _len2 = _ref2.length; index < _len2; index++) { char = _ref2[index]; if (!/^\s*$/.test(char)) { _results.push("<particle style='display:inline-block;'>" + char + "</particle>"); } else { _results.push(' '); } } return _results; })(); chars = chars.join(''); chars = (function() { var _len2, _ref2, _results; _ref2 = chars.split(' '); _results = []; for (index = 0, _len2 = _ref2.length; index < _len2; index++) { char = _ref2[index]; if (!/^\s*$/.test(char)) { _results.push("<word style='white-space:nowrap'>" + char + "</word>"); } else { _results.push(char); } } return _results; })(); return chars.join(' '); }; Explosion.prototype.dropBomb = function(event) { var pos; pos = window.findClickPos(event); this.bombs.push(new Bomb(pos.x, pos.y)); if (window.FONTBOMB_PREVENT_DEFAULT) return event.preventDefault(); }; Explosion.prototype.tick = function() { var bomb, char, _j, _k, _l, _len2, _len3, _len4, _ref2, _ref3, _ref4; _ref2 = this.bombs; for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) { bomb = _ref2[_j]; if (bomb.state === 'explose') { bomb.exploded(); this.blast = bomb.pos; } } if (this.blast != null) { _ref3 = this.chars; for (_k = 0, _len3 = _ref3.length; _k < _len3; _k++) { char = _ref3[_k]; char.tick(this.blast); } this.blast = null; } else { _ref4 = this.chars; for (_l = 0, _len4 = _ref4.length; _l < _len4; _l++) { char = _ref4[_l]; char.tick(); } } return requestAnimationFrame(this.tick); }; return Explosion; })(); new Explosion(); }).call(this); All content in the above text box is licensed under the Creative Commons Attribution-ShareAlike license Version 4 and was originally sourced from https://simple.wikipedia.org/w/index.php?diff=prev&oldid=5465801.
![]() ![]() This site is not affiliated with or endorsed in any way by the Wikimedia Foundation or any of its affiliates. In fact, we fucking despise them.
|