← Deepstair GDD⚔️ Chương 01 · Chiến đấu

01 — Combat System

Kế thừa thuật ngữ & invariant từ 00-Deepstair-Master.md. Liên quan: 02 (pixel pipeline), 03 + Heroes/ (dữ liệu đòn), 04 (địch), 06 (Hồi Âm). Hằng số: GDD/Tools/data/constants.py (bảng sinh ở cuối mỗi mục). Tài liệu này định nghĩa schema MoveDef / HitDef / RouteDef / HeroGauge mà mọi chương anh hùng phải tuân theo.

20 mục 31 bảng ~46 phút đọc Nguồn: 01-Combat.md DERIVED công thức/mô phỏng · ASSUMED khởi điểm · BENCHMARK thị trường

1Mục tiêu

  1. Trận đấu tự động trông như một pha hack&slash được biên đạo: combo nhanh, nặng, hủy đòn mượt, đỡ–gạt–phản đòn đúng khung hình.
  2. Mọi chỉ số/Hồi Âm tác động qua một pipeline sát thương và một bộ giải phòng thủ duy nhất — dễ cân bằng, dễ test, tất định.
  3. Người chơi đọc được: mỗi đòn địch có báo hiệu, mỗi kết quả phòng thủ có hình + chữ + âm riêng.
  4. Hiệu năng: ≤ 10 địch đồng thời + 60 đạn trên máy tầm trung, 60 FPS, 0 GC trong trận.

2Không gian chiến đấu (2D side-view)

Tham số Giá trị Ghi chú
Đơn vị pixel nghệ thuật (px); 1 unit Unity = 16 px (PPU 16) Mọi tọa độ gameplay là số nguyên px sau khi làm tròn hiển thị; mô phỏng dùng float
Màn hình native 270 × 480 (×4 = 1080×1920); tỉ lệ nguyên ưu tiên, thế giới rộng 270–384 px theo máy; chiều cao dư → mở rộng vùng trần/khung dưới 02 §2, 13 §2.2
Phòng x ∈ [−176, +176] (352 px), sàn y = 0, trần CEILING_Y = 200 Phòng rộng hơn khung nhìn 270 px → camera bám
Tường x = ±176, va chạm cứng Dội tường khi bị đẩy ≥ WALL_SPLAT_SPEED 220 px/s
Cầu thang Vào từ cửa cầu thang trái (x = −150, rơi xuống từ trần), ra qua miệng hầm phải (x = +150) 05 §5
Điểm spawn Cửa ngục trái/phải (x = ±176), 2 khe tường (x = −90, +70; trèo ra), 2 lỗ trần (x = −40, +110; rơi từ y = 200) + điểm đặc thù Địa Tầng 05 §4
Làn sâu Logic 1D theo x + trục đứng y; vẽ có lệch dọc 0–6 px theo id actor để đám đông không chồng khít (chỉ hiển thị) Không có trục z gameplay
Camera Orthographic, Pixel Perfect Camera (ref 270×480, PPU 16). Bám x của anh hùng (deadzone ±24 px), kẹp trong phòng; khung dọc: sàn ở 66% chiều cao vùng chiến đấu 11 §4.3
Zoom Chỉ số nguyên: 1× mặc định, 2× cho Tuyệt Sát/Tuyệt Kỹ (crop quanh điểm va) Pixel perfect không cho zoom lẻ
Hướng nhân vật Chỉ trái/phải (flip X). Quay mặt 0.08 s; có đòn "quay chém" (TURN) nếu anh hùng có
Tách đám đông Bán kính thân ACTOR_RADIUS 7 px (to 12, boss ≥ 20); đẩy mềm giữa địch 300 px/s²; anh hùng không bị đẩy

Mọi actor di chuyển kinematic (không Rigidbody/Collider); hitbox là hình học 2D thuần (§4.4).

3Chỉ số

3.1 Danh sách chỉ số (enum RPGStatType)

Id Key Gốc anh hùng (trước hệ số anh hùng) Ghi chú
1 MaxHP HERO_HP0 400 × hp_mult × rarity × cấp × sao + lõi tài khoản 200 Vital
2 ATK HERO_ATK0 40 × atk_mult × rarity × cấp × sao + lõi 20
3 DEF 20 (+ hero) Giảm ST tối đa 70% (§4.3)
4 AtkSpeed 1.00 × hero aspd Nhân tốc phát clip tấn công (cả hit-time)
5 MoveSpeed 96 px/s × hero Chạy giao chiến; ngoài giao chiến ×1.3
6 CritRate 5% (+ hero)
7 CritDmg 150% (+ hero)
8 Lifesteal 0% Trên sát thương trực tiếp
9 Regen 0%/s % Max HP/s trong tầng
10 DmgReduction 0% Cộng dồn cộng
11 DeflectRate hero (3–15%) Tỉ lệ Gạt (§5)
12 BlockRate hero (0–35%) Tỉ lệ Chặn
13 EvadeRate hero (0–26%) Tỉ lệ Né
14 BlockPower +0% Cộng vào mức giảm khi Chặn (trần giảm 90% nhẹ / 70% nặng)
15 GuardMax 100 (hero) Khí Thủ
16 GuardRegen 25/s Sau 1.0 s không chặn
17 CounterDmg +0% Bucket bối cảnh cho hit lớp K
18 BlockCounterRate hero (20–45%) Xác suất Phản Đòn sau Chặn
19 EvadeCounterRate hero (30–70%) Xác suất Phản Đòn sau Né
20 PostureDmg +0% Nhân sát thương Thế
21 ExecutionDmg +0% Hit lớp X
22 Reach +0% Nhân kích thước hitbox theo chiều ngang
23 AoeSize +0% Nhân bán kính AoE
24 Knockback +0%
25 Poise 100 (hero) Ngưỡng chịu đòn
26 SkillCdr 0%
27 OverdriveGain +0%
28 DmgBonus 0% Bucket nhân riêng (Khế Ước, bộ Di Vật, Phong Độ không vào đây)
29 BossDmg 0%
30 EliteDmg 0% Tinh Anh + Thủ Vệ
31 StatusDmg 0% DoT, sét, nổ nguyên tố
32 StatusChance +0 điểm Cộng thẳng vào % kích hoạt
33 StatusDuration +0%
34 Luck 0 06 §4.2
35 GoldGain 0% Áp ở Kết Quả; phần từ Hồi Âm trần +200%
36 EmberGain 0%
37 SoulAshGain 0%
38 ComboDmg 0% % mỗi 10 Combo (tính tối đa 100 Combo)
39 LightDmg 0% Hit lớp L/M
40 HeavyDmg 0% Hit lớp H/F
41 AirDmg 0% Hit khi mục tiêu hoặc anh hùng trên không
42 SkillDmg 0%
43 UltDmg 0%
44 HealRecv 0%
45 ShieldMax 0 Vital phụ; trần 100% Max HP
46 Thorns 0% Phản lại theo raw trước giảm
47 RangedDR 0% Giảm ST đạn (cộng sau DR)
48 ComboWindow 2.0 s
49 ExecuteThreshold 0% Địch thường (không Boss) dưới ngưỡng HP này cũng được Tuyệt Sát dù chưa Vỡ Thế
50 StyleGain +0%
51 ArmorPierce 0% Bỏ qua % DEF địch
52 ReflectDmg +0% Đạn bị Gạt bật ngược

Trần (áp sau mọi hệ số nhân):

Chỉ số Trần
AtkSpeed 2.0
MoveSpeedMult 1.8
CritRate 1.0
Lifesteal 0.2
Regen 0.02
DmgReduction 0.6
TotalReductionMin 0.15
DeflectRate 0.6
BlockRate 0.6
EvadeRate 0.5
AvoidTotal 0.7
DefenseTotal 0.9
SkillCdr 0.5
StatusDuration 2.0
Luck 30
ExecuteThreshold 0.3
ShieldMaxOfHp 1.0
CardGoldGain 2.0
ComboWindow 4.0
ReachBonus 0.6
AoeBonus 1.2

Giải thích trần phòng thủ: AvoidTotal = Gạt + Né ≤ 70%; DefenseTotal = Gạt + Chặn + Né ≤ 90%. Khi tổng vượt trần, các tỉ lệ được co theo tỉ lệ (giữ cơ cấu) — ví dụ Gạt 50% + Né 40% = 90% > 70% → nhân 0.778 → Gạt 38.9%, Né 31.1%.

3.2 Thứ tự cộng chỉ số

4 lớp modifier (thứ tự áp 1→4) — hiện thực bằng StatSheet phẳng, tất định, 0 GC trong 3.GAMEPLAY.Sim (13 §4; không dùng trực tiếp com.blackface.rpgstats vì cấp phát qua reflection), cùng công thức:

Lớp Modifier Nguồn
1 BaseAdd Chỉ số anh hùng theo cấp/sao, Rèn Luyện, chỉ số chính Di Vật
2 BasePercent Cây Đèn Hồn, dòng phụ Di Vật, thưởng sưu tầm Trang Phục, Thông Thạo, Sổ Ký Ức
3 TotalAdd Hồi Âm cộng phẳng (hiếm) — gồm mọi tỉ lệ phòng thủ cộng điểm %
4 TotalPercent Hồi Âm % trong run

Final = ((Base + ΣBaseAdd) × (1 + ΣBasePercent) + ΣTotalAdd) × (1 + ΣTotalPercent) → kẹp trần.

Tỉ lệ (Crit, Gạt, Chặn, Né, phản đòn, hút máu…) luôn cộng điểm phần trăm (lớp 1 hoặc 3), không nhân. % meta và % trong run nhân nhau; Hồi Âm cùng loại trong run cộng nhau.

3.3 Chỉ số anh hùng theo cấp/sao

HeroHP(L, ★)  = HERO_HP0  × hp_mult  × RARITY_MULT[r] × (1 + LEVEL_GROWTH × (L − 1)) × STAR_MULT[★] + ACCOUNT_BASE_HP
HeroATK(L, ★) = HERO_ATK0 × atk_mult × RARITY_MULT[r] × (1 + LEVEL_GROWTH × (L − 1)) × STAR_MULT[★] + ACCOUNT_BASE_ATK

hp_mult, atk_mult, DEF, tốc độ, Crit, Gạt/Chặn/Né, GuardMax, Poise, tầm là hồ sơ của anh hùng (03 §3, bảng roster). Rarity R/E/L = ×1.00/1.06/1.12 — chênh lệch nhỏ có chủ đích (khác biệt nằm ở phong cách, không ở sức mạnh thô).

