🔔 Bladewake GDD
Trang chủ › Hệ thống › Lõi chiến đấu
⚙️ Hệ thống

Lõi chiến đấu

Doc 10 trình bày kèm núm chỉnh từ data/tuning.json.

Cập nhật: 2026-11-07

1Tổng quan

261
núm combat
54
trần hiệu năng/build
12
trạng thái

Mục đích: luật chiến đấu dùng chung mọi hero/kẻ địch: mô phỏng tick, hình học hitbox, chỉ số, công thức sát thương, Thế/khựng/đẩy, trạng thái STS_, cảm giác trúng đòn, i-frame, hồi phục HP, ngắm, trần hiệu năng. Phụ thuộc: 00-Design-Bible.md + data/_bible.json (canon: INV-01..INV-18, §5 hero, §5.2 mass_class, §6 tag/trạng thái, §7 kẻ địch, §10.4 hiệu năng/camera); GDD demo GDD/Data/Tuning.csv, HeroMoves.csv, EnemyAttacks.csv (lịch sử, số gốc). Được dùng bởi: 11-Defense-Tells.md, doc hero H01–H12, doc kẻ địch/biome/boss, doc nâng cấp (Edge/Relic/Cộng Hưởng), doc Khăn Tang/mode, doc UI/HUD, doc âm thanh/VFX, code Combat/Hero/Enemy/Status/DamageText.

2Phạm vi & thứ bậc

  • Doc này định nghĩa cách tính; số riêng của từng đòn (hệ số, bán kính, windup) nằm ở doc hero/kẻ địch + CSV của chúng. Mâu thuẫn số với Bible → Bible thắng; mâu thuẫn công thức với doc con khác → doc này thắng.
  • Mọi số [ASSUMED] = giá trị lượt đầu, chỉnh bằng playtest qua CSV (combat_core.csv, key = tên field trong doc này), không cần DEC nếu không chạm INV.
  • Thuật ngữ: ĐÁP = verb chạm RB/RMB · verb giữ = verb giữ RB/RMB riêng hero · Lướt = dash chung · Thế = Poise · Vỡ Thế = Broken/GuardBreak · Y/P/N = tell vàng/tím/vùng đọng (INV-02) · Dư Âm = ULT_GAUGE.

3Mô phỏng

1.1 Tick & đồng hồ

KhoáGiá trị
Bước mô phỏngcố định 1/60 s = 1 tick; tối đa 4 tick bù/khung hiển thị (rơi khung > 4 tick → bỏ, không tua nhanh)
Đồng hồWorld (quái, đạn địch, vùng, hazard, FX địch) · Hero (hero, đạn/vùng của hero, máy nhịp H12) · Real (UI, camera, số sát thương, âm thanh)
Làm chậm1 hệ số/đồng hồ; nhiều nguồn → lấy hệ số NHỎ nhất (mạnh nhất), không nhân dồn; hết nguồn mạnh → về nguồn còn lại
Thứ tự trong 1 tickinput + buffer → Hero FSM → hitbox hero (§1.4) → AI + windup quái → đòn quái chạm hero (§7.4) → đạn → vùng/hazard → trạng thái tick (§5.4) → chết/rơi đồ → Tro Nhớ ghi sự kiện → FX/SFX hàng đợi
Đổi giây → tickcửa sổ có lợi cho người chơi (ĐÁP, i-frame, windup, tell, khe chuỗi) = ceil(t × 60 − 0.001); còn lại (hitstop, choáng, hồi chiêu) = round(t × 60)
Tick hoá cố địnhbảng §1.2; code đọc số tick từ bảng, không tự đổi lúc chạy

1.2 Bảng tick chuẩn (60 Hz)

KhoástickNguồn
Buffer input0.159INV-07
ĐÁP sàn0.149INV-11
ĐÁP gốc 0.15 / 0.16 / 0.180.15 · 0.16 · 0.189 · 10 · 11§5.1 Bible
ĐÁP làm mới khi thành công0.106demo
Hụt ĐÁP khoá (MRN07 0/1/2)0.30 · 0.45 · 0.6018 · 27 · 36INV-11, MRN07
i-frame Lướt0.2012INV-12
Né Hoàn Hảo: Lướt bắt đầu ≤ trước va chạm0.159INV-12
Windup tối thiểu S / M·L·XL / khe chuỗi0.30 · 0.45 · 0.3518 · 27 · 21INV-03
Glint 2 trước va chạm0.127INV-02 (7 tick = 0.117 s, sai số 1 tick chấp nhận)
Hurt hero / ĐÁP·Lướt mở lại sau0.22 · 0.1213 · 7demo, INV-11
i-frame sau khi trúng (hero)0.6036demo
Cửa sổ Phản1.0060demo
Vỡ Thế hero0.9054demo

1.3 Hệ toạ độ & phép chiếu 3/4

  • Mặt sàn (x, z), đơn vị px sàn: x → phải (đông), z → lên màn (bắc, xa camera). Độ cao y ≥ 0 (px). Góc trên mặt sàn: 0° = +x, tăng ngược chiều kim đồng hồ (90° = +z).
  • Chiếu (tilt 0.5, pixelfx view.js): screenX = x − camX · screenY = (z − camZ) × 0.5 + y. Vòng tròn sàn r → elip màn 2r × r. Sắp lớp theo z chân (z nhỏ vẽ trước mặt).
  • Camera (Bible §10.4, khoá): 16:9 render 480×270 px ×4; 16:10 427×267 ×3. Khung nhìn = 480 px sàn ngang × 540 px sàn sâu. Vùng an toàn gameplay = 427×267 px màn giữa khung (= 427 × 534 px sàn) — mọi luật "trên màn" trong doc này đo bằng vùng này.
  • Mọi hitbox/hurtbox/vùng là hình trên mặt sàn; VFX vẽ cùng phép chiếu → hình VFX = hình hitbox (lệch ≤ 2 px màn).
  • Chuột → sàn: x = mouseX + camX, z = mouseY / 0.5 + camZ (bỏ y).

1.4 Hình hitbox / hurtbox trên mặt sàn

Mọi phép thử chồng lấn = Minkowski: hình đòn nở thêm bán kính hurtbox r_t của mục tiêu, thử tâm mục tiêu.

shapeTham số (field CSV)Phép thử (tâm mục tiêu P, gốc O, hướng d)Dùng cho
CIRCLEr, off_fwd, off_sidedist(P, C) ≤ r + r_tnổ, đập, vùng
ARC (nón/cung)r, r_in (mặc định 0), arc (°), off_fwdr_in − r_t ≤ dist(P, O) ≤ r + r_t và abs(∠(P−O, d)) ≤ arc/2 + asin(min(1, r_t / dist(P, O)))chém, nón khói/đất/đạn chùm
RECTlen, w, off_back (mặc định 0)P trong hình chữ nhật hướng d, dài len + off_back, rộng w, nở r_tđâm, sóng thẳng, rãnh
LINEp0, p1, wkhoảng cách P tới đoạn p0–p1 ≤ w/2 + r_tKẻ Mực 320×24, dây Kessa, tia, đường lao (quét)
RINGr_mid(t), bandabs(dist(P, O) − r_mid(t)) ≤ band/2 + r_tsóng chuông, vòng có khe (gap_deg, gap_dir)
ELLIPSErx, rz, dir(u/(rx+r_t))² + (v/(rz+r_t))² ≤ 1 trong hệ (u,v) quay theo dirvùng đáp nhảy dài, rẻ quạt bẹt
  • Quét (swept): hitbox di chuyển > r trong 1 tick (lao, đạn, Lướt Cưa) → thử theo đoạn đường đi của tick đó (LINE w = 2r). Không xuyên qua dù slow-mo hay Lướt.
  • 1 hitbox trúng 1 mục tiêu tối đa 1 lần (HashSet theo instance đòn), trừ field rehit_ticks (đa nhịp: ult, vùng, xoay).
  • Hurtbox hero: mọi hero dùng CHUNG CIRCLE r 7 trên sàn (công bằng: hero to/nhỏ không đổi độ khó) + hộp màn hình cho đạn: rộng ±7 px, cao 26 px từ chân, |Δz| ≤ 24 px, quét liên tục (demo §3.4).
  • Hurtbox quái: CIRCLE r = radius dữ liệu (S 6–10 · M 14 · L 20 · XL 28 [ASSUMED mặc định khi doc quái để trống]); với đạn hero: hộp màn ±bán kính giãn đám, cao = cao thân, sâu radius + 8 px.
  • Bộ phận (boss/mini): tối đa 4 hurtbox phụ part_id (đầu, chân, buồng lái); sát thương vào phần = nhân part_mult rồi cộng vào HP chung.

1.5 Lớp độ cao

LớpAiBị trúng bởiLuật
GROUNDmặc địnhmọi đònchặn thân, rơi hố, chịu vùng sàn
AIRBORNEhero trong cửa sổ nhảy/vọt (H01_SK02 không trung, H03 Nhảy Sào); quái S bị hất tung; boss đang nhảy (BS_B1 Nhảy Chuông)hero AIRBORNE: bất tử hoàn toàn (mọi cửa sổ không trung của hero phải ghi rõ là bất tử) · quái AIRBORNE: mọi đòn hero trúngkhông chặn thân, không chịu vùng sàn tới khi đáp
FLYINGquái rig "bay" + bầy hạt (EN_B1_07, EN_B2_05, EN_B4_02, EN_B4_03, EN_B4_05, EN_B6_02)mọi đòn hero, kể cả vùng sàn của herohurtbox ở bóng sàn; không chặn thân; miễn hố/rãnh/chôn (H11) và Ghim STS_PIN; kéo/hút áp dụng
  • Đòn hero mặc định layers = ALL (dễ dọn bầy, P2). Đòn địch chỉ trúng hero khi hero ở GROUND.

1.6 Hướng mặt & ngắm

KhoáLuật
Vectơ ngắm360° liên tục (float); sprite chọn 1/8 hướng = round(angle/45°), w/sw/nw lật gương
Tay cầmngắm = cần phải nếu độ lệch RS ≥ 0.30; nếu không, cần trái nếu độ lệch LS ≥ 0.20; nếu không, giữ hướng cũ
Chuột/phímngắm = (điểm chuột trên sàn − tâm hero), luôn bật
Hero cận chiến (H01, H02, H03, H04, H05, H06, H11)hướng hitbox = vectơ ngắm SAU trợ ngắm (§9) tại tick bắt đầu startup, khoá tới hết active; không bám 8 hướng
Hero tầm xa/vùng (H07, H08, H09, H10, H12)hướng đạn/dây/vùng = vectơ ngắm tại tick nhả; trong lúc nạp/kéo được xoay ≤ 720°/s
Quay người herotức thì khi rảnh/hồi sau đòn; trong startup/active khoá
Quáikhoá hướng ở 70% windup (windup_lock_frac 0.7); đòn lao khoá điểm đích ở 60% windup
ĐÁPhit-test 360° (INV-11); anim tự xoay về mối đe doạ Y gần nhất

