User prompt
samuray nesnesini koltukun önüne koyun
User prompt
oyunun sonunda oyunmuzu oynadığınız için teşekkürler yazıp altada yapımcılar rıfat ve lider yazar mısın
User prompt
muscle level 1 i 200 strenghtte yap level 2 yi 400 level 3 650 olsun
User prompt
samurayıda koltukun tam 0 a 0 üstüne koy ama tam olsun
User prompt
koltuk adlı nesneyi samuray_üssü nesnesinin altına koy
User prompt
10 yap
User prompt
artır
User prompt
yorulma sayısını azalt
User prompt
kazandın ekranında sarı ekranı kaldır ve yazıyı kırmızı yap ve yeniden oynaya basınca oyunu en başa al
User prompt
gücümüz otomotik olarak artmasın ve gücümüz 717 olunca kazandın ve atalarını gururlandırdın diye bir ekran gelsin ve oyun bitsin
User prompt
karaktere bastıkça animasyon squad animasyonu olsun ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
muscle level 1 le 0 aynı karakter olsun
User prompt
yeni bir seviye geldiğimizde yorulma seviyemiz daha az olsun ve antremanları daha rahat yapalım ayrıca daha fazla strengh kasalım
User prompt
müzik sürekli çalsın ama istediğimiz zamanda durdurmamız için bir buton koy
User prompt
çok hızlı basınca karakter yorulsun ve ard arda basamayalım
User prompt
başta 1 kez tıkladığımızda 1 güç puanı gelirken belli bir süre sonra 5 kezde 1 güç puanı gelsin
Initial prompt
Please save this source code
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
var storage = LK.import("@upit/storage.v1");
/****
* Classes
****/
var ClickIndicator = Container.expand(function () {
var self = Container.call(this);
var indicator = self.attachAsset('click_indicator', {
anchorX: 0.5,
anchorY: 0.5
});
self.show = function (x, y) {
self.x = x;
self.y = y;
self.alpha = 1;
self.scaleX = 0.5;
self.scaleY = 0.5;
tween(self, {
alpha: 0,
scaleX: 1.5,
scaleY: 1.5
}, {
duration: 300,
easing: tween.easeOut,
onFinish: function onFinish() {
self.destroy();
}
});
};
return self;
});
var Equipment = Container.expand(function (type) {
var self = Container.call(this);
var equipmentType = type || 'basic';
var assetName = equipmentType === 'basic' ? 'equipment_basic' : 'equipment_advanced';
var equipment = self.attachAsset(assetName, {
anchorX: 0.5,
anchorY: 0.5
});
self.equipmentType = equipmentType;
return self;
});
var Samurai = Container.expand(function () {
var self = Container.call(this);
var currentMuscleLevel = 0;
var samuraiGraphics = self.attachAsset('samurai_base', {
anchorX: 0.5,
anchorY: 1.0
});
self.updateMuscleLevel = function (level) {
if (level === currentMuscleLevel) return;
currentMuscleLevel = level;
self.removeChild(samuraiGraphics);
var assetName = 'samurai_base';
if (level >= 2) assetName = 'samurai_muscle2';
if (level >= 3) assetName = 'samurai_muscle3';
samuraiGraphics = self.attachAsset(assetName, {
anchorX: 0.5,
anchorY: 1.0
});
// Visual feedback for level up
tween(self, {
scaleX: 1.2,
scaleY: 1.2
}, {
duration: 200,
easing: tween.easeOut,
onFinish: function onFinish() {
tween(self, {
scaleX: 1.0,
scaleY: 1.0
}, {
duration: 200,
easing: tween.easeOut
});
}
});
};
self.performWorkout = function () {
// Squat animation - compress vertically to simulate squatting
tween(self, {
scaleY: 0.8
}, {
duration: 150,
easing: tween.easeOut,
onFinish: function onFinish() {
// Return to normal position
tween(self, {
scaleY: 1.0
}, {
duration: 150,
easing: tween.easeOut
});
}
});
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x4A4A4A
});
/****
* Game Code
****/
// Reset game variables to initial state
storage.strengthPoints = 0;
storage.totalClicks = 0;
storage.muscleLevel = 0;
storage.clickPower = 1;
storage.equipmentLevel = 0;
storage.clickEfficiency = 1;
// Game variables
var strengthPoints = 0;
var totalClicks = 0;
var muscleLevel = 0;
var clickPower = 1;
var equipmentLevel = 0;
var clickEfficiency = 1;
var clicksForEfficiencyCheck = 0;
// Fatigue system variables
var lastClickTime = 0;
var clickCount = 0;
var fatigueStartTime = 0;
var isFatigued = false;
var BASE_FATIGUE_THRESHOLD = 10; // clicks in short time
var FATIGUE_TIME_WINDOW = 1000; // 1 second
var BASE_FATIGUE_DURATION = 3000; // 3 seconds cooldown
// Functions to calculate fatigue based on muscle level
function getFatigueThreshold() {
return BASE_FATIGUE_THRESHOLD + muscleLevel * 2; // More clicks allowed at higher levels
}
function getFatigueDuration() {
return Math.max(1000, BASE_FATIGUE_DURATION - muscleLevel * 500); // Shorter cooldown at higher levels
}
// Create background
var background = game.attachAsset('dojo_background', {
anchorX: 0,
anchorY: 0,
x: 0,
y: 0
});
// Create samurai character
var samurai = game.addChild(new Samurai());
samurai.x = 1024;
samurai.y = 1800;
samurai.updateMuscleLevel(muscleLevel);
// Create equipment
var equipment = game.addChild(new Equipment(equipmentLevel > 0 ? 'advanced' : 'basic'));
equipment.x = 1024;
equipment.y = 2200;
// Music control variables
var isMusicPlaying = storage.isMusicPlaying !== undefined ? storage.isMusicPlaying : true;
// UI Elements
var strengthText = new Text2('Strength: ' + strengthPoints, {
size: 80,
fill: 0xFFFFFF
});
strengthText.anchor.set(0.5, 0);
LK.gui.top.addChild(strengthText);
var clickText = new Text2('Clicks: ' + totalClicks, {
size: 60,
fill: 0xFFFF00
});
clickText.anchor.set(0, 0);
clickText.x = 50;
clickText.y = 100;
LK.gui.topLeft.addChild(clickText);
var levelText = new Text2('Muscle Level: ' + muscleLevel, {
size: 60,
fill: 0xFF6347
});
levelText.anchor.set(1, 0);
LK.gui.topRight.addChild(levelText);
var instructionText = new Text2('Tap the samurai to train!', {
size: 50,
fill: 0xFFFFFF
});
instructionText.anchor.set(0.5, 1);
LK.gui.bottom.addChild(instructionText);
var fatigueText = new Text2('', {
size: 60,
fill: 0xFF0000
});
fatigueText.anchor.set(0.5, 0.5);
fatigueText.x = 1024;
fatigueText.y = 1400;
LK.gui.center.addChild(fatigueText);
// Music toggle button
var musicButton = new Text2(isMusicPlaying ? '🔊' : '🔇', {
size: 80,
fill: 0xFFFFFF
});
musicButton.anchor.set(1, 0);
musicButton.x = -50;
musicButton.y = 50;
LK.gui.topRight.addChild(musicButton);
// Click indicators array
var clickIndicators = [];
// Music control functions
function toggleMusic() {
if (isMusicPlaying) {
LK.stopMusic();
isMusicPlaying = false;
musicButton.setText('🔇');
} else {
LK.playMusic('sakinses1');
isMusicPlaying = true;
musicButton.setText('🔊');
}
storage.isMusicPlaying = isMusicPlaying;
}
// Start music if enabled
if (isMusicPlaying) {
LK.playMusic('sakinses1');
}
// Functions
function updateUI() {
strengthText.setText('Strength: ' + strengthPoints);
clickText.setText('Clicks: ' + totalClicks);
levelText.setText('Muscle Level: ' + muscleLevel);
// Update fatigue UI
if (isFatigued) {
var remainingTime = Math.ceil((getFatigueDuration() - (LK.ticks * 16.67 - fatigueStartTime)) / 1000);
if (remainingTime > 0) {
fatigueText.setText('Samurai is tired! Wait ' + remainingTime + 's');
fatigueText.alpha = 1;
} else {
fatigueText.setText('');
fatigueText.alpha = 0;
}
} else {
fatigueText.setText('');
fatigueText.alpha = 0;
}
// Save progress
storage.strengthPoints = strengthPoints;
storage.totalClicks = totalClicks;
storage.muscleLevel = muscleLevel;
storage.clickPower = clickPower;
storage.equipmentLevel = equipmentLevel;
storage.clickEfficiency = clickEfficiency;
}
function checkLevelUp() {
var requiredStrength = (muscleLevel + 1) * 100;
if (strengthPoints >= requiredStrength && muscleLevel < 3) {
muscleLevel++;
clickPower += 2;
samurai.updateMuscleLevel(muscleLevel);
LK.getSound('levelup_sound').play();
// Flash effect for level up
LK.effects.flashObject(samurai, 0x00FF00, 1000);
// Update equipment at certain levels
if (muscleLevel >= 2 && equipmentLevel === 0) {
equipmentLevel = 1;
equipment.destroy();
equipment = game.addChild(new Equipment('advanced'));
equipment.x = 1024;
equipment.y = 2200;
}
updateUI();
}
}
function handleWorkout(x, y) {
var currentTime = LK.ticks * 16.67; // Convert to milliseconds
// Check if character is fatigued
if (isFatigued) {
if (currentTime - fatigueStartTime >= getFatigueDuration()) {
// Fatigue period is over
isFatigued = false;
clickCount = 0;
} else {
// Still fatigued, ignore click
updateUI();
return;
}
}
// Track clicking speed
if (currentTime - lastClickTime < FATIGUE_TIME_WINDOW) {
clickCount++;
} else {
clickCount = 1; // Reset counter if enough time has passed
}
lastClickTime = currentTime;
// Check if clicking too fast
if (clickCount >= getFatigueThreshold()) {
isFatigued = true;
fatigueStartTime = currentTime;
// Visual feedback for fatigue
LK.effects.flashObject(samurai, 0xFF0000, 500);
updateUI();
return;
}
totalClicks++;
clicksForEfficiencyCheck++;
// Efficiency system: After 50 total clicks, every 5 clicks gives 1 strength point
var strengthGain = 0;
var levelMultiplier = 1 + muscleLevel * 0.5; // Higher levels give more strength
if (totalClicks <= 50) {
// Early game: every click gives 1 strength point
strengthGain = Math.floor(clickPower * levelMultiplier);
} else {
// Late game: every 5 clicks gives 1 strength point
if (clicksForEfficiencyCheck >= 5) {
strengthGain = Math.floor(clickPower * levelMultiplier);
clicksForEfficiencyCheck = 0;
}
}
// Increase strength points
strengthPoints += strengthGain;
// Play workout sound
LK.getSound('workout_sound').play();
// Perform workout animation
samurai.performWorkout();
// Create click indicator
var indicator = game.addChild(new ClickIndicator());
indicator.show(x, y);
clickIndicators.push(indicator);
// Update UI and check for level up
updateUI();
checkLevelUp();
}
// Music button event handler
musicButton.down = function (x, y, obj) {
toggleMusic();
};
// Event handlers
game.down = function (x, y, obj) {
// Check if click is near samurai
var distance = Math.sqrt(Math.pow(x - samurai.x, 2) + Math.pow(y - samurai.y, 2));
if (distance < 200) {
handleWorkout(x, y);
}
};
samurai.down = function (x, y, obj) {
var globalPos = samurai.toGlobal({
x: x,
y: y
});
var gamePos = game.toLocal(globalPos);
handleWorkout(gamePos.x, gamePos.y);
};
// Game update loop
game.update = function () {
// Clean up finished click indicators
for (var i = clickIndicators.length - 1; i >= 0; i--) {
if (clickIndicators[i].alpha <= 0) {
clickIndicators.splice(i, 1);
}
}
// Update fatigue system
if (isFatigued) {
var currentTime = LK.ticks * 16.67;
if (currentTime - fatigueStartTime >= getFatigueDuration()) {
isFatigued = false;
clickCount = 0;
}
updateUI();
}
// Win condition: Reach 717 strength
if (strengthPoints >= 717) {
// Show custom win message
var winText = new Text2('Kazandın!\nAtalarını gururlandırdın!', {
size: 120,
fill: 0xFF0000
});
winText.anchor.set(0.5, 0.5);
LK.gui.center.addChild(winText);
// Show you win after a delay
LK.setTimeout(function () {
LK.showYouWin();
}, 2000);
}
}; ===================================================================
--- original.js
+++ change.js
@@ -130,9 +130,9 @@
var lastClickTime = 0;
var clickCount = 0;
var fatigueStartTime = 0;
var isFatigued = false;
-var BASE_FATIGUE_THRESHOLD = 5; // clicks in short time
+var BASE_FATIGUE_THRESHOLD = 10; // clicks in short time
var FATIGUE_TIME_WINDOW = 1000; // 1 second
var BASE_FATIGUE_DURATION = 3000; // 3 seconds cooldown
// Functions to calculate fatigue based on muscle level
function getFatigueThreshold() {
pixel tarzda ay ışığı temalı bir gym salonu çiz. In-Game asset. 2d. High contrast. No shadows. pixel gym salonu
bu adamın arka planını kaldır
arka planını kaldır
bisecps kası arka planı olmasın. In-Game asset. 2d. High contrast. No shadows
arka planı kaldır
spor salonundaki koyu lacivert bir tabure. In-Game asset. 2d. High contrast. No shadows