4Công thức sát thương

4.1 Sát thương trực tiếp (anh hùng → địch)

raw     = ATK × HitMult × EchoLv × (1 + DmgBonus) × (1 + Context)
Context = [L/M]LightDmg + [H/F]HeavyDmg + [air]AirDmg + [K]CounterDmg + [S]SkillDmg + [U]UltDmg + [X]ExecutionDmg
        + ComboDmg × min(10, ⌊Combo/10⌋) + [boss]BossDmg + [elite|warden]EliteDmg
        + Codex(type)                                  // Sổ Ký Ức: +1%/mốc, tối đa +3%
        + STYLE_DMG_BONUS[rank]                        // Phong Độ §7
crit    = rand(combat) < CritRate (+0.50 nếu lớp K) ? CritDmg : 1
mitig   = 100 / (100 + DEF_target × (1 − ArmorPierce))
vuln    = 1 + Σ(Broken 0.50, Shock, Hex, Sunder…)      // Marked chỉ cộng vào CritDmg
guard   = (địch đang thủ mặt trước & hit không có tag gb) ? (1 − GuardRed_enemy) : 1
final   = max(1, round(raw × crit × mitig × vuln × guard × U(0.95, 1.05)))
  • HitMult từ HitDef.mult của đòn; EchoLv = 1.00/1.25/1.50 cho đòn đến từ Hồi Âm Lv1/2/3 (ECHO_DMG_BY_LV), đòn gốc = 1.
  • DEF địch không tăng theo tầng (04 §1). GuardRed_enemy mặc định 0.75 (04 §3).
  • Hiển thị rút gọn: 1,234 → 12.3K → 4.56M → 7.89B → 1.23aa.

4.2 Sát thương trạng thái (DoT, nổ nguyên tố)

tick = ATK_snapshot × DoTMult × stacks × (1 + StatusDmg) × vuln     (không chí mạng, bỏ qua DEF)

Tick mỗi 0.5 s (hiển thị gộp mỗi 1 s). ATK_snapshot = ATK lúc áp.

4.3 Sát thương nhận vào (địch → anh hùng)

raw    = EnemyATK(f, type) × HitMult_enemy
defRed = min(0.70, DEF_hero / (DEF_hero + 100 + 8 × floor))
mult   = max(0.15, (1 − defRed) × (1 − DR) × [ranged](1 − RangedDR))
outcome = DefenseResolver (§5)  → Gạt/Né: 0 ;  Chặn: × (1 − BlockRed) ;  Trúng: × 1
final  = round(raw × mult × outcomeMult × dreadMult)

Thứ tự hấp thụ: i-frame/bất tử → bộ giải phòng thủ → Khiên → HP. Khiên là một pool chung, trần ShieldMax 100% Max HP, về 0 khi sang tầng mới. Gai (Thorns) phản theo raw trước giảm, chỉ với đòn cận chiến trúng hoặc bị Chặn.

4.4 Hitbox

HitDef.box dùng 4 hình (px, gốc tại chân anh hùng, hướng phải; lật theo hướng mặt):

Hình Cú pháp Ý nghĩa
Cung arc(r, deg, dy) Hình quạt bán kính r, mở ±deg/2 quanh hướng mặt, tâm cao dy
Hộp box(w, h, dx, dy) Hình chữ nhật tâm (dx, dy)
Tròn circle(r, dx, dy) AoE
Đường line(len, h, dy) Từ thân ra phía trước dài len, dày h (đâm, xuyên)

Reach nhân chiều ngang (r, w, len), AoeSize nhân bán kính circle. Mỗi hit trúng một lần mỗi mục tiêu; multi giới hạn số mục tiêu (mặc định không giới hạn).

5Hệ phòng thủ — Gạt / Chặn / Né / Phản Đòn / Va Kiếm

Đây là phần định danh của Deepstair. Mọi đòn cận chiến và đạn của địch nhắm vào anh hùng đi qua DefenseResolver.

5.1 Dòng thời gian một đòn địch

 t_start ─── lấy đà (báo hiệu) ─── t_commit = t_hit − 0.15 s ─── t_hit (hit-frame địch) ─── hồi đòn
                                        │                               │
                         DefenseResolver quyết định kết quả     Kết quả HIỆN RA đúng khung này
                         + anh hùng bắt đầu clip phòng thủ       (tia lửa/đóng băng/âm, số sát thương)
                           sao cho "khung chạm" trùng t_hit
  • Kết quả được roll ở t_commit trên luồng RNG defense (tất định).
  • Clip phòng thủ có contact (khung chạm) — ví dụ clip Gạt 0.24 s có contact = 0.15 → bắt đầu ở t_commit thì khung chạm rơi đúng t_hit. Đây là cách "timing chuẩn" được đảm bảo dù chiến đấu tự động.
  • Mọi clip phòng thủ có contact = 0.15 s = 9 tick = DEFENSE_LEAD (validator 03 §4) → clip luôn bắt đầu đúng t_commit và khung chạm luôn trùng t_hit. Từ t_commit tới t_hit anh hùng ở trạng thái Defending (không bắt đầu đòn mới).
  • Nếu địch bị gián đoạn trước t_hit (bị hất, choáng, chết) → hủy kết quả, anh hùng thoát Defending ngay, không tiêu ICD.

5.2 Anh hùng có "sẵn sàng phòng thủ" không

Trạng thái anh hùng ở t_commit Gạt Chặn Né
Tự do (đứng, chạy, giữa 2 đòn, trong cửa sổ hủy) ✔ ✔ ✔ (clip né)
Đang ra đòn, ngoài ±3 tick quanh mọi hit-time của đòn ✔ (hủy đòn đang chạy) ✔ (hủy) ✔ (hủy)
Đang ra đòn, trong ±3 tick một hit-time của chính mình ✗ → kiểm tra Va Kiếm (§5.7) ✗ ✔ ×0.6 (nghiêng né, chữ MISS, đòn vẫn chạy)
Đòn có giáp siêu cứng (armor) ✗ ✗ ✗ — trúng nhưng không khựng, ST ×0.7
i-frame / Tuyệt Sát / Tuyệt Kỹ bất tử (không roll)
Trên không (combo trên không) ✔ ×0.7 (gạt trên không) ✗ ✔ ×0.8 (lướt trên không)
Khựng / ngã / Vỡ Thủ / bị túm ✗ ✗ ✗

Hủy đòn để phòng thủ: lộ trình đang chạy tạm dừng; sau phòng thủ (+ phản đòn nếu có), Đạo Diễn Combo tiếp tục lộ trình từ đòn kế nếu ≤ 0.6 s đã trôi và mục tiêu còn hợp lệ, ngược lại chọn lộ trình mới (§6.6).

5.3 Roll phân vùng

D, B, E = DeflectRate, BlockRate, EvadeRate (sau trần §3.1)
áp hệ số loại đòn (bảng dưới) và hệ số trạng thái (§5.2) → D', B', E'
co lại nếu D'+E' > 0.70 hoặc D'+B'+E' > 0.90
r = rand(defense)
r < D'            → GẠT
r < D'+B'         → CHẶN
r < D'+B'+E'      → NÉ
còn lại           → TRÚNG
Loại đòn địch (AttackKind) Báo hiệu tối thiểu Gạt Chặn Né Ghi chú
light Dáng lấy đà ≥ 0.35 s ×1.0 ×1.0 ×1.0
heavy ≥ 0.6 s, thân nháy đỏ 2 khung + biểu tượng "!" ×1.0 → Gạt Hoàn Hảo ×0.5 ×1.0 → Né Hoàn Hảo Chặn đòn nặng tốn Khí Thủ ×1.0 posture đòn (thường 30–40)
thrust (đâm, không chặn được) ≥ 0.7 s, glyph mũi tên đỏ thẫm + âm trầm ×0 (×1.0 nếu có quy tắc mikiri) ×0 ×1.0 Gạt bằng mikiri = Gạt Hoàn Hảo
sweep (quét thấp) ≥ 0.7 s, glyph sóng đỏ thẫm ×0 ×0 ×1.0 (clip nhảy) Né = nhảy qua, có thể nối Phản Đòn Né trên không
grab (túm) ≥ 0.7 s, glyph bàn tay đỏ thẫm ×0 ×0 ×1.2 Trúng = bị túm (paired), không thể phòng thủ tiếp tới khi thả
projectile Ngắm 0.5–0.6 s (đường ngắm / dấu đất) ×1.0 ×1.0 ×1.0 Gạt bật ngược nếu có quy tắc reflect
area (vùng đất/tia) Dấu vùng ≥ 0.8 s ✗ ✗ — Không roll: Tránh Vùng (§5.8)

Đòn bị Gạt/Chặn/Né không gây hiệu ứng phụ (trạng thái, đẩy lùi, túm) — trừ Chặn: vẫn đẩy lùi 4 px và nhận trạng thái với 50% thời lượng.

5.4 Kết quả

GẠT (Deflect)

  • Sát thương 0. Hit-stop 100 ms cả hai (Gạt Hoàn Hảo 133 ms) + nháy trắng 1 khung tại điểm chạm + tia lửa (impacts/parry, recolor theo anh hùng) + chữ pixel "GẠT!" / "HOÀN HẢO!" + âm kim loại "keng" (pitch tăng theo chuỗi).
  • Địch nhận sát thương Thế = posture của đòn × DEFLECT_POSTURE_MULT (nhẹ ×1.0, nặng ×2.5) × (1 + PostureDmg) và Mất Thăng Bằng (Off-balance) 0.35 s (nặng 0.70 s; Boss chỉ 0.40 s với đòn nặng, đòn nhẹ không khựng).
  • Chuỗi Gạt: Gạt trong DEFLECT_CHAIN_WINDOW 1.2 s kể từ lần Gạt trước → chuỗi +1, mỗi bậc +4% Gạt (tối đa 5 bậc = +20%). Bậc 5 → Dòng Chảy (Flow State) 3 s: +20% tốc đánh, tia lửa vàng, viền sáng anh hùng.
  • Đạn: bị phá hủy; nếu anh hùng có quy tắc reflect → bật ngược về kẻ bắn, sát thương = sát thương đạn × (1 + ReflectDmg).
  • Phong Độ +60 (Hoàn Hảo +120); Bộc Phá +6 (+12); Khí Thủ +5.
  • Mở Phản Đòn (§5.5).