4Mô hình chỉ số

📊 Núm chỉ số & trần (tuning.combat)

261 dòng
NúmGiá trịĐơn vịGhi chú
tick_hz60Hz1 tick = 1/60 s
max_catchup_ticks4ticktối đa 4 tick bù/khung hiển thị
input_buffer0.15sINV-07, 9 tick
projection_tilt0.5×screenY = (z − camZ) × 0.5 + y
hero_hurt_r7pxhurtbox hero CIRCLE r7 chung mọi hero
hero_hurt_w7pxhộp màn ±7 px
hero_hurt_h26pxcao 26 px từ chân
hero_hurt_depth24px|Δz| ≤ 24 px để đạn chạm
enemy_radius_m14pxRADIUS M (S 6–10 theo dữ liệu)
enemy_radius_l20pxRADIUS L
enemy_radius_xl28pxRADIUS XL
enemy_proj_hurt_depth_add8pxsâu hurtbox quái với đạn hero = radius + 8
parts_max4hurtboxbộ phận phụ boss/mini
aim_rs_deadzone0.3trụcngắm cần phải khi độ lệch RS ≥ 0.30
aim_ls_deadzone0.2trụcngắm cần trái khi độ lệch LS ≥ 0.20
ranged_aim_turn_deg_s720°/shero tầm xa xoay khi nạp/kéo
windup_lock_frac0.7× windupquái khoá hướng ở 70% windup
lunge_lock_frac0.6× windupđòn lao khoá điểm đích ở 60% windup
hp_max_cap400HPtrần HP_MAX
move_speed_cap_mult1.4× gốctrần MOVE_SPEED
move_speed_floor_mult0.5× gốcsàn khi bị chậm
hero_accel_time0.06sACCEL_TIME tăng tốc
hero_decel_time0.05sACCEL_TIME giảm tốc
power_base10điểmPOWER mọi hero
power_cap40điểmtrần POWER
dmg_inc_cap300%trần DMG_INC
atk_speed_cap2×trần ATK_SPEED
crit_chance0.05tỉ lệCRIT_CHANCE gốc 5%
crit_chance_cap0.75tỉ lệtrần 75%
crit_mult2×CRIT_MULT gốc
crit_mult_cap4×trần CRIT_MULT
area_cap2× bán kínhtrần AREA
proj_speed_cap2×trần PROJ_SPEED
duration_cap2×trần DURATION (không áp lên khống chế)
cdr_cap50%trần CDR
dash_charges2lượtDASH_CHARGES gốc
dash_charges_cap4lượttrần
dash_recharge0.7snạp 1 lượt, tuần tự
dash_recharge_floor0.35ssàn
answer_window_floor0.14sINV-11
answer_window_cap0.24strần ANSWER_WINDOW
poise_max100điểmPOISE_MAX hero
poise_max_cap200điểmtrần
poise_regen40điểm/sPOISE_REGEN hero
poise_regen_delay0.5skhông chịu đòn, không giữ verb giữ
poise_regen_cap80điểm/strần
dr_cap60%trần DR
elite_dmg_cap100%trần ELITE_DMG
status_power_cap100%trần STATUS_POWER
heal_mult_cap2×trần HEAL_MULT
heal_mult_floor0.2×sàn (MRN11)
pickup_r50pxPICKUP_R gốc (demo xp_magnet)
pickup_r_cap200pxtrần
ult_gain_cap1.5×trần ULT_GAIN
res_gain_cap2×trần RES_GAIN
knockback_cap2×trần KNOCKBACK
shield_cap_pct50% HP_MAXSHIELD_CAP cố định
enemy_hp_max99 999HPHP quái ≤ 99.999
enemy_base_speed_max118px/sINV-05; sau buff ≤ tốc hero / 1.1 (INV-17)
enemy_speed_vs_hero_div1.1÷INV-17
mass_s1massmass_class S
mass_m3massM
mass_l6massL
mass_xl10massXL
armor_m10%ARMOR M
armor_l15%ARMOR L
armor_xl20%ARMOR XL
armor_floor−45%sàn giáp (STS_ROT)
armor_cap50%trần giáp
poise_m100điểmPOISE M
poise_l150điểmPOISE L
poise_xl200điểmPOISE XL
elite_poise_regen12điểm/sM; trễ 2.0 s
elite_poise_delay2sM
mini_poise_regen15điểm/sL; trễ 2.5 s
mini_poise_delay2.5sL
boss_poise_regen20điểm/sXL; trễ 3.0 s
boss_poise_delay3sXL
elite_broken_time3sM Vỡ Thế
mini_broken_time3.5sL
boss_broken_time4sXL
broken_dmg_mult1.5×BROKEN_MULT mọi hạng
dot_res_l25%DOT_RES L
dot_res_xl40%DOT_RES XL
hp_act_base1.3×/HồiHP × 1.30^(act − home_act)
dmg_act_base1.15×/HồiDMG × 1.15^(act − home_act)
endless_hp_per_loop0.12×/vòngHP × (1 + 0.12 × endless_loop)
endless_dmg_per_loop0.06×/vòngDMG × (1 + 0.06 × endless_loop)
custom_scale_min0.25×custom_hp/dmg
custom_scale_max3×custom_hp/dmg
power_curveI: 1, II: 1.6, III: 2.2, IV: 3, V: 3.45, VI: 3.49PI vào Hồi= CRV_power_index lúc VÀO Hồi (17 §1.2); VI = B6 = PI cuối run. 2026-11-07 - theo DEC-2026-11-07-12 (doc 17 §1.2): IV 2.90 → 3.00, Kết 3.30 → 3.45, thêm VI (B6) 3.49 (lượt chọn 9/6/7/6/1 = 29; PI tính 2.99/3.44/3.49, lệch ≤ 0.5%).
vuln_cap2.25×min(2.25, Π vuln_i)
shield_mult0.15×khiên trước (EN_B1_04, EN_B4_01, EM09)
shield_exposed4sEN_B1_04 lộ sau vỡ khiên
em09_shield_melee_hits3cúEM09 vỡ sau 3 cú cận chiến hoặc 1 shieldbreak
hero_broken_dmg_mult1.5×hero đang Vỡ Thế nhận ×1.5
mercy_dmg_mult0.75/0.5/0.25×Thương Xót −25/−50/−75%
zone_dmg_cap_per_tick4HP/0.5 sN kẹp ≤ 4 mỗi tick 0.5 s (INV-02)
oneshot_guard_hp_pct90% HP_MAXcú trúng để lại ≥ 1 HP
oneshot_guard_cd10s≤ 1 lần/10 s
oneshot_guard_off_dotang16Độ Tangtắt khi Độ Tang ≥ 16
execute_cap_m0.2HP%M = min(execute_pct, 0.20)
execute_cap_l0.1HP%L = min(execute_pct, 0.10)
execute_xl_hp0.2HP%XL: ×1.5 sát thương khi HP boss ≤ 20%
execute_xl_mult1.5×XL thay kết liễu
max_targets_attack48mục tiêuĐánh/kỹ năng
max_targets_ult128mục tiêuult
max_targets_counter48mục tiêuPhản
overkill_carry_pct50%50% phần thừa
overkill_carry_r48px1 quái gần nhất trong r48
pierce_falloff1×mặc định không giảm
poise_dmg_from_dmg0.1× sát thươngThế mất = poise_dmg + 0.1 × sát thương cuối
poise_dmg_cap_per_hit60điểm/cútrừ ĐÁP, Phản, ult
answer_poise_m45điểmĐÁP thành công M (demo deflect_poise_elite)
answer_poise_l40điểmĐÁP thành công L
answer_poise_xl35điểmĐÁP thành công XL (demo deflect_poise_boss)
counter_poise30điểmPhản −30 Thế
cc_to_poise_lxl15điểm/lầnkhống chế lên L/XL đổi −15 Thế
broken_repeat_poise_mult1.25×/lầnThế tối đa ×1.25 mỗi lần Vỡ trước đó
broken_repeat_poise_cap2×trần
chain_answer_elite_stun1.4sSTUN:1.4 khi ĐÁP trọn chuỗi Tinh Anh
flinch_time0.18squái S khựng (11 tick)
flinch_cancel_frac0.5× windupwindup < 50% bị huỷ
flinch_attack_cd0.5shồi chiêu đòn bị huỷ
flinch_max_per_window3lần≤ 3 lần khựng / 2 s
flinch_window2scửa sổ đếm khựng
flinch_immune1smiễn khựng sau đó
hurt_stun0.22shero Hurt 13 tick
hurt_cancel0.12sLướt/ĐÁP mở lại sau 7 tick (INV-11)
hurt_knockback12pxhero bị đẩy mặc định
hurt_iframes0.6si-frame sau khi trúng (36 tick)
kb_slide_time0.12sđẩy lùi ease-out bậc 2
kb_chain_pct30%S truyền 30% quãng đẩy cho quái sau lưng (nón 60°, r = 2 × radius)
kb_chain_cone60°nón truyền đẩy
launch_s0.4shất tung S mặc định
launch_height18pxcung cao
launch_land_stagger0.1skhựng khi đáp
launch_m_poise10điểmM: đổi thành −10 Thế
pull_m_pct50%M bị kéo 50%; L/XL 0%
pull_cluster_lxl_poise_s8điểm/sL/XL −8 Thế/s trong vùng hút H05
pull_speed_max240px/stốc kéo ≤ 240
pull_stop_r12pxdừng ở r12 quanh tâm kéo
hero_kb_elite_max48pxhero_kb ≤ 48 (Tinh Anh)
hero_kb_boss_max96pxhero_kb ≤ 96 (boss)
death_knock38pxvăng khi chết ÷ √mass
death_knock_time0.3strượt văng
death_knock_heavy1.4×cú kết liễu nặng/chí mạng/đẩy mạnh
death_hop6pxnảy
sep_cell32pxspatial hash ô 32 px
sep_fill0.85×bán kính giãn = max(radius, ½ bề ngang sprite × 0.85)
sep_iterations2lượt/tickgiãn đám
sep_stiffness0.9×độ cứng
sep_z1.3×trục z tính ×1.3
hero_push_slow_mult0.85×đẩy ≥ 3 quái S → tốc hero ×0.85
hero_push_slow_count3quáingưỡng
unstuck_arc270°bị chặn ≥ 270° trong r16 liên tục 0.5 s
unstuck_r16px—
unstuck_time0.5s—
unstuck_push_r20pxquái S trong r20
unstuck_push_px_tick10px/ticktới khi có khe ≥ 24 px
unstuck_gap24px—
status_dot_tick0.5sDoT tick 30 tick, lệch pha instance_id mod 30
status_build_per_enemy6trạng thái≤ 6 BUILD cùng lúc
status_control_per_enemy3trạng thái≤ 3 CONTROL cùng lúc
status_instances_max1500instancetoàn cục
status_extend_cap_mult1.5× gốcstatus_extend trần ×1.5
elite_dr_window6sgiảm dần khống chế M: lần 1 ×1.0 · 2 ×0.5 · 3 ×0.25
elite_dr_steps1/0.5/0.25×trong 6 s
elite_dr_immune4ssau lần 3 miễn 4 s
elite_cc_mult0.5×CONTROL ×0.5 thời lượng lên M
boss_cc_poise_cap_s45điểm/strần đổi Thế từ khống chế lên 1 boss
react_thermal_r40pxNứt Nhiệt EMBER+FROST: AREA r40
react_thermal_coef2× POWER× (1 + STATUS_POWER)
react_spread_rot_add1lớpLan Độc SHOCK+ROT: +1 lớp ROT mỗi mục tiêu nảy
react_execute_hp0.15HP%Hành Hình BIND+DREAD: kết liễu HP ≤ 15%
react_execute_lxl_mult1.5×L/XL: cú kế ×1.5
hero_status_glyph_hex#c8c8d0hexglyph bạc trạng thái trên hero
hitstopLIGHT: 0.035, MEDIUM: 0.045, HEAVY: 0.07, ANSWER: 0.08, COUNTER: 0.12, BROKEN: 0.1, PERFECT_DODGE: 0, ULT_FINAL: 0.1, HERO_HURT: 0.06, DOT: 0shitstop theo hit_class; SKILL theo dữ liệu 0.02–0.08
traumaLIGHT: 0, MEDIUM: 0.22, HEAVY: 0.28, ANSWER: 0.25, COUNTER: 0.45, BROKEN: 0.5, PERFECT_DODGE: 0, ULT_MAX: 0.8, HERO_HURT: 0.3, DOT: 0traumaSKILL theo dữ liệu 0.12–0.55
multi_hitstop_add0.005s/mục tiêuhitstop = max(base, min(base + 0.005 × (n − 1), 0.06))
multi_hitstop_cap0.06s—
hero_hitstop_budget0.2s/1.0 svượt → LIGHT/MEDIUM hitstop 0
answer_slowmo_time0.25sWorld ×0.20 (demo deflect_slowmo_time)
answer_slowmo_scale0.2×demo deflect_slowmo_scale
answer_proj_slowmo_time0.12schỉ đạn
counter_slowmo0.15/0.3s · ×World 0.15 s @ ×0.30
broken_slowmo0.3/0.3s · ×World 0.30 s @ ×0.30
perfect_dodge_time0.35sWorld ×0.25
perfect_dodge_scale0.25×—
slowmo_budget0.6s/2.0 sngân sách làm chậm toàn cục
draft_time_scale0.15×World ×0.15 khi draft + hero bất tử
shake_max7pxoffset = 7 px × trauma^1.5
shake_pow1.5mũ—
shake_hz22Hznhiễu
shake_decay2.2/strauma giảm
shake_kick5pxđá lò xo × trauma
shake_kick_max4px—
shake_kick_hz7Hz—
trauma_cap1trauma—
hitflash_time0.07schớp trắng mọi cú trúng
death_flash0.09schớp khi chết
hero_hurt_vignette0.4/0.2độ tối · sviền tối màn 40% 0.20 s
dmgnum_pop_scale1.6×phóng ×1.6 trong 0.09 s
dmgnum_pop0.09s—
dmgnum_rise16px—
dmgnum_life0.6s—
dmgnum_max_onscreen260số—
dmgnum_new_per_tick24số—
dmgnum_merge_window0.1scùng mục tiêu + loại → gộp
dmgnum_dot_merge1sDoT 1 số/1.0 s/mục tiêu
dmgnum_colorsnormal: #f4efe0, minor: #a8a4b0, shielded: #8aa0b8, hero_taken: #ff5a5a, heal: #7be08ahex—
dmgnum_scalesnormal: 1, heavy: 1.15, crit: 1.5, minor: 0.8, shielded: 0.8, hero_taken: 1.3×—
callout_queue2callout1 cái/lúc, hàng đợi ≤ 2
room_start_invuln1sbất tử đầu phòng
revive_invuln2sLửa Gửi hồi sinh
draft_iframes_after0.5sbất tử sau khi chọn draft
move_cancel_frac0.6× recoverydi chuyển/kỹ năng huỷ recovery sau 60%
dash_second_delay0.1sLướt → Lướt 2 sau 6 tick
dash_endlag0.05shậu Lướt 3 tick
input_priorityDASH/ANSWER/ULT/SKILL/ATTACKthứ tựinput cùng tick (INV-07)
levelup_max_hp3HPlên cấp +3 HP_MAX
levelup_heal6% HP_MAXlên cấp hồi 6% (demo 15 HP → đổi)
room_clear_heal8% HP_MAXxong phòng chiến
heal_orb_amount12HPcầu máu
heal_orb_chance0.02tỉ lệ/quái SMUT07 ×2
heal_orb_max6cầutrên sàn
heal_orb_life20stồn trên sàn
rst_heal40% HP_MAXRST
dock_heal25% HP_MAXDOCK
heal_reward25% HP_MAXicon HEAL (CHL 50)
potion_heal30% HP_MAXbình máu
boss_win_heal_floor60% HP_MAXHP = max(HP, 60%)
lifesteal_cap3% HP_MAX/stổng hút ≤ 3%/s
shield_decay_delay5ssau 5 s không nhận khiên
shield_decay_rate10%/sgiảm 10%/s lượng hiện có
grey_hp_per_swing2HPH06 Chảy: mỗi đòn đổi 2 HP → HP xám
grey_hp_window3sđòn trúng trong 3 s đổi lại
grey_hp_loss_cap4HP/s—
h02_wall_hp80HPtường Dựng Quan
h12_band_hp40HPPhường; mất sau 3 đòn
potion_capacity2bìnhsức chứa
potion_drink_time0.4s24 tick, đi ×0.5
potion_move_mult0.5×—
lua_gui_per_run1lầnGD4 → 2; MRN06 → 0
revive_hp35% HP_MAXLửa Gửi
revive_wave_r120pxsóng AREA
revive_wave_coef3× POWERsát thương sóng
revive_wave_kb60pxđẩy
revive_wave_poise30điểmM −30 Thế
revive_anim1sanim bất tử
death_slowmo0.3/0.5× · shết Lửa Gửi: World ×0.3 trong 0.5 s
aim_assist_cone100°cận chiến
aim_assist_range90pxcận chiến
aim_assist_max_turn35°cận chiến
aim_assist_ranged20/260/12° · px · °tầm xa/vùng: nón · tầm · xoay; chuột 6°, chỉ M/L/XL
aim_assist_mouse_turn6°chuột tầm xa
lunge_min24pxbước lao: mục tiêu cách 24–60 px
lunge_max60px—
mercy_autoaim_r140/300pxThương Xót tự ngắm cận · xa
soft_boss_lock_deg30°khoá boss mềm lệch ≤ 30°
soft_boss_lock_range_mult1.5×tầm ×1.5

