/**** * 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;
}
};