CHẶN (Block)

  • Sát thương × (1 − BlockRed), BlockRed = 0.75 (nhẹ) / 0.45 (nặng) + BlockPower (trần 0.90 / 0.70).
  • Tiêu Khí Thủ = posture của đòn × 1.0 (nhẹ ≈ 8–12, nặng ≈ 30–40). Khí Thủ = 0 → Vỡ Thủ: anh hùng choáng GUARD_BREAK_STUN 0.9 s, đòn trúng kế tiếp ×1.5, Khí Thủ hồi đầy sau choáng.
  • Khí Thủ hồi GuardRegen 25/s sau 1.0 s không chặn; giữ nguyên giữa các wave; đầy lại khi sang tầng.
  • Hit-stop 50 ms, anh hùng trượt lùi 4 px, tia lửa nhỏ + chữ "CHẶN".
  • Roll Phản Đòn Chặn với BlockCounterRate (ICD 1.5 s).
  • Phong Độ +10; Bộc Phá +2.

NÉ (Evade)

  • Sát thương 0; anh hùng phát clip né theo loại đòn: sweep → nhảy, thrust → nghiêng/bước ngang, heavy/light → lướt lùi, grab → lăn qua sau lưng địch (evade_roll), đạn → cúi. i-frame phủ hit-frame địch.
  • Né Hoàn Hảo (né đòn heavy/thrust/sweep/grab): slow-mo toàn cục 0.3× trong 0.4 s thực (ICD 6 s), dư ảnh 3 bản.
  • Roll Phản Đòn Né với EvadeCounterRate (ICD 1.2 s).
  • Phong Độ +25 (Hoàn Hảo +60); Bộc Phá +4.
  • Né khi đang ra đòn (×0.6): nghiêng 3 px + chữ "MISS", không clip né, không phản đòn.

TRÚNG (Hit)

  • Sát thương đầy đủ; Poise anh hùng (§10.4); Combo đứt; Phong Độ −30%; Bộc Phá +2.

5.5 Phản Đòn (Counter)

Nguồn Điều kiện ICD Đòn dùng
Sau Gạt Luôn (nếu bể Phản Đòn Gạt có đòn) COUNTER_ICD.deflect 0.8 s Bể counter của anh hùng (≥ 1 đòn gốc)
Sau Chặn Roll BlockCounterRate 1.5 s Bể block_counter (rỗng → dùng counter)
Sau Né Roll EvadeCounterRate 1.2 s Bể evade_counter (rỗng → bỏ qua)
  • Phản Đòn bắt đầu ngay khung kế tiếp sau khung chạm phòng thủ, nhắm kẻ vừa tấn công (nếu ngoài tầm ≤ 64 px → biến thể lướt-phản đòn: move cộng thêm tối đa 48 px).
  • Hit lớp K: +50% Crit, cộng CounterDmg, posture 28, hit-stop 100 ms.
  • Bể Phản Đòn bốc theo trọng số + chống lặp như lộ trình (§6.5); Hồi Âm Kỹ Pháp có thể thêm đòn vào bể (move_add(<id>, counter)).
  • Phản Đòn không bị Gạt bởi địch (địch đang Mất Thăng Bằng); Boss có thể Chặn (giảm 75%) nếu không Mất Thăng Bằng.

5.6 Chuỗi Gạt & Dòng Chảy — hiển thị

  • Mỗi bậc chuỗi tăng: tia lửa nhiều hơn 2 hạt, nốt "keng" cao thêm 1 bán cung, chữ "GẠT ×N".
  • Dòng Chảy: nền hơi tối 10% (dither), viền anh hùng ánh vàng, nhạc thêm lớp trống.

5.7 Va Kiếm (Clash)

  • Điều kiện: hit-time của anh hùng và hit-time của địch (cận chiến, cùng nhắm nhau) chênh ≤ CLASH_WINDOW 50 ms, đòn anh hùng lớp ≥ M, đòn địch không phải grab.
  • Kết quả: không ai nhận sát thương; cả hai bật lùi 0.25 s (8 px); cả hai nhận sát thương Thế = posture đòn của đối phương × 0.5; tia lửa lớn + nháy trắng toàn đối tượng 1 khung + hit-stop 117 ms; Phong Độ +50.
  • Anh hùng có quy tắc clash_win → anh hùng không bật lùi và đòn vẫn trúng (Brann, Aldric qua Hồi Âm).
  • Boss Va Kiếm với anh hùng: Boss mất 60 Thế (nặng 100).

5.8 Tránh Vùng (đòn area)

Dấu vùng nhắm vị trí anh hùng, windup ≥ 0.8 s → anh hùng luôn rời vùng (chạy/lướt) nếu đang tự do hoặc tới cửa sổ hủy trước khi vùng nổ; 0.6–0.8 s → 70%. Không rời kịp → trúng (không roll). Tránh Vùng không tiêu ICD, cho Phong Độ +15.

5.9 Phòng thủ của địch

Một số địch (04 §3) có:

  • Thủ mặt trước (guard_front): đòn từ phía trước không có tag gb bị giảm GuardRed 75% và cộng Thế cho địch thay vì trừ.
  • Gạt của địch (enemy_deflect): xác suất gạt đòn L/M của anh hùng (Kiếm Sĩ Bóng 25%, Thủ Vệ/Boss đấu kiếm 30–40%). Bị gạt: anh hùng khựng 0.3 s (clip "bị gạt", không mất máu), địch được một đòn phản (báo hiệu 0.35 s) — anh hùng vẫn được roll phòng thủ cho đòn phản đó → tạo trao đổi kiếm qua lại.
  • Hit có tag gb (guard break: đòn nặng, đâm, đòn từ sau lưng) bỏ qua cả hai và gây Thế ×2 lên địch đang thủ.

6Combo Engine

6.1 Khái niệm

MoveDef  — một đòn (animation + hit-frame)         →  "chém ngang", "rút đao", "đá xoay"
RouteDef — chuỗi 2–8 MoveDef có điều kiện vào     →  "Trăng Khuyết: chém–chém–hất tung"
Cây Combo — mọi RouteDef anh hùng sở hữu trong run (gốc + Hồi Âm)
Đạo Diễn Combo — mỗi lần anh hùng rảnh, chọn RouteDef phù hợp nhất cho tình huống, rồi chạy nó

Khác với bể đòn theo vai trò của Inkfu: đơn vị lựa chọn là lộ trình (một câu combo trọn vẹn, có đầu–thân–kết), giúp mỗi Hồi Âm Combo = một "câu" nhận ra được bằng mắt. Lộ trình dùng chung các MoveDef (một đòn có thể xuất hiện trong nhiều lộ trình), nên số clip tăng chậm hơn số combo.

6.2 MoveDef (schema gameplay — 02 §5 thêm trường nghệ thuật)

Trường Kiểu Ý nghĩa
id string <CODE>_<NHÓM><NN> — vd KAI_L1, KAI_AIR2, ALD_SB1; duy nhất toàn game
name_vi, name_en string Tên hiển thị (Sổ Ký Ức, xem build)
cat enum LIGHT HEAVY LAUNCH AIR SLAM DASH THRUST SPIN GRAB THROW COUNTER SKILL ULT EXEC EVADE BLOCK DEFLECT TAUNT LOCO
dur s Tổng thời lượng ở AtkSpeed 1 (gồm hồi đòn)
cancel s Từ mốc này đòn kế của lộ trình được phép bắt đầu
hits list HitDef Rỗng với clip phòng thủ/di chuyển
armor [t0, t1] | — Giáp siêu cứng (không khựng, nhận ST ×0.7)
iframe [t0, t1] | — Bất tử
move (dx, dy) px Root motion tổng (dx dương = về phía trước); dy > 0 = nhảy lên
air bool Đòn trên không (yêu cầu anh hùng đang ở trên không, hoặc là đòn nhảy lên)
ends GROUND | AIR Anh hùng ở đâu khi kết thúc
contact s Chỉ clip phòng thủ: khung chạm (§5.1)
tags list gb (phá thủ), pierce, multi, pull, proj, wall, otg, delay, grab, noflip
src base | id Hồi Âm Nguồn
fx, sfx id VFX pixelfx & âm thanh chính (02 §6)

HitDef

Trường Ý nghĩa
t Thời điểm hit (s, từ đầu đòn, chia cho AtkSpeed)
mult × ATK
cls L M H F K S U X (§11)
react flinch stagger knockback launch knockdown wallbounce groundbounce crumple spin pull juggle spike stun none
box arc(r,deg,dy) / box(w,h,dx,dy) / circle(r,dx,dy) / line(len,h,dy)
kb Tốc đẩy ngang px/s (dương = ra xa)
lift Đỉnh hất px (launch) hoặc lực nâng trên không
post Ghi đè sát thương Thế (mặc định theo cls)
status burn(chance,stacks,dur), bleed(...), stun(dur)…
proj Id đạn (đòn ném/sóng kiếm)
multi Số mục tiêu tối đa

Quy ước nhịp (Q-rhythm): lấy đà 0.06–0.20 s, hit ≤ 0.08 s sau khung "release", hồi 0.10–0.30 s. Tổng mỗi đòn L 0.28–0.45 s, H 0.5–0.9 s.

Hệ số DPS đòn (kiểm tra cân bằng): Σ mult / dur của bộ đòn cơ bản mỗi lộ trình nằm trong 2.2–3.0 (sau khi tính tỉ lệ thời gian di chuyển). Lộ trình CROWD có thể thấp hơn (1.8) vì đánh nhiều mục tiêu; SIGNATURE cao hơn (tới 3.6) vì tốn Cổng.

6.3 RouteDef (Lộ Trình Combo)

Trường Ý nghĩa
id <CODE>_R<NN>
name_vi, name_en Tên lộ trình (hiện trên thẻ Hồi Âm và chữ nhỏ khi ra mắt)
type GROUND LAUNCH AIR CROWD BREAK WALL OTG GAP SIGNATURE AWAKEN
seq Danh sách MoveDef id (2–8)
cond Điều kiện vào (§6.4)
ends Trạng thái mục tiêu dự định khi kết thúc: stand air down wall broken any
next Loại lộ trình bắt buộc kế tiếp (vd LAUNCH → AIR), rỗng = tự do
weight Gốc 1.0; lộ trình từ Hồi Âm theo cấp 1.5 / 2.0 / 2.5
cd Hồi (s), 0 = không
gauge Tác động Cổng cơ chế. Cú pháp: <ID>-n = tiêu n khi đòn đầu bắt đầu · <ID>-ALL = tiêu toàn bộ (sát thương lộ trình × lượng tiêu theo luật anh hùng) · <ID>+n = cộng n khi lộ trình kết thúc · <ID>>=n = chỉ điều kiện (không tiêu)
src base hoặc id Hồi Âm
tags Tag lộ trình (safe, shield, chain, dive…) — dùng cho route_mod(tag:X, …) và hệ số situ

