User prompt
Make it so If you click In the red Bar of a Red pop-up 5 times it spawns the Green Pop-up And red ones Get Erased
User prompt
Make it so When Tapping 5 Red Pop-ups a Green one Appears That Gives you Enough score to Unlock the Anti-virus pop-up
User prompt
Add a Secret Green Pop-up that Can only be spawned When clicking in 5 Red Pop-ups That If you click will Give you 950 score So you can beat the game
User prompt
Make it so After Getting 1000 score You unlock An Anti-virus Pop-up with Blue Color instead of read that When clicked it Reboots the Computer, After the Reboot is Complete, It says "Thanks for playing!" And ends the game with a win
User prompt
Make it so Before the Game over you get a Windows Blue screen of death
User prompt
Make the X easier to hit in mobile
User prompt
Please fix the bug: 'Timeout.tick error: Cannot set properties of undefined (setting 'wordWrap')' in or related to this line: 'errorText.style.wordWrap = true;' Line Number: 49
User prompt
Make the Pop-up screens Bigger and Make it so the Pop-ups say Stuff like "Congratulations, You have won 10 Million dollars! Click this Pop-up to claim your prize!" And when you click a Pop-up it Drains 10 Score and has a 1 in 1000 chance of Crashing the Computer and giving a Game over
User prompt
Please fix the bug: 'TypeError: Cannot set properties of undefined (setting 'fill')' in or related to this line: 'popupCountText.style.fill = "#000000";' Line Number: 215
Code edit (1 edits merged)
Please save this source code
User prompt
Virus Pop-Up Destroyer
Initial prompt
Make a game where The goal is to Remove Virus error pop-ups From your screen, If more than 6 stay in your screen, Your Computer crashes and Game over, Every Error you close gives 10 Score, Once you reach 100 score, The errors Will occasionally move
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var VirusPopup = Container.expand(function () { var self = Container.call(this); // Create popup window var popupWindow = self.attachAsset('popup', { anchorX: 0.5, anchorY: 0.5 }); // Create red header bar var header = self.attachAsset('popupHeader', { anchorX: 0.5, anchorY: 0.5, y: -80 }); // Create close button var closeBtn = self.attachAsset('closeButton', { anchorX: 0.5, anchorY: 0.5, x: 235, y: -130 }); // Scam popup messages var scamMessages = ['Congratulations, You have won 10 Million dollars! Click this Pop-up to claim your prize!', 'URGENT: Your computer is infected! Click here to download antivirus!', 'You are the 1,000,000th visitor! Click to claim your prize!', 'Hot singles in your area want to meet you! Click now!', 'Your warranty is about to expire! Click to renew now!', 'Free iPhone! Click here to claim yours today!']; var randomMessage = scamMessages[Math.floor(Math.random() * scamMessages.length)]; // Add scam text var errorText = new Text2(randomMessage, { size: 22, fill: 0x000000 }); errorText.anchor.set(0.5, 0.5); errorText.x = 0; errorText.y = -20; errorText.style.wordWrap = true; errorText.style.wordWrapWidth = 450; self.addChild(errorText); var warningText = new Text2('Click X to close (or click anywhere to fall for scam)', { size: 16, fill: 0x666666 }); warningText.anchor.set(0.5, 0.5); warningText.x = 0; warningText.y = 80; self.addChild(warningText); // Add X symbol to close button var xText = new Text2('X', { size: 20, fill: 0x000000 }); xText.anchor.set(0.5, 0.5); xText.x = 235; xText.y = -130; self.addChild(xText); // Movement properties self.isMoving = false; self.moveSpeedX = 0; self.moveSpeedY = 0; // Enable movement self.enableMovement = function () { self.isMoving = true; self.moveSpeedX = (Math.random() - 0.5) * 4; self.moveSpeedY = (Math.random() - 0.5) * 4; }; self.update = function () { if (self.isMoving) { self.x += self.moveSpeedX; self.y += self.moveSpeedY; // Bounce off edges if (self.x < 250 || self.x > 2048 - 250) { self.moveSpeedX *= -1; } if (self.y < 150 || self.y > 2732 - 150) { self.moveSpeedY *= -1; } // Keep within bounds self.x = Math.max(250, Math.min(2048 - 250, self.x)); self.y = Math.max(150, Math.min(2732 - 150, self.y)); } }; self.down = function (x, y, obj) { // Only close if clicking the close button area if (x > 220 && x < 250 && y > -145 && y < -115) { self.closePopup(); } else { // Clicked on scam content - lose points and chance of crash self.scamClicked(); } }; self.closePopup = function () { // Remove from active popups array for (var i = activePopups.length - 1; i >= 0; i--) { if (activePopups[i] === self) { activePopups.splice(i, 1); break; } } // Add score LK.setScore(LK.getScore() + 10); scoreText.setText('Score: ' + LK.getScore()); // Play close sound LK.getSound('close').play(); // Visual feedback tween(self, { scaleX: 0, scaleY: 0, alpha: 0 }, { duration: 200, onFinish: function onFinish() { self.destroy(); } }); }; self.scamClicked = function () { // Remove from active popups array for (var i = activePopups.length - 1; i >= 0; i--) { if (activePopups[i] === self) { activePopups.splice(i, 1); break; } } // Drain 10 score (but don't go below 0) var newScore = Math.max(0, LK.getScore() - 10); LK.setScore(newScore); scoreText.setText('Score: ' + LK.getScore()); // 1 in 1000 chance of crash if (Math.random() < 0.001) { LK.showGameOver(); return; } // Visual feedback for scam click tween(self, { scaleX: 0, scaleY: 0, alpha: 0 }, { duration: 200, onFinish: function onFinish() { self.destroy(); } }); }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x87ceeb }); /**** * Game Code ****/ // Game variables var activePopups = []; var spawnTimer = 0; var spawnInterval = 180; // 3 seconds at 60fps var movementEnabled = false; var dangerFlashing = false; // UI Elements var scoreText = new Text2('Score: 0', { size: 60, fill: 0x000000 }); scoreText.anchor.set(0, 0); scoreText.x = 150; scoreText.y = 50; LK.gui.topLeft.addChild(scoreText); var popupCountText = new Text2('Popups: 0/6', { size: 50, fill: 0x000000 }); popupCountText.anchor.set(1, 0); popupCountText.x = -50; popupCountText.y = 50; LK.gui.topRight.addChild(popupCountText); var warningText = new Text2('', { size: 80, fill: 0xFF0000 }); warningText.anchor.set(0.5, 0.5); LK.gui.center.addChild(warningText); // Spawn popup function function spawnPopup() { var popup = new VirusPopup(); // Random position popup.x = Math.random() * (2048 - 500) + 250; popup.y = Math.random() * (2732 - 300) + 150; // Enable movement if score >= 100 if (LK.getScore() >= 100) { popup.enableMovement(); } activePopups.push(popup); game.addChild(popup); // Play spawn sound LK.getSound('spawn').play(); // Entrance animation popup.scaleX = 0; popup.scaleY = 0; popup.alpha = 0; tween(popup, { scaleX: 1, scaleY: 1, alpha: 1 }, { duration: 300 }); } // Update popup count display function updatePopupCount() { var count = activePopups.length; popupCountText.setText('Popups: ' + count + '/6'); if (count >= 5) { popupCountText.tint = 0xff0000; if (!dangerFlashing) { dangerFlashing = true; warningText.setText('DANGER!'); tween(warningText, { alpha: 0 }, { duration: 500, easing: tween.easeInOut, onFinish: function onFinish() { tween(warningText, { alpha: 1 }, { duration: 500, easing: tween.easeInOut }); } }); } } else { popupCountText.tint = 0x000000; if (dangerFlashing) { dangerFlashing = false; warningText.setText(''); tween.stop(warningText); warningText.alpha = 1; } } } // Game update loop game.update = function () { // Update spawn timer spawnTimer++; // Spawn new popup if (spawnTimer >= spawnInterval) { spawnTimer = 0; spawnPopup(); // Gradually increase spawn rate if (spawnInterval > 60) { spawnInterval -= 1; } } // Update popup count updatePopupCount(); // Check game over condition if (activePopups.length >= 6) { LK.showGameOver(); } // Enable movement at 100 points if (LK.getScore() >= 100 && !movementEnabled) { movementEnabled = true; for (var i = 0; i < activePopups.length; i++) { activePopups[i].enableMovement(); } } }; // Initial spawn LK.setTimeout(function () { spawnPopup(); }, 1000);
===================================================================
--- original.js
+++ change.js
@@ -22,36 +22,41 @@
// Create close button
var closeBtn = self.attachAsset('closeButton', {
anchorX: 0.5,
anchorY: 0.5,
- x: 135,
- y: -80
+ x: 235,
+ y: -130
});
- // Add error text
- var errorText = new Text2('VIRUS DETECTED!', {
- size: 24,
+ // Scam popup messages
+ var scamMessages = ['Congratulations, You have won 10 Million dollars! Click this Pop-up to claim your prize!', 'URGENT: Your computer is infected! Click here to download antivirus!', 'You are the 1,000,000th visitor! Click to claim your prize!', 'Hot singles in your area want to meet you! Click now!', 'Your warranty is about to expire! Click to renew now!', 'Free iPhone! Click here to claim yours today!'];
+ var randomMessage = scamMessages[Math.floor(Math.random() * scamMessages.length)];
+ // Add scam text
+ var errorText = new Text2(randomMessage, {
+ size: 22,
fill: 0x000000
});
errorText.anchor.set(0.5, 0.5);
errorText.x = 0;
errorText.y = -20;
+ errorText.style.wordWrap = true;
+ errorText.style.wordWrapWidth = 450;
self.addChild(errorText);
- var warningText = new Text2('Click X to close', {
- size: 18,
+ var warningText = new Text2('Click X to close (or click anywhere to fall for scam)', {
+ size: 16,
fill: 0x666666
});
warningText.anchor.set(0.5, 0.5);
warningText.x = 0;
- warningText.y = 20;
+ warningText.y = 80;
self.addChild(warningText);
// Add X symbol to close button
var xText = new Text2('X', {
size: 20,
fill: 0x000000
});
xText.anchor.set(0.5, 0.5);
- xText.x = 135;
- xText.y = -80;
+ xText.x = 235;
+ xText.y = -130;
self.addChild(xText);
// Movement properties
self.isMoving = false;
self.moveSpeedX = 0;
@@ -66,23 +71,26 @@
if (self.isMoving) {
self.x += self.moveSpeedX;
self.y += self.moveSpeedY;
// Bounce off edges
- if (self.x < 150 || self.x > 2048 - 150) {
+ if (self.x < 250 || self.x > 2048 - 250) {
self.moveSpeedX *= -1;
}
- if (self.y < 100 || self.y > 2732 - 100) {
+ if (self.y < 150 || self.y > 2732 - 150) {
self.moveSpeedY *= -1;
}
// Keep within bounds
- self.x = Math.max(150, Math.min(2048 - 150, self.x));
- self.y = Math.max(100, Math.min(2732 - 100, self.y));
+ self.x = Math.max(250, Math.min(2048 - 250, self.x));
+ self.y = Math.max(150, Math.min(2732 - 150, self.y));
}
};
self.down = function (x, y, obj) {
// Only close if clicking the close button area
- if (x > 120 && x < 150 && y > -95 && y < -65) {
+ if (x > 220 && x < 250 && y > -145 && y < -115) {
self.closePopup();
+ } else {
+ // Clicked on scam content - lose points and chance of crash
+ self.scamClicked();
}
};
self.closePopup = function () {
// Remove from active popups array
@@ -108,8 +116,37 @@
self.destroy();
}
});
};
+ self.scamClicked = function () {
+ // Remove from active popups array
+ for (var i = activePopups.length - 1; i >= 0; i--) {
+ if (activePopups[i] === self) {
+ activePopups.splice(i, 1);
+ break;
+ }
+ }
+ // Drain 10 score (but don't go below 0)
+ var newScore = Math.max(0, LK.getScore() - 10);
+ LK.setScore(newScore);
+ scoreText.setText('Score: ' + LK.getScore());
+ // 1 in 1000 chance of crash
+ if (Math.random() < 0.001) {
+ LK.showGameOver();
+ return;
+ }
+ // Visual feedback for scam click
+ tween(self, {
+ scaleX: 0,
+ scaleY: 0,
+ alpha: 0
+ }, {
+ duration: 200,
+ onFinish: function onFinish() {
+ self.destroy();
+ }
+ });
+ };
return self;
});
/****
@@ -154,10 +191,10 @@
// Spawn popup function
function spawnPopup() {
var popup = new VirusPopup();
// Random position
- popup.x = Math.random() * (2048 - 300) + 150;
- popup.y = Math.random() * (2732 - 200) + 100;
+ popup.x = Math.random() * (2048 - 500) + 250;
+ popup.y = Math.random() * (2732 - 300) + 150;
// Enable movement if score >= 100
if (LK.getScore() >= 100) {
popup.enableMovement();
}