From 61d617154fbbd12c0099694cbf7a588a9622aefb Mon Sep 17 00:00:00 2001 From: Denis Ranneft Date: Mon, 30 Mar 2026 19:59:15 +0300 Subject: [PATCH] remove and add some stuff --- admin-web/index.html | 14 -------------- frontend/src/game/engine.ts | 19 ++----------------- frontend/src/game/types.ts | 2 +- 3 files changed, 3 insertions(+), 32 deletions(-) diff --git a/admin-web/index.html b/admin-web/index.html index 1109aec..01eed40 100644 --- a/admin-web/index.html +++ b/admin-web/index.html @@ -572,28 +572,17 @@ if (h.destinationTownId != null) rows.push(`
destinationTownId
${e(h.destinationTownId)}
`); if (h.restKind) rows.push(`
restKind
${e(h.restKind)}
`); if (live && live.online) { - if (live.adventureActive && live.adventureEndsAt) { - rows.push(`
мини-приключение
${statusCountdownLine(live.adventureEndsAt)}
`); - } else { - rows.push(`
мини-приключение
не активно
`); - } if (live.restUntil) rows.push(`
отдых / restUntil
${statusCountdownLine(live.restUntil)}
`); if (live.townLeaveAt) rows.push(`
в городе до выхода
${statusCountdownLine(live.townLeaveAt)}
`); if (live.nextTownNPCRollAt) rows.push(`
след. событие NPC в городе
${statusCountdownLine(live.nextTownNPCRollAt)}
`); - if (live.roadsideRestActive && live.roadsideRestEndAt) { - rows.push(`
отдых у обочины
${statusCountdownLine(live.roadsideRestEndAt)}
`); - } if (live.wanderingMerchantDeadline) { rows.push(`
окно бродячего торговца
${statusCountdownLine(live.wanderingMerchantDeadline)}
`); } - } else { - rows.push(`
мини-приключение
герой не в игре — оставшееся время приключения не считается (нужна открытая игра)
`); } if (tp) { if (tp.restUntil) rows.push(`
отдых (из БД)
${e(tp.restKind || "")}: ${statusCountdownLine(tp.restUntil)}
`); if (tp.townLeaveAt) rows.push(`
выход из города (из БД)
${statusCountdownLine(tp.townLeaveAt)}
`); if (tp.nextTownNPCRollAt) rows.push(`
NPC в городе (из БД)
${statusCountdownLine(tp.nextTownNPCRollAt)}
`); - if (tp.roadsideRestEndAt) rows.push(`
обочина (из БД)
${statusCountdownLine(tp.roadsideRestEndAt)}
`); } let pollNote = ""; if (state._heroPollTimer && state._heroPollUntil) { @@ -1155,10 +1144,7 @@ - - -
diff --git a/frontend/src/game/engine.ts b/frontend/src/game/engine.ts index 7b9480c..626d55a 100644 --- a/frontend/src/game/engine.ts +++ b/frontend/src/game/engine.ts @@ -368,10 +368,7 @@ export class GameEngine { } } - // Roadside rest: hero_state anchor stays on the road; display follows hero_move (+ lateral offset). - // Snapping here would cancel the forest offset every tick. - const skipPositionSnap = activity === 'resting'; - if (!skipPositionSnap) { + { const tdx = newX - this._targetPositionX; const tdy = newY - this._targetPositionY; if ( @@ -780,19 +777,7 @@ export class GameEngine { now, ); - const roadsideResting = - state.phase === GamePhase.Resting && - state.hero.serverActivityState?.toLowerCase() === 'resting' && - state.hero.restKind === 'roadside'; - if (roadsideResting) { - this.renderer.drawCampfire( - this._heroDisplayX, - this._heroDisplayY, - now, - ); - } else { - this.renderer.clearCampfire(); - } + this.renderer.clearCampfire(); // Thought bubble during rest/town pauses if (this._thoughtText) { diff --git a/frontend/src/game/types.ts b/frontend/src/game/types.ts index 93865ff..30209e0 100644 --- a/frontend/src/game/types.ts +++ b/frontend/src/game/types.ts @@ -118,7 +118,7 @@ export interface HeroState { position: Position; /** Server `state` field (walking | resting | in_town | …); used for movement/render parity */ serverActivityState?: string; - /** Server rest flavor: "town" | "roadside" */ + /** Server rest flavor: "town" */ restKind?: string; attackSpeed: number; damage: number;