feedback1 WA: Lappland counts her own first refresh; Mutation Cell is not consumed
Player reports after 0.1.0, #1 and #4. #1 拉普兰德 (garrison_123, SERVER_GAIN_BOND_LAYER_BY_REFRESH_CNT) checked the player's refresh count of the round, so a copy bought after the round's first manual refresh never stacked that round. Players report the official behaviour: the first refresh after acquiring her also stacks. Each copy now counts the manual refreshes it witnessed this round (board or hand) through a per-piece round counter (PlayerState.pieceRoundCount, ctx.incPieceCounter); an elite merged this round keeps the highest count of its copies [ASSUMED]. The "本回合每刷新过1次" multiplier traits keep the player's count. #4 突变细胞 destroyed itself after one transformation. Official text never says 销毁 (every consumable's does), PRTS notes "原干员销毁,获得一名高一阶的随机 初始干员", and players re-inject the cell every round. The built-in now replaces the carrier with a random normal operator one tier higher (max 6) and returns the carrier's equipment, the cell included, to the hand (transformChess returnItems); the content override is gone. The item card shows the rule (items.json note, build-data ITEM_RULES); bots inject their least valuable single normal operator below tier 6 (bot.js cellTarget).
This commit is contained in:
1 parent
7f134737ce
commit
f8e35d5055
17 files changed
+514
-54
No files matched your search
+20
-1
@@ -1356,6 +1356,23 @@ const SHOP_EXCLUDED_ITEMS = Object.freeze({
|
||||
chess_item_5_08_e_a: '策略【不稳定要素】(昆图斯)', // 突变细胞
|
||||
});
|
||||
|
||||
/**
|
||||
* Rules the official item text leaves out, by normal item id (both qualities): `note` = a player-facing line shown under
|
||||
* the effect in the item card (items.json `note`), `implFormula` replaces research 04's formula.
|
||||
* 突变细胞 — not consumed (player feedback after 0.1.0): PRTS 卫戍协议:盟约 下半/PRTS盟约记录 备注 "生效时,原干员销毁,
|
||||
* 获得一名高一阶的随机初始干员(最高六阶)"; the text never says 销毁 for the cell (every consumable item's does), and
|
||||
* players re-inject it every round ("之后就是一直打针,扎到核心卡或者叠层手干员就换人扎", bilibili cv47000418;
|
||||
* BV1pEQ3BhEEi "如果四回合出了伊内丝,就考虑先不扎针") — the destroyed operator's equipment returns to the hand.
|
||||
*/
|
||||
const ITEM_RULES = Object.freeze({
|
||||
chess_item_5_08_e_a: {
|
||||
note: '生效时原干员销毁,获得一名高一阶的随机初始干员(最高6阶);突变细胞与其他装备退回整备区,可再次配发',
|
||||
implFormula: 'After the battle: the carrier is destroyed and replaced by a random NORMAL operator one tier higher (max 6; '
|
||||
+ 'an elite carrier too) on its tile when legal; its equipment, the cell included, returns to the hand (the cell is '
|
||||
+ 'not consumed). Never merges.',
|
||||
},
|
||||
});
|
||||
|
||||
/**
|
||||
* Build data/items.json: every item chess (EQUIP normal + golden, MAGIC Arts), keyed by chessId.
|
||||
*/
|
||||
@@ -1381,6 +1398,7 @@ function buildItems(ctx, effects) {
|
||||
const isGolden = !!t.isGolden;
|
||||
const upgradeNum = t.upgradeNum;
|
||||
const excluded = Object.hasOwn(SHOP_EXCLUDED_ITEMS, baseId) ? SHOP_EXCLUDED_ITEMS[baseId] : null;
|
||||
const rule = Object.hasOwn(ITEM_RULES, baseId) ? ITEM_RULES[baseId] : null;
|
||||
out[chessId] = {
|
||||
id: chessId, baseId, goldenId: shop?.goldenItemId || null, isGolden,
|
||||
trapId: t.charId, iconId: t.charId, identifier: t.identifier,
|
||||
@@ -1398,7 +1416,8 @@ function buildItems(ctx, effects) {
|
||||
buffs: (eff?.buffs || []).map((b) => ({ key: b.key, countType: b.countType, bb: b.bb, bbStr: b.bbStr })),
|
||||
params: eff?.params || {},
|
||||
category: ri?.category || null, kind: ri?.kind || null, family: ri?.family || null,
|
||||
implFormula: ri?.implFormula || null,
|
||||
implFormula: rule?.implFormula || ri?.implFormula || null,
|
||||
note: rule?.note || null,
|
||||
rangeGrid: Array.isArray(ri?.rangeGrids) ? ri.rangeGrids.map((g) => [g.row, g.col]) : null,
|
||||
flavor: ri?.flavor || null,
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user