/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var Card = Container.expand(function (itemId, itemType, itemColor) { var self = Container.call(this); self.itemId = itemId; self.itemType = itemType; self.itemColor = itemColor; self.isFlipped = false; self.isMatched = false; // Create card back var cardBack = self.attachAsset('cardBack', { anchorX: 0.5, anchorY: 0.5 }); // Create card front (hidden initially) var cardFront = self.attachAsset('cardFront', { anchorX: 0.5, anchorY: 0.5, alpha: 0 }); // Create fashion item var fashionItem = self.attachAsset(itemId, { anchorX: 0.5, anchorY: 0.5, alpha: 0 }); self.flip = function () { if (self.isFlipped || self.isMatched) return; self.isFlipped = true; LK.getSound('cardFlip').play(); // Animate flip tween(cardBack, { alpha: 0 }, { duration: 150 }); tween(cardFront, { alpha: 1 }, { duration: 150 }); tween(fashionItem, { alpha: 1 }, { duration: 150 }); }; self.flipBack = function () { if (!self.isFlipped || self.isMatched) return; self.isFlipped = false; // Animate flip back tween(cardBack, { alpha: 1 }, { duration: 150 }); tween(cardFront, { alpha: 0 }, { duration: 150 }); tween(fashionItem, { alpha: 0 }, { duration: 150 }); }; self.setMatched = function () { self.isMatched = true; self.isFlipped = true; // Flash effect for matched card LK.effects.flashObject(self, 0x00FF00, 500); }; self.down = function (x, y, obj) { if (!self.isMatched && !self.isFlipped && flippedCards.length < 2) { flippedCards.push(self); self.flip(); } }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x2C3E50 }); /**** * Game Code ****/ var cards = []; var flippedCards = []; var currentLevel = 1; var score = 0; var moves = 0; var lives = 8; // 8 lives per level var gridSize = 4; // Start with 4x4 grid var matchingRule = 'type'; // Current matching rule // Fashion items data var fashionItems = [ // Coats { id: 'coat1', type: 'coat', color: 'red' }, { id: 'coat2', type: 'coat', color: 'teal' }, { id: 'coat3', type: 'coat', color: 'blue' }, { id: 'coat4', type: 'coat', color: 'green' }, { id: 'coat5', type: 'coat', color: 'brown' }, { id: 'coat6', type: 'coat', color: 'indigo' }, { id: 'coat7', type: 'coat', color: 'darkgreen' }, { id: 'coat8', type: 'coat', color: 'crimson' }, { id: 'coat9', type: 'coat', color: 'dodgerblue' }, { id: 'coat10', type: 'coat', color: 'gold' }, // Dresses { id: 'dress1', type: 'dress', color: 'yellow' }, { id: 'dress2', type: 'dress', color: 'orange' }, { id: 'dress3', type: 'dress', color: 'pink' }, { id: 'dress4', type: 'dress', color: 'purple' }, { id: 'dress5', type: 'dress', color: 'brown' }, { id: 'dress6', type: 'dress', color: 'indigo' }, { id: 'dress7', type: 'dress', color: 'darkgreen' }, { id: 'dress8', type: 'dress', color: 'crimson' }, { id: 'dress9', type: 'dress', color: 'dodgerblue' }, { id: 'dress10', type: 'dress', color: 'gold' }, // Scarves { id: 'scarf1', type: 'scarf', color: 'purple' }, { id: 'scarf2', type: 'scarf', color: 'orange' }, { id: 'scarf3', type: 'scarf', color: 'red' }, { id: 'scarf4', type: 'scarf', color: 'green' }, { id: 'scarf5', type: 'scarf', color: 'brown' }, { id: 'scarf6', type: 'scarf', color: 'indigo' }, { id: 'scarf7', type: 'scarf', color: 'darkgreen' }, { id: 'scarf8', type: 'scarf', color: 'crimson' }, { id: 'scarf9', type: 'scarf', color: 'dodgerblue' }, { id: 'scarf10', type: 'scarf', color: 'gold' }, // Berets { id: 'beret1', type: 'beret', color: 'gray' }, { id: 'beret2', type: 'beret', color: 'orange' }, { id: 'beret3', type: 'beret', color: 'purple' }, { id: 'beret4', type: 'beret', color: 'teal' }, { id: 'beret5', type: 'beret', color: 'brown' }, { id: 'beret6', type: 'beret', color: 'indigo' }, { id: 'beret7', type: 'beret', color: 'darkgreen' }, { id: 'beret8', type: 'beret', color: 'crimson' }, { id: 'beret9', type: 'beret', color: 'dodgerblue' }, { id: 'beret10', type: 'beret', color: 'gold' }, // Accessories { id: 'accessory1', type: 'accessory', color: 'yellow' }, { id: 'accessory2', type: 'accessory', color: 'purple' }, { id: 'accessory3', type: 'accessory', color: 'green' }, { id: 'accessory4', type: 'accessory', color: 'red' }, { id: 'accessory5', type: 'accessory', color: 'blue' }, { id: 'accessory6', type: 'accessory', color: 'orange' }, { id: 'accessory7', type: 'accessory', color: 'pink' }, { id: 'accessory8', type: 'accessory', color: 'teal' }, { id: 'accessory9', type: 'accessory', color: 'gray' }, { id: 'accessory10', type: 'accessory', color: 'black' }]; // UI Elements var scoreTxt = new Text2('Score: 0', { size: 80, fill: 0xFFFFFF }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); var levelTxt = new Text2('Level 1 - Match by Type', { size: 60, fill: 0xFFD700 }); levelTxt.anchor.set(0.5, 0); levelTxt.y = 100; LK.gui.top.addChild(levelTxt); var livesTxt = new Text2('8 remaining', { size: 60, fill: 0xFF4444 }); livesTxt.anchor.set(0, 0); LK.gui.topLeft.addChild(livesTxt); livesTxt.x = 120; // Offset from left to avoid menu icon function shuffleArray(array) { for (var i = array.length - 1; i > 0; i--) { var j = Math.floor(Math.random() * (i + 1)); var temp = array[i]; array[i] = array[j]; array[j] = temp; } return array; } function createGameBoard() { // Clear existing cards for (var i = 0; i < cards.length; i++) { cards[i].destroy(); } cards = []; flippedCards = []; var totalCards = gridSize * gridSize; var pairsNeeded = totalCards / 2; // Select random items for this level var selectedItems = shuffleArray(fashionItems.slice()).slice(0, pairsNeeded); var gameItems = []; // Create pairs for (var i = 0; i < selectedItems.length; i++) { gameItems.push(selectedItems[i]); gameItems.push(selectedItems[i]); // Add duplicate for pair } // Shuffle the pairs gameItems = shuffleArray(gameItems); // Calculate grid positioning var cardSpacing = 360; var startX = (2048 - gridSize * cardSpacing) / 2 + cardSpacing / 2; var startY = (2732 - gridSize * cardSpacing) / 2 + cardSpacing / 2; // Create cards for (var i = 0; i < totalCards; i++) { var row = Math.floor(i / gridSize); var col = i % gridSize; var item = gameItems[i]; var card = new Card(item.id, item.type, item.color); card.x = startX + col * cardSpacing; card.y = startY + row * cardSpacing; cards.push(card); game.addChild(card); } } function checkMatch(card1, card2) { // Ensure we're not comparing the same card instance if (card1 === card2) return false; switch (matchingRule) { case 'type': return card1.itemType === card2.itemType && card1.itemId === card2.itemId; case 'color': return card1.itemColor === card2.itemColor && card1.itemId === card2.itemId; case 'exact': return card1.itemId === card2.itemId; default: return card1.itemType === card2.itemType && card1.itemId === card2.itemId; } } function showConfetti(centerX, centerY) { // Create confetti particles around the matched cards for (var i = 0; i < 12; i++) { var confetti = LK.getAsset('cardFront', { anchorX: 0.5, anchorY: 0.5, scaleX: 0.3, scaleY: 0.3, x: centerX, y: centerY }); // Random colors for confetti var colors = [0xFF6B6B, 0x4ECDC4, 0x45B7D1, 0xFFA07A, 0x98D8C8, 0xF7DC6F]; confetti.tint = colors[Math.floor(Math.random() * colors.length)]; game.addChild(confetti); // Random direction and distance var angle = Math.PI * 2 * i / 12 + (Math.random() - 0.5) * 0.5; var distance = 100 + Math.random() * 100; var targetX = centerX + Math.cos(angle) * distance; var targetY = centerY + Math.sin(angle) * distance; // Animate confetti explosion tween(confetti, { x: targetX, y: targetY, scaleX: 0.1, scaleY: 0.1, alpha: 0, rotation: Math.random() * Math.PI * 4 }, { duration: 800 + Math.random() * 400, easing: tween.easeOut, onFinish: function onFinish() { confetti.destroy(); } }); } } function processFlippedCards() { if (flippedCards.length !== 2) return; var card1 = flippedCards[0]; var card2 = flippedCards[1]; // Clear flipped cards array immediately to prevent reprocessing var cardsToProcess = flippedCards.slice(); flippedCards = []; if (checkMatch(card1, card2)) { // Match found score += 10; scoreTxt.setText('Score: ' + score); lives++; livesTxt.setText(lives + ' remaining'); card1.setMatched(); card2.setMatched(); LK.getSound('match').play(); // Show confetti around the matched cards var centerX = (card1.x + card2.x) / 2; var centerY = (card1.y + card2.y) / 2; showConfetti(centerX, centerY); // Check if level complete var allMatched = true; for (var i = 0; i < cards.length; i++) { if (!cards[i].isMatched) { allMatched = false; break; } } if (allMatched) { // Level complete LK.setTimeout(function () { nextLevel(); }, 1000); } } else { // No match score = Math.max(0, score - 2); scoreTxt.setText('Score: ' + score); lives--; livesTxt.setText(lives + ' remaining'); LK.getSound('wrong').play(); // Check if game over if (lives <= 0) { LK.setTimeout(function () { LK.showGameOver(); }, 1000); } else { // Flip cards back after delay LK.setTimeout(function () { card1.flipBack(); card2.flipBack(); }, 1000); } } } function nextLevel() { currentLevel++; // Update matching rule based on level if (currentLevel <= 3) { matchingRule = 'type'; levelTxt.setText('Level ' + currentLevel + ' - Match by Type'); } else if (currentLevel <= 6) { matchingRule = 'color'; levelTxt.setText('Level ' + currentLevel + ' - Match by Color'); } else { matchingRule = 'exact'; levelTxt.setText('Level ' + currentLevel + ' - Match Identical Items'); } // Increase grid size every 3 levels if (currentLevel % 3 === 1 && currentLevel > 1) { gridSize = Math.min(6, gridSize + 1); } lives = 8; // Reset lives for new level livesTxt.setText(lives + ' remaining'); createGameBoard(); } // Handle third card flip game.update = function () { if (flippedCards.length > 2) { // More than 2 cards flipped, flip the first one back var firstCard = flippedCards.shift(); firstCard.flipBack(); } if (flippedCards.length === 2) { // Process the two flipped cards immediately processFlippedCards(); } }; // Start playing random background music var musicTracks = ['music1', 'music2', 'music3', 'music4', 'music5', 'music6', 'music7', 'music8', 'music9', 'music10']; var randomMusicIndex = Math.floor(Math.random() * musicTracks.length); var selectedMusic = musicTracks[randomMusicIndex]; LK.playMusic(selectedMusic); // Initialize first level createGameBoard();
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var Card = Container.expand(function (itemId, itemType, itemColor) {
var self = Container.call(this);
self.itemId = itemId;
self.itemType = itemType;
self.itemColor = itemColor;
self.isFlipped = false;
self.isMatched = false;
// Create card back
var cardBack = self.attachAsset('cardBack', {
anchorX: 0.5,
anchorY: 0.5
});
// Create card front (hidden initially)
var cardFront = self.attachAsset('cardFront', {
anchorX: 0.5,
anchorY: 0.5,
alpha: 0
});
// Create fashion item
var fashionItem = self.attachAsset(itemId, {
anchorX: 0.5,
anchorY: 0.5,
alpha: 0
});
self.flip = function () {
if (self.isFlipped || self.isMatched) return;
self.isFlipped = true;
LK.getSound('cardFlip').play();
// Animate flip
tween(cardBack, {
alpha: 0
}, {
duration: 150
});
tween(cardFront, {
alpha: 1
}, {
duration: 150
});
tween(fashionItem, {
alpha: 1
}, {
duration: 150
});
};
self.flipBack = function () {
if (!self.isFlipped || self.isMatched) return;
self.isFlipped = false;
// Animate flip back
tween(cardBack, {
alpha: 1
}, {
duration: 150
});
tween(cardFront, {
alpha: 0
}, {
duration: 150
});
tween(fashionItem, {
alpha: 0
}, {
duration: 150
});
};
self.setMatched = function () {
self.isMatched = true;
self.isFlipped = true;
// Flash effect for matched card
LK.effects.flashObject(self, 0x00FF00, 500);
};
self.down = function (x, y, obj) {
if (!self.isMatched && !self.isFlipped && flippedCards.length < 2) {
flippedCards.push(self);
self.flip();
}
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x2C3E50
});
/****
* Game Code
****/
var cards = [];
var flippedCards = [];
var currentLevel = 1;
var score = 0;
var moves = 0;
var lives = 8; // 8 lives per level
var gridSize = 4; // Start with 4x4 grid
var matchingRule = 'type'; // Current matching rule
// Fashion items data
var fashionItems = [
// Coats
{
id: 'coat1',
type: 'coat',
color: 'red'
}, {
id: 'coat2',
type: 'coat',
color: 'teal'
}, {
id: 'coat3',
type: 'coat',
color: 'blue'
}, {
id: 'coat4',
type: 'coat',
color: 'green'
}, {
id: 'coat5',
type: 'coat',
color: 'brown'
}, {
id: 'coat6',
type: 'coat',
color: 'indigo'
}, {
id: 'coat7',
type: 'coat',
color: 'darkgreen'
}, {
id: 'coat8',
type: 'coat',
color: 'crimson'
}, {
id: 'coat9',
type: 'coat',
color: 'dodgerblue'
}, {
id: 'coat10',
type: 'coat',
color: 'gold'
},
// Dresses
{
id: 'dress1',
type: 'dress',
color: 'yellow'
}, {
id: 'dress2',
type: 'dress',
color: 'orange'
}, {
id: 'dress3',
type: 'dress',
color: 'pink'
}, {
id: 'dress4',
type: 'dress',
color: 'purple'
}, {
id: 'dress5',
type: 'dress',
color: 'brown'
}, {
id: 'dress6',
type: 'dress',
color: 'indigo'
}, {
id: 'dress7',
type: 'dress',
color: 'darkgreen'
}, {
id: 'dress8',
type: 'dress',
color: 'crimson'
}, {
id: 'dress9',
type: 'dress',
color: 'dodgerblue'
}, {
id: 'dress10',
type: 'dress',
color: 'gold'
},
// Scarves
{
id: 'scarf1',
type: 'scarf',
color: 'purple'
}, {
id: 'scarf2',
type: 'scarf',
color: 'orange'
}, {
id: 'scarf3',
type: 'scarf',
color: 'red'
}, {
id: 'scarf4',
type: 'scarf',
color: 'green'
}, {
id: 'scarf5',
type: 'scarf',
color: 'brown'
}, {
id: 'scarf6',
type: 'scarf',
color: 'indigo'
}, {
id: 'scarf7',
type: 'scarf',
color: 'darkgreen'
}, {
id: 'scarf8',
type: 'scarf',
color: 'crimson'
}, {
id: 'scarf9',
type: 'scarf',
color: 'dodgerblue'
}, {
id: 'scarf10',
type: 'scarf',
color: 'gold'
},
// Berets
{
id: 'beret1',
type: 'beret',
color: 'gray'
}, {
id: 'beret2',
type: 'beret',
color: 'orange'
}, {
id: 'beret3',
type: 'beret',
color: 'purple'
}, {
id: 'beret4',
type: 'beret',
color: 'teal'
}, {
id: 'beret5',
type: 'beret',
color: 'brown'
}, {
id: 'beret6',
type: 'beret',
color: 'indigo'
}, {
id: 'beret7',
type: 'beret',
color: 'darkgreen'
}, {
id: 'beret8',
type: 'beret',
color: 'crimson'
}, {
id: 'beret9',
type: 'beret',
color: 'dodgerblue'
}, {
id: 'beret10',
type: 'beret',
color: 'gold'
},
// Accessories
{
id: 'accessory1',
type: 'accessory',
color: 'yellow'
}, {
id: 'accessory2',
type: 'accessory',
color: 'purple'
}, {
id: 'accessory3',
type: 'accessory',
color: 'green'
}, {
id: 'accessory4',
type: 'accessory',
color: 'red'
}, {
id: 'accessory5',
type: 'accessory',
color: 'blue'
}, {
id: 'accessory6',
type: 'accessory',
color: 'orange'
}, {
id: 'accessory7',
type: 'accessory',
color: 'pink'
}, {
id: 'accessory8',
type: 'accessory',
color: 'teal'
}, {
id: 'accessory9',
type: 'accessory',
color: 'gray'
}, {
id: 'accessory10',
type: 'accessory',
color: 'black'
}];
// UI Elements
var scoreTxt = new Text2('Score: 0', {
size: 80,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
var levelTxt = new Text2('Level 1 - Match by Type', {
size: 60,
fill: 0xFFD700
});
levelTxt.anchor.set(0.5, 0);
levelTxt.y = 100;
LK.gui.top.addChild(levelTxt);
var livesTxt = new Text2('8 remaining', {
size: 60,
fill: 0xFF4444
});
livesTxt.anchor.set(0, 0);
LK.gui.topLeft.addChild(livesTxt);
livesTxt.x = 120; // Offset from left to avoid menu icon
function shuffleArray(array) {
for (var i = array.length - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var temp = array[i];
array[i] = array[j];
array[j] = temp;
}
return array;
}
function createGameBoard() {
// Clear existing cards
for (var i = 0; i < cards.length; i++) {
cards[i].destroy();
}
cards = [];
flippedCards = [];
var totalCards = gridSize * gridSize;
var pairsNeeded = totalCards / 2;
// Select random items for this level
var selectedItems = shuffleArray(fashionItems.slice()).slice(0, pairsNeeded);
var gameItems = [];
// Create pairs
for (var i = 0; i < selectedItems.length; i++) {
gameItems.push(selectedItems[i]);
gameItems.push(selectedItems[i]); // Add duplicate for pair
}
// Shuffle the pairs
gameItems = shuffleArray(gameItems);
// Calculate grid positioning
var cardSpacing = 360;
var startX = (2048 - gridSize * cardSpacing) / 2 + cardSpacing / 2;
var startY = (2732 - gridSize * cardSpacing) / 2 + cardSpacing / 2;
// Create cards
for (var i = 0; i < totalCards; i++) {
var row = Math.floor(i / gridSize);
var col = i % gridSize;
var item = gameItems[i];
var card = new Card(item.id, item.type, item.color);
card.x = startX + col * cardSpacing;
card.y = startY + row * cardSpacing;
cards.push(card);
game.addChild(card);
}
}
function checkMatch(card1, card2) {
// Ensure we're not comparing the same card instance
if (card1 === card2) return false;
switch (matchingRule) {
case 'type':
return card1.itemType === card2.itemType && card1.itemId === card2.itemId;
case 'color':
return card1.itemColor === card2.itemColor && card1.itemId === card2.itemId;
case 'exact':
return card1.itemId === card2.itemId;
default:
return card1.itemType === card2.itemType && card1.itemId === card2.itemId;
}
}
function showConfetti(centerX, centerY) {
// Create confetti particles around the matched cards
for (var i = 0; i < 12; i++) {
var confetti = LK.getAsset('cardFront', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 0.3,
scaleY: 0.3,
x: centerX,
y: centerY
});
// Random colors for confetti
var colors = [0xFF6B6B, 0x4ECDC4, 0x45B7D1, 0xFFA07A, 0x98D8C8, 0xF7DC6F];
confetti.tint = colors[Math.floor(Math.random() * colors.length)];
game.addChild(confetti);
// Random direction and distance
var angle = Math.PI * 2 * i / 12 + (Math.random() - 0.5) * 0.5;
var distance = 100 + Math.random() * 100;
var targetX = centerX + Math.cos(angle) * distance;
var targetY = centerY + Math.sin(angle) * distance;
// Animate confetti explosion
tween(confetti, {
x: targetX,
y: targetY,
scaleX: 0.1,
scaleY: 0.1,
alpha: 0,
rotation: Math.random() * Math.PI * 4
}, {
duration: 800 + Math.random() * 400,
easing: tween.easeOut,
onFinish: function onFinish() {
confetti.destroy();
}
});
}
}
function processFlippedCards() {
if (flippedCards.length !== 2) return;
var card1 = flippedCards[0];
var card2 = flippedCards[1];
// Clear flipped cards array immediately to prevent reprocessing
var cardsToProcess = flippedCards.slice();
flippedCards = [];
if (checkMatch(card1, card2)) {
// Match found
score += 10;
scoreTxt.setText('Score: ' + score);
lives++;
livesTxt.setText(lives + ' remaining');
card1.setMatched();
card2.setMatched();
LK.getSound('match').play();
// Show confetti around the matched cards
var centerX = (card1.x + card2.x) / 2;
var centerY = (card1.y + card2.y) / 2;
showConfetti(centerX, centerY);
// Check if level complete
var allMatched = true;
for (var i = 0; i < cards.length; i++) {
if (!cards[i].isMatched) {
allMatched = false;
break;
}
}
if (allMatched) {
// Level complete
LK.setTimeout(function () {
nextLevel();
}, 1000);
}
} else {
// No match
score = Math.max(0, score - 2);
scoreTxt.setText('Score: ' + score);
lives--;
livesTxt.setText(lives + ' remaining');
LK.getSound('wrong').play();
// Check if game over
if (lives <= 0) {
LK.setTimeout(function () {
LK.showGameOver();
}, 1000);
} else {
// Flip cards back after delay
LK.setTimeout(function () {
card1.flipBack();
card2.flipBack();
}, 1000);
}
}
}
function nextLevel() {
currentLevel++;
// Update matching rule based on level
if (currentLevel <= 3) {
matchingRule = 'type';
levelTxt.setText('Level ' + currentLevel + ' - Match by Type');
} else if (currentLevel <= 6) {
matchingRule = 'color';
levelTxt.setText('Level ' + currentLevel + ' - Match by Color');
} else {
matchingRule = 'exact';
levelTxt.setText('Level ' + currentLevel + ' - Match Identical Items');
}
// Increase grid size every 3 levels
if (currentLevel % 3 === 1 && currentLevel > 1) {
gridSize = Math.min(6, gridSize + 1);
}
lives = 8; // Reset lives for new level
livesTxt.setText(lives + ' remaining');
createGameBoard();
}
// Handle third card flip
game.update = function () {
if (flippedCards.length > 2) {
// More than 2 cards flipped, flip the first one back
var firstCard = flippedCards.shift();
firstCard.flipBack();
}
if (flippedCards.length === 2) {
// Process the two flipped cards immediately
processFlippedCards();
}
};
// Start playing random background music
var musicTracks = ['music1', 'music2', 'music3', 'music4', 'music5', 'music6', 'music7', 'music8', 'music9', 'music10'];
var randomMusicIndex = Math.floor(Math.random() * musicTracks.length);
var selectedMusic = musicTracks[randomMusicIndex];
LK.playMusic(selectedMusic);
// Initialize first level
createGameBoard();
cute design beret top view.. In-Game asset. 2d. High contrast. No shadows
cute designer jacket top view.. In-Game asset. 2d. High contrast. No shadows
cute designer jacket top view.. In-Game asset. 2d. High contrast. No shadows
cute designer dress top view.. In-Game asset. 2d. High contrast. No shadows
cute designer dress top view.. In-Game asset. 2d. High contrast. No shadows
cute design scarf top view.. In-Game asset. 2d. High contrast. No shadows
cute design scarf top view.. In-Game asset. 2d. High contrast. No shadows
cute design scarf top view.. In-Game asset. 2d. High contrast. No shadows
cute design fashion logo card pattern top view.. In-Game asset. 2d. High contrast. No shadows
change your colors
cute design scarf top view.. In-Game asset. 2d. High contrast. No shadows
cute design scarf top view.. In-Game asset. 2d. High contrast. No shadows
cute design scarf top view.. In-Game asset. 2d. High contrast. No shadows
cute design accessory top view.. In-Game asset. 2d. High contrast. No shadows
cute design accessory top view.. In-Game asset. 2d. High contrast. No shadows
cute design accessory top view.. In-Game asset. 2d. High contrast. No shadows
cute design accessory top view.. In-Game asset. 2d. High contrast. No shadows
cute design beret top view.. In-Game asset. 2d. High contrast. No shadows
cute candy design beanie top view.. In-Game asset. 2d. High contrast. No shadows
cute candy cat design beanie top view.. In-Game asset. 2d. High contrast. No shadows
cute candy cat design jacket top view.. In-Game asset. 2d. High contrast. No shadows
cute candy design jacket top view.. In-Game asset. 2d. High contrast. No shadows
cute heart chocolate design jacket top view.. In-Game asset. 2d. High contrast. No shadows
cute pink heart chocolate design dress top view.. In-Game asset. 2d. High contrast. No shadows
cute pink heart chocolate design dress top view.. In-Game asset. 2d. High contrast. No shadows
cute pink heart design dress top view.. In-Game asset. 2d. High contrast. No shadows
cute purple heart candy design dress top view.. In-Game asset. 2d. High contrast. No shadows
cute purple candy design dress top view.. In-Game asset. 2d. High contrast. No shadows