new comedy game

This commit is contained in:
LEGALISE PIRACY 2024-01-10 17:02:18 -05:00 committed by GitHub
parent 1ce23efb61
commit 71cd15e7db
52 changed files with 1833 additions and 0 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

BIN
flappyplane/assets/bird.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 B

BIN
flappyplane/assets/land.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 354 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 995 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 962 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
flappyplane/assets/pipe.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
flappyplane/assets/sky.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

402
flappyplane/css/main.css Normal file
View File

@ -0,0 +1,402 @@
@-webkit-keyframes animLand {
0% { background-position: 0px 0px; }
100% { background-position: -335px 0px; }
}
@-moz-keyframes animLand {
0% { background-position: 0px 0px; }
100% { background-position: -335px 0px; }
}
@-o-keyframes animLand {
0% { background-position: 0px 0px; }
100% { background-position: -335px 0px; }
}
@keyframes animLand {
0% { background-position: 0px 0px; }
100% { background-position: -335px 0px; }
}
@-webkit-keyframes animSky {
0% { background-position: 0px 100%; }
100% { background-position: -275px 100%; }
}
@-moz-keyframes animSky {
0% { background-position: 0px 100%; }
100% { background-position: -275px 100%; }
}
@-o-keyframes animSky {
0% { background-position: 0px 100%; }
100% { background-position: -275px 100%; }
}
@keyframes animSky {
0% { background-position: 0px 100%; }
100% { background-position: -275px 100%; }
}
@-webkit-keyframes animBird {
from { background-position: 0px 0px; }
to { background-position: 0px -96px; }
}
@-moz-keyframes animBird {
from { background-position: 0px 0px; }
to { background-position: 0px -96px; }
}
@-o-keyframes animBird {
from { background-position: 0px 0px; }
to { background-position: 0px -96px; }
}
@keyframes animBird {
from { background-position: 0px 0px; }
to { background-position: 0px -96px; }
}
@-webkit-keyframes animPipe {
0% { left: 900px; }
100% { left: -100px; }
}
@-moz-keyframes animPipe {
0% { left: 900px; }
100% { left: -100px; }
}
@-o-keyframes animPipe {
0% { left: 900px; }
100% { left: -100px; }
}
@keyframes animPipe {
0% { left: 900px; }
100% { left: -100px; }
}
@-webkit-keyframes animCeiling {
0% { background-position: 0px 0px; }
100% { background-position: -63px 0px; }
}
@-moz-keyframes animCeiling {
0% { background-position: 0px 0px; }
100% { background-position: -63px 0px; }
}
@-o-keyframes animCeiling {
0% { background-position: 0px 0px; }
100% { background-position: -63px 0px; }
}
@keyframes animCeiling {
0% { background-position: 0px 0px; }
100% { background-position: -63px 0px; }
}
*,
*:before,
*:after
{
/* border box */
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
/* gpu acceleration */
-webkit-transition: translate3d(0,0,0);
/* select disable */
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
html,
body
{
height: 100%;
overflow: hidden;
font-family: monospace;
font-size: 12px;
color: #fff;
background:#111;
}
#gamecontainer
{
position: relative;
width: 100%;
height: 100%;
min-height: 525px;
}
@media (min-width: 1025px){
#gamecontainer
{
width:500px;
overflow:hidden;
margin:0 auto;
}
}
/*
Screen - Game
*/
#gamescreen
{
position: absolute;
width: 100%;
height: 100%;
}
#sky
{
position: absolute;
top: 0;
width: 100%;
height: 80%;
background-image: url('../assets/sky.png');
background-repeat: repeat-x;
background-position: 0px 100%;
background-color: #426dbd;
-webkit-animation: animSky 7s linear infinite;
animation: animSky 7s linear infinite;
}
#flyarea
{
position: absolute;
bottom: 0;
height: 420px;
width: 100%;
}
#ceiling
{
position: absolute;
top: -16px;
height: 16px;
width: 100%;
background-image: url('../assets/ceiling.png');
background-repeat: repeat-x;
-webkit-animation: animCeiling 481ms linear infinite;
animation: animCeiling 481ms linear infinite;
}
#land
{
position: absolute;
bottom: 0;
width: 100%;
height: 20%;
background-image: url('../assets/land.png');
background-repeat: repeat-x;
background-position: 0px 0px;
background-color: #0f2641;
-webkit-animation: animLand 2516ms linear infinite;
animation: animLand 2516ms linear infinite;
}
#bigscore
{
position: absolute;
top: 20px;
left: 50%;
margin-left:-20px;
z-index: 100;
}
#bigscore img
{
display: inline-block;
padding: 1px;
}
#splash
{
position: absolute;
opacity: 0;
top: 75px;
left: 50%;
margin-left:-94px;
width: 188px;
height: 170px;
background-image: url('../assets/splash.png');
background-repeat: no-repeat;
}
#scoreboard
{
position: absolute;
display: none;
opacity: 0;
top: 64px;
left: 50%;
margin-left:-119px;
width: 236px;
height: 280px;
background-image: url('../assets/scoreboard.png');
background-repeat: no-repeat;
z-index: 1000;
}
#medal
{
position: absolute;
opacity: 0;
top: 114px;
left: 32px;
width: 44px;
height: 44px;
}
#currentscore
{
position: absolute;
top: 105px;
left: 107px;
width: 104px;
height: 14px;
text-align: right;
}
#currentscore img
{
padding-left: 2px;
}
#highscore
{
position: absolute;
top: 147px;
left: 107px;
width: 104px;
height: 14px;
text-align: right;
}
#highscore img
{
padding-left: 2px;
}
#replay
{
position: absolute;
opacity: 0;
top: 205px;
left: 61px;
height: 115px;
width: 70px;
cursor: pointer;
}
.boundingbox
{
position: absolute;
display: none;
top: 0;
left: 0;
width: 0;
height: 0;
border: 1px solid red;
}
#player
{
left: 60px;
top: 200px;
}
.bird
{
position: absolute;
width: 93px;
height: 24px;
background-image: url('../assets/bird.png');
background-image: url('../assets/plane.png');
-webkit-animation: animBird 300ms steps(4) infinite;
animation: animBird 300ms steps(4) infinite;
}
.pipe
{
position: absolute;
left: -100px;
width: 52px;
height: 100%;
z-index: 10;
-webkit-animation: animPipe 7500ms linear;
animation: animPipe 7500ms linear;
}
.pipe_upper
{
position: absolute;
top: 0;
width: 52px;
background-image: url('../assets/pipe.png');
background-repeat: repeat-y;
background-position: center;
}
.pipe_upper:after
{
content: "";
position: absolute;
bottom: 0;
width: 52px;
height: 22px;
background-image: url('../assets/pipe-down.png');
}
.pipe_lower
{
position: absolute;
bottom: 0;
width: 52px;
background-image: url('../assets/pipe.png');
background-repeat: repeat-y;
background-position: center;
}
.pipe_lower:after
{
content: "";
position: absolute;
top: 0;
width: 52px;
height: 22px;
background-image: url('../assets/pipe-up.png');
}
#footer
{
position: absolute;
bottom: 3px;
left: 3px;
}
#footer a,
#footer a:link,
#footer a:visited,
#footer a:hover,
#footer a:active
{
display: block;
padding: 2px;
text-decoration: none;
color: #fff;
}
<style type="text/css">
body {
background: #000;
}
#explosion {
width: 188px;
height: 142px;
position : absolute;
margin-top:-50px;
background-image: url("../assets/explosion.png");
z-index:99;
}

