diff --git a/README.md b/README.md index 3f80b1f8..d23c3018 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# 卫戍协议:盟约 · Stronghold Protocol: Covenant +# 卫戍协议:盟约 · Stronghold Protocol: Alliance 《明日方舟》季节性自走棋塔防玩法「卫戍协议:盟约」的**非官方同人复刻**:浏览器即开即玩,单人或 1–4 人联机合作。 @@ -230,7 +230,7 @@ RENDER_E2E=1 node --test 'test/render/*.browser.test.js' # 渲染测试,部 ## English -An **unofficial, non-commercial fan remake** of Arknights' seasonal auto-chess tower-defense mode *Stronghold Protocol: Covenant*, played in the browser: solo, or 1–4 player co-op (AI teammates can fill seats). Combat is simulated in each player's browser, so a low-power PC can host. +An **unofficial, non-commercial fan remake** of Arknights' seasonal auto-chess tower-defense mode *Stronghold Protocol: Alliance*, played in the browser: solo, or 1–4 player co-op (AI teammates can fill seats). Combat is simulated in each player's browser, so a low-power PC can host. - **Run:** download the all-in-one bundle from [Releases](../../releases/latest), install Node.js 22 or 24, then double-click `scripts\start-windows.bat` (Windows) or run `./scripts/start.sh` (macOS / Linux) and open . From source: `npm install && npm run setup && npm start` (setup downloads ~250 MB of art from public mirrors; the official 3D board needs a local Arknights client to extract, otherwise the 2D board is used). - **Play with friends:** create a co-op room and share the 4-letter key or the `?room=KEY` link. On a LAN, use the address printed at start; otherwise use a virtual-LAN tool, a tunnel or a VPS — see [docs/DEPLOY.md](docs/DEPLOY.md). diff --git a/package-lock.json b/package-lock.json index ff4fe741..61dbc6fc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { - "name": "stronghold-protocol-covenant", + "name": "stronghold-protocol-alliance", "version": "0.1.1", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "stronghold-protocol-covenant", + "name": "stronghold-protocol-alliance", "version": "0.1.1", "hasInstallScript": true, "license": "GPL-3.0-or-later", diff --git a/package.json b/package.json index 94f122ae..170786f4 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "stronghold-protocol-covenant", + "name": "stronghold-protocol-alliance", "version": "0.1.1", "private": true, "description": "明日方舟「卫戍协议:盟约」非官方同人联机网页复刻(1–4 人合作,Node.js 服务器 + 浏览器客户端)", diff --git a/server/index.js b/server/index.js index f1aa6525..4e24bb71 100644 --- a/server/index.js +++ b/server/index.js @@ -639,7 +639,7 @@ async function main() { else console.error('[boot] failed to start', e); process.exit(1); } - console.log(`\n 卫戍协议:盟约 · Stronghold Protocol: Covenant v${APP_VERSION}`); + console.log(`\n 卫戍协议:盟约 · Stronghold Protocol: Alliance v${APP_VERSION}`); console.log(` Local: ${srv.url}`); if (srv.host === '0.0.0.0' || srv.host === '::') { for (const u of lanUrls(srv.port)) console.log(` LAN: ${u}`); diff --git a/test/version.test.js b/test/version.test.js index 16e95b1e..9f3c7eeb 100644 --- a/test/version.test.js +++ b/test/version.test.js @@ -37,10 +37,25 @@ test('the release version is what players see', () => { assert.match(read('public/js/screens/title.js'), /v\$\{APP_VERSION\}/, 'title screen footer'); assert.ok(!/PROTOCOL v1/.test(read('public/js/screens/title.js')), 'no protocol number posing as a version'); const server = read('server/index.js'); - assert.match(server, /Stronghold Protocol: Covenant v\$\{APP_VERSION\}/, 'boot banner'); + assert.match(server, /Stronghold Protocol: Alliance v\$\{APP_VERSION\}/, 'boot banner'); assert.match(server, /app: APP_VERSION/, '/healthz'); }); +test('the English title is the official one: Stronghold Protocol: Alliance (GitHub issues #38 / #42)', () => { + // EN client data, activity_table basicInfo.act2autochess.name = "Stronghold Protocol: Alliance" (CN 卫戍协议:盟约); + // the project used to call it "Covenant". The Chinese title stays 卫戍协议:盟约; the repository keeps its name. + const readme = read('README.md'); + assert.match(readme.split('\n')[0], /^# 卫戍协议:盟约 · Stronghold Protocol: Alliance$/, 'README title'); + assert.match(readme, /mode \*Stronghold Protocol: Alliance\*/, 'README English summary'); + assert.match(read('server/index.js'), /卫戍协议:盟约 · Stronghold Protocol: Alliance v/, 'boot banner'); + assert.equal(pkg.name, 'stronghold-protocol-alliance'); + assert.equal(lock.name, pkg.name); + assert.equal(lock.packages[''].name, pkg.name); + for (const f of ['README.md', 'server/index.js', 'package.json', 'package-lock.json', 'NOTICE.md', 'public/index.html', 'docs/DEPLOY.md']) { + assert.ok(!/covenant/i.test(read(f)), `${f}: no "Covenant" title left`); + } +}); + test('GPL-3.0-or-later: LICENSE, package metadata and notices', () => { const license = read('LICENSE'); assert.match(license.slice(0, 200), /GNU GENERAL PUBLIC LICENSE\s+Version 3, 29 June 2007/);