Guard lethal stuns against a replacement deployment; keep bard auras running through stun; require an active Aegir bond for Clementia's strategy; allow Compass SP to bypass recovery locks; and refresh Hidden Core gun mitigation against current gun/spring companions. Set multiplayer strategy picks to 50s and describe renderer fallback without diagnosing unsupported hardware. Golden moves (full 285-scenario regeneration): - roster-008: inactive Aegir no longer gains 18 strategy layers. - boss-boss_4-solo: bard regeneration continues through stun. - hidden-boss_9-pair: mitigation covers first hits/current companions. - standin-07: hammer stun cannot follow an immediate revival deployment. No ending-reason changes. Sources and report-by-report findings: DESIGN 28.25.
32 lines
1.6 KiB
JavaScript
32 lines
1.6 KiB
JavaScript
// server/match/match/common.js — constants and small helpers shared by the Match method modules
|
||
// (server/match/match/*.js); server/match/Match.js re-exports FLOW_TICKER_PRIORITY, DELAYS and BAND_TURN_SECONDS.
|
||
|
||
/**
|
||
* Ticker priority of the remake's match-flow notices (隐秘核心已解锁, 联防阶段, a player out or gone): the official lines
|
||
* (research 06 §9.2) go BOSS_HIT 30 > CHAR_DAMAGE 20 > SHOP_LEVEL 11 > GOLDEN_CHAR 2 > CHAR_GIFT 1; ours sit under the
|
||
* leader-damage lines [ASSUMED].
|
||
*/
|
||
export const FLOW_TICKER_PRIORITY = 25;
|
||
/** Boss clock period (overtime drain, end checks, silence watchdog) in real ms. */
|
||
export const BOSS_CLOCK_MS = 250;
|
||
export const OK = Object.freeze({ ok: true });
|
||
export const fail = (error, detail) => (detail ? { error, detail } : { error });
|
||
|
||
/** Fixed presentation delays (real ms, × timerScale). */
|
||
export const DELAYS = Object.freeze({
|
||
ROUND_START: 2000,
|
||
COMBAT_END: 1500,
|
||
SETTLE: 3000,
|
||
BOT_ACTION: 900,
|
||
BOT_STAGGER: 350,
|
||
PUBLIC_THROTTLE: 100,
|
||
});
|
||
|
||
/**
|
||
* Seconds of one turn of the co-op strategy draft (user playtest #4 item 4: the old 12 s per turn — research 06 §724,
|
||
* itself [ASSUMED] — inside the 50 s step was far too little and counted apart from the header's 50 s). [ASSUMED]: the
|
||
* official data only gives the whole BAND_CHECK step (autoChessData.enterStepList: 50 s, hint 15 s); the turn clock is
|
||
* the remake's (50 s per turn per the owner's 2026-10-10 official-play report). It is also the step's only countdown (m.public.deadline = draft.turnDeadline). × timerScale.
|
||
*/
|
||
export const BAND_TURN_SECONDS = 50;
|