View File

@ -0,0 +1,2 @@
/* html5doctor.com Reset v1.6.1 - http://cssreset.com */
html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}body{line-height:1}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}nav ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:none}a{margin:0;padding:0;font-size:100%;vertical-align:baseline;background:transparent}ins{background-color:#ff9;color:#000;text-decoration:none}mark{background-color:#ff9;color:#000;font-style:italic;font-weight:bold}del{text-decoration:line-through}abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}table{border-collapse:collapse;border-spacing:0}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}input,select{vertical-align:middle}

BIN
flappyplane/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

148
flappyplane/index.html Normal file
View File

@ -0,0 +1,148 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>FLAPPY PLANE!</title>
<link rel="icon" href="favicon.ico" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="author" content="Anonymous troll" />
<meta
name="description"
content="FLAPPY PLANE"
/>
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"
/>
<!-- Open Graph tags -->
<meta property="og:title" content="Flappy Plane, September edition" />
<meta
property="og:description"
content="FLAPPY PLANE OSAMA"
/>
<meta property="og:type" content="website" />
<meta
property="og:image"
content="https://github.com/irfaantx/terrorist.group/raw/main/assets/thumb.png"
/>
<meta property="og:url" content="https://irfaantx.github.io/terrorist.group" />
<meta property="og:site_name" content="FLAPPY PLANE!" />
<!-- Style sheets -->
<link href="css/reset.css" rel="stylesheet" />
<link href="css/main.css" rel="stylesheet" />
<script type="text/javascript">
var switchTo5x = true;
</script>
<script type="text/javascript">
stLight.options({
publisher: "2ae97540-b48e-49c1-9d0f-e9e34df112fe",
doNotHash: true,
doNotCopy: true,
hashAddressBar: false,
});
</script>
</head>
<body>
<div id="gamecontainer">
<style type="text/css">
#legpad {
display: none;
}
#smallpad {
display: none;
}
#ip4ad {
display: none;
}
#hdad {
display: none;
}
#leftad {
display: none;
float: left;
padding-left: 50px;
padding-top: 75px;
}
#rightad {
display: none;
float: right;
padding-right: 50px;
padding-top: 75px;
}
.largetab {
display: none;
}
@media (orientation: portrait) and (min-width: 319px) and (max-width: 459px) {
#ip4ad {
display: block;
}
}
@media (orientation: portrait) and (min-width: 299px) and (max-width: 318px) {
#smallpad {
display: block;
}
}
@media (orientation: portrait) and (min-width: 200px) and (max-width: 298px) {
#legpad {
display: block;
}
}
@media (orientation: landscape) and (min-height: 600px) and (min-width: 1270px) {
#leftad {
display: block;
}
#rightad {
display: block;
}
#hdad {
display: block;
}
}
@media (orientation: portrait) and (min-width: 760px) {
.largetab {
display: inline-block;
}
}
@media (orientation: portrait) and (min-width: 460px) and (max-width: 759px) {
#hdad {
display: block;
}
}
</style>
<div id="gamescreen">
<div id="sky" class="animated">
<div id="flyarea">
<div id="ceiling" class="animated"></div>
<!-- This is the flying and pipe area container -->
<div id="player" class="bird animated"></div>
<div id="bigscore"></div>
<div id="splash"></div>
<div id="scoreboard">
<div id="medal"></div>
<div id="currentscore"></div>
<div id="highscore"></div>
<div id="replay">
<img src="assets/replay.png" alt="replay" />
</div>
</div>
<!-- Pipes go here! -->
</div>
</div>
<div id="land" class="animated"><div id="debug"></div></div>
</div>
</div>
<div id="footer"></div>
<div class="boundingbox" id="playerbox"></div>
<div class="boundingbox" id="pipebox"></div>
<script src="ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="js/jquery.transit.min.js"></script>
<script src="js/buzz.min.js"></script>
<script src="js/main.min.js"></script>
</body>
</html>

516
flappyplane/js/buzz.min.js vendored Normal file
View File