6.4 Ngôn ngữ điều kiện (cond)

Nối bằng &, lựa chọn bằng /.

Token Đúng khi
dist<=N / dist>=N Khoảng cách tới mục tiêu (px, mép thân)
crowd>=N@R ≥ N địch trong bán kính R quanh anh hùng
tgt:air / tgt:down / tgt:broken / tgt:guard / tgt:offbal Trạng thái mục tiêu (trên không / nằm / Vỡ Thế / đang thủ mặt trước / Mất Thăng Bằng)
tgt:wall<=N Mục tiêu cách tường phía sau nó ≤ N px
tgt:boss / tgt:elite / tgt:big / tgt:grab Loại mục tiêu (grab = túm được: không boss, không thân to)
tgt:behind Mục tiêu sau lưng
hero:air Anh hùng đang trên không
hero:hp<=X HP anh hùng ≤ X (0–1)
gauge>=N / gauge<=N Cổng cơ chế
combo>=N Bộ đếm hit
style>=R Phong Độ ≥ hạng R
after:TYPE Lộ trình trước thuộc loại TYPE
od Bộc Phá/Thức Tỉnh đang hoạt động
first Lộ trình đầu tiên của wave

6.5 Đạo Diễn Combo — chọn lộ trình

Gọi mỗi khi anh hùng rảnh (hết lộ trình, sau phòng thủ không tiếp được, sau khi đổi mục tiêu).

  1. Mục tiêu: §10.2.
  2. Ứng viên: lộ trình đang sở hữu, ngoài hồi chiêu, cond đúng, next bắt buộc của lộ trình trước được tôn trọng (nếu có ứng viên thuộc loại đó; không có → bỏ qua ràng buộc).
  3. Ưu tiên tuyệt đối (theo thứ tự): mục tiêu Vỡ Thế & có EXEC → Tuyệt Sát; next bắt buộc; lộ trình mới ra mắt (vừa nhặt ở tầng trước, chưa dùng — mỗi lộ trình mới chắc chắn xuất hiện một lần ở lượt hợp lệ đầu tiên của tầng kế; lưu trong snapshot).
  4. Điểm mỗi ứng viên: score = weight × situ × novelty
Tình huống (situ) Hệ số
CROWD khi crowd ≥ 3 trong 48 px × (1 + 0.4 × (crowd − 2)), tối đa ×3
CROWD khi crowd ≤ 1 × 0.2
BREAK khi mục tiêu guard / Thế ≥ 70% / Thủ Vệ / Boss × 2.5
WALL khi tgt:wall<=40 × 2.0
LAUNCH vs Boss/thân to chưa Vỡ Thế × 0 (Boss không bị hất trừ khi Vỡ Thế)
LAUNCH vs đơn mục tiêu thường × 1.3
GAP chỉ khi dist > tầm đòn đầu + 16 px
SIGNATURE khi đủ Cổng × 1.5
GROUND/BREAK vs Boss × 1.3
hero:hp<=0.35 lộ trình có tag safe × 1.5
Mới lạ (novelty) Hệ số
Trùng lộ trình vừa chạy (khi ≥ 2 ứng viên) × 0
Đã chạy trong 3 lộ trình gần nhất × 0.4
Chưa chạy trong tầng này × 1.25
  1. Bốc theo trọng số score trên luồng RNG combat (tất định).
  2. Không ứng viên nào: chạy tới tầm (MoveSpeed) hoặc dùng đòn DASH nếu có; mục tiêu sau lưng → TURN hoặc quay mặt.

6.6 Chạy lộ trình

  • Đòn kế bắt đầu ở cancel của đòn trước (không chờ hết hồi đòn).
  • Giữa hai đòn: nếu mục tiêu ra khỏi tầm của đòn kế ≤ 24 px → trượt root (warp) tối đa 24 px trong 0.06 s; xa hơn → kết thúc lộ trình.
  • Mục tiêu chết giữa lộ trình: chọn địch gần nhất trong tầm đòn kế + 24 px và chạy tiếp (route carry); không có → kết thúc.
  • Phòng thủ chen vào (§5.2): tạm dừng → phòng thủ → phản đòn → tiếp từ đòn kế nếu ≤ 0.6 s & mục tiêu hợp lệ.
  • Kỹ Năng chen vào: Kỹ Năng sẵn sàng & điều kiện AUTO (§9.3) → chen ở cancel của đòn hiện tại, sau đó lộ trình bị hủy (Đạo Diễn chọn lại).
  • Lộ trình LAUNCH kết thúc khi mục tiêu đang bay → next: AIR → anh hùng nhảy theo (đòn AIR đầu tiên có move.dy). Lộ trình AIR thường kết thúc bằng spike (đập xuống) → mục tiêu down → ưu tiên OTG nếu có.
  • Hệ số tốc đánh nhân tốc phát toàn bộ đòn; tối thiểu 0.08 s/đòn — vượt thì hit bổ sung thành "dư âm" (echo hit 30% ST, không clip mới).

6.7 Cấu trúc Cây Combo chuẩn của một anh hùng

Thành phần Số lượng Bắt buộc
Lộ trình gốc 10–12: ≥ 3 GROUND, 1 LAUNCH, 1 AIR, 1 CROWD, 1 BREAK, 1 GAP, 1 OTG hoặc WALL, 1 SIGNATURE (dùng Cổng) ✔
Bể Phản Đòn counter ≥ 2 đòn gốc; block_counter, evade_counter theo phong cách ✔ (counter)
Kỹ Năng A + B (hồi chiêu) ✔
Tuyệt Kỹ 1 (Bộc Phá) ✔
Tuyệt Sát ≥ 1 đòn EXEC ✔
Đòn phòng thủ DEFLECT, BLOCK (nếu B > 0), EVADE_BACK, EVADE_JUMP, EVADE_ROLL ✔
Di chuyển & trạng thái idle, run, hurt ×2, knockdown, getup, death, victory, descent (đi cầu thang), intro ✔
Lộ trình từ Hồi Âm 20–26 —

6.8 Bộ đếm Combo (hit)

Luật Giá trị
Tăng +1 mỗi mục tiêu trúng một hit, tối đa +3/hit
Cửa sổ ComboWindow 2.0 s từ hit trúng gần nhất
Đứt Hết cửa sổ, hoặc anh hùng Trúng đòn (Gạt/Chặn/Né không làm đứt; khiên hấp thụ hết không đứt)
Mốc 25 GOOD · 50 GREAT · 100 SAVAGE · 200 BRUTAL · 500 LEGEND → +5/+10/+15/+20/+30 Bộc Phá
Hiển thị Số pixel lớn góc phải khung chiến đấu, nảy 1 px mỗi lần tăng, đổi màu theo mốc

7Phong Độ (Style Rank)

Đo "đẹp mắt": đa dạng đòn, phòng thủ hoàn hảo, không bị trúng.

Hạng Ngưỡng điểm +Sát thương +Than Hồng khi hạ địch
D 0 +0% +0%
C 120 +4% +5%
B 300 +8% +10%
A 550 +12% +15%
S 850 +16% +25%
SS 1200 +20% +35%
SSS 1600 +30% +50%

Điểm cộng:

Sự kiện Điểm Phong Độ
L 3
M 4
H 6
F 10
launch 8
air 6
K 20
deflect 60
perfect_deflect 120
evade 25
perfect_evade 60
block 10
clash 50
execution 150
S 5
U 8
wall_bounce 20
kill 15
multikill 40
route_variety 30
  • Điểm hit × 0.5 nếu cùng MoveDef.id đã xuất hiện trong 5 đòn gần nhất (STYLE_REPEAT_MULT) — khuyến khích đa dạng; route_variety +30 khi lộ trình mới khác loại lộ trình trước.
  • × (1 + StyleGain).
  • Giảm: sau 2.0 s không có điểm → −60/s; Trúng đòn → −30% điểm hiện có và tụt tối thiểu 1 hạng. Trần 2,000. Sang tầng mới: giữ 50%.
  • Hiển thị: chữ cái pixel lớn (D…SSS) dưới số Combo, viền màu theo hạng, khi lên hạng: nảy + lóe + âm "chime"; S trở lên nhạc thêm lớp; SSS chữ rung 1 px liên tục.
  • Phong Độ cộng STYLE_DMG_BONUS vào Context và STYLE_EMBER_BONUS vào Than Hồng khi hạ địch; Hồi Âm có thể dùng Phong Độ làm điều kiện/kích hoạt (on_style_rank).

8Bộc Phá (Overdrive) & Thức Tỉnh

Nguồn Năng lượng Bộc Phá
hit 1
hit_cap 3
deflect 6
perfect_deflect 12
evade 4
counter 5
block 2
hurt 2
kill 3
rank_up 5

Tất cả × (1 + OverdriveGain). Tối đa 100; giữ khi sang tầng.

  • Tuyệt Kỹ (mặc định): đầy 100 + điều kiện AUTO (§9.3) → anh hùng bất tử, letterbox 16 px trên/dưới, nền tối 40%, zoom 2× quanh anh hùng nếu Tuyệt Kỹ là đòn đơn mục tiêu, hit cuối slow-mo 0.25× trong 0.6 s thực. Mỗi anh hùng 1 Tuyệt Kỹ (ULT).
  • Thức Tỉnh (nếu có Hồi Âm Tuyệt Truyền ART của anh hùng): đầy 100 → biến hình 8 s: lộ trình có cond: od mở, đòn gốc +X% (theo thẻ), hiệu ứng ngoại hình (ramp sáng/viền/aura pixelfx) → kết thúc bằng Tuyệt Kỹ (cường hóa nếu thẻ nói vậy). Trong Thức Tỉnh Bộc Phá không tích.
  • Chế độ THỦ CÔNG (toggle HUD): Bộc Phá chỉ kích hoạt khi người chơi chạm nút; Auto-Rerun luôn ép AUTO.
  • Chỉ kích hoạt ở cửa sổ hủy/giữa hai đòn (không cắt hit-frame).

9Cổng cơ chế riêng, Kỹ Năng, Tuyệt Sát

9.1 Cổng cơ chế (HeroGauge)

Mỗi anh hùng có đúng một Cổng, định nghĩa dữ liệu:

