← Deepstair GDD🪜 Chương 05 · Thang Vực & Run

05 — Descent & Run Flow (Thang Vực, Tầng, Run)

Kế thừa thuật ngữ, invariant, state machine (§5), FTUE (§7.1), sổ ID (§14) và hằng số từ 00-Deepstair-Master.md. Liên quan: 01 (chiến đấu, điểm spawn §2, phòng thủ §5), 03 (anh hùng, Thông Thạo §5.3), 04 (địch, StrataEnemyWeights, Thủ Vệ, Boss, ember_drop, BossIntel), 06 (Hồi Âm, lượt chọn §4–§6), 07 (Cây Đèn Hồn), 08 (kinh tế), 09 (quảng cáo/IAP/rương), 11 (UI), 12 (art/audio), 13 (save, RNG). Dữ liệu: GDD/Tools/data/run.py → Config/Strata.csv, StrataHazards.csv, FloorLayout.csv, FloorScaling.csv (B1–B200), Landings.csv, LandingPrices.csv, Dread.csv, DepthMilestones.csv, AbyssMilestones.csv, DailyModifiers.csv, DailyRewards.csv, RunRules.csv. Hằng số liên module nhập từ constants.py (không định nghĩa lại). Sửa số ở file data, không sửa tay bảng.

21 mục 39 bảng ~67 phút đọc Nguồn: 05-Descent-Run.md DERIVED công thức/mô phỏng · ASSUMED khởi điểm · BENCHMARK thị trường

0Thành phần runtime

Thành phần Trách nhiệm Dữ liệu
RunController State machine trong run (00 §5.2), vòng đời run, gọi thưởng RunRules.csv
RunModifiers Struct duy nhất gộp modifier của Bậc Kinh Hoàng + Thử Thách Ngày + FTUE; mọi hệ thống chỉ đọc từ đây Dread.csv, DailyModifiers.csv, ftue_*
FloorDirector Dựng phòng theo Địa Tầng (biến thể A/B/C), đạo cụ, ánh sáng, bẫy Strata.csv, StrataHazards.csv
WaveDirector Chia wave, chọn loại địch, spawn, hàng đợi, kích hoạt wave kế FloorLayout.csv, FloorScaling.csv, 04 StrataEnemyWeights
HazardRunner Chu kỳ bẫy Địa Tầng StrataHazards.csv
DescentSequencer Chuỗi đi xuống cầu thang, camera trục xoắn, nhịp lưu snapshot, lượt chọn descent_*
LandingService Roll + luật Chiếu Nghỉ LD01–LD08, Cổng Boss LD00, đồng đội LD06 Landings.csv, LandingPrices.csv
ReviveService Thứ tự hồi sinh, popup revive_*
RunRewardCalculator Công thức Kết Quả, mốc độ sâu FloorScaling.gold, DepthMilestones.csv
DailyChallengeService Seed ngày, Anh Hùng Của Ngày, modifier, điểm daily_*
RunSnapshotStore Ghi/đọc/migrate run_snapshot.json, checkpoint wave §16
RunRng 7 luồng RNG có seed (constants.RNG_STREAMS) §4.7

1Cấu trúc Thang Vực

  • 100 tầng = 10 Địa Tầng × 10 tầng (B1…B100), nhịp cố định INV-12. Hạ Vua Rỗng (BS10, B100) lần đầu mở Bậc Kinh Hoàng (§13) và Vực Không Đáy B101+ (§14).
  • Run bắt đầu ở B1 (hoặc tầng Xuống Nhanh §11), đi xuống tới khi: gục hết hồi sinh, bỏ cuộc, hạ Vua Rỗng và chọn dừng, hoặc hạ Boss B30 ở Thử Thách Ngày.
  • Hiển thị tầng: "B23". Anh hùng vào phòng từ cửa cầu thang trái (x = −150, rơi từ trần), rời qua miệng hầm phải (x = +150) (01 §2).
  • Kỷ lục độ sâu (tài khoản) = tầng sâu nhất đã clear ở Bậc 0 bởi bất kỳ anh hùng nào (tầng Boss chỉ tính khi Boss bị hạ); chỉ tăng. Mỗi anh hùng có Kỷ lục riêng theo từng Bậc + kỷ lục Vực riêng (§13.3).

1.1 Địa Tầng

Id Địa Tầng Tầng Chủ đề Thủ Vệ (x5) Boss (x0) Bẫy Nhạc / nền âm
S01 Hầm Rượu Đổ Nát (Ruined Cellar) B1–10 Hầm rượu của Dawnhold sụp vào miệng vực: thùng gỗ vỡ, kệ chai phủ bụi, đuốc cuối cùng của người sống WD01 Răng Sỏi BS01 Gorrak Kẻ Gác Cổng HZ01 bgm_s01_cellar / amb_s01_drip
S02 Hầm Mộ (Catacombs) B11–20 Hầm mộ các dòng tộc cũ: hốc tường đầy sọ, quan tài đá, tượng thiên thần gãy cánh WD02 Kẻ Đào Mộ Hask BS02 Valcor Hiệp Sĩ Không Đầu HZ02 bgm_s02_catacombs / amb_s02_wind
S03 Hang Nấm Phát Quang (Glowcap Grotto) B21–30 Hang ngầm phủ nấm khổng lồ phát quang; bào tử lơ lửng như sao WD03 Thợ Săn Nấm BS03 Mẹ Bào Tử HZ03 bgm_s03_grotto / amb_s03_hum
S04 Sảnh Ngập (Drowned Hall) B31–40 Đại sảnh cổ chìm nửa trong nước ngầm: cột đá gãy, tượng ngập tới ngực WD04 Thuyền Trưởng Chìm BS04 Nereth Phù Thủy Triều HZ04 bgm_s04_drowned / amb_s04_water
S05 Lò Rèn Hỏa Ngục (Infernal Forge) B41–50 Lò rèn của đội quân Vua Rỗng: kim loại nóng chảy, đe khổng lồ, ống bễ thở lửa WD05 Đốc Công Lò BS05 Brakka Vua Đe HZ05 bgm_s05_forge / amb_s05_bellows
S06 Mạch Pha Lê (Crystal Vein) B51–60 Mỏ pha lê bỏ hoang; mạch tinh thể chạy dọc vách, phản chiếu mọi ánh lửa WD06 Kiếm Sĩ Pha Lê BS06 Song Tử Lăng Kính HZ06 bgm_s06_crystal / amb_s06_chime
S07 Thánh Đường Xương (Ossuary Cathedral) B61–70 Thánh đường dựng bằng xương những người mang đèn đã ngã; kính màu đỏ, chuông tang khổng lồ WD07 Tu Sĩ Gai BS07 Giáo Chủ Morvane HZ07 bgm_s07_ossuary / amb_s07_choir
S08 Vực Băng (Frost Chasm) B71–80 Khe vực đóng băng: thác nước đông cứng, xác chiến binh trong băng, cực quang lạnh phía xa WD08 Nữ Thợ Săn Sương BS08 Hàn Long Skarn HZ08 bgm_s08_frost / amb_s08_gale
S09 Mê Cung Bóng (Shadow Maze) B81–90 Mê cung tường tự dời chỗ; cửa dẫn vào chính nó; gương vỡ phản chiếu kẻ mang đèn WD09 Sát Thủ Bóng BS09 Bóng Gương HZ09 bgm_s09_maze / amb_s09_whisper
S10 Tâm Rỗng (Hollow Heart) B91–100 Đáy vực: lồng ngực rỗng khổng lồ ôm Tâm Bình Minh bị xích; bậc thang vỡ trôi lơ lửng WD10 Hiệp Sĩ Rỗng BS10 Vua Rỗng HZ10 bgm_s10_hollow / amb_s10_heartbeat

Trọng số loại địch mỗi Địa Tầng do module 04 sở hữu (StrataEnemyWeights.csv); tài liệu này chỉ tham chiếu.

1.2 Môi trường pixel art

Id Ramp PAL nền Nhấn Đạo cụ Nguồn sáng Môi trường động (pixelfx) Lối vào (cửa · khe · trần · đặc thù) x đặc thù
S01 wood · earth · dust ember thùng rượu vỡ 24×20, kệ chai 32×40, dầm gỗ gãy chéo, bao tải, xích treo đèn, vũng rượu sẫm, mạng nhện góc trần đuốc tường fire/torch ×2 (x=−120, +120); nến cụt fire/candle trên thùng bụi lơ lửng (12 hạt 1 px ramp dust); water/drip mỗi 3–5 s; critters/bat bay ngang nền mỗi ~20 s cửa: cửa hầm gỗ bật tung (mảnh gỗ) · khe: vách gạch vỡ, địch trèo ra · trần: nắp sập · đặc thù: thùng rượu lớn nứt đôi, địch chui ra +40
S02 bone · stone · smoke holy + ice (hồn lửa) quan tài đá nắp xô lệch, hốc tường xếp sọ, đèn chùm sắt, tượng thiên thần gãy, bia mòn chữ, mạng nhện nến fire/candle ×6 trên hốc; hồn lửa fire/spirit-flame recolor ice ×2 sương thấp weather/fog (dải 24 px sát sàn); critters/ghost lướt nền mỗi ~15 s; bụi xương rơi cửa: song sắt mộ kéo lên · khe: hốc tường vỡ, xương rơi · trần: lỗ trần đổ xương · đặc thù: nắp quan tài trượt mở, địch ngồi dậy −60
S03 leaf · stone · cyber poison + arcane nấm khổng lồ (mũ 40 px), rêu sáng, rễ cây đâm qua trần, nhũ đá, túi bào tử, cụm nấm nhỏ mũ nấm phát sáng (Light2D r=48 px, ramp cyber); weather/fireflies ×10 bào tử trôi lên (hạt poison 1 px); critters/butterfly recolor arcane; critters/frog trên đá; nature/spore-burst nhỏ ở nền cửa: màn rễ tách đôi · khe: vách đất bở sụp · trần: mũ nấm rơi · đặc thù: túi bào tử nổ nature/spore-burst, địch bò ra +20
S04 water · stone · metal electric (phản chiếu) cột đá gãy, tượng ngập, đèn chùm rơi, bậc thềm ngập, thác nhỏ từ vết nứt, rong treo tia sáng weather/god-rays recolor water từ khe trần; đèn lồng treo xích water/drip; water/ripples quanh chân actor khi nước dâng; water/waterfall nền ×2; water/bubbles; critters/fish-school + critters/jellyfish sau vách nước cửa: cửa đá kéo lên, nước tràn · khe: vết nứt phun nước · trần: giọt lớn rơi kèm địch · đặc thù: trồi lên từ vũng nước water/splash −120, +40
S05 metal · lava · smoke ember + fire đe khổng lồ, ống bễ da, kênh dung nham, móc xích, giá kiếm nguội, khuôn đúc, xe goòng than miệng lò fire/brazier ×2; kênh dung nham (Light2D dải sàn ramp lava); tia lửa tàn lửa bay lên (hạt ember); khói smoke sát trần; hơi nóng (tắt ở tier Low); tiếng búa nền cửa: cửa lò sắt bật mở, lửa phụt · khe: gạch chịu lửa nổ · trần: xích hạ địch xuống · đặc thù: trồi từ khe dung nham fire/flame-pillar nhỏ −40
S06 stone · arcane · ice cyber cụm pha lê lớn ở tường, đường ray gãy, xe goòng lật, cuốc chim, giàn chống gỗ, mạch sáng trong vách pha lê phát sáng (Light2D ramp arcane); lóe pickups/crystal-shard ngẫu nhiên hạt lấp lánh; critters/bat đàn nhỏ ở nền; bụi đá cửa: cửa hầm mỏ gỗ · khe: pha lê nứt toác, địch bước ra · trần: giếng mỏ · đặc thù: xe goòng lao vào, địch nhảy ra +120
S07 bone · blood · shadow holy cột xương, ghế dài ghép sọ, kính màu vỡ, chuông tang giữa trần (x=0), đèn chùm xương, bục giảng giá nến fire/candle ×8; ánh kính màu weather/god-rays recolor blood khói hương smoke; tro rơi chậm; critters/flying-skull lượn nền; thánh ca méo cửa: cửa gỗ chạm xương · khe: tường xương sụp · trần: tháp chuông thả địch · đặc thù: đống xương tự ráp spawn/summon-rise −90
S08 ice · night · stone cyber (cực quang) thác băng, nhũ băng treo, xác trong khối băng, cầu treo qua vực, đống tuyết, cờ rách weather/aurora nền xa; tinh thể băng sáng nhạt weather/snow nhẹ liên tục; hơi thở trắng 2 px của actor; weather/blizzard khi HZ08 nổi gió cửa: cửa băng vỡ ice/ice-shatter · khe: vách băng nứt · trần: nhũ băng rơi ice/icicle-fall kèm địch · đặc thù: tan ra từ khối băng +70
S09 shadow · night · stone arcane khung cửa vô định, mảnh gương lớn, tường gạch xoay lệch, xích treo, nến đen, cầu thang dốc ngược nến tím (Light2D r=40 ramp arcane); đuốc chập chờn tắt theo HZ09 shadow/shadow-tendrils ở mép khung; critters/eyeball mở trong tường; weather/fog recolor shadow cửa: khung cửa đen hiện ra · khe: gương vỡ, địch bước ra · trần: bóng nhỏ giọt thành hình · đặc thù: bước ra từ vũng bóng shadow/void-orb −40, +110
S10 shadow · night · bone gold + holy (Tâm Bình Minh) xương sườn khổng lồ làm vòm, xích lớn nối về Tâm, bậc thang vỡ lơ lửng, ngai đổ, tượng người mang đèn hóa đá Tâm Bình Minh dưới sàn (Light2D ramp holy, nhịp 1.2 s); vết nứt hư không tím; weather/god-rays vàng từ dưới lên hạt shadow/void-orb nhỏ trôi; tro vàng bay ngược lên; rung nền 1 px theo nhịp tim (tắt khi Giảm nhấp nháy) cửa: cổng xương sườn mở · khe: khe hư không spawn/spawn-portal recolor shadow · trần: rơi từ bậc thang vỡ · đặc thù: hiện từ mạch Tâm 0

Quy tắc dựng phòng (mọi Địa Tầng) ASSUMED:

Lớp Nội dung Parallax Ghi chú
Nền xa Vách hầm + vòm, 1 tile 352×480 lặp ngang 0.3 Chỉ dùng bước ramp 0–3 (tối, giảm bão hòa) để actor nổi (P5)
Nền giữa 6–10 đạo cụ từ cột "Đạo cụ", không chặn khung lấy đà của địch 1.0 Đạo cụ không va chạm; trừ thùng/nấm/vòi của bẫy
Sàn Dải sàn 352×16 tại y = 0, vật liệu theo Địa Tầng 1.0 Vết máu/tro của địch chết nằm trên lớp này (mờ 6 s)
Tiền cảnh 2–3 bóng đen đạo cụ cao ≤ 10% khung 1.2 Ink #0b0a10 thuần, không che vùng chiến đấu giữa (x ∈ [−120, +120])
Ánh sáng URP 2D Light theo cột "Nguồn sáng"; tier Low → sprite quầng nướng sẵn — Ánh sáng cộng chỉ cho VFX/nguồn sáng, không cho actor
Môi trường động Hiệu ứng pixelfx ở cột "Môi trường động" 0.6–1.0 Tier Low: giảm 50% số hạt
  • Mỗi Địa Tầng có 3 biến thể phòng (A/B/C — bố trí đạo cụ khác nhau) chọn theo hash(seed, floor) mod 3; phòng Boss là bố cục riêng (04). Độ tối theo chiều sâu: ánh sáng môi trường giảm 3% mỗi tầng từ x1 tới x9 trong Địa Tầng → cảm giác "càng xuống càng tối".
  • Địch luôn khác bảng màu anh hùng (INV-04); môi trường không dùng màu báo hiệu #ff2040 / #a0102a (01 §11.3) ở bất kỳ đạo cụ nào.
  • Mỗi Địa Tầng có tile trục cầu thang (§5.2) và bục Chiếu Nghỉ riêng cùng ramp.