@ -0,0 +1,516 @@
// ----------------------------------------------------------------------------
// Buzz, a Javascript HTML5 Audio library
// v1.1.0 - released 2013-08-15 13:18
// Licensed under the MIT license.
// http://buzz.jaysalvat.com/
// ----------------------------------------------------------------------------
// Copyright (C) 2010-2013 Jay Salvat
// http://jaysalvat.com/
// ----------------------------------------------------------------------------
(function (t, n, e) {
"undefined" != typeof module && module.exports
? (module.exports = e())
: "function" == typeof n.define && n.define.amd
? define(t, [], e)
: (n[t] = e());
})("buzz", this, function () {
var t = {
defaults: {
autoplay: !1,
duration: 5e3,
formats: [],
loop: !1,
placeholder: "--",
preload: "metadata",
volume: 80,
document: document,
},
types: {
mp3: "audio/mpeg",
ogg: "audio/ogg",
wav: "audio/wav",
aac: "audio/aac",
m4a: "audio/x-m4a",
},
sounds: [],
el: document.createElement("audio"),
sound: function (n, e) {
function i(t) {
for (var n = [], e = t.length - 1, i = 0; e >= i; i++)
n.push({ start: t.start(i), end: t.end(i) });
return n;
}
function u(t) {
return t.split(".").pop();
}
function s(n, e) {
var i = r.createElement("source");
(i.src = e),
t.types[u(e)] && (i.type = t.types[u(e)]),
n.appendChild(i);
}
e = e || {};
var r = e.document || t.defaults.document,
o = 0,
a = [],
h = {},
l = t.isSupported();
if (
((this.load = function () {
return l ? (this.sound.load(), this) : this;
}),
(this.play = function () {
return l ? (this.sound.play(), this) : this;
}),
(this.togglePlay = function () {
return l
? (this.sound.paused ? this.sound.play() : this.sound.pause(), this)
: this;
}),
(this.pause = function () {
return l ? (this.sound.pause(), this) : this;
}),
(this.isPaused = function () {
return l ? this.sound.paused : null;
}),
(this.stop = function () {
return l ? (this.setTime(0), this.sound.pause(), this) : this;
}),
(this.isEnded = function () {
return l ? this.sound.ended : null;
}),
(this.loop = function () {
return l
? ((this.sound.loop = "loop"),
this.bind("ended.buzzloop", function () {
(this.currentTime = 0), this.play();
}),
this)
: this;
}),
(this.unloop = function () {
return l
? (this.sound.removeAttribute("loop"),
this.unbind("ended.buzzloop"),
this)
: this;
}),
(this.mute = function () {
return l ? ((this.sound.muted = !0), this) : this;
}),
(this.unmute = function () {
return l ? ((this.sound.muted = !1), this) : this;
}),
(this.toggleMute = function () {
return l ? ((this.sound.muted = !this.sound.muted), this) : this;
}),
(this.isMuted = function () {
return l ? this.sound.muted : null;
}),
(this.setVolume = function (t) {
return l
? (0 > t && (t = 0),
t > 100 && (t = 100),
(this.volume = t),
(this.sound.volume = t / 100),
this)
: this;
}),
(this.getVolume = function () {
return l ? this.volume : this;
}),
(this.increaseVolume = function (t) {
return this.setVolume(this.volume + (t || 1));
}),
(this.decreaseVolume = function (t) {
return this.setVolume(this.volume - (t || 1));
}),
(this.setTime = function (t) {
if (!l) return this;
var n = !0;
return (
this.whenReady(function () {
n === !0 && ((n = !1), (this.sound.currentTime = t));
}),
this
);
}),
(this.getTime = function () {
if (!l) return null;
var n = Math.round(100 * this.sound.currentTime) / 100;
return isNaN(n) ? t.defaults.placeholder : n;
}),
(this.setPercent = function (n) {
return l ? this.setTime(t.fromPercent(n, this.sound.duration)) : this;
}),
(this.getPercent = function () {
if (!l) return null;
var n = Math.round(
t.toPercent(this.sound.currentTime, this.sound.duration)
);
return isNaN(n) ? t.defaults.placeholder : n;
}),
(this.setSpeed = function (t) {
return l ? ((this.sound.playbackRate = t), this) : this;
}),
(this.getSpeed = function () {
return l ? this.sound.playbackRate : null;
}),
(this.getDuration = function () {
if (!l) return null;
var n = Math.round(100 * this.sound.duration) / 100;
return isNaN(n) ? t.defaults.placeholder : n;
}),
(this.getPlayed = function () {
return l ? i(this.sound.played) : null;
}),
(this.getBuffered = function () {
return l ? i(this.sound.buffered) : null;
}),
(this.getSeekable = function () {
return l ? i(this.sound.seekable) : null;
}),
(this.getErrorCode = function () {
return l && this.sound.error ? this.sound.error.code : 0;
}),
(this.getErrorMessage = function () {
if (!l) return null;
switch (this.getErrorCode()) {
case 1:
return "MEDIA_ERR_ABORTED";
case 2:
return "MEDIA_ERR_NETWORK";
case 3:
return "MEDIA_ERR_DECODE";
case 4:
return "MEDIA_ERR_SRC_NOT_SUPPORTED";
default:
return null;
}
}),
(this.getStateCode = function () {
return l ? this.sound.readyState : null;
}),
(this.getStateMessage = function () {
if (!l) return null;
switch (this.getStateCode()) {
case 0:
return "HAVE_NOTHING";
case 1:
return "HAVE_METADATA";
case 2:
return "HAVE_CURRENT_DATA";
case 3:
return "HAVE_FUTURE_DATA";
case 4:
return "HAVE_ENOUGH_DATA";
default:
return null;
}
}),
(this.getNetworkStateCode = function () {
return l ? this.sound.networkState : null;
}),
(this.getNetworkStateMessage = function () {
if (!l) return null;
switch (this.getNetworkStateCode()) {
case 0:
return "NETWORK_EMPTY";
case 1:
return "NETWORK_IDLE";
case 2:
return "NETWORK_LOADING";
case 3:
return "NETWORK_NO_SOURCE";
default:
return null;
}
}),
(this.set = function (t, n) {
return l ? ((this.sound[t] = n), this) : this;
}),
(this.get = function (t) {
return l ? (t ? this.sound[t] : this.sound) : null;
}),
(this.bind = function (t, n) {
if (!l) return this;
t = t.split(" ");
for (
var e = this,
i = function (t) {
n.call(e, t);
},
u = 0;
t.length > u;
u++
) {
var s = t[u],
r = s;
(s = r.split(".")[0]),
a.push({ idx: r, func: i }),
this.sound.addEventListener(s, i, !0);
}
return this;
}),
(this.unbind = function (t) {
if (!l) return this;
t = t.split(" ");
for (var n = 0; t.length > n; n++)
for (var e = t[n], i = e.split(".")[0], u = 0; a.length > u; u++) {
var s = a[u].idx.split(".");
(a[u].idx == e || (s[1] && s[1] == e.replace(".", ""))) &&
(this.sound.removeEventListener(i, a[u].func, !0),
a.splice(u, 1));
}
return this;
}),
(this.bindOnce = function (t, n) {
if (!l) return this;
var e = this;
return (
(h[o++] = !1),
this.bind(t + "." + o, function () {
h[o] || ((h[o] = !0), n.call(e)), e.unbind(t + "." + o);
}),
this
);
}),
(this.trigger = function (t) {
if (!l) return this;
t = t.split(" ");
for (var n = 0; t.length > n; n++)
for (var e = t[n], i = 0; a.length > i; i++) {
var u = a[i].idx.split(".");
if (a[i].idx == e || (u[0] && u[0] == e.replace(".", ""))) {
var s = r.createEvent("HTMLEvents");
s.initEvent(u[0], !1, !0), this.sound.dispatchEvent(s);
}
}
return this;
}),
(this.fadeTo = function (n, e, i) {
function u() {
setTimeout(function () {
n > s && n > o.volume
? (o.setVolume((o.volume += 1)), u())
: s > n && o.volume > n
? (o.setVolume((o.volume -= 1)), u())
: i instanceof Function && i.apply(o);
}, r);
}
if (!l) return this;
e instanceof Function
? ((i = e), (e = t.defaults.duration))
: (e = e || t.defaults.duration);
var s = this.volume,
r = e / Math.abs(s - n),
o = this;
return (
this.play(),
this.whenReady(function () {
u();
}),
this
);
}),
(this.fadeIn = function (t, n) {
return l ? this.setVolume(0).fadeTo(100, t, n) : this;
}),
(this.fadeOut = function (t, n) {
return l ? this.fadeTo(0, t, n) : this;
}),
(this.fadeWith = function (t, n) {
return l
? (this.fadeOut(n, function () {
this.stop();
}),
t.play().fadeIn(n),
this)
: this;
}),
(this.whenReady = function (t) {
if (!l) return null;
var n = this;
0 === this.sound.readyState
? this.bind("canplay.buzzwhenready", function () {
t.call(n);
})
: t.call(n);
}),
l && n)
) {
for (var d in t.defaults)
t.defaults.hasOwnProperty(d) && (e[d] = e[d] || t.defaults[d]);
if (((this.sound = r.createElement("audio")), n instanceof Array))
for (var c in n) n.hasOwnProperty(c) && s(this.sound, n[c]);
else if (e.formats.length)
for (var f in e.formats)
e.formats.hasOwnProperty(f) &&
s(this.sound, n + "." + e.formats[f]);
else s(this.sound, n);
e.loop && this.loop(),
e.autoplay && (this.sound.autoplay = "autoplay"),
(this.sound.preload =
e.preload === !0 ? "auto" : e.preload === !1 ? "none" : e.preload),
this.setVolume(e.volume),
t.sounds.push(this);
}
},
group: function (t) {
function n() {
for (
var n = e(null, arguments), i = n.shift(), u = 0;
t.length > u;
u++
)
t[u][i].apply(t[u], n);
}
function e(t, n) {
return t instanceof Array ? t : Array.prototype.slice.call(n);
}
(t = e(t, arguments)),
(this.getSounds = function () {
return t;
}),
(this.add = function (n) {
n = e(n, arguments);
for (var i = 0; n.length > i; i++) t.push(n[i]);
}),
(this.remove = function (n) {
n = e(n, arguments);
for (var i = 0; n.length > i; i++)
for (var u = 0; t.length > u; u++)
if (t[u] == n[i]) {
t.splice(u, 1);
break;
}
}),
(this.load = function () {
return n("load"), this;
}),
(this.play = function () {
return n("play"), this;
}),
(this.togglePlay = function () {
return n("togglePlay"), this;
}),
(this.pause = function (t) {
return n("pause", t), this;
}),
(this.stop = function () {
return n("stop"), this;
}),
(this.mute = function () {
return n("mute"), this;
}),
(this.unmute = function () {
return n("unmute"), this;
}),
(this.toggleMute = function () {
return n("toggleMute"), this;
}),
(this.setVolume = function (t) {
return n("setVolume", t), this;
}),
(this.increaseVolume = function (t) {
return n("increaseVolume", t), this;
}),
(this.decreaseVolume = function (t) {
return n("decreaseVolume", t), this;
}),
(this.loop = function () {
return n("loop"), this;
}),
(this.unloop = function () {
return n("unloop"), this;
}),
(this.setTime = function (t) {
return n("setTime", t), this;
}),
(this.set = function (t, e) {
return n("set", t, e), this;
}),
(this.bind = function (t, e) {
return n("bind", t, e), this;
}),
(this.unbind = function (t) {
return n("unbind", t), this;
}),
(this.bindOnce = function (t, e) {
return n("bindOnce", t, e), this;
}),
(this.trigger = function (t) {
return n("trigger", t), this;
}),
(this.fade = function (t, e, i, u) {
return n("fade", t, e, i, u), this;
}),
(this.fadeIn = function (t, e) {
return n("fadeIn", t, e), this;
}),
(this.fadeOut = function (t, e) {
return n("fadeOut", t, e), this;
});
},
all: function () {
return new t.group(t.sounds);
},
isSupported: function () {
return !!t.el.canPlayType;
},
isOGGSupported: function () {
return (
!!t.el.canPlayType && t.el.canPlayType('audio/ogg; codecs="vorbis"')
);
},
isWAVSupported: function () {
return !!t.el.canPlayType && t.el.canPlayType('audio/wav; codecs="1"');
},
isMP3Supported: function () {
return !!t.el.canPlayType && t.el.canPlayType("audio/mpeg;");
},
isAACSupported: function () {
return (
!!t.el.canPlayType &&
(t.el.canPlayType("audio/x-m4a;") || t.el.canPlayType("audio/aac;"))
);
},
toTimer: function (t, n) {
var e, i, u;
return (
(e = Math.floor(t / 3600)),
(e = isNaN(e) ? "--" : e >= 10 ? e : "0" + e),
(i = n ? Math.floor((t / 60) % 60) : Math.floor(t / 60)),
(i = isNaN(i) ? "--" : i >= 10 ? i : "0" + i),
(u = Math.floor(t % 60)),
(u = isNaN(u) ? "--" : u >= 10 ? u : "0" + u),
n ? e + ":" + i + ":" + u : i + ":" + u
);
},
fromTimer: function (t) {
var n = ("" + t).split(":");
return (
n &&
3 == n.length &&
(t =
3600 * parseInt(n[0], 10) +
60 * parseInt(n[1], 10) +
parseInt(n[2], 10)),
n &&
2 == n.length &&
(t = 60 * parseInt(n[0], 10) + parseInt(n[1], 10)),
t
);
},
toPercent: function (t, n, e) {
var i = Math.pow(10, e || 0);
return Math.round(((100 * t) / n) * i) / i;
},
fromPercent: function (t, n, e) {
var i = Math.pow(10, e || 0);
return Math.round((n / 100) * t * i) / i;
},
};
return t;
});

