Polestar
Polestar is a free, open-source leveling guide addon for WoW: Forever: an in-game arrow and leveling routes that make sense for every race 1 to 60, plus class quests.
NBA 篮球杀:篮球主题身份卡牌游戏原型
Translation pending
GamesJavaScript · CSSGitHub @11010tianyiOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗一个篮球主题身份卡牌游戏原型。规则参考三国杀的身份局、回合制、手牌、距离、响应链、判定和濒死救援结构,但角色、牌名、技能、音效和场面反馈都改成篮球语境。
当前版本已经包含完整单机 AI 局、4-8 人身份配置、局域网房间、三套人物形象、三档 AI 难度、三档 AI 出牌节奏、五套球场背景、两套增强音效、聊天快捷语、球星专属金色发言、倒计时、手动弃牌、拖拽排序和移动端/iPad 适配。
非官方球迷作品,仅用于学习和原型演示。项目不隶属于 NBA、球队或球员本人。
需要 Node.js。推荐直接用内置服务器启动,这样局域网房间和音频资源都能正常工作:
npm start
启动后终端会输出类似:
NBA Basketball Kill: http://127.0.0.1:4173/
LAN: http://192.168.x.x:4173/
本机打开 127.0.0.1 地址;同一 Wi-Fi 下的 iPad、手机或其他电脑打开 LAN 地址即可加入局域网房间。
基础检查:
npm run check
仓库包含 GitHub Actions 工作流,会在 main 分支推送后自动部署静态版:
https://11010tianyi.github.io/nba-basketball-kill/
Pages 静态版适合体验单机 AI 局、规则、角色、卡牌和界面适配。局域网房间依赖 server.mjs 的 WebSocket 服务,仍需在本机运行 npm start 后通过终端输出的 LAN 地址访问。
项目用 Capacitor 把现有静态页面包进 Android WebView,没有额外的打包器。capacitor.config.json 的 webDir 是 www/:npm run mobile:web 会把 index.html、app.js、styles.css 和 assets/ 复制进去,并带上卡牌背景清单。页面里的相对路径保持不变,所以单机 AI、本地音效和卡牌图在安装包里都能离线打开,不依赖 GitHub Pages,也不需要 npm start。
篮球杀com.tianyi.nbabasketballkill安装包里的开局页只保留单机 AI。局域网房间仍然留在网页和 npm start 里;安装包没有内置房间服务器,如果还显示创建/加入房间,点下去只会失败。真人现场照片仍会向 Wikimedia 要图,离线时会回退到拟人卡,不影响开局。
可安装的 debug APK 会发到 GitHub Releases,文件名是 nba-basketball-kill-vX.Y.Z-debug.apk(第一次是 nba-basketball-kill-v1.0.0-debug.apk):
https://github.com/11010tianyi/nba-basketball-kill/releases
Build Android debug APK workflow 在 main 上改到游戏或 Android 配置时自动构建,也可以手动 workflow_dispatch。它用 GITHUB_TOKEN 建一个新的 Release,这是长期下载地址。同一次构建还会上传名为 nba-basketball-kill-debug-apk 的 Actions artifact,那份文件大约 90 天后过期。只改文档不会触发这个 workflow,GitHub Pages 的部署也不受影响。
版本标签在 assembleDebug 之前根据已有 git tag 计算,并写入 APK 的 versionName / versionCode。workflow 不会把版本号提交回仓库:
vMAJOR.MINOR.PATCH tag 时,第一次发布是 v1.0.0。package.json 的版本号不参与计算。v1.0.3。versionName 是去掉 v 的标签,versionCode 是 major * 1000000 + minor * 1000 + patch。签名用仓库 secret ANDROID_DEBUG_KEYSTORE_BASE64。workflow 在 assembleDebug 之前把它解码到 runner 的 $HOME/.android/debug.keystore,Gradle 按 keytool 读到的密钥库类型显式使用这个文件和别名 androiddebugkey。AGP 默认会在自己的偏好目录里找 debug 密钥;只要 XDG_CONFIG_HOME 指向别的已存在目录,它就会另造一把钥匙,已安装的包就会报签名不一致。构建前会记下证书 SHA-256,并把密钥库改成不可写。构建后如果 APK 的 v2 证书 SHA-256 和这个指纹不同,或者密钥库在构建过程中被换掉,任务失败,不会发布。secret 缺失、为空、不是合法 base64,或不是 Android 默认 debug 密钥时,任务也会直接失败。仓库里不要提交 keystore 或密码。手机上如果还装着这次修复之前的安装包,需要先卸载一次;之后的版本可以覆盖安装。
需要 JDK 21 和 Android SDK 36。本机如果还没有 ~/.android/debug.keystore,Gradle 会为这次本机构建生成一把,它只留在你的用户目录里,不要提交。CI 不会这样做。
npm install
npm run android:apk
APK 输出位置:
android/app/build/outputs/apk/debug/app-debug.apk
只同步 Web 资源、不打包时:
npm run android:sync
assets/cards/*/ 自定义卡牌背景包现役与近现代球星:
历史级与中国球员:
每名球员有体能、位置、标签和专属技能。技能已接入结算,例如库里的三分牵制、姚明的盖帽摸牌、科比的额外进攻、奥尼尔/字母哥的强攻双响应、邓肯的减伤、易建联的三分距离和罚球收益等。
玩家身份:
人数配置会随 4-8 人自动调整挑战者、队友和独狼数量。每局开局会随机分配身份,玩家不一定总是核心;核心身份公开,其他身份只对自己可见。核心阵营清除全部挑战者和独狼后获胜;挑战者让核心离场后获胜;独狼需要在残局中单独取胜。
奖惩:
终场后会弹出比赛结果,可以返回首页、按当前设置重开,或随机人数和球星重新开局。
如果同一批人连续多轮都没有人离场(场上只剩两人时再过一轮,人更多时再过六轮),比赛进入绝杀时间:护臂和邓肯的减伤失效,暂停和冠军戒指也不能再阻止离场。这样残局不会被减伤和续命牌拖住。
距离按场上存活玩家的座位最短距离计算。
目标不在距离内时无法被选择,界面会提示距离原因;AI 出牌同样遵守距离。
进攻响应:
战术响应:
AI 现在分为“节奏”和“难度”两套设置。
节奏:
难度:
当前 AI 能读到规则层面的身份与角色定位,用于模拟三国杀式身份局的站队与背刺压力。它还不是完整推理 AI,下一步可以加入“AI 意图图标”和更细的身份怀疑值。
部分牌会翻开牌堆顶一张作为判定牌。
已接入判定:
基础 / 进攻:
战术:
装备:
房间流程:
联机规则:
形象模式:
portrait:拟人卡通球星卡,默认模式classic:保留早期简洁球衣形象photo:真人现场照片模式,使用 Wikimedia Commons 的公开图片链接;加载失败会自动回退到拟人卡指定形象:
http://127.0.0.1:4173/?avatar=portrait
http://127.0.0.1:4173/?avatar=classic
http://127.0.0.1:4173/?avatar=photo
音效:
球场现场音效来自 UnstuntedSFX 免费 royalty-free 声音库,包括 Basketball Swish、Basketball Bounce、Whistle、Crowd Cheer 和 Crowd Applause。许可说明见 https://unstuntedsfx.net/license
新增音效事件:
两套音效都覆盖这些事件:街机模式用 Web Audio 合成,现场模式用本地真实片段组合。
This is the beginning of the README. Read the rest at the original. Read the full README ↗