User prompt
Please fix the bug: 'Error: Invalid value. Only literals or 1-level deep objects/arrays containing literals are allowed.' in or related to this line: 'storage.leaderboard = validFlatLeaderboard;' Line Number: 426
User prompt
Please fix the bug: 'Error: Invalid value. Only literals or 1-level deep objects/arrays containing literals are allowed.' in or related to this line: 'storage.leaderboard = flatLeaderboard;' Line Number: 405
User prompt
Please fix the bug: 'Error: Invalid value. Only literals or 1-level deep objects/arrays containing literals are allowed.' in or related to this line: 'storage.leaderboard = finalLeaderboard;' Line Number: 396 ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Compilation error[L374]: TypeError: storage.set is not a function hatasını ve Compilation error[L374]: Error: Invalid value. Only literals or 1-level deep objects/arrays containing literals are allowed. hatasını çözümle
User prompt
Please fix the bug: 'TypeError: storage.set is not a function' in or related to this line: 'storage.set("leaderboard", safeLeaderboard);' Line Number: 374
User prompt
Compilation error[L334]: Error: Invalid value. Only literals or 1-level deep objects/arrays containing literals are allowed. hatasını çözüme kavuştur.
User prompt
Please fix the bug: 'Error: Invalid value. Only literals or 1-level deep objects/arrays containing literals are allowed.' in or related to this line: 'storage.leaderboard = safeLeaderboard;' Line Number: 363
User prompt
Please fix the bug: 'Error: Invalid value. Only literals or 1-level deep objects/arrays containing literals are allowed.' in or related to this line: 'leaderboard.push({' Line Number: 334 ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
oyun başlangıcında oyundan hariç bir usernama ve Ok butonu olan bir inputbox aç. kullanıcı adını yazan oyuncunun skor bilgisini bir dosyada sakla. en yüksekten en aza doğru ilk 5 skoru oyunun sonunda yine harici bir pencerede liste halide numaralandırarak göster. ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Compilation error[L378]: ReferenceError: showLeaderboard is not defined hatasını çözümle.
User prompt
Please fix the bug: 'ReferenceError: showLeaderboard is not defined' in or related to this line: 'showLeaderboard();' Line Number: 378
User prompt
kodlardan leaderboard ile ilgili herşeyi kaldır
User prompt
Please fix the bug: 'Error: Invalid value. Only literals or 1-level deep objects/arrays containing literals are allowed.' in or related to this line: 'storage.leaderboard = leaderboardToStoreLiteralsSafeFlatTop10SafeFinalSafeFinalSafe;' Line Number: 944 ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Please fix the bug: 'TypeError: storage.set is not a function' in or related to this line: 'storage.set("leaderboard", leaderboardToStoreLiteralsSafeFlatTop10SafeFinalSafeFinalSafe);' Line Number: 944 ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Please fix the bug: 'Error: Invalid value. Only literals or 1-level deep objects/arrays containing literals are allowed.' in or related to this line: 'storage.leaderboard = leaderboardToStoreLiteralsSafeFlatTop10SafeFinalSafeFinalSafe;' Line Number: 944
User prompt
Please fix the bug: 'TypeError: storage.set is not a function' in or related to this line: 'storage.set("leaderboard", leaderboardToStoreLiteralsSafeFlatTop10SafeFinalSafeFinalSafe);' Line Number: 944 ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
oyun bitince meydana gelen hatayı çöz
User prompt
Please fix the bug: 'Error: Invalid value. Only literals or 1-level deep objects/arrays containing literals are allowed.' in or related to this line: 'storage.leaderboard = leaderboardToStoreLiteralsSafeFlatTop10SafeFinalSafeFinal;' Line Number: 935 ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Please fix the bug: 'Error: Invalid value. Only literals or 1-level deep objects/arrays containing literals are allowed.' in or related to this line: 'storage.leaderboard = leaderboardToStoreLiteralsSafeFlatTop10SafeFinalSafe;' Line Number: 926 ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Please fix the bug: 'Error: Invalid value. Only literals or 1-level deep objects/arrays containing literals are allowed.' in or related to this line: 'storage.leaderboard = leaderboardToStoreLiteralsSafeFlatTop10SafeFinal;' Line Number: 917 ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Please fix the bug: 'Error: Invalid value. Only literals or 1-level deep objects/arrays containing literals are allowed.' in or related to this line: 'storage.leaderboard = leaderboardToStoreLiteralsSafeFlatTop10Safe;' Line Number: 908 ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Please fix the bug: 'Error: Invalid value. Only literals or 1-level deep objects/arrays containing literals are allowed.' in or related to this line: 'storage.leaderboard = leaderboardToStoreLiteralsSafeFlatTop10;' Line Number: 899 ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Please fix the bug: 'Error: Invalid value. Only literals or 1-level deep objects/arrays containing literals are allowed.' in or related to this line: 'storage.leaderboard = leaderboardToStoreLiteralsSafeFlat.length > 10 ? leaderboardToStoreLiteralsSafeFlat.slice(0, 10) : leaderboardToStoreLiteralsSafeFlat;' Line Number: 891
User prompt
Please fix the bug: 'Error: Invalid value. Only literals or 1-level deep objects/arrays containing literals are allowed.' in or related to this line: 'storage.leaderboard = leaderboardToStoreLiteralsSafeFlat.length > 10 ? leaderboardToStoreLiteralsSafeFlat.slice(0, 10) : leaderboardToStoreLiteralsSafeFlat;' Line Number: 891 ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Please fix the bug: 'Error: Invalid value. Only literals or 1-level deep objects/arrays containing literals are allowed.' in or related to this line: 'storage.leaderboard = leaderboardToStoreLiteralsSafeFlat.slice(0, 10);' Line Number: 891 ↪💡 Consider importing and using the following plugins: @upit/storage.v1
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); var storage = LK.import("@upit/storage.v1"); /**** * Classes ****/ // Swatter class var Swatter = Container.expand(function () { var self = Container.call(this); // Swatter types and their point values var swatterTypes = [{ id: 'swatter_red', points: 50 }, { id: 'swatter_yellow', points: 35 }, { id: 'swatter_green', points: 20 }, { id: 'swatter_blue', points: 60 }]; // Randomly select a type var typeIndex = Math.floor(Math.random() * swatterTypes.length); self.type = swatterTypes[typeIndex]; self.points = self.type.points; // Attach asset var swatterAsset = self.attachAsset(self.type.id, { anchorX: 0.5, anchorY: 0.5 }); // Set initial position and speed self.x = 2048 + 120; // Start just off the right edge self.y = 200 + Math.floor(Math.random() * (2732 - 400)); self.speed = (12 + Math.random() * 6) * 0.75; // 25% slower // Allow scaleX to be set after creation for random length self.scaleX = 1; // For collision detection self.update = function () { self.x -= self.speed; }; return self; }); // Yumurta class (formerly Fly) var Yumurta = Container.expand(function () { var self = Container.call(this); var flyAsset = self.attachAsset('fly', { anchorX: 0.5, anchorY: 0.5 }); self.width = flyAsset.width; self.height = flyAsset.height; // Physics self.vy = 0; self.gravity = 1.2; self.lift = -28; // For touch controls self.flap = function () { self.vy = self.lift; }; // Update position self.update = function () { self.vy += self.gravity; self.y += self.vy; // Clamp to screen if (self.y < self.height / 2) { self.y = self.height / 2; self.vy = 0; } if (self.y > 2732 - self.height / 2) { self.y = 2732 - self.height / 2; self.vy = 0; } }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 // Initial background: black }); /**** * Game Code ****/ // (Leaderboard and username prompt logic removed) // Level config // Backgrounds: always black var levelCount = 100; var currentLevel = 1; var swatterInterval = 90; // ticks between swatters, stays constant var swatterSpeedBonus = 0; // stays constant // Score var scoreTxt = new Text2('0', { size: 120, fill: 0xFFFFFF }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // Level text var levelTxt = new Text2('Seviye 1', { size: 70, fill: 0xFFFFFF }); levelTxt.anchor.set(0.5, 0); LK.gui.top.addChild(levelTxt); levelTxt.y = 120; // Background node var bgNode = LK.getAsset('bg_forest', { anchorX: 0, anchorY: 0, x: 0, y: 0 }); bgNode.tint = 0x000000; game.addChild(bgNode); // Yumurta var fly = null; // Will be created after username is entered // Swatters array var swatters = []; // For touch controls var isTouching = false; // --- Ava: Fly stays in air for 5 seconds, then falls if not touched --- // Instruction message before game starts var instructionTxt = new Text2("Yumurta ilk 5 saniye havada kalır\nOnu düşürmemek için mouse ile tıklayın", { size: 90, fill: 0xffffff, align: "center" }); instructionTxt.anchor.set(0.5, 0.5); instructionTxt.x = 2048 / 2; instructionTxt.y = 2732 / 2; instructionTxt.alpha = 1; // Block game logic until instruction is gone or username entered var gameBlocked = true; // Show username prompt first, then show instruction, then fade out instruction var storedUsername = storage.username; if (typeof storedUsername === "string" && storedUsername.length > 0) { username = storedUsername.substring(0, 16); // Username already set, skip prompt if (!fly) { fly = new Yumurta(); game.addChild(fly); fly.x = 400; fly.y = 2732 / 2; } if (!instructionTxt.parent) game.addChild(instructionTxt); instructionTxt.alpha = 1; instructionTxt.x = 2048 / 2; instructionTxt.y = 2732 / 2; LK.setTimeout(function () { tween(instructionTxt, { alpha: 0 }, { duration: 700, easing: tween.easeOut, onFinish: function onFinish() { if (instructionTxt.parent) instructionTxt.parent.removeChild(instructionTxt); gameBlocked = false; flyStartTime = Date.now(); // Start fly grace period after message } }); }, 2000); } else { showUsernamePrompt(function () { // After username entered, create and show the egg (fly) if (!fly) { fly = new Yumurta(); game.addChild(fly); fly.x = 400; fly.y = 2732 / 2; } // After username entered, show instruction if (!instructionTxt.parent) game.addChild(instructionTxt); instructionTxt.alpha = 1; instructionTxt.x = 2048 / 2; instructionTxt.y = 2732 / 2; LK.setTimeout(function () { tween(instructionTxt, { alpha: 0 }, { duration: 700, easing: tween.easeOut, onFinish: function onFinish() { if (instructionTxt.parent) instructionTxt.parent.removeChild(instructionTxt); gameBlocked = false; flyStartTime = Date.now(); // Start fly grace period after message } }); }, 2000); }); } var flyStartTime = Date.now(); var flyGracePeriod = 5000; // ms var flyActive = false; // becomes true after first touch or after grace period var flyFell = false; // if fly has fallen var swatterRows = 6; // number of swatter rows per spawn var swatterRowYs = []; for (var r = 0; r < swatterRows; r++) { // Evenly space rows, avoid top/bottom 100px var minY = 100 + 60; var maxY = 2732 - 100 - 60; var rowY = minY + r * ((maxY - minY) / (swatterRows - 1)); swatterRowYs.push(rowY); } // For level progression var nextLevelScore = 100; var levelScoreStep = 110; // %10 daha yavaş seviye atlama // Set background for level function setBackgroundForLevel(level) { // Always keep background black, do not change or add any colored backgrounds // Remove old background if any if (bgNode && bgNode.parent) { bgNode.parent.removeChild(bgNode); } // Create a black background node bgNode = LK.getAsset('bg_forest', { anchorX: 0, anchorY: 0, x: 0, y: 0 }); bgNode.tint = 0x000000; game.addChildAt(bgNode, 0); } // Level up function levelUp() { currentLevel++; if (currentLevel > levelCount) { LK.showYouWin(); return; } setBackgroundForLevel(currentLevel); levelTxt.setText('Seviye ' + currentLevel); // Difficulty stays constant except for speed scaling after level 10 swatterInterval = 90; // After level 10, increase swatterSpeedBonus by 1% every 10 levels if (currentLevel > 10) { var speedupSteps = Math.floor((currentLevel - 1) / 10); swatterSpeedBonus = 0 * 0.75 + speedupSteps * 0.01; } else { swatterSpeedBonus = 0 * 0.75; } nextLevelScore += levelScoreStep; // Flash background for level up LK.effects.flashScreen(0xffff00, 600); } // Touch/drag controls game.down = function (x, y, obj) { isTouching = true; if (!flyActive) { flyActive = true; } if (fly && typeof fly.flap === "function") { fly.flap(); } }; game.up = function (x, y, obj) { isTouching = false; }; game.move = function (x, y, obj) { // Optional: allow dragging fly up/down if (isTouching && fly) { fly.y = y; } }; // Main update loop game.update = function () { // --- Ava: Block all game logic until instruction message is gone --- if (gameBlocked) { return; } // --- Ava: Fly grace period and falling logic --- if (!flyActive && !flyFell) { // During grace period, keep fly in air if (Date.now() - flyStartTime < flyGracePeriod) { fly.vy = 0; // Keep fly at initial y fly.y = 2732 / 2; } else { // Grace period over, fly falls unless touched flyActive = true; isTouching = false; } } if (flyActive && !isTouching && !flyFell) { // If not touching after grace, let fly fall fly.update(); if (fly.y >= 2732 - fly.height / 2 - 1) { // Fly hit the ground flyFell = true; LK.effects.flashScreen(0x222222, 800); // Show game over popup (score will be shown by LK engine) // Oyun bittiğinde seviye ve skor gösterimi LK.showGameOver ile yapılır LK.showGameOver(); showLeaderboard(); return; } } else if (!flyActive) { // During grace, don't update physics } else if (isTouching && !flyFell) { fly.update(); } else if (!flyFell) { fly.update(); } // --- Ava: Swatters spawn in every row --- if (LK.ticks % swatterInterval === 0) { // --- Ava: Randomize swatter spawn order each wave --- // Create a shuffled copy of swatterRowYs var shuffledRows = []; for (var i = 0; i < swatterRowYs.length; i++) { shuffledRows[i] = swatterRowYs[i]; } // Fisher-Yates shuffle for (var i = shuffledRows.length - 1; i > 0; i--) { var j = Math.floor(Math.random() * (i + 1)); var temp = shuffledRows[i]; shuffledRows[i] = shuffledRows[j]; shuffledRows[j] = temp; } // --- Ava: For each row, spawn swatter with random delay and random length --- for (var r = 0; r < swatterRows; r++) { (function (rowIdx, rowY) { // Random delay for this row (0-40 ticks, up to ~0.66s) var delayTicks = Math.floor(Math.random() * 40); LK.setTimeout(function () { var swatter = new Swatter(); swatter.speed += swatterSpeedBonus * 0.75; swatter.y = rowY; // Randomize swatter length (scaleX 1.0 to 2.0) var scale = 1 + Math.random(); swatter.scaleX = scale; // Adjust anchor so left edge stays at same place if (swatter.children && swatter.children.length > 0) { // Set anchorX to 0.5 (center) for scaling, already set in Swatter class } swatters.push(swatter); game.addChild(swatter); }, delayTicks * 1000 / 60); // convert ticks to ms })(r, shuffledRows[r]); } } // Update swatters for (var i = swatters.length - 1; i >= 0; i--) { var sw = swatters[i]; sw.update(); // Collision if (fly.intersects(sw)) { LK.effects.flashScreen(0xff0000, 1000); // Show game over popup (score will be shown by LK engine) // Oyun bittiğinde seviye ve skor gösterimi LK.showGameOver ile yapılır LK.showGameOver(); showLeaderboard(); return; } // Off screen if (sw.x < -200) { // Award points for successful dodge LK.setScore(LK.getScore() + sw.points); scoreTxt.setText(LK.getScore()); // Level up if needed if (LK.getScore() >= nextLevelScore) { levelUp(); } sw.destroy(); swatters.splice(i, 1); } } }; // Reset game state on restart LK.on('gameStart', function () { // Reset variables currentLevel = 1; swatterInterval = 90; swatterSpeedBonus = 0 * 0.75; // Reset speed scaling on restart nextLevelScore = 100; levelScoreStep = 110; // %10 daha yavaş seviye atlama (reset) setBackgroundForLevel(currentLevel); levelTxt.setText('Seviye 1'); LK.setScore(0); scoreTxt.setText('0'); // Remove all swatters for (var i = 0; i < swatters.length; i++) { swatters[i].destroy(); } swatters = []; // Reset fly if (fly && fly.parent) { fly.parent.removeChild(fly); fly = null; } flyActive = false; flyFell = false; // Do not reset username, so user is not prompted again // username = ""; // Show instruction message again and block game gameBlocked = true; instructionTxt.setText("Yumurta ilk 5 saniye havada kalır\nOnu düşürmemek için mouse ile tıklayın"); instructionTxt.alpha = 1; instructionTxt.x = 2048 / 2; instructionTxt.y = 2732 / 2; // Show username prompt first, then show instruction, then fade out instruction var storedUsername = storage.username; if (typeof storedUsername === "string" && storedUsername.length > 0) { username = storedUsername.substring(0, 16); // Username already set, skip prompt if (!fly) { fly = new Yumurta(); game.addChild(fly); fly.x = 400; fly.y = 2732 / 2; } if (!instructionTxt.parent) game.addChild(instructionTxt); instructionTxt.alpha = 1; instructionTxt.x = 2048 / 2; instructionTxt.y = 2732 / 2; LK.setTimeout(function () { tween(instructionTxt, { alpha: 0 }, { duration: 700, easing: tween.easeOut, onFinish: function onFinish() { if (instructionTxt.parent) instructionTxt.parent.removeChild(instructionTxt); gameBlocked = false; flyStartTime = Date.now(); } }); }, 2000); } else { showUsernamePrompt(function () { // After username entered, create and show the egg (fly) if (!fly) { fly = new Yumurta(); game.addChild(fly); fly.x = 400; fly.y = 2732 / 2; } if (!instructionTxt.parent) game.addChild(instructionTxt); instructionTxt.alpha = 1; instructionTxt.x = 2048 / 2; instructionTxt.y = 2732 / 2; LK.setTimeout(function () { tween(instructionTxt, { alpha: 0 }, { duration: 700, easing: tween.easeOut, onFinish: function onFinish() { if (instructionTxt.parent) instructionTxt.parent.removeChild(instructionTxt); gameBlocked = false; flyStartTime = Date.now(); } }); }, 2000); }); } }); /* End of MVP */
===================================================================
--- original.js
+++ change.js
@@ -88,1081 +88,9 @@
/****
* Game Code
****/
-// Use storage plugin for persistent data
-// --- Ava: High Score Table & Username Prompt ---
-// Username and leaderboard
-var username = "";
-var leaderboard = []; // [{name, score}]
-// Helper to load leaderboard from storage
-function loadLeaderboard() {
- var data = storage.leaderboard;
- if (data && Array.isArray(data)) {
- leaderboard = data;
- } else {
- leaderboard = [];
- }
-}
-// Helper to save leaderboard to storage
-function saveLeaderboard() {
- // Only store 1-level deep array of objects with literal values
- var safeLeaderboard = [];
- for (var i = 0; i < leaderboard.length; i++) {
- var entry = leaderboard[i];
- // Only keep name and score as literals
- safeLeaderboard.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Store leaderboard as a 1-level deep array of objects with only literal values
- // Defensive: ensure only 1-level deep, no nested objects/arrays
- var flatLeaderboard = [];
- for (var i = 0; i < safeLeaderboard.length; i++) {
- var entry = safeLeaderboard[i];
- flatLeaderboard.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep, no nested objects/arrays
- var leaderboardToStore = [];
- for (var i = 0; i < flatLeaderboard.length; i++) {
- var entry = flatLeaderboard[i];
- leaderboardToStore.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: flatten leaderboardToStore to a 1-level deep array of objects with only string/number values
- var leaderboardFlat = [];
- for (var i = 0; i < leaderboardToStore.length; i++) {
- var entry = leaderboardToStore[i];
- leaderboardFlat.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values
- var leaderboardFinal = [];
- for (var i = 0; i < leaderboardFlat.length; i++) {
- var entry = leaderboardFlat[i];
- leaderboardFinal.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values
- var leaderboardStore = [];
- for (var i = 0; i < leaderboardFinal.length; i++) {
- var entry = leaderboardFinal[i];
- leaderboardStore.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values
- var leaderboardToSave = [];
- for (var i = 0; i < leaderboardStore.length; i++) {
- var entry = leaderboardStore[i];
- leaderboardToSave.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values
- var leaderboardToSaveFlat = [];
- for (var i = 0; i < leaderboardToSave.length; i++) {
- var entry = leaderboardToSave[i];
- leaderboardToSaveFlat.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToSaveFlatSafe = [];
- for (var i = 0; i < leaderboardToSaveFlat.length; i++) {
- var entry = leaderboardToSaveFlat[i];
- leaderboardToSaveFlatSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToSaveFlatSafeFinal = [];
- for (var i = 0; i < leaderboardToSaveFlatSafe.length; i++) {
- var entry = leaderboardToSaveFlatSafe[i];
- leaderboardToSaveFlatSafeFinal.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToSaveFlatSafeFinalFlat = [];
- for (var i = 0; i < leaderboardToSaveFlatSafeFinal.length; i++) {
- var entry = leaderboardToSaveFlatSafeFinal[i];
- leaderboardToSaveFlatSafeFinalFlat.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToSaveFlatSafeFinalFlatSafe = [];
- for (var i = 0; i < leaderboardToSaveFlatSafeFinalFlat.length; i++) {
- var entry = leaderboardToSaveFlatSafeFinalFlat[i];
- leaderboardToSaveFlatSafeFinalFlatSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToSaveFlatSafeFinalFlatSafeSafe = [];
- for (var i = 0; i < leaderboardToSaveFlatSafeFinalFlatSafe.length; i++) {
- var entry = leaderboardToSaveFlatSafeFinalFlatSafe[i];
- leaderboardToSaveFlatSafeFinalFlatSafeSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToSaveFlatSafeFinalFlatSafeSafeFinal = [];
- for (var i = 0; i < leaderboardToSaveFlatSafeFinalFlatSafeSafe.length; i++) {
- var entry = leaderboardToSaveFlatSafeFinalFlatSafeSafe[i];
- leaderboardToSaveFlatSafeFinalFlatSafeSafeFinal.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToSaveFlatSafeFinalFlatSafeSafeFinalFlat = [];
- for (var i = 0; i < leaderboardToSaveFlatSafeFinalFlatSafeSafeFinal.length; i++) {
- var entry = leaderboardToSaveFlatSafeFinalFlatSafeSafeFinal[i];
- leaderboardToSaveFlatSafeFinalFlatSafeSafeFinalFlat.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToSaveFlatSafeFinalFlatSafeSafeFinalFlatSafe = [];
- for (var i = 0; i < leaderboardToSaveFlatSafeFinalFlatSafeSafeFinalFlat.length; i++) {
- var entry = leaderboardToSaveFlatSafeFinalFlatSafeSafeFinalFlat[i];
- leaderboardToSaveFlatSafeFinalFlatSafeSafeFinalFlatSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToStoreFinal = [];
- for (var i = 0; i < leaderboardToSaveFlatSafeFinalFlatSafeSafeFinalFlatSafe.length; i++) {
- var entry = leaderboardToSaveFlatSafeFinalFlatSafeSafeFinalFlatSafe[i];
- leaderboardToStoreFinal.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToStoreFinalSafe = [];
- for (var i = 0; i < leaderboardToStoreFinal.length; i++) {
- var entry = leaderboardToStoreFinal[i];
- leaderboardToStoreFinalSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToStoreFinalSafeFlat = [];
- for (var i = 0; i < leaderboardToStoreFinalSafe.length; i++) {
- var entry = leaderboardToStoreFinalSafe[i];
- leaderboardToStoreFinalSafeFlat.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToStoreFinalSafeFlatSafe = [];
- for (var i = 0; i < leaderboardToStoreFinalSafeFlat.length; i++) {
- var entry = leaderboardToStoreFinalSafeFlat[i];
- leaderboardToStoreFinalSafeFlatSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToStoreFinalSafeFlatSafeFinal = [];
- for (var i = 0; i < leaderboardToStoreFinalSafeFlatSafe.length; i++) {
- var entry = leaderboardToStoreFinalSafeFlatSafe[i];
- leaderboardToStoreFinalSafeFlatSafeFinal.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToStoreFinalSafeFlatSafeFinalFlat = [];
- for (var i = 0; i < leaderboardToStoreFinalSafeFlatSafeFinal.length; i++) {
- var entry = leaderboardToStoreFinalSafeFlatSafeFinal[i];
- leaderboardToStoreFinalSafeFlatSafeFinalFlat.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinal = [];
- for (var i = 0; i < leaderboardToStoreFinalSafeFlatSafeFinalFlat.length; i++) {
- var entry = leaderboardToStoreFinalSafeFlatSafeFinalFlat[i];
- leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinal.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Store leaderboard as a 1-level deep array of objects with only literal values
- var leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafe = [];
- for (var i = 0; i < leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinal.length; i++) {
- var entry = leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinal[i];
- leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlat = [];
- for (var i = 0; i < leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafe.length; i++) {
- var entry = leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafe[i];
- leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlat.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafe = [];
- for (var i = 0; i < leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlat.length; i++) {
- var entry = leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlat[i];
- leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinal = [];
- for (var i = 0; i < leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafe.length; i++) {
- var entry = leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafe[i];
- leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinal.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafe = [];
- for (var i = 0; i < leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinal.length; i++) {
- var entry = leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinal[i];
- leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafeFlat = [];
- for (var i = 0; i < leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafe.length; i++) {
- var entry = leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafe[i];
- leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafeFlat.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafeFlatSafe = [];
- for (var i = 0; i < leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafeFlat.length; i++) {
- var entry = leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafeFlat[i];
- leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafeFlatSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafeFlatSafeFinal = [];
- for (var i = 0; i < leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafeFlatSafe.length; i++) {
- var entry = leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafeFlatSafe[i];
- leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafeFlatSafeFinal.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafeFlatSafeFinalSafe = [];
- for (var i = 0; i < leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafeFlatSafeFinal.length; i++) {
- var entry = leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafeFlatSafeFinal[i];
- leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafeFlatSafeFinalSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafeFlatSafeFinalSafeFlat = [];
- for (var i = 0; i < leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafeFlatSafeFinalSafe.length; i++) {
- var entry = leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafeFlatSafeFinalSafe[i];
- leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafeFlatSafeFinalSafeFlat.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafeFlatSafeFinalSafeFlatSafe = [];
- for (var i = 0; i < leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafeFlatSafeFinalSafeFlat.length; i++) {
- var entry = leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafeFlatSafeFinalSafeFlat[i];
- leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafeFlatSafeFinalSafeFlatSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Store leaderboard as a 1-level deep array of objects with only literal values
- var leaderboardToSaveFinal = [];
- var arr = leaderboardToStoreFinalSafeFlatSafeFinalFlatSafeFinalSafeFlatSafeFinalSafeFlatSafeFinalSafeFlatSafe;
- for (var i = 0; i < arr.length && i < 10; i++) {
- var entry = arr[i];
- leaderboardToSaveFinal.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Store only 1-level deep array of objects with literal values, max 10 entries
- var safeLeaderboardToStore = [];
- for (var i = 0; i < leaderboardToSaveFinal.length && i < 10; i++) {
- var entry = leaderboardToSaveFinal[i];
- safeLeaderboardToStore.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving
- var leaderboardToStoreFlat = [];
- for (var i = 0; i < safeLeaderboardToStore.length && i < 10; i++) {
- var entry = safeLeaderboardToStore[i];
- leaderboardToStoreFlat.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Store leaderboard as a 1-level deep array of objects with only literal values
- var leaderboardToStoreFlatSafe = [];
- for (var i = 0; i < leaderboardToStoreFlat.length && i < 10; i++) {
- var entry = leaderboardToStoreFlat[i];
- leaderboardToStoreFlatSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardToStoreFlatSafeFinal = [];
- for (var i = 0; i < leaderboardToStoreFlatSafe.length && i < 10; i++) {
- var entry = leaderboardToStoreFlatSafe[i];
- leaderboardToStoreFlatSafeFinal.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardToStoreFlatSafeFinalSafe = [];
- for (var i = 0; i < leaderboardToStoreFlatSafeFinal.length && i < 10; i++) {
- var entry = leaderboardToStoreFlatSafeFinal[i];
- leaderboardToStoreFlatSafeFinalSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardToStoreFlatSafeFinalSafeFinal = [];
- for (var i = 0; i < leaderboardToStoreFlatSafeFinalSafe.length && i < 10; i++) {
- var entry = leaderboardToStoreFlatSafeFinalSafe[i];
- leaderboardToStoreFlatSafeFinalSafeFinal.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardToStoreFlatSafeFinalSafeFinalSafe = [];
- for (var i = 0; i < leaderboardToStoreFlatSafeFinalSafeFinal.length && i < 10; i++) {
- var entry = leaderboardToStoreFlatSafeFinalSafeFinal[i];
- leaderboardToStoreFlatSafeFinalSafeFinalSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardToStoreFlatSafeFinalSafeFinalSafeFinal = [];
- for (var i = 0; i < leaderboardToStoreFlatSafeFinalSafeFinalSafe.length && i < 10; i++) {
- var entry = leaderboardToStoreFlatSafeFinalSafeFinalSafe[i];
- leaderboardToStoreFlatSafeFinalSafeFinalSafeFinal.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafe = [];
- for (var i = 0; i < leaderboardToStoreFlatSafeFinalSafeFinalSafeFinal.length && i < 10; i++) {
- var entry = leaderboardToStoreFlatSafeFinalSafeFinalSafeFinal[i];
- leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Store leaderboard as a 1-level deep array of objects with only literal values, max 10 entries
- var leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinal = [];
- for (var i = 0; i < leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafe.length && i < 10; i++) {
- var entry = leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafe[i];
- leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinal.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafe = [];
- for (var i = 0; i < leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinal.length && i < 10; i++) {
- var entry = leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinal[i];
- leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Store leaderboard as a 1-level deep array of objects with only literal values, max 10 entries
- var leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlat = [];
- for (var i = 0; i < leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafe.length && i < 10; i++) {
- var entry = leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafe[i];
- leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlat.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafe = [];
- for (var i = 0; i < leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlat.length && i < 10; i++) {
- var entry = leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlat[i];
- leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinal = [];
- for (var i = 0; i < leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafe.length && i < 10; i++) {
- var entry = leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafe[i];
- leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinal.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Store leaderboard as a 1-level deep array of objects with only literal values, max 10 entries
- var leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafe = [];
- for (var i = 0; i < leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinal.length && i < 10; i++) {
- var entry = leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinal[i];
- leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Store leaderboard as a 1-level deep array of objects with only literal values, max 10 entries
- var leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafeFlat = [];
- for (var i = 0; i < leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafe.length && i < 10; i++) {
- var entry = leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafe[i];
- leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafeFlat.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafeFlatSafe = [];
- for (var i = 0; i < leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafeFlat.length && i < 10; i++) {
- var entry = leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafeFlat[i];
- leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafeFlatSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Store leaderboard as a 1-level deep array of objects with only literal values, max 10 entries
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafeFlatSafeFinal = [];
- for (var i = 0; i < leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafeFlatSafe.length && i < 10; i++) {
- var entry = leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafeFlatSafe[i];
- leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafeFlatSafeFinal.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Store leaderboard as a 1-level deep array of objects with only literal values, max 10 entries
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafeFlatSafeFinalSafe = [];
- for (var i = 0; i < leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafeFlatSafeFinal.length && i < 10; i++) {
- var entry = leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafeFlatSafeFinal[i];
- leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafeFlatSafeFinalSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafeFlatSafeFinalSafeFinal = [];
- for (var i = 0; i < leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafeFlatSafeFinalSafe.length && i < 10; i++) {
- var entry = leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafeFlatSafeFinalSafe[i];
- leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafeFlatSafeFinalSafeFinal.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafeFlatSafeFinalSafeFinalSafe = [];
- for (var i = 0; i < leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafeFlatSafeFinalSafeFinal.length && i < 10; i++) {
- var entry = leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafeFlatSafeFinalSafeFinal[i];
- leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafeFlatSafeFinalSafeFinalSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardFinalSafe = [];
- for (var i = 0; i < leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafeFlatSafeFinalSafeFinalSafe.length && i < 10; i++) {
- var entry = leaderboardToStoreFlatSafeFinalSafeFinalSafeFinalSafeFinalSafeFlatSafeFinalSafeFlatSafeFinalSafeFinalSafe[i];
- leaderboardFinalSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardFinalSafeFlat = [];
- for (var i = 0; i < leaderboardFinalSafe.length && i < 10; i++) {
- var entry = leaderboardFinalSafe[i];
- leaderboardFinalSafeFlat.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardFinalSafeFlatSafe = [];
- for (var i = 0; i < leaderboardFinalSafeFlat.length && i < 10; i++) {
- var entry = leaderboardFinalSafeFlat[i];
- leaderboardFinalSafeFlatSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardFinalSafeFlatSafeFlat = [];
- for (var i = 0; i < leaderboardFinalSafeFlatSafe.length && i < 10; i++) {
- var entry = leaderboardFinalSafeFlatSafe[i];
- leaderboardFinalSafeFlatSafeFlat.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardFinalSafeFlatSafeFlatSafe = [];
- for (var i = 0; i < leaderboardFinalSafeFlatSafeFlat.length && i < 10; i++) {
- var entry = leaderboardFinalSafeFlatSafeFlat[i];
- leaderboardFinalSafeFlatSafeFlatSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardFinalSafeFlatSafeFlatSafeFlat = [];
- for (var i = 0; i < leaderboardFinalSafeFlatSafeFlatSafe.length && i < 10; i++) {
- var entry = leaderboardFinalSafeFlatSafeFlatSafe[i];
- leaderboardFinalSafeFlatSafeFlatSafeFlat.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardFinalSafeFlatSafeFlatSafeFlatSafe = [];
- for (var i = 0; i < leaderboardFinalSafeFlatSafeFlatSafeFlat.length && i < 10; i++) {
- var entry = leaderboardFinalSafeFlatSafeFlatSafeFlat[i];
- leaderboardFinalSafeFlatSafeFlatSafeFlatSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafe = [];
- for (var i = 0; i < leaderboardFinalSafeFlatSafeFlatSafeFlatSafe.length && i < 10; i++) {
- var entry = leaderboardFinalSafeFlatSafeFlatSafeFlatSafe[i];
- leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Store leaderboard as a 1-level deep array of objects with only literal values, max 10 entries
- var leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlat = [];
- for (var i = 0; i < leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafe.length && i < 10; i++) {
- var entry = leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafe[i];
- leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlat.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafe = [];
- for (var i = 0; i < leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlat.length && i < 10; i++) {
- var entry = leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlat[i];
- leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Store leaderboard as a 1-level deep array of objects with only literal values, max 10 entries
- var leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafe = [];
- for (var i = 0; i < leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafe.length && i < 10; i++) {
- var entry = leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafe[i];
- leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinal = [];
- for (var i = 0; i < leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafe.length && i < 10; i++) {
- var entry = leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafe[i];
- leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinal.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafe = [];
- for (var i = 0; i < leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinal.length && i < 10; i++) {
- var entry = leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinal[i];
- leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafeFlat = [];
- for (var i = 0; i < leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafe.length && i < 10; i++) {
- var entry = leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafe[i];
- leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafeFlat.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Store leaderboard as a 1-level deep array of objects with only literal values, max 10 entries
- var leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafeFlatSafe = [];
- for (var i = 0; i < leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafeFlat.length && i < 10; i++) {
- var entry = leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafeFlat[i];
- leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafeFlatSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafeFlatSafe = [];
- for (var i = 0; i < leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafeFlat.length && i < 10; i++) {
- var entry = leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafeFlat[i];
- leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafeFlatSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafeFlatSafeFlat = [];
- for (var i = 0; i < leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafeFlatSafe.length && i < 10; i++) {
- var entry = leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafeFlatSafe[i];
- leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafeFlatSafeFlat.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafeFlatSafeFlatSafe = [];
- for (var i = 0; i < leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafeFlatSafeFlat.length && i < 10; i++) {
- var entry = leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafeFlatSafeFlat[i];
- leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafeFlatSafeFlatSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Store leaderboard as a 1-level deep array of objects with only literal values, max 10 entries
- var leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafeFlatSafeFlatSafeSafe = [];
- for (var i = 0; i < leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafeFlatSafeFlatSafe.length && i < 10; i++) {
- var entry = leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafeFlatSafeFlatSafe[i];
- leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafeFlatSafeFlatSafeSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Store leaderboard as a 1-level deep array of objects with only literal values, max 10 entries
- var leaderboardSafeToStore = [];
- for (var i = 0; i < leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafeFlatSafeFlatSafeSafe.length && i < 10; i++) {
- var entry = leaderboardFinalSafeFlatSafeFlatSafeFlatSafeSafeFlatSafeSafeFinalSafeFlatSafeFlatSafeSafe[i];
- leaderboardSafeToStore.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values before saving, max 10 entries
- var leaderboardSafeToStoreFlat = [];
- for (var i = 0; i < leaderboardSafeToStore.length && i < 10; i++) {
- var entry = leaderboardSafeToStore[i];
- leaderboardSafeToStoreFlat.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: store leaderboard as a 1-level deep array of objects with only string/number values, max 10 entries
- var leaderboardToStore = [];
- for (var i = 0; i < leaderboardSafeToStoreFlat.length && i < 10; i++) {
- var entry = leaderboardSafeToStoreFlat[i];
- leaderboardToStore.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: store leaderboard as a 1-level deep array of objects with only string/number values, max 10 entries
- var leaderboardToStoreFlatLiterals = [];
- for (var i = 0; i < leaderboardToStore.length && i < 10; i++) {
- var entry = leaderboardToStore[i];
- leaderboardToStoreFlatLiterals.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: store leaderboard as a 1-level deep array of objects with only string/number values, max 10 entries
- var leaderboardToStoreFlatLiteralsSafe = [];
- for (var i = 0; i < leaderboardToStoreFlatLiterals.length && i < 10; i++) {
- var entry = leaderboardToStoreFlatLiterals[i];
- leaderboardToStoreFlatLiteralsSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: store leaderboard as a 1-level deep array of objects with only string/number values, max 10 entries
- // Store leaderboard as a 1-level deep array of objects with only literal values, max 10 entries
- var leaderboardToPersist = [];
- for (var i = 0; i < leaderboardToStoreFlatLiteralsSafe.length && i < 10; i++) {
- var entry = leaderboardToStoreFlatLiteralsSafe[i];
- leaderboardToPersist.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: store leaderboard as a 1-level deep array of objects with only string/number values, max 10 entries
- var leaderboardFlatLiterals = [];
- for (var i = 0; i < leaderboardToPersist.length && i < 10; i++) {
- var entry = leaderboardToPersist[i];
- leaderboardFlatLiterals.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: store leaderboard as a 1-level deep array of objects with only string/number values, max 10 entries
- var leaderboardToStoreLiterals = [];
- for (var i = 0; i < leaderboardFlatLiterals.length && i < 10; i++) {
- var entry = leaderboardFlatLiterals[i];
- leaderboardToStoreLiterals.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: store leaderboard as a 1-level deep array of objects with only string/number values, max 10 entries
- var leaderboardToStoreLiteralsSafe = [];
- for (var i = 0; i < leaderboardToStoreLiterals.length && i < 10; i++) {
- var entry = leaderboardToStoreLiterals[i];
- leaderboardToStoreLiteralsSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: store leaderboard as a 1-level deep array of objects with only string/number values, max 10 entries
- var leaderboardToStoreLiteralsSafeFlat = [];
- for (var i = 0; i < leaderboardToStoreLiteralsSafe.length && i < 10; i++) {
- var entry = leaderboardToStoreLiteralsSafe[i];
- leaderboardToStoreLiteralsSafeFlat.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Store leaderboard as a 1-level deep array of objects with only literal values, max 10 entries
- var leaderboardToStoreLiteralsSafeFlatTop10 = [];
- for (var i = 0; i < leaderboardToStoreLiteralsSafeFlat.length && i < 10; i++) {
- var entry = leaderboardToStoreLiteralsSafeFlat[i];
- leaderboardToStoreLiteralsSafeFlatTop10.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values, max 10 entries
- var leaderboardToStoreLiteralsSafeFlatTop10Safe = [];
- for (var i = 0; i < leaderboardToStoreLiteralsSafeFlatTop10.length && i < 10; i++) {
- var entry = leaderboardToStoreLiteralsSafeFlatTop10[i];
- leaderboardToStoreLiteralsSafeFlatTop10Safe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values, max 10 entries
- var leaderboardToStoreLiteralsSafeFlatTop10SafeFinal = [];
- for (var i = 0; i < leaderboardToStoreLiteralsSafeFlatTop10Safe.length && i < 10; i++) {
- var entry = leaderboardToStoreLiteralsSafeFlatTop10Safe[i];
- leaderboardToStoreLiteralsSafeFlatTop10SafeFinal.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values, max 10 entries
- var leaderboardToStoreLiteralsSafeFlatTop10SafeFinalSafe = [];
- for (var i = 0; i < leaderboardToStoreLiteralsSafeFlatTop10SafeFinal.length && i < 10; i++) {
- var entry = leaderboardToStoreLiteralsSafeFlatTop10SafeFinal[i];
- leaderboardToStoreLiteralsSafeFlatTop10SafeFinalSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values, max 10 entries
- var leaderboardToStoreLiteralsSafeFlatTop10SafeFinalSafeFinal = [];
- for (var i = 0; i < leaderboardToStoreLiteralsSafeFlatTop10SafeFinalSafe.length && i < 10; i++) {
- var entry = leaderboardToStoreLiteralsSafeFlatTop10SafeFinalSafe[i];
- leaderboardToStoreLiteralsSafeFlatTop10SafeFinalSafeFinal.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- // Defensive: ensure only 1-level deep array of objects with only string/number values, max 10 entries
- var leaderboardToStoreLiteralsSafeFlatTop10SafeFinalSafeFinalSafe = [];
- for (var i = 0; i < leaderboardToStoreLiteralsSafeFlatTop10SafeFinalSafeFinal.length && i < 10; i++) {
- var entry = leaderboardToStoreLiteralsSafeFlatTop10SafeFinalSafeFinal[i];
- leaderboardToStoreLiteralsSafeFlatTop10SafeFinalSafeFinalSafe.push({
- name: typeof entry.name === "string" ? entry.name : "",
- score: typeof entry.score === "number" ? entry.score : 0
- });
- }
- storage.set("leaderboard", leaderboardToStoreLiteralsSafeFlatTop10SafeFinalSafeFinalSafe);
-}
-// Helper to show username prompt before game starts
-function showUsernamePrompt(onDone) {
- // Remove any old prompt
- if (typeof usernamePromptBox !== "undefined" && usernamePromptBox.parent) {
- usernamePromptBox.parent.removeChild(usernamePromptBox);
- }
- // Load username from storage if available, fallback to default
- var storedUsername = storage.username;
- if (typeof storedUsername === "string" && storedUsername.length > 0) {
- username = storedUsername.substring(0, 16);
- } else {
- username = "";
- }
- // --- Ava: 5cm x 4cm box, white, rounded, centered ---
- // iPad Pro 12" portrait: 2048x2732, 1cm ≈ 81.92px (2048/25)
- var cmToPx = 2048 / 25.0;
- var boxW = Math.round(5 * cmToPx); // 409px
- var boxH = Math.round(4 * cmToPx); // 327px
- // Main box container
- usernamePromptBox = new Container();
- // White rounded rectangle
- var boxBg = LK.getAsset('bg_forest', {
- width: boxW,
- height: boxH,
- color: 0xffffff,
- shape: 'box',
- anchorX: 0.5,
- anchorY: 0.5,
- x: 2048 / 2,
- y: 2732 / 2
- });
- boxBg.alpha = 1;
- boxBg.radius = Math.min(boxH, boxW) / 3; // oval corners
- usernamePromptBox.addChild(boxBg);
- // Prompt text
- var promptTxt = new Text2("Kullanıcı adını gir:", {
- size: 70,
- fill: 0x222222,
- align: "center"
- });
- promptTxt.anchor.set(0.5, 0);
- promptTxt.x = 0;
- promptTxt.y = -boxH / 2 + 36;
- usernamePromptBox.addChild(promptTxt);
- // Input box (simulated as a white rounded rectangle with border)
- var inputW = boxW - 80;
- var inputH = 90;
- var inputBg = LK.getAsset('bg_forest', {
- width: inputW,
- height: inputH,
- color: 0xffffff,
- shape: 'box',
- anchorX: 0.5,
- anchorY: 0.5,
- x: 0,
- y: -30
- });
- inputBg.alpha = 1;
- inputBg.radius = inputH / 2;
- usernamePromptBox.addChild(inputBg);
- // Input text
- var initialUsernameText = username && username.length > 0 ? username : "_";
- var inputText = new Text2(initialUsernameText, {
- size: 70,
- fill: 0x222222,
- align: "center"
- });
- inputText.anchor.set(0.5, 0.5);
- inputText.x = 0;
- inputText.y = -30;
- inputText.textValue = username && username.length > 0 ? username : "";
- usernamePromptBox.addChild(inputText);
- // --- Ava: On-screen keypad for username entry (mobile-friendly) ---
- var btnW = 220,
- btnH = 80;
- // Place the "Tamam" button below the keypad
- var btnBg = LK.getAsset('bg_forest', {
- width: btnW,
- height: btnH,
- color: 0xffffff,
- shape: 'box',
- anchorX: 0.5,
- anchorY: 0.5,
- x: 0,
- // y: below keypad, calculate based on keypad height
- y: keyPadStartY + keyRows * keyH + btnH / 2 + 24
- });
- btnBg.alpha = 1;
- btnBg.radius = btnH / 2;
- usernamePromptBox.addChild(btnBg);
- var btnTxt = new Text2("Tamam", {
- size: 60,
- fill: 0x222222,
- align: "center"
- });
- btnTxt.anchor.set(0.5, 0.5);
- btnTxt.x = 0;
- btnTxt.y = keyPadStartY + keyRows * keyH + btnH / 2 + 24;
- usernamePromptBox.addChild(btnTxt);
- // Add to game
- usernamePromptBox.x = 2048 / 2;
- usernamePromptBox.y = 2732 / 2;
- game.addChild(usernamePromptBox);
- // Input logic
- inputBg.interactive = false;
- inputText.interactive = false;
- // Keypad layout (4x7 grid: A-Z, Sil, Temizle, Boşluk)
- var keypadKeys = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "Sil", "Temizle"];
- var keypadBtns = [];
- var keyCols = 7;
- var keyRows = 4;
- var keyW = Math.floor((inputW - 20) / keyCols);
- var keyH = 80;
- var keyPadStartY = 60;
- for (var i = 0; i < keyCols * keyRows; i++) {
- var col = i % keyCols;
- var row = Math.floor(i / keyCols);
- var keyLabel = keypadKeys[i];
- if (!keyLabel) continue;
- var keyBtn = LK.getAsset('bg_forest', {
- width: keyW - 10,
- height: keyH - 10,
- color: 0xf0f0f0,
- shape: 'box',
- anchorX: 0.5,
- anchorY: 0.5,
- x: -((keyCols - 1) * keyW) / 2 + col * keyW,
- y: keyPadStartY + row * keyH
- });
- keyBtn.radius = 18;
- keyBtn.interactive = true;
- (function (keyLabel, keyBtn) {
- keyBtn.down = function () {
- if (!inputActive) return;
- if (keyLabel === "Sil") {
- inputText.textValue = inputText.textValue.slice(0, -1);
- } else if (keyLabel === "Temizle") {
- inputText.textValue = "";
- } else if (inputText.textValue.length < 16 && keyLabel.length === 1) {
- inputText.textValue += keyLabel;
- }
- inputText.setText(inputText.textValue.length > 0 ? inputText.textValue : "_");
- };
- })(keyLabel, keyBtn);
- usernamePromptBox.addChild(keyBtn);
- // Key label
- var keyTxt = new Text2(keyLabel, {
- size: 48,
- fill: 0x222222,
- align: "center"
- });
- keyTxt.anchor.set(0.5, 0.5);
- keyTxt.x = keyBtn.x;
- keyTxt.y = keyBtn.y;
- usernamePromptBox.addChild(keyTxt);
- keypadBtns.push(keyBtn);
- }
- // Input logic
- var inputActive = true;
- function finishInput() {
- if (inputText.textValue.length > 0) {
- username = inputText.textValue;
- if (usernamePromptBox.parent) usernamePromptBox.parent.removeChild(usernamePromptBox);
- // Store username in persistent storage for leaderboard
- storage.set("username", username);
- inputActive = false;
- // Remove keypad interactivity after done
- for (var i = 0; i < keypadBtns.length; i++) {
- keypadBtns[i].interactive = false;
- keypadBtns[i].down = null;
- }
- if (onDone) onDone();
- }
- }
- // "Tamam" button interactivity
- btnBg.interactive = true;
- btnBg.down = function (x, y, obj) {
- if (!inputActive) return;
- finishInput();
- };
- btnTxt.interactive = true;
- btnTxt.down = function (x, y, obj) {
- if (!inputActive) return;
- finishInput();
- };
- // Remove all keyboard and prompt logic (mobile only, no keyboard or prompt)
-}
-// Helper to show leaderboard after game over
-function showLeaderboard() {
- loadLeaderboard();
- // Add current score if not already in
- var score = LK.getScore();
- if (username && score > 0) {
- leaderboard = leaderboard.concat([{
- name: username,
- score: score
- }]);
- // Sort descending
- leaderboard.sort(function (a, b) {
- return b.score - a.score;
- });
- // Keep top 10
- leaderboard = leaderboard.slice(0, 10);
- saveLeaderboard();
- }
- // Remove old leaderboard if any
- if (typeof leaderboardTxt !== "undefined" && leaderboardTxt.parent) {
- leaderboardTxt.parent.removeChild(leaderboardTxt);
- }
- // Build leaderboard text
- var text = "En Yüksek Skorlar\n";
- for (var i = 0; i < leaderboard.length; i++) {
- var entry = leaderboard[i];
- text += i + 1 + ". " + entry.name + " - " + entry.score + "\n";
- }
- leaderboardTxt = new Text2(text, {
- size: 70,
- fill: 0xffffff,
- align: "center"
- });
- leaderboardTxt.anchor.set(0.5, 0.5);
- leaderboardTxt.x = 2048 / 2;
- leaderboardTxt.y = 2732 / 2;
- game.addChild(leaderboardTxt);
- // Remove after 4 seconds
- LK.setTimeout(function () {
- if (leaderboardTxt.parent) leaderboardTxt.parent.removeChild(leaderboardTxt);
- }, 4000);
-}
-// --- Ava: End High Score Table & Username Prompt ---
+// (Leaderboard and username prompt logic removed)
// Level config
// Backgrounds: always black
var levelCount = 100;
var currentLevel = 1;