User prompt
add aimbot for all towers
User prompt
add rpg rocket bullet image asset
User prompt
rpg shoots slower than other towers and it shoots rockets, and it gives area damage, the farther the area damage the lower the damage is. also make area damage image asset ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Lvl1: 5000 cost: 5000 Lvl2: 6000 cost: 7000 Lvl3: 8000 cost: 9000 Lvl4: 10000 cost: 10000 Lvl5: 15000 cost: 13000 Lvl6: 20000 cost: 15000 Lvl7: 25000 cost: 20000 Lvl8: 30000 cost: 25000 Lvl9: 40000 cost: 30000 Lvl10: 50000 cost: 35000 RPG Tower's Damages and prices per level Also make enemies drop more coins after waves get higher and higher
User prompt
Lvl1: 300 cost: 500 Lvl2: 400 cost: 700 Lvl3: 800 cost: 900 Lvl4: 1000 cost: 1000 Lvl5: 1500 cost: 1300 Lvl6: 2000 cost: 1500 Lvl7: 2500 cost: 3000 Lvl8: 3000 cost: 4000 Lvl9: 4000 cost: 6000 Lvl10: 5000 cost: 8000 Update the Laser Tower's prices
User prompt
add a new upgrade named upgrade 4 right to the upgrade 2. it costs 5000 and it opens a RPG and it deals 5000 at lvl 1. also make an image asset for the rpg
User prompt
when player presses skip wave it instantly skips the wave
User prompt
make george Droyd's HP 30000
User prompt
add a new enemy named George Droyd when it is 25+ wave, also add an image asset for it
User prompt
add skip wave to the admin mode menu
User prompt
sorry my bad I wite the numbers wrong Lvl1: 300 cost: 2000 Lvl2: 400 cost: 3000 Lvl3: 800 cost: 5000 Lvl4: 1000 cost: 7000 Lvl5: 1500 cost: 10000 Lvl6: 2000 cost: 15000 Lvl7: 2500 cost: 30000 Lvl8: 3000 cost: 40000 Lvl9: 4000 cost: 60000 Lvl10: 5000 cost: 80000 also make add coin in admin button add 100000 coin
User prompt
you are adding 1 more 0 to costs fix it
User prompt
you writed the costs of it wrong
User prompt
laser tower level's damage and cost's Lvl1: 300 cost: 2000 Lvl2: 400 cost: 3000 Lvl3: 800 cost: 5000 Lvl4: 1000 cost: 7000 Lvl5: 1500 cost: 10000 Lvl6: 2000 cost: 1500 Lvl7: 2500 cost: 3000 Lvl8: 3000 cost: 4000 Lvl9: 4000 cost: 6000 Lvl10: 5000 cost: 8000 when its level 10 say its max level
User prompt
add asset for the tower
User prompt
put the upgrade 3 button left of upgrade 1
User prompt
add new upgrades to the game named upgrade 3. when player buys upgrade 3 a tower spawns and shoots laser. laser deals 300 damage at lvl 1. and the upgrade costs 2000 coin
User prompt
make thhe password "300710"
User prompt
make the keys smaller
User prompt
just make numbers: 1,2,3,4,5,6,7,8,9,0
User prompt
just add a normal fucking keyboard to the screen for admin passaword
User prompt
what faİLED FUCKASS
User prompt
when player exits the main menu the main menu song ends. Also make password system for admin mode, when player clicks admin mode button in main menu ask for password, also make it start from wave 1 not wave 2 fuckass
User prompt
it doesnt worjk
User prompt
no add it to the main menu one, not the main game one
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var Bullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.attachAsset('bullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 15;
self.damage = 5;
self.update = function () {
self.y -= self.speed;
};
return self;
});
var GeorgeFloyd = Container.expand(function () {
var self = Container.call(this);
var georgeFloydGraphics = self.attachAsset('georgeFloyd', {
anchorX: 0.5,
anchorY: 0.5
});
self.maxHealth = 5000;
self.health = self.maxHealth;
self.speed = 0.8;
self.coinValue = 20;
self.lastHealth = self.health;
self.takeDamage = function (damage) {
self.health -= damage;
if (self.health < 0) self.health = 0;
};
self.update = function () {
self.y += self.speed;
// Flash red when taking damage
if (self.lastHealth > self.health) {
LK.effects.flashObject(self, 0xff0000, 300);
}
self.lastHealth = self.health;
};
return self;
});
var Mango = Container.expand(function () {
var self = Container.call(this);
var mangoGraphics = self.attachAsset('mango', {
anchorX: 0.5,
anchorY: 0.5
});
self.maxHealth = 100;
self.health = self.maxHealth;
self.speed = 2;
self.coinValue = 1;
self.lastHealth = self.health;
self.takeDamage = function (damage) {
self.health -= damage;
if (self.health < 0) self.health = 0;
};
self.update = function () {
self.y += self.speed;
// Flash red when taking damage
if (self.lastHealth > self.health) {
LK.effects.flashObject(self, 0xff0000, 300);
}
self.lastHealth = self.health;
};
return self;
});
var Mustard = Container.expand(function () {
var self = Container.call(this);
var mustardGraphics = self.attachAsset('mustard', {
anchorX: 0.5,
anchorY: 0.5
});
self.maxHealth = 200;
self.health = self.maxHealth;
self.speed = 1.5;
self.coinValue = 2;
self.lastHealth = self.health;
self.takeDamage = function (damage) {
self.health -= damage;
if (self.health < 0) self.health = 0;
};
self.update = function () {
self.y += self.speed;
// Flash red when taking damage
if (self.lastHealth > self.health) {
LK.effects.flashObject(self, 0xff0000, 300);
}
self.lastHealth = self.health;
};
return self;
});
var Player = Container.expand(function () {
var self = Container.call(this);
var playerGraphics = self.attachAsset('player', {
anchorX: 0.5,
anchorY: 0.5
});
self.health = 100;
self.maxHealth = 100;
return self;
});
var SigmaBlud = Container.expand(function () {
var self = Container.call(this);
var sigmaBludGraphics = self.attachAsset('sigmaBlud', {
anchorX: 0.5,
anchorY: 0.5
});
self.maxHealth = 10000;
self.health = self.maxHealth;
self.speed = 0.5;
self.coinValue = 50;
self.lastHealth = self.health;
self.takeDamage = function (damage) {
self.health -= damage;
if (self.health < 0) self.health = 0;
};
self.update = function () {
self.y += self.speed;
// Flash red when taking damage
if (self.lastHealth > self.health) {
LK.effects.flashObject(self, 0xff0000, 300);
}
self.lastHealth = self.health;
};
return self;
});
var SixSevenKid = Container.expand(function () {
var self = Container.call(this);
var kidGraphics = self.attachAsset('sixSevenKid', {
anchorX: 0.5,
anchorY: 0.5
});
self.maxHealth = 500;
self.health = self.maxHealth;
self.speed = 1;
self.coinValue = 5;
self.lastHealth = self.health;
self.takeDamage = function (damage) {
self.health -= damage;
if (self.health < 0) self.health = 0;
};
self.update = function () {
self.y += self.speed;
// Flash red when taking damage
if (self.lastHealth > self.health) {
LK.effects.flashObject(self, 0xff0000, 300);
}
self.lastHealth = self.health;
};
return self;
});
var TurretBullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.attachAsset('turretBullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 25; // Much faster bullets for quicker targeting
self.damage = 5;
self.turretLevel = 1; // Default level
self.velocityX = 0;
self.velocityY = 0;
self.update = function () {
self.x += self.velocityX;
self.y += self.velocityY;
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x8B0000
});
/****
* Game Code
****/
// Game variables
var player;
var bullets = [];
var enemies = [];
var coins = 0;
var playerHealth = 100;
var gameStarted = false;
var showMainMenu = true;
var isAdminMode = false;
var enemySpawnTimer = 0;
var enemySpawnRate = 120; // frames between spawns
var difficultyTimer = 0;
var isMouseDown = false;
var mouseX = 0;
var mouseY = 0;
var shootCooldown = 0;
var shootRate = 10; // frames between shots when holding
var currentWave = 1;
var enemiesInWave = 8; // Start with 8 enemies per wave
var enemiesSpawned = 0;
var enemiesKilled = 0;
var waveInProgress = false;
var waveStartDelay = 180; // 3 seconds between waves
var waveDelayTimer = 0;
var upgrade1Cost = 1;
var upgrade2Cost = 3;
var upgrade1Level = 0;
var upgrade2Level = 0;
// Turret damage and cost progression tables
var turretDamageTable = [0, 5, 10, 15, 20, 25, 30, 40, 50, 100, 200];
var turret1CostTable = [0, 1, 1, 2, 5, 10, 50, 50, 60, 200, 250];
var turret2CostTable = [0, 3, 4, 5, 10, 20, 50, 60, 70, 250, 300];
var turrets1 = [];
var turrets2 = [];
var turretBullets = [];
var turretShootTimer1 = 0;
var turretShootTimer2 = 0;
var turretShootRate = 15; // Faster turret shooting rate
// Create city background
var cityBuildings = [];
for (var i = 0; i < 12; i++) {
var buildingType = Math.floor(Math.random() * 3) + 1;
var building = LK.getAsset('cityBuilding' + buildingType, {
anchorX: 0.5,
anchorY: 1
});
building.x = i * 180 + 100;
building.y = 2732;
building.alpha = 0.3;
game.addChild(building);
cityBuildings.push(building);
}
;
// Main Menu Background
var menuBackground = LK.getAsset('menuBackground', {
anchorX: 0.5,
anchorY: 0.5
});
menuBackground.x = 2048 / 2;
menuBackground.y = 2732 / 2;
menuBackground.alpha = 0.8;
game.addChild(menuBackground);
// Start menu music
LK.playMusic('menuMusic', {
loop: true
});
// Main Menu Elements
var menuTitle = new Text2('MANGO SHOOTER', {
size: 120,
fill: 0x00FF00,
font: "Futura",
stroke: 0x000000,
strokeThickness: 4
});
menuTitle.anchor.set(0.5, 0.5);
menuTitle.x = 2048 / 2;
menuTitle.y = 2732 / 2 - 400;
game.addChild(menuTitle);
var startButton = LK.getAsset('upgradeButton', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 1.5,
scaleY: 1.5
});
startButton.x = 2048 / 2;
startButton.y = 2732 / 2 - 200;
startButton.tint = 0x4CAF50;
game.addChild(startButton);
var startButtonText = new Text2('START GAME', {
size: 40,
fill: 0xFFFFFF,
font: "Futura",
stroke: 0x000000,
strokeThickness: 3
});
startButtonText.anchor.set(0.5, 0.5);
startButtonText.x = startButton.x;
startButtonText.y = startButton.y;
game.addChild(startButtonText);
var adminButton = LK.getAsset('upgradeButton', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 1.5,
scaleY: 1.5
});
adminButton.x = 2048 / 2;
adminButton.y = 2732 / 2 + 80;
adminButton.tint = 0xFF4444;
game.addChild(adminButton);
var adminButtonText = new Text2('ADMIN MODE', {
size: 40,
fill: 0xFFFFFF,
font: "Futura",
stroke: 0x000000,
strokeThickness: 3
});
adminButtonText.anchor.set(0.5, 0.5);
adminButtonText.x = adminButton.x;
adminButtonText.y = adminButton.y;
game.addChild(adminButtonText);
var instructionText = new Text2('Tap to shoot enemies\nUpgrade turrets with coins\nDefend your city!', {
size: 80,
fill: 0x00FF00,
font: "Futura",
stroke: 0x000000,
strokeThickness: 3
});
instructionText.anchor.set(0.5, 0.5);
instructionText.x = 2048 / 2;
instructionText.y = 2732 / 2 + 500;
game.addChild(instructionText);
// Create player
player = game.addChild(new Player());
player.x = 2048 / 2;
player.y = 2732 - 150;
player.visible = false;
// UI Elements
var coinText = new Text2('Coins: 0', {
size: 60,
fill: 0x00FF00,
font: "Futura",
stroke: 0x000000,
strokeThickness: 3
});
coinText.anchor.set(0, 0);
coinText.x = 150;
coinText.y = 50;
coinText.visible = false;
LK.gui.topLeft.addChild(coinText);
// Admin button in bottom left corner
var adminCornerButton = LK.getAsset('upgradeButton', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 0.6,
scaleY: 0.6
});
adminCornerButton.x = 150;
adminCornerButton.y = 2732 - 150;
adminCornerButton.tint = 0xFF4444;
adminCornerButton.visible = false;
game.addChild(adminCornerButton);
var adminCornerText = new Text2('ADMIN', {
size: 24,
fill: 0xFFFFFF,
font: "Futura",
stroke: 0x000000,
strokeThickness: 2
});
adminCornerText.anchor.set(0.5, 0.5);
adminCornerText.x = adminCornerButton.x;
adminCornerText.y = adminCornerButton.y;
adminCornerText.visible = false;
game.addChild(adminCornerText);
// Admin menu overlay
var adminMenu = new Container();
adminMenu.visible = false;
game.addChild(adminMenu);
// Admin menu background
var adminMenuBg = LK.getAsset('upgradeButton', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 8,
scaleY: 12
});
adminMenuBg.x = 2048 / 2;
adminMenuBg.y = 2732 / 2;
adminMenuBg.tint = 0x333333;
adminMenuBg.alpha = 0.9;
adminMenu.addChild(adminMenuBg);
// Admin menu title
var adminMenuTitle = new Text2('ADMIN MENU', {
size: 80,
fill: 0x00FF00,
font: "Futura",
stroke: 0x000000,
strokeThickness: 4
});
adminMenuTitle.anchor.set(0.5, 0.5);
adminMenuTitle.x = 2048 / 2;
adminMenuTitle.y = 500;
adminMenu.addChild(adminMenuTitle);
// Admin menu buttons
var addCoinsButton = LK.getAsset('upgradeButton', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 2,
scaleY: 1
});
addCoinsButton.x = 2048 / 2;
addCoinsButton.y = 800;
addCoinsButton.tint = 0xFFD700;
adminMenu.addChild(addCoinsButton);
var addCoinsText = new Text2('ADD 1000 COINS', {
size: 36,
fill: 0x000000,
font: "Futura",
stroke: 0xFFFFFF,
strokeThickness: 2
});
addCoinsText.anchor.set(0.5, 0.5);
addCoinsText.x = addCoinsButton.x;
addCoinsText.y = addCoinsButton.y;
adminMenu.addChild(addCoinsText);
var healButton = LK.getAsset('upgradeButton', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 2,
scaleY: 1
});
healButton.x = 2048 / 2;
healButton.y = 1000;
healButton.tint = 0x00FF00;
adminMenu.addChild(healButton);
var healText = new Text2('FULL HEAL', {
size: 36,
fill: 0x000000,
font: "Futura",
stroke: 0xFFFFFF,
strokeThickness: 2
});
healText.anchor.set(0.5, 0.5);
healText.x = healButton.x;
healText.y = healButton.y;
adminMenu.addChild(healText);
var killEnemiesButton = LK.getAsset('upgradeButton', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 2,
scaleY: 1
});
killEnemiesButton.x = 2048 / 2;
killEnemiesButton.y = 1200;
killEnemiesButton.tint = 0xFF0000;
adminMenu.addChild(killEnemiesButton);
var killEnemiesText = new Text2('KILL ALL ENEMIES', {
size: 36,
fill: 0xFFFFFF,
font: "Futura",
stroke: 0x000000,
strokeThickness: 2
});
killEnemiesText.anchor.set(0.5, 0.5);
killEnemiesText.x = killEnemiesButton.x;
killEnemiesText.y = killEnemiesButton.y;
adminMenu.addChild(killEnemiesText);
var closeMenuButton = LK.getAsset('upgradeButton', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 2,
scaleY: 1
});
closeMenuButton.x = 2048 / 2;
closeMenuButton.y = 1500;
closeMenuButton.tint = 0x666666;
adminMenu.addChild(closeMenuButton);
var closeMenuText = new Text2('CLOSE MENU', {
size: 36,
fill: 0xFFFFFF,
font: "Futura",
stroke: 0x000000,
strokeThickness: 2
});
closeMenuText.anchor.set(0.5, 0.5);
closeMenuText.x = closeMenuButton.x;
closeMenuText.y = closeMenuButton.y;
adminMenu.addChild(closeMenuText);
var showAdminMenu = false;
var showPasswordInput = false;
var currentPassword = "";
var correctPassword = "admin123";
// Password input overlay
var passwordInput = new Container();
passwordInput.visible = false;
game.addChild(passwordInput);
// Password background
var passwordInputBg = LK.getAsset('upgradeButton', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 6,
scaleY: 4
});
passwordInputBg.x = 2048 / 2;
passwordInputBg.y = 2732 / 2;
passwordInputBg.tint = 0x333333;
passwordInputBg.alpha = 0.9;
passwordInputBg.visible = false;
game.addChild(passwordInputBg);
// Password prompt text
var passwordPromptText = new Text2('Enter Admin Password:', {
size: 60,
fill: 0x00FF00,
font: "Futura",
stroke: 0x000000,
strokeThickness: 3
});
passwordPromptText.anchor.set(0.5, 0.5);
passwordPromptText.x = 2048 / 2;
passwordPromptText.y = 2732 / 2 - 100;
passwordPromptText.visible = false;
game.addChild(passwordPromptText);
// Password display text
var passwordDisplayText = new Text2('Password: ', {
size: 50,
fill: 0xFFFFFF,
font: "Futura",
stroke: 0x000000,
strokeThickness: 2
});
passwordDisplayText.anchor.set(0.5, 0.5);
passwordDisplayText.x = 2048 / 2;
passwordDisplayText.y = 2732 / 2;
passwordDisplayText.visible = false;
game.addChild(passwordDisplayText);
var healthText = new Text2('Health: 100', {
size: 60,
fill: 0x00FF00,
font: "Futura",
stroke: 0x000000,
strokeThickness: 3
});
healthText.anchor.set(1, 0);
healthText.visible = false;
LK.gui.topRight.addChild(healthText);
var waveText = new Text2('Wave: 1', {
size: 60,
fill: 0x00FF00,
font: "Futura",
stroke: 0x000000,
strokeThickness: 3
});
waveText.anchor.set(0.5, 0);
waveText.visible = false;
LK.gui.top.addChild(waveText);
// Create upgrade buttons
var upgrade1Button = LK.getAsset('upgradeButton', {
anchorX: 0.5,
anchorY: 0.5
});
upgrade1Button.x = player.x - 200;
upgrade1Button.y = player.y;
upgrade1Button.visible = false;
game.addChild(upgrade1Button);
var upgrade2Button = LK.getAsset('upgradeButton', {
anchorX: 0.5,
anchorY: 0.5
});
upgrade2Button.x = player.x + 200;
upgrade2Button.y = player.y;
upgrade2Button.visible = false;
game.addChild(upgrade2Button);
// Add upgrade button labels
var upgrade1Text = new Text2('Upgrade 1\nCost: ' + upgrade1Cost, {
size: 30,
fill: 0x00FF00,
font: "Futura",
stroke: 0x000000,
strokeThickness: 2
});
upgrade1Text.anchor.set(0.5, 0.5);
upgrade1Text.x = upgrade1Button.x;
upgrade1Text.y = upgrade1Button.y;
upgrade1Text.visible = false;
game.addChild(upgrade1Text);
var upgrade2Text = new Text2('Upgrade 2\nCost: ' + upgrade2Cost, {
size: 30,
fill: 0x00FF00,
font: "Futura",
stroke: 0x000000,
strokeThickness: 2
});
upgrade2Text.anchor.set(0.5, 0.5);
upgrade2Text.x = upgrade2Button.x;
upgrade2Text.y = upgrade2Button.y;
upgrade2Text.visible = false;
game.addChild(upgrade2Text);
// Game functions
function spawnEnemy() {
var enemy;
var spawnX = Math.random() * (2048 - 100) + 50;
if (currentWave >= 20) {
// From wave 20 onwards: include Sigma Blud in spawn pool
var rand = Math.random();
if (rand < 0.25) {
enemy = new Mango();
} else if (rand < 0.45) {
enemy = new Mustard();
} else if (rand < 0.65) {
enemy = new SixSevenKid();
} else if (rand < 0.85) {
enemy = new GeorgeFloyd();
} else {
enemy = new SigmaBlud();
}
} else if (currentWave >= 10) {
// From wave 10-19: include George Floyd in spawn pool
var rand = Math.random();
if (rand < 0.35) {
enemy = new Mango();
} else if (rand < 0.6) {
enemy = new Mustard();
} else if (rand < 0.85) {
enemy = new SixSevenKid();
} else {
enemy = new GeorgeFloyd();
}
} else if (currentWave >= 5) {
// From wave 5-9: 50% Mango, 25% Mustard, 25% 6 7 Kid
var rand = Math.random();
if (rand < 0.5) {
enemy = new Mango();
} else if (rand < 0.75) {
enemy = new Mustard();
} else {
enemy = new SixSevenKid();
}
} else {
// Before wave 5: 70% chance for Mango, 30% chance for Mustard
if (Math.random() < 0.7) {
enemy = new Mango();
} else {
enemy = new Mustard();
}
}
enemy.x = spawnX;
enemy.y = -50;
enemy.lastY = enemy.y;
enemies.push(enemy);
game.addChild(enemy);
enemiesSpawned++;
}
function startNewWave() {
currentWave++;
enemiesInWave = enemiesInWave + 2; // Increase enemies per wave by 2
enemiesSpawned = 0;
enemiesKilled = 0;
waveInProgress = true;
waveDelayTimer = 0;
waveText.setText('Wave: ' + currentWave);
// Make waves progressively harder
enemySpawnRate = Math.max(30, enemySpawnRate - 5);
}
function fireBullet(targetX, targetY) {
var bullet = new Bullet();
bullet.x = player.x;
bullet.y = player.y - 40;
bullet.lastY = bullet.y;
// Calculate angle to target at time of firing
var deltaX = targetX - bullet.x;
var deltaY = targetY - bullet.y;
var angle = Math.atan2(deltaY, deltaX);
// Set bullet direction
var velocityX = Math.cos(angle) * bullet.speed;
var velocityY = Math.sin(angle) * bullet.speed;
// Override update to use fixed velocity calculated at firing time
bullet.update = function () {
bullet.x += velocityX;
bullet.y += velocityY;
};
bullets.push(bullet);
game.addChild(bullet);
LK.getSound('shoot').play();
}
function fireTurretBullet(turretX, turretY, targetEnemy, turretLevel) {
if (!targetEnemy) return;
var bullet = new TurretBullet();
bullet.x = turretX;
bullet.y = turretY;
bullet.lastY = bullet.y;
bullet.turretLevel = turretLevel || 1;
bullet.damage = turretDamageTable[bullet.turretLevel];
// Predictive aiming - calculate where enemy will be when bullet arrives
var distance = Math.sqrt(Math.pow(targetEnemy.x - bullet.x, 2) + Math.pow(targetEnemy.y - bullet.y, 2));
var timeToHit = distance / bullet.speed;
// Predict enemy position based on current velocity
var predictedX = targetEnemy.x;
var predictedY = targetEnemy.y + targetEnemy.speed * timeToHit;
// Calculate angle to predicted position for aimbot accuracy
var deltaX = predictedX - bullet.x;
var deltaY = predictedY - bullet.y;
var angle = Math.atan2(deltaY, deltaX);
// Set bullet direction with predictive targeting
bullet.velocityX = Math.cos(angle) * bullet.speed;
bullet.velocityY = Math.sin(angle) * bullet.speed;
turretBullets.push(bullet);
game.addChild(bullet);
}
function findNearestEnemy(turretX, turretY) {
var nearestEnemy = null;
var nearestDistance = Infinity;
for (var i = 0; i < enemies.length; i++) {
var enemy = enemies[i];
var distance = Math.sqrt(Math.pow(enemy.x - turretX, 2) + Math.pow(enemy.y - turretY, 2));
if (distance < nearestDistance && distance < 2000) {
// Increased range to 2000px for better aimbot coverage
nearestDistance = distance;
nearestEnemy = enemy;
}
}
return nearestEnemy;
}
// Event handlers
game.down = function (x, y, obj) {
if (showPasswordInput) {
// Handle virtual keyboard input for password
var keyboardKeys = [['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'], ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'], ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'], ['z', 'x', 'c', 'v', 'b', 'n', 'm']];
// Simple character input based on screen position
var keyPressed = '';
if (y > 2732 / 2 + 100 && y < 2732 / 2 + 200) {
// Number row
var keyIndex = Math.floor((x - 400) / 125);
if (keyIndex >= 0 && keyIndex < 10) {
keyPressed = keyboardKeys[0][keyIndex];
}
} else if (y > 2732 / 2 + 200 && y < 2732 / 2 + 300) {
// QWERTY row
var keyIndex = Math.floor((x - 400) / 125);
if (keyIndex >= 0 && keyIndex < 10) {
keyPressed = keyboardKeys[1][keyIndex];
}
} else if (y > 2732 / 2 + 300 && y < 2732 / 2 + 400) {
// ASDF row
var keyIndex = Math.floor((x - 450) / 125);
if (keyIndex >= 0 && keyIndex < 9) {
keyPressed = keyboardKeys[2][keyIndex];
}
} else if (y > 2732 / 2 + 400 && y < 2732 / 2 + 500) {
// ZXCV row
var keyIndex = Math.floor((x - 500) / 125);
if (keyIndex >= 0 && keyIndex < 7) {
keyPressed = keyboardKeys[3][keyIndex];
}
}
if (keyPressed) {
currentPassword += keyPressed;
var displayPassword = '';
for (var p = 0; p < currentPassword.length; p++) {
displayPassword += '*';
}
passwordDisplayText.setText('Password: ' + displayPassword);
}
// Check for backspace (left side of screen)
if (x < 200) {
if (currentPassword.length > 0) {
currentPassword = currentPassword.slice(0, -1);
var displayPassword = '';
for (var p = 0; p < currentPassword.length; p++) {
displayPassword += '*';
}
passwordDisplayText.setText('Password: ' + displayPassword);
}
}
// Check for enter (right side of screen)
if (x > 1848) {
if (currentPassword === correctPassword) {
// Correct password - activate admin mode
isAdminMode = true;
coins = 10000;
playerHealth = 10000;
coinText.setText('Coins: ' + coins);
healthText.setText('Health: ' + playerHealth);
// Hide password input
showPasswordInput = false;
passwordInput.visible = false;
passwordInputBg.visible = false;
passwordPromptText.visible = false;
passwordDisplayText.visible = false;
currentPassword = "";
// Hide menu elements
showMainMenu = false;
gameStarted = true;
menuBackground.visible = false;
menuTitle.visible = false;
startButton.visible = false;
startButtonText.visible = false;
adminButton.visible = false;
adminButtonText.visible = false;
instructionText.visible = false;
// Show game elements
player.visible = true;
upgrade1Button.visible = true;
upgrade2Button.visible = true;
upgrade1Text.visible = true;
upgrade2Text.visible = true;
coinText.visible = true;
healthText.visible = true;
waveText.visible = true;
adminCornerButton.visible = true;
adminCornerText.visible = true;
// Switch from menu music to game music
LK.stopMusic();
LK.playMusic('bgMusic', {
loop: true
});
// Start from wave 1
currentWave = 1;
waveText.setText('Wave: ' + currentWave);
} else {
// Wrong password - flash red and reset
LK.effects.flashScreen(0xff0000, 500);
currentPassword = "";
passwordDisplayText.setText('Password: ');
}
}
// ESC key or top area to cancel
if (y < 200) {
showPasswordInput = false;
passwordInput.visible = false;
passwordInputBg.visible = false;
passwordPromptText.visible = false;
passwordDisplayText.visible = false;
currentPassword = "";
}
return;
}
if (showMainMenu) {
// Check if start button was clicked
var startLeft = startButton.x - 135;
var startRight = startButton.x + 135;
var startTop = startButton.y - 90;
var startBottom = startButton.y + 90;
if (x >= startLeft && x <= startRight && y >= startTop && y <= startBottom) {
// Hide menu elements
showMainMenu = false;
gameStarted = true;
menuBackground.visible = false;
menuTitle.visible = false;
startButton.visible = false;
startButtonText.visible = false;
adminButton.visible = false;
adminButtonText.visible = false;
instructionText.visible = false;
// Show game elements
player.visible = true;
upgrade1Button.visible = true;
upgrade2Button.visible = true;
upgrade1Text.visible = true;
upgrade2Text.visible = true;
coinText.visible = true;
healthText.visible = true;
waveText.visible = true;
// Switch from menu music to game music
LK.stopMusic();
LK.playMusic('bgMusic', {
loop: true
});
// Start from wave 1
currentWave = 1;
waveText.setText('Wave: ' + currentWave);
}
// Check if admin button was clicked
var adminLeft = adminButton.x - 135;
var adminRight = adminButton.x + 135;
var adminTop = adminButton.y - 90;
var adminBottom = adminButton.y + 90;
if (x >= adminLeft && x <= adminRight && y >= adminTop && y <= adminBottom) {
// Show password input overlay
showPasswordInput = true;
passwordInput.visible = true;
passwordInputBg.visible = true;
passwordPromptText.visible = true;
passwordDisplayText.visible = true;
currentPassword = "";
passwordDisplayText.setText('Password: ');
}
return;
}
if (gameStarted) {
// Check upgrade 1 button - use proper bounds checking
var upgrade1Left = upgrade1Button.x - 90;
var upgrade1Right = upgrade1Button.x + 90;
var upgrade1Top = upgrade1Button.y - 60;
var upgrade1Bottom = upgrade1Button.y + 60;
if (x >= upgrade1Left && x <= upgrade1Right && y >= upgrade1Top && y <= upgrade1Bottom) {
if (upgrade1Level < 10 && coins >= upgrade1Cost) {
coins -= upgrade1Cost;
upgrade1Level++;
upgrade1Cost = turret1CostTable[upgrade1Level] || upgrade1Cost;
coinText.setText('Coins: ' + coins);
var damageText = turretDamageTable[upgrade1Level];
if (upgrade1Level >= 10) {
upgrade1Text.setText('Turret 1\nMax Level\nDamage: ' + damageText);
} else {
upgrade1Text.setText('Turret 1\nLevel: ' + upgrade1Level + '\nDamage: ' + damageText + '\nCost: ' + upgrade1Cost);
}
// Only spawn turret if this is the first level
if (upgrade1Level === 1) {
// Spawn turret at upgrade button position with animation
var newTurret = LK.getAsset('turret', {
anchorX: 0.5,
anchorY: 0.5
});
newTurret.x = player.x - 200;
newTurret.y = player.y - 100; // Position above player
newTurret.tint = 0x00ff00; // Green tint for turret
newTurret.scaleX = 0.1;
newTurret.scaleY = 0.1;
newTurret.level = upgrade1Level;
game.addChild(newTurret);
turrets1.push(newTurret);
// Animate turret spawn
tween(newTurret, {
scaleX: 1.0,
scaleY: 1.0
}, {
duration: 500,
easing: tween.bounceOut
});
} else {
// Update existing turret level
if (turrets1.length > 0) {
turrets1[0].level = upgrade1Level;
}
}
}
return;
}
// Check upgrade 2 button - use proper bounds checking
var upgrade2Left = upgrade2Button.x - 90;
var upgrade2Right = upgrade2Button.x + 90;
var upgrade2Top = upgrade2Button.y - 60;
var upgrade2Bottom = upgrade2Button.y + 60;
if (x >= upgrade2Left && x <= upgrade2Right && y >= upgrade2Top && y <= upgrade2Bottom) {
if (upgrade2Level < 10 && coins >= upgrade2Cost) {
coins -= upgrade2Cost;
upgrade2Level++;
upgrade2Cost = turret2CostTable[upgrade2Level] || upgrade2Cost;
coinText.setText('Coins: ' + coins);
var damageText = turretDamageTable[upgrade2Level];
if (upgrade2Level >= 10) {
upgrade2Text.setText('Turret 2\nMax Level\nDamage: ' + damageText);
} else {
upgrade2Text.setText('Turret 2\nLevel: ' + upgrade2Level + '\nDamage: ' + damageText + '\nCost: ' + upgrade2Cost);
}
// Only spawn turret if this is the first level
if (upgrade2Level === 1) {
// Spawn turret at upgrade button position with animation
var newTurret = LK.getAsset('turret', {
anchorX: 0.5,
anchorY: 0.5
});
newTurret.x = player.x + 200;
newTurret.y = player.y - 100; // Position above player
newTurret.tint = 0x0000ff; // Blue tint for turret
newTurret.scaleX = 0.1;
newTurret.scaleY = 0.1;
newTurret.level = upgrade2Level;
game.addChild(newTurret);
turrets2.push(newTurret);
// Animate turret spawn
tween(newTurret, {
scaleX: 1.0,
scaleY: 1.0
}, {
duration: 500,
easing: tween.bounceOut
});
} else {
// Update existing turret level
if (turrets2.length > 0) {
turrets2[0].level = upgrade2Level;
}
}
}
return;
}
// Check admin corner button click
if (isAdminMode) {
var adminCornerLeft = adminCornerButton.x - 54;
var adminCornerRight = adminCornerButton.x + 54;
var adminCornerTop = adminCornerButton.y - 36;
var adminCornerBottom = adminCornerButton.y + 36;
if (x >= adminCornerLeft && x <= adminCornerRight && y >= adminCornerTop && y <= adminCornerBottom) {
showAdminMenu = !showAdminMenu;
adminMenu.visible = showAdminMenu;
return;
}
// Check admin menu clicks
if (showAdminMenu) {
// Add coins button
var addCoinsLeft = addCoinsButton.x - 180;
var addCoinsRight = addCoinsButton.x + 180;
var addCoinsTop = addCoinsButton.y - 60;
var addCoinsBottom = addCoinsButton.y + 60;
if (x >= addCoinsLeft && x <= addCoinsRight && y >= addCoinsTop && y <= addCoinsBottom) {
coins += 1000;
coinText.setText('Coins: ' + coins);
return;
}
// Heal button
var healLeft = healButton.x - 180;
var healRight = healButton.x + 180;
var healTop = healButton.y - 60;
var healBottom = healButton.y + 60;
if (x >= healLeft && x <= healRight && y >= healTop && y <= healBottom) {
playerHealth = 10000;
healthText.setText('Health: ' + playerHealth);
return;
}
// Kill enemies button
var killLeft = killEnemiesButton.x - 180;
var killRight = killEnemiesButton.x + 180;
var killTop = killEnemiesButton.y - 60;
var killBottom = killEnemiesButton.y + 60;
if (x >= killLeft && x <= killRight && y >= killTop && y <= killBottom) {
for (var e = enemies.length - 1; e >= 0; e--) {
var enemy = enemies[e];
coins += enemy.coinValue;
enemiesKilled++;
enemy.destroy();
enemies.splice(e, 1);
}
coinText.setText('Coins: ' + coins);
return;
}
// Close menu button
var closeLeft = closeMenuButton.x - 180;
var closeRight = closeMenuButton.x + 180;
var closeTop = closeMenuButton.y - 60;
var closeBottom = closeMenuButton.y + 60;
if (x >= closeLeft && x <= closeRight && y >= closeTop && y <= closeBottom) {
showAdminMenu = false;
adminMenu.visible = false;
return;
}
return; // Don't shoot while menu is open
}
}
isMouseDown = true;
mouseX = x;
mouseY = y;
fireBullet(x, y);
} else {
gameStarted = true;
}
};
game.up = function (x, y, obj) {
isMouseDown = false;
};
game.move = function (x, y, obj) {
// Remove mouse tracking during movement to prevent bullets from following cursor
};
// Main game loop
game.update = function () {
if (showMainMenu) {
return; // Don't run game logic while in menu
}
if (!gameStarted) {
waveInProgress = true; // Start first wave when game begins
return;
}
// Update upgrade button positions
upgrade1Button.x = player.x - 200;
upgrade1Button.y = player.y;
upgrade1Text.x = upgrade1Button.x;
upgrade1Text.y = upgrade1Button.y;
upgrade2Button.x = player.x + 200;
upgrade2Button.y = player.y;
upgrade2Text.x = upgrade2Button.x;
upgrade2Text.y = upgrade2Button.y;
// Handle continuous shooting
if (isMouseDown) {
shootCooldown--;
if (shootCooldown <= 0) {
fireBullet(mouseX, mouseY);
shootCooldown = shootRate;
}
}
// Wave management
if (!waveInProgress) {
waveDelayTimer++;
if (waveDelayTimer >= waveStartDelay) {
startNewWave();
}
} else {
// Spawn enemies for current wave
enemySpawnTimer++;
if (enemySpawnTimer >= enemySpawnRate && enemiesSpawned < enemiesInWave) {
spawnEnemy();
enemySpawnTimer = 0;
}
// Check if wave is complete
if (enemiesKilled >= enemiesInWave && enemies.length === 0) {
waveInProgress = false;
waveDelayTimer = 0;
}
}
// Turret shooting logic
turretShootTimer1++;
turretShootTimer2++;
if (turretShootTimer1 >= turretShootRate) {
for (var t1 = 0; t1 < turrets1.length; t1++) {
var turret1 = turrets1[t1];
var target1 = findNearestEnemy(turret1.x, turret1.y);
if (target1) {
fireTurretBullet(turret1.x, turret1.y, target1, upgrade1Level);
}
}
turretShootTimer1 = 0;
}
if (turretShootTimer2 >= turretShootRate) {
for (var t2 = 0; t2 < turrets2.length; t2++) {
var turret2 = turrets2[t2];
var target2 = findNearestEnemy(turret2.x, turret2.y);
if (target2) {
fireTurretBullet(turret2.x, turret2.y, target2, upgrade2Level);
}
}
turretShootTimer2 = 0;
}
// Update bullets
for (var i = bullets.length - 1; i >= 0; i--) {
var bullet = bullets[i];
// Remove bullets that go off screen
if (bullet.lastY <= 2732 && (bullet.y > 2732 || bullet.y < -50 || bullet.x < -50 || bullet.x > 2098)) {
bullet.destroy();
bullets.splice(i, 1);
continue;
}
bullet.lastY = bullet.y;
}
// Update turret bullets
for (var tb = turretBullets.length - 1; tb >= 0; tb--) {
var turretBullet = turretBullets[tb];
// Remove turret bullets that go off screen
if (turretBullet.lastY <= 2732 && (turretBullet.y > 2732 || turretBullet.y < -50 || turretBullet.x < -50 || turretBullet.x > 2098)) {
turretBullet.destroy();
turretBullets.splice(tb, 1);
continue;
}
turretBullet.lastY = turretBullet.y;
}
// Update enemies and check collisions
for (var j = enemies.length - 1; j >= 0; j--) {
var enemy = enemies[j];
// Remove enemies that reach bottom (player takes damage)
if (enemy.lastY < 2732 && enemy.y >= 2732) {
playerHealth -= 20;
healthText.setText('Health: ' + playerHealth);
LK.effects.flashScreen(0xff0000, 500);
if (playerHealth <= 0) {
LK.setScore(coins);
LK.showGameOver();
return;
}
enemiesKilled++; // Count as killed for wave progress
enemy.destroy();
enemies.splice(j, 1);
continue;
}
// Check bullet collisions
for (var k = bullets.length - 1; k >= 0; k--) {
var bullet = bullets[k];
if (bullet.intersects(enemy)) {
enemy.takeDamage(bullet.damage);
LK.getSound('enemyDamage').play();
// Remove bullet
bullet.destroy();
bullets.splice(k, 1);
// Check if enemy is dead
if (enemy.health <= 0) {
coins += enemy.coinValue;
coinText.setText('Coins: ' + coins);
LK.getSound('enemyDeath').play();
enemiesKilled++;
enemy.destroy();
enemies.splice(j, 1);
}
break;
}
}
// Check turret bullet collisions
for (var tkb = turretBullets.length - 1; tkb >= 0; tkb--) {
var turretBullet = turretBullets[tkb];
if (turretBullet.intersects(enemy)) {
enemy.takeDamage(turretBullet.damage);
LK.getSound('enemyDamage').play();
// Remove turret bullet
turretBullet.destroy();
turretBullets.splice(tkb, 1);
// Check if enemy is dead
if (enemy.health <= 0) {
coins += enemy.coinValue;
coinText.setText('Coins: ' + coins);
LK.getSound('enemyDeath').play();
enemiesKilled++;
enemy.destroy();
enemies.splice(j, 1);
}
break;
}
}
enemy.lastY = enemy.y;
}
}; ===================================================================
--- original.js
+++ change.js
@@ -468,8 +468,54 @@
closeMenuText.x = closeMenuButton.x;
closeMenuText.y = closeMenuButton.y;
adminMenu.addChild(closeMenuText);
var showAdminMenu = false;
+var showPasswordInput = false;
+var currentPassword = "";
+var correctPassword = "admin123";
+// Password input overlay
+var passwordInput = new Container();
+passwordInput.visible = false;
+game.addChild(passwordInput);
+// Password background
+var passwordInputBg = LK.getAsset('upgradeButton', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ scaleX: 6,
+ scaleY: 4
+});
+passwordInputBg.x = 2048 / 2;
+passwordInputBg.y = 2732 / 2;
+passwordInputBg.tint = 0x333333;
+passwordInputBg.alpha = 0.9;
+passwordInputBg.visible = false;
+game.addChild(passwordInputBg);
+// Password prompt text
+var passwordPromptText = new Text2('Enter Admin Password:', {
+ size: 60,
+ fill: 0x00FF00,
+ font: "Futura",
+ stroke: 0x000000,
+ strokeThickness: 3
+});
+passwordPromptText.anchor.set(0.5, 0.5);
+passwordPromptText.x = 2048 / 2;
+passwordPromptText.y = 2732 / 2 - 100;
+passwordPromptText.visible = false;
+game.addChild(passwordPromptText);
+// Password display text
+var passwordDisplayText = new Text2('Password: ', {
+ size: 50,
+ fill: 0xFFFFFF,
+ font: "Futura",
+ stroke: 0x000000,
+ strokeThickness: 2
+});
+passwordDisplayText.anchor.set(0.5, 0.5);
+passwordDisplayText.x = 2048 / 2;
+passwordDisplayText.y = 2732 / 2;
+passwordDisplayText.visible = false;
+game.addChild(passwordDisplayText);
var healthText = new Text2('Health: 100', {
size: 60,
fill: 0x00FF00,
font: "Futura",
@@ -657,8 +703,120 @@
return nearestEnemy;
}
// Event handlers
game.down = function (x, y, obj) {
+ if (showPasswordInput) {
+ // Handle virtual keyboard input for password
+ var keyboardKeys = [['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'], ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'], ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'], ['z', 'x', 'c', 'v', 'b', 'n', 'm']];
+ // Simple character input based on screen position
+ var keyPressed = '';
+ if (y > 2732 / 2 + 100 && y < 2732 / 2 + 200) {
+ // Number row
+ var keyIndex = Math.floor((x - 400) / 125);
+ if (keyIndex >= 0 && keyIndex < 10) {
+ keyPressed = keyboardKeys[0][keyIndex];
+ }
+ } else if (y > 2732 / 2 + 200 && y < 2732 / 2 + 300) {
+ // QWERTY row
+ var keyIndex = Math.floor((x - 400) / 125);
+ if (keyIndex >= 0 && keyIndex < 10) {
+ keyPressed = keyboardKeys[1][keyIndex];
+ }
+ } else if (y > 2732 / 2 + 300 && y < 2732 / 2 + 400) {
+ // ASDF row
+ var keyIndex = Math.floor((x - 450) / 125);
+ if (keyIndex >= 0 && keyIndex < 9) {
+ keyPressed = keyboardKeys[2][keyIndex];
+ }
+ } else if (y > 2732 / 2 + 400 && y < 2732 / 2 + 500) {
+ // ZXCV row
+ var keyIndex = Math.floor((x - 500) / 125);
+ if (keyIndex >= 0 && keyIndex < 7) {
+ keyPressed = keyboardKeys[3][keyIndex];
+ }
+ }
+ if (keyPressed) {
+ currentPassword += keyPressed;
+ var displayPassword = '';
+ for (var p = 0; p < currentPassword.length; p++) {
+ displayPassword += '*';
+ }
+ passwordDisplayText.setText('Password: ' + displayPassword);
+ }
+ // Check for backspace (left side of screen)
+ if (x < 200) {
+ if (currentPassword.length > 0) {
+ currentPassword = currentPassword.slice(0, -1);
+ var displayPassword = '';
+ for (var p = 0; p < currentPassword.length; p++) {
+ displayPassword += '*';
+ }
+ passwordDisplayText.setText('Password: ' + displayPassword);
+ }
+ }
+ // Check for enter (right side of screen)
+ if (x > 1848) {
+ if (currentPassword === correctPassword) {
+ // Correct password - activate admin mode
+ isAdminMode = true;
+ coins = 10000;
+ playerHealth = 10000;
+ coinText.setText('Coins: ' + coins);
+ healthText.setText('Health: ' + playerHealth);
+ // Hide password input
+ showPasswordInput = false;
+ passwordInput.visible = false;
+ passwordInputBg.visible = false;
+ passwordPromptText.visible = false;
+ passwordDisplayText.visible = false;
+ currentPassword = "";
+ // Hide menu elements
+ showMainMenu = false;
+ gameStarted = true;
+ menuBackground.visible = false;
+ menuTitle.visible = false;
+ startButton.visible = false;
+ startButtonText.visible = false;
+ adminButton.visible = false;
+ adminButtonText.visible = false;
+ instructionText.visible = false;
+ // Show game elements
+ player.visible = true;
+ upgrade1Button.visible = true;
+ upgrade2Button.visible = true;
+ upgrade1Text.visible = true;
+ upgrade2Text.visible = true;
+ coinText.visible = true;
+ healthText.visible = true;
+ waveText.visible = true;
+ adminCornerButton.visible = true;
+ adminCornerText.visible = true;
+ // Switch from menu music to game music
+ LK.stopMusic();
+ LK.playMusic('bgMusic', {
+ loop: true
+ });
+ // Start from wave 1
+ currentWave = 1;
+ waveText.setText('Wave: ' + currentWave);
+ } else {
+ // Wrong password - flash red and reset
+ LK.effects.flashScreen(0xff0000, 500);
+ currentPassword = "";
+ passwordDisplayText.setText('Password: ');
+ }
+ }
+ // ESC key or top area to cancel
+ if (y < 200) {
+ showPasswordInput = false;
+ passwordInput.visible = false;
+ passwordInputBg.visible = false;
+ passwordPromptText.visible = false;
+ passwordDisplayText.visible = false;
+ currentPassword = "";
+ }
+ return;
+ }
if (showMainMenu) {
// Check if start button was clicked
var startLeft = startButton.x - 135;
var startRight = startButton.x + 135;
@@ -688,47 +846,26 @@
LK.stopMusic();
LK.playMusic('bgMusic', {
loop: true
});
+ // Start from wave 1
+ currentWave = 1;
+ waveText.setText('Wave: ' + currentWave);
}
// Check if admin button was clicked
var adminLeft = adminButton.x - 135;
var adminRight = adminButton.x + 135;
var adminTop = adminButton.y - 90;
var adminBottom = adminButton.y + 90;
if (x >= adminLeft && x <= adminRight && y >= adminTop && y <= adminBottom) {
- // Admin mode activated - give lots of coins and max health
- isAdminMode = true;
- coins = 10000;
- playerHealth = 10000;
- coinText.setText('Coins: ' + coins);
- healthText.setText('Health: ' + playerHealth);
- // Hide menu elements
- showMainMenu = false;
- gameStarted = true;
- menuBackground.visible = false;
- menuTitle.visible = false;
- startButton.visible = false;
- startButtonText.visible = false;
- adminButton.visible = false;
- adminButtonText.visible = false;
- instructionText.visible = false;
- // Show game elements
- player.visible = true;
- upgrade1Button.visible = true;
- upgrade2Button.visible = true;
- upgrade1Text.visible = true;
- upgrade2Text.visible = true;
- coinText.visible = true;
- healthText.visible = true;
- waveText.visible = true;
- adminCornerButton.visible = true;
- adminCornerText.visible = true;
- // Switch from menu music to game music
- LK.stopMusic();
- LK.playMusic('bgMusic', {
- loop: true
- });
+ // Show password input overlay
+ showPasswordInput = true;
+ passwordInput.visible = true;
+ passwordInputBg.visible = true;
+ passwordPromptText.visible = true;
+ passwordDisplayText.visible = true;
+ currentPassword = "";
+ passwordDisplayText.setText('Password: ');
}
return;
}
if (gameStarted) {