sjz
This commit is contained in:
parent
0fdfda8b0a
commit
a17a6c1414
File diff suppressed because it is too large
Load Diff
@ -437,8 +437,9 @@ function registerHimmelstorHandlers(io, socket) {
|
|||||||
const aiRoom = htAiRooms.get(matchId);
|
const aiRoom = htAiRooms.get(matchId);
|
||||||
if (!aiRoom) return;
|
if (!aiRoom) return;
|
||||||
|
|
||||||
// Socket aktualisieren (nach Reconnect)
|
// Socket + Namen aktualisieren
|
||||||
aiRoom.playerSocketId = socket.id;
|
aiRoom.playerSocketId = socket.id;
|
||||||
|
const myIngameName = data.playerName || 'Du';
|
||||||
const ioRoom = io._arenaRooms?.get(matchId);
|
const ioRoom = io._arenaRooms?.get(matchId);
|
||||||
if (ioRoom) ioRoom.sockets.player1 = socket.id;
|
if (ioRoom) ioRoom.sockets.player1 = socket.id;
|
||||||
|
|
||||||
@ -456,23 +457,27 @@ function registerHimmelstorHandlers(io, socket) {
|
|||||||
// HP initialisieren
|
// HP initialisieren
|
||||||
socket.emit('hp_init', { hp: aiRoom.hp, maxHp: aiRoom.maxHp });
|
socket.emit('hp_init', { hp: aiRoom.hp, maxHp: aiRoom.maxHp });
|
||||||
|
|
||||||
// Spieler braucht "bereit" nicht – direkt Zug starten
|
// ht_ai_setup: setzt links/rechts explizit ohne seed-basierten Flip
|
||||||
// (Wir simulieren ready_status so dass der Client den leftSlot setzt)
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
socket.emit('ready_status', {
|
socket.emit('ht_ai_setup', {
|
||||||
readyCount: 2,
|
playerSlot : aiRoom.playerSlot, // 'player1'
|
||||||
readySlots: ['player1', 'player2'],
|
leftSlot : aiRoom.leftSlot, // 'player1' (Spieler immer links)
|
||||||
|
playerName : myIngameName || 'Du',
|
||||||
|
aiName : GUARD_NAMES[aiRoom.station] || `Wächter ${aiRoom.station}`,
|
||||||
|
hp : aiRoom.hp,
|
||||||
|
maxHp : aiRoom.maxHp,
|
||||||
});
|
});
|
||||||
}, 200);
|
}, 250);
|
||||||
|
|
||||||
|
// Zug starten (nach Setup-Animation)
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
socket.emit('turn_change', {
|
socket.emit('turn_change', {
|
||||||
activeSlot: aiRoom.playerSlot, // Spieler fängt an
|
activeSlot: aiRoom.playerSlot,
|
||||||
boardSync : [],
|
boardSync : [],
|
||||||
hp : aiRoom.hp,
|
hp : aiRoom.hp,
|
||||||
maxHp : aiRoom.maxHp,
|
maxHp : aiRoom.maxHp,
|
||||||
});
|
});
|
||||||
}, 600);
|
}, 700);
|
||||||
|
|
||||||
console.log(`[HT] arena_join KI-Match: ${matchId}`);
|
console.log(`[HT] arena_join KI-Match: ${matchId}`);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -790,6 +790,7 @@ function registerArenaHandlers(io, socket) {
|
|||||||
socket.on("start_turn_request", async (data) => {
|
socket.on("start_turn_request", async (data) => {
|
||||||
const { matchId, starterSlot } = data;
|
const { matchId, starterSlot } = data;
|
||||||
if (!matchId || !starterSlot) return;
|
if (!matchId || !starterSlot) return;
|
||||||
|
if (htAiMatchIds.has(matchId)) return; // KI-Match: turn wird von himmelstor.socket gestartet
|
||||||
if (!io._turnInit) io._turnInit = new Set();
|
if (!io._turnInit) io._turnInit = new Set();
|
||||||
if (io._turnInit.has(matchId)) return;
|
if (io._turnInit.has(matchId)) return;
|
||||||
io._turnInit.add(matchId);
|
io._turnInit.add(matchId);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user