var ExtraLife = Container.expand(function () {
	var self = Container.call(this);
	var extraLifeGraphics = self.createAsset('extraLife', 'Extra Life Graphics', 0.5, 0.5);
});
var Separator = Container.expand(function () {
	var self = Container.call(this);
	var CENTER_ANCHOR = 0.5;
	var separatorGraphics = self.createAsset('separator', 'Separator Graphics', CENTER_ANCHOR, CENTER_ANCHOR);
	separatorGraphics.alpha = 0;
	separatorGraphics.width = LK.getAsset('separator').width;
	separatorGraphics.height = LK.getAsset('separator').height * 4;
	self.collideWithDisc = function (disc) {
		var discGraphics = disc.getGraphics();
		var dx = disc.x - self.x;
		var dy = disc.y - self.y;
		var distance = Math.sqrt(dx * dx + dy * dy);
		if (distance < discGraphics.width / 2 + separatorGraphics.width / 2) {
			disc.x = self.x + separatorGraphics.width / 2;
			disc.y = self.y + separatorGraphics.height / 2;
			disc.velocity.x = 0;
			disc.velocity.y = 0;
		}
	};
});
var DiscIndicator = Container.expand(function () {
	var self = Container.call(this);
	var discGraphics = self.createAsset('disc', 'Disc Indicator Graphics', 0.5, 0.5);
	self.setCount = function (count) {
		self.removeChildren();
		function createDiscGraphic() {
			var newDisc = self.createAsset('disc', 'Disc Indicator Graphics', 0.5, 0.5);
			newDisc.scale.set(0.5);
			return newDisc;
		}
		for (var i = 0; i < count; i++) {
			var disc = createDiscGraphic();
			disc.x = -i * (discGraphics.width * 0.5) * 1.1;
			self.addChild(disc);
		}
	};
});
var Slot = Container.expand(function (pointValue) {
	var self = Container.call(this);
	self.slotGraphics;
	switch (pointValue) {
		case 25:
			self.slotGraphics = self.createAsset('slot_red', 'Slot Graphics', 0.5, 1);
			break;
		case 50:
			self.slotGraphics = self.createAsset('slot_blue', 'Slot Graphics', 0.5, 1);
			break;
		case 75:
			self.slotGraphics = self.createAsset('slot_green', 'Slot Graphics', 0.5, 1);
			break;
		case 100:
			self.slotGraphics = self.createAsset('slot_purple', 'Slot Graphics', 0.5, 1);
			break;
		default:
			self.slotGraphics = self.createAsset('slot', 'Slot Graphics', 0.5, 1);
			break;
	}
	self.pointValue = pointValue;
	var pointValueText = new Text2(self.pointValue.toString(), {
		size: 50,
		fill: '#ffffff'
	});
	pointValueText.anchor.set(0.5, 0);
	self.addChild(pointValueText);
	self.collideWithDisc = function (disc, updateScoreCallback) {
		disc.inSlot = true;
		disc.pointValue = self.pointValue;
		updateScoreCallback(disc.pointValue);
		if (self.pointValue === 100) {
			var remainingDiscs = self.parent && self.parent.discs ? self.parent.discs.length - self.parent.currentDiscIndex : 0;
			if (remainingDiscs < 3) {
				self.parent.createDisc.apply(self.parent);
				var extraLife = new ExtraLife();
				extraLife.x = self.parent.discIndicator.x;
				extraLife.y = self.parent.discIndicator.y;
				LK.gui.addChild(extraLife);
				LK.setTimeout(function () {
					extraLife.destroy();
				}, 500);
			}
			self.parent.discIndicator.setCount(remainingDiscs + 1);
		}
	};
	self.setSize = function (width, height) {
		self.slotGraphics.width = width;
		self.slotGraphics.height = height;
		pointValueText.x = width / 2;
		pointValueText.y = height - pointValueText.height;
	};
});
var Peg = Container.expand(function () {
	var self = Container.call(this);
	var pegGraphics = self.createAsset('peg', 'Peg Graphics', .25, .25);
	self.collideWithDisc = function (disc) {
		var normal = {
			x: disc.x - self.x,
			y: disc.y - self.y
		};
		var length = Math.sqrt(normal.x * normal.x + normal.y * normal.y);
		normal.x /= length;
		normal.y /= length;
		var dotProduct = disc.velocity.x * normal.x + disc.velocity.y * normal.y;
		disc.velocity.x -= 5 * dotProduct * normal.x * disc.elasticity;
		disc.velocity.y -= 5 * dotProduct * normal.y * disc.elasticity;
	};
});
var Disc = Container.expand(function () {
	var self = Container.call(this);
	self.getGraphics = function () {
		return discGraphics;
	};
	var discGraphics = self.createAsset('disc', 'Disc Graphics', .25, .25);
	self.elasticity = 0.2;
	self.gravity = 6;
	self.inSlot = false;
	self.pointValue = 0;
	self.x = LK.getAsset('disc').width / 2;
	self.y = LK.getAsset('disc').height / 2;
	self.velocity = {
		x: 0,
		y: 0
	};
	var HORIZONTAL_SPEED = 80;
	self.horizontalSpeed = HORIZONTAL_SPEED;
	self.movingLeft = Math.random() < 0.5;
	self.move = function () {
		if (!self.inSlot) {
			var limit = 2048 * 0.1;
			if (self.movingLeft) {
				self.x -= self.horizontalSpeed;
				if (self.x <= limit) self.movingLeft = false;
			} else {
				self.x += self.horizontalSpeed;
				if (self.x >= 2048 - limit) self.movingLeft = true;
			}
			if (self.velocity.y !== 0 || self.velocity.x !== 0) {
				self.velocity.y += self.gravity * 0.5;
				self.x += self.velocity.x;
				self.y += self.velocity.y;
				if (self.x < 0 || self.x > 2048) {
					self.velocity.x *= -1;
				}
				if (self.y < 0 || self.y > 2732) {
					self.velocity.y *= -1;
				}
			}
		}
	};
	self.collideWithPeg = function (peg) {
		var dx = self.x - peg.x;
		var dy = self.y - peg.y;
		var distanceSquared = dx * dx + dy * dy;
		var radiiSquared = (pegGraphics.width / 2 + discGraphics.width / 2) * (pegGraphics.width / 2 + discGraphics.width / 2);
		if (distanceSquared < radiiSquared) {
			var multiplier = self.elasticity * 1.5;
			self.velocity.x = -multiplier * dx;
			self.velocity.y = -multiplier * dy;
		}
	};
});
var Game = Container.expand(function () {
	var self = Container.call(this);
	self.createDisc = function () {
		var disc = new Disc();
		disc.alpha = 0;
		discs.push(disc);
		self.addChild(disc);
	};
	var background = self.createAsset('background', 'Background Graphics', 0, 0);
	background.width = 2048;
	var SCREEN_HEIGHT = 2732;
	background.height = SCREEN_HEIGHT;
	background.alpha = 1;
	self.addChild(background);
	var separators = [];
	var totalSeparators = 7;
	var SCREEN_WIDTH = 2048;
	var separatorSpacing = SCREEN_WIDTH / (totalSeparators + 1) + 40;
	var separatorContainer = new Container();
	for (var i = 0; i < totalSeparators; i++) {
		var separator = new Separator();
		separator.x = separatorSpacing * (i + 1) - separatorSpacing / 2 - 20;
		separator.y = 2732 / 2 + 600 + 600;
		separatorContainer.addChild(separator);
		separators.push(separator);
	}
	self.addChild(separatorContainer);
	stage.on('down', function (obj) {
		if (currentDiscIndex < discs.length) {
			var activeDisc = discs[currentDiscIndex];
			if (!activeDisc.inSlot) {
				activeDisc.velocity.y = 5;
				activeDisc.velocity.x = (Math.random() - 0.5) * 3;
				activeDisc.horizontalSpeed = 0;
				self.discIndicator.setCount(discs.length - currentDiscIndex - 1);
			}
		}
	});
	var scoreTxt = new Text2('0', {
		size: 120,
		fill: '#ffffff',
		stroke: '#000000',
		strokeThickness: 6,
		font: "'Luckiest Guy', 'Arial Black', sans-serif"
	});
	scoreTxt.anchor.set(0.5, 0);
	LK.gui.topCenter.addChild(scoreTxt);
	self.discIndicator = new DiscIndicator();
	self.discIndicator.x = 1350;
	self.discIndicator.y = 70;
	LK.gui.addChild(self.discIndicator);
	self.discIndicator.setCount(5);
	function updateScore(pointValue) {
		totalScore += pointValue;
		scoreTxt.setText(totalScore.toString());
	}
	function updateUI() {
		scoreTxt.setText(totalScore.toString());
	}
	var pegs = [];
	var slots = [];
	var discs = [new Disc(), new Disc(), new Disc(), new Disc(), new Disc()];
	for (var i = 0; i < discs.length; i++) {
		discs[i].x = 2048 / 2;
		discs[i].y = 250;
		discs[i].velocity.x = 0;
		discs[i].velocity.y = 0;
		discs[i].visible = false;
		self.addChild(discs[i]);
	}
	discs[0].visible = true;
	var currentDiscIndex = 0;
	var totalScore = 0;
	function createDisc() {
		var disc = new Disc();
		discs.push(disc);
		self.addChild(disc);
	}
	var slotPoints = [25, 50, 75, 100, 75, 50, 25];
	var slotWidth = 2048 / slotPoints.length;
	for (var i = 0; i < slotPoints.length; i++) {
		var slot = new Slot(slotPoints[i]);
		slot.setSize(slotWidth, slotWidth);
		slot.x = i * slotWidth + 140;
		slot.y = 2732 - slot.slotGraphics.height + 500;
		slots.push(slot);
		slot.slotGraphics.alpha = 0;
		self.addChild(slot);
		var visualSlot = new Slot(slotPoints[i]);
		visualSlot.setSize(slotWidth, slotWidth);
		visualSlot.x = slot.x;
		visualSlot.y = slot.y - 200;
		self.addChild(visualSlot);
	}
	self.handleDiscCollisions = function (activeDisc) {
		var activePegs = pegs.filter(peg => activeDisc.intersects(peg));
		activePegs.forEach(peg => peg.collideWithDisc(activeDisc));
		for (var s = 0; s < separators.length; s++) {
			for (var i = 0; i < activeDisc.velocity.y; i++) {
				if (activeDisc.intersects(separators[s])) {
					separators[s].collideWithDisc(activeDisc, activeDisc.discGraphics);
				}
			}
		}
		var activeSlot = slots.find(slot => activeDisc.intersects(slot) && !activeDisc.inSlot);
		if (activeSlot) {
			activeSlot.collideWithDisc(activeDisc, updateScore);
			activeDisc.inSlot = true;
			currentDiscIndex++;
			self.discIndicator.setCount(discs.length - currentDiscIndex);
			if (currentDiscIndex < discs.length && discs[currentDiscIndex - 1].inSlot) {
				var nextDisc = discs[currentDiscIndex];
				nextDisc.x = Math.random() * 2048;
				nextDisc.y = 250;
				nextDisc.velocity.x = 0;
				nextDisc.velocity.y = 0;
				nextDisc.horizontalSpeed = 80;
				nextDisc.movingLeft = Math.random() < 0.5;
				nextDisc.visible = true;
				nextDisc.alpha = 1;
			}
		}
	};
	LK.on('tick', function () {
		if (currentDiscIndex < discs.length) {
			var activeDisc = discs[currentDiscIndex];
			if (!activeDisc.inSlot) {
				activeDisc.move();
				self.handleDiscCollisions(activeDisc);
			}
		}
		if (LK.ticks % 60 == 0) {
			if (currentDiscIndex == discs.length) {
				var allDiscsInSlots = discs.every(function (disc) {
					return disc.inSlot;
				});
				var lastDisc = discs[discs.length - 1];
				if (allDiscsInSlots && (!lastDisc.inSlot || lastDisc.pointValue !== 100)) {
					LK.showGameOver();
					totalScore = 0;
					currentDiscIndex = 0;
					discs.forEach(function (disc) {
						disc.x = 2048 / 2;
						disc.y = 850;
						disc.velocity.y = 0;
						disc.velocity.x = 0;
						disc.inSlot = false;
					});
				}
			}
		}
	});
	var pegOffsetX = 2048 / 7;
	var pegOffsetY = (2732 - pegOffsetX) / 9;
	var marginX = pegOffsetX / 2 - 20;
	var pegContainer = new Container();
	for (var row = 0; row < 8; row++) {
		var numberOfPegsInRow = row % 2 === 0 ? 7 : 6;
		for (var col = 0; col < numberOfPegsInRow; col++) {
			var peg = new Peg();
			var staggerOffset = row % 2 * (pegOffsetX / 2);
			peg.x = marginX + col * pegOffsetX + staggerOffset;
			peg.y = pegOffsetY + row * pegOffsetY + 190;
			pegContainer.addChild(peg);
			pegs.push(peg);
		}
	}
	self.addChild(pegContainer);
});
 var ExtraLife = Container.expand(function () {
	var self = Container.call(this);
	var extraLifeGraphics = self.createAsset('extraLife', 'Extra Life Graphics', 0.5, 0.5);
});
var Separator = Container.expand(function () {
	var self = Container.call(this);
	var CENTER_ANCHOR = 0.5;
	var separatorGraphics = self.createAsset('separator', 'Separator Graphics', CENTER_ANCHOR, CENTER_ANCHOR);
	separatorGraphics.alpha = 0;
	separatorGraphics.width = LK.getAsset('separator').width;
	separatorGraphics.height = LK.getAsset('separator').height * 4;
	self.collideWithDisc = function (disc) {
		var discGraphics = disc.getGraphics();
		var dx = disc.x - self.x;
		var dy = disc.y - self.y;
		var distance = Math.sqrt(dx * dx + dy * dy);
		if (distance < discGraphics.width / 2 + separatorGraphics.width / 2) {
			disc.x = self.x + separatorGraphics.width / 2;
			disc.y = self.y + separatorGraphics.height / 2;
			disc.velocity.x = 0;
			disc.velocity.y = 0;
		}
	};
});
var DiscIndicator = Container.expand(function () {
	var self = Container.call(this);
	var discGraphics = self.createAsset('disc', 'Disc Indicator Graphics', 0.5, 0.5);
	self.setCount = function (count) {
		self.removeChildren();
		function createDiscGraphic() {
			var newDisc = self.createAsset('disc', 'Disc Indicator Graphics', 0.5, 0.5);
			newDisc.scale.set(0.5);
			return newDisc;
		}
		for (var i = 0; i < count; i++) {
			var disc = createDiscGraphic();
			disc.x = -i * (discGraphics.width * 0.5) * 1.1;
			self.addChild(disc);
		}
	};
});
var Slot = Container.expand(function (pointValue) {
	var self = Container.call(this);
	self.slotGraphics;
	switch (pointValue) {
		case 25:
			self.slotGraphics = self.createAsset('slot_red', 'Slot Graphics', 0.5, 1);
			break;
		case 50:
			self.slotGraphics = self.createAsset('slot_blue', 'Slot Graphics', 0.5, 1);
			break;
		case 75:
			self.slotGraphics = self.createAsset('slot_green', 'Slot Graphics', 0.5, 1);
			break;
		case 100:
			self.slotGraphics = self.createAsset('slot_purple', 'Slot Graphics', 0.5, 1);
			break;
		default:
			self.slotGraphics = self.createAsset('slot', 'Slot Graphics', 0.5, 1);
			break;
	}
	self.pointValue = pointValue;
	var pointValueText = new Text2(self.pointValue.toString(), {
		size: 50,
		fill: '#ffffff'
	});
	pointValueText.anchor.set(0.5, 0);
	self.addChild(pointValueText);
	self.collideWithDisc = function (disc, updateScoreCallback) {
		disc.inSlot = true;
		disc.pointValue = self.pointValue;
		updateScoreCallback(disc.pointValue);
		if (self.pointValue === 100) {
			var remainingDiscs = self.parent && self.parent.discs ? self.parent.discs.length - self.parent.currentDiscIndex : 0;
			if (remainingDiscs < 3) {
				self.parent.createDisc.apply(self.parent);
				var extraLife = new ExtraLife();
				extraLife.x = self.parent.discIndicator.x;
				extraLife.y = self.parent.discIndicator.y;
				LK.gui.addChild(extraLife);
				LK.setTimeout(function () {
					extraLife.destroy();
				}, 500);
			}
			self.parent.discIndicator.setCount(remainingDiscs + 1);
		}
	};
	self.setSize = function (width, height) {
		self.slotGraphics.width = width;
		self.slotGraphics.height = height;
		pointValueText.x = width / 2;
		pointValueText.y = height - pointValueText.height;
	};
});
var Peg = Container.expand(function () {
	var self = Container.call(this);
	var pegGraphics = self.createAsset('peg', 'Peg Graphics', .25, .25);
	self.collideWithDisc = function (disc) {
		var normal = {
			x: disc.x - self.x,
			y: disc.y - self.y
		};
		var length = Math.sqrt(normal.x * normal.x + normal.y * normal.y);
		normal.x /= length;
		normal.y /= length;
		var dotProduct = disc.velocity.x * normal.x + disc.velocity.y * normal.y;
		disc.velocity.x -= 5 * dotProduct * normal.x * disc.elasticity;
		disc.velocity.y -= 5 * dotProduct * normal.y * disc.elasticity;
	};
});
var Disc = Container.expand(function () {
	var self = Container.call(this);
	self.getGraphics = function () {
		return discGraphics;
	};
	var discGraphics = self.createAsset('disc', 'Disc Graphics', .25, .25);
	self.elasticity = 0.2;
	self.gravity = 6;
	self.inSlot = false;
	self.pointValue = 0;
	self.x = LK.getAsset('disc').width / 2;
	self.y = LK.getAsset('disc').height / 2;
	self.velocity = {
		x: 0,
		y: 0
	};
	var HORIZONTAL_SPEED = 80;
	self.horizontalSpeed = HORIZONTAL_SPEED;
	self.movingLeft = Math.random() < 0.5;
	self.move = function () {
		if (!self.inSlot) {
			var limit = 2048 * 0.1;
			if (self.movingLeft) {
				self.x -= self.horizontalSpeed;
				if (self.x <= limit) self.movingLeft = false;
			} else {
				self.x += self.horizontalSpeed;
				if (self.x >= 2048 - limit) self.movingLeft = true;
			}
			if (self.velocity.y !== 0 || self.velocity.x !== 0) {
				self.velocity.y += self.gravity * 0.5;
				self.x += self.velocity.x;
				self.y += self.velocity.y;
				if (self.x < 0 || self.x > 2048) {
					self.velocity.x *= -1;
				}
				if (self.y < 0 || self.y > 2732) {
					self.velocity.y *= -1;
				}
			}
		}
	};
	self.collideWithPeg = function (peg) {
		var dx = self.x - peg.x;
		var dy = self.y - peg.y;
		var distanceSquared = dx * dx + dy * dy;
		var radiiSquared = (pegGraphics.width / 2 + discGraphics.width / 2) * (pegGraphics.width / 2 + discGraphics.width / 2);
		if (distanceSquared < radiiSquared) {
			var multiplier = self.elasticity * 1.5;
			self.velocity.x = -multiplier * dx;
			self.velocity.y = -multiplier * dy;
		}
	};
});
var Game = Container.expand(function () {
	var self = Container.call(this);
	self.createDisc = function () {
		var disc = new Disc();
		disc.alpha = 0;
		discs.push(disc);
		self.addChild(disc);
	};
	var background = self.createAsset('background', 'Background Graphics', 0, 0);
	background.width = 2048;
	var SCREEN_HEIGHT = 2732;
	background.height = SCREEN_HEIGHT;
	background.alpha = 1;
	self.addChild(background);
	var separators = [];
	var totalSeparators = 7;
	var SCREEN_WIDTH = 2048;
	var separatorSpacing = SCREEN_WIDTH / (totalSeparators + 1) + 40;
	var separatorContainer = new Container();
	for (var i = 0; i < totalSeparators; i++) {
		var separator = new Separator();
		separator.x = separatorSpacing * (i + 1) - separatorSpacing / 2 - 20;
		separator.y = 2732 / 2 + 600 + 600;
		separatorContainer.addChild(separator);
		separators.push(separator);
	}
	self.addChild(separatorContainer);
	stage.on('down', function (obj) {
		if (currentDiscIndex < discs.length) {
			var activeDisc = discs[currentDiscIndex];
			if (!activeDisc.inSlot) {
				activeDisc.velocity.y = 5;
				activeDisc.velocity.x = (Math.random() - 0.5) * 3;
				activeDisc.horizontalSpeed = 0;
				self.discIndicator.setCount(discs.length - currentDiscIndex - 1);
			}
		}
	});
	var scoreTxt = new Text2('0', {
		size: 120,
		fill: '#ffffff',
		stroke: '#000000',
		strokeThickness: 6,
		font: "'Luckiest Guy', 'Arial Black', sans-serif"
	});
	scoreTxt.anchor.set(0.5, 0);
	LK.gui.topCenter.addChild(scoreTxt);
	self.discIndicator = new DiscIndicator();
	self.discIndicator.x = 1350;
	self.discIndicator.y = 70;
	LK.gui.addChild(self.discIndicator);
	self.discIndicator.setCount(5);
	function updateScore(pointValue) {
		totalScore += pointValue;
		scoreTxt.setText(totalScore.toString());
	}
	function updateUI() {
		scoreTxt.setText(totalScore.toString());
	}
	var pegs = [];
	var slots = [];
	var discs = [new Disc(), new Disc(), new Disc(), new Disc(), new Disc()];
	for (var i = 0; i < discs.length; i++) {
		discs[i].x = 2048 / 2;
		discs[i].y = 250;
		discs[i].velocity.x = 0;
		discs[i].velocity.y = 0;
		discs[i].visible = false;
		self.addChild(discs[i]);
	}
	discs[0].visible = true;
	var currentDiscIndex = 0;
	var totalScore = 0;
	function createDisc() {
		var disc = new Disc();
		discs.push(disc);
		self.addChild(disc);
	}
	var slotPoints = [25, 50, 75, 100, 75, 50, 25];
	var slotWidth = 2048 / slotPoints.length;
	for (var i = 0; i < slotPoints.length; i++) {
		var slot = new Slot(slotPoints[i]);
		slot.setSize(slotWidth, slotWidth);
		slot.x = i * slotWidth + 140;
		slot.y = 2732 - slot.slotGraphics.height + 500;
		slots.push(slot);
		slot.slotGraphics.alpha = 0;
		self.addChild(slot);
		var visualSlot = new Slot(slotPoints[i]);
		visualSlot.setSize(slotWidth, slotWidth);
		visualSlot.x = slot.x;
		visualSlot.y = slot.y - 200;
		self.addChild(visualSlot);
	}
	self.handleDiscCollisions = function (activeDisc) {
		var activePegs = pegs.filter(peg => activeDisc.intersects(peg));
		activePegs.forEach(peg => peg.collideWithDisc(activeDisc));
		for (var s = 0; s < separators.length; s++) {
			for (var i = 0; i < activeDisc.velocity.y; i++) {
				if (activeDisc.intersects(separators[s])) {
					separators[s].collideWithDisc(activeDisc, activeDisc.discGraphics);
				}
			}
		}
		var activeSlot = slots.find(slot => activeDisc.intersects(slot) && !activeDisc.inSlot);
		if (activeSlot) {
			activeSlot.collideWithDisc(activeDisc, updateScore);
			activeDisc.inSlot = true;
			currentDiscIndex++;
			self.discIndicator.setCount(discs.length - currentDiscIndex);
			if (currentDiscIndex < discs.length && discs[currentDiscIndex - 1].inSlot) {
				var nextDisc = discs[currentDiscIndex];
				nextDisc.x = Math.random() * 2048;
				nextDisc.y = 250;
				nextDisc.velocity.x = 0;
				nextDisc.velocity.y = 0;
				nextDisc.horizontalSpeed = 80;
				nextDisc.movingLeft = Math.random() < 0.5;
				nextDisc.visible = true;
				nextDisc.alpha = 1;
			}
		}
	};
	LK.on('tick', function () {
		if (currentDiscIndex < discs.length) {
			var activeDisc = discs[currentDiscIndex];
			if (!activeDisc.inSlot) {
				activeDisc.move();
				self.handleDiscCollisions(activeDisc);
			}
		}
		if (LK.ticks % 60 == 0) {
			if (currentDiscIndex == discs.length) {
				var allDiscsInSlots = discs.every(function (disc) {
					return disc.inSlot;
				});
				var lastDisc = discs[discs.length - 1];
				if (allDiscsInSlots && (!lastDisc.inSlot || lastDisc.pointValue !== 100)) {
					LK.showGameOver();
					totalScore = 0;
					currentDiscIndex = 0;
					discs.forEach(function (disc) {
						disc.x = 2048 / 2;
						disc.y = 850;
						disc.velocity.y = 0;
						disc.velocity.x = 0;
						disc.inSlot = false;
					});
				}
			}
		}
	});
	var pegOffsetX = 2048 / 7;
	var pegOffsetY = (2732 - pegOffsetX) / 9;
	var marginX = pegOffsetX / 2 - 20;
	var pegContainer = new Container();
	for (var row = 0; row < 8; row++) {
		var numberOfPegsInRow = row % 2 === 0 ? 7 : 6;
		for (var col = 0; col < numberOfPegsInRow; col++) {
			var peg = new Peg();
			var staggerOffset = row % 2 * (pegOffsetX / 2);
			peg.x = marginX + col * pegOffsetX + staggerOffset;
			peg.y = pegOffsetY + row * pegOffsetY + 190;
			pegContainer.addChild(peg);
			pegs.push(peg);
		}
	}
	self.addChild(pegContainer);
});
 Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.wooden peg
 bucket with 50 text on it. front view. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows. pixel. 8 bit
 golden bucket with 100 text on it. front view. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows. pixel. 8 bit
 bucket with 25 text on it. front view. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows. pixel. 8 bit
 round crumpled ball of paper. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. no shadow. pixel. 8 bit
 white paper wallpaper. In-Game texture. 2d.. High contrast. No shadows. pixel. 8 bit. single color
 paper peg Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows. pixel. 8 bit
 green plus sign Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows. pixel. 8 bit
 silver bucket with 75 text on it . front view. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows. pixel. 8 bit