User prompt
If the guards start shooting the ufo then and only then display a 200 unit wide, 20 unit high green level indicator as a life counter at the bottom center of the screen. If the guards shot hits the ufo asset, Each hit takes 20% of the ufo's health. If it runs out of health, make the ufo asset disappear from the screen with an explosion animation.
User prompt
If the guards shot hits the ufo asset, display a 200 units wide by 20 units high green level marker on top of the ufo asset as a life counter. Each hit takes 20% off the ufo's health
User prompt
If the guards shot hits the ufo asset, display a 300 units wide by 50 units high green level marker on top of the ufo asset as a life counter. Each hit takes 20% off the ufo's health
User prompt
If the guards shot hits the ufo asset, display a green and red divided horizontal level indicator at the top of the screen as a life counter. Each hit takes 20% off the ufo's health
User prompt
ensure that the guards do not shoot the UFO in a continuous beam
User prompt
ensure that the guards do not shoot the UFO in a continuous beam, but in pieces
User prompt
keep ten times the distance between the red laser beams
User prompt
keep three times the distance between the red laser beams
User prompt
rotate the red laser asset by 90 degrees
User prompt
Guards shoot red laser beams towards the UFO when visible
User prompt
You can only display the guards on the field if the alarm sound has already sounded, not before.
User prompt
As soon as the alarmsound asset 3 guard sounds, the screen sub-gate will come up to their current positions.
User prompt
If the player uses the laser beam continuously for 5 seconds, then play the alarm sound
User prompt
If the player uses the laser beam continuously for more than 5 seconds, then play the alarm sound
User prompt
play the alarm sound when the player hold down the laser beam with the mouse button continuously for at least 5 seconds
User prompt
Move the alarm device asset left by 10units
User prompt
move the alarm device asset right with 25 units
User prompt
move the alarm device asset right with 50 units
User prompt
move the alarm device asset right with 50 units
User prompt
move the alarm device asset down with 150 units
User prompt
move the alarm device asset down with 200 units
User prompt
move the alarm device asset down with 200 units
User prompt
Add flashing animation to the alarmdevice asset
User prompt
add flashing animation to the alarm device asset
User prompt
add alarmdevice asset to the map
/****
* Classes
****/
// Beam class
var Beam = Container.expand(function () {
var self = Container.call(this);
var beamGraphics = self.attachAsset('beam', {
anchorX: 0.5,
anchorY: 1.0
});
beamGraphics.rotation = -Math.PI / 2;
self.update = function () {
// Move the beam upwards by 5 units every frame
// But stop if the beam's top edge is at or above the UFO's bottom edge
if (self.y - self.height / 2 > ufo.y + ufo.height / 2) {
self.y -= 5;
}
};
});
// Cow class
var Cow = Container.expand(function () {
var self = Container.call(this);
var cowGraphics = self.attachAsset('cow', {
anchorX: 0.5,
anchorY: 0.5
});
self.isAbducted = false; // Add a new property to check if the cow is being abducted
self.update = function () {
if (!self.isAbducted) {
// If the cow is not being abducted, it can move freely
if (this.x < guards[0].x) {
this.x = guards[0].x;
}
if (this.x > guards[1].x) {
this.x = guards[1].x;
}
} else {
// If the cow is being abducted, it should move towards the UFO
var dx = ufo.x - this.x;
var dy = ufo.y - this.y;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance > 5 && this.y - this.height / 2 > ufo.y + ufo.height / 2) {
// If the cow is not yet at the UFO and the cow's top edge is below the UFO's bottom edge, it should continue moving towards it
this.x += dx / distance * 5;
this.y += dy / distance * 5;
} else {
// If the cow has reached the UFO or its top edge is at or above the UFO's bottom edge, it should disappear
this.destroy();
cows.splice(cows.indexOf(this), 1);
}
}
};
});
// Ground class
var Ground = Container.expand(function () {
var self = Container.call(this);
var groundGraphics = self.attachAsset('ground', {
anchorX: 0.5,
anchorY: 1.0
});
});
// Moon class
var Moon = Container.expand(function () {
var self = Container.call(this);
var moonGraphics = self.attachAsset('moon', {
anchorX: 0.5,
anchorY: 0.5
});
self.update = function () {
// Moon shining animation logic
// this.alpha = 0.5 + Math.sin(LK.ticks / 30) / 2; // Create a shining effect by changing the alpha value
};
});
// SecurityGuard class
var SecurityGuard = Container.expand(function () {
var self = Container.call(this);
var guardGraphics = self.attachAsset('guard', {
anchorX: 0.5,
anchorY: 0.5
});
self.update = function () {
// Security guard patrol logic can be added here if needed
};
});
// StarrySky class
var StarrySky = Container.expand(function () {
var self = Container.call(this);
var starrySkyGraphics = self.attachAsset('starrySky', {
anchorX: 0.5,
anchorY: 0.5
});
self.update = function () {
// Starry sky animation logic
this.alpha = 0.5 + Math.sin(LK.ticks / 120) / 2; // Create a shining effect by changing the alpha value
};
});
//<Assets used in the game will automatically appear here>
//<Write imports for supported plugins here>
// UFO class
var UFO = Container.expand(function () {
var self = Container.call(this);
var ufoGraphics = self.attachAsset('ufo', {
anchorX: 0.5,
anchorY: 0.5
});
self.beam = null; // Add a beam property to the UFO
self.update = function () {
// UFO movement logic will be handled in the game move event
if (self.beam) {
// If the beam exists, make it flash by changing its alpha value
self.beam.alpha = 0.5 + Math.sin(LK.ticks / 10) / 2;
// If the beam's top is inside the UFO, make it disappear
if (self.beam.y <= self.y + self.height / 2) {
self.beam.destroy();
self.beam = null;
}
}
};
});
// Wormhole class
var Wormhole = Container.expand(function () {
var self = Container.call(this);
var wormholeGraphics = self.attachAsset('wormhole', {
anchorX: 0.5,
anchorY: 0.5
});
self.update = function () {
// Rotate the wormhole continuously
self.rotation += 0.05; // Adjust the rotation speed as needed
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 //Init game with black background
});
/****
* Game Code
****/
// Initialize wormhole asset
var starrySky = game.addChild(new StarrySky());
starrySky.x = 1024; // Center horizontally
starrySky.y = 1366; // Center vertically
// Initialize variables
var ground = game.addChild(new Ground());
var moon = game.addChild(new Moon());
moon.x = 2048 - moon.width / 2 - 200; // Position moon at the upper right corner and move it left by 200 units
moon.y = moon.height / 2 + 200; // Move the moon down by 200 units
var wormhole = game.addChild(new Wormhole());
var alarmdevice = LK.getAsset('alarmdevice', {
anchorX: 0.5,
anchorY: 0.5
});
alarmdevice.x = 500; // Set x position of alarmdevice
alarmdevice.y = 500; // Set y position of alarmdevice
game.addChild(alarmdevice); // Add alarmdevice to the game
wormhole.x = moon.x; // Center wormhole on the moon
wormhole.y = moon.y; // Align vertically with the moon
wormhole.visible = false; // Initially hide the wormhole
ground.x = 1024; // Center horizontally
ground.y = 2732; // Bottom of the screen
var ufo = game.addChild(new UFO());
ufo.x = 1024; // Center horizontally
ufo.y = 500; // Upper half of the screen
var cows = [];
var guards = [];
var sucking = false;
var suckStartTime = 0;
var beam = null; // Define the beam variable
// Create cows
for (var i = 0; i < 10; i++) {
var cow = new Cow();
do {
cow.x = Math.random() * 2048;
cow.y = 2000 + Math.random() * 500; // Lower half of the screen
} while (cows.some(function (existingCow) {
return Math.abs(existingCow.x - cow.x) < 50 && Math.abs(existingCow.y - cow.y) < 50;
}));
cows.push(cow);
game.addChild(cow);
}
// Create security guards
for (var i = 0; i < 2; i++) {
var guard = new SecurityGuard();
guard.x = i * 2048 + (i == 0 ? 200 : -200); // Position guards at each side of the screen but 200 units closer to the center
guard.y = 2600; // Bottom of the screen
guards.push(guard);
game.addChild(guard);
}
// Handle UFO movement
game.move = function (x, y, obj) {
ufo.x = x;
ufo.y = Math.min(y, 1366); // Restrict to upper half
};
// Handle mouse down event
game.down = function (x, y, obj) {
// Check if the player clicked on a cow
for (var i = 0; i < cows.length; i++) {
if (Math.abs(cows[i].x - x) < 50 && Math.abs(cows[i].y - y) < 50) {
cows[i].isAbducted = true; // Set the isAbducted property of the clicked cow to true
beam = new Beam();
beam.x = cows[i].x;
beam.y = cows[i].y;
beam.height = Math.abs(cows[i].y - ufo.y); // Adjust the beam's height to match the distance between the UFO and the cow
game.addChildAt(beam, game.getChildIndex(cows[0])); // Add the beam behind the cows in the display list
break;
}
}
};
// Handle mouse up event
game.up = function (x, y, obj) {
if (beam) {
beam.destroy();
beam = null;
for (var i = 0; i < cows.length; i++) {
// Set the isAbducted property of all cows to false
cows[i].isAbducted = false;
}
}
};
// Game update loop
game.update = function () {
if (sucking) {
var currentTime = Date.now();
if (currentTime - suckStartTime > 5000) {
// Move guards horizontally towards the UFO
guards.forEach(function (guard) {
if (guard.x < ufo.x) {
guard.x += 2; // Move right
} else if (guard.x > ufo.x) {
guard.x -= 2; // Move left
}
// Shoot thin red lines towards the UFO
var line = new Container();
var lineGraphics = line.attachAsset('beam', {
anchorX: 0.5,
anchorY: 0.5,
color: 0xff0000,
// Red color
width: 2,
// Thin line
height: Math.abs(guard.y - ufo.y)
});
line.x = guard.x;
line.y = guard.y;
game.addChild(line);
});
}
var currentTime = Date.now();
if (currentTime - suckStartTime > 6000) {
// Game over logic
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
if (beam) {
beam.destroy();
beam = null;
}
} else {
// Suck cows
for (var i = cows.length - 1; i >= 0; i--) {
if (Math.abs(cows[i].x - ufo.x) < 50 && Math.abs(cows[i].y - ufo.y) < 50) {
cows[i].destroy();
cows.splice(i, 1);
}
}
}
}
// Check if all cows are collected
if (cows.length === 0) {
wormhole.visible = true; // Display the wormhole
}
// Check if UFO intersects with the wormhole
if (ufo.intersects(wormhole)) {
// Reduce UFO size continuously by 0.05
ufo.scaleX = Math.max(0, ufo.scaleX - 0.05);
ufo.scaleY = Math.max(0, ufo.scaleY - 0.05);
}
};
Cute alien in ufo spaceship. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Windows xp hill with a red barn on the top of the hill at night. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Starry sky. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Shining fullmoon. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Sherif man, drone view.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
red flashing police alarm device asset from profile view
explosion. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.