1Bất biến được nhắc ở đâu
2Danh sách bất biến
Luật không Khăn Tang, Ấn hay Tro Nhớ nào được phá (Design Bible).
Sở hữu màu
(a) Dải tell dành riêng (lớp world-space): mọi pixel HSV S ≥ 45% với hue 32–62° chỉ cho tell vàng #ffd84a (47°); hue 260–290° chỉ cho tell tím #b14cff (274°). Ngoại lệ duy nhất: glint vàng kim Dòng Chảy/Relic ≤ 2 px/frame, không trên vũ khí địch. Recolour tài sản demo: chớp chí mạng → trắng; orb_reflected → slot hero + lõi #fff6f0; dấu Phản đòn ✦ → slot hero. Lớp screen-space (BattleDmgText, HUD): số chí mạng ngà + '!', thanh Thế boss bạc. (b) Mỗi hero 1 slot hue = tâm ±10°, tâm cách ≥ 20°, không chạm 24–70° và 252–298°: H01 #e0283a 354° · H06 #f2501f 14° · H08 #7bb21b 82° · H11 #8bdb6e 104° · H07 #2db23a 126° · H04 #30f089 148° · H10 #1ab89e 170° · H12 #2ec0e8 192° · H03 #3680e0 214° · H05 #242db2 236° · H09 #b20068 325°. H02 #e4dcc8 vô sắc (S ≤ 20%, V ≥ 80%): cặp ngà + viền bồ hóng #2a2420, không slot hue. Slot dùng cho lưỡi vũ khí, viền FX, vòng chân, rim, afterimage, ult, triệu hồi, đạn phản. Skin ≤ ±4° hue (biến thể bằng S/V). Cổng CIEDE2000 ở độ sáng FX (V ≥ 0.70): slot kề ≥ 12, mọi slot với #ffd84a/#b14cff ≥ 25. (c) Hình khối thắng màu: FX hero lõi trắng nóng #fff6f0 + viền slot, đặc (kể cả vùng sàn lớn H05/H10/H11); FX địch lõi tối/lạnh + viền sáng, rỗng. (d) Thân địch S ≤ 40%, palette lạnh biome, không đỏ thẫm (hue 340–10°, S > 30%); điểm nhấn (mắt, gân) S > 40% nếu ≤ 10% pixel. Alt tro-xương #e8e4f0 = remap palette lúc chạy (sprite màu chỉ mục + shader LUT, export pixelfx ghi kênh mask điểm nhấn), tự bật khi hue nhấn lệch slot hero đang chơi < 25°: 0 sheet thêm, 0 trang atlas thêm. Skin hero = LUT palette, không vẽ lại. (e) Khi H02 chơi, ấn spawn #e8e4f0 đổi sang viền gạch đứt 2 px. (f) Trạng thái do hero gây vẽ trong ramp hero + glyph: EMBER lửa, FROST tinh thể, SHOCK zigzag, ROT bọt, BIND xích, DREAD mắt. (g) Khung rarity không dùng dải tell; UI không áp (b).
Ngôn ngữ tell (Y/P/N)
Vàng (Y) CHỈ cho đòn rời (1 cú đánh hoặc 1 viên đạn, đúng 1 frame va chạm): glint #ffd84a ở mũi vũ khí/đạn đầu windup + glint 2 đúng 0.12 s trước va chạm + viền trắng nháy ≥ 2 frame + SFX 'tinh' → ĐÁP. Đòn nhiều nhịp = mỗi nhịp 1 glint. Tím (P) = vùng sàn #b14cff lớn dần (fill 25% + rim 2 px) + hào quang thân + '!' + SFX ù trầm → chỉ Lướt. Vùng đọng (N) = sát thương sàn kéo dài, bẫy, luồng phun, vùng lưu lại: viền chấm 2 px #e8e4f0 + fill chấm thưa 15%, không glint, không SFX tell, ≤ 4 sát thương/tick 0.5 s, không ĐÁP được; không dùng gạch chéo (dành cho tím mù màu). Không ngoại lệ, kể cả boss, hazard, Khăn Tang, Tro Nhớ.
Windup tối thiểu
Windup ≥ 0.30 s quái thường, ≥ 0.45 s Elite/Mini/Boss; khe giữa 2 đòn trong chuỗi ≥ 0.35 s; tư thế windup giữ nguyên, silhouette khác tư thế đi. Không Khăn Tang/Ấn/Tro Nhớ nào rút dưới sàn này.
Không sát thương va chạm
Thân địch chỉ đẩy/chặn; sát thương chỉ đến từ đòn có tell, đạn, vùng có tell.
Hero nhanh hơn bầy
Tốc chạy hero ≥ 1.1 × tốc đi bộ của mọi quái (quái nhanh nhất canon 118 → hero ≥ 130). Chỉ đòn lao vượt tạm thời. Xem INV-17 cho buff.
Lướt hủy
Lướt hủy mọi trạng thái hero trừ Vỡ Thế, khống chế tím của boss, chết.
Buffer
Buffer input 0.15 s cho mọi hành động; ưu tiên cùng tick: Lướt > ĐÁP > Ult > Kỹ năng > Đánh.
Token
Cận chiến ≤ 4 windup nhắm hero (≤ 2 khi Elite/Boss đang windup) + ≤ 3 loạt đạn nhắm hero (gồm triệu hồi boss); Elite/Boss không giữ token; quái không token đi vòng 38–70 px. Token tím sàn: ≤ 3 tell tím sàn từ quái thường cùng lúc, ≤ 5 tổng gồm hazard, Ấn, mutator, Khăn Tang; không có token tím → dùng đòn Y hoặc chờ. Đòn chữ ký boss miễn token, nhưng khi boss đang windup P không tell tím nào khác được bắt đầu. EM16 chiếm 1 trong 4 token cận chiến của quái thường.
Luôn thấy hero
Vòng chân màu slot, rim light, x-ray silhouette 55% khi bị che; hero vô sắc dùng vòng ngà + viền bồ hóng.
Cú trúng có cảm giác
Mọi cú trúng có hitstop, chớp trắng 0.07 s, knockback theo mass, SFX.
Hợp đồng ĐÁP
Mỗi hero đúng 1 verb ĐÁP trả lời 100% tell vàng (cận chiến + đạn), hit-test 360°, anim tự xoay về mối đe doạ vàng gần nhất. Cửa sổ = gốc hero (0.15–0.18 s, heroes[].answer_window) + Thương Xót (+0.03/+0.06) + Edge/Relic, kẹp ≥ 0.14 s. Không bị khoá bởi tài nguyên, thời gian hồi chiêu hay trạng thái (trừ Vỡ Thế/Hurt 0.12 s đầu). Nút: chạm = ĐÁP; giữ = verb giữ riêng hero (heroes[].hold_verb). Hụt ĐÁP khoá 0.30 s (MRN07 nâng 0.45/0.60). Tài nguyên 0 vẫn ĐÁP, không thưởng. Mọi trạng thái hero chặn ĐÁP hoặc Lướt phải bất tử hoàn toàn; nếu không, chạm ĐÁP/Lướt huỷ trạng thái đó (H06 xả cưỡng bức, H02 nạp, H05 quay, H11 đào, H07 kéo).
Hợp đồng Lướt
Mọi hero dùng chung Lướt: i-frame ≥ 0.20 s từ frame 0, ≥ 2 lượt, nạp lại lượt 0.70 s nối tiếp, luôn khả dụng (không điều kiện neo/đạn/địa hình), quyền hủy INV-06. Né Hoàn Hảo luật chung: bị trúng trong i-frame và Lướt bắt đầu ≤ 0.15 s trước va chạm → World 25% trong 0.35 s, +hoàn 1 lượt, ≤ 1 lần/1.0 s. Khác biệt giữa hero chỉ là anim + cự ly 72–96 px.
Đạn tím
Đạn tím: lõi rỗng + đuôi '!', vẽ đường/vòng tím trên sàn ≥ 0.45 s trước khi tới, tốc ≤ 140 px/s, ≤ 2 viên tím trên màn cùng lúc.
Spawn công bằng
Spawn trong tầm nhìn có ấn tro #e8e4f0 trên sàn 0.6 s, không sát thương; không spawn trong r90 quanh hero; quái mới sinh không windup trong 0.8 s. Triệu hồi của boss/Elite dùng xoáy trung tính 1.0 s (= windup B4 canon).
Tro Nhớ công bằng
Áp cho mọi đòn adaptive_source = ASH và dịch spawn MESO. Không đổi màu tell, windup tối thiểu, sát thương, hitbox, token. Dịch trọng số đòn ≤ 20% (Elite) / 35% (Boss), ≤ 50% dưới Khăn Tang. Dịch spawn MESO ≤ 15%, có báo + thưởng, không ở phòng đầu Hồi/PURGE/TIDE. ≥ 50% đòn mỗi Elite/Boss ĐÁP được. Báo trước ≥ 1.0 s (Mắt Tro + khựng 0.6 s + callout). Chỉ đọc thống kê ≥ 0.5 s tuổi, không phản ứng input < 0.25 s, không dùng thông tin hero không thấy. ≤ 1 nhịp lừa/chuỗi (trì ≤ 0.35 s, pose + SFX riêng, glint 0.12 s giữ). Tắt 60 s đầu run (MRN13: 30 s), 3 run đầu đời, Thương Xót = 0, CUSTOM 0; mỗi đòn ASH có mặc định trung tính khi tắt.
Recap cái chết
Mọi cái chết hiện thẻ recap: 5 nguồn sát thương cuối (tên đòn, tell Y/P/N, giây) + đòn kết liễu; dựng từ log sát thương, không phải replay buffer.
Kẹp tốc độ
Mọi buff tốc độ địch (Ấn, aura, Khăn Tang, mutator) bị kẹp: tốc đi cuối ≤ tốc chạy CƠ BẢN của hero đang chơi (heroes[].speed, trước slow) / 1.1. Slow môi trường (bãi xương, nước, bụi, vệt tro) áp như nhau cho quái cùng vùng.
Hazard cùng ngôn ngữ
Hazard môi trường dùng đúng Y/P/N của INV-02, nhịp ≥ 1.0 s, sát thương cả quái; tell tím của hazard ăn token tím INV-08. Mây, sương, bóng tối luôn vẽ dưới lớp tell.