1.3 Bẫy Địa Tầng

Id Địa Tầng Bẫy Chu kỳ (s) Báo trước (s) Kéo dài (s) Cơ chế Lên anh hùng Lên địch fx
HZ01 S01 Thùng Dầu Rò (Leaking Casks) — 0.8 — 2 thùng/tầng (x ngẫu nhiên luồng spawn trong ±40…±110, cách lối cầu thang ≥ 48 px). Châm ngòi khi: hit anh hùng có kb ≥ 120 trúng thùng, địch bị đẩy/dội vào thùng, hoặc đòn địch trúng thùng → nổ sau 0.8 s, circle r=40 6% MaxHP (Tránh Vùng 01 §5.8) 300% ATK anh hùng (lớp S) + Bỏng 1 tầng, kb 200 explosions/barrel-explosion
HZ02 S02 Tay Xương Trồi (Grasping Bones) 10 0.9 1.0 Mỗi 10 s đánh dấu 2 vùng r=20 (1 dưới anh hùng, 1 dưới địch ngẫu nhiên); bàn tay xương trồi lên giữ chân Giữ chân 1.0 s (vẫn đánh & phòng thủ, không chạy/lướt); Tránh Vùng áp dụng Giữ chân 1.0 s + nhận +20% ST (vuln) trong 2 s shadow/grasping-hands
HZ03 S03 Nấm Bào Tử (Spore Caps) ICD 6/nấm — 3.0 3 nấm/tầng (cách nhau ≥ 60 px). Actor tiếp đất/ngã/dội đất trong 20 px hoặc nấm trúng AoE → mây bào tử r=32 trong 3 s 1% MaxHP/s (sát thương chuẩn), tự rời mây khi rảnh Độc 1 tầng mỗi 0.5 s trong mây nature/spore-burst + nature/poison-cloud
HZ04 S04 Nước Dâng (Rising Tide) 18 1.0 5.0 Nước phủ sàn (vẽ 0–6 px). Điện Giật áp lên 1 địch đứng trong nước lan sang mọi địch đứng trong nước Tốc chạy −25% (không bị lan Điện Giật) Tốc chạy −25%; lan Điện Giật water/wave-crash + water/ripples
HZ05 S05 Vòi Lửa Lò (Forge Vents) 9 0.9 1.2 2 vòi cố định x=−100 và +60, lệch pha 4.5 s; cột lửa box(24,80) 8% MaxHP (Tránh Vùng) 150% ATK anh hùng (S) + Bỏng 2; địch bị đẩy vào cột đang phun: thêm Bỏng 3 fire/flame-pillar
HZ06 S06 Vách Lăng Kính (Prism Walls) ICD 1/tường — — Tường là pha lê: mỗi lần dội tường bắn mảnh circle r=36 tại điểm va; đạn địch chạm tường bật ngược 1 lần (70% tốc); đạn bị anh hùng phản (reflect) bật thêm 1 lần, +30% ST Có thể trúng đạn bật ngược (roll phòng thủ bình thường) 80% ATK anh hùng (S) lên địch quanh điểm va (trừ mục tiêu bị dội) impacts/ricochet + ice/ice-shatter recolor arcane
HZ07 S07 Chuông Tang (Funeral Bell) 20 1.0 — Chuông ngân: mọi địch chết trong 6 s trước đó mà KHÔNG bị Tuyệt Sát sống lại thành Hồn Xương (tối đa 4/lần ngân); actor trong 48 px quanh x=0 khựng 0.3 s Khựng 0.3 s nếu trong 48 px (kiểm tra Poise 30) Hồn Xương: sprite EN01 recolor bone, HP 15% lính tầng, ATK 50%, chỉ đòn light, không rơi Than spawn/summon-rise
HZ08 S08 Gió Buốt Băng Trơn (Glacial Gale) 16 1.0 3.0 Sàn băng luôn bật: quãng đẩy lùi ×1.4, anh hùng trượt thêm 6 px sau Né lùi. Gió: đẩy mọi actor trên đất 30 px/s về tường cuối gió Tốc chạy ngược gió −20% Đứng trong gió ≥ 1.5 s → Lạnh 1 tầng weather/blizzard + weather/snow
HZ09 S09 Bóng Tối Nuốt (Devouring Dark) 15 0.8 4.0 Đuốc tắt: tối toàn phòng, chỉ sáng r=56 quanh anh hùng + nến; HUD hiện chip 'BÓNG TỐI: Gạt −15% · Né +15%' (INV-06) Gạt ×0.85 với đòn light; Né ×1.15 Wave kế spawn chỉ từ điểm đặc thù (vũng bóng) shadow/eclipse (overlay) + fire/torch gutter
HZ10 S10 Nhịp Tim Rỗng (Hollow Pulse) 12 0.8 0.4 Tim đập 2 nhịp + vòng co về x=0: hút mọi actor trên đất 24 px về tâm trong 0.4 s, rồi nổ circle r=32 tại tâm 5% MaxHP nếu trong vùng nổ (Tránh Vùng) 100% ATK anh hùng (S) + Mất Thăng Bằng 0.35 s shadow/implosion→explosions/implosion recolor gold

Luật chung bẫy:

  • Bật ở tầng thường x2, x3, x4, x6, x7, x8, x9 (hazard_floors); tắt ở x1 (tầng giới thiệu môi trường), x5, x0 (đấu trường Thủ Vệ/Boss do 04 kịch bản hóa) — DR19 và DM12 bật mọi tầng.
  • Sự kiện bẫy đầu tiên 6 s sau khi wave 1 bắt đầu; tạm dừng trong Tuyệt Sát, Tuyệt Kỹ, BossIntro, popup Gục, tạm dừng game.
  • Báo hiệu theo luật đòn area (01 §11.3: vùng dither đỏ nhấp nháy nhanh dần + âm "ù"); anh hùng tránh theo Tránh Vùng (01 §5.8). Bẫy không bao giờ hạ gục anh hùng (tối thiểu còn 1 HP — hazard_nonlethal).
  • Sát thương bẫy lên địch dùng ATK anh hùng (lớp S, không chí mạng), tính vào nguồn "Môi trường" ở biểu đồ Kết Quả; Thủ Vệ/Boss nhận ×0.5 và miễn giữ chân/hút/đẩy.
  • Địch không né bẫy (trừ Boss). HUD hiện chip bẫy (icon + vòng đếm ngược tới lần kích hoạt kế) — bẫy thay đổi hệ số phòng thủ (HZ09) phải hiện số trên chip (INV-06).
  • Vị trí thùng/nấm (HZ01, HZ03) roll bằng luồng spawn key (floor, 0) → khôi phục giống hệt.

2Nhịp 10 tầng

2.1 Bố cục

x Loại Wave thường Đặc biệt Sau clear Ngữ cảnh lượt chọn (06 §4.3) Bẫy Ghi chú
1 COMBAT 2 - - chuẩn — Mở Địa Tầng: thẻ tiêu đề 1.5 s; 2 wave khởi động; không bẫy
2 COMBAT 3 - - chuẩn ✔ Bẫy môi trường bắt đầu
3 COMBAT 3 - LANDING chuẩn ✔ → Chiếu Nghỉ (roll LD01–LD08)
4 COMBAT 3 - - chuẩn ✔
5 WARDEN 2 Thủ Vệ + 2 hộ vệ - mọi ô ≥ R, ô A ≥ E — Wave 3 = Thủ Vệ (vào khi 2 wave đầu sạch)
6 COMBAT 3 - - chuẩn ✔
7 COMBAT 3 - LANDING chuẩn ✔ → Chiếu Nghỉ (DR13: bỏ)
8 COMBAT 4 - - chuẩn ✔ Dày nhất trước Boss
9 COMBAT 3 - GATE chuẩn ✔ → Cổng Boss LD00 (Thương Nhân + hồi 30% + gợi ý)
10 BOSS 1 Boss (kịch bản 04) - ô A = L (ưu tiên EVO/ART), B/C ≥ E — Wave mở màn → BossIntro → pha Boss; Rương Boss

2.2 Phân bổ wave

  • n = ENEMY_COUNT(f) = min(40, 8 + ⌊0.32 f⌋) (constants). Tầng thường: n chia đều cho số wave của bảng §2.1, phần dư dồn vào các wave cuối (áp lực tăng dần). Ví dụ B9: 10 địch / 3 wave → 3/3/4.
  • Tầng Thủ Vệ (x5): round(n × 0.6) địch thường chia 2 wave; wave 3 = Thủ Vệ + 2 hộ vệ (loại theo Địa Tầng; 04 có thể ghi đè số hộ vệ). Wave 3 chỉ bắt đầu khi 2 wave đầu sạch hoàn toàn (lối vào riêng của Thủ Vệ, 04).
  • Tầng Boss (x0): wave mở màn ⌈n × 0.5⌉ địch → sạch → BossIntro 2.5 s (bỏ qua được từ lần 2) → pha Boss; trong pha Boss chỉ có lính do kịch bản Boss gọi (04). Boss có BOSS_ENRAGE_S (04).
  • Tinh Anh: mỗi địch roll ELITE_CHANCE(f) (luồng spawn), affix từ 04.

2.3 Tầng Thủ Vệ & Boss

  • Hạ Thủ Vệ/Boss: slow-mo toàn cục 0.25× 0.6 s thực + zoom 2× (01 §14.1), spawn/soul-rise, Than rơi thành vòi, Rương Boss (hình rương rơi, nội dung mở ở Kết Quả — §9.4). Lính còn sống khi Boss chết tan biến (không thưởng Than).
  • Lượt chọn sau Thủ Vệ/Boss dùng ngữ cảnh 06 §4.3 (cột "Ngữ cảnh lượt chọn"); thẻ thứ 4 với E10 / Phước Lành quảng cáo (06 §5).
  • Quảng cáo xen kẽ duy nhất của run: sau khi đã chọn thẻ ở tầng Boss, trong bước D10 (§5.1), không ở run 1 (INV-10).

2.4 Kịch bản tầng (FloorScript) & FTUE run 1

FloorScript là hook dữ liệu chạy trên tầng: ép kết quả phòng thủ, thêm hệ số ẩn, thêm nhãn. Kết quả bị ép vẫn tiêu đúng một lần roll luồng defense (giữ đồng bộ luồng RNG, INV-14); ép chỉ ghi đè outcome.

FTUE run 1 (cờ isFtueRun, chỉ run đầu tiên của tài khoản — 00 §7.1):

Tầng Kịch bản
B1 2 wave × 3 Hồn Rỗng (EN01), bẫy tắt. Đòn địch đầu tiên có báo hiệu đỏ (heavy hoặc thrust) nhắm Kaito → ép GẠT (kèm nhãn "Kaito tự chiến đấu — bạn chọn Hồi Âm"). Nếu Kaito đang trong ±3 tick hit-time của chính mình, Director dời lấy đà của địch 0.1 s để Gạt hợp lệ
B1 → B2 Lượt chọn cố định ftue_first_offer; chọn Combo → B2 mở màn bằng lộ trình đó trong ≤ 5 s (ưu tiên ra mắt 01 §6.5)
B2 Bộc Phá AUTO + gợi ý toggle (00 §7.1 bước 4)
B3 → Chiếu Nghỉ Ép LD01 Thương Nhân, tặng 120 Than khi bước lên bục
B4 Nút Đổi thẻ nhấp nháy (dùng lượt gốc 1/run)
B5 Đòn nặng đầu tiên của Thủ Vệ Răng Sỏi (WD01) → ép GẠT HOÀN HẢO + nhãn "GẠT HOÀN HẢO — Thế địch vỡ nhanh hơn"
B1–B9 Trợ lực ẩn +30% DmgBonus (bucket riêng, không hiện trên bảng chỉ số)
B7 → Chiếu Nghỉ Pool loại trừ LD04, LD05, LD08 (không sự kiện rủi ro)
B10 Gorrak — kỳ vọng thắng (autosim ≥ 15/20 seed)
B11–B14 HP & ATK địch ×0.85
B15 Kẻ Đào Mộ Hask HP ×4, ATK ×4; nhãn "Thủ Vệ tầng 15 mạnh hơn Kaito lúc này — chiến hết sức!" (autosim ≥ 12/20 seed gục ở B13–B15)
Kết Quả Tặng 1,000 Vàng → hướng dẫn Rèn Luyện (07)

Run 1 tắt Auto-Pick (06 K10) và quảng cáo xen kẽ; hồi sinh trả phí vẫn có (dạy hồi sinh).

Key Giá trị Ghi chú
ftue_run1_only 1 chỉ run đầu tiên của tài khoản
ftue_b1_waves 3|3 B1: 2 wave × 3 EN01
ftue_b1_enemy EN01 Hồn Rỗng
ftue_scripted_deflect_first_red 1 đòn heavy/thrust đầu tiên nhắm anh hùng → Gạt
ftue_first_offer E_KAI_01|DF01|ST01 Trăng Khuyết Rút Đao · Mắt Tinh · Sức Mạnh
ftue_debut_within_s 5 B2 mở màn bằng lộ trình mới
ftue_b2_overdrive_hint 1
ftue_first_landing LD01
ftue_first_landing_embers 120
ftue_second_landing_exclude LD04|LD05|LD08 không sự kiện rủi ro ở run 1
ftue_b4_reroll_highlight 1
ftue_b5_warden_first_heavy_perfect 1 WD01 đòn nặng đầu → Gạt Hoàn Hảo
ftue_hidden_dmg_bonus 0.3 ẩn, DmgBonus
ftue_hidden_dmg_until_floor 9
ftue_b11_14_enemy_mult 0.85 HP & ATK địch B11–B14
ftue_b15_warden_hp_mult 4.0 WD02 run 1
ftue_b15_warden_atk_mult 4.0
ftue_autopick_disabled 1 06 K10
ftue_interstitial_disabled 1 INV-10 run 1
ftue_results_gift_gold 1000 bước 10
ftue_sim_b10_win_min 15 /20 seed
ftue_sim_b13_15_down_min 12 /20 seed

3Độ khó theo tầng

Công thức (04 §1 dùng chung, hằng số ở constants.py):

grunt_hp(f)  = GRUNT_HP0 × HP_GROWTH^(f−1)          grunt_atk(f) = GRUNT_ATK0 × ATK_GROWTH^(f−1)
warden_hp(f) = WARDEN_HP_MULT × grunt_hp(f)          boss_hp(f)   = (BOSS_HP_BASE + BOSS_HP_PER_IDX·idx) × grunt_hp(f)
idx = số Địa Tầng (BS01 = 1 … BS10 = 10; Vực: 10)    mix(f) = MIX_FACTOR(f) — HP trung bình theo cơ cấu loại (04)
tổng HP tầng ≈ n_thường × grunt_hp × mix × (1 + ELITE_CHANCE × (ELITE_HP_MULT − 1)) + Thủ Vệ/Boss