2.1 Chỉ số hero (hero_stats)

idTên VNĐơn vịGốcTrần / sàn
HP_MAXHP tối đaHPtheo hero (Bible §5: H01 120 · H02 160 · H03 115 · H04 105 · H05 140 · H06 130 · H07 100 · H08 110 · H09 110 · H10 105 · H11 125 · H12 115)trần 400
MOVE_SPEEDTốc chạypx sàn/stheo hero 130–145 (Bible §5)trần ×1.40 gốc; sàn ×0.50 gốc khi bị chậm
ACCEL_TIMEThời gian tăng/giảm tốcs0.06 / 0.05—
POWERLựcđiểm10 (mọi hero)trần 40
DMG_INCSát thương+%0trần +300%
ATK_SPEEDTốc đánh×1.00 (chia startup/active/recovery của Đánh + combo)trần 2.00
CRIT_CHANCETỉ lệ chí mạng%5trần 75
CRIT_MULTHệ số chí mạng×2.00trần 4.00
AREACỡ vùng× bán kính1.00trần 2.00; VFX co giãn theo
PROJ_SPEEDTốc đạn hero×1.00trần 2.00
DURATIONThời lượng hiệu ứng hero (vùng, triệu hồi, buff)×1.00trần 2.00; KHÔNG áp lên trạng thái khống chế (§5.3)
CDRGiảm thời gian hồi chiêu kỹ năng%0trần 50
DASH_CHARGESLượt Lướtlượt2trần 4
DASH_RECHARGENạp 1 lượt Lướts0.70 (tuần tự)sàn 0.35
ANSWER_WINDOWCửa sổ ĐÁPstheo hero 0.15–0.18sàn 0.14 (INV-11), trần 0.24
POISE_MAXThế herođiểm100trần 200
POISE_REGENHồi Thếđiểm/s40, sau 0.5 s không chịu đòn và không giữ verb giữtrần 80
DRGiảm sát thương nhận%0trần 60
ELITE_DMGSát thương lên M/L/XL+%0trần +100%
STATUS_POWERUy lực trạng thái (sát thương DoT + số của trạng thái hero gây)+%0trần +100%
HEAL_MULTHệ số hồi phục HP×1.00trần 2.00, sàn 0.20 (MRN11)
PICKUP_RBán kính hút XP/cầu máupx50trần 200
ULT_GAINHệ số nạp Dư Âm×1.00trần 1.50 (MRN08 ×0.8, MUT06 ×0.8 nhân dồn)
RES_GAINHệ số nạp tài nguyên hero×1.00trần 2.00
KNOCKBACKLực đẩy×1.00trần 2.00
SHIELD_CAPTrần khiên% HP tối đa50cố định

2.2 Chỉ số kẻ địch (enemy_stats)

idTên VNĐơn vịGốc theo hạng S / M / L / XLTrần / ghi chú
HPHPHPdữ liệu doc quái × §2.4nguyên, ≤ 99.999
MOVE_SPEEDTốc đipx sàn/sdữ liệu (≤ 118 gốc)sau mọi buff ≤ tốc cơ bản hero đang chơi / 1.1 (INV-17)
RADIUSBán kính thânpx6–10 / 14 / 20 / 28hurtbox + giãn đám
MASSKhối—1 / 3 / 6 / 10 (mass_class)§4.3
ARMORGiáp% giảm sát thương nhận0 / 10 / 15 / 20 [ASSUMED]sàn −45 (STS_ROT), trần 50
POISEThếđiểm— / 100 / 150 / 200EM01 ×1.5; S không có Thế (dùng khựng §4.2)
POISE_REGENHồi Thếđiểm/s · trễ s— / 12 · 2.0 / 15 · 2.5 / 20 · 3.0ngừng khi Vỡ Thế
BROKEN_TIMEThời gian Vỡ Thếs— / 3.0 / 3.5 / 4.0§4.1
BROKEN_MULTNhân sát thương khi Vỡ Thế×1.5 mọi hạng—
CC_RESKháng khống chế—0 / thời lượng ×0.5 / đổi sang Thế / đổi sang Thế§5.3
DOT_RESKháng DoT%0 / 0 / 25 / 40 [ASSUMED]áp lên STS_EMBER + mọi DoT
DMGSát thương đònHPtheo đòn <enemyId>_Ann× §2.4

