User prompt
super kasa gelse bile seçildikten sonra o sayıda çevirlmeye devam eder 50 çevirme yaptım 50 kere çevirmedi
User prompt
kasa çok daha uzun dönsün bide kenara kazanılan veya kaybedilen para liste şeklinde yazsın ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
super kasda sadece 1i seçilebilir
User prompt
en alta teslim olma seçeneği oyun baştan başlar
User prompt
altta seçilen sayı kadar ard arda asa döer ve super kasa 8000 altının yeri sürekli değişir ve seçilince o kasa kaybolur tekrar çarktan çıkması gerekli ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
kasa çevir butonunun altında bir sayı artıtrıp azaltılabilir 1 ile 50 arası seçip basınca o sayı kadar çevirir para yetiyorsa bide tüm sayılar kenra alt alta sırala iç içe girmesinler bide super kasa açıldıktan sonra kaybolur
User prompt
para 10un altında olsa bile bahisle çevrilebilir ve 10 ile 10000 arası bahis konulabilir üs kısma yazılması gerekli o sayının
User prompt
para 0 olunca kaybedilmez -50 para olunca ekran siyah olur sorgu ışığı açılır bi adam jumpsccare atar ve oyun biter ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
türkçe olsun oyun çark daha büyük
User prompt
daha büyük ekran daha büyük
Code edit (1 edits merged)
Please save this source code
User prompt
Golden Wheel Fortune
Initial prompt
50 altınla oyuna başlanır bir çark vardır en az 10 altın ile çevrilir ve istenen kadar bahis koyulabilir paraya çevirilir çark 8e ayrılır 1. 40 altın kazandın 2. katlandı 10 altın ile çevrilen kasada bu çıkarsa 10 altın daha eksilir ve otomatik tekrar çevrilir kazandın çıkarsa 40 altın alınır kaybedilirse 20 altın kaybeder 3. kazandın koyulan bahisin 2 katı alınır 4. kaybettin para kazanılamaz koyulan bahis kadar para kaybedilir 5. super kasa otomatik olarak 4 bölmeye ayrılmış bir kasa çevrilir 3ü boş hiçbişey kazanılmaz 1i 8000 altın kazandırır ve önceki çarka döndürür 6. haciz -100 altın 7. tüm pararyı sıfırlar 8. para 4 ile çarpılır
/**** * 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;
}
};