feedback1d WM: 野鬃 S2 pushes along her direction; 琳琅诗怀雅 S3 coin push radial
Player report D2: 野鬃's skill sometimes pushed enemies the opposite way. Her S2 text "往攻击方向…推开" is the 推击手 wording that PRTS 推与拉 calls a directional force; the remake pushed radially at full force, so an enemy grabbed behind her centre (or at her back) flew 1.7-2.14 tiles towards the objective. Now directional with the official correction (> 45 deg off or < 0.25 tile: radial at force level -2, at most 0.44 tile). Direction audit: 琳琅诗怀雅 S3's coin push is radial (PRTS note), it was pushed along her facing. The generic kit reads 往攻击方向 as directional.
This commit is contained in:
1 parent
7f134737ce
commit
d374e537b9
7 files changed
+234
-20
No files matched your search
@@ -1803,9 +1803,9 @@ export class Battle {
|
||||
* Push enemy `e` with 力度 `force` (PRTS 推与拉 §推力): the official distance of its 受力等级 (constants.js PUSH_TILES:
|
||||
* a 中力 push moves a weight-1 enemy 1.7 tiles, a weight-2 one 0.44, weight 3 0.12, weight ≥ 4 not at all). Radial
|
||||
* (the default: away from `from`, the pusher's centre — "沿着干员向自身中心点的射线方向") or directional (`dir` = the
|
||||
* pusher's direction {x, y}: 推击手, "朝部署方向" / "向前推开"); a directional push on a target more than 45° off `dir`
|
||||
* or nearer than 0.25 tile becomes radial with 受力等级 −2 ("特殊修正"). `fixed` waives both corrections (PRTS 圣聆初雪 S1
|
||||
* 备注 "不会因角度过大或距离过近而变化方向与力度"); `fixedAngle` only the angle one (PRTS 见行者 S2 备注 "不会因为角度过大
|
||||
* pusher's direction {x, y}: 推击手 and the same "往攻击方向" wording (野鬃 S2), "朝部署方向"); a directional push on a
|
||||
* target more than 45° off `dir` or nearer than 0.25 tile becomes radial with 受力等级 −2 ("特殊修正"). `fixed` waives
|
||||
* both corrections (PRTS 圣聆初雪 S1 备注 "不会因角度过大或距离过近而变化方向与力度"); `fixedAngle` only the angle one (PRTS 见行者 S2 备注 "不会因为角度过大
|
||||
* 而改变推动的方向或削减力度" — the < 0.25 tile rule still applies). `inward` = a radial push towards `from` (薄绿 S2's "拖拽", PRTS 备注 "实际为
|
||||
* 反方向(指向薄绿方向)的推开"), never nearer than PULL_STOP_RADIUS to its centre [ASSUMED: "至面前"]. `effect` = a 特效
|
||||
* push (PRTS 推与拉: one frame less of travel than a 弹道 push — constants.js PUSH_TILES_EFFECT / PUSH_EFFECT_SKILLS).
|
||||
|
||||
@@ -99,8 +99,8 @@ export const PALSY_MAX = 3;
|
||||
* ≥ 0 → all the way to the pull point (必定拉至身前), −1 → PULL_WEAK_SHARE of the starting distance, −2 → PULL_CRAWL
|
||||
* tiles, ≤ −3 → nothing. A pull "至面前" aims at the point PULL_ORIGIN tiles in front of the puller (拉力起点 "干员前方0.5格
|
||||
* 距离处") and stops once the target is within PULL_STOP_RADIUS of the puller's centre (急停 "拖拽者中心半径0.6708").
|
||||
* A directional push (推击手 / 朝部署方向) on a target more than 45° off the direction or nearer than
|
||||
* PUSH_DIRECTIONAL_MIN_DIST becomes radial with 受力等级 −2 (推与拉 "特殊修正").
|
||||
* A directional push (推击手 and the same "往攻击方向" wording — 野鬃 S2 —, 朝部署方向) on a target more than 45° off the
|
||||
* direction or nearer than PUSH_DIRECTIONAL_MIN_DIST becomes radial with 受力等级 −2 (推与拉 "特殊修正").
|
||||
* PRTS 推与拉 gives two columns of 理想移动距离: 弹道 (a push carried by a projectile — "温蒂的23技能、阿消的12技能"; equal
|
||||
* to the 游戏数据基础 table above) and 特效 (an effect push, one frame less of travel — "食铁兽的12技能、见行者的12技能"):
|
||||
* PUSH_TILES_EFFECT, used by the skills in PUSH_EFFECT_SKILLS (见行者 S1 护身射击 / S2 惊爆射击, the only 特效 pushers of
|
||||
|
||||
@@ -31,9 +31,9 @@
|
||||
// Passive skills only apply stat mods (for bb.duration s when the text says "N秒内": 宴) and the self/counter effects
|
||||
// above — their scales describe procs (bombs, sword rain, counters) that need a hand-authored kit.
|
||||
// force→onHit displacement with the official 力度 − 重量 rules (Battle.push / pullToFront): a pull "至面前" when the text says
|
||||
// 拖拽 or for hookmasters, else a push — along the unit's direction when the text says 朝部署方向 / 向前 / 身前方向 or for
|
||||
// 推击手 (directional), otherwise away from the unit (radial); a skill of constants.js PUSH_EFFECT_SKILLS (见行者 S1) pushes
|
||||
// by PRTS 推与拉's 特效 column.
|
||||
// 拖拽 or for hookmasters, else a push — along the unit's direction when the text says 往攻击方向 (the 推击手 wording, PRTS
|
||||
// 推与拉 方向力) / 朝部署方向 / 向前 / 身前方向 or for 推击手 (directional), otherwise away from the unit (radial); a skill of
|
||||
// constants.js PUSH_EFFECT_SKILLS (见行者 S1) pushes by PRTS 推与拉's 特效 column.
|
||||
|
||||
import { normalizeSkill } from '../simdata.js';
|
||||
import { sortEnemyTargets } from '../targeting.js';
|
||||
@@ -218,7 +218,7 @@ export function genericSkillSpec(sk, bb = sk?.bb ?? {}, def = null) {
|
||||
const hasForce = !passive && forceRaw !== undefined;
|
||||
const force = forceRaw ?? 0; // 力度 (微小力 −1 … 特大力 5)
|
||||
const pull = /拖拽/.test(desc) || (!/推开|击退/.test(desc) && def && def.subProf === 'hookmaster');
|
||||
const directional = !pull && (/朝部署方向|向前|身前方向/.test(desc) || (def && def.subProf === 'pusher'));
|
||||
const directional = !pull && (/攻击方向|朝部署方向|向前|身前方向/.test(desc) || (def && def.subProf === 'pusher'));
|
||||
const effectPush = PUSH_EFFECT_SKILLS.has(sk.id);
|
||||
const hitElement = element && !counterText;
|
||||
|
||||
|
||||
@@ -927,9 +927,12 @@ export default {
|
||||
},
|
||||
|
||||
// ---------------------------------------------------------------------------------------------------------------
|
||||
// 1_19 野鬃 夹枪冲锋: wider range (skill grid), ATK +atk, hits push the target away (attack@force 1 = 中力; radial — away
|
||||
// from her centre, PRTS 推与拉: every push but the 推击手' is radial) by the official 力度 − 重量 distance (Battle.push:
|
||||
// weight 0 → 2.14 tiles, 1 → 1.7, 2 → 0.44, 3 → 0.12, ≥ 4 → none; user playtest #6 item 14).
|
||||
// 1_19 野鬃 夹枪冲锋: wider range (skill grid), ATK +atk, "攻击会把目标往攻击方向中等力度地推开" (attack@force 1 = 中力) by
|
||||
// the official 力度 − 重量 distance (Battle.push: weight 0 → 2.14 tiles, 1 → 1.7, 2 → 0.44, 3 → 0.12, ≥ 4 → none; user
|
||||
// playtest #6 item 14). "往攻击方向" is the 推击手 wording (阿消 S1 / S2, 温蒂 S1, 食铁兽 S1, 见行者 S1), which PRTS 推与拉
|
||||
// calls 方向力: a push along her direction, radial at 受力等级 −2 for a target > 45° off it or < 0.25 tile away (特殊修正)
|
||||
// — so an enemy she grabs behind her centre (the hand-over after a push freed her block) is not thrown 1.7 tiles
|
||||
// towards the objective (player feedback D2, "往攻击方向相反方向推"; it was a radial push before).
|
||||
// 一致向前: after deploying (normal flag 0: first deployment only; elite flag 1: every deployment) every undeployed
|
||||
// 【近卫】 operator of the player costs `value` less DP to deploy (≤ max_stack_cnt per operator until it deploys).
|
||||
// Alternate S1 骑枪刺击 (PASSIVE, ON_DEPLOY): for `duration` s after every deployment ASPD +attack_speed.
|
||||
@@ -954,7 +957,7 @@ export default {
|
||||
attack: {
|
||||
onHit({ battle, unit, target }) {
|
||||
if (!target || !target.alive || target.side !== 'enemy') return;
|
||||
battle.push(target, force, { from: unit });
|
||||
battle.push(target, force, { from: unit, dir: { x: unit.fwd[1], y: unit.fwd[0] } });
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@@ -399,8 +399,8 @@ const KITS = {
|
||||
// 大买家: coin at skill start + coin & ATK stack per trait payment; 破财消灾: DP-paid revive (cost doubles)
|
||||
// S1 仗义疏财 (passive, 2 coins): an attack spends a coin to heal the most injured ally (< 70 % HP) of the 8
|
||||
// surrounding tiles for attack@heal_scale × ATK. S3 千金一掷 (持续时间无限): attacks hit twice, kills give a coin;
|
||||
// closing it spends every coin on random ground enemies of the front range (atk_scale phys + small push forward;
|
||||
// PRTS 备注: 地面敌方单位, 弹道不可对空).
|
||||
// closing it spends every coin on random ground enemies of the front range (atk_scale phys + a small push, radial
|
||||
// — PRTS 备注 "推开效果为径向推动" despite the text's 向前; 地面敌方单位, 弹道不可对空).
|
||||
// Auto-close (the mode casts everything itself; the player's "主动关闭" is not available): once the purse is full
|
||||
// (10) and an enemy stands in range. 精锐 module MER-Y: ATK +4 % per trait payment (≤ 5 stacks).
|
||||
chess_char_3_04_a: (bb, chess, def) => {
|
||||
@@ -492,8 +492,9 @@ const KITS = {
|
||||
if (!e) break;
|
||||
spent++;
|
||||
battle.dealDamage(unit, e, { amount: unit.s.atk * cash, type: 'phys', isSkill: true, tags: ['skill', 'swire2Cash'] });
|
||||
// "将目标小力地向前推开": a directional push along her direction (Battle.push, official 力度 − 重量 distance)
|
||||
if (e.alive) battle.push(e, force, { from: unit, dir: { x: unit.fwd[1], y: unit.fwd[0] } });
|
||||
// "将目标小力地向前推开" — PRTS 备注 "金币弹道…推开效果为径向推动": a radial push away from her centre (not
|
||||
// along her direction, so no 45° / 0.25-tile 特殊修正), official 力度 − 重量 distance (Battle.push)
|
||||
if (e.alive) battle.push(e, force, { from: unit });
|
||||
}
|
||||
fx(battle, 'coin', unit, { n: 0, spent, skill: 'swire2_3' });
|
||||
},
|
||||
|
||||
Reference in new issue
Block a user