User prompt
Los botones principales siguen estando muy pegados separa los más y los iconos del inventario más grandes aun también vamos añadir iconos a la barra hambre, Diversión y fatiga.
User prompt
También has los iconos del inventario más grandes además algunos botones estan muy pegados como el de entranamiento y se sobre ponen con otros
User prompt
Deberíamos hacer los botones un poco más grandes y el texto también sobra mucho espacio y además la barra de diversión y hambre deben bajar más lento por si solas
User prompt
La barra de hambre no baja por si sola y la barra de diversión baja lentamente, la barra de dormir se cambia a fatiga y esta sube solo cuando entrena, falta añadir un icono encima del Digimon que indique si esta lesionado o enfermo. ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
La barra de hambre solo bajara un poco cuando entrenes y juegues con el Digimon además el botón de alimentar lo vamos a quitar y en su lugar añadiremos un inventario abajo de los botones principales en ese inventario en cada nueva partida y solo en estas, el jugador recibirá 10 carnes pequeñas 5 benditas y 3 medicinas, el digimon puede lastimarse si lo entrenas con cansancio y si no le das una bendita esto empeora y se enferma si no le das la medicina se muere y comienzas de nuevo también el digimon muere si la barra de hambre llega a cero y no lo alimentas en 5 minutos, el tiempo de lesión a enfermedad es de 30 minutos, las carnes que existen son, Carne Pequeña, Carne Mediana, Carne Grande, Solomillo. ↪💡 Consider importing and using the following plugins: @upit/storage.v1, @upit/tween.v1
User prompt
Hay que añadir un fondo
User prompt
Please fix the bug: 'Uncaught TypeError: self.updateAppearance is not a function' in or related to this line: 'self.updateAppearance();' Line Number: 159
User prompt
Puedes añadir los assets que faltan de todo eso y por favor arregla bien el teclado digital el espacio y borrar se sobre ponen en otras letras
User prompt
Muy bien falta que los Digimon tengan diferentes apariencia y cada uno evolucione según los parámetros de nivel, ataque, vida, velocidad, peso y ratio de victorias, todas esas estadísticas deberían ser visibles al pulsar el Digimon y por cierto quiero que el jugar es el que ponga el nombre del Digimon con un límite de 7 Caracteres. ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Please fix the bug: 'Script error.' in or related to this line: 'storage.savedGames = savedGames;' Line Number: 893 ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Please fix the bug: 'Uncaught TypeError: storage.get is not a function' in or related to this line: 'var savedGames = storage.get('savedGames') || [];' Line Number: 833 ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Please fix the bug: 'Script error.' in or related to this line: 'storage.savedGames = savedGames;' Line Number: 893
User prompt
Faltaron varias cosas de las que te pedi por favor ↪💡 Consider importing and using the following plugins: @upit/storage.v1, @upit/tween.v1
User prompt
Muy bien pero deberíamos añadir un menu principal donde diga nuevo juego y también ver las partidas guardadas, cuando iniciemos un juego nuevo nos pedirá el nombre del Digimon y escogeremos uno de los 3 digi huevos coloca otros 3 con un candado que se desbloquearan cuando los hayamos comprado dentro del juego o completado una misión tendremos que añadir dinero y una tienda, el dinero se conseguirá jugando con el Digimon o en combates, será necesario implementar un sistema de entrenamiento de ataque, vida y velocidad la defensa se calculará según el peso del Digimon y este se sabrá por la cantidad de comida digerida el entrenamiento bajara un poquito el peso cada vez y la comida lo subirá, añadiremos diferentes comidas con efectos únicos también debemos tener música en la tienda, en el menú principal y en el menú de entrenamiento, el entrenamiento y jugar nos dará experiencia la cual aumentará el nivel de evolución cada Digimon tendrá 5 evoluciones. Más adelante profundizaremos la mecánica de combate rítmica junto con sus tipos y elementos. ↪💡 Consider importing and using the following plugins: @upit/storage.v1, @upit/tween.v1
User prompt
Please fix the bug: 'Cannot read properties of undefined (reading 'setText')' in or related to this line: 'evolutionText.setText(getText('evolutionLevel') + ': ' + pet.evolutionLevel);' Line Number: 412
User prompt
Please fix the bug: 'hungerBar.children[1].setText is not a function' in or related to this line: 'return languages[currentLanguage][key] || key;' Line Number: 400
User prompt
Please fix the bug: 'Cannot read properties of undefined (reading 'setText')' in or related to this line: 'evolutionText.setText(getText('evolutionLevel') + ': ' + pet.evolutionLevel);' Line Number: 415
User prompt
Please fix the bug: 'hungerBar.children[1].setText is not a function' in or related to this line: 'return languages[currentLanguage][key] || key;' Line Number: 400
User prompt
Si y le pones un icono de bandera según el idioma ↪💡 Consider importing and using the following plugins: @upit/storage.v1
Code edit (1 edits merged)
Please save this source code
User prompt
Digi Pet Evolution
Initial prompt
Hola Ava mucho gusto quisiera crear un juego inspirado en los tamagoshi de Digimon
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); var storage = LK.import("@upit/storage.v1"); /**** * Classes ****/ var ActionButton = Container.expand(function (text, color) { var self = Container.call(this); var buttonBg = self.attachAsset('button', { anchorX: 0.5, anchorY: 0.5, tint: color, scaleX: 1.4, scaleY: 1.4 }); var buttonText = new Text2(text, { size: 40, fill: 0xFFFFFF }); buttonText.anchor.set(0.5, 0.5); self.addChild(buttonText); self.down = function (x, y, obj) { tween(self, { scaleX: 0.9, scaleY: 0.9 }, { duration: 100 }); }; self.up = function (x, y, obj) { tween(self, { scaleX: 1, scaleY: 1 }, { duration: 100 }); if (self.onPress) { self.onPress(); } }; return self; }); var DigiEgg = Container.expand(function (eggType, isLocked) { var self = Container.call(this); var eggColors = [0x4CAF50, 0x2196F3, 0xFF9800, 0x9C27B0, 0xF44336, 0xFF5722]; var eggGraphics = self.attachAsset('petBody', { anchorX: 0.5, anchorY: 0.5, tint: eggColors[eggType], scaleX: 0.8, scaleY: 1.2 }); if (isLocked) { var lockOverlay = self.attachAsset('button', { anchorX: 0.5, anchorY: 0.5, tint: 0x666666, alpha: 0.7, scaleX: 0.3, scaleY: 0.3 }); var lockText = new Text2(getText('locked'), { size: 20, fill: 0xFFFFFF }); lockText.anchor.set(0.5, 0.5); lockText.y = 50; self.addChild(lockText); } self.eggType = eggType; self.isLocked = isLocked; self.down = function (x, y, obj) { if (!self.isLocked && self.onSelect) { tween(self, { scaleX: 0.9, scaleY: 0.9 }, { duration: 100 }); self.onSelect(self.eggType); } }; self.up = function (x, y, obj) { if (!self.isLocked) { tween(self, { scaleX: 1, scaleY: 1 }, { duration: 100 }); } }; return self; }); var DigitalPet = Container.expand(function () { var self = Container.call(this); // Pet graphics - will be updated based on evolution var body = null; var leftEye = self.attachAsset('petEye', { anchorX: 0.5, anchorY: 0.5, x: -40, y: -30 }); var rightEye = self.attachAsset('petEye', { anchorX: 0.5, anchorY: 0.5, x: 40, y: -30 }); // Pet stats self.hunger = storage.hunger || 100; self.happiness = storage.happiness || 100; self.fatigue = storage.fatigue || 0; // Changed from energy to fatigue, starts at 0 self.evolutionLevel = storage.evolutionLevel || 0; self.attack = storage.attack || 10; self.health = storage.health || 50; self.speed = storage.speed || 30; self.weight = storage.weight || 50; self.name = storage.petName || 'Digimon'; self.eggType = storage.eggType || 0; self.wins = storage.wins || 0; self.battles = storage.battles || 0; self.lastUpdateTime = Date.now(); // Health system self.injured = storage.injured || false; self.sick = storage.sick || false; self.injuryTime = storage.injuryTime || 0; self.sickTime = storage.sickTime || 0; self.hungerDeathTimer = storage.hungerDeathTimer || 0; // Stats display self.statsDisplay = null; self.showingStats = false; // Health status icon self.statusIcon = null; // Evolution colors self.evolutionColors = [0x4CAF50, 0x2196F3, 0xFF9800, 0x9C27B0, 0xF44336]; self.updateStatusIcon = function () { // Remove existing status icon if (self.statusIcon) { self.removeChild(self.statusIcon); self.statusIcon = null; } // Add status icon if injured or sick if (self.injured || self.sick) { self.statusIcon = new Container(); var iconBg = self.statusIcon.attachAsset('petEye', { anchorX: 0.5, anchorY: 0.5, scaleX: 2, scaleY: 2, tint: self.sick ? 0x800080 : 0xFF0000 // Purple for sick, red for injured }); var iconText = new Text2(self.sick ? '!' : '?', { size: 40, fill: 0xFFFFFF }); iconText.anchor.set(0.5, 0.5); self.statusIcon.addChild(iconText); self.statusIcon.x = 0; self.statusIcon.y = -150; // Position above Digimon self.addChild(self.statusIcon); // Pulsing animation tween(self.statusIcon, { alpha: 0.3 }, { duration: 800, easing: tween.easeInOut, onFinish: function onFinish() { tween(self.statusIcon, { alpha: 1 }, { duration: 800, easing: tween.easeInOut }); } }); } }; self.updateAppearance = function () { // Remove old body if exists if (body) { self.removeChild(body); } // Choose asset based on evolution level var assetNames = ['petBody', 'digimon_rookie', 'digimon_champion', 'digimon_ultimate', 'digimon_mega', 'digimon_ultra']; var assetName = assetNames[self.evolutionLevel] || 'petBody'; // Create new body with evolution-specific asset body = self.attachAsset(assetName, { anchorX: 0.5, anchorY: 0.5 }); // Base colors for different egg types var eggTypeColors = [[0x4CAF50, 0x8BC34A, 0xCDDC39, 0xFFEB3B, 0xFFC107], // Green line evolution [0x2196F3, 0x03A9F4, 0x00BCD4, 0x009688, 0x4DB6AC], // Blue line evolution [0xFF9800, 0xFF5722, 0xF44336, 0xE91E63, 0x9C27B0], // Orange to purple line [0x9C27B0, 0x673AB7, 0x3F51B5, 0x2196F3, 0x00BCD4], // Purple to blue line [0xF44336, 0xFF5722, 0xFF9800, 0xFFC107, 0xFFD54F], // Red to yellow line [0xFF5722, 0x795548, 0x607D8B, 0x455A64, 0x263238] // Orange to dark line ]; var evolutionColors = eggTypeColors[self.eggType] || eggTypeColors[0]; var color = evolutionColors[self.evolutionLevel] || evolutionColors[0]; body.tint = color; // Scale based on evolution level and egg type var baseScale = 0.8 + self.eggType * 0.05; // Different base sizes per egg type var evolutionScale = 1 + self.evolutionLevel * 0.15; // Reduced scaling for better visibility var finalScale = baseScale * evolutionScale; body.scaleX = finalScale; body.scaleY = finalScale; // Eye expressions based on happiness if (self.happiness > 70) { leftEye.scaleY = 1; rightEye.scaleY = 1; } else if (self.happiness > 30) { leftEye.scaleY = 0.8; rightEye.scaleY = 0.8; } else { leftEye.scaleY = 0.5; rightEye.scaleY = 0.5; } // Eye color variations based on egg type var eyeColors = [0x000000, 0x1976D2, 0x8BC34A, 0x7B1FA2, 0xD32F2F, 0x5D4037]; var eyeColor = eyeColors[self.eggType] || 0x000000; leftEye.tint = eyeColor; rightEye.tint = eyeColor; }; // Initialize appearance self.updateAppearance(); self.evolveCheck = function () { var avgStat = (self.hunger + self.happiness + self.energy) / 3; var targetLevel = Math.floor(avgStat / 25); if (targetLevel > self.evolutionLevel && targetLevel < self.evolutionColors.length) { self.evolutionLevel = targetLevel; LK.getSound('evolve').play(); // Evolution animation tween(self, { scaleX: 1.5, scaleY: 1.5 }, { duration: 500, easing: tween.bounceOut, onFinish: function onFinish() { tween(self, { scaleX: 1, scaleY: 1 }, { duration: 300, easing: tween.easeOut }); } }); self.updateAppearance(); LK.effects.flashScreen(0xFFD700, 1000); } }; self.update = function () { var currentTime = Date.now(); var deltaTime = (currentTime - self.lastUpdateTime) / 1000; self.lastUpdateTime = currentTime; // Decay stats over time - hunger no longer decreases automatically // self.hunger = Math.max(0, self.hunger - deltaTime * 2); // Removed automatic hunger decrease self.happiness = Math.max(0, self.happiness - deltaTime * 0.1); // Much slower happiness decrease (fun bar) // Energy is now fatigue - it doesn't decrease automatically, only increases during training // Health system timers if (self.injured) { self.injuryTime += deltaTime; // After 30 minutes (1800 seconds) injury becomes sickness if (self.injuryTime >= 1800) { self.injured = false; self.sick = true; self.injuryTime = 0; self.sickTime = 0; LK.effects.flashObject(self, 0x800080, 1000); } } if (self.sick) { self.sickTime += deltaTime; // Sick Digimon dies after some time without medicine if (self.sickTime >= 300) { // 5 minutes self.die(); return; } } // Hunger death timer if (self.hunger <= 0) { self.hungerDeathTimer += deltaTime; if (self.hungerDeathTimer >= 300) { // 5 minutes self.die(); return; } } else { self.hungerDeathTimer = 0; } // Idle animation if (LK.ticks % 120 === 0) { tween(self, { y: self.y - 20 }, { duration: 500, easing: tween.easeInOut, onFinish: function onFinish() { tween(self, { y: self.y + 20 }, { duration: 500, easing: tween.easeInOut }); } }); } self.updateAppearance(); self.updateStatusIcon(); // Update health status icon self.evolveCheck(); // Calculate defense based on weight self.defense = Math.floor(self.weight / 2); // Save stats storage.hunger = self.hunger; storage.happiness = self.happiness; storage.fatigue = self.fatigue; // Changed from energy to fatigue storage.evolutionLevel = self.evolutionLevel; storage.attack = self.attack; storage.health = self.health; storage.speed = self.speed; storage.weight = self.weight; storage.petName = self.name; storage.eggType = self.eggType; storage.wins = self.wins; storage.battles = self.battles; storage.injured = self.injured; storage.sick = self.sick; storage.injuryTime = self.injuryTime; storage.sickTime = self.sickTime; storage.hungerDeathTimer = self.hungerDeathTimer; }; self.down = function (x, y, obj) { if (self.showingStats) { self.hideStats(); } else { self.showStats(); } }; self.showStats = function () { if (self.statsDisplay) return; self.showingStats = true; var winRate = self.battles > 0 ? Math.round(self.wins / self.battles * 100) : 0; self.statsDisplay = new Container(); var statsBg = self.statsDisplay.attachAsset('gameArea', { anchorX: 0.5, anchorY: 0.5, scaleX: 3, scaleY: 2.5, tint: 0x263238, alpha: 0.9 }); var statsText = new Text2(self.name + '\n\n' + getText('evolutionLevel') + ': ' + self.evolutionLevel + '\n' + getText('attack') + ': ' + Math.floor(self.attack) + '\n' + getText('health') + ': ' + Math.floor(self.health) + '\n' + getText('speed') + ': ' + Math.floor(self.speed) + '\n' + getText('defense') + ': ' + Math.floor(self.defense) + '\n' + getText('weight') + ': ' + Math.floor(self.weight) + '\n' + 'Win Rate: ' + winRate + '%', { size: 30, fill: 0xFFFFFF }); statsText.anchor.set(0.5, 0.5); self.statsDisplay.addChild(statsText); self.statsDisplay.x = 0; self.statsDisplay.y = -200; self.addChild(self.statsDisplay); // Auto hide after 3 seconds LK.setTimeout(function () { if (self.showingStats) { self.hideStats(); } }, 3000); }; self.hideStats = function () { if (self.statsDisplay) { self.removeChild(self.statsDisplay); self.statsDisplay = null; self.showingStats = false; } }; self.die = function () { LK.effects.flashScreen(0x000000, 2000); LK.setTimeout(function () { // Clear all storage and restart storage.hunger = 100; storage.happiness = 100; storage.energy = 100; storage.evolutionLevel = 0; storage.attack = 10; storage.health = 50; storage.speed = 30; storage.weight = 50; storage.injured = false; storage.sick = false; storage.injuryTime = 0; storage.sickTime = 0; storage.hungerDeathTimer = 0; // Give new starter items storage.smallMeat = 10; storage.blessing = 5; storage.medicine = 3; showMainMenu(); }, 2000); }; self.train = function () { // Increase fatigue during training self.fatigue = Math.min(100, self.fatigue + 15); if (self.fatigue > 80) { // Training while tired causes injury if (!self.injured && !self.sick) { self.injured = true; self.injuryTime = 0; LK.effects.flashObject(self, 0xFF0000, 1000); } } // Reduce hunger slightly during training self.hunger = Math.max(0, self.hunger - 3); }; return self; }); var Inventory = Container.expand(function () { var self = Container.call(this); // Initialize inventory items self.items = { smallMeat: storage.smallMeat || 0, mediumMeat: storage.mediumMeat || 0, largeMeat: storage.largeMeat || 0, sirloin: storage.sirloin || 0, blessing: storage.blessing || 0, medicine: storage.medicine || 0 }; self.slots = []; // Create inventory slots var itemTypes = ['smallMeat', 'mediumMeat', 'largeMeat', 'sirloin', 'blessing', 'medicine']; for (var i = 0; i < itemTypes.length; i++) { var slot = new Container(); var slotBg = slot.attachAsset('inventorySlot', { anchorX: 0.5, anchorY: 0.5 }); var itemIcon = slot.attachAsset(itemTypes[i], { anchorX: 0.5, anchorY: 0.5, scaleX: 2.0, scaleY: 2.0 }); var countText = new Text2('0', { size: 18, fill: 0xFFFFFF }); countText.anchor.set(0.5, 1); countText.y = 35; slot.addChild(countText); slot.itemType = itemTypes[i]; slot.x = i * 120; slot.y = 0; slot.down = function (x, y, obj) { if (self.items[this.itemType] > 0) { self.useItem(this.itemType); } }; self.addChild(slot); self.slots.push(slot); } self.useItem = function (itemType) { if (self.items[itemType] <= 0) return; self.items[itemType]--; switch (itemType) { case 'smallMeat': pet.hunger = Math.min(100, pet.hunger + 15); break; case 'mediumMeat': pet.hunger = Math.min(100, pet.hunger + 30); break; case 'largeMeat': pet.hunger = Math.min(100, pet.hunger + 50); break; case 'sirloin': pet.hunger = Math.min(100, pet.hunger + 75); break; case 'blessing': if (pet.injured) { pet.injured = false; pet.injuryTime = 0; LK.effects.flashObject(pet, 0xFFD700, 1000); } break; case 'medicine': if (pet.sick) { pet.sick = false; pet.sickTime = 0; LK.effects.flashObject(pet, 0x4CAF50, 1000); } break; } self.updateDisplay(); self.saveItems(); LK.getSound('feed').play(); }; self.updateDisplay = function () { for (var i = 0; i < self.slots.length; i++) { var slot = self.slots[i]; var count = self.items[slot.itemType]; slot.children[2].setText(count.toString()); } }; self.saveItems = function () { storage.smallMeat = self.items.smallMeat; storage.mediumMeat = self.items.mediumMeat; storage.largeMeat = self.items.largeMeat; storage.sirloin = self.items.sirloin; storage.blessing = self.items.blessing; storage.medicine = self.items.medicine; }; self.updateDisplay(); return self; }); var LanguageButton = Container.expand(function () { var self = Container.call(this); var buttonBg = self.attachAsset('languageButton', { anchorX: 0.5, anchorY: 0.5 }); var flagEN = self.attachAsset('flagEN', { anchorX: 0.5, anchorY: 0.5, x: -15, scaleX: 0.4, scaleY: 0.4 }); var flagES = self.attachAsset('flagES', { anchorX: 0.5, anchorY: 0.5, x: 15, scaleX: 0.4, scaleY: 0.4 }); // Add EN/ES text overlay var textEN = new Text2('EN', { size: 12, fill: 0xFFFFFF }); textEN.anchor.set(0.5, 0.5); textEN.x = -15; flagEN.addChild(textEN); var textES = new Text2('ES', { size: 12, fill: 0xFFFFFF }); textES.anchor.set(0.5, 0.5); textES.x = 15; flagES.addChild(textES); self.updateDisplay = function () { if (currentLanguage === 'en') { flagEN.alpha = 1; flagES.alpha = 0.5; } else { flagEN.alpha = 0.5; flagES.alpha = 1; } }; self.down = function (x, y, obj) { tween(self, { scaleX: 0.9, scaleY: 0.9 }, { duration: 100 }); }; self.up = function (x, y, obj) { tween(self, { scaleX: 1, scaleY: 1 }, { duration: 100 }); // Toggle language currentLanguage = currentLanguage === 'en' ? 'es' : 'en'; storage.currentLanguage = currentLanguage; self.updateDisplay(); updateAllTexts(); }; self.updateDisplay(); return self; }); var MainMenu = Container.expand(function () { var self = Container.call(this); var titleText = new Text2('Digital Pet', { size: 80, fill: 0x2196F3 }); titleText.anchor.set(0.5, 0.5); titleText.x = 1024; titleText.y = 400; self.addChild(titleText); var newGameButton = new ActionButton(getText('newGame'), 0x4CAF50); newGameButton.x = 1024; newGameButton.y = 800; newGameButton.onPress = function () { showEggSelection(); }; self.addChild(newGameButton); var savedGamesButton = new ActionButton(getText('savedGames'), 0x2196F3); savedGamesButton.x = 1024; savedGamesButton.y = 950; savedGamesButton.onPress = function () { showSavedGames(); }; self.addChild(savedGamesButton); return self; }); var MiniGame = Container.expand(function () { var self = Container.call(this); var gameArea = self.attachAsset('gameArea', { anchorX: 0.5, anchorY: 0.5 }); var target = self.attachAsset('target', { anchorX: 0.5, anchorY: 0.5 }); self.score = 0; self.timeLeft = 10; self.gameActive = false; var scoreText = new Text2('Score: 0', { size: 30, fill: 0x333333 }); scoreText.anchor.set(0.5, 0); scoreText.y = -180; self.addChild(scoreText); var timerText = new Text2('Time: 10', { size: 30, fill: 0x333333 }); timerText.anchor.set(0.5, 0); timerText.y = -140; self.addChild(timerText); self.startGame = function () { self.gameActive = true; self.score = 0; self.timeLeft = 10; scoreText.setText(getText('score') + ': 0'); timerText.setText(getText('time') + ': 10'); self.moveTarget(); var gameTimer = LK.setInterval(function () { self.timeLeft -= 0.1; timerText.setText(getText('time') + ': ' + Math.ceil(self.timeLeft)); if (self.timeLeft <= 0) { LK.clearInterval(gameTimer); self.endGame(); } }, 100); }; self.moveTarget = function () { if (!self.gameActive) return; var newX = (Math.random() - 0.5) * 300; var newY = (Math.random() - 0.5) * 300; tween(target, { x: newX, y: newY }, { duration: 200, easing: tween.easeOut }); }; self.endGame = function () { self.gameActive = false; var happiness = Math.min(20, self.score * 2); pet.happiness = Math.min(100, pet.happiness + happiness); pet.fatigue = Math.min(100, pet.fatigue + 10); // Increase fatigue instead of decreasing energy pet.hunger = Math.max(0, pet.hunger - 5); if (self.onGameEnd) { self.onGameEnd(self.score); } }; target.down = function (x, y, obj) { if (!self.gameActive) return; self.score++; scoreText.setText(getText('score') + ': ' + self.score); LK.getSound('play').play(); tween(target, { scaleX: 1.3, scaleY: 1.3 }, { duration: 100, onFinish: function onFinish() { tween(target, { scaleX: 1, scaleY: 1 }, { duration: 100 }); } }); self.moveTarget(); }; return self; }); var Shop = Container.expand(function () { var self = Container.call(this); var shopBg = self.attachAsset('gameArea', { anchorX: 0.5, anchorY: 0.5, scaleX: 4, scaleY: 5, tint: 0xE3F2FD }); var titleText = new Text2(getText('shop'), { size: 60, fill: 0x1976D2 }); titleText.anchor.set(0.5, 0.5); titleText.y = -800; self.addChild(titleText); var moneyText = new Text2(getText('money') + ': ' + (storage.money || 0), { size: 40, fill: 0x388E3C }); moneyText.anchor.set(0.5, 0.5); moneyText.y = -700; self.addChild(moneyText); // Shop items var shopItems = [{ name: 'Super Food', price: 50, effect: 'hunger+50' }, { name: 'Energy Drink', price: 30, effect: 'energy+40' }, { name: 'Happy Toy', price: 40, effect: 'happiness+30' }]; var itemButtons = []; for (var i = 0; i < shopItems.length; i++) { var item = shopItems[i]; var itemButton = new ActionButton(item.name + ' (' + item.price + ')', 0xFF9800); itemButton.x = 0; itemButton.y = -400 + i * 150; itemButton.itemData = item; itemButton.onPress = function () { if ((storage.money || 0) >= this.itemData.price) { storage.money = (storage.money || 0) - this.itemData.price; // Apply item effect if (this.itemData.effect.includes('hunger')) { pet.hunger = Math.min(100, pet.hunger + 50); } else if (this.itemData.effect.includes('energy')) { pet.energy = Math.min(100, pet.energy + 40); } else if (this.itemData.effect.includes('happiness')) { pet.happiness = Math.min(100, pet.happiness + 30); } moneyText.setText(getText('money') + ': ' + storage.money); LK.getSound('feed').play(); } }; self.addChild(itemButton); itemButtons.push(itemButton); } var closeButton = new ActionButton('X', 0xF44336); closeButton.x = 600; closeButton.y = -800; closeButton.onPress = function () { LK.playMusic('Luna'); gameState = 'game'; game.removeChild(shop); }; self.addChild(closeButton); return self; }); var StatBar = Container.expand(function (label, color, iconAsset) { var self = Container.call(this); var background = self.attachAsset('statBar', { anchorX: 0, anchorY: 0.5 }); var fill = self.attachAsset('statFill', { anchorX: 0, anchorY: 0.5, tint: color, scaleX: 1 }); // Add icon if provided if (iconAsset) { var icon = self.attachAsset(iconAsset, { anchorX: 0.5, anchorY: 0.5, x: -120, scaleX: 1.2, scaleY: 1.2 }); } var labelText = new Text2(label, { size: 25, fill: 0x333333 }); labelText.anchor.set(0, 0.5); labelText.x = -80; self.addChild(labelText); self.updateValue = function (value) { var percentage = Math.max(0, Math.min(100, value)) / 100; tween(fill, { scaleX: percentage }, { duration: 300, easing: tween.easeOut }); }; self.updateLabel = function (newLabel) { labelText.setText(newLabel); }; return self; }); var Training = Container.expand(function () { var self = Container.call(this); var trainingBg = self.attachAsset('gameArea', { anchorX: 0.5, anchorY: 0.5, scaleX: 4, scaleY: 5, tint: 0xFFF3E0 }); var titleText = new Text2(getText('training'), { size: 60, fill: 0xE65100 }); titleText.anchor.set(0.5, 0.5); titleText.y = -800; self.addChild(titleText); // Training stats var attackBar = new TrainingBar(getText('attack'), 0xF44336, 100); attackBar.x = -150; attackBar.y = -500; self.addChild(attackBar); var healthBar = new TrainingBar(getText('health'), 0x4CAF50, 100); healthBar.x = -150; healthBar.y = -400; self.addChild(healthBar); var speedBar = new TrainingBar(getText('speed'), 0x2196F3, 100); speedBar.x = -150; speedBar.y = -300; self.addChild(speedBar); var weightText = new Text2(getText('weight') + ': ' + (pet.weight || 50), { size: 30, fill: 0x795548 }); weightText.anchor.set(0.5, 0.5); weightText.y = -150; self.addChild(weightText); // Training buttons var trainAttackButton = new ActionButton(getText('train') + ' ' + getText('attack'), 0xF44336); trainAttackButton.x = -200; trainAttackButton.y = 100; trainAttackButton.onPress = function () { if (pet.fatigue < 90) { // Check fatigue instead of energy pet.attack = Math.min(100, (pet.attack || 0) + 5); pet.weight = Math.max(20, (pet.weight || 50) - 1); pet.train(); attackBar.updateValue(pet.attack); weightText.setText(getText('weight') + ': ' + pet.weight); storage.money = (storage.money || 0) + 5; LK.getSound('play').play(); } }; self.addChild(trainAttackButton); var trainHealthButton = new ActionButton(getText('train') + ' ' + getText('health'), 0x4CAF50); trainHealthButton.x = 0; trainHealthButton.y = 100; trainHealthButton.onPress = function () { if (pet.fatigue < 90) { // Check fatigue instead of energy pet.health = Math.min(100, (pet.health || 0) + 5); pet.weight = Math.max(20, (pet.weight || 50) - 1); pet.train(); healthBar.updateValue(pet.health); weightText.setText(getText('weight') + ': ' + pet.weight); storage.money = (storage.money || 0) + 5; LK.getSound('play').play(); } }; self.addChild(trainHealthButton); var trainSpeedButton = new ActionButton(getText('train') + ' ' + getText('speed'), 0x2196F3); trainSpeedButton.x = 200; trainSpeedButton.y = 100; trainSpeedButton.onPress = function () { if (pet.fatigue < 90) { // Check fatigue instead of energy pet.speed = Math.min(100, (pet.speed || 0) + 5); pet.weight = Math.max(20, (pet.weight || 50) - 1); pet.train(); speedBar.updateValue(pet.speed); weightText.setText(getText('weight') + ': ' + pet.weight); storage.money = (storage.money || 0) + 5; LK.getSound('play').play(); } }; self.addChild(trainSpeedButton); var closeButton = new ActionButton('X', 0xF44336); closeButton.x = 600; closeButton.y = -800; closeButton.onPress = function () { LK.playMusic('Luna'); gameState = 'game'; game.removeChild(training); }; self.addChild(closeButton); self.updateBars = function () { attackBar.updateValue(pet.attack || 0); healthBar.updateValue(pet.health || 0); speedBar.updateValue(pet.speed || 0); weightText.setText(getText('weight') + ': ' + (pet.weight || 50)); }; return self; }); var TrainingBar = Container.expand(function (label, color, maxValue) { var self = Container.call(this); var background = self.attachAsset('statBar', { anchorX: 0, anchorY: 0.5 }); var fill = self.attachAsset('statFill', { anchorX: 0, anchorY: 0.5, tint: color, scaleX: 0 }); var labelText = new Text2(label, { size: 20, fill: 0x333333 }); labelText.anchor.set(0, 0.5); labelText.x = -80; self.addChild(labelText); var valueText = new Text2('0/' + maxValue, { size: 18, fill: 0x333333 }); valueText.anchor.set(1, 0.5); valueText.x = 320; self.addChild(valueText); self.updateValue = function (value) { var percentage = Math.max(0, Math.min(maxValue, value)) / maxValue; tween(fill, { scaleX: percentage }, { duration: 300, easing: tween.easeOut }); valueText.setText(Math.floor(value) + '/' + maxValue); }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0xE8F5E8 }); /**** * Game Code ****/ // Game state management var gameState = 'menu'; // 'menu', 'game', 'pause' var gameData = storage.gameData || {}; // Language system var languages = { en: { feed: "Feed", play: "Play", sleep: "Sleep", hunger: "Hunger", happy: "Fun", energy: "Fatigue", evolutionLevel: "Evolution Level", score: "Score", time: "Time", newGame: "New Game", savedGames: "Saved Games", mainMenu: "Main Menu", digimonName: "Digimon Name", chooseEgg: "Choose Your Digi-Egg", money: "Money", shop: "Shop", training: "Training", attack: "Attack", health: "Health", speed: "Speed", defense: "Defense", weight: "Weight", locked: "Locked", buy: "Buy", train: "Train" }, es: { feed: "Alimentar", play: "Jugar", sleep: "Dormir", hunger: "Hambre", happy: "Diversión", energy: "Fatiga", evolutionLevel: "Nivel de Evolución", score: "Puntuación", time: "Tiempo", newGame: "Nuevo Juego", savedGames: "Partidas Guardadas", mainMenu: "Menú Principal", digimonName: "Nombre del Digimon", chooseEgg: "Elige tu Digi-Huevo", money: "Dinero", shop: "Tienda", training: "Entrenamiento", attack: "Ataque", health: "Vida", speed: "Velocidad", defense: "Defensa", weight: "Peso", locked: "Bloqueado", buy: "Comprar", train: "Entrenar" } }; var currentLanguage = storage.currentLanguage || 'en'; function getText(key) { return languages[currentLanguage][key] || key; } // Game variables var mainMenu, pet, hungerBar, happinessBar, energyBar, evolutionText; var feedButton, playButton, sleepButton, shopButton, trainingButton; var shop, training; // Initialize money if not exists if (!storage.money) storage.money = 100; function updateAllTexts() { if (gameState === 'game') { // Update action buttons if (playButton) playButton.children[1].setText(getText('play')); if (sleepButton) sleepButton.children[1].setText(getText('sleep')); if (shopButton) shopButton.children[1].setText(getText('shop')); if (trainingButton) trainingButton.children[1].setText(getText('training')); // Update stat bar labels if (hungerBar) hungerBar.updateLabel(getText('hunger')); if (happinessBar) happinessBar.updateLabel(getText('happy')); if (energyBar) energyBar.updateLabel(getText('energy')); // Update evolution text if (evolutionText && pet) evolutionText.setText(getText('evolutionLevel') + ': ' + pet.evolutionLevel); } } function showMainMenu() { gameState = 'menu'; LK.playMusic('menuMusic'); game.removeChildren(); mainMenu = game.addChild(new MainMenu()); } function showEggSelection() { game.removeChildren(); var titleText = new Text2(getText('chooseEgg'), { size: 60, fill: 0x2196F3 }); titleText.anchor.set(0.5, 0.5); titleText.x = 1024; titleText.y = 300; game.addChild(titleText); // Create 6 eggs (3 unlocked, 3 locked) var eggs = []; for (var i = 0; i < 6; i++) { var isLocked = i >= 3 && (storage.money || 0) < 500 && (storage.completedMissions || 0) < 1; var egg = new DigiEgg(i, isLocked); egg.x = 400 + i % 3 * 400; egg.y = 600 + Math.floor(i / 3) * 300; egg.onSelect = function (eggType) { showDigimonNaming(eggType); }; game.addChild(egg); eggs.push(egg); } var backButton = new ActionButton(getText('mainMenu'), 0x9E9E9E); backButton.x = 200; backButton.y = 1200; backButton.onPress = function () { showMainMenu(); }; game.addChild(backButton); } function showSavedGames() { game.removeChildren(); var titleText = new Text2(getText('savedGames'), { size: 60, fill: 0x2196F3 }); titleText.anchor.set(0.5, 0.5); titleText.x = 1024; titleText.y = 400; game.addChild(titleText); // Check for saved games var saveCount = storage.saveCount || 0; var savedGames = []; for (var i = 0; i < saveCount; i++) { var saveData = storage['save_' + i]; if (saveData) { savedGames.push(saveData); } } if (savedGames.length === 0) { var noSavesText = new Text2('No saved games yet', { size: 40, fill: 0x666666 }); noSavesText.anchor.set(0.5, 0.5); noSavesText.x = 1024; noSavesText.y = 600; game.addChild(noSavesText); } else { // Display saved games for (var i = 0; i < savedGames.length && i < 5; i++) { var saveData = savedGames[i]; var saveButton = new ActionButton(saveData.petName + ' (Lv.' + saveData.evolutionLevel + ')', 0x4CAF50); saveButton.x = 1024; saveButton.y = 500 + i * 100; saveButton.saveIndex = i; saveButton.onPress = function () { loadGame(this.saveIndex); }; game.addChild(saveButton); } } var backButton = new ActionButton(getText('mainMenu'), 0x9E9E9E); backButton.x = 1024; backButton.y = 1000; backButton.onPress = function () { showMainMenu(); }; game.addChild(backButton); } function saveGame() { // Get current save count var saveCount = storage.saveCount || 0; var saveData = { petName: pet.name, evolutionLevel: pet.evolutionLevel, hunger: pet.hunger, happiness: pet.happiness, energy: pet.energy, attack: pet.attack, health: pet.health, speed: pet.speed, weight: pet.weight, eggType: pet.eggType, money: storage.money || 0, timestamp: Date.now() }; // Check if save with same name exists and replace it var existingSaveIndex = -1; for (var i = 0; i < saveCount; i++) { var existingSave = storage['save_' + i]; if (existingSave && existingSave.petName === pet.name) { existingSaveIndex = i; break; } } if (existingSaveIndex >= 0) { // Replace existing save storage['save_' + existingSaveIndex] = saveData; } else { // Add new save if (saveCount >= 5) { // Remove oldest save and shift all saves down for (var j = 0; j < 4; j++) { storage['save_' + j] = storage['save_' + (j + 1)]; } storage['save_4'] = saveData; } else { storage['save_' + saveCount] = saveData; storage.saveCount = saveCount + 1; } } } function loadGame(saveIndex) { var saveData = storage['save_' + saveIndex]; if (saveData) { // Load all saved data storage.petName = saveData.petName; storage.evolutionLevel = saveData.evolutionLevel; storage.hunger = saveData.hunger; storage.happiness = saveData.happiness; storage.energy = saveData.energy; storage.attack = saveData.attack; storage.health = saveData.health; storage.speed = saveData.speed; storage.weight = saveData.weight; storage.eggType = saveData.eggType; storage.money = saveData.money; startNewGame(); } } function showDigimonNaming(eggType) { game.removeChildren(); var titleText = new Text2(getText('digimonName') + ' (Max 7 chars)', { size: 60, fill: 0x2196F3 }); titleText.anchor.set(0.5, 0.5); titleText.x = 1024; titleText.y = 300; game.addChild(titleText); // Custom name input system var customName = ''; var nameText = new Text2(customName || 'Enter name...', { size: 50, fill: customName ? 0x333333 : 0x999999 }); nameText.anchor.set(0.5, 0.5); nameText.x = 1024; nameText.y = 500; game.addChild(nameText); // Character input keyboard - organized in 3 rows of 9 letters each var keyboard = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; var keyboardButtons = []; var startX = 250; var startY = 700; var keyWidth = 140; var keyHeight = 90; var keySpacing = 10; for (var i = 0; i < keyboard.length; i++) { var letter = keyboard[i]; var keyButton = new Container(); // Create key background using new asset var keyBg = keyButton.attachAsset('keyboardKey', { anchorX: 0.5, anchorY: 0.5, scaleX: keyWidth / 120, scaleY: keyHeight / 80 }); // Add letter text var keyText = new Text2(letter, { size: 35, fill: 0xFFFFFF }); keyText.anchor.set(0.5, 0.5); keyButton.addChild(keyText); // Position in 3 rows of 9 var row = Math.floor(i / 9); var col = i % 9; keyButton.x = startX + col * (keyWidth + keySpacing); keyButton.y = startY + row * (keyHeight + keySpacing); keyButton.letter = letter; keyButton.down = function (x, y, obj) { tween(this, { scaleX: 0.9, scaleY: 0.9 }, { duration: 100 }); }; keyButton.up = function (x, y, obj) { tween(this, { scaleX: 1, scaleY: 1 }, { duration: 100 }); if (customName.length < 7) { customName += this.letter; nameText.setText(customName); nameText.fill = 0x333333; } }; game.addChild(keyButton); keyboardButtons.push(keyButton); } // Add space and delete buttons with proper spacing var spaceButton = new Container(); var spaceBg = spaceButton.attachAsset('specialKey', { anchorX: 0.5, anchorY: 0.5, scaleX: 2, scaleY: keyHeight / 80 }); var spaceText = new Text2('SPACE', { size: 30, fill: 0xFFFFFF }); spaceText.anchor.set(0.5, 0.5); spaceButton.addChild(spaceText); spaceButton.x = 700; spaceButton.y = startY + 3 * (keyHeight + keySpacing); spaceButton.down = function (x, y, obj) { tween(this, { scaleX: 0.9, scaleY: 0.9 }, { duration: 100 }); }; spaceButton.up = function (x, y, obj) { tween(this, { scaleX: 1, scaleY: 1 }, { duration: 100 }); if (customName.length < 7 && customName.length > 0) { customName += ' '; nameText.setText(customName); } }; game.addChild(spaceButton); var deleteButton = new Container(); var deleteBg = deleteButton.attachAsset('specialKey', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.5, scaleY: keyHeight / 80, tint: 0xF44336 }); var deleteText = new Text2('DELETE', { size: 28, fill: 0xFFFFFF }); deleteText.anchor.set(0.5, 0.5); deleteButton.addChild(deleteText); deleteButton.x = 1100; deleteButton.y = startY + 3 * (keyHeight + keySpacing); deleteButton.down = function (x, y, obj) { tween(this, { scaleX: 0.9, scaleY: 0.9 }, { duration: 100 }); }; deleteButton.up = function (x, y, obj) { tween(this, { scaleX: 1, scaleY: 1 }, { duration: 100 }); if (customName.length > 0) { customName = customName.slice(0, -1); nameText.setText(customName || 'Enter name...'); nameText.fill = customName ? 0x333333 : 0x999999; } }; game.addChild(deleteButton); // Preset name suggestions - positioned below keyboard var presetNames = ['Agumon', 'Gabumon', 'Patamon', 'Palmon', 'Gomamon', 'Biyomon']; var suggestionsText = new Text2('Quick select:', { size: 30, fill: 0x666666 }); suggestionsText.anchor.set(0.5, 0.5); suggestionsText.x = 1024; suggestionsText.y = 1200; game.addChild(suggestionsText); for (var i = 0; i < presetNames.length && i < 3; i++) { var nameButton = new ActionButton(presetNames[i], 0xFF9800); nameButton.x = 600 + i * 250; nameButton.y = 1280; nameButton.nameValue = presetNames[i]; nameButton.onPress = function () { customName = this.nameValue; nameText.setText(customName); nameText.fill = 0x333333; }; game.addChild(nameButton); } var confirmButton = new ActionButton('OK', 0x4CAF50); confirmButton.x = 1024; confirmButton.y = 1450; confirmButton.onPress = function () { if (customName.length > 0) { storage.petName = customName; storage.eggType = eggType; startNewGame(); } }; game.addChild(confirmButton); var backButton = new ActionButton(getText('mainMenu'), 0x9E9E9E); backButton.x = 1024; backButton.y = 1550; backButton.onPress = function () { showEggSelection(); }; game.addChild(backButton); } function startNewGame() { gameState = 'game'; game.removeChildren(); // Initialize starter inventory for new games only if (!storage.hasStarterItems) { storage.smallMeat = 10; storage.mediumMeat = 0; storage.largeMeat = 0; storage.sirloin = 0; storage.blessing = 5; storage.medicine = 3; storage.hasStarterItems = true; } initializeGameplay(); } function initializeGameplay() { // Add background image var background = game.attachAsset('gameBackground', { anchorX: 0, anchorY: 0, x: 0, y: 0 }); // Start game music LK.playMusic('Luna'); // Create pet pet = game.addChild(new DigitalPet()); pet.x = 1024; pet.y = 800; // UI Elements hungerBar = new StatBar(getText('hunger'), 0xFF5722, 'hungerIcon'); hungerBar.x = 400; hungerBar.y = 200; game.addChild(hungerBar); happinessBar = new StatBar(getText('happy'), 0xFFEB3B, 'funIcon'); happinessBar.x = 400; happinessBar.y = 280; game.addChild(happinessBar); energyBar = new StatBar(getText('energy'), 0x2196F3, 'fatigueIcon'); // This will now show "Fatigue" energyBar.x = 400; energyBar.y = 360; game.addChild(energyBar); // Inventory var inventory = new Inventory(); inventory.x = 300; inventory.y = 1450; game.addChild(inventory); playButton = new ActionButton(getText('play'), 0xFF9800); playButton.x = 120; playButton.y = 1300; playButton.onPress = function () { if (pet.fatigue > 80) { // Check if too tired to play LK.effects.flashObject(pet, 0xFF0000, 500); return; } var miniGame = new MiniGame(); miniGame.x = 1024; miniGame.y = 1200; game.addChild(miniGame); miniGame.onGameEnd = function (score) { game.removeChild(miniGame); storage.money = (storage.money || 0) + score; }; miniGame.startGame(); }; game.addChild(playButton); sleepButton = new ActionButton(getText('sleep'), 0x9C27B0); sleepButton.x = 320; sleepButton.y = 1300; sleepButton.onPress = function () { pet.fatigue = Math.max(0, pet.fatigue - 30); // Reduce fatigue instead of increasing energy pet.hunger = Math.max(0, pet.hunger - 5); LK.getSound('sleep').play(); tween(pet, { alpha: 0.5 }, { duration: 500, onFinish: function onFinish() { tween(pet, { alpha: 1 }, { duration: 500 }); } }); }; game.addChild(sleepButton); shopButton = new ActionButton(getText('shop'), 0x795548); shopButton.x = 520; shopButton.y = 1300; shopButton.onPress = function () { LK.playMusic('shopMusic'); shop = game.addChild(new Shop()); shop.x = 1024; shop.y = 1366; gameState = 'pause'; }; game.addChild(shopButton); trainingButton = new ActionButton(getText('training'), 0xE65100); trainingButton.x = 720; trainingButton.y = 1300; trainingButton.onPress = function () { LK.playMusic('trainingMusic'); training = game.addChild(new Training()); training.x = 1024; training.y = 1366; training.updateBars(); gameState = 'pause'; }; game.addChild(trainingButton); // Add save game button var saveButton = new ActionButton('Save', 0x607D8B); saveButton.x = 920; saveButton.y = 1300; saveButton.onPress = function () { if (pet) { saveGame(); LK.effects.flashScreen(0x4CAF50, 500); } }; game.addChild(saveButton); // Evolution display evolutionText = new Text2(getText('evolutionLevel') + ': 0', { size: 40, fill: 0x333333 }); evolutionText.anchor.set(0.5, 0); evolutionText.x = 1024; evolutionText.y = 600; game.addChild(evolutionText); // Money display var moneyText = new Text2(getText('money') + ': ' + (storage.money || 0), { size: 30, fill: 0x388E3C }); moneyText.anchor.set(0, 0); moneyText.x = 100; moneyText.y = 100; LK.gui.topLeft.addChild(moneyText); updateAllTexts(); } // Language button var languageButton = new LanguageButton(); LK.gui.topRight.addChild(languageButton); languageButton.x = -50; languageButton.y = 50; // Start with main menu showMainMenu(); game.update = function () { if (gameState === 'game' && pet) { // Update stat bars hungerBar.updateValue(pet.hunger); happinessBar.updateValue(pet.happiness); energyBar.updateValue(pet.fatigue); // Use fatigue instead of energy // Update evolution display evolutionText.setText(getText('evolutionLevel') + ': ' + pet.evolutionLevel); // Update money display if (LK.gui.topLeft.children[0]) { LK.gui.topLeft.children[0].setText(getText('money') + ': ' + (storage.money || 0)); } // Warning effects for low stats if (pet.hunger < 20 && LK.ticks % 60 === 0) { LK.effects.flashObject(hungerBar, 0xFF0000, 300); } if (pet.happiness < 20 && LK.ticks % 60 === 0) { LK.effects.flashObject(happinessBar, 0xFF0000, 300); } if (pet.fatigue > 80 && LK.ticks % 60 === 0) { // Warning when fatigue is high LK.effects.flashObject(energyBar, 0xFF0000, 300); } } };
===================================================================
--- original.js
+++ change.js
@@ -447,10 +447,10 @@
});
var itemIcon = slot.attachAsset(itemTypes[i], {
anchorX: 0.5,
anchorY: 0.5,
- scaleX: 1.5,
- scaleY: 1.5
+ scaleX: 2.0,
+ scaleY: 2.0
});
var countText = new Text2('0', {
size: 18,
fill: 0xFFFFFF
@@ -776,9 +776,9 @@
};
self.addChild(closeButton);
return self;
});
-var StatBar = Container.expand(function (label, color) {
+var StatBar = Container.expand(function (label, color, iconAsset) {
var self = Container.call(this);
var background = self.attachAsset('statBar', {
anchorX: 0,
anchorY: 0.5
@@ -788,8 +788,18 @@
anchorY: 0.5,
tint: color,
scaleX: 1
});
+ // Add icon if provided
+ if (iconAsset) {
+ var icon = self.attachAsset(iconAsset, {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: -120,
+ scaleX: 1.2,
+ scaleY: 1.2
+ });
+ }
var labelText = new Text2(label, {
size: 25,
fill: 0x333333
});
@@ -1414,17 +1424,17 @@
pet = game.addChild(new DigitalPet());
pet.x = 1024;
pet.y = 800;
// UI Elements
- hungerBar = new StatBar(getText('hunger'), 0xFF5722);
+ hungerBar = new StatBar(getText('hunger'), 0xFF5722, 'hungerIcon');
hungerBar.x = 400;
hungerBar.y = 200;
game.addChild(hungerBar);
- happinessBar = new StatBar(getText('happy'), 0xFFEB3B);
+ happinessBar = new StatBar(getText('happy'), 0xFFEB3B, 'funIcon');
happinessBar.x = 400;
happinessBar.y = 280;
game.addChild(happinessBar);
- energyBar = new StatBar(getText('energy'), 0x2196F3); // This will now show "Fatigue"
+ energyBar = new StatBar(getText('energy'), 0x2196F3, 'fatigueIcon'); // This will now show "Fatigue"
energyBar.x = 400;
energyBar.y = 360;
game.addChild(energyBar);
// Inventory
@@ -1432,9 +1442,9 @@
inventory.x = 300;
inventory.y = 1450;
game.addChild(inventory);
playButton = new ActionButton(getText('play'), 0xFF9800);
- playButton.x = 150;
+ playButton.x = 120;
playButton.y = 1300;
playButton.onPress = function () {
if (pet.fatigue > 80) {
// Check if too tired to play
@@ -1452,9 +1462,9 @@
miniGame.startGame();
};
game.addChild(playButton);
sleepButton = new ActionButton(getText('sleep'), 0x9C27B0);
- sleepButton.x = 350;
+ sleepButton.x = 320;
sleepButton.y = 1300;
sleepButton.onPress = function () {
pet.fatigue = Math.max(0, pet.fatigue - 30); // Reduce fatigue instead of increasing energy
pet.hunger = Math.max(0, pet.hunger - 5);
@@ -1473,9 +1483,9 @@
});
};
game.addChild(sleepButton);
shopButton = new ActionButton(getText('shop'), 0x795548);
- shopButton.x = 550;
+ shopButton.x = 520;
shopButton.y = 1300;
shopButton.onPress = function () {
LK.playMusic('shopMusic');
shop = game.addChild(new Shop());
@@ -1484,9 +1494,9 @@
gameState = 'pause';
};
game.addChild(shopButton);
trainingButton = new ActionButton(getText('training'), 0xE65100);
- trainingButton.x = 750;
+ trainingButton.x = 720;
trainingButton.y = 1300;
trainingButton.onPress = function () {
LK.playMusic('trainingMusic');
training = game.addChild(new Training());
@@ -1497,9 +1507,9 @@
};
game.addChild(trainingButton);
// Add save game button
var saveButton = new ActionButton('Save', 0x607D8B);
- saveButton.x = 950;
+ saveButton.x = 920;
saveButton.y = 1300;
saveButton.onPress = function () {
if (pet) {
saveGame();
Bandera de idioma español. In-Game asset. 2d. High contrast. No shadows
Bandera de Idioma inglés curvada con sus primeras letras EN. In-Game asset. 2d. High contrast. No shadows
Planeta tierra con un libro. In-Game asset. 2d. High contrast. No shadows
Pelusa roja de ojos amarillos tierno. In-Game asset. 2d. High contrast. No shadows
Marco de menu con relleno sin ningun texto. In-Game asset. 2d. High contrast. No shadows
Fondo de ambiente digital con azul y verde. In-Game asset. 2d. High contrast. No shadows
Carne pequeña. In-Game asset. 2d. High contrast. No shadows
Carne Grande. In-Game asset. 2d. High contrast. No shadows
Sirloin. In-Game asset. 2d. High contrast. No shadows
Medicina. In-Game asset. 2d. High contrast. No shadows
Benda. In-Game asset. 2d. High contrast. No shadows
Agumon. In-Game asset. 2d. High contrast. No shadows
barra llena. In-Game asset. 2d. High contrast. No shadows
boton sin texto. In-Game asset. 2d. High contrast. No shadows
zzZZZ. In-Game asset. 2d. High contrast. No shadows
Greymon. In-Game asset. 2d. High contrast. No shadows
Wargreymon. In-Game asset. 2d. High contrast. No shadows
Metalgreymon. In-Game asset. 2d. High contrast. No shadows
Omegamon. In-Game asset. 2d. High contrast. No shadows
Cara Koromon feliz. In-Game asset. 2d. High contrast. No shadows
Botamon. In-Game asset. 2d. High contrast. No shadows
Angemon. In-Game asset. 2d. High contrast. No shadows
Angewomon. In-Game asset. 2d. High contrast. No shadows
Gabumon. In-Game asset. 2d. High contrast. No shadows
Garurumon. In-Game asset. 2d. High contrast. No shadows
Magnaangemon. In-Game asset. 2d. High contrast. No shadows
magnadramon. In-Game asset. 2d. High contrast. No shadows
Metalgarurumon. In-Game asset. 2d. High contrast. No shadows
Ophanimon blue armor complete body sensual. In-Game asset. 2d. High contrast. No shadows
Poyomon. In-Game asset. 2d. High contrast. No shadows
Patamon. In-Game asset. 2d. High contrast. No shadows
Punimon. In-Game asset. 2d. High contrast. No shadows
Seraphimon. In-Game asset. 2d. High contrast. No shadows
Tokomon. In-Game asset. 2d. High contrast. No shadows
Tsunomon. In-Game asset. 2d. High contrast. No shadows
Weregarurumon. In-Game asset. 2d. High contrast. No shadows
Digi huevo de botamon. In-Game asset. 2d. High contrast. No shadows
Digi huevo con el patron clasico de Punimon. In-Game asset. 2d. High contrast. No shadows
Digi huevo con el patron clasico de Puyomon. In-Game asset. 2d. High contrast. No shadows
Moneda ojo monstruo. In-Game asset. 2d. High contrast. No shadows
Labrys personaje de Persona 4 Arena con ropa de tendera.. In-Game asset. 2d. High contrast. No shadows
Mesa de tienda para poner un personaje detras. In-Game asset. 2d. High contrast. No shadows
Tecla gris. In-Game asset. 2d. High contrast. No shadows
Caca rosada. In-Game asset. 2d. High contrast. No shadows
Jabón. In-Game asset. 2d. High contrast. No shadows