Code edit (1 edits merged)
Please save this source code
User prompt
otra cosa cuando pierdo una y sigo teniendo tres vidas igual game over aunque tenga 2 vidas mas
User prompt
quiero que la dificultad se seleccione antes de jugar, quiero que las pregunta de cada dificultad se van incrementando dependiendo del nivel y que sean dificiles
User prompt
🏅 SISTEMA DE DIFICULTAD ESCALONADA Fácil (Luz de Aprendiz): conocimiento superficial, contenido jugado comúnmente. Media (Sabio del Núcleo): requiere experiencia jugando múltiples temporadas. Difícil (Archivo Negro): exige haber leído lore, conectado eventos entre temporadas. Extrema (Oscuridad Interior): conecta frases cifradas, símbolos, detalles no explicados directamente en el juego.
User prompt
hazlo con preguntas actualizadas al 02/7/2025
User prompt
cuando quiero seleccionar una respuesta no me deja le doy click y nada
User prompt
Please fix the bug: 'Cannot set properties of undefined (setting 'wordWrap')' in or related to this line: 'self.questionText.style.wordWrap = true;' Line Number: 116
Code edit (1 edits merged)
Please save this source code
User prompt
El Archivo del Guardián
Initial prompt
🎮 Nombre del juego: “El Archivo del Guardián” Tagline: "El conocimiento es la luz que vence a la Oscuridad." 🕹️ Tipo de Juego Modo de juego: Trivia en solitario. Estilo: Por rondas con niveles de dificultad. Formato: Consola (CLI), Escritorio (GUI simple) o incluso archivo ejecutable .exe. ⚙️ Mecánica de Juego 🔹 Estructura básica El jugador responde a preguntas una por una. Hay varias categorías que escalan en dificultad: Historia General Armas y Armaduras Lore Profundo Actividades y Raids Preguntas tipo acertijo Cada ronda contiene entre 5 y 10 preguntas. Cada respuesta correcta suma puntos. Si fallas, puedes perder puntos o tener penalizaciones. 🔥 Modo "Desafío del Guardián" Este es el modo difícil diseñado para jugadores hardcore: Una sola vida: Si fallas una pregunta, terminas el juego. Sin pistas, sin tiempo visible. Las preguntas son encriptadas o indirectas. Ejemplo: “Mi voz se escuchó en las profundidades de la Luna, y fui testigo de la caída de Crota. ¿Quién soy?” Respuesta: Eris Morn 🧠 Tipos de Preguntas 1. Trivia clásica Opción múltiple, 4 respuestas. 2. Identificación por texto Pregunta sin opciones. Ejemplo: “¿Qué significa el nombre 'Xûr' en la lengua de los Nueve?” 3. Cifrado simbólico (modo avanzado) Usas símbolos de la colmena o vex (representados por texto en ASCII) que debes descifrar. Ejemplo: ⚙️ Código Vex: ΔΘψΣ Traducción: "Red" (pista a Red Legion o Redrix) 4. Lore de libro Basado en grimoire, registros o textos oficiales. Ejemplo: “¿Qué palabra susurró Savathûn al final de la Temporada de los Perdidos que alteró el curso del ritual?” 5. Perk Challenge Te dicen un perk y debes decir qué arma podía tenerlo en X temporada. “¿Qué arma legendaria introducida en la Temporada 17 podía tener el perk Incandescente?” 🧩 Estructura de dificultad Fase 1: Iniciado del Archivo Preguntas simples sobre personajes, armas conocidas y actividades básicas. Fase 2: Criptarca Errante Entra el lore más profundo, misiones exóticas específicas, eventos de temporada. Fase 3: Vidente Preguntas indirectas, con citas, frases oscuras, conexiones entre personajes y eventos. Fase 4: Archivo Prohibido Preguntas imposibles para los que no han leído grimoire o no siguieron temporadas específicas. 🏅 Sistema de Logros Rangos internos (guardados localmente, sin conexión): 0–20 pts: Portador de la Luz 21–50 pts: Discípulo de Osiris 51–75 pts: Devorador de Sabiduría 76–100 pts: Leyenda del Archivo Puedes desbloquear modos especiales si alcanzas ciertos puntajes: Modo Oscuridad: todas las preguntas se invierten lógicamente (deben deducirse con pistas falsas). Modo Cronómetro: 5 segundos por pregunta, sin volver atrás.
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
var storage = LK.import("@upit/storage.v1");
/****
* Classes
****/
var MenuButton = Container.expand(function () {
var self = Container.call(this);
var bg = self.attachAsset('optionButton', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 1.5,
scaleY: 1.5
});
self.buttonText = new Text2('', {
size: 48,
fill: 0xFFFFFF
});
self.buttonText.anchor.set(0.5, 0.5);
self.addChild(self.buttonText);
self.difficulty = 0;
self.setButton = function (text, difficulty) {
self.buttonText.setText(text);
self.difficulty = difficulty;
};
self.down = function (x, y, obj) {
if (inMenu) {
startGameWithDifficulty(self.difficulty);
}
};
return self;
});
var OptionButton = Container.expand(function () {
var self = Container.call(this);
var bg = self.attachAsset('optionButton', {
anchorX: 0.5,
anchorY: 0.5
});
self.optionText = new Text2('', {
size: 36,
fill: 0xFFFFFF
});
self.optionText.anchor.set(0.5, 0.5);
self.addChild(self.optionText);
self.correctIndicator = null;
self.wrongIndicator = null;
self.isCorrect = false;
self.index = 0;
self.setOption = function (text, index, isCorrect) {
self.optionText.setText(text);
self.index = index;
self.isCorrect = isCorrect;
};
self.showResult = function (correct) {
if (correct) {
self.correctIndicator = self.attachAsset('correctIndicator', {
anchorX: 0.5,
anchorY: 0.5,
alpha: 0.7
});
} else {
self.wrongIndicator = self.attachAsset('wrongIndicator', {
anchorX: 0.5,
anchorY: 0.5,
alpha: 0.7
});
}
};
self.down = function (x, y, obj) {
if (!canAnswer) return;
checkAnswer(self.index);
};
return self;
});
var ProgressDisplay = Container.expand(function () {
var self = Container.call(this);
var barBg = self.attachAsset('progressBar', {
anchorX: 0,
anchorY: 0.5
});
self.progressFill = self.attachAsset('progressFill', {
anchorX: 0,
anchorY: 0.5,
scaleX: 0
});
self.progressText = new Text2('Question 1/10', {
size: 32,
fill: 0xFFFFFF
});
self.progressText.anchor.set(0.5, 0.5);
self.progressText.x = 800;
self.progressText.y = -40;
self.addChild(self.progressText);
self.setProgress = function (current, total) {
self.progressText.setText('Question ' + current + '/' + total);
var progress = current / total;
tween(self.progressFill, {
scaleX: progress
}, {
duration: 500,
easing: tween.easeOut
});
};
return self;
});
var QuestionDisplay = Container.expand(function () {
var self = Container.call(this);
var bg = self.attachAsset('questionBg', {
anchorX: 0.5,
anchorY: 0.5
});
self.questionText = new Text2('', {
size: 48,
fill: 0xFFFFFF
});
self.questionText.anchor.set(0.5, 0.5);
self.addChild(self.questionText);
self.setQuestion = function (text) {
self.questionText.setText(text);
// Word wrap for long questions
self.questionText.wordWrap = true;
self.questionText.wordWrapWidth = 1600;
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x0a0a0f
});
/****
* Game Code
****/
// Game state variables
var currentPhase = 0; // 0: Luz de Aprendiz, 1: Sabio del Núcleo, 2: Archivo Negro, 3: Oscuridad Interior
var currentQuestion = 0;
var score = 0;
var lives = 3;
var questionsPerRound = 10;
var canAnswer = true;
var guardianMode = false;
var darknessMode = false;
var timerMode = false;
var timerCount = 0;
var usedQuestions = []; // Track used questions to avoid repetition
var inMenu = true; // Track if we're in the menu
var selectedDifficulty = 0; // Selected starting difficulty
var questionDifficulty = 0; // Current question difficulty within phase
// UI Elements
var questionDisplay = null;
var optionButtons = [];
var progressDisplay = null;
var scoreText = null;
var phaseText = null;
var livesText = null;
var modeIndicator = null;
// Question Database - Updated for 02/07/2025 with progressive difficulty
var questions = {
0: [
// Luz de Aprendiz - Basic knowledge, commonly played content
// Easy questions (0-3)
{
q: "What is the primary currency in Destiny 2?",
options: ["Glimmer", "Bright Dust", "Legendary Shards", "Silver"],
correct: 0,
difficulty: 0
}, {
q: "How many character classes exist in the game?",
options: ["2", "3", "4", "5"],
correct: 1,
difficulty: 0
}, {
q: "What element type is Solar associated with?",
options: ["Ice", "Lightning", "Fire", "Void"],
correct: 2,
difficulty: 0
}, {
q: "Which NPC serves as the Titan Vanguard?",
options: ["Ikora Rey", "Commander Zavala", "Lord Shaxx", "Saint-14"],
correct: 1,
difficulty: 1
}, {
q: "Where do Guardians primarily operate from?",
options: ["The Farm", "The Tower", "The Reef", "Europa"],
correct: 1,
difficulty: 1
}, {
q: "What is the name of your Ghost?",
options: ["Sundance", "Sagira", "Ghost", "Pulled Pork"],
correct: 2,
difficulty: 1
},
// Medium questions (4-7)
{
q: "Which activity rewards Pinnacle gear?",
options: ["Public Events", "Patrols", "Nightfalls", "Lost Sectors"],
correct: 2,
difficulty: 2
}, {
q: "What currency is used in Eververse?",
options: ["Glimmer", "Silver", "Legendary Shards", "Enhancement Cores"],
correct: 1,
difficulty: 2
}, {
q: "How many subclasses can each class use?",
options: ["3", "4", "5", "6"],
correct: 2,
difficulty: 2
},
// Harder questions (8-10)
{
q: "What is the weekly reset day?",
options: ["Monday", "Tuesday", "Wednesday", "Thursday"],
correct: 1,
difficulty: 3
}, {
q: "What power level is the soft cap?",
options: ["1750", "1800", "1810", "1830"],
correct: 2,
difficulty: 3
}, {
q: "Which raid was the first in Destiny 2?",
options: ["Leviathan", "Last Wish", "Garden of Salvation", "Deep Stone Crypt"],
correct: 0,
difficulty: 3
}],
1: [
// Sabio del Núcleo - Requires playing multiple seasons
{
q: "Which exotic hand cannon returned in Episode: Revenant?",
options: ["Hawkmoon", "Thorn", "The Last Word", "Eriana's Vow"],
correct: 1,
difficulty: 0
}, {
q: "What is the name of the Witness's ship seen in The Final Shape?",
options: ["The Monolith", "The Pyramid", "The Veil", "The Radial Mast"],
correct: 0,
difficulty: 1
}, {
q: "Which character became the new Hunter Vanguard?",
options: ["Crow", "Ana Bray", "Shiro-4", "No one yet"],
correct: 3,
difficulty: 1
}, {
q: "What exotic was craftable in Season of the Wish?",
options: ["Wish-Ender", "Dragon's Breath", "Whisper of the Worm", "Outbreak Perfected"],
correct: 1,
difficulty: 2
}, {
q: "Which vendor handles Trials of Osiris?",
options: ["Lord Shaxx", "Saint-14", "Osiris", "The Drifter"],
correct: 1,
difficulty: 0
}, {
q: "What currency replaced Legendary Shards?",
options: ["Enhancement Cores", "Glimmer only", "Bright Dust", "Strange Coins"],
correct: 1,
difficulty: 2
}, {
q: "Which raid features Nezarec as the final boss?",
options: ["Root of Nightmares", "King's Fall", "Vow of the Disciple", "Deep Stone Crypt"],
correct: 0,
difficulty: 3
}, {
q: "What is the max stat tier for abilities?",
options: ["10", "100", "12", "120"],
correct: 1,
difficulty: 3
}, {
q: "Which season introduced the Lightfall expansion?",
options: ["Season of Defiance", "Season of the Deep", "Season of the Witch", "Season of the Wish"],
correct: 0,
difficulty: 2
}, {
q: "What is the name of Strand's Titan super?",
options: ["Bladefury", "Needlestorm", "Silkstrike", "Threadrunner"],
correct: 0,
difficulty: 3
}],
2: [
// Archivo Negro - Deep lore, connections between seasons
{
q: "According to lore, who gave Savathûn her memories back?",
options: ["The Witness", "Immaru", "The Traveler", "Mara Sov"],
correct: 2
}, {
q: "What is the name of Cayde-6's chicken?",
options: ["Ace", "Colonel", "General", "Captain"],
correct: 1
}, {
q: "Which Disciple of the Witness created the Hive?",
options: ["Nezarec", "Rhulk", "Calus", "The Witness itself"],
correct: 1
}, {
q: "What are the three queens Mara Sov refers to in her throne world?",
options: ["Past Present Future", "Light Dark Gray", "Savathûn Xivu Mara", "Birth Life Death"],
correct: 2
}, {
q: "Who was the original owner of the Whisper of the Worm?",
options: ["Oryx", "Xol", "Nokris", "Savathûn"],
correct: 1
}, {
q: "What did the Witness seek within the Traveler?",
options: ["Power", "The Final Shape", "Salvation", "The Light"],
correct: 1
}, {
q: "Which character's real name is Uldren Sov?",
options: ["The Drifter", "Crow", "Spider", "Variks"],
correct: 1
}, {
q: "What connects the Black Garden to the Vex network?",
options: ["The Black Heart", "Sol Divisive", "Quria", "The Undying Mind"],
correct: 1
}],
3: [
// Oscuridad Interior - Cryptic connections, unexplained details
{
q: "Complete the prophecy: 'The line between Light and Dark is so very...'",
options: ["Blurred", "Thin", "Fragile", "Clear"],
correct: 1
}, {
q: "What pattern appears in the symbols of the Nine?",
options: ["Circles within circles", "Triangular fractals", "Spiral convergence", "Unknown geometry"],
correct: 0
}, {
q: "In the Books of Sorrow, what is the Sword Logic's ultimate goal?",
options: ["Survival", "The Final Shape", "Perfect existence", "Eternal war"],
correct: 1
}, {
q: "What whispered truth did Savathûn hide in her throne world?",
options: ["The Witness lied", "The Traveler chose her", "Light needs Dark", "All of the above"],
correct: 3
}, {
q: "According to Unveiling, what existed before Light and Dark?",
options: ["The Garden", "Nothing", "The Pattern", "Potential"],
correct: 0
}, {
q: "What is the significance of 'O champion mine'?",
options: ["Ahamkara wish magic", "Vex simulation", "Hive curse", "Awoken blessing"],
correct: 0
}, {
q: "What truth about the Collapse did Rasputin hide?",
options: ["He attacked the Traveler", "He made a deal", "He knew it would happen", "All records were destroyed"],
correct: 0
}, {
q: "In Cayde's final message, what does Ace represent?",
options: ["His gun", "His son", "A memory", "All meanings"],
correct: 3
}]
};
var phaseNames = ["Luz de Aprendiz", "Sabio del Núcleo", "Archivo Negro", "Oscuridad Interior"];
var rankNames = ["Light Bearer", "Disciple of Osiris", "Wisdom Devourer", "Archive Legend"];
function initializeGame() {
// Show menu first
showDifficultyMenu();
LK.playMusic('ambient');
}
function showDifficultyMenu() {
inMenu = true;
// Title
var titleText = new Text2('El Archivo del Guardián', {
size: 96,
fill: 0xFFD700
});
titleText.anchor.set(0.5, 0.5);
titleText.x = 1024;
titleText.y = 400;
game.addChild(titleText);
// Subtitle
var subtitleText = new Text2('Selecciona tu nivel de dificultad', {
size: 48,
fill: 0xFFFFFF
});
subtitleText.anchor.set(0.5, 0.5);
subtitleText.x = 1024;
subtitleText.y = 600;
game.addChild(subtitleText);
// Difficulty buttons
var difficulties = [{
name: 'Luz de Aprendiz',
color: 0x5EB3FF,
desc: 'Conocimiento básico'
}, {
name: 'Sabio del Núcleo',
color: 0xFFD700,
desc: 'Experiencia intermedia'
}, {
name: 'Archivo Negro',
color: 0xFF6B6B,
desc: 'Dominio del lore'
}, {
name: 'Oscuridad Interior',
color: 0x9B59B6,
desc: 'Desafío extremo'
}];
for (var i = 0; i < 4; i++) {
var menuBtn = game.addChild(new MenuButton());
menuBtn.x = 1024;
menuBtn.y = 900 + i * 200;
menuBtn.setButton(difficulties[i].name, i);
menuBtn.buttonText.tint = difficulties[i].color;
var descText = new Text2(difficulties[i].desc, {
size: 32,
fill: 0xAAAAAA
});
descText.anchor.set(0.5, 0.5);
descText.x = 1024;
descText.y = 950 + i * 200;
game.addChild(descText);
}
// Show unlocked modes
if (guardianMode || darknessMode || timerMode) {
var modesText = new Text2('Modos desbloqueados:', {
size: 36,
fill: 0xFFD700
});
modesText.anchor.set(0.5, 0.5);
modesText.x = 1024;
modesText.y = 2000;
game.addChild(modesText);
var unlocked = [];
if (guardianMode) unlocked.push('Guardian');
if (darknessMode) unlocked.push('Oscuridad');
if (timerMode) unlocked.push('Cronómetro');
var unlockedText = new Text2(unlocked.join(' • '), {
size: 32,
fill: 0x5EB3FF
});
unlockedText.anchor.set(0.5, 0.5);
unlockedText.x = 1024;
unlockedText.y = 2050;
game.addChild(unlockedText);
}
}
function startGameWithDifficulty(difficulty) {
if (!inMenu) return;
inMenu = false;
selectedDifficulty = difficulty;
currentPhase = difficulty;
// Clear menu
while (game.children.length > 0) {
game.children[0].destroy();
}
// Initialize game elements
// Question display
questionDisplay = game.addChild(new QuestionDisplay());
questionDisplay.x = 1024;
questionDisplay.y = 600;
// Option buttons
for (var i = 0; i < 4; i++) {
var button = game.addChild(new OptionButton());
button.x = 520 + i % 2 * 1000;
button.y = 1200 + Math.floor(i / 2) * 200;
optionButtons.push(button);
}
// Progress display
progressDisplay = game.addChild(new ProgressDisplay());
progressDisplay.x = 224;
progressDisplay.y = 2400;
// Score text
scoreText = new Text2('Score: 0', {
size: 64,
fill: 0xFFFFFF
});
scoreText.anchor.set(1, 0);
LK.gui.topRight.addChild(scoreText);
// Phase text
phaseText = new Text2(phaseNames[currentPhase], {
size: 48,
fill: 0x5EB3FF
});
phaseText.anchor.set(0.5, 0);
phaseText.y = 100;
LK.gui.top.addChild(phaseText);
// Lives text
livesText = new Text2('Lives: ❤❤❤', {
size: 40,
fill: 0xFF6B6B
});
livesText.anchor.set(0, 0);
livesText.x = 120;
LK.gui.topLeft.addChild(livesText);
// Load saved progress
guardianMode = storage.guardianUnlocked || false;
darknessMode = storage.darknessUnlocked || false;
timerMode = storage.timerUnlocked || false;
// Reset game state
score = 0;
lives = 3;
currentQuestion = 0;
questionDifficulty = 0;
usedQuestions = [];
// Start game
loadQuestion();
}
function loadQuestion() {
canAnswer = true;
currentQuestion++;
// Calculate question difficulty based on progress
questionDifficulty = Math.floor((currentQuestion - 1) / 3);
if (questionDifficulty > 3) questionDifficulty = 3;
if (currentQuestion > questionsPerRound) {
// Phase complete - stay in selected difficulty
checkAchievements();
return;
}
progressDisplay.setProgress(currentQuestion, questionsPerRound);
// Update difficulty visual indicator
var difficultyColors = [0x5EB3FF, 0xFFD700, 0xFF6B6B, 0x9B59B6];
phaseText.tint = difficultyColors[currentPhase];
// Add difficulty indicator
var difficultyText = ' - Nivel ' + (questionDifficulty + 1);
phaseText.setText(phaseNames[currentPhase] + difficultyText);
// Get questions from current phase
var phaseQuestions = questions[currentPhase];
// Filter questions by difficulty
var availableQuestions = [];
for (var i = 0; i < phaseQuestions.length; i++) {
var q = phaseQuestions[i];
// For phases without difficulty property, assign based on index
if (q.difficulty === undefined) {
q.difficulty = Math.floor(i / 3);
}
// Select questions matching current difficulty or close to it
if (Math.abs(q.difficulty - questionDifficulty) <= 1) {
if (usedQuestions.indexOf(i) === -1) {
availableQuestions.push({
question: q,
index: i
});
}
}
}
// If no questions available, reset and get any question
if (availableQuestions.length === 0) {
usedQuestions = [];
for (var i = 0; i < phaseQuestions.length; i++) {
var q = phaseQuestions[i];
if (q.difficulty === undefined) {
q.difficulty = Math.floor(i / 3);
}
if (Math.abs(q.difficulty - questionDifficulty) <= 1) {
availableQuestions.push({
question: q,
index: i
});
}
}
}
// Select random question from available
var selected = availableQuestions[Math.floor(Math.random() * availableQuestions.length)];
var questionData = selected.question;
usedQuestions.push(selected.index);
// Apply darkness mode
if (darknessMode) {
questionDisplay.setQuestion("NOT: " + questionData.q);
} else {
questionDisplay.setQuestion(questionData.q);
}
// Set options
for (var i = 0; i < 4; i++) {
optionButtons[i].setOption(questionData.options[i], i, i === questionData.correct);
}
// Timer mode - reduce time as difficulty increases
if (timerMode) {
timerCount = 300 - questionDifficulty * 60; // 5 seconds minus 1 second per difficulty level
}
}
function checkAnswer(selectedIndex) {
if (!canAnswer) return;
canAnswer = false;
var correct = optionButtons[selectedIndex].isCorrect;
// Darkness mode inverts correct answers
if (darknessMode) {
correct = !correct;
}
if (correct) {
LK.getSound('correct').play();
optionButtons[selectedIndex].showResult(true);
// Progressive scoring based on phase and question difficulty
var baseScores = [5, 10, 20, 40];
var difficultyMultiplier = 1 + questionDifficulty * 0.5; // 1x, 1.5x, 2x, 2.5x
var pointsEarned = Math.floor(baseScores[currentPhase] * difficultyMultiplier);
score += pointsEarned;
scoreText.setText('Score: ' + score);
LK.setScore(score);
// Show points earned
var pointsText = new Text2('+' + pointsEarned, {
size: 48,
fill: 0x00FF00
});
pointsText.anchor.set(0.5, 0.5);
pointsText.x = optionButtons[selectedIndex].x;
pointsText.y = optionButtons[selectedIndex].y - 100;
game.addChild(pointsText);
tween(pointsText, {
y: pointsText.y - 50,
alpha: 0
}, {
duration: 1000,
onFinish: function onFinish() {
pointsText.destroy();
}
});
// Check for unlocks
if (score >= 30 && !guardianMode) {
guardianMode = true;
storage.guardianUnlocked = true;
LK.getSound('unlock').play();
showUnlockMessage("Guardian's Challenge Unlocked!");
}
if (score >= 50 && !darknessMode) {
darknessMode = true;
storage.darknessUnlocked = true;
LK.getSound('unlock').play();
showUnlockMessage("Darkness Mode Unlocked!");
}
if (score >= 70 && !timerMode) {
timerMode = true;
storage.timerUnlocked = true;
LK.getSound('unlock').play();
showUnlockMessage("Timer Mode Unlocked!");
}
} else {
LK.getSound('wrong').play();
optionButtons[selectedIndex].showResult(false);
lives--;
updateLives();
if (lives <= 0) {
LK.showGameOver();
return;
}
}
// Save high score
if (score > (storage.highScore || 0)) {
storage.highScore = score;
}
// Next question after delay
LK.setTimeout(function () {
// Clear indicators
for (var i = 0; i < 4; i++) {
if (optionButtons[i].correctIndicator) {
optionButtons[i].correctIndicator.destroy();
optionButtons[i].correctIndicator = null;
}
if (optionButtons[i].wrongIndicator) {
optionButtons[i].wrongIndicator.destroy();
optionButtons[i].wrongIndicator = null;
}
}
loadQuestion();
}, 1500);
}
function updateLives() {
var hearts = '';
for (var i = 0; i < lives; i++) {
hearts += '❤';
}
livesText.setText('Lives: ' + hearts);
}
function showUnlockMessage(message) {
var unlockText = new Text2(message, {
size: 72,
fill: 0xFFD700
});
unlockText.anchor.set(0.5, 0.5);
unlockText.x = 1024;
unlockText.y = 1366;
unlockText.alpha = 0;
game.addChild(unlockText);
tween(unlockText, {
alpha: 1,
scaleX: 1.2,
scaleY: 1.2
}, {
duration: 500,
easing: tween.easeOut,
onFinish: function onFinish() {
LK.setTimeout(function () {
tween(unlockText, {
alpha: 0
}, {
duration: 500,
onFinish: function onFinish() {
unlockText.destroy();
}
});
}, 2000);
}
});
}
function checkAchievements() {
var rank = 0;
if (score >= 21) rank = 1;
if (score >= 51) rank = 2;
if (score >= 76) rank = 3;
var achievementText = new Text2('Rank: ' + rankNames[rank], {
size: 96,
fill: 0xFFD700
});
achievementText.anchor.set(0.5, 0.5);
achievementText.x = 1024;
achievementText.y = 1366;
game.addChild(achievementText);
if (score >= 100) {
LK.showYouWin();
} else {
LK.setTimeout(function () {
LK.showGameOver();
}, 3000);
}
}
game.update = function () {
if (timerMode && timerCount > 0 && canAnswer) {
timerCount--;
if (timerCount <= 0) {
// Time's up - wrong answer
canAnswer = false;
lives--;
updateLives();
LK.getSound('wrong').play();
if (lives <= 0) {
LK.showGameOver();
} else {
LK.setTimeout(function () {
loadQuestion();
}, 1000);
}
}
}
};
// Initialize the game
initializeGame(); ===================================================================
--- original.js
+++ change.js
@@ -631,9 +631,9 @@
LK.getSound('wrong').play();
optionButtons[selectedIndex].showResult(false);
lives--;
updateLives();
- if (guardianMode || lives <= 0) {
+ if (lives <= 0) {
LK.showGameOver();
return;
}
}
@@ -724,9 +724,9 @@
canAnswer = false;
lives--;
updateLives();
LK.getSound('wrong').play();
- if (guardianMode || lives <= 0) {
+ if (lives <= 0) {
LK.showGameOver();
} else {
LK.setTimeout(function () {
loadQuestion();