User prompt
Reduce the time it takes for everything to arrive in 200 seconds. Make the end of the game 300 seconds
User prompt
If the time is less than 60, send only waves and monsters, if it is more, send big monsters and big wawes, if it is more than 120, send king monsters and big waves. If it's more than 200, let everything come up, and when it's 500 seconds, the game ends
User prompt
I cant see time
User prompt
Add time
User prompt
Add King Monster is damage 10 And Add Huge wawe İs damage 7. (Make Assets for them)
User prompt
Do Monster Damage is 5 and do Wawe Damage 2, add big wawe is damage 4, add big monster damage 5 (Add assets to both)
User prompt
If our life is full, let our 5 lives increase
User prompt
Delete score
Code edit (1 edits merged)
Please save this source code
User prompt
Sea Storm Survivor
Initial prompt
It is a game that takes place at sea, but monsters and waves will come to us, we will escape with our ship, add life (our health is 100) Adding a scoring system, let broken ships come and increase our health by 10, but if our health is full, 5 Rise
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var PlayerShip = Container.expand(function () {
var self = Container.call(this);
var shipGraphics = self.attachAsset('playerShip', {
anchorX: 0.5,
anchorY: 0.5
});
self.maxHealth = 100;
self.health = 100;
self.lastDamageTime = 0;
self.damageDelay = 1000; // 1 second invincibility after damage
self.takeDamage = function (amount) {
var currentTime = Date.now();
if (currentTime - self.lastDamageTime < self.damageDelay) {
return false; // Still invincible
}
self.health -= amount;
self.lastDamageTime = currentTime;
// Flash red when taking damage
LK.effects.flashObject(self, 0xff0000, 500);
LK.getSound('damage').play();
if (self.health <= 0) {
self.health = 0;
return true; // Game over
}
return false;
};
self.heal = function (amount) {
var oldHealth = self.health;
self.health = Math.min(self.maxHealth, self.health + amount);
return self.health - oldHealth; // Return actual healing amount
};
return self;
});
var SeaMonster = Container.expand(function () {
var self = Container.call(this);
var monsterGraphics = self.attachAsset('seaMonster', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 2 + Math.random() * 2;
self.direction = Math.random() * Math.PI * 2;
self.update = function () {
self.x += Math.cos(self.direction) * self.speed;
self.y += Math.sin(self.direction) * self.speed;
};
return self;
});
var Wave = Container.expand(function () {
var self = Container.call(this);
var waveGraphics = self.attachAsset('wave', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 3 + Math.random() * 3;
self.direction = Math.random() * Math.PI * 2;
self.update = function () {
self.x += Math.cos(self.direction) * self.speed;
self.y += Math.sin(self.direction) * self.speed;
// Add slight rotation for wave effect
waveGraphics.rotation += 0.02;
};
return self;
});
var Wreck = Container.expand(function () {
var self = Container.call(this);
var wreckGraphics = self.attachAsset('wreck', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 1 + Math.random();
self.direction = Math.random() * Math.PI * 2;
self.update = function () {
self.x += Math.cos(self.direction) * self.speed;
self.y += Math.sin(self.direction) * self.speed;
// Slight rotation for floating effect
wreckGraphics.rotation += 0.01;
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x001f3f
});
/****
* Game Code
****/
// Game variables
var player;
var enemies = [];
var wrecks = [];
var gameStartTime = Date.now();
var lastSpawnTime = 0;
var spawnDelay = 2000; // Start with 2 second spawn delay
var difficultyTimer = 0;
// UI elements
var healthText = new Text2('Health: 100', {
size: 60,
fill: 0xFFFFFF
});
healthText.anchor.set(0, 0);
healthText.x = 150;
healthText.y = 50;
LK.gui.topLeft.addChild(healthText);
var scoreText = new Text2('Score: 0', {
size: 60,
fill: 0xFFFFFF
});
scoreText.anchor.set(1, 0);
scoreText.x = -50;
scoreText.y = 50;
LK.gui.topRight.addChild(scoreText);
// Create player
player = game.addChild(new PlayerShip());
player.x = 1024;
player.y = 1366;
// Drag controls
var dragNode = null;
function handleMove(x, y, obj) {
if (dragNode) {
dragNode.x = x;
dragNode.y = y;
// Keep player within bounds
dragNode.x = Math.max(40, Math.min(2008, dragNode.x));
dragNode.y = Math.max(60, Math.min(2672, dragNode.y));
}
}
game.move = handleMove;
game.down = function (x, y, obj) {
dragNode = player;
handleMove(x, y, obj);
};
game.up = function (x, y, obj) {
dragNode = null;
};
function spawnEnemy() {
var enemy;
var spawnSide = Math.floor(Math.random() * 4); // 0: top, 1: right, 2: bottom, 3: left
if (Math.random() < 0.6) {
// Spawn sea monster
enemy = new SeaMonster();
} else {
// Spawn wave
enemy = new Wave();
}
// Position enemy at edge of screen
switch (spawnSide) {
case 0:
// top
enemy.x = Math.random() * 2048;
enemy.y = -50;
break;
case 1:
// right
enemy.x = 2098;
enemy.y = Math.random() * 2732;
break;
case 2:
// bottom
enemy.x = Math.random() * 2048;
enemy.y = 2782;
break;
case 3:
// left
enemy.x = -50;
enemy.y = Math.random() * 2732;
break;
}
// Point enemy toward center of screen
var centerX = 1024;
var centerY = 1366;
enemy.direction = Math.atan2(centerY - enemy.y, centerX - enemy.x);
enemies.push(enemy);
game.addChild(enemy);
}
function spawnWreck() {
var wreck = new Wreck();
// Spawn wreck from random edge
var spawnSide = Math.floor(Math.random() * 4);
switch (spawnSide) {
case 0:
// top
wreck.x = Math.random() * 2048;
wreck.y = -25;
break;
case 1:
// right
wreck.x = 2073;
wreck.y = Math.random() * 2732;
break;
case 2:
// bottom
wreck.x = Math.random() * 2048;
wreck.y = 2757;
break;
case 3:
// left
wreck.x = -25;
wreck.y = Math.random() * 2732;
break;
}
wrecks.push(wreck);
game.addChild(wreck);
}
// Start music
LK.playMusic('ocean');
game.update = function () {
var currentTime = Date.now();
difficultyTimer++;
// Increase difficulty over time
if (difficultyTimer % 1800 == 0) {
// Every 30 seconds
spawnDelay = Math.max(500, spawnDelay - 100);
}
// Spawn enemies
if (currentTime - lastSpawnTime > spawnDelay) {
spawnEnemy();
lastSpawnTime = currentTime;
// Sometimes spawn wreck too
if (Math.random() < 0.3) {
spawnWreck();
}
}
// Update and check enemies
for (var i = enemies.length - 1; i >= 0; i--) {
var enemy = enemies[i];
// Check if enemy is off screen (far off)
if (enemy.x < -200 || enemy.x > 2248 || enemy.y < -200 || enemy.y > 2932) {
enemy.destroy();
enemies.splice(i, 1);
continue;
}
// Check collision with player
if (enemy.intersects(player)) {
var gameOver = player.takeDamage(10);
if (gameOver) {
LK.showGameOver();
return;
}
// Update health display
healthText.setText('Health: ' + player.health);
// Remove enemy after hit
enemy.destroy();
enemies.splice(i, 1);
}
}
// Update and check wrecks
for (var j = wrecks.length - 1; j >= 0; j--) {
var wreck = wrecks[j];
// Check if wreck is off screen
if (wreck.x < -100 || wreck.x > 2148 || wreck.y < -100 || wreck.y > 2832) {
wreck.destroy();
wrecks.splice(j, 1);
continue;
}
// Check collision with player
if (wreck.intersects(player)) {
var actualHealing = player.heal(10);
if (actualHealing > 0) {
// Healed
healthText.setText('Health: ' + player.health);
} else {
// Already at full health, give points instead
LK.setScore(LK.getScore() + 5);
}
LK.getSound('pickup').play();
wreck.destroy();
wrecks.splice(j, 1);
}
}
// Update score based on survival time
var survivalTime = Math.floor((currentTime - gameStartTime) / 1000);
var baseScore = survivalTime;
scoreText.setText('Score: ' + (LK.getScore() + baseScore));
}; ===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,286 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+
+/****
+* Classes
+****/
+var PlayerShip = Container.expand(function () {
+ var self = Container.call(this);
+ var shipGraphics = self.attachAsset('playerShip', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.maxHealth = 100;
+ self.health = 100;
+ self.lastDamageTime = 0;
+ self.damageDelay = 1000; // 1 second invincibility after damage
+ self.takeDamage = function (amount) {
+ var currentTime = Date.now();
+ if (currentTime - self.lastDamageTime < self.damageDelay) {
+ return false; // Still invincible
+ }
+ self.health -= amount;
+ self.lastDamageTime = currentTime;
+ // Flash red when taking damage
+ LK.effects.flashObject(self, 0xff0000, 500);
+ LK.getSound('damage').play();
+ if (self.health <= 0) {
+ self.health = 0;
+ return true; // Game over
+ }
+ return false;
+ };
+ self.heal = function (amount) {
+ var oldHealth = self.health;
+ self.health = Math.min(self.maxHealth, self.health + amount);
+ return self.health - oldHealth; // Return actual healing amount
+ };
+ return self;
+});
+var SeaMonster = Container.expand(function () {
+ var self = Container.call(this);
+ var monsterGraphics = self.attachAsset('seaMonster', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 2 + Math.random() * 2;
+ self.direction = Math.random() * Math.PI * 2;
+ self.update = function () {
+ self.x += Math.cos(self.direction) * self.speed;
+ self.y += Math.sin(self.direction) * self.speed;
+ };
+ return self;
+});
+var Wave = Container.expand(function () {
+ var self = Container.call(this);
+ var waveGraphics = self.attachAsset('wave', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 3 + Math.random() * 3;
+ self.direction = Math.random() * Math.PI * 2;
+ self.update = function () {
+ self.x += Math.cos(self.direction) * self.speed;
+ self.y += Math.sin(self.direction) * self.speed;
+ // Add slight rotation for wave effect
+ waveGraphics.rotation += 0.02;
+ };
+ return self;
+});
+var Wreck = Container.expand(function () {
+ var self = Container.call(this);
+ var wreckGraphics = self.attachAsset('wreck', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 1 + Math.random();
+ self.direction = Math.random() * Math.PI * 2;
+ self.update = function () {
+ self.x += Math.cos(self.direction) * self.speed;
+ self.y += Math.sin(self.direction) * self.speed;
+ // Slight rotation for floating effect
+ wreckGraphics.rotation += 0.01;
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x001f3f
+});
+
+/****
+* Game Code
+****/
+// Game variables
+var player;
+var enemies = [];
+var wrecks = [];
+var gameStartTime = Date.now();
+var lastSpawnTime = 0;
+var spawnDelay = 2000; // Start with 2 second spawn delay
+var difficultyTimer = 0;
+// UI elements
+var healthText = new Text2('Health: 100', {
+ size: 60,
+ fill: 0xFFFFFF
+});
+healthText.anchor.set(0, 0);
+healthText.x = 150;
+healthText.y = 50;
+LK.gui.topLeft.addChild(healthText);
+var scoreText = new Text2('Score: 0', {
+ size: 60,
+ fill: 0xFFFFFF
+});
+scoreText.anchor.set(1, 0);
+scoreText.x = -50;
+scoreText.y = 50;
+LK.gui.topRight.addChild(scoreText);
+// Create player
+player = game.addChild(new PlayerShip());
+player.x = 1024;
+player.y = 1366;
+// Drag controls
+var dragNode = null;
+function handleMove(x, y, obj) {
+ if (dragNode) {
+ dragNode.x = x;
+ dragNode.y = y;
+ // Keep player within bounds
+ dragNode.x = Math.max(40, Math.min(2008, dragNode.x));
+ dragNode.y = Math.max(60, Math.min(2672, dragNode.y));
+ }
+}
+game.move = handleMove;
+game.down = function (x, y, obj) {
+ dragNode = player;
+ handleMove(x, y, obj);
+};
+game.up = function (x, y, obj) {
+ dragNode = null;
+};
+function spawnEnemy() {
+ var enemy;
+ var spawnSide = Math.floor(Math.random() * 4); // 0: top, 1: right, 2: bottom, 3: left
+ if (Math.random() < 0.6) {
+ // Spawn sea monster
+ enemy = new SeaMonster();
+ } else {
+ // Spawn wave
+ enemy = new Wave();
+ }
+ // Position enemy at edge of screen
+ switch (spawnSide) {
+ case 0:
+ // top
+ enemy.x = Math.random() * 2048;
+ enemy.y = -50;
+ break;
+ case 1:
+ // right
+ enemy.x = 2098;
+ enemy.y = Math.random() * 2732;
+ break;
+ case 2:
+ // bottom
+ enemy.x = Math.random() * 2048;
+ enemy.y = 2782;
+ break;
+ case 3:
+ // left
+ enemy.x = -50;
+ enemy.y = Math.random() * 2732;
+ break;
+ }
+ // Point enemy toward center of screen
+ var centerX = 1024;
+ var centerY = 1366;
+ enemy.direction = Math.atan2(centerY - enemy.y, centerX - enemy.x);
+ enemies.push(enemy);
+ game.addChild(enemy);
+}
+function spawnWreck() {
+ var wreck = new Wreck();
+ // Spawn wreck from random edge
+ var spawnSide = Math.floor(Math.random() * 4);
+ switch (spawnSide) {
+ case 0:
+ // top
+ wreck.x = Math.random() * 2048;
+ wreck.y = -25;
+ break;
+ case 1:
+ // right
+ wreck.x = 2073;
+ wreck.y = Math.random() * 2732;
+ break;
+ case 2:
+ // bottom
+ wreck.x = Math.random() * 2048;
+ wreck.y = 2757;
+ break;
+ case 3:
+ // left
+ wreck.x = -25;
+ wreck.y = Math.random() * 2732;
+ break;
+ }
+ wrecks.push(wreck);
+ game.addChild(wreck);
+}
+// Start music
+LK.playMusic('ocean');
+game.update = function () {
+ var currentTime = Date.now();
+ difficultyTimer++;
+ // Increase difficulty over time
+ if (difficultyTimer % 1800 == 0) {
+ // Every 30 seconds
+ spawnDelay = Math.max(500, spawnDelay - 100);
+ }
+ // Spawn enemies
+ if (currentTime - lastSpawnTime > spawnDelay) {
+ spawnEnemy();
+ lastSpawnTime = currentTime;
+ // Sometimes spawn wreck too
+ if (Math.random() < 0.3) {
+ spawnWreck();
+ }
+ }
+ // Update and check enemies
+ for (var i = enemies.length - 1; i >= 0; i--) {
+ var enemy = enemies[i];
+ // Check if enemy is off screen (far off)
+ if (enemy.x < -200 || enemy.x > 2248 || enemy.y < -200 || enemy.y > 2932) {
+ enemy.destroy();
+ enemies.splice(i, 1);
+ continue;
+ }
+ // Check collision with player
+ if (enemy.intersects(player)) {
+ var gameOver = player.takeDamage(10);
+ if (gameOver) {
+ LK.showGameOver();
+ return;
+ }
+ // Update health display
+ healthText.setText('Health: ' + player.health);
+ // Remove enemy after hit
+ enemy.destroy();
+ enemies.splice(i, 1);
+ }
+ }
+ // Update and check wrecks
+ for (var j = wrecks.length - 1; j >= 0; j--) {
+ var wreck = wrecks[j];
+ // Check if wreck is off screen
+ if (wreck.x < -100 || wreck.x > 2148 || wreck.y < -100 || wreck.y > 2832) {
+ wreck.destroy();
+ wrecks.splice(j, 1);
+ continue;
+ }
+ // Check collision with player
+ if (wreck.intersects(player)) {
+ var actualHealing = player.heal(10);
+ if (actualHealing > 0) {
+ // Healed
+ healthText.setText('Health: ' + player.health);
+ } else {
+ // Already at full health, give points instead
+ LK.setScore(LK.getScore() + 5);
+ }
+ LK.getSound('pickup').play();
+ wreck.destroy();
+ wrecks.splice(j, 1);
+ }
+ }
+ // Update score based on survival time
+ var survivalTime = Math.floor((currentTime - gameStartTime) / 1000);
+ var baseScore = survivalTime;
+ scoreText.setText('Score: ' + (LK.getScore() + baseScore));
+};
\ No newline at end of file