DEF địch không tăng theo tầng (01 §4.1). Token tấn công TOKENS_MELEE/RANGED (01 §11.1). Modifier Bậc Kinh Hoàng, Thử Thách Ngày, FTUE nhân sau công thức (qua RunModifiers). Bảng mẫu [DERIVED] (FloorScaling.csv đủ B1–B200, kèm embers_expected, hazard_on):

Tầng Địa Tầng Loại Wave (số địch) HP lính ATK lính/đòn Mix HP Tinh Anh Token cận/xa Thủ Vệ / Boss HP Tổng HP tầng Vàng tầng
B1 S01 COMBAT 4/4 232 7 1.025 0% 2/1 — 1,903 9
B2 S01 COMBAT 2/3/3 248 8 1.049 0% 2/1 — 2,084 10
B3 S01 COMBAT 2/3/3 266 8 1.072 0% 2/1 — 2,279 12
B5 S01 WARDEN 2/3 304 10 1.116 3.5% 2/1 Thủ Vệ 1,216 3,033 23
B8 S01 COMBAT 2/2/3/3 373 12 1.177 3.8% 2/1 — 4,719 20
B9 S01 COMBAT 3/3/4 399 13 1.196 3.9% 2/1 — 5,141 22
B10 S01 BOSS 6 427 13 1.215 4% 2/1 Boss 4,265 7,623 71
B15 S02 WARDEN 3/4 598 19 1.302 4.5% 2/1 Thủ Vệ 2,393 8,334 50
B20 S02 BOSS 7 839 26 1.38 5% 2/1 Boss 9,229 18,145 133
B25 S03 WARDEN 5/5 1,177 37 1.452 5.5% 2/1 Thủ Vệ 4,707 23,677 86
B30 S03 BOSS 9 1,651 52 1.52 6% 3/1 Boss 19,806 45,095 220
B40 S04 BOSS 10 3,247 102 1.646 7% 3/2 Boss 42,208 103,122 353
B50 S05 BOSS 12 6,387 201 1.762 8% 3/2 Boss 89,417 246,114 567
B60 S06 BOSS 14 12,564 395 1.873 9% 4/2 Boss 188,461 577,288 927
B70 S07 BOSS 15 24,715 778 1.98 10% 4/3 Boss 395,447 1.28M 1,548
B80 S08 BOSS 17 48,619 1,530 2.084 11% 4/3 Boss 826,524 2.93M 2,635
B90 S09 BOSS 18 95,641 3,009 2.185 12% 4/3 Boss 1.72M 6.39M 4,560
B95 S10 WARDEN 11/12 134,141 4,221 2.235 12% 4/3 Thủ Vệ 536,566 9.09M 3,013
B100 S10 BOSS 20 188,140 5,920 2.285 12% 4/3 Boss 3.57M 14.23M 7,982

Mục tiêu nhịp: mỗi tầng thường 30–75 s ở x1 (FLOOR_TIME_TARGET) với build đúng đường cong 08; autosim báo tầng nào lệch > 20%.

4WaveDirector

4.1 Luật wave

Tham số Giá trị
Số wave & kích thước §2.1–§2.2
Báo trước wave 0.6 s trước khi spawn: điểm spawn đã chọn rung/rơi bụi/kẽo kẹt (cửa rung, bụi rơi từ lỗ trần, khe tường nứt sáng)
Wave kế bắt đầu Địch còn sống của wave hiện tại ≤ ⌊30% kích thước wave⌋ hoặc 12 s game kể từ đầu wave — và ≥ 3 s sau spawn cuối của wave hiện tại; hoãn khi đang Tuyệt Sát/Tuyệt Kỹ/BossIntro (bắt đầu ngay sau)
Ngoại lệ Wave Thủ Vệ và pha Boss chỉ bắt đầu khi mọi địch trước đó chết
Clear tầng Mọi địch đã spawn chết + hàng đợi rỗng + không còn spawn chờ + anh hùng không ở Downed; địch do địch triệu hồi tính vào

4.2 Nhịp spawn & hàng đợi

Tham số Giá trị
Nhịp toàn cục Tối đa 4 địch mỗi 0.6 s
Mỗi điểm spawn 1 địch / 0.8 s
Giới hạn sống đồng thời MAX_ALIVE theo tier (10/8/6, 01 §11.4); vượt → hàng đợi FIFO, spawn khi có chỗ
Vùng cấm Không spawn trong 56 px quanh anh hùng; không dùng cửa cầu thang trái trong FloorIntro
Thứ tự trong wave Wave 1 của tầng: 2 địch đầu luôn là cận chiến thường (dễ đọc); Tinh Anh spawn cuối wave với lóe affix 0.5 s + nhãn tên
Sau clip vào Địch không thể bị nhắm (untargetable) trong clip vào; không được tấn công thêm 0.3 s

4.3 Điểm spawn & lối vào

Điểm spawn (01 §2): cửa trái/phải x = ±176 · khe tường x = −90, +70 (trèo ra) · lỗ trần x = −40, +110 (rơi từ y = 200) · điểm đặc thù Địa Tầng (cột "x đặc thù", Strata.csv).

Loại điểm Trọng số Clip vào (rig địch, 04) Thời lượng VFX
Cửa 35% enter_door — đẩy bật cửa, bước vào 0.5 s Mảnh vỡ theo vật liệu Địa Tầng
Khe tường 25% enter_crack — vách nứt, trèo ra, đáp xuống 0.6 s Bụi dust
Lỗ trần 25% enter_drop — rơi, tiếp đất 0.4 s impacts/heavy-landing nhỏ
Đặc thù 15% enter_stratum — theo cột "Lối vào" (bào tử nổ, trồi từ nước, từ dung nham, từ pha lê, đống xương tự ráp, tan băng, bước ra từ bóng, cổng hư không) 0.6 s fx của Địa Tầng

Ràng buộc theo thẻ địch (04): thân to (size: big, bán kính ≥ 12) chỉ qua cửa; địch bay (move: fly) chỉ qua lỗ trần/đặc thù; Thủ Vệ/Boss dùng lối vào kịch bản riêng. Điểm vừa dùng trong 0.8 s bị loại; nếu mọi điểm hợp lệ đều bận → chờ.

4.4 Chọn loại địch

  1. Ứng viên = dòng StrataEnemyWeights (04) của Địa Tầng hiển thị (Vực: Địa Tầng lặp — §14); loại có first_floor > f bị loại.
  2. Bốc theo trọng số trên luồng spawn; Tinh Anh roll riêng từng địch.
  3. Bẫy HZ09 đang tối → wave mới chỉ spawn ở điểm đặc thù.

4.5 Giả mã

OnFloorStart(f):
  sizes = WaveSizes(f) (× RunModifiers.enemyCount, trần 48)
  for w in waves:                      # mỗi wave
    rng = RunRng(seed, "spawn", f, w)  # tái lập theo wave
    roster = [PickType(rng) + RollElite(rng) for i in sizes[w]]
    Checkpoint(w)                      # §5.5, TRƯỚC khi spawn
    Cue(points, 0.6s); SpawnQueued(roster)
    wait until NextWaveCondition(w)
  wait until FloorClear → FloorClear state

4.6 Tầng Chiếu Nghỉ chiến đấu

Rương Mimic (LD04) và Cửa Thử Thách (LD05) dùng WaveDirector một wave đặc biệt trên bục Chiếu Nghỉ (phòng hẹp: x ∈ [−120, +120], tường cứng), bẫy tắt, luồng spawn key (floor, 50).

4.7 Luồng RNG

Mọi luồng là RNG đếm (counter-based) khởi tạo bằng hash64(runSeed, stream, k1, k2); snapshot lưu {key:[k1,k2], pos}.

Luồng Khóa Dùng cho
offer (floor, sub): sub = số lần Đổi thẻ; lượt chọn thêm sub = 1000 + k 06 §4
spawn (floor, wave); (floor, 0) cho bố trí bẫy/biến thể phòng; (floor, 50) Chiếu Nghỉ §4
combat (floor, wave) Đạo Diễn Combo, chí mạng, ST ±5%
defense (floor, wave) Roll phòng thủ (01 §5)
loot (floor, 0) Than rơi, kết quả nhỏ trong trận
landing (floor, 0) Roll sự kiện, kết quả ẩn Rương/Giếng, ứng viên Đồng Đội, nâng cấp ngẫu nhiên
vendor (floor, lần làm mới) Kệ Thương Nhân / Cổng Boss

Reseed theo wave làm cho chơi lại một wave từ checkpoint cho ra cùng trận khi đầu vào giống nhau (chỉ đầu vào thủ công: nút Bộc Phá THỦ CÔNG, tốc độ không đổi kết quả).

5Đi xuống cầu thang (Descent)

5.1 Trình tự (x1)

Bước Tên Thời lượng (x1) Nội dung
D1 Kết tầng 0.6 s thực Slow-mo 0.25× hạ địch cuối (01 §14.1) + chữ 'B23 — SẠCH'; mọi Than trên sàn bay về anh hùng
D2 Thắng 0.5 s Clip victory (tra vũ khí); đồng đội LD06 cúi chào
D3 Tới miệng hầm ≤ 2.5 s Chạy ×1.3 tới x=+150; quá 2.5 s → mờ-dịch chuyển (fade 0.15 s)
D4 Vào cầu thang 0.4 s Nắp hầm mở (vật liệu theo Địa Tầng); camera bắt đầu trượt xuống; phòng cũ trôi lên & tối 35%
D5 (Chiếu Nghỉ / Cổng) theo người chơi x3/x7/x9: cầu thang dừng ở bục rộng; sự kiện §6; xong → tiếp tục đi xuống
D6 Sinh lượt chọn 0 s (đồng bộ) Sinh offer (luồng offer) → ghi snapshot #1 (ECHO_PICK) → mới hiển thị (INV-11)
D7 Hiện thẻ ≥ 1.2 s đi xuống + lật 0.3 s Thẻ lật lần lượt (cách 0.08 s); cầu thang tiếp tục lặp chậm 48 px/s tới khi chọn
D8 Chọn người chơi / Auto-Pick 3 s (1.5 s ở ≥ x2) Chọn · Đổi thẻ · Loại bỏ · Bỏ qua (06 §5)
D9 Áp dụng 0.3 s Thẻ bay vào đèn hồn; hồi DESCENT_HEAL (+D03); lãi Than; tầng +1 → ghi snapshot #2 (FLOOR_INTRO)
D10 Tới nơi 0.8 s Camera chạm trần phòng mới; số tầng lật 'B23→B24'; đổi Địa Tầng: thẻ tiêu đề 1.5 s + crossfade nhạc 1.0 s
D11 FloorIntro 1.0 s Anh hùng rơi xuống ở x=−150 (clip intro); wave 1 bắt đầu spawn ở t=0.5 s

Thứ tự trạng thái: FloorClear (D1–D4) → Landing (D5, nếu x3/x7/x9) → EchoPick (D6–D8) → Descent (D9–D10) → FloorIntro (D11). Hồi máu khi xuống thang áp ở D9 (00 §5.2):

heal = (DESCENT_HEAL + 0.02 × D03lv + echo descent_heal) × RunModifiers.descentHealMult × (1 + HealRecv)

Không tính vào trần hồi từ trigger (06 §8.6). Bỏ qua lượt chọn cộng thêm 5% (06 §5). Lãi Đèn (§7) cộng cùng lúc. Khiên về 0, Khí Thủ đầy, Cổng cơ chế về giá trị khởi đầu, Phong Độ giữ 50% (01 §7), Bộc Phá giữ.

5.2 Camera & cầu thang xoắn

  • Trục cầu thang là cảnh riêng StairShaft (tile 270×480 lặp dọc): cột đá trung tâm, các nhịp thang zíc-zắc trái→phải quanh cột, đuốc tường theo ramp Địa Tầng, nền tối dần. Anh hùng phát clip descent (loco, mỗi bậc hạ 4 px, 12 fps), camera trượt dọc 48 px/s (x1) giữ anh hùng ở 30% chiều cao khung.
  • Phòng vừa clear trượt lên khỏi khung và tối 35% → 70% (dither 2×2, không blend alpha). Khi đổi Địa Tầng (x0 → x1), giữa trục đổi tile + bảng màu, hiện thẻ tiêu đề "S03 — HANG NẤM PHÁT QUANG" 1.5 s.
  • Chiếu Nghỉ: trục dừng ở bục rộng; đạo cụ sự kiện đứng bên phải anh hùng (xe hàng + đèn của Thương Nhân, điện thờ, đe, rương, cửa đá, bóng ma đồng đội, suối, giếng). Cổng Boss: cánh cổng khổng lồ khắc biểu tượng Boss phía dưới bục.
  • Pixel perfect: camera chỉ dịch số nguyên px; không zoom lẻ (01 §2).

5.3 Thứ tự lưu (INV-11)

  1. Vào EchoPick: sinh lượt chọn (luồng offer) → ghi snapshot state = ECHO_PICK, offer đầy đủ → sau đó mới lật thẻ.
  2. Đổi thẻ/Loại bỏ: tăng sub/bộ đếm → sinh lại → ghi snapshot → hiển thị.
  3. Sau khi chọn (D9): áp thẻ, hồi máu, lãi, floor + 1, offer = null, state = FLOOR_INTRO → ghi snapshot lần 2.
  4. Chiếu Nghỉ: ghi khi vào (sự kiện + kết quả ẩn) và sau mỗi giao dịch (mua, nâng cấp, cược) — trước khi phát hoạt ảnh kết quả.

5.4 Giao diện chọn Hồi Âm trong lúc đi xuống

  • 55% trên: trục cầu thang + anh hùng đi xuống + thanh HP đang hồi; 45% dưới (INV-07): 3 thẻ (4 khi E10/Phước Lành), dòng "B23 → B24", số Than.
  • Hàng nút dưới thẻ: Đổi thẻ (n) · Loại bỏ (n) (nhấn giữ thẻ) · Bỏ qua (+40 Than · +5% HP) · Xem Build ▣×N (tạm dừng). Thẻ theo 06 §3, §9.
  • Auto-Pick: vòng đếm ngược 3 s (1.5 s ở ≥ x2) trên thẻ được chọn; chạm bất kỳ → dừng đếm (06 §6).
  • Trục cầu thang lặp chậm cho tới khi chọn; tạm dừng game → dừng lặp.
  • Lượt chọn thêm từ E03 Lv2 (tầng 1) hiện ngay sau lượt chuẩn; lượt thêm từ Rương Mimic/Cửa Thử Thách hiện tại Chiếu Nghỉ khi thắng.

5.5 Checkpoint wave

Đầu mỗi wave (trước spawn) và đầu pha Boss, ghi waveCheckpoint (luồng nền, ≤ 4 KB): {floor, wave, phase, hp, shield, guard, overdrive, gauge, style, embers, spawned, killed, carry[], hazardT, allyHp, revive, rngPos, stats, elapsedGameSec}. carry[] = địch của wave trước còn sống {type, affix, hpFrac} — khi khôi phục chúng spawn lại ở cửa gần nhất với HP đó (không giữ trạng thái). Kill app giữa tầng → khôi phục ở đầu wave đang đánh, không phải đầu tầng.

5.6 Tốc độ game trong chuỗi đi xuống

