This repository has been archived on 2024-04-03. You can view files and clone it, but cannot push or open issues or pull requests.
OLD-GZod01.fr_Source_Code-OLD/main-site/uscpm/index.html

2031 lines
130 KiB
HTML
Raw Permalink Normal View History

2023-03-25 09:29:34 +00:00
<meta charset=utf-8>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>UPDATED Super Chrono Portal Maker</title>
<body id="jeu" bgcolor=0 style="min-height: 100vh; margin: 0; word-break: break-word; display: flex; flex-direction: column;">
<center>
<canvas width=1280 height=648 style="border:1px solid; background:#5C94FC; cursor:crosshair" id=a></canvas>
<img src="data:;base64,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
<br>
<p style="color:#444;font:normal 15px arial">
GZod01
- <a href="/">Retour à l'Accueil</a>
- <a href="/uscpm/about" onclick="location='//gzod01.fr/uscpm/about'" >À PROPOS</a>
- <button id="Savebutton">Sauvegarder</button>
- <button id="editthecode">Modifier le niveau</button>
- <button id="winthegame">GAGNER!</button>
<!-- - <button id="exportthegame">EXPORTER</button>
- <input type="file" id="fs">
- <button id="importthegame">IMPORTER</button> -->
<!-- - <button onclick="makeimport()">MakeImport</button>-->
- using localStorage
<script>
// gzod01.fr/uscpm/
//for get level: gzod01.fr/uscpm/index.html?levelsinput=json.tourl(levels)
c = a.getContext("2d");
localStorage["uscpm"] = localStorage["uscpm"] || 1;
d = 0;
n = 0;
o = false;
p = false;
x = y = 0;
s = 0;
aa = ab = ac = 0;
_ = 0;
ad = 0;
t = {};
if (localStorage.getItem('storage?') ==2){
levels= JSON.parse(localStorage.getItem('niveau'))
}
else {
levels = [, {"hash":"000000000===000000000000000000=00000000000000000000000000000000000000==00002000003=0300000000000000000000000==0000000000030030000000000000000000000000000000000003F=30003333000033330033330003300033000003G030046666300:00000090003003030303000000330=036666???3000000906039930333030=000000000366660009000:009???3003003003000000000???399300090000003333???300000900=000000000666630090:000030000003066609000000===0006666300306000030==00090666090=000==00003666640030;0<003==00009066603000000000???333300003333003000000300000300000000000000000000000000000000000333000000000000000===000000000000000000000000000000000000==0000000000000000000000==000000000000000000000000000000000000===00000000000000000000000000000000000000000000000000000000000000000000000000000???00000000000000000000000000000000000000000000000",txt:"Merci de jouer, allez sur la page 'à propos' pour plus d'infos", "I":[[]],"J":[[6,8,6,12],[13,6,24,7],[27,8,31,18]],"txt":"3","txt2":"4","ac":120,"u":[{"x":608,"y":352,"f":0,"Z":null,"R":1,"k":false,"e":0,"d":true,"S":null}],"x":[[0,0,0,0,0,0,0,0,0,13,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,13,0,0,0,0,2,0,0,0,0],[0,3,13,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,24,0,0,0,0],[0,3,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0],[0,3,22,13,3,0,0,0,3,3,3,3,0,0,0,0,3,3,3,3,0,0,3,3,3,3,0,0,0,3,3,0,0,0,3,3,0,0,0,0],[0,3,23,0,3,0,0,4,6,6,6,6,3,0,0,10,0,0,0,0,0,0,9,0,0,0,3,0,0,3,0,3,0,3,0,3,0,0,0,0],[0,0,3,3,0,13,0,3,6,6,6,6,0,0,0,3,0,0,0,0,0,0,9,0,6,0,3,9,9,3,0,3,3,3,0,3,0,13,0,0],[0,0,0,0,0,0,0,3,6,6,6,6,0,0,0,9,0,0,0,10,0,0,9,0,0,0,3,0,0,3,0,0,3,0,0,3,0,0,0,0],[0,0,0,0,0,0,0,0,3,9,9,3,0,0,0,9,0,0,0,0,0,0,3,3,3,3,0,0,0,3,0,0,0,0,0,9,0,0,13,0],[0,0,0,0,0,0,0,0,6,6,6,6,3,0,0,9,0,10,0,0,0,0,3,0,0,0,0,0,0,3,0,6,6,6,0,9,0,0,0,0],[0,0,13,13,13,0,0,0,6,6,6,6,3,0,0,3,0,6,0,0,0,0,3,0,13,13,0,0,0,9,0,6,6,6,0,9,0,13,0,0],[0,13,13,0,0,0,0,3,6,6,6,6,4,0,0,3,0,11,0,12,0,0,3,13,13,0,0,0,0,9,0,6,6,6,0,3,0,0,0,0],[0,0,0,0,0,0,0,0,3,3,3,3,0,0,0,0,3,3,3,3,0,0,3,0,0,0,0,0,0,3,0,0,0,0,0,3,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,13,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,13,13,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],"Q":[2,5]}, {
hash: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006006006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006006000000000000000000002000000000500500500500004000400000000000000F000000000000000000044000440000000000000G0000000000000000004440004440007700000033333333333333333333333333333333333333333333333333333333333333333333333333333333",
I: [],
J: [],
txt: "Si vous êtes coincé, recommencez avec R",
ac: 376
}, {
hash: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004004004008008000002000000600600600004000000000000000000000000F000000000000044400000000000000000000000G0000000000004444400000000000000000000033388888888888888888888888888888888883333338888888888888888888888888888888888333",
I: [],
J: [],
txt: "La glace est glissante si vous ne restez pas sans bouger dessus",
ac: 254
}, {
hash: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000020000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000600000<0000000000000000000000000000000000000000000000040000000040000000000<00<004000000000000440000000044000000F000000004400000000004440000000044400000G0000000044400000000444400000000444400033333333333333330333333333333333333333333333333333333333333333333333333333333333",
I: [],
J: [],
txt: "Espace pour attraper des cubes, sauter et espace pour les jeter.",
ac: 400
}, {
hash: "000000000000000000000000000000000000000000000000<00000000000000000000000000000000000000000000000000000000000000000000000000000099990000000000000000000000000000000000000009000000000000000000000000000000000000:::9000000000000000000000000000000000000000900000000000000000000000000000000000099990000000000000000000000000000000000000009000000000000000000000000000000000000:::900000000000000000000000000000000000000090000000000000000000000000000000000006669000000000000000000000000000020000000000900000<00000000000000000000000000000099990000050000000000000000000000400000000009000000000000000000000000000040F000000009000000000000000000000000000040G0;000000900;000000;00000000000;000000433333333333333333999999933333::::::3333333333333333333333999999933333::::::33333",
I: [],
J: [],
txt: "Tous les boutons jaunes sont connectés",
ac: 1E3
}, {
hash: "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003333333333300000000000440000000000000000000000000000000000000000000000000060000000000000000000000000000000600000000000000<000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000F000000000000000000000000000000000000000G0000000000000000000000000000000000000033333333333333333333333333333333333333333333333333333333333333333333333333333333",
I: [[8, 8, 16, 6, 16], [24, 16, 6, 22, 16], [35, 7, 16, 30, 5]],
J: [],
txt: "Chaque bouton vert controle un tuyau",
ac: 677
}, {
hash: "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<00000000000000000000000000000000000000000000000000000000000000000000000099999999900000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000F000000000000000000000000000000000000000G0000000000000000000000000000000000000333333000000000000000000000000000000000033333300000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000;000060000000000000040000000000000000033333006000000000000004000000000000000003333300600000000333333330000000000000000000000000000000033333333000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
I: [],
J: [[8, 9, 13, 17], [28, 6, 23, 14]],
txt: "Les plateformes bougeront seulement si il y a plus de poid d'un coté",
ac: 261
}, {
hash: "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004444444444444000000000000000000000000000300000000000000000000000000000000000040030606060600000000000000000000000000604003000000000<0000000000000000000000000040030000000000000000000000000000000000004003000004444444000000000000000000000000400300000300000000000000000000000000000040030000030000000000000000000000000000004003000003000000000000000000000000000000400300000300000000000000000000000000000040030000030000000000000000002000000000004003000003000000000000000000000000000000400400F004000000000000000000000000000000400400G0040000000000000000000000000000;040044444440000000000000000003::::::::333300000000000000000000000000000000000000000",
I: [],
J: [],
txt: "Visez avec la souris, envoyez des portails avec clic gauche et clic droit",
ac: 284
}, {
hash: "000000000000000000000000000000000000000004444000000000000000000000000000000000000400000000000000000000000000000000000000040000000000000000000000000000000000000004000000000000000000000000000000000000000400000000000000000000000000000000000000040000000000000000000000000000000000000004000000000000000000000000000000000000000400000000000000000000000000000000000000040000000000000000000000000000000000000004000000000000000000000000000000000000000400000000006000000000000000000000000000040000000000000000000000000000000000000004000000000000000000000000000000000002000400000000000000000000000000000000000000040000F000000000000000000000000000000000040000G00000000000000000000000000000000004444444444440000000000008888888888888800000000000000000000000000000000000000000",
I: [],
J: [],
txt: "Utilisez l'élan",
ac: 183
}, {
hash: "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000888888888888888888880000000000000000000030000000000000000008000000000000000000003000000000000000000800000000000000000000300200000000000000080000000000000000000030000000000000000008000000000000000000003000000000006000000800000000000000000000300000770000000000080000000000000000000044444444444440600008000000000000000000003000000000000000000800000000000000000000300000000000600000080000000000000000000030000000000000000008000000000000000000003000000000000000000800000000000000000000300F000000000000000800000000000000000000300G00000000000000080000000000000000000044444444444440000008000000000000000000000000000000000000000000000000000",
I: [],
J: [],
txt: "Les portails rebondissent sur la glace",
ac: 162
}, {
hash: "000000000000000000000000000000000000000008888888888888888888888888888888888888800800000000000000000000000000000000000080080000000000000000000000000000000000008008998000000000000000000000000000008:::8008998000000000000000000000000000008:::8008998000000000000000000000000000008:::8008008000000000000000000000000000008000800800800000000000000000000000000000800080080080000000000000000000000000000080008008008000000043333333333300000000008000800800800000044300000300000006666660800080080080000044430000030000000000000080008008008333333333000003002000333333338000800800800000000000000400000000000000000080080000000000000F000400000000000000000080080000000000000G0;040000000000000000008008000000000000333333333300000000000000800000000000000000000000000000000000000000",
I: [],
J: [],
ac: 528
}, {
hash: "00000000000000000044000000000000000000000000000000000000000000000000000000000000000000000000000002F000000000000000000000000000000000000000G0000000000000000000000000000000000000033000000000000000000000000000000000000000000000000000000000000000000000000060000000000060000000000000000000000000000000000000000000000000000000000000000006000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000<6000000000000000000000000000000000000003300000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000000000",
I: [],
J: [[], [19, 7, 24, 4], [19, 9, 24, 15], [19, 11, 14, 15], [19, 13, 14, 4]],
ac: 446
}, {
hash: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020300000000000000000000000000000000000000030000000000000000000000000000000000000003000000000000000000000000000000333333333300000000000000000000000000000030000000000000000000000000000000000000003000000000000000000000000000000000000000300000000000000000000000000000000000000030000000000000000000000000000000000000003000000000000000000000000306000000000000300000000000000000000000030000000F000000300000000000000000000000030000000G0000003000000000000000000000000333333333333333300000000000000000000000000000000000000000000000000000000",
I: [[21, 16, 8, 10, 16]],
J: [],
txt: "Vous avez besoin d'aide? Remontez dans le temps en appuyant sur MAJ sur la machine du temp",
ac: 240
}, {
hash: "0000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000006660000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000333009990000000000000000000000000600::0000000000000000000000000000000000000:::000000000000000000000000000000000600::::00000000000000000000000000000000000:::::0000000000000000000000000000000600::::::000000000000000000000000000000000:::::::00000000000000000000000000000600::::::::0000000000000000000000000000000:::::::::0000000000000000000000F0000600::::::::::0000000000000000000000G00;000:::::::::::0000000000000000033333333333333333333333333333333333333333333333333333333333333333333333333333333",
I: [],
J: [],
ac: 309
}, {
hash: "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000003000000000000000000000000000000000000333300000000000000000000000000000000000030000000000000000000000000000000000000003000000000000000000000000000000000000000300000000000000000000000000000000000000030000000000000000000000000030F000000000030000000000000000000000000030G00000<00003000000000000000000000000003333333333333300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
I: [],
J: [],
ac: 162
}, {
hash: "00000000000000000000000<0000000000000000000000000000020000000000000000000000000000000000000000000000000<0000000000000000000000000000000000000000000000000000000000000000000004000000000<0000000000000000000000000000000000000000000000000000000000000000000000000000000<0000F000000000000000000000000000000000000000G0000000000000000000000000000000000<0000000000000000000000000000000000000000000000000000000000000000000000000000000<0000000000000000000000000000000000000000000000000000000000000000000000000000000<0000000000000000000000000000000000000000000000000000000000000000000000000000000<0000000000000000000000000000000000000000000000000000000000000000000000000000000<000000000000000000000000033333333333333333333333000000000000000000000000000000000000000000000000",
I: [],
J: [],
ac: 360
}, {
hash: "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000030000000000000000003000000606060606060603000000000000000000300000000000000000000300000000000000000030999::::::::::::::::3000000000000000000300000000000000000000300000000000000000030000000000000000000030000000000000000003000000000000000000003000000000000000000300000000000000000020300000000000000000030000000000000000000030000000000000000003000000000000000000003000000000000000000300000000000000000000300000000000000000030000000000000000F00030000000000000000003000000;000000000G0003000000000000000000333333333333333333333300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
I: [[11, 15, 7, 21, 15]],
J: [],
txt: "Parfois vous avez besoin de faire plusieurs voyages",
ac: 674
}, {
hash: "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000060000000000000000000000000000000000000006000000000000000000000000000000000;;;;;;;000000000000000000000000000000000333333300000000000020000000000000000000030000000000000000000000000000000000000003000000000000000003000000000000000000000300000000000000000300F000000000000000000300000000000000000300G0000000000000000003000000000000000003333339999999999993333300000000000000000000003000000000000300000000000000000000000000300000000000030000000000000000000000000030000000000003000000000000000000000000003333333333333300000000000000000000000000000000000000000000000000000000",
I: [[25, 12, 7, 17, 12]],
J: [],
txt: "Si un vous meme du passé meurt ou ne peut pas arriver à la machine du temp, vous perdez, c'est un paradoxe temporel",
txt2: "Si un vous meme du passé arrive au drapeau vous avez gagné",
ac: 651
}, {
hash: "0000000000000000000000000000000000000000000000000000000000000000020300000000000000000000000000000000000000030000000000000000000000000000000000003333000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030F000000000000000000000000000000000000030G000<00<00<000000000000000000000000000333333333333333300000000000000000000000000000000000000000000000000000000",
I: [],
J: [],
ac: 523
}, {
hash: "00000000000000000000000000000000000000000000000000000000000<00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000F000000000000000000000000000000000000000G000000000000000000000000000000000000033333000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<00033330000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<0<000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003333330000000000000000000000000000000000000000000000000000000000",
I: [],
J: [[14, 4, 19, 16]],
txt: "les heros et les cubes ont le meme poid",
ac: 335
}, {
hash: "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034443000003444300000000090000000000000003000300000300030000000009000000000000000000030000000000000000000900000000000000000003000000000000000000090000000000000000000300;00000000000000009000000000003330000033333000000000000000900000000000000000000000000000000000000090000000000000000000000000000000000000009000000000000000000000000000000000000000900000000000000000000000000000000000000090000000000000000000000000000000000000009020000000000000000000000000000000000000900000000000F000000000000000000000000000900000000000G000000000000000000000000000900000000004444444444444444444444444444444444000000000000000000000000000000000000000000000",
I: [[24, 3, 16, 3, 7]],
J: [[8, 12, 18, 12]],
txt: "Seulement 2 portails peuvent exister en meme temps",
ac: 946
}, {
hash: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000=000000000000000000000000000006060606060=000000000000000000000000000000000000000=00000000000000000000000000000003333333333333000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000444000000F000000000000000000000000300004444400000G00000000300000000000000033333333333333333333333330000000000000000000000000000000000000000000000000",
I: [[24, 16, 6, 19, 16]],
J: [[]],
txt: "Les nuages bloqueront tous vos prochains vous meme!",
ac: 457
}, {
hash: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000002000000F000000000000000060600000000000000000000G00;000000000000000000000000000000000003333339990:::09990:::09990:::333333300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
I: [],
J: [],
txt: "Comptez dans votre tête: 1-2-3-bouton! 1-2-3-bouton! Je sais, celui la est terrible.",
ac: 356
}, {
hash: "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000003333333330000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<000000000000000000000000000000000000009990000000000000000000000000000000000000000000000000000000000000000000000000=000000000000000000000000000000000000000=0000000003000000000000000000000003000F0=0000000003000000000000000000000003300G0=0000000003000000000000000003000003333333333333333300000000033300000330;0000000000000000000000000000000000003333330000000000000000003330000000000000000000000000000000000000000000000000000",
I: [[21, 14, 5, 26, 16]],
J: [],
txt: "Vous pouvez attraper et jeter des cubes meme si vous n'êtes pas la...",
ac: 558
}, {
hash: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044440000000000000000000000000000000000004000000000000000000000000000000000000000400000000000000000000000000000000000000040000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000009=000000000000000000000000000000000000009=00000600000004000000000000000000000F009=00000000000004000000000000000000000G009=0000070000000400000000000000000000333333333333333344440000000000000000000030000000000000000000000000000000000000;030000000000000000000000000000000888003333000000000000000000000000000000000000000000000000000000000000000000000000000",
I: [],
J: [],
txt: "vous pouvez créer des portails meme si vous n'êtes pas la...",
ac: 443
}, {
hash: "000F000000000000000000000000000000000000000G000000000000000000000000000000000000000000000000000000000000000000000000000000007007000000007070000000000000000000000040404440<004004440000000000000000000000047404000400400404000000000000000000000004440440040040040400000000000000000000000404040004704704040000000000000000000000040404440440440444000000000000000000000000000000000000000000000000000000002000000000000000000000006660660060066060000000000000000000000000888088068008808000000000000000000000000008008008800080800000000===========00000608008800800880868000000000000000000000080800080080008088000000000000000000000008880088088808808080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
I: [],
J: [[33, 5, 24, 5], [27, 5, 30, 5]],
ac: 417
}, {
hash: "00000000000000000=000000000000000000000000000000000000000=0F0000300000000000000000003333333330000=0G0;00300000000000000000003000000090000333333330000000000000000000300000009000030000000000000000000000000030000000900033000000000000000000000000003000333333333300000000000000000000000000300000000000333333333333333333333330000030000000000030000000009000000000003000003000000000003020000000900000000000300333333333333300300000000090000000000030030000000:000000300000000070000000000030030000000:000000333444444444444444400030030000000:0000003000000000000000000000300300333333333333300600000000000000000030030000000000000000000000000000000000003003000000000000000000004000000040<000003003388888888888888883344000000044333333300000000000000000000000000000000000000000",
I: [[36, 16, 8, 34, 16]],
J: [],
ac: 1777
}, {
hash: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000=000000000900000000000000000000000000000=0020F0009900000000000000000000000000000=0000G00999000:000000000000000000000000055555555555000000000000000000000000000000000454000000000:00000000000000000000000000045400000000000000000000000000000000000004540000000:000000000000000000000000000004540000000000000000000000000000000000000454000000000:00000000000000000000000000045400000000000000000000000000000000000004540000000:000000000000000000000000000004540000000000000000000000000000000000000454000000000:00000000000000000000000060045400600000000000000000000000000000000004540000000:000000000000000000<000000000045400;00000000000000000000005555555599955555555555555550000000",
I: [[12, 17, 5, 15, 17]],
J: [],
ac: 588
}, {
hash: "00000000000000000003000000000000000000000000000000000000000300000000000000000000000000000000000000030000000000000000000000000000000000000003000000000000000000000000000000000000000300000000000000000000000000000000000000030000000000000000000000000000000000000003000000000000000000000000000000000000000300000000000000000000000000000000000000030000000000000000000000000000000000000003000000000000000000000000000000000000000300000000000000000000000000000000000000030000020000000000000000000000000000000003000000000000000000000000000000000000000300000000000000000000000000000000000000030000000000000000000000000000000<0<0<0<0300000000000000000000000000000F000000000300000000000000000000000000000G0000000003000000000000000000000000000033333333333333333333300000000000",
I: [],
J: [],
txt: "Aviez vous apperçu que les cubes permettaient de passer à travers les murs ",
ac: 590
}, {
hash: "0033333000000000000000000000000000000<000030F03000000000<<00000000000000000000000030G0300000<<00000000<<0000<0000004000000300030000000<<0000<<0000000000020000000030003000000000<<0000<<0000000000000000003000300000<<0000<<0000000000000000000000300030000000<<0000<<000000000004000000003000300000<<00000000<<000000000000000000300030000000<<000000000000000000000000003000300000<<00000000<<000000000000000000300030000000<<0000<<000000000000000000003000300000<<000000000000000000000000000030003000000000000000<<000000000000000000000000000000<<0000<<000000000000000000000000000000<<00000000<<00000000000000000000000000000000000000000000000000000000000000000000777700007777000000000000000000088888888888888888888888888888888000000000000000000000000000000000000000000000",
I: [[16, 16, 8, 19, 7], [18, 16, 8, 16, 7], [33, 11, 16, 28, 5]],
J: [[4, 3, 36, 1], [4, 4, 37, 6], [4, 5, 37, 11], [4, 6, 37, 16], [4, 7, 9, 16], [4, 8, -1, 16], [4, 9, 1, -1], [28, 4, 28, 6]],
txt: "Merci d'avoir jouer! S'il vous plait créez et partager des niveaux maintenant",
ac: 540
}, {
hash: "0000000000F000000000000000000000000000000000000000G0000000000000000000000000000000000340000000000000000000000000000000000000033000000000000000000000000000000000000000000000000000000000000000000000000000000000000777000000000000000000000000000000000000033370000000000000000000000000000000000003333700000000000000000000000000000000000333337000000000000000000000000000000000033333370000000000000000000000000000000003333333700000000000000000000000000000000333333337000000000000000000000000000000033333333370000000000000000000000000000003333333333000000000000000000000000000000333333333300000000000000000000000000000033333330000000000000000000000000000000003333333020000000000000000000000000400000333333308880000000000000000000000000000000000000000000000000000000000",
I: [],
J: [],
txt: "Ok un dernier niveau pour les combatants",
ac: 57
},{
hash: "33000000000000000000000000000300000000000000000000000330000000000000000000000000000000000000030033030000030000000000000000000000000000000000000033000000000000000000000000000000300000000000000000000000000000000003000000000030000000000000000000000000000000000000000000000300000000000000000033000000000000000000000000000000000000000000000300000003000000000000000000000000000000030000333000000000000000000000000000000003000000030000000000000000000000000000000300330030000003000000000000000000000000000033000000000030000000000000000000000000030000000000000000000000000000000000003330000033000000000000000000003000000000000000000300000000000000000000003000000003000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
I:[],
J:[],
txt: "End Level",
ac: 57
}];
}
AA = function(e, f, g) {
c.drawImage(b, e * 16, 0, 16, 16, f * 32, 40 + g * 32, 32, 32)
}
;
AB = function(e, f, g) {
c.drawImage(b, e * 16, 0, 16, 16, f, g, 32, 32)
}
;
AC = function(e, f, g) {
if (!t.x[~~(f / 32)])
return 0;
return t.x[~~(f / 32)][~~(e / 32)] || 0
}
;
AD = function(e, f, g) {
if (!t.x[~~(f / 32)])
return;
t.x[~~(f / 32)][~~(e / 32)] = g
}
;
AE = function(e, f, g) {
return e == 13 && Z != 0 || f && e == 7 || Q[e] || 0
}
;
AF = function(e, f, g) {
if (!t.x[r])
return 0;
return !t.x[f][e] || t.x[f][e] < 14 || t.x[f][e] > 21
}
;
AG = function(e, f, g) {
return {
x: t && t.Q ? t.Q[0] * 32 : 640,
y: t && t.Q ? t.Q[1] * 32 : 0,
e: 0,
f: 0,
d: 0,
D: ab || false,
j: [],
m: aa || false,
l: [],
E: ac || false,
g: [],
r: [],
F: [],
C: [],
z: [],
G: 0,
i: 1,
a: 0,
t: null,
o: null,
H: null,
v: 0,
n: true
}
}
;
AH = function(e, f, g) {
I = false;
M = 0;
J = 0;
K = 0;
L = 0;
N = 0;
O = AG();
Q = [0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];
t.u = [];
U = false;
V = [];
W = [];
X = {
q: -1,
r: -1
};
Y = {
q: -2,
r: -2
};
if (!e)
ae = []
}
;
AI = function(e, f, g) {
t = {
x: [],
I: [],
J: [],
u: [],
K: false
};
for (j = 0; j < 20; j++)
t.x[j] = [];
pipe_click = 0;
v = 0;
w = 0;
z = 0;
A = 0;
G = true;
H = false
}
;
AJ = function(e, f, g) {
AH(1);
t.x = [];
for (var j = 0; j < 20; j++) {
t.x[j] = [];
for (var i = 0; i < 40; i++) {
t.x[j][i] = t.hash.charCodeAt(j * 40 + i) - 48;
if (t.x[j][i] == 15)
t.x[j][i] = 0
}
}
for (var i in t.I)
V[i] = {
L: false,
y: t.I[i][1] * 32
};
for (var i in t.J)
W[i] = {
O: t.J[i][1] * 32,
P: t.J[i][3] * 32,
M: 0,
N: 0
}
}
;
AK = function(e, f, g) {
for (j = 0; j < 20; j++)
for (i = 0; i < 40; i++) {
F = t.x[j][i];
if (F == 12) {
F = 0;
if (N == 0)
t.u.push({
x: i * 32,
y: j * 32,
f: 0,
Z: null
})
}
if (F == 13 && ae.length == 0) {
c.save();
c.globalAlpha = .5;
AA(F, i, j);
c.restore()
} else
AA(F, i, j);
if (F == 2 && N == 0) {
E = false;
if (j < 20)
for (k = j + 1; k < 20; k++)
if (!t.x[k][i] && !E) {
AA(24, i, k);
t.x[k][i] = 24
} else
E = true
}
if (F == 23 && N == 0) {
t.Q = [i, j];
O.x = t.Q[0] * 32;
O.y = t.Q[1] * 32
}
}
if (N == 0) {
for (Z in ae) {
ae[Z].x = t.Q[0] * 32;
ae[Z].y = t.Q[1] * 32;
ae[Z].e = 0;
ae[Z].f = 0;
ae[Z].D = false;
ae[Z].m = false;
ae[Z].E = false;
ae[Z].q = false;
ae[Z].i = 1;
ae[Z].s = 0;
ae[Z].t = null;
ae[Z].o = null;
ae[Z].H = null
}
for (i in t.u)
t.u[i].Z = null
}
}
;
AL = function(e, f, g) {
if (typeof e.t != "undefined" && e.t !== null)
e.R = 1 + t.u[e.t].R;
if (e.o !== null && e.o != e.t) {
e.x = t.u[e.o].x + e.H;
e.y = t.u[e.o].y - 32;
e.o = null
}
if (e.e > 0) {
e.S = null;
if (AC(e.x + f + e.e, e.y + 16) == 4 && Y.q >= 0 && X.q == ~~((e.x + f + e.e) / 32) && X.r == ~~((e.y + 16) / 32) && X.T == 3)
e.S = Y;
if (AC(e.x + f + e.e, e.y + 16) == 4 && X.q >= 0 && Y.q == ~~((e.x + f + e.e) / 32) && Y.r == ~~((e.y + 16) / 32) && Y.T == 3)
e.S = X;
if (e.S) {
e.y = ~~((e.y + 16) / 32) * 32;
e.f = 0;
e.k = true;
if (AC(e.x + e.e, e.y + 16) == 4) {
e.U = true;
e.V = Math.max(e.e, 6);
e.e = 0;
e.c = 8
}
} else if (AE(AC(e.x + f + e.e, e.y)) || AE(AC(e.x + f + e.e, e.y + 31))) {
e.x = ~~((e.x + e.e) / 32) * 32 + 32 - f - 1;
e.e = 0
}
if (e.x > 1280 - f) {
e.x = 1280 - f;
e.e = 0
}
for (var j in t.I)
if (!e.k && e.x + f + e.e >= t.I[j][0] * 32 && e.x + f + e.e <= t.I[j][0] * 32 + 16 && e.y + 31 >= V[j].y && e.y <= V[j].W) {
e.x = t.I[j][0] * 32 - f - 1;
e.e = 0
}
}
if (e.e < 0) {
e.S = null;
if (AC(e.x + e.e, e.y + 16) == 4 && Y.q >= 0 && X.q == ~~((e.x + e.e) / 32) && X.r == ~~((e.y + 16) / 32) && X.T == 1)
e.S = Y;
if (AC(e.x + e.e, e.y + 16) == 4 && X.q >= 0 && Y.q == ~~((e.x + e.e) / 32) && Y.r == ~~((e.y + 16) / 32) && Y.T == 1)
e.S = X;
if (e.S) {
e.y = ~~((e.y + 16) / 32) * 32;
e.f = 0;
e.k = true;
if (AC(e.x + e.e + f, e.y + 16) == 4) {
e.U = true;
e.V = Math.max(-e.e, 6);
e.e = 0;
e.c = 8
}
} else if (AE(AC(e.x + e.e, e.y)) || AE(AC(e.x + e.e, e.y + 31))) {
e.x = ~~((e.x + e.e) / 32) * 32 + 32;
e.e = 0
}
if (e.x < 0) {
e.x = 0;
e.e = 0
}
for (j in t.I)
if (e.x + e.e >= t.I[j][0] * 32 + 64 - 16 && e.x + e.e <= t.I[j][0] * 32 + 64 && e.y + 31 >= V[j].y && e.y <= V[j].W) {
e.x = t.I[j][0] * 32 + 64;
e.e = 0
}
}
e.x += e.e;
if (!e.k) {
e.d = false;
e.f += 2;
if (e.f > 24)
e.f = 24
}
if (e.f > 0) {
e.S = null;
if (AC(e.x + f / 2, e.y + 32 + e.f) == 4 && Y.q >= 0 && X.q == ~~((e.x + f / 2) / 32) && X.r == ~~((e.y + 32 + e.f) / 32) && X.T == 0)
e.S = Y;
if (AC(e.x + e.e / 2, e.y + 32 + e.f) == 4 && X.q >= 0 && Y.q == ~~((e.x + f / 2) / 32) && Y.r == ~~((e.y + 32 + e.f) / 32) && Y.T == 0)
e.S = X;
if (e.S) {
e.x = ~~((e.x + f / 2) / 32) * 32 + (32 - f) / 2;
e.e = 0;
e.k = true;
if (e.f < 10 && AC(e.x + f / 2, e.y + 32 + e.f - 16) == 4 || e.f > 10 && AC(e.x + f / 2, e.y + 32 + e.f) == 4) {
e.U = true;
e.V = Math.max(e.f, 6);
e.f = 0;
e.c = 8
}
} else if (AE(AC(e.x, e.y + 32 + e.f)) || AE(AC(e.x + f - 1, e.y + 32 + e.f)) || g == 1 && AC(e.x, e.y + 32 + e.f) == 7 || g == 1 && AC(e.x + f - 1, e.y + 32 + e.f) == 7) {
e.y = ~~((e.y + e.f) / 32) * 32;
e.f = 0;
e.d = true
}
for (i in t.u)
if (!t.u[i].k && !e.k && e.x + f > t.u[i].x && e.x < t.u[i].x + 32 && e.y + 31 + e.f > t.u[i].y - 8 && e.y + 31 + e.f < t.u[i].y + 20) {
e.y = t.u[i].y - 32;
e.f = 0;
e.d = true;
e.o = i;
e.H = e.x - t.u[i].x;
t.u[i].R += e.R
}
for (j in t.I)
if (e.x + f - 1 >= t.I[j][0] * 32 && e.x < t.I[j][0] * 32 + 64 && e.y + 31 + e.f >= V[j].y && e.y + 31 + e.f <= V[j].y + 32) {
e.y = V[j].y - 32;
e.f = 0;
e.d = true;
e.b = true
}
for (j in t.J)
if (e.x + f >= t.J[j][0] * 32 - 32 && e.x < t.J[j][0] * 32 + 64 && e.y + 31 + e.f >= W[j].O - 8 && e.y + 31 + e.f <= W[j].O + 32) {
e.y = W[j].O - 32;
e.f = 0;
e.d = true;
e.b = true;
W[j].M += e.R
}
for (j in t.J)
if (e.x + f >= t.J[j][2] * 32 - 32 && e.x < t.J[j][2] * 32 + 64 && e.y + 31 + e.f >= W[j].P - 8 && e.y + 31 + e.f <= W[j].P + 32) {
e.y = W[j].P - 32;
e.f = 0;
e.d = true;
e.b = true;
W[j].N += e.R
}
}
if (e.f < 0) {
e.S = null;
if (AC(e.x + f / 2, e.y + e.f) == 4 && Y.q >= 0 && X.q == ~~((e.x + f / 2) / 32) && X.r == ~~((e.y + e.f) / 32) && X.T == 2)
e.S = Y;
if (AC(e.x + e.e / 2, e.y + e.f) == 4 && X.q >= 0 && Y.q == ~~((e.x + f / 2) / 32) && Y.r == ~~((e.y + e.f) / 32) && Y.T == 2)
e.S = X;
if (e.S) {
e.x = ~~((e.x + f / 2) / 32) * 32 + (32 - f) / 2;
e.e = 0;
e.k = true;
if (AC(e.x + f / 2, e.y + e.f + 10) == 4) {
e.U = true;
e.V = 6;
e.f = 0;
e.c = 8
}
} else if (AE(AC(e.x, e.y + e.f)) || AE(AC(e.x + f, e.y + e.f))) {
if (AC(e.x, e.y + e.f) == 5) {
AD(e.x, e.y + e.f, 0);
mkaudio(SNDbrick1).play()
}
if (AC(e.x + 24, e.y + e.f) == 5) {
AD(e.x + 24, e.y + e.f, 0);
mkaudio(SNDbrick1).play()
}
e.y = ~~((e.y + e.f) / 32) * 32 + 32;
e.f = 0
}
}
e.y += e.f;
if (e.U) {
e.U = false;
e.d = false;
mkaudio(SNDwhat0).play();
e.x = e.S.q * 32 + (32 - f) / 2;
e.y = e.S.r * 32;
if (e.S.T == 0) {
e.f = -e.V;
e.e = 0
}
if (e.S.T == 1) {
e.e = e.V;
e.f = 0;
e.x += 8
}
if (e.S.T == 2) {
e.f = e.V;
e.e = 0;
e.y += 8;
e.c = 2
}
if (e.S.T == 3) {
e.e = -e.V;
e.f = 0;
e.x -= 8
}
}
if (AC(e.x, e.y + 20) == 11) {
AD(e.x, e.y + 20, 25);
R = true
} else if (AC(e.x + f, e.y + 20) == 11) {
AD(e.x + f, e.y + 20, 25);
R = true
}
for (var i in t.I)
if (e.x + f >= t.I[i][3] * 32 && e.x <= t.I[i][3] * 32 + 32 && e.y + 32 >= t.I[i][4] * 32 && e.y + 20 <= t.I[i][4] * 32 + 32)
V[i].L = true
}
;
AM = function(e, f, g) {
if (e.a != 3 && !I && !L) {
e.a = 0;
e.b = false;
if (!e.c) {
if (e.d && AC(e.x, e.y + 33) != 8 && AC(e.x + 24, e.y + 33) != 8 || !e.d && Math.abs(e.e) < 10)
e.e = 0;
if (e.g[N] && !((AC(e.x, e.y + 33) == 8 || AC(e.x + 24, e.y + 33) == 8) && e.e != 0)) {
if (e.i == 1)
e.e = Math.max(e.e, 6);
else
e.e = 0;
e.i = 1;
if (e.d)
e.a = 1
}
if (e.j[N] && !((AC(e.x, e.y + 33) == 8 || AC(e.x + 24, e.y + 33) == 8) && e.e != 0)) {
if (e.i == 0)
e.e = Math.min(e.e, -6);
else
e.e = 0;
e.i = 0;
if (e.d)
e.a = 1
}
}
if (!e.k && e.l[N] && e.d && !((AC(e.x, e.y + 33) == 8 || AC(e.x + 24, e.y + 33) == 8) && e.e != 0)) {
e.f -= 20;
e.d = false;
e.m = false;
e.n = false;
e.o = null;
mkaudio(SNDjump2).play()
}
if (e.f < 0 && !e.d)
e.a = 2;
AL(e, 24, 0);
if (AC(e.x + 24 / 2 - 8, e.y + 16 - 8) == 6) {
AD(e.x + 24 / 2 - 8, e.y + 16 - 8, 0);
mkaudio(SNDcoin1).play()
}
if (AC(e.x + 24 / 2 + 8, e.y + 16 - 8) == 6) {
AD(e.x + 24 / 2 + 8, e.y + 16 - 8, 0);
mkaudio(SNDcoin1).play()
}
if (AC(e.x + 24 / 2 - 8, e.y + 16 + 8) == 6) {
AD(e.x + 24 / 2 - 8, e.y + 16 + 8, 0);
mkaudio(SNDcoin1).play()
}
if (AC(e.x + 24 / 2 + 8, e.y + 16 + 8) == 6) {
AD(e.x + 24 / 2 + 8, e.y + 16 + 8, 0);
mkaudio(SNDcoin1).play()
}
if (e.F[N])
if (AC(e.x, e.y) == 23 || AC(e.x + 24, e.y) == 23 || AC(e.x, e.y + 31) == 23 || AC(e.x + 24, e.y + 31) == 23) {
if (!f) {
e.p = N;
ae.push(e);
N = -1;
O = AG()
} else
e.q = true;
mkaudio(SNDtimetravel0).play()
}
if (AC(e.x + 3, e.y) == 7 || AC(e.x + 24 - 3, e.y) == 7 || AC(e.x + 3, e.y + 5) == 7 || AC(e.x + 24 - 3, e.y + 5) == 7) {
e.a = 3;
e.f = -1 * 20
}
if (e.y > 648) {
e.a = 3;
e.f = -1.5 * 20
}
if (AC(e.x + 1, e.y + 1) == 9 || AC(e.x + 24 - 1, e.y + 1) == 9 || AC(e.x + 1, e.y + 31) == 9 || AC(e.x + 24 - 1, e.y + 31) == 9) {
e.a = 3;
e.f = -1.5 * 20
}
if (e.b && (AE(AC(e.x, e.y + 1)) || AE(AC(e.x + 24, e.y + 1)))) {
e.a = 3;
e.f = -1 * 20
}
if (e.r[N])
e.s ^= 1;
if (e.s) {
if (e.t === null)
for (i in t.u)
if (e.x + 24 >= t.u[i].x && e.x <= t.u[i].x + 31 && e.y + 31 + 4 >= t.u[i].y && e.y <= t.u[i].y + 31) {
e.t = i;
t.u[i].Z = e;
e.v = 5;
break
}
} else if ($ = t.u[e.t]) {
$.x = e.x;
$.o = null;
if (!e.d)
if (e.i == 0)
$.e = -14;
else
$.e = 14;
if (AE(AC($.x, $.y)))
$.x = ~~($.x / 32) * 32 + 32;
else if (AE(AC($.x, $.y + 31)))
$.x = ~~($.x / 32) * 32 + 32;
else if (AE(AC($.x + 32, $.y)))
$.x = ~~($.x / 32) * 32 - 1;
else if (AE(AC($.x + 32, $.y + 31)))
$.x = ~~($.x / 32) * 32 - 1;
$.Z = null;
t.u[e.t] = $;
e.t = null;
e.R = 1
}
if (e.t !== null) {
if (e.i == 0)
t.u[e.t].x = e.x - 6;
if (e.i == 1)
t.u[e.t].x = e.x - 4;
if (e.v)
e.v--;
if (e.k)
t.u[e.t].y = e.y;
else if (AE(AC(e.x, e.y - 28)) || AE(AC(e.x + 24, e.y - 28)))
t.u[e.t].y = ~~((e.y + 4) / 32) * 32;
else
t.u[e.t].y = e.y - 32 + e.v * 4
} else
e.s = 0;
if (AC(e.x + 24 / 2, e.y + 16) == 2 || AC(e.x + 24 / 2, e.y + 16) == 24) {
M = 0;
for (j = 0; j < 20; j++)
for (i = 0; i < 40; i++)
if (t.x[j][i] == 6)
M++;
if (M == 0) {
I = true;
e.a = 0
}
}
if (!e.k && (e.C[N] || e.z[N])) {
mkaudio(SNDshoot1).play();
e.A = 0;
e.B = 0;
if (e.C[N]) {
e.A = 1;
e.G = Math.atan2(e.C[N][0] - (e.x + 24 / 2), e.C[N][1] - (e.y + 40 + 16))
}
if (e.z[N]) {
e.B = 1;
e.G = Math.atan2(e.z[N][0] - (e.x + 24 / 2), e.z[N][1] - (e.y + 40 + 16))
}
e.X = e.x + 24 / 2;
e.Y = e.y + 16;
e.Z = Math.sin(e.G);
e.aa = Math.cos(e.G)
}
for (ah in ag = [["A", X, "blue"], ["B", Y, "orange"]])
if (e[ag[ah][0]])
for (i = 0; i < 40; i++) {
e[ag[ah][0]] += .001;
e.X += e[ag[ah][0]] * e.Z;
e.Y += e[ag[ah][0]] * e.aa;
if (AE(AC(e.X, e.Y)) || AC(e.X, e.Y) == 7) {
e[ag[ah][0]] = 0;
if (e.X % 32 < 4 && !AE(AC(e.X - 32, e.Y)) && e.Z > 0)
m = 3;
if (e.X % 32 > 28 && !AE(AC(e.X + 32, e.Y)) && e.Z < 0)
m = 1;
if (e.Y % 32 < 4 && !AE(AC(e.X, e.Y - 32)) && e.aa > 0)
m = 0;
if (e.Y % 32 > 28 && !AE(AC(e.X, e.Y + 32)) && e.aa < 0)
m = 2;
if (AC(e.X, e.Y) == 8) {
mkaudio(SNDshoot1).play();
e[ag[ah][0]] = 1;
if (m == 0) {
e.aa = -e.aa;
e.Y = ~~(e.Y / 32) * 32 - 1
} else if (m == 2) {
e.aa = -e.aa;
e.Y = ~~(e.Y / 32) * 32 + 32 + 1
} else if (m == 1) {
e.Z = -e.Z;
e.X = ~~(e.X / 32) * 32 + 32 + 1
} else {
e.Z = -e.Z;
e.X = ~~(e.X / 32) * 32 - 1
}
}
if (AC(e.X, e.Y) == 4 && (~~(e.X / 32) != ag[1 - ah][1].q || ~~(e.Y / 32) != ag[1 - ah][1].r || ag[1 - ah][1].T != m)) {
ag[ah][1].q = ~~(e.X / 32);
ag[ah][1].r = ~~(e.Y / 32);
ag[ah][1].T = m;
mkaudio(SNDwhatportal2).play()
}
break
} else {
c.fillStyle = ag[ah][2];
c.fillRect(e.X, e.Y + 40, 6, 6)
}
}
if (AC(e.x + 1, e.y + 1) != 4 && AC(e.x + 24 - 1, e.y + 1) != 4 && AC(e.x + 1, e.y + 31) != 4 && AC(e.x + +24 - 1, e.y + 31) != 4)
e.k = false;
if (e.c)
e.c--
}
if (e.a == 3) {
e.f += 2;
if (e.f > 24)
e.f = 24;
e.y += e.f
}
}
;
AN = function(e, f, g) {
c.save();
c.translate(e.x + 24 / 2 - 2, e.y);
if (e.i == 0)
c.scale(-1, 1);
if (f)
c.globalAlpha = .75;
else if (ae.length) {
c.fillStyle = "#fff";
c.fillText("\u25bc", 0, 10)
}
if (!(f && N > e.p))
c.drawImage(b, [26, [27, 28, 29][~~(N / 2) % 3], 30, 31][e.a] * 16, 0, 16, 16, -24 / 2, 40, 32, 32);
c.restore()
}
;
onclick = oncontextmenu = function(e, f, g) {
AO(e);
return false
}
;
onmousedown = function(e, f, g) {
o = true;
if (e.which == 3)
p = true;
else
p = false
}
;
onmouseup = function(e, f, g) {
o = false
}
;
onmousemove = function(e, f, g) {
x = e.pageX - a.getBoundingClientRect().left - document.documentElement.scrollLeft - document.body.scrollLeft;
y = e.pageY - a.getBoundingClientRect().top - document.documentElement.scrollTop - document.body.scrollTop;
q = Math.floor(x / 32);
r = Math.floor((y - 40) / 32);
if (d == 3) {
if (o && A != 14 && A != 15)
AO(e);
AP(1)
}
}
;
AO = function(e, f, g) {
if (d == 0) {
c.beginPath();
c.rect(1230, 0, 90, 90);
if (c.isPointInPath(x, y)) {
mute = !mute;
if (mute)
MM.stop();
else
Music();
AP()
}
c.closePath();
c.beginPath();
c.rect(500, 400, 100, 80);
if (c.isPointInPath(x, y)) {
d = 1;
AP()
}
c.closePath();
c.beginPath();
c.rect(650, 400, 100, 80);
if (c.isPointInPath(x, y)) {
d = 3;
AI();
AP()
}
c.closePath()
}
if (d == 1) {
c.beginPath();
c.rect(30, 30, 50, 50);
if (c.isPointInPath(x, y)) {
d = 0;
AP()
}
c.closePath();
c.beginPath();
c.rect(590, 520, 100, 80);
if (c.isPointInPath(x, y))
open("//twitter.com/search?f=tweets&q=%23UpdatedSuperChronoPortalMaker");
c.closePath();
for (i = 0; i < 10; i++)
for (j = 0; j < 3; j++) {
m = j * 10 + i + 1;
if (+localStorage["uscpm"] >= m) {
c.beginPath();
c.rect(i * 120 + 50, j * 100 + 120, 100, 80);
if (c.isPointInPath(x, y)) {
n = 1;
d = 2;
_ = 0;
s = m;
t = levels[m];
AP()
}
c.closePath()
}
}
if (+localStorage["uscpm"] >= 30) {
c.beginPath();
c.rect(50, 420, 100, 80);
if (c.isPointInPath(x, y)) {
n = 1;
d = 2;
_ = 0;
m = 31;
s = m;
t = levels[m];
AP()
}
c.closePath()
}
}
if (d == 2 && N > 0) {
if (e.which == 1)
O.C[N] = [x, y];
if (e.which == 3)
O.z[N] = [x, y];
c.beginPath();
c.rect(1240, 0, 32, 32);
if (c.isPointInPath(x, y)) {
clearInterval(ad);
d = n;
AP()
}
c.closePath()
}
if (d == 3) {
t.hash = "";
for (j = 0; j < 20; j++)
for (i = 0; i < 40; i++) {
tile = t.x[j][i] || 0;
tile = tile < 16 || tile > 21 ? tile : 0;
t.hash += String.fromCharCode(tile + 48)
}
c.beginPath();
c.rect(750, 4, 100, 32);
if (c.isPointInPath(x, y)) {
n = 3;
d = 2;
AP()
}
c.closePath();
c.beginPath();
c.rect(875, 4, 100, 32);
if (c.isPointInPath(x, y)) {
location.hash = "";
if (t.K == false)
alert("Vous devez finir votre niveau d'abord");
else {
let choice = prompt('Partager sur twitter (twi) ou obtenir un lien (li) à partager ou vous voulez: ')
if (choice === 'twi'){
open("//www.twitter.com/intent/tweet?text=" + encodeURIComponent("J'ai créé un niveau pour #UpdatedSuperChronoPortalMaker !\nJouer au jeu ici: http://gzod01.fr/uscpm/. \nJouer à mon niveau ici: " + encodeURI(location.origin + location.pathname + "#" + JSON.stringify({
hash: t.hash,
I: t.I,
J: t.J
}))));
G = true
}
else if (choice === 'li'){
document.body.style.backgroundColor = 'white'
document.body.innerHTML = "Partagez ce message avec vos amis: <br> <br> J'ai fait un niveau pour #UpdatedSuperChronoPortalMaker !<br>Jouer au jeu ici: http://gzod01.fr/uscpm/. <br>Jouer à mon niveau ici: " + encodeURI(location.origin + location.pathname + "#" + JSON.stringify({
hash: t.hash,
I: t.I,
J: t.J
}))
G=true
/*open('//gzod01.fr/uscpm/texttoshare.html?text='+ encodeURIComponent("I made a level for #USCPM !\nPlay the game here: http://gzod01.fr/uscpm/. \nPlay my level here: " + encodeURI(location.origin + location.pathname + "#" + JSON.stringify({
hash: t.hash,
I: t.I,
J: t.J
}))))*/
}
}
}
c.closePath();
c.beginPath();
c.rect(1E3, 4, 100, 32);
if (c.isPointInPath(x, y)) {
AI();
AP()
}
c.closePath();
c.beginPath();
c.rect(1125, 4, 100, 32);
if (c.isPointInPath(x, y))
if (G || !G && confirm("Quitter? ce niveau sera perdu!")) {
d = 0;
AP()
}
c.closePath();
for (i = 0; i < 16; i++) {
c.beginPath();
c.rect(8.5 + i * 35, 3.5, 32, 32);
if (c.isPointInPath(x, y) && pipe_click == 0 && w == 0) {
H = true;
A = i;
if (A == 14)
t.I[v] = [];
if (A == 15)
t.J[z] = [];
AP()
}
c.closePath()
}
c.beginPath();
c.rect(0, 40, 1280, 608);
if (c.isPointInPath(x, y)) {
if (H)
G = false;
t.K = false;
if (p == true) {
if (t.x[r][q] == 22) {
t.x[r][q] = 0;
t.x[r + 1][q] = 0
}
if (t.x[r][q] == 23) {
t.x[r][q] = 0;
t.x[r - 1][q] = 0
}
if (AF(q, r))
t.x[r][q] = 0;
if (pipe_click == 0) {
if (t.x[r][q] == 16)
for (i in t.I)
if (t.I[i][0] == q && (t.I[i][1] == r || t.I[i][2] == r)) {
for (j = t.I[i][1]; j < 20; j++)
if (t.x[j][q] == 16 || t.x[j][q] == 18) {
t.x[j][q] = 0;
t.x[j][q + 1] = 0
} else
break;
for (j = t.I[i][2]; j < 20; j++)
if (t.x[j][q] == 16 || t.x[j][q] == 18) {
t.x[j][q] = 0;
t.x[j][q + 1] = 0
} else
break;
t.x[t.I[i][4]][t.I[i][3]] = 0;
delete t.I[i]
}
if (t.x[r][q] == 17)
for (i in t.I)
if (t.I[i][0] == q - 1 && (t.I[i][1] == r || t.I[i][2] == r)) {
for (j = t.I[i][1]; j < 20; j++)
if (t.x[j][q] == 17 || t.x[j][q] == 19) {
t.x[j][q] = 0;
t.x[j][q - 1] = 0
} else
break;
for (j = t.I[i][2]; j < 20; j++)
if (t.x[j][q] == 17 || t.x[j][q] == 19) {
t.x[j][q] = 0;
t.x[j][q - 1] = 0
} else
break;
t.x[t.I[i][4]][t.I[i][3]] = 0;
delete t.I[i]
}
t.ab = t.I;
t.I = [];
for (i in t.ab)
if (t.ab[i])
t.I.push(t.ab[i])
}
if (w == 0) {
if (t.x[r][q] == 15)
for (i in t.J)
if (t.J[i][1] == r && (t.J[i][0] == q || t.J[i][0] == q - 1 || t.J[i][0] == q + 1) || t.J[i][3] == r && (t.J[i][2] == q || t.J[i][2] == q - 1 || t.J[i][2] == q + 1)) {
t.x[t.J[i][1]][t.J[i][0]] = 0;
t.x[t.J[i][1]][t.J[i][0] - 1] = 0;
t.x[t.J[i][1]][t.J[i][0] + 1] = 0;
t.x[t.J[i][3]][t.J[i][2]] = 0;
t.x[t.J[i][3]][t.J[i][2] - 1] = 0;
t.x[t.J[i][3]][t.J[i][2] + 1] = 0;
delete t.J[i]
}
t.ab = t.J;
t.J = [];
for (i in t.ab)
if (t.ab[i])
t.J.push(t.ab[i])
}
} else if (A == 1) {
if (r > 0 && AF(q, r) && AF(q, r - 1)) {
for (j in t.x)
for (i in t.x[j])
if (t.x[j][i] == 22 || t.x[j][i] == 23)
t.x[j][i] = 0;
t.x[r - 1][q] = 22;
t.x[r][q] = 23
}
} else if (A == 2) {
if (AF(q, r)) {
for (j in t.x)
for (i in t.x[j])
if (t.x[j][i] == 2)
t.x[j][i] = 0;
t.x[r][q] = 2
}
} else if (A == 14) {
if (AF(q, r) && AF(q + 1, r))
if (pipe_click == 0) {
t.I[v] = [];
t.I[v][0] = q;
t.I[v][1] = r;
t.x[r][q] = 16;
t.x[r][q + 1] = 17;
pipe_click++
} else if (pipe_click == 1) {
if (true) {
t.I[v][2] = r;
t.x[r][t.I[v][0]] = 16;
t.x[r][t.I[v][0] + 1] = 17;
pipe_click++
}
} else if (pipe_click == 2) {
t.I[v][3] = q;
t.I[v][4] = r;
t.x[r][q] = 20;
v++;
pipe_click = 0
}
} else if (A == 15) {
if (AF(q - 1, r) && AF(q, r) && AF(q + 1, r)) {
if (w == 0) {
t.J[z] = [];
t.J[z][0] = q;
t.J[z][1] = r;
w++
} else if (w == 1) {
t.J[z][2] = q;
t.J[z][3] = r;
z++;
w = 0
}
t.x[r][q - 1] = 15;
t.x[r][q] = 15;
t.x[r][q + 1] = 15
}
} else if (AF(q, r))
t.x[r][q] = A;
AP(1)
}
c.closePath()
}
}
;
onkeydown = function(e, f, g) {
if (d == 2) {
if (e.keyCode == 38 || e.keyCode == 90 || e.keyCode == 87)
if (O.n) {
O.m = true;
O.n = false;
aa = true
}
if (e.keyCode == 39 || e.keyCode == 68) {
O.E = true;
ac = true
}
if (e.keyCode == 37 || e.keyCode == 65 || e.keyCode == 81) {
O.D = true;
ab = true
}
if (e.keycode == 70){
I= true
}
}
}
;
onkeyup = function(e, f, g) {
if (d == 2) {
if (e.keyCode == 38 || e.keyCode == 90 || e.keyCode == 87) {
O.m = false;
O.n = true;
aa = false
}
if (e.keyCode == 39 || e.keyCode == 68) {
O.E = false;
ac = false
}
if (e.keyCode == 37 || e.keyCode == 65 || e.keyCode == 81) {
O.D = false;
ab = false
}
if (e.keyCode == 82) {
AH();
_ = 0
}
if (e.keyCode == 32)
O.r[N] = true;
if (e.keyCode == 16)
O.F[N] = true
}
}
;
mute = false;
AP = onload = onhashchange = function(e, f, g) {
a.width ^= 0;
c.font = "bold 30px arial";
c.textAlign = "center";
c["mozImageSmoothingEnabled"] = false;
c["imageSmoothingEnabled"] = false;
if (d == 0) {
a.style.cursor = "crosshair";
t = {"hash":"000000000===000000000000000000=00000000000000000000000000000000000000==00002000003=0300000000000000000000000==0000000000030030000000000000000000000000000000000003F=30003333000033330033330003300033000003G030046666300:00000090003003030303000000330=036666???3000000906039930333030=000000000366660009000:009???3003003003000000000???399300090000003333???300000900=000000000666630090:000030000003066609000000===0006666300306000030==00090666090=000==00003666640030;0<003==00009066603000000000???333300003333003000000300000300000000000000000000000000000000000333000000000000000===000000000000000000000000000000000000==0000000000000000000000==000000000000000000000000000000000000===00000000000000000000000000000000000000000000000000000000000000000000000000000???00000000000000000000000000000000000000000000000",txt:"Merci de jouer, allez sur la page 'à propos' pour plus d'infos", "I":[[]],"J":[[6,8,6,12],[13,6,24,7],[27,8,31,18]],"txt":"3","txt2":"4","ac":120,"u":[{"x":608,"y":352,"f":0,"Z":null,"R":1,"k":false,"e":0,"d":true,"S":null}],"x":[[0,0,0,0,0,0,0,0,0,13,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,13,0,0,0,0,2,0,0,0,0],[0,3,13,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,24,0,0,0,0],[0,3,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0],[0,3,22,13,3,0,0,0,3,3,3,3,0,0,0,0,3,3,3,3,0,0,3,3,3,3,0,0,0,3,3,0,0,0,3,3,0,0,0,0],[0,3,23,0,3,0,0,4,6,6,6,6,3,0,0,10,0,0,0,0,0,0,9,0,0,0,3,0,0,3,0,3,0,3,0,3,0,0,0,0],[0,0,3,3,0,13,0,3,6,6,6,6,0,0,0,3,0,0,0,0,0,0,9,0,6,0,3,9,9,3,0,3,3,3,0,3,0,13,0,0],[0,0,0,0,0,0,0,3,6,6,6,6,0,0,0,9,0,0,0,10,0,0,9,0,0,0,3,0,0,3,0,0,3,0,0,3,0,0,0,0],[0,0,0,0,0,0,0,0,3,9,9,3,0,0,0,9,0,0,0,0,0,0,3,3,3,3,0,0,0,3,0,0,0,0,0,9,0,0,13,0],[0,0,0,0,0,0,0,0,6,6,6,6,3,0,0,9,0,10,0,0,0,0,3,0,0,0,0,0,0,3,0,6,6,6,0,9,0,0,0,0],[0,0,13,13,13,0,0,0,6,6,6,6,3,0,0,3,0,6,0,0,0,0,3,0,13,13,0,0,0,9,0,6,6,6,0,9,0,13,0,0],[0,13,13,0,0,0,0,3,6,6,6,6,4,0,0,3,0,11,0,12,0,0,3,13,13,0,0,0,0,9,0,6,6,6,0,3,0,0,0,0],[0,0,0,0,0,0,0,0,3,3,3,3,0,0,0,0,3,3,3,3,0,0,3,0,0,0,0,0,0,3,0,0,0,0,0,3,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,13,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,13,13,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],"Q":[2,5]};
ae = [, ];
AJ();
AK();
c.drawImage(b, 512, 0, 70, 16, 120, 150, 280, 64);
c.drawImage(b, 583, 0, 270, 16, 120, 250, 1080, 64);
c.fillStyle = "#000";
c.beginPath();
c.fillRect(500, 400, 100, 80);
c.fillRect(650, 400, 100, 80);
c.fillStyle = "#fff";
c.fillText("CREER", 700, 450);
c.fillText("JOUER", 550, 450);
c.fillText(mute ? "\ud83d\udd0a" : "\ud83d\udd07", 1250, 40);
c.stroke();
c.closePath()
}
if (d == 1) {
a.style.cursor = "crosshair";
c.beginPath();
c.fillStyle = "#000";
c.fillRect(590, 520, 100, 80);
k = 0;
for (i = 0; i < 10; i++)
for (j = 0; j < 3; j++) {
l = j * 10 + i + 1;
c.fillStyle = "#000";
c.fillRect(i * 120 + 50, j * 100 + 120, 100, 80);
c.fillStyle = "#fff";
c.fillText(+localStorage["uscpm"] >= l ? l : "?", i * 120 + 100, j * 100 + 170);
if (localStorage["uscpm" + l] <= levels[l].ac)
c.fillText("\ud83c\udfc5", i * 120 + 135, j * 100 + 145);
k += +localStorage["uscpm" + l] || 0
}
if (+localStorage["uscpm"] >= 30) {
c.fillStyle = "#000";
c.fillRect(50, 420, 100, 80);
c.fillStyle = "#fff";
c.fillText(+localStorage["uscpm"] >= 31 ? 31 : "?", 100, 470);
if (localStorage["uscpm" + l] <= levels[l].ac)
c.fillText("\ud83c\udfc5", 135, 445)
}
c.fillText("\u25c0", 40, 70);
c.fillStyle = "#000";
c.fillText("VOS NIVEAUX OU LES NIVEAUX PAR DEFAULT", 642, 72);
c.fillText("NIVEAUX DE TWITTER", 642, 472);
c.fillStyle = "#fff";
c.fillText("VOS NIVEAUX OU LES NIVEAUX PAR DEFAULT", 640, 70);
c.fillText("NIVEAUX DE TWITTER", 640, 470);
c.fillText("GO", 640, 570);
c.fillStyle = "#000";
if (k)
c.fillText("Total time: " + ~~(k / 30 / 60) + ":" + ("0" + (k / 30 % 60).toFixed(2)).slice(-5), 1100, 450);
c.stroke();
c.closePath()
}
if (d == 2) {
a.style.cursor = "crosshair";
if (ad)
clearInterval(ad);
AH();
ad = setInterval(function() {
a.width ^= 0;
c.font = "bold 30px arial";
c.fillStyle = "#000";
c.fillText("\u00d7", 1255, 25);
if (n == 1) {
c.font = "bold 30px arial";
c.textAlign = "center";
c.lineJoin = "round";
c.fillStyle = "#000";
c.fillText(t.txt || "", 642, 82);
c.fillText(t.txt2 || "", 642, 122);
c.fillStyle = "#fff";
c.fillText(t.txt || "", 640, 80);
c.fillText(t.txt2 || "", 640, 120)
}
if (O.D)
O.j[N] = true;
if (O.E)
O.g[N] = true;
if (O.m)
O.l[N] = true;
c.mozImageSmoothingEnabled = false;
c.imageSmoothingEnabled = false;
if (N == 0)
AJ();
for (var i in t.I) {
if (V[i].L)
af = t.I[i][2] * 32;
else
af = t.I[i][1] * 32;
if (V[i].y > af)
V[i].y = Math.max(V[i].y - 4, af);
else if (V[i].y < af)
V[i].y = Math.min(V[i].y + 4, af);
D = false;
for (var k = ~~(V[i].y / 32) + 1; k < 21; k++)
if (k < 20 && !AE(AC(t.I[i][0] * 32, k * 32)) && !AE(AC(t.I[i][0] * 32 + 1 * 32, k * 32)) && !D) {
AA(18, t.I[i][0], k);
AA(19, t.I[i][0] + 1, k)
} else {
D = true;
V[i].W = k * 32;
break
}
AB(16, t.I[i][0] * 32, V[i].y + 40);
AB(17, t.I[i][0] * 32 + 32, V[i].y + 40);
if (t.I[i][4])
if (V[i].L)
AA(21, t.I[i][3], t.I[i][4]);
else
AA(20, t.I[i][3], t.I[i][4])
}
AK();
R = false;
for (j = 0; j < 20; j++)
for (i = 0; i < 40; i++)
if (t.x[j][i] == 25)
t.x[j][i] = 11;
for (i in t.I)
V[i].L = false;
O.R = 1;
for (i in t.u)
t.u[i].R = 1;
for (i in t.J) {
W[i].M = 0;
W[i].N = 0
}
for (Z in ae)
AM(ae[Z], 1);
if (ae.length)
Z = -1;
else
Z = 0;
AM(O);
for (i in t.u) {
if (AC(t.u[i].x + 1, t.u[i].y + 1) != 4 && AC(t.u[i].x + 32 - 1, t.u[i].y + 1) != 4 && AC(t.u[i].x + 1, t.u[i].y + 31) != 4 && AC(t.u[i].x + 32 - 1, t.u[i].y + 31) != 4)
t.u[i].k = false;
if (t.u[i].c)
t.u[i].c--;
if (t.u[i].Z === null) {
if (!t.u[i].c && !AE(AC(t.u[i].x, t.u[i].y + 31)) && !AE(AC(t.u[i].x + 31, t.u[i].y + 31)))
if (t.u[i].e > 1)
t.u[i].e -= 1;
else if (t.u[i].e < -1)
t.u[i].e += 1;
else
t.u[i].e = 0;
AL(t.u[i], 32, 1)
}
c.drawImage(b, 12 * 16, 0, 16, 16, t.u[i].x, 40 + t.u[i].y, 32, 32)
}
for (Z in ae)
AN(ae[Z], 1);
AN(O);
for (i in j = {
"blue": X,
"orange": Y
})
AA(4, j[i].q, j[i].r);
for (i in j = {
"blue": X,
"orange": Y
}) {
c.fillStyle = i;
if (j[i].T == 0)
c.fillRect(j[i].q * 32, j[i].r * 32 + 40 - 8, 32, 8);
if (j[i].T == 1)
c.fillRect(j[i].q * 32 + 28, j[i].r * 32 + 40, 8, 32);
if (j[i].T == 2)
c.fillRect(j[i].q * 32, j[i].r * 32 + 40 + 28, 32, 8);
if (j[i].T == 3)
c.fillRect(j[i].q * 32 - 4, j[i].r * 32 + 40, 8, 32)
}
if (R != U) {
mkaudio(SNDswitch0).play();
for (j = 0; j < 20; j++)
for (i = 0; i < 40; i++)
if (t.x[j][i] == 9)
t.x[j][i] = 10;
else if (t.x[j][i] == 10)
t.x[j][i] = 9
}
U = R;
for (i in t.J) {
if (W[i].M > W[i].N && !AE(AC(t.J[i][0] * 32 - 32, W[i].O + 20)) && !AE(AC(t.J[i][0] * 32, W[i].O + 20)) && !AE(AC(t.J[i][0] * 32 + 32, W[i].O + 20)) && !AE(AC(t.J[i][2] * 32 - 32, W[i].P - 4)) && !AE(AC(t.J[i][2] * 32, W[i].P - 4)) && !AE(AC(t.J[i][2] * 32 + 32, W[i].P - 4))) {
W[i].O += 4;
W[i].P -= 4
} else if (W[i].N > W[i].M && !AE(AC(t.J[i][2] * 32 - 32, W[i].P + 20)) && !AE(AC(t.J[i][2] * 32, W[i].P + 20)) && !AE(AC(t.J[i][2] * 32 + 32, W[i].P + 20)) && !AE(AC(t.J[i][0] * 32 - 32, W[i].O - 4)) && !AE(AC(t.J[i][0] * 32, W[i].O - 4)) && !AE(AC(t.J[i][0] * 32 + 32, W[i].O - 4))) {
W[i].O -= 4;
W[i].P += 4
}
c.beginPath();
c.strokeStyle = "#fff";
c.lineWidth = 2;
c.moveTo(t.J[i][0] * 32 + 16, W[i].O + 40 + 8);
c.lineTo(t.J[i][2] * 32 + 16, W[i].P + 40 + 8);
c.stroke();
c.closePath();
AB(15, t.J[i][0] * 32 - 32, W[i].O + 40);
AB(15, t.J[i][0] * 32, W[i].O + 40);
AB(15, t.J[i][0] * 32 + 32, W[i].O + 40);
AB(15, t.J[i][2] * 32 - 32, W[i].P + 40);
AB(15, t.J[i][2] * 32, W[i].P + 40);
AB(15, t.J[i][2] * 32 + 32, W[i].P + 40)
}
N++;
if (!I)
_++;
c.font = "bold 100px arial";
c.fillStyle = "#000";
c.textAlign = "center";
if (I) {
J++;
c.fillText("CLEARED!", 640, 300);
c.font = "bold 30px arial";
if (n == 1) {
c.fillRect(450, 350, 400, 130);
c.fillStyle = "#fff";
c.fillText("Time: " + (_ / 30).toFixed(2) + "s", 640, 400);
c.fillText("Dev record: " + (t.ac / 30).toFixed(2) + "s", 640, 450);
if (localStorage["uscpm" + s])
localStorage["uscpm" + s] = Math.min(+localStorage["uscpm" + s], _);
else
localStorage["uscpm" + s] = _
}
}
if (O.a == 3) {
K++;
c.fillText("PERDU!", 640, 350)
}
for (Z in ae)
if (ae[Z].a == 3 || ae[Z].p < N && !ae[Z].q && !I) {
L++;
c.fillText("PARADOXE TEMPOREL!", 640, 350)
}
if (J == 1)
mkaudio(SNDI0).play();
if (K == 1)
mkaudio(SNDdie0).play();
if (L == 1)
mkaudio(SNDglitch1).play();
if (K >= 30) {
a.width ^= 0;
clearInterval(ad);
d = n;
t.K = true;
a.width ^= 0;
AP()
}
if (L)
for (m = ~~(L / 5); m--; )
c.drawImage(a, i = Math.random() * 1280, j = Math.random() * 648, k = Math.random() * 1280, l = Math.random() * 648, i + Math.random() * 100 - 50, j + Math.random() * 100 - 50, k, l);
if (J >= 90) {
_ = 0;
if (n == 1) {
s++;
localStorage["uscpm"] = Math.max(+localStorage["uscpm"], s)
}
a.width ^= 0;
clearInterval(ad);
d = n;
t.K = true;
a.width ^= 0;
AP()
}
if (K >= 30 || L >= 60) {
a.width ^= 0;
clearInterval(ad);
d = n;
t.K = false;
a.width ^= 0;
AP()
}
}, 33)
}
if (d == 3) {
a.style.cursor = "pointer";
c.strokeStyle = "#777";
c.lineWidth = 1;
c.fillStyle = "#fff";
c.fillRect(0, 0, 1280, 648);
c.fillStyle = "#5C94FC";
c.fillRect(0, 40, 1280, 640);
c.beginPath();
for (i = 0; i < 16; i++) {
c.fillRect(8 + i * 35, 3, 32, 32);
c.rect(8 + i * 35, 3, 32, 32);
AB(i, 8 + i * 35, 3)
}
c.stroke();
c.closePath();
if (!e)
if (t.hash) {
t.x = [];
for (var j = 0; j < 20; j++) {
t.x[j] = [];
for (var i = 0; i < 40; i++)
t.x[j][i] = t.hash.charCodeAt(j * 40 + i) - 48
}
}
for (j = 0; j < t.x.length; j++)
for (i = 0; i < t.x[j].length; i++) {
F = t.x[j][i];
AA(F, i, j);
if (F == 2) {
E = false;
if (j < 20)
for (k = j + 1; k < 20; k++)
if (!t.x[k][i] && !E)
AA(24, i, k);
else
E = true
}
}
for (i in t.I) {
C = t.I[i][1];
if (t.I[i][2]) {
B = t.I[i][1] < t.I[i][2] ? t.I[i][1] : t.I[i][2];
C = t.I[i][1] < t.I[i][2] ? t.I[i][2] : t.I[i][1];
for (k = B + 1; k < C; k++) {
AA(18, t.I[i][0], k);
AA(19, t.I[i][0] + 1, k);
t.x[k][t.I[i][0]] = 18;
t.x[k][t.I[i][0] + 1] = 19
}
}
if (t.I[i][1]) {
D = false;
for (k = C + 1; k < 21; k++)
if (k < 20 && !t.x[k][t.I[i][0]] && !t.x[k][t.I[i][0] + 1] && !D) {
AA(18, t.I[i][0], k);
AA(19, t.I[i][0] + 1, k)
} else
D = true
}
if (t.I[i][1]) {
AA(16, t.I[i][0], t.I[i][1]);
AA(17, t.I[i][0] + 1, t.I[i][1]);
t.x[t.I[i][1]][t.I[i][0]] = 16;
t.x[t.I[i][1]][t.I[i][0] + 1] = 17
}
if (t.I[i][2]) {
AA(16, t.I[i][0], t.I[i][2]);
AA(17, t.I[i][0] + 1, t.I[i][2]);
t.x[t.I[i][2]][t.I[i][0]] = 16;
t.x[t.I[i][2]][t.I[i][0] + 1] = 17
}
if (t.I[i][4])
AA(20, t.I[i][3], t.I[i][4])
}
for (i in t.J) {
if (t.J[i][3]) {
c.beginPath();
c.strokeStyle = "#fff";
c.lineWidth = 2;
c.moveTo(t.J[i][0] * 32 + 16, t.J[i][1] * 32 + 40 + 8);
c.lineTo(t.J[i][2] * 32 + 16, t.J[i][3] * 32 + 40 + 8);
c.stroke();
c.closePath();
AA(15, t.J[i][2] - 1, t.J[i][3]);
AA(15, t.J[i][2], t.J[i][3]);
AA(15, t.J[i][2] + 1, t.J[i][3]);
t.x[t.J[i][3]][t.J[i][2] - 1] = 15;
t.x[t.J[i][3]][t.J[i][2]] = 15;
t.x[t.J[i][3]][t.J[i][2] + 1] = 15
}
if (t.J[i][1]) {
AA(15, t.J[i][0] - 1, t.J[i][1]);
AA(15, t.J[i][0], t.J[i][1]);
AA(15, t.J[i][0] + 1, t.J[i][1]);
t.x[t.J[i][1]][t.J[i][0] - 1] = 15;
t.x[t.J[i][1]][t.J[i][0]] = 15;
t.x[t.J[i][1]][t.J[i][0] + 1] = 15
}
}
if (r >= 0 && !p)
if (A == 1) {
if (r > 0) {
AA(22, q, r - 1);
AA(23, q, r)
}
} else if (A == 14) {
if (pipe_click == 0) {
AA(16, q, r);
AA(17, q + 1, r)
}
if (pipe_click == 1) {
AA(16, t.I[v][0], r);
AA(17, t.I[v][0] + 1, r)
}
if (pipe_click == 2)
AA(20, q, r)
} else if (A == 15) {
AA(15, q - 1, r);
AA(15, q, r);
AA(15, q + 1, r)
} else
AA(A, q, r);
c.beginPath();
c.strokeStyle = "#777";
c.lineWidth = 1;
for (i = 0; i < 40; i++) {
c.moveTo(i * 32, 40);
c.lineTo(i * 32, 648)
}
for (j = 0; j < 20; j++) {
c.moveTo(0, 40 + j * 32);
c.lineTo(1280, 40 + j * 32)
}
c.fillStyle = "#000";
c.fillRect(750, 4, 100, 32);
c.fillRect(875, 4, 100, 32);
c.fillRect(1E3, 4, 100, 32);
c.fillRect(1125, 4, 100, 32);
c.fillStyle = "#fff";
c.font = "bold 20px arial";
c.fillText("TESTER", 800, 28);
c.fillText("PARTAGER", 925, 28);
c.fillText("EFFACER", 1050, 28);
c.fillText("QUITTER", 1175, 28);
c.stroke();
c.closePath();
c.beginPath();
i = A;
c.strokeStyle = "red";
c.lineWidth = 3;
c.rect(8 + i * 35, 3.5, 32, 32);
c.stroke();
c.closePath()
}
}
;
onhashchange = function(e, f, g) {
if (location.hash) {
t = JSON.parse(decodeURIComponent(location.hash.slice(1)));
d = 2;
AP()
}
}
;
onhashchange();
mkaudio = function(fn) {
var data = [];
for (var i = 0; ; i++) {
var smp = fn(i);
if (smp === null)
break;
data.push(smp)
}
var l = data.length;
var l2 = l * 2;
var b32 = function(v) {
var s = 0;
var b = "";
for (var i = 0; i < 4; i++,
s += 8)
b += String.fromCharCode(v >> s & 255);
return b
};
var b16 = function(v) {
var b = b32(v);
return b[0] + b[1]
};
var SR = 48E3;
var b = "RIFF" + b32(l2 + 36) + "WAVEfmt " + b32(16) + b16(1) + b16(1) + b32(SR) + b32(SR * 2) + b16(2) + b16(16) + "data" + b32(l2);
for (var i in data)
b += b16(data[i] * 1E4);
return new Audio("data:audio/wav;base64," + btoa(b))
}
;
P = Math.pow;
S = Math.sin;
T = function(i, n) {
return (n - i) / n
}
;
SNDjump2 = function(i) {
i = i * 1.5;
var n = 2E4;
if (i > n)
return null;
return (P(i, 1.075) & 128 ? 1 : -1) * P(T(i, n), 2)
}
;
SNDdie0 = function(i) {
var n = 5E4;
if (i > n)
return null;
return (P(i, .9) & 200 ? 1 : -1) * P(T(i, n), 3)
}
;
SNDbrick1 = function(i) {
var n = 5E3;
if (i > n)
return null;
return (P(i + S(i * .01) * 1E3, .8) & 200 ? .5 : -.5) * P(T(i, n), 1)
}
;
SNDglitch1 = function(i) {
var n = 9E4;
if (i > n)
return null;
return (P(i + S(i * .01) * 1E3, .8) & 200 ? .5 : -.5) * P(T(i, n), 1)
}
;
SNDcoin1 = function(i) {
var n = 16E3;
var c = n / 7;
if (i > n)
return null;
var q = P(T(i, n), 2.1);
return (i < c ? i + S(-i / 900) * 10 & 16 : i & 13) ? q : -q
}
;
SNDI0 = function(i) {
var notes = [0, 4, 7, 12, undefined, 7, 12];
var n = 4E4;
if (i > n)
return null;
var idx = notes.length * i / n | 0;
var note = notes[idx];
if (note === undefined)
return 0;
var r = P(2, note / 12) * .8;
var q = T(i * notes.length % n, n);
return i * r & 64 ? q : -q
}
;
SNDswitch0 = function(i) {
var n = 7E3;
if (i > n)
return null;
return ((i ^ i >> 3 ^ i * i * 7.3 ^ i << 4) & 65535) / 65536 * T(i, n)
}
;
SNDtimetravel0 = function(i) {
var n = 5E4;
var n1 = 1E5;
if (i > n)
return null;
i = P(i, 1.2 - S(i / n1)) * 7;
var x = S(i / 30 + S(i / 1500));
return P(x, 9) * T(i, n)
}
;
SNDshoot1 = function(i) {
var n = 6E3;
if (i > n)
return null;
var q = T(i, n);
return P(i * 50, .7) & 33 ? q : -q
}
;
SNDwhatportal2 = function(i) {
var n = 1E4;
if (i > n)
return null;
var q = T(i, n);
return S(i / 55 * S(i / 99) + S(i / 100)) * q
}
;
SNDwhat0 = function(i) {
var n = 1E4;
if (i > n)
return null;
var q = T(i, n);
return S(i * .01 * S(i * .4) + S(i / 100))
}
;
Music = function() {
MM = new function() {
if (!window.AudioContext)
return;
var M = this;
var ctx = new AudioContext;
var node = ctx.createScriptProcessor(4096, 0, 1);
var RATE = ctx.sampleRate / 48E3;
var POW = Math.pow;
var SIN = Math.sin;
var RND = Math.random;
var NSIN = function(x) {
return SIN(x) + RND() * .6
};
var P2 = Math.PI * 2;
var OSC = function(fn) {
var x = 0;
return function(note) {
x += POW(2, note / 12) * RATE;
if (x > P2)
x -= P2;
return fn(x)
}
};
var snare = OSC(NSIN);
var pling = OSC(function(x) {
return x / P2 - .5
});
var pling2 = OSC(function(x) {
return x / P2 - .5
});
var bass = OSC(function(x) {
return x / P2 - .5 + POW(SIN(x), 5) * 3
});
var pos = 1;
var step = -1;
var vibrato = 0;
node.onaudioprocess = function(e) {
var data = e.outputBuffer.getChannelData(0);
for (var i = 0; i < data.length; i++) {
pos += M.t / RATE;
vibrato += .001 / RATE;
if (pos >= 1) {
pos -= 1;
step++
}
var decay = 1 - pos;
var o = 0;
var X = null;
var bt = 0;
var lseq, lseq2;
if (step % 128 < 64) {
lseq = [3, 4, 4, 4, 3, 4, 0, -3, 0, X, X, 0, X, X, 0, X, 3, 4, 4, 4, 3, 4, 0, -3, 0, 12, X, 12, 12, X, X, X];
lseq2 = [X, X, X, X, X, X, X, X, X, X, X, X, X, X, X, X, -1, 0, 0, 0, -1, 0, -5, -8, -5, X, X, -5, X, X, -5, X, X]
} else {
lseq = [6, 7, 7, 7, 6, 5, 4, 2, -5, X, X, 7, X, X, X];
lseq2 = [X, X, X, X, -10, -5, X, X, X, -10];
bt = -5
}
var L = lseq.length;
var ln = lseq[step % L];
if (ln != X)
o += pling(-81 + ln + 24) * decay * M.p;
L = lseq2.length;
var ln = lseq2[step % L];
if (ln != X)
o += pling2(-81 + ln + 24 + SIN(vibrato) * .05) * decay * M.p;
var bseq = [0, X, X, 0, 7, 9, X, 7];
L = bseq.length;
var bseq2 = [X, 12, X, 12, 12, X, 12, X];
var bn = ((step / L & 3) < 3 ? bseq : bseq2)[step % L];
if (bn != X)
o += bass(-81 + bn + bt - SIN(vibrato) * .05) * M.b * decay;
var drumx = (1 - pos + (step & 1)) / 2;
if ((step & 2) == 2)
o += snare(-70 + POW(drumx, 15) * 60) * M.s * decay * RND();
data[i] = o
}
}
;
node.connect(ctx.destination);
M.stop = function() {
node.disconnect()
}
;
M.s = .1;
M.p = .2;
M.b = .2;
M.t = 1.1E-4
}
}
;
Music();
function SNDcoin1(i) {
var n = 1.6e4;
var c = n / 7;
if (i > n)
return null;
var q = P(T(i, n), 2.1);
return (i < c ? ((i + S(-i / 900) * 10) & 16) : i & 13) ? q : -q;
}
var pagepage = document.getElementById("jeu")
var pagepagepage = document.getElementById("jeu")
function sauvegarder(){
place = prompt("Place ou sauvegarder: ")
if (place === 'make'){
localStorage.itemSetJSON('makesave',JSON.stringify(t))
}
else{
place=parseInt(place)
texte = prompt("Texte: ")
texte2 = null
texte2 = prompt("Texte2: ")
devrecorddev = prompt("DevRecord (en secondes): ")
devrecorddev = parseInt(devrecorddev)
levels[place]={
hash: t.hash,
I:t.I,
J:t.J,
txt: texte,
txt2: texte2,
ac: (devrecorddev*30)
}
localStorage.itemSetJSON('niveau',JSON.stringify(levels))
localStorage.itemSetJSON('storage?', 2)
}
}
function makereimport(){
t= JSON.parse(localStorage.getItem('makesave'))
}
function savesavesave(data, filename, type){
// Function to download data to a file
var file = new Blob([data], {type: type});
if (window.navigator.msSaveOrOpenBlob) // IE10+
window.navigator.msSaveOrOpenBlob(file, filename);
else { // Others
var okokok = document.createElement("okokok"),
url = URL.createObjectURL(file);
okokok.href = url;
okokok.download = filename;
document.body.appendChild(okokok);
okokok.click();
setTimeout(function() {
document.body.removeChild(okokok);
window.URL.revokeObjectURL(url);
}, 0);
}
}
function replaceAll(string, search, replace) {
return string.split(search).join(replace);
}
function modifier(entrée, sortie){
/*let thehash = JSON.stringify(t.hash)
let thesortie = replaceAll(thehash,`${entrée[0]}`,`${sortie[0]}`)
t.hash = thesortie*/
t.hash = replaceAll(t.hash,entrée[0],sortie[0])
}
function editthegame(){
let abcde = prompt('La valeur initiale:')
let fghij = prompt('la valeur finale')
modifier(abcde, fghij)
}
function winthegame(){
I=true
}
function copy(){
/*let theoutput = document.createElement('p')
theoutput.id = 'output'
theoutput.innerHTML = `${JSON.stringify(levels,'',4)}`
theoutput.style.width=0
theoutput.style.height=0
document.body.appendChild(theoutput)
let copyText = document.querySelector('#output');
copyText.select();
document.execCommand('copy');
copyText.remove()
theoutput.remove()*/
console.log(`copy to your clipboard: ${JSON.stringify(levels)}`)
}
/*function exportlevel(){
document.body.remove()
document.body.innnerHTML = `<pre>${JSON.stringify(t)}</pre><br>Reload for return on USCPM`
}*/
/*function importlevel(){
document.body.removeChild()
document.body.innerHTML = `<textarea id=thejson>your JSON level here</textarea><br><input type=number id=nb><button onclick="function(){
levels[nb.value]= document.getElementById('thejson').innerHTML;
localStorage.itemSetJSON('niveau',JSON.stringify(levels))
localStorage.itemSetJSON('storage?', 2)}">Submit</button>`
}*/
function getlevels(){
return levels
}
function download(content, fileName, contentType) {
var a = document.createElement("a");
var file = new Blob([content], {type: contentType});
a.href = URL.createObjectURL(file);
a.download = fileName;
a.click();
}
function exportlevel(){
download(JSON.stringify(localStorage), 'progression.txt', 'text/plain');
}
function sharebyurl(){
let theURL = encodeURI('https://gzod01.fr/uscpm/'+ "#" + JSON.stringify({
hash: t.hash,
I: t.I,
J: t.J
}))
alert('share this url with your friends: '+theURL)
}
function importlevel(){
let thefileelement = document.getElementById('fs')
let thefile = thefile.files[0]
if (thefile == null){
alert('vous devez entrer au moins un fichier')
}
else{
var reader = new FileReader();
reader.onload = function() {
var text = reader.result;
localStorage = JSON.parse(thefile)
};
reader.readAsText(thefile);
}
}
var sauvegarderbouton = document.getElementById("Savebutton");
sauvegarderbouton.addEventListener("click", sauvegarder);
var editthegamebouton = document.getElementById("editthecode");
editthegamebouton.addEventListener("click", editthegame);
var winbutton = document.getElementById("winthegame");
winbutton.addEventListener("click", winthegame);
</script>