2.3 Thứ tự cộng dồn & làm tròn

stat_final = clamp( (base + Σflat) × (1 + Σinc) × Π(1 + more_i), sàn, trần )
  • flat = cộng số tuyệt đối (+25 HP, +1 lượt Lướt). inc = bể cộng (thẻ ghi "+x%": Edge chung, affix, nâng trạm, mặc định của Edge hero). more = nhân riêng (thẻ ghi "×y": luật Relic, Cộng Hưởng II, Then Chốt, trạng thái, Khăn Tang, mutator, Thương Xót). Mẫu câu thẻ bắt buộc phân biệt "+x%" và "×y"; 1 hiệu ứng không vừa cộng vừa nhân.
  • Bảng chỉ số dựng lại khi có thay đổi (nhận thẻ, Relic, bắt đầu/kết thúc trạng thái, đổi pha boss), không dựng mỗi tick.
  • Làm tròn: chỉ số giữ float. Sát thương mỗi cú: làm tròn nửa lên ở bước cuối pipeline (§3.1); kết quả > 0 thì tối thiểu 1. DoT: bộ tích luỹ float theo (mục tiêu, nguồn), mỗi tick DoT trừ phần nguyên, giữ phần dư. HP lưu nguyên. Hiển thị: % nguyên, giây 2 chữ số thập phân, số sát thương nguyên.

2.4 Co giãn kẻ địch (theo Hồi, mode, Khăn Tang)

HP_final  = HP_data × PI(act) / PI(home_act) × (1 + 0.12 × MRN01) × (1 + 0.12 × endless_loop) × mutator_hp × custom_hp
DMG_final = DMG_data × EHP_idx(act) / EHP_idx(home_act) × (1 + 0.15 × MRN03) × (1 + 0.06 × endless_loop) × custom_dmg
actI (1)II (2)III (3)IV (4)Kết (5)B6 (6)
PI (Chỉ số sức mạnh build theo phút CRV_power_index, doc 17 §1.2)1.001.602.203.003.453.49
EHP_idx (doc 17 §5.1)1.001.201.401.551.651.70
  • home_act = Hồi gốc của kẻ địch (B1 → 1 … B4 → 4); Kết (B5) = act 5; B6 = act 6. Quái xuất hiện ở Hồi gốc: hệ số 1.
  • Hệ số theo đường cong soạn (không mũ cố định) → độ khó Kết không phụ thuộc biome roll: mọi quái ở Kết = HP ×PI(5)/PI(home), dmg ×EHP_idx(5)/EHP_idx(home). Bảng: B1 ×3.45 / ×1.65 · B2 ×2.16 / ×1.375 · B3 ×1.57 / ×1.179 · B4 ×1.15 / ×1.065.
  • ENDLESS tầng n (n ≥ 1, sau Hồi IV; biome = B((n − 1) mod 4 + 1)): act = 5 cho HP/DMG, XP, hàng rarity, B_room (doc 15); endless_loop = floor((n − 1)/4) + 1 (vòng 1 = tầng 1–4 → HP ×1.12, dmg ×1.06; vòng 3 = tầng 9–12 → ×1.36 / ×1.18, khớp doc 17 VD-E6). STANDARD/DAILY/BOSS_RUSH/CUSTOM: endless_loop = 0. [ASSUMED]
  • mutator_hp: MUT07 Tro Ấm ×1.10. custom_hp/dmg: 0.25–3.00 (CUSTOM). BOSS_RUSH: boss dùng act = Hồi gốc của nó (không co giãn).
  • Đường cong sức mạnh tham chiếu (power_curve = PI lúc VÀO Hồi (= cuối Hồi trước; Hồi I = đầu run), doc 17 §1.2, dùng để soạn HP quái và co giãn ở trên): I 1.00 · II 1.60 · III 2.20 · IV 3.00 · Kết 3.45 · B6 3.49 [ASSUMED, sim kiểm] (2026-11-07 - DEC-2026-11-07-12 (doc 17 §1.2, Q2): đồng bộ PI/power_curve với doc 17). Luật soạn: quái S chết sau 1–2 cú Đánh trung vị của Hồi gốc (P2); Tinh Anh 25–45 s; boss Hồi theo thời lượng Bible §2.
  • Không chỉ số nào của địch đọc HP/cấp hero (không co giãn động theo người chơi; Tro Nhớ chỉ đổi trọng số đòn, INV-15).

5Pipeline sát thương

3.1 Loại sát thương (dmg_kind)

Bible không định nghĩa hệ nguyên tố; loại sát thương = cách giao (khớp tag hiệu ứng Bible), dùng cho khiên, kháng, Edge lọc điều kiện.

dmg_kindGồmKhiên trước (EN_B1_04, EN_B4_01, EM09)GiápVỡ Thế ×1.5Chí mạng
MELEEĐánh, combo, lao, Phảncó (nếu gốc đòn trong cung khiên)cócócó
PROJđạn, tên, dây ném, đạn phảncócócócó
AREAnổ, sóng, vùng tức thời (1 lần/instance)cócócócó
ZONEvùng hero kéo dài (khói, lửa sàn, hố) — mỗi lần tickkhôngcócókhông
DOTtick của trạng thái (STS_EMBER, Siết H09…)khôngkhôngkhôngkhông
PUREhazard/môi trường lên quái (INV-18), sập hố, nổ Xác Trương lên quáikhôngkhôngkhôngkhông
  • Khiên trước: cú MELEE/PROJ/AREA có gốc trong cung khiên → ×0.15 (shield_mult), trừ cờ shieldbreak → vỡ khiên (EN_B1_04 lộ 4 s; EM09 sau 3 cú cận chiến hoặc 1 shieldbreak). ĐÁP lên đòn khiên Y luôn vỡ khiên (Bible §5.1).

3.2 Hero → kẻ địch

1  base      = coef × POWER                       (coef = damage_demo / 10; A1 = 1.4, A3 = 3.4, RIPOSTE = 9.0)
2  inc       = 1 + DMG_INC + (ELITE_DMG nếu hạng ≥ M) + inc theo tag của đòn
3  more      = Π(1 + more_i)                       (Relic, Cộng Hưởng II, trạng thái tài nguyên hero: vd H06 Nung ×1.25 / Chảy ×1.5)
4  crit      = CRIT_MULT nếu (cờ `crit` | roll < CRIT_CHANCE) ; ngược lại 1   (roll riêng cho mỗi cặp instance–mục tiêu; DOT/ZONE/PURE không chí mạng)
5  armor     = 1 − clamp(ARMOR − 0.15 × stack_ROT, −0.45, 0.50)            (bỏ qua với DOT/PURE)
6  vuln      = min(2.25, Π vuln_i)                (Vỡ Thế 1.5 · part_mult · buồng lái BS_B3 P2 1.5 · khiên trước 0.15)
7  falloff   = 1 (mặc định, không giảm theo số mục tiêu — P2); đòn xuyên có `pierce_falloff` riêng
8  dmg       = round_half_up(base × inc × more × crit × armor × vuln × falloff); nếu > 0 thì ≥ 1
9  áp dụng   : khiên của quái (nếu có) → HP; khoá pha boss (§3.4); tràn (§3.5)
10 sau trúng : Thế (§4.1) → trạng thái (§5) → tài nguyên hero, Dư Âm → feedback (§6) → log sát thương (INV-16, Tro Nhớ A05/A06)

3.3 Kẻ địch → hero

1  base   = DMG_final (§2.4)
2  phân giải phòng thủ (§7.4): Immune / Lướt / i-frame trúng đòn / ĐÁP / verb giữ  → nếu bị chặn hết: dừng
3  dr     = 1 − min(0.60, DR)                          (H02 Đinh −6%/Đinh, Relic, Edge VITAL…)
4  hold   = 1 − HOLD_DR                                (verb giữ giảm sát thương: H06 0.60 · H08 0.50 trước 120° · H11 0.40; chỉ với Y/N; P → 0 và Vỡ Thế §7.4)
5  vuln   = 1.5 nếu hero đang Vỡ Thế, ngược lại 1
6  mercy  = 0.75 / 0.50 / 0.25 (Thương Xót −25/−50/−75%), ngược lại 1
7  dmg    = round_half_up(base × dr × hold × vuln × mercy); ≥ 1
8  N (vùng đọng): sau bước 7 kẹp ≤ 4 mỗi tick 0.5 s (INV-02), kể cả MRN03
9  áp dụng: Khiên (§8.2) → HP xám H06 không chặn sát thương → HP
  • Chống chết 1 đòn: HP ≥ 90% HP tối đa trước cú trúng → cú đó để lại tối thiểu 1 HP; ≤ 1 lần/10 s; tắt khi Độ Tang ≥ 16 [ASSUMED]. Không áp cho DoT/N.

3.4 Kết liễu & khoá pha

  • Field đòn execute_pct (0–1): sau bước 9, nếu HP/HP_MAX ≤ ngưỡng hiệu lực → chết ngay. Ngưỡng hiệu lực: S = execute_pct · M = min(execute_pct, 0.20) · L = min(execute_pct, 0.10) · XL = 0 (thay bằng ×1.5 sát thương của cú đó khi HP boss ≤ 20%).
  • Khoá pha boss/mini: HP không vượt qua ngưỡng pha tới khi chuyển pha xong; phần thừa bỏ. Chuyển pha = bất tử (Bible §7.5). Kết liễu không bỏ qua pha.

3.5 Quét, tràn, xuyên

  • Đòn vùng/chém trúng MỌI mục tiêu trong hình tới max_targets (mặc định: Đánh/kỹ năng 48 · ult 128 · Phản 48), chọn gần trước. Không chia sát thương theo số mục tiêu.
  • Tràn (overkill_carry, chỉ khi Edge/Relic cấp): 50% phần thừa sang 1 quái gần nhất trong r48 chưa bị instance này trúng; 1 lần nhảy; không chí mạng lại.
  • Xuyên (pierce n): đạn trúng tối đa n mục tiêu; pierce_falloff mặc định 1.0 (không giảm). Đạn phản: xuyên 3.

3.6 Ví dụ tính

VD1 — H01 A3 dọn bầy (Hồi I). A3 coef 3.4, POWER 10, DMG_INC +0.20 (2 Edge chung +10%), không more. Trúng 9 Thây Tro EN_B1_01 (HP 14, giáp 0, Hồi gốc → ×1). base 34 × 1.20 = 40.8 → mục tiêu roll chí mạng (5%): 40.8 × 2.0 = 81.6 → 82; mục tiêu không chí mạng: 40.8 → 41. Cả 9 chết, phần thừa bỏ (không overkill_carry). Hitstop hero = max(0.07, min(0.07 + 0.005 × 8, 0.06)) = 0.07 s (§6.1).