D1 tính thời gian thực. D2–D4, D9–D11 và tốc trục cầu thang nhân theo tốc độ game (÷ tốc độ). Hoạt ảnh UI (lật thẻ), đếm ngược Auto-Pick, popup hồi sinh dùng thời gian unscaled. Tốc độ không đổi phần thưởng (INV-13).

6Chiếu Nghỉ & Cổng Boss

6.1 Luật roll

  • Sau clear x3 và x7 (DR13: chỉ x3): roll 1 sự kiện trong LD01–LD08 theo trọng số trên luồng landing key (floor, 0), sau khi lọc: điều kiện requires sai → loại; trùng sự kiện Chiếu Nghỉ ngay trước trong run (lastLandingEvent) → loại; trọng số còn lại chuẩn hóa. Sau x9 luôn là LD00 Cổng Boss.
  • FTUE run 1: Chiếu Nghỉ đầu ép LD01; lần hai loại LD04/LD05/LD08.
  • Kết quả ngẫu nhiên của sự kiện (rương thật hay Mimic, kết quả Giếng, ứng viên Đồng Đội) roll ngay khi vào và lưu ẩn trong snapshot (hiddenRoll) — thoát/vào lại không đổi được.
  • Mọi sự kiện có nút Rời đi; nút xác nhận nằm ở 45% dưới.
  • Bất kỳ trận nào ở Chiếu Nghỉ (Mimic, Cửa Thử Thách): gục → luồng Gục §8 bình thường; hồi sinh → tiếp tục trận đó.
