56 lines
2.4 KiB
JavaScript
56 lines
2.4 KiB
JavaScript
// ==================== RESPAWN ====================
|
||
import { state } from '../core/state.js';
|
||
import { playSound } from '../audio/sound-engine.js';
|
||
import { loadGame, applySave } from '../game/save.js';
|
||
|
||
export function initRespawn() {
|
||
document.getElementById('respawnBtn').onclick = async () => {
|
||
playSound('click'); // Звук клика по кнопке
|
||
|
||
console.log('=== RESPAWN CLICKED ===');
|
||
console.log('isMultiplayer:', state.isMultiplayer);
|
||
console.log('otherPlayers.size:', state.otherPlayers.size);
|
||
console.log('player.hp before respawn:', state.player.hp);
|
||
|
||
const player = state.player;
|
||
const deathEl = state.deathEl;
|
||
|
||
// В мультиплеере не загружаем сохранение, а возрождаемся в начальной точке
|
||
if (state.isMultiplayer && state.otherPlayers.size > 0) {
|
||
console.log('Мультиплеер режим - возрождение в начальной точке');
|
||
player.hp = 100;
|
||
player.hunger = 100;
|
||
player.o2 = 100;
|
||
player.vx = player.vy = 0;
|
||
player.invuln = 0;
|
||
player.x = state.spawnPoint.x;
|
||
player.y = state.spawnPoint.y;
|
||
player.fallStartY = player.y;
|
||
console.log('Возрождение в начальной точке, HP:', player.hp);
|
||
} else {
|
||
console.log('Одиночный режим - загружаем последнее сохранение');
|
||
// Одиночный режим - загружаем последнее сохранение
|
||
const loadedSave = await loadGame();
|
||
if (loadedSave) {
|
||
await applySave(loadedSave);
|
||
console.log('Загружено последнее сохранение после смерти, final HP:', player.hp);
|
||
} else {
|
||
// Если сохранения нет, возрождаемся в начальной точке
|
||
player.hp = 100;
|
||
player.hunger = 100;
|
||
player.o2 = 100;
|
||
player.vx = player.vy = 0;
|
||
player.invuln = 0;
|
||
player.x = state.spawnPoint.x;
|
||
player.y = state.spawnPoint.y;
|
||
player.fallStartY = player.y;
|
||
console.log('Возрождение в начальной точке, HP:', player.hp);
|
||
}
|
||
}
|
||
|
||
console.log('player.hp after respawn logic:', player.hp);
|
||
console.log('Hiding death screen...');
|
||
deathEl.style.display = 'none';
|
||
console.log('=== RESPAWN END ===');
|
||
};
|
||
} |