/**** 
* Classes
****/
// Prevent cloning
var ChocolateBar = Container.expand(function () {
	var self = Container.call(this);
	var chocolateGraphics = self.attachAsset('chocolateBar', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.draggable = false;
	self.on('down', function () {
		dragNode = self;
		self.melt();
	});
	self.melt = function () {
		if (this.x >= fryingPan.x - fryingPan.width / 2 && this.x <= fryingPan.x + fryingPan.width / 2 && this.y >= fryingPan.y - fryingPan.height / 2 && this.y <= fryingPan.y + fryingPan.height / 2 && !meltedChocolateBars.includes(this)) {
			meltedChocolateBars.push(this);
			LK.setScore(LK.getScore() + 1);
		}
	};
});
var FinishedHeart = Container.expand(function () {
	var self = Container.call(this);
	var finishedHeartGraphics = self.attachAsset('finishedHeart', {
		anchorX: 0.5,
		anchorY: 0.5
	});
});
var FryingPan = Container.expand(function () {
	var self = Container.call(this);
	var fryingPanGraphics = self.attachAsset('fryingPan', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.chocolateCount = 0;
	/*self.update = function () {
	// Check if any ChocolateBar is in contact
	chocolateBars.forEach(function (bar) {
	if (bar.x >= self.x - self.width / 2 && bar.x <= self.x + self.width / 2 && bar.y >= self.y - self.height / 2 && bar.y <= self.y + self.height / 2) {
	// Increase score by 1
	LK.setScore(LK.getScore() + 1);
	// Optionally, make the chocolate bar disappear or move it away
	}
	});
	};*/
});
var FryingPanChoco = Container.expand(function () {
	var self = Container.call(this);
	var fryingPanChocoGraphics = self.attachAsset('fryingPanChoco', {
		anchorX: 0,
		anchorY: 0
	});
	self.draggable = true;
	self.on('down', function () {
		dragNode = self;
	});
});
var HeartMold = Container.expand(function () {
	var self = Container.call(this);
	var moldGraphics = self.attachAsset('heartMold', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.fill = function () {
		// Filling logic will be implemented here
	};
});
var HearthMoldChoco = Container.expand(function () {
	var self = Container.call(this);
	var hearthMoldChocoGraphics = self.attachAsset('hearthMoldChoco', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.draggable = true;
	self.on('down', function () {
		if (dragNode == null) {
			dragNode = self;
		}
	});
	self.on('up', function () {
		dragNode = null;
	});
	self.on('move', function (obj) {
		if (dragNode == self) {
			var pos = obj.event.getLocalPosition(game);
			self.x = pos.x - self.width / 2;
			self.y = pos.y - self.height / 2;
		}
	});
});
/**** 
* Initialize Game
****/
var game = new LK.Game({
	backgroundColor: 0x8B4513 // Chocolate brown background
});
/**** 
* Game Code
****/
// Prevent cloning
var finishedHeart = null;
var oven = game.addChild(LK.getAsset('oven', {
	anchorX: 0.5,
	anchorY: 0.5
}));
oven.x = game.width / 2;
oven.y = game.height / 2;
oven.visible = false;
LK.on('tick', function () {
	if (fryingPanChoco.intersects(heartMold) && !hearthMoldChoco) {
		hearthMoldChoco = game.addChild(new HearthMoldChoco());
		hearthMoldChoco.x = heartMold.x;
		hearthMoldChoco.y = heartMold.y;
		fryingPanChoco.visible = false;
		fryingPanChoco.x = -1000; // move it out of the screen
		fryingPanChoco.destroy(); // destroy fryingPanChoco
		oven.visible = true;
	}
	if (hearthMoldChoco && hearthMoldChoco.intersects(oven) && dragNode == hearthMoldChoco) {
		LK.setTimeout(function () {
			game.children.forEach(function (child) {
				if (child !== scoreText && child !== finishedHeart) {
					child.visible = false;
				}
			});
			finishedHeart = game.addChild(new FinishedHeart());
			finishedHeart.x = game.width / 2;
			finishedHeart.y = game.height / 2;
			finishedHeart.visible = true;
			LK.setTimeout(function () {
				LK.showGameOver();
			}, 2000);
		}, 1000); // Delay before hiding everything
	}
});
var meltedChocolateBars = [];
var hearthMoldChoco = null;
LK.on('tick', function () {
	scoreText.setText('Score: ' + LK.getScore());
});
var dragNode = null;
var chocolateBars = [];
var heartMold = game.addChild(new HeartMold());
heartMold.x = game.width / 2;
heartMold.y = game.height - heartMold.height / 2;
var finishedHearts = [];
// Event listener for moving the chocolate bars
game.on('move', function (obj) {
	var pos = obj.event.getLocalPosition(game);
	if (dragNode) {
		dragNode.x = pos.x - dragNode.width / 2;
		dragNode.y = pos.y - dragNode.height / 2;
		if (dragNode && typeof dragNode.melt === 'function') {
			dragNode.melt();
		}
	}
});
// Event listener for releasing the chocolate bars
game.on('up', function (obj) {
	dragNode = null;
});
// Event listener for baking the chocolate in the oven
// Event listener for filling the heart mold
heartMold.on('down', function () {
	heartMold.fill();
});
// Create a Text2 object to display the score
var scoreText = new Text2('Score: 0', {
	size: 150,
	fill: "#ffffff",
	anchorX: 0.5,
	anchorY: 0,
	visible: true
});
scoreText.visible = false;
// Position the score text at the top center of the screen
//scoreText.x = game.width / 2; // Center the score text horizontally
//scoreText.y = 50; // Position the score text at the top of the screen
LK.gui.top.addChild(scoreText); // Add the score text to the GUI overlay
// Update the score display whenever the score changes
LK.on('tick', function () {
	scoreText.setText('Score: ' + LK.getScore());
});
// Game tick logic
LK.on('tick', function () {
	// Melting chocolate bars
	chocolateBars.forEach(function (bar, index) {
		if (bar.isMelted) {
			bar.destroy();
			chocolateBars.splice(index, 1);
		}
	});
	// Filling the heart mold
	if (heartMold.isFilled) {
		var finishedHeart = new FinishedHeart();
		finishedHeart.x = heartMold.x;
		finishedHeart.y = heartMold.y;
		finishedHearts.push(finishedHeart);
		game.addChild(finishedHeart);
		heartMold.isFilled = false;
	}
	// Update finished hearts
	finishedHearts.forEach(function (heart, index) {
		// Any logic for finished hearts
	});
	// Show the frying pan with chocolate and make all chocolate bars disappear when the score reaches 5
	if (LK.getScore() == 5) {
		fryingPan.visible = false;
		fryingPanChoco.visible = true;
		// Make all chocolate bars disappear
		chocolateBars.forEach(function (bar) {
			bar.destroy();
		});
		chocolateBars = [];
	}
});
var fryingPan = game.addChild(new FryingPan());
fryingPan.x = game.width / 2;
fryingPan.y = game.height / 2 - 200; // Position above the fryingPanChoco
var fryingPanChoco = game.addChild(new FryingPanChoco());
fryingPanChoco.x = game.width / 3;
fryingPanChoco.y = game.height / 3;
fryingPanChoco.visible = false;
fryingPan.chocolateCount = 0;
/*
fryingPan.update = function () {
if (this.chocolateCount == 5) {
this.visible = false;
fryingPanChoco.visible = true;
}
};
*/
// Initialize chocolate bars
for (var i = 0; i < 5; i++) {
	var chocolateBar = new ChocolateBar();
	chocolateBar.x = 500 + i * (chocolateBar.width + 10);
	chocolateBar.y = 100;
	chocolateBars.push(chocolateBar);
	game.addChild(chocolateBar);
} /**** 
* Classes
****/
// Prevent cloning
var ChocolateBar = Container.expand(function () {
	var self = Container.call(this);
	var chocolateGraphics = self.attachAsset('chocolateBar', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.draggable = false;
	self.on('down', function () {
		dragNode = self;
		self.melt();
	});
	self.melt = function () {
		if (this.x >= fryingPan.x - fryingPan.width / 2 && this.x <= fryingPan.x + fryingPan.width / 2 && this.y >= fryingPan.y - fryingPan.height / 2 && this.y <= fryingPan.y + fryingPan.height / 2 && !meltedChocolateBars.includes(this)) {
			meltedChocolateBars.push(this);
			LK.setScore(LK.getScore() + 1);
		}
	};
});
var FinishedHeart = Container.expand(function () {
	var self = Container.call(this);
	var finishedHeartGraphics = self.attachAsset('finishedHeart', {
		anchorX: 0.5,
		anchorY: 0.5
	});
});
var FryingPan = Container.expand(function () {
	var self = Container.call(this);
	var fryingPanGraphics = self.attachAsset('fryingPan', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.chocolateCount = 0;
	/*self.update = function () {
	// Check if any ChocolateBar is in contact
	chocolateBars.forEach(function (bar) {
	if (bar.x >= self.x - self.width / 2 && bar.x <= self.x + self.width / 2 && bar.y >= self.y - self.height / 2 && bar.y <= self.y + self.height / 2) {
	// Increase score by 1
	LK.setScore(LK.getScore() + 1);
	// Optionally, make the chocolate bar disappear or move it away
	}
	});
	};*/
});
var FryingPanChoco = Container.expand(function () {
	var self = Container.call(this);
	var fryingPanChocoGraphics = self.attachAsset('fryingPanChoco', {
		anchorX: 0,
		anchorY: 0
	});
	self.draggable = true;
	self.on('down', function () {
		dragNode = self;
	});
});
var HeartMold = Container.expand(function () {
	var self = Container.call(this);
	var moldGraphics = self.attachAsset('heartMold', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.fill = function () {
		// Filling logic will be implemented here
	};
});
var HearthMoldChoco = Container.expand(function () {
	var self = Container.call(this);
	var hearthMoldChocoGraphics = self.attachAsset('hearthMoldChoco', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.draggable = true;
	self.on('down', function () {
		if (dragNode == null) {
			dragNode = self;
		}
	});
	self.on('up', function () {
		dragNode = null;
	});
	self.on('move', function (obj) {
		if (dragNode == self) {
			var pos = obj.event.getLocalPosition(game);
			self.x = pos.x - self.width / 2;
			self.y = pos.y - self.height / 2;
		}
	});
});
/**** 
* Initialize Game
****/
var game = new LK.Game({
	backgroundColor: 0x8B4513 // Chocolate brown background
});
/**** 
* Game Code
****/
// Prevent cloning
var finishedHeart = null;
var oven = game.addChild(LK.getAsset('oven', {
	anchorX: 0.5,
	anchorY: 0.5
}));
oven.x = game.width / 2;
oven.y = game.height / 2;
oven.visible = false;
LK.on('tick', function () {
	if (fryingPanChoco.intersects(heartMold) && !hearthMoldChoco) {
		hearthMoldChoco = game.addChild(new HearthMoldChoco());
		hearthMoldChoco.x = heartMold.x;
		hearthMoldChoco.y = heartMold.y;
		fryingPanChoco.visible = false;
		fryingPanChoco.x = -1000; // move it out of the screen
		fryingPanChoco.destroy(); // destroy fryingPanChoco
		oven.visible = true;
	}
	if (hearthMoldChoco && hearthMoldChoco.intersects(oven) && dragNode == hearthMoldChoco) {
		LK.setTimeout(function () {
			game.children.forEach(function (child) {
				if (child !== scoreText && child !== finishedHeart) {
					child.visible = false;
				}
			});
			finishedHeart = game.addChild(new FinishedHeart());
			finishedHeart.x = game.width / 2;
			finishedHeart.y = game.height / 2;
			finishedHeart.visible = true;
			LK.setTimeout(function () {
				LK.showGameOver();
			}, 2000);
		}, 1000); // Delay before hiding everything
	}
});
var meltedChocolateBars = [];
var hearthMoldChoco = null;
LK.on('tick', function () {
	scoreText.setText('Score: ' + LK.getScore());
});
var dragNode = null;
var chocolateBars = [];
var heartMold = game.addChild(new HeartMold());
heartMold.x = game.width / 2;
heartMold.y = game.height - heartMold.height / 2;
var finishedHearts = [];
// Event listener for moving the chocolate bars
game.on('move', function (obj) {
	var pos = obj.event.getLocalPosition(game);
	if (dragNode) {
		dragNode.x = pos.x - dragNode.width / 2;
		dragNode.y = pos.y - dragNode.height / 2;
		if (dragNode && typeof dragNode.melt === 'function') {
			dragNode.melt();
		}
	}
});
// Event listener for releasing the chocolate bars
game.on('up', function (obj) {
	dragNode = null;
});
// Event listener for baking the chocolate in the oven
// Event listener for filling the heart mold
heartMold.on('down', function () {
	heartMold.fill();
});
// Create a Text2 object to display the score
var scoreText = new Text2('Score: 0', {
	size: 150,
	fill: "#ffffff",
	anchorX: 0.5,
	anchorY: 0,
	visible: true
});
scoreText.visible = false;
// Position the score text at the top center of the screen
//scoreText.x = game.width / 2; // Center the score text horizontally
//scoreText.y = 50; // Position the score text at the top of the screen
LK.gui.top.addChild(scoreText); // Add the score text to the GUI overlay
// Update the score display whenever the score changes
LK.on('tick', function () {
	scoreText.setText('Score: ' + LK.getScore());
});
// Game tick logic
LK.on('tick', function () {
	// Melting chocolate bars
	chocolateBars.forEach(function (bar, index) {
		if (bar.isMelted) {
			bar.destroy();
			chocolateBars.splice(index, 1);
		}
	});
	// Filling the heart mold
	if (heartMold.isFilled) {
		var finishedHeart = new FinishedHeart();
		finishedHeart.x = heartMold.x;
		finishedHeart.y = heartMold.y;
		finishedHearts.push(finishedHeart);
		game.addChild(finishedHeart);
		heartMold.isFilled = false;
	}
	// Update finished hearts
	finishedHearts.forEach(function (heart, index) {
		// Any logic for finished hearts
	});
	// Show the frying pan with chocolate and make all chocolate bars disappear when the score reaches 5
	if (LK.getScore() == 5) {
		fryingPan.visible = false;
		fryingPanChoco.visible = true;
		// Make all chocolate bars disappear
		chocolateBars.forEach(function (bar) {
			bar.destroy();
		});
		chocolateBars = [];
	}
});
var fryingPan = game.addChild(new FryingPan());
fryingPan.x = game.width / 2;
fryingPan.y = game.height / 2 - 200; // Position above the fryingPanChoco
var fryingPanChoco = game.addChild(new FryingPanChoco());
fryingPanChoco.x = game.width / 3;
fryingPanChoco.y = game.height / 3;
fryingPanChoco.visible = false;
fryingPan.chocolateCount = 0;
/*
fryingPan.update = function () {
if (this.chocolateCount == 5) {
this.visible = false;
fryingPanChoco.visible = true;
}
};
*/
// Initialize chocolate bars
for (var i = 0; i < 5; i++) {
	var chocolateBar = new ChocolateBar();
	chocolateBar.x = 500 + i * (chocolateBar.width + 10);
	chocolateBar.y = 100;
	chocolateBars.push(chocolateBar);
	game.addChild(chocolateBar);
}
 a chocolate bar. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 a simple fraying pan. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 make the water more brown
 rempli en gris
 rempli le de chocolat
 a simple fridge. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 a chocolate hearth. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.