posodobitev

This commit is contained in:
2025-12-08 17:17:26 +01:00
parent abc536fea1
commit 30eb2d1dc8
5 changed files with 412 additions and 7 deletions

View File

@@ -73,6 +73,11 @@ class WeatherSystem {
// Check for Season Change
this.checkSeasonChange();
// DEMO MODE: 3-day limit
if (this.dayCount > 3) {
this.triggerDemoEnd();
}
}
// Update Phase
@@ -348,4 +353,77 @@ class WeatherSystem {
overlay.fillRect(0, 0, width, height);
}
}
updateTemperature(delta) {
// Calculate base temperature from season
const seasonTemps = {
spring: 15,
summer: 30,
autumn: 10,
winter: -5
};
this.baseTemp = seasonTemps[this.currentSeason] || 20;
// Time of day variation
const timeVar = Math.sin((this.gameTime / 24) * Math.PI * 2) * 5;
this.currentTemp = this.baseTemp + timeVar;
// Temperature damage logic
this.tempCheckTimer += delta;
if (this.tempCheckTimer >= this.tempDamageInterval) {
this.tempCheckTimer = 0;
this.checkTemperatureDamage();
}
}
checkTemperatureDamage() {
if (!this.scene.player) return;
const player = this.scene.player;
const inventory = this.scene.inventorySystem;
// Check for winter coat protection
const hasWinterCoat = inventory && inventory.hasItem('winter_coat');
const hasSummerHat = inventory && inventory.hasItem('summer_hat');
// Cold damage (Winter)
if (this.currentTemp < 0 && !hasWinterCoat) {
player.takeDamage(5);
this.scene.events.emit('show-floating-text', {
x: player.sprite.x,
y: player.sprite.y - 40,
text: '❄️ Freezing!',
color: '#88D4FF'
});
}
// Heat damage (Summer)
if (this.currentTemp > 35 && !hasSummerHat) {
player.takeDamage(3);
this.scene.events.emit('show-floating-text', {
x: player.sprite.x,
y: player.sprite.y - 40,
text: '🔥 Overheating!',
color: '#FF8844'
});
}
}
getTemperature() {
return Math.round(this.currentTemp);
}
triggerDemoEnd() {
console.log('🎮 DEMO END - 3 Days Completed!');
// Pause game
this.scene.physics.pause();
// Show demo end screen
const uiScene = this.scene.scene.get('UIScene');
if (uiScene) {
uiScene.showDemoEndScreen();
}
}
}