Id Sự kiện Trọng số Điều kiện Luật Fallback
LD00 Cổng Boss (Boss Gate) cố định cố định sau x9 Hồi 30% HP miễn phí khi tới (GATE_HEAL; DR15: 20%). Thương Nhân luật LD01 + bảo đảm ≥ 1 thẻ mang tag trong counter_tags của Boss sắp tới (khi pool còn), nhãn 'Khắc chế '; làm mới giữ bảo đảm. Bảng Boss: tên + 3 dòng gợi ý (04 BossIntel: điểm mạnh · điểm yếu · 'Nên chọn: ') + số lần đã hạ Không còn thẻ khắc chế hợp lệ → kệ thường, ẩn nhãn
LD01 Thương Nhân Than Hồng (Ember Merchant) 22 - Kệ 3 Hồi Âm sinh bằng 06 §4 (luồng vendor, cấu trúc ô A/B/C, không tính pity, không PACT). Mua ≤ 3 (nhận ngay). Hồi 30% HP. Làm mới kệ 1 lần. Giá bảng LandingPrices Pool cạn → ô trống bán ECHO00 giá C
LD02 Điện Thờ Thì Thầm (Whispering Shrine) 14 ≥ 1 Hồi Âm có cấp chưa tối đa (không tính STAT) Hiến 20% HP hiện tại (khóa khi HP < 30% Max) HOẶC Hiến Than → +1 cấp một Hồi Âm ngẫu nhiên có thể nâng (luồng landing, COMBO ×1.5). Hoặc rời đi Không đủ điều kiện → loại khỏi roll
LD03 Đe Hồi Âm (Echo Anvil) 12 ≥ 1 Hồi Âm có cấp chưa tối đa (không tính STAT) Chọn 1 Hồi Âm đang có (chưa tối đa) → +1 cấp miễn phí. Danh sách: COMBO trước, rồi theo độ hiếm giảm dần Không đủ điều kiện → loại khỏi roll
LD04 Rương Mimic (Mimic Chest) 16 - Kết quả roll ẩn ngay khi vào (luồng landing, lưu snapshot). Mở: 70% Than 100–250 (bước 10) × SF; 30% Mimic: 1 Tinh Anh 1 affix (loại có cờ mimic_host của Địa Tầng, HP ×1.5 thêm) + 2 lính → thắng: +1 lượt chọn 1-trong-3 ≥ R + Than thưởng. Hoặc rời đi -
LD05 Cửa Thử Thách (Trial Door) 8 - Tùy chọn. 1 wave 3 Tinh Anh (2 affix) của Địa Tầng, tắt bẫy. Thắng: +1 lượt chọn 1-trong-3 ≥ E; thắng không bị Trúng đòn nào: ô A ≥ L -
LD06 Hồn Đồng Đội (Comrade's Soul) 10 sở hữu ≥ 1 anh hùng khác anh hùng đang chơi Chọn 1 trong ≤ 2 anh hùng đã sở hữu (luồng landing): hồn người đó chiến đấu cùng ở tầng kế, 50% HP/ATK, chỉ lộ trình gốc, không Hồi Âm, rời đi khi xuống cầu thang (§6.4). Từ chối: Than × SF Không sở hữu anh hùng khác → loại khỏi roll; đồng đội mất dữ liệu khi resume → bù Than từ chối
LD07 Suối Hồi Sinh (Revival Spring) 10 - Chọn 1: Hồi 40% HP · +5% Max HP tới hết run (hồi luôn phần tăng) · Giọt Hồi Sinh: +1 hồi sinh miễn phí (tính vào FREE_REVIVE_CAP; xám khi đã chạm trần) -
LD08 Giếng Con Bạc (Gambler's Well) 8 Than ≥ cược tối thiểu × SF Kết quả roll ẩn khi vào. Cược 25% / 50% / 100% Than đang có: 40% nhận ×2 · 10% ×3 · 10% mất cược nhưng +1 cấp một Hồi Âm ngẫu nhiên · 40% mất cược. Hoặc rời đi Không có Hồi Âm nâng được → nhánh 10% đổi thành ×2

6.2 Giá

price = round_half_up( base × SF(Địa Tầng) × (1 − discount) × (1 + RunModifiers.landingPricePct) )
SF(s) = STRATUM_FACTOR(s) = 1 + 0.7 (s − 1)       (Vực: SF(10) = 7.3)
discount = min(40%, 4% × D05lv + Hồi Âm economy(shop_discount))

Làm tròn một lần sau mọi hệ số; giá hiển thị là giá cuối. Các khoản thu (Rương, Mimic, từ chối Đồng Đội) nhân SF nhưng không nhân giảm giá/Bậc.

Mục Gốc S01 S02 S03 S04 S05 S06 S07 S08 S09 S10
Hồi Âm Thường (C) 60 60 102 144 186 228 270 312 354 396 438
Hồi Âm Hiếm (R) 100 100 170 240 310 380 450 520 590 660 730
Hồi Âm Sử Thi (E) 180 180 306 432 558 684 810 936 1,062 1,188 1,314
Hồi Âm Huyền Thoại (L/ART/EVO) 300 300 510 720 930 1,140 1,350 1,560 1,770 1,980 2,190
Hồi 30% HP (Thương Nhân) 80 80 136 192 248 304 360 416 472 528 584
Làm mới kệ (1 lần) 40 40 68 96 124 152 180 208 236 264 292
Hiến Than (Điện Thờ) 150 150 255 360 465 570 675 780 885 990 1,095
Giọt Hồi Sinh (Suối) 150 150 255 360 465 570 675 780 885 990 1,095
Rương: Than tối thiểu 100 100 170 240 310 380 450 520 590 660 730
Rương: Than tối đa 250 250 425 600 775 950 1,125 1,300 1,475 1,650 1,825
Hạ Mimic: Than thưởng 50 50 85 120 155 190 225 260 295 330 365
Từ chối Đồng Đội: Than 40 40 68 96 124 152 180 208 236 264 292
Giếng: cược tối thiểu 20 20 34 48 62 76 90 104 118 132 146

6.3 Luật chi tiết

  • LD01 Thương Nhân: kệ 3 ô sinh như lượt chọn (A riêng / B chung / C linh hoạt, 06 §4) trên luồng vendor key (floor, lần làm mới); không tăng/giảm pity; không có PACT; EVO có thể lên kệ nếu đang chờ (giá L). Mua thẻ = nhận ngay (thẻ thêm hợp lệ theo 06 §5.5); thẻ đã mua để ô trống. Hồi 30% HP mua tối đa 1 lần/kệ.
  • LD02 Điện Thờ: chọn cách hiến → roll Hồi Âm được nâng (luồng landing; trọng số COMBO 1.5, khác 1.0; chỉ thẻ có cấp và chưa tối đa) → hoạt ảnh lời thì thầm tên thẻ → "Lv1 → Lv2".
  • LD03 Đe Hồi Âm: danh sách cuộn tối đa 8 dòng/trang; xác nhận 2 bước (chọn → "Rèn").
  • LD04 Rương Mimic: rương thật → Than bay vào đèn. Mimic → rương há miệng (clip 0.6 s), bục thành sàn đấu; thắng → +Than thưởng + lượt chọn thêm ≥ R (luồng offer sub 1000 + k).
  • LD05 Cửa Thử Thách: hiện trước "3 Tinh Anh · 2 affix" + tên affix; thắng → lượt chọn thêm ≥ E; thắng không bị Trúng đòn nào (Gạt/Chặn/Né không tính là Trúng) → ô A ≥ L, nhãn "HOÀN MỸ".
  • LD07 Suối: +5% Max HP là BasePercent tới hết run; Giọt Hồi Sinh cộng springCharges (§8).
  • LD08 Giếng: kết quả roll ẩn khi vào; người chơi chỉ chọn mức cược (tối thiểu 20 × SF) → hoạt ảnh xu rơi 1.2 s → kết quả.

6.4 LD06 — Hồn Đồng Đội

Hạng mục Luật
Điều kiện Sở hữu ≥ 1 anh hùng khác anh hùng đang chơi (Anh Hùng Của Ngày dạng dùng thử không tính là sở hữu)
Lựa chọn Tối đa 2 ứng viên ngẫu nhiên (luồng landing) trong anh hùng đã sở hữu; thẻ hiện chân dung, cấp, ★, câu phong cách, "50% sức mạnh" · hoặc Từ chối (+40 × SF Than)
Thời gian Chỉ tầng kế tiếp (x4 hoặc x8). Vào tầng cùng anh hùng (rơi cách 24 px), rời khi xuống thang: cúi chào ở miệng hầm, tan thành hồn (spawn/soul-rise) bay vào đèn
Chỉ số Tính như anh hùng chính của tài khoản (cấp, ★, Thông Thạo của chính nó, Rèn Luyện, Cây Đèn Hồn, Di Vật, thưởng sở hữu) → Max HP ×0.5, ATK ×0.5; tỉ lệ Gạt/Chặn/Né/Crit giữ nguyên (phong cách là thứ người chơi đang được xem)
Bộ đòn Chỉ lộ trình src = base trong Cây Combo của nó, bể phản đòn gốc, Kỹ Năng A/B (hồi ×1.5), Tuyệt Sát (không zoom/letterbox — chỉ hit-stop cục bộ). Không Tuyệt Kỹ, không Bộc Phá, không Hồi Âm, không Khế Ước/hiệu ứng thẻ của anh hùng chính
Cổng cơ chế Chạy theo luật riêng của nó
AI HeroBrain đầy đủ; điểm chọn mục tiêu −40 với mục tiêu hiện tại của anh hùng chính (tản ra hai phía)
Địch Chọn mục tiêu: 65% anh hùng chính / 35% đồng đội (theo khoảng cách); token chung; luật giãn hit-frame ≥ 0.25 s áp riêng cho từng người phòng thủ
Hệ thống của anh hùng chính Hit của đồng đội không cộng Combo, Phong Độ, Bộc Phá, Cổng của anh hùng chính; vẫn rơi Than khi hạ địch
Gục HP = 0 → tan thành hồn, hết tác dụng tầng đó; không hồi sinh; không phạt
Hiển thị Viền 1 px ramp ice + biểu tượng đèn 5×5 trên đầu; thanh HP mini dưới HP anh hùng chính; vẽ sau anh hùng chính
Thưởng phụ Anh hùng đồng đội +3 XP Thông Thạo (khuyến khích nuôi roster)
Snapshot ally{heroId, level, star, mastery, hpFrac, floor}; HP đồng đội vào waveCheckpoint.allyHp
Fallback Không có anh hùng khác → LD06 bị loại khỏi roll. Đồng đội không còn hợp lệ khi resume (dữ liệu mất) → bỏ đồng đội, +40 × SF Than

6.5 LD00 — Cổng Boss

  • Khi tới bục: hồi GATE_HEAL 30% Max HP miễn phí (DR15: 20%), hoạt ảnh lửa đèn.
  • Thương Nhân luật LD01, thêm bảo đảm khắc chế: sau khi sinh kệ, nếu không ô nào có tag thuộc counter_tags của Boss sắp tới (04) và pool còn thẻ hợp lệ mang tag đó → thay ô B (hoặc C nếu B là riêng anh hùng) bằng thẻ khắc chế cùng độ hiếm đã roll (hạ bậc nếu thiếu); ô đó gắn nhãn "Khắc chế ". Làm mới kệ giữ bảo đảm. Resume giữ nguyên kệ + nhãn.
  • Bảng tin Boss: tên + chân dung pixel + 3 dòng từ 04 BossIntel (điểm mạnh · điểm yếu · "Nên chọn: <nhóm/tag>"), số lần đã hạ, thời gian hạ nhanh nhất. Không dùng động từ điều khiển (người chơi không điều khiển).

7Than Hồng (tiền trong run)

7.1 Nguồn

Nguồn Giá trị Hệ số áp
Lính (theo loại) cột ember_drop 04 (gốc 2) — không nhân SF × (1 + EmberGain) × (1 + STYLE_EMBER_BONUS[hạng])
Tinh Anh × 5 của loại như trên
Thủ Vệ 60 × SF (60 · 102 · 144 · 186 · 228 · 270 · 312 · 354 · 396 · 438) như trên
Boss 150 × SF (150 · 255 · 360 · 465 · 570 · 675 · 780 · 885 · 990 · 1,095) như trên
Lò than miệng hầm (mỗi tầng clear) 5 × SF (5 · 8.5 · 12 · 15.5 · 19 · 22.5 · 26 · 29.5 · 33 · 36.5), làm tròn nửa lên × (1 + EmberGain)
Bỏ qua lượt chọn +40 Than + hồi 5% HP phẳng
Lãi Đèn (mỗi lần xuống thang) ⌊Than × 5%⌋, trần 10 × SF + Hồi Âm ECON interest
Cây Đèn Hồn D04 +30/cấp khi bắt đầu run (tối đa 150) —
Xuống Nhanh min(600, 30 × (S−1)) —
LD04 Rương / Mimic 100–250 × SF / 50 × SF —
LD06 từ chối 40 × SF —
LD08 Giếng ×2 / ×3 tiền cược —
Hồi Âm ECON, ECHO00 06 economy(embers|ember_gain) —
Bù thẻ bị gỡ (06 K5) 50/thẻ —
FTUE run 1 +120 ở Chiếu Nghỉ đầu —
  • Than rơi thành đồng xu pixel (spawn/coin-drop recolor ember), tự hút trong 48 px; khi clear tầng mọi Than bay về đèn. Làm tròn nửa lên một lần mỗi lần rơi sau mọi hệ số.
  • Lãi Đèn: ở D9, +min(10 × SF, ⌊Than × 5%⌋) — khuyến khích giữ Than cho Cổng Boss. Hồi Âm ECON cộng tỉ lệ qua economy(interest, +x%) (đề nghị 06 thêm kind này).
  • Khi run kết thúc Than mất (INV-03), không quy đổi.

7.2 Chi

Thương Nhân/Cổng (thẻ, hồi 30%, làm mới), Điện Thờ (Hiến Than), Suối (Giọt Hồi Sinh), Giếng (cược). Không có chi Than nào khác; KC không mua được Than; không bán Than (INV-08).

7.3 Ngân sách kỳ vọng [DERIVED]

Người chơi không tiêu Than, trung bình hạng Phong Độ B–A (+10% Than), không bỏ qua thẻ, không D04, Than lính trung bình 2/địch:

Địa Tầng SF Mang vào (Boss trước) Tới LD x3 Tới LD x7 Tới Cổng x9 Giá R Giá E Giá hồi 30% Số thẻ E mua được ở Cổng (nếu không tiêu)
S01 1 0 71 261 342 100 180 80 1.9
S02 1.7 150 283 600 722 170 306 136 2.4
S03 2.4 255 441 880 1,042 240 432 192 2.4
S04 3.1 360 598 1,154 1,359 310 558 248 2.4
S05 3.8 465 760 1,444 1,691 380 684 304 2.5
S06 4.5 570 920 1,729 2,018 450 810 360 2.5
S07 5.2 675 1,085 2,022 2,359 520 936 416 2.5
S08 5.9 780 1,251 2,316 2,698 590 1,062 472 2.5
S09 6.6 885 1,417 2,611 3,042 660 1,188 528 2.6
S10 7.3 990 1,586 2,911 3,384 730 1,314 584 2.6

Tỉ lệ ≈ 2 thẻ Sử Thi mỗi Địa Tầng ổn định từ S01 tới S10 (validator yêu cầu ≥ 1 ở mọi Địa Tầng). Lựa chọn thực sự: mua ở x3/x7 hay giữ Than lấy lãi + thẻ khắc chế ở Cổng.

8Gục & hồi sinh

Khi HP về 0, ReviveService áp theo thứ tự:

Thứ tự Nguồn Điều kiện Kết quả Popup
0 Cây Đèn Hồn D09 Bất Diệt 1 lần/run, đòn chí tử Còn 1 HP + bất tử 2 s (không vào Downed) Không
1 Hồi Âm hồi sinh (SUST, theo id tăng dần) ≤ FREE_REVIVE_CAP chung HP theo thẻ Không
2 Giọt Hồi Sinh LD07 ≤ trần chung 50% HP Không
3 Cây Đèn Hồn D07 Hơi Thở Thứ Hai 1/run, ≤ trần chung 20/30/40% HP theo cấp Không
4 Quảng cáo (1/run) Có quảng cáo 50% HP Có, 8 s
5 KC 100 hoặc 1 Vé Hồi Sinh (16) (1/run) Đủ KC/vé; vé dùng trước 50% HP Cùng popup
  • Trần: hồi sinh miễn phí (Hồi Âm + Suối + D07) tối đa FREE_REVIVE_CAP = 3/run; trả phí tối đa 2/run (1 quảng cáo + 1 KC/Vé). D09 không phải hồi sinh (không tính trần).
  • Popup Hồi Sinh (game tạm dừng, đếm ngược 8 s unscaled): chân dung anh hùng quỳ, đèn hồn chập chờn; nút Xem quảng cáo · 100 KC (hoặc 1 Vé Hồi Sinh nếu có — vé dùng trước) · Kết thúc. Hết giờ = Kết thúc. Không đủ KC → nút xám "Không đủ KC" (không mở cửa hàng — INV-08). Không còn lựa chọn trả phí nào (đã dùng hết/không có quảng cáo và không đủ KC/vé) → bỏ qua popup, vào RunEnd sau 1.5 s clip gục.
  • Hiệu ứng hồi sinh (01 §16): bật dậy với vòng lửa đè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 về khởi đầu, Khí Thủ đầy; trận tiếp tục tại chỗ.
  • Thử Thách Ngày: không hồi sinh bằng KC/Vé; D07, D09 tắt; hồi sinh Hồi Âm + 1 quảng cáo vẫn được.
  • Auto-Rerun: popup vẫn hiện 8 s; không ai chạm → Kết thúc. Không tự dùng Vé.
  • Snapshot ghi state = DOWNED trước khi hiện popup (§16.4).

9Kết quả run

9.1 Công thức

Thưởng Công thức
Vàng Σ Gold(f) các tầng đã clear trong run này × (1 + min(200%, GoldGain Hồi Âm) + GoldGain meta) × Dread × QC
Gold(f) GOLD_FLOOR(f) (constants) với f ≤ 100; Vực: round((8·1.06^99 + 300) × (1 + 0.01 (f − 100)) × [×1.5 x5, ×3 x0]) — tuyến tính
Tro Hồn (depth(fmax) − depth(S − 1) + 5·Boss hạ + 2·Thủ Vệ hạ) × (1 + SoulAshGain) × Dread × QC; depth(f) = ⌊f/2⌋ (f ≤ 100), 50 + (f − 100) ở Vực (tương đương SOUL_ASH_RUN khi S = 1)
EXP tài khoản Σ (10 + f) + 50/Boss + 20/Thủ Vệ (không nhân Dread/QC)
XP Thông Thạo (anh hùng đang chơi) tầng clear + 5/Thủ Vệ + 10/Boss (03 §5.3); ×1.5 nếu là Anh Hùng Của Ngày (§15)
Rương Boss 1 mỗi Boss hạ trong run (§9.4)
Mốc độ sâu Lần đầu clear (§9.3)
Dread 1 + 0.15 × Bậc (Vàng, Tro Hồn)
QC ×2 Vàng + Tro Hồn ×2, 1 lần/run, cần ≥ 5 tầng clear trong run; không có ở Thử Thách Ngày
Heo Đất +2 KC/tầng clear (09 §2)

Tầng bị Xuống Nhanh bỏ qua không cho Vàng/Tro Hồn/EXP/XP/rương/mốc. Hạ Boss tính khi Boss chết trước anh hùng (cùng tick: Boss tính trước — R4).

9.2 Bảng thưởng mẫu [DERIVED] (run từ B1, Bậc 0, chưa nhân hệ số)

Tầng clear cao nhất Vàng tầng đó Tổng Vàng run (chưa nhân) Tro Hồn run (chưa nhân) EXP tài khoản run XP Thông Thạo run
B1 9 9 0 11 1
B5 23 68 4 85 10
B9 22 145 6 155 14
B10 71 216 12 225 25
B15 50 378 16 360 35
B20 133 665 24 550 50
B30 220 1,434 36 975 75
B40 353 2,677 48 1,500 100
B50 567 4,668 60 2,125 125
B60 927 7,905 72 2,850 150
B70 1,548 13,270 84 3,675 175
B80 2,635 22,346 96 4,600 200
B90 4,560 37,974 108 5,625 225
B100 7,982 65,233 120 6,750 250
B110 9,441 103,210 137 7,975 275
B120 10,299 144,762 154 9,300 300
B150 12,873 290,876 205 13,875 375
B200 17,165 605,921 290 23,500 500

9.3 Mốc độ sâu (clear lần đầu, tài khoản, Bậc 0)

Kỷ lục (first-clear, Bậc 0) Loại Thưởng Đặc biệt
B5 Thủ Vệ 20 KC + 300 Vàng
B10 Boss 100 KC + 1 Ấn Triệu Hồi Aldric (H02) 10 mảnh — mở khóa
B15 Thủ Vệ 30 KC
B20 Boss 150 KC + 1 Chìa Di Vật Vex (H03) 20 mảnh — mở khóa
B25 Thủ Vệ 40 KC + 1 Chìa Di Vật
B30 Boss 200 KC + 2 Chìa Di Vật + 1 Ấn Triệu Hồi + 5 Mảnh Vạn Năng R + 5 Mảnh Vạn Năng E
B35 Thủ Vệ 50 KC + 1 Chìa Di Vật
B40 Boss 250 KC + 2 Chìa Di Vật Lyra (H05) 20 mảnh — mở khóa
B45 Thủ Vệ 60 KC + 1 Chìa Di Vật + 5 Mảnh Vạn Năng R
B50 Boss 300 KC + 2 Chìa Di Vật + 2 Ấn Triệu Hồi + 15 Mảnh Vạn Năng R + 10 Mảnh Vạn Năng E
B55 Thủ Vệ 70 KC + 1 Chìa Di Vật + 5 Mảnh Vạn Năng R
B60 Boss 350 KC + 2 Chìa Di Vật + 1 Ấn Triệu Hồi + 15 Mảnh Vạn Năng R
B65 Thủ Vệ 80 KC + 1 Chìa Di Vật + 5 Mảnh Vạn Năng R
B70 Boss 400 KC + 2 Chìa Di Vật + 1 Ấn Triệu Hồi + 20 Mảnh Vạn Năng R + 10 Mảnh Vạn Năng E
B75 Thủ Vệ 90 KC + 1 Chìa Di Vật + 5 Mảnh Vạn Năng R
B80 Boss 450 KC + 3 Chìa Di Vật + 1 Ấn Triệu Hồi + 20 Mảnh Vạn Năng R
B85 Thủ Vệ 100 KC + 1 Chìa Di Vật + 5 Mảnh Vạn Năng E
B90 Boss 500 KC + 3 Chìa Di Vật + 1 Ấn Triệu Hồi + 20 Mảnh Vạn Năng E
B95 Thủ Vệ 110 KC + 1 Chìa Di Vật + 5 Mảnh Vạn Năng E
B100 Boss 550 KC + 3 Chìa Di Vật + 3 Ấn Triệu Hồi + 10 Mảnh Vạn Năng L Danh hiệu 'Kẻ Hạ Vua Rỗng'; mở Bậc Kinh Hoàng & Vực Không Đáy
  • Quà anh hùng: hạ BS01 (B10) → Aldric 10 mảnh, hạ BS02 (B20) → Vex 20 mảnh, clear B40 (hạ BS04) → Lyra 20 mảnh — đúng số mở khóa R/E (SHARDS_UNLOCK). Mảnh vào kho ngay ở Kết Quả; màn "Quà: <anh hùng>" phát ở lần về Home kế theo hàng đợi 00 §8 (FTUE bước 11, 14). Ấn Triệu Hồi B10 dùng cho hướng dẫn Triệu Hồi (00 §7.1 bước 13).
  • Hiện ở Kết Quả (panel "Mốc mới!"), không thành popup ở Home. Đang Auto-Rerun: thưởng vào kho ngay, quà mở khóa vẫn xếp hàng Home.
  • Xuống Nhanh không phát mốc của tầng bị bỏ qua (tầng đó đã clear trước).

9.4 Rương Boss

Mỗi Boss hạ trong run → 1 rương theo bậc: BS01–BS03 CH_BOSS_1 · BS04–BS06 CH_BOSS_2 · BS07–BS09 CH_BOSS_3 · BS10 và mọi Boss Vực CH_BOSS_4. Nội dung do 09 §4 / 08 định nghĩa. Rương mở ở Kết Quả (hoạt ảnh pickups/chest-open), không mở giữa run.

9.5 Bỏ cuộc

  • Tạm dừng → Bỏ cuộc → xác nhận ("Kết thúc ở B23? Bạn giữ thưởng của 22 tầng đã clear") → RunEnd.
  • Thưởng như gục sau tầng clear gần nhất: tầng đang đánh không tính; Boss còn sống không tính (dù 1% HP — R8); lượt chọn đang chờ bị hủy; Than mất.
  • Popup "Tiếp tục run?" ở Home chọn Kết thúc = bỏ cuộc.

9.6 Màn Kết Quả

Vùng Nội dung
Đầu "B23" lớn + lý do: "Gục bởi: <địch> — <tên đòn> (<loại đòn>)" hoặc "CHIẾN THẮNG — Vua Rỗng đã ngã"; chân dung anh hùng; Bậc; thời gian game/thực; "Kỷ lục mới!" / "Kỷ lục riêng mới!"
Tab Thưởng Vàng, Tro Hồn, thanh EXP tài khoản (lên cấp), thanh Thông Thạo (lên cấp + Hồi Âm riêng mới mở — 06 §7), Rương Boss, Mốc mới, thưởng Ngày; nút ×2 (quảng cáo) + Tiếp tục
Tab Thống kê Biểu đồ nguồn sát thương theo loại lộ trình (thanh ngang %): GROUND, LAUNCH, AIR, CROWD, BREAK, WALL, OTG, GAP, SIGNATURE, AWAKEN + Phản Đòn + Kỹ Năng + Tuyệt Kỹ + Tuyệt Sát + Trạng thái/Nguyên tố + Hồi Âm kích hoạt (burst/wave/clone) + Môi trường + Đồng Đội
Phòng thủ: số đòn nhận; Gạt (Hoàn Hảo), Chặn (Vỡ Thủ), Né (Hoàn Hảo), Trúng — số + %; Phản Đòn; Va Kiếm; Tuyệt Sát; chuỗi Gạt dài nhất; số lần Dòng Chảy
Combo cao nhất (+ mốc GOOD…LEGEND), Phong Độ cao nhất + thời gian ở S trở lên, số địch/Tinh Anh/Thủ Vệ/Boss hạ, Than kiếm/tiêu
Build: Hồi Âm theo nhóm + cấp; 3 lộ trình được chọn nhiều nhất
Auto-Rerun Đếm ngược 5 s ở nút Tiếp tục (§12)

10Chuẩn bị run (RunPrep)

Thành phần Nội dung
Anh hùng Carousel anh hùng đã sở hữu (chân dung idle pixel 96×96): tên + danh hiệu, khung độ hiếm, cấp, ★, Thông Thạo (cấp + thanh XP), Kỷ lục riêng (Bậc 0), huy hiệu Bậc cao nhất đã clear, kỷ lục Vực, tỉ lệ Gạt/Chặn/Né, biểu tượng Cổng. Anh hùng chưa sở hữu: bóng đen + nguồn
Bậc Kinh Hoàng Bộ chọn −/+ từ 0 tới bậc đã mở; chạm giữ → danh sách modifier cộng dồn; hiện "Thưởng ×1.45"
Tầng bắt đầu 1 + danh sách Xuống Nhanh (§11) theo kỷ lục của Bậc đang chọn
Hồi Âm Toggle Auto-Pick (mở ở kỷ lục 25) + preset Tiêu Điểm Build (06 §6)
Tốc độ x1 / x1.5 / x2 / x3 (§12.2)
Bộc Phá AUTO / THỦ CÔNG
Nút BẮT ĐẦU (to, đáy màn)

Mọi lựa chọn lưu ở PlayerDataManager.RunPrefs (heroId, dread, startFloor, preset, autoPick, speed, odMode) và tự kiểm tra khi mở: anh hùng không còn sở hữu → Kaito; tầng bắt đầu không hợp lệ → 1; Bậc vượt bậc đã mở → bậc cao nhất; tốc độ chưa mở → tốc độ cao nhất đã mở ≤ giá trị lưu; x3 hết hạn → x2. Auto-Rerun dùng đúng cấu hình này.

11Xuống Nhanh (Express Descent)

  • Mở: kỷ lục ≥ 30 (cổng im lặng, 00 §8).
  • Tầng bắt đầu hợp lệ: 1 và mọi 10k + 1 ≤ kỷ lục(Bậc) − offset; offset 25, Cây Đèn Hồn D08 Lv1/2/3 → 20/15/10. Ví dụ kỷ lục 60, offset 25 → 1, 11, 21, 31.
  • Bắt đầu ở S: hệ thống chạy S − 1 lượt chọn tự động đúng như đã chơi qua các tầng 1…S−1: luồng offer key (f, 0), ngữ cảnh 06 §4.3 của từng tầng (x5 ≥ R, x0 = L…), pool riêng theo Thông Thạo của anh hùng (INV-15), pity tích lũy, Tiến Hóa xuất hiện bình thường; chọn bằng Auto-Pick với preset hiện tại (Auto-Pick tắt → preset Cân Bằng); không Đổi thẻ/Loại bỏ; E03 áp cho lượt tầng 1. Không có Chiếu Nghỉ/Cổng cho tầng bỏ qua.
  • Tặng min(600, 30 × (S − 1)) Than (+ D04 riêng); HP đầy, Bộc Phá 0, Cổng khởi đầu.
  • pendingDebut chỉ giữ lộ trình của 3 lượt tự chọn cuối (tránh tầng S toàn lộ trình "ra mắt").
  • Màn tóm tắt 3 s (chạm để bỏ qua) liệt kê thẻ đã tự chọn theo nhóm trước FloorIntro tầng S.
  • Không thưởng cho tầng bỏ qua (§9.1). Không dùng ở Thử Thách Ngày.

12Auto-Rerun & tốc độ

12.1 Auto-Rerun

  • Mở: kỷ lục ≥ 30. Toggle ở Kết Quả và RunPrep.
  • Sau Kết Quả đếm ngược 5 s rồi bắt đầu run mới với RunPrefs; chạm bất kỳ → hủy đếm ngược.
  • Giới hạn chuỗi: tối đa 5 run liên tiếp không có lần chạm nào (Thẻ Tháng: 10); hết chuỗi → dừng ở Kết Quả: "Ngọn đèn đang nghỉ — chạm để tiếp tục". Bất kỳ lần chạm nào đặt lại bộ đếm. Lửa Trại AFK vẫn tích lũy theo thời gian thực (07).
  • Auto-Rerun ép Auto-Pick bật + Bộc Phá AUTO; quảng cáo ×2 không tự xem; popup hồi sinh hết giờ = Kết thúc.
  • Dừng khi pin < 15% và không sạc, khi mất tiêu điểm app, hoặc khi RunPrefs không hợp lệ.
  • Tiết kiệm pin: không chạm 120 s → khóa 30 FPS hiển thị + phủ tối UI 40%; chạm để thoát. Mô phỏng 60 Hz không đổi (INV-14).

12.2 Tốc độ

Tốc độ Hệ số CombatClock Điều kiện mở Key
x1 1.0 Luôn có -
x1.5 1.5 Kỷ lục ≥ B5 speed_x15_record
x2 2.0 Kỷ lục ≥ B10 speed_x2_record
x3 3.0 Thẻ Tháng còn hạn; hoặc 1 run dùng thử miễn phí/ngày (sau khi mở x2, tính khi run bắt đầu ở x3) speed_x3_trial_per_day

Tốc độ áp lên CombatClock (01 §15). Dùng thử x3 tính khi run bắt đầu ở x3 và giữ x3 tới hết run đó; run kế (kể cả Auto-Rerun) về x2 nếu không có Thẻ Tháng.

13Bậc Kinh Hoàng (Dread)

13.1 Luật

  • DR1 mở khi hạ Vua Rỗng ở Bậc 0; DR N mở khi clear B100 ở DR N−1. Chọn ở RunPrep; Thử Thách Ngày luôn Bậc 0.
  • Modifier cộng dồn: Bậc N áp mọi modifier 1…N; các key giống nhau cộng (DR01 + DR11 = +45% HP địch). DreadModifiers gộp vào RunModifiers khi tạo run.
  • Bậc Kinh Hoàng được phép phá ngưỡng báo hiệu tối thiểu 01 §11.3 (DR04) — ngoại lệ có chủ đích; hệ số phòng thủ vẫn công khai trên bảng chỉ số (INV-06).
  • Thưởng Vàng + Tro Hồn ×(1 + 0.15 × Bậc). Lần đầu clear B100 ở mỗi Bậc: 300 + 50 × Bậc KC + thưởng thêm. Mốc độ sâu §9.3 chỉ phát ở Bậc 0.
Bậc Tên Modifier cộng thêm (cộng dồn) Key runtime Hệ số thưởng Lần đầu clear B100 Thưởng thêm
DR01 Bóng Dày (Thick Shadows) Địch +20% HP enemy_hp_pct=+0.20 ×1.15 350 KC Danh hiệu 'Người Mang Đèn Vực'
DR02 Nanh Sắc (Sharp Fangs) Địch +15% ATK enemy_atk_pct=+0.15 ×1.30 400 KC
DR03 Đèn Mờ (Dim Lantern) Hồi khi xuống cầu thang ×0.5 (gồm D03) descent_heal_mult=0.5 ×1.45 450 KC
DR04 Đòn Lén (Sneak Strikes) Báo hiệu (lấy đà) mọi đòn địch ngắn hơn 15%; đòn area < 0.8 s rơi vào dải tránh 70% telegraph_mult=0.85 ×1.60 500 KC
DR05 Tinh Anh Kép (Elite Surge) Tỉ lệ Tinh Anh ×2 (trần 24%) elite_chance_mult=2.0 ×1.75 550 KC Trang Phục Kinh Hoàng SK3 của anh hùng đã clear
DR06 Kiếm Thủ Địch (Enemy Swordplay) Mọi địch +10% Gạt đòn L/M của anh hùng (cộng vào enemy_deflect) enemy_deflect_add=+0.10 ×1.90 600 KC
DR07 Giá Cắt Cổ (Price Gouging) Giá Chiếu Nghỉ & Cổng Boss +30% landing_price_pct=+0.30 ×2.05 650 KC
DR08 Bầy Đông (Swarm) Số địch +20% (trần 48) enemy_count_pct=+0.20 ×2.20 700 KC
DR09 Đòn Hiểm (Treacherous Arts) Đòn không thể chặn (thrust/sweep/grab) trọng số ×1.5; 15% đòn heavy đổi thành thrust unblockable_weight=1.5;heavy_to_thrust=0.15 ×2.35 750 KC
DR10 Thủ Vệ Song Sinh (Twin Wardens) Tầng x5 có 2 Thủ Vệ, mỗi con 70% HP warden_twin_hp=0.70 ×2.50 800 KC Trang Phục đèn tài khoản 'Đèn Vực Tím' (đèn hồn + khung UI) + danh hiệu 'Kẻ Thách Bóng Tối'
DR11 Bóng Dày II (Thick Shadows II) Địch +25% HP (cộng dồn với DR01) enemy_hp_pct=+0.25 ×2.65 850 KC
DR12 Khí Thủ Nặng (Heavy Guard) Hồi Khí Thủ −30%; choáng Vỡ Thủ +0.3 s guard_regen_mult=0.70;guard_break_stun_add=0.3 ×2.80 900 KC
DR13 Một Chiếu Nghỉ (Single Landing) Mỗi Địa Tầng chỉ 1 Chiếu Nghỉ (sau x3); x7 xuống thẳng landings_per_stratum=1 ×2.95 950 KC
DR14 Trùm Gan Lì (Stubborn Lords) Boss +30% HP, Thế Boss +20% boss_hp_pct=+0.30;boss_posture_pct=+0.20 ×3.10 1000 KC
DR15 Hồi Phục Cạn (Dry Wells) Hồi máu từ Hồi Âm & hút máu −30%; Cổng Boss hồi 20% echo_heal_mult=0.70;gate_heal=0.20 ×3.25 1050 KC 30 Mảnh Vạn Năng L (722)
DR16 Nanh Sắc II (Sharp Fangs II) Địch +20% ATK (cộng dồn với DR02) enemy_atk_pct=+0.20 ×3.40 1100 KC
DR17 Thế Vững (Steady Stance) Hồi Thế địch +50%; thời gian Vỡ Thế −20% enemy_posture_regen_mult=1.5;broken_time_mult=0.8 ×3.55 1150 KC
DR18 Tinh Anh Bất Tận (Undying Elites) Tinh Anh hồi 2% HP/s (dừng khi Vỡ Thế và 2 s sau khi nhận đòn) elite_regen=0.02 ×3.70 1200 KC
DR19 Hiểm Địa (Perilous Ground) Bẫy Địa Tầng bật cả tầng x1, x5, x0; chu kỳ bẫy ×0.75 hazard_all_floors=1;hazard_period_mult=0.75 ×3.85 1250 KC
DR20 Vua Rỗng Thức Giấc (The Hollow King Wakes) Mọi Boss +1 affix; Vua Rỗng có pha 4 (04) boss_extra_affix=1;bs10_phase4=1 ×4.00 1300 KC 60 Mảnh Vạn Năng L (722) + danh hiệu 'Ngọn Đèn Bất Tận' + khung hồ sơ động

13.2 Thưởng mỹ phẩm

  • DR5: Trang Phục Kinh Hoàng SK<CODE>3 của anh hùng vừa clear (mỗi anh hùng nhận riêng khi tự clear DR5) — đề nghị 07 §6 dành ô skin thứ 3 của mỗi anh hùng cho bộ này.
  • DR10: cosmetic tài khoản "Đèn Vực Tím" (đèn hồn + khung UI) + danh hiệu; DR1/DR10/DR20: danh hiệu.

13.3 Kỷ lục

Mỗi anh hùng lưu: kỷ lục theo từng Bậc, Bậc cao nhất đã clear (huy hiệu ngọn lửa số Bậc trên thẻ anh hùng), kỷ lục Vực theo Bậc, điểm Thử Thách Ngày cao nhất. Tài khoản lưu kỷ lục theo Bậc (dùng cho Xuống Nhanh của Bậc đó). Bảng xếp hạng v1.1 tách theo Bậc và theo anh hùng.

14Vực Không Đáy (Abyss, B101+)

  • Hạ Vua Rỗng trong run → (lần đầu: cinematic kết thúc của 12, bỏ qua được) → popup "Xuống tiếp Vực Không Đáy?" [Xuống tiếp] [Dừng tại đây]. Auto-Rerun: tự chọn Xuống tiếp sau 5 s. Xuống tiếp → lượt chọn của B100 diễn ra trên cầu thang như thường; Dừng → RunEnd chiến thắng (không có lượt chọn).
  • Hình ảnh: Địa Tầng lặp S01→S10 mỗi 10 tầng với bảng màu Vực: ramp nền hạ 1 bước + giảm bão hòa 30%, viền sáng nhấn đổi sang arcane, nền thêm hạt shadow/void-orb và weather/shooting-stars recolor arcane ("sao rơi vực"); nhạc Địa Tầng + lớp bgm_abyss_layer.
  • Độ khó: tiếp tục công thức §3 (số địch trần 40); Boss mỗi x0 lặp BS01→BS10 với +1 affix (luồng spawn), HP/Thế dùng idx 10; Thủ Vệ lặp WD01→WD10, +1 affix từ B155. Bẫy, Chiếu Nghỉ, Cổng giữ nguyên nhịp; SF giá = 7.3.
  • Thưởng: Vàng tuyến tính, Tro Hồn +1/tầng (§9.1), Rương CH_BOSS_4; mốc Vực (tài khoản, mọi Bậc):
Mốc Vực KC Chìa Di Vật
B110 60 1
B120 60 1
B130 60 1
B140 60 1
B150 60 1
B160 60 1
B170 60 1
B180 60 1
B190 60 1
B200 60 1

Bảng độ khó mẫu [DERIVED]:

Tầng Địa Tầng Loại Wave (số địch) HP lính ATK lính/đòn Mix HP Tinh Anh Token cận/xa Thủ Vệ / Boss HP Tổng HP tầng Vàng tầng
B101 S01 COMBAT 20/20 201,310 6,334 2.294 12% 4/3 — 22.91M 2,889
B105 S01 WARDEN 12/12 263,877 8,303 2.334 12% 4/3 Thủ Vệ 1.06M 19.38M 4,506
B110 S01 BOSS 20 370,101 11,645 2.383 12% 4/3 Boss 7.03M 28.90M 9,441
B120 S02 BOSS 20 728,044 22,908 2.48 12% 4/3 Boss 13.83M 58.61M 10,299
B130 S03 BOSS 20 1.43M 45,064 2.576 12% 4/3 Boss 27.21M 118.71M 11,157
B150 S05 BOSS 20 5.54M 174,384 2.767 12% 4/3 Boss 105.30M 485.56M 12,873
B155 S06 WARDEN 12/12 7.77M 244,582 2.814 12% 4/3 Thủ Vệ 31.09M 682.02M 6,651
B175 S08 WARDEN 12/12 30.08M 946,455 3.002 12% 4/3 Thủ Vệ 120.32M 2.81B 7,510
B200 S10 BOSS 20 163.25M 5.14M 3.235 12% 4/3 Boss 3.10B 16.20B 17,165

Kỷ lục Vực lưu riêng theo Bậc và theo anh hùng; bảng xếp hạng v1.1 (chỉ hiển thị, không thưởng tiến trình).

15Thử Thách Ngày (Daily Challenge)

Hạng mục Quy định
Mở Kỷ lục ≥ 30
Seed hash64("DAILY", yyyymmdd UTC theo TimeManager đã xác thực, dailyContentVersion) — giống nhau mọi người cùng phiên bản nội dung
Anh Hùng Của Ngày released[(dayNumber × step) mod n], dayNumber = số ngày từ 2026-01-01 UTC, n = số anh hùng đã phát hành, step = số nguyên tố nhỏ nhất ≥ 5 không chia hết n → đi hết roster không lặp trong n ngày
Bản dùng thử Chưa sở hữu → bản dùng thử: cấp = cấp anh hùng chính (anh hùng sở hữu cấp cao nhất; hòa → ★ cao hơn → id nhỏ hơn), ★2, Thông Thạo 10; Rèn Luyện/Cây/Di Vật tài khoản áp dụng
Modifier 3 từ pool 12 (xáo theo seed, lấy 3 đầu; nhóm DEF_STYLE tối đa 1)
Phạm vi B1 → B30 (S01–S03, Boss BS01–BS03), Bậc 0, không Xuống Nhanh, không Auto-Rerun; Auto-Pick được; Chiếu Nghỉ/Cổng bình thường; hạ BS03 = chiến thắng
Hồi sinh Hồi Âm + 1 quảng cáo; không KC/Vé; D07, D09 tắt
Lượt 1 lượt tính thưởng/ngày + 1 qua quảng cáo; lượt bị tiêu khi run bắt đầu (thoát giữa chừng vẫn mất lượt, resume giữ lượt); luyện tập không giới hạn, không thưởng gì
Điểm Bảng dưới; tối thiểu 0; điểm cao nhất của ngày được lưu
Thưởng Mốc tầng (lần đầu đạt trong ngày, gộp 2 lượt) + Kết Quả thường (Vàng, Tro Hồn, EXP, không QC ×2) + XP Thông Thạo ×1.5 cho Anh Hùng Của Ngày
XP bản dùng thử Gửi vào "Ký Ức Dùng Thử" của anh hùng đó (trần 200), nhận khi mở khóa
Xếp hạng v1.1 online (template DailyChallengeRanking); offline vẫn chơi

Banner chuyển đổi (ngoài run — INV-08 OK): màn Thử Thách Ngày hiện ruy-băng "DÙNG THỬ HÔM NAY" trên anh hùng chưa sở hữu; Kết Quả của run dùng thử hiện banner không chặn "Giữ <anh hùng> mãi mãi" + tiến độ mảnh x/20 + nút Xem → Triệu Hồi nổi bật (09 §4). Analytics daily_trial_banner_click.

Id Modifier Tác dụng Key Nhóm loại trừ
DM01 Lưỡi Gương (Mirror Edge) Mọi địch +20% Gạt đòn L/M; Phản Đòn của anh hùng +50% ST enemy_deflect_add=+0.20;CounterDmg=+0.50 —
DM02 Chỉ Một Nhịp (Single Beat) Gạt +15 điểm; Chặn = 0, Né = 0 DeflectRate=+0.15;BlockRate=0;EvadeRate=0 DEF_STYLE
DM03 Pháo Đài (Fortress) Chặn +20 điểm, Khí Thủ ×2; Gạt & Né ×0.5 BlockRate=+0.20;GuardMax=x2;DeflectRate=x0.5;EvadeRate=x0.5 DEF_STYLE
DM04 Bóng Ma (Phantom) Né +15 điểm; Max HP −40% EvadeRate=+0.15;MaxHP=x0.6 DEF_STYLE
DM05 Tay Nặng (Heavy Hands) 40% đòn light của địch thành heavy (nhiều cơ hội Gạt Hoàn Hảo, trúng đau hơn) light_to_heavy=0.40 —
DM06 Thủy Tinh (Glass) Anh hùng & địch HP ×0.5 hero_hp_mult=0.5;enemy_hp_mult=0.5 —
DM07 Phong Độ Cuồng (Style Frenzy) Phong Độ suy giảm ×2 nhanh; thưởng ST theo Phong Độ ×2 style_decay_mult=2;style_dmg_mult=2 —
DM08 Ngày Đao Phủ (Executioner's Day) Thế địch ×0.6; ExecuteThreshold +15%; Tuyệt Sát hồi 2% HP enemy_posture_mult=0.6;ExecuteThreshold=+0.15;exec_heal=0.02 —
DM09 Toàn Tinh Anh (All Elites) Mọi địch là Tinh Anh 1 affix; số địch ×0.5 all_elite=1;enemy_count_mult=0.5 —
DM10 Thần May Mắn (Fortune) Độ hiếm mọi ô +1 bậc; không có Đổi thẻ offer_tier_up=1;rerolls=0 —
DM11 Bộc Phá Liên Hồi (Overdrive Surge) Năng lượng Bộc Phá ×2; ST Tuyệt Kỹ −30% OverdriveGain=+1.0;UltDmg=-0.30 —
DM12 Địa Ngục Mở (Open Inferno) Bẫy Địa Tầng bật mọi tầng, chu kỳ ×0.6 hazard_all_floors=1;hazard_period_mult=0.6 —

Điểm = Σ thành phần × điểm:

Thành phần Điểm
floor 1000
boss 1500
warden 500
deflect 5
perfect_deflect 15
execution 30
game_second -1
Tầng đạt (lượt tính thưởng) Thưởng
B10 30 KC
B20 30 KC + 1 Chìa Di Vật (12)
B30 60 KC + 5 Mảnh của Anh Hùng Của Ngày (700+)

16Run Snapshot

16.1 Ví dụ (run_snapshot.json, version 1)

{
  "version": 1, "runId": "r_20261101_8f2a", "buildId": "1.0.0+412", "saveSeq": 57, "crc": "9a1c44e0",
  "seed": "0x5F3759DF12AB34CD", "mode": "DESCENT", "dailyDate": null, "dread": 0, "startFloor": 1,
  "floor": 23, "state": "ECHO_PICK", "isFtueRun": false,
  "hero": { "id": "H01", "trial": false, "level": 34, "star": 3, "mastery": 7, "masteryXp": 112 },
  "settings": { "speed": 2.0, "autoPick": true, "preset": "DEFLECT", "odMode": "AUTO", "x3Trial": false },
  "vitals": { "hp": 4210, "hpMax": 6100, "shield": 0, "guard": 100, "overdrive": 62, "gauge": 1, "style": 340, "deflectChain": 0 },
  "embers": 145, "embersEarned": 1210, "embersSpent": 1065,
  "echoes": [ {"id": "E_KAI_03", "lv": 2}, {"id": "E_KAI_11", "lv": 1}, {"id": "DF01", "lv": 1},
              {"id": "FI01", "lv": 1}, {"id": "ST01", "rarity": "R", "count": 3} ],
  "replaced": [], "evolved": [], "banished": ["PA01"],
  "pendingDebut": [],
  "offer": { "floor": 23, "kind": "STANDARD", "sub": 0, "cards": ["E_KAI_14", "DF04", "ST03:E"],
             "tiers": ["R", "E", "E"], "rerollsUsed": 0 },
  "offerQueue": [],
  "counters": { "pityNoEpic": 2, "rerollsLeft": 1, "rerollAdUsed": false, "rerollGemUsed": 0,
                "banishesLeft": 1, "blessingAdUsed": false },
  "landing": null, "lastLandingEvent": "LD03", "ally": null,
  "revive": { "freeUsed": 1, "springCharges": 0, "d07Used": true, "d09Used": false,
              "adUsed": false, "gemUsed": false, "tokenUsed": false },
  "rng": { "offer": {"key": [23, 0], "pos": 0},   "spawn": {"key": [23, 3], "pos": 211},
           "loot": {"key": [23, 0], "pos": 48},   "combat": {"key": [23, 3], "pos": 9120},
           "defense": {"key": [23, 3], "pos": 77}, "landing": {"key": [23, 0], "pos": 6},
           "vendor": {"key": [19, 0], "pos": 14} },
  "waveCheckpoint": null,
  "stats": { "kills": 412, "bossesKilled": 2, "wardensKilled": 2, "floorsCleared": 23, "bestCombo": 87,
             "maxStyle": "SS", "deflects": 140, "perfectDeflects": 22, "blocks": 35, "guardBreaks": 1,
             "evades": 61, "perfectEvades": 9, "counters": 118, "clashes": 14, "executions": 31,
             "hitsTaken": 96, "flowStates": 4, "longestChain": 6,
             "dmgByRouteType": {"GROUND": 4.1e5, "LAUNCH": 1.2e5, "AIR": 2.6e5, "BREAK": 9.0e4, "SIGNATURE": 1.5e5},
             "dmgBySource": {"ROUTE": 1.03e6, "COUNTER": 2.2e5, "SKILL": 1.1e5, "ULT": 9.0e4, "EXEC": 1.4e5,
                             "STATUS": 6.0e4, "ECHO_PROC": 4.0e4, "HAZARD": 8.0e3, "ALLY": 0},
             "killer": null },
  "elapsedGameSec": 1042.5, "elapsedRealSec": 711.0, "resultsCommitted": false
}

waveCheckpoint mẫu (state COMBAT, tầng 24 wave 2):

{ "floor": 24, "wave": 2, "phase": "WAVE", "hp": 3980, "shield": 120, "guard": 100, "overdrive": 40, "gauge": 0,
  "style": 170, "embers": 160, "spawned": 9, "killed": 7,
  "carry": [ {"type": "EN03", "affix": null, "hpFrac": 0.4}, {"type": "EN05", "affix": "AF02", "hpFrac": 1.0} ],
  "hazardT": 4.2, "allyHp": null, "revive": {"freeUsed": 1, "springCharges": 0, "d07Used": true, "d09Used": false,
  "adUsed": false, "gemUsed": false, "tokenUsed": false},
  "rngPos": { "spawn": 0, "combat": 0, "defense": 0, "loot": 51 }, "elapsedGameSec": 1101.0 }

16.2 Trường

Trường Kiểu Nội dung Ghi khi
version int Phiên bản schema (hiện 1); migrate tuần tự mọi lần ghi
runId / buildId / saveSeq / crc string/int Định danh, build tạo run, số thứ tự ghi, CRC32 nội dung mọi lần ghi
seed uint64 hex Seed run (Daily = hash ngày UTC) tạo run
mode / dailyDate / dread / startFloor enum/int DESCENT · DAILY · DAILY_PRACTICE; Bậc; tầng bắt đầu tạo run
floor / state int/enum Tầng hiện tại; FLOOR_INTRO COMBAT BOSS_INTRO DOWNED LANDING ECHO_PICK DESCENT RUN_END mọi lần ghi
isFtueRun bool Run 1 (bật mọi khóa ftue_*) tạo run
hero{id, trial, level, star, mastery, masteryXp} obj Ảnh chụp anh hùng LÚC BẮT ĐẦU (lên cấp giữa run không áp) tạo run
settings{speed, autoPick, preset, odMode, x3Trial} obj Cấu hình RunPrep đang dùng tạo run, khi đổi
vitals{hp, hpMax, shield, guard, overdrive, gauge, style, deflectChain} obj Trạng thái sống ở mốc ghi đầu tầng, sau Chiếu Nghỉ
embers / embersEarned / embersSpent int Than hiện có và thống kê mọi lần ghi
echoes[{id, lv}] list Build; STAT dạng {id, rarity, count} sau chọn/mua/nâng
replaced[] / evolved[] / banished[] list Thẻ bị thay (trả pool), lộ trình đã tiến hóa, thẻ bị loại sau thao tác
pendingDebut[] list route id Lộ trình mới chưa ra mắt (01 §6.5) sau chọn; xóa khi ra mắt
offer{floor, kind, sub, cards[], tiers[], rerollsUsed} obj|null Lượt chọn đang chờ (kind: STANDARD/EXTRA/E03); null sau khi chọn TRƯỚC khi hiển thị
offerQueue[] list Lượt chọn thêm đang xếp (Mimic/Cửa/E03) khi phát sinh
counters{pityNoEpic, rerollsLeft, rerollAdUsed, rerollGemUsed, banishesLeft, blessingAdUsed} obj Bộ đếm lượt chọn sau thao tác
landing{floor, event, hiddenRoll, shelf[], bought[], refreshed, step, resolved} obj|null Chiếu Nghỉ/Cổng đang mở; hiddenRoll = kết quả Rương/Giếng vào sự kiện + mỗi giao dịch
lastLandingEvent id Chống lặp sự kiện liền nhau sau Chiếu Nghỉ
ally{heroId, level, star, mastery, hpFrac, floor} obj|null Đồng đội LD06 cho tầng kế chọn LD06; xóa khi xuống thang
revive{freeUsed, springCharges, d07Used, d09Used, adUsed, gemUsed, tokenUsed} obj Cờ hồi sinh mọi lần ghi
rng{offer, spawn, loot, combat, defense, landing, vendor, ai, fx} obj Mỗi luồng {key:[floor, sub], pos} mọi lần ghi
waveCheckpoint{...} obj|null Checkpoint đầu wave (§5.5) đầu mỗi wave + đầu pha Boss
stats{...} obj kills, bossesKilled, wardensKilled, floorsCleared, bestCombo, maxStyle, deflects, perfectDeflects, blocks, guardBreaks, evades, perfectEvades, counters, clashes, executions, hitsTaken, flowStates, longestChain, dmgByRouteType{}, dmgBySource{}, killer đầu wave + Downed
elapsedGameSec / elapsedRealSec float Thời gian mọi lần ghi
resultsCommitted bool Đã ghi thưởng vào save meta (chống trả thưởng 2 lần) RunEnd

echoes[] là nguồn duy nhất của build: Cây Combo (lộ trình gốc + route_add), bể đòn, chỉ số trong run được dựng lại từ echoes[] + evolved[] khi khôi phục (không lưu Cây Combo). Hero level/star/mastery là ảnh chụp lúc bắt đầu; lên cấp/sao giữa run (không thể — không vào Home) không áp.

16.3 Điểm ghi

# Thời điểm state Ghi chú
W0 Tạo run (sau RunPrep + tự chọn Xuống Nhanh) FLOOR_INTRO
W1 Đầu mỗi wave / đầu pha Boss COMBAT / BOSS_INTRO Cập nhật waveCheckpoint (luồng nền)
W2 Vào Downed (trước popup) DOWNED
W3 Sau quyết định hồi sinh COMBAT Cờ hồi sinh
W4 Vào Chiếu Nghỉ/Cổng + mỗi giao dịch LANDING hiddenRoll ghi ở lần đầu
W5 Vào EchoPick, sau mỗi Đổi thẻ/Loại bỏ, lượt thêm ECHO_PICK Trước khi hiển thị (INV-11)
W6 Sau khi chọn (D9) FLOOR_INTRO Tầng + 1
W7 RunEnd RUN_END Ghi thưởng vào save meta (resultsCommitted = true) → xóa snapshot

Ghi nguyên tử: ghi run_snapshot.tmp → flush → đổi tên thành run_snapshot.json; bản trước giữ ở run_snapshot.bak. File riêng, không lẫn save meta. Không ghi khi app vào nền (chỉ flush lần ghi đang chờ).

16.4 Khôi phục

state khi đọc Khôi phục
FLOOR_INTRO / DESCENT Đầu tầng floor (FloorIntro)
COMBAT / BOSS_INTRO Đầu wave (hoặc đầu pha Boss) từ waveCheckpoint; wave tái lập bằng luồng reseed (§4.7)
LANDING Đúng sự kiện + hiddenRoll; giao dịch đã xác nhận giữ nguyên, lựa chọn chưa xác nhận bị hủy
ECHO_PICK Đúng thẻ + số Đổi thẻ đã dùng (G2)
DOWNED Hồi sinh miễn phí còn → tự áp; ngược lại popup lại với lượt còn lại; hồi sinh → chơi lại từ waveCheckpoint với HP sau hồi sinh; từ chối → RunEnd
RUN_END & resultsCommitted = false Tính thưởng lại từ snapshot và ghi; true → chỉ xóa file

Home phát popup "Tiếp tục run? B23 · Kaito · 9 Hồi Âm" [Tiếp tục] [Kết thúc].

16.5 Phiên bản & chống save-scum

  • Versioning: version tăng khi đổi schema; RunSnapshotStore chạy migration tuần tự v1→v2→…; không migrate được hoặc version lớn hơn bản đang chạy → không resume, popup "Không thể tiếp tục run" → kết thúc, thưởng tầng đã clear gửi Hộp thư.
  • Toàn vẹn: CRC32 sai → thử .bak; cả hai hỏng → kết thúc run, thưởng tầng đã clear (theo bản meta) qua Hộp thư + log BugLogger.
  • Chống lùi file: save meta lưu activeRunId + lastSaveSeq; snapshot có saveSeq nhỏ hơn → bị từ chối như hỏng.
  • Lượt chọn, kết quả Chiếu Nghỉ, kết quả hồi sinh đều được ghi trước khi người chơi thấy (INV-11, hiddenRoll, W2).
  • Kill app để tránh chết: khôi phục ở đầu wave với HP lúc đó và wave diễn lại y hệt (luồng reseed) → không lợi gì trừ khi đổi cách bấm Bộc Phá thủ công (chấp nhận được — là kỹ năng). Đếm waveRestores cho analytics.
  • resultsCommitted chống nhận thưởng 2 lần.

17RunRules.csv

Mọi tham số chỉ thuộc run (khóa/giá trị). Hằng số liên module (DESCENT_HEAL, GATE_HEAL, REVIVE_HP, FREE_REVIVE_CAP, BOSS_ENRAGE_S) nằm ở CombatConfig.csv (01 §18), không lặp ở đây.

Key Giá trị Ghi chú
descent_clear_slowmo_real_s 0.6 D1
descent_victory_s 0.5 D2
descent_walk_max_s 2.5 D3
descent_walk_speed_mult 1.3 D3
descent_hatch_s 0.4 D4
descent_min_before_offer_s 1.2 D7
descent_card_flip_s 0.3 D7
descent_card_stagger_s 0.08 D7
descent_loop_scroll_px_s 48 D7
descent_apply_s 0.3 D9
descent_arrive_s 0.8 D10
stratum_title_s 1.5 D10
music_crossfade_s 1.0 D10
floor_intro_s 1.0 D11
floor_intro_first_spawn_s 0.5 D11
boss_intro_s 2.5 00 §5.2
descent_room_dim 0.35 phòng cũ tối
ember_magnet_px 48 hút Than khi đang đánh
wave_next_alive_frac 0.3 wave kế khi còn ≤ 30% địch của wave
wave_next_timeout_s 12 hoặc sau 12 s
wave_next_min_after_last_spawn_s 3.0
wave_cue_s 0.6 báo trước wave
spawn_global_max 4 mỗi cửa sổ
spawn_global_window_s 0.6
spawn_point_cd_s 0.8
spawn_exclusion_px 56 quanh anh hùng
spawn_attack_delay_s 0.3 sau clip vào
spawn_w_door 0.35
spawn_w_crack 0.25
spawn_w_ceiling 0.25
spawn_w_stratum 0.15
warden_floor_share 0.6
boss_opening_share 0.5
warden_escorts 2 04 có thể ghi đè
enemy_count_cap_dread 48 DR08
hazard_floors 2|3|4|6|7|8|9 x trong Địa Tầng
hazard_first_delay_s 6.0 sau khi wave 1 bắt đầu
hazard_nonlethal 1 bẫy không hạ gục (còn 1 HP)
landing_after_x 3|7
gate_after_x 9
landing_discount_cap 0.4 D05 + shop_discount
shop_buy_max 3
shop_refresh_max 1
mimic_chance 0.3
mimic_hp_mult 1.5
mimic_adds 2
chest_step 10
trial_elites 3
trial_affixes 2
shrine_hp_cost 0.2 % HP hiện tại
shrine_hp_min 0.3 khóa khi HP < 30%
shrine_combo_weight 1.5
spring_heal 0.4
spring_maxhp 0.05
comrade_candidates 2
comrade_stat_mult 0.5 HP & ATK
comrade_skill_cd_mult 1.5
comrade_target_bias 0.65 địch nhắm anh hùng chính
comrade_mastery_xp 3
well_stakes 0.25|0.5|1.0
well_odds x2:0.4|x3:0.1|upgrade:0.1|lose:0.4
extra_offer_sub_base 1000 sub-key luồng offer cho lượt chọn thêm
ember_interest_rate 0.05 mỗi lần xuống cầu thang
ember_interest_cap_per_sf 10 trần = 10 × SF
ember_removed_echo_comp 50 06 K5
ember_floor_clear 5 × SF, mỗi tầng clear
revive_popup_s 8
revive_ring_px 64 01 §16
revive_invuln_s 2.0
d09_hp 1 Bất Diệt
d09_invuln_s 2.0
revive_token_moneytype 16
paid_revive_cap 2 1 quảng cáo + 1 KC/vé
gold_echo_cap 2.0 06 §8.6
dread_reward_step 0.15
ad_x2_min_floors 5
exp_floor_base 10 EXP = Σ(10 + f)
exp_boss 50
exp_warden 20
mastery_floor 1 03 §5.3
mastery_warden 5
mastery_boss 10
ash_abyss_per_floor 1
gold_abyss_slope 0.01
express_unlock_record 30
express_offset 25
express_offset_d08 20|15|10 07 D08 Lv1/2/3
express_ember_per_floor 30
express_ember_cap 600
express_summary_s 3.0
express_debut_last_n 3
autorerun_unlock_record 30
autorerun_countdown_s 5
autorerun_chain_cap 5
autorerun_chain_cap_monthly 10
autorerun_low_battery 0.15 dừng khi pin < 15% & không sạc
battery_saver_idle_s 120
battery_saver_fps 30
battery_saver_dim 0.4
speed_x15_record 5
speed_x2_record 10
speed_x3_trial_per_day 1
abyss_start 101
abyss_boss_idx 10
abyss_boss_extra_affix 1
abyss_warden_affix_from 151
abyss_sf_cap_stratum 10
dread_max 20
daily_unlock_record 30
daily_floors 30
daily_attempts 1
daily_attempts_ad 1
daily_mod_count 3
daily_mastery_mult 1.5 03 §5.3
daily_trial_star 2
daily_trial_mastery 10
daily_trial_xp_bank_cap 200
daily_resume_max_h 48
daily_score_floor 1000
daily_score_boss 1500
daily_score_warden 500
daily_score_deflect 5
daily_score_perfect_deflect 15
daily_score_execution 30
daily_score_game_second -1
ftue_run1_only 1 chỉ run đầu tiên của tài khoản
ftue_b1_waves 3|3 B1: 2 wave × 3 EN01
ftue_b1_enemy EN01 Hồn Rỗng
ftue_scripted_deflect_first_red 1 đòn heavy/thrust đầu tiên nhắm anh hùng → Gạt
ftue_first_offer E_KAI_01|DF01|ST01 Trăng Khuyết Rút Đao · Mắt Tinh · Sức Mạnh
ftue_debut_within_s 5 B2 mở màn bằng lộ trình mới
ftue_b2_overdrive_hint 1
ftue_first_landing LD01
ftue_first_landing_embers 120
ftue_second_landing_exclude LD04|LD05|LD08 không sự kiện rủi ro ở run 1
ftue_b4_reroll_highlight 1
ftue_b5_warden_first_heavy_perfect 1 WD01 đòn nặng đầu → Gạt Hoàn Hảo
ftue_hidden_dmg_bonus 0.3 ẩn, DmgBonus
ftue_hidden_dmg_until_floor 9
ftue_b11_14_enemy_mult 0.85 HP & ATK địch B11–B14
ftue_b15_warden_hp_mult 4.0 WD02 run 1
ftue_b15_warden_atk_mult 4.0
ftue_autopick_disabled 1 06 K10
ftue_interstitial_disabled 1 INV-10 run 1
ftue_results_gift_gold 1000 bước 10
ftue_sim_b10_win_min 15 /20 seed
ftue_sim_b13_15_down_min 12 /20 seed
snapshot_version 1
snapshot_file run_snapshot.json
snapshot_backup run_snapshot.bak
wave_checkpoint_max_bytes 4096

18Edge cases

# Tình huống Xử lý
R1 Kill app giữa tầng Đầu wave đang đánh từ waveCheckpoint (HP/khiên/Khí Thủ/Than/Bộc Phá/Cổng lúc wave bắt đầu, carry[]); luồng reseed theo wave
R2 Kill app ở Chiếu Nghỉ Cùng sự kiện + hiddenRoll; giao dịch đã xác nhận giữ; trận Mimic/Cửa đang đánh → bắt đầu lại trận đó với HP lúc vào sự kiện
R3 Kill app ở popup hồi sinh state = DOWNED → popup lại với lượt còn lại; hồi sinh → đầu wave với HP hồi sinh
R4 Hạ Boss B100 và anh hùng gục do DoT cùng tick Boss tính trước → chiến thắng, popup Vực
R5 Đổi ngày UTC giữa Thử Thách Ngày Dùng seed & modifier ngày bắt đầu; thưởng tính cho ngày bắt đầu; resume quá 48 h → kết thúc run
R6 Snapshot phiên bản cũ/mới hơn Migration §16.5; thất bại → kết thúc, thưởng qua Hộp thư
R7 Hồi Âm trong snapshot bị xóa/đổi id sau cập nhật Gỡ khỏi build, +50 Than/thẻ (06 K5); lộ trình của thẻ bị xóa khỏi Cây Combo; lộ trình gốc giữ
R8 Bỏ cuộc ở tầng Boss khi Boss còn 1% Không tính Boss, không rương, không mốc
R9 Đồng đội LD06 không còn hợp lệ khi resume Bỏ đồng đội, +40 × SF Than
R10 Tầng bắt đầu lưu trong RunPrefs không còn hợp lệ (đổi Bậc) Về 1 + toast "Tầng bắt đầu đã đặt lại"
R11 Tiền không đủ sau giảm giá/làm tròn Giá hiển thị là giá cuối; nút xám khi Than < giá
R12 Gục trong trận Mimic/Cửa Thử Thách Luồng §8; hồi sinh → tiếp tục trận; RunEnd → tầng x3/x7 vẫn tính đã clear
R13 Hai sự kiện thưởng lượt chọn thêm cùng lúc (E03 Lv2 + …) Xếp offerQueue FIFO, mỗi lượt sinh + lưu trước khi hiện
R14 Anh hùng đang chơi bị khóa/xóa dữ liệu (G9) Kết thúc run, thưởng tầng đã clear qua Hộp thư; RunPrefs → Kaito
R15 Hết Than khi đang ở Giếng LD08 bị loại khỏi roll nếu Than < cược tối thiểu lúc roll
R16 Auto-Rerun khi Thử Thách Ngày hết lượt Thử Thách Ngày không có Auto-Rerun; Auto-Rerun chỉ chạy chế độ DESCENT

19QA checklist

  • [ ] Nhịp 10 tầng đúng §2.1 ở mọi Địa Tầng và Vực (INV-12); DR13 bỏ Chiếu Nghỉ x7.
  • [ ] Kích thước wave khớp FloorScaling.wave_sizes; wave kế đúng điều kiện 30% / 12 s / ≥ 3 s; không vượt MAX_ALIVE.
  • [ ] Không spawn trong 56 px quanh anh hùng; thân to chỉ qua cửa; địch bay chỉ qua trần/đặc thù.
  • [ ] Cùng seed → cùng thứ tự spawn, cùng lượt chọn, cùng sự kiện Chiếu Nghỉ (1,000 seed headless).
  • [ ] Snapshot ghi đúng W0–W7; kill app ở mọi state khôi phục đúng §16.4 (gồm carry[]).
  • [ ] Lượt chọn được ghi trước khi lật thẻ (log thứ tự save → display); kết quả Rương/Giếng không đổi khi thoát/vào lại.
  • [ ] Bẫy không bao giờ hạ gục anh hùng; tắt ở x1/x5/x0 (trừ DR19/DM12); chip HZ09 hiện đúng hệ số.
  • [ ] Giá Chiếu Nghỉ = bảng LandingPrices × giảm giá, làm tròn một lần; trần giảm 40%.
  • [ ] LD06: chỉ lộ trình gốc, 50% HP/ATK, không cộng Combo/Phong Độ/Bộc Phá anh hùng chính; rời khi xuống thang; không xuất hiện khi chỉ sở hữu 1 anh hùng.
  • [ ] LD00: bảo đảm thẻ khắc chế khi pool còn; giữ sau làm mới và resume.
  • [ ] Hồi sinh: thứ tự §8; miễn phí ≤ 3; trả phí ≤ 2; D09 không tính trần; popup 8 s; Daily không có KC/Vé.
  • [ ] Thưởng Kết Quả khớp run_rewards (unit test); Xuống Nhanh không thưởng tầng bỏ qua; Tro Hồn trừ depth(S−1).
  • [ ] Mốc B10/B20/B40 tặng đúng 10/20/20 mảnh Aldric/Vex/Lyra một lần.
  • [ ] Auto-Rerun dừng sau 5 run không chạm (10 với Thẻ Tháng); tiết kiệm pin sau 120 s.
  • [ ] Tốc độ x1.5/x2 mở ở kỷ lục 5/10; dùng thử x3 1 run/ngày.
  • [ ] Bậc Kinh Hoàng: modifier cộng dồn đúng key; thưởng ×(1 + 0.15·Bậc); first-clear B100 mỗi Bậc một lần.
  • [ ] Vực: Vàng tuyến tính, Tro +1/tầng, Boss +1 affix, nhạc + bảng màu Vực.
  • [ ] Thử Thách Ngày: 2 thiết bị cùng ngày cùng anh hùng + 3 modifier + thứ tự spawn; nhóm DEF_STYLE ≤ 1; lượt bị tiêu khi bắt đầu.
  • [ ] FTUE run 1: Gạt kịch bản ở đòn đỏ đầu tiên B1; Gạt Hoàn Hảo ở đòn nặng đầu của WD01; autosim B10 thắng ≥ 15/20, gục B13–15 ≥ 12/20.
  • [ ] x3 + hit-stop: chuỗi đi xuống không bỏ bước lưu nào.

20Giao tiếp module (giả định chéo)

Module Cần cung cấp / dùng từ 05
00 §14 Đăng ký dải id mới: HZ01–HZ10 (bẫy), DM01–DM12 (modifier Ngày), CH_BOSS_1–4 (rương Boss); E_KAI_01 phải là Trăng Khuyết Rút Đao (FTUE)
04 StrataEnemyWeights, first_floor, cột ember_drop (trung bình ≈ 2/lính), cờ mimic_host mỗi Địa Tầng, thẻ size/move cho luật điểm spawn, clip enter_door/crack/drop/stratum, BossIntel 3 dòng + counter_tags, hộ vệ Thủ Vệ (mặc định 2), hỗ trợ enemy_deflect cho mọi địch (DR06/DM01), đổi heavy→thrust (DR09) và light→heavy (DM05), pha 4 Vua Rỗng (DR20), affix thêm cho Boss Vực
06 Kind economy(interest, x) cho Hồi Âm ECON; sub-key offer 1000 + k cho lượt thêm; kệ vendor không PACT; Auto-Pick dùng cho Xuống Nhanh
07 D03, D04, D05, D07, D08, D09 đúng giá trị 00 §14.2; ô skin SK<CODE>3 = Trang Phục Kinh Hoàng; cosmetic "Đèn Vực Tím"; danh hiệu; feature-unlock: Xuống Nhanh/Auto-Rerun/Thử Thách Ngày ở kỷ lục 30, x1.5 ở 5, x2 ở 10
08 Nguồn: Vàng/Tro Hồn/EXP §9.1; giá trị mốc B1–B100 thuộc 08 (DepthMilestones.csv, block economy_milestones hiển thị ở §9 tài liệu này); mốc Vực 600 KC + 10 Chìa; first-clear Bậc Σ = 16,500 KC; thưởng Ngày; ngân sách Than §7.3
09 Nội dung CH_BOSS_1–4; hồi sinh QC/KC/Vé; QC ×2; quảng cáo xen kẽ sau Boss; lượt Ngày thứ 2 qua QC; Thẻ Tháng: x3, chuỗi Auto-Rerun 10; banner chuyển đổi Anh Hùng Của Ngày
11 Màn RunPrep, overlay chọn thẻ khi đi xuống, UI Chiếu Nghỉ/Cổng (bảng tin Boss), popup Hồi sinh, Kết Quả 2 tab, Thử Thách Ngày, tóm tắt Xuống Nhanh, chip bẫy
12 bgm_*/amb_* mỗi Địa Tầng, bgm_abyss_layer; tile StairShaft + bục Chiếu Nghỉ mỗi Địa Tầng; biến thể phòng A/B/C; fx bẫy; vỏ rương Mimic
13 RunRng hash 64-bit theo khóa §4.7; ghi nguyên tử + CRC + saveSeq; RunModifiers; autosim headless cho FTUE & ngân sách Than