remove and add some stuff

master
Denis Ranneft 1 month ago
parent 08111d846e
commit 61d617154f

@ -572,28 +572,17 @@
if (h.destinationTownId != null) rows.push(`<div class="kv"><kbd>destinationTownId</kbd><div>${e(h.destinationTownId)}</div></div>`);
if (h.restKind) rows.push(`<div class="kv"><kbd>restKind</kbd><div>${e(h.restKind)}</div></div>`);
if (live && live.online) {
if (live.adventureActive && live.adventureEndsAt) {
rows.push(`<div class="kv"><kbd>мини-приключение</kbd><div>${statusCountdownLine(live.adventureEndsAt)}</div></div>`);
} else {
rows.push(`<div class="kv"><kbd>мини-приключение</kbd><div class="muted">не активно</div></div>`);
}
if (live.restUntil) rows.push(`<div class="kv"><kbd>отдых / restUntil</kbd><div>${statusCountdownLine(live.restUntil)}</div></div>`);
if (live.townLeaveAt) rows.push(`<div class="kv"><kbd>в городе до выхода</kbd><div>${statusCountdownLine(live.townLeaveAt)}</div></div>`);
if (live.nextTownNPCRollAt) rows.push(`<div class="kv"><kbd>след. событие NPC в городе</kbd><div>${statusCountdownLine(live.nextTownNPCRollAt)}</div></div>`);
if (live.roadsideRestActive && live.roadsideRestEndAt) {
rows.push(`<div class="kv"><kbd>отдых у обочины</kbd><div>${statusCountdownLine(live.roadsideRestEndAt)}</div></div>`);
}
if (live.wanderingMerchantDeadline) {
rows.push(`<div class="kv"><kbd>окно бродячего торговца</kbd><div>${statusCountdownLine(live.wanderingMerchantDeadline)}</div></div>`);
}
} else {
rows.push(`<div class="kv"><kbd>мини-приключение</kbd><div class="muted">герой не в игре — оставшееся время приключения не считается (нужна открытая игра)</div></div>`);
}
if (tp) {
if (tp.restUntil) rows.push(`<div class="kv"><kbd>отдых (из БД)</kbd><div>${e(tp.restKind || "")}: ${statusCountdownLine(tp.restUntil)}</div></div>`);
if (tp.townLeaveAt) rows.push(`<div class="kv"><kbd>выход из города (из БД)</kbd><div>${statusCountdownLine(tp.townLeaveAt)}</div></div>`);
if (tp.nextTownNPCRollAt) rows.push(`<div class="kv"><kbd>NPC в городе (из БД)</kbd><div>${statusCountdownLine(tp.nextTownNPCRollAt)}</div></div>`);
if (tp.roadsideRestEndAt) rows.push(`<div class="kv"><kbd>обочина (из БД)</kbd><div>${statusCountdownLine(tp.roadsideRestEndAt)}</div></div>`);
}
let pollNote = "";
if (state._heroPollTimer && state._heroPollUntil) {
@ -1155,10 +1144,7 @@
<button class="btn" onclick="withAction(() => heroAction('set-level',{level:Number(document.getElementById('hero-level').value)}))">Set Level</button>
<button class="btn" onclick="withAction(() => heroAction('revive',{}))">Revive</button>
<button class="btn" onclick="withAction(() => heroAction('start-rest',{}, true))">Start Rest</button>
<button class="btn" onclick="withAction(() => heroAction('stop-rest',{}))">Stop rest</button>
<button class="btn" onclick="withAction(() => heroAction('leave-town',{}))">Leave Town</button>
<button class="btn" onclick="withAction(() => heroAction('start-adventure',{}, true))">Start Adventure</button>
<button class="btn" onclick="withAction(() => heroAction('stop-adventure',{}, true))">Stop Adventure</button>
<div class="row" style="margin-top:12px;align-items:end">
<div><label class="muted">Teleport</label><button type="button" class="btn" onclick="withAction(loadTeleportTowns)">Load towns</button></div>
<div><select id="hero-teleport-town">${teleportOpts}</select></div>

@ -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) {

@ -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;

Loading…
Cancel
Save