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"); /**** * 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; LK.getSound('win').play(); showMessage("BÜYÜK İKRAMİYE! +8000 ALTIN!"); } else { LK.getSound('lose').play(); showMessage("Boş slot!"); } vaultRevealed++; if (vaultRevealed >= 4) { vaultMode = false; vaultRevealed = 0; hideVault(); } updateGoldDisplay(); } }; 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; // 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); // 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); // 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 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() { 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; } // Regenerate jackpot position for (var i = 0; i < vaultSlots.length; i++) { vaultSlots[i].hasJackpot = false; } var jackpotIndex = Math.floor(Math.random() * 4); vaultSlots[jackpotIndex].hasJackpot = true; } function hideVault() { vaultTitle.visible = false; for (var i = 0; i < vaultSlots.length; i++) { vaultSlots[i].visible = false; } vaultMode = false; if (currentSpinNumber < multiSpinCount && isSpinning) { LK.setTimeout(function () { performSingleSpin(); }, 1000); } 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; } isSpinning = true; currentSpinNumber = 0; performSingleSpin(); } function performSingleSpin() { playerGold -= currentBet; updateGoldDisplay(); LK.getSound('spin').play(); var spins = 3 + Math.random() * 3; var finalAngle = Math.random() * Math.PI * 2; var totalRotation = spins * Math.PI * 2 + finalAngle; tween(wheelContainer, { rotation: wheelContainer.rotation + totalRotation }, { duration: 3000, 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++; if (currentSpinNumber < multiSpinCount && !vaultMode) { LK.setTimeout(function () { performSingleSpin(); }, 1000); } else { isSpinning = false; } } }); } function handleWheelResult(segmentIndex) { var outcome = segments[segmentIndex].outcome; switch (outcome) { case "win40": playerGold += 40; LK.getSound('win').play(); showMessage("40 altın kazandın!"); break; case "doubleOrNothing": playerGold -= 10; updateGoldDisplay(); showMessage("İkiye katla ya da kaybım! Otomatik çevriliyor..."); LK.setTimeout(function () { if (Math.random() < 0.5) { playerGold += 40; LK.getSound('win').play(); showMessage("İkiye katla KAZANDIN! +40 altın!"); } else { playerGold -= 20; LK.getSound('lose').play(); showMessage("İkiye katla KAYBETTİN! -20 altın!"); } updateGoldDisplay(); }, 1000); return; case "doubleBet": playerGold += currentBet * 2; LK.getSound('win').play(); showMessage("Bahisin 2 katını kazandın! +" + currentBet * 2 + " altın!"); break; case "loseBet": 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; if (playerGold < 0) playerGold = 0; LK.getSound('lose').play(); showMessage("Haciz cezası! -100 altın!"); break; case "reset": playerGold = 0; LK.getSound('lose').play(); showMessage("Tüm paran sıfırlandı!"); break; case "quadruple": playerGold *= 4; 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()); } }; 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); } }); } }); } }); } game.update = function () { // Game loop updates handled by tweens and event handlers };
===================================================================
--- original.js
+++ change.js
@@ -74,8 +74,10 @@
var isSpinning = false;
var wheelRotation = 0;
var vaultMode = false;
var vaultRevealed = 0;
+var multiSpinCount = 1;
+var currentSpinNumber = 0;
// Wheel segments data
var segments = [{
text: "40 ALTIN\nKAZAN",
color: 0x90ee90,
@@ -147,25 +149,25 @@
fill: 0xFFD700
});
goldText.anchor.set(0.5, 0);
goldText.x = 1024;
-goldText.y = 100;
+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 = 250;
+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 = 50;
+betDisplayText.y = 250;
game.addChild(betDisplayText);
var spinButton = game.attachAsset('spinButton', {
anchorX: 0.5,
anchorY: 0.5,
@@ -179,36 +181,74 @@
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: 380
+ y: 420
});
var betUpText = new Text2("+10", {
size: 40,
fill: 0xFFFFFF
});
betUpText.anchor.set(0.5, 0.5);
betUpText.x = 900;
-betUpText.y = 380;
+betUpText.y = 420;
game.addChild(betUpText);
var betDownButton = game.attachAsset('betButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1148,
- y: 380
+ y: 420
});
var betDownText = new Text2("-10", {
size: 40,
fill: 0xFFFFFF
});
betDownText.anchor.set(0.5, 0.5);
betDownText.x = 1148;
-betDownText.y = 380;
+betDownText.y = 420;
game.addChild(betDownText);
// Message display
var messageText = new Text2("", {
size: 64,
@@ -273,12 +313,30 @@
vaultTitle.visible = false;
for (var i = 0; i < vaultSlots.length; i++) {
vaultSlots[i].visible = false;
}
+ vaultMode = false;
+ if (currentSpinNumber < multiSpinCount && isSpinning) {
+ LK.setTimeout(function () {
+ performSingleSpin();
+ }, 1000);
+ } 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;
+ }
isSpinning = true;
+ currentSpinNumber = 0;
+ performSingleSpin();
+}
+function performSingleSpin() {
playerGold -= currentBet;
updateGoldDisplay();
LK.getSound('spin').play();
var spins = 3 + Math.random() * 3;
@@ -294,9 +352,16 @@
var normalizedAngle = (finalAngle + Math.PI / 2) % (Math.PI * 2);
var segmentIndex = Math.floor(normalizedAngle / segmentAngle);
segmentIndex = (8 - segmentIndex) % 8;
handleWheelResult(segmentIndex);
- isSpinning = false;
+ currentSpinNumber++;
+ if (currentSpinNumber < multiSpinCount && !vaultMode) {
+ LK.setTimeout(function () {
+ performSingleSpin();
+ }, 1000);
+ } else {
+ isSpinning = false;
+ }
}
});
}
function handleWheelResult(segmentIndex) {
@@ -373,8 +438,20 @@
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());
+ }
+};
function triggerJumpscare() {
// Create black overlay
var blackOverlay = game.attachAsset('segment', {
anchorX: 0,