User prompt
Haz que donde pone casa de sushi es el texto esté en azul y que el botón de jugar sea más largo y grande
User prompt
La "C" de caza de sushi está tapada por una cosa naranja, eliminala
User prompt
Haz que donde pone sushi catch ponga caza de sushis, además quiero que el letrero se vea más bonito
Code edit (1 edits merged)
Please save this source code
User prompt
Arregla el problema de la linea 187 tu
User prompt
Arregla el herror de la linea 187
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading '0')' in or related to this line: 'if (gameState === 'playing') {' Line Number: 187
User prompt
Haz que en el vestidor se pueda seleccionar la puta ropa o no me entiendes?! ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Agrega una forma de poder cambiar la skin del sushi entre las del pase desbloqueables subiendo de nivel ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Agrega una función de seleccionar activo de sushi en el vestidor, (solo los adquiridos) ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading '0')' in or related to this line: 'if (gameState === 'playing') {' Line Number: 182
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading '0')' in or related to this line: 'if (gameState === 'playing') {' Line Number: 182
User prompt
Agrega los activos de sushis en el vestidor y que al seleccionar uno ese sea el que cae en las partidas ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Crea 3 activos en el apartado de activos que se llamen (sushi del pase 1/1) (sushi del pase 1/2) y (sushi del pase 1/3) haz que sean visibles y seleccionables en el apartado del vestidor, que sean para reemplazar la apariencia de los sushis que caen en el juego ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Agrega assets seleccionables para los sushis de las partidas en el vestidor
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading '0')' in or related to this line: 'if (gameState === 'playing') {' Line Number: 167
User prompt
Haz que en el vestidor se puedan encontrar skins que se consiguen en el pase a medida que vaya pasando el tiempo que sean activos y que aparezcan en cuadraditos que se pueda bajar la lista ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Pon el botón de vestidor abajo del de la tienda
User prompt
Genera un apartado de vestidor en el menú en el que se pueda cambiar la skin de el sushi de las partidas ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Quiero que agregues un sistema de pase de batalla que por cada sushi te de 1 de experiencia y cada 200 se suba un nivel de el pase que tendrá treinta, en los niveles 10-15-20-25-30 se podrán conseguir skins de sushis para las partidas ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Haz que se pueda elegir en los ajustes una nueva dificultad: (extremo) en la que los sushis caigan mucho más rápidos que en difícil!
User prompt
Elimina las monedas del juego y la tienda
User prompt
Agrega el botón para volver al menú en la partida,en la parte inferior izquierda
User prompt
Haz que los sushis, cuando caen, sean más grandes y se puedan eliminar tocandolos
User prompt
Agrega un botón en la tienda para volver al menú en la parte inferior izquierda
/****
* Plugins
****/
var storage = LK.import("@upit/storage.v1", {
sushiSkins: {},
equippedSkin: "default",
battlePassExp: 0,
battlePassLevel: 1,
unlockedBattlePassSkins: {}
});
/****
* Classes
****/
// Initialize assets for play button
var Sushi = Container.expand(function () {
var self = Container.call(this);
var equippedSkinColor = 0xffa500;
var equippedSkinAssetId = 'sushi';
var equippedSkinId = storage.equippedSkin || 'default';
for (var skinIdx = 0; skinIdx < availableSkins.length; skinIdx++) {
if (availableSkins[skinIdx].id === equippedSkinId) {
equippedSkinColor = availableSkins[skinIdx].color;
if (availableSkins[skinIdx].assetId) {
equippedSkinAssetId = availableSkins[skinIdx].assetId;
}
break;
}
}
var sushiGraphics = self.attachAsset(equippedSkinAssetId, {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 2,
scaleY: 2
});
if (equippedSkinAssetId === 'sushi') {
sushiGraphics.tint = equippedSkinColor;
}
self.speed = 5;
self.caught = false;
self.lastY = self.y;
self.interactive = true;
self.buttonMode = true;
self.down = function (x, y, obj) {
if (!self.caught) {
self.caught = true;
LK.setScore(LK.getScore() + 1);
scoreTxt.setText(LK.getScore());
storage.battlePassExp += 1;
var expNeededForLevel = 200;
while (storage.battlePassExp >= expNeededForLevel && storage.battlePassLevel < 30) {
storage.battlePassExp -= expNeededForLevel;
storage.battlePassLevel += 1;
var unlockedLevel = storage.battlePassLevel;
if (unlockedLevel === 10 || unlockedLevel === 15 || unlockedLevel === 20 || unlockedLevel === 25 || unlockedLevel === 30) {
var rewardSkinIndex = unlockedLevel / 5 - 1;
var rewardSkins = ['gold', 'purple', 'cyan', 'lime', 'pink'];
if (rewardSkins[rewardSkinIndex]) {
storage.unlockedBattlePassSkins[rewardSkins[rewardSkinIndex]] = true;
storage.sushiSkins[rewardSkins[rewardSkinIndex]] = true;
}
}
}
self.destroy();
}
};
self.update = function () {
self.lastY = self.y;
self.y += self.speed;
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000
});
/****
* Game Code
****/
// Initialize default equipped skin if not set
if (!storage.equippedSkin) {
storage.equippedSkin = 'default';
}
if (!storage.sushiSkins) {
storage.sushiSkins = {};
}
if (!storage.unlockedBattlePassSkins) {
storage.unlockedBattlePassSkins = {};
}
// Create game background
var gameBackground = LK.getAsset('gameBackground', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1366
});
game.addChild(gameBackground);
// Create danger line at bottom
// Initialize assets for play button
var dangerLine = LK.getAsset('dangerLine', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 2500
});
game.addChild(dangerLine); //{p_end}
// Score display
var scoreTxt = new Text2('0', {
size: 150,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Battle Pass display
var battlePassTxt = new Text2('Level: ' + storage.battlePassLevel + ' | Exp: ' + storage.battlePassExp + '/200', {
size: 80,
fill: 0xFFFFFF
});
battlePassTxt.anchor.set(0.5, 0);
battlePassTxt.x = 1024;
battlePassTxt.y = 180;
game.addChild(battlePassTxt);
//{w_end}
// Game state
var gameState = 'menu'; // 'menu', 'playing', or 'settings'
var currentDifficulty = 'medium'; // 'easy', 'medium', 'hard', or 'extremo'
var sushiSpawnRate = 60; // ticks between spawns
// Game variables
var sushiArray = [];
var sushiSpawnTimer = null;
// In-game shop offers container
var gameShopContainer = new Container();
game.addChild(gameShopContainer);
gameShopContainer.visible = false;
// In-game shop title
var gameShopTitle = new Text2('Shop', {
size: 120,
fill: 0xFF6B6B
});
gameShopTitle.anchor.set(0.5, 0.5);
gameShopTitle.x = 1024;
gameShopTitle.y = 300;
gameShopContainer.addChild(gameShopTitle);
// In-game shop close button
var gameShopCloseButtonBg = LK.getAsset('settingsButtonBg', {
anchorX: 0.5,
anchorY: 0.5,
x: 1898,
y: 2582
});
gameShopContainer.addChild(gameShopCloseButtonBg);
var gameShopCloseButtonText = new Text2('✕', {
size: 80,
fill: 0xFFFFFF
});
gameShopCloseButtonText.anchor.set(0.5, 0.5);
gameShopCloseButtonText.x = 1898;
gameShopCloseButtonText.y = 2582;
gameShopContainer.addChild(gameShopCloseButtonText);
gameShopCloseButtonBg.interactive = true;
gameShopCloseButtonBg.down = function (x, y, obj) {
gameShopContainer.visible = false;
};
// Game update loop
game.update = function () {
if (gameState === 'playing') {
// Spawn sushi periodically
if (LK.ticks % sushiSpawnRate === 0) {
var newSushi = new Sushi();
newSushi.x = Math.random() * 1800 + 100;
newSushi.y = -100;
newSushi.lastY = newSushi.y;
newSushi.speed = currentDifficulty === 'easy' ? 3 : currentDifficulty === 'medium' ? 5 : currentDifficulty === 'hard' ? 8 : 12;
sushiArray.push(newSushi);
game.addChild(newSushi);
}
// Update and check sushi
for (var i = sushiArray.length - 1; i >= 0; i--) {
var sushi = sushiArray[i];
if (sushi.lastY <= 2500 && sushi.y > 2500) {
LK.effects.flashScreen(0xff0000, 500);
LK.showGameOver();
}
}
battlePassTxt.setText('Level: ' + storage.battlePassLevel + ' | Exp: ' + storage.battlePassExp + '/200');
}
};
// Create main menu UI
var menuContainer = new Container();
game.addChild(menuContainer);
// Menu title
var titleText = new Text2('Sushi Catch', {
size: 200,
fill: 0xFF6B6B
});
titleText.anchor.set(0.5, 0.5);
titleText.x = 1024;
titleText.y = 800;
menuContainer.addChild(titleText);
// Play button
var playButtonBg = LK.getAsset('playButtonBg', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1400
});
menuContainer.addChild(playButtonBg);
var playButtonText = new Text2('PLAY', {
size: 100,
fill: 0xFFFFFF
});
playButtonText.anchor.set(0.5, 0.5);
playButtonText.x = 1024;
playButtonText.y = 1400;
menuContainer.addChild(playButtonText);
// Make play button interactive
playButtonBg.interactive = true;
playButtonBg.down = function (x, y, obj) {
gameState = 'playing';
menuContainer.visible = false;
gameMenuButtonBg.visible = true;
gameMenuButtonText.visible = true;
gameBackButtonBg.visible = true;
gameBackButtonText.visible = true;
};
// Settings button
var settingsButtonBg = LK.getAsset('settingsButtonBg', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1650
});
menuContainer.addChild(settingsButtonBg);
var settingsButtonText = new Text2('⚙️', {
size: 80,
fill: 0xFFFFFF
});
settingsButtonText.anchor.set(0.5, 0.5);
settingsButtonText.x = 1024;
settingsButtonText.y = 1650;
menuContainer.addChild(settingsButtonText);
settingsButtonBg.interactive = true;
settingsButtonBg.down = function (x, y, obj) {
gameState = 'settings';
menuContainer.visible = false;
settingsMenuContainer.visible = true;
};
// Shop button
var shopButtonBg = LK.getAsset('settingsButtonBg', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1900
});
menuContainer.addChild(shopButtonBg);
var shopButtonText = new Text2('🛍️', {
size: 80,
fill: 0xFFFFFF
});
shopButtonText.anchor.set(0.5, 0.5);
shopButtonText.x = 1024;
shopButtonText.y = 1900;
menuContainer.addChild(shopButtonText);
shopButtonBg.interactive = true;
shopButtonBg.down = function (x, y, obj) {
gameState = 'shop';
menuContainer.visible = false;
shopMenuContainer.visible = true;
};
// Settings menu container
var settingsMenuContainer = new Container();
game.addChild(settingsMenuContainer);
settingsMenuContainer.visible = false;
// Shop menu container
var shopMenuContainer = new Container();
game.addChild(shopMenuContainer);
shopMenuContainer.visible = false;
var shopTitle = new Text2('Shop', {
size: 180,
fill: 0xFF6B6B
});
shopTitle.anchor.set(0.5, 0.5);
shopTitle.x = 1024;
shopTitle.y = 400;
shopMenuContainer.addChild(shopTitle);
// Shop back button (bottom-left)
var shopBackButtonBg = LK.getAsset('settingsButtonBg', {
anchorX: 0.5,
anchorY: 0.5,
x: 150,
y: 2582
});
shopMenuContainer.addChild(shopBackButtonBg);
var shopBackButtonText = new Text2('←', {
size: 80,
fill: 0xFFFFFF
});
shopBackButtonText.anchor.set(0.5, 0.5);
shopBackButtonText.x = 150;
shopBackButtonText.y = 2582;
shopMenuContainer.addChild(shopBackButtonText);
shopBackButtonBg.interactive = true;
shopBackButtonBg.down = function (x, y, obj) {
gameState = 'menu';
shopMenuContainer.visible = false;
menuContainer.visible = true;
};
// Wardrobe button
var wardrobeButtonBg = LK.getAsset('settingsButtonBg', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 2150
});
menuContainer.addChild(wardrobeButtonBg);
var wardrobeButtonText = new Text2('👕', {
size: 80,
fill: 0xFFFFFF
});
wardrobeButtonText.anchor.set(0.5, 0.5);
wardrobeButtonText.x = 150;
wardrobeButtonText.y = 150;
menuContainer.addChild(wardrobeButtonText);
wardrobeButtonBg.interactive = true;
wardrobeButtonBg.down = function (x, y, obj) {
gameState = 'wardrobe';
menuContainer.visible = false;
wardrobeMenuContainer.visible = true;
};
// Wardrobe menu container
var wardrobeMenuContainer = new Container();
game.addChild(wardrobeMenuContainer);
wardrobeMenuContainer.visible = false;
var wardrobeTitle = new Text2('Wardrobe', {
size: 180,
fill: 0xFF6B6B
});
wardrobeTitle.anchor.set(0.5, 0.5);
wardrobeTitle.x = 1024;
wardrobeTitle.y = 300;
wardrobeMenuContainer.addChild(wardrobeTitle);
// Initialize sushi skins in storage if not exists
if (!storage.sushiSkins) {
storage.sushiSkins = {};
}
if (!storage.equippedSkin) {
storage.equippedSkin = 'default';
}
// Available skins with their costs and colors
var availableSkins = [{
id: 'default',
name: 'Default',
color: 0xffa500,
cost: 0,
assetId: 'sushi'
}, {
id: 'gold',
name: 'Gold (BP Lvl 10)',
color: 0xFFD700,
cost: 0,
assetId: 'sushiBattlePass1'
}, {
id: 'purple',
name: 'Purple (BP Lvl 15)',
color: 0x9D4EDD,
cost: 0,
assetId: 'sushiBattlePass2'
}, {
id: 'cyan',
name: 'Cyan (BP Lvl 20)',
color: 0x00F5FF,
cost: 0,
assetId: 'sushiBattlePass3'
}, {
id: 'lime',
name: 'Lime',
color: 0x00FF00,
cost: 750
}, {
id: 'pink',
name: 'Pink',
color: 0xFF1493,
cost: 1000
}, {
id: 'silver',
name: 'Silver',
color: 0xC0C0C0,
cost: 1500
}];
// Wardrobe scroll container for skins grid
var wardrobeSkinContainer = new Container();
wardrobeMenuContainer.addChild(wardrobeSkinContainer);
wardrobeSkinContainer.x = 200;
wardrobeSkinContainer.y = 600;
wardrobeSkinContainer.width = 1648;
wardrobeSkinContainer.height = 1400;
wardrobeSkinContainer.interactive = true;
var wardrobeSkinMask = new Container();
wardrobeSkinMask.x = 200;
wardrobeSkinMask.y = 600;
var maskGraphic = LK.getAsset('playButtonBg', {
anchorX: 0,
anchorY: 0,
x: 0,
y: 0,
scaleX: 2.06,
scaleY: 1.75
});
wardrobeSkinMask.addChild(maskGraphic);
game.addChild(wardrobeSkinMask);
wardrobeSkinContainer.mask = maskGraphic;
var wardrobeScrollOffset = 0;
var wardrobeMaxScroll = 0;
function displayWardrobeSkins() {
wardrobeSkinContainer.removeChildren();
var unlockedSkins = [];
for (var u = 0; u < availableSkins.length; u++) {
var checkSkin = availableSkins[u];
if (checkSkin.id === 'default' || storage.sushiSkins[checkSkin.id]) {
unlockedSkins.push(checkSkin);
}
}
var skinsPerRow = 3;
var skinBoxSize = 200;
var skinGap = 100;
var skinX = 0;
var skinY = wardrobeScrollOffset;
for (var s = 0; s < unlockedSkins.length; s++) {
var skin = unlockedSkins[s];
var colIndex = s % skinsPerRow;
var rowIndex = Math.floor(s / skinsPerRow);
skinX = colIndex * (skinBoxSize + skinGap) + 50;
skinY = rowIndex * (skinBoxSize + skinGap) + wardrobeScrollOffset;
var skinBox = LK.getAsset('playButtonBg', {
anchorX: 0.5,
anchorY: 0.5,
x: skinX,
y: skinY,
scaleX: 1.5,
scaleY: 1.5
});
wardrobeSkinContainer.addChild(skinBox);
skinBox.tint = 0x333333;
var assetIdToUse = skin.assetId || 'sushi';
var sushiAsset = LK.getAsset(assetIdToUse, {
anchorX: 0.5,
anchorY: 0.5,
x: skinX,
y: skinY,
scaleX: 2,
scaleY: 2
});
if (!skin.assetId) {
sushiAsset.tint = skin.color;
}
wardrobeSkinContainer.addChild(sushiAsset);
var isEquipped = storage.equippedSkin === skin.id;
var statusSymbol = isEquipped ? '✓' : '';
var skinLabel = new Text2(skin.name + '\n' + statusSymbol, {
size: 50,
fill: 0xFFFFFF
});
skinLabel.anchor.set(0.5, 0.5);
skinLabel.x = skinX;
skinLabel.y = skinY + 120;
wardrobeSkinContainer.addChild(skinLabel);
skinBox.interactive = true;
skinBox.skinId = skin.id;
sushiAsset.interactive = true;
sushiAsset.skinId = skin.id;
var skinBoxDown = function skinBoxDown(x, y, obj) {
if (storage.sushiSkins[obj.skinId] || obj.skinId === 'default') {
storage.equippedSkin = obj.skinId;
displayWardrobeSkins();
}
};
skinBox.down = skinBoxDown;
sushiAsset.down = skinBoxDown;
}
wardrobeMaxScroll = Math.max(0, Math.ceil(unlockedSkins.length / 3) * 300 - 1400);
}
displayWardrobeSkins();
wardrobeMenuContainer.move = function (x, y, obj) {
var scrollAmount = 100;
};
wardrobeMenuContainer.down = function (x, y, obj) {
wardrobeLastY = y;
};
wardrobeMenuContainer.up = function (x, y, obj) {};
var wardrobeLastY = 0;
function refreshWardrobeDisplay() {
displayWardrobeSkins();
}
// Wardrobe back button
var wardrobeBackButtonBg = LK.getAsset('playButtonBg', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 2300
});
wardrobeMenuContainer.addChild(wardrobeBackButtonBg);
var wardrobeBackButtonText = new Text2('BACK', {
size: 80,
fill: 0xFFFFFF
});
wardrobeBackButtonText.anchor.set(0.5, 0.5);
wardrobeBackButtonText.x = 1024;
wardrobeBackButtonText.y = 2300;
wardrobeMenuContainer.addChild(wardrobeBackButtonText);
wardrobeBackButtonBg.interactive = true;
wardrobeBackButtonBg.down = function (x, y, obj) {
gameState = 'menu';
wardrobeMenuContainer.visible = false;
menuContainer.visible = true;
};
var settingsTitle = new Text2('Difficulty', {
size: 180,
fill: 0xFF6B6B
});
settingsTitle.anchor.set(0.5, 0.5);
settingsTitle.x = 1024;
settingsTitle.y = 600;
settingsMenuContainer.addChild(settingsTitle);
// Easy button
var easyButtonBg = LK.getAsset('playButtonBg', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1100
});
settingsMenuContainer.addChild(easyButtonBg);
var easyButtonText = new Text2('EASY', {
size: 80,
fill: 0xFFFFFF
});
easyButtonText.anchor.set(0.5, 0.5);
easyButtonText.x = 1024;
easyButtonText.y = 1100;
settingsMenuContainer.addChild(easyButtonText);
easyButtonBg.interactive = true;
easyButtonBg.down = function (x, y, obj) {
currentDifficulty = 'easy';
sushiSpawnRate = 90;
returnToMenu();
};
// Medium button
var mediumButtonBg = LK.getAsset('playButtonBg', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1350
});
settingsMenuContainer.addChild(mediumButtonBg);
var mediumButtonText = new Text2('MEDIUM', {
size: 80,
fill: 0xFFFFFF
});
mediumButtonText.anchor.set(0.5, 0.5);
mediumButtonText.x = 1024;
mediumButtonText.y = 1350;
settingsMenuContainer.addChild(mediumButtonText);
mediumButtonBg.interactive = true;
mediumButtonBg.down = function (x, y, obj) {
currentDifficulty = 'medium';
sushiSpawnRate = 60;
returnToMenu();
};
// Hard button
var hardButtonBg = LK.getAsset('playButtonBg', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1600
});
settingsMenuContainer.addChild(hardButtonBg);
var hardButtonText = new Text2('HARD', {
size: 80,
fill: 0xFFFFFF
});
hardButtonText.anchor.set(0.5, 0.5);
hardButtonText.x = 1024;
hardButtonText.y = 1600;
settingsMenuContainer.addChild(hardButtonText);
hardButtonBg.interactive = true;
hardButtonBg.down = function (x, y, obj) {
currentDifficulty = 'hard';
sushiSpawnRate = 40;
returnToMenu();
};
// Extremo button
var extremoButtonBg = LK.getAsset('playButtonBg', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1850
});
settingsMenuContainer.addChild(extremoButtonBg);
var extremoButtonText = new Text2('EXTREMO', {
size: 80,
fill: 0xFFFFFF
});
extremoButtonText.anchor.set(0.5, 0.5);
extremoButtonText.x = 1024;
extremoButtonText.y = 1850;
settingsMenuContainer.addChild(extremoButtonText);
extremoButtonBg.interactive = true;
extremoButtonBg.down = function (x, y, obj) {
currentDifficulty = 'extremo';
sushiSpawnRate = 25;
returnToMenu();
};
// Back button
var backButtonBg = LK.getAsset('playButtonBg', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 2100
});
settingsMenuContainer.addChild(backButtonBg);
var backButtonText = new Text2('BACK', {
size: 80,
fill: 0xFFFFFF
});
backButtonText.anchor.set(0.5, 0.5);
backButtonText.x = 1024;
backButtonText.y = 1900;
settingsMenuContainer.addChild(backButtonText);
backButtonBg.interactive = true;
backButtonBg.down = function (x, y, obj) {
returnToMenu();
};
// In-game menu button
var gameMenuButtonBg = LK.getAsset('settingsButtonBg', {
anchorX: 0.5,
anchorY: 0.5,
x: 1898,
y: 2582
});
game.addChild(gameMenuButtonBg);
gameMenuButtonBg.visible = false;
var gameMenuButtonText = new Text2('≡', {
size: 80,
fill: 0xFFFFFF
});
gameMenuButtonText.anchor.set(0.5, 0.5);
gameMenuButtonText.x = 1898;
gameMenuButtonText.y = 2582;
game.addChild(gameMenuButtonText);
gameMenuButtonText.visible = false;
gameMenuButtonBg.interactive = true;
gameMenuButtonBg.down = function (x, y, obj) {
if (gameState === 'playing') {
if (gameShopContainer.visible) {
gameShopContainer.visible = false;
} else {
gameShopContainer.visible = true;
}
}
};
// Game back to menu button (bottom-left during gameplay)
var gameBackButtonBg = LK.getAsset('settingsButtonBg', {
anchorX: 0.5,
anchorY: 0.5,
x: 150,
y: 2582
});
game.addChild(gameBackButtonBg);
gameBackButtonBg.visible = false;
var gameBackButtonText = new Text2('←', {
size: 80,
fill: 0xFFFFFF
});
gameBackButtonText.anchor.set(0.5, 0.5);
gameBackButtonText.x = 150;
gameBackButtonText.y = 2582;
game.addChild(gameBackButtonText);
gameBackButtonText.visible = false;
gameBackButtonBg.interactive = true;
gameBackButtonBg.down = function (x, y, obj) {
if (gameState === 'playing') {
gameState = 'menu';
menuContainer.visible = true;
gameMenuButtonBg.visible = false;
gameMenuButtonText.visible = false;
gameBackButtonBg.visible = false;
gameBackButtonText.visible = false;
gameShopContainer.visible = false;
sushiArray = [];
}
};
var lastTouchY = 0;
function returnToMenu() {
gameState = 'menu';
settingsMenuContainer.visible = false;
shopMenuContainer.visible = false;
menuContainer.visible = true;
gameMenuButtonBg.visible = false;
gameMenuButtonText.visible = false;
gameBackButtonBg.visible = false;
gameBackButtonText.visible = false;
}
game.move = function (x, y, obj) {
if (gameState === 'wardrobe' && wardrobeSkinContainer) {
if (lastTouchY !== 0) {
var deltaY = y - lastTouchY;
wardrobeScrollOffset += deltaY * 0.5;
wardrobeScrollOffset = Math.max(-wardrobeMaxScroll, Math.min(0, wardrobeScrollOffset));
displayWardrobeSkins();
}
lastTouchY = y;
}
};
game.down = function (x, y, obj) {
lastTouchY = y;
};
game.up = function (x, y, obj) {
lastTouchY = 0;
}; ===================================================================
--- original.js
+++ change.js
@@ -124,8 +124,15 @@
battlePassTxt.x = 1024;
battlePassTxt.y = 180;
game.addChild(battlePassTxt);
//{w_end}
+// Game state
+var gameState = 'menu'; // 'menu', 'playing', or 'settings'
+var currentDifficulty = 'medium'; // 'easy', 'medium', 'hard', or 'extremo'
+var sushiSpawnRate = 60; // ticks between spawns
+// Game variables
+var sushiArray = [];
+var sushiSpawnTimer = null;
// In-game shop offers container
var gameShopContainer = new Container();
game.addChild(gameShopContainer);
gameShopContainer.visible = false;
@@ -157,15 +164,8 @@
gameShopCloseButtonBg.interactive = true;
gameShopCloseButtonBg.down = function (x, y, obj) {
gameShopContainer.visible = false;
};
-// Game state
-var gameState = 'menu'; // 'menu', 'playing', or 'settings'
-var currentDifficulty = 'medium'; // 'easy', 'medium', 'hard', or 'extremo'
-var sushiSpawnRate = 60; // ticks between spawns
-// Game variables
-var sushiArray = [];
-var sushiSpawnTimer = null;
// Game update loop
game.update = function () {
if (gameState === 'playing') {
// Spawn sushi periodically
Un sushi con cara traviesa. In-Game asset. 2d. High contrast. No shadows
Un botón de jugar de color naranja sushi. In-Game asset. 2d. High contrast. No shadows
Un engranaje de ajustes naranja muy cute. In-Game asset. 2d. High contrast. No shadows
Sushi congelado con cara cute. In-Game asset. 2d. High contrast. No shadows
Sushi con apariencia de santa Claus/papa noel. In-Game asset. 2d. High contrast. No shadows
Un sushi con cara traviesa y con aspecto de elfo navideño. In-Game asset. 2d. High contrast. No shadows
Letrero rectangular pequeño que diga "caza de sushis". In-Game asset. 2d. High contrast. No shadows
Botón rectangular naranja color sushi. In-Game asset. 2d. High contrast. No shadows
Genera una línea horizontal de fuego con detalles ígneos!. In-Game asset. 2d. High contrast. No shadows
Genera una imagen de un sushi con cara de calavera, que sea un botón circular y que se vea muy epico. In-Game asset. 2d. High contrast. No shadows
Un botón rectangular azul. In-Game asset. 2d. High contrast. No shadows