User prompt
keep on โช๐ก Consider importing and using the following plugins: @upit/tween.v1, @upit/storage.v1
User prompt
Emoji Evolution Clicker
Initial prompt
cookie clicker but after you click fo a bit you get different emojis so lets say to begin, 30, then different emoji, then bit more, add happy, shocked, sad, scared, sick ect, add more like, vomit, poo emoji, different food and fruit, various animals, animal faces, flags, coulors, utensils to clicker face
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); var storage = LK.import("@upit/storage.v1"); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ // Set background game.setBackgroundColor(0x87CEEB); // Emoji categories and progression var emojiCategories = { basic: ['๐', '๐', '๐'], emotions: ['๐', '๐ฎ', '๐ข', '๐ฑ', '๐คข', '๐ท', '๐ต', '๐คฏ'], bodily: ['๐คฎ', '๐ฉ', '๐คง', '๐ช'], food: ['๐', '๐', '๐', '๐', '๐ฐ', '๐ฅ', '๐', '๐'], animals: ['๐ถ', '๐ฑ', '๐ญ', '๐ป', '๐ฆ', '๐ธ', '๐ท', '๐ฆ'], flags: ['๐บ๐ธ', '๐ฌ๐ง', '๐ซ๐ท', '๐ฏ๐ต', '๐ฉ๐ช', '๐ฎ๐น', '๐จ๐ฆ', '๐ง๐ท'], colors: ['๐ด', '๐ต', '๐ข', '๐ก', '๐ฃ', '๐ ', 'โซ', 'โช'], utensils: ['๐ด', '๐ฅ', '๐ช', '๐ฝ๏ธ', '๐ฅข', '๐ง', '๐ท', 'โ'] }; var categoryOrder = ['basic', 'emotions', 'bodily', 'food', 'animals', 'flags', 'colors', 'utensils']; // Game state var clickCount = storage.clickCount || 0; var totalScore = storage.totalScore || 0; var currentCategory = storage.currentCategory || 'basic'; var currentEmojiIndex = storage.currentEmojiIndex || 0; // Create main emoji display var emojiContainer = game.addChild(new Container()); emojiContainer.x = 2048 / 2; emojiContainer.y = 2732 / 2; var emojiBase = emojiContainer.attachAsset('emojiBase', { anchorX: 0.5, anchorY: 0.5 }); var emojiText = new Text2(emojiCategories[currentCategory][currentEmojiIndex], { size: 120, fill: 0x000000 }); emojiText.anchor.set(0.5, 0.5); emojiContainer.addChild(emojiText); // Score display var scoreText = new Text2('Clicks: ' + clickCount, { size: 60, fill: 0xFFFFFF }); scoreText.anchor.set(0.5, 0); LK.gui.top.addChild(scoreText); // Progress display var progressText = new Text2('Next evolution in: ' + (30 - clickCount % 30) + ' clicks', { size: 40, fill: 0xFFFFFF }); progressText.anchor.set(0.5, 0); progressText.y = 80; LK.gui.top.addChild(progressText); // Category display var categoryText = new Text2('Category: ' + currentCategory.toUpperCase(), { size: 35, fill: 0xFFD700 }); categoryText.anchor.set(0.5, 1); LK.gui.bottom.addChild(categoryText); function updateEmoji() { var categoryIndex = categoryOrder.indexOf(currentCategory); var currentEmojis = emojiCategories[currentCategory]; // Get next emoji in current category currentEmojiIndex = (currentEmojiIndex + 1) % currentEmojis.length; // If we've cycled through all emojis in category and have more categories if (currentEmojiIndex === 0 && categoryIndex < categoryOrder.length - 1) { currentCategory = categoryOrder[categoryIndex + 1]; currentEmojis = emojiCategories[currentCategory]; categoryText.setText('Category: ' + currentCategory.toUpperCase()); } emojiText.setText(currentEmojis[currentEmojiIndex]); // Save progress storage.currentCategory = currentCategory; storage.currentEmojiIndex = currentEmojiIndex; } function handleClick() { clickCount++; totalScore++; // Update displays scoreText.setText('Clicks: ' + clickCount); progressText.setText('Next evolution in: ' + (30 - clickCount % 30) + ' clicks'); // Click animation tween.stop(emojiContainer, { scaleX: true, scaleY: true }); tween(emojiContainer, { scaleX: 1.2, scaleY: 1.2 }, { duration: 100, easing: tween.easeOut, onFinish: function onFinish() { tween(emojiContainer, { scaleX: 1, scaleY: 1 }, { duration: 100, easing: tween.easeIn }); } }); // Check for evolution if (clickCount % 30 === 0) { updateEmoji(); // Evolution animation tween(emojiContainer, { scaleX: 1.5, scaleY: 1.5, rotation: Math.PI * 2 }, { duration: 500, easing: tween.bounceOut, onFinish: function onFinish() { emojiContainer.rotation = 0; tween(emojiContainer, { scaleX: 1, scaleY: 1 }, { duration: 200, easing: tween.easeOut }); } }); // Flash effect LK.effects.flashScreen(0xFFD700, 300); } // Play sound LK.getSound('clickSound').play(); // Save progress storage.clickCount = clickCount; storage.totalScore = totalScore; } // Click handler emojiContainer.down = function (x, y, obj) { handleClick(); }; // Make sure the emoji is interactive emojiContainer.interactive = true;
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
var storage = LK.import("@upit/storage.v1");
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000
});
/****
* Game Code
****/
// Set background
game.setBackgroundColor(0x87CEEB);
// Emoji categories and progression
var emojiCategories = {
basic: ['๐', '๐', '๐'],
emotions: ['๐', '๐ฎ', '๐ข', '๐ฑ', '๐คข', '๐ท', '๐ต', '๐คฏ'],
bodily: ['๐คฎ', '๐ฉ', '๐คง', '๐ช'],
food: ['๐', '๐', '๐', '๐', '๐ฐ', '๐ฅ', '๐', '๐'],
animals: ['๐ถ', '๐ฑ', '๐ญ', '๐ป', '๐ฆ', '๐ธ', '๐ท', '๐ฆ'],
flags: ['๐บ๐ธ', '๐ฌ๐ง', '๐ซ๐ท', '๐ฏ๐ต', '๐ฉ๐ช', '๐ฎ๐น', '๐จ๐ฆ', '๐ง๐ท'],
colors: ['๐ด', '๐ต', '๐ข', '๐ก', '๐ฃ', '๐ ', 'โซ', 'โช'],
utensils: ['๐ด', '๐ฅ', '๐ช', '๐ฝ๏ธ', '๐ฅข', '๐ง', '๐ท', 'โ']
};
var categoryOrder = ['basic', 'emotions', 'bodily', 'food', 'animals', 'flags', 'colors', 'utensils'];
// Game state
var clickCount = storage.clickCount || 0;
var totalScore = storage.totalScore || 0;
var currentCategory = storage.currentCategory || 'basic';
var currentEmojiIndex = storage.currentEmojiIndex || 0;
// Create main emoji display
var emojiContainer = game.addChild(new Container());
emojiContainer.x = 2048 / 2;
emojiContainer.y = 2732 / 2;
var emojiBase = emojiContainer.attachAsset('emojiBase', {
anchorX: 0.5,
anchorY: 0.5
});
var emojiText = new Text2(emojiCategories[currentCategory][currentEmojiIndex], {
size: 120,
fill: 0x000000
});
emojiText.anchor.set(0.5, 0.5);
emojiContainer.addChild(emojiText);
// Score display
var scoreText = new Text2('Clicks: ' + clickCount, {
size: 60,
fill: 0xFFFFFF
});
scoreText.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreText);
// Progress display
var progressText = new Text2('Next evolution in: ' + (30 - clickCount % 30) + ' clicks', {
size: 40,
fill: 0xFFFFFF
});
progressText.anchor.set(0.5, 0);
progressText.y = 80;
LK.gui.top.addChild(progressText);
// Category display
var categoryText = new Text2('Category: ' + currentCategory.toUpperCase(), {
size: 35,
fill: 0xFFD700
});
categoryText.anchor.set(0.5, 1);
LK.gui.bottom.addChild(categoryText);
function updateEmoji() {
var categoryIndex = categoryOrder.indexOf(currentCategory);
var currentEmojis = emojiCategories[currentCategory];
// Get next emoji in current category
currentEmojiIndex = (currentEmojiIndex + 1) % currentEmojis.length;
// If we've cycled through all emojis in category and have more categories
if (currentEmojiIndex === 0 && categoryIndex < categoryOrder.length - 1) {
currentCategory = categoryOrder[categoryIndex + 1];
currentEmojis = emojiCategories[currentCategory];
categoryText.setText('Category: ' + currentCategory.toUpperCase());
}
emojiText.setText(currentEmojis[currentEmojiIndex]);
// Save progress
storage.currentCategory = currentCategory;
storage.currentEmojiIndex = currentEmojiIndex;
}
function handleClick() {
clickCount++;
totalScore++;
// Update displays
scoreText.setText('Clicks: ' + clickCount);
progressText.setText('Next evolution in: ' + (30 - clickCount % 30) + ' clicks');
// Click animation
tween.stop(emojiContainer, {
scaleX: true,
scaleY: true
});
tween(emojiContainer, {
scaleX: 1.2,
scaleY: 1.2
}, {
duration: 100,
easing: tween.easeOut,
onFinish: function onFinish() {
tween(emojiContainer, {
scaleX: 1,
scaleY: 1
}, {
duration: 100,
easing: tween.easeIn
});
}
});
// Check for evolution
if (clickCount % 30 === 0) {
updateEmoji();
// Evolution animation
tween(emojiContainer, {
scaleX: 1.5,
scaleY: 1.5,
rotation: Math.PI * 2
}, {
duration: 500,
easing: tween.bounceOut,
onFinish: function onFinish() {
emojiContainer.rotation = 0;
tween(emojiContainer, {
scaleX: 1,
scaleY: 1
}, {
duration: 200,
easing: tween.easeOut
});
}
});
// Flash effect
LK.effects.flashScreen(0xFFD700, 300);
}
// Play sound
LK.getSound('clickSound').play();
// Save progress
storage.clickCount = clickCount;
storage.totalScore = totalScore;
}
// Click handler
emojiContainer.down = function (x, y, obj) {
handleClick();
};
// Make sure the emoji is interactive
emojiContainer.interactive = true;