/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
var storage = LK.import("@upit/storage.v1");
/****
* Classes
****/
var WheelSegment = Container.expand(function (segmentNumber, text, color) {
var self = Container.call(this);
var segmentGraphic = self.attachAsset('segment', {
anchorX: 0.5,
anchorY: 0.5
});
segmentGraphic.tint = color;
var segmentText = new Text2(text, {
size: 42,
fill: 0x000000
});
segmentText.anchor.set(0.5, 0.5);
self.addChild(segmentText);
self.segmentNumber = segmentNumber;
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x0f4c0f
});
/****
* Game Code
****/
var playerGold = 50;
var currentBet = 10;
var isSpinning = false;
var wheelRotation = 0;
var vaultMode = false;
var vaultRevealed = 0;
var multiSpinCount = 1;
var currentSpinNumber = 0;
var loanAmount = storage.loanAmount || 0;
var loanStartTime = storage.loanStartTime || 0;
var loanTimeRemaining = 0;
var loanTimerActive = false;
// Case system variables
var caseActive = false;
var caseWinnings = 0;
var caseSpinning = false;
var caseWheelRotation = 0;
var showingCaseResult = false;
// SV Case system variables
var svCaseActive = false;
var svCaseWinnings = 0;
var svCaseSpinning = false;
var svCaseWheelRotation = 0;
var showingSvCaseResult = false;
var multiplierWheelActive = false;
var multiplierSpinning = false;
var currentMultiplier = 1;
// SV3 Case system variables
var sv3CaseActive = false;
var sv3RiskGraphActive = false;
var sv3RiskWheelActive = false;
var sv3RiskSpinning = false;
var riskCoins = storage.riskCoins || 0;
var riskCoinValue = storage.riskCoinValue || 50;
var sv3WheelResult = 0;
// Case segments data (Level 1 case)
var caseSegments = [{
text: "10 ALTIN",
color: 0x90EE90,
outcome: "win10"
}, {
text: "20 ALTIN",
color: 0x87CEEB,
outcome: "win20"
}, {
text: "30 ALTIN",
color: 0xFFA500,
outcome: "win30"
}, {
text: "40 ALTIN",
color: 0x9932CC,
outcome: "win40"
}, {
text: "KAYBETTİN",
color: 0xFF0000,
outcome: "lose"
}, {
text: "50 ALTIN",
color: 0xFFD700,
outcome: "win50"
}];
// SV Case segments data (Print coins)
var svCaseSegments = [{
text: "50 PRINT",
color: 0x90EE90,
outcome: "win50"
}, {
text: "100 PRINT",
color: 0x87CEEB,
outcome: "win100"
}, {
text: "200 PRINT",
color: 0xFFA500,
outcome: "win200"
}, {
text: "500 PRINT",
color: 0x9932CC,
outcome: "win500"
}, {
text: "800 PRINT",
color: 0xFF6347,
outcome: "win800"
}, {
text: "1000 PRINT",
color: 0xFFD700,
outcome: "win1000"
}];
// SV3 Risk wheel segments data
var sv3RiskSegments = [{
text: "20 RISK",
color: 0x90EE90,
outcome: "risk20"
}, {
text: "30 RISK",
color: 0x87CEEB,
outcome: "risk30"
}, {
text: "40 RISK",
color: 0xFFA500,
outcome: "risk40"
}, {
text: "100 RISK",
color: 0x9932CC,
outcome: "risk100"
}, {
text: "200 RISK",
color: 0xFF6347,
outcome: "risk200"
}, {
text: "999999 RISK",
color: 0xFFD700,
outcome: "risk999999"
}];
// Multiplier wheel segments
var multiplierSegments = [{
text: "2X",
color: 0x90EE90,
multiplier: 2
}, {
text: "3X",
color: 0x87CEEB,
multiplier: 3
}, {
text: "4X",
color: 0xFFA500,
multiplier: 4
}, {
text: "5X",
color: 0x9932CC,
multiplier: 5
}, {
text: "-4X",
color: 0xFF0000,
multiplier: -4
}, {
text: "-10X",
color: 0x8B0000,
multiplier: -10
}, {
text: "-2X",
color: 0xFF6B6B,
multiplier: -2
}];
// Wheel segments data
var segments = [{
text: "40 ALTIN\nKAZAN",
color: 0x90ee90,
outcome: "win40"
}, {
text: "İKİYE KATLA\nYA DA KAYBİM",
color: 0xffa500,
outcome: "doubleOrNothing"
}, {
text: "BAHİSİN\n2 KATI",
color: 0x87ceeb,
outcome: "doubleBet"
}, {
text: "BAHİSİNİ\nKAYBET",
color: 0xff6b6b,
outcome: "loseBet"
}, {
text: "SÜPER\nKASA",
color: 0xffd700,
outcome: "superVault"
}, {
text: "HACİZ\n-100 ALTIN",
color: 0x8b0000,
outcome: "bankruptcy"
}, {
text: "SIFIRLA\nHEPSİNİ",
color: 0x2f2f2f,
outcome: "reset"
}, {
text: "4 KATINA\nÇIKAR",
color: 0x9932cc,
outcome: "quadruple"
}];
// Create wheel
var wheelContainer = new Container();
wheelContainer.x = 1024;
wheelContainer.y = 900;
game.addChild(wheelContainer);
var wheelBase = wheelContainer.attachAsset('wheel', {
anchorX: 0.5,
anchorY: 0.5
});
// Create segments
var segmentContainers = [];
for (var i = 0; i < 8; i++) {
var angle = i * Math.PI * 2 / 8;
var segment = new WheelSegment(i, segments[i].text, segments[i].color);
segment.x = Math.cos(angle - Math.PI / 2) * 270;
segment.y = Math.sin(angle - Math.PI / 2) * 270;
segment.rotation = angle;
wheelContainer.addChild(segment);
segmentContainers.push(segment);
}
// Create wheel center
var wheelCenter = wheelContainer.attachAsset('wheelCenter', {
anchorX: 0.5,
anchorY: 0.5
});
// Create pointer
var pointer = game.attachAsset('pointer', {
anchorX: 0.5,
anchorY: 1.0,
x: 1024,
y: 650
});
// Create UI elements
var printCoins = storage.printCoins || 0;
var printCoinValue = storage.printCoinValue || 10;
var printValueChart = [];
var chartUpdateTimer = 0;
var svCasesOpened = storage.svCasesOpened || 0;
var riskLevel = storage.riskLevel || 0;
// Cheat system variables
var cheatActive = false;
var cheatInput = "";
var cheatPassword = "12345678900987654321tıkla1029384756";
var goldText = new Text2("Altın: 50", {
size: 80,
fill: 0xFFD700
});
goldText.anchor.set(0.5, 0);
goldText.x = 824;
goldText.y = 50;
game.addChild(goldText);
var printCoinsText = new Text2("Print: 0", {
size: 80,
fill: 0x9932CC
});
printCoinsText.anchor.set(0.5, 0);
printCoinsText.x = 1224;
printCoinsText.y = 50;
game.addChild(printCoinsText);
var betText = new Text2("Bahis: 10", {
size: 70,
fill: 0xFFFFFF
});
betText.anchor.set(0.5, 0);
betText.x = 1024;
betText.y = 150;
game.addChild(betText);
var betDisplayText = new Text2("10", {
size: 120,
fill: 0xFFD700
});
betDisplayText.anchor.set(0.5, 0);
betDisplayText.x = 1024;
betDisplayText.y = 250;
game.addChild(betDisplayText);
var spinButton = game.attachAsset('spinButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1600
});
var spinButtonText = new Text2("ÇARKI ÇEVİR", {
size: 48,
fill: 0xFFFFFF
});
spinButtonText.anchor.set(0.5, 0.5);
spinButtonText.x = 1024;
spinButtonText.y = 1600;
game.addChild(spinButtonText);
// Multi-spin counter UI
var multiSpinCount = 1;
var multiSpinDisplay = new Text2("1", {
size: 60,
fill: 0xFFFFFF
});
multiSpinDisplay.anchor.set(0.5, 0.5);
multiSpinDisplay.x = 1024;
multiSpinDisplay.y = 1720;
game.addChild(multiSpinDisplay);
var multiSpinDownButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 900,
y: 1720
});
var multiSpinDownText = new Text2("-", {
size: 40,
fill: 0xFFFFFF
});
multiSpinDownText.anchor.set(0.5, 0.5);
multiSpinDownText.x = 900;
multiSpinDownText.y = 1720;
game.addChild(multiSpinDownText);
var multiSpinUpButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1148,
y: 1720
});
var multiSpinUpText = new Text2("+", {
size: 40,
fill: 0xFFFFFF
});
multiSpinUpText.anchor.set(0.5, 0.5);
multiSpinUpText.x = 1148;
multiSpinUpText.y = 1720;
game.addChild(multiSpinUpText);
// Bet adjustment buttons
var betUpButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 900,
y: 420
});
var betUpText = new Text2("+10", {
size: 40,
fill: 0xFFFFFF
});
betUpText.anchor.set(0.5, 0.5);
betUpText.x = 900;
betUpText.y = 420;
game.addChild(betUpText);
var betDownButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1148,
y: 420
});
var betDownText = new Text2("-10", {
size: 40,
fill: 0xFFFFFF
});
betDownText.anchor.set(0.5, 0.5);
betDownText.x = 1148;
betDownText.y = 420;
game.addChild(betDownText);
// Max bet button
var maxBetButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 800,
y: 520
});
var maxBetText = new Text2("MAX", {
size: 35,
fill: 0xFFFFFF
});
maxBetText.anchor.set(0.5, 0.5);
maxBetText.x = 800;
maxBetText.y = 520;
game.addChild(maxBetText);
// Min bet button
var minBetButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1248,
y: 520
});
var minBetText = new Text2("MIN", {
size: 35,
fill: 0xFFFFFF
});
minBetText.anchor.set(0.5, 0.5);
minBetText.x = 1248;
minBetText.y = 520;
game.addChild(minBetText);
// Loan button
var loanButton = game.attachAsset('spinButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 200,
y: 1900
});
var loanButtonText = new Text2("BORÇ AL", {
size: 48,
fill: 0xFFFFFF
});
loanButtonText.anchor.set(0.5, 0.5);
loanButtonText.x = 200;
loanButtonText.y = 1900;
game.addChild(loanButtonText);
// Loan amount input buttons
var loanAmountDisplay = new Text2("10", {
size: 60,
fill: 0xFFD700
});
loanAmountDisplay.anchor.set(0.5, 0.5);
loanAmountDisplay.x = 200;
loanAmountDisplay.y = 2000;
game.addChild(loanAmountDisplay);
var loanDownButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 100,
y: 2000
});
var loanDownText = new Text2("-", {
size: 40,
fill: 0xFFFFFF
});
loanDownText.anchor.set(0.5, 0.5);
loanDownText.x = 100;
loanDownText.y = 2000;
game.addChild(loanDownText);
var loanUpButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 300,
y: 2000
});
var loanUpText = new Text2("+", {
size: 40,
fill: 0xFFFFFF
});
loanUpText.anchor.set(0.5, 0.5);
loanUpText.x = 300;
loanUpText.y = 2000;
game.addChild(loanUpText);
// Loan repay button
var repayButton = game.attachAsset('spinButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 200,
y: 2100
});
var repayButtonText = new Text2("BORÇ ÖDE", {
size: 48,
fill: 0xFFFFFF
});
repayButtonText.anchor.set(0.5, 0.5);
repayButtonText.x = 200;
repayButtonText.y = 2100;
game.addChild(repayButtonText);
// Loan status display
var loanStatusText = new Text2("", {
size: 50,
fill: 0xFF4444
});
loanStatusText.anchor.set(0.5, 0.5);
loanStatusText.x = 200;
loanStatusText.y = 2200;
game.addChild(loanStatusText);
// Loan timer display
var loanTimerText = new Text2("", {
size: 45,
fill: 0xFFAA00
});
loanTimerText.anchor.set(0.5, 0.5);
loanTimerText.x = 200;
loanTimerText.y = 2250;
game.addChild(loanTimerText);
// Message display
var messageText = new Text2("", {
size: 64,
fill: 0xFFFF00
});
messageText.anchor.set(0.5, 0.5);
messageText.x = 1024;
messageText.y = 1800;
game.addChild(messageText);
// Transaction history
var transactionHistory = [];
var historyContainer = new Container();
historyContainer.x = 100;
historyContainer.y = 400;
game.addChild(historyContainer);
var historyTitle = new Text2("İŞLEM GEÇMİŞİ:", {
size: 40,
fill: 0xFFFFFF
});
historyTitle.anchor.set(0, 0);
historyTitle.x = 0;
historyTitle.y = 0;
historyContainer.addChild(historyTitle);
function addTransaction(amount, description) {
transactionHistory.unshift({
amount: amount,
description: description
});
if (transactionHistory.length > 8) {
transactionHistory.pop();
}
updateHistoryDisplay();
}
function updateHistoryDisplay() {
// Clear existing history texts
for (var i = historyContainer.children.length - 1; i > 0; i--) {
historyContainer.removeChild(historyContainer.children[i]);
}
// Add new history entries
for (var i = 0; i < transactionHistory.length; i++) {
var entry = transactionHistory[i];
var color = entry.amount >= 0 ? "#00FF00" : "#FF0000";
var sign = entry.amount >= 0 ? "+" : "";
var historyText = new Text2(sign + entry.amount + " - " + entry.description, {
size: 30,
fill: color
});
historyText.anchor.set(0, 0);
historyText.x = 0;
historyText.y = 50 + i * 35;
historyContainer.addChild(historyText);
}
}
function updateGoldDisplay() {
goldText.setText("Altın: " + playerGold);
betText.setText("Bahis: " + currentBet);
betDisplayText.setText(currentBet.toString());
printCoinsText.setText("Print: " + printCoins);
storage.printCoins = printCoins;
storage.printCoinValue = printCoinValue;
storage.svCasesOpened = svCasesOpened;
storage.riskLevel = riskLevel;
// Check for jumpscare condition at -200 gold
if (playerGold <= -200) {
triggerJumpscare();
}
}
function showMessage(text) {
messageText.setText(text);
LK.setTimeout(function () {
messageText.setText("");
}, 3000);
}
function spinWheel() {
if (isSpinning) return;
// Check if player has enough gold for all spins
var totalCost = currentBet * multiSpinCount;
if (playerGold < totalCost) {
showMessage("Yeterli altının yok!");
return;
}
// Deduct total cost upfront for all spins
playerGold -= totalCost;
addTransaction(-totalCost, "Toplam Bahis (" + multiSpinCount + "x)");
updateGoldDisplay();
isSpinning = true;
currentSpinNumber = 0;
performSingleSpin();
}
function performSingleSpin() {
LK.getSound('spin').play();
var spins = 8 + Math.random() * 6;
var finalAngle = Math.random() * Math.PI * 2;
var totalRotation = spins * Math.PI * 2 + finalAngle;
tween(wheelContainer, {
rotation: wheelContainer.rotation + totalRotation
}, {
duration: 8000,
easing: tween.easeOut,
onFinish: function onFinish() {
var segmentAngle = Math.PI * 2 / 8;
var normalizedAngle = (finalAngle + Math.PI / 2) % (Math.PI * 2);
var segmentIndex = Math.floor(normalizedAngle / segmentAngle);
segmentIndex = (8 - segmentIndex) % 8;
handleWheelResult(segmentIndex);
currentSpinNumber++;
// Continue multi-spin if not finished, vault mode will be handled separately
if (currentSpinNumber < multiSpinCount && !vaultMode) {
LK.setTimeout(function () {
performSingleSpin();
}, 500);
} else if (currentSpinNumber >= multiSpinCount) {
isSpinning = false;
}
}
});
}
function handleWheelResult(segmentIndex) {
var outcome = segments[segmentIndex].outcome;
switch (outcome) {
case "win40":
playerGold += 40;
addTransaction(40, "40 Altın Kazan");
LK.getSound('win').play();
showMessage("40 altın kazandın!");
break;
case "doubleOrNothing":
playerGold -= 10;
addTransaction(-10, "İkiye Katla Girişi");
updateGoldDisplay();
showMessage("İkiye katla ya da kaybım! Otomatik çevriliyor...");
LK.setTimeout(function () {
if (Math.random() < 0.5) {
playerGold += 40;
addTransaction(40, "İkiye Katla Kazandı");
LK.getSound('win').play();
showMessage("İkiye katla KAZANDIN! +40 altın!");
} else {
playerGold -= 20;
addTransaction(-20, "İkiye Katla Kaybetti");
LK.getSound('lose').play();
showMessage("İkiye katla KAYBETTİN! -20 altın!");
}
updateGoldDisplay();
}, 1000);
return;
case "doubleBet":
var winAmount = currentBet * 2;
playerGold += winAmount;
addTransaction(winAmount, "Bahis 2 Katı");
LK.getSound('win').play();
showMessage("Bahisin 2 katını kazandın! +" + winAmount + " altın!");
break;
case "loseBet":
addTransaction(0, "Bahis Kaybetti");
LK.getSound('lose').play();
showMessage("Bahsini kaybettin! -" + currentBet + " altın!");
break;
case "superVault":
playerGold += 8000;
addTransaction(8000, "Süper Kasa Jackpot");
LK.getSound('win').play();
showMessage("BÜYÜK İKRAMİYE! +8000 ALTIN!");
break;
case "bankruptcy":
playerGold -= 100;
addTransaction(-100, "Haciz Cezası");
LK.getSound('lose').play();
showMessage("Haciz cezası! -100 altın!");
break;
case "reset":
var lostAmount = playerGold;
playerGold = 0;
addTransaction(-lostAmount, "Tümü Sıfırlandı");
LK.getSound('lose').play();
showMessage("Tüm paran sıfırlandı!");
break;
case "quadruple":
var oldGold = playerGold;
playerGold *= 4;
var gainAmount = playerGold - oldGold;
addTransaction(gainAmount, "4X Çarpan");
LK.getSound('win').play();
showMessage("4X ÇARPAN! Tüm paran 4 katına çıktı!");
break;
}
updateGoldDisplay();
}
// Event handlers
spinButton.down = function (x, y, obj) {
spinWheel();
};
betUpButton.down = function (x, y, obj) {
if (currentBet < 10000) {
currentBet += 10;
updateGoldDisplay();
}
};
betDownButton.down = function (x, y, obj) {
if (currentBet > 10) {
currentBet -= 10;
updateGoldDisplay();
}
};
multiSpinUpButton.down = function (x, y, obj) {
if (multiSpinCount < 50) {
multiSpinCount += 1;
multiSpinDisplay.setText(multiSpinCount.toString());
}
};
multiSpinDownButton.down = function (x, y, obj) {
if (multiSpinCount > 1) {
multiSpinCount -= 1;
multiSpinDisplay.setText(multiSpinCount.toString());
}
};
maxBetButton.down = function (x, y, obj) {
// Set bet to maximum affordable amount or 10000 (whichever is lower)
var maxAffordable = Math.floor(playerGold / multiSpinCount) * 10;
maxAffordable = Math.floor(maxAffordable / 10) * 10; // Round down to nearest 10
currentBet = Math.min(maxAffordable, 10000);
if (currentBet < 10) currentBet = 10;
updateGoldDisplay();
};
minBetButton.down = function (x, y, obj) {
currentBet = 10;
updateGoldDisplay();
};
var loanAmountToTake = 10;
loanAmountDisplay.setText(loanAmountToTake.toString());
loanButton.down = function (x, y, obj) {
takeLoan(loanAmountToTake);
};
loanUpButton.down = function (x, y, obj) {
if (loanAmountToTake < 500) {
loanAmountToTake += 10;
loanAmountDisplay.setText(loanAmountToTake.toString());
}
};
loanDownButton.down = function (x, y, obj) {
if (loanAmountToTake > 10) {
loanAmountToTake -= 10;
loanAmountDisplay.setText(loanAmountToTake.toString());
}
};
repayButton.down = function (x, y, obj) {
repayLoan(loanAmountToTake);
};
function updateLoanDisplay() {
if (loanAmount > 0) {
loanStatusText.setText("Borç: " + loanAmount);
var currentTime = Date.now();
var timeElapsed = currentTime - loanStartTime;
var timeLeft = Math.max(0, 300000 - timeElapsed); // 5 minutes = 300000ms
if (timeLeft > 0) {
var minutes = Math.floor(timeLeft / 60000);
var seconds = Math.floor(timeLeft % 60000 / 1000);
loanTimerText.setText("Süre: " + minutes + ":" + (seconds < 10 ? "0" : "") + seconds);
loanTimeRemaining = timeLeft;
} else {
loanTimerText.setText("Süre Doldu!");
if (loanTimerActive) {
// Game over due to unpaid loan
showMessage("Borcu zamanında ödemedin! Oyun bitti!");
LK.setTimeout(function () {
LK.showGameOver();
}, 2000);
}
}
} else {
loanStatusText.setText("");
loanTimerText.setText("");
}
}
function takeLoan(amount) {
if (loanAmount > 0) {
showMessage("Zaten borcun var!");
return;
}
if (amount < 10 || amount > 500) {
showMessage("Borç miktarı 10-500 arası olmalı!");
return;
}
loanAmount = amount;
loanStartTime = Date.now();
loanTimerActive = true;
playerGold += amount;
// Save to storage
storage.loanAmount = loanAmount;
storage.loanStartTime = loanStartTime;
addTransaction(amount, "Borç Alındı");
updateGoldDisplay();
updateLoanDisplay();
showMessage(amount + " altın borç aldın! 5 dakikan var!");
}
function repayLoan(amount) {
if (loanAmount <= 0) {
showMessage("Borcun yok!");
return;
}
if (playerGold < amount) {
showMessage("Yeterli altının yok!");
return;
}
var repayAmount = Math.min(amount, loanAmount);
playerGold -= repayAmount;
loanAmount -= repayAmount;
// Save to storage
storage.loanAmount = loanAmount;
if (loanAmount <= 0) {
storage.loanStartTime = 0;
loanTimerActive = false;
}
addTransaction(-repayAmount, "Borç Ödendi");
updateGoldDisplay();
updateLoanDisplay();
if (loanAmount <= 0) {
showMessage("Tüm borcunu ödedin!");
} else {
showMessage(repayAmount + " altın ödendi! Kalan borç: " + loanAmount);
}
}
function startCaseGame() {
if (playerGold < 250) {
showMessage("Kasa için 250 altın gerekli!");
return;
}
playerGold -= 250;
addTransaction(-250, "Kasa LV1 Açıldı");
updateGoldDisplay();
caseActive = true;
caseWinnings = 0;
showingCaseResult = false;
// Hide main wheel
tween(wheelContainer, {
alpha: 0
}, {
duration: 500
});
tween(pointer, {
alpha: 0
}, {
duration: 500
});
// Show case wheel
caseWheelContainer.visible = true;
casePointer.visible = true;
caseWinningsText.visible = true;
updateCaseWinningsDisplay();
showMessage("Kasa açıldı! Çark otomatik olarak dönüyor...");
// Auto spin after 1 second
LK.setTimeout(function () {
spinCaseWheel();
}, 1000);
}
function spinCaseWheel() {
if (caseSpinning) return;
caseSpinning = true;
LK.getSound('spin').play();
var spins = 6 + Math.random() * 4;
var finalAngle = Math.random() * Math.PI * 2;
var totalRotation = spins * Math.PI * 2 + finalAngle;
tween(caseWheelContainer, {
rotation: caseWheelContainer.rotation + totalRotation
}, {
duration: 6000,
easing: tween.easeOut,
onFinish: function onFinish() {
var segmentAngle = Math.PI * 2 / 6;
var normalizedAngle = (finalAngle + Math.PI / 2) % (Math.PI * 2);
var segmentIndex = Math.floor(normalizedAngle / segmentAngle);
segmentIndex = (6 - segmentIndex) % 6;
handleCaseResult(segmentIndex);
caseSpinning = false;
}
});
}
function handleCaseResult(segmentIndex) {
var outcome = caseSegments[segmentIndex].outcome;
switch (outcome) {
case "win10":
caseWinnings += 10;
LK.getSound('win').play();
showMessage("Kasadan 10 altın kazandın!");
break;
case "win20":
caseWinnings += 20;
LK.getSound('win').play();
showMessage("Kasadan 20 altın kazandın!");
break;
case "win30":
caseWinnings += 30;
LK.getSound('win').play();
showMessage("Kasadan 30 altın kazandın!");
break;
case "win40":
caseWinnings += 40;
LK.getSound('win').play();
showMessage("Kasadan 40 altın kazandın!");
break;
case "win50":
caseWinnings += 50;
LK.getSound('win').play();
showMessage("Kasadan 50 altın kazandın!");
break;
case "lose":
LK.getSound('lose').play();
showMessage("Kaybettin! Tüm kasa kazançları ve -20 altın!");
// Lose all case winnings and -20 from main balance
playerGold -= 20;
addTransaction(-20, "Kasa Kaybı Cezası");
addTransaction(-caseWinnings, "Kasa Kazançları Kaybedildi");
caseWinnings = 0;
updateGoldDisplay();
// End case game
LK.setTimeout(function () {
endCaseGame();
}, 2000);
return;
}
updateCaseWinningsDisplay();
showingCaseResult = true;
// Show withdraw/continue options
LK.setTimeout(function () {
withdrawButton.visible = true;
withdrawButtonText.visible = true;
continueButton.visible = true;
continueButtonText.visible = true;
showMessage("Kazançları çek veya devam et!");
}, 2000);
}
function updateCaseWinningsDisplay() {
caseWinningsText.setText("Kasa Kazançları: " + caseWinnings);
}
function withdrawCaseWinnings() {
if (caseWinnings > 0) {
playerGold += caseWinnings;
addTransaction(caseWinnings, "Kasa Kazançları Çekildi");
showMessage("Tüm kazançlarınızla ayrıldınız! +" + caseWinnings + " altın!");
updateGoldDisplay();
}
endCaseGame();
}
function continueCaseGame() {
showingCaseResult = false;
withdrawButton.visible = false;
withdrawButtonText.visible = false;
continueButton.visible = false;
continueButtonText.visible = false;
showMessage("Devam ediyorsunuz! Çark tekrar dönüyor...");
// Auto spin after 1 second
LK.setTimeout(function () {
spinCaseWheel();
}, 1000);
}
function endCaseGame() {
caseActive = false;
caseWinnings = 0;
showingCaseResult = false;
// Hide case UI
caseWheelContainer.visible = false;
casePointer.visible = false;
caseWinningsText.visible = false;
withdrawButton.visible = false;
withdrawButtonText.visible = false;
continueButton.visible = false;
continueButtonText.visible = false;
// Reset case wheel rotation
caseWheelContainer.rotation = 0;
// Show main wheel again
tween(wheelContainer, {
alpha: 1
}, {
duration: 500
});
tween(pointer, {
alpha: 1
}, {
duration: 500
});
}
function startSvCaseGame() {
if (playerGold < 1000) {
showMessage("SV Kasa için 1000 altın gerekli!");
return;
}
if (svCasesOpened < 3) {
showMessage("3 SV kasa açmalısın! Açılan: " + svCasesOpened);
return;
}
if (riskLevel < 10000) {
showMessage("10000 risk seviyesi gerekli!");
return;
}
// Check if this is the 3rd SV case opening
if (svCasesOpened >= 3) {
startSv3CaseGame();
return;
}
playerGold -= 1000;
addTransaction(-1000, "SV Kasa Açıldı");
updateGoldDisplay();
svCaseActive = true;
svCaseWinnings = 0;
showingSvCaseResult = false;
multiplierWheelActive = false;
currentMultiplier = 1;
// Hide main wheel
tween(wheelContainer, {
alpha: 0
}, {
duration: 500
});
tween(pointer, {
alpha: 0
}, {
duration: 500
});
// Show SV case wheel
svCaseWheelContainer.visible = true;
svCasePointer.visible = true;
svCaseWinningsText.visible = true;
updateSvCaseWinningsDisplay();
showMessage("SV Kasa açıldı! Çark otomatik olarak dönüyor...");
// Auto spin after 1 second
LK.setTimeout(function () {
spinSvCaseWheel();
}, 1000);
}
function spinSvCaseWheel() {
if (svCaseSpinning) return;
svCaseSpinning = true;
LK.getSound('spin').play();
var spins = 6 + Math.random() * 4;
var finalAngle = Math.random() * Math.PI * 2;
var totalRotation = spins * Math.PI * 2 + finalAngle;
tween(svCaseWheelContainer, {
rotation: svCaseWheelContainer.rotation + totalRotation
}, {
duration: 6000,
easing: tween.easeOut,
onFinish: function onFinish() {
var segmentAngle = Math.PI * 2 / 6;
var normalizedAngle = (finalAngle + Math.PI / 2) % (Math.PI * 2);
var segmentIndex = Math.floor(normalizedAngle / segmentAngle);
segmentIndex = (6 - segmentIndex) % 6;
handleSvCaseResult(segmentIndex);
svCaseSpinning = false;
}
});
}
function handleSvCaseResult(segmentIndex) {
var outcome = svCaseSegments[segmentIndex].outcome;
var printCoinsWon = 0;
switch (outcome) {
case "win50":
printCoinsWon = 50;
break;
case "win100":
printCoinsWon = 100;
break;
case "win200":
printCoinsWon = 200;
break;
case "win500":
printCoinsWon = 500;
break;
case "win800":
printCoinsWon = 800;
break;
case "win1000":
printCoinsWon = 1000;
break;
}
svCaseWinnings += printCoinsWon;
printCoins += printCoinsWon;
LK.getSound('win').play();
showMessage("SV Kasadan " + printCoinsWon + " print coin kazandın!");
updateSvCaseWinningsDisplay();
updateGoldDisplay();
// Activate multiplier wheel
multiplierWheelActive = true;
multiplierWheelContainer.visible = true;
multiplierPointer.visible = true;
showMessage("Multiplier çarkı dönüyor!");
LK.setTimeout(function () {
spinMultiplierWheel();
}, 2000);
}
function spinMultiplierWheel() {
if (multiplierSpinning) return;
multiplierSpinning = true;
LK.getSound('spin').play();
var spins = 5 + Math.random() * 3;
var finalAngle = Math.random() * Math.PI * 2;
var totalRotation = spins * Math.PI * 2 + finalAngle;
tween(multiplierWheelContainer, {
rotation: multiplierWheelContainer.rotation + totalRotation
}, {
duration: 5000,
easing: tween.easeOut,
onFinish: function onFinish() {
var segmentAngle = Math.PI * 2 / 7;
var normalizedAngle = (finalAngle + Math.PI / 2) % (Math.PI * 2);
var segmentIndex = Math.floor(normalizedAngle / segmentAngle);
segmentIndex = (7 - segmentIndex) % 7;
handleMultiplierResult(segmentIndex);
multiplierSpinning = false;
}
});
}
function handleMultiplierResult(segmentIndex) {
var multiplier = multiplierSegments[segmentIndex].multiplier;
currentMultiplier = multiplier;
var finalWinnings = 0;
if (multiplier > 0) {
finalWinnings = svCaseWinnings * multiplier;
LK.getSound('win').play();
showMessage("Multiplier " + multiplier + "X! Toplam kazanç: " + finalWinnings + " altın!");
} else {
finalWinnings = svCaseWinnings * Math.abs(multiplier);
finalWinnings = -finalWinnings;
LK.getSound('lose').play();
showMessage("Negatif multiplier " + multiplier + "X! Kayıp: " + Math.abs(finalWinnings) + " altın!");
}
// Convert print coins to gold and apply multiplier
playerGold += finalWinnings;
addTransaction(finalWinnings, "SV Kasa Multiplier " + multiplier + "X");
updateGoldDisplay();
// End SV case game
LK.setTimeout(function () {
endSvCaseGame();
}, 3000);
}
function updateSvCaseWinningsDisplay() {
svCaseWinningsText.setText("Print Coins: " + svCaseWinnings);
}
function endSvCaseGame() {
svCaseActive = false;
svCaseWinnings = 0;
showingSvCaseResult = false;
multiplierWheelActive = false;
currentMultiplier = 1;
svCasesOpened++;
// Hide SV case UI
svCaseWheelContainer.visible = false;
svCasePointer.visible = false;
svCaseWinningsText.visible = false;
multiplierWheelContainer.visible = false;
multiplierPointer.visible = false;
// Reset wheel rotations
svCaseWheelContainer.rotation = 0;
multiplierWheelContainer.rotation = 0;
// Show main wheel again
tween(wheelContainer, {
alpha: 1
}, {
duration: 500
});
tween(pointer, {
alpha: 1
}, {
duration: 500
});
}
function startSv3CaseGame() {
playerGold -= 1000;
addTransaction(-1000, "SV3 Kasa Açıldı");
updateGoldDisplay();
sv3CaseActive = true;
sv3RiskGraphActive = true;
sv3RiskWheelActive = false;
// Hide main wheel
tween(wheelContainer, {
alpha: 0
}, {
duration: 500
});
tween(pointer, {
alpha: 0
}, {
duration: 500
});
// Show risk graph
sv3RiskGraphContainer.visible = true;
riskCoinsText.visible = true;
updateRiskCoinsDisplay();
showMessage("SV3 Kasa açıldı! Risk grafik sistemi aktif!");
}
function showSv3RiskWheel() {
sv3RiskGraphActive = false;
sv3RiskWheelActive = true;
sv3RiskGraphContainer.visible = false;
// Show SV3 risk wheel
sv3RiskWheelContainer.visible = true;
sv3RiskPointer.visible = true;
showMessage("Risk çarkı dönüyor!");
LK.setTimeout(function () {
spinSv3RiskWheel();
}, 1000);
}
function spinSv3RiskWheel() {
if (sv3RiskSpinning) return;
sv3RiskSpinning = true;
LK.getSound('spin').play();
var spins = 6 + Math.random() * 4;
var finalAngle = Math.random() * Math.PI * 2;
var totalRotation = spins * Math.PI * 2 + finalAngle;
tween(sv3RiskWheelContainer, {
rotation: sv3RiskWheelContainer.rotation + totalRotation
}, {
duration: 6000,
easing: tween.easeOut,
onFinish: function onFinish() {
var segmentAngle = Math.PI * 2 / 6;
var normalizedAngle = (finalAngle + Math.PI / 2) % (Math.PI * 2);
var segmentIndex = Math.floor(normalizedAngle / segmentAngle);
segmentIndex = (6 - segmentIndex) % 6;
handleSv3RiskResult(segmentIndex);
sv3RiskSpinning = false;
}
});
}
function handleSv3RiskResult(segmentIndex) {
var outcome = sv3RiskSegments[segmentIndex].outcome;
var riskCoinsWon = 0;
switch (outcome) {
case "risk20":
riskCoinsWon = 20;
break;
case "risk30":
riskCoinsWon = 30;
break;
case "risk40":
riskCoinsWon = 40;
break;
case "risk100":
riskCoinsWon = 100;
break;
case "risk200":
riskCoinsWon = 200;
break;
case "risk999999":
riskCoinsWon = 999999;
break;
}
riskCoins += riskCoinsWon;
storage.riskCoins = riskCoins;
LK.getSound('win').play();
showMessage("SV3 Kasadan " + riskCoinsWon + " risk coin kazandın!");
updateRiskCoinsDisplay();
// End SV3 case game
LK.setTimeout(function () {
endSv3CaseGame();
}, 3000);
}
function updateRiskCoinsDisplay() {
riskCoinsText.setText("Risk Coins: " + riskCoins + " (Değer: " + Math.floor(riskCoinValue) + ")");
}
function endSv3CaseGame() {
sv3CaseActive = false;
sv3RiskGraphActive = false;
sv3RiskWheelActive = false;
svCasesOpened++;
// Hide SV3 case UI
sv3RiskGraphContainer.visible = false;
sv3RiskWheelContainer.visible = false;
sv3RiskPointer.visible = false;
riskCoinsText.visible = false;
// Reset wheel rotation
sv3RiskWheelContainer.rotation = 0;
// Show main wheel again
tween(wheelContainer, {
alpha: 1
}, {
duration: 500
});
tween(pointer, {
alpha: 1
}, {
duration: 500
});
}
function updateRiskValue() {
// Random price movement for risk coins
var change = (Math.random() - 0.5) * 8;
riskCoinValue += change;
if (riskCoinValue < 10) riskCoinValue = 10;
if (riskCoinValue > 200) riskCoinValue = 200;
storage.riskCoinValue = riskCoinValue;
updateRiskCoinsDisplay();
}
function updatePrintValue() {
// Random price movement
var change = (Math.random() - 0.5) * 4;
printCoinValue += change;
if (printCoinValue < 1) printCoinValue = 1;
if (printCoinValue > 100) printCoinValue = 100;
printValueText.setText("Değer: " + Math.floor(printCoinValue));
updateValueChart();
}
function updateValueChart() {
chartUpdateTimer++;
if (chartUpdateTimer >= 60) {
// Update every second
printValueChart.push(printCoinValue);
if (printValueChart.length > 50) {
printValueChart.shift();
}
chartUpdateTimer = 0;
}
}
function sellPrintCoins() {
if (printCoins <= 0) {
showMessage("Satacak print coin yok!");
return;
}
var sellValue = Math.floor(printCoinValue * printCoins);
playerGold += sellValue;
addTransaction(sellValue, "Print Coin Satışı (" + printCoins + ")");
printCoins = 0;
updateGoldDisplay();
showMessage("Tüm print coinler satıldı! +" + sellValue + " altın!");
}
function buyPrintCoins(amount) {
if (playerGold < amount * printCoinValue) {
showMessage("Yeterli altın yok!");
return;
}
var cost = Math.floor(amount * printCoinValue);
playerGold -= cost;
printCoins += amount;
addTransaction(-cost, "Print Coin Alımı (" + amount + ")");
updateGoldDisplay();
showMessage(amount + " print coin satın alındı! -" + cost + " altın!");
}
function riskTrade() {
if (printCoins <= 0) {
showMessage("Risk alabilmek için print coin gerekli!");
return;
}
// Risk with 60% chance of increase
var riskChance = Math.random();
var changePercent = Math.random() * 20 + 10; // 10-30% change
var oldValue = printCoinValue;
if (riskChance <= 0.6) {
// 60% chance of increase
printCoinValue += printCoinValue * (changePercent / 100);
LK.getSound('win').play();
showMessage("Risk başarılı! Print değeri arttı: +" + Math.floor(changePercent) + "%");
} else {
// 40% chance of decrease
printCoinValue -= printCoinValue * (changePercent / 100);
if (printCoinValue < 1) printCoinValue = 1;
LK.getSound('lose').play();
showMessage("Risk başarısız! Print değeri düştü: -" + Math.floor(changePercent) + "%");
}
storage.printCoinValue = printCoinValue;
updateGoldDisplay();
}
function upgradeRisk() {
if (playerGold < 500) {
showMessage("Risk yükseltmek için 500 altın gerekli!");
return;
}
playerGold -= 500;
riskLevel += 1000;
addTransaction(-500, "Risk Yükseltme");
updateGoldDisplay();
showMessage("Risk seviyesi yükseltildi! Yeni seviye: " + riskLevel);
}
function activateCheat() {
cheatActive = true;
cheatInput = "";
cheatInputText.visible = true;
cheatCircle.alpha = 0.8;
showMessage("Şifre girin...");
}
function deactivateCheat() {
cheatActive = false;
cheatInput = "";
cheatInputText.visible = false;
cheatInputText.setText("");
cheatCircle.alpha = 1.0;
}
function addCheatInput(_char) {
if (!cheatActive) return;
cheatInput += _char;
cheatInputText.setText("Şifre: " + cheatInput.substring(0, 20) + (cheatInput.length > 20 ? "..." : ""));
if (cheatInput === cheatPassword) {
// Grant rewards
playerGold += 9999999;
printCoins += 9999999;
addTransaction(9999999, "Cheat Altın");
addTransaction(9999999, "Cheat Print Coins");
updateGoldDisplay();
showMessage("CHEAT AKTIF! +9999999 Altın ve Print Coin!");
deactivateCheat();
} else if (cheatInput.length >= cheatPassword.length) {
showMessage("Yanlış şifre!");
deactivateCheat();
}
}
function triggerJumpscare() {
// Create black overlay
var blackOverlay = game.attachAsset('segment', {
anchorX: 0,
anchorY: 0,
x: 0,
y: 0,
scaleX: 10,
scaleY: 30
});
blackOverlay.tint = 0x000000;
// Create spotlight effect (white circle)
var spotlight = game.attachAsset('wheel', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1366,
scaleX: 0.5,
scaleY: 0.5
});
spotlight.tint = 0xffffff;
spotlight.alpha = 0.8;
// Create jumpscare man (red figure)
var jumpscareMan = game.attachAsset('segment', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1366,
scaleX: 3,
scaleY: 8
});
jumpscareMan.tint = 0xff0000;
jumpscareMan.alpha = 0;
// Animate spotlight flickering
tween(spotlight, {
alpha: 0.3
}, {
duration: 200,
onFinish: function onFinish() {
tween(spotlight, {
alpha: 0.8
}, {
duration: 200,
onFinish: function onFinish() {
// Show jumpscare man suddenly
jumpscareMan.alpha = 1;
tween(jumpscareMan, {
scaleX: 5,
scaleY: 12
}, {
duration: 300,
easing: tween.easeOut,
onFinish: function onFinish() {
// End game after jumpscare
LK.setTimeout(function () {
LK.showGameOver();
}, 1000);
}
});
}
});
}
});
}
// Case system UI
var caseButton = game.attachAsset('caseButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 200,
y: 700
});
var caseButtonText = new Text2("KASA LV1\n250 ALTIN", {
size: 36,
fill: 0xFFFFFF
});
caseButtonText.anchor.set(0.5, 0.5);
caseButtonText.x = 200;
caseButtonText.y = 700;
game.addChild(caseButtonText);
// Case wheel (hidden initially)
var caseWheelContainer = new Container();
caseWheelContainer.x = 1024;
caseWheelContainer.y = 1366;
caseWheelContainer.visible = false;
game.addChild(caseWheelContainer);
var caseWheelBase = caseWheelContainer.attachAsset('caseWheel', {
anchorX: 0.5,
anchorY: 0.5
});
// Create case segments
var caseSegmentContainers = [];
for (var i = 0; i < 6; i++) {
var angle = i * Math.PI * 2 / 6;
var segment = new Container();
var segmentGraphic = segment.attachAsset('caseSegment', {
anchorX: 0.5,
anchorY: 0.5
});
segmentGraphic.tint = caseSegments[i].color;
var segmentText = new Text2(caseSegments[i].text, {
size: 32,
fill: 0x000000
});
segmentText.anchor.set(0.5, 0.5);
segment.addChild(segmentText);
segment.x = Math.cos(angle - Math.PI / 2) * 200;
segment.y = Math.sin(angle - Math.PI / 2) * 200;
segment.rotation = angle;
caseWheelContainer.addChild(segment);
caseSegmentContainers.push(segment);
}
// Case wheel center
var caseWheelCenter = caseWheelContainer.attachAsset('wheelCenter', {
anchorX: 0.5,
anchorY: 0.5
});
// Case pointer
var casePointer = game.attachAsset('pointer', {
anchorX: 0.5,
anchorY: 1.0,
x: 1024,
y: 1100
});
casePointer.visible = false;
// Case winnings display
var caseWinningsText = new Text2("Kasa Kazançları: 0", {
size: 60,
fill: 0xFFD700
});
caseWinningsText.anchor.set(0.5, 0.5);
caseWinningsText.x = 1024;
caseWinningsText.y = 1500;
caseWinningsText.visible = false;
game.addChild(caseWinningsText);
// Withdraw and continue buttons (hidden initially)
var withdrawButton = game.attachAsset('withdrawButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 900,
y: 1600
});
withdrawButton.visible = false;
var withdrawButtonText = new Text2("ÇEK", {
size: 40,
fill: 0xFFFFFF
});
withdrawButtonText.anchor.set(0.5, 0.5);
withdrawButtonText.x = 900;
withdrawButtonText.y = 1600;
withdrawButtonText.visible = false;
game.addChild(withdrawButtonText);
var continueButton = game.attachAsset('continueButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1148,
y: 1600
});
continueButton.visible = false;
var continueButtonText = new Text2("DEVAM", {
size: 40,
fill: 0xFFFFFF
});
continueButtonText.anchor.set(0.5, 0.5);
continueButtonText.x = 1148;
continueButtonText.y = 1600;
continueButtonText.visible = false;
game.addChild(continueButtonText);
// Print coin trading UI
var sellPrintButton = game.attachAsset('spinButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1800,
y: 700
});
var sellPrintButtonText = new Text2("PRINT SAT", {
size: 36,
fill: 0xFFFFFF
});
sellPrintButtonText.anchor.set(0.5, 0.5);
sellPrintButtonText.x = 1800;
sellPrintButtonText.y = 700;
game.addChild(sellPrintButtonText);
var printValueText = new Text2("Değer: 10", {
size: 50,
fill: 0xFFD700
});
printValueText.anchor.set(0.5, 0.5);
printValueText.x = 1800;
printValueText.y = 600;
game.addChild(printValueText);
var buyPrintButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1650,
y: 800
});
var buyPrintButtonText = new Text2("PRINT AL", {
size: 30,
fill: 0xFFFFFF
});
buyPrintButtonText.anchor.set(0.5, 0.5);
buyPrintButtonText.x = 1650;
buyPrintButtonText.y = 800;
game.addChild(buyPrintButtonText);
var riskTradeButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1950,
y: 800
});
var riskTradeButtonText = new Text2("RİSK AL", {
size: 28,
fill: 0xFFD700
});
riskTradeButtonText.anchor.set(0.5, 0.5);
riskTradeButtonText.x = 1950;
riskTradeButtonText.y = 800;
game.addChild(riskTradeButtonText);
var riskUpgradeButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1800,
y: 900
});
var riskUpgradeButtonText = new Text2("RİSK +500", {
size: 30,
fill: 0xFFFFFF
});
riskUpgradeButtonText.anchor.set(0.5, 0.5);
riskUpgradeButtonText.x = 1800;
riskUpgradeButtonText.y = 900;
game.addChild(riskUpgradeButtonText);
// SV Case system UI
var svCaseButton = game.attachAsset('svCaseButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 200,
y: 850
});
var svCaseButtonText = new Text2("SV KASA\n1000 ALTIN\n(3 KASA)", {
size: 32,
fill: 0xFFFFFF
});
svCaseButtonText.anchor.set(0.5, 0.5);
svCaseButtonText.x = 200;
svCaseButtonText.y = 850;
game.addChild(svCaseButtonText);
// SV Case wheel (hidden initially)
var svCaseWheelContainer = new Container();
svCaseWheelContainer.x = 700;
svCaseWheelContainer.y = 1366;
svCaseWheelContainer.visible = false;
game.addChild(svCaseWheelContainer);
var svCaseWheelBase = svCaseWheelContainer.attachAsset('svCaseWheel', {
anchorX: 0.5,
anchorY: 0.5
});
// Create SV case segments
var svCaseSegmentContainers = [];
for (var i = 0; i < 6; i++) {
var angle = i * Math.PI * 2 / 6;
var segment = new Container();
var segmentGraphic = segment.attachAsset('svCaseSegment', {
anchorX: 0.5,
anchorY: 0.5
});
segmentGraphic.tint = svCaseSegments[i].color;
var segmentText = new Text2(svCaseSegments[i].text, {
size: 28,
fill: 0x000000
});
segmentText.anchor.set(0.5, 0.5);
segment.addChild(segmentText);
segment.x = Math.cos(angle - Math.PI / 2) * 200;
segment.y = Math.sin(angle - Math.PI / 2) * 200;
segment.rotation = angle;
svCaseWheelContainer.addChild(segment);
svCaseSegmentContainers.push(segment);
}
// SV Case wheel center
var svCaseWheelCenter = svCaseWheelContainer.attachAsset('wheelCenter', {
anchorX: 0.5,
anchorY: 0.5
});
// SV Case pointer
var svCasePointer = game.attachAsset('pointer', {
anchorX: 0.5,
anchorY: 1.0,
x: 700,
y: 1100
});
svCasePointer.visible = false;
// SV Case winnings display
var svCaseWinningsText = new Text2("Print Coins: 0", {
size: 50,
fill: 0x9932CC
});
svCaseWinningsText.anchor.set(0.5, 0.5);
svCaseWinningsText.x = 700;
svCaseWinningsText.y = 1500;
svCaseWinningsText.visible = false;
game.addChild(svCaseWinningsText);
// Multiplier wheel (hidden initially)
var multiplierWheelContainer = new Container();
multiplierWheelContainer.x = 1348;
multiplierWheelContainer.y = 1366;
multiplierWheelContainer.visible = false;
game.addChild(multiplierWheelContainer);
var multiplierWheelBase = multiplierWheelContainer.attachAsset('multiplierWheel', {
anchorX: 0.5,
anchorY: 0.5
});
// Create multiplier segments
var multiplierSegmentContainers = [];
for (var i = 0; i < 7; i++) {
var angle = i * Math.PI * 2 / 7;
var segment = new Container();
var segmentGraphic = segment.attachAsset('multiplierSegment', {
anchorX: 0.5,
anchorY: 0.5
});
segmentGraphic.tint = multiplierSegments[i].color;
var segmentText = new Text2(multiplierSegments[i].text, {
size: 24,
fill: 0x000000
});
segmentText.anchor.set(0.5, 0.5);
segment.addChild(segmentText);
segment.x = Math.cos(angle - Math.PI / 2) * 130;
segment.y = Math.sin(angle - Math.PI / 2) * 130;
segment.rotation = angle;
multiplierWheelContainer.addChild(segment);
multiplierSegmentContainers.push(segment);
}
// Multiplier wheel center
var multiplierWheelCenter = multiplierWheelContainer.attachAsset('wheelCenter', {
anchorX: 0.5,
anchorY: 0.5
});
// Multiplier pointer
var multiplierPointer = game.attachAsset('pointer', {
anchorX: 0.5,
anchorY: 1.0,
x: 1348,
y: 1200
});
multiplierPointer.visible = false;
// Case system event handlers
caseButton.down = function (x, y, obj) {
if (!caseActive && !isSpinning) {
startCaseGame();
}
};
// Print coin trading event handlers
sellPrintButton.down = function (x, y, obj) {
sellPrintCoins();
};
buyPrintButton.down = function (x, y, obj) {
buyPrintCoins(10);
};
riskTradeButton.down = function (x, y, obj) {
riskTrade();
};
riskUpgradeButton.down = function (x, y, obj) {
upgradeRisk();
};
// SV3 Risk graph container
var sv3RiskGraphContainer = new Container();
sv3RiskGraphContainer.x = 1024;
sv3RiskGraphContainer.y = 1000;
sv3RiskGraphContainer.visible = false;
game.addChild(sv3RiskGraphContainer);
var sv3RiskGraphBase = sv3RiskGraphContainer.attachAsset('riskGraph', {
anchorX: 0.5,
anchorY: 0.5
});
// SV3 Risk wheel container
var sv3RiskWheelContainer = new Container();
sv3RiskWheelContainer.x = 1024;
sv3RiskWheelContainer.y = 1366;
sv3RiskWheelContainer.visible = false;
game.addChild(sv3RiskWheelContainer);
var sv3RiskWheelBase = sv3RiskWheelContainer.attachAsset('sv3CaseWheel', {
anchorX: 0.5,
anchorY: 0.5
});
// Create SV3 risk segments
var sv3RiskSegmentContainers = [];
for (var i = 0; i < 6; i++) {
var angle = i * Math.PI * 2 / 6;
var segment = new Container();
var segmentGraphic = segment.attachAsset('sv3CaseSegment', {
anchorX: 0.5,
anchorY: 0.5
});
segmentGraphic.tint = sv3RiskSegments[i].color;
var segmentText = new Text2(sv3RiskSegments[i].text, {
size: 28,
fill: 0x000000
});
segmentText.anchor.set(0.5, 0.5);
segment.addChild(segmentText);
segment.x = Math.cos(angle - Math.PI / 2) * 200;
segment.y = Math.sin(angle - Math.PI / 2) * 200;
segment.rotation = angle;
sv3RiskWheelContainer.addChild(segment);
sv3RiskSegmentContainers.push(segment);
}
// SV3 Risk wheel center
var sv3RiskWheelCenter = sv3RiskWheelContainer.attachAsset('wheelCenter', {
anchorX: 0.5,
anchorY: 0.5
});
// SV3 Risk pointer
var sv3RiskPointer = game.attachAsset('pointer', {
anchorX: 0.5,
anchorY: 1.0,
x: 1024,
y: 1100
});
sv3RiskPointer.visible = false;
// Risk coins display
var riskCoinsText = new Text2("Risk Coins: 0", {
size: 50,
fill: 0xFF6347
});
riskCoinsText.anchor.set(0.5, 0.5);
riskCoinsText.x = 1024;
riskCoinsText.y = 800;
riskCoinsText.visible = false;
game.addChild(riskCoinsText);
// Graph continue button
var graphContinueButton = game.attachAsset('continueButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1300
});
graphContinueButton.visible = false;
var graphContinueButtonText = new Text2("ÇARK ÇEVİR", {
size: 40,
fill: 0xFFFFFF
});
graphContinueButtonText.anchor.set(0.5, 0.5);
graphContinueButtonText.x = 1024;
graphContinueButtonText.y = 1300;
graphContinueButtonText.visible = false;
game.addChild(graphContinueButtonText);
// Graph continue button event handler
graphContinueButton.down = function (x, y, obj) {
if (sv3RiskGraphActive) {
showSv3RiskWheel();
graphContinueButton.visible = false;
graphContinueButtonText.visible = false;
}
};
// SV Case system event handlers
svCaseButton.down = function (x, y, obj) {
if (!svCaseActive && !caseActive && !isSpinning && !sv3CaseActive) {
startSvCaseGame();
}
};
withdrawButton.down = function (x, y, obj) {
if (showingCaseResult) {
withdrawCaseWinnings();
}
};
continueButton.down = function (x, y, obj) {
if (showingCaseResult) {
continueCaseGame();
}
};
// Create cheat circle
var cheatCircle = game.attachAsset('cheatCircle', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 2700
});
// Cheat input display
var cheatInputText = new Text2("", {
size: 40,
fill: 0xFFFFFF
});
cheatInputText.anchor.set(0.5, 0.5);
cheatInputText.x = 1024;
cheatInputText.y = 2650;
cheatInputText.visible = false;
game.addChild(cheatInputText);
// Create surrender button
var surrenderButton = game.attachAsset('spinButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 2600
});
var surrenderButtonText = new Text2("TESLIM OL", {
size: 48,
fill: 0xFFFFFF
});
surrenderButtonText.anchor.set(0.5, 0.5);
surrenderButtonText.x = 1024;
surrenderButtonText.y = 2600;
game.addChild(surrenderButtonText);
// Cheat circle event handler
cheatCircle.down = function (x, y, obj) {
if (!cheatActive) {
activateCheat();
} else {
addCheatInput("1");
}
};
// Add number input handlers for the cheat system
game.down = function (x, y, obj) {
if (cheatActive) {
// Simple number mapping based on screen regions
var screenWidth = 2048;
var screenHeight = 2732;
var regionWidth = screenWidth / 10;
var regionHeight = screenHeight / 10;
var regionX = Math.floor(x / regionWidth);
var regionY = Math.floor(y / regionHeight);
// Map regions to numbers and letters
if (regionY >= 8) {
// Bottom area
if (regionX === 0) addCheatInput("1");else if (regionX === 1) addCheatInput("2");else if (regionX === 2) addCheatInput("3");else if (regionX === 3) addCheatInput("4");else if (regionX === 4) addCheatInput("5");else if (regionX === 5) addCheatInput("6");else if (regionX === 6) addCheatInput("7");else if (regionX === 7) addCheatInput("8");else if (regionX === 8) addCheatInput("9");else if (regionX === 9) addCheatInput("0");
} else if (regionY >= 6) {
// Middle area
if (regionX === 0) addCheatInput("t");else if (regionX === 1) addCheatInput("ı");else if (regionX === 2) addCheatInput("k");else if (regionX === 3) addCheatInput("l");else if (regionX === 4) addCheatInput("a");
}
}
};
// Surrender button event handler
surrenderButton.down = function (x, y, obj) {
// Reset game to initial state
playerGold = 50;
currentBet = 10;
isSpinning = false;
wheelRotation = 0;
vaultMode = false;
vaultRevealed = 0;
multiSpinCount = 1;
currentSpinNumber = 0;
// Reset loan system completely
loanAmount = 0;
loanStartTime = 0;
loanTimerActive = false;
loanTimeRemaining = 0;
loanAmountToTake = 10;
loanAmountDisplay.setText("10");
// Clear all persistent storage data
storage.loanAmount = 0;
storage.loanStartTime = 0;
// Reset all loan-related variables from storage initialization
delete storage.loanAmount;
delete storage.loanStartTime;
// Reset transaction history
transactionHistory = [];
updateHistoryDisplay();
// Update all displays
updateGoldDisplay();
updateLoanDisplay();
multiSpinDisplay.setText("1");
messageText.setText("");
// Reset case system
caseActive = false;
caseWinnings = 0;
caseSpinning = false;
showingCaseResult = false;
endCaseGame();
// Reset SV case system
svCaseActive = false;
svCaseWinnings = 0;
svCaseSpinning = false;
showingSvCaseResult = false;
multiplierWheelActive = false;
currentMultiplier = 1;
endSvCaseGame();
// Reset print coin system
printCoins = 0;
printCoinValue = 10;
printValueChart = [];
chartUpdateTimer = 0;
svCasesOpened = 0;
riskLevel = 0;
storage.printCoins = 0;
storage.printCoinValue = 10;
storage.svCasesOpened = 0;
storage.riskLevel = 0;
// Reset SV3 case system
sv3CaseActive = false;
sv3RiskGraphActive = false;
sv3RiskWheelActive = false;
sv3RiskSpinning = false;
riskCoins = 0;
riskCoinValue = 50;
storage.riskCoins = 0;
storage.riskCoinValue = 50;
// Hide SV3 UI elements
sv3RiskGraphContainer.visible = false;
sv3RiskWheelContainer.visible = false;
sv3RiskPointer.visible = false;
riskCoinsText.visible = false;
graphContinueButton.visible = false;
graphContinueButtonText.visible = false;
// Reset cheat system
deactivateCheat();
// Reset wheel rotation
wheelContainer.rotation = 0;
showMessage("Oyun yeniden başladı!");
};
// Initialize loan system
if (loanAmount > 0) {
loanTimerActive = true;
updateLoanDisplay();
}
game.update = function () {
// Update loan timer every frame
if (loanAmount > 0) {
updateLoanDisplay();
}
// Update print coin value randomly
if (LK.ticks % 180 === 0) {
// Every 3 seconds
updatePrintValue();
}
// Update risk coin value randomly
if (LK.ticks % 240 === 0) {
// Every 4 seconds
updateRiskValue();
}
// Show graph continue button when SV3 risk graph is active
if (sv3RiskGraphActive && !graphContinueButton.visible) {
graphContinueButton.visible = true;
graphContinueButtonText.visible = true;
}
}; /****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
var storage = LK.import("@upit/storage.v1");
/****
* Classes
****/
var WheelSegment = Container.expand(function (segmentNumber, text, color) {
var self = Container.call(this);
var segmentGraphic = self.attachAsset('segment', {
anchorX: 0.5,
anchorY: 0.5
});
segmentGraphic.tint = color;
var segmentText = new Text2(text, {
size: 42,
fill: 0x000000
});
segmentText.anchor.set(0.5, 0.5);
self.addChild(segmentText);
self.segmentNumber = segmentNumber;
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x0f4c0f
});
/****
* Game Code
****/
var playerGold = 50;
var currentBet = 10;
var isSpinning = false;
var wheelRotation = 0;
var vaultMode = false;
var vaultRevealed = 0;
var multiSpinCount = 1;
var currentSpinNumber = 0;
var loanAmount = storage.loanAmount || 0;
var loanStartTime = storage.loanStartTime || 0;
var loanTimeRemaining = 0;
var loanTimerActive = false;
// Case system variables
var caseActive = false;
var caseWinnings = 0;
var caseSpinning = false;
var caseWheelRotation = 0;
var showingCaseResult = false;
// SV Case system variables
var svCaseActive = false;
var svCaseWinnings = 0;
var svCaseSpinning = false;
var svCaseWheelRotation = 0;
var showingSvCaseResult = false;
var multiplierWheelActive = false;
var multiplierSpinning = false;
var currentMultiplier = 1;
// SV3 Case system variables
var sv3CaseActive = false;
var sv3RiskGraphActive = false;
var sv3RiskWheelActive = false;
var sv3RiskSpinning = false;
var riskCoins = storage.riskCoins || 0;
var riskCoinValue = storage.riskCoinValue || 50;
var sv3WheelResult = 0;
// Case segments data (Level 1 case)
var caseSegments = [{
text: "10 ALTIN",
color: 0x90EE90,
outcome: "win10"
}, {
text: "20 ALTIN",
color: 0x87CEEB,
outcome: "win20"
}, {
text: "30 ALTIN",
color: 0xFFA500,
outcome: "win30"
}, {
text: "40 ALTIN",
color: 0x9932CC,
outcome: "win40"
}, {
text: "KAYBETTİN",
color: 0xFF0000,
outcome: "lose"
}, {
text: "50 ALTIN",
color: 0xFFD700,
outcome: "win50"
}];
// SV Case segments data (Print coins)
var svCaseSegments = [{
text: "50 PRINT",
color: 0x90EE90,
outcome: "win50"
}, {
text: "100 PRINT",
color: 0x87CEEB,
outcome: "win100"
}, {
text: "200 PRINT",
color: 0xFFA500,
outcome: "win200"
}, {
text: "500 PRINT",
color: 0x9932CC,
outcome: "win500"
}, {
text: "800 PRINT",
color: 0xFF6347,
outcome: "win800"
}, {
text: "1000 PRINT",
color: 0xFFD700,
outcome: "win1000"
}];
// SV3 Risk wheel segments data
var sv3RiskSegments = [{
text: "20 RISK",
color: 0x90EE90,
outcome: "risk20"
}, {
text: "30 RISK",
color: 0x87CEEB,
outcome: "risk30"
}, {
text: "40 RISK",
color: 0xFFA500,
outcome: "risk40"
}, {
text: "100 RISK",
color: 0x9932CC,
outcome: "risk100"
}, {
text: "200 RISK",
color: 0xFF6347,
outcome: "risk200"
}, {
text: "999999 RISK",
color: 0xFFD700,
outcome: "risk999999"
}];
// Multiplier wheel segments
var multiplierSegments = [{
text: "2X",
color: 0x90EE90,
multiplier: 2
}, {
text: "3X",
color: 0x87CEEB,
multiplier: 3
}, {
text: "4X",
color: 0xFFA500,
multiplier: 4
}, {
text: "5X",
color: 0x9932CC,
multiplier: 5
}, {
text: "-4X",
color: 0xFF0000,
multiplier: -4
}, {
text: "-10X",
color: 0x8B0000,
multiplier: -10
}, {
text: "-2X",
color: 0xFF6B6B,
multiplier: -2
}];
// Wheel segments data
var segments = [{
text: "40 ALTIN\nKAZAN",
color: 0x90ee90,
outcome: "win40"
}, {
text: "İKİYE KATLA\nYA DA KAYBİM",
color: 0xffa500,
outcome: "doubleOrNothing"
}, {
text: "BAHİSİN\n2 KATI",
color: 0x87ceeb,
outcome: "doubleBet"
}, {
text: "BAHİSİNİ\nKAYBET",
color: 0xff6b6b,
outcome: "loseBet"
}, {
text: "SÜPER\nKASA",
color: 0xffd700,
outcome: "superVault"
}, {
text: "HACİZ\n-100 ALTIN",
color: 0x8b0000,
outcome: "bankruptcy"
}, {
text: "SIFIRLA\nHEPSİNİ",
color: 0x2f2f2f,
outcome: "reset"
}, {
text: "4 KATINA\nÇIKAR",
color: 0x9932cc,
outcome: "quadruple"
}];
// Create wheel
var wheelContainer = new Container();
wheelContainer.x = 1024;
wheelContainer.y = 900;
game.addChild(wheelContainer);
var wheelBase = wheelContainer.attachAsset('wheel', {
anchorX: 0.5,
anchorY: 0.5
});
// Create segments
var segmentContainers = [];
for (var i = 0; i < 8; i++) {
var angle = i * Math.PI * 2 / 8;
var segment = new WheelSegment(i, segments[i].text, segments[i].color);
segment.x = Math.cos(angle - Math.PI / 2) * 270;
segment.y = Math.sin(angle - Math.PI / 2) * 270;
segment.rotation = angle;
wheelContainer.addChild(segment);
segmentContainers.push(segment);
}
// Create wheel center
var wheelCenter = wheelContainer.attachAsset('wheelCenter', {
anchorX: 0.5,
anchorY: 0.5
});
// Create pointer
var pointer = game.attachAsset('pointer', {
anchorX: 0.5,
anchorY: 1.0,
x: 1024,
y: 650
});
// Create UI elements
var printCoins = storage.printCoins || 0;
var printCoinValue = storage.printCoinValue || 10;
var printValueChart = [];
var chartUpdateTimer = 0;
var svCasesOpened = storage.svCasesOpened || 0;
var riskLevel = storage.riskLevel || 0;
// Cheat system variables
var cheatActive = false;
var cheatInput = "";
var cheatPassword = "12345678900987654321tıkla1029384756";
var goldText = new Text2("Altın: 50", {
size: 80,
fill: 0xFFD700
});
goldText.anchor.set(0.5, 0);
goldText.x = 824;
goldText.y = 50;
game.addChild(goldText);
var printCoinsText = new Text2("Print: 0", {
size: 80,
fill: 0x9932CC
});
printCoinsText.anchor.set(0.5, 0);
printCoinsText.x = 1224;
printCoinsText.y = 50;
game.addChild(printCoinsText);
var betText = new Text2("Bahis: 10", {
size: 70,
fill: 0xFFFFFF
});
betText.anchor.set(0.5, 0);
betText.x = 1024;
betText.y = 150;
game.addChild(betText);
var betDisplayText = new Text2("10", {
size: 120,
fill: 0xFFD700
});
betDisplayText.anchor.set(0.5, 0);
betDisplayText.x = 1024;
betDisplayText.y = 250;
game.addChild(betDisplayText);
var spinButton = game.attachAsset('spinButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1600
});
var spinButtonText = new Text2("ÇARKI ÇEVİR", {
size: 48,
fill: 0xFFFFFF
});
spinButtonText.anchor.set(0.5, 0.5);
spinButtonText.x = 1024;
spinButtonText.y = 1600;
game.addChild(spinButtonText);
// Multi-spin counter UI
var multiSpinCount = 1;
var multiSpinDisplay = new Text2("1", {
size: 60,
fill: 0xFFFFFF
});
multiSpinDisplay.anchor.set(0.5, 0.5);
multiSpinDisplay.x = 1024;
multiSpinDisplay.y = 1720;
game.addChild(multiSpinDisplay);
var multiSpinDownButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 900,
y: 1720
});
var multiSpinDownText = new Text2("-", {
size: 40,
fill: 0xFFFFFF
});
multiSpinDownText.anchor.set(0.5, 0.5);
multiSpinDownText.x = 900;
multiSpinDownText.y = 1720;
game.addChild(multiSpinDownText);
var multiSpinUpButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1148,
y: 1720
});
var multiSpinUpText = new Text2("+", {
size: 40,
fill: 0xFFFFFF
});
multiSpinUpText.anchor.set(0.5, 0.5);
multiSpinUpText.x = 1148;
multiSpinUpText.y = 1720;
game.addChild(multiSpinUpText);
// Bet adjustment buttons
var betUpButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 900,
y: 420
});
var betUpText = new Text2("+10", {
size: 40,
fill: 0xFFFFFF
});
betUpText.anchor.set(0.5, 0.5);
betUpText.x = 900;
betUpText.y = 420;
game.addChild(betUpText);
var betDownButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1148,
y: 420
});
var betDownText = new Text2("-10", {
size: 40,
fill: 0xFFFFFF
});
betDownText.anchor.set(0.5, 0.5);
betDownText.x = 1148;
betDownText.y = 420;
game.addChild(betDownText);
// Max bet button
var maxBetButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 800,
y: 520
});
var maxBetText = new Text2("MAX", {
size: 35,
fill: 0xFFFFFF
});
maxBetText.anchor.set(0.5, 0.5);
maxBetText.x = 800;
maxBetText.y = 520;
game.addChild(maxBetText);
// Min bet button
var minBetButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1248,
y: 520
});
var minBetText = new Text2("MIN", {
size: 35,
fill: 0xFFFFFF
});
minBetText.anchor.set(0.5, 0.5);
minBetText.x = 1248;
minBetText.y = 520;
game.addChild(minBetText);
// Loan button
var loanButton = game.attachAsset('spinButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 200,
y: 1900
});
var loanButtonText = new Text2("BORÇ AL", {
size: 48,
fill: 0xFFFFFF
});
loanButtonText.anchor.set(0.5, 0.5);
loanButtonText.x = 200;
loanButtonText.y = 1900;
game.addChild(loanButtonText);
// Loan amount input buttons
var loanAmountDisplay = new Text2("10", {
size: 60,
fill: 0xFFD700
});
loanAmountDisplay.anchor.set(0.5, 0.5);
loanAmountDisplay.x = 200;
loanAmountDisplay.y = 2000;
game.addChild(loanAmountDisplay);
var loanDownButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 100,
y: 2000
});
var loanDownText = new Text2("-", {
size: 40,
fill: 0xFFFFFF
});
loanDownText.anchor.set(0.5, 0.5);
loanDownText.x = 100;
loanDownText.y = 2000;
game.addChild(loanDownText);
var loanUpButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 300,
y: 2000
});
var loanUpText = new Text2("+", {
size: 40,
fill: 0xFFFFFF
});
loanUpText.anchor.set(0.5, 0.5);
loanUpText.x = 300;
loanUpText.y = 2000;
game.addChild(loanUpText);
// Loan repay button
var repayButton = game.attachAsset('spinButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 200,
y: 2100
});
var repayButtonText = new Text2("BORÇ ÖDE", {
size: 48,
fill: 0xFFFFFF
});
repayButtonText.anchor.set(0.5, 0.5);
repayButtonText.x = 200;
repayButtonText.y = 2100;
game.addChild(repayButtonText);
// Loan status display
var loanStatusText = new Text2("", {
size: 50,
fill: 0xFF4444
});
loanStatusText.anchor.set(0.5, 0.5);
loanStatusText.x = 200;
loanStatusText.y = 2200;
game.addChild(loanStatusText);
// Loan timer display
var loanTimerText = new Text2("", {
size: 45,
fill: 0xFFAA00
});
loanTimerText.anchor.set(0.5, 0.5);
loanTimerText.x = 200;
loanTimerText.y = 2250;
game.addChild(loanTimerText);
// Message display
var messageText = new Text2("", {
size: 64,
fill: 0xFFFF00
});
messageText.anchor.set(0.5, 0.5);
messageText.x = 1024;
messageText.y = 1800;
game.addChild(messageText);
// Transaction history
var transactionHistory = [];
var historyContainer = new Container();
historyContainer.x = 100;
historyContainer.y = 400;
game.addChild(historyContainer);
var historyTitle = new Text2("İŞLEM GEÇMİŞİ:", {
size: 40,
fill: 0xFFFFFF
});
historyTitle.anchor.set(0, 0);
historyTitle.x = 0;
historyTitle.y = 0;
historyContainer.addChild(historyTitle);
function addTransaction(amount, description) {
transactionHistory.unshift({
amount: amount,
description: description
});
if (transactionHistory.length > 8) {
transactionHistory.pop();
}
updateHistoryDisplay();
}
function updateHistoryDisplay() {
// Clear existing history texts
for (var i = historyContainer.children.length - 1; i > 0; i--) {
historyContainer.removeChild(historyContainer.children[i]);
}
// Add new history entries
for (var i = 0; i < transactionHistory.length; i++) {
var entry = transactionHistory[i];
var color = entry.amount >= 0 ? "#00FF00" : "#FF0000";
var sign = entry.amount >= 0 ? "+" : "";
var historyText = new Text2(sign + entry.amount + " - " + entry.description, {
size: 30,
fill: color
});
historyText.anchor.set(0, 0);
historyText.x = 0;
historyText.y = 50 + i * 35;
historyContainer.addChild(historyText);
}
}
function updateGoldDisplay() {
goldText.setText("Altın: " + playerGold);
betText.setText("Bahis: " + currentBet);
betDisplayText.setText(currentBet.toString());
printCoinsText.setText("Print: " + printCoins);
storage.printCoins = printCoins;
storage.printCoinValue = printCoinValue;
storage.svCasesOpened = svCasesOpened;
storage.riskLevel = riskLevel;
// Check for jumpscare condition at -200 gold
if (playerGold <= -200) {
triggerJumpscare();
}
}
function showMessage(text) {
messageText.setText(text);
LK.setTimeout(function () {
messageText.setText("");
}, 3000);
}
function spinWheel() {
if (isSpinning) return;
// Check if player has enough gold for all spins
var totalCost = currentBet * multiSpinCount;
if (playerGold < totalCost) {
showMessage("Yeterli altının yok!");
return;
}
// Deduct total cost upfront for all spins
playerGold -= totalCost;
addTransaction(-totalCost, "Toplam Bahis (" + multiSpinCount + "x)");
updateGoldDisplay();
isSpinning = true;
currentSpinNumber = 0;
performSingleSpin();
}
function performSingleSpin() {
LK.getSound('spin').play();
var spins = 8 + Math.random() * 6;
var finalAngle = Math.random() * Math.PI * 2;
var totalRotation = spins * Math.PI * 2 + finalAngle;
tween(wheelContainer, {
rotation: wheelContainer.rotation + totalRotation
}, {
duration: 8000,
easing: tween.easeOut,
onFinish: function onFinish() {
var segmentAngle = Math.PI * 2 / 8;
var normalizedAngle = (finalAngle + Math.PI / 2) % (Math.PI * 2);
var segmentIndex = Math.floor(normalizedAngle / segmentAngle);
segmentIndex = (8 - segmentIndex) % 8;
handleWheelResult(segmentIndex);
currentSpinNumber++;
// Continue multi-spin if not finished, vault mode will be handled separately
if (currentSpinNumber < multiSpinCount && !vaultMode) {
LK.setTimeout(function () {
performSingleSpin();
}, 500);
} else if (currentSpinNumber >= multiSpinCount) {
isSpinning = false;
}
}
});
}
function handleWheelResult(segmentIndex) {
var outcome = segments[segmentIndex].outcome;
switch (outcome) {
case "win40":
playerGold += 40;
addTransaction(40, "40 Altın Kazan");
LK.getSound('win').play();
showMessage("40 altın kazandın!");
break;
case "doubleOrNothing":
playerGold -= 10;
addTransaction(-10, "İkiye Katla Girişi");
updateGoldDisplay();
showMessage("İkiye katla ya da kaybım! Otomatik çevriliyor...");
LK.setTimeout(function () {
if (Math.random() < 0.5) {
playerGold += 40;
addTransaction(40, "İkiye Katla Kazandı");
LK.getSound('win').play();
showMessage("İkiye katla KAZANDIN! +40 altın!");
} else {
playerGold -= 20;
addTransaction(-20, "İkiye Katla Kaybetti");
LK.getSound('lose').play();
showMessage("İkiye katla KAYBETTİN! -20 altın!");
}
updateGoldDisplay();
}, 1000);
return;
case "doubleBet":
var winAmount = currentBet * 2;
playerGold += winAmount;
addTransaction(winAmount, "Bahis 2 Katı");
LK.getSound('win').play();
showMessage("Bahisin 2 katını kazandın! +" + winAmount + " altın!");
break;
case "loseBet":
addTransaction(0, "Bahis Kaybetti");
LK.getSound('lose').play();
showMessage("Bahsini kaybettin! -" + currentBet + " altın!");
break;
case "superVault":
playerGold += 8000;
addTransaction(8000, "Süper Kasa Jackpot");
LK.getSound('win').play();
showMessage("BÜYÜK İKRAMİYE! +8000 ALTIN!");
break;
case "bankruptcy":
playerGold -= 100;
addTransaction(-100, "Haciz Cezası");
LK.getSound('lose').play();
showMessage("Haciz cezası! -100 altın!");
break;
case "reset":
var lostAmount = playerGold;
playerGold = 0;
addTransaction(-lostAmount, "Tümü Sıfırlandı");
LK.getSound('lose').play();
showMessage("Tüm paran sıfırlandı!");
break;
case "quadruple":
var oldGold = playerGold;
playerGold *= 4;
var gainAmount = playerGold - oldGold;
addTransaction(gainAmount, "4X Çarpan");
LK.getSound('win').play();
showMessage("4X ÇARPAN! Tüm paran 4 katına çıktı!");
break;
}
updateGoldDisplay();
}
// Event handlers
spinButton.down = function (x, y, obj) {
spinWheel();
};
betUpButton.down = function (x, y, obj) {
if (currentBet < 10000) {
currentBet += 10;
updateGoldDisplay();
}
};
betDownButton.down = function (x, y, obj) {
if (currentBet > 10) {
currentBet -= 10;
updateGoldDisplay();
}
};
multiSpinUpButton.down = function (x, y, obj) {
if (multiSpinCount < 50) {
multiSpinCount += 1;
multiSpinDisplay.setText(multiSpinCount.toString());
}
};
multiSpinDownButton.down = function (x, y, obj) {
if (multiSpinCount > 1) {
multiSpinCount -= 1;
multiSpinDisplay.setText(multiSpinCount.toString());
}
};
maxBetButton.down = function (x, y, obj) {
// Set bet to maximum affordable amount or 10000 (whichever is lower)
var maxAffordable = Math.floor(playerGold / multiSpinCount) * 10;
maxAffordable = Math.floor(maxAffordable / 10) * 10; // Round down to nearest 10
currentBet = Math.min(maxAffordable, 10000);
if (currentBet < 10) currentBet = 10;
updateGoldDisplay();
};
minBetButton.down = function (x, y, obj) {
currentBet = 10;
updateGoldDisplay();
};
var loanAmountToTake = 10;
loanAmountDisplay.setText(loanAmountToTake.toString());
loanButton.down = function (x, y, obj) {
takeLoan(loanAmountToTake);
};
loanUpButton.down = function (x, y, obj) {
if (loanAmountToTake < 500) {
loanAmountToTake += 10;
loanAmountDisplay.setText(loanAmountToTake.toString());
}
};
loanDownButton.down = function (x, y, obj) {
if (loanAmountToTake > 10) {
loanAmountToTake -= 10;
loanAmountDisplay.setText(loanAmountToTake.toString());
}
};
repayButton.down = function (x, y, obj) {
repayLoan(loanAmountToTake);
};
function updateLoanDisplay() {
if (loanAmount > 0) {
loanStatusText.setText("Borç: " + loanAmount);
var currentTime = Date.now();
var timeElapsed = currentTime - loanStartTime;
var timeLeft = Math.max(0, 300000 - timeElapsed); // 5 minutes = 300000ms
if (timeLeft > 0) {
var minutes = Math.floor(timeLeft / 60000);
var seconds = Math.floor(timeLeft % 60000 / 1000);
loanTimerText.setText("Süre: " + minutes + ":" + (seconds < 10 ? "0" : "") + seconds);
loanTimeRemaining = timeLeft;
} else {
loanTimerText.setText("Süre Doldu!");
if (loanTimerActive) {
// Game over due to unpaid loan
showMessage("Borcu zamanında ödemedin! Oyun bitti!");
LK.setTimeout(function () {
LK.showGameOver();
}, 2000);
}
}
} else {
loanStatusText.setText("");
loanTimerText.setText("");
}
}
function takeLoan(amount) {
if (loanAmount > 0) {
showMessage("Zaten borcun var!");
return;
}
if (amount < 10 || amount > 500) {
showMessage("Borç miktarı 10-500 arası olmalı!");
return;
}
loanAmount = amount;
loanStartTime = Date.now();
loanTimerActive = true;
playerGold += amount;
// Save to storage
storage.loanAmount = loanAmount;
storage.loanStartTime = loanStartTime;
addTransaction(amount, "Borç Alındı");
updateGoldDisplay();
updateLoanDisplay();
showMessage(amount + " altın borç aldın! 5 dakikan var!");
}
function repayLoan(amount) {
if (loanAmount <= 0) {
showMessage("Borcun yok!");
return;
}
if (playerGold < amount) {
showMessage("Yeterli altının yok!");
return;
}
var repayAmount = Math.min(amount, loanAmount);
playerGold -= repayAmount;
loanAmount -= repayAmount;
// Save to storage
storage.loanAmount = loanAmount;
if (loanAmount <= 0) {
storage.loanStartTime = 0;
loanTimerActive = false;
}
addTransaction(-repayAmount, "Borç Ödendi");
updateGoldDisplay();
updateLoanDisplay();
if (loanAmount <= 0) {
showMessage("Tüm borcunu ödedin!");
} else {
showMessage(repayAmount + " altın ödendi! Kalan borç: " + loanAmount);
}
}
function startCaseGame() {
if (playerGold < 250) {
showMessage("Kasa için 250 altın gerekli!");
return;
}
playerGold -= 250;
addTransaction(-250, "Kasa LV1 Açıldı");
updateGoldDisplay();
caseActive = true;
caseWinnings = 0;
showingCaseResult = false;
// Hide main wheel
tween(wheelContainer, {
alpha: 0
}, {
duration: 500
});
tween(pointer, {
alpha: 0
}, {
duration: 500
});
// Show case wheel
caseWheelContainer.visible = true;
casePointer.visible = true;
caseWinningsText.visible = true;
updateCaseWinningsDisplay();
showMessage("Kasa açıldı! Çark otomatik olarak dönüyor...");
// Auto spin after 1 second
LK.setTimeout(function () {
spinCaseWheel();
}, 1000);
}
function spinCaseWheel() {
if (caseSpinning) return;
caseSpinning = true;
LK.getSound('spin').play();
var spins = 6 + Math.random() * 4;
var finalAngle = Math.random() * Math.PI * 2;
var totalRotation = spins * Math.PI * 2 + finalAngle;
tween(caseWheelContainer, {
rotation: caseWheelContainer.rotation + totalRotation
}, {
duration: 6000,
easing: tween.easeOut,
onFinish: function onFinish() {
var segmentAngle = Math.PI * 2 / 6;
var normalizedAngle = (finalAngle + Math.PI / 2) % (Math.PI * 2);
var segmentIndex = Math.floor(normalizedAngle / segmentAngle);
segmentIndex = (6 - segmentIndex) % 6;
handleCaseResult(segmentIndex);
caseSpinning = false;
}
});
}
function handleCaseResult(segmentIndex) {
var outcome = caseSegments[segmentIndex].outcome;
switch (outcome) {
case "win10":
caseWinnings += 10;
LK.getSound('win').play();
showMessage("Kasadan 10 altın kazandın!");
break;
case "win20":
caseWinnings += 20;
LK.getSound('win').play();
showMessage("Kasadan 20 altın kazandın!");
break;
case "win30":
caseWinnings += 30;
LK.getSound('win').play();
showMessage("Kasadan 30 altın kazandın!");
break;
case "win40":
caseWinnings += 40;
LK.getSound('win').play();
showMessage("Kasadan 40 altın kazandın!");
break;
case "win50":
caseWinnings += 50;
LK.getSound('win').play();
showMessage("Kasadan 50 altın kazandın!");
break;
case "lose":
LK.getSound('lose').play();
showMessage("Kaybettin! Tüm kasa kazançları ve -20 altın!");
// Lose all case winnings and -20 from main balance
playerGold -= 20;
addTransaction(-20, "Kasa Kaybı Cezası");
addTransaction(-caseWinnings, "Kasa Kazançları Kaybedildi");
caseWinnings = 0;
updateGoldDisplay();
// End case game
LK.setTimeout(function () {
endCaseGame();
}, 2000);
return;
}
updateCaseWinningsDisplay();
showingCaseResult = true;
// Show withdraw/continue options
LK.setTimeout(function () {
withdrawButton.visible = true;
withdrawButtonText.visible = true;
continueButton.visible = true;
continueButtonText.visible = true;
showMessage("Kazançları çek veya devam et!");
}, 2000);
}
function updateCaseWinningsDisplay() {
caseWinningsText.setText("Kasa Kazançları: " + caseWinnings);
}
function withdrawCaseWinnings() {
if (caseWinnings > 0) {
playerGold += caseWinnings;
addTransaction(caseWinnings, "Kasa Kazançları Çekildi");
showMessage("Tüm kazançlarınızla ayrıldınız! +" + caseWinnings + " altın!");
updateGoldDisplay();
}
endCaseGame();
}
function continueCaseGame() {
showingCaseResult = false;
withdrawButton.visible = false;
withdrawButtonText.visible = false;
continueButton.visible = false;
continueButtonText.visible = false;
showMessage("Devam ediyorsunuz! Çark tekrar dönüyor...");
// Auto spin after 1 second
LK.setTimeout(function () {
spinCaseWheel();
}, 1000);
}
function endCaseGame() {
caseActive = false;
caseWinnings = 0;
showingCaseResult = false;
// Hide case UI
caseWheelContainer.visible = false;
casePointer.visible = false;
caseWinningsText.visible = false;
withdrawButton.visible = false;
withdrawButtonText.visible = false;
continueButton.visible = false;
continueButtonText.visible = false;
// Reset case wheel rotation
caseWheelContainer.rotation = 0;
// Show main wheel again
tween(wheelContainer, {
alpha: 1
}, {
duration: 500
});
tween(pointer, {
alpha: 1
}, {
duration: 500
});
}
function startSvCaseGame() {
if (playerGold < 1000) {
showMessage("SV Kasa için 1000 altın gerekli!");
return;
}
if (svCasesOpened < 3) {
showMessage("3 SV kasa açmalısın! Açılan: " + svCasesOpened);
return;
}
if (riskLevel < 10000) {
showMessage("10000 risk seviyesi gerekli!");
return;
}
// Check if this is the 3rd SV case opening
if (svCasesOpened >= 3) {
startSv3CaseGame();
return;
}
playerGold -= 1000;
addTransaction(-1000, "SV Kasa Açıldı");
updateGoldDisplay();
svCaseActive = true;
svCaseWinnings = 0;
showingSvCaseResult = false;
multiplierWheelActive = false;
currentMultiplier = 1;
// Hide main wheel
tween(wheelContainer, {
alpha: 0
}, {
duration: 500
});
tween(pointer, {
alpha: 0
}, {
duration: 500
});
// Show SV case wheel
svCaseWheelContainer.visible = true;
svCasePointer.visible = true;
svCaseWinningsText.visible = true;
updateSvCaseWinningsDisplay();
showMessage("SV Kasa açıldı! Çark otomatik olarak dönüyor...");
// Auto spin after 1 second
LK.setTimeout(function () {
spinSvCaseWheel();
}, 1000);
}
function spinSvCaseWheel() {
if (svCaseSpinning) return;
svCaseSpinning = true;
LK.getSound('spin').play();
var spins = 6 + Math.random() * 4;
var finalAngle = Math.random() * Math.PI * 2;
var totalRotation = spins * Math.PI * 2 + finalAngle;
tween(svCaseWheelContainer, {
rotation: svCaseWheelContainer.rotation + totalRotation
}, {
duration: 6000,
easing: tween.easeOut,
onFinish: function onFinish() {
var segmentAngle = Math.PI * 2 / 6;
var normalizedAngle = (finalAngle + Math.PI / 2) % (Math.PI * 2);
var segmentIndex = Math.floor(normalizedAngle / segmentAngle);
segmentIndex = (6 - segmentIndex) % 6;
handleSvCaseResult(segmentIndex);
svCaseSpinning = false;
}
});
}
function handleSvCaseResult(segmentIndex) {
var outcome = svCaseSegments[segmentIndex].outcome;
var printCoinsWon = 0;
switch (outcome) {
case "win50":
printCoinsWon = 50;
break;
case "win100":
printCoinsWon = 100;
break;
case "win200":
printCoinsWon = 200;
break;
case "win500":
printCoinsWon = 500;
break;
case "win800":
printCoinsWon = 800;
break;
case "win1000":
printCoinsWon = 1000;
break;
}
svCaseWinnings += printCoinsWon;
printCoins += printCoinsWon;
LK.getSound('win').play();
showMessage("SV Kasadan " + printCoinsWon + " print coin kazandın!");
updateSvCaseWinningsDisplay();
updateGoldDisplay();
// Activate multiplier wheel
multiplierWheelActive = true;
multiplierWheelContainer.visible = true;
multiplierPointer.visible = true;
showMessage("Multiplier çarkı dönüyor!");
LK.setTimeout(function () {
spinMultiplierWheel();
}, 2000);
}
function spinMultiplierWheel() {
if (multiplierSpinning) return;
multiplierSpinning = true;
LK.getSound('spin').play();
var spins = 5 + Math.random() * 3;
var finalAngle = Math.random() * Math.PI * 2;
var totalRotation = spins * Math.PI * 2 + finalAngle;
tween(multiplierWheelContainer, {
rotation: multiplierWheelContainer.rotation + totalRotation
}, {
duration: 5000,
easing: tween.easeOut,
onFinish: function onFinish() {
var segmentAngle = Math.PI * 2 / 7;
var normalizedAngle = (finalAngle + Math.PI / 2) % (Math.PI * 2);
var segmentIndex = Math.floor(normalizedAngle / segmentAngle);
segmentIndex = (7 - segmentIndex) % 7;
handleMultiplierResult(segmentIndex);
multiplierSpinning = false;
}
});
}
function handleMultiplierResult(segmentIndex) {
var multiplier = multiplierSegments[segmentIndex].multiplier;
currentMultiplier = multiplier;
var finalWinnings = 0;
if (multiplier > 0) {
finalWinnings = svCaseWinnings * multiplier;
LK.getSound('win').play();
showMessage("Multiplier " + multiplier + "X! Toplam kazanç: " + finalWinnings + " altın!");
} else {
finalWinnings = svCaseWinnings * Math.abs(multiplier);
finalWinnings = -finalWinnings;
LK.getSound('lose').play();
showMessage("Negatif multiplier " + multiplier + "X! Kayıp: " + Math.abs(finalWinnings) + " altın!");
}
// Convert print coins to gold and apply multiplier
playerGold += finalWinnings;
addTransaction(finalWinnings, "SV Kasa Multiplier " + multiplier + "X");
updateGoldDisplay();
// End SV case game
LK.setTimeout(function () {
endSvCaseGame();
}, 3000);
}
function updateSvCaseWinningsDisplay() {
svCaseWinningsText.setText("Print Coins: " + svCaseWinnings);
}
function endSvCaseGame() {
svCaseActive = false;
svCaseWinnings = 0;
showingSvCaseResult = false;
multiplierWheelActive = false;
currentMultiplier = 1;
svCasesOpened++;
// Hide SV case UI
svCaseWheelContainer.visible = false;
svCasePointer.visible = false;
svCaseWinningsText.visible = false;
multiplierWheelContainer.visible = false;
multiplierPointer.visible = false;
// Reset wheel rotations
svCaseWheelContainer.rotation = 0;
multiplierWheelContainer.rotation = 0;
// Show main wheel again
tween(wheelContainer, {
alpha: 1
}, {
duration: 500
});
tween(pointer, {
alpha: 1
}, {
duration: 500
});
}
function startSv3CaseGame() {
playerGold -= 1000;
addTransaction(-1000, "SV3 Kasa Açıldı");
updateGoldDisplay();
sv3CaseActive = true;
sv3RiskGraphActive = true;
sv3RiskWheelActive = false;
// Hide main wheel
tween(wheelContainer, {
alpha: 0
}, {
duration: 500
});
tween(pointer, {
alpha: 0
}, {
duration: 500
});
// Show risk graph
sv3RiskGraphContainer.visible = true;
riskCoinsText.visible = true;
updateRiskCoinsDisplay();
showMessage("SV3 Kasa açıldı! Risk grafik sistemi aktif!");
}
function showSv3RiskWheel() {
sv3RiskGraphActive = false;
sv3RiskWheelActive = true;
sv3RiskGraphContainer.visible = false;
// Show SV3 risk wheel
sv3RiskWheelContainer.visible = true;
sv3RiskPointer.visible = true;
showMessage("Risk çarkı dönüyor!");
LK.setTimeout(function () {
spinSv3RiskWheel();
}, 1000);
}
function spinSv3RiskWheel() {
if (sv3RiskSpinning) return;
sv3RiskSpinning = true;
LK.getSound('spin').play();
var spins = 6 + Math.random() * 4;
var finalAngle = Math.random() * Math.PI * 2;
var totalRotation = spins * Math.PI * 2 + finalAngle;
tween(sv3RiskWheelContainer, {
rotation: sv3RiskWheelContainer.rotation + totalRotation
}, {
duration: 6000,
easing: tween.easeOut,
onFinish: function onFinish() {
var segmentAngle = Math.PI * 2 / 6;
var normalizedAngle = (finalAngle + Math.PI / 2) % (Math.PI * 2);
var segmentIndex = Math.floor(normalizedAngle / segmentAngle);
segmentIndex = (6 - segmentIndex) % 6;
handleSv3RiskResult(segmentIndex);
sv3RiskSpinning = false;
}
});
}
function handleSv3RiskResult(segmentIndex) {
var outcome = sv3RiskSegments[segmentIndex].outcome;
var riskCoinsWon = 0;
switch (outcome) {
case "risk20":
riskCoinsWon = 20;
break;
case "risk30":
riskCoinsWon = 30;
break;
case "risk40":
riskCoinsWon = 40;
break;
case "risk100":
riskCoinsWon = 100;
break;
case "risk200":
riskCoinsWon = 200;
break;
case "risk999999":
riskCoinsWon = 999999;
break;
}
riskCoins += riskCoinsWon;
storage.riskCoins = riskCoins;
LK.getSound('win').play();
showMessage("SV3 Kasadan " + riskCoinsWon + " risk coin kazandın!");
updateRiskCoinsDisplay();
// End SV3 case game
LK.setTimeout(function () {
endSv3CaseGame();
}, 3000);
}
function updateRiskCoinsDisplay() {
riskCoinsText.setText("Risk Coins: " + riskCoins + " (Değer: " + Math.floor(riskCoinValue) + ")");
}
function endSv3CaseGame() {
sv3CaseActive = false;
sv3RiskGraphActive = false;
sv3RiskWheelActive = false;
svCasesOpened++;
// Hide SV3 case UI
sv3RiskGraphContainer.visible = false;
sv3RiskWheelContainer.visible = false;
sv3RiskPointer.visible = false;
riskCoinsText.visible = false;
// Reset wheel rotation
sv3RiskWheelContainer.rotation = 0;
// Show main wheel again
tween(wheelContainer, {
alpha: 1
}, {
duration: 500
});
tween(pointer, {
alpha: 1
}, {
duration: 500
});
}
function updateRiskValue() {
// Random price movement for risk coins
var change = (Math.random() - 0.5) * 8;
riskCoinValue += change;
if (riskCoinValue < 10) riskCoinValue = 10;
if (riskCoinValue > 200) riskCoinValue = 200;
storage.riskCoinValue = riskCoinValue;
updateRiskCoinsDisplay();
}
function updatePrintValue() {
// Random price movement
var change = (Math.random() - 0.5) * 4;
printCoinValue += change;
if (printCoinValue < 1) printCoinValue = 1;
if (printCoinValue > 100) printCoinValue = 100;
printValueText.setText("Değer: " + Math.floor(printCoinValue));
updateValueChart();
}
function updateValueChart() {
chartUpdateTimer++;
if (chartUpdateTimer >= 60) {
// Update every second
printValueChart.push(printCoinValue);
if (printValueChart.length > 50) {
printValueChart.shift();
}
chartUpdateTimer = 0;
}
}
function sellPrintCoins() {
if (printCoins <= 0) {
showMessage("Satacak print coin yok!");
return;
}
var sellValue = Math.floor(printCoinValue * printCoins);
playerGold += sellValue;
addTransaction(sellValue, "Print Coin Satışı (" + printCoins + ")");
printCoins = 0;
updateGoldDisplay();
showMessage("Tüm print coinler satıldı! +" + sellValue + " altın!");
}
function buyPrintCoins(amount) {
if (playerGold < amount * printCoinValue) {
showMessage("Yeterli altın yok!");
return;
}
var cost = Math.floor(amount * printCoinValue);
playerGold -= cost;
printCoins += amount;
addTransaction(-cost, "Print Coin Alımı (" + amount + ")");
updateGoldDisplay();
showMessage(amount + " print coin satın alındı! -" + cost + " altın!");
}
function riskTrade() {
if (printCoins <= 0) {
showMessage("Risk alabilmek için print coin gerekli!");
return;
}
// Risk with 60% chance of increase
var riskChance = Math.random();
var changePercent = Math.random() * 20 + 10; // 10-30% change
var oldValue = printCoinValue;
if (riskChance <= 0.6) {
// 60% chance of increase
printCoinValue += printCoinValue * (changePercent / 100);
LK.getSound('win').play();
showMessage("Risk başarılı! Print değeri arttı: +" + Math.floor(changePercent) + "%");
} else {
// 40% chance of decrease
printCoinValue -= printCoinValue * (changePercent / 100);
if (printCoinValue < 1) printCoinValue = 1;
LK.getSound('lose').play();
showMessage("Risk başarısız! Print değeri düştü: -" + Math.floor(changePercent) + "%");
}
storage.printCoinValue = printCoinValue;
updateGoldDisplay();
}
function upgradeRisk() {
if (playerGold < 500) {
showMessage("Risk yükseltmek için 500 altın gerekli!");
return;
}
playerGold -= 500;
riskLevel += 1000;
addTransaction(-500, "Risk Yükseltme");
updateGoldDisplay();
showMessage("Risk seviyesi yükseltildi! Yeni seviye: " + riskLevel);
}
function activateCheat() {
cheatActive = true;
cheatInput = "";
cheatInputText.visible = true;
cheatCircle.alpha = 0.8;
showMessage("Şifre girin...");
}
function deactivateCheat() {
cheatActive = false;
cheatInput = "";
cheatInputText.visible = false;
cheatInputText.setText("");
cheatCircle.alpha = 1.0;
}
function addCheatInput(_char) {
if (!cheatActive) return;
cheatInput += _char;
cheatInputText.setText("Şifre: " + cheatInput.substring(0, 20) + (cheatInput.length > 20 ? "..." : ""));
if (cheatInput === cheatPassword) {
// Grant rewards
playerGold += 9999999;
printCoins += 9999999;
addTransaction(9999999, "Cheat Altın");
addTransaction(9999999, "Cheat Print Coins");
updateGoldDisplay();
showMessage("CHEAT AKTIF! +9999999 Altın ve Print Coin!");
deactivateCheat();
} else if (cheatInput.length >= cheatPassword.length) {
showMessage("Yanlış şifre!");
deactivateCheat();
}
}
function triggerJumpscare() {
// Create black overlay
var blackOverlay = game.attachAsset('segment', {
anchorX: 0,
anchorY: 0,
x: 0,
y: 0,
scaleX: 10,
scaleY: 30
});
blackOverlay.tint = 0x000000;
// Create spotlight effect (white circle)
var spotlight = game.attachAsset('wheel', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1366,
scaleX: 0.5,
scaleY: 0.5
});
spotlight.tint = 0xffffff;
spotlight.alpha = 0.8;
// Create jumpscare man (red figure)
var jumpscareMan = game.attachAsset('segment', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1366,
scaleX: 3,
scaleY: 8
});
jumpscareMan.tint = 0xff0000;
jumpscareMan.alpha = 0;
// Animate spotlight flickering
tween(spotlight, {
alpha: 0.3
}, {
duration: 200,
onFinish: function onFinish() {
tween(spotlight, {
alpha: 0.8
}, {
duration: 200,
onFinish: function onFinish() {
// Show jumpscare man suddenly
jumpscareMan.alpha = 1;
tween(jumpscareMan, {
scaleX: 5,
scaleY: 12
}, {
duration: 300,
easing: tween.easeOut,
onFinish: function onFinish() {
// End game after jumpscare
LK.setTimeout(function () {
LK.showGameOver();
}, 1000);
}
});
}
});
}
});
}
// Case system UI
var caseButton = game.attachAsset('caseButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 200,
y: 700
});
var caseButtonText = new Text2("KASA LV1\n250 ALTIN", {
size: 36,
fill: 0xFFFFFF
});
caseButtonText.anchor.set(0.5, 0.5);
caseButtonText.x = 200;
caseButtonText.y = 700;
game.addChild(caseButtonText);
// Case wheel (hidden initially)
var caseWheelContainer = new Container();
caseWheelContainer.x = 1024;
caseWheelContainer.y = 1366;
caseWheelContainer.visible = false;
game.addChild(caseWheelContainer);
var caseWheelBase = caseWheelContainer.attachAsset('caseWheel', {
anchorX: 0.5,
anchorY: 0.5
});
// Create case segments
var caseSegmentContainers = [];
for (var i = 0; i < 6; i++) {
var angle = i * Math.PI * 2 / 6;
var segment = new Container();
var segmentGraphic = segment.attachAsset('caseSegment', {
anchorX: 0.5,
anchorY: 0.5
});
segmentGraphic.tint = caseSegments[i].color;
var segmentText = new Text2(caseSegments[i].text, {
size: 32,
fill: 0x000000
});
segmentText.anchor.set(0.5, 0.5);
segment.addChild(segmentText);
segment.x = Math.cos(angle - Math.PI / 2) * 200;
segment.y = Math.sin(angle - Math.PI / 2) * 200;
segment.rotation = angle;
caseWheelContainer.addChild(segment);
caseSegmentContainers.push(segment);
}
// Case wheel center
var caseWheelCenter = caseWheelContainer.attachAsset('wheelCenter', {
anchorX: 0.5,
anchorY: 0.5
});
// Case pointer
var casePointer = game.attachAsset('pointer', {
anchorX: 0.5,
anchorY: 1.0,
x: 1024,
y: 1100
});
casePointer.visible = false;
// Case winnings display
var caseWinningsText = new Text2("Kasa Kazançları: 0", {
size: 60,
fill: 0xFFD700
});
caseWinningsText.anchor.set(0.5, 0.5);
caseWinningsText.x = 1024;
caseWinningsText.y = 1500;
caseWinningsText.visible = false;
game.addChild(caseWinningsText);
// Withdraw and continue buttons (hidden initially)
var withdrawButton = game.attachAsset('withdrawButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 900,
y: 1600
});
withdrawButton.visible = false;
var withdrawButtonText = new Text2("ÇEK", {
size: 40,
fill: 0xFFFFFF
});
withdrawButtonText.anchor.set(0.5, 0.5);
withdrawButtonText.x = 900;
withdrawButtonText.y = 1600;
withdrawButtonText.visible = false;
game.addChild(withdrawButtonText);
var continueButton = game.attachAsset('continueButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1148,
y: 1600
});
continueButton.visible = false;
var continueButtonText = new Text2("DEVAM", {
size: 40,
fill: 0xFFFFFF
});
continueButtonText.anchor.set(0.5, 0.5);
continueButtonText.x = 1148;
continueButtonText.y = 1600;
continueButtonText.visible = false;
game.addChild(continueButtonText);
// Print coin trading UI
var sellPrintButton = game.attachAsset('spinButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1800,
y: 700
});
var sellPrintButtonText = new Text2("PRINT SAT", {
size: 36,
fill: 0xFFFFFF
});
sellPrintButtonText.anchor.set(0.5, 0.5);
sellPrintButtonText.x = 1800;
sellPrintButtonText.y = 700;
game.addChild(sellPrintButtonText);
var printValueText = new Text2("Değer: 10", {
size: 50,
fill: 0xFFD700
});
printValueText.anchor.set(0.5, 0.5);
printValueText.x = 1800;
printValueText.y = 600;
game.addChild(printValueText);
var buyPrintButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1650,
y: 800
});
var buyPrintButtonText = new Text2("PRINT AL", {
size: 30,
fill: 0xFFFFFF
});
buyPrintButtonText.anchor.set(0.5, 0.5);
buyPrintButtonText.x = 1650;
buyPrintButtonText.y = 800;
game.addChild(buyPrintButtonText);
var riskTradeButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1950,
y: 800
});
var riskTradeButtonText = new Text2("RİSK AL", {
size: 28,
fill: 0xFFD700
});
riskTradeButtonText.anchor.set(0.5, 0.5);
riskTradeButtonText.x = 1950;
riskTradeButtonText.y = 800;
game.addChild(riskTradeButtonText);
var riskUpgradeButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1800,
y: 900
});
var riskUpgradeButtonText = new Text2("RİSK +500", {
size: 30,
fill: 0xFFFFFF
});
riskUpgradeButtonText.anchor.set(0.5, 0.5);
riskUpgradeButtonText.x = 1800;
riskUpgradeButtonText.y = 900;
game.addChild(riskUpgradeButtonText);
// SV Case system UI
var svCaseButton = game.attachAsset('svCaseButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 200,
y: 850
});
var svCaseButtonText = new Text2("SV KASA\n1000 ALTIN\n(3 KASA)", {
size: 32,
fill: 0xFFFFFF
});
svCaseButtonText.anchor.set(0.5, 0.5);
svCaseButtonText.x = 200;
svCaseButtonText.y = 850;
game.addChild(svCaseButtonText);
// SV Case wheel (hidden initially)
var svCaseWheelContainer = new Container();
svCaseWheelContainer.x = 700;
svCaseWheelContainer.y = 1366;
svCaseWheelContainer.visible = false;
game.addChild(svCaseWheelContainer);
var svCaseWheelBase = svCaseWheelContainer.attachAsset('svCaseWheel', {
anchorX: 0.5,
anchorY: 0.5
});
// Create SV case segments
var svCaseSegmentContainers = [];
for (var i = 0; i < 6; i++) {
var angle = i * Math.PI * 2 / 6;
var segment = new Container();
var segmentGraphic = segment.attachAsset('svCaseSegment', {
anchorX: 0.5,
anchorY: 0.5
});
segmentGraphic.tint = svCaseSegments[i].color;
var segmentText = new Text2(svCaseSegments[i].text, {
size: 28,
fill: 0x000000
});
segmentText.anchor.set(0.5, 0.5);
segment.addChild(segmentText);
segment.x = Math.cos(angle - Math.PI / 2) * 200;
segment.y = Math.sin(angle - Math.PI / 2) * 200;
segment.rotation = angle;
svCaseWheelContainer.addChild(segment);
svCaseSegmentContainers.push(segment);
}
// SV Case wheel center
var svCaseWheelCenter = svCaseWheelContainer.attachAsset('wheelCenter', {
anchorX: 0.5,
anchorY: 0.5
});
// SV Case pointer
var svCasePointer = game.attachAsset('pointer', {
anchorX: 0.5,
anchorY: 1.0,
x: 700,
y: 1100
});
svCasePointer.visible = false;
// SV Case winnings display
var svCaseWinningsText = new Text2("Print Coins: 0", {
size: 50,
fill: 0x9932CC
});
svCaseWinningsText.anchor.set(0.5, 0.5);
svCaseWinningsText.x = 700;
svCaseWinningsText.y = 1500;
svCaseWinningsText.visible = false;
game.addChild(svCaseWinningsText);
// Multiplier wheel (hidden initially)
var multiplierWheelContainer = new Container();
multiplierWheelContainer.x = 1348;
multiplierWheelContainer.y = 1366;
multiplierWheelContainer.visible = false;
game.addChild(multiplierWheelContainer);
var multiplierWheelBase = multiplierWheelContainer.attachAsset('multiplierWheel', {
anchorX: 0.5,
anchorY: 0.5
});
// Create multiplier segments
var multiplierSegmentContainers = [];
for (var i = 0; i < 7; i++) {
var angle = i * Math.PI * 2 / 7;
var segment = new Container();
var segmentGraphic = segment.attachAsset('multiplierSegment', {
anchorX: 0.5,
anchorY: 0.5
});
segmentGraphic.tint = multiplierSegments[i].color;
var segmentText = new Text2(multiplierSegments[i].text, {
size: 24,
fill: 0x000000
});
segmentText.anchor.set(0.5, 0.5);
segment.addChild(segmentText);
segment.x = Math.cos(angle - Math.PI / 2) * 130;
segment.y = Math.sin(angle - Math.PI / 2) * 130;
segment.rotation = angle;
multiplierWheelContainer.addChild(segment);
multiplierSegmentContainers.push(segment);
}
// Multiplier wheel center
var multiplierWheelCenter = multiplierWheelContainer.attachAsset('wheelCenter', {
anchorX: 0.5,
anchorY: 0.5
});
// Multiplier pointer
var multiplierPointer = game.attachAsset('pointer', {
anchorX: 0.5,
anchorY: 1.0,
x: 1348,
y: 1200
});
multiplierPointer.visible = false;
// Case system event handlers
caseButton.down = function (x, y, obj) {
if (!caseActive && !isSpinning) {
startCaseGame();
}
};
// Print coin trading event handlers
sellPrintButton.down = function (x, y, obj) {
sellPrintCoins();
};
buyPrintButton.down = function (x, y, obj) {
buyPrintCoins(10);
};
riskTradeButton.down = function (x, y, obj) {
riskTrade();
};
riskUpgradeButton.down = function (x, y, obj) {
upgradeRisk();
};
// SV3 Risk graph container
var sv3RiskGraphContainer = new Container();
sv3RiskGraphContainer.x = 1024;
sv3RiskGraphContainer.y = 1000;
sv3RiskGraphContainer.visible = false;
game.addChild(sv3RiskGraphContainer);
var sv3RiskGraphBase = sv3RiskGraphContainer.attachAsset('riskGraph', {
anchorX: 0.5,
anchorY: 0.5
});
// SV3 Risk wheel container
var sv3RiskWheelContainer = new Container();
sv3RiskWheelContainer.x = 1024;
sv3RiskWheelContainer.y = 1366;
sv3RiskWheelContainer.visible = false;
game.addChild(sv3RiskWheelContainer);
var sv3RiskWheelBase = sv3RiskWheelContainer.attachAsset('sv3CaseWheel', {
anchorX: 0.5,
anchorY: 0.5
});
// Create SV3 risk segments
var sv3RiskSegmentContainers = [];
for (var i = 0; i < 6; i++) {
var angle = i * Math.PI * 2 / 6;
var segment = new Container();
var segmentGraphic = segment.attachAsset('sv3CaseSegment', {
anchorX: 0.5,
anchorY: 0.5
});
segmentGraphic.tint = sv3RiskSegments[i].color;
var segmentText = new Text2(sv3RiskSegments[i].text, {
size: 28,
fill: 0x000000
});
segmentText.anchor.set(0.5, 0.5);
segment.addChild(segmentText);
segment.x = Math.cos(angle - Math.PI / 2) * 200;
segment.y = Math.sin(angle - Math.PI / 2) * 200;
segment.rotation = angle;
sv3RiskWheelContainer.addChild(segment);
sv3RiskSegmentContainers.push(segment);
}
// SV3 Risk wheel center
var sv3RiskWheelCenter = sv3RiskWheelContainer.attachAsset('wheelCenter', {
anchorX: 0.5,
anchorY: 0.5
});
// SV3 Risk pointer
var sv3RiskPointer = game.attachAsset('pointer', {
anchorX: 0.5,
anchorY: 1.0,
x: 1024,
y: 1100
});
sv3RiskPointer.visible = false;
// Risk coins display
var riskCoinsText = new Text2("Risk Coins: 0", {
size: 50,
fill: 0xFF6347
});
riskCoinsText.anchor.set(0.5, 0.5);
riskCoinsText.x = 1024;
riskCoinsText.y = 800;
riskCoinsText.visible = false;
game.addChild(riskCoinsText);
// Graph continue button
var graphContinueButton = game.attachAsset('continueButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1300
});
graphContinueButton.visible = false;
var graphContinueButtonText = new Text2("ÇARK ÇEVİR", {
size: 40,
fill: 0xFFFFFF
});
graphContinueButtonText.anchor.set(0.5, 0.5);
graphContinueButtonText.x = 1024;
graphContinueButtonText.y = 1300;
graphContinueButtonText.visible = false;
game.addChild(graphContinueButtonText);
// Graph continue button event handler
graphContinueButton.down = function (x, y, obj) {
if (sv3RiskGraphActive) {
showSv3RiskWheel();
graphContinueButton.visible = false;
graphContinueButtonText.visible = false;
}
};
// SV Case system event handlers
svCaseButton.down = function (x, y, obj) {
if (!svCaseActive && !caseActive && !isSpinning && !sv3CaseActive) {
startSvCaseGame();
}
};
withdrawButton.down = function (x, y, obj) {
if (showingCaseResult) {
withdrawCaseWinnings();
}
};
continueButton.down = function (x, y, obj) {
if (showingCaseResult) {
continueCaseGame();
}
};
// Create cheat circle
var cheatCircle = game.attachAsset('cheatCircle', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 2700
});
// Cheat input display
var cheatInputText = new Text2("", {
size: 40,
fill: 0xFFFFFF
});
cheatInputText.anchor.set(0.5, 0.5);
cheatInputText.x = 1024;
cheatInputText.y = 2650;
cheatInputText.visible = false;
game.addChild(cheatInputText);
// Create surrender button
var surrenderButton = game.attachAsset('spinButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 2600
});
var surrenderButtonText = new Text2("TESLIM OL", {
size: 48,
fill: 0xFFFFFF
});
surrenderButtonText.anchor.set(0.5, 0.5);
surrenderButtonText.x = 1024;
surrenderButtonText.y = 2600;
game.addChild(surrenderButtonText);
// Cheat circle event handler
cheatCircle.down = function (x, y, obj) {
if (!cheatActive) {
activateCheat();
} else {
addCheatInput("1");
}
};
// Add number input handlers for the cheat system
game.down = function (x, y, obj) {
if (cheatActive) {
// Simple number mapping based on screen regions
var screenWidth = 2048;
var screenHeight = 2732;
var regionWidth = screenWidth / 10;
var regionHeight = screenHeight / 10;
var regionX = Math.floor(x / regionWidth);
var regionY = Math.floor(y / regionHeight);
// Map regions to numbers and letters
if (regionY >= 8) {
// Bottom area
if (regionX === 0) addCheatInput("1");else if (regionX === 1) addCheatInput("2");else if (regionX === 2) addCheatInput("3");else if (regionX === 3) addCheatInput("4");else if (regionX === 4) addCheatInput("5");else if (regionX === 5) addCheatInput("6");else if (regionX === 6) addCheatInput("7");else if (regionX === 7) addCheatInput("8");else if (regionX === 8) addCheatInput("9");else if (regionX === 9) addCheatInput("0");
} else if (regionY >= 6) {
// Middle area
if (regionX === 0) addCheatInput("t");else if (regionX === 1) addCheatInput("ı");else if (regionX === 2) addCheatInput("k");else if (regionX === 3) addCheatInput("l");else if (regionX === 4) addCheatInput("a");
}
}
};
// Surrender button event handler
surrenderButton.down = function (x, y, obj) {
// Reset game to initial state
playerGold = 50;
currentBet = 10;
isSpinning = false;
wheelRotation = 0;
vaultMode = false;
vaultRevealed = 0;
multiSpinCount = 1;
currentSpinNumber = 0;
// Reset loan system completely
loanAmount = 0;
loanStartTime = 0;
loanTimerActive = false;
loanTimeRemaining = 0;
loanAmountToTake = 10;
loanAmountDisplay.setText("10");
// Clear all persistent storage data
storage.loanAmount = 0;
storage.loanStartTime = 0;
// Reset all loan-related variables from storage initialization
delete storage.loanAmount;
delete storage.loanStartTime;
// Reset transaction history
transactionHistory = [];
updateHistoryDisplay();
// Update all displays
updateGoldDisplay();
updateLoanDisplay();
multiSpinDisplay.setText("1");
messageText.setText("");
// Reset case system
caseActive = false;
caseWinnings = 0;
caseSpinning = false;
showingCaseResult = false;
endCaseGame();
// Reset SV case system
svCaseActive = false;
svCaseWinnings = 0;
svCaseSpinning = false;
showingSvCaseResult = false;
multiplierWheelActive = false;
currentMultiplier = 1;
endSvCaseGame();
// Reset print coin system
printCoins = 0;
printCoinValue = 10;
printValueChart = [];
chartUpdateTimer = 0;
svCasesOpened = 0;
riskLevel = 0;
storage.printCoins = 0;
storage.printCoinValue = 10;
storage.svCasesOpened = 0;
storage.riskLevel = 0;
// Reset SV3 case system
sv3CaseActive = false;
sv3RiskGraphActive = false;
sv3RiskWheelActive = false;
sv3RiskSpinning = false;
riskCoins = 0;
riskCoinValue = 50;
storage.riskCoins = 0;
storage.riskCoinValue = 50;
// Hide SV3 UI elements
sv3RiskGraphContainer.visible = false;
sv3RiskWheelContainer.visible = false;
sv3RiskPointer.visible = false;
riskCoinsText.visible = false;
graphContinueButton.visible = false;
graphContinueButtonText.visible = false;
// Reset cheat system
deactivateCheat();
// Reset wheel rotation
wheelContainer.rotation = 0;
showMessage("Oyun yeniden başladı!");
};
// Initialize loan system
if (loanAmount > 0) {
loanTimerActive = true;
updateLoanDisplay();
}
game.update = function () {
// Update loan timer every frame
if (loanAmount > 0) {
updateLoanDisplay();
}
// Update print coin value randomly
if (LK.ticks % 180 === 0) {
// Every 3 seconds
updatePrintValue();
}
// Update risk coin value randomly
if (LK.ticks % 240 === 0) {
// Every 4 seconds
updateRiskValue();
}
// Show graph continue button when SV3 risk graph is active
if (sv3RiskGraphActive && !graphContinueButton.visible) {
graphContinueButton.visible = true;
graphContinueButtonText.visible = true;
}
};