User prompt
"Add a special enemy unit called 'Enemy-B52' that releases small decoy explosives when a laser approaches, distracting or blocking the laser. The B52 should also attempt to dodge the laser by changing direction. Upon destruction, it causes area damage to all nearby objects within a defined radius."
User prompt
Add Enemy-B52 like an enemy
User prompt
"Change the background gradient based on screen zones: sky blue at the top (enemy spawn area), transitioning to green and brown at the bottom where the laser device stands, resembling grass and ground."
User prompt
"Divide the game into levels. With each level, increase both the player's power (laser speed, fire rate, movement) and the enemy's difficulty (speed, health, maneuverability). Rewards should also scale with each level." --- πΉ Level 1 5 Rockets, 3 Drones, 1 F-35 Enemy health: Low Player: Normal laser speed and single beam Rewards: $1000 (Rocket), $2500 (Drone), $5000 (F-35) Score to advance: 10,000 --- πΉ Level 2 10 Rockets, 6 Drones, 2 F-35s Enemy health: Medium, speed increased Player: Faster laser fire rate and movement Rewards: $1200 (Rocket), $3000 (Drone), $6000 (F-35) Score to advance: 25,000 --- πΉ Level 3 15 Rockets, 9 Drones, 3 F-35s Enemy health: High, faster and agile Player: Double laser beams, high fire rate Rewards: $1500 (Rocket), $4000 (Drone), $8000 (F-35) Score to advance: 50,000
User prompt
Laser Fire Rate: From 1 shot/sec β 3 shots/sec Movement Speed: From 5 px/s β 8 px/s New Rewards: Rocket β $1000, Drone β $2500, F-35 β $10,000
User prompt
"Increase the laser firing rate and the left-right movement speed of the laser device. Also, raise the reward amounts for destroying enemies β current values are too low."
User prompt
"Set different hit points, speed, maneuverability, and rewards for each enemy: Rocket (1 hit, fast, $500), Drone/UAV (2 hits, medium speed, $1000), F-35 (3 hits, slow, agile, $5000). Also, use different laser effects for each."
User prompt
Add rockets like an enemy
User prompt
"Fix the laser movement so it doesn't get stuck when reaching the far left or right edges of the screen."
User prompt
"Disable or remove the two green square indicators near the laser device, as they block laser control when approached."
User prompt
Use gun sound only when a player pushes laser
User prompt
All UAVs and enemy aircraft are classified as hostile and will move directly towards the Zirve L-1 laser defense unit."
User prompt
βGo back to Step 2.β β‘οΈ Returns to the second command.
User prompt
πΉ Step 3: Add Laser Firing from Cannon Command (Step 3): > When the player taps the FIRE button, spawn a vertical green laser beam from the top center of the playerCannon. The laser should travel straight upward and destroy the first enemy it touches.
User prompt
πΉ Step 2 (repeat): Enable Horizontal Movement for the Cannon Command (Step 2): > Allow the playerCannon at the bottom of the screen to move left and right. Movement should respond to touch drag or two on-screen arrow buttons. The cannon must always stay within the screen boundaries.
Code edit (1 edits merged)
Please save this source code
User prompt
Laser Cannon Defense
Initial prompt
πΉ Step 1: Create the Player Cannon Object Command (Step 1): > Create a player-controlled laser cannon object. Place it at the bottom center of the screen, aligned to the ground. The cannon should be able to move horizontally only. Name the object: playerCannon.
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var B52 = Container.expand(function () { var self = Container.call(this); var b52Graphics = self.attachAsset('B52', { anchorX: 0.5, anchorY: 0.5 }); // Tint B52 to make it visually distinct (dark gray) b52Graphics.tint = 0x666666; self.speed = 1; // Very slow speed self.health = 5; // 5 hit points - highest health self.reward = 15000; // $15000 reward - highest reward self.targetX = 0; self.targetY = 0; self.moveTimer = 0; self.update = function () { // B52 moves slowly and steadily towards target self.moveTimer++; var dx = self.targetX - self.x; var dy = self.targetY - self.y; var distance = Math.sqrt(dx * dx + dy * dy); if (distance > 0) { self.x += dx / distance * self.speed; self.y += dy / distance * self.speed; } }; self.setTarget = function (x, y) { self.targetX = x; self.targetY = y; }; self.takeDamage = function () { self.health--; if (self.health <= 0) { return true; // B52 destroyed } return false; }; return self; }); var Cannon = Container.expand(function () { var self = Container.call(this); var cannonGraphics = self.attachAsset('cannon', { anchorX: 0.5, anchorY: 1.0 }); self.fireRate = 0; self.maxFireRate = 2; // Fire every 2 frames at max - 3 shots per second self.update = function () { if (self.fireRate > 0) { self.fireRate--; } }; self.canFire = function () { return self.fireRate <= 0; }; self.fire = function () { if (self.canFire()) { self.fireRate = self.maxFireRate; return true; } return false; }; return self; }); var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 2; self.health = 1; self.reward = 500; // Default reward for basic enemy - increased reward self.update = function () { self.y += self.speed; }; self.takeDamage = function () { self.health--; if (self.health <= 0) { return true; // Enemy destroyed } return false; }; return self; }); var F35 = Container.expand(function () { var self = Container.call(this); var f35Graphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); // Tint F35 to make it visually distinct (darker blue) f35Graphics.tint = 0x4444FF; self.speed = 2; // Slow speed self.health = 3; // 3 hit points self.reward = 10000; // $10000 reward self.targetX = 0; self.targetY = 0; self.agileTimer = 0; self.agileDirection = 1; self.update = function () { // Agile movement - add evasive maneuvers self.agileTimer++; if (self.agileTimer % 60 === 0) { self.agileDirection *= -1; } // Move towards target with agile zigzag pattern var dx = self.targetX - self.x; var dy = self.targetY - self.y; var distance = Math.sqrt(dx * dx + dy * dy); if (distance > 0) { self.x += dx / distance * self.speed + Math.sin(self.agileTimer * 0.1) * 2 * self.agileDirection; self.y += dy / distance * self.speed; } }; self.setTarget = function (x, y) { self.targetX = x; self.targetY = y; }; self.takeDamage = function () { self.health--; if (self.health <= 0) { return true; // F35 destroyed } return false; }; return self; }); var Laser = Container.expand(function () { var self = Container.call(this); var laserGraphics = self.attachAsset('laser', { anchorX: 0.5, anchorY: 0.5 }); self.speed = -12; self.update = function () { self.y += self.speed; }; return self; }); var Rocket = Container.expand(function () { var self = Container.call(this); var rocketGraphics = self.attachAsset('Rockets', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 6; // Fast speed self.health = 1; // 1 hit point self.reward = 1000; // $1000 reward self.targetX = 0; self.targetY = 0; self.update = function () { // Move directly towards the cannon with higher speed var dx = self.targetX - self.x; var dy = self.targetY - self.y; var distance = Math.sqrt(dx * dx + dy * dy); if (distance > 0) { self.x += dx / distance * self.speed; self.y += dy / distance * self.speed; } }; self.setTarget = function (x, y) { self.targetX = x; self.targetY = y; }; self.takeDamage = function () { self.health--; if (self.health <= 0) { return true; // Rocket destroyed } return false; }; return self; }); var UAV = Container.expand(function () { var self = Container.call(this); var uavGraphics = self.attachAsset('UAV', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 4; // Medium speed self.health = 2; // 2 hit points self.reward = 2500; // $2500 reward self.targetX = 0; self.targetY = 0; self.update = function () { // Move directly towards the cannon var dx = self.targetX - self.x; var dy = self.targetY - self.y; var distance = Math.sqrt(dx * dx + dy * dy); if (distance > 0) { self.x += dx / distance * self.speed; self.y += dy / distance * self.speed; } }; self.setTarget = function (x, y) { self.targetX = x; self.targetY = y; }; self.takeDamage = function () { self.health--; if (self.health <= 0) { return true; // UAV destroyed } return false; }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x001122 }); /**** * Game Code ****/ // Create gradient background from sky blue at top to green-brown at bottom var backgroundGradient = LK.getAsset('background', { width: 2048, height: 2732, color: 0x87CEEB, // Sky blue shape: 'box' }); game.addChild(backgroundGradient); // Create multiple horizontal strips for gradient effect var gradientStrips = []; var stripHeight = 60; var totalStrips = Math.ceil(2732 / stripHeight); for (var i = 0; i < totalStrips; i++) { var strip = LK.getAsset('gradientStrip_' + i, { width: 2048, height: stripHeight, color: 0x87CEEB, // Will be tinted for gradient shape: 'box' }); strip.y = i * stripHeight; // Calculate gradient progression from sky blue to green to brown var progress = i / totalStrips; var r, g, b; if (progress < 0.6) { // Sky blue to green transition (top 60% of screen) var skyProgress = progress / 0.6; r = Math.floor(135 + (34 - 135) * skyProgress); // 135 -> 34 g = Math.floor(206 + (139 - 206) * skyProgress); // 206 -> 139 b = Math.floor(235 + (34 - 235) * skyProgress); // 235 -> 34 } else { // Green to brown transition (bottom 40% of screen) var groundProgress = (progress - 0.6) / 0.4; r = Math.floor(34 + (139 - 34) * groundProgress); // 34 -> 139 g = Math.floor(139 + (69 - 139) * groundProgress); // 139 -> 69 b = Math.floor(34 + (19 - 34) * groundProgress); // 34 -> 19 } var color = r << 16 | g << 8 | b; strip.tint = color; game.addChild(strip); gradientStrips.push(strip); } // Game variables var cannon; var lasers = []; var enemies = []; var enemySpawnTimer = 0; var enemySpawnRate = 120; // Spawn enemy every 2 seconds initially var gameSpeed = 1; var waveNumber = 1; var currentLevel = 1; var enemiesKilledThisLevel = 0; var requiredKills = { 1: 10, 2: 20, 3: 30 }; // Total enemies per level var scoreToAdvance = { 1: 10000, 2: 25000, 3: 50000 }; var levelComplete = false; // UI Elements var scoreTxt = new Text2('Score: 0', { size: 60, fill: 0xFFFFFF }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); var waveTxt = new Text2('Wave: 1', { size: 50, fill: 0xFFFF00 }); waveTxt.anchor.set(1, 0); LK.gui.topRight.addChild(waveTxt); var levelTxt = new Text2('Level: 1', { size: 50, fill: 0x00FFFF }); levelTxt.anchor.set(0, 0); levelTxt.x = 120; // Offset from left edge to avoid menu icon LK.gui.topLeft.addChild(levelTxt); // Initialize cannon cannon = game.addChild(new Cannon()); cannon.x = 2048 / 2; cannon.y = 2732 - 100; // Set initial cannon stats for level 1 function updateCannonStats() { if (currentLevel === 1) { cannon.maxFireRate = 2; // 3 shots per second cannonSpeed = 24; // Normal movement } else if (currentLevel === 2) { cannon.maxFireRate = 1; // 6 shots per second - faster cannonSpeed = 32; // Faster movement } else if (currentLevel === 3) { cannon.maxFireRate = 1; // Keep high fire rate cannonSpeed = 40; // Fastest movement } } updateCannonStats(); // Touch controls var isDragging = false; var cannonSpeed = 24; game.down = function (x, y, obj) { // Check if touch is in the cannon control area for dragging if (y > 2732 - 300) { isDragging = true; cannon.x = Math.max(60, Math.min(2048 - 60, x)); } // Fire laser on any tap/touch - gun sound plays when player pushes laser if (cannon.fire()) { if (currentLevel === 3) { // Double laser beams for level 3 var laser1 = new Laser(); laser1.x = cannon.x - 30; laser1.y = cannon.y - 50; lasers.push(laser1); game.addChild(laser1); var laser2 = new Laser(); laser2.x = cannon.x + 30; laser2.y = cannon.y - 50; lasers.push(laser2); game.addChild(laser2); } else { // Single laser beam for levels 1 and 2 var laser = new Laser(); laser.x = cannon.x; laser.y = cannon.y - 50; lasers.push(laser); game.addChild(laser); } LK.getSound('shoot').play(); } }; game.move = function (x, y, obj) { if (isDragging) { cannon.x = Math.max(60, Math.min(2048 - 60, x)); } }; game.up = function (x, y, obj) { isDragging = false; }; // Spawn enemy function function spawnEnemy() { // Level-based enemy spawning var levelSpawnQueue = []; if (currentLevel === 1) { // Level 1: 5 Rockets, 3 Drones, 1 F-35, 1 B52 for (var i = 0; i < 5; i++) levelSpawnQueue.push('rocket'); for (var i = 0; i < 3; i++) levelSpawnQueue.push('uav'); for (var i = 0; i < 1; i++) levelSpawnQueue.push('f35'); for (var i = 0; i < 1; i++) levelSpawnQueue.push('b52'); } else if (currentLevel === 2) { // Level 2: 10 Rockets, 6 Drones, 2 F-35s, 2 B52s for (var i = 0; i < 10; i++) levelSpawnQueue.push('rocket'); for (var i = 0; i < 6; i++) levelSpawnQueue.push('uav'); for (var i = 0; i < 2; i++) levelSpawnQueue.push('f35'); for (var i = 0; i < 2; i++) levelSpawnQueue.push('b52'); } else if (currentLevel === 3) { // Level 3: 15 Rockets, 9 Drones, 3 F-35s, 3 B52s for (var i = 0; i < 15; i++) levelSpawnQueue.push('rocket'); for (var i = 0; i < 9; i++) levelSpawnQueue.push('uav'); for (var i = 0; i < 3; i++) levelSpawnQueue.push('f35'); for (var i = 0; i < 3; i++) levelSpawnQueue.push('b52'); } // Don't spawn if we've reached the level limit if (enemiesKilledThisLevel >= requiredKills[currentLevel]) { return; } // Randomly pick from the queue var enemyType = levelSpawnQueue[Math.floor(Math.random() * levelSpawnQueue.length)]; // Level multipliers for stats var speedMultiplier = currentLevel === 1 ? 1 : currentLevel === 2 ? 1.5 : 2; var healthMultiplier = currentLevel === 1 ? 1 : currentLevel === 2 ? 1.5 : 2; if (enemyType === 'rocket') { var rocket = new Rocket(); rocket.x = Math.random() * (2048 - 160) + 80; rocket.y = -100; rocket.speed = (6 + Math.random() * 1.5) * speedMultiplier; rocket.health = Math.floor(1 * healthMultiplier); // Update rewards based on level if (currentLevel === 1) rocket.reward = 1000;else if (currentLevel === 2) rocket.reward = 1200;else if (currentLevel === 3) rocket.reward = 1500; rocket.setTarget(cannon.x, cannon.y); enemies.push(rocket); game.addChild(rocket); } else if (enemyType === 'uav') { var uav = new UAV(); uav.x = Math.random() * (2048 - 160) + 80; uav.y = -100; uav.speed = (4 + Math.random() * 1.5) * speedMultiplier; uav.health = Math.floor(2 * healthMultiplier); // Update rewards based on level if (currentLevel === 1) uav.reward = 2500;else if (currentLevel === 2) uav.reward = 3000;else if (currentLevel === 3) uav.reward = 4000; uav.setTarget(cannon.x, cannon.y); enemies.push(uav); game.addChild(uav); } else if (enemyType === 'f35') { var f35 = new F35(); f35.x = Math.random() * (2048 - 160) + 80; f35.y = -100; f35.speed = (2 + Math.random() * 0.5) * speedMultiplier; f35.health = Math.floor(3 * healthMultiplier); // Update rewards based on level if (currentLevel === 1) f35.reward = 5000;else if (currentLevel === 2) f35.reward = 6000;else if (currentLevel === 3) f35.reward = 8000; f35.setTarget(cannon.x, cannon.y); enemies.push(f35); game.addChild(f35); } else if (enemyType === 'b52') { var b52 = new B52(); b52.x = Math.random() * (2048 - 160) + 80; b52.y = -100; b52.speed = (1 + Math.random() * 0.5) * speedMultiplier; b52.health = Math.floor(5 * healthMultiplier); // Update rewards based on level if (currentLevel === 1) b52.reward = 15000;else if (currentLevel === 2) b52.reward = 18000;else if (currentLevel === 3) b52.reward = 22000; b52.setTarget(cannon.x, cannon.y); enemies.push(b52); game.addChild(b52); } } // Update wave difficulty function updateWave() { waveNumber++; enemySpawnRate = Math.max(30, enemySpawnRate - 10); waveTxt.setText('Wave: ' + waveNumber); // Flash effect for new wave LK.effects.flashScreen(0x00FF00, 500); } // Main game loop game.update = function () { // Player-controlled laser firing - only when player touches/taps // No automatic firing - gun sound only plays when player pushes laser // Update enemy spawn timer enemySpawnTimer++; if (enemySpawnTimer >= enemySpawnRate) { spawnEnemy(); enemySpawnTimer = 0; } // Update lasers for (var i = lasers.length - 1; i >= 0; i--) { var laser = lasers[i]; if (laser.lastY === undefined) laser.lastY = laser.y; // Remove laser if off screen if (laser.lastY >= -50 && laser.y < -50) { laser.destroy(); lasers.splice(i, 1); continue; } // Check collision with enemies var hitEnemy = false; for (var j = enemies.length - 1; j >= 0; j--) { var enemy = enemies[j]; if (laser.intersects(enemy)) { // Hit enemy LK.getSound('enemyHit').play(); // Different laser effects based on enemy type var effectColor = 0xFFFFFF; var effectDuration = 200; if (enemy.constructor.name === 'Rocket') { effectColor = 0xFF6600; // Orange effect for rockets effectDuration = 150; } else if (enemy.constructor.name === 'UAV') { effectColor = 0x00FFFF; // Cyan effect for UAVs effectDuration = 250; } else if (enemy.constructor.name === 'F35') { effectColor = 0xFF00FF; // Magenta effect for F35s effectDuration = 300; } else if (enemy.constructor.name === 'B52') { effectColor = 0xFFFF00; // Yellow effect for B52s effectDuration = 400; } LK.effects.flashObject(laser, effectColor, effectDuration); if (enemy.takeDamage()) { // Enemy destroyed - use enemy's reward value var reward = enemy.reward || 100; LK.setScore(LK.getScore() + reward); scoreTxt.setText('Score: ' + LK.getScore()); LK.getSound('enemyDestroy').play(); // Flash effect LK.effects.flashObject(enemy, effectColor, effectDuration); enemy.destroy(); enemies.splice(j, 1); enemiesKilledThisLevel++; // Check for level progression if (LK.getScore() >= scoreToAdvance[currentLevel] && enemiesKilledThisLevel >= requiredKills[currentLevel] && currentLevel < 3) { currentLevel++; enemiesKilledThisLevel = 0; levelComplete = false; levelTxt.setText('Level: ' + currentLevel); updateCannonStats(); LK.effects.flashScreen(0x00FF00, 1000); } } else { // Enemy damaged but not destroyed LK.effects.flashObject(enemy, 0xFF0000, 300); } laser.destroy(); lasers.splice(i, 1); hitEnemy = true; break; } } if (!hitEnemy) { laser.lastY = laser.y; } } // Update enemies for (var k = enemies.length - 1; k >= 0; k--) { var enemy = enemies[k]; if (enemy.lastY === undefined) enemy.lastY = enemy.y; // Update UAV and Rocket targets to track cannon if (enemy.setTarget) { enemy.setTarget(cannon.x, cannon.y); } // Check if enemy reached bottom if (enemy.y > 2732 + 100) { enemy.destroy(); enemies.splice(k, 1); continue; } // Check collision with cannon if (enemy.intersects(cannon)) { // Game over LK.effects.flashScreen(0xFF0000, 1000); LK.showGameOver(); return; } enemy.lastY = enemy.y; } // Check for wave completion and increase difficulty if (LK.ticks % 1800 === 0) { // Every 30 seconds updateWave(); } // Victory condition - complete level 3 if (currentLevel === 3 && LK.getScore() >= scoreToAdvance[3] && enemiesKilledThisLevel >= requiredKills[3]) { LK.showYouWin(); } };
===================================================================
--- original.js
+++ change.js
@@ -5,8 +5,46 @@
/****
* Classes
****/
+var B52 = Container.expand(function () {
+ var self = Container.call(this);
+ var b52Graphics = self.attachAsset('B52', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ // Tint B52 to make it visually distinct (dark gray)
+ b52Graphics.tint = 0x666666;
+ self.speed = 1; // Very slow speed
+ self.health = 5; // 5 hit points - highest health
+ self.reward = 15000; // $15000 reward - highest reward
+ self.targetX = 0;
+ self.targetY = 0;
+ self.moveTimer = 0;
+ self.update = function () {
+ // B52 moves slowly and steadily towards target
+ self.moveTimer++;
+ var dx = self.targetX - self.x;
+ var dy = self.targetY - self.y;
+ var distance = Math.sqrt(dx * dx + dy * dy);
+ if (distance > 0) {
+ self.x += dx / distance * self.speed;
+ self.y += dy / distance * self.speed;
+ }
+ };
+ self.setTarget = function (x, y) {
+ self.targetX = x;
+ self.targetY = y;
+ };
+ self.takeDamage = function () {
+ self.health--;
+ if (self.health <= 0) {
+ return true; // B52 destroyed
+ }
+ return false;
+ };
+ return self;
+});
var Cannon = Container.expand(function () {
var self = Container.call(this);
var cannonGraphics = self.attachAsset('cannon', {
anchorX: 0.5,
@@ -239,11 +277,11 @@
var waveNumber = 1;
var currentLevel = 1;
var enemiesKilledThisLevel = 0;
var requiredKills = {
- 1: 9,
- 2: 18,
- 3: 27
+ 1: 10,
+ 2: 20,
+ 3: 30
}; // Total enemies per level
var scoreToAdvance = {
1: 10000,
2: 25000,
@@ -334,22 +372,25 @@
function spawnEnemy() {
// Level-based enemy spawning
var levelSpawnQueue = [];
if (currentLevel === 1) {
- // Level 1: 5 Rockets, 3 Drones, 1 F-35
+ // Level 1: 5 Rockets, 3 Drones, 1 F-35, 1 B52
for (var i = 0; i < 5; i++) levelSpawnQueue.push('rocket');
for (var i = 0; i < 3; i++) levelSpawnQueue.push('uav');
for (var i = 0; i < 1; i++) levelSpawnQueue.push('f35');
+ for (var i = 0; i < 1; i++) levelSpawnQueue.push('b52');
} else if (currentLevel === 2) {
- // Level 2: 10 Rockets, 6 Drones, 2 F-35s
+ // Level 2: 10 Rockets, 6 Drones, 2 F-35s, 2 B52s
for (var i = 0; i < 10; i++) levelSpawnQueue.push('rocket');
for (var i = 0; i < 6; i++) levelSpawnQueue.push('uav');
for (var i = 0; i < 2; i++) levelSpawnQueue.push('f35');
+ for (var i = 0; i < 2; i++) levelSpawnQueue.push('b52');
} else if (currentLevel === 3) {
- // Level 3: 15 Rockets, 9 Drones, 3 F-35s
+ // Level 3: 15 Rockets, 9 Drones, 3 F-35s, 3 B52s
for (var i = 0; i < 15; i++) levelSpawnQueue.push('rocket');
for (var i = 0; i < 9; i++) levelSpawnQueue.push('uav');
for (var i = 0; i < 3; i++) levelSpawnQueue.push('f35');
+ for (var i = 0; i < 3; i++) levelSpawnQueue.push('b52');
}
// Don't spawn if we've reached the level limit
if (enemiesKilledThisLevel >= requiredKills[currentLevel]) {
return;
@@ -391,8 +432,19 @@
if (currentLevel === 1) f35.reward = 5000;else if (currentLevel === 2) f35.reward = 6000;else if (currentLevel === 3) f35.reward = 8000;
f35.setTarget(cannon.x, cannon.y);
enemies.push(f35);
game.addChild(f35);
+ } else if (enemyType === 'b52') {
+ var b52 = new B52();
+ b52.x = Math.random() * (2048 - 160) + 80;
+ b52.y = -100;
+ b52.speed = (1 + Math.random() * 0.5) * speedMultiplier;
+ b52.health = Math.floor(5 * healthMultiplier);
+ // Update rewards based on level
+ if (currentLevel === 1) b52.reward = 15000;else if (currentLevel === 2) b52.reward = 18000;else if (currentLevel === 3) b52.reward = 22000;
+ b52.setTarget(cannon.x, cannon.y);
+ enemies.push(b52);
+ game.addChild(b52);
}
}
// Update wave difficulty
function updateWave() {
@@ -440,8 +492,11 @@
effectDuration = 250;
} else if (enemy.constructor.name === 'F35') {
effectColor = 0xFF00FF; // Magenta effect for F35s
effectDuration = 300;
+ } else if (enemy.constructor.name === 'B52') {
+ effectColor = 0xFFFF00; // Yellow effect for B52s
+ effectDuration = 400;
}
LK.effects.flashObject(laser, effectColor, effectDuration);
if (enemy.takeDamage()) {
// Enemy destroyed - use enemy's reward value
F35 like fighter jet. In-Game asset. 2d. High contrast. No shadows
Overwiev of unmanned aircraft coming to us. 2d. High contrast. No shadows
Looking like real rocket. Rocket picture. In-Game asset. 2d. High contrast. No shadows
Imagine that a Big laser machine you see from upside. Stands from back to the forward. Tries to hit enemy's.. In-Game asset. 2d. High contrast. No shadows