feedback5: version 0.2.0 — package.json / package-lock.json / APP_VERSION (DEV_BUILD turns false, so the title-screen dev tag and the boot warning go too), README (the dev-branch warning removed, the badge, the version line), CHANGELOG 0.2.0 dated 2026-10-07, the zip and download sizes re-measured; golden unchanged
- CHANGELOG 0.2.0: the integrator's draft brought up to date with what merged after it (30d9a41..2e83a6b and DESIGN §25.13–§25.21): the language packs and the ja / ko / zh-TW game texts (§25.20), the rebindable shortcuts (§25.15), the community reports of W5AA (§25.14) and CB1–CB5 (§25.16–§25.19, §25.21) under the draft's sections (rules, UI, lobby; the official behaviours and the reports not reproduced under 核实后不是问题), the owner's 乌尔比安 revive-tile decision of 2026-10-07 under the deviations section (renamed 有意与官方不同的调整, the intro points at it); PRs #189 / #191 credited to @2321Robin as reused ideas; the draft's notes block left out. - Sizes (tools/package.mjs, a real build of both zips, deleted after measuring): full zip 448 525 731 bytes (~430 MB, 16 031 files, 625 MB unpacked; was ~400 / 590), lite zip 22 927 271 bytes (~22 MB; was ~21), the setup download 463 MB (~460 MB; was ~440: the 自选 voices) — README 方式一 / 方式二 / 系统要求 / English summary, DEPLOY §0 / §1.1 / §3, the CHANGELOG's lite size. - DESIGN §25 intro, §25.19 and §25.19.7: the custom-hotkey request (item 48) was built in §25.15, the battle-history request (item 22) stays postponed by the owner; §25.20: with five languages the menu is a list (buttons up to four). - Tests: version 6 / 6, docs-consistency 24 / 24, docs-paths 7 / 7, package 10 / 10, client-static 313 / 313, i18n 10 / 10, i18n-data 8 / 8, i18n-packs 12 / 12, i18n-server 5 / 5; npm run golden ok (roster 49, bonds 46, fields 22, matches 18, standins 10, diy 138); lint 0 errors.
This commit is contained in:
1 parent
13b52450d6
commit
6aeee5ff70
7 files changed
+159
-38
No files matched your search
+124
@@ -1,5 +1,129 @@
|
||||
# 更新记录
|
||||
|
||||
## 0.2.0 — 2026-10-07
|
||||
|
||||
0.2.0 是一个大版本:加入了补位、自选编队、英文界面、日文 / 韩文 / 繁体中文的游戏文本和自定义快捷键,按官方数据和 PRTS 修正了一批规则,并修复了社区和 GitHub 上反馈的问题;同时为了便于维护和接受贡献,把代码里最大的几个文件拆开了(拆分不改变玩法,有一套固定种子的「黄金结果」逐项核对)。0.1.4 的全部修复都已移植到新的代码结构。规则对照官方数据和 PRTS 核对;查不到出处的标了推断,详见 DESIGN §25([docs/history/0.2.0.md](docs/history/0.2.0.md))。有意和官方不同的几条单独写在「有意与官方不同的调整」里。
|
||||
|
||||
### 新功能
|
||||
|
||||
- **补位**:在「干员调配」新增的「干员持有」页标出自己没有的干员(特许干员以外的普通干员都可以标,默认全部持有),开局后这些干员由官方的补位干员上场:8 名预备干员,以及郁金香、Sharp、Mechanist、Stormeye、Pith、Touch、Raidian、Misery、领主·Sharp。盟约、特质、阶级、价格和合成仍按原干员;补位干员的技能、天赋和模组按官方数据实现。商店、手牌、临时整备区、棋盘、详情卡和结算里显示的都是补位干员本人,带一个小的「替补」标记;作战中补位干员用自己的语音(预备干员不说话)。人机持有全部干员。
|
||||
- **自选编队**:在「干员调配」新增的「自选编队」页,为 5 阶、6 阶各选 2 名自己拥有的 6★ 干员(也可以选技能和模组固定的预备干员),三个技能任选,精锐时可选模组。调度中心升到 5 级 / 6 级后,这些干员只出现在你自己的商店里(每人单独的库存,不进公共卡池),随机获得干员的效果也会抽到它们;没有特质,盟约按干员自己的阵营计入。带召唤物的干员(麦哲伦、令、电弧、白铁、望、多萝西等)放下后,召唤物按官方数量进入手牌。自选干员作战时也用自己的语音。联动干员不在可选范围内。
|
||||
- 目前可选的 71 名 6★ 干员,技能、天赋和模组都按官方数据完整实现:推进之王、陈、艾丽妮、赫拉格、闪灵、夜莺、嵯峨、艾雅法拉、刻俄柏、霍尔海雅、早露、提丰、娜仁图亚、逻各斯、真言、维伊、左乐、重岳、煌、黑、鸿雪、伊芙利特、谬因、林、年、斩业星熊、珊比、森蚺、斥罪、黍、帕拉斯、止颂、贝洛内、W、菲亚梅塔、维什戴尔、棘刺、赤刃明霄陈、司霆惊蛰、薇薇安娜、怒潮凛冬、赫德雷、假日威龙陈、莱伊、阿斯卡纶、涤火杰西卡、机械师、凯尔希、琴柳、可露希尔、澄闪、阿、傀影、弑君者、老鲤、温蒂、望、多萝西、予愿安洁莉娜、黑键、麦哲伦、令、电弧、淬羽赫默、遥、酒神、白铁、娜斯提、死芒、凯尔希·思衡托、Mon3tr。只在集成战略、生息演算里生效的模组(ISW-A、SO-A、SO-B、RA-A)不能选。
|
||||
- **英文界面**:标题页右上角和「设置」里可以切换中文 / English,默认中文,切换后当前画面立即刷新。界面文字全部有英文;干员、技能、敌人、盟约、机变卡等游戏文本使用官方英文数据;服务器的提示和播报也按每位玩家自己的语言显示。切到英文后仍显示中文的只有玩家名字(人机的名字也是)、多轮悬赏改写过的「接下来两场作战」说明、官方英文服还没有的文本(部分自选干员和较新的模组),以及「玩法说明」的官方中文教程图(标题有英文)。界面译文的基础来自 PR #70(感谢 @YuriRestia)。
|
||||
- **日本語、한국어、繁體中文**:干员、技能、敌人、盟约等游戏文本使用官方日服、韩服、台服的数据,约 91%–97% 的文本有官方译文。界面文字还没有翻译:日文、韩文暂时显示英文界面,繁体中文显示简体中文界面,缺少官方译文的游戏文本也是如此;欢迎社区翻译界面(docs/I18N.md)。
|
||||
- **语言包**:把一个语言文件放进语言文件夹,游戏就会提供这种语言,不用改代码,服务器运行中放入也会出现在语言菜单里;没翻译的文字依次用它声明的后备语言和中文显示。添加语言的步骤和检查工具见 docs/I18N.md。
|
||||
- **自定义快捷键**:「设置 → 快捷键」里可以修改刷新、冻结、升级、撤退、出售和准备就绪(独立模拟作战中是暂停)的按键:点一下再按新键,和别的操作冲突时两者互换,可以恢复默认;默认按键和 0.1.4 相同,Esc 不能改(社区请求)。
|
||||
- **精简包**:Releases 除了附带全部素材的完整包,还提供约 22 MB 的精简包,第一次启动时从公开镜像下载素材。两个包都只放运行需要的文件,不再附带测试、设计文档和研究笔记。
|
||||
|
||||
### 有意与官方不同的调整
|
||||
|
||||
- 技能开启后攻击范围会变大的技能(如野鬃二技能、银灰三技能、莫斯提马三技能、薄绿一技能、玛恩纳二技能、安洁莉娜三技能,共 39 个),敌人进入变大后的范围就释放,不再等敌人走进原本的攻击范围;深巡二技能也按这条。
|
||||
- 补位的重装(预备干员-重装、Mechanist)和自选的重装干员,攻击范围内有敌人就释放技能,不用等受到攻击(与 0.1.1 起的深巡、雷蛇等相同)。
|
||||
- 只作用于自己或友军的自动技能,技力满就释放,不再等有敌人:浊心斯卡蒂二技能、纯烬艾雅法拉一技能、伺夜二技能等(GitHub #124 的后续)。
|
||||
- 效果作用在召唤物范围上的技能,敌人进入场上召唤物对应的范围时也会释放:麦哲伦一技能(龙腾的范围,含空中)、令三技能(每个召唤物周围的十字范围,仅地面)、电弧二技能(赛柯的范围,仅地面)和三技能(桑特拉的范围,含空中),不再只等敌人走进干员自己的攻击范围(维护者 2026-10-06 的决定)。
|
||||
- 望:本模式里放在棋盘上的棋子原本不占她的持有库存,技能叠到上限 7 枚后一直阻回,整场只能放一次。现在场上的棋子占用库存,棋子退场会回到库存、原地再部署时再占一枚,库存满时退场一枚就会降到 6 枚,技能整场都能循环释放(维护者 2026-10-06 的决定,与本模式「不消耗持有数量」的说明不同)。
|
||||
- 乌尔比安三技能【移动】后被击倒时,回到自己的部署位倒地,并在那里再部署,不再留在【移动】后的位置(社区反馈;维护者 2026-10-07 的决定。PRTS 的规则是在倒下的位置再部署,这里只对他的三技能例外)。
|
||||
|
||||
### 规则(按官方)
|
||||
|
||||
- 整备区 10 格都满时,不能再购买或领取干员(凑成合成的第三张也不行);一空出格子,临时整备区的干员会自动补进来(GitHub #82,感谢 @Hucxious)。
|
||||
- 联防阶段改用官方的联防专用地图,不再沿用本回合的战场,水池、箱子和特殊地形都不会出现(GitHub #41,感谢 @Hucxious、@shanzhaikabi)。
|
||||
- 敌人的攻击在攻击动作的伤害帧才生效:伤害帧之前被晕眩、冻结、沉睡、浮空、缴械或恐惧,这一下会被打断,例如忍冬三技能的短暂晕眩(GitHub #187、#170)。
|
||||
- 秘术师(深靛等)在攻击判定时就蓄能,不再多等一个攻击间隔(GitHub #181,感谢 @Paper-Yuan)。
|
||||
- 生命回复速度不再算作治疗:吟游者(魔王等)、调香师、瑕光二技能、铃兰三技能、锡人的持续回复,对禁疗和「无法被友方治疗」的干员同样有效,也不吃治疗加成(GitHub #96、#137;区分方式由 PR #135 提出,感谢 @SpiritedAwayCN)。
|
||||
- 突袭:开着的被动技能(缄默德克萨斯、宴、斯卡蒂二技能等)算作「技能就绪」,成员会立即跳到地面敌人身边(GitHub #49)。
|
||||
- 伺夜的狼群按官方有「战术点形态」:失去最后一只狼影后不会消失,25 秒后带 1 只狼影满血归来。一技能只在狼群在场时释放,并按狼群的状态生效(形态中立即归来、加一只狼影、满层时回满生命);二技能在战术点形态时也能释放,馈赠留给归来的狼群。
|
||||
- 武者(宴等)的特性回血改为每造成一次伤害都触发,且不受自身禁疗影响。
|
||||
- 同一名干员身上的多个庇护不再相乘,只取最高的一个(宴、余、缪尔赛思等)。
|
||||
- 链愈师(莎草等)的治疗链在上一个目标周围 3×3 内跳跃,满血的友军也会被经过。
|
||||
- 强攻手、重剑手、推击手以及写着「同时攻击阻挡的所有敌人」的技能,最多同时攻击阻挡数个目标,被阻挡的敌人优先。
|
||||
- 琳琅诗怀雅二技能的香槟炸弹扔向 x-6 范围内敌人所在的格子,附近没有敌人时也会放置(GitHub #116)。
|
||||
- 新硎 / 沉沙持有断刃时只有一层攻击力加成,最后一把断刃用掉后加成消失,不再越打越高(GitHub #107)。
|
||||
- 策略「Touch」(外勤医疗)召来的 Touch:三技能的额外治疗单独计算并享受加成,低于一半生命才提升治疗量,攫升、超脱的触发补全;补位的 Touch 用同一套实现。
|
||||
- 华法琳的模组治疗加成在目标恰好 50% 生命时也生效(按客户端数据;瑕光、古米、塞雷娅等仍是低于 50%)。
|
||||
- 塑心特质每场战斗的层数上限是整体共用的,最高盟约换了也不会重新计算(PR #178 评审中发现)。
|
||||
- 泥岩三技能前 10 秒的「闭锁」按 PRTS 是强制缴械 + 无敌 + 不可阻挡:这段时间里她不再阻挡敌人,原本挡住的敌人会继续前进,醒来后才重新阻挡。
|
||||
- 突袭盟约的近战干员跳到地面敌人身边时,优先落在能阻挡敌人的格子(敌人路线经过、不是围墙的地面格,或目标敌人所站的格子),只有没有这样的格子时才会落到围墙上,高台仍然不会落(GitHub #148;官方只说「再部署至一名地面敌人周围」,落点按维护者 2026-10-06 的决定)。
|
||||
- 华法琳赋予的特质叠层上限按客户端数据为每场 7 层(精锐 14 层):官方 3 月 27 日的调整是「从 12/24 降低至 7/14」,此前误按 12/24 实现(GitHub #175,PR #192,感谢 @FrogThai、@kukiC)。
|
||||
- 拟态物质:已有精锐和两名初始、卡池里也没有这名干员的复制时,什么都不给,不再随机给一名同盟约干员(GitHub #207,感谢 @ishtar1314)。
|
||||
- 拉普兰德:本回合新合成的精锐算新的一只,合成后的第一次主动刷新 +8(GitHub #169,感谢 @FrogThai)。
|
||||
- 首领血量改为「数据表的血量 × 开战时存活的人数」:独立模拟按 1 人计算,是此前的 4 倍;同盟模拟按开战时存活的玩家人数(含人机和托管,最多 4 人),取代此前的固定血量。隐秘核心「胄」的无人机造成的 2% 伤害不再被单次伤害上限取消(PR #209,感谢 @qingjingshenghuo)。
|
||||
- 孤岛风云的囚犯出场时是禁锢的灰色模型,第 3 次攻击前开始闪烁警告,第 4 次攻击前解放,第 4 下就按解放后的攻击力计算(社区反馈)。
|
||||
- 悬赏敌人被地形等无来源伤害击倒时,联防里也照样给赏金,归它倒下的那半场的玩家(社区反馈)。
|
||||
- 用升华、博士投影把场上的自选召唤类干员原地升为精锐时,召唤物会补足到精锐的数量(麦哲伦、令、望)。
|
||||
- 刺玫二技能期间,只有反击触发的特性治疗给被保护的干员,其余攻击照常治疗范围内血量最低的友军(包括她自己);此前技能期间的治疗全给了被保护的干员,哪怕对方满血(社区反馈)。
|
||||
- 琳琅诗怀雅一技能也会治疗她自己(社区反馈)。
|
||||
- 琳琅诗怀雅的「破财消灾」每次部署都从 5 费重新算(开局、再部署、突袭再部署),再部署后不再沿用翻倍后的费用(社区反馈;PRTS 备注)。
|
||||
- 赫默二技能「医疗无人机」技力满就释放,医疗探机立即上场,不用等有友军受伤;库存满时技力停止回复(社区反馈)。
|
||||
- 限时召唤物(赫默的医疗探机、巫恋的诅咒娃娃、浊心斯卡蒂的海嗣,以及自选干员的工程蓄水炮、沙地兽、“打字机”、本能的召唤)不会受到伤害(包括活性源石)、不会被治疗,血条显示剩余时间(社区反馈)。
|
||||
- 砾的普通攻击是两段各 50% 的伤害(总伤害不变),「频次」类敌人每次被她攻击减 2(社区反馈;PRTS 特性备注)。
|
||||
- 乌尔比安三技能只会移动到自己棋盘上的格子,联防时不会再跳到红门后,也不会落到领袖战场的另一半(社区反馈)。
|
||||
- 「受到攻击时」触发的反击对敌人造成的每一次伤害都生效,不只是普通攻击:菲莱二技能会反击深溟巢涌者的脉冲,星熊、泡泡、刺玫、余、玛恩纳、年、斩业星熊同理(社区反馈)。
|
||||
- 复活(策略「埃芒加德」的命结之秘、M3茧甲)按 PRTS 是被击倒后立即在原地免费再部署:被击倒时和部署时的效果都会触发(如砾、瑕光的叠层),部署后限时生效的技能重新开始(带这类技能的突袭成员复活后会立刻突袭)(社区反馈)。
|
||||
- 敌人身上的两次寒冷合成一次冻结后不再留下寒冷:谢拉格盟约的寒风不会再从 51 层起把敌人一直冻到战斗结束,冻结时间随层数增长(社区反馈;PRTS 术语释义)。
|
||||
- 策略「佩佩」升级调度中心得到的特殊刷新要按正常刷新价格付费,不再免费(社区反馈)。
|
||||
- 策略「凯瑟琳」的定向投放可以刷出任意阶级的商店装备,不再只有不高于调度中心等级的(社区反馈:原版 1 级升 2 级也可能出 6 阶装备)。
|
||||
- 选了策略「Touch」时,炎盟约的炎佑不再占掉外勤医疗的医疗干员的位置,两者可以同时出场(社区反馈)。
|
||||
- 突袭成员只会跳到自己棋盘范围内的格子:领袖战场上不会落到手牌和临时整备区那两排,也不会跳到联防或领袖战场的另一半(社区反馈)。
|
||||
- 被沉默的萨卡兹枯朽战士倒下时不再留下污染秽蚀(社区反馈;PRTS「死亡爆炸」默认可被沉默)。
|
||||
- 萨卡兹穿刺手被晕眩或束缚时停止加速、加速层数清零(减速不会清零,和官方一样);被阻挡后的第一下额外造成「当前移动速度 × 600」的物理伤害,然后停止加速(社区反馈)。
|
||||
- 自制投石机「索敌不受阻挡影响」:被站在排气格栅上(隐匿)的干员阻挡、范围内又没有别的干员时不会攻击,和原版一样;其他敌人仍会攻击阻挡自己的隐匿干员(社区反馈)。
|
||||
- 升级调度中心后,新增的商品栏位立即放上新卡,不用等下一次刷新(社区反馈;官方教程「升级后将出现更多的商品栏位」)。
|
||||
|
||||
### 界面
|
||||
|
||||
- 「干员调配」新增「干员持有」「自选编队」两页,都可以导出 / 导入。
|
||||
- 自选干员的卡片和棋子带「自选」标记,补位干员带「替补」标记。
|
||||
- 自选干员因为本局禁用了它的全部盟约而不会出现在商店时,开局简报、选择策略时的本局信息和对局中的本局信息都会写明。
|
||||
- 39 个召唤物(多数是自选干员的召唤物,另有凯瑟琳的爬行号·防护单元和凛御银灰的风雪之眼)在公开素材源里没有战斗模型,以前只显示头像;现在从游戏客户端提取官方模型,整合包已带,从源码运行的服务器重新运行一次 `npm run setup -- --local` 即可(另有 5 个召唤物在游戏里本来就没有模型)。
|
||||
- 飞行单位按官方离地约 1.3 格;帝国炮火先兆者纵向拉伸、木制瑞印左右镜像,和官方模型一致(PR #211,感谢 @xcdoge)。
|
||||
- 联机开局简报的顶栏在手机和英文界面下不再压住「自选编队」标签。
|
||||
- 模组的「特性追加」接在基础特性后面显示(干员调配、局内数值、详情卡和自选编队的模组),不再只显示追加的那一句;作战效果一直是对的(社区反馈)。
|
||||
- 持续的范围特效(如炼金单元)叠在一起时不再越叠越亮(社区反馈)。
|
||||
- 结算卡不再显示调和、协防干员、独行、绝技的层数:这几个盟约照常累计层数,官方也不显示(社区反馈)。
|
||||
- 银灰的普通攻击使用自己的命中音效,不再借用三技能的挥砍和命中音效;雷蛇、初雪、圣约送葬人的普通攻击也不再用技能的命中音效(社区反馈)。
|
||||
|
||||
### 联机与大厅
|
||||
|
||||
- 干员持有和自选编队按座位保存,开局时固定;对局进行中修改的设置留到下一局生效。
|
||||
- 被淘汰后观战(以及观战席)会一直跟着上次查看的玩家,每回合开始不再跳回自己的空棋盘;没查看过时跟随第一位仍在场的玩家,人机也算(社区反馈;思路来自 PR #189,感谢 @2321Robin)。
|
||||
- 观战领袖回合的休整期时,看到的是领袖战场和站在那里的领袖,不再是没有领袖的普通棋盘(社区反馈)。
|
||||
- 最终攻势和隐秘核心的休整期,像作战时一样把同组两名玩家放在同一个战场上(队友的一半只能看),从回合开始到作战结束,左侧队伍栏用官方的绿框标出同组两人(社区反馈;参考了 PR #191,感谢 @2321Robin)。
|
||||
|
||||
### 人机
|
||||
|
||||
- 人机和 AI 托管不会在整备区满时购买;为了凑第三张会先卖掉最弱的单张。
|
||||
- AI 托管更倾向购买玩家自己的自选干员,并会提前一回合升级调度中心;人机自己不使用补位和自选。
|
||||
|
||||
### 从 0.1.4 移植
|
||||
|
||||
- 0.1.4 的全部修复都已移植到新的代码结构,内容见下方 0.1.4 的记录。再次感谢这些 PR 的作者:@sunstricken(#69、#66)、@SpiritedAwayCN(#176、#114)、@shanzhaikabi(#115)、@Sukvii(#109)、@salt-fishes(#119)、@LongQianChen(#103)、@2321Robin(#129、#150)、@CELLOPOI(#149、#146)、@Convey123(#185、#110、#72、#73、#134、#74、#127)、@zasx77771(#183)、@xcdoge(#160)、@Cloudnyco(#186)、@NekoTC(#24),以及 @Hucxious 对沉睡阻挡的实测(GitHub #140)。
|
||||
- 移植时顺带修好:结算语音从来不播放的问题(补位、自选干员用自己的声音说结算台词);限时技能运行期间,突袭成员同样算「技能就绪」(PR #109 与 GitHub #49 的规则衔接);0.1.4 的沉睡规则也用在自选干员上:酒神的迷狂牢笼不会挡住沉睡的敌人,死芒二技能让敌人沉睡时,被她的仆役挡住的敌人同样脱离阻挡。
|
||||
|
||||
### 工具与开发
|
||||
|
||||
- 为了便于维护,最大的几个文件按职责拆成了多个模块:服务器入口、对局、玩家状态、战斗引擎、敌人、干员技能(每名干员一个文件)、界面逻辑和战斗特效,玩法不变。
|
||||
- 新增「黄金结果」:一套固定种子的场景(每名干员的每个技能和模组、每个盟约、每个领袖和联防、完整的人机对局、每名补位和自选干员),改动玩法时必须同时更新,并说明哪些场景变了。
|
||||
- 新增 ESLint(只检查正确性)、类型检查和导入边界检查(战斗模拟不能引用服务器专用代码),GitHub Actions 会运行。
|
||||
- 新增 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)(代码地图)和 [CONTRIBUTING.md](CONTRIBUTING.md)(怎样参与贡献、怎样添加自选干员)。
|
||||
- 新增打包工具:`npm run package` 生成完整包,`npm run package:lite` 生成精简包(docs/DEPLOY.md 第 7 节);只打包运行需要的文件,打包前检查拒绝名单、导入、清单里的素材是否齐全、只差大小写的路径,以及文件里有没有个人目录路径。
|
||||
- 素材清单 `data/assets.json`:去掉了已移出自选的焰狐龙梓兰的素材;模组类型图标统一用小写文件名(dec-X 和 dec-x、WAH-Y 在 Windows / macOS 不区分大小写的磁盘上会冲突);加入了 71 名自选干员的作战语音(994 条,约 25 MB)。
|
||||
- 界面文字的检查进了测试:没有经过 `t()` 的中文、没有英文翻译的界面文字都会让测试失败(docs/I18N.md)。
|
||||
- 设计文档拆分:docs/DESIGN.md 变成索引,现行规则按领域放在 docs/design/,各次试玩和各版本的规则修订放在 docs/history/,章节号不变,代码和文档里的「DESIGN §N」照常可查。
|
||||
- 每局要加载约 340 个脚本模块,远程联机时建议在反向代理上开启 HTTP/2(见 docs/DEPLOY.md)。
|
||||
|
||||
### 核实后不是问题
|
||||
|
||||
- 单人标准模拟商店的价格(1 / 1 / 5 / 8 / 10,之后每回合减 1)与官方一致(GitHub #116 第 1 点)。
|
||||
- 险境及以上,开局展示的三种敌人类型合计出现 7–9 波、每种 1–3 波,其余是特异敌人:这就是官方的排布(社区反馈;文档补充了说明)。
|
||||
- 策略「鸭爵」每波把 0–2 名敌人换成鸭爵等,一波出现两只鸭子是官方规则(社区反馈)。
|
||||
- 会移动的领袖(铳、卢西恩)在每个领袖战场上都按官方路线移动,各领袖按数据里的攻击间隔攻击(社区反馈)。
|
||||
- 烛煌携带坚固维式重锤时两种锁血都会生效:先触发她的天赋,倒地后再受到致命伤害才轮到重锤的锁血(社区反馈;维护者 2026-10-07 决定保持这个顺序)。
|
||||
- 寻呼模块、简易通讯机给的干员不高于当前调度中心等级,所以用在缪尔赛思身上要到 6 级才会给(调和盟约只有她,Ⅵ阶),按官方保留(社区反馈;维护者 2026-10-07 的决定)。
|
||||
- 本局禁用的盟约在每个难度都一样,只移除全部盟约都被禁用的干员;炎佑也会受到源石溶剂「每秒受到 60 真实伤害」的效果(PRTS 备注);两名变形同构体变成的阿戈尔照常吞噬(社区反馈)。
|
||||
- 伺夜的狼群最多 3 只狼影,吟游者的特性可以回复战术家召唤物和不屈者的生命,荒芜拉普兰德三技能期间由无人机攻击、本人不普攻,叙拉古的恐惧概率,都和官方一致;突袭的玛恩纳攻击范围内有敌人时不突袭,是盟约原文的规则(社区反馈)。
|
||||
- 以下没有复现,需要具体的对局(干员、地图、回合或录像):野鬃把敌人顶出地图、锏拉动领袖、昆图斯占地变小、炼金单元没有伤害、归溟幽灵鲨被吞噬时进入再部署、炎佑被空中单位阻挡、选 Pith 策略时联防里阿戈尔的加成被清空、满血时源石溶剂不生效(社区反馈)。
|
||||
|
||||
## 0.1.4 — 2026-10-06
|
||||
|
||||
0.1.3 之后的小版本:合并了多位贡献者的 PR,修正了高台和阿戈尔的规则,并修正了文档和测试。下一个版本(0.2.0)会做一次便于维护的重构、多语言支持,以及补位和自选编队。
|
||||
|
||||
@@ -1,13 +1,8 @@
|
||||
# 卫戍协议:盟约 · Stronghold Protocol: Alliance
|
||||
|
||||
> [!WARNING]
|
||||
> **开发版(dev 分支):不稳定,请勿用于公开服务器。** 这里是 0.2.0 的开发中代码,规则、数据和存档格式随时会变,可能有未发现的问题。想玩或开服请使用 [Releases](../../releases/latest) 页面的正式版整合包,或 `master` 分支。反馈问题时请注明「dev」和版本号(标题页底部、启动横幅和 `/healthz` 都会显示 `0.2.0-dev`)。开发版与正式版在同一地址下共用浏览器里保存的设置和登录信息,来回切换后如果界面异常,清除这个网站的数据即可。开发版不提供整合包。
|
||||
>
|
||||
> *Development branch: unstable — do not run it as a public server. Rules, data and saved settings may change at any time. Play or host the latest release (or the `master` branch) instead; when you report a bug from this branch, say "dev" and the version shown on the title screen. It shares the browser's saved settings with a release served at the same address — clear the site's data if the interface misbehaves after switching. No release zips are built from this branch.*
|
||||
|
||||
《明日方舟》季节性自走棋塔防玩法「卫戍协议:盟约」的**非官方同人复刻**:浏览器即开即玩,单人或 1–4 人联机合作。
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
@@ -42,7 +37,7 @@ English summary: [below](#english).
|
||||
|
||||
- **独立模拟**(单人)与**同盟模拟**(1–4 人**合作**,没有 PvP;空位可以加 AI 队友)。
|
||||
- 服务器是一个 Node.js 程序,**战斗在各玩家的浏览器里模拟**(和官方一样),服务器只管经济与回合,一台低功耗小主机就能开服。
|
||||
- 本分支是 0.2.0 开发版(未发布);最新正式版是 0.1.4,见 [CHANGELOG.md](CHANGELOG.md)。仍有少数规则按推断实现,与官方不一致的地方欢迎在 Issue 里反馈。
|
||||
- 当前版本 0.2.0:加入了补位、自选编队、英文界面(另有日文、韩文、繁体中文的游戏文本)和自定义快捷键,并修复了 0.1.4 发布后玩家和 GitHub 上反馈的问题,详见 [CHANGELOG.md](CHANGELOG.md)。仍有少数规则按推断实现,与官方不一致的地方欢迎在 Issue 里反馈。
|
||||
|
||||
## 功能一览
|
||||
|
||||
@@ -69,8 +64,8 @@ English summary: [below](#english).
|
||||
|
||||
[Releases](../../releases/latest) 里有两种整合包,代码和运行依赖完全相同,二选一:
|
||||
|
||||
- **完整包** `Stronghold-Protocol-v<版本>.zip`(约 400 MB,解压后约 590 MB):附带全部美术 / 音频(含官方 3D 棋盘贴图),解压就能玩,不需要再下载任何东西。**推荐。**
|
||||
- **精简包** `Stronghold-Protocol-v<版本>-lite.zip`(约 21 MB):不带素材,第一次启动时自动从公开镜像下载美术、Spine 模型、音频、字体、表情和「玩法说明」教程图(约 440 MB,可中断,再次启动会续传);官方 3D 棋盘等本地客户端素材不在其中(见下面的「本地客户端素材」)。适合下载大文件不方便的情况。
|
||||
- **完整包** `Stronghold-Protocol-v<版本>.zip`(约 430 MB,解压后约 625 MB):附带全部美术 / 音频(含官方 3D 棋盘贴图),解压就能玩,不需要再下载任何东西。**推荐。**
|
||||
- **精简包** `Stronghold-Protocol-v<版本>-lite.zip`(约 22 MB):不带素材,第一次启动时自动从公开镜像下载美术、Spine 模型、音频、字体、表情和「玩法说明」教程图(约 460 MB,可中断,再次启动会续传);官方 3D 棋盘等本地客户端素材不在其中(见下面的「本地客户端素材」)。适合下载大文件不方便的情况。
|
||||
|
||||
两种包都只含运行和部署需要的文件(服务器、客户端、数据、启动脚本、setup / doctor / 素材下载工具、许可证与说明、[docs/PLAYING.md](docs/PLAYING.md) 和 [docs/DEPLOY.md](docs/DEPLOY.md));测试、开发工具和设计文档只在源码仓库里。
|
||||
|
||||
@@ -90,7 +85,7 @@ English summary: [below](#english).
|
||||
git clone https://github.com/sganggs/Stronghold-Protocol.git
|
||||
cd Stronghold-Protocol
|
||||
npm install # 安装依赖(postinstall 会把 pixi / preact / three 复制到 public/vendor)
|
||||
npm run setup # 检查环境,并从公开镜像下载约 440 MB 美术 / 音频(可中断,再次运行会续传)
|
||||
npm run setup # 检查环境,并从公开镜像下载约 460 MB 美术 / 音频(可中断,再次运行会续传)
|
||||
npm start # 启动服务器:http://localhost:3000
|
||||
```
|
||||
|
||||
@@ -104,7 +99,7 @@ npm start # 启动服务器:http://localhost:3000
|
||||
|
||||
| 项目 | 要求 |
|
||||
|---|---|
|
||||
| 开服的电脑 | Windows / macOS / Linux,Node.js 22 或 24(LTS);磁盘约 600–750 MB(素材、依赖与本地提取贴图:完整包解压后约 590 MB);内存空闲约 100 MB,每局再加几 MB |
|
||||
| 开服的电脑 | Windows / macOS / Linux,Node.js 22 或 24(LTS);磁盘约 600–750 MB(素材、依赖与本地提取贴图:完整包解压后约 625 MB);内存空闲约 100 MB,每局再加几 MB |
|
||||
| 玩家 | 支持 WebGL 的现代浏览器(Chrome / Edge / Firefox / Safari 最新版),电脑、手机或平板(横屏) |
|
||||
| 网络 | 首次进入游戏时,每位玩家要从开服的电脑下载几十 MB 素材(之后走浏览器缓存);对局中流量很小 |
|
||||
|
||||
@@ -250,7 +245,7 @@ GOLDEN_FULL=1 node --test test/golden.test.js # 黄金结果:固定
|
||||
|
||||
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 full bundle `Stronghold-Protocol-v<version>.zip` (~400 MB, all the art inside) from [Releases](../../releases/latest) — or the lite one, `…-lite.zip` (~21 MB), which downloads the art (~440 MB) on its first start — install Node.js 22 or 24, then double-click `scripts\start-windows.bat` (Windows) or run `./scripts/start.sh` (macOS / Linux) and open <http://localhost:3000>. From source: `npm install && npm run setup && npm start` (setup downloads ~440 MB of art from public mirrors, the emotes and the how-to-play pages included; the official 3D board, some official HUD icons and two enemy models are extracted from a local Arknights client — without one the game uses the 2D board and look-alike stand-ins, and a server can copy `public/assets/local/` and `data/local-assets.json` from the full bundle of the same version).
|
||||
- **Run:** download the full bundle `Stronghold-Protocol-v<version>.zip` (~430 MB, all the art inside) from [Releases](../../releases/latest) — or the lite one, `…-lite.zip` (~22 MB), which downloads the art (~460 MB) on its first start — install Node.js 22 or 24, then double-click `scripts\start-windows.bat` (Windows) or run `./scripts/start.sh` (macOS / Linux) and open <http://localhost:3000>. From source: `npm install && npm run setup && npm start` (setup downloads ~460 MB of art from public mirrors, the emotes and the how-to-play pages included; the official 3D board, some official HUD icons and two enemy models are extracted from a local Arknights client — without one the game uses the 2D board and look-alike stand-ins, and a server can copy `public/assets/local/` and `data/local-assets.json` from the full bundle of the same version).
|
||||
- **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).
|
||||
- **Disclaimer:** not affiliated with or endorsed by Hypergryph or Yostar. All Arknights names, art, audio, text and data are © their respective owners and are **not** covered by this project's GPL licence. For study and personal non-commercial use only — no selling, paid distribution, paid servers or monetisation of any kind. Content will be removed on request of the rights holders. Provided "as is", without warranty.
|
||||
- **License:** code GPL-3.0-or-later ([LICENSE](LICENSE)); game assets excluded.
|
||||
|
||||
+5
-5
@@ -10,7 +10,7 @@
|
||||
| 服务器 CPU | 战斗在各玩家浏览器里模拟(DESIGN §14),服务器只负责回合、经济和校验:**每个房间每个作战回合约 1 ms CPU**。AI 队友 / 掉线玩家的战场由服务器模拟:作战开始时 3 个 AI 战场在开发机上约 0.2–0.5 s CPU,小主机上可能要几秒(分成 8 ms 小片执行,不会卡住其他房间)。`SP_VERIFY=all` 会复算每个真人战场,CPU 明显增加,小主机建议保持 `off` 或 `sample`。 |
|
||||
| 服务器内存 | 空闲约 100 MB,每个进行中的对局再增加几 MB。 |
|
||||
| 网络 | 4 人对局中服务器每回合下行约 0.25 MB(DESIGN §14 实测)。首次进入游戏时浏览器要从主机下载所需的图片 / Spine 模型 / 音频(按需加载,之后走浏览器缓存),公网隧道带宽小时第一次会慢一些。 |
|
||||
| 磁盘 | 素材约 440 MB(`public/assets`)+ 依赖约 125 MB(`node_modules`;整合包只带运行依赖,约 65 MB);可选的本地提取约 40 MB(`.venv-extract`)+ 70 MB 贴图(见第 6 节)。完整包解压后约 590 MB。 |
|
||||
| 磁盘 | 素材约 460 MB(`public/assets`)+ 依赖约 125 MB(`node_modules`;整合包只带运行依赖,约 65 MB);可选的本地提取约 40 MB(`.venv-extract`)+ 70 MB 贴图(见第 6 节)。完整包解压后约 625 MB。 |
|
||||
| 玩家设备 | 支持 WebGL 的现代浏览器(Chrome / Edge / Firefox / Safari 最新版),电脑或手机平板(横屏)。老旧设备可在设置里调低画质或访问 `/?board=2d`。 |
|
||||
|
||||
服务器**无状态**:房间和对局只存在内存里,没有数据库和存档,**不需要备份**。重启服务器会结束正在进行的对局(包括断线后本可在 24 小时内回来继续的独立模拟)。
|
||||
@@ -26,13 +26,13 @@
|
||||
```
|
||||
装完**关闭并重新打开**终端,`node -v` 应显示 v22 或更高(winget 的 LTS 目前是 v24.x,同样可用)。没有 winget 时从 <https://nodejs.org/zh-cn/download> 和 <https://git-scm.com/download/win> 下载安装。
|
||||
2. 下载,三选一。建议放在一个固定、短、**不在 OneDrive 同步范围内**的目录,例如 `C:\Stronghold-Protocol`:
|
||||
- **完整包(推荐)**:在仓库的 [Releases](https://github.com/sganggs/Stronghold-Protocol/releases) 页面下载最新版本的 `Stronghold-Protocol-v<版本>.zip`(约 400 MB,解压后约 590 MB;已含运行依赖、前端库和全部素材,包括官方 3D 棋盘等本地客户端素材),解压后把里面的 `Stronghold-Protocol` 文件夹放到上述位置。不需要 Git,首次启动也不用再下载素材。素材版权归上海鹰角网络 / Yostar,仅限非商业使用,见 [NOTICE.md](../NOTICE.md)。
|
||||
- **精简包**:同一页面的 `Stronghold-Protocol-v<版本>-lite.zip`(约 21 MB)。代码、运行依赖和前端库与完整包相同,但不带素材:美术、Spine 模型、音频、字体、表情和「玩法说明」教程图在首次启动时由 setup 从公开镜像下载(约 440 MB,显示进度,可中断续传;镜像设置见下面的「国内镜像下载」)。官方 3D 棋盘等本地客户端素材需要用本机客户端提取,或从同一版本的完整包复制(第 6 节)。适合下载大文件不方便、或想先下一个小包的情况;放置方式同完整包。
|
||||
- **完整包(推荐)**:在仓库的 [Releases](https://github.com/sganggs/Stronghold-Protocol/releases) 页面下载最新版本的 `Stronghold-Protocol-v<版本>.zip`(约 430 MB,解压后约 625 MB;已含运行依赖、前端库和全部素材,包括官方 3D 棋盘等本地客户端素材),解压后把里面的 `Stronghold-Protocol` 文件夹放到上述位置。不需要 Git,首次启动也不用再下载素材。素材版权归上海鹰角网络 / Yostar,仅限非商业使用,见 [NOTICE.md](../NOTICE.md)。
|
||||
- **精简包**:同一页面的 `Stronghold-Protocol-v<版本>-lite.zip`(约 22 MB)。代码、运行依赖和前端库与完整包相同,但不带素材:美术、Spine 模型、音频、字体、表情和「玩法说明」教程图在首次启动时由 setup 从公开镜像下载(约 460 MB,显示进度,可中断续传;镜像设置见下面的「国内镜像下载」)。官方 3D 棋盘等本地客户端素材需要用本机客户端提取,或从同一版本的完整包复制(第 6 节)。适合下载大文件不方便、或想先下一个小包的情况;放置方式同完整包。
|
||||
- **源码**:
|
||||
```powershell
|
||||
git clone https://github.com/sganggs/Stronghold-Protocol.git C:\Stronghold-Protocol
|
||||
```
|
||||
3. 双击 `C:\Stronghold-Protocol\scripts\start-windows.bat`。首次会:安装依赖(`npm ci`;整合包已含,跳过)→ 复制前端库(整合包已含,跳过)→ 下载约 440 MB 素材(完整包已含,跳过;精简包和源码在这一步下载,显示进度,中断后再次启动会续传)→ 若检测到本机的明日方舟客户端,询问是否提取官方贴图(可跳过)→ 启动服务器并打开浏览器。
|
||||
3. 双击 `C:\Stronghold-Protocol\scripts\start-windows.bat`。首次会:安装依赖(`npm ci`;整合包已含,跳过)→ 复制前端库(整合包已含,跳过)→ 下载约 460 MB 素材(完整包已含,跳过;精简包和源码在这一步下载,显示进度,中断后再次启动会续传)→ 若检测到本机的明日方舟客户端,询问是否提取官方贴图(可跳过)→ 启动服务器并打开浏览器。
|
||||
4. 窗口里会打印朋友可用的地址,例如 `http://192.168.1.23:3000`。用另一台设备打开它确认能进入。关闭窗口即停止服务器。
|
||||
|
||||
等价的手动命令:`npm ci`、`node tools/setup.mjs`、`npm start`。
|
||||
@@ -204,7 +204,7 @@ https / wss 说明:页面通过 https 打开时客户端自动连接 `wss://
|
||||
## 3. Docker
|
||||
|
||||
```bash
|
||||
# A) 构建时下载素材(需要联网,约 440 MB)
|
||||
# A) 构建时下载素材(需要联网,约 460 MB)
|
||||
docker build -t stronghold-protocol --build-arg FETCH_ASSETS=1 .
|
||||
docker run -d --name stronghold -p 3000:3000 --restart unless-stopped stronghold-protocol
|
||||
|
||||
|
||||
+19
-17
@@ -41,7 +41,8 @@ swaps in one wave already answered; the moving leaders' routes checked; 野鬃,
|
||||
reproduced) → §25.18; CB5, match flow and UI (a module's 特性追加 line after the class trait, the new shop slot filled at
|
||||
the upgrade, an eliminated player following a player through every round, the boss field and its leader in a watcher's
|
||||
boss prep, the pair together in the boss prep with the official green frames; PRs #189 / #191 reused, not merged; the
|
||||
battle-history and hotkey requests left to the owner) → §25.19; language packs, the first type of content packs (a
|
||||
battle-history request postponed by the owner, the hotkey request built in §25.15) → §25.19; language packs, the first
|
||||
type of content packs (a
|
||||
language is a file in the language folder) → §25.20; the last stream of that batch, CB1, bonds, strategies and items (the
|
||||
谢拉格 wind's endless freeze, 埃芒加德's and M3茧甲's 复活 as a knock-out and a free redeploy, 佩佩's paid refresh, the 炎佑 on
|
||||
the medic's slot, 凯瑟琳's offer, the hidden layers on the result card; the official behaviours pinned) → §25.21.
|
||||
@@ -1554,8 +1555,8 @@ briefing types' share of the waves).
|
||||
|
||||
### 25.19 Community reports of 2026-10-06, stream CB5: match flow and UI — `ui/loadoutModel.js traitLines`, `player/economy.js _openLevelSlots`, `match/watch.js _followScout`, `match/views.js prepFieldMeta / bossMateView`, `render/app.js syncMates`, `ui/gameLogic/camera.js teamFrameIds`
|
||||
|
||||
CB5 took the items about the match flow and the screens (16.2, 19, 51, 55, 56 of the list; 22 and 48 are features the
|
||||
owner has not decided — what each would take is at the end). Each was reproduced first (a script, or the real server in
|
||||
CB5 took the items about the match flow and the screens (16.2, 19, 51, 55, 56 of the list; 22 and 48 are feature
|
||||
requests — 22 postponed by the owner, 48 built in §25.15 —, both at the end). Each was reproduced first (a script, or the real server in
|
||||
headless Chrome for the screens), checked against the official data, PRTS and the official tutorial pages, then fixed in
|
||||
one commit with its tests; two open community PRs were reused without merging them (§25.19.6).
|
||||
|
||||
@@ -1653,19 +1654,20 @@ one commit with its tests; two open community PRs were reused without merging th
|
||||
`bossPairing` field; #191's 联防 frames and the phase banner naming the partner are not built. If the owner still wants
|
||||
them, they can go on top of this.
|
||||
|
||||
#### 25.19.7 Not built — what the two feature requests would take (the owner has not decided)
|
||||
#### 25.19.7 The two feature requests: battle history postponed by the owner, custom hotkeys built (§25.15)
|
||||
|
||||
- **22 战绩 / 分队胜率**: the result is already complete (`m.result`: per-player stats, lineup, band, bonds, titles, rounds
|
||||
passed, victory — `server/match/results.js`). With no accounts the simplest is per browser: append a compact record at
|
||||
`m.result` to localStorage (capped, e.g. the last 200; only matches of ≥ 2 rounds, as asked), a 战绩 screen in the lobby
|
||||
(list, win rate per strategy / core bond / mode and difficulty, 导出 / 导入 like the loadout), tests and i18n — no
|
||||
server change. Server-side history needs persistence and an identity the remake does not have. Decisions: browser-only
|
||||
or not; what 「分队」 groups by (strategy, core bond, lineup); the sample cap.
|
||||
- **48 自定义快捷键**: the keys are fixed in `ui/gameLogic/shortcuts.js shortcutFor` (R 刷新, F 冻结, D 升级, Q 撤退, X 出售,
|
||||
Space 准备 / 暂停, Esc). It would take a 快捷键 section in 设置 (capture a key per action, conflicts refused, 恢复默认),
|
||||
a sanitised map in the settings (`sanitizeSettings`), `shortcutFor` reading it, every `<kbd>` hint and tooltip reading it
|
||||
too, i18n and tests. Decision: whether to allow it at all (the official PC client's keys are fixed as far as the data
|
||||
shows: `pc_key_holder` hints).
|
||||
- **22 战绩 / 分队胜率** — postponed by the owner; what it would take: the result is already complete (`m.result`:
|
||||
per-player stats, lineup, band, bonds, titles, rounds passed, victory — `server/match/results.js`). With no accounts the
|
||||
simplest is per browser: append a compact record at `m.result` to localStorage (capped, e.g. the last 200; only matches
|
||||
of ≥ 2 rounds, as asked), a 战绩 screen in the lobby (list, win rate per strategy / core bond / mode and difficulty,
|
||||
导出 / 导入 like the loadout), tests and i18n — no server change. Server-side history needs persistence and an identity
|
||||
the remake does not have. Decisions left for then: browser-only or not; what 「分队」 groups by (strategy, core bond,
|
||||
lineup); the sample cap.
|
||||
- **48 自定义快捷键** — built in 0.2.0: §25.15 (W5AC; the community request 「快捷键可不可以自己设置」, the owner's decision of
|
||||
2026-10-07). 设置 → 快捷键 rebinds 刷新, 冻结, 升级, 撤退, 出售 and 准备就绪 / 暂停 (Esc stays fixed); the key map lives in
|
||||
the settings (`sanitizeSettings`) and `shortcutFor`, the facing wheel and every key hint read it. One difference from
|
||||
the estimate that stood here: a key another action has is swapped, not refused. The official PC client's keys are
|
||||
fixed as far as the data shows (`pc_key_holder` hints), so the shortcuts are the remake's own.
|
||||
|
||||
### 25.20 Language packs: a language is a file in the language folder, the first type of content packs (W5AD; the owner's decisions of 2026-10-07) — `shared/packs.js`, `shared/i18nPacks.js`, `shared/i18n.js`, `shared/i18nData.js`, `server/packs.js`, `server/http/static.js`, `public/js/ui/lang.js`, `public/js/data.js`, `tools/i18n.mjs`, `tools/packs.mjs`, `tools/build-i18n.mjs`, `tools/package.mjs`, docs/I18N.md §5, docs/PACKS.md
|
||||
|
||||
@@ -1715,8 +1717,8 @@ one commit with its tests; two open community PRs were reused without merging th
|
||||
`ko.json`, `zh-TW.json` built with `build-i18n --lang` (ja 96.5 %, ko 97.4 %, zh-TW 91.1 %) and minimal UI packs
|
||||
`public/i18n/ja.json`, `ko.json`, `zh-TW.json` — a `_meta` manifest (its own and English name, credits: the official
|
||||
client data via ArknightsAssets) and no UI strings yet: `ja` / `ko` fall back to English, `zh-TW` to the Simplified
|
||||
Chinese UI (no fallback — the owner's choice; [ASSUMED] numbers in 萬 / 億). The menu shows the five languages as
|
||||
buttons. UI translations are welcome from the community (docs/I18N.md §5 "Shipped packs").
|
||||
Chinese UI (no fallback — the owner's choice; [ASSUMED] numbers in 萬 / 億). With five languages the menu is
|
||||
a list (buttons up to four). UI translations are welcome from the community (docs/I18N.md §5 "Shipped packs").
|
||||
- **The output in Chinese and English did not change**: `test/i18n-packs.test.js` renders every msgid of
|
||||
`public/i18n/en.json` in both languages with sample params and compares it with the renderer of 0.2.0 before packs;
|
||||
`node tools/build-i18n.mjs --check` still finds `data/i18n/en.json` up to date. One English entry was added, the tab
|
||||
|
||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "stronghold-protocol-alliance",
|
||||
"version": "0.2.0-dev",
|
||||
"version": "0.2.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "stronghold-protocol-alliance",
|
||||
"version": "0.2.0-dev",
|
||||
"version": "0.2.0",
|
||||
"hasInstallScript": true,
|
||||
"license": "GPL-3.0-or-later",
|
||||
"dependencies": {
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "stronghold-protocol-alliance",
|
||||
"version": "0.2.0-dev",
|
||||
"version": "0.2.0",
|
||||
"private": true,
|
||||
"description": "明日方舟「卫戍协议:盟约」非官方同人联机网页复刻(1–4 人合作,Node.js 服务器 + 浏览器客户端)",
|
||||
"license": "GPL-3.0-or-later",
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ import { N_ } from './i18n.js';
|
||||
export const PROTOCOL_VERSION = 1;
|
||||
/** Release version shown to players (title screen, server banner, /healthz). Kept equal to package.json "version"
|
||||
* (test/version.test.js); PROTOCOL_VERSION above is the separate wire-format number. */
|
||||
export const APP_VERSION = '0.2.0-dev';
|
||||
export const APP_VERSION = '0.2.0';
|
||||
/** A development build (the public `dev` branch): the title screen, the boot banner and the README say so, and
|
||||
* tools/package.mjs refuses to build a release zip from it without --allow-dev. */
|
||||
export const DEV_BUILD = /-dev$/.test(APP_VERSION);
|
||||
|
||||
Reference in new issue
Block a user