feedback3 WJ: 高台 only for elite 歌蕾蒂娅 with HOK-Y

The trait line is on every hookmaster and is not trusted. Placement is the loadout at place time: golden 歌蕾蒂娅 carrying uniequip_003_glady may use a ranged tile; everyone else stays on the ground.
This commit is contained in:
sganggs committed 2026-10-04 20:31:46 +08:00
1 parent d5b945f14b
commit 5ef4fac137
23 files changed
+251 -174

No files matched your search

+2 -2
View File
@@ -3,7 +3,7 @@ import { test } from 'node:test';
import assert from 'node:assert/strict';
import { ERR, PHASE } from '../../shared/constants.js';
import { DATA, makeMatch, give, giveItem, checkInvariants, chessOfTier, legalTileFor } from './harness.js';
import { canPlace, positionClass } from '../../server/match/board.js';
import { canPlace, placeClass } from '../../server/match/board.js';
function prep(seed = 21, o = {}) {
const h = makeMatch({ mode: 'solo', difficulty: 'NORMAL', seed, ...o }).start();
@@ -360,7 +360,7 @@ test('a merge completed during SETTLE (突变细胞) keeps its reward offer for
// PRTS 卫戍协议/帮助: a merge consuming a deployed copy sends the elite to that copy's tile — outside PREP too; of
// several, the first in deploy order (row desc, col asc)
const map = ps.deployMap();
const pos = positionClass(m.gd.chess(elite.id));
const pos = placeClass(ps, m.gd.chess(elite.id));
const legal = deployedTiles.map((k) => k.split(',').map(Number)).filter(([r, c]) => canPlace(map, pos, r, c)).sort((a, b) => b[0] - a[0] || a[1] - b[1]);
assert.ok(legal.length, `${label}: a legal deployed tile exists`);
assert.equal(loc.area, 'board', `${label}: the elite stands on the board`);