User prompt
Müzik kutusunu ortaya ak çünkü kapı kapalı iken müzik kutusu sarılmıyor
User prompt
bi kamera sesi oluşur kamerayı açıp kapadığında bu ses çıksın
User prompt
Puppet karakteri sadece Müzik kutusu "0" olursa saldırsın başka türlü saldırmasın
User prompt
bu hataları düzelt Eğer karakter sağdan geliyorsa sağ kapıdan saldırsın soldan geliyorsa sol kapıdan saldırsın bu hata hangi karakterlerde varsa hepsini düzelt
User prompt
başka bir ışık sesi daha oluştur eğer "Left Light" ve "Right Light" ışıkları basılınca kapıda bir karekter varsa bu ses çalsın
User prompt
Işık Kapalı durumdan açık duruma geçince ses çalsın açık durumdan kapalı duruma geçince ses çalmasın
User prompt
Kapı açık durumdan kapalı duruma geçince ses çalsın kapalı durumdan açık duruma geçince ses çalmasın
User prompt
bi tane ışık sesi oluşur ve onu her iki ışık içinde kullan
User prompt
bi tane kapı sesi oluşut ve onu her iki kapı içinde kullan
User prompt
müzik kutusuna basılı tutunca sarabilelim ayrıca müzik kutusunun düşme hızı dercesine göre değişsin yani 1 ise daha yavaş azalsın 10 ise daha hızlı azalsın arada kalanlar içinde ona göre bir hız ayarlansın ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Puppet karakteri için bir tane müzik kutusu olsun ofisete bir yere koy o sürekli azalan bişey olsun bizde kutunun üstüne basınca o kutuyu tekrar saralım ve yükselsin kutu 0 olduğunda puppet karakteri jumpscare atsın ↪💡 Consider importing and using the following plugins: @upit/tween.v1
Code edit (1 edits merged)
Please save this source code
User prompt
"My Fun Day" Posterinin üstüne koy ses butonunu
User prompt
bu düğmeyi şimdi posterin olduğu yere götür oraya ok freddynin burnunun üstüne
User prompt
bi tane düğme oluştur o zaman her o düğmeye bastığımızda ses çalsın ama düğme "My Fun Day" posterindeki freddy'nin burnunun hizasında olsun
User prompt
çalışmıyor posterdeki Freddynin burnuna basıyorum ses çıkmıyor
User prompt
Office_bg de bir tane "My Fun Day" yazan bir poster var o posterdeki freddy'nin burnuna her bastığımızda bir ses çalsın Oraya gözle görülmeyen ama etkileşime girebildiğimiz bir düğüme ekle tam burun kısmına o burna her bastığımızda ses dosyasını çalışır ama hiç delay olmasın basığımız anda çalsın ses
User prompt
yine aynı hata var Yine balonla birlikte geliyor önce balon gelsin 10 Saniye de patlatamazsak jumpscare atsın ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Önce balonu göster balonu 10 saniye içinde patlatamazsak jumpscare yapsın Pennywise ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Pennywise'ın jumpscare'ı diğerlerinden farklı olacak... Ofise kırmızı bir balon gelecek eğer 10 saniye içerisinde üstüne tıklayıp katlamazsak jumpscare atacak ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
yeni 4 tane karakter daha ekle bunlar "pennywise,chucky,Momo,KY kız"
User prompt
"EV ZİYARETLENDİN!!" Yazısı "Game Over" ekranında kaybolmasın tekrar oyunu başlattığımızda kaybolsun
User prompt
Testo Taylan jumpscare attığında En alttaki boş kısmında Okunacak şekilde "EV ZİYARETLENDİN!!" yazsın
User prompt
Testo Taylan jumpscare attığında Kaybettiniz kısmında "EV ZİYARETLENDİN!!" yazsın
User prompt
hâlâ 6:00 A.M gösteriyor yukarıda
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ // AggroSlider class removed (no longer needed) // Animatronic class var Animatronic = Container.expand(function () { var self = Container.call(this); // Properties self.name = ''; self.aggression = 0; // 0-10 self.position = 0; // 0: stage, 1: hall, 2: door self.active = false; self.lastMoveTick = 0; self.moveInterval = 0; // How often to try to move (in ticks) self.headAsset = null; self.hasMovedFirstTime = false; // Track if animatronic has moved for the first time self.waitingAtDoor = false; // Track if waiting at closed door self.doorWaitStartTick = 0; // When started waiting at door self.returningToStart = false; // Track if returning to start position self.returnedToStartTick = 0; // When returned to start position self.musicPlaying = false; // Track if music is currently playing // Set animatronic type self.setType = function (type) { self.name = type; if (type === 'Freddy') { self.headAsset = self.attachAsset('freddy_head', { anchorX: 0.5, anchorY: 0.5 }); } else if (type === 'Bonnie') { self.headAsset = self.attachAsset('bonnie_head', { anchorX: 0.5, anchorY: 0.5 }); } else if (type === 'Chica') { self.headAsset = self.attachAsset('chica_head', { anchorX: 0.5, anchorY: 0.5 }); } else if (type === 'Foxy') { self.headAsset = self.attachAsset('foxy_head', { anchorX: 0.5, anchorY: 0.5 }); } else if (type === 'Mangle') { self.headAsset = self.attachAsset('mangle_head', { anchorX: 0.5, anchorY: 0.5 }); } else if (type === 'Puppet') { self.headAsset = self.attachAsset('puppet_head', { anchorX: 0.5, anchorY: 0.5 }); } else if (type === 'Balloon Boy') { self.headAsset = self.attachAsset('balloon_boy_head', { anchorX: 0.5, anchorY: 0.5 }); } else if (type === 'Golden Freddy') { self.headAsset = self.attachAsset('golden_freddy_head', { anchorX: 0.5, anchorY: 0.5 }); } else if (type === 'Baldi') { self.headAsset = self.attachAsset('baldi_head', { anchorX: 0.5, anchorY: 0.5 }); } else if (type === 'Herobrine') { self.headAsset = self.attachAsset('herobrine_head', { anchorX: 0.5, anchorY: 0.5 }); } else if (type === 'McDonalds Clown') { self.headAsset = self.attachAsset('mcdonalds_clown_head', { anchorX: 0.5, anchorY: 0.5 }); } else if (type === 'Chuck E Cheese') { self.headAsset = self.attachAsset('chuck_e_cheese_head', { anchorX: 0.5, anchorY: 0.5 }); } else if (type === 'Freddy Krueger') { self.headAsset = self.attachAsset('freddy_krueger_head', { anchorX: 0.5, anchorY: 0.5 }); } else if (type === 'Testo Taylan') { self.headAsset = self.attachAsset('testo_taylan_head', { anchorX: 0.5, anchorY: 0.5 }); } else if (type === 'Jeff The Killer') { self.headAsset = self.attachAsset('jeff_the_killer_head', { anchorX: 0.5, anchorY: 0.5 }); } else if (type === 'Smile Dog') { self.headAsset = self.attachAsset('smile_dog_head', { anchorX: 0.5, anchorY: 0.5 }); } else if (type === 'Pennywise') { self.headAsset = self.attachAsset('pennywise_head', { anchorX: 0.5, anchorY: 0.5 }); } else if (type === 'Chucky') { self.headAsset = self.attachAsset('chucky_head', { anchorX: 0.5, anchorY: 0.5 }); } else if (type === 'Momo') { self.headAsset = self.attachAsset('momo_head', { anchorX: 0.5, anchorY: 0.5 }); } else if (type === 'KY kız') { self.headAsset = self.attachAsset('ky_kiz_head', { anchorX: 0.5, anchorY: 0.5 }); } }; // Set aggression (0-10) self.setAggression = function (level) { self.aggression = level; // Lower interval = more aggressive self.moveInterval = 180 - level * 15; // 180 ticks (3s) at 0, 30 ticks (0.5s) at 10 if (self.moveInterval < 30) { self.moveInterval = 30; } }; // Reset animatronic to start self.reset = function () { self.position = 0; self.active = self.aggression > 0; self.lastMoveTick = LK.ticks; self.hasMovedFirstTime = false; self.waitingAtDoor = false; self.doorWaitStartTick = 0; self.returningToStart = false; self.returnedToStartTick = 0; self.musicPlaying = false; }; // Try to move forward self.tryMove = function () { if (!self.active) { return; } if (LK.ticks - self.lastMoveTick < self.moveInterval) { return; } // Check if returning to start if (self.returningToStart) { // Wait 6-7 seconds after returning before moving again var waitAfterReturn = 360 + Math.random() * 60; // 6-7 seconds in ticks if (LK.ticks - self.returnedToStartTick >= waitAfterReturn) { self.returningToStart = false; self.lastMoveTick = LK.ticks; } return; } // Check if waiting at door if (self.waitingAtDoor) { // Wait 3-4 seconds then return to start var doorWaitTime = 180 + Math.random() * 60; // 3-4 seconds in ticks if (LK.ticks - self.doorWaitStartTick >= doorWaitTime) { // Return to start position self.position = 0; self.waitingAtDoor = false; self.returningToStart = true; self.returnedToStartTick = LK.ticks; // Stop Testo Taylan music when returning to start if (self.name === 'Testo Taylan' && self.musicPlaying) { LK.getSound('testo_taylan_music').stop(); self.musicPlaying = false; } } return; } // Check if at door and door is closed if (self.position === 2) { var doorClosed = false; // Check which side this animatronic belongs to if (self.name === 'Bonnie' || self.name === 'Foxy' || self.name === 'Mangle' || self.name === 'Puppet' || self.name === 'Baldi' || self.name === 'Herobrine' || self.name === 'Freddy Krueger') { doorClosed = leftDoorClosed; } else { doorClosed = rightDoorClosed; } if (doorClosed) { if (!self.waitingAtDoor) { // Start waiting at door self.waitingAtDoor = true; self.doorWaitStartTick = LK.ticks; } return; } } // Normal movement logic var chance = self.aggression / 10; if (Math.random() < chance) { // Play sound for Foxy's first movement if (self.name === 'Foxy' && !self.hasMovedFirstTime) { LK.getSound('foxy_move').play(); self.hasMovedFirstTime = true; } // Start playing music for Testo Taylan when starting to move if (self.name === 'Testo Taylan' && !self.musicPlaying && self.position === 0) { LK.getSound('testo_taylan_music').play(); self.musicPlaying = true; } self.position++; if (self.position > 2) { self.position = 2; } } self.lastMoveTick = LK.ticks; }; // For camera view: get current room name self.getRoom = function () { if (self.position === 0) { return 'Stage'; } if (self.position === 1) { return self.name === 'Bonnie' || self.name === 'Foxy' ? 'Left Hall' : 'Right Hall'; } if (self.position === 2) { return self.name === 'Bonnie' || self.name === 'Foxy' ? 'Left Door' : 'Right Door'; } return ''; }; // For office jumpscare self.isAtDoor = function () { return self.position === 2; }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x111111 }); /**** * Game Code ****/ // Start button // Aggression slider bar // Camera view background // Office background // Camera button // Door panels // Door buttons // Animatronic heads (simple colored ellipses for each animatronic) // --- GLOBALS --- var animatronics = []; var aggroSliders = []; var aggroLabels = []; var aggroValueTexts = []; var startBtn = null; var nightStarted = false; var nightStartTick = 0; var timeTxt = null; var hour = 12; var minute = 0; var leftDoorClosed = false; var rightDoorClosed = false; var leftLightOn = false; var rightLightOn = false; var camOpen = false; var camBtn = null; var leftDoorBtn = null; var rightDoorBtn = null; var leftLightBtn = null; var rightLightBtn = null; var officeBg = null; var camBg = null; var camAnimatronicHeads = []; var jumpscareActive = false; var jumpscareAnim = null; var jumpscareAnimatronic = null; var jumpscareTick = 0; var jumpscareText = null; var officeAnimatronicHeads = []; var leftDoorPanel = null; var rightDoorPanel = null; var camRoomTxt = null; var camCloseBtn = null; var camCloseTxt = null; var camAnimatronicRoomTxts = []; var camAnimatronicRoomHeads = []; var camAnimatronicRoomNames = []; var camAnimatronicRoomHeadObjs = []; var camAnimatronicRoomTxtObjs = []; var camAnimatronicRoomY = 300; var camAnimatronicRoomSpacing = 300; var camAnimatronicRoomStartX = 400; var camAnimatronicRoomStartY = 300; var camAnimatronicRoomHeadSize = 120; var camAnimatronicRoomTxtSize = 60; var camAnimatronicRoomTxtColor = "#ffffff"; var camAnimatronicRoomHeadAnchor = 0.5; var camAnimatronicRoomTxtAnchor = 0.5; var camAnimatronicRoomTxtYOffset = 100; var camAnimatronicRoomHeadYOffset = 0; var pennywiseBalloon = null; var balloonSpawnTick = 0; var balloonClickDeadline = 0; var balloonClicked = false; var mapBg = null; var musicBox = null; var musicBoxHandle = null; var musicBoxLevel = 100; var musicBoxDecayRate = 0.3; var musicBoxLevelText = null; var musicBoxHeld = false; var musicBoxWindingRate = 2.0; var mapRooms = []; var mapAnimatronicHeads = []; var mapRoomLabels = []; var roomPositions = { 'Stage': { x: 900, y: 300 }, 'Left Hall': { x: 600, y: 450 }, 'Right Hall': { x: 1200, y: 450 }, 'Left Door': { x: 400, y: 600 }, 'Right Door': { x: 1400, y: 600 }, 'Office': { x: 900, y: 750 } }; // --- SETUP: Custom Night Menu --- function setupCustomNightMenu() { // Clear game children while (game.children.length > 0) { game.children[0].destroy(); } nightStarted = false; jumpscareActive = false; jumpscareText = null; // Clean up Pennywise balloon if (pennywiseBalloon) { pennywiseBalloon.destroy(); pennywiseBalloon = null; } balloonClicked = false; animatronics = []; aggroSliders = []; aggroLabels = []; aggroValueTexts = []; officeAnimatronicHeads = []; // Title var titleTxt = new Text2('Custom Night', { size: 140, fill: "#fff" }); titleTxt.anchor.set(0.5, 0); titleTxt.x = 2048 / 2; titleTxt.y = 120; game.addChild(titleTxt); // Animatronic names var names = ['Freddy', 'Bonnie', 'Chica', 'Foxy', 'Mangle', 'Puppet', 'Balloon Boy', 'Golden Freddy', 'Baldi', 'Herobrine', 'McDonalds Clown', 'Chuck E Cheese', 'Freddy Krueger', 'Testo Taylan', 'Jeff The Killer', 'Smile Dog', 'Pennywise', 'Chucky', 'Momo', 'KY kız']; var colors = [0x8B5C2A, 0x4B5B9E, 0xE6D13A, 0xB13A2A, 0xFF69B4, 0x800080, 0x32CD32, 0xFFD700, 0x8B7355, 0x2F4F2F, 0xFF0000, 0x800080, 0x8B0000, 0x4169E1, 0x000000, 0x654321]; // Store heads array to set visibility after sliders are created var heads = []; for (var i = 0; i < 20; i++) { // Calculate position for 5 rows of 4 characters each var row = Math.floor(i / 4); var col = i % 4; var xPos = 400 + col * 400; var yPos = 350 + row * 300; // Head icon var headId = names[i].toLowerCase().replace(' ', '_') + '_head'; // Special case for Chuck E Cheese if (names[i] === 'Chuck E Cheese') { headId = 'chuck_e_cheese_head'; } else if (names[i] === 'Freddy Krueger') { headId = 'freddy_krueger_head'; } else if (names[i] === 'Testo Taylan') { headId = 'testo_taylan_head'; } else if (names[i] === 'Jeff The Killer') { headId = 'jeff_the_killer_head'; } else if (names[i] === 'Smile Dog') { headId = 'smile_dog_head'; } else if (names[i] === 'Pennywise') { headId = 'pennywise_head'; } else if (names[i] === 'Chucky') { headId = 'chucky_head'; } else if (names[i] === 'Momo') { headId = 'momo_head'; } else if (names[i] === 'KY kız') { headId = 'ky_kiz_head'; } var head = LK.getAsset(headId, { anchorX: 0.5, anchorY: 0.5, x: xPos, y: yPos }); game.addChild(head); heads.push(head); // Name label var label = new Text2(names[i], { size: 50, fill: "#fff" }); label.anchor.set(0.5, 0); label.x = xPos; label.y = yPos + 90; game.addChild(label); aggroLabels.push(label); // Aggression value (no slider, just value) var slider = { value: 0, setValue: function setValue(val) { if (val < 0) { val = 0; } if (val > 10) { val = 10; } this.value = val; } }; aggroSliders.push(slider); // Up button (smaller, positioned to the right of character) var upBtn = LK.getAsset('cam_btn', { anchorX: 0.5, anchorY: 0.5, x: xPos + 150, y: yPos - 30, scaleX: 0.6, scaleY: 0.6 }); game.addChild(upBtn); var upTxt = new Text2('▲', { size: 30, fill: "#fff" }); upTxt.anchor.set(0.5, 0.5); upTxt.x = xPos + 150; upTxt.y = yPos - 30; game.addChild(upTxt); // Down button (smaller, positioned to the right of character) var downBtn = LK.getAsset('cam_btn', { anchorX: 0.5, anchorY: 0.5, x: xPos + 150, y: yPos + 30, scaleX: 0.6, scaleY: 0.6 }); game.addChild(downBtn); var downTxt = new Text2('▼', { size: 30, fill: "#fff" }); downTxt.anchor.set(0.5, 0.5); downTxt.x = xPos + 150; downTxt.y = yPos + 30; game.addChild(downTxt); // Value text (smaller, positioned to the right of character) var valueTxt = new Text2('0', { size: 40, fill: "#fff" }); valueTxt.anchor.set(0.5, 0.5); valueTxt.x = xPos + 150; valueTxt.y = yPos; game.addChild(valueTxt); aggroValueTexts.push(valueTxt); // Slider change event (function (idx, sliderRef, valueTxtRef, headRef) { sliderRef.onChange = function (val) { valueTxtRef.setText(val); headRef.visible = val > 0; }; upBtn.down = function (x, y, obj) { sliderRef.setValue(sliderRef.value + 1); if (sliderRef.onChange) { sliderRef.onChange(sliderRef.value); } }; upTxt.down = upBtn.down; downBtn.down = function (x, y, obj) { sliderRef.setValue(sliderRef.value - 1); if (sliderRef.onChange) { sliderRef.onChange(sliderRef.value); } }; downTxt.down = downBtn.down; })(i, slider, valueTxt, heads[i]); } // Set initial head visibility now that sliders exist for (var i = 0; i < heads.length; i++) { heads[i].visible = aggroSliders[i].value > 0; } // Start button startBtn = LK.getAsset('start_btn', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2 + 400, y: 190 }); game.addChild(startBtn); var startTxt = new Text2('Start Night', { size: 70, fill: "#fff" }); startTxt.anchor.set(0.5, 0.5); startTxt.x = 2048 / 2 + 400; startTxt.y = 190; game.addChild(startTxt); // Start button event startBtn.down = function (x, y, obj) { startNight(); }; startTxt.down = function (x, y, obj) { startNight(); }; } // --- START NIGHT --- function startNight() { // Remove menu elements while (game.children.length > 0) { game.children[0].destroy(); } nightStarted = true; jumpscareActive = false; hour = 12; minute = 0; nightStartTick = LK.ticks + 1; // Prevent instant win by offsetting start tick leftDoorClosed = false; rightDoorClosed = false; leftLightOn = false; rightLightOn = false; camOpen = false; officeAnimatronicHeads = []; camAnimatronicHeads = []; camAnimatronicRoomTxtObjs = []; camAnimatronicRoomHeadObjs = []; camAnimatronicRoomNames = []; camAnimatronicRoomHeads = []; camAnimatronicRoomTxts = []; // Reset Pennywise balloon state if (pennywiseBalloon) { pennywiseBalloon.destroy(); pennywiseBalloon = null; } balloonClicked = false; // Create animatronics var names = ['Freddy', 'Bonnie', 'Chica', 'Foxy', 'Mangle', 'Puppet', 'Balloon Boy', 'Golden Freddy', 'Baldi', 'Herobrine', 'McDonalds Clown', 'Chuck E Cheese', 'Freddy Krueger', 'Testo Taylan', 'Jeff The Killer', 'Smile Dog', 'Pennywise', 'Chucky', 'Momo', 'KY kız']; animatronics = []; for (var i = 0; i < 20; i++) { var a = new Animatronic(); a.setType(names[i]); a.setAggression(aggroSliders[i].value); a.reset(); animatronics.push(a); } // Office background officeBg = LK.getAsset('office_bg', { anchorX: 0, anchorY: 0, x: 0, y: 0 }); game.addChild(officeBg); // Visible button for Freddy nose sound effect on "My Fun Day" poster var freddyNoseBtn = LK.getAsset('cam_btn', { anchorX: 0.5, anchorY: 0.5, x: 1550, // Position above the My Fun Day poster y: 300, // Position above the My Fun Day poster scaleX: 0.3, scaleY: 0.3 }); game.addChild(freddyNoseBtn); // Add nose button text var freddyNoseText = new Text2('♪', { size: 30, fill: "#fff" }); freddyNoseText.anchor.set(0.5, 0.5); freddyNoseText.x = 50; freddyNoseText.y = 50; game.addChild(freddyNoseText); // Add click handler for nose button freddyNoseBtn.down = function (x, y, obj) { LK.getSound('freddy_nose_honk').play(); }; // Add click handler for nose text as well freddyNoseText.down = function (x, y, obj) { LK.getSound('freddy_nose_honk').play(); }; // Create music box for Puppet musicBox = LK.getAsset('music_box_bg', { anchorX: 0.5, anchorY: 0.5, x: 300, y: 400 }); game.addChild(musicBox); musicBoxHandle = LK.getAsset('music_box_handle', { anchorX: 0.5, anchorY: 0.5, x: 300, y: 380 }); game.addChild(musicBoxHandle); musicBoxLevelText = new Text2('100', { size: 30, fill: "#fff" }); musicBoxLevelText.anchor.set(0.5, 0.5); musicBoxLevelText.x = 300; musicBoxLevelText.y = 350; game.addChild(musicBoxLevelText); // Music box click handler - start holding musicBox.down = function (x, y, obj) { musicBoxHeld = true; if (musicBoxLevel < 100) { LK.getSound('music_box').play(); } }; musicBoxHandle.down = function (x, y, obj) { musicBoxHeld = true; if (musicBoxLevel < 100) { LK.getSound('music_box').play(); } }; musicBoxLevelText.down = function (x, y, obj) { musicBoxHeld = true; if (musicBoxLevel < 100) { LK.getSound('music_box').play(); } }; // Music box release handlers - stop holding musicBox.up = function (x, y, obj) { musicBoxHeld = false; }; musicBoxHandle.up = function (x, y, obj) { musicBoxHeld = false; }; musicBoxLevelText.up = function (x, y, obj) { musicBoxHeld = false; }; // Reset music box level and held state musicBoxLevel = 100; musicBoxHeld = false; // Door panels leftDoorPanel = LK.getAsset('left_door', { anchorX: 0, anchorY: 0, x: 0, y: 200, scaleX: 2.5, scaleY: 2.2 }); rightDoorPanel = LK.getAsset('right_door', { anchorX: 1, anchorY: 0, x: 2048, y: 200, scaleX: 2.5, scaleY: 2.2 }); leftDoorPanel.visible = false; rightDoorPanel.visible = false; game.addChild(leftDoorPanel); game.addChild(rightDoorPanel); // Door buttons leftDoorBtn = LK.getAsset('door_btn', { anchorX: 0, anchorY: 0, x: 40, y: 1300 }); rightDoorBtn = LK.getAsset('door_btn', { anchorX: 0, anchorY: 0, x: 2048 - 220, y: 1300 }); game.addChild(leftDoorBtn); game.addChild(rightDoorBtn); var leftDoorTxt = new Text2('Left Door', { size: 40, fill: "#fff" }); leftDoorTxt.anchor.set(0.5, 0.5); leftDoorTxt.x = 40 + 90; leftDoorTxt.y = 1300 + 45; game.addChild(leftDoorTxt); var rightDoorTxt = new Text2('Right Door', { size: 40, fill: "#fff" }); rightDoorTxt.anchor.set(0.5, 0.5); rightDoorTxt.x = 2048 - 220 + 90; rightDoorTxt.y = 1300 + 45; game.addChild(rightDoorTxt); // Light buttons leftLightBtn = LK.getAsset('light_btn', { anchorX: 0, anchorY: 0, x: 40, y: 1420 }); rightLightBtn = LK.getAsset('light_btn', { anchorX: 0, anchorY: 0, x: 2048 - 220, y: 1420 }); game.addChild(leftLightBtn); game.addChild(rightLightBtn); var leftLightTxt = new Text2('Left Light', { size: 40, fill: "#222" }); leftLightTxt.anchor.set(0.5, 0.5); leftLightTxt.x = 40 + 90; leftLightTxt.y = 1420 + 45; game.addChild(leftLightTxt); var rightLightTxt = new Text2('Right Light', { size: 40, fill: "#222" }); rightLightTxt.anchor.set(0.5, 0.5); rightLightTxt.x = 2048 - 220 + 90; rightLightTxt.y = 1420 + 45; game.addChild(rightLightTxt); // Camera button camBtn = LK.getAsset('cam_btn', { anchorX: 0.5, anchorY: 0, x: 2048 / 2, y: 1300 }); game.addChild(camBtn); var camBtnTxt = new Text2('CAM', { size: 50, fill: "#fff" }); camBtnTxt.anchor.set(0.5, 0.5); camBtnTxt.x = 2048 / 2; camBtnTxt.y = 1300 + 45; game.addChild(camBtnTxt); // Time text - positioned in top left corner timeTxt = new Text2('12:00 A.M', { size: 90, fill: "#fff" }); timeTxt.anchor.set(0, 0); timeTxt.x = 150; // Avoid the top left 100x100 menu area timeTxt.y = 30; LK.gui.top.addChild(timeTxt); // Office animatronic heads (hidden unless at door) for (var i = 0; i < 20; i++) { var headId = animatronics[i].name.toLowerCase().replace(/ /g, '_') + '_head'; // Special case for Chuck E Cheese if (animatronics[i].name === 'Chuck E Cheese') { headId = 'chuck_e_cheese_head'; } else if (animatronics[i].name === 'Freddy Krueger') { headId = 'freddy_krueger_head'; } else if (animatronics[i].name === 'Testo Taylan') { headId = 'testo_taylan_head'; } else if (animatronics[i].name === 'Jeff The Killer') { headId = 'jeff_the_killer_head'; } else if (animatronics[i].name === 'Smile Dog') { headId = 'smile_dog_head'; } else if (animatronics[i].name === 'Pennywise') { headId = 'pennywise_head'; } else if (animatronics[i].name === 'Chucky') { headId = 'chucky_head'; } else if (animatronics[i].name === 'Momo') { headId = 'momo_head'; } else if (animatronics[i].name === 'KY kız') { headId = 'ky_kiz_head'; } var head = LK.getAsset(headId, { anchorX: 0.5, anchorY: 0.5, x: 0, y: 0 }); head.visible = false; officeAnimatronicHeads.push(head); game.addChild(head); } // Button events leftDoorBtn.down = function (x, y, obj) { var wasOpen = !leftDoorClosed; leftDoorClosed = !leftDoorClosed; // Only play sound when door goes from open to closed if (wasOpen && leftDoorClosed) { LK.getSound('door_sound').play(); } leftDoorPanel.visible = leftDoorClosed; // Change button color based on door state if (leftDoorClosed) { tween(leftDoorBtn, { tint: 0xff0000 }, { duration: 200 }); } else { tween(leftDoorBtn, { tint: 0xffffff }, { duration: 200 }); } }; rightDoorBtn.down = function (x, y, obj) { var wasOpen = !rightDoorClosed; rightDoorClosed = !rightDoorClosed; // Only play sound when door goes from open to closed if (wasOpen && rightDoorClosed) { LK.getSound('door_sound').play(); } rightDoorPanel.visible = rightDoorClosed; // Change button color based on door state if (rightDoorClosed) { tween(rightDoorBtn, { tint: 0xff0000 }, { duration: 200 }); } else { tween(rightDoorBtn, { tint: 0xffffff }, { duration: 200 }); } }; leftLightBtn.down = function (x, y, obj) { LK.getSound('light_sound').play(); leftLightOn = !leftLightOn; // Check if any left-side animatronic is at door var leftSideAtDoor = false; for (var i = 0; i < animatronics.length; i++) { if ((i === 1 || i === 3 || i === 4 || i === 5 || i === 8 || i === 9 || i === 12 || i === 16 || i === 17) && animatronics[i].isAtDoor()) { leftSideAtDoor = true; break; } } // Set button color based on whether someone is at door if (leftLightOn) { if (leftSideAtDoor) { tween(leftLightBtn, { tint: 0xff0000 }, { duration: 200 }); } else { tween(leftLightBtn, { tint: 0x00ff00 }, { duration: 200 }); } } else { tween(leftLightBtn, { tint: 0xffffff }, { duration: 200 }); } }; rightLightBtn.down = function (x, y, obj) { LK.getSound('light_sound').play(); rightLightOn = !rightLightOn; // Check if any right-side animatronic is at door var rightSideAtDoor = false; for (var i = 0; i < animatronics.length; i++) { if ((i === 2 || i === 0 || i === 6 || i === 7 || i === 10 || i === 11 || i === 13 || i === 14 || i === 15 || i === 18 || i === 19) && animatronics[i].isAtDoor()) { rightSideAtDoor = true; break; } } // Set button color based on whether someone is at door if (rightLightOn) { if (rightSideAtDoor) { tween(rightLightBtn, { tint: 0xff0000 }, { duration: 200 }); } else { tween(rightLightBtn, { tint: 0x00ff00 }, { duration: 200 }); } } else { tween(rightLightBtn, { tint: 0xffffff }, { duration: 200 }); } }; camBtn.down = function (x, y, obj) { openCamera(); }; } // --- CAMERA VIEW --- function openCamera() { camOpen = true; // Hide CAM button camBtn.visible = false; // Create map background mapBg = LK.getAsset('map_bg', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 900 / 2 }); game.addChild(mapBg); // Create room representations mapRooms = []; mapRoomLabels = []; mapAnimatronicHeads = []; // Stage room var stageRoom = LK.getAsset('room_stage', { anchorX: 0.5, anchorY: 0.5, x: roomPositions['Stage'].x, y: roomPositions['Stage'].y }); game.addChild(stageRoom); mapRooms.push(stageRoom); var stageLabel = new Text2('STAGE', { size: 30, fill: 0xFFFFFF }); stageLabel.anchor.set(0.5, 0.5); stageLabel.x = roomPositions['Stage'].x; stageLabel.y = roomPositions['Stage'].y - 90; game.addChild(stageLabel); mapRoomLabels.push(stageLabel); // Left Hall room var leftHallRoom = LK.getAsset('room_left_hall', { anchorX: 0.5, anchorY: 0.5, x: roomPositions['Left Hall'].x, y: roomPositions['Left Hall'].y }); game.addChild(leftHallRoom); mapRooms.push(leftHallRoom); var leftHallLabel = new Text2('LEFT HALL', { size: 25, fill: 0xFFFFFF }); leftHallLabel.anchor.set(0.5, 0.5); leftHallLabel.x = roomPositions['Left Hall'].x; leftHallLabel.y = roomPositions['Left Hall'].y - 70; game.addChild(leftHallLabel); mapRoomLabels.push(leftHallLabel); // Right Hall room var rightHallRoom = LK.getAsset('room_right_hall', { anchorX: 0.5, anchorY: 0.5, x: roomPositions['Right Hall'].x, y: roomPositions['Right Hall'].y }); game.addChild(rightHallRoom); mapRooms.push(rightHallRoom); var rightHallLabel = new Text2('RIGHT HALL', { size: 25, fill: 0xFFFFFF }); rightHallLabel.anchor.set(0.5, 0.5); rightHallLabel.x = roomPositions['Right Hall'].x; rightHallLabel.y = roomPositions['Right Hall'].y - 70; game.addChild(rightHallLabel); mapRoomLabels.push(rightHallLabel); // Left Door room var leftDoorRoom = LK.getAsset('room_left_door', { anchorX: 0.5, anchorY: 0.5, x: roomPositions['Left Door'].x, y: roomPositions['Left Door'].y }); game.addChild(leftDoorRoom); mapRooms.push(leftDoorRoom); var leftDoorLabel = new Text2('LEFT DOOR', { size: 20, fill: 0xFFFFFF }); leftDoorLabel.anchor.set(0.5, 0.5); leftDoorLabel.x = roomPositions['Left Door'].x; leftDoorLabel.y = roomPositions['Left Door'].y - 60; game.addChild(leftDoorLabel); mapRoomLabels.push(leftDoorLabel); // Right Door room var rightDoorRoom = LK.getAsset('room_right_door', { anchorX: 0.5, anchorY: 0.5, x: roomPositions['Right Door'].x, y: roomPositions['Right Door'].y }); game.addChild(rightDoorRoom); mapRooms.push(rightDoorRoom); var rightDoorLabel = new Text2('RIGHT DOOR', { size: 20, fill: 0xFFFFFF }); rightDoorLabel.anchor.set(0.5, 0.5); rightDoorLabel.x = roomPositions['Right Door'].x; rightDoorLabel.y = roomPositions['Right Door'].y - 60; game.addChild(rightDoorLabel); mapRoomLabels.push(rightDoorLabel); // Office room (player location) var officeRoom = LK.getAsset('office_room', { anchorX: 0.5, anchorY: 0.5, x: roomPositions['Office'].x, y: roomPositions['Office'].y }); game.addChild(officeRoom); mapRooms.push(officeRoom); var officeLabel = new Text2('OFFICE (YOU)', { size: 25, fill: 0x00FF00 }); officeLabel.anchor.set(0.5, 0.5); officeLabel.x = roomPositions['Office'].x; officeLabel.y = roomPositions['Office'].y - 75; game.addChild(officeLabel); mapRoomLabels.push(officeLabel); // Position animatronics on map for (var i = 0; i < 20; i++) { var a = animatronics[i]; if (a.aggression > 0) { var room = a.getRoom(); var roomPos = roomPositions[room]; if (roomPos) { var headId = a.name.toLowerCase().replace(/ /g, '_') + '_head'; // Special case for Chuck E Cheese if (a.name === 'Chuck E Cheese') { headId = 'chuck_e_cheese_head'; } else if (a.name === 'Freddy Krueger') { headId = 'freddy_krueger_head'; } else if (a.name === 'Testo Taylan') { headId = 'testo_taylan_head'; } else if (a.name === 'Jeff The Killer') { headId = 'jeff_the_killer_head'; } else if (a.name === 'Smile Dog') { headId = 'smile_dog_head'; } else if (a.name === 'Pennywise') { headId = 'pennywise_head'; } else if (a.name === 'Chucky') { headId = 'chucky_head'; } else if (a.name === 'Momo') { headId = 'momo_head'; } else if (a.name === 'KY kız') { headId = 'ky_kiz_head'; } // Count how many animatronics are in this room to position them properly var animatronicsInRoom = []; for (var j = 0; j < 20; j++) { if (animatronics[j].aggression > 0 && animatronics[j].getRoom() === room) { animatronicsInRoom.push(j); } } var indexInRoom = animatronicsInRoom.indexOf(i); var offsetX = (indexInRoom - (animatronicsInRoom.length - 1) / 2) * 80; var head = LK.getAsset(headId, { anchorX: 0.5, anchorY: 0.5, x: roomPos.x + offsetX, y: roomPos.y + 20, scaleX: 0.4, scaleY: 0.4 }); game.addChild(head); mapAnimatronicHeads.push({ head: head, animatronic: a, index: i }); // Add animatronic name below head var nameLabel = new Text2(a.name, { size: 18, fill: 0xFFFF00 }); nameLabel.anchor.set(0.5, 0.5); nameLabel.x = roomPos.x + offsetX; nameLabel.y = roomPos.y + 50; game.addChild(nameLabel); mapRoomLabels.push(nameLabel); } } } // Close camera button camCloseBtn = LK.getAsset('cam_btn', { anchorX: 0.5, anchorY: 0, x: 2048 / 2, y: 1500 }); game.addChild(camCloseBtn); camCloseTxt = new Text2('CLOSE MAP', { size: 50, fill: "#fff" }); camCloseTxt.anchor.set(0.5, 0.5); camCloseTxt.x = 2048 / 2; camCloseTxt.y = 1500 + 45; game.addChild(camCloseTxt); camCloseBtn.down = function (x, y, obj) { closeCamera(); }; camCloseTxt.down = function (x, y, obj) { closeCamera(); }; } function closeCamera() { camOpen = false; // Show CAM button camBtn.visible = true; // Clean up map background if (mapBg) { mapBg.destroy(); mapBg = null; } // Clean up room elements for (var i = 0; i < mapRooms.length; i++) { if (mapRooms[i]) { mapRooms[i].destroy(); } } mapRooms = []; // Clean up room labels and animatronic names for (var i = 0; i < mapRoomLabels.length; i++) { if (mapRoomLabels[i]) { mapRoomLabels[i].destroy(); } } mapRoomLabels = []; // Clean up animatronic heads on map for (var i = 0; i < mapAnimatronicHeads.length; i++) { if (mapAnimatronicHeads[i] && mapAnimatronicHeads[i].head) { mapAnimatronicHeads[i].head.destroy(); } } mapAnimatronicHeads = []; // Clean up close button if (camCloseBtn) { camCloseBtn.down = null; camCloseBtn.destroy(); camCloseBtn = null; } if (camCloseTxt) { camCloseTxt.down = null; camCloseTxt.destroy(); camCloseTxt = null; } } // --- JUMPSCARE --- function triggerJumpscare(animatronicIdx) { jumpscareActive = true; jumpscareAnimatronic = animatronicIdx; jumpscareTick = LK.ticks; // Stop Testo Taylan music if playing if (animatronics[animatronicIdx].name === 'Testo Taylan' && animatronics[animatronicIdx].musicPlaying) { LK.getSound('testo_taylan_music').stop(); animatronics[animatronicIdx].musicPlaying = false; } // Play jumpscare sound LK.getSound('jumpscare').play(); // Show animatronic head in center, scale up var headId = animatronics[animatronicIdx].name.toLowerCase().replace(/ /g, '_') + '_head'; // Special case for Chuck E Cheese if (animatronics[animatronicIdx].name === 'Chuck E Cheese') { headId = 'chuck_e_cheese_head'; } else if (animatronics[animatronicIdx].name === 'Freddy Krueger') { headId = 'freddy_krueger_head'; } else if (animatronics[animatronicIdx].name === 'Testo Taylan') { headId = 'testo_taylan_head'; } else if (animatronics[animatronicIdx].name === 'Jeff The Killer') { headId = 'jeff_the_killer_head'; } else if (animatronics[animatronicIdx].name === 'Smile Dog') { headId = 'smile_dog_head'; } else if (animatronics[animatronicIdx].name === 'Pennywise') { headId = 'pennywise_head'; } else if (animatronics[animatronicIdx].name === 'Chucky') { headId = 'chucky_head'; } else if (animatronics[animatronicIdx].name === 'Momo') { headId = 'momo_head'; } else if (animatronics[animatronicIdx].name === 'KY kız') { headId = 'ky_kiz_head'; } jumpscareAnim = LK.getAsset(headId, { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 900 / 2 + 300, scaleX: 1, scaleY: 1 }); game.addChild(jumpscareAnim); tween(jumpscareAnim, { scaleX: 3, scaleY: 3 }, { duration: 800, easing: tween.cubicOut }); // Flash screen red LK.effects.flashScreen(0xff0000, 800); // Show jumpscare text for Testo Taylan if (animatronics[animatronicIdx].name === 'Testo Taylan') { jumpscareText = new Text2('EV ZİYARETLENDİN!!', { size: 120, fill: 0xFFFFFF }); jumpscareText.anchor.set(0.5, 1); jumpscareText.x = 2048 / 2; jumpscareText.y = 2732 - 100; // Position at bottom of screen game.addChild(jumpscareText); } // After 1s, show game over LK.setTimeout(function () { if (jumpscareAnim) { jumpscareAnim.destroy(); } // Don't destroy jumpscareText here - keep it visible on Game Over screen LK.showGameOver(); }, 1000); } // --- UPDATE LOOP --- game.update = function () { if (!nightStarted) { return; } // Time progression: Each hour = 9 minutes = 540 seconds = 32,400 ticks (9 * 60 * 60 = 32,400) var ticksSinceStart = LK.ticks - nightStartTick; var totalMinutes = Math.floor(ticksSinceStart / 3600); // 60 seconds per minute * 60 ticks per second var gameHours = Math.floor(totalMinutes / 9); // 9 real minutes = 1 game hour var newHour = 12 + gameHours; var newMinute = 0; // Always show :00 minutes for each hour // Handle hour progression properly (12 AM -> 1 AM -> 2 AM -> ... -> 6 AM) if (newHour > 12) { newHour = newHour - 12; // Convert to AM format (13 -> 1, 14 -> 2, etc.) } if (newHour === 0) { newHour = 12; } // Ensure 12 AM shows as 12, not 0 // Cap at 6 AM if (gameHours >= 6) { newHour = 6; newMinute = 0; } if (newHour !== hour || newMinute !== minute) { hour = newHour; minute = newMinute; var ampm = 'A.M'; var hourStr = hour.toString(); var minStr = '00'; // Always show :00 timeTxt.setText(hourStr + ':' + minStr + ' ' + ampm); } // Win condition: 6 AM (requires 6 game hours * 9 real minutes = 54 real minutes total) // Prevent instant win by requiring proper game duration if (gameHours >= 6 && !jumpscareActive) { LK.showYouWin(); return; } // Music box decay and Puppet mechanics var puppetIndex = -1; for (var i = 0; i < animatronics.length; i++) { if (animatronics[i].name === 'Puppet') { puppetIndex = i; break; } } if (puppetIndex !== -1 && animatronics[puppetIndex].aggression > 0) { // Handle music box winding when held if (musicBoxHeld && musicBoxLevel < 100) { musicBoxLevel += musicBoxWindingRate; if (musicBoxLevel > 100) { musicBoxLevel = 100; } // Animate handle rotation while winding if (LK.ticks % 10 === 0) { // Every 10 ticks for smooth animation tween(musicBoxHandle, { rotation: musicBoxHandle.rotation + Math.PI / 4 }, { duration: 200, easing: tween.easeOut }); } } // Calculate dynamic decay rate based on music box level (1-10 scale) var levelScale = Math.max(1, Math.min(10, Math.floor(musicBoxLevel / 10) + 1)); var dynamicDecayRate = 0.5 - (levelScale - 1) * 0.04; // 0.5 at level 1, 0.14 at level 10 // Decay music box level if (!musicBoxHeld) { musicBoxLevel -= dynamicDecayRate; } if (musicBoxLevel < 0) { musicBoxLevel = 0; } musicBoxLevelText.setText(Math.floor(musicBoxLevel).toString()); // Trigger Puppet jumpscare when music box reaches 0 if (musicBoxLevel <= 0 && !jumpscareActive) { triggerJumpscare(puppetIndex); return; } } // Animatronic AI for (var i = 0; i < animatronics.length; i++) { var a = animatronics[i]; a.tryMove(); } // Pennywise special balloon mechanic var pennywiseIndex = -1; for (var i = 0; i < animatronics.length; i++) { if (animatronics[i].name === 'Pennywise') { pennywiseIndex = i; break; } } if (pennywiseIndex !== -1 && animatronics[pennywiseIndex].aggression > 0) { // Check if Pennywise is at door and no balloon is active if (animatronics[pennywiseIndex].isAtDoor() && !pennywiseBalloon && !jumpscareActive) { // Spawn red balloon in office pennywiseBalloon = LK.getAsset('red_balloon', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 1000 }); game.addChild(pennywiseBalloon); balloonSpawnTick = LK.ticks; balloonClickDeadline = LK.ticks + 600; // 10 seconds at 60 FPS balloonClicked = false; // Animate balloon floating slightly tween(pennywiseBalloon, { y: 950 }, { duration: 2000, easing: tween.easeInOut }); // Add click handler to balloon pennywiseBalloon.down = function (x, y, obj) { if (pennywiseBalloon) { balloonClicked = true; // Animate balloon popping/shrinking tween(pennywiseBalloon, { scaleX: 0, scaleY: 0, alpha: 0 }, { duration: 300, onFinish: function onFinish() { if (pennywiseBalloon) { pennywiseBalloon.destroy(); pennywiseBalloon = null; } } }); // Reset Pennywise to start position animatronics[pennywiseIndex].position = 0; animatronics[pennywiseIndex].waitingAtDoor = false; animatronics[pennywiseIndex].returningToStart = true; animatronics[pennywiseIndex].returnedToStartTick = LK.ticks; } }; } // Check if balloon deadline passed without clicking if (pennywiseBalloon && LK.ticks >= balloonClickDeadline && !balloonClicked) { // Trigger Pennywise jumpscare if (pennywiseBalloon) { pennywiseBalloon.destroy(); pennywiseBalloon = null; } triggerJumpscare(pennywiseIndex); return; } } // Office animatronic heads (show if at door and light/door open) for (var i = 0; i < 20; i++) { var a = animatronics[i]; var head = officeAnimatronicHeads[i]; if (!head) { continue; } if (a.isAtDoor()) { if ((i === 1 || i === 3 || i === 4 || i === 5 || i === 8 || i === 9 || i === 12 || i === 16 || i === 17) && leftLightOn && !leftDoorClosed) { // Left side characters (including new ones) head.x = 180; head.y = 900; head.visible = true; } else if ((i === 2 || i === 0 || i === 6 || i === 7 || i === 10 || i === 11 || i === 13 || i === 14 || i === 15 || i === 18 || i === 19) && rightLightOn && !rightDoorClosed) { // Right side characters (including new ones) head.x = 2048 - 180; head.y = 900; head.visible = true; } else { head.visible = false; } } else { head.visible = false; } } // Jumpscare check if (!jumpscareActive) { for (var i = 0; i < animatronics.length; i++) { var a = animatronics[i]; // Skip Pennywise from immediate jumpscare (he uses balloon mechanic) if (a.name === 'Pennywise') { continue; } if (a.isAtDoor() && !a.waitingAtDoor) { if ((i === 1 || i === 3 || i === 4 || i === 5 || i === 8 || i === 9 || i === 12 || i === 16 || i === 17) && !leftDoorClosed) { // Left side characters (including new ones) triggerJumpscare(i); return; } else if ((i === 2 || i === 0 || i === 6 || i === 7 || i === 10 || i === 11 || i === 13 || i === 14 || i === 15 || i === 18 || i === 19) && !rightDoorClosed) { // Right side characters (including new ones) triggerJumpscare(i); return; } } } } // Camera view update - animate animatronic movement on map if (camOpen) { for (var i = 0; i < mapAnimatronicHeads.length; i++) { var mapEntry = mapAnimatronicHeads[i]; if (mapEntry && mapEntry.animatronic) { var currentRoom = mapEntry.animatronic.getRoom(); var roomPos = roomPositions[currentRoom]; if (roomPos) { // Count animatronics in current room for positioning var animatronicsInRoom = []; for (var j = 0; j < 20; j++) { if (animatronics[j].aggression > 0 && animatronics[j].getRoom() === currentRoom) { animatronicsInRoom.push(j); } } var indexInRoom = animatronicsInRoom.indexOf(mapEntry.index); var offsetX = (indexInRoom - (animatronicsInRoom.length - 1) / 2) * 80; var targetX = roomPos.x + offsetX; var targetY = roomPos.y + 20; // Animate movement to new position if different if (Math.abs(mapEntry.head.x - targetX) > 5 || Math.abs(mapEntry.head.y - targetY) > 5) { tween(mapEntry.head, { x: targetX, y: targetY }, { duration: 500, easing: tween.easeOut }); } } } } } }; // --- TOUCH HANDLING --- game.move = function (x, y, obj) { // No slider move handling needed }; game.down = function (x, y, obj) { // No slider down handling needed }; game.up = function (x, y, obj) { // No slider up handling needed }; // --- INIT --- setupCustomNightMenu();
===================================================================
--- original.js
+++ change.js
@@ -817,10 +817,14 @@
game.addChild(head);
}
// Button events
leftDoorBtn.down = function (x, y, obj) {
- LK.getSound('door_sound').play();
+ var wasOpen = !leftDoorClosed;
leftDoorClosed = !leftDoorClosed;
+ // Only play sound when door goes from open to closed
+ if (wasOpen && leftDoorClosed) {
+ LK.getSound('door_sound').play();
+ }
leftDoorPanel.visible = leftDoorClosed;
// Change button color based on door state
if (leftDoorClosed) {
tween(leftDoorBtn, {
@@ -836,10 +840,14 @@
});
}
};
rightDoorBtn.down = function (x, y, obj) {
- LK.getSound('door_sound').play();
+ var wasOpen = !rightDoorClosed;
rightDoorClosed = !rightDoorClosed;
+ // Only play sound when door goes from open to closed
+ if (wasOpen && rightDoorClosed) {
+ LK.getSound('door_sound').play();
+ }
rightDoorPanel.visible = rightDoorClosed;
// Change button color based on door state
if (rightDoorClosed) {
tween(rightDoorBtn, {
Bonnie head. In-Game asset. 2d. High contrast. No shadows
scary chica head. In-Game asset. 2d. High contrast. No shadows
foxy head. In-Game asset. 2d. High contrast. No shadows
freddy head. In-Game asset. 2d. High contrast. No shadows
balloon boy head. In-Game asset. 2d. High contrast. No shadows
golden freddy head. In-Game asset. 2d. High contrast. No shadows
mangle head. In-Game asset. 2d. High contrast. No shadows
puppet FNAF head. In-Game asset. 2d. High contrast. No shadows
chuck e cheese head. In-Game asset. 2d. High contrast. No shadows
herobrine_head. In-Game asset. 2d. High contrast. No shadows
scary baldi face. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
mcdonalds clown scary head. In-Game asset. 2d. High contrast. No shadows
freddy krueger scary head. In-Game asset. 2d. High contrast. No shadows
jeff the killer scary head. In-Game asset. 2d. High contrast. No shadows
The image displays a highly disturbing and unsettling close-up of what appears to be a dog's head, heavily distorted and manipulated to create a horrific effect. The most striking feature is the dog's mouth, stretched into an impossibly wide and menacing grin that reveals numerous sharp, human-like teeth. Its eyes are wide open, round, and blank white or glowing, contributing to an overall vacant and soulless stare. The fur around its face and head is colored in aggressive shades of red and dark brown, giving it a bloodied or demonic appearance. The overall impression is that of a creature from a horror story, designed to evoke fear and discomfort. The background is completely black, isolating the terrifying subject and intensifying its impact.. In-Game asset. 2d. High contrast. No shadows
The image depicts a strange, humanoid creature with an unusual and unsettling appearance. It has a small, elongated head with a pointed nose and large, dark eyes that seem to bulge slightly. The creature has sparse, dark hair on its head, which appears messy and uneven. Its body is thin and frail, covered with patchy, coarse hair across its back and sides. The creature is crouched on all fours, with long, thin arms and legs that bend awkwardly. Its skin looks pale and wrinkled, and it has a hunched posture, as if it is crawling or moving slowly.. In-Game asset. 2d. High contrast. No shadows
momo head. In-Game asset. 2d. High contrast. No shadows
chucky head. In-Game asset. 2d. High contrast. No shadows
pennywise head. In-Game asset. 2d. High contrast. No shadows
Red Balloon. In-Game asset. 2d. High contrast. No shadows
It has a purple ribbon and ribbons on a blue gift box. In-Game asset. 2d. High contrast. No shadows
The red color in the game Among us creates the character in an extremely scary way, the glass of the astronaut suit is broken, his eyes are white, his mouth is so long that it touches his ears when he smiles, and he has a bloody knife in his hand.. In-Game asset. 2d. High contrast. No shadows
one scary porcelain doll. It is clear from the whiteness of his skin that he has been standing there for years, one eye is completely closed and one eye is open but he has no eyes (jet black). She has suffered blows for years, fractures and burns on her head, and her beautiful dress is covered with cobwebs.. In-Game asset. 2d. High contrast. No shadows
the scary cartoon cat. In-Game asset. 2d. High contrast. No shadows
scary stickman. In-Game asset. 2d. High contrast. No shadows
scream (horror movie) face. In-Game asset. 2d. High contrast. No shadows
old phone. In-Game asset. 2d. High contrast. No shadows
a madman wearing a purple security suit. He looks frightening, you can tell he's crazy by the glazed look in his eyes. he's just smiling with a knife in his hand, but in the glazed look in his eyes there's a little cry for help. In-Game asset. 2d. High contrast. No shadows
saw( movie charakter). In-Game asset. 2d. High contrast. No shadows
scp 096 head. In-Game asset. 2d. High contrast. No shadows
scp 173 head. In-Game asset. 2d. High contrast. No shadows
siren head. In-Game asset. 2d. High contrast. No shadows
scary sponge bob. In-Game asset. 2d. High contrast. No shadows
jumpscare
Sound effect
foxy_move
Sound effect
testo_taylan_music
Sound effect
freddy_nose_honk
Sound effect
music_box
Sound effect
door_sound
Sound effect
light_sound
Sound effect
light_character_sound
Sound effect
camera_sound
Sound effect
phone_sound
Sound effect
ambient_hum
Sound effect
power_down
Sound effect
footstep
Sound effect
night_ambience
Music
breathing
Sound effect
golden_freddy_jumpscare
Sound effect