VD2 — H07 phát Đỉnh Hơi vào Tinh Anh Vỡ Thế (Hồi II). coef 6.0 (ví dụ; số thật ở doc H07), POWER 12, DMG_INC +0.35, ELITE_DMG +0.25, Cộng Hưởng II ×1.20, Đỉnh Hơi = cờ crit, CRIT_MULT 2.3. Mục tiêu EL_B2_01: giáp 0.10, 2 lớp STS_ROT, đang Vỡ Thế. base 72 → inc 1.60 → 115.2 → more ×1.20 → 138.24 → crit ×2.3 → 317.95 → armor 1 − (0.10 − 0.30) = 1.20 → 381.54 → vuln 1.5 → 572.31 → 572.

VD3 — Đòn địch vào hero (Kết, Độ Tang có MRN03 bậc 2). EL_B1_01 Chặt Bổ DMG 24, Hồi gốc I, gặp ở Kết (act 5). Hero H02 Bodan, 4 Đinh (DR 24%) + Relic DR 10% → DR 34%. Không giữ verb, không Thương Xót. 24 × EHP_idx 1.65/1.00 = 39.60 → MRN03 ×1.30 = 51.48 → dr ×0.66 = 33.98 → 34. Nếu Bodan đang Vỡ Thế: 33.98 × 1.5 = 50.96 → 51. Nếu Thương Xót −50%: 33.98 × 0.5 = 16.99 → 17.

VD4 — STS_EMBER trên boss. XL, POWER 12, STATUS_POWER +0.40, DOT_RES 0.40: sát thương/s = min(4% HP_MAX, 1.0 × POWER × 1.40 = 16.8) × 0.60 = 10.08/s → mỗi tick 0.5 s tích 5.04 → trừ 5, giữ 0.04; 4 s = 40 HP.

6Thế, khựng, đẩy, khối bầy

4.1 Thế (Poise) của kẻ địch hạng M/L/XL

KhoáGiá trị
Thế mất mỗi cúpoise_dmg của đòn + 0.1 × sát thương cuối; trần 60/cú (trừ ĐÁP, Phản, ult)
ĐÁP thành công (mọi hero)M −45 · L −40 · XL −35; số riêng ở Bible §5.1 THAY số này cho hero đó (H02 Chặn Nắp −40 · H09 Quăng Vòng Xu M −25)
Phản (Riposte/đòn phản của hero)−30 (H01 canon); hero khác theo khuôn 11-Defense-Tells §2.6
Khống chế lên L/XLkhông áp hiệu ứng, đổi thành −15 Thế mỗi lần áp (Bible §5.2)
Hồi ThếPOISE_REGEN sau delay không mất Thế (§2.2)
Vỡ Thế (Thế = 0)huỷ ngay windup đang chạy (trả token), anim broken, không hành động, nhận ×1.5 (BROKEN_MULT), thời gian M 3.0 · L 3.5 · XL 4.0 s; xong → Thế đầy
Giảm dầnmỗi lần Vỡ Thế trước đó trong cùng trận: Thế tối đa ×1.25 (trần ×2.0); reset khi trận kết thúc
ĐÁP trọn chuỗiđòn chuỗi có cờ chain_answer = BROKEN (boss: BS_B1_A01, Chuỗi Sào BS_B2 P2) hoặc STUN:1.4 (Tinh Anh, vd EL_B1_01 Quét Đôi)
Trong Vỡ Thếkhông đổi thế đáp Tro Nhớ, không bắt đầu tell P mới; HUD thanh Thế bạc nhấp nháy

4.2 Khựng (hitstun)

Đối tượngLuật
Quái Smọi cú hit_class ≥ LIGHT → khựng 0.18 s (11 tick). Windup < 50% → huỷ windup, hồi chiêu đòn đặt 0.5 s. Windup ≥ 50% → không huỷ (windup chạy tiếp). ≤ 3 lần khựng / 2 s, sau đó miễn khựng 1.0 s (vẫn nhận sát thương)
Quái M/L/XLkhông khựng; chỉ chớp trắng + rung thân 1 px; ngắt bằng Vỡ Thế, khống chế của ĐÁP (choáng/tước vũ khí) hoặc luật riêng của đòn (EL_B1_02 Tụng Hồi: cú ≥ 20 sát thương)
Sau glint 2đòn Y không còn bị khựng huỷ (chỉ chết, Vỡ Thế, ĐÁP huỷ) → tell luôn trung thực
Hero (Hurt)0.22 s (13 tick); Lướt/ĐÁP mở lại sau 0.12 s (7 tick, INV-11); đẩy lùi 12 px; i-frame 0.60 s (36 tick) với mọi sát thương; không có Né Hoàn Hảo trong i-frame trúng đòn

4.3 Đẩy lùi, hất tung, kéo

Hiệu ứngCông thức / luật
Đẩy lùid = kb_px × KNOCKBACK / mass (S 1 · M 3 · L/XL 0), trượt trong 0.12 s (7 tick) ease-out bậc 2; S bị đẩy truyền 30% quãng đẩy cho quái sau lưng (nón 60°, r = 2 × radius), 1 lớp
Tườngdừng đẩy; không sát thương đập tường mặc định (Edge/Relic được thêm)
Hất tung (launch s)chỉ S: AIRBORNE 0.40 s mặc định, cung cao 18 px, không đánh/không chặn thân, đáp xong khựng 0.10 s · M: đổi thành −10 Thế · L/XL: bỏ qua
Kéo/hút (pull)S 100% · M 50% · L/XL 0% và −8 Thế/s nếu nguồn là vùng hút H05 (Bible §5.2); tốc kéo ≤ 240 px/s; dừng ở r12 quanh tâm kéo
Hero bị đẩymặc định 12 px; đòn được ghi hero_kb ≤ 48 px (Tinh Anh) / ≤ 96 px (boss); không gây thêm khựng; H08 Tì Báng (trước 120°) và H11 Cắm Xẻng miễn
Văng khi chết (chỉ hình)trượt 38 px/0.30 s ÷ √mass (×1.4 nếu cú kết liễu nặng/chí mạng/đẩy mạnh) + nảy 6 px; xác không có va chạm

4.4 Khối bầy & chặn thân (INV-04)

  • Thân địch không bao giờ gây sát thương; chỉ đẩy/chặn.
  • Giãn đám: spatial hash ô 32 px (Bible §10.4); bán kính giãn = max(radius, ½ bề ngang sprite × 0.85); 2 lượt/tick; độ cứng 0.9; trục z tính ×1.3. Quái nặng đẩy quái nhẹ theo tỉ lệ mass.
  • Hero ↔ S: hero đi vào đám S đẩy chúng dạt ngang (không bị chặn); đẩy ≥ 3 quái S cùng lúc → tốc hero ×0.85 [ASSUMED]. Hero ↔ M/L/XL: bị chặn, trượt dọc thân.
  • Chống kẹt: hero bị chặn ≥ 270° hướng trong r16 liên tục 0.5 s → quái S trong r20 bị đẩy ra 10 px/tick tới khi có khe ≥ 24 px. Lướt xuyên mọi thân địch (không xuyên tường/vật cao).
  • Đạn địch xuyên qua quái; đòn địch không trúng quái khác trừ cờ hits_enemies (EN_B1_05 Phát Nổ 40, MB_B1_1 Lao Xe, khuôn rơi B3, hazard INV-18).
  • Tường hero (H02 Dựng Quan, gờ Bia Sụt H11, hố H11) chặn quái và dựng lại flow field (Bible §10.4).

7Trạng thái (STS_) — danh sách ĐẦY ĐỦ của game

📊 Trạng thái từ data/statuses.json

Thời lượng trạng thái (s)Thời lượng trạng thái (s)Than HồngThan Hồng: 4 s4 sSương GiáSương Giá: 3 s3 sĐiện GiậtĐiện Giật: 4 s4 sMục RữaMục Rữa: 5 s5 sTróiTrói: 1.2 s1.2 sKhiếpKhiếp: 1.5 s1.5 sChoángChoáng: 1 s1 sCâmCâm: 2 s2 sMùMù: 1 s1 sTước KhíTước Khí: 2 s2 sChậmChậm: 0.3 s0.3 sGhimGhim: 0.5 s0.5 s

Than Hồng STS_EMBER · Sương Giá STS_FROST · Điện Giật STS_SHOCK · Mục Rữa STS_ROT · Trói STS_BIND · Khiếp STS_DREAD · Choáng STS_STUN · Câm STS_MUTE · Mù STS_BLIND · Tước Khí STS_DISARM · Chậm STS_SLOW · Ghim STS_PIN


  • Nhóm BUILD (canon Bible §6, 6): hero gây lên địch; là tag Edge/Cộng Hưởng (SE, SRS). Không thêm, không bớt.
  • Nhóm CONTROL (6, thêm 2026-11-07 — xem Quyết định Q1): đặt id cho các hiệu ứng Bible đã dùng bằng lời (choáng, câm kỹ năng, mù, tước vũ khí, chậm, kẹt/ghim). KHÔNG phải tag, không có Edge chung/Cộng Hưởng riêng, không đổi số SE/SRS.
  • Trạng thái do hero gây: ramp hero + glyph (INV-01f), vẽ trên vòng chân quái. Trạng thái trên hero: glyph bạc #c8c8d0 trên vòng chân hero + icon HUD có thanh thời gian (không dùng dải tell).

5.1 Bảng trạng thái