Trường Ý nghĩa
id, name_vi/en FOCUS Ý Kiếm, VERDICT Phán Xét, MOMENTUM Đà, FURY Cuồng Nộ, SKY Thiên Khí, CHI Chân Khí, SOULS Linh Hồn, TENSION Xích Căng
max 3 / 100 / 30 / 100 / 3 / 5 / 10 / 100
gain Danh sách sự kiện → lượng (vd on_deflect:+1, on_hit:+1, on_block:dmgBlocked/MaxHP×200)
decay Giảm theo thời gian (vd −1/0.25 s sau 1.5 s không đánh)
threshold Ngưỡng → hiệu ứng (vd Đà 30 → Cuồng Sát 5 s)
spend Lộ trình/kỹ năng tiêu Cổng (gauge trong RouteDef)
ui Dạng hiển thị (điểm sáng, thanh, ô) cạnh thanh HP

Chi tiết từng Cổng ở chương anh hùng. Cổng giữ nguyên khi sang wave, về giá trị khởi đầu khi sang tầng trừ khi Cổng ghi khác.

9.2 Kỹ Năng A/B

Mỗi anh hùng 2 Kỹ Năng (SKILL) có hồi chiêu 6–16 s × (1 − SkillCdr), giáp siêu cứng trong suốt đòn, hit cuối dùng cảm giác Finisher. Hồi Âm Bí Kỹ có thể thay một Kỹ Năng trong run (move_replace(skill_a, <id>)) hoặc biến đổi (skill_mod).

9.3 Điều kiện AUTO

  • Kỹ Năng: hồi xong VÀ (≥ 2 địch trong vùng kỹ năng HOẶC mục tiêu Tinh Anh/Thủ Vệ/Boss HOẶC điều kiện riêng của kỹ năng) — hoặc đã sẵn sàng > 3 s.
  • Bộc Phá: 100 VÀ (≥ 4 địch trong 64 px HOẶC Thủ Vệ/Boss trong tầm HOẶC HP anh hùng < 35%) — hoặc đầy > 6 s.
  • Không bao giờ dùng khi mục tiêu Vỡ Thế (để dành Tuyệt Sát) trừ khi không có Tuyệt Sát nào sẵn.

9.4 Tuyệt Sát (Execution)

  • Điều kiện: mục tiêu Vỡ Thế (§10.5) trong tầm Tuyệt Sát (thường 32–48 px), hoặc địch thường (không Boss) có HP ≤ ExecuteThreshold. Hồi 4 s (theo anh hùng).
  • Anh hùng bất tử suốt đòn. Địch thường/Tinh Anh/Thủ Vệ: chết ngay (Thủ Vệ: chỉ khi HP ≤ 30%, ngược lại nhận 25% Max HP). Boss: 10% Max HP sát thương chuẩn, một lần mỗi lần Vỡ Thế.
  • Cảm giác: zoom 2×, letterbox, slow-mo khung trước va 0.4× trong 0.3 s, hit-stop 250 ms, rung 4 px, nháy đảo màu 1 khung (tắt được), chữ pixel tên đòn.
  • Phong Độ +150; Bộc Phá +10.

10AI anh hùng (HeroBrain)

10.1 Trạng thái

Enter (xuống cầu thang) → Idle → Seek → Approach → Route ⇄ Skill / Ultimate / Defending / Counter → Victory (đi tới miệng hầm). Phản ứng: Flinch, Stagger, Knockdown, GuardBroken, Grabbed, Downed.

10.2 Chọn mục tiêu

Đánh giá mỗi 0.25 s, chỉ đổi tại ranh giới đòn/cửa sổ hủy hoặc khi mục tiêu chết:

S(e) = 100/(1 + dist/16) + 40·[đang giữ token & đang lấy đà vào anh hùng] + 30·[tầm xa & dist > 64]
     + 60·[Vỡ Thế] + 25·[Mất Thăng Bằng] + 50·[hồi máu/triệu hồi] + 30·[Tinh Anh/Thủ Vệ] + 60·[Boss]
     + 25·(1 − hp%) + 20·[mục tiêu hiện tại] − 30·[thủ mặt trước & anh hùng không có BREAK] 

10.3 Khoảng giao chiến

Tham số Giá trị
Tầm đòn Từ hitbox đòn đầu của lộ trình được chọn × (1 + Reach)
Khoảng ưa thích Theo anh hùng (spacing): Vex 14 px, Kaito 22, Aldric 20, Brann 28, Rook 12, Lyra 44, Mora 34, Sable 52
Giữ khoảng Địch áp sát hơn spacing − 8 và anh hùng có đòn lùi/lướt → dùng; anh hùng tầm xa ưu tiên GAP/đẩy lùi
Mục tiêu sau lưng Dùng TURN nếu có; ngược lại quay mặt 0.08 s
Mục tiêu trên không Sau LAUNCH → AIR; mục tiêu bị hất bởi nguồn khác → chỉ nhảy theo nếu có AIR hợp lệ

10.4 Poise anh hùng

Poise 100 (+ hero, Cây Đèn Hồn, Hồi Âm). Đòn nhẹ địch 15, nặng 60, nặng Boss 100–150. Hồi 50/s sau 1 s không bị đánh. Poise ≤ 0 → Khựng 0.5 s (Boss nặng: Ngã 1.2 s), Poise đầy lại. Giáp siêu cứng trong đòn có armor, Kỹ Năng, Tuyệt Kỹ: vẫn nhận ST ×0.7 nhưng không khựng. Không bị khóa khựng > 1.5 s liên tục (bất tử 0.5 s sau 1.5 s khựng tích lũy).

11AI địch & Combat Director

11.1 Token tấn công

Tham số Giá trị
Token cận chiến min(4, 2 + ⌊f/30⌋)
Token tầm xa min(3, 1 + ⌊f/35⌋)
Phân phát Mỗi 0.5 s: token trống → địch chờ, xếp theo (khoảng cách tăng, thời gian chờ giảm)
Giữ Tới hết chuỗi đòn + 0.5 s; hồi 1.0 s mới xin lại
Nhịp chồng đòn Hai hit-frame của hai địch khác nhau nhắm anh hùng phải cách ≥ 0.25 s (Director dời lấy đà) — để mỗi lần phòng thủ đọc được; Boss/Thủ Vệ được phép phối hợp combo riêng
Ngoại lệ Thủ Vệ, Boss, Quỷ Bom, đàn dơi không cần token

11.2 Vòng vây

Địch không token đứng ở vòng 48–72 px quanh anh hùng, chia đều hai bên. Mỗi 2–4 s chọn hành vi phụ: khiêu khích, bước nhử ±8 px, đổi bên (đi vòng phía sau với 20% xác suất).

11.3 Báo hiệu đòn (bắt buộc với mọi đòn địch)

