# 🌃 NEON SURVIVORS Một game **survivor / bullet-heaven** hoàn chỉnh (lấy cảm hứng từ Vampire Survivors), viết thuần bằng HTML5 Canvas + JavaScript — **không cần cài đặt, không asset ngoài, không internet**, mọi thứ từ đồ họa đến âm thanh đều được sinh tự động bằng code. ![genre](https://img.shields.io/badge/genre-bullet%20heaven-7c5cff) ![offline](https://img.shields.io/badge/runs-offline-00e5ff) --- ## ▶️ Cách chạy **Cách 1 — mở thẳng file:** nhấp đúp vào `index.html` (Chrome / Edge / Firefox). **Cách 2 — qua local server (khuyến nghị cho mobile LAN):** ```bash cd 2dsurvivor python3 -m http.server 8080 # hoặc: npx serve . # mở http://localhost:8080 ``` ## 🎮 Điều khiển | Hành động | Desktop | Mobile | |---|---|---| | Di chuyển | `WASD` / Phím mũi tên | Kéo ngón tay trên màn hình (joystick ảo) | | Tấn công | **Tự động** — cứ việc né! | Tự động | | Tạm dừng | `Esc` / `P` | Nút hệ thống | | Chọn nâng cấp | Chuột / `1`–`4` | Chạm | ## ✨ Tính năng ### Gameplay - **11 vũ khí** riêng biệt (đũa phép, roi, phi đao, quả cầu quay, rìu, hào quang, thiên lôi, cầu lửa, băng tinh, thánh giá, 🧨 mìn hẹn giờ) — mỗi vũ khí **8 cấp** với bảng nâng cấp riêng. - **11 dạng tiến hóa**: (mìn → 💣 Vườn Pháo Hoa) vũ khí đầy cấp + sở hữu passive tương ứng → mở **Rương Báu Vật** (rơi từ quái Tinh Anh & Trùm) để tiến hóa (VD: Đũa Phép + Siêu Dẫn ⇒ 🌟 Bão Thần Tín). - **13 vật phẩm bị động** (sát thương, giáp, HP, hồi máu, hồi chiêu, diện tích, tốc đạn, thời gian, di chuyển, nam châm, may mắn, tham lam, tuệ tăng). - **10 nhân vật** mở khóa dần (thêm 🏹 Hana chí-mạng & 🧱 Bram diện-tích), kèm **🎨 skin màu** mua bằng vàng. - **Đạo quái theo phút**: 8 loại quái thường (đuổi, bắn, bay lượn, húc, chia màn…), quái **Tinh Anh** định kỳ, và **4 Trùm lớn** ở phút 5/10/19: 🐺 Sói Đầu Lớn → 💀 Pháp Sư Xương → 👹 Quái Vật Địa Ngục → ⚰ **Tử Thần**. Hạ Tử Thần ở phút 19 để **chiến thắng**. - Hiệu ứng trạng thái: cháy, làm chậm, đóng băng (kèm sát thương vỡ băng), choáng, đẩy lùi, hút máu. - Chí mạng, số sát thương nổi, hạt hiệu ứng, rung màn hình, mũi tên chỉ trùm ngoài màn hình. ### Tiến trình & tùy chọn - **Meta-progression**: vàng tích lũy vĩnh viễn, cửa hàng **12 nâng cấp vĩnh viễn** (có hồi sinh, bốc lại…). - Lưu tự động bằng `localStorage` (khóa `neon_survivors_v1`), kèm nút xóa dữ liệu. - **Tùy chọn đầy đủ**: âm lượng chung/nhạc/SFX, rung màn hình, số sát thương, chất lượng hạt (Thấp/Vừa/Cao), hiện FPS, tự tạm dừng khi mất tiêu điểm, **ngôn ngữ Việt/Anh** chuyển tức thì, **fullscreen**, **remap phím di chuyển**. - Bách khoa toàn thư (Codex): xem toàn bộ vũ khí/passive/quái/trùm/nhân vật + điều kiện mở khóa. - Màn hình tổng kết: thời gian, kills, vàng, cấp độ, kỷ lục cá nhân. - Chơi được trên **desktop lẫn mobile** (joystick ảo), responsive theo DPR; cài được như app (PWA). ### 🆕 Phase 1 — thương mại hóa - **3 biome**: 🪦 Nghĩa Địa Neon → ❄️ Hang Băng (mở ở mốc 10 phút) → 🌋 Vực Magma (mở sau 1 thắng); mỗi biome có bảng quái, kế hoạch trùm, palette và hệ số HP/vàng riêng. - **Chế độ Vô tận (∞)** + **4 bậc độ khó** (I → 💀): HP/sát thương tăng, vàng thưởng tăng. - **⚡ Thử thách hôm nay**: seed theo ngày UTC — cả thế giới chơi cùng 1 màn (nhân vật/stage cố định), lưu kỷ lục ngày. - **🏆 23 thành tựu** gắn tiến trình thật, popup vàng + tab riêng trong Codex. - **💎 Đèn pha lê phá được** rơi quanh bản đồ → xu + gà. - **📜 Lịch sử 20 ván gần nhất** + tổng hợp (tỉ lệ thắng, nhân vật chủ lực). - **💾 Xuất/Nhập save** dạng mã base64 (chuyển máy). - **Tutorial tương tác** lần đầu chơi + mẹo trùm. - **Gamepad** (stick trái/D-pad/A/Start), perf: viewport culling + object pool particle. - **🥇 Bảng xếp hạng**: scaffold Cloudflare Worker KV (`server/lb-worker.js` + `wrangler.toml`) — điền URL vào Tuỳ chọn là tự submit/top; chữ ký checksum chống sửa tay (client↔worker khớp 100%). ## 🔓 Gợi ý mở khóa | Nhân vật | Điều kiện | |---|---| | Mira | Diệt tổng cộng 500 quái | | Bolt | Sống sót đến phút 10 | | Luna | Kiếm tổng cộng 2.000 vàng | | Rook | Hạ trùm đầu tiên (phút 5) | | Nyx | Sống sót đến phút 15 | | Sera | Thắng 1 ván | | Vane | Diệt tổng cộng 5.000 quái | ## 🧪 Kiểm thử (dành cho dev) ```bash node test/integrity.js ``` Bộ test headless kiểm tra tính toàn vẹn dữ liệu (tiến hóa, bảng spawn, song ngữ VN/EN, bảng stat) và **mô phỏng 2.5 phút chiến đấu thật** trong sandbox VM: bắn, chết, rớt đồ, lên cấp, mở rương tiến hóa, não AI của cả 4 trùm, i-frame và dòng chết. ## 📁 Cấu trúc ``` index.html entry point css/style.css theme neon tối js/ util.js toán học, RNG, spatial grid broadphase i18n.js từ điển VI/EN save.js localStorage meta-progression audio.js tổng hợp SFX + nhạc nền generative (WebAudio) data.js TOÀN BỘ nội dung: vũ khí/passive/quái/trùm/cửa hàng entities.js Player / Enemy / Proj / Pickup / Particle… systems.js spawn director, AI, combat, pickups, level-up, chest render.js vẽ canvas (nhân vật vector, hiệu ứng, vignette) ui.js menu / HUD / modal DOM game.js vòng lặp, trạng thái, input, camera test/integrity.js bộ test headless ``` Chúc bạn sống sót qua phút thứ 19! ⚰️🔥