feedback1e WP: review fixes — 信仰搅拌机 S3 ignores 攻击距离, bounded range mini-map
- 信仰搅拌机 S3 退休前布道 attacks / counters on 3-13 exactly: SPT-Y's 攻击距离+1 does not reach it (PRTS 技能3 备注 "此技能的攻击范围不受“攻击距离”属性影响"; PRTS 修正 of the module text "(部分技能不受此影响)"). New SkillSpec flag targeting.noRangeExtend, read by Battle._refreshRange; S1 / S2 keep the +1. - The detail card's 攻击范围 draws a grid larger than its box (远牙 S3's 21-tile line) with smaller cells in the box's own space (rangeGridStyle, RANGE_FIT 6 columns × 7 rows), so the live stats beside it stay readable. - 荒芜拉普兰德 S1's whole-field grid only selects targets (no rangeId, no 攻击范围 text): targeting.showOwnRange keeps her 3-1 on the card. - 烛煌 S3's bonus on burning enemies is dealt before the attack's damage (备注 "于攻击造成伤害前判定元素爆发并造成元素伤害"), main and splash. - liveRangeGrid is the grid itself when nothing extends it (no copy per refresh). - Audit test: 攻击距离加长 / 缩短 (深巡 S2, 山 S2) and every module of the loadout; real BattleSpec for 信仰搅拌机 SPT-Y.
This commit is contained in:
1 parent
8b0e672bb8
commit
5963a40d2d
11 files changed
+276
-58
No files matched your search
@@ -19,7 +19,8 @@
|
||||
// value is coloured against the unit's base like the official card — green when it helps (higher, or a shorter attack
|
||||
// interval) with the difference beside it, red when it hurts — and a 实时 / 开战时 tag says which it is. The 攻击范围
|
||||
// mini-map follows the live entry's `range` too (cardRangeGrid: the grid the unit attacks with now — a running skill's
|
||||
// range such as 烛煌 S3's 4-11, rangeExtend included; community report E1 after 0.1.0, it used to stay the base grid).
|
||||
// range such as 烛煌 S3's 4-11, rangeExtend included; community report E1 after 0.1.0, it used to stay the base grid);
|
||||
// a grid larger than the box (RANGE_FIT) draws smaller cells (rangeGridStyle), a whole-field one reads 全场.
|
||||
|
||||
import { html, Icon, TierChip, MicroLabel, Button, confirmDialog, useTicker } from './components.js';
|
||||
import { Img, RichText, UnitThumb, BondGlyph, GIcon } from './gameComponents.js';
|
||||
@@ -42,6 +43,21 @@ const DMG = { phys: '物理', arts: '法术', heal: '治疗', true: '真实', no
|
||||
|
||||
/** A range grid of at least this many tiles covers the field (纯烬艾雅法拉 S3 "攻击范围扩大至整个战场"): named, not drawn. */
|
||||
export const FIELD_WIDE_CELLS = 400;
|
||||
/**
|
||||
* Columns × rows of the mini-map's own cells (.14rem, 2px apart) the card's range box holds without growing: the widest
|
||||
* record attack range (灰毫's 6 columns) and the tallest live one (银灰 S3's 7 rows). A larger grid — a live skill range
|
||||
* such as 远牙 S3's line to the field's edge (21 tiles) — draws smaller cells, edge to edge, in that space, so the box keeps
|
||||
* its size and the stats beside it stay readable.
|
||||
*/
|
||||
export const RANGE_FIT = Object.freeze({ cols: 6, rows: 7 });
|
||||
|
||||
/** Inline style of the mini-map (rangeGridBox `box`): its columns, and smaller cells when the grid exceeds RANGE_FIT. */
|
||||
export function rangeGridStyle(box) {
|
||||
const cols = `grid-template-columns:repeat(${box.cols}, var(--rg))`;
|
||||
if (box.cols <= RANGE_FIT.cols && box.rows <= RANGE_FIT.rows) return cols;
|
||||
const fit = (n, k) => `calc((${k} * .14rem + ${(k - 1) * 2}px) / ${n})`;
|
||||
return `${cols};gap:0;--rg:max(1px, min(.14rem, ${fit(box.cols, RANGE_FIT.cols)}, ${fit(box.rows, RANGE_FIT.rows)}))`;
|
||||
}
|
||||
|
||||
/**
|
||||
* The grid the card's 攻击范围 shows: the live entry's `range` (shared/protocol.js unitStatsEntry — what the unit attacks
|
||||
@@ -67,7 +83,7 @@ export function RangeGrid({ grid, class: cls }) {
|
||||
cells.push(html`<i key=${`${r},${c}`} class=${cx(box.cells.has(tileKey(r, c)) && 'on', self && 'self')}></i>`);
|
||||
}
|
||||
}
|
||||
return html`<div class=${cx('rgrid', cls)} style=${`grid-template-columns:repeat(${box.cols}, var(--rg))`} aria-label="攻击范围">${cells}</div>`;
|
||||
return html`<div class=${cx('rgrid', cls)} style=${rangeGridStyle(box)} aria-label="攻击范围">${cells}</div>`;
|
||||
}
|
||||
|
||||
function Stat({ k, v, sub, tone = null, title }) {
|
||||
|
||||
Reference in new issue
Block a user