/**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0x000000
});
/**** 
* Game Code
****/ 
// Declare first, secondDemon and thirdDemon globally
var firstDemon = null;
var secondDemon = null;
var thirdDemon = null;
// Variables to track dragging state
var isDragging = false;
var dragStartX = 0;
var dragStartY = 0;
// Add event listener for dragging
game.down = function (x, y, obj) {
	isDragging = true;
	dragStartX = x;
	dragStartY = y;
};
game.move = function (x, y, obj) {
	if (isDragging) {
		var deltaX = (x - dragStartX) * 2; // Amplify the deltaX for faster dragging
		var deltaY = (y - dragStartY) * 2; // Amplify the deltaY for faster dragging
		game.x += deltaX;
		game.y += deltaY;
		// Clamp the game position to prevent moving outside the playspace
		var minX = 2048 - game.width * game.scale.x;
		var minY = 2732 - game.height * game.scale.y;
		game.x = Math.min(0, Math.max(minX, game.x));
		game.y = Math.min(0, Math.max(minY, game.y));
		dragStartX = x;
		dragStartY = y;
	}
};
game.up = function (x, y, obj) {
	isDragging = false;
};
// Function to animate the pumpkin
function animatepumpkin(obj) {
	// Animation logic for rewarding the player
	var pumpkin = LK.getAsset(obj.id, {
		anchorX: 0.5,
		anchorY: 0.5
	});
	pumpkin.x = obj.x; // Start from the original pumpkin position
	pumpkin.y = obj.y; // Start from the original pumpkin position
	game.addChild(pumpkin);
	var scaleDirection = 1;
	var scaleSpeed = 0.025; // Reduced speed for slower stretching effect
	var maxScale = 1.25; // Reduced max scale for less noticeable effect
	var minScale = 0.25; // Reduced min scale for less noticeable effect
	var squashStretchFactor = 0.00375; // Further reduced factor for a slower squash and stretch effect
	var rotationSpeed = 0.05 * (Math.random() < 0.5 ? 1 : -1); // Randomize rotation direction
	pumpkin.update = function () {
		pumpkin.scale.x += scaleSpeed * scaleDirection;
		pumpkin.scale.y += scaleSpeed * scaleDirection;
		// Apply squash and stretch effect
		if (scaleDirection > 0) {
			pumpkin.scale.x += squashStretchFactor;
			pumpkin.scale.y -= squashStretchFactor;
		} else {
			pumpkin.scale.x -= squashStretchFactor;
			pumpkin.scale.y += squashStretchFactor;
		}
		pumpkin.rotation += rotationSpeed * scaleDirection;
		// Move towards the center from original position
		var centerX = 2048 / 2;
		var centerY = 2732 / 2;
		var moveSpeed = 5; // Speed of movement towards the center
		var deltaX = centerX - pumpkin.x;
		var deltaY = centerY - pumpkin.y;
		var distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
		if (distance > moveSpeed) {
			pumpkin.x += deltaX / distance * moveSpeed;
			pumpkin.y += deltaY / distance * moveSpeed;
		} else {
			pumpkin.x = centerX;
			pumpkin.y = centerY;
		}
		if (pumpkin.scaleX > maxScale || pumpkin.scaleX < minScale) {
			scaleDirection *= -1;
		}
	};
	LK.setTimeout(function () {
		pumpkin.destroy();
	}, 2000);
}
// Function to play the celebration sound
function celebration() {
	LK.getSound('sndFound').play();
}
// Declare stages and stagePumpkins globally
var stage01;
var stage01BluePumpkin;
var stage02;
var stage02BluePumpkin;
var stage03;
var stage03BluePumpkin;
var stage04;
var stage04BluePumpkin;
var stage05;
var stage05BluePumpkin;
var stage06;
var stage06BluePumpkin;
var stage07;
var stage07BluePumpkin;
var stage08;
var stage08BluePumpkin;
var stage09;
var stage09BluePumpkin;
var stage10;
var stage10BluePumpkin;
var stage11;
var stage11BluePumpkin;
var stage12;
var stage12BluePumpkin;
var stage13;
var stage13BluePumpkin;
var comingSoon;
// Function to destroy splash screen elements
function destroySplashScreenElements() {
	if (splashScreen) {
		splashScreen.destroy();
	}
	if (splashScreenPumpkin) {
		splashScreenPumpkin.destroy();
	}
	if (relaxModeButton) {
		relaxModeButton.destroy();
	}
	if (raceButton) {
		raceButton.destroy();
	}
	if (comingSoon) {
		comingSoon.destroy();
	}
}
// Function to destroy Stage elements
function destroyStageElements() {
	if (stage01) {
		stage01.destroy();
	}
	if (stage01BluePumpkin) {
		stage01BluePumpkin.destroy();
	}
	if (stage02) {
		stage02.destroy();
	}
	if (stage02BluePumpkin) {
		stage02BluePumpkin.destroy();
	}
	if (stage03) {
		stage03.destroy();
	}
	if (stage03BluePumpkin) {
		stage03BluePumpkin.destroy();
	}
	if (stage04) {
		stage04.destroy();
	}
	if (stage04BluePumpkin) {
		stage04BluePumpkin.destroy();
	}
	if (stage05) {
		stage05.destroy();
	}
	if (stage05BluePumpkin) {
		stage05BluePumpkin.destroy();
	}
	if (stage06) {
		stage06.destroy();
	}
	if (stage06BluePumpkin) {
		stage06BluePumpkin.destroy();
	}
	if (stage07) {
		stage07.destroy();
	}
	if (stage07BluePumpkin) {
		stage07BluePumpkin.destroy();
	}
	if (stage08) {
		stage08.destroy();
	}
	if (stage08BluePumpkin) {
		stage08BluePumpkin.destroy();
	}
	if (stage09) {
		stage09.destroy();
	}
	if (stage09BluePumpkin) {
		stage09BluePumpkin.destroy();
	}
	if (stage10) {
		stage10.destroy();
	}
	if (stage10BluePumpkin) {
		stage10BluePumpkin.destroy();
	}
	if (stage11) {
		stage11.destroy();
	}
	if (stage11BluePumpkin) {
		stage11BluePumpkin.destroy();
	}
	if (stage12) {
		stage12.destroy();
	}
	if (stage12BluePumpkin) {
		stage12BluePumpkin.destroy();
	}
	if (stage13) {
		stage13.destroy();
	}
	if (stage13BluePumpkin) {
		stage13BluePumpkin.destroy();
	}
	if (background) {
		background.visible = false;
	}
}
// Instantiate the background in the center of the playspace
var background = LK.getAsset('Background', {
	anchorX: 0.5,
	anchorY: 0.5
});
background.x = 2048 / 2;
background.y = 2732 / 2;
game.addChild(background);
// Play and loop Halloween music
LK.playMusic('HalloweenMusic', {
	loop: true
});
// Instantiate the splash screen in the center of the playspace
var splashScreen = LK.getAsset('SplashScreen', {
	anchorX: 0.5,
	anchorY: 0.5
});
splashScreen.x = 2048 / 2;
splashScreen.y = 2732 / 2 + 360;
game.addChild(splashScreen);
// Instantiate the splashscreenpumpkin on the playspace
var splashScreenPumpkin = LK.getAsset('SplashScreenPumpkin', {
	anchorX: 0.5,
	anchorY: 0.5
});
splashScreenPumpkin.x = 2048 / 2 + 15;
splashScreenPumpkin.y = 2732 / 2 + 1020;
game.addChild(splashScreenPumpkin);
// Instantiate RaceButton to the right of splashScreenPumpkin
var raceButton = LK.getAsset('RaceButton', {
	anchorX: 0.5,
	anchorY: 0.5
});
raceButton.x = splashScreenPumpkin.x + 500; // Adjust position to the right
raceButton.y = splashScreenPumpkin.y;
game.addChild(raceButton);
// Instantiate ComingSoon over RaceButton
var comingSoon = LK.getAsset('Comingsoon', {
	anchorX: 0.5,
	anchorY: 0.5
});
comingSoon.x = raceButton.x;
comingSoon.y = raceButton.y;
game.addChild(comingSoon);
// Instantiate RelaxModeButton to the left of splashScreenPumpkin
var relaxModeButton = LK.getAsset('RelaxModeButton', {
	anchorX: 0.5,
	anchorY: 0.5
});
relaxModeButton.x = splashScreenPumpkin.x - 500; // Adjust position to the left
relaxModeButton.y = splashScreenPumpkin.y;
game.addChild(relaxModeButton);
// Removed duplicate splashScreen instantiation
// Add event listener to splashScreenPumpkin to call destroySplashScreenElements on press
relaxModeButton.down = function (x, y, obj) {
	destroySplashScreenElements();
	Function01();
};
// Animate splashScreenPumpkin to bob up and down slowly
var bobDirection = 1;
var bobSpeed = 0.1;
var bobRange = 5;
var originalY = splashScreenPumpkin.y;
LK.setInterval(function () {
	splashScreenPumpkin.y += bobSpeed * bobDirection;
	if (splashScreenPumpkin.y > originalY + bobRange || splashScreenPumpkin.y < originalY - bobRange) {
		bobDirection *= -1;
	}
}, 1000 / 60); // 60 FPS
// Instantiate a box
var box = LK.getAsset('box', {
	anchorX: 0.5,
	anchorY: 0.5
});
box.x = 1024;
box.y = 841 - 300;
game.addChild(box);
// Instantiate GripDemon in the center of the playspace
var gripDemon = LK.getAsset('GripDemon', {
	anchorX: 0.5,
	anchorY: 0.5
});
gripDemon.x = 2048 / 2;
gripDemon.y = 2732 / 2 - 1300;
game.addChild(gripDemon);
// Function to change view at the start of each stage
function changeView(stage) {
	game.scale.set(3.0); // Set zoom level by scaling the game container to 3.0
	game.x = (2048 - stage.width * game.scale.x) / 2;
	game.y = (2732 - stage.height * game.scale.y) / 2;
}
// Function01 to instantiate Stage01 and Stage01Pumpkin
function Function01() {
	// Instantiate Stage01 in the center of the playspace
	stage01 = LK.getAsset('Stage01', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage01.x = 2048 / 2;
	stage01.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	changeView(stage01);
	game.addChild(stage01);
	// Add instructional text for five seconds
	var instructionText = new Text2('Controls: Drag to move, \n find and tap the Pumpkin', {
		size: 50,
		// Increased font size
		fill: "#ff0000",
		background: "#333333",
		stroke: "#000000",
		// Add black outline
		strokeThickness: 5 // Set outline thickness
	});
	instructionText.anchor.set(0.5, 0.5);
	instructionText.x = game.width / 2;
	instructionText.y = game.height / 2 - 250;
	game.addChild(instructionText);
	LK.setTimeout(function () {
		instructionText.destroy();
	}, 10000);
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Instantiate Stage01Pumpkin on the playspace
	stage01BluePumpkin = LK.getAsset('Stage01BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage01BluePumpkin.x = 2048 / 2 + 100;
	stage01BluePumpkin.y = 2732 / 2 + 425;
	game.addChild(stage01BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage01Pumpkin to call destroyStage01Elements and Function02 on press
	stage01BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage01BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage01BluePumpkin',
			x: stage01BluePumpkin.x,
			y: stage01BluePumpkin.y
		});
		LK.setTimeout(function () {
			destroyStageElements();
			Function02();
		}, 2000);
	};
}
// Function02 to instantiate Stage02 and Stage02BluePumpkin
function Function02() {
	// Instantiate Stage02 in the center of the playspace
	stage02 = LK.getAsset('Stage02', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage02.x = 2048 / 2;
	stage02.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	changeView(stage02);
	game.addChild(stage02);
	// Instantiate Stage02BluePumpkin on the playspace
	stage02BluePumpkin = LK.getAsset('Stage02BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage02BluePumpkin.x = 2048 / 2 + 880;
	stage02BluePumpkin.y = 2732 / 2 + 875;
	game.addChild(stage02BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage02BluePumpkin to call destroyStage02Elements and Function03 on press
	stage02BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage02BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage02BluePumpkin',
			x: stage02BluePumpkin.x,
			y: stage02BluePumpkin.y
		});
		LK.setTimeout(function () {
			destroyStageElements();
			Function03();
		}, 2000);
	};
}
// Function03 to instantiate Stage03 and Stage03BluePumpkin
function Function03() {
	// Instantiate Stage03 in the center of the playspace
	stage03 = LK.getAsset('Stage03', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage03.x = 2048 / 2;
	stage03.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	if (!firstDemon) {
		changeView(stage03);
	}
	game.addChild(stage03);
	// Instantiate Stage03BluePumpkin on the playspace
	stage03BluePumpkin = LK.getAsset('Stage03BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage03BluePumpkin.x = 2048 / 2 - 960;
	stage03BluePumpkin.y = 2732 / 2 + 1260;
	game.addChild(stage03BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage03BluePumpkin to call destroyStageElements on press
	stage03BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage03BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage03BluePumpkin',
			x: stage03BluePumpkin.x,
			y: stage03BluePumpkin.y
		});
		LK.setTimeout(function () {
			game.scale.set(1.0); // Reset scale to default
			game.x = 0; // Reset x position to default
			game.y = 0; // Reset y position to default
			destroyStageElements();
			// Instantiate FirstDemon in the center of the playspace
			var firstDemon = LK.getAsset('FirstDemon', {
				anchorX: 0.5,
				anchorY: 0.5
			});
			firstDemon.x = 2048 / 2;
			firstDemon.y = 2732 / 2 + 300;
			game.addChild(firstDemon);
			LK.stopMusic();
			LK.setTimeout(function () {
				LK.getSound('sndBreathing').play();
			}, 1000);
			// Add event listener to FirstDemon to call Function04, restart music, and destroy self on press
			LK.setTimeout(function () {
				Function04();
				LK.playMusic('HalloweenMusic', {
					loop: true
				});
				firstDemon.destroy();
			}, 3000);
		}, 2000);
	};
}
// Function04 to instantiate Stage04 and Stage04BluePumpkin
function Function04() {
	// Instantiate Stage04 in the center of the playspace
	stage04 = LK.getAsset('Stage04', {
		anchorX: 0.5,
		anchorY: 0.5,
		scaleX: 1,
		scaleY: 1
	});
	stage04.x = 2048 / 2;
	stage04.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	changeView(stage04);
	game.addChild(stage04);
	// Instantiate Stage04BluePumpkin on the playspace
	stage04BluePumpkin = LK.getAsset('Stage04BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage04BluePumpkin.x = 2048 / 2 - 365; // Example position
	stage04BluePumpkin.y = 2732 / 2 + 470; // Example position
	game.addChild(stage04BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage04BluePumpkin to call destroyStageElements and Function05 on press
	stage04BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage04BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage04BluePumpkin',
			x: stage04BluePumpkin.x,
			y: stage04BluePumpkin.y
		});
		LK.setTimeout(function () {
			destroyStageElements();
			Function05();
		}, 2000);
	};
}
// Function05 to instantiate Stage05 and Stage05BluePumpkin
function Function05() {
	// Instantiate Stage05 in the center of the playspace
	stage05 = LK.getAsset('Stage05', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage05.x = 2048 / 2;
	stage05.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	changeView(stage05);
	game.addChild(stage05);
	// Instantiate Stage05BluePumpkin on the playspace
	stage05BluePumpkin = LK.getAsset('Stage05BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage05BluePumpkin.x = 2048 / 2 + 875; // Example position
	stage05BluePumpkin.y = 2732 / 2 + 800; // Example position
	game.addChild(stage05BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage05BluePumpkin to call destroyStageElements and Function06 on press
	stage05BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage05BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage05BluePumpkin',
			x: stage05BluePumpkin.x,
			y: stage05BluePumpkin.y
		});
		LK.setTimeout(function () {
			destroyStageElements();
			Function06();
		}, 2000);
	};
}
// Function06 to instantiate Stage06 and Stage06BluePumpkin
function Function06() {
	// Instantiate Stage06 in the center of the playspace
	stage06 = LK.getAsset('Stage06', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage06.x = 2048 / 2;
	stage06.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	changeView(stage06);
	game.addChild(stage06);
	// Instantiate Stage06BluePumpkin on the playspace
	stage06BluePumpkin = LK.getAsset('Stage06BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage06BluePumpkin.x = 2048 / 2 - 300; // Example position
	stage06BluePumpkin.y = 2732 / 2 + 1000; // Example position
	game.addChild(stage06BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage06BluePumpkin to call destroyStageElements on press
	stage06BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage06BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage06BluePumpkin',
			x: stage06BluePumpkin.x,
			y: stage06BluePumpkin.y
		});
		LK.setTimeout(function () {
			destroyStageElements();
			Function07();
		}, 2000);
	};
}
// Function07 to instantiate Stage07 and Stage07BluePumpkin
function Function07() {
	// Instantiate Stage07 in the center of the playspace
	stage07 = LK.getAsset('Stage07', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage07.x = 2048 / 2;
	stage07.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	if (!secondDemon) {
		changeView(stage07);
	}
	game.addChild(stage07);
	// Instantiate Stage07BluePumpkin on the playspace
	stage07BluePumpkin = LK.getAsset('Stage07BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage07BluePumpkin.x = 2048 / 2 - 850; // Example position
	stage07BluePumpkin.y = 2732 / 2 + 75; // Example position
	game.addChild(stage07BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage07BluePumpkin to call destroyStageElements on press
	stage07BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage07BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage07BluePumpkin',
			x: stage07BluePumpkin.x,
			y: stage07BluePumpkin.y
		});
		LK.setTimeout(function () {
			game.scale.set(1.0); // Reset scale to default
			game.x = 0; // Reset x position to default
			game.y = 0; // Reset y position to default
			destroyStageElements();
			// Instantiate SecondDemon in the center of the playspace
			var secondDemon = LK.getAsset('SecondDemon', {
				anchorX: 0.5,
				anchorY: 0.5
			});
			secondDemon.x = 2048 / 2;
			secondDemon.y = 2732 / 2 + 300;
			game.addChild(secondDemon);
			LK.stopMusic(); // Stop Halloween music when SecondDemon is instantiated
			LK.setTimeout(function () {
				LK.getSound('sndDog').play();
			}, 1000);
			// Add event listener to SecondDemon to call Function08, restart music, and destroy self on press
			LK.setTimeout(function () {
				Function08();
				LK.playMusic('HalloweenMusic', {
					loop: true
				});
				secondDemon.destroy();
			}, 3000);
		}, 2000);
	};
}
// Function08 to instantiate Stage08 and Stage08BluePumpkin
function Function08() {
	// Instantiate Stage08 in the center of the playspace
	stage08 = LK.getAsset('Stage08', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage08.x = 2048 / 2;
	stage08.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	changeView(stage08);
	game.addChild(stage08);
	// Instantiate Stage08BluePumpkin on the playspace
	stage08BluePumpkin = LK.getAsset('Stage08BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage08BluePumpkin.x = 2048 / 2 + 500; // Example position
	stage08BluePumpkin.y = 2732 / 2 + 1000; // Example position
	game.addChild(stage08BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage08BluePumpkin to call destroyStageElements and Function09 on press
	stage08BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage08BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage08BluePumpkin',
			x: stage08BluePumpkin.x,
			y: stage08BluePumpkin.y
		});
		LK.setTimeout(function () {
			destroyStageElements();
			Function09();
		}, 2000);
	};
}
// Function09 to instantiate Stage09 and Stage09BluePumpkin
function Function09() {
	// Instantiate Stage09 in the center of the playspace
	stage09 = LK.getAsset('Stage09', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage09.x = 2048 / 2;
	stage09.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	changeView(stage09);
	game.addChild(stage09);
	// Instantiate Stage09BluePumpkin on the playspace
	stage09BluePumpkin = LK.getAsset('Stage09BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage09BluePumpkin.x = 2048 / 2 + 800; // Example position
	stage09BluePumpkin.y = 2732 / 2 + 300; // Example position
	game.addChild(stage09BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage09BluePumpkin to call destroyStageElements and Function10 on press
	stage09BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage09BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage09BluePumpkin',
			x: stage09BluePumpkin.x,
			y: stage09BluePumpkin.y
		});
		LK.setTimeout(function () {
			destroyStageElements();
			Function10();
		}, 2000);
	};
}
// Function10 to instantiate Stage10 and Stage10BluePumpkin
function Function10() {
	// Instantiate Stage10 in the center of the playspace
	stage10 = LK.getAsset('Stage10', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage10.x = 2048 / 2;
	stage10.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	if (!thirdDemon) {
		changeView(stage10);
	}
	game.addChild(stage10);
	// Instantiate Stage10BluePumpkin on the playspace
	stage10BluePumpkin = LK.getAsset('Stage10BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage10BluePumpkin.x = 2048 / 2 - 375; // Example position
	stage10BluePumpkin.y = 2732 / 2 + 1100; // Example position
	game.addChild(stage10BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage10BluePumpkin to call celebration, destroyStageElements, and instantiate ThirdDemon
	stage10BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage10BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage10BluePumpkin',
			x: stage10BluePumpkin.x,
			y: stage10BluePumpkin.y
		});
		LK.setTimeout(function () {
			game.scale.set(1.0); // Reset scale to default
			game.x = 0; // Reset x position to default
			game.y = 0; // Reset y position to default
			destroyStageElements();
		}, 2000); // Decreased delay to 1000ms to make stage10 disappear faster
		LK.setTimeout(function () {
			// Instantiate ThirdDemon in the center of the playspace
			thirdDemon = LK.getAsset('ThirdDemon', {
				anchorX: 0.5,
				anchorY: 0.5
			});
			thirdDemon.x = 2048 / 2;
			thirdDemon.y = 2732 / 2 + 300;
			game.addChild(thirdDemon);
			LK.stopMusic(); // Stop Halloween music when ThirdDemon is instantiated
			LK.setTimeout(function () {
				LK.getSound('sndDemon').play();
			}, 1000);
			// Add a two-second delay before proceeding to Function11
			LK.setTimeout(function () {
				if (thirdDemon) {
					Function11();
					LK.playMusic('HalloweenMusic', {
						loop: true
					});
					thirdDemon.destroy();
				}
			}, 2000);
		}, 2000);
	};
	// Add a two-second delay before proceeding to Function11
	LK.setTimeout(function () {
		if (thirdDemon) {
			Function11();
			LK.playMusic('HalloweenMusic', {
				loop: true
			});
			thirdDemon.destroy();
		}
	}, 2000);
}
// Function11 to instantiate Stage11 and Stage11BluePumpkin
function Function11() {
	// Instantiate Stage11 in the center of the playspace
	stage11 = LK.getAsset('Stage11', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage11.x = 2048 / 2;
	stage11.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	changeView(stage11);
	game.addChild(stage11);
	// Instantiate Stage11BluePumpkin on the playspace
	stage11BluePumpkin = LK.getAsset('Stage11BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage11BluePumpkin.x = 2048 / 2 - 640; // Example position
	stage11BluePumpkin.y = 2732 / 2 - 125; // Example position
	game.addChild(stage11BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage11BluePumpkin to call destroyStageElements and Function12 on press
	stage11BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage11BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage11BluePumpkin',
			x: stage11BluePumpkin.x,
			y: stage11BluePumpkin.y
		});
		LK.setTimeout(function () {
			destroyStageElements();
			Function12();
		}, 2000);
	};
}
// Function12 to instantiate Stage12 and Stage12BluePumpkin
function Function12() {
	// Instantiate Stage12 in the center of the playspace
	stage12 = LK.getAsset('Stage12', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage12.x = 2048 / 2;
	stage12.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	changeView(stage12);
	game.addChild(stage12);
	// Instantiate Stage12BluePumpkin on the playspace
	stage12BluePumpkin = LK.getAsset('Stage12BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage12BluePumpkin.x = 2048 / 2 + 575; // Example position
	stage12BluePumpkin.y = 2732 / 2 + 500; // Example position
	game.addChild(stage12BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage12BluePumpkin to call destroyStageElements and Function13 on press
	stage12BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage12BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage12BluePumpkin',
			x: stage12BluePumpkin.x,
			y: stage12BluePumpkin.y
		});
		LK.setTimeout(function () {
			destroyStageElements();
			Function13();
		}, 2000);
	};
}
// Function13 to instantiate Stage13 and Stage13BluePumpkin
function Function13() {
	// Instantiate Stage13 in the center of the playspace
	stage13 = LK.getAsset('Stage13', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage13.x = 2048 / 2;
	stage13.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	changeView(stage13);
	game.addChild(stage13);
	// Instantiate TheEnd image in the center of the playspace
	var theEnd = LK.getAsset('TheEnd', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	theEnd.x = 2048 / 2 + 50;
	theEnd.y = 2732 / 2 + 700;
	game.addChild(theEnd);
	// Instantiate Stage13BluePumpkin on the playspace
	stage13BluePumpkin = LK.getAsset('Stage13BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage13BluePumpkin.x = 2048 / 2 - 575; // Example position
	stage13BluePumpkin.y = 2732 / 2 - 100; // Example position
	game.addChild(stage13BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage13BluePumpkin to trigger game over on press
	stage13BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage13BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage13BluePumpkin',
			x: stage13BluePumpkin.x,
			y: stage13BluePumpkin.y
		});
		LK.setTimeout(function () {
			LK.showGameOver(); // Trigger game over
			// Instantiate TheEnd image in the center of the playspace
			var theEnd = LK.getAsset('TheEnd', {
				anchorX: 0.5,
				anchorY: 0.5
			});
			theEnd.x = 2048 / 2;
			theEnd.y = 2732 / 2;
			game.addChild(theEnd);
		}, 2000);
	};
} /**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0x000000
});
/**** 
* Game Code
****/ 
// Declare first, secondDemon and thirdDemon globally
var firstDemon = null;
var secondDemon = null;
var thirdDemon = null;
// Variables to track dragging state
var isDragging = false;
var dragStartX = 0;
var dragStartY = 0;
// Add event listener for dragging
game.down = function (x, y, obj) {
	isDragging = true;
	dragStartX = x;
	dragStartY = y;
};
game.move = function (x, y, obj) {
	if (isDragging) {
		var deltaX = (x - dragStartX) * 2; // Amplify the deltaX for faster dragging
		var deltaY = (y - dragStartY) * 2; // Amplify the deltaY for faster dragging
		game.x += deltaX;
		game.y += deltaY;
		// Clamp the game position to prevent moving outside the playspace
		var minX = 2048 - game.width * game.scale.x;
		var minY = 2732 - game.height * game.scale.y;
		game.x = Math.min(0, Math.max(minX, game.x));
		game.y = Math.min(0, Math.max(minY, game.y));
		dragStartX = x;
		dragStartY = y;
	}
};
game.up = function (x, y, obj) {
	isDragging = false;
};
// Function to animate the pumpkin
function animatepumpkin(obj) {
	// Animation logic for rewarding the player
	var pumpkin = LK.getAsset(obj.id, {
		anchorX: 0.5,
		anchorY: 0.5
	});
	pumpkin.x = obj.x; // Start from the original pumpkin position
	pumpkin.y = obj.y; // Start from the original pumpkin position
	game.addChild(pumpkin);
	var scaleDirection = 1;
	var scaleSpeed = 0.025; // Reduced speed for slower stretching effect
	var maxScale = 1.25; // Reduced max scale for less noticeable effect
	var minScale = 0.25; // Reduced min scale for less noticeable effect
	var squashStretchFactor = 0.00375; // Further reduced factor for a slower squash and stretch effect
	var rotationSpeed = 0.05 * (Math.random() < 0.5 ? 1 : -1); // Randomize rotation direction
	pumpkin.update = function () {
		pumpkin.scale.x += scaleSpeed * scaleDirection;
		pumpkin.scale.y += scaleSpeed * scaleDirection;
		// Apply squash and stretch effect
		if (scaleDirection > 0) {
			pumpkin.scale.x += squashStretchFactor;
			pumpkin.scale.y -= squashStretchFactor;
		} else {
			pumpkin.scale.x -= squashStretchFactor;
			pumpkin.scale.y += squashStretchFactor;
		}
		pumpkin.rotation += rotationSpeed * scaleDirection;
		// Move towards the center from original position
		var centerX = 2048 / 2;
		var centerY = 2732 / 2;
		var moveSpeed = 5; // Speed of movement towards the center
		var deltaX = centerX - pumpkin.x;
		var deltaY = centerY - pumpkin.y;
		var distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
		if (distance > moveSpeed) {
			pumpkin.x += deltaX / distance * moveSpeed;
			pumpkin.y += deltaY / distance * moveSpeed;
		} else {
			pumpkin.x = centerX;
			pumpkin.y = centerY;
		}
		if (pumpkin.scaleX > maxScale || pumpkin.scaleX < minScale) {
			scaleDirection *= -1;
		}
	};
	LK.setTimeout(function () {
		pumpkin.destroy();
	}, 2000);
}
// Function to play the celebration sound
function celebration() {
	LK.getSound('sndFound').play();
}
// Declare stages and stagePumpkins globally
var stage01;
var stage01BluePumpkin;
var stage02;
var stage02BluePumpkin;
var stage03;
var stage03BluePumpkin;
var stage04;
var stage04BluePumpkin;
var stage05;
var stage05BluePumpkin;
var stage06;
var stage06BluePumpkin;
var stage07;
var stage07BluePumpkin;
var stage08;
var stage08BluePumpkin;
var stage09;
var stage09BluePumpkin;
var stage10;
var stage10BluePumpkin;
var stage11;
var stage11BluePumpkin;
var stage12;
var stage12BluePumpkin;
var stage13;
var stage13BluePumpkin;
var comingSoon;
// Function to destroy splash screen elements
function destroySplashScreenElements() {
	if (splashScreen) {
		splashScreen.destroy();
	}
	if (splashScreenPumpkin) {
		splashScreenPumpkin.destroy();
	}
	if (relaxModeButton) {
		relaxModeButton.destroy();
	}
	if (raceButton) {
		raceButton.destroy();
	}
	if (comingSoon) {
		comingSoon.destroy();
	}
}
// Function to destroy Stage elements
function destroyStageElements() {
	if (stage01) {
		stage01.destroy();
	}
	if (stage01BluePumpkin) {
		stage01BluePumpkin.destroy();
	}
	if (stage02) {
		stage02.destroy();
	}
	if (stage02BluePumpkin) {
		stage02BluePumpkin.destroy();
	}
	if (stage03) {
		stage03.destroy();
	}
	if (stage03BluePumpkin) {
		stage03BluePumpkin.destroy();
	}
	if (stage04) {
		stage04.destroy();
	}
	if (stage04BluePumpkin) {
		stage04BluePumpkin.destroy();
	}
	if (stage05) {
		stage05.destroy();
	}
	if (stage05BluePumpkin) {
		stage05BluePumpkin.destroy();
	}
	if (stage06) {
		stage06.destroy();
	}
	if (stage06BluePumpkin) {
		stage06BluePumpkin.destroy();
	}
	if (stage07) {
		stage07.destroy();
	}
	if (stage07BluePumpkin) {
		stage07BluePumpkin.destroy();
	}
	if (stage08) {
		stage08.destroy();
	}
	if (stage08BluePumpkin) {
		stage08BluePumpkin.destroy();
	}
	if (stage09) {
		stage09.destroy();
	}
	if (stage09BluePumpkin) {
		stage09BluePumpkin.destroy();
	}
	if (stage10) {
		stage10.destroy();
	}
	if (stage10BluePumpkin) {
		stage10BluePumpkin.destroy();
	}
	if (stage11) {
		stage11.destroy();
	}
	if (stage11BluePumpkin) {
		stage11BluePumpkin.destroy();
	}
	if (stage12) {
		stage12.destroy();
	}
	if (stage12BluePumpkin) {
		stage12BluePumpkin.destroy();
	}
	if (stage13) {
		stage13.destroy();
	}
	if (stage13BluePumpkin) {
		stage13BluePumpkin.destroy();
	}
	if (background) {
		background.visible = false;
	}
}
// Instantiate the background in the center of the playspace
var background = LK.getAsset('Background', {
	anchorX: 0.5,
	anchorY: 0.5
});
background.x = 2048 / 2;
background.y = 2732 / 2;
game.addChild(background);
// Play and loop Halloween music
LK.playMusic('HalloweenMusic', {
	loop: true
});
// Instantiate the splash screen in the center of the playspace
var splashScreen = LK.getAsset('SplashScreen', {
	anchorX: 0.5,
	anchorY: 0.5
});
splashScreen.x = 2048 / 2;
splashScreen.y = 2732 / 2 + 360;
game.addChild(splashScreen);
// Instantiate the splashscreenpumpkin on the playspace
var splashScreenPumpkin = LK.getAsset('SplashScreenPumpkin', {
	anchorX: 0.5,
	anchorY: 0.5
});
splashScreenPumpkin.x = 2048 / 2 + 15;
splashScreenPumpkin.y = 2732 / 2 + 1020;
game.addChild(splashScreenPumpkin);
// Instantiate RaceButton to the right of splashScreenPumpkin
var raceButton = LK.getAsset('RaceButton', {
	anchorX: 0.5,
	anchorY: 0.5
});
raceButton.x = splashScreenPumpkin.x + 500; // Adjust position to the right
raceButton.y = splashScreenPumpkin.y;
game.addChild(raceButton);
// Instantiate ComingSoon over RaceButton
var comingSoon = LK.getAsset('Comingsoon', {
	anchorX: 0.5,
	anchorY: 0.5
});
comingSoon.x = raceButton.x;
comingSoon.y = raceButton.y;
game.addChild(comingSoon);
// Instantiate RelaxModeButton to the left of splashScreenPumpkin
var relaxModeButton = LK.getAsset('RelaxModeButton', {
	anchorX: 0.5,
	anchorY: 0.5
});
relaxModeButton.x = splashScreenPumpkin.x - 500; // Adjust position to the left
relaxModeButton.y = splashScreenPumpkin.y;
game.addChild(relaxModeButton);
// Removed duplicate splashScreen instantiation
// Add event listener to splashScreenPumpkin to call destroySplashScreenElements on press
relaxModeButton.down = function (x, y, obj) {
	destroySplashScreenElements();
	Function01();
};
// Animate splashScreenPumpkin to bob up and down slowly
var bobDirection = 1;
var bobSpeed = 0.1;
var bobRange = 5;
var originalY = splashScreenPumpkin.y;
LK.setInterval(function () {
	splashScreenPumpkin.y += bobSpeed * bobDirection;
	if (splashScreenPumpkin.y > originalY + bobRange || splashScreenPumpkin.y < originalY - bobRange) {
		bobDirection *= -1;
	}
}, 1000 / 60); // 60 FPS
// Instantiate a box
var box = LK.getAsset('box', {
	anchorX: 0.5,
	anchorY: 0.5
});
box.x = 1024;
box.y = 841 - 300;
game.addChild(box);
// Instantiate GripDemon in the center of the playspace
var gripDemon = LK.getAsset('GripDemon', {
	anchorX: 0.5,
	anchorY: 0.5
});
gripDemon.x = 2048 / 2;
gripDemon.y = 2732 / 2 - 1300;
game.addChild(gripDemon);
// Function to change view at the start of each stage
function changeView(stage) {
	game.scale.set(3.0); // Set zoom level by scaling the game container to 3.0
	game.x = (2048 - stage.width * game.scale.x) / 2;
	game.y = (2732 - stage.height * game.scale.y) / 2;
}
// Function01 to instantiate Stage01 and Stage01Pumpkin
function Function01() {
	// Instantiate Stage01 in the center of the playspace
	stage01 = LK.getAsset('Stage01', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage01.x = 2048 / 2;
	stage01.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	changeView(stage01);
	game.addChild(stage01);
	// Add instructional text for five seconds
	var instructionText = new Text2('Controls: Drag to move, \n find and tap the Pumpkin', {
		size: 50,
		// Increased font size
		fill: "#ff0000",
		background: "#333333",
		stroke: "#000000",
		// Add black outline
		strokeThickness: 5 // Set outline thickness
	});
	instructionText.anchor.set(0.5, 0.5);
	instructionText.x = game.width / 2;
	instructionText.y = game.height / 2 - 250;
	game.addChild(instructionText);
	LK.setTimeout(function () {
		instructionText.destroy();
	}, 10000);
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Instantiate Stage01Pumpkin on the playspace
	stage01BluePumpkin = LK.getAsset('Stage01BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage01BluePumpkin.x = 2048 / 2 + 100;
	stage01BluePumpkin.y = 2732 / 2 + 425;
	game.addChild(stage01BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage01Pumpkin to call destroyStage01Elements and Function02 on press
	stage01BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage01BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage01BluePumpkin',
			x: stage01BluePumpkin.x,
			y: stage01BluePumpkin.y
		});
		LK.setTimeout(function () {
			destroyStageElements();
			Function02();
		}, 2000);
	};
}
// Function02 to instantiate Stage02 and Stage02BluePumpkin
function Function02() {
	// Instantiate Stage02 in the center of the playspace
	stage02 = LK.getAsset('Stage02', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage02.x = 2048 / 2;
	stage02.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	changeView(stage02);
	game.addChild(stage02);
	// Instantiate Stage02BluePumpkin on the playspace
	stage02BluePumpkin = LK.getAsset('Stage02BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage02BluePumpkin.x = 2048 / 2 + 880;
	stage02BluePumpkin.y = 2732 / 2 + 875;
	game.addChild(stage02BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage02BluePumpkin to call destroyStage02Elements and Function03 on press
	stage02BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage02BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage02BluePumpkin',
			x: stage02BluePumpkin.x,
			y: stage02BluePumpkin.y
		});
		LK.setTimeout(function () {
			destroyStageElements();
			Function03();
		}, 2000);
	};
}
// Function03 to instantiate Stage03 and Stage03BluePumpkin
function Function03() {
	// Instantiate Stage03 in the center of the playspace
	stage03 = LK.getAsset('Stage03', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage03.x = 2048 / 2;
	stage03.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	if (!firstDemon) {
		changeView(stage03);
	}
	game.addChild(stage03);
	// Instantiate Stage03BluePumpkin on the playspace
	stage03BluePumpkin = LK.getAsset('Stage03BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage03BluePumpkin.x = 2048 / 2 - 960;
	stage03BluePumpkin.y = 2732 / 2 + 1260;
	game.addChild(stage03BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage03BluePumpkin to call destroyStageElements on press
	stage03BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage03BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage03BluePumpkin',
			x: stage03BluePumpkin.x,
			y: stage03BluePumpkin.y
		});
		LK.setTimeout(function () {
			game.scale.set(1.0); // Reset scale to default
			game.x = 0; // Reset x position to default
			game.y = 0; // Reset y position to default
			destroyStageElements();
			// Instantiate FirstDemon in the center of the playspace
			var firstDemon = LK.getAsset('FirstDemon', {
				anchorX: 0.5,
				anchorY: 0.5
			});
			firstDemon.x = 2048 / 2;
			firstDemon.y = 2732 / 2 + 300;
			game.addChild(firstDemon);
			LK.stopMusic();
			LK.setTimeout(function () {
				LK.getSound('sndBreathing').play();
			}, 1000);
			// Add event listener to FirstDemon to call Function04, restart music, and destroy self on press
			LK.setTimeout(function () {
				Function04();
				LK.playMusic('HalloweenMusic', {
					loop: true
				});
				firstDemon.destroy();
			}, 3000);
		}, 2000);
	};
}
// Function04 to instantiate Stage04 and Stage04BluePumpkin
function Function04() {
	// Instantiate Stage04 in the center of the playspace
	stage04 = LK.getAsset('Stage04', {
		anchorX: 0.5,
		anchorY: 0.5,
		scaleX: 1,
		scaleY: 1
	});
	stage04.x = 2048 / 2;
	stage04.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	changeView(stage04);
	game.addChild(stage04);
	// Instantiate Stage04BluePumpkin on the playspace
	stage04BluePumpkin = LK.getAsset('Stage04BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage04BluePumpkin.x = 2048 / 2 - 365; // Example position
	stage04BluePumpkin.y = 2732 / 2 + 470; // Example position
	game.addChild(stage04BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage04BluePumpkin to call destroyStageElements and Function05 on press
	stage04BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage04BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage04BluePumpkin',
			x: stage04BluePumpkin.x,
			y: stage04BluePumpkin.y
		});
		LK.setTimeout(function () {
			destroyStageElements();
			Function05();
		}, 2000);
	};
}
// Function05 to instantiate Stage05 and Stage05BluePumpkin
function Function05() {
	// Instantiate Stage05 in the center of the playspace
	stage05 = LK.getAsset('Stage05', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage05.x = 2048 / 2;
	stage05.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	changeView(stage05);
	game.addChild(stage05);
	// Instantiate Stage05BluePumpkin on the playspace
	stage05BluePumpkin = LK.getAsset('Stage05BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage05BluePumpkin.x = 2048 / 2 + 875; // Example position
	stage05BluePumpkin.y = 2732 / 2 + 800; // Example position
	game.addChild(stage05BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage05BluePumpkin to call destroyStageElements and Function06 on press
	stage05BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage05BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage05BluePumpkin',
			x: stage05BluePumpkin.x,
			y: stage05BluePumpkin.y
		});
		LK.setTimeout(function () {
			destroyStageElements();
			Function06();
		}, 2000);
	};
}
// Function06 to instantiate Stage06 and Stage06BluePumpkin
function Function06() {
	// Instantiate Stage06 in the center of the playspace
	stage06 = LK.getAsset('Stage06', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage06.x = 2048 / 2;
	stage06.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	changeView(stage06);
	game.addChild(stage06);
	// Instantiate Stage06BluePumpkin on the playspace
	stage06BluePumpkin = LK.getAsset('Stage06BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage06BluePumpkin.x = 2048 / 2 - 300; // Example position
	stage06BluePumpkin.y = 2732 / 2 + 1000; // Example position
	game.addChild(stage06BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage06BluePumpkin to call destroyStageElements on press
	stage06BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage06BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage06BluePumpkin',
			x: stage06BluePumpkin.x,
			y: stage06BluePumpkin.y
		});
		LK.setTimeout(function () {
			destroyStageElements();
			Function07();
		}, 2000);
	};
}
// Function07 to instantiate Stage07 and Stage07BluePumpkin
function Function07() {
	// Instantiate Stage07 in the center of the playspace
	stage07 = LK.getAsset('Stage07', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage07.x = 2048 / 2;
	stage07.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	if (!secondDemon) {
		changeView(stage07);
	}
	game.addChild(stage07);
	// Instantiate Stage07BluePumpkin on the playspace
	stage07BluePumpkin = LK.getAsset('Stage07BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage07BluePumpkin.x = 2048 / 2 - 850; // Example position
	stage07BluePumpkin.y = 2732 / 2 + 75; // Example position
	game.addChild(stage07BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage07BluePumpkin to call destroyStageElements on press
	stage07BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage07BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage07BluePumpkin',
			x: stage07BluePumpkin.x,
			y: stage07BluePumpkin.y
		});
		LK.setTimeout(function () {
			game.scale.set(1.0); // Reset scale to default
			game.x = 0; // Reset x position to default
			game.y = 0; // Reset y position to default
			destroyStageElements();
			// Instantiate SecondDemon in the center of the playspace
			var secondDemon = LK.getAsset('SecondDemon', {
				anchorX: 0.5,
				anchorY: 0.5
			});
			secondDemon.x = 2048 / 2;
			secondDemon.y = 2732 / 2 + 300;
			game.addChild(secondDemon);
			LK.stopMusic(); // Stop Halloween music when SecondDemon is instantiated
			LK.setTimeout(function () {
				LK.getSound('sndDog').play();
			}, 1000);
			// Add event listener to SecondDemon to call Function08, restart music, and destroy self on press
			LK.setTimeout(function () {
				Function08();
				LK.playMusic('HalloweenMusic', {
					loop: true
				});
				secondDemon.destroy();
			}, 3000);
		}, 2000);
	};
}
// Function08 to instantiate Stage08 and Stage08BluePumpkin
function Function08() {
	// Instantiate Stage08 in the center of the playspace
	stage08 = LK.getAsset('Stage08', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage08.x = 2048 / 2;
	stage08.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	changeView(stage08);
	game.addChild(stage08);
	// Instantiate Stage08BluePumpkin on the playspace
	stage08BluePumpkin = LK.getAsset('Stage08BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage08BluePumpkin.x = 2048 / 2 + 500; // Example position
	stage08BluePumpkin.y = 2732 / 2 + 1000; // Example position
	game.addChild(stage08BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage08BluePumpkin to call destroyStageElements and Function09 on press
	stage08BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage08BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage08BluePumpkin',
			x: stage08BluePumpkin.x,
			y: stage08BluePumpkin.y
		});
		LK.setTimeout(function () {
			destroyStageElements();
			Function09();
		}, 2000);
	};
}
// Function09 to instantiate Stage09 and Stage09BluePumpkin
function Function09() {
	// Instantiate Stage09 in the center of the playspace
	stage09 = LK.getAsset('Stage09', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage09.x = 2048 / 2;
	stage09.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	changeView(stage09);
	game.addChild(stage09);
	// Instantiate Stage09BluePumpkin on the playspace
	stage09BluePumpkin = LK.getAsset('Stage09BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage09BluePumpkin.x = 2048 / 2 + 800; // Example position
	stage09BluePumpkin.y = 2732 / 2 + 300; // Example position
	game.addChild(stage09BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage09BluePumpkin to call destroyStageElements and Function10 on press
	stage09BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage09BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage09BluePumpkin',
			x: stage09BluePumpkin.x,
			y: stage09BluePumpkin.y
		});
		LK.setTimeout(function () {
			destroyStageElements();
			Function10();
		}, 2000);
	};
}
// Function10 to instantiate Stage10 and Stage10BluePumpkin
function Function10() {
	// Instantiate Stage10 in the center of the playspace
	stage10 = LK.getAsset('Stage10', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage10.x = 2048 / 2;
	stage10.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	if (!thirdDemon) {
		changeView(stage10);
	}
	game.addChild(stage10);
	// Instantiate Stage10BluePumpkin on the playspace
	stage10BluePumpkin = LK.getAsset('Stage10BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage10BluePumpkin.x = 2048 / 2 - 375; // Example position
	stage10BluePumpkin.y = 2732 / 2 + 1100; // Example position
	game.addChild(stage10BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage10BluePumpkin to call celebration, destroyStageElements, and instantiate ThirdDemon
	stage10BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage10BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage10BluePumpkin',
			x: stage10BluePumpkin.x,
			y: stage10BluePumpkin.y
		});
		LK.setTimeout(function () {
			game.scale.set(1.0); // Reset scale to default
			game.x = 0; // Reset x position to default
			game.y = 0; // Reset y position to default
			destroyStageElements();
		}, 2000); // Decreased delay to 1000ms to make stage10 disappear faster
		LK.setTimeout(function () {
			// Instantiate ThirdDemon in the center of the playspace
			thirdDemon = LK.getAsset('ThirdDemon', {
				anchorX: 0.5,
				anchorY: 0.5
			});
			thirdDemon.x = 2048 / 2;
			thirdDemon.y = 2732 / 2 + 300;
			game.addChild(thirdDemon);
			LK.stopMusic(); // Stop Halloween music when ThirdDemon is instantiated
			LK.setTimeout(function () {
				LK.getSound('sndDemon').play();
			}, 1000);
			// Add a two-second delay before proceeding to Function11
			LK.setTimeout(function () {
				if (thirdDemon) {
					Function11();
					LK.playMusic('HalloweenMusic', {
						loop: true
					});
					thirdDemon.destroy();
				}
			}, 2000);
		}, 2000);
	};
	// Add a two-second delay before proceeding to Function11
	LK.setTimeout(function () {
		if (thirdDemon) {
			Function11();
			LK.playMusic('HalloweenMusic', {
				loop: true
			});
			thirdDemon.destroy();
		}
	}, 2000);
}
// Function11 to instantiate Stage11 and Stage11BluePumpkin
function Function11() {
	// Instantiate Stage11 in the center of the playspace
	stage11 = LK.getAsset('Stage11', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage11.x = 2048 / 2;
	stage11.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	changeView(stage11);
	game.addChild(stage11);
	// Instantiate Stage11BluePumpkin on the playspace
	stage11BluePumpkin = LK.getAsset('Stage11BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage11BluePumpkin.x = 2048 / 2 - 640; // Example position
	stage11BluePumpkin.y = 2732 / 2 - 125; // Example position
	game.addChild(stage11BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage11BluePumpkin to call destroyStageElements and Function12 on press
	stage11BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage11BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage11BluePumpkin',
			x: stage11BluePumpkin.x,
			y: stage11BluePumpkin.y
		});
		LK.setTimeout(function () {
			destroyStageElements();
			Function12();
		}, 2000);
	};
}
// Function12 to instantiate Stage12 and Stage12BluePumpkin
function Function12() {
	// Instantiate Stage12 in the center of the playspace
	stage12 = LK.getAsset('Stage12', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage12.x = 2048 / 2;
	stage12.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	changeView(stage12);
	game.addChild(stage12);
	// Instantiate Stage12BluePumpkin on the playspace
	stage12BluePumpkin = LK.getAsset('Stage12BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage12BluePumpkin.x = 2048 / 2 + 575; // Example position
	stage12BluePumpkin.y = 2732 / 2 + 500; // Example position
	game.addChild(stage12BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage12BluePumpkin to call destroyStageElements and Function13 on press
	stage12BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage12BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage12BluePumpkin',
			x: stage12BluePumpkin.x,
			y: stage12BluePumpkin.y
		});
		LK.setTimeout(function () {
			destroyStageElements();
			Function13();
		}, 2000);
	};
}
// Function13 to instantiate Stage13 and Stage13BluePumpkin
function Function13() {
	// Instantiate Stage13 in the center of the playspace
	stage13 = LK.getAsset('Stage13', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage13.x = 2048 / 2;
	stage13.y = 2732 / 2 + 360;
	LK.setTimeout(function () {
		background.visible = true;
	}, 500);
	changeView(stage13);
	game.addChild(stage13);
	// Instantiate TheEnd image in the center of the playspace
	var theEnd = LK.getAsset('TheEnd', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	theEnd.x = 2048 / 2 + 50;
	theEnd.y = 2732 / 2 + 700;
	game.addChild(theEnd);
	// Instantiate Stage13BluePumpkin on the playspace
	stage13BluePumpkin = LK.getAsset('Stage13BluePumpkin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	stage13BluePumpkin.x = 2048 / 2 - 575; // Example position
	stage13BluePumpkin.y = 2732 / 2 - 100; // Example position
	game.addChild(stage13BluePumpkin);
	game.addChild(box); // Re-add box to ensure it stays on top of GripDemon
	game.addChild(gripDemon); // Re-add GripDemon to ensure it stays on top
	// Add event listener to stage13BluePumpkin to trigger game over on press
	stage13BluePumpkin.down = function (x, y, obj) {
		celebration();
		stage13BluePumpkin.destroy();
		animatepumpkin({
			id: 'Stage13BluePumpkin',
			x: stage13BluePumpkin.x,
			y: stage13BluePumpkin.y
		});
		LK.setTimeout(function () {
			LK.showGameOver(); // Trigger game over
			// Instantiate TheEnd image in the center of the playspace
			var theEnd = LK.getAsset('TheEnd', {
				anchorX: 0.5,
				anchorY: 0.5
			});
			theEnd.x = 2048 / 2;
			theEnd.y = 2732 / 2;
			game.addChild(theEnd);
		}, 2000);
	};
}
 
 Generate a high quality cartoon background Halloween image on a black canvas similar to the format of where is waldo. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 
 yellow star. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 cartoon old splintered wood background. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 demon goat staring. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 dark cartoon cloudy skies high quality background make it simple and minimalistic.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 Generate a high quality cartoon background Halloween image on a black canvas similar to the format of where is waldo with a hellish environment. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 Generate a high quality cartoon background Halloween image on a black canvas similar to the format of where is waldo with a hellish environment. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 Generate a high quality cartoon background Halloween image on a black canvas similar to the format of where is waldo with a hellish environment. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 Generate a high quality cartoon background Halloween image on a black canvas similar to the format of where is waldo with a hellish environment. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 demon dog staring. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 Generate a high quality cartoon background Halloween image on a black canvas similar to the format of where is waldo with a hellish environment. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 Generate a high quality cartoon background Halloween image on a black canvas similar to the format of where is waldo with a hellish lake environment. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 Generate a high quality cartoon background Halloween image on a black canvas similar to the format of where is waldo with a hellish lake environment. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 scary demon staring. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 Generate a high quality cartoon background Halloween image on a black canvas similar to the format of where is waldo with a hellish environment filled with pumpkins. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 Generate a high quality cartoon background Halloween filled with pumpkins. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 Generate a high quality cartoon background Halloween image on a black canvas similar to the format of where is waldo with a hellish environment filled with pumpkins. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 an orange halloween pumpkin with glasses Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 
 button that says relax in orange, black outline of the letters. high contrast. has a pumpkin on it Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 button that says race in orange, black outline of the letters. high contrast. has a pumpkin on it square button with rounded corners Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows. png background
 coming soon letters in white. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 Round Black Ellipse with a Transparent Hole in the Middle. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.