458
flappyplane/js/jquery.transit.min.js vendored Normal file
View File

@ -0,0 +1,458 @@
/*!
* jQuery Transit - CSS3 transitions and transformations
* (c) 2011-2012 Rico Sta. Cruz <rico@ricostacruz.com>
* MIT Licensed.
*
* http://ricostacruz.com/jquery.transit
* http://github.com/rstacruz/jquery.transit
*/
(function (k) {
k.transit = {
version: "0.9.9",
propertyMap: {
marginLeft: "margin",
marginRight: "margin",
marginBottom: "margin",
marginTop: "margin",
paddingLeft: "padding",
paddingRight: "padding",
paddingBottom: "padding",
paddingTop: "padding",
},
enabled: true,
useTransitionEnd: false,
};
var d = document.createElement("div");
var q = {};
function b(v) {
if (v in d.style) {
return v;
}
var u = ["Moz", "Webkit", "O", "ms"];
var r = v.charAt(0).toUpperCase() + v.substr(1);
if (v in d.style) {
return v;
}
for (var t = 0; t < u.length; ++t) {
var s = u[t] + r;
if (s in d.style) {
return s;
}
}
}
function e() {
d.style[q.transform] = "";
d.style[q.transform] = "rotateY(90deg)";
return d.style[q.transform] !== "";
}
var a = navigator.userAgent.toLowerCase().indexOf("chrome") > -1;
q.transition = b("transition");
q.transitionDelay = b("transitionDelay");
q.transform = b("transform");
q.transformOrigin = b("transformOrigin");
q.transform3d = e();
var i = {
transition: "transitionEnd",
MozTransition: "transitionend",
OTransition: "oTransitionEnd",
WebkitTransition: "webkitTransitionEnd",
msTransition: "MSTransitionEnd",
};
var f = (q.transitionEnd = i[q.transition] || null);
for (var p in q) {
if (q.hasOwnProperty(p) && typeof k.support[p] === "undefined") {
k.support[p] = q[p];
}
}
d = null;
k.cssEase = {
_default: "ease",
in: "ease-in",
out: "ease-out",
"in-out": "ease-in-out",
snap: "cubic-bezier(0,1,.5,1)",
easeOutCubic: "cubic-bezier(.215,.61,.355,1)",
easeInOutCubic: "cubic-bezier(.645,.045,.355,1)",
easeInCirc: "cubic-bezier(.6,.04,.98,.335)",
easeOutCirc: "cubic-bezier(.075,.82,.165,1)",
easeInOutCirc: "cubic-bezier(.785,.135,.15,.86)",
easeInExpo: "cubic-bezier(.95,.05,.795,.035)",
easeOutExpo: "cubic-bezier(.19,1,.22,1)",
easeInOutExpo: "cubic-bezier(1,0,0,1)",
easeInQuad: "cubic-bezier(.55,.085,.68,.53)",
easeOutQuad: "cubic-bezier(.25,.46,.45,.94)",
easeInOutQuad: "cubic-bezier(.455,.03,.515,.955)",
easeInQuart: "cubic-bezier(.895,.03,.685,.22)",
easeOutQuart: "cubic-bezier(.165,.84,.44,1)",
easeInOutQuart: "cubic-bezier(.77,0,.175,1)",
easeInQuint: "cubic-bezier(.755,.05,.855,.06)",
easeOutQuint: "cubic-bezier(.23,1,.32,1)",
easeInOutQuint: "cubic-bezier(.86,0,.07,1)",
easeInSine: "cubic-bezier(.47,0,.745,.715)",
easeOutSine: "cubic-bezier(.39,.575,.565,1)",
easeInOutSine: "cubic-bezier(.445,.05,.55,.95)",
easeInBack: "cubic-bezier(.6,-.28,.735,.045)",
easeOutBack: "cubic-bezier(.175, .885,.32,1.275)",
easeInOutBack: "cubic-bezier(.68,-.55,.265,1.55)",
};
k.cssHooks["transit:transform"] = {
get: function (r) {
return k(r).data("transform") || new j();
},
set: function (s, r) {
var t = r;
if (!(t instanceof j)) {
t = new j(t);
}
if (q.transform === "WebkitTransform" && !a) {
s.style[q.transform] = t.toString(true);
} else {
s.style[q.transform] = t.toString();
}
k(s).data("transform", t);
},
};
k.cssHooks.transform = { set: k.cssHooks["transit:transform"].set };
if (k.fn.jquery < "1.8") {
k.cssHooks.transformOrigin = {
get: function (r) {
return r.style[q.transformOrigin];
},
set: function (r, s) {
r.style[q.transformOrigin] = s;
},
};
k.cssHooks.transition = {
get: function (r) {
return r.style[q.transition];
},
set: function (r, s) {
r.style[q.transition] = s;
},
};
}
n("scale");
n("translate");
n("rotate");
n("rotateX");
n("rotateY");
n("rotate3d");
n("perspective");
n("skewX");
n("skewY");
n("x", true);
n("y", true);
function j(r) {
if (typeof r === "string") {
this.parse(r);
}
return this;
}
j.prototype = {
setFromString: function (t, s) {
var r =
typeof s === "string"
? s.split(",")
: s.constructor === Array
? s
: [s];
r.unshift(t);
j.prototype.set.apply(this, r);
},
set: function (s) {
var r = Array.prototype.slice.apply(arguments, [1]);
if (this.setter[s]) {
this.setter[s].apply(this, r);
} else {
this[s] = r.join(",");
}
},
get: function (r) {
if (this.getter[r]) {
return this.getter[r].apply(this);
} else {
return this[r] || 0;
}
},
setter: {
rotate: function (r) {
this.rotate = o(r, "deg");
},
rotateX: function (r) {
this.rotateX = o(r, "deg");
},
rotateY: function (r) {
this.rotateY = o(r, "deg");
},
scale: function (r, s) {
if (s === undefined) {
s = r;
}
this.scale = r + "," + s;
},
skewX: function (r) {
this.skewX = o(r, "deg");
},
skewY: function (r) {
this.skewY = o(r, "deg");
},
perspective: function (r) {
this.perspective = o(r, "px");
},
x: function (r) {
this.set("translate", r, null);
},
y: function (r) {
this.set("translate", null, r);
},
translate: function (r, s) {
if (this._translateX === undefined) {
this._translateX = 0;
}
if (this._translateY === undefined) {
this._translateY = 0;
}
if (r !== null && r !== undefined) {
this._translateX = o(r, "px");
}
if (s !== null && s !== undefined) {
this._translateY = o(s, "px");
}
this.translate = this._translateX + "," + this._translateY;
},
},
getter: {
x: function () {
return this._translateX || 0;
},
y: function () {
return this._translateY || 0;
},
scale: function () {
var r = (this.scale || "1,1").split(",");
if (r[0]) {
r[0] = parseFloat(r[0]);
}
if (r[1]) {
r[1] = parseFloat(r[1]);
}
return r[0] === r[1] ? r[0] : r;
},
rotate3d: function () {
var t = (this.rotate3d || "0,0,0,0deg").split(",");
for (var r = 0; r <= 3; ++r) {
if (t[r]) {
t[r] = parseFloat(t[r]);
}
}
if (t[3]) {
t[3] = o(t[3], "deg");
}
return t;
},
},
parse: function (s) {
var r = this;
s.replace(/([a-zA-Z0-9]+)\((.*?)\)/g, function (t, v, u) {
r.setFromString(v, u);
});
},
toString: function (t) {
var s = [];
for (var r in this) {
if (this.hasOwnProperty(r)) {
if (
!q.transform3d &&
(r === "rotateX" ||
r === "rotateY" ||
r === "perspective" ||
r === "transformOrigin")
) {
continue;
}
if (r[0] !== "_") {
if (t && r === "scale") {
s.push(r + "3d(" + this[r] + ",1)");
} else {
if (t && r === "translate") {
s.push(r + "3d(" + this[r] + ",0)");
} else {
s.push(r + "(" + this[r] + ")");
}
}
}
}
}
return s.join(" ");
},
};
function m(s, r, t) {
if (r === true) {
s.queue(t);
} else {
if (r) {
s.queue(r, t);
} else {
t();
}
}
}
function h(s) {
var r = [];
k.each(s, function (t) {
t = k.camelCase(t);
t = k.transit.propertyMap[t] || k.cssProps[t] || t;
t = c(t);
if (k.inArray(t, r) === -1) {
r.push(t);
}
});
return r;
}
function g(s, v, x, r) {
var t = h(s);
if (k.cssEase[x]) {
x = k.cssEase[x];
}
var w = "" + l(v) + " " + x;
if (parseInt(r, 10) > 0) {
w += " " + l(r);
}
var u = [];
k.each(t, function (z, y) {
u.push(y + " " + w);
});
return u.join(", ");
}
k.fn.transition = k.fn.transit = function (z, s, y, C) {
var D = this;
var u = 0;
var w = true;
if (typeof s === "function") {
C = s;
s = undefined;
}
if (typeof y === "function") {
C = y;
y = undefined;
}
if (typeof z.easing !== "undefined") {
y = z.easing;
delete z.easing;
}
if (typeof z.duration !== "undefined") {
s = z.duration;
delete z.duration;
}
if (typeof z.complete !== "undefined") {
C = z.complete;
delete z.complete;
}
if (typeof z.queue !== "undefined") {
w = z.queue;
delete z.queue;
}
if (typeof z.delay !== "undefined") {
u = z.delay;
delete z.delay;
}
if (typeof s === "undefined") {
s = k.fx.speeds._default;
}
if (typeof y === "undefined") {
y = k.cssEase._default;
}
s = l(s);
var E = g(z, s, y, u);
var B = k.transit.enabled && q.transition;
var t = B ? parseInt(s, 10) + parseInt(u, 10) : 0;
if (t === 0) {
var A = function (F) {
D.css(z);
if (C) {
C.apply(D);
}
if (F) {
F();
}
};
m(D, w, A);
return D;
}
var x = {};
var r = function (H) {
var G = false;
var F = function () {
if (G) {
D.unbind(f, F);
}
if (t > 0) {
D.each(function () {
this.style[q.transition] = x[this] || null;
});
}
if (typeof C === "function") {
C.apply(D);
}
if (typeof H === "function") {
H();
}
};
if (t > 0 && f && k.transit.useTransitionEnd) {
G = true;
D.bind(f, F);
} else {
window.setTimeout(F, t);
}
D.each(function () {
if (t > 0) {
this.style[q.transition] = E;
}
k(this).css(z);
});
};
var v = function (F) {
this.offsetWidth;
r(F);
};
m(D, w, v);
return this;
};
function n(s, r) {
if (!r) {
k.cssNumber[s] = true;
}
k.transit.propertyMap[s] = q.transform;
k.cssHooks[s] = {
get: function (v) {
var u = k(v).css("transit:transform");
return u.get(s);
},
set: function (v, w) {
var u = k(v).css("transit:transform");
u.setFromString(s, w);
k(v).css({ "transit:transform": u });
},
};
}
function c(r) {
return r.replace(/([A-Z])/g, function (s) {
return "-" + s.toLowerCase();
});
}
function o(s, r) {
if (typeof s === "string" && !s.match(/^[\-0-9\.]+$/)) {
return s;
} else {
return "" + s + r;
}
}
function l(s) {
var r = s;
if (k.fx.speeds[r]) {
r = k.fx.speeds[r];
}
return o(r, "ms");
}
k.transit.getTransitionValue = g;
})(jQuery);