idTên VNNhómHiệu ứngCộng dồnThời lượngTickS / M / L / XLGlyph
Than Hồng STS_EMBERThan HồngBUILDDoT DOT: S 4% HP_MAX/s · M/L/XL min(4% HP_MAX, 1.0 × POWER × (1 + STATUS_POWER))/s, × (1 − DOT_RES)không cộng; áp lại = làm mới 4 s, giữ nguồn dps cao hơn4 s0.5 sđủ / đủ / DOT_RES 25% / 40%lửa
Sương Giá STS_FROSTSương GiáBUILDchậm 25% (không cộng theo lớp); 3 lớp → đóng băng 1.0 s (không di chuyển, không hành động, huỷ windup S) rồi xoá lớp, miễn đóng băng 2.0 slớp 1–3, mỗi lần áp +1, làm mới 3 s3 s—đủ / chậm, 3 lớp = −20 Thế (không đóng băng) / chậm 15%, 3 lớp = −15 Thế / như Ltinh thể
Điện Giật STS_SHOCKĐiện GiậtBUILDcú hero kế tiếp vào mục tiêu nảy sang 2 quái gần nhất trong r64, mỗi quái 40% sát thương cú đó (AREA, không chí mạng lại, không tự áp SHOCK); tiêu trạng tháikhông cộng; làm mới4 s [ASSUMED]—đủ mọi hạngzigzag
Mục Rữa STS_ROTMục RữaBUILDgiáp −15%/lớp (§3.2 bước 5, giáp sàn −45%)1–3 lớp, làm mới5 s [ASSUMED]—đủ mọi hạngbọt
Trói STS_BINDTróiBUILDđứng yên, không bắt đầu windup mới (windup ≥ 50% chạy tiếp)không cộngS 1.2 s · M 0.4 s (Bible); H09 Lưới Xu 0.6 s; H10 tay hồn S 1.0 / M 0.4 s—đủ / đủ (số riêng) / −15 Thế / −15 Thếxích
Khiếp STS_DREADKhiếpBUILDbỏ chạy khỏi hero ở 60% tốc, nhả token, không đánhkhông cộngS 1.5 s · M 0.75 s [ASSUMED]—đủ / đủ / −15 Thế / −15 Thếmắt
Choáng STS_STUNChoángCONTROLkhông di chuyển, không hành động, huỷ windupkhông cộng; lấy thời lượng dài hơntheo nguồn: ĐÁP lên S 1.0 s · H08 Muối S 0.8 / M 0.4 · H12 Chũm Chọe S 1.0 / M 0.4 · vỡ khiên EN_B1_04 1.5 · H04 Kẻ Vòng 0.3 · hero: chuông hazard 1.0, Khuôn Chuông BS_B3 1.0—đủ / ×0.5 (§5.3) / −15 Thế / −15 Thếsao xoay
Câm STS_MUTECâmCONTROLchỉ hero: khoá kỹ năng ô 1–3; KHÔNG khoá Đánh, ĐÁP, verb giữ, Lướt, Ult (INV-11/12)không cộng; lấy dài hơnEN_B6_02 Nuốt 2 s · BS_FINAL Hồi Câm 3 s · rẻ quạt BS_TRUE: trong rẻ + 0.5 s——chuông gạch
Mù STS_BLINDMùCONTROLquái cận chiến mất mục tiêu: không bắt đầu windup cận chiến nhắm hero, đi lang trong r32; đạn không bị ảnh hưởngkhông cộngH11 Hất Đất 1.0 s—đủ / ×0.5 / −15 Thế / −15 Thếbụi
Tước Khí STS_DISARMTước KhíCONTROLđòn Y kế tiếp của mục tiêu bị huỷ ngay khi bắt đầu windup (Bible H04)không cộng2.0 s—đủ / đủ / −15 Thế / −15 Thếlưỡi gãy
Chậm STS_SLOWChậmCONTROLgiảm tốc đi; áp như nhau cho hero và quái cùng vùng (INV-17)KHÔNG cộng: lấy 1 nguồn chậm mạnh nhất (gồm FROST); tốc sàn ×0.50trong vùng + 0.3 s—đủ mọi hạngsóng ngang
Ghim STS_PINGhimCONTROLkhông di chuyển (vẫn đánh được); kẹt hố H11không cộngH02 Đóng Nắp S/M 0.5 s · H11 hố M 2.0 s · L 0.8 s · XL vấp 0.6 s + −20 Thế (Bible §5.2)—đủ / đủ / đủ (số Bible) / vấpcọc
  • Nguồn lên hero (địch chỉ gây được 4 trạng thái): Chậm STS_SLOW (bãi xương/nước −15%, bụi EN_B2_05 −15%, EM11 −20%), Choáng STS_STUN (hazard chuông, Khuôn Chuông), Câm STS_MUTE, Trói STS_BIND (lưới EL_B2_02 Ném Lưới 0.8 s [ASSUMED]). Hero miễn mọi trạng thái khác.

5.2 Giải trừ

Trạng thái trên heroCách hết
Choáng STS_STUN, Trói STS_BINDLướt huỷ ngay (tốn 1 lượt, INV-06), TRỪ khi nguồn là khống chế tím của boss (Khuôn Chuông: tự thoát 1.0 s)
Chậm STS_SLOWra khỏi vùng + 0.3 s
Câm STS_MUTEhết giờ; Edge/Relic có cờ cleanse
Tất cảLửa Gửi hồi sinh, chuyển phòng, kích hoạt Ult (giải trừ ở tick kích; UL1/UL2 bất tử toàn clip, UL3 bất tử 0.5 s kích, sau đó trạng thái mới trúng bình thường — §7.1)
  • Trên quái: chết xoá hết; Vỡ Thế xoá CONTROL (DoT, ROT, SHOCK giữ); đổi pha boss xoá hết.

5.3 Boss & giảm dần

  • M (Tinh Anh): CONTROL ×0.5 thời lượng (trừ số Bible ghi riêng cho M). Cùng 1 trạng thái khống chế lên cùng 1 mục tiêu M trong 6 s: lần 1 ×1.0 · lần 2 ×0.5 · lần 3 ×0.25 · sau đó miễn 4 s.
  • L/XL: khống chế không áp, đổi −15 Thế/lần (Bible §5.2), trừ số Bible ghi riêng (STS_PIN L 0.8 s, XL vấp 0.6 s). Trần đổi: ≤ 45 Thế/s từ khống chế lên 1 boss.
  • DoT lên L/XL: DOT_RES 25/40%; EMBER bị trần theo POWER (§5.1).

5.4 Tick, trần, phản ứng

  • DoT tick mỗi 0.5 s (30 tick), lệch pha theo instance_id mod 30 (rải tải); không hitstop, không chớp trắng, không SFX trúng; số sát thương DoT gộp 1 số/1.0 s/mục tiêu (§6.5).
  • Trần: mỗi quái ≤ 6 trạng thái BUILD + 3 CONTROL cùng lúc (thừa → thay cái sắp hết); toàn cục ≤ 1.500 instance trạng thái (§10).
  • Phản ứng cặp — CHỈ khi sở hữu Cộng Hưởng chung cặp tương ứng (SRS cặp, Bible §6); số dưới là mặc định, doc nâng cấp ghi đè được:
CặpTênKích hoạtHiệu ứng
EMBER + FROSTNứt Nhiệtmục tiêu có cả 2tiêu cả 2: nổ AREA r40 = 2.0 × POWER × (1 + STATUS_POWER)
SHOCK + ROTLan Độccú nảy của SHOCKmỗi mục tiêu bị nảy nhận +1 lớp ROT
BIND + DREADHành Hìnhmục tiêu có cả 2, HP ≤ 15%kết liễu (S/M theo §3.4); L/XL: cú kế ×1.5

8Cảm giác trúng đòn (INV-10)

6.1 Hạng cú đánh (hit_class)

hit_classVí dụHitstop (s · tick)TraumaLàm chậm toàn cụcCallout
LIGHTA1/A2, đòn thường nhanh0.035 · 20——
MEDIUMĐánh sau Lướt, đòn giữa combo0.045 · 30.22——
HEAVYđòn kết combo (A3), kỹ năng nặng0.07 · 40.28——
SKILLkỹ năngtheo dữ liệu đòn 0.02–0.08theo dữ liệu 0.12–0.55——
ANSWERĐÁP thành công0.08 · 50.25World 0.25 s @ ×0.20 (cận chiến) · 0.12 s @ ×0.20 (chỉ đạn)"ĐÁP HOÀN HẢO!" (H01: "GẠT HOÀN HẢO!") với M/L/XL
COUNTERPhản (H01 Riposte + đòn phản các hero)0.12 · 70.45World 0.15 s @ ×0.30"PHẢN ĐÒN!"
BROKENđịch vào Vỡ Thếđóng băng 0.10 · 60.50World 0.30 s @ ×0.30"PHÁ THẾ!"
PERFECT_DODGENé Hoàn Hảo00World 0.35 s @ ×0.25, hero tốc thường"NÉ HOÀN HẢO"
ULTulttheo ult; cú nổ cuối 0.10 · 6≤ 0.80theo ult (H01_UL1 World ×0.4)tên ult
HERO_HURThero trúng đòn0.06 · 4 (hero + kẻ đánh)0.30——
DOTtick trạng thái00——
  • Hitstop cục bộ: chỉ kẻ đánh + mục tiêu trúng đứng hình; bầy xung quanh vẫn chạy. Nhiều mục tiêu: hitstop = max(base, min(base + 0.005 × (n − 1), 0.06)). Hitstop mới trong hitstop cũ → lấy phần còn lại lớn hơn, không cộng.
  • Ngân sách hitstop hero: tổng ≤ 0.20 s mỗi 1.0 s; vượt → cú LIGHT/MEDIUM hitstop 0 (bầy dày không làm hero ì).
  • Quái S chết: xác không hitstop (văng §4.3); hero vẫn nhận hitstop của cú.

6.2 Rung màn (trauma)

  • offset = 7 px × trauma^1.5, nhiễu 22 Hz, trauma giảm 2.2/s; + đá lò xo 5 px × trauma theo hướng đòn (trần 4 px, 7 Hz); không xoay; trauma cộng dồn, trần 1.0.
  • Bậc: T0 0 · T1 0.18–0.22 · T2 0.25–0.30 · T3 0.45–0.55 · T4 0.80. Quái S chết không cộng trauma. Trợ năng: rung 0–100% nhân vào offset.

6.3 Làm chậm (slow-mo)

  • 1 hệ số/đồng hồ (§1.1): nguồn mới → hệ số = min, thời lượng = max(còn lại, mới). Không nhân dồn.
  • Ngân sách làm chậm toàn cục: ≤ 0.60 s cộng dồn trong mọi cửa sổ 2.0 s; vượt → bỏ phần làm chậm, giữ hitstop + callout (chuỗi ĐÁP dài vẫn mượt).
  • Draft: World ×0.15 + hero bất tử (Bible §6), tách khỏi ngân sách. Máy nhịp H12 chạy trên Hero, không chậm theo World (Bible §5.3).

6.4 Chớp & đường cong đẩy

  • Chớp trắng mọi cú trúng: 0.07 s, vertex color mờ dần (giữ batching). Chí mạng: chớp trắng (INV-01a, không vàng) + số ngà "!". Chết: chớp 0.09 s.
  • Hero trúng đòn: hero chớp trắng 0.07 s + viền tối màn 40% 0.20 s + thanh HP nháy; không phủ đỏ toàn màn.
  • Đẩy lùi: ease-out bậc 2 trong 0.12 s; văng khi chết ease-out 0.30 s; hất tung parabol 0.40 s.

6.5 Số sát thương (lớp BattleDmgText, screen-space)

