mirror of
https://gitlab.com/lecarore/breakout71.git
synced 2025-04-20 12:15:06 -04:00
Adjusted neon effect, more screenshake after bigger_explosion perk is chosen
This commit is contained in:
parent
b458780558
commit
ffeb97becb
4 changed files with 349 additions and 175 deletions
|
@ -9,8 +9,8 @@ const puckHeight = ballSize;
|
||||||
if (allLevels.find(l => l.focus)) {
|
if (allLevels.find(l => l.focus)) {
|
||||||
allLevels = allLevels.filter(l => l.focus)
|
allLevels = allLevels.filter(l => l.focus)
|
||||||
}
|
}
|
||||||
allLevels.forEach((l,li)=>{
|
allLevels.forEach((l, li) => {
|
||||||
l.threshold= li < 8 ? 0 : Math.round(Math.pow(10, 1 + (li + l.size) / 30) * (li)) * 10
|
l.threshold = li < 8 ? 0 : Math.round(Math.pow(10, 1 + (li + l.size) / 30) * (li)) * 10
|
||||||
})
|
})
|
||||||
|
|
||||||
let runLevels = []
|
let runLevels = []
|
||||||
|
@ -107,8 +107,7 @@ function pause() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let offsetX, offsetXRoundedDown, gameZoneWidth, gameZoneWidthRoundedUp, gameZoneHeight, brickWidth, needsRender = true;
|
||||||
let offsetX, gameZoneWidth, gameZoneHeight, brickWidth, needsRender = true;
|
|
||||||
|
|
||||||
const background = document.createElement("img");
|
const background = document.createElement("img");
|
||||||
const backgroundCanvas = document.createElement("canvas");
|
const backgroundCanvas = document.createElement("canvas");
|
||||||
|
@ -129,6 +128,9 @@ const fitSize = () => {
|
||||||
brickWidth = Math.floor(baseWidth / gridSize / 2) * 2;
|
brickWidth = Math.floor(baseWidth / gridSize / 2) * 2;
|
||||||
gameZoneWidth = brickWidth * gridSize;
|
gameZoneWidth = brickWidth * gridSize;
|
||||||
offsetX = Math.floor((canvas.width - gameZoneWidth) / 2);
|
offsetX = Math.floor((canvas.width - gameZoneWidth) / 2);
|
||||||
|
offsetXRoundedDown = offsetX
|
||||||
|
if (offsetX < ballSize) offsetXRoundedDown = 0
|
||||||
|
gameZoneWidthRoundedUp = width - 2 * offsetXRoundedDown
|
||||||
backgroundCanvas.title = 'resized'
|
backgroundCanvas.title = 'resized'
|
||||||
// Ensure puck stays within bounds
|
// Ensure puck stays within bounds
|
||||||
setMousePos(puck);
|
setMousePos(puck);
|
||||||
|
@ -576,14 +578,14 @@ const upgrades = [
|
||||||
"threshold": 87000,
|
"threshold": 87000,
|
||||||
"id": "ball_repulse_ball",
|
"id": "ball_repulse_ball",
|
||||||
"name": "Balls repulse balls",
|
"name": "Balls repulse balls",
|
||||||
requires:'multiball',
|
requires: 'multiball',
|
||||||
"max": 3,
|
"max": 3,
|
||||||
"help": "Only has an effect with 2+ balls."
|
"help": "Only has an effect with 2+ balls."
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"threshold": 98000,
|
"threshold": 98000,
|
||||||
"id": "ball_attract_ball",
|
"id": "ball_attract_ball",
|
||||||
requires:'multiball',
|
requires: 'multiball',
|
||||||
"name": "Balls attract balls",
|
"name": "Balls attract balls",
|
||||||
"max": 3,
|
"max": 3,
|
||||||
"help": "Only has an effect with 2+ balls."
|
"help": "Only has an effect with 2+ balls."
|
||||||
|
@ -602,7 +604,7 @@ function getPossibleUpgrades() {
|
||||||
const ts = getTotalScore()
|
const ts = getTotalScore()
|
||||||
return upgrades
|
return upgrades
|
||||||
.filter(u => !(isSettingOn('color_blind') && u.color_blind_exclude))
|
.filter(u => !(isSettingOn('color_blind') && u.color_blind_exclude))
|
||||||
.filter(u => ts>=u.threshold)
|
.filter(u => ts >= u.threshold)
|
||||||
.filter(u => !u.requires || perks[u.requires])
|
.filter(u => !u.requires || perks[u.requires])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -646,12 +648,13 @@ function getUpgraderUnlockPoints() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
let lastOffered={}
|
let lastOffered = {}
|
||||||
|
|
||||||
function pickRandomUpgrades(count) {
|
function pickRandomUpgrades(count) {
|
||||||
|
|
||||||
let list = getPossibleUpgrades()
|
let list = getPossibleUpgrades()
|
||||||
.map(u=>({...u, score:Math.random() + (lastOffered[u.id]||0) }))
|
.map(u => ({...u, score: Math.random() + (lastOffered[u.id] || 0)}))
|
||||||
.sort((a,b) => a.score-b.score)
|
.sort((a, b) => a.score - b.score)
|
||||||
.filter(u => perks[u.id] < u.max)
|
.filter(u => perks[u.id] < u.max)
|
||||||
.slice(0, count)
|
.slice(0, count)
|
||||||
.sort((a, b) => a.id > b.id ? 1 : -1)
|
.sort((a, b) => a.id > b.id ? 1 : -1)
|
||||||
|
@ -668,8 +671,8 @@ function pickRandomUpgrades(count) {
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
list.forEach(u=> {
|
list.forEach(u => {
|
||||||
lastOffered[u.key] = Math.round(Date.now()/1000)
|
lastOffered[u.key] = Math.round(Date.now() / 1000)
|
||||||
})
|
})
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
|
@ -703,22 +706,12 @@ function setMousePos(x) {
|
||||||
needsRender = true;
|
needsRender = true;
|
||||||
puck = x;
|
puck = x;
|
||||||
|
|
||||||
if (offsetX > ballSize) {
|
// We have borders visible, enforce them
|
||||||
// We have borders visible, enforce them
|
if (puck < offsetXRoundedDown + puckWidth / 2) {
|
||||||
if (puck < offsetX + puckWidth / 2) {
|
puck = offsetXRoundedDown + puckWidth / 2;
|
||||||
puck = offsetX + puckWidth / 2;
|
}
|
||||||
}
|
if (puck > offsetXRoundedDown + gameZoneWidthRoundedUp - puckWidth / 2) {
|
||||||
if (puck > offsetX + gameZoneWidth - puckWidth / 2) {
|
puck = offsetXRoundedDown + gameZoneWidthRoundedUp - puckWidth / 2;
|
||||||
puck = offsetX + gameZoneWidth - puckWidth / 2;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// Let puck touch the border of the screen
|
|
||||||
if (puck < puckWidth / 2) {
|
|
||||||
puck = puckWidth / 2;
|
|
||||||
}
|
|
||||||
if (puck > offsetX * 2 + gameZoneWidth - puckWidth / 2) {
|
|
||||||
puck = offsetX * 2 + gameZoneWidth - puckWidth / 2;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (!running && !levelTime) {
|
if (!running && !levelTime) {
|
||||||
putBallsAtPuck();
|
putBallsAtPuck();
|
||||||
|
@ -850,8 +843,8 @@ function bordersHitCheck(coin, radius, delta) {
|
||||||
let vhit = 0, hhit = 0;
|
let vhit = 0, hhit = 0;
|
||||||
|
|
||||||
|
|
||||||
if (coin.x < (offsetX > ballSize ? offsetX : 0) + radius) {
|
if (coin.x < offsetXRoundedDown + radius) {
|
||||||
coin.x = offsetX + radius;
|
coin.x = offsetXRoundedDown + radius;
|
||||||
coin.vx *= -1;
|
coin.vx *= -1;
|
||||||
hhit = 1;
|
hhit = 1;
|
||||||
}
|
}
|
||||||
|
@ -860,8 +853,8 @@ function bordersHitCheck(coin, radius, delta) {
|
||||||
coin.vy *= -1;
|
coin.vy *= -1;
|
||||||
vhit = 1;
|
vhit = 1;
|
||||||
}
|
}
|
||||||
if (coin.x > canvas.width - (offsetX > ballSize ? offsetX : 0) - radius) {
|
if (coin.x > canvas.width - offsetXRoundedDown - radius) {
|
||||||
coin.x = canvas.width - offsetX - radius;
|
coin.x = canvas.width - offsetXRoundedDown - radius;
|
||||||
coin.vx *= -1;
|
coin.vx *= -1;
|
||||||
hhit = 1;
|
hhit = 1;
|
||||||
}
|
}
|
||||||
|
@ -1406,18 +1399,13 @@ function render() {
|
||||||
|
|
||||||
if (!isSettingOn("basic") && !level.color && level.svg && !level.black_puck) {
|
if (!isSettingOn("basic") && !level.color && level.svg && !level.black_puck) {
|
||||||
|
|
||||||
|
// Without this the light trails everything
|
||||||
ctx.globalCompositeOperation = "source-over";
|
ctx.globalCompositeOperation = "source-over";
|
||||||
ctx.globalAlpha = 0.7
|
ctx.globalAlpha = .4
|
||||||
ctx.fillStyle = "#000";
|
ctx.fillStyle = "#000";
|
||||||
ctx.fillRect(0, 0, width, height);
|
ctx.fillRect(0, 0, width, height);
|
||||||
|
|
||||||
ctx.globalCompositeOperation = "multiply";
|
|
||||||
ctx.globalAlpha = 0.3;
|
|
||||||
const gradient = ctx.createLinearGradient(offsetX, gameZoneHeight - puckHeight, offsetX, height - puckHeight * 3,);
|
|
||||||
gradient.addColorStop(0, "black");
|
|
||||||
gradient.addColorStop(1, "transparent");
|
|
||||||
ctx.fillStyle = gradient;
|
|
||||||
ctx.fillRect(offsetX, gameZoneHeight - puckHeight * 3, gameZoneWidth, puckHeight * 4,);
|
|
||||||
|
|
||||||
ctx.globalCompositeOperation = "screen";
|
ctx.globalCompositeOperation = "screen";
|
||||||
ctx.globalAlpha = 0.6;
|
ctx.globalAlpha = 0.6;
|
||||||
|
@ -1446,11 +1434,16 @@ function render() {
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
// Decides how brights the bg black parts can get
|
||||||
ctx.globalAlpha = 0.9;
|
ctx.globalAlpha = .2;
|
||||||
ctx.globalCompositeOperation = "multiply";
|
ctx.globalCompositeOperation = "multiply";
|
||||||
if (level.svg && background.complete) {
|
ctx.fillStyle = "black";
|
||||||
if (backgroundCanvas.title !== level.name) {
|
ctx.fillRect(0, 0, width, height);
|
||||||
|
// Decides how dark the background black parts are when lit (1=black)
|
||||||
|
ctx.globalAlpha = .8;
|
||||||
|
ctx.globalCompositeOperation = "multiply";
|
||||||
|
if (level.svg) {
|
||||||
|
if (backgroundCanvas.title !== level.name && background.complete) {
|
||||||
backgroundCanvas.title = level.name
|
backgroundCanvas.title = level.name
|
||||||
backgroundCanvas.width = canvas.width
|
backgroundCanvas.width = canvas.width
|
||||||
backgroundCanvas.height = canvas.height
|
backgroundCanvas.height = canvas.height
|
||||||
|
@ -1461,14 +1454,18 @@ function render() {
|
||||||
bgctx.fillRect(0, 0, width, height);
|
bgctx.fillRect(0, 0, width, height);
|
||||||
console.log("redrew context")
|
console.log("redrew context")
|
||||||
}
|
}
|
||||||
ctx.drawImage(backgroundCanvas, 0, 0)
|
if(background.complete) {
|
||||||
|
ctx.drawImage(backgroundCanvas, 0, 0)
|
||||||
|
}else{
|
||||||
|
// Background not loaded yes
|
||||||
|
ctx.fillStyle = "#000";
|
||||||
|
ctx.fillRect(0, 0, width, height);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
ctx.globalCompositeOperation = "source-over";
|
|
||||||
ctx.globalAlpha = 1
|
ctx.globalAlpha = 1
|
||||||
|
ctx.globalCompositeOperation = "source-over";
|
||||||
ctx.fillStyle = level.color || "#000";
|
ctx.fillStyle = level.color || "#000";
|
||||||
ctx.fillRect(0, 0, width, height);
|
ctx.fillRect(0, 0, width, height);
|
||||||
|
|
||||||
|
@ -1484,18 +1481,18 @@ function render() {
|
||||||
|
|
||||||
if (combo > baseCombo()) {
|
if (combo > baseCombo()) {
|
||||||
// The red should still be visible on a white bg
|
// The red should still be visible on a white bg
|
||||||
ctx.globalCompositeOperation = !level.color && level.svg ? "screen" : 'source-over';
|
ctx.globalCompositeOperation = !level.color && level.svg ? "screen" : 'source-over';
|
||||||
ctx.globalAlpha = (2 + combo - baseCombo()) / 50;
|
ctx.globalAlpha = (2 + combo - baseCombo()) / 50;
|
||||||
|
|
||||||
if (perks.top_is_lava) {
|
if (perks.top_is_lava) {
|
||||||
drawRedGradientSquare(ctx, offsetX, 0, gameZoneWidth, ballSize, 0, 0, 0, ballSize,);
|
drawRedGradientSquare(ctx, offsetXRoundedDown, 0, gameZoneWidthRoundedUp, ballSize, 0, 0, 0, ballSize,);
|
||||||
}
|
}
|
||||||
if (perks.sides_are_lava) {
|
if (perks.sides_are_lava) {
|
||||||
drawRedGradientSquare(ctx, offsetX, 0, ballSize, gameZoneHeight, 0, 0, ballSize, 0,);
|
drawRedGradientSquare(ctx, offsetXRoundedDown, 0, ballSize, gameZoneHeight, 0, 0, ballSize, 0,);
|
||||||
drawRedGradientSquare(ctx, offsetX + gameZoneWidth - ballSize, 0, ballSize, gameZoneHeight, ballSize, 0, 0, 0,);
|
drawRedGradientSquare(ctx, offsetXRoundedDown + gameZoneWidthRoundedUp - ballSize, 0, ballSize, gameZoneHeight, ballSize, 0, 0, 0,);
|
||||||
}
|
}
|
||||||
if (perks.catch_all_coins) {
|
if (perks.catch_all_coins) {
|
||||||
drawRedGradientSquare(ctx, offsetX, gameZoneHeight - ballSize, gameZoneWidth, ballSize, 0, ballSize, 0, 0,);
|
drawRedGradientSquare(ctx, offsetXRoundedDown, gameZoneHeight - ballSize, gameZoneWidthRoundedUp, ballSize, 0, ballSize, 0, 0,);
|
||||||
}
|
}
|
||||||
if (perks.streak_shots) {
|
if (perks.streak_shots) {
|
||||||
drawRedGradientSquare(ctx, puck - puckWidth / 2, gameZoneHeight - puckHeight - ballSize, puckWidth, ballSize, 0, ballSize, 0, 0,);
|
drawRedGradientSquare(ctx, puck - puckWidth / 2, gameZoneHeight - puckHeight - ballSize, puckWidth, ballSize, 0, ballSize, 0, 0,);
|
||||||
|
@ -1517,7 +1514,8 @@ function render() {
|
||||||
const lastExplosionDelay = Date.now() - lastexplosion + 5;
|
const lastExplosionDelay = Date.now() - lastexplosion + 5;
|
||||||
const shaked = lastExplosionDelay < 200;
|
const shaked = lastExplosionDelay < 200;
|
||||||
if (shaked) {
|
if (shaked) {
|
||||||
ctx.translate((Math.sin(Date.now()) * 50) / lastExplosionDelay, (Math.sin(Date.now() + 36) * 50) / lastExplosionDelay,);
|
const amplitude =( perks.bigger_explosions + 1) * 50 / lastExplosionDelay
|
||||||
|
ctx.translate(Math.sin(Date.now()) * amplitude , Math.sin(Date.now() + 36) * amplitude);
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.globalCompositeOperation = "source-over";
|
ctx.globalCompositeOperation = "source-over";
|
||||||
|
@ -1586,12 +1584,12 @@ function render() {
|
||||||
// Borders
|
// Borders
|
||||||
ctx.fillStyle = puckColor;
|
ctx.fillStyle = puckColor;
|
||||||
ctx.globalCompositeOperation = "source-over";
|
ctx.globalCompositeOperation = "source-over";
|
||||||
if (offsetX > ballSize) {
|
if (offsetXRoundedDown) {
|
||||||
ctx.fillRect(offsetX, 0, 1, height);
|
ctx.fillRect(offsetX, 0, 1, height);
|
||||||
ctx.fillRect(width - offsetX - 1, 0, 1, height);
|
ctx.fillRect(width - offsetX - 1, 0, 1, height);
|
||||||
}
|
}
|
||||||
if (isSettingOn("mobile-mode")) {
|
if (isSettingOn("mobile-mode")) {
|
||||||
ctx.fillRect(offsetX, gameZoneHeight, gameZoneWidth, 1);
|
ctx.fillRect(offsetXRoundedDown, gameZoneHeight, gameZoneWidthRoundedUp, 1);
|
||||||
if (!running) {
|
if (!running) {
|
||||||
drawText(ctx, "Keep pressing here to play", puckColor, puckHeight, {
|
drawText(ctx, "Keep pressing here to play", puckColor, puckHeight, {
|
||||||
x: canvas.width / 2, y: gameZoneHeight + (canvas.height - gameZoneHeight) / 2,
|
x: canvas.width / 2, y: gameZoneHeight + (canvas.height - gameZoneHeight) / 2,
|
||||||
|
@ -1770,8 +1768,8 @@ function drawBrick(ctx, color, x, y, squared) {
|
||||||
// It's not easy to have a 1px gap between bricks without antialiasing
|
// It's not easy to have a 1px gap between bricks without antialiasing
|
||||||
}
|
}
|
||||||
|
|
||||||
function drawRedGradientSquare(ctx, x, y, width, height, redX, redY, blackX, blackY ) {
|
function drawRedGradientSquare(ctx, x, y, width, height, redX, redY, blackX, blackY) {
|
||||||
const key = "gradient" + width + "_" + height + "_" + redX + "_" + redY + "_" + blackX + "_" + blackY ;
|
const key = "gradient" + width + "_" + height + "_" + redX + "_" + redY + "_" + blackX + "_" + blackY;
|
||||||
|
|
||||||
if (!cachedGraphics[key]) {
|
if (!cachedGraphics[key]) {
|
||||||
const can = document.createElement("canvas");
|
const can = document.createElement("canvas");
|
||||||
|
@ -2239,15 +2237,15 @@ async function openSettingsPanel() {
|
||||||
...allLevels
|
...allLevels
|
||||||
.sort((a, b) => a.threshold - b.threshold)
|
.sort((a, b) => a.threshold - b.threshold)
|
||||||
.map((l, li) => {
|
.map((l, li) => {
|
||||||
const avaliable = ts >= l.threshold
|
const avaliable = ts >= l.threshold
|
||||||
return ({
|
return ({
|
||||||
text: l.name,
|
text: l.name,
|
||||||
help: `A ${l.size}x${l.size} level with ${l.bricks.filter(i => i).length} bricks` + (avaliable ? '' : `(${l.threshold} coins)`),
|
help: `A ${l.size}x${l.size} level with ${l.bricks.filter(i => i).length} bricks` + (avaliable ? '' : `(${l.threshold} coins)`),
|
||||||
disabled: !avaliable,
|
disabled: !avaliable,
|
||||||
value: {level: l.name}
|
value: {level: l.name}
|
||||||
|
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,8 @@ let allLevels=[
|
||||||
"#e32119"
|
"#e32119"
|
||||||
],
|
],
|
||||||
"svg": "<svg xmlns='http://www.w3.org/2000/svg' width='20' height='40'><path d='M0 0v5.436c.385-.146.767.123 1.163.82.948 1.674 2.214 2.996 3.46 4.294C6.977 13.002 9.2 15.318 9.2 19.995c0 4.679-2.223 6.994-4.577 9.447-1.246 1.299-2.512 2.621-3.46 4.295-.396.698-.777.966-1.163.82V40h1.198v-.005c0-4.678 2.224-6.992 4.579-9.445 1.245-1.298 2.51-2.62 3.459-4.295.654-1.154 1.273-1.154 1.926 0 .95 1.673 2.214 2.997 3.46 4.295 2.353 2.452 4.578 4.767 4.578 9.445V40h.8v-5.442c-.252-.095-.504-.365-.762-.82-.95-1.675-2.214-2.998-3.46-4.296-2.353-2.452-4.576-4.768-4.576-9.447-.001-4.678 2.221-6.993 4.575-9.445 1.246-1.298 2.512-2.62 3.46-4.294.259-.456.511-.725.763-.82V0h-.8c0 4.676-2.224 6.991-4.577 9.442-1.246 1.298-2.512 2.621-3.46 4.296-.653 1.153-1.273 1.153-1.926 0-.948-1.675-2.214-2.998-3.46-4.296C3.424 6.991 1.2 4.676 1.2 0Z' stroke='none' fill='white'/></svg>",
|
"svg": "<svg xmlns='http://www.w3.org/2000/svg' width='20' height='40'><path d='M0 0v5.436c.385-.146.767.123 1.163.82.948 1.674 2.214 2.996 3.46 4.294C6.977 13.002 9.2 15.318 9.2 19.995c0 4.679-2.223 6.994-4.577 9.447-1.246 1.299-2.512 2.621-3.46 4.295-.396.698-.777.966-1.163.82V40h1.198v-.005c0-4.678 2.224-6.992 4.579-9.445 1.245-1.298 2.51-2.62 3.459-4.295.654-1.154 1.273-1.154 1.926 0 .95 1.673 2.214 2.997 3.46 4.295 2.353 2.452 4.578 4.767 4.578 9.445V40h.8v-5.442c-.252-.095-.504-.365-.762-.82-.95-1.675-2.214-2.998-3.46-4.296-2.353-2.452-4.576-4.768-4.576-9.447-.001-4.678 2.221-6.993 4.575-9.445 1.246-1.298 2.512-2.62 3.46-4.294.259-.456.511-.725.763-.82V0h-.8c0 4.676-2.224 6.991-4.577 9.442-1.246 1.298-2.512 2.621-3.46 4.296-.653 1.153-1.273 1.153-1.926 0-.948-1.675-2.214-2.998-3.46-4.296C3.424 6.991 1.2 4.676 1.2 0Z' stroke='none' fill='white'/></svg>",
|
||||||
"color": ""
|
"color": "",
|
||||||
|
"focus": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Butterfly",
|
"name": "Butterfly",
|
||||||
|
@ -1028,26 +1029,26 @@ let allLevels=[
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
"#6262EA",
|
"#ffd300",
|
||||||
"white",
|
"#ffd300",
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
"#6262EA",
|
"#ffd300",
|
||||||
"white",
|
"#ffd300",
|
||||||
null,
|
"",
|
||||||
null,
|
null,
|
||||||
"white",
|
"#ffd300",
|
||||||
"white",
|
"#ffd300",
|
||||||
null,
|
|
||||||
null,
|
|
||||||
"white",
|
|
||||||
"white",
|
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
|
"#ffd300",
|
||||||
|
"#ffd300",
|
||||||
|
"",
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
|
"",
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
|
@ -1060,24 +1061,26 @@ let allLevels=[
|
||||||
"",
|
"",
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
"#e32119",
|
"#ffd300",
|
||||||
"#e32119",
|
"#ffd300",
|
||||||
"#e32119",
|
"#ffd300",
|
||||||
"#e32119",
|
"#ffd300",
|
||||||
"#e32119",
|
"#ffd300",
|
||||||
"#e32119",
|
"#ffd300",
|
||||||
null,
|
"",
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
"#e32119",
|
"#ffd300",
|
||||||
"#e32119",
|
"#ffd300",
|
||||||
"#e32119",
|
"#ffd300",
|
||||||
"#e32119",
|
"#ffd300",
|
||||||
null,
|
"",
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
"",
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
""
|
""
|
||||||
],
|
],
|
||||||
"svg": "<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30'><path d='M9 20.502h0A7.5 7.5 0 0 1 1.5 28 7.5 7.5 0 0 0-6 35.5h0a7.5 7.5 0 0 1-7.5 7.499 7.476 7.476 0 0 1-5.304-2.196A7.482 7.482 0 0 1-21 35.5h0a7.5 7.5 0 0 1 7.5-7.5A7.5 7.5 0 0 0-6 20.502h0a7.5 7.5 0 1 1 15 0zm15 0h0A7.5 7.5 0 0 1 16.5 28a7.476 7.476 0 0 1-5.304-2.196A7.482 7.482 0 0 1 9 20.502h0c0-2.072-.84-3.947-2.197-5.303A7.477 7.477 0 0 0 1.5 13.002a7.476 7.476 0 0 1-5.304-2.196A7.482 7.482 0 0 1-6 5.503h0a7.5 7.5 0 1 1 15 0h0c0 2.07.84 3.945 2.196 5.303a7.476 7.476 0 0 0 5.304 2.196c2.07 0 3.945.84 5.303 2.197A7.471 7.471 0 0 1 24 20.502zm15 0h0A7.5 7.5 0 0 1 31.5 28a7.5 7.5 0 0 0-7.5 7.5h0a7.5 7.5 0 0 1-7.5 7.499 7.476 7.476 0 0 1-5.304-2.196A7.482 7.482 0 0 1 9 35.5h0a7.5 7.5 0 0 1 7.5-7.5 7.5 7.5 0 0 0 7.5-7.498h0a7.5 7.5 0 1 1 15 0zm0-30h0A7.5 7.5 0 0 1 31.5-2 7.5 7.5 0 0 0 24 5.5h0a7.5 7.5 0 0 1-7.5 7.499 7.476 7.476 0 0 1-5.304-2.196A7.482 7.482 0 0 1 9 5.5h0A7.5 7.5 0 0 1 16.5-2 7.5 7.5 0 0 0 24-9.498h0a7.5 7.5 0 1 1 15 0zm-22.5 37.5a7.5 7.5 0 0 0-7.5 7.5c0-2.072-.84-3.947-2.197-5.303A7.477 7.477 0 0 0 1.5 28.002 7.5 7.5 0 0 0 9 20.503c0 2.07.84 3.945 2.196 5.303a7.476 7.476 0 0 0 5.304 2.196zm15-15a7.5 7.5 0 0 0-7.5 7.5c0-2.072-.84-3.947-2.197-5.303a7.477 7.477 0 0 0-5.303-2.197A7.5 7.5 0 0 0 24 5.503c0 2.07.84 3.945 2.196 5.303a7.476 7.476 0 0 0 5.304 2.196z' stroke-width='1' stroke='white' fill='none'/></svg>",
|
"svg": "<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30'><path d='M9 20.502h0A7.5 7.5 0 0 1 1.5 28 7.5 7.5 0 0 0-6 35.5h0a7.5 7.5 0 0 1-7.5 7.499 7.476 7.476 0 0 1-5.304-2.196A7.482 7.482 0 0 1-21 35.5h0a7.5 7.5 0 0 1 7.5-7.5A7.5 7.5 0 0 0-6 20.502h0a7.5 7.5 0 1 1 15 0zm15 0h0A7.5 7.5 0 0 1 16.5 28a7.476 7.476 0 0 1-5.304-2.196A7.482 7.482 0 0 1 9 20.502h0c0-2.072-.84-3.947-2.197-5.303A7.477 7.477 0 0 0 1.5 13.002a7.476 7.476 0 0 1-5.304-2.196A7.482 7.482 0 0 1-6 5.503h0a7.5 7.5 0 1 1 15 0h0c0 2.07.84 3.945 2.196 5.303a7.476 7.476 0 0 0 5.304 2.196c2.07 0 3.945.84 5.303 2.197A7.471 7.471 0 0 1 24 20.502zm15 0h0A7.5 7.5 0 0 1 31.5 28a7.5 7.5 0 0 0-7.5 7.5h0a7.5 7.5 0 0 1-7.5 7.499 7.476 7.476 0 0 1-5.304-2.196A7.482 7.482 0 0 1 9 35.5h0a7.5 7.5 0 0 1 7.5-7.5 7.5 7.5 0 0 0 7.5-7.498h0a7.5 7.5 0 1 1 15 0zm0-30h0A7.5 7.5 0 0 1 31.5-2 7.5 7.5 0 0 0 24 5.5h0a7.5 7.5 0 0 1-7.5 7.499 7.476 7.476 0 0 1-5.304-2.196A7.482 7.482 0 0 1 9 5.5h0A7.5 7.5 0 0 1 16.5-2 7.5 7.5 0 0 0 24-9.498h0a7.5 7.5 0 1 1 15 0zm-22.5 37.5a7.5 7.5 0 0 0-7.5 7.5c0-2.072-.84-3.947-2.197-5.303A7.477 7.477 0 0 0 1.5 28.002 7.5 7.5 0 0 0 9 20.503c0 2.07.84 3.945 2.196 5.303a7.476 7.476 0 0 0 5.304 2.196zm15-15a7.5 7.5 0 0 0-7.5 7.5c0-2.072-.84-3.947-2.197-5.303a7.477 7.477 0 0 0-5.303-2.197A7.5 7.5 0 0 0 24 5.503c0 2.07.84 3.945 2.196 5.303a7.476 7.476 0 0 0 5.304 2.196z' stroke-width='1' stroke='white' fill='none'/></svg>",
|
||||||
|
@ -2801,7 +2804,7 @@ let allLevels=[
|
||||||
"color": ""
|
"color": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Gold chain",
|
"name": "Chain",
|
||||||
"size": 7,
|
"size": 7,
|
||||||
"bricks": [
|
"bricks": [
|
||||||
"#ffd300",
|
"#ffd300",
|
||||||
|
@ -2862,30 +2865,21 @@ let allLevels=[
|
||||||
"name": "Marion",
|
"name": "Marion",
|
||||||
"size": 9,
|
"size": 9,
|
||||||
"bricks": [
|
"bricks": [
|
||||||
"#ab0c0c",
|
|
||||||
"#ab0c0c",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"#ab0c0c",
|
|
||||||
"#ab0c0c",
|
|
||||||
"",
|
|
||||||
"#e32119",
|
"#e32119",
|
||||||
"#ab0c0c",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"#ab0c0c",
|
|
||||||
"#e32119",
|
"#e32119",
|
||||||
null,
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
"",
|
"",
|
||||||
"#e32119",
|
"#e32119",
|
||||||
"#e32119",
|
"#e32119",
|
||||||
"#ab0c0c",
|
|
||||||
"",
|
"",
|
||||||
"#ab0c0c",
|
"#e32119",
|
||||||
|
"#e32119",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
"#e32119",
|
"#e32119",
|
||||||
"#e32119",
|
"#e32119",
|
||||||
null,
|
null,
|
||||||
|
@ -2893,7 +2887,16 @@ let allLevels=[
|
||||||
"#e32119",
|
"#e32119",
|
||||||
"#e32119",
|
"#e32119",
|
||||||
"#e32119",
|
"#e32119",
|
||||||
"#ab0c0c",
|
"",
|
||||||
|
"#e32119",
|
||||||
|
"#e32119",
|
||||||
|
"#e32119",
|
||||||
|
null,
|
||||||
|
"",
|
||||||
|
"#e32119",
|
||||||
|
"#e32119",
|
||||||
|
"#e32119",
|
||||||
|
"#e32119",
|
||||||
"#e32119",
|
"#e32119",
|
||||||
"#e32119",
|
"#e32119",
|
||||||
"#e32119",
|
"#e32119",
|
||||||
|
@ -2934,7 +2937,7 @@ let allLevels=[
|
||||||
"#e32119",
|
"#e32119",
|
||||||
"#e32119",
|
"#e32119",
|
||||||
null,
|
null,
|
||||||
"#ab0c0c",
|
"#e32119",
|
||||||
"#e32119",
|
"#e32119",
|
||||||
"#e32119",
|
"#e32119",
|
||||||
null,
|
null,
|
||||||
|
@ -2942,7 +2945,7 @@ let allLevels=[
|
||||||
null,
|
null,
|
||||||
"#e32119",
|
"#e32119",
|
||||||
"#e32119",
|
"#e32119",
|
||||||
"#ab0c0c"
|
"#e32119"
|
||||||
],
|
],
|
||||||
"svg": "<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50'><path d='M44.11 8.56c-.065.316-.192.615-.24.931-.037.395-.11.796-.083 1.197.016.564.113 1.127.287 1.664.166.405.303.835.577 1.187.225.358.456.724.788.994.222.222.483.42.614.718.4.748.164 1.758-.536 2.242-.663.515-1.69.47-2.285-.131-.414-.374-.525-.936-.717-1.433-.195-.513-.238-1.06-.316-1.599 0-.442-.015-.886.008-1.327.073-.471.115-.955.235-1.42.081-.295.195-.578.303-.864.195-.472.436-.924.74-1.334.176-.282.439-.515.61-.809zm-2.819.134L38.42 14.01a1.83 1.83 0 01-2.446.745c-.878-.452-1.197-1.569-.745-2.446a2 2 0 01.745-.745zm.16-2.819a11.23 11.23 0 01-.771.638c-.49.34-1.008.652-1.581.832-.469.208-.978.308-1.484.387-.373.019-.736.106-1.112.084-.525.01-1.054-.003-1.566-.128-.563-.05-1.082-.293-1.612-.473-.832-.31-1.33-1.285-1.087-2.14.225-.892 1.211-1.49 2.107-1.28.45.09.836.38 1.111.738.274.272.54.558.89.73.347.243.713.455 1.117.586.428.163.87.291 1.329.322.578.108 1.18.056 1.755-.03.315-.026.605-.176.904-.266zm3.377.612a1.33 1.33 0 01-1.33-1.33 1.33 1.33 0 011.33-1.33 1.33 1.33 0 011.33 1.33 1.33 1.33 0 01-1.33 1.33zM41.439 44.11c-.315-.065-.614-.192-.93-.24-.395-.037-.796-.11-1.197-.083a5.959 5.959 0 00-1.664.287c-.405.166-.835.303-1.187.577-.358.225-.724.456-.994.788-.222.222-.42.483-.718.614-.748.4-1.758.164-2.242-.536-.515-.663-.47-1.69.131-2.285.374-.414.936-.525 1.433-.717.513-.195 1.06-.238 1.599-.316.442 0 .885-.015 1.326.008.472.073.956.115 1.421.235.295.081.578.195.864.303.472.195.924.436 1.334.74.282.177.515.439.809.61zm-.133-2.819L35.99 38.42a1.83 1.83 0 01-.745-2.446c.452-.878 1.569-1.197 2.446-.745a2 2 0 01.745.745zm2.819.16a11.223 11.223 0 01-.638-.771c-.34-.49-.652-1.008-.832-1.581-.208-.469-.308-.978-.387-1.484-.019-.373-.106-.736-.084-1.112-.01-.525.003-1.054.128-1.566.05-.563.293-1.082.473-1.612.31-.832 1.285-1.33 2.14-1.087.892.225 1.49 1.211 1.28 2.107-.09.45-.38.836-.738 1.111-.272.274-.558.54-.73.89-.243.347-.455.713-.586 1.117-.163.428-.291.87-.322 1.329-.108.578-.056 1.18.03 1.755.026.315.176.605.266.904zm-.612 3.377a1.33 1.33 0 011.33-1.33 1.33 1.33 0 011.33 1.33 1.33 1.33 0 01-1.33 1.33 1.33 1.33 0 01-1.33-1.33zM5.89 41.439c.065-.315.192-.614.24-.93.037-.395.11-.796.083-1.197a5.955 5.955 0 00-.287-1.664c-.166-.405-.303-.835-.577-1.187-.225-.358-.456-.724-.788-.994-.222-.222-.483-.42-.614-.718-.4-.748-.164-1.758.536-2.242.663-.515 1.69-.47 2.285.131.414.374.525.936.717 1.433.195.513.238 1.06.316 1.599 0 .442.015.885-.008 1.326-.073.472-.115.956-.235 1.421-.081.295-.195.578-.303.864a6.282 6.282 0 01-.74 1.334c-.176.282-.439.515-.61.809zm2.819-.133l2.871-5.317a1.83 1.83 0 012.446-.745c.878.452 1.197 1.569.745 2.446a2 2 0 01-.745.745zm-.16 2.819c.247-.226.507-.437.771-.638.49-.34 1.008-.652 1.581-.832.469-.208.978-.308 1.484-.387.373-.019.736-.106 1.112-.084.525-.01 1.054.003 1.566.128.563.05 1.082.293 1.612.473.832.31 1.33 1.285 1.087 2.14-.225.892-1.211 1.49-2.107 1.28-.45-.09-.836-.38-1.111-.738-.274-.272-.54-.559-.89-.73-.347-.243-.713-.455-1.117-.586-.428-.163-.87-.291-1.329-.322-.578-.108-1.18-.056-1.755.03-.315.026-.605.176-.904.266zm-3.377-.612a1.33 1.33 0 011.33 1.33 1.33 1.33 0 01-1.33 1.33 1.33 1.33 0 01-1.33-1.33 1.33 1.33 0 011.33-1.33zM8.561 5.89c.315.065.614.192.93.24.395.037.796.11 1.197.083a5.959 5.959 0 001.664-.288c.405-.165.835-.302 1.187-.576.358-.225.724-.456.994-.788.222-.222.42-.483.718-.614.748-.4 1.758-.164 2.242.536.515.663.47 1.69-.131 2.285-.374.414-.936.525-1.433.717-.513.195-1.06.238-1.599.316-.442 0-.885.015-1.326-.008-.472-.073-.956-.115-1.421-.235-.295-.081-.578-.195-.864-.303a6.281 6.281 0 01-1.334-.74c-.282-.177-.515-.439-.809-.61zm.133 2.819l5.317 2.871a1.83 1.83 0 01.745 2.446c-.452.878-1.569 1.197-2.446.745a2 2 0 01-.745-.745zm-2.819-.16c.226.247.437.507.638.771.34.49.652 1.008.832 1.581.208.469.308.978.387 1.484.019.373.106.736.084 1.112.01.525-.003 1.054-.128 1.566-.05.563-.293 1.082-.473 1.612-.31.832-1.285 1.33-2.14 1.087-.892-.225-1.49-1.211-1.28-2.107.09-.45.38-.836.738-1.111.272-.274.558-.54.73-.89.243-.347.455-.713.586-1.117.163-.428.291-.87.322-1.329.108-.578.056-1.18-.03-1.755-.026-.315-.176-.605-.266-.904zm.612-3.377a1.33 1.33 0 01-1.33 1.33 1.33 1.33 0 01-1.33-1.33 1.33 1.33 0 011.33-1.33 1.33 1.33 0 011.33 1.33zm22.515 22.552c2.052-.142 2.476-1.875 2.476-2.724 0-.849-.46-2.582-2.476-2.724C26.951 22.135 24.97 25 24.97 25s2.016 2.83 4.032 2.724zm-6.756 1.308c.142 2.052 1.875 2.476 2.724 2.476.849 0 2.582-.46 2.724-2.476C27.835 26.981 24.97 25 24.97 25s-2.83 2.016-2.724 4.032zm-1.308-6.756c-2.052.142-2.476 1.875-2.476 2.724 0 .849.46 2.582 2.476 2.724C22.989 27.865 24.97 25 24.97 25s-2.016-2.83-4.032-2.724zm6.756-1.308c-.142-2.052-1.875-2.476-2.724-2.476-.849 0-2.582.46-2.724 2.476C22.105 23.019 24.97 25 24.97 25s2.83-2.016 2.724-4.032z' stroke='none' fill='white'/></svg>",
|
"svg": "<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50'><path d='M44.11 8.56c-.065.316-.192.615-.24.931-.037.395-.11.796-.083 1.197.016.564.113 1.127.287 1.664.166.405.303.835.577 1.187.225.358.456.724.788.994.222.222.483.42.614.718.4.748.164 1.758-.536 2.242-.663.515-1.69.47-2.285-.131-.414-.374-.525-.936-.717-1.433-.195-.513-.238-1.06-.316-1.599 0-.442-.015-.886.008-1.327.073-.471.115-.955.235-1.42.081-.295.195-.578.303-.864.195-.472.436-.924.74-1.334.176-.282.439-.515.61-.809zm-2.819.134L38.42 14.01a1.83 1.83 0 01-2.446.745c-.878-.452-1.197-1.569-.745-2.446a2 2 0 01.745-.745zm.16-2.819a11.23 11.23 0 01-.771.638c-.49.34-1.008.652-1.581.832-.469.208-.978.308-1.484.387-.373.019-.736.106-1.112.084-.525.01-1.054-.003-1.566-.128-.563-.05-1.082-.293-1.612-.473-.832-.31-1.33-1.285-1.087-2.14.225-.892 1.211-1.49 2.107-1.28.45.09.836.38 1.111.738.274.272.54.558.89.73.347.243.713.455 1.117.586.428.163.87.291 1.329.322.578.108 1.18.056 1.755-.03.315-.026.605-.176.904-.266zm3.377.612a1.33 1.33 0 01-1.33-1.33 1.33 1.33 0 011.33-1.33 1.33 1.33 0 011.33 1.33 1.33 1.33 0 01-1.33 1.33zM41.439 44.11c-.315-.065-.614-.192-.93-.24-.395-.037-.796-.11-1.197-.083a5.959 5.959 0 00-1.664.287c-.405.166-.835.303-1.187.577-.358.225-.724.456-.994.788-.222.222-.42.483-.718.614-.748.4-1.758.164-2.242-.536-.515-.663-.47-1.69.131-2.285.374-.414.936-.525 1.433-.717.513-.195 1.06-.238 1.599-.316.442 0 .885-.015 1.326.008.472.073.956.115 1.421.235.295.081.578.195.864.303.472.195.924.436 1.334.74.282.177.515.439.809.61zm-.133-2.819L35.99 38.42a1.83 1.83 0 01-.745-2.446c.452-.878 1.569-1.197 2.446-.745a2 2 0 01.745.745zm2.819.16a11.223 11.223 0 01-.638-.771c-.34-.49-.652-1.008-.832-1.581-.208-.469-.308-.978-.387-1.484-.019-.373-.106-.736-.084-1.112-.01-.525.003-1.054.128-1.566.05-.563.293-1.082.473-1.612.31-.832 1.285-1.33 2.14-1.087.892.225 1.49 1.211 1.28 2.107-.09.45-.38.836-.738 1.111-.272.274-.558.54-.73.89-.243.347-.455.713-.586 1.117-.163.428-.291.87-.322 1.329-.108.578-.056 1.18.03 1.755.026.315.176.605.266.904zm-.612 3.377a1.33 1.33 0 011.33-1.33 1.33 1.33 0 011.33 1.33 1.33 1.33 0 01-1.33 1.33 1.33 1.33 0 01-1.33-1.33zM5.89 41.439c.065-.315.192-.614.24-.93.037-.395.11-.796.083-1.197a5.955 5.955 0 00-.287-1.664c-.166-.405-.303-.835-.577-1.187-.225-.358-.456-.724-.788-.994-.222-.222-.483-.42-.614-.718-.4-.748-.164-1.758.536-2.242.663-.515 1.69-.47 2.285.131.414.374.525.936.717 1.433.195.513.238 1.06.316 1.599 0 .442.015.885-.008 1.326-.073.472-.115.956-.235 1.421-.081.295-.195.578-.303.864a6.282 6.282 0 01-.74 1.334c-.176.282-.439.515-.61.809zm2.819-.133l2.871-5.317a1.83 1.83 0 012.446-.745c.878.452 1.197 1.569.745 2.446a2 2 0 01-.745.745zm-.16 2.819c.247-.226.507-.437.771-.638.49-.34 1.008-.652 1.581-.832.469-.208.978-.308 1.484-.387.373-.019.736-.106 1.112-.084.525-.01 1.054.003 1.566.128.563.05 1.082.293 1.612.473.832.31 1.33 1.285 1.087 2.14-.225.892-1.211 1.49-2.107 1.28-.45-.09-.836-.38-1.111-.738-.274-.272-.54-.559-.89-.73-.347-.243-.713-.455-1.117-.586-.428-.163-.87-.291-1.329-.322-.578-.108-1.18-.056-1.755.03-.315.026-.605.176-.904.266zm-3.377-.612a1.33 1.33 0 011.33 1.33 1.33 1.33 0 01-1.33 1.33 1.33 1.33 0 01-1.33-1.33 1.33 1.33 0 011.33-1.33zM8.561 5.89c.315.065.614.192.93.24.395.037.796.11 1.197.083a5.959 5.959 0 001.664-.288c.405-.165.835-.302 1.187-.576.358-.225.724-.456.994-.788.222-.222.42-.483.718-.614.748-.4 1.758-.164 2.242.536.515.663.47 1.69-.131 2.285-.374.414-.936.525-1.433.717-.513.195-1.06.238-1.599.316-.442 0-.885.015-1.326-.008-.472-.073-.956-.115-1.421-.235-.295-.081-.578-.195-.864-.303a6.281 6.281 0 01-1.334-.74c-.282-.177-.515-.439-.809-.61zm.133 2.819l5.317 2.871a1.83 1.83 0 01.745 2.446c-.452.878-1.569 1.197-2.446.745a2 2 0 01-.745-.745zm-2.819-.16c.226.247.437.507.638.771.34.49.652 1.008.832 1.581.208.469.308.978.387 1.484.019.373.106.736.084 1.112.01.525-.003 1.054-.128 1.566-.05.563-.293 1.082-.473 1.612-.31.832-1.285 1.33-2.14 1.087-.892-.225-1.49-1.211-1.28-2.107.09-.45.38-.836.738-1.111.272-.274.558-.54.73-.89.243-.347.455-.713.586-1.117.163-.428.291-.87.322-1.329.108-.578.056-1.18-.03-1.755-.026-.315-.176-.605-.266-.904zm.612-3.377a1.33 1.33 0 01-1.33 1.33 1.33 1.33 0 01-1.33-1.33 1.33 1.33 0 011.33-1.33 1.33 1.33 0 011.33 1.33zm22.515 22.552c2.052-.142 2.476-1.875 2.476-2.724 0-.849-.46-2.582-2.476-2.724C26.951 22.135 24.97 25 24.97 25s2.016 2.83 4.032 2.724zm-6.756 1.308c.142 2.052 1.875 2.476 2.724 2.476.849 0 2.582-.46 2.724-2.476C27.835 26.981 24.97 25 24.97 25s-2.83 2.016-2.724 4.032zm-1.308-6.756c-2.052.142-2.476 1.875-2.476 2.724 0 .849.46 2.582 2.476 2.724C22.989 27.865 24.97 25 24.97 25s-2.016-2.83-4.032-2.724zm6.756-1.308c-.142-2.052-1.875-2.476-2.724-2.476-.849 0-2.582.46-2.724 2.476C22.105 23.019 24.97 25 24.97 25s2.83-2.016 2.724-4.032z' stroke='none' fill='white'/></svg>",
|
||||||
"focus": false,
|
"focus": false,
|
||||||
|
@ -4041,29 +4044,29 @@ let allLevels=[
|
||||||
"",
|
"",
|
||||||
null,
|
null,
|
||||||
"",
|
"",
|
||||||
"#e32119",
|
|
||||||
"#F44848",
|
"#F44848",
|
||||||
"#F44848",
|
"#F44848",
|
||||||
"#ab0c0c",
|
"#F44848",
|
||||||
|
"#F44848",
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
null,
|
null,
|
||||||
"",
|
"",
|
||||||
"#e32119",
|
"#F44848",
|
||||||
"#e32119",
|
"#F44848",
|
||||||
"#ab0c0c",
|
"#F44848",
|
||||||
"#ab0c0c",
|
"#F44848",
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
null,
|
null,
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"#e32119",
|
"#F44848",
|
||||||
"#ab0c0c",
|
"#F44848",
|
||||||
"",
|
"",
|
||||||
"#A1F051",
|
"#618227",
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
null,
|
null,
|
||||||
|
@ -4072,7 +4075,7 @@ let allLevels=[
|
||||||
"",
|
"",
|
||||||
"#618227",
|
"#618227",
|
||||||
"",
|
"",
|
||||||
"#A1F051",
|
"#618227",
|
||||||
"#618227",
|
"#618227",
|
||||||
"",
|
"",
|
||||||
null,
|
null,
|
||||||
|
@ -4239,7 +4242,7 @@ let allLevels=[
|
||||||
"#F44848",
|
"#F44848",
|
||||||
"#F44848",
|
"#F44848",
|
||||||
"#F44848",
|
"#F44848",
|
||||||
"#A1F051",
|
"#F44848",
|
||||||
"#618227",
|
"#618227",
|
||||||
"",
|
"",
|
||||||
"#F44848",
|
"#F44848",
|
||||||
|
@ -4253,14 +4256,14 @@ let allLevels=[
|
||||||
"black",
|
"black",
|
||||||
"#F44848",
|
"#F44848",
|
||||||
"#F44848",
|
"#F44848",
|
||||||
"#A1F051",
|
"#F44848",
|
||||||
"#A1F051",
|
"#F44848",
|
||||||
"#618227",
|
"#618227",
|
||||||
"",
|
"",
|
||||||
"#618227",
|
"#618227",
|
||||||
"#618227",
|
"#F44848",
|
||||||
"#A1F051",
|
"#F44848",
|
||||||
"#A1F051",
|
"#F44848",
|
||||||
"#618227",
|
"#618227",
|
||||||
"#618227",
|
"#618227",
|
||||||
"",
|
"",
|
||||||
|
@ -4453,79 +4456,79 @@ let allLevels=[
|
||||||
"#E67070",
|
"#E67070",
|
||||||
"#E67070"
|
"#E67070"
|
||||||
],
|
],
|
||||||
"svg": "<svg width=\"100\" height=\"100\" version=\"1.1\" viewBox=\"0 0 26.458 26.458\" xmlns=\"http://www.w3.org/2000/svg\">\n <g transform=\"matrix(.4134 0 0 .4134 -28.686 7.4041)\" fill=\"#fff\" stroke-width=\".08052\">\n <path d=\"m85.464 15.71c.46125-2.7744 1.3323-5.2725 2.5579-7.3954 1.3141-2.2761 3.0349-4.1229 5.0932-5.4239.05426-.032181.10625-.06363.16319-.090256l1.0546-.51771-.58764-.33928c-4.1341-2.3868-9.4256-.99284-11.794 3.1086-2.3679 4.1014-.92853 9.3794 3.2056 11.766l.24993.1443.03571-1.0307c.0013-.07451.0096-.14715.02097-.22192z\"/>\n <path d=\"m104.59 31.947 6.8094 1.9479c.89353.25602 1.8277-.24198 2.1101-1.1263l2.0498-6.3916c.77562.29904 1.6676.02855 2.0962-.71374.42773-.74084.21592-1.6486-.43073-2.1707l4.5104-4.971c.6237-.68524.58797-1.7432-.0797-2.3905l-5.0916-4.9231c-.56009-.54158-1.417-.63764-2.0855-.23217l-2.5199 1.5303c-.11453-.07652-.21-.16882-.3305-.23839l-13.71-7.9155-3.0424 1.4905c-3.0763 1.9787-5.2047 5.6412-6.0028 10.322l-.09615 2.7432 14.263 8.235c.1205.06957.24898.10807.37232.16935l-.0659 2.9451c-.017.78162.49475 1.4757 1.2438 1.69zm9.4614-10.348.0773-.13389c.20183-.34957.35541-.71518.48767-1.0851.0343-.09724.0692-.1921.0989-.28805.10439-.34241.18608-.68994.23264-1.0419.0185-.12816.0208-.25579.0316-.38447.0175-.23981.0234-.48037.0164-.72241-.006-.15197-.003-.30344-.0188-.4552-.0304-.30121-.0832-.60141-.15389-.89812-.0443-.1843-.0998-.36306-.15821-.54358-.0521-.15702-.11304-.30923-.17539-.46229-.0642-.16009-.11449-.32393-.19135-.4794l.83065-.50422 2.9414 2.8447-3.8536 4.2493-.16527-.09542zm-7.2196 6.4376c.17837-.01006.35094-.0513.52555-.07545.15668-.02063.31129-.04444.46484-.07675.18939-.03942.37814-.08115.56309-.13708.28995-.08653.57313-.18876.84685-.31244.14247-.06456.27485-.14285.41324-.21765.20907-.11137.41033-.2332.60695-.36764.10837-.0743.2186-.14157.3236-.22376.27921-.21563.53853-.45866.78283-.72028.0691-.07511.13386-.15284.20087-.23111.2543-.29947.49403-.61525.69501-.96336l.001-.0017.0782-.13535.16512.09534-1.754 5.4635-3.9343-1.125z\"/>\n </g>\n</svg>\n",
|
"svg": "<svg width=\"50\" height=\"50\" version=\"1.1\" viewBox=\"0 0 50 50\" xmlns=\"http://www.w3.org/2000/svg\"> <g transform=\"matrix(.4134 0 0 .4134 -28.686 7.4041)\" fill=\"#fff\" stroke-width=\".08052\"> <path d=\"m85.464 15.71c.46125-2.7744 1.3323-5.2725 2.5579-7.3954 1.3141-2.2761 3.0349-4.1229 5.0932-5.4239.05426-.032181.10625-.06363.16319-.090256l1.0546-.51771-.58764-.33928c-4.1341-2.3868-9.4256-.99284-11.794 3.1086-2.3679 4.1014-.92853 9.3794 3.2056 11.766l.24993.1443.03571-1.0307c.0013-.07451.0096-.14715.02097-.22192z\"/> <path d=\"m104.59 31.947 6.8094 1.9479c.89353.25602 1.8277-.24198 2.1101-1.1263l2.0498-6.3916c.77562.29904 1.6676.02855 2.0962-.71374.42773-.74084.21592-1.6486-.43073-2.1707l4.5104-4.971c.6237-.68524.58797-1.7432-.0797-2.3905l-5.0916-4.9231c-.56009-.54158-1.417-.63764-2.0855-.23217l-2.5199 1.5303c-.11453-.07652-.21-.16882-.3305-.23839l-13.71-7.9155-3.0424 1.4905c-3.0763 1.9787-5.2047 5.6412-6.0028 10.322l-.09615 2.7432 14.263 8.235c.1205.06957.24898.10807.37232.16935l-.0659 2.9451c-.017.78162.49475 1.4757 1.2438 1.69zm9.4614-10.348.0773-.13389c.20183-.34957.35541-.71518.48767-1.0851.0343-.09724.0692-.1921.0989-.28805.10439-.34241.18608-.68994.23264-1.0419.0185-.12816.0208-.25579.0316-.38447.0175-.23981.0234-.48037.0164-.72241-.006-.15197-.003-.30344-.0188-.4552-.0304-.30121-.0832-.60141-.15389-.89812-.0443-.1843-.0998-.36306-.15821-.54358-.0521-.15702-.11304-.30923-.17539-.46229-.0642-.16009-.11449-.32393-.19135-.4794l.83065-.50422 2.9414 2.8447-3.8536 4.2493-.16527-.09542zm-7.2196 6.4376c.17837-.01006.35094-.0513.52555-.07545.15668-.02063.31129-.04444.46484-.07675.18939-.03942.37814-.08115.56309-.13708.28995-.08653.57313-.18876.84685-.31244.14247-.06456.27485-.14285.41324-.21765.20907-.11137.41033-.2332.60695-.36764.10837-.0743.2186-.14157.3236-.22376.27921-.21563.53853-.45866.78283-.72028.0691-.07511.13386-.15284.20087-.23111.2543-.29947.49403-.61525.69501-.96336l.001-.0017.0782-.13535.16512.09534-1.754 5.4635-3.9343-1.125z\"/> </g></svg>",
|
||||||
"color": "",
|
"color": "",
|
||||||
"focus": false,
|
"focus": false,
|
||||||
"squared": false
|
"squared": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Sunrise",
|
"name": "Ocean Sunrise",
|
||||||
"size": 8,
|
"size": 8,
|
||||||
"bricks": [
|
"bricks": [
|
||||||
"",
|
"#F44848",
|
||||||
"",
|
"#F44848",
|
||||||
"",
|
"#F44848",
|
||||||
"",
|
"#F44848",
|
||||||
"",
|
"#F44848",
|
||||||
"",
|
"#F44848",
|
||||||
"",
|
"#F44848",
|
||||||
"",
|
"#F44848",
|
||||||
"",
|
"#F44848",
|
||||||
"",
|
"#F44848",
|
||||||
"",
|
"#F44848",
|
||||||
"#e32119",
|
|
||||||
"#e32119",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"#e32119",
|
|
||||||
"#ffd300",
|
"#ffd300",
|
||||||
"#ffd300",
|
"#ffd300",
|
||||||
"#e32119",
|
"#F44848",
|
||||||
"",
|
"#F44848",
|
||||||
"",
|
"#F44848",
|
||||||
"",
|
"#F44848",
|
||||||
"#e32119",
|
"#F44848",
|
||||||
|
"#ffd300",
|
||||||
|
"#ffd300",
|
||||||
|
"#ffd300",
|
||||||
|
"#ffd300",
|
||||||
|
"#F44848",
|
||||||
|
"#F44848",
|
||||||
|
"#F44848",
|
||||||
|
"#ffd300",
|
||||||
"#ffd300",
|
"#ffd300",
|
||||||
"white",
|
"white",
|
||||||
"white",
|
"white",
|
||||||
"#ffd300",
|
"#ffd300",
|
||||||
"#e32119",
|
"#ffd300",
|
||||||
"",
|
"#F44848",
|
||||||
"#6262EA",
|
|
||||||
"#6262EA",
|
"#6262EA",
|
||||||
"#5DA3EA",
|
"#5DA3EA",
|
||||||
|
"#5DA3EA",
|
||||||
"#5BECEC",
|
"#5BECEC",
|
||||||
"#5BECEC",
|
"#5BECEC",
|
||||||
"#5DA3EA",
|
"#5DA3EA",
|
||||||
|
"#5DA3EA",
|
||||||
|
"#6262EA",
|
||||||
|
"#6262EA",
|
||||||
|
"#6262EA",
|
||||||
|
"#5DA3EA",
|
||||||
|
"#5DA3EA",
|
||||||
|
"#5DA3EA",
|
||||||
|
"#5DA3EA",
|
||||||
|
"#6262EA",
|
||||||
"#6262EA",
|
"#6262EA",
|
||||||
"#6262EA",
|
"#6262EA",
|
||||||
"",
|
|
||||||
"#6262EA",
|
"#6262EA",
|
||||||
"#6262EA",
|
"#6262EA",
|
||||||
"#5DA3EA",
|
"#5DA3EA",
|
||||||
"#5DA3EA",
|
"#5DA3EA",
|
||||||
"#6262EA",
|
"#6262EA",
|
||||||
"#6262EA",
|
"#6262EA",
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"#6262EA",
|
"#6262EA",
|
||||||
"#6262EA",
|
"#6262EA",
|
||||||
"#6262EA",
|
"#6262EA",
|
||||||
"#6262EA",
|
"#6262EA",
|
||||||
"",
|
"#6262EA",
|
||||||
"",
|
"#6262EA",
|
||||||
"",
|
"#6262EA",
|
||||||
"",
|
"#6262EA",
|
||||||
"",
|
"#6262EA"
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
""
|
|
||||||
],
|
],
|
||||||
"svg": "<svg xmlns='http://www.w3.org/2000/svg' width='70' height='8'><path d='M-.02 22c8.373 0 11.938-4.695 16.32-9.662C20.785 7.258 25.728 2 35 2c9.272 0 14.215 5.258 18.7 10.338C58.082 17.305 61.647 22 70.02 22M-.02 14.002C8.353 14 11.918 9.306 16.3 4.339 20.785-.742 25.728-6 35-6 44.272-6 49.215-.742 53.7 4.339c4.382 4.967 7.947 9.661 16.32 9.664M70 6.004c-8.373-.001-11.918-4.698-16.3-9.665C49.215-8.742 44.272-14 35-14c-9.272 0-14.215 5.258-18.7 10.339C11.918 1.306 8.353 6-.02 6.002' stroke-width='1' stroke='white' fill='none'/></svg>",
|
"svg": "<svg xmlns='http://www.w3.org/2000/svg' width='70' height='8'><path d='M-.02 22c8.373 0 11.938-4.695 16.32-9.662C20.785 7.258 25.728 2 35 2c9.272 0 14.215 5.258 18.7 10.338C58.082 17.305 61.647 22 70.02 22M-.02 14.002C8.353 14 11.918 9.306 16.3 4.339 20.785-.742 25.728-6 35-6 44.272-6 49.215-.742 53.7 4.339c4.382 4.967 7.947 9.661 16.32 9.664M70 6.004c-8.373-.001-11.918-4.698-16.3-9.665C49.215-8.742 44.272-14 35-14c-9.272 0-14.215 5.258-18.7 10.339C11.918 1.306 8.353 6-.02 6.002' stroke-width='1' stroke='white' fill='none'/></svg>",
|
||||||
"focus": false,
|
"focus": false,
|
||||||
|
@ -6002,7 +6005,8 @@ let allLevels=[
|
||||||
"",
|
"",
|
||||||
""
|
""
|
||||||
],
|
],
|
||||||
"svg": ""
|
"svg": "",
|
||||||
|
"focus": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Pig",
|
"name": "Pig",
|
||||||
|
@ -6774,5 +6778,172 @@ let allLevels=[
|
||||||
],
|
],
|
||||||
"svg": "",
|
"svg": "",
|
||||||
"focus": false
|
"focus": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Baby Dog",
|
||||||
|
"size": 8,
|
||||||
|
"bricks": [
|
||||||
|
"",
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
"white",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"#e1c8b4",
|
||||||
|
"#e1c8b4",
|
||||||
|
"#e1c8b4",
|
||||||
|
"#e1c8b4",
|
||||||
|
"white",
|
||||||
|
"white",
|
||||||
|
"white",
|
||||||
|
"white",
|
||||||
|
"#e1c8b4",
|
||||||
|
"#e1c8b4",
|
||||||
|
"white",
|
||||||
|
"#e1c8b4",
|
||||||
|
"white",
|
||||||
|
"white",
|
||||||
|
"white",
|
||||||
|
"#e1c8b4",
|
||||||
|
"#333",
|
||||||
|
"white",
|
||||||
|
"#e1c8b4",
|
||||||
|
"#333",
|
||||||
|
"#e1c8b4",
|
||||||
|
"#e1c8b4",
|
||||||
|
"#e1c8b4",
|
||||||
|
"#e1c8b4",
|
||||||
|
"white",
|
||||||
|
"white",
|
||||||
|
"white",
|
||||||
|
"white",
|
||||||
|
"#e1c8b4",
|
||||||
|
"#e1c8b4",
|
||||||
|
null,
|
||||||
|
"#e1c8b4",
|
||||||
|
"white",
|
||||||
|
"#333",
|
||||||
|
"#333",
|
||||||
|
"white",
|
||||||
|
"#e1c8b4",
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
"#e1c8b4",
|
||||||
|
"white",
|
||||||
|
"white",
|
||||||
|
"white",
|
||||||
|
"white",
|
||||||
|
"#e1c8b4",
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
"white",
|
||||||
|
"white"
|
||||||
|
],
|
||||||
|
"svg": "",
|
||||||
|
"focus": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Cute dog",
|
||||||
|
"size": 9,
|
||||||
|
"bricks": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
"",
|
||||||
|
"#F29E4A",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"#F29E4A",
|
||||||
|
"",
|
||||||
|
"#F29E4A",
|
||||||
|
"#F29E4A",
|
||||||
|
"#F29E4A",
|
||||||
|
"white",
|
||||||
|
"white",
|
||||||
|
"white",
|
||||||
|
"#F29E4A",
|
||||||
|
"#F29E4A",
|
||||||
|
"#F29E4A",
|
||||||
|
"#F29E4A",
|
||||||
|
"#F29E4A",
|
||||||
|
"white",
|
||||||
|
"white",
|
||||||
|
"white",
|
||||||
|
"white",
|
||||||
|
"white",
|
||||||
|
"#F29E4A",
|
||||||
|
"#F29E4A",
|
||||||
|
"#F29E4A",
|
||||||
|
"#F29E4A",
|
||||||
|
"#e1c8b4",
|
||||||
|
"white",
|
||||||
|
"white",
|
||||||
|
"white",
|
||||||
|
"white",
|
||||||
|
"#F29E4A",
|
||||||
|
"#F29E4A",
|
||||||
|
"",
|
||||||
|
"#e1c8b4",
|
||||||
|
"black",
|
||||||
|
"#e1c8b4",
|
||||||
|
"white",
|
||||||
|
"white",
|
||||||
|
"black",
|
||||||
|
"white",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"#e1c8b4",
|
||||||
|
"black",
|
||||||
|
"#e1c8b4",
|
||||||
|
"white",
|
||||||
|
"white",
|
||||||
|
"black",
|
||||||
|
"white",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"#e1c8b4",
|
||||||
|
"white",
|
||||||
|
"black",
|
||||||
|
"white",
|
||||||
|
"white",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"white",
|
||||||
|
"#ab0c0c",
|
||||||
|
"white",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"svg": "",
|
||||||
|
"focus": false
|
||||||
}
|
}
|
||||||
]
|
]
|
|
@ -138,7 +138,12 @@ document.getElementById('levels').addEventListener('change', e => {
|
||||||
level.svg = ''
|
level.svg = ''
|
||||||
updateLevelBackground(levelIndex)
|
updateLevelBackground(levelIndex)
|
||||||
}else if( e.target.getAttribute('type') === 'checkbox' && e.target.hasAttribute('data-field')){
|
}else if( e.target.getAttribute('type') === 'checkbox' && e.target.hasAttribute('data-field')){
|
||||||
level[e.target.getAttribute('data-field')] = !!e.target.checked
|
const field=e.target.getAttribute('data-field')
|
||||||
|
if(field==='focus'){
|
||||||
|
allLevels.forEach(l=>l.focus=false)
|
||||||
|
}
|
||||||
|
level[field] = !!e.target.checked
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
save()
|
save()
|
||||||
|
|
BIN
gifs/1.gif
Normal file
BIN
gifs/1.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.5 MiB |
Loading…
Add table
Add a link
Reference in a new issue