2031 lines
130 KiB
HTML
2031 lines
130 KiB
HTML
|
<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>
|