KiểuMàu · cỡ
thườngngà #f4efe0 ×1.0
nặng (HEAVY/SKILL/COUNTER)ngà ×1.15, viền đậm
chí mạngngà ×1.5 + "!" (INV-01a)
phụ (DoT, nảy, tràn)xám #a8a4b0 ×0.8
bị khiên chặnxám lam #8aa0b8 ×0.8
hero nhậnđỏ hồng #ff5a5a ×1.3
hồi phụclục #7be08a
  • Hoạt ảnh: phóng ×1.6 trong 0.09 s rồi co, bay lên 16 px, sống 0.60 s; 1 mesh.
  • Trần trong bầy: ≤ 260 số trên màn · ≤ 24 số mới/tick · cùng mục tiêu + cùng loại trong 0.10 s → gộp thành 1 số (cộng dồn, bật lại) · DoT gộp 1 số/1.0 s/mục tiêu.
  • Thứ tự bỏ khi vượt trần: (1) phụ trên S → (2) thường trên S → (3) thường trên M+ → (4) chí mạng trên S. Không bao giờ bỏ: số hero nhận, hồi phục, số trên L/XL, chí mạng trên M+.
  • Cài đặt: Tắt / Chỉ chí mạng + boss / Đầy đủ (mặc định).
  • Callout: 1 cái/lúc, hàng đợi ≤ 2; callout mới cùng ưu tiên thay cái cũ.

9I-frame, giáp, ngắt, ưu tiên cùng tick

7.1 Nguồn bất tử của hero (INVULN)

NguồnThời lượngGhi chú
Lướt0.20 s từ frame 0 (12 tick)mọi Y/P/N/đạn; vùng N không tick trong i-frame; nguồn duy nhất cho Né Hoàn Hảo
Sau khi trúng đòn0.60 s (36 tick)không có Né Hoàn Hảo
Ult UL1/UL2toàn clip (H01_UL1 2.2 s)bắt buộc (INV-11: clip khoá ĐÁP/Lướt)
Ult UL3 (biến hình 8–10 s)0.5 s clip kích (30 tick)sau 0.5 s hero KHÔNG bất tử; trong dạng ĐÁP/verb giữ/Lướt chạy hợp đồng thường (doc 12 Q4)
Cửa sổ không trungtheo đòn (H01_SK02 0.36 s · H03 Nhảy Sào 0.35 s)AIRBORNE §1.5
Lao của Phảnlao ≤ 0.10 s + activemọi hero có Phản lao
Draftlúc mở + 0.5 s sau khi chọnBible §6
Bắt đầu phòng1.0 s [ASSUMED]vừa vào phòng/sau cảnh
Lửa Gửi hồi sinh2.0 s [ASSUMED]+ sóng r120 (§8.3)
  • Bất tử = không nhận sát thương, trạng thái, đẩy; đòn vẫn hiện tell bình thường.

7.2 Hạng giáp (armor_tier)

HạngHeroKẻ địch
NONEmặc định: Hurt + đẩyquái S: khựng §4.2
FIRM (Kiên)miễn Hurt/đẩy từ đòn của quái S, vẫn nhận sát thương; đòn M+ gây Hurt (vd H02 Xoay Quan, nạp đòn H02)—
HYPER (Siêu giáp)miễn Hurt/đẩy từ mọi đòn Y/N, vẫn nhận sát thương; P vẫn trúng đủ + Vỡ Thế (vd H11 Cắm Xẻng, H08 Tì Báng trước 120°)windup đòn chữ ký boss có cờ hyper: Thế mất ×0.5, không bị choáng/tước bởi ĐÁP
POISE—M/L/XL: không khựng, mất Thế §4.1
INVULN§7.1chuyển pha boss, quỳ BS_B1 P2/P3, ấn spawn 0.6 s và xoáy triệu hồi 1.0 s (INV-14: chưa có hurtbox)
  • Luật INV-11: trạng thái hero nào chặn ĐÁP hoặc Lướt phải là INVULN; mọi trạng thái FIRM/HYPER/verb giữ phải huỷ được bằng chạm ĐÁP hoặc Lướt.

7.3 Ngắt hành động hero

Đang ởLướt huỷĐÁP huỷKỹ năng/Ult huỷĐánh huỷ
Đánh: startup / active / recoverycó / có / cócó / có / cósau 60% recoverycombo nối ở recovery
Kỹ năng: startup / active / recoverycó (startup: hoàn hồi chiêu) / có / cócó / có / cósau 60% recoverysau 60% recovery
Verb giữcócó (thả RB rồi chạm lại)cócó
Hurtsau 7 ticksau 7 tickkhôngkhông
Vỡ Thế hero (0.9 s)KHÔNGKHÔNGkhôngkhông
Cửa sổ INVULN khoá (clip UL1/UL2, 0.5 s kích UL3, không trung)khôngkhôngkhôngkhông
Dạng UL3 (sau 0.5 s kích)như hàng Đánh/Kỹ năng tương ứngnhư hàng Đánh/Kỹ năng tương ứngsau 60% recovery (Ult: không, Dư Âm không nạp)combo nối ở recovery
Khống chế tím của bosskhôngkhôngkhôngkhông
  • Đây là cách đọc INV-06 + INV-11 trong code: Lướt và ĐÁP huỷ mọi trạng thái trừ Vỡ Thế, 0.12 s đầu Hurt, khống chế tím của boss, chết, và cửa sổ bất tử khoá (INV-11 cho phép vì đã bất tử).
  • Lướt → Lướt thứ 2 sau 0.10 s (6 tick); hậu Lướt 0.05 s (3 tick). Di chuyển huỷ recovery sau 60% (move_cancel_frac).
  • Buffer 0.15 s (INV-07): input bấm trong trạng thái chưa huỷ được lưu 9 tick; ở tick đầu huỷ được, chạy input ưu tiên cao nhất trong buffer; giữ thêm Đánh để nối combo, bỏ phần còn lại.

7.4 Phân giải 1 đòn địch chạm hero (thứ tự cố định)

1 hero INVULN (clip UL1/UL2, 0.5 s kích UL3, không trung, draft, đầu phòng, hồi sinh, lao Phản) → Immune
2 hero trong i-frame Lướt                                                       → Dodged
     + Lướt bắt đầu ≤ 9 tick trước tick va chạm và hồi Né Hoàn Hảo đã sẵn (1.0 s) → PerfectDodge
3 hero trong i-frame trúng đòn                                                  → Immune
4 đòn Y và cửa sổ ĐÁP đang mở                                                   → Answered (`11-Defense-Tells` §2)
5 đòn Y/N và verb giữ đang che theo hình của nó                                 → Blocked / Reduced (`11-Defense-Tells` §3)
6 đòn P và hero đang ở verb giữ che thân (H01, H05, H06, H08, H11)               → Hit đủ + Vỡ Thế 0.9 s
7 còn lại                                                                       → Hit (Hurt §4.2)
  • Nhiều đòn cùng tick: xử theo thứ tự tạo đòn; Hit đầu tiên bật i-frame trúng đòn → các đòn sau cùng tick = Immune (tối đa 1 lần mất máu/tick). Answered/Dodged không bật i-frame → 1 cửa sổ ĐÁP trả lời mọi đòn Y trong cửa sổ.
  • Hero vs địch cùng tick: hitbox hero phân giải trước (§1.1). Quái bị giết, Vỡ Thế, choáng, tước vũ khí ở tick này → đòn của nó ở tick này bị huỷ (đạn/vùng đã sinh trước đó vẫn bay/tồn tại).
  • Input cùng tick (INV-07): Lướt > ĐÁP > Ult > Kỹ năng > Đánh.

10HP & hồi phục

8.1 Nguồn hồi phục (Bible §2.3; không tự hồi)

NguồnLượngTrần / luật
Xong phòng chiến+8% HP_MAX—
Cầu máu12 HP; rơi 2%/quái S (MUT07 ×2)≤ 6 cầu trên sàn, tồn 20 s; hút theo PICKUP_R
Lên cấp+3 HP_MAX + hồi 6%—
RST / DOCK / thưởng HEAL40% / 25% / 25%—
Bình máu30%§8.3
Thắng boss HồiHP = max(HP, 60% HP_MAX)—
Hồi theo cú trúng (Edge/Relic "hút máu")theo dữ liệutổng ≤ 3% HP_MAX/s [ASSUMED] (bầy 250 quái không thành bất tử)
  • Mọi hồi phục × HEAL_MULT (MRN11 −20%/bậc). Hồi vượt HP_MAX mất, trừ Edge/Relic ghi rõ "đổi thành Khiên".

8.2 Khiên & HP đặc biệt

  • Khiên (shield_hp, từ Edge/Relic): hút sát thương trước HP; trần SHIELD_CAP 50% HP_MAX; sau 5 s không nhận thêm khiên → giảm 10%/s lượng hiện có [ASSUMED]; không chặn Vỡ Thế; HUD: đoạn bạc trắng nối sau thanh HP.
  • HP xám H06 (Bible canon): ở Chảy mỗi đòn đánh ra đổi 2 HP → HP xám; đòn trúng trong 3 s đổi lại; mất khi Tôi hoặc sau 3 s; mất ≤ 4 HP/s; không kéo HP dưới 1. HP xám không hút sát thương.
  • Tường H02 (HP 80), Phường H12 (HP 40, mất sau 3 đòn): vật thể có HP riêng, không phải khiên; đòn địch chạm vào thì trừ, quái không chủ động nhắm.

8.3 Bình máu, chết, hồi sinh

  • Bình máu: sức chứa 2 [ASSUMED]; đầu run 0 (+1 với nâng trạm Lửa Canh "+1 bình đầu run"); mua ở Sạp Rong 60 Vàng Mã (Bible). Dùng (d-pad xuống / 1): uống 0.40 s (24 tick), đi ×0.5, hồi 30% ở tick cuối; Lướt/ĐÁP huỷ → giữ bình, không hồi; không dùng khi Vỡ Thế/ult.
  • Chết: HP ≤ 0 (sau §3.3 chống chết 1 đòn) → nếu còn Lửa Gửi (1/run; GD4 → 2; MRN06 → 0): anim 1.0 s bất tử → HP 35% HP_MAX, sóng r120 (AREA 3.0 × POWER, đẩy 60, M −30 Thế), xoá trạng thái, Thế đầy, i-frame 2.0 s. Hết Lửa Gửi → World ×0.3 trong 0.5 s → recap INV-16.
  • 1.0 không có nguồn hồi sinh nào khác ngoài Lửa Gửi.

11Ngắm & trợ ngắm

  • Trợ ngắm chỉ đổi hướng (và quãng lao), không đổi sát thương/hitbox.
