User prompt
Abbreviate any large number to the 'k" or 'm' format when needed
User prompt
For the "Money: " system, abbreviate numbers so it is only 3 numbers on screen at once while still tracking the real amount and make sure to do this when the amount of money adds another number to it. (Example: 5,120,000 would be 5.12m and 1,524 would be 1.52k)
User prompt
Fix the bug where the number equals $NaN
User prompt
For the "Money: " system, abbreviate numbers so it is only 3 numbers on screen at once while still tracking the real amount and make sure to do this when the amount of money adds another number to it. (Example: 5,120,000 would be 5.12m and 1,524 would be 1.52k and 2,113,000,000 would be 2.11b and 3,511,000,000,000 would be 3.51t)
User prompt
For the "Money: " system, abbreviate numbers so it is only 3 numbers on screen at once while still tracking the real amount and make sure to do this when the amount of money adds another number to it. (Example: 5,120,000 would be 5.12m and 1,524 would be 1.52k) Make sure to do this all the way up to trillions.
User prompt
For the "Money: " system, abbreviate numbers so it is only 3 numbers on screen at once while still tracking the real amount and make sure to do this when the amount of money adds another number to it. (Example: 5,120,000 would be 5.12m and 1,524 would be 1.52k)
User prompt
For the "Money: " system, abbreviate numbers so it is only 3 numbers on screen at once while still tracking the real amount.
User prompt
Once the money value in "Money: " is over 999,999,999 start abbreviating it to a number with 1 1 Billion value, 1 100M value, 1 10M value
User prompt
Once the money value in "Money: " is over 99,999,999 start abbreviating it to a number with 1 100M value, 1 10M value, and 1 1M value
User prompt
Once the money value in "Money: " is over 99,999,999 start abbreviating it to a number with 1 100M value, 1 10M value, and 1 1M value
User prompt
Increase the value of fish1 to 55 million
User prompt
Increase the value of fish1 to 1,200,000
User prompt
Once the money value in "Money: " is over 999,999 start abbreviating it to a number with 1 1M 1 100k 1 10k
User prompt
Increase the amount of money gained from Fish1 to 125000
User prompt
Once the money value in "Money: " is over 99,999, start abbreviating it to a number with 1 100k value, 1 10k value and 1 1k value.
User prompt
Move the closeshopbutton within the shopgui 50 pixels below the top with the shopgui height now being 2700 pixels in the Y axis
User prompt
Move the closeshopbutton within the shopgui 25 pixels below the top with the shopgui height now being 2700 pixels in the Y axis
User prompt
Move the closeshopbutton within the shopgui 25 pixels below the top
User prompt
Increase the height of the shop gui by 200 pixels and then move the shop close button up 200 pixels. Remember, the new size of the asset should be 1647 by 2700 pixels
User prompt
Increase the height of the shop gui by 200 pixels and then move the shop close button up 200 pixels
Code edit (1 edits merged)
Please save this source code
User prompt
Increase the height of the shop exit button by 200 pixels
Code edit (1 edits merged)
Please save this source code
User prompt
Once the money value in "Money: " is over 999, start abbreviating it to a number with 1 1k values and 2 hundreds value.
User prompt
Reset all persistent data stored ↪💡 Consider importing and using the following plugins: @upit/storage.v1
/**** * Plugins ****/ var storage = LK.import("@upit/storage.v1", { moneyMultiplier: 1 }); /**** * Classes ****/ // Fish class representing different types of fish var Fish = Container.expand(function (type) { var self = Container.call(this); // Attach a fish asset with random color var fishGraphics = self.attachAsset('Fish' + type, { anchorX: 0.5, anchorY: 0.5 }); // Set base speed and money value for each fish type var baseSpeed; var moneyValue; switch (type) { case 1: baseSpeed = 1.5; moneyValue = 2; break; case 2: baseSpeed = 10; moneyValue = 25; break; case 3: baseSpeed = 2; moneyValue = 5; break; case 4: baseSpeed = 3; moneyValue = 8; break; case 5: baseSpeed = 3; moneyValue = 8; break; case 6: baseSpeed = 5; moneyValue = 25; break; case 7: baseSpeed = 2; moneyValue = 3; break; case 8: baseSpeed = 8; moneyValue = 30; break; case 9: baseSpeed = 3; moneyValue = 4; break; case 10: baseSpeed = 25; moneyValue = 2500; break; default: baseSpeed = 2; moneyValue = 2; } self.moneyValue = moneyValue; // Adjust the base speed randomly by 10% for all fish except Fish1 which can have a speed change from the base of 50% if (type === 1) { self.speed = baseSpeed * (1 + (Math.random() - 0.5)); } else { self.speed = baseSpeed * (1 + (Math.random() - 0.5) / 5); } // Update function to move fish self.update = function () { self.x += self.speed; if (self.x > 2048) { self.x = -100; // Reset position if fish goes off screen } if (type === 5) { self.y = Math.max(self.y, shop.y + shop.height + 10); // Ensure fish5 is always below the shopgui asset } }; }); // FishingRod class representing the player's fishing rod var FishingRod = Container.expand(function () { var self = Container.call(this); // Attach a fishing rod asset var rodGraphics = self.attachAsset('net', { anchorX: 0.5, anchorY: 0.5 }); // Set initial position self.x = 1024; self.y = 2000; // Event handler for dragging the rod self.down = function (x, y, obj) { if (self.intersects(shop)) { // Create a ShopGUI1 asset and make it visible when the shop button is clicked var shopGUI = game.addChild(LK.getAsset('ShopGUI1', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1366 })); shopGUI.visible = false; // Create a ShopGuiClose asset and make it visible when the shop button is clicked var shopGuiClose = game.addChild(LK.getAsset('ShopGuiClose', { anchorX: 1.0, // Anchor to the top right anchorY: 0.0, // Anchor to the top right x: 1024 + 825 - 25, // Position it 25 pixels from the right within the shopgui y: 50 // Position it 50 pixels below the top of the ShopGUI1 })); shopGuiClose.visible = false; shopGuiClose.down = function (x, y, obj) { shopGUI.visible = false; shopGuiClose.visible = false; moneyMultiplierText.visible = false; // Hide the Money Multiplier text moneyUpgrade.visible = false; // Hide the moneyUpgrade asset upgradeCostText.visible = false; // Hide the upgrade cost text currentMultiplierText.visible = false; // Hide the current multiplier text scoreTxt.setStyle({ stroke: 0x000000, strokeThickness: 0 // Remove stroke when shopgui is closed }); self.visible = true; // Make the fishingnet visible again when the shopgui is closed }; shopGUI.visible = true; // Add "Money Multiplier" text to the shopgui var moneyMultiplierText = new Text2('Money Multiplier', { size: 100, fill: 0x000000 }); moneyMultiplierText.anchor.set(0.5, 0); moneyMultiplierText.x = 1024; // Centered horizontally within the shopgui moneyMultiplierText.y = 1366 - 1250 + 100; // Offset by 100 pixels from the Y position of the shopgui game.addChild(moneyMultiplierText); scoreTxt.setStyle({ stroke: 0x000000, // Add black stroke strokeThickness: 10 // Set stroke thickness to 10 }); shopGuiClose.visible = true; // Add a new asset 'moneyUpgrade' 25 pixels below the Money Multiplier text var moneyUpgrade = LK.getAsset('fishingRod', { anchorX: 0.5, anchorY: 0.0, x: 1024, // Centered horizontally within the shopgui y: moneyMultiplierText.y + 150 // 150 pixels below the Money Multiplier text }); game.addChild(moneyUpgrade); // Add text to display current money multiplier var currentMultiplierText = new Text2('Current: ' + moneyMultiplier.toFixed(1) + 'x', { size: 80, fill: 0x000000 }); currentMultiplierText.anchor.set(0.5, 0); currentMultiplierText.x = moneyUpgrade.x - 550; // 550 pixels to the left of moneyUpgrade currentMultiplierText.y = moneyUpgrade.y; game.addChild(currentMultiplierText); currentMultiplierText.visible = true; // Show the current multiplier text var upgradeCost = storage.upgradeCost || 250; // Initialize upgrade cost from storage or set to starting value // Add text to display the cost of the money multiplier upgrade var upgradeCostText = new Text2('Cost: $' + upgradeCost.toFixed(2), { size: 80, fill: 0x000000 }); upgradeCostText.anchor.set(0.5, 0); upgradeCostText.x = moneyUpgrade.x + 500; // 500 pixels to the right of moneyUpgrade upgradeCostText.y = moneyUpgrade.y; game.addChild(upgradeCostText); moneyUpgrade.down = function (x, y, obj) { if (score >= upgradeCost) { // Check if the player has enough money score -= upgradeCost; // Deduct the cost from the player's score moneyMultiplier += 0.1; // Increase multiplier by 0.1x currentMultiplierText.setText('Current: ' + moneyMultiplier.toFixed(1) + 'x'); // Update text storage.moneyMultiplier = moneyMultiplier; // Persist updated multiplier if (moneyMultiplier >= 1.7) { upgradeCost += 2500 + 1000 * (moneyMultiplier - 1.7) / 0.1; // Increase by 2500 plus 1k for each 0.1x above 1.7x } else { upgradeCost *= 1.5; // Original cost increase logic } storage.upgradeCost = upgradeCost; // Persist updated upgrade cost upgradeCostText.setText('Cost: $' + upgradeCost.toFixed(2)); // Update cost text // Update the score text immediately if (score >= 1000000) { // Check if score is in millions var abbreviatedScore = (score / 1000000).toFixed(2) + 'm'; scoreTxt.setText('Money: $' + abbreviatedScore); } else if (score >= 1000) { // Check if score is in thousands var abbreviatedScore = (score / 1000).toFixed(2) + 'k'; scoreTxt.setText('Money: $' + abbreviatedScore); } else { scoreTxt.setText('Money: $' + score.toFixed(2)); } } }; self.visible = false; // Make the fishingnet invisible when the shopgui is open } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x87CEEB // Init game with sky blue background }); /**** * Game Code ****/ // Initialize arrays and variables //<Assets used in the game will automatically appear here> // Function to generate a random fish type based on the given percentages function generateFishType() { var rand = Math.random() * 100; if (rand < 30) { return 1; } else if (rand < 32) { return 2; } else if (rand < 47) { return 3; } else if (rand < 57) { return 4; } else if (rand < 67) { return 5; } else if (rand < 72) { return 6; } else if (rand < 87) { return 7; } else if (rand < 89.95) { return 8; } else if (rand < 99.95) { return 9; } else { return 10; } } var fishes = []; var score = storage.moneyTotal || 0; var moneyMultiplier = storage.moneyMultiplier || 1.0; // Initialize money multiplier from storage var scoreTxt = new Text2('Money: $0', { size: 100, fill: 0x000000 }); var shop = LK.getAsset('shop', { anchorX: 0.5, anchorY: 0.0, x: 1024, y: 200 }); game.addChild(shop); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // Create and add fishing rod to the game var fishingRod = game.addChild(new FishingRod()); // Function to spawn fish function spawnFish(type) { var fish = new Fish(type); fish.x = 0; // Spawn fish only at the left side of the screen fish.y = Math.random() * 1500 + 500; fishes.push(fish); game.addChild(fish); } // Spawn initial fish for (var i = 0; i < 10; i++) { spawnFish(generateFishType()); } // Update function for the game game.update = function () { // Update all fish for (var i = 0; i < fishes.length; i++) { fishes[i].update(); // Check for collision with fishing rod if (fishingRod.intersects(fishes[i])) { score += fishes[i].moneyValue * moneyMultiplier; // Multiply fish value by money multiplier storage.moneyTotal = score; if (score >= 1000000) { // Check if score is in millions var abbreviatedScore = (score / 1000000).toFixed(2) + 'm'; scoreTxt.setText('Money: $' + abbreviatedScore); } else if (score >= 1000) { // Check if score is in thousands var abbreviatedScore = (score / 1000).toFixed(2) + 'k'; scoreTxt.setText('Money: $' + abbreviatedScore); } else { scoreTxt.setText('Money: $' + score.toFixed(2)); } fishes[i].destroy(); fishes.splice(i, 1); spawnFish(generateFishType()); } } }; // Event handler for dragging the fishing rod game.move = function (x, y, obj) { fishingRod.x = x; fishingRod.y = y; if (fishingRod.y <= shop.y + 270) { fishingRod.alpha = 0; } else { fishingRod.alpha = 1; } };
===================================================================
--- original.js
+++ change.js
@@ -162,9 +162,9 @@
currentMultiplierText.x = moneyUpgrade.x - 550; // 550 pixels to the left of moneyUpgrade
currentMultiplierText.y = moneyUpgrade.y;
game.addChild(currentMultiplierText);
currentMultiplierText.visible = true; // Show the current multiplier text
- var upgradeCost = typeof storage.upgradeCost === 'number' ? storage.upgradeCost : 250; // Ensure upgradeCost is a number
+ var upgradeCost = storage.upgradeCost || 250; // Initialize upgrade cost from storage or set to starting value
// Add text to display the cost of the money multiplier upgrade
var upgradeCostText = new Text2('Cost: $' + upgradeCost.toFixed(2), {
size: 80,
fill: 0x000000
@@ -187,9 +187,19 @@
}
storage.upgradeCost = upgradeCost; // Persist updated upgrade cost
upgradeCostText.setText('Cost: $' + upgradeCost.toFixed(2)); // Update cost text
// Update the score text immediately
- scoreTxt.setText('Money: $' + abbreviateNumber(score));
+ if (score >= 1000000) {
+ // Check if score is in millions
+ var abbreviatedScore = (score / 1000000).toFixed(2) + 'm';
+ scoreTxt.setText('Money: $' + abbreviatedScore);
+ } else if (score >= 1000) {
+ // Check if score is in thousands
+ var abbreviatedScore = (score / 1000).toFixed(2) + 'k';
+ scoreTxt.setText('Money: $' + abbreviatedScore);
+ } else {
+ scoreTxt.setText('Money: $' + score.toFixed(2));
+ }
}
};
self.visible = false; // Make the fishingnet invisible when the shopgui is open
}
@@ -205,17 +215,8 @@
/****
* Game Code
****/
-function abbreviateNumber(value) {
- if (value < 1000) {
- return value.toFixed(2);
- }
- var suffixes = ['', 'k', 'm', 'b', 't'];
- var suffixIndex = Math.floor(('' + value).length / 3);
- var shortValue = parseFloat((suffixIndex !== 0 ? value / Math.pow(1000, suffixIndex) : value).toPrecision(3));
- return shortValue + suffixes[suffixIndex];
-}
// Initialize arrays and variables
//<Assets used in the game will automatically appear here>
// Function to generate a random fish type based on the given percentages
function generateFishType() {
@@ -242,9 +243,9 @@
return 10;
}
}
var fishes = [];
-var score = typeof storage.moneyTotal === 'number' ? storage.moneyTotal : 0; // Ensure score is a number
+var score = storage.moneyTotal || 0;
var moneyMultiplier = storage.moneyMultiplier || 1.0; // Initialize money multiplier from storage
var scoreTxt = new Text2('Money: $0', {
size: 100,
fill: 0x000000
@@ -280,9 +281,19 @@
// Check for collision with fishing rod
if (fishingRod.intersects(fishes[i])) {
score += fishes[i].moneyValue * moneyMultiplier; // Multiply fish value by money multiplier
storage.moneyTotal = score;
- scoreTxt.setText('Money: $' + abbreviateNumber(score));
+ if (score >= 1000000) {
+ // Check if score is in millions
+ var abbreviatedScore = (score / 1000000).toFixed(2) + 'm';
+ scoreTxt.setText('Money: $' + abbreviatedScore);
+ } else if (score >= 1000) {
+ // Check if score is in thousands
+ var abbreviatedScore = (score / 1000).toFixed(2) + 'k';
+ scoreTxt.setText('Money: $' + abbreviatedScore);
+ } else {
+ scoreTxt.setText('Money: $' + score.toFixed(2));
+ }
fishes[i].destroy();
fishes.splice(i, 1);
spawnFish(generateFishType());
}
Water themed gui icon that has the text "Shop" on it. 8-bit art style.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Big red X button for a game gui. 8-bit art style.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
8-bit art style circular fishing net without a handle.. 8-bit art style
A bright green + symbol for a game GUI element. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows. 8-bit art style