Loại Thời gian lấy đà Báo hiệu pixel Âm
light ≥ 0.35 s Dáng lấy đà rõ (2–3 khung giữ) Hơi thở/rít
heavy ≥ 0.6 s Thân nháy đỏ (#ff2040, 2 khung/0.1 s) + "!" 5×7 trên đầu "Rèn" ngắn
thrust / sweep / grab ≥ 0.7 s Glyph đỏ thẫm (#a0102a) 9×9 trên đầu: mũi tên / sóng / bàn tay + viền thân đỏ thẫm Âm trầm "boong"
projectile 0.5–0.6 s Đường ngắm 1 px đứt (ranged) / dấu tròn đất (ném) Tiếng lên dây
area ≥ 0.8 s Vùng đất dither đỏ nhấp nháy nhanh dần Ù tăng

Anh hùng trúng địch trong lúc lấy đà và làm địch Khựng (vượt Poise) → hủy đòn của địch.

11.4 Giới hạn đám đông

Tier Địch sống đồng thời Đạn Afterimage / light buffer
High 10 60 Bật
Mid 8 45 Bật
Low 6 30 Tắt

Vượt giới hạn → hàng đợi spawn (05 §4).

12Thế (Posture) & phản ứng trúng đòn

12.1 Lớp hit

Lớp Tên Posture Hit-stop (ms) Rung (px) Rung (s) Cỡ số ST (px@1080)
L Light 6 33 0 0.0 36
M Medium 10 50 1 0.06 36
H Heavy 18 83 2 0.1 44
F Finisher 30 117 3 0.14 52
K Counter 28 100 2 0.12 52
S Skill 20 50 1 0.08 44
U Ultimate 60 200 4 0.25 60
X Execution 0 250 4 0.3 64

12.2 Thế của địch

  • Mỗi loại địch có posture (04 §2): lính thường 20–40 (không hiện thanh), Tinh Anh ×2, Thủ Vệ 200–320, Boss 300 + 30 × idx.
  • Sát thương Thế = posture của lớp hit (hoặc post) × (1 + PostureDmg) × [×2 nếu gb vào địch đang thủ] × [×1.5 nếu địch Mất Thăng Bằng].
  • Hồi Thế: sau 1.5 s không nhận Thế, hồi 12% Max Thế/s (Boss 8%/s).
  • Vỡ Thế khi Thế đầy: địch đứng choáng 2.5 s (Boss 3.5 s, sau đó miễn Vỡ 12 s), nhận +50% sát thương, quỳ một gối (clip broken), viền trắng nhấp nháy. Anh hùng ưu tiên Tuyệt Sát (§9.4).
  • Lính thường không hiện thanh: Vỡ Thế = ngã (knockdown) ngay; Tinh Anh/Thủ Vệ/Boss hiện thanh Thế dưới thanh HP.

12.3 Poise của địch (gián đoạn)

Tích Poise nhận trong 1.5 s ≥ Poise địch → phản ứng đầy đủ (react của hit); chưa đủ → chỉ giật nhẹ (lùi 1 px, nháy trắng 1 khung) và không bị ngắt đòn. Địch Poise 0 phản ứng mọi hit. Siêu giáp của Boss/Thủ Vệ theo kịch bản.

12.4 Bảng phản ứng

Phản ứng Điều kiện Thời lượng / vật lý Ghi chú
Flinch L/M, trên đất 0.25 s, lùi 2 px 2 biến thể (cao/thấp)
Stagger H/F hoặc vỡ Poise 0.6 s, trượt lùi 8 px
Knockback kb ≥ 120 px/s Trượt, giảm tốc 600 px/s² Chạm tường ≥ 220 px/s → Wallbounce
Launch react: launch v₀ = √(2·g·lift), g = 950 px/s² Boss/thân to chỉ khi Vỡ Thế
Juggle Hit trúng mục tiêu trên không Nâng AIR_HIT_LIFT 140 px/s Tối đa 10 hit/lượt tung; sau 6 hit trọng lực ×1.5
Spike react: spike trên không Đập xuống 600 px/s → Groundbounce (1 lần) hoặc Knockdown
Knockdown Đòn quật/rơi xuống Nằm 0.8 s + dậy 0.5 s Đánh nằm (OTG) 50% ST, tối đa 3 hit
Wallbounce Va tường Dính 0.15 s → bật ngược 60% tốc, 1 lần/lượt Vết nứt tường
Groundbounce Spike chạm đất Bật lên 40 px, 1 lần/lượt Bụi đất
Crumple Phản Đòn/Gạt Hoàn Hảo lên địch đang lấy đà Sụm chậm 0.8 s (mở OTG)
Spin Đòn xoay mạnh Xoay tại chỗ 0.4 s
Pull react: pull Kéo về phía anh hùng tới khoảng 16 px Liềm xích, lưỡi hái móc
Off-balance Bị Gạt 0.35–0.7 s, không hành động Thế nhận ×1.5
Broken Thế đầy 2.5 / 3.5 s §12.2
Grabbed Đòn túm (Rook, Boss) Theo clip đôi Không boss
Frozen / Stunned Trạng thái §13
Death HP ≤ 0 Biến thể theo hit cuối (02 §9)

Ưu tiên khống chế: Grabbed > Broken > Frozen > Stunned > Knockdown > Launch/Juggle > Off-balance > Stagger > Flinch.

13Hiệu ứng trạng thái & nguyên tố

6 nguyên tố + vật lý; màu lấy ramp PAL của pixelfx (12 §2).

Hiệu ứng Nguồn Cộng dồn Thời lượng Tác dụng Với Boss EffectType
Bỏng (Burn) Hỏa 3, làm mới chung 3 s 20% ATK/s mỗi tầng đủ built-in Burn (5)
Lạnh (Chill) Băng 3 3 s −12% tốc chạy/tốc đánh/tầng; đủ 3 → Đóng Băng không đóng băng; chậm tối đa 36% custom 1001
Đóng Băng (Freeze) Lạnh 3 — 1.5 s Bất động; hit H/F làm vỡ (+60% ST hit đó) miễn built-in Freeze (2)
Điện Giật (Shock) Lôi 1 4 s +15/20/25% sát thương nhận; 25% lan sang 1 địch gần đủ custom 1002
Độc (Venom) Độc 10, hẹn giờ riêng 6 s 5% ATK/s mỗi tầng đủ custom 1003
Chảy Máu (Bleed) Vật lý (Vex, Kaito, Mora) 5 4 s 8% ATK/s mỗi tầng; khi đủ 5 → Xuất Huyết nổ 150% ATK, xóa tầng đủ built-in Bleed (4)
Ám Ấn (Hex) Ám 3 5 s −8% DEF & +5% ST nhận mỗi tầng đủ custom 1004
Phá Giáp (Sunder) Đòn gb, Brann 5 4 s −6% DEF mỗi tầng đủ custom 1005
Thánh Quang (Radiance) Quang 1 4 s Hạ địch đang Thánh Quang → hồi 1% Max HP (ICD 0.5 s); +25% ST lên địch Bất Tử (xương, ma) đủ custom 1006
Đánh Dấu (Marked) Hồi Âm 1 5 s CritDmg lên mục tiêu +20/30/40% đủ custom 1007
Choáng (Stun) nhiều — theo nguồn Không hành động quy đổi Thế: 40 điểm/s hiệu lực built-in Stun (21)
Chậm (Slow) nhiều lấy mạnh nhất theo nguồn −X% tốc chạy 50% hiệu lực built-in Slow (20)
Đẩy lùi đòn — — Dịch chuyển miễn (trừ Vỡ Thế) built-in KnockBack (1)

Trạng thái địch áp lên anh hùng (Độc, Bỏng, Lạnh — không bao giờ Đóng Băng anh hùng —, Chậm, Choáng) theo bảng enemies_hero_status (04). Thời lượng thực = gốc × (1 + StatusDuration); Tỷ lệ = gốc + StatusChance. Custom effect đăng ký EffectRegistry.Configure, id ≥ 1000 (13 §4).

14Game feel

14.1 Hit-stop & đóng băng

  • Cục bộ: chỉ attacker + nạn nhân của hit đó dừng (đồng hồ actor = 0); địch khác vẫn chạy.
  • Thời lượng theo lớp hit (§12.1); chí mạng +17 ms (1 tick ×1); tổng hit-stop của anh hùng ≤ 300 ms trong cửa sổ trượt 1 s (phần vượt bỏ). Chồng hit-stop: lấy giá trị lớn nhất còn lại.
  • pixelfx act.hits[].stop là nguồn gốc giá trị cho từng đòn; bảng lớp hit là mặc định khi đòn không ghi.
  • Toàn cục (slow-mo CombatClock 0.25× trong 0.6 s thực + zoom 2× nếu điểm va trong khung): hit cuối Tuyệt Kỹ, Tuyệt Sát, hạ địch cuối của tầng, hạ Thủ Vệ/Boss. Né Hoàn Hảo: 0.3× 0.4 s.

14.2 Rung & camera

  • Rung tính bằng px nguyên, công thức pixelfx (x = sin(f·2.4)·k, y = cos(f·3.7)·0.7k, f = ⌊t·60⌋), k giảm tuyến tính; biên độ theo lớp hit (§12.1). Không rung khi amp = 0.
  • Camera punch: lệch 2 px theo hướng đòn trong 2 tick ở hit H/F/K.
  • Cài đặt "Giảm nhấp nháy": tắt nháy đảo màu, nháy trắng toàn màn, rung −50%.

14.3 VFX/SFX/chữ

Lớp hit VFX pixelfx (mặc định) SFX Chữ
L impacts/hit-spark (nhỏ) + vệt chém của đòn sfx_hit_light_[1-4] —
M hit-spark + impacts/hit-flash sfx_hit_med_[1-4] —
H / F impacts/crit-hit hoặc blunt-hit + bụi sfx_hit_heavy_[1-3] 25% chữ pixel "SLASH!/CRACK!"
K impacts/parry → vệt phản đòn sfx_counter_[1-3] "PHẢN!"
X Theo anh hùng + impacts/impact-frame (re-author 270×480) sfx_exec_<hero> Tên Tuyệt Sát
Gạt / Chặn / Va Kiếm impacts/parry / impacts/shield-block / parry ×2 + ricochet sfx_deflect_[1-5] (pitch theo chuỗi) / sfx_block / sfx_clash "GẠT!", "CHẶN", "VA KIẾM!"

Số sát thương: font pixel (Tiny5 hoặc font thay thế có tiếng Việt — 11 §3), viền 1 px ink, bay lên 0.6 s theo bậc 1 px, gộp DoT mỗi 1 s, chí mạng màu cam #ffa040 + "!", Phản Đòn màu vàng. Tắt được trong Cài đặt.

14.4 Chết

Địch thường: tan bằng spawn/shatter-death hoặc dissolve-burn theo nguyên tố hit cuối (recolor), xác rơi 1 lần bật, mờ 0.8 s; vết máu tối/tro trên sàn (mờ sau 6 s). Tinh Anh: + nổ nhỏ. Boss: slow-mo + spawn/soul-rise + tro bay.

15Tốc độ game

x1 · x1.5 (kỷ lục B5) · x2 (kỷ lục B10) · x3 (Thẻ Tháng; dùng thử 1 run/ngày). Áp lên CombatClock (không phải Time.timeScale); UI dùng unscaled. Hit-stop/slow-mo nhân thêm. Lựa chọn lưu theo người chơi.

16Gục & hồi sinh

HP = 0 → slow-mo 0.5 s, clip downed (quỳ, đèn hồn chập chờn) → hồi sinh theo thứ tự 05 §8. Hồi sinh: bật dậy với vòng lửa đèn hồn đẩy lùi mọi địch trong 64 px (0 ST), bất tử 2 s, Combo = 0, giữ Bộc Phá, Cổng cơ chế về khởi đầu, Khí Thủ đầy.

17Edge cases

# Tình huống Xử lý
C1 Mục tiêu chết giữa lộ trình Route carry (§6.6); không có ai → kết thúc
C2 Hết địch giữa lộ trình Chạy hết đòn hiện tại → Victory (clip thắng/thu vũ khí)
C3 Địch ra ngoài phòng Kẹp vị trí; ngoài biên > 1 s → dịch về điểm spawn gần nhất
C4 Địch tầm xa chạy vòng mãi Anh hùng luôn có ≥ 1 GAP; địch tầm xa không lùi quá x = ±150
C5 Boss bất tử theo kịch bản ≤ 4 s liên tục; anh hùng đánh lính
C6 Hai khống chế cùng lúc Ưu tiên §12.4
C7 Hit-stop chồng Lấy lớn nhất còn lại, không cộng
C8 Tốc đánh rất cao Tối thiểu 0.08 s/đòn; vượt → hit "dư âm"
C9 Kẹt giữa hai thân to Đòn DASH/GAP xuyên địch; Poise đảm bảo không khóa > 1.5 s
C10 Hai đòn địch cam kết cùng tick Director đã giãn ≥ 0.25 s (§11.1); nếu vẫn trùng (Boss + lính): roll riêng từng đòn, phòng thủ đòn đầu, đòn sau chỉ được Né ×0.6
C11 Đòn địch thứ hai tới khi anh hùng đang Defending Clip phòng thủ hủy được sang clip phòng thủ khác từ contact + 2 tick; đòn đa hit của địch được roll từng hit (các hit cách ≥ 0.22 s — 04 §3). Nếu đòn thứ hai cam kết trước mốc đó: chỉ roll Né ×0.6
C12 Tất cả tỉ lệ phòng thủ = 0 Bỏ qua roll, mọi đòn Trúng (Brann đầu game với đòn thrust)
C13 Phản Đòn nhắm địch đã chết Đổi sang địch gần nhất trong 32 px, không có → hủy, không tiêu ICD
C14 Vỡ Thế khi đang trên không Rơi xuống, Vỡ Thế bắt đầu khi chạm đất
C15 Lộ trình next: AIR nhưng mục tiêu đã rơi Bỏ ràng buộc, chọn lại

18Cấu hình (CombatConfig.csv)

Toàn bộ hằng số §2–§16 (constants.py) xuất ra CombatConfig.csv (key/value) để chỉnh không cần build: combo_window_base, defense_lead_s, deflect_chain_*, counter_icd_*, block_reduction_*, guard_*, posture_*, broken_*, style_*, overdrive_*, hitstop_*, gravity, air_hit_cap, otg_*, tokens_*, max_alive_*, descent_heal…

Key Giá trị
tick_hz 60
ppu 16
room_half_w 176
ceiling_y 200
gravity 950
launch_height_low 48
launch_height_mid 80
launch_height_high 120
air_hit_lift 140
air_hit_cap 10
juggle_decay_after 6
otg_dmg_mult 0.5
otg_hit_cap 3
wall_splat_speed 220
bounce_per_combo 1
hero_hp0 400
hero_atk0 40
account_base_hp 200
account_base_atk 20
hero_def0 20
hero_move0 96
hero_poise0 100
guard0 100
guard_regen 25
guard_regen_delay 1.0
guard_break_stun 0.9
guard_break_vuln 0.5
level_growth 0.08
block_reduction_light 0.75
block_reduction_heavy 0.45
defense_lead_s 0.15
deflect_offbalance_light 0.35
deflect_offbalance_heavy 0.7
deflect_offbalance_boss_heavy 0.4
deflect_posture_light 1.0
deflect_posture_heavy 2.5
deflect_chain_window 1.2
deflect_chain_bonus 0.04
deflect_chain_max 5
flow_state_s 3.0
flow_state_aspd 0.2
counter_icd_deflect 0.8
counter_icd_block 1.5
counter_icd_evade 1.2
counter_crit_bonus 0.5
perfect_evade_slowmo 0.3
perfect_evade_real_s 0.4
perfect_evade_icd 6.0
evade_sway_mult 0.6
clash_window_s 0.05
hitstop_crit_bonus_ms 17
hitstop_budget_ms_per_s 300
posture_regen_delay 1.5
posture_regen_per_s 0.12
broken_time_normal 2.5
broken_time_boss 3.5
broken_vuln 0.5
boss_break_immune_s 12.0
execution_boss_dmg 0.1
style_cap 2000
style_decay_delay 2.0
style_decay_per_s 60
style_hit_taken_loss 0.3
style_repeat_mult 0.5
overdrive_max 100
combo_window_base 2.0
descent_heal 0.08
gate_heal 0.3
revive_hp 0.5
free_revive_cap 3
boss_enrage_s 150
hit_L_posture 6
hit_L_hitstop_ms 33
hit_L_shake_px 0
hit_L_shake_s 0.0
hit_M_posture 10
hit_M_hitstop_ms 50
hit_M_shake_px 1
hit_M_shake_s 0.06
hit_H_posture 18
hit_H_hitstop_ms 83
hit_H_shake_px 2
hit_H_shake_s 0.1
hit_F_posture 30
hit_F_hitstop_ms 117
hit_F_shake_px 3
hit_F_shake_s 0.14
hit_K_posture 28
hit_K_hitstop_ms 100
hit_K_shake_px 2
hit_K_shake_s 0.12
hit_S_posture 20
hit_S_hitstop_ms 50
hit_S_shake_px 1
hit_S_shake_s 0.08
hit_U_posture 60
hit_U_hitstop_ms 200
hit_U_shake_px 4
hit_U_shake_s 0.25
hit_X_posture 0
hit_X_hitstop_ms 250
hit_X_shake_px 4
hit_X_shake_s 0.3
style_D_threshold 0
style_D_dmg 0.0
style_D_ember 0.0
style_C_threshold 120
style_C_dmg 0.04
style_C_ember 0.05
style_B_threshold 300
style_B_dmg 0.08
style_B_ember 0.1
style_A_threshold 550
style_A_dmg 0.12
style_A_ember 0.15
style_S_threshold 850
style_S_dmg 0.16
style_S_ember 0.25
style_SS_threshold 1200
style_SS_dmg 0.2
style_SS_ember 0.35
style_SSS_threshold 1600
style_SSS_dmg 0.3
style_SSS_ember 0.5
style_gain_L 3
style_gain_M 4
style_gain_H 6
style_gain_F 10
style_gain_launch 8
style_gain_air 6
style_gain_K 20
style_gain_deflect 60
style_gain_perfect_deflect 120
style_gain_evade 25
style_gain_perfect_evade 60
style_gain_block 10
style_gain_clash 50
style_gain_execution 150
style_gain_S 5
style_gain_U 8
style_gain_wall_bounce 20
style_gain_kill 15
style_gain_multikill 40
style_gain_route_variety 30
od_gain_hit 1
od_gain_hit_cap 3
od_gain_deflect 6
od_gain_perfect_deflect 12
od_gain_evade 4
od_gain_counter 5
od_gain_block 2
od_gain_hurt 2
od_gain_kill 3
od_gain_rank_up 5
cap_AtkSpeed 2.0
cap_MoveSpeedMult 1.8
cap_CritRate 1.0
cap_Lifesteal 0.2
cap_Regen 0.02
cap_DmgReduction 0.6
cap_TotalReductionMin 0.15
cap_DeflectRate 0.6
cap_BlockRate 0.6
cap_EvadeRate 0.5
cap_AvoidTotal 0.7
cap_DefenseTotal 0.9
cap_SkillCdr 0.5
cap_StatusDuration 2.0
cap_Luck 30
cap_ExecuteThreshold 0.3
cap_ShieldMaxOfHp 1.0
cap_CardGoldGain 2.0
cap_ComboWindow 4.0
cap_ReachBonus 0.6
cap_AoeBonus 1.2
max_alive_high 10
max_alive_mid 8
max_alive_low 6
max_projectiles_high 60
max_projectiles_mid 45
max_projectiles_low 30
attack_thrust_mods {"block": 0.0, "deflect": 0.0, "evade": 1.0}
attack_sweep_mods {"block": 0.0, "deflect": 0.0, "evade": 1.0}
attack_grab_mods {"block": 0.0, "deflect": 0.0, "evade": 1.2}
attack_heavy_mods {"block": 0.5, "deflect": 1.0, "evade": 1.0}
attack_projectile_mods {"block": 1.0, "deflect": 1.0, "evade": 1.0}

18bHook engine dùng chung (do dữ liệu anh hùng/địch yêu cầu)

Các cơ chế dưới đây được dữ liệu 03/Heroes//04 sử dụng; hiện thực một lần trong engine, bật bằng tag/rule — không code riêng từng đòn. Chi tiết tham số nằm ở chương anh hùng §3 tương ứng.

Id Hook Đặc tả Dùng bởi
ENG-01 Sát thương trễ (delay + marker release) Hit delay cất sát thương vào "túi trễ" của mục tiêu (đã tính crit/vuln), nổ ở marker release của đòn sau hoặc sau 1.2 s; mục tiêu chết → mất Kaito
ENG-02 Lộ trình ép buộc khi Cổng đầy Cổng chạm max → lộ trình SIGNATURE chỉ định chạy ngay ở ranh giới đòn kế (ưu tiên trên Tuyệt Sát); -ALL nhân sát thương theo lượng tiêu Aldric (ALD_JUDGMENT)
ENG-03 Khóa Cổng ở max trong trạng thái Trong Bạo Nộ / Cuồng Sát / Dạng Tử Thần, Cổng giữ max tới hết thời lượng rồi về 0 → gauge>=max nghĩa là "đang trong trạng thái" Brann, Vex, Mora
ENG-04 Giáp theo ngưỡng Cổng Cổng ≥ ngưỡng → đòn cat HEAVY (hoặc mọi đòn) nhận armor toàn thời lượng Brann
ENG-05 Đổi clip theo cấp gồng Đòn có charge_levels [id L1, L2, L3]: runtime chọn clip cấp cao hơn khi mục tiêu Choáng/Vỡ Thế/Mất Thăng Bằng hoặc Cổng ≥ ngưỡng (BRN_CHARGE) Brann
ENG-06 Khiên chặn đạn tự động Trong đòn có tag shield, đạn từ phía trước bị Chặn 100% (không roll), vẫn tốn Khí Thủ Aldric
ENG-07 Quỹ sát thương đã chặn Tổng sát thương bị Chặn tích vào quỹ; Phản Đòn Chặn kế tiếp cộng % quỹ rồi xóa Aldric
ENG-08 Dịch chuyển sau lưng (blink) Đòn tag blink: anh hùng xuất hiện sau lưng mục tiêu ở khung đầu; mọi hit của đòn tính là đánh từ sau lưng Vex, Kaito (iai)
ENG-09 Kích nổ trạng thái (rupture) Hit tag rupture: nổ sớm Chảy Máu (30% ATK/tầng, xóa tầng); mục tiêu không có tầng → nhận 2 tầng Vex
ENG-10 Kéo mục tiêu / kéo ngược react: pull lên mục tiêu thường → kéo về 16 px; lên Boss/thân to/đang thủ chắc → anh hùng bị kéo tới (zip) Mora, Sable
ENG-11 Trói & người làm chùy (bind/flail) Mục tiêu bị trói (không Boss) gắn vào socket vũ khí, thành hitbox động gây % ATK lên kẻ khác (tái trúng 0.4 s) Sable
ENG-12 Túm đôi (grab) Clip đôi: nạn nhân bám socket tay anh hùng theo track khung; địch cần 5 tư thế "bị giữ" chung; không áp Boss/thân to Rook
ENG-13 Thân bị ném thành đạn Mục tiêu bị ném (throw) thành projectile thân người, va kẻ khác gây % ATK, rơi Ngã Rook
ENG-14 Lọc bể Phản Đòn theo tag Bể Phản Đòn có thể lọc theo tag mục tiêu/đòn (vd chỉ bốc đòn grab khi mục tiêu túm được) Rook (ROK_PALM)
ENG-15 Hệ số hit từ quy tắc anh hùng Rule anh hùng nhân HitMult theo Cổng (vd +25%/khối Chân Khí khi tiêu) Rook, Aldric
ENG-16 Ghi đè clip né theo rule Rule anh hùng thay bảng clip né §5.4 (pha xuyên, nhảy sào qua đầu, dịch chuyển); có thể đánh dấu "đòn kế tính từ sau lưng" Mora, Lyra, Vex
ENG-17 Bay không thể bị nhắm Trong đòn tag dive pha bay lên trần: anh hùng không thể bị nhắm, đạn bỏ qua Lyra
ENG-18 Xoay gạt đạn Đòn tag spin: đạn chạm hitbox xoay bị Gạt (×2 tỉ lệ, bật ngược) không chịu khóa ±3 tick Sable, Lyra
ENG-19 Hit vùng điểm ngọt Hitbox line/arc có vùng ngoài 30% (tip): +% sát thương và Thế Lyra
ENG-20 Chèn đòn ngoài lộ trình AI chèn đòn TAUNT/gầm/tra kiếm khi lặng hoặc khi rule yêu cầu (vd KAI_NOTO sau đòn trễ, gầm của Brann) Kaito, Brann
ENG-21 Cổng mang sang tầng một phần Trường carry của Cổng: % giữ lại khi sang tầng (Mora 50%) Mora
ENG-22 Chuỗi trạng thái trong HitDef.status Cú pháp elem(chance, stacks, dur) cho mọi trạng thái §13 (burn, chill, shock, venom, bleed, hex, sunder, radiance, stun, slow) mọi anh hùng
ENG-23 Hitbox sau lưng box với dx âm = vùng phía sau anh hùng Sable, Kaito (quay chém)
ENG-24 Hủy clip phòng thủ nối tiếp §17 C11 mọi anh hùng
ENG-25 Trạng thái vũ khí / thế Cổng kiểu "trạng thái" (giá trị rời rạc) đổi khi lộ trình kết thúc hoặc khi đòn có marker state {to}; lộ trình/đòn khai báo trạng thái yêu cầu (gauge=N trong cond); trạng thái đổi được tỉ lệ phòng thủ, clip thủ/idle, khả năng lượn; hoãn đổi khi LAUNCH còn chờ AIR Zerran (Nhị Thức), Tsubaki (ô mở/đóng), Juno (loại đạn)
ENG-26 Giá máu Đòn tag blood/blood2 tự trừ % HP hiện tại khi bắt đầu (không bao giờ dưới sàn 30% Max HP, không gây chết), ghi nhật ký HP đã trả 10 s cho hiệu ứng hoàn trả Zerran
ENG-27 Đâm chặn (chặn trong lúc địch lấy đà) Khi địch cam kết đòn light/heavy mà anh hùng có rule chặn: roll riêng (trước bộ giải phòng thủ) → anh hùng ra đòn tag stophit chạm trong cửa sổ lấy đà, hủy đòn địch, mở "thủ hở" (bỏ qua Khí Thủ/Poise) trên kẻ đó N s Ignis
ENG-28 Vòng cấm áp sát Thực thể vùng tạm thời quanh anh hùng: địch cận chiến không vào được, mất token cận chiến khi đang ở trong Ignis
ENG-29 Mồi nhử Thực thể có HP, kéo mục tiêu của địch (ưu tiên trong TargetSelector của địch), vỡ khi hết HP/thời gian Isolde (tượng băng), Ignis (áo choàng)
ENG-30 Triệu hồi bản sao/đồng minh Thực thể có HP, thời lượng, trần số lượng, % ATK; AI: lặp lại lộ trình của anh hùng (trễ 0.2 s) hoặc hành vi riêng; có thể thu hút đòn Momo (phân thân), Aurelle (quả cầu theo sau)
ENG-31 Đạn quay về (boomerang) Đạn bay ra rồi quay về tay chủ; trúng cả lượt đi và lượt về (mỗi lượt 1 lần/mục tiêu); sự kiện catch khi bắt lại; biến thể nối xích kéo vệt Kazane (quạt), Vulkar (liêm xích)
ENG-32 Vùng địa hình tạm thời Thực thể vùng trên sàn (dung nham, sương băng, mưa lông vũ, bẫy tĩnh): thời lượng, tick hiệu ứng, trần số vùng, có thể bị kích nổ bởi đòn khác Vulkar, Isolde, Aurelle, Elowen
ENG-33 Biến thể đạn ricochet (bật tường/trần, tối đa n lần), split (tách n tia), homing (về mục tiêu đánh dấu), nail (kéo mục tiêu theo tới tường rồi ghim), intercept (bắn hạ đạn địch) Elowen, Juno (tia ray dội tường)
ENG-34 Biến thể phòng thủ Kết quả absorb (đạn bị Gạt/Chặn nạp lại Cổng thay vì bật ngược), Gạt tách nón (đạn bị gạt bay thành nón phía trước), lăng kính tĩnh phản đạn, Chặn mọi hướng Tsubaki, Kazane, Isolde, Aurelle
ENG-35 Dấu của anh hùng trên địch Tầng dấu do anh hùng sở hữu (con mồi, ấn thánh, linh phù, ấn trăng) có trần, thời lượng; kích nổ đồng loạt; dây nối giữa các dấu gây sát thương; đòn đặc biệt sinh hitbox tại mọi dấu Sorin, Aurelle, Tsubaki, Elowen
ENG-36 Chèn đòn theo sự kiện Sự kiện (hạ địch, khiêu khích thành công, Gạt) chèn ngay một đòn chỉ định có tầm bám (homing) tới mục tiêu kế Sorin (vồ chuỗi), Feng (nhảy đầu), Momo (né-phản sau khiêu khích)
ENG-37 Độ cao bay & bám tường Anh hùng có offset độ cao mặc định (lơ lửng) với hitbox neo sàn bên dưới; đường cong descend/swoop/rise; hero:air theo độ cao; trạng thái bám tường không bị cận chiến nhắm Aurelle, Sorin
ENG-38 Dịch chuyển đám đông Kéo/đẩy địch về một điểm (gom cụm), mang nhiều địch theo khi húc, ném kẻ bị Gạt vào kẻ khác bằng chính đòn của nó Kazane, Taurok, Feng
ENG-39 Sóng chạy sàn Đạn chạy dọc mặt sàn, dội tường, hai sóng gặp nhau thì nổ Taurok
ENG-40 Nguồn Cổng mở rộng Cổng tăng theo quãng đường di chuyển, theo thời gian giao chiến, theo chuỗi đổi chi thể (lặp → reset), theo mỗi đòn hoàn tất không bị trúng; nhiều bậc ngưỡng + khóa sau phun trào Taurok, Vulkar, Feng, Kazane
ENG-41 Điều chỉnh tung hứng Giảm tốc rơi của mục tiêu bị nâng, giữ độ cao khi chạm, hất lại kẻ đang nằm (tính 1 lượt tung mới, trần 1 lần/mục tiêu/lộ trình) Kazane, Feng
ENG-42 Giật lùi & lùi giữ khoảng Đòn bắn đẩy chính anh hùng lùi (chống tường, bật lên không, lơ lửng nhờ giật); AI lùi giữ khoảng giữa hai lộ trình Juno, Elowen
ENG-43 Nhả sớm khi bị trúng Đòn tích lực (kéo cung) bị trúng → bắn ngay với % lực đã tích thay vì hủy Elowen
ENG-44 Hình vũ khí theo khung Độ dài/hình dạng vũ khí đổi theo từng khung (côn dài–ngắn, vũ khí băng triệu hồi khác nhau mỗi đòn); hitbox co giãn theo khoảng cách mục tiêu trong giới hạn Momo, Isolde
ENG-45 Tương tác trạng thái mở rộng Lạnh tràn lên mục tiêu miễn Đóng Băng → quy đổi Thế; "lún sàn" (gốc rễ tại chỗ); kết quả phòng thủ "bị cày" cho địch bị húc Isolde, Taurok
ENG-46 Thân to theo anh hùng Bán kính thân, tỉ lệ sprite, ô ảnh riêng từng anh hùng Taurok, Vulkar
ENG-47 Lớp hấp thụ trước khiên Điểm hấp thụ (tinh thể) chặn trọn một đòn trước Khiên/HP Isolde
ENG-48 Tường tạm thời Thực thể tường (gió, băng) tính là tường cho tgt:wall, dội tường, ghim Momo

Mỗi chương anh hùng §3 nêu hook dùng và tham số; hook chỉ một anh hùng dùng vẫn hiện thực tổng quát để anh hùng sau dùng lại.

Tag đòn đặc thù được phép (ngoài §6.2): iai delay release shield blink rupture dive vault tip hook chain bind flail zip spin grab throw pin chi palm charge. Validator dữ liệu (03 §4) không chặn tag; QA kiểm mỗi tag có hook tương ứng.

19QA checklist

  • [ ] Mỗi MoveDef: số hit-frame trong log khớp số số sát thương hiển thị (INV-05); hit-time khớp act.hits[].t xuất từ pixelfx.
  • [ ] Phòng thủ: khung chạm của clip Gạt/Chặn/Né trùng hit-frame địch ±1 tick ở x1 và x3 (log defense_contact_error_ticks).
  • [ ] Roll phòng thủ: tần suất thực trên 10,000 đòn mô phỏng khớp tỉ lệ hiển thị ±1.5% (sau hệ số loại đòn).
  • [ ] Trần: Gạt 60, Chặn 60, Né 50, Gạt+Né 70, tổng 90 — co theo tỉ lệ đúng.
  • [ ] Chuỗi Gạt 5 → Dòng Chảy; ICD Phản Đòn đúng 0.8/1.5/1.2 s.
  • [ ] Va Kiếm chỉ khi |Δt| ≤ 50 ms; clash_win hoạt động.
  • [ ] Hit-stop không làm địch khác đứng hình.
  • [ ] Combo đứt đúng khi Trúng; không đứt khi Gạt/Chặn/Né/khiên hấp thụ.
  • [ ] Không bị khóa khựng > 1.5 s liên tục trong 100 run tự động.
  • [ ] Token: không bao giờ quá giới hạn; hai hit-frame lính cách ≥ 0.25 s.
  • [ ] Tung hứng: ≤ 10 hit/lượt (trừ quy tắc thẻ), 1 dội tường + 1 dội đất/lượt.
  • [ ] Boss: Vỡ Thế 3.5 s + 12 s miễn; Tuyệt Sát Boss đúng 10% Max HP; Boss không bị hất khi chưa Vỡ Thế.
  • [ ] Đạo Diễn Combo: không lộ trình nào chạy 2 lần liền khi có ≥ 2 ứng viên; lộ trình mới ra mắt ở lượt hợp lệ đầu tiên tầng kế; cùng seed → cùng chuỗi lộ trình (autosim headless).
  • [ ] Tốc độ x3 + hit-stop: không mất hit-frame (đếm hit x1 = x3).
  • [ ] Phong Độ: tụt ≥ 1 hạng khi Trúng; hệ số lặp 0.5 áp đúng.
  • [ ] Cài đặt Giảm nhấp nháy tắt mọi nháy toàn màn.