KhoáCận chiến (H01–H06, H11)Tầm xa/vùng (H07–H10, H12)
Mặc địnhtay cầm BẬT · chuột TẮTtay cầm BẬT · chuột nam châm nhẹ
Nón · tầm · xoay tối đa100° · 90 px · 35°20° · 260 px · 12° (chuột: 6°, chỉ M/L/XL)
Ưu tiênM/L/XL đang windup > mục tiêu dấu Phản ✦ > gần nhất > quái tầm xa; hoà → góc nhỏ hơnM/L/XL > gần nhất trong nón
Bước laomục tiêu cách 24–60 px → lao tới tối đa step_max của đòn—
  • Thương Xót "tự ngắm": hướng tự khoá vào mục tiêu ưu tiên 360° trong 140 px (cận) / 300 px (xa); cần trái chỉ di chuyển.
  • Khoá boss mềm: khi có L/XL trong vùng an toàn, nó luôn là ứng viên trợ ngắm nếu lệch ≤ 30° so với hướng nhập, tầm ×1.5. Tuỳ chọn Trợ năng "Khoá boss cứng" (mặc định tắt): bật → R3 / chuột giữa (remap được) bật/tắt khoá; khi khoá và không có input ngắm, hướng = boss.
  • Địch luôn nhắm hero; không chủ động nhắm Phường/tường/triệu hồi (chỉ trúng khi hitbox chạm).

12Trần hiệu năng chiến đấu

📊 Trần (tuning.caps)

54 dòng
NúmGiá trịĐơn vịGhi chú
alive_max250quáiBible §10.4 (demo max_alive 700 → 250)
alive_max_deck180quáipreset máy cầm tay DECK (01 §5.1)
hero_hitboxes_tick64hitbox—
hit_pairs_tick4000cặpspatial hash ô 32 px
hero_proj300đạn—
enemy_proj12đạn≤ 3 loạt nhắm hero (INV-08)
hero_zones24vùng—
enemy_zones16vùng P + N—
dmg_numbers260số24 mới/tick
status_instances1500instanceDoT 30 nhóm lệch pha
vfx_hits_frame16VFX/khung—
vfx_deaths_frame12VFX/khung—
particles1500hạt—
active_sheets40sheet—
sfx_hits3/50SFX · mstrúng ≤ 3/50 ms
sfx_deaths4/100SFX · mschết ≤ 4/100 ms
sfx_voices64voice64 voice thật; pool 48 one-shot; SFX tell không bao giờ bị cắt
ai_full_tick_r200pxtrong r200 mỗi frame, ngoài 10 Hz
ai_far_hz10Hz—
dmg_log_seconds30sring buffer (INV-16)
frame_p95_ms16.6msmáy DECK, kịch bản MS01b
corpses_anim80xácthứ 81+ chỉ tan tro 0.2 s
xp_shards_floor120shardgộp vào shard gần nhất
draft_luck5điểmtrần Vận
reroll_run9lượt—
banish_run5lượt—
lock_run3lượt—
inc_soft1+100%inc_eff = min(inc, 1.0) + max(0, inc − 1.0) × 0.5
inc_soft_over_mult0.5×—
more_dmg2.5×Π MORE từ nâng cấp
more_per_rowCOMMON: 1, RARE: 1, EPIC: 1.25, RS2: 1.25, RELIC: 1.3, CURSED: 1.35, LINCHPIN: 1.4×—
icd_on_hit0.1sON_HIT · ON_CRIT mỗi (Edge, mục tiêu)
on_kill_per_s8lần/smỗi Edge
icd_on_status0.25s—
interval_min0.5sINTERVAL
res_gain_trigger_min_pct5% dảiON_RESOURCE_GAIN
cd_refund_per_s1s/shoàn hồi chiêu ≤ 1.0 s/s/kỹ năng
cd_full_reset_gap5sreset trọn ≤ 1 lần/5 s
dash_refund_per_s1lượt/1.0 s—
ult_gain_trigger_per_s10Dư Âm/s—
ult_lock_after_s3skhoá nạp sau ult
ult_gap_s20skhoảng giữa 2 ult ≥ 20 s
res_range_raise_max50%nâng trần dải tài nguyên ≤ +50%
heal_per_room40% HP_MAXhồi từ trigger ≤ 40%/phòng
invuln_extend_max0.1s—
hero_proj_from_upgrades120đạn—
zones_from_upgrades24vùng—
summons8thực thểH12 Phường ≤ 4 tính riêng
blasts_per_frame16BLASTtrễ ≤ 3 frame
linchpin_run2thẻ—
evo_run2thẻ—
economy_gold_per_act150Vàng Mã/HồiECONOMY từ nâng cấp
draft_bonus_runreroll: 3, banish: 2, luck: 5lượtDRAFT từ nâng cấp
pi_end_p994.2PIbuild tối ưu p99

KhoáTrần
Quái sống250 (preset Deck 180; Bible §10.4)
Hitbox hero hoạt động64/tick
Cặp thử trúng4.000/tick (spatial hash ô 32 px)
Mục tiêu/hitbox48 (ult 128)
Đạn hero · đạn địch300 · 12 (≤ 3 loạt nhắm hero, INV-08)
Vùng hero · vùng địch (P + N)24 · 16
Số sát thương260 trên màn, 24 mới/tick
Instance trạng thái1.500; DoT 30 nhóm lệch pha
VFXtrúng ≤ 16/khung · chết quái ≤ 12/khung · hạt ≤ 1.500 · sheet hoạt động ≤ 40
SFXtrúng ≤ 3/50 ms · chết ≤ 4/100 ms · Real Voices 64 (Virtual 256), p95 ≤ 56, pool 48 one-shot (doc 32 §5.3); SFX tell không bao giờ bị cắt (11-Defense-Tells)
AItrong r200 mỗi frame, ngoài 10 Hz
Log sát thươngring buffer 30 s (INV-16, Tro Nhớ)
  • Vượt trần → hạ theo thứ tự: số sát thương (§6.5) → VFX trúng S → hạt → SFX trúng. Không bao giờ hạ: tell Y/P/N, va chạm, sát thương, vòng chân hero, x-ray (INV-09).
  • Kiểm: kịch bản MS01b (Bible §10.4) chạy với hero bất kỳ + 2 trạng thái DoT trên 200 quái: p95 ≤ 16.6 ms trên Steam Deck.

13Quy tắc cho dev/AI

  • Mọi số chiến đấu đọc từ CSV (combat_core.csv, hero_moves_<Hxx>.csv, enemy_attacks.csv); không hard-code; tick hoá theo §1.1.
  • Hitbox là hình trên mặt sàn, thử Minkowski với bán kính hurtbox; VFX = hình hitbox.
  • Thẻ dùng "+x%" = bể cộng, "×y" = nhân riêng; không trộn.
  • Không đòn/hiệu ứng nào gây sát thương va chạm thân (INV-04); không đòn địch nào trúng hero mà không có tell Y/P/N.
  • Chỉ dùng 12 trạng thái ở §5; thêm trạng thái = mục DEC- + sửa Bible/JSON.
  • Khống chế lên L/XL luôn đổi thành Thế trừ số Bible ghi riêng.
  • Trạng thái hero chặn ĐÁP/Lướt phải INVULN; còn lại huỷ được bằng ĐÁP/Lướt. Ult: UL1/UL2 bất tử toàn clip, UL3 chỉ 0.5 s kích.
  • Co giãn quái đọc Chỉ số sức mạnh build theo phút CRV_power_index / EHP_idx theo (act, home_act); không dùng mũ cố định. ENDLESS: act = 5, endless_loop bắt đầu từ 1.
  • Không hạ tell/va chạm khi vượt trần hiệu năng.
  • Mọi đòn ghi dmg_kind, hit_class, shape, layers, poise_dmg, adaptive_source.

14Quyết định đã chốt

QQuyết địnhLý do
Q1 Danh sách trạng thái2026-11-07 — 6 BUILD canon + 6 CONTROL mới (Choáng STS_STUN, Câm STS_MUTE, Mù STS_BLIND, Tước Khí STS_DISARM, Chậm STS_SLOW, Ghim STS_PIN); CONTROL không phải tagBible dùng choáng/câm/mù/tước/chậm/kẹt bằng lời, code cần id; không đổi số tag/SE/SRS
Q2 Loại sát thương2026-11-07 — dmg_kind = cách giao (MELEE/PROJ/AREA/ZONE/DOT/PURE), không hệ nguyên tốBible không có nguyên tố; trạng thái đã mang màu sắc lối chơi
Q3 Hurtbox herochung CIRCLE r 7 + hộp màn 7×26độ khó né không phụ thuộc dáng hero
Q4 Đổi giây → tickcửa sổ có lợi người chơi = ceil; còn lại = roundĐÁP 0.14 s sàn không bị làm tròn xuống 8 tick
Q5 LựcPOWER 10 mọi hero; lên cấp không tăng sát thươngBible: cấp = +3 HP + draft; sức mạnh đến từ build
Q6 Co giãn quái ngoài Hồi gốc2026-11-07 — HP × PI(act)/PI(home_act), sát thương × EHP_idx(act)/EHP_idx(home_act) (bảng §2.4, doc 17 §1.2/§5.1); thay mũ cố định ×1.30/×1.15mũ cố định lệch đường cong soạn (Kết: quái B1 −13% HP, B4 +14%) → độ khó Kết phụ thuộc biome roll; 1 công thức cho B5 trộn, ENDLESS
Q9 ENDLESS act/vòng2026-11-07 — tầng n: act = 5 cho HP/DMG/XP/rarity/B_room; endless_loop = floor((n − 1)/4) + 1 [ASSUMED]người chơi vào ENDLESS sau Hồi IV với PI ≈ 3.29 = PI Kết; act = home_act (hệ số 1) làm quái B1 chết 1/3 cú; vòng 1 đã ×1.12 khớp doc 17 VD-E6 (vòng 3 ×1.36)
Q10 Bất tử Ult2026-11-07 — UL1/UL2 bất tử toàn clip; UL3 chỉ 0.5 s kích, dạng 8–10 s giữ hợp đồng ĐÁP/Lướtkhớp doc 12 Q4; bất tử 10 s phá P3, INV-11 chỉ đòi bất tử khi khoá ĐÁP/Lướt
Q11 power_curve2026-11-07 — = PI lúc VÀO Hồi (cuối Hồi trước; Hồi I = đầu run)khớp doc 17 Q2 / Chỉ số sức mạnh build theo phút CRV_power_index
Q7 Đọc INV-06/INV-11Lướt/ĐÁP huỷ mọi trạng thái trừ Vỡ Thế, 7 tick đầu Hurt, khống chế tím boss, chết, cửa sổ bất tử khoákhớp FSM demo + INV-11 (khoá chỉ khi bất tử)
Q8 Chống chết 1 đònHP ≥ 90% → giữ 1 HP, 1 lần/10 s, tắt ở Độ Tang ≥ 16 [ASSUMED]P3 "ít đòn nguy hiểm"; Khăn Tang cao vẫn khắc nghiệt
Q9 Ngân sách hitstop/làm chậmhitstop hero ≤ 0.20 s/1 s; làm chậm toàn cục ≤ 0.60 s/2 sP1 tốc độ trong bầy 250 quái
Q10 Khoá bossmềm mặc định; cứng là tuỳ chọn R3/chuột giữa§1.1 Bible không có nút khoá; không thêm nút bắt buộc
Q11 Chí mạngchớp trắng + số ngà "!"INV-01a: dải vàng chỉ cho tell