300
flappyplane/js/main.min.js vendored Normal file
View File

@ -0,0 +1,300 @@
function getCookie(e) {
for (
var o = e + "=", t = document.cookie.split(";"), s = 0;
s < t.length;
s++
) {
var a = t[s].trim();
if (0 == a.indexOf(o)) return a.substring(o.length, a.length);
}
return "";
}
function setCookie(e, o, t) {
var s = new Date();
s.setTime(s.getTime() + 24 * t * 60 * 60 * 1e3);
var a = "expires=" + s.toGMTString();
document.cookie = e + "=" + o + "; " + a;
}
function showSplash() {
(currentstate = states.SplashScreen),
(velocity = 0),
(position = 180),
(rotation = 0),
(score = 0),
$("#player").css({ y: 0, x: 0 }),
updatePlayer($("#player")),
soundSwoosh.stop(),
soundSwoosh.play(),
$(".pipe").remove(),
(pipes = new Array()),
$(".animated").css("animation-play-state", "running"),
$(".animated").css("-webkit-animation-play-state", "running"),
$("#splash").transition({ opacity: 1 }, 2e3, "ease");
}
function startGame() {
(currentstate = states.GameScreen),
soundHit.play(),
soundHit.stop(),
$("#splash").stop(),
$("#splash").transition({ opacity: 0 }, 500, "ease"),
setBigScore(),
debugmode && $(".boundingbox").show();
var e = 1e3 / 60;
(loopGameloop = setInterval(gameloop, e)),
(loopPipeloop = setInterval(updatePipes, 1400)),
playerJump(),
soundNasheed.stop(),
soundNasheed.play();
}
function updatePlayer(e) {
(rotation = Math.min((velocity / 10) * 40, 40)),
$(e).css({ rotate: rotation, top: position });
}
function gameloop() {
var e = $("#player");
(velocity += gravity), (position += velocity), updatePlayer(e);
var o = document.getElementById("player").getBoundingClientRect(),
t = 34,
s = 24,
a = t - 8 * Math.sin(Math.abs(rotation) / 90),
i = (s + o.height) / 2,
n = (o.width - a) / 2 + o.left,
r = (o.height - i) / 2 + o.top,
p = n + a,
c = r + i;
if (debugmode) {
var l = $("#playerbox");
l.css("left", n), l.css("top", r), l.css("height", i), l.css("width", a);
}
if (o.bottom >= $("#land").offset().top) return void playerDead();
var u = $("#ceiling");
if ((r <= u.offset().top + u.height() && (position = 0), null != pipes[0])) {
var d = pipes[0],
h = d.children(".pipe_upper"),
m = h.offset().top + h.height(),
y = h.offset().left - 2,
g = y + pipewidth,
f = m + pipeheight;
if (debugmode) {
var l = $("#pipebox");
l.css("left", y),
l.css("top", m),
l.css("height", pipeheight),
l.css("width", pipewidth);
}
return p > y && !(r > m && f > c)
? void playerDead()
: void (n > g && (pipes.splice(0, 1), playerScore()));
}
}
function screenClick() {
currentstate == states.GameScreen
? playerJump()
: currentstate == states.SplashScreen && startGame();
}
function playerJump() {
(velocity = jump), soundJump.stop(), soundJump.play();
}
function setBigScore(e) {
var o = $("#bigscore");
if ((o.empty(), !e))
for (var t = score.toString().split(""), s = 0; s < t.length; s++)
o.append(
"<img src='assets/font_big_" + t[s] + ".png' alt='" + t[s] + "'>"
);
}
function setSmallScore() {
var e = $("#currentscore");
e.empty();
for (var o = score.toString().split(""), t = 0; t < o.length; t++)
e.append(
"<img src='assets/font_small_" + o[t] + ".png' alt='" + o[t] + "'>"
);
}
function setHighScore() {
var e = $("#highscore");
e.empty();
for (var o = highscore.toString().split(""), t = 0; t < o.length; t++)
e.append(
"<img src='assets/font_small_" + o[t] + ".png' alt='" + o[t] + "'>"
);
}
function setMedal() {
var e = $("#medal");
return (
e.empty(),
10 > score
? !1
: (score >= 10 && (medal = "bronze"),
score >= 20 && (medal = "silver"),
score >= 30 && (medal = "gold"),
score >= 40 && (medal = "platinum"),
e.append(
'<img src="assets/medal_' + medal + '.png" alt="' + medal + '">'
),
!0)
);
}
function playerDead() {
$(".animated").css("animation-play-state", "paused"),
$(".animated").css("-webkit-animation-play-state", "paused");
var e = $(
'<div id="explosion" style="top: ' +
$("#player").position().top +
'px; left:60px;"></div>'
);
$("#flyarea").append(e);
var o = $("#player").position().top + $("#player").width(),
t = $("#flyarea").height(),
s = Math.max(0, t - o);
$("#player").transition({ y: s + "px", rotate: 90 }, 1e3, "easeInOutCubic"),
(currentstate = states.ScoreScreen),
clearInterval(loopGameloop),
clearInterval(loopPipeloop),
(loopGameloop = null),
(loopPipeloop = null),
isIncompatible.any()
? (soundHit.play(), showScore())
: soundHit.play().bindOnce("ended", function () {
soundDie.play().bindOnce("ended", function () {
showScore();
});
});
}
function showScore() {
soundNasheed.stop(),
$("#scoreboard").css("display", "block"),
setBigScore(!0),
score > highscore &&
((highscore = score), setCookie("highscore", highscore, 999)),
setSmallScore(),
setHighScore();
var e = setMedal();
soundSwoosh.stop(),
soundSwoosh.play(),
$("#scoreboard").css({ y: "40px", opacity: 0 }),
$("#replay").css({ y: "40px", opacity: 0 }),
$("#scoreboard").transition(
{ y: "0px", opacity: 1 },
600,
"ease",
function () {
soundSwoosh.stop(),
soundSwoosh.play(),
$("#replay").transition({ y: "0px", opacity: 1 }, 600, "ease"),
e &&
($("#medal").css({ scale: 2, opacity: 0 }),
$("#medal").transition({ opacity: 1, scale: 1 }, 1200, "ease"));
}
),
(replayclickable = !0);
}
function playerScore() {
(score += 1), soundScore.stop(), soundScore.play(), setBigScore();
}
function updatePipes() {
$(".pipe")
.filter(function () {
return $(this).position().left <= -100;
})
.remove();
var e = 80,
o = 420 - pipeheight - 2 * e,
t = Math.floor(Math.random() * o + e),
s = 420 - pipeheight - t,
a = $(
'<div class="pipe animated"><div class="pipe_upper" style="height: ' +
t +
'px;"></div><div class="pipe_lower" style="height: ' +
s +
'px;"></div></div>'
);
$("#flyarea").append(a), pipes.push(a);
}
var debugmode = !1,
states = Object.freeze({ SplashScreen: 0, GameScreen: 1, ScoreScreen: 2 }),
currentstate,
gravity = 0.25,
velocity = 0,
position = 180,
rotation = 0,
jump = -4.6,
score = 0,
highscore = 0,
pipeheight = 100,
pipewidth = 52,
pipes = new Array(),
replayclickable = !1;
(buzz.defaults.preload = !0), (buzz.defaults.formats = ["ogg"]);
var volume = 30,
soundJump = new buzz.sound("assets/sounds/sfx_wing"),
soundScore = new buzz.sound("assets/sounds/sfx_point"),
soundDie = new buzz.sound("assets/sounds/sfx_die"),
soundSwoosh = new buzz.sound("assets/sounds/sfx_swooshing"),
soundNasheed = new buzz.sound("assets/sounds/nasheed"),
soundHit = new buzz.sound("assets/sounds/sfx_hit");
buzz.all().setVolume(volume), soundNasheed.setVolume(15);
var loopGameloop, loopPipeloop;
$(document).ready(function () {
"?debug" == window.location.search && (debugmode = !0),
"?easy" == window.location.search && (pipeheight = 200);
var e = getCookie("highscore");
"" != e && (highscore = parseInt(e)), showSplash();
}),
$(document).keydown(function (e) {
32 == e.keyCode &&
(currentstate == states.ScoreScreen
? $("#replay").click()
: screenClick());
}),
"ontouchstart" in window
? $(document).on("touchstart", screenClick)
: $(document).on("mousedown", screenClick),
$("#replay").click(function () {
$("#explosion").remove(),
replayclickable &&
((replayclickable = !1),
soundSwoosh.stop(),
soundSwoosh.play(),
$("#scoreboard").transition(
{ y: "-40px", opacity: 0 },
1e3,
"ease",
function () {
$("#scoreboard").css("display", "none"), showSplash();
}
));
});
var isIncompatible = {
Android: function () {
return navigator.userAgent.match(/Android/i);
},
BlackBerry: function () {
return navigator.userAgent.match(/BlackBerry/i);
},
iOS: function () {
return navigator.userAgent.match(/iPhone|iPad|iPod/i);
},
Opera: function () {
return navigator.userAgent.match(/Opera Mini/i);
},
Safari: function () {
return (
navigator.userAgent.match(/OS X.*Safari/) &&
!navigator.userAgent.match(/Chrome/)
);
},
Windows: function () {
return navigator.userAgent.match(/IEMobile/i);
},
any: function () {
return (
isIncompatible.Android() ||
isIncompatible.BlackBerry() ||
isIncompatible.iOS() ||
isIncompatible.Opera() ||
isIncompatible.Safari() ||
isIncompatible.Windows()
);
},
};