User prompt
en altta küçük bir yeşil daire olucak bi şifre yazılması gereken bir kısım gelecek şu yazılmalık 12345678900987654321tıkla1029384756 otomatik olarak 9999999 prit coin 9999999 altın kazanılır ↪💡 Aşağıdaki eklentileri içe aktarmayı ve kullanmayı ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
para -200e düşmeden kaybedilmez ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Please fix the bug: 'printSellButtonText is not defined' in or related to this line: 'printSellButtonText.y = 700;' Line Number: 1689
User prompt
Please fix the bug: 'printSellButtonText is not defined' in or related to this line: 'printSellButtonText.y = 700;' Line Number: 1689
User prompt
print satın alda bi miktar belirlenir yanlarında max ve min tuşlarıda olur satarkende aynı şekilde borç al ve ödede max ve min tuşları çarkı çevirdede ↪💡 Consider importing and using the following plugins: @upit/storage.v1, @upit/tween.v1
User prompt
print coins satılabilir veya alınabilir değerinde risk alarak artma olasılığı %60 artma olasılığı artar ↪💡 Consider importing and using the following plugins: @upit/storage.v1, @upit/tween.v1
User prompt
sv3 kasa açılınca çark kaybolur bir grafik çıkar risk alarak risk coins değer değişimi sağlanır ve bu olmadan önce kasa çevirlir 20 risk coins 30 risk coins 40 risk coins 100 risk coins 200 risk coins 999999 risk coins ↪💡 Consider importing and using the following plugins: @upit/storage.v1, @upit/tween.v1
User prompt
altın bakiyesinin yanında prit sauısı yazıcak 3 sv kasa değer riski 10000 açılır ekranda bir değer grafiği raskele şekilde yukarı yeşil aşşağa kırmızı ilerleristenen değerde prit coinini satarak para alınır arttırmak için değerinin rasgele fiyat değerlenip değerlenmesi için arttırma 500 ↪💡 Consider importing and using the following plugins: @upit/tween.v1, @upit/storage.v1
User prompt
kasa açılırken normal çark kaybolur kasa çarkı oluşur kasa açılımı bitince normal çark geri gelir ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
2. sv kasa prit coins 1000 paraya çevrilir sonrasında şunlar gelebilir 50 print 100 print 200 print 500 print 800 print 1000 print bu çarkın üstünde bi çark daha dönücek üst üste gelenler çıkacak kısımda geldiğinde 2si alıncak üst katman 2ye katla 3e katla 4e katla 5e katla -4e katla -10a katla -2yee katla ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Please fix the bug: 'Uncaught TypeError: storage.clear is not a function' in or related to this line: 'storage.clear();' Line Number: 1066 ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
olmuyo sıfırlanmıyo,
User prompt
oyun yeniden başladığında borç etkenleri sıfırlanır
User prompt
para çantası özelliğini ve öncceki oyun butonunu kaldır
User prompt
kenara kasa sırala 1 lv kasa 250 para bu kasadan 10 altın 20 altın 30 altın 40 altın kaybetme 50 altın çıkar eyerr kasadan başarılı çıkarsa para ödülleri çekilebilir veya tkerar çevirebilir eyerki çekilirse kazanılan tüm parayla ayrılır çekilmesse ve kaybetme denk gelirse tüm çarktan çıkan ve ana bakiyeden -20 gider ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
para çantası şöyle çalışır sen hatalı yaptn para çantasına tıklayınca oraya koyulcak miktar girilir bu ana bakiyeden eksilir bir şifre belirleninr ve para çantası kapanır başka bir oynanışta para çantasına tıklayarak para çek seçeneği ile şifreyi girerek koyulan para alınabilir para çantasına tıklanırsa ana bakiye 0 olur ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
para çantası seçeneği bu seçeneği seçekrek seçilen miktarda para koyulabilir ve bakiyeden eksilir para koyulunca bi şifre belirler oyuncu sonra çanta kapanır ve sonrasında tekrar para koyulabilir ama şifre belirlendiyse değiştiremez taki şifreyi giri p açana kadar sonra tekrar kapatırsa tekrar şifre oluşturmalı para almak için o şifre girilmeli sonrasında başka bir oyunda oyun sıfırlandığında çantanın şifresini girerek önceki elden parayı o anki oyuna aktarılabilir ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Please fix the bug: 'Uncaught TypeError: storage.clear is not a function' in or related to this line: 'storage.clear();' Line Number: 863 ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
oyun her türlü yeniden başlayınca herşey sıfırlanır
User prompt
oyun tekrar başladığında borçta baştan başlar yani borç olmaz ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
borç alma seçeneği 10 ile 500 arası borç alınabilir borç alındıktan sonra 5 dakikalık bir geri sayım başlar 5 dakika içinde alınan borç geri ödenmezse oyun kaybedilir borç alındığında tekrar borç alınamaz istenen miktar ödenebilir mesela 50 para borç alındı 20 20 10 ödenebilir ↪💡 Consider importing and using the following plugins: @upit/storage.v1
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
var storage = LK.import("@upit/storage.v1");
/****
* Classes
****/
var VaultSlot = Container.expand(function (hasJackpot) {
var self = Container.call(this);
var slotGraphic = self.attachAsset('vaultSlot', {
anchorX: 0.5,
anchorY: 0.5
});
var slotText = new Text2(hasJackpot ? "8000 ALTIN!" : "BOŞ", {
size: 42,
fill: hasJackpot ? "#ffd700" : "#666666"
});
slotText.anchor.set(0.5, 0.5);
self.addChild(slotText);
self.hasJackpot = hasJackpot;
self.revealed = false;
self.down = function (x, y, obj) {
if (!self.revealed && vaultMode) {
self.revealed = true;
if (self.hasJackpot) {
playerGold += 8000;
addTransaction(8000, "Süper Kasa Jackpot");
LK.getSound('win').play();
showMessage("BÜYÜK İKRAMİYE! +8000 ALTIN!");
} else {
addTransaction(0, "Boş Kasa Slotu");
LK.getSound('lose').play();
showMessage("Boş slot!");
}
// Hide other vault slots after selection
for (var i = 0; i < vaultSlots.length; i++) {
if (vaultSlots[i] !== self) {
vaultSlots[i].visible = false;
}
}
// After selection, hide the vault and continue multi-spin
updateGoldDisplay();
LK.setTimeout(function () {
hideVault();
}, 1000);
}
};
return self;
});
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;
// 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 goldText = new Text2("Altın: 50", {
size: 80,
fill: 0xFFD700
});
goldText.anchor.set(0.5, 0);
goldText.x = 1024;
goldText.y = 50;
game.addChild(goldText);
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);
// Vault system variables
var vaultAmount = storage.vaultAmount || 0;
var vaultPassword = storage.vaultPassword || "";
var vaultIsOpen = false;
var vaultAmountToStore = 10;
var enteredPassword = "";
// Vault button
var vaultButton = game.attachAsset('spinButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1800,
y: 1900
});
var vaultButtonText = new Text2("PARA ÇANTASI", {
size: 48,
fill: 0xFFFFFF
});
vaultButtonText.anchor.set(0.5, 0.5);
vaultButtonText.x = 1800;
vaultButtonText.y = 1900;
game.addChild(vaultButtonText);
// Vault amount input display
var vaultAmountDisplay = new Text2("10", {
size: 60,
fill: 0xFFD700
});
vaultAmountDisplay.anchor.set(0.5, 0.5);
vaultAmountDisplay.x = 1800;
vaultAmountDisplay.y = 2000;
game.addChild(vaultAmountDisplay);
// Vault amount adjustment buttons
var vaultDownButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1700,
y: 2000
});
var vaultDownText = new Text2("-", {
size: 40,
fill: 0xFFFFFF
});
vaultDownText.anchor.set(0.5, 0.5);
vaultDownText.x = 1700;
vaultDownText.y = 2000;
game.addChild(vaultDownText);
var vaultUpButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1900,
y: 2000
});
var vaultUpText = new Text2("+", {
size: 40,
fill: 0xFFFFFF
});
vaultUpText.anchor.set(0.5, 0.5);
vaultUpText.x = 1900;
vaultUpText.y = 2000;
game.addChild(vaultUpText);
// Vault status display
var vaultStatusText = new Text2("", {
size: 50,
fill: 0x00FF00
});
vaultStatusText.anchor.set(0.5, 0.5);
vaultStatusText.x = 1800;
vaultStatusText.y = 2100;
game.addChild(vaultStatusText);
// Password display (hidden)
var passwordDisplay = new Text2("Şifre: ****", {
size: 40,
fill: 0xFFFFFF
});
passwordDisplay.anchor.set(0.5, 0.5);
passwordDisplay.x = 1800;
passwordDisplay.y = 2150;
passwordDisplay.visible = false;
game.addChild(passwordDisplay);
// Password buttons (0-9)
var passwordButtons = [];
for (var i = 0; i < 10; i++) {
var row = Math.floor(i / 3);
var col = i % 3;
if (i === 9) {
// Button 0 goes to bottom center
row = 3;
col = 1;
}
var button = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1700 + col * 100,
y: 2200 + row * 80
});
var buttonText = new Text2(i.toString(), {
size: 35,
fill: 0xFFFFFF
});
buttonText.anchor.set(0.5, 0.5);
buttonText.x = 1700 + col * 100;
buttonText.y = 2200 + row * 80;
buttonText.visible = false;
game.addChild(buttonText);
button.visible = false;
button.digit = i;
passwordButtons.push({
button: button,
text: buttonText
});
}
// Password clear and confirm buttons
var clearPasswordButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1600,
y: 2440
});
var clearPasswordText = new Text2("TEMİZLE", {
size: 30,
fill: 0xFFFFFF
});
clearPasswordText.anchor.set(0.5, 0.5);
clearPasswordText.x = 1600;
clearPasswordText.y = 2440;
clearPasswordButton.visible = false;
clearPasswordText.visible = false;
game.addChild(clearPasswordText);
var confirmPasswordButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1900,
y: 2440
});
var confirmPasswordText = new Text2("ONAYLA", {
size: 30,
fill: 0xFFFFFF
});
confirmPasswordText.anchor.set(0.5, 0.5);
confirmPasswordText.x = 1900;
confirmPasswordText.y = 2440;
confirmPasswordButton.visible = false;
confirmPasswordText.visible = false;
game.addChild(confirmPasswordText);
// 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);
// Vault slots (hidden initially)
var vaultSlots = [];
for (var i = 0; i < 4; i++) {
var hasJackpot = i === Math.floor(Math.random() * 4);
var slot = new VaultSlot(hasJackpot);
slot.x = 400 + i * 320;
slot.y = 1366;
slot.visible = false;
game.addChild(slot);
vaultSlots.push(slot);
}
var vaultTitle = new Text2("BİR KASA SLOT SEÇ:", {
size: 80,
fill: 0xFFD700
});
vaultTitle.anchor.set(0.5, 0.5);
vaultTitle.x = 1024;
vaultTitle.y = 1100;
vaultTitle.visible = false;
game.addChild(vaultTitle);
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());
// Check for jumpscare condition at -50 gold
if (playerGold <= -50) {
triggerJumpscare();
}
}
function showMessage(text) {
messageText.setText(text);
LK.setTimeout(function () {
messageText.setText("");
}, 3000);
}
function showVault() {
// Regenerate jackpot position first
for (var i = 0; i < vaultSlots.length; i++) {
vaultSlots[i].hasJackpot = false;
}
var jackpotIndex = Math.floor(Math.random() * 4);
vaultSlots[jackpotIndex].hasJackpot = true;
vaultTitle.visible = true;
for (var i = 0; i < vaultSlots.length; i++) {
vaultSlots[i].visible = true;
vaultSlots[i].revealed = false;
var slotText = vaultSlots[i].children[1];
slotText.setText(vaultSlots[i].hasJackpot ? "8000 ALTIN!" : "BOŞ");
slotText.visible = false;
}
}
function hideVault() {
vaultTitle.visible = false;
for (var i = 0; i < vaultSlots.length; i++) {
vaultSlots[i].visible = false;
}
vaultMode = false;
// Continue multi-spin sequence if still spinning
if (currentSpinNumber < multiSpinCount && isSpinning) {
LK.setTimeout(function () {
performSingleSpin();
}, 500);
} else {
isSpinning = false;
}
}
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":
vaultMode = true;
vaultRevealed = 0;
showVault();
showMessage("Bir kasa slot seç!");
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);
};
// Vault system event handlers
vaultButton.down = function (x, y, obj) {
depositToVault();
};
vaultUpButton.down = function (x, y, obj) {
if (vaultAmountToStore < 500) {
vaultAmountToStore += 10;
vaultAmountDisplay.setText(vaultAmountToStore.toString());
}
};
vaultDownButton.down = function (x, y, obj) {
if (vaultAmountToStore > 10) {
vaultAmountToStore -= 10;
vaultAmountDisplay.setText(vaultAmountToStore.toString());
}
};
// Password button event handlers
for (var i = 0; i < passwordButtons.length; i++) {
(function (digit) {
passwordButtons[digit].button.down = function (x, y, obj) {
if (enteredPassword.length < 4) {
enteredPassword += digit.toString();
updatePasswordDisplay();
}
};
})(i);
}
clearPasswordButton.down = function (x, y, obj) {
enteredPassword = "";
updatePasswordDisplay();
};
confirmPasswordButton.down = function (x, y, obj) {
confirmPassword();
};
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) {
// Initialize vault system
updateVaultDisplay();
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 updateVaultDisplay() {
if (vaultAmount > 0) {
vaultStatusText.setText("Çanta: " + vaultAmount + " altın");
} else {
vaultStatusText.setText("Çanta boş");
}
}
function showPasswordInput() {
passwordDisplay.visible = true;
clearPasswordButton.visible = true;
clearPasswordText.visible = true;
confirmPasswordButton.visible = true;
confirmPasswordText.visible = true;
for (var i = 0; i < passwordButtons.length; i++) {
passwordButtons[i].button.visible = true;
passwordButtons[i].text.visible = true;
}
updatePasswordDisplay();
}
function hidePasswordInput() {
passwordDisplay.visible = false;
clearPasswordButton.visible = false;
clearPasswordText.visible = false;
confirmPasswordButton.visible = false;
confirmPasswordText.visible = false;
for (var i = 0; i < passwordButtons.length; i++) {
passwordButtons[i].button.visible = false;
passwordButtons[i].text.visible = false;
}
}
function updatePasswordDisplay() {
var displayText = "Şifre: ";
for (var i = 0; i < enteredPassword.length; i++) {
displayText += "*";
}
passwordDisplay.setText(displayText);
}
function depositToVault() {
if (playerGold < vaultAmountToStore) {
showMessage("Yeterli altının yok!");
return;
}
if (vaultPassword === "") {
// First time depositing, need to set password
enteredPassword = "";
showPasswordInput();
showMessage("Yeni şifre belirle (4 haneli):");
vaultIsOpen = "setting_password";
} else {
// Vault has password, need to enter it
enteredPassword = "";
showPasswordInput();
showMessage("Şifreyi gir:");
vaultIsOpen = "entering_password";
}
}
function withdrawFromVault() {
if (vaultAmount <= 0) {
showMessage("Çanta boş!");
return;
}
if (vaultPassword === "") {
showMessage("Çantada şifre yok!");
return;
}
enteredPassword = "";
showPasswordInput();
showMessage("Şifreyi gir:");
vaultIsOpen = "withdrawing";
}
function transferVaultToGame() {
if (vaultAmount <= 0) {
showMessage("Çanta boş!");
return;
}
if (vaultPassword === "") {
showMessage("Çantada şifre yok!");
return;
}
enteredPassword = "";
showPasswordInput();
showMessage("Transfer için şifreyi gir:");
vaultIsOpen = "transferring";
}
function confirmPassword() {
if (enteredPassword.length !== 4) {
showMessage("Şifre 4 haneli olmalı!");
return;
}
if (vaultIsOpen === "setting_password") {
// Setting new password
vaultPassword = enteredPassword;
storage.vaultPassword = vaultPassword;
playerGold -= vaultAmountToStore;
vaultAmount += vaultAmountToStore;
storage.vaultAmount = vaultAmount;
addTransaction(-vaultAmountToStore, "Çantaya Para Yatırıldı");
updateGoldDisplay();
updateVaultDisplay();
hidePasswordInput();
showMessage(vaultAmountToStore + " altın çantaya yatırıldı ve şifre belirlendi!");
vaultIsOpen = false;
} else if (vaultIsOpen === "entering_password") {
// Checking password for deposit
if (enteredPassword === vaultPassword) {
playerGold -= vaultAmountToStore;
vaultAmount += vaultAmountToStore;
storage.vaultAmount = vaultAmount;
addTransaction(-vaultAmountToStore, "Çantaya Para Yatırıldı");
updateGoldDisplay();
updateVaultDisplay();
hidePasswordInput();
showMessage(vaultAmountToStore + " altın çantaya yatırıldı!");
vaultIsOpen = false;
} else {
showMessage("Yanlış şifre!");
enteredPassword = "";
updatePasswordDisplay();
}
} else if (vaultIsOpen === "withdrawing") {
// Checking password for withdrawal
if (enteredPassword === vaultPassword) {
var withdrawAmount = Math.min(vaultAmountToStore, vaultAmount);
vaultAmount -= withdrawAmount;
playerGold += withdrawAmount;
storage.vaultAmount = vaultAmount;
if (vaultAmount === 0) {
vaultPassword = "";
storage.vaultPassword = "";
showMessage("Çanta boşaldı, şifre sıfırlandı!");
} else {
showMessage(withdrawAmount + " altın çantadan alındı!");
}
addTransaction(withdrawAmount, "Çantadan Para Alındı");
updateGoldDisplay();
updateVaultDisplay();
hidePasswordInput();
vaultIsOpen = false;
} else {
showMessage("Yanlış şifre!");
enteredPassword = "";
updatePasswordDisplay();
}
} else if (vaultIsOpen === "transferring") {
// Checking password for transfer from previous game
if (enteredPassword === vaultPassword) {
playerGold += vaultAmount;
addTransaction(vaultAmount, "Önceki Oyundan Transfer");
vaultAmount = 0;
vaultPassword = "";
storage.vaultAmount = 0;
storage.vaultPassword = "";
updateGoldDisplay();
updateVaultDisplay();
hidePasswordInput();
showMessage("Önceki oyundan " + vaultAmount + " altın aktarıldı!");
vaultIsOpen = false;
} else {
showMessage("Yanlış şifre!");
enteredPassword = "";
updatePasswordDisplay();
}
}
}
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);
}
});
}
});
}
});
}
// Vault transfer button (for recovering money from previous games)
var transferButton = game.attachAsset('spinButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1800,
y: 2550
});
var transferButtonText = new Text2("ÖNCEKİ OYUN", {
size: 48,
fill: 0xFFFFFF
});
transferButtonText.anchor.set(0.5, 0.5);
transferButtonText.x = 1800;
transferButtonText.y = 2550;
game.addChild(transferButtonText);
// Transfer button event handler
transferButton.down = function (x, y, obj) {
transferVaultToGame();
};
// 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);
// 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
loanAmount = 0;
loanStartTime = 0;
loanTimerActive = false;
loanAmountToTake = 10;
loanAmountDisplay.setText("10");
storage.loanAmount = 0;
storage.loanStartTime = 0;
// Clear all persistent storage data
storage.loanAmount = 0;
storage.loanStartTime = 0;
// Reset transaction history
transactionHistory = [];
updateHistoryDisplay();
// Update all displays
updateGoldDisplay();
updateLoanDisplay();
multiSpinDisplay.setText("1");
messageText.setText("");
hideVault();
// 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();
}
}; ===================================================================
--- original.js
+++ change.js
@@ -374,8 +374,151 @@
loanTimerText.anchor.set(0.5, 0.5);
loanTimerText.x = 200;
loanTimerText.y = 2250;
game.addChild(loanTimerText);
+// Vault system variables
+var vaultAmount = storage.vaultAmount || 0;
+var vaultPassword = storage.vaultPassword || "";
+var vaultIsOpen = false;
+var vaultAmountToStore = 10;
+var enteredPassword = "";
+// Vault button
+var vaultButton = game.attachAsset('spinButton', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1800,
+ y: 1900
+});
+var vaultButtonText = new Text2("PARA ÇANTASI", {
+ size: 48,
+ fill: 0xFFFFFF
+});
+vaultButtonText.anchor.set(0.5, 0.5);
+vaultButtonText.x = 1800;
+vaultButtonText.y = 1900;
+game.addChild(vaultButtonText);
+// Vault amount input display
+var vaultAmountDisplay = new Text2("10", {
+ size: 60,
+ fill: 0xFFD700
+});
+vaultAmountDisplay.anchor.set(0.5, 0.5);
+vaultAmountDisplay.x = 1800;
+vaultAmountDisplay.y = 2000;
+game.addChild(vaultAmountDisplay);
+// Vault amount adjustment buttons
+var vaultDownButton = game.attachAsset('betButton', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1700,
+ y: 2000
+});
+var vaultDownText = new Text2("-", {
+ size: 40,
+ fill: 0xFFFFFF
+});
+vaultDownText.anchor.set(0.5, 0.5);
+vaultDownText.x = 1700;
+vaultDownText.y = 2000;
+game.addChild(vaultDownText);
+var vaultUpButton = game.attachAsset('betButton', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1900,
+ y: 2000
+});
+var vaultUpText = new Text2("+", {
+ size: 40,
+ fill: 0xFFFFFF
+});
+vaultUpText.anchor.set(0.5, 0.5);
+vaultUpText.x = 1900;
+vaultUpText.y = 2000;
+game.addChild(vaultUpText);
+// Vault status display
+var vaultStatusText = new Text2("", {
+ size: 50,
+ fill: 0x00FF00
+});
+vaultStatusText.anchor.set(0.5, 0.5);
+vaultStatusText.x = 1800;
+vaultStatusText.y = 2100;
+game.addChild(vaultStatusText);
+// Password display (hidden)
+var passwordDisplay = new Text2("Şifre: ****", {
+ size: 40,
+ fill: 0xFFFFFF
+});
+passwordDisplay.anchor.set(0.5, 0.5);
+passwordDisplay.x = 1800;
+passwordDisplay.y = 2150;
+passwordDisplay.visible = false;
+game.addChild(passwordDisplay);
+// Password buttons (0-9)
+var passwordButtons = [];
+for (var i = 0; i < 10; i++) {
+ var row = Math.floor(i / 3);
+ var col = i % 3;
+ if (i === 9) {
+ // Button 0 goes to bottom center
+ row = 3;
+ col = 1;
+ }
+ var button = game.attachAsset('betButton', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1700 + col * 100,
+ y: 2200 + row * 80
+ });
+ var buttonText = new Text2(i.toString(), {
+ size: 35,
+ fill: 0xFFFFFF
+ });
+ buttonText.anchor.set(0.5, 0.5);
+ buttonText.x = 1700 + col * 100;
+ buttonText.y = 2200 + row * 80;
+ buttonText.visible = false;
+ game.addChild(buttonText);
+ button.visible = false;
+ button.digit = i;
+ passwordButtons.push({
+ button: button,
+ text: buttonText
+ });
+}
+// Password clear and confirm buttons
+var clearPasswordButton = game.attachAsset('betButton', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1600,
+ y: 2440
+});
+var clearPasswordText = new Text2("TEMİZLE", {
+ size: 30,
+ fill: 0xFFFFFF
+});
+clearPasswordText.anchor.set(0.5, 0.5);
+clearPasswordText.x = 1600;
+clearPasswordText.y = 2440;
+clearPasswordButton.visible = false;
+clearPasswordText.visible = false;
+game.addChild(clearPasswordText);
+var confirmPasswordButton = game.attachAsset('betButton', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1900,
+ y: 2440
+});
+var confirmPasswordText = new Text2("ONAYLA", {
+ size: 30,
+ fill: 0xFFFFFF
+});
+confirmPasswordText.anchor.set(0.5, 0.5);
+confirmPasswordText.x = 1900;
+confirmPasswordText.y = 2440;
+confirmPasswordButton.visible = false;
+confirmPasswordText.visible = false;
+game.addChild(confirmPasswordText);
// Message display
var messageText = new Text2("", {
size: 64,
fill: 0xFFFF00
@@ -668,8 +811,42 @@
};
repayButton.down = function (x, y, obj) {
repayLoan(loanAmountToTake);
};
+// Vault system event handlers
+vaultButton.down = function (x, y, obj) {
+ depositToVault();
+};
+vaultUpButton.down = function (x, y, obj) {
+ if (vaultAmountToStore < 500) {
+ vaultAmountToStore += 10;
+ vaultAmountDisplay.setText(vaultAmountToStore.toString());
+ }
+};
+vaultDownButton.down = function (x, y, obj) {
+ if (vaultAmountToStore > 10) {
+ vaultAmountToStore -= 10;
+ vaultAmountDisplay.setText(vaultAmountToStore.toString());
+ }
+};
+// Password button event handlers
+for (var i = 0; i < passwordButtons.length; i++) {
+ (function (digit) {
+ passwordButtons[digit].button.down = function (x, y, obj) {
+ if (enteredPassword.length < 4) {
+ enteredPassword += digit.toString();
+ updatePasswordDisplay();
+ }
+ };
+ })(i);
+}
+clearPasswordButton.down = function (x, y, obj) {
+ enteredPassword = "";
+ updatePasswordDisplay();
+};
+confirmPasswordButton.down = function (x, y, obj) {
+ confirmPassword();
+};
function updateLoanDisplay() {
if (loanAmount > 0) {
loanStatusText.setText("Borç: " + loanAmount);
var currentTime = Date.now();
@@ -716,8 +893,10 @@
updateLoanDisplay();
showMessage(amount + " altın borç aldın! 5 dakikan var!");
}
function repayLoan(amount) {
+ // Initialize vault system
+ updateVaultDisplay();
if (loanAmount <= 0) {
showMessage("Borcun yok!");
return;
}
@@ -742,8 +921,172 @@
} else {
showMessage(repayAmount + " altın ödendi! Kalan borç: " + loanAmount);
}
}
+function updateVaultDisplay() {
+ if (vaultAmount > 0) {
+ vaultStatusText.setText("Çanta: " + vaultAmount + " altın");
+ } else {
+ vaultStatusText.setText("Çanta boş");
+ }
+}
+function showPasswordInput() {
+ passwordDisplay.visible = true;
+ clearPasswordButton.visible = true;
+ clearPasswordText.visible = true;
+ confirmPasswordButton.visible = true;
+ confirmPasswordText.visible = true;
+ for (var i = 0; i < passwordButtons.length; i++) {
+ passwordButtons[i].button.visible = true;
+ passwordButtons[i].text.visible = true;
+ }
+ updatePasswordDisplay();
+}
+function hidePasswordInput() {
+ passwordDisplay.visible = false;
+ clearPasswordButton.visible = false;
+ clearPasswordText.visible = false;
+ confirmPasswordButton.visible = false;
+ confirmPasswordText.visible = false;
+ for (var i = 0; i < passwordButtons.length; i++) {
+ passwordButtons[i].button.visible = false;
+ passwordButtons[i].text.visible = false;
+ }
+}
+function updatePasswordDisplay() {
+ var displayText = "Şifre: ";
+ for (var i = 0; i < enteredPassword.length; i++) {
+ displayText += "*";
+ }
+ passwordDisplay.setText(displayText);
+}
+function depositToVault() {
+ if (playerGold < vaultAmountToStore) {
+ showMessage("Yeterli altının yok!");
+ return;
+ }
+ if (vaultPassword === "") {
+ // First time depositing, need to set password
+ enteredPassword = "";
+ showPasswordInput();
+ showMessage("Yeni şifre belirle (4 haneli):");
+ vaultIsOpen = "setting_password";
+ } else {
+ // Vault has password, need to enter it
+ enteredPassword = "";
+ showPasswordInput();
+ showMessage("Şifreyi gir:");
+ vaultIsOpen = "entering_password";
+ }
+}
+function withdrawFromVault() {
+ if (vaultAmount <= 0) {
+ showMessage("Çanta boş!");
+ return;
+ }
+ if (vaultPassword === "") {
+ showMessage("Çantada şifre yok!");
+ return;
+ }
+ enteredPassword = "";
+ showPasswordInput();
+ showMessage("Şifreyi gir:");
+ vaultIsOpen = "withdrawing";
+}
+function transferVaultToGame() {
+ if (vaultAmount <= 0) {
+ showMessage("Çanta boş!");
+ return;
+ }
+ if (vaultPassword === "") {
+ showMessage("Çantada şifre yok!");
+ return;
+ }
+ enteredPassword = "";
+ showPasswordInput();
+ showMessage("Transfer için şifreyi gir:");
+ vaultIsOpen = "transferring";
+}
+function confirmPassword() {
+ if (enteredPassword.length !== 4) {
+ showMessage("Şifre 4 haneli olmalı!");
+ return;
+ }
+ if (vaultIsOpen === "setting_password") {
+ // Setting new password
+ vaultPassword = enteredPassword;
+ storage.vaultPassword = vaultPassword;
+ playerGold -= vaultAmountToStore;
+ vaultAmount += vaultAmountToStore;
+ storage.vaultAmount = vaultAmount;
+ addTransaction(-vaultAmountToStore, "Çantaya Para Yatırıldı");
+ updateGoldDisplay();
+ updateVaultDisplay();
+ hidePasswordInput();
+ showMessage(vaultAmountToStore + " altın çantaya yatırıldı ve şifre belirlendi!");
+ vaultIsOpen = false;
+ } else if (vaultIsOpen === "entering_password") {
+ // Checking password for deposit
+ if (enteredPassword === vaultPassword) {
+ playerGold -= vaultAmountToStore;
+ vaultAmount += vaultAmountToStore;
+ storage.vaultAmount = vaultAmount;
+ addTransaction(-vaultAmountToStore, "Çantaya Para Yatırıldı");
+ updateGoldDisplay();
+ updateVaultDisplay();
+ hidePasswordInput();
+ showMessage(vaultAmountToStore + " altın çantaya yatırıldı!");
+ vaultIsOpen = false;
+ } else {
+ showMessage("Yanlış şifre!");
+ enteredPassword = "";
+ updatePasswordDisplay();
+ }
+ } else if (vaultIsOpen === "withdrawing") {
+ // Checking password for withdrawal
+ if (enteredPassword === vaultPassword) {
+ var withdrawAmount = Math.min(vaultAmountToStore, vaultAmount);
+ vaultAmount -= withdrawAmount;
+ playerGold += withdrawAmount;
+ storage.vaultAmount = vaultAmount;
+ if (vaultAmount === 0) {
+ vaultPassword = "";
+ storage.vaultPassword = "";
+ showMessage("Çanta boşaldı, şifre sıfırlandı!");
+ } else {
+ showMessage(withdrawAmount + " altın çantadan alındı!");
+ }
+ addTransaction(withdrawAmount, "Çantadan Para Alındı");
+ updateGoldDisplay();
+ updateVaultDisplay();
+ hidePasswordInput();
+ vaultIsOpen = false;
+ } else {
+ showMessage("Yanlış şifre!");
+ enteredPassword = "";
+ updatePasswordDisplay();
+ }
+ } else if (vaultIsOpen === "transferring") {
+ // Checking password for transfer from previous game
+ if (enteredPassword === vaultPassword) {
+ playerGold += vaultAmount;
+ addTransaction(vaultAmount, "Önceki Oyundan Transfer");
+ vaultAmount = 0;
+ vaultPassword = "";
+ storage.vaultAmount = 0;
+ storage.vaultPassword = "";
+ updateGoldDisplay();
+ updateVaultDisplay();
+ hidePasswordInput();
+ showMessage("Önceki oyundan " + vaultAmount + " altın aktarıldı!");
+ vaultIsOpen = false;
+ } else {
+ showMessage("Yanlış şifre!");
+ enteredPassword = "";
+ updatePasswordDisplay();
+ }
+ }
+}
function triggerJumpscare() {
// Create black overlay
var blackOverlay = game.attachAsset('segment', {
anchorX: 0,
@@ -806,8 +1149,27 @@
});
}
});
}
+// Vault transfer button (for recovering money from previous games)
+var transferButton = game.attachAsset('spinButton', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1800,
+ y: 2550
+});
+var transferButtonText = new Text2("ÖNCEKİ OYUN", {
+ size: 48,
+ fill: 0xFFFFFF
+});
+transferButtonText.anchor.set(0.5, 0.5);
+transferButtonText.x = 1800;
+transferButtonText.y = 2550;
+game.addChild(transferButtonText);
+// Transfer button event handler
+transferButton.down = function (x, y, obj) {
+ transferVaultToGame();
+};
// Create surrender button
var surrenderButton = game.attachAsset('spinButton', {
anchorX: 0.5,
anchorY: 0.5,