feedback5 WE2: no hand card for 予愿安洁莉娜's “一会儿见!” — a summon no owner shows is not placeable (#24)
tools/build-data.mjs summonRecord: placeable also needs an owner that shows the summon (the variants' display source, the owner's displayTokenDict). The S3 marker is the skill's own object (PRTS 予愿安洁莉娜 S3 备注: the skill deploys it at her initial tile); every other undisplayed summon is already HIDDEN. Regenerated offline: one path changed, backups.tokens.token_10071_aglna2_agairp.placeable true -> false. The kit drops its placed-marker branch (the skill always summons it). Golden: no scenario moved.
This commit is contained in:
1 parent
ad23320411
commit
f50fd50273
7 files changed
+44
-36
No files matched your search
@@ -184,7 +184,7 @@ pick chooses any of the three, so write every skill under `skills: { [skillId]:
|
||||
both tiers, both forms and both module stages. A 自选 piece has no 特质 and its bonds come from its factions: neither is
|
||||
the kit's business. Summons: `battle.tokenDef(tokenId, unit)` / `battle.spawnToken(unit, …)` resolve the variant of the
|
||||
pick. A **placeable** summon (data/backups.json `tokens[id].placeable`, made by the pick's skill or a talent — the
|
||||
variant's `sources`) is a hand piece like any operator's: when the 自选 piece is deployed in prep its player gets one
|
||||
variant's `sources` — and shown by its owner: a skill's own object such as 予愿安洁莉娜's “一会儿见!” is not) is a hand piece like any operator's: when the 自选 piece is deployed in prep its player gets one
|
||||
stack of the variant's `deployLimit` — the picked module's own when its variant has one (望's TRP-X: 7 棋子); it holds
|
||||
the token's own talent additions (max_deploy_count / max_deck_stack_cnt, tools/build-data.mjs `tokenTalentDeckBonus`:
|
||||
麦哲伦 / 令 3, SUM-Y stage 2+ 4, 白铁 2, 夜莺 3), so a deck reads `deployLimit` / `deckStack` as they are —
|
||||
|
||||
@@ -53,9 +53,9 @@
|
||||
// abilities). Off her deployment tile, “一会儿见!” marks it (备注 "每次移动后若不位于初始位置且初始位置不存在标志物…部署一个").
|
||||
// When the skill ends she goes back there by a 【移动】 (the marker leaves) unless she is knocked out.
|
||||
// - “一会儿见!” (its kit below): 无敌, 孤立, 不可选中 by enemies, blocks nothing, no attack (PRTS 备注; token_aglna2_passive).
|
||||
// It is the skill's placeholder (skchr_aglna2_3 `_placeholderTokenKey`), not a player's summon: the data marks it
|
||||
// placeable (the prep hands a piece out with S3 — open question), so a placed piece is used as that marker and never
|
||||
// deploys by itself (`deferDeploy`; its tile stays reserved); without one the skill summons it.
|
||||
// It is the skill's placeholder (skchr_aglna2_3 `_placeholderTokenKey`), not a player's summon: no owner shows it, so the
|
||||
// data does not mark it placeable (tools/build-data.mjs summonRecord, 0.2.0 WE2 — until then the prep handed a piece out
|
||||
// with S3 and this kit used it as the marker) and the skill summons it each time.
|
||||
|
||||
import { num, talentBb, skillRec, batMod, up, installAura, toggleBuff } from '../shared/tier1.js';
|
||||
import { absoluteRangeKeys, canTargetEnemy, sortEnemyTargets } from '../../../targeting.js';
|
||||
@@ -174,13 +174,11 @@ export default {
|
||||
}
|
||||
function placeMarker(battle, unit) {
|
||||
if (!st || (st.marker && st.marker.alive)) return;
|
||||
const piece = battle.allyUnits.find((t) => t.kind === 'token' && t.defId === MARKER && t.ownerUnit === unit && t.uid != null && !t.alive && !t.removed);
|
||||
if (piece && battle.redeploy(piece, { free: true, tile: [st.r0, st.c0] })) { st.marker = piece; return; }
|
||||
st.marker = battle.spawnToken(unit, MARKER, st.r0, st.c0, { kit: markerKit() });
|
||||
}
|
||||
function dropMarker(battle) {
|
||||
const m = st && st.marker;
|
||||
if (m && m.alive) battle.retreat(m, { reason: 'expired', permanent: m.uid == null });
|
||||
if (m && m.alive) battle.retreat(m, { reason: 'expired', permanent: true });
|
||||
if (st) st.marker = null;
|
||||
}
|
||||
/** Her S3 range for where she stands: the 3-9 ∪ x-4 at home; away, the x-4 here + the anchored 3-9 (extra keys). */
|
||||
@@ -297,13 +295,6 @@ export default {
|
||||
if (ctx.target !== unit || !RESIST_STATUSES.has(ctx.status) || (ctx.source && ctx.source.side === 'ally')) return;
|
||||
if (unit.findBuff(CHANT_KEY) || unit.findBuff(MOVE_KEY)) ctx.cancel = true;
|
||||
}, { owner: unit });
|
||||
// a placed “一会儿见!” piece is S3's marker: it never deploys by itself
|
||||
for (const t of battle.allyUnits) {
|
||||
if (t.kind !== 'token' || t.defId !== MARKER || t.ownerUnit !== unit || t.alive || t.deployed) continue;
|
||||
if (t.kit) battle.offOwner(t);
|
||||
battle._setupUnit(t, markerKit());
|
||||
if (sid === S3) t.deferDeploy = true;
|
||||
}
|
||||
if (sid !== S3) return;
|
||||
const dr = num(b3.damage_resistance), slow = -num(b3.move_speed);
|
||||
const aspdB = num(b3['aglna2_s_3[blocked].attack_speed']), aspdU = num(b3['aglna2_s_3[unblocked].attack_speed']);
|
||||
|
||||
Reference in new issue
Block a user