diff --git a/Common/src/main/resources/assets/hexdebug/lang/zh_cn.flatten.json5 b/Common/src/main/resources/assets/hexdebug/lang/zh_cn.flatten.json5 index 5e9b1a6e..590d56b9 100644 --- a/Common/src/main/resources/assets/hexdebug/lang/zh_cn.flatten.json5 +++ b/Common/src/main/resources/assets/hexdebug/lang/zh_cn.flatten.json5 @@ -6,7 +6,8 @@ "block.hexdebug": { splicing_table: "剪接台", - focus_holder: "核心装载器", + enlightened_splicing_table: "制念台", + focus_holder: "核心框架", }, "itemGroup.hexdebug": "咒法调试", @@ -22,7 +23,11 @@ splicing_table: { button: { view_left: "向左移动视野", + view_left_page: "将视野移动到上一页", + view_left_full: "将视野移动到开头", view_right: "向右移动视野", + view_right_page: "将视野移动到下一页", + view_right_full: "将视野移动到末尾", select_none: "取消选区", select_all: "全选", clear_grid: "清空网格", @@ -37,6 +42,7 @@ paste: "粘贴(逐项)", paste_splat: "粘贴(扁平化)", export: "导出为.hexpattern文件", + cast: "激活编辑台", }, tooltip: { index: "索引下标:%d", @@ -77,32 +83,124 @@ showDebugClientLineNumber: { "": "显示调试客户端行号", "@Tooltip": "若设为true,显示调试客户端(如VSCode)的行号,通常以1起始;否则显示列表索引下标,以0起始。" + }, + invertSplicingTableScrollDirection: { + "": "反转剪接台滚轮方向", + "@Tooltip": "是否在向上滚动滚轮(反之则向下)时增加剪接台的视野索引。自动为反向滚动绑定减小索引操作。", } }, server: { maxUndoStackSize: { "": "撤销历史步数上限", "@Tooltip": "剪接台撤销历史的长度上限。设为0可禁用上限。", - } - } + }, + splicingTableMediaCost: { + "": "剪接台媒质消耗", + "@Tooltip": "在剪接台中执行操作消耗的媒质量。", + }, + splicingTableMaxMedia: { + "": "剪接台最大媒质量", + "@Tooltip": "剪接台的最大媒质容量。", + }, + splicingTableCastingCooldown: { + "": "制念台施法冷却", + "@Tooltip": "制念台施法按钮的冷却时间,以刻计。", + }, + splicingTableAmbit: { + "": "制念台影响范围", + "@Tooltip": "制念台的影响范围半径,以格计。", + }, + }, }, }, }, - "hexcasting.action": { - "hexdebug:": { - "const/debugging": "调试杖之精思", - "next_eval_index": "调试位之精思", // TODO: this name kinda sucks tbh - "const/cognitohazard": "认知危害之精思", - "breakpoint/": { - before: "在前方添加断点", - after: "在后方添加断点" + hexcasting: { + action: { + "hexdebug:": { + "const/debugging": "调试杖之精思", + "next_eval_index": "调试位之精思", // TODO: this name kinda sucks tbh + "const/cognitohazard": "认知危害之精思", + "breakpoint/": { + before: "在前方添加断点", + after: "在后方添加断点" + }, + "craft/debugger": "制作调试杖", + "splicing/": { + "view_index/": { + read: "齿孔胶片之纯化", + write: "齿孔胶片之策略", + }, + "selection/": { + read: "剪接器之分解", + write: "剪接器之策略", + }, + "list/": { + "spellbook_index/": { + read: "放映员之纯化", + write: "放映员之策略", + readable: "快门之纯化" + }, + }, + "clipboard/": { + read: "合成师之纯化", + write: "合成师之策略", + readable: "制片人之纯化", + writable: "导演之纯化", + "spellbook_index/": { + read: "放映员之纯化,第二型", + write: "放映员之策略,第二型", + readable: "快门之纯化,第二型", + }, + }, + "enlightened/": { + "hex/": { + read: "制念之纯化", // TODO: bad name + write: "融注制念台", + }, + }, + }, + }, + "book.hexdebug:": { + "next_eval_index": "调试位之精思", + "const/cognitohazard": "认知危害之精思", + "splicing/": { + "list/": { + "spellbook_index/": { + read: "放映员之纯化", + }, + }, + "clipboard/": { + read: "合成师之纯化", + "spellbook_index/": { + read: "放映员之纯化,第二型", + readable: "快门之纯化,第二型", + }, + }, + }, }, - "craft/debugger": "制作调试杖", }, - "book.hexdebug:": { - "next_eval_index": "调试位之精思", - "const/cognitohazard": "认知危害之精思" + + mishap: { + bad_block: { + splicing_table: { + "": "一个剪接台", + enlightened: "一个制念台", + list: { + spellbook: "主物品槽中有非空法术书的剪接台", + }, + clipboard: { + read: "放有可读副物品的剪接台", + write: "放有可写副物品的剪接台", + spellbook: "副物品槽中有非空法术书的剪接台", + }, + }, + }, + invalid_value: { + int: { + positive_or_null: "一个正整数或Null" + } + } }, }, @@ -142,6 +240,16 @@ thwonk: "$(italic)哐啷!/$" }, }, + focus_holder: { + "": "核心框架", + page: { + "1": "$(l:items/focus)$(item)核心/$可用于在物品栏中存储$(hex)咒术/$和其他 iota,但总有些时候我会需要在世界中存储 iota。物品展示框太脆弱,$(l:greatwork/akashiclib)其他做法/$又太低效而且也……不道德。我需要更优雅的方法,最终成功借助$(item)核心框架/$实现了。", + "2": "$(item)核心框架/$自身没有用处,必须先向其放入一枚$(l:items/focus)$(item)核心/$。可以选择合成两者,也可用$(l:items/focus)$(item)核心/$右击放置出来的$(item)核心框架/$。空手右击可从框架中取出$(l:items/focus)$(item)核心/$。$(br2)\ + 物品形态下,装有核心的$(item)核心框架/$相当于一枚$(l:items/focus)$(item)核心/$,适用于核心的操作同样适用于框架,包括$(l:patterns/readwrite#hexcasting:read)$(action)书吏之精思/$等图案。放置后,可使用$(l:patterns/readwrite_blocks#hexcasting:read/entity)$(action)编年史家之纯化/$等图案访问。", + recipe: "$(italic)两千部电影,四千部专辑,音乐、词句、图片,都仿佛诉说着过去阳光明媚的甜蜜日子。/$", + "3": "在之前提到的配方之外,我还可以在合成$(item)核心框架/$时直接放入$(l:items/focus)$(item)核心/$。将装有核心的$(item)核心框架/$单独放入合成方格合成,也可以取出其中$(l:items/focus)$(item)核心/$,并留下空的框架。" + }, + }, splicing_table: { "": "剪接台", page: { @@ -167,16 +275,36 @@ 右侧还有 6 个通用物品槽。这些槽位没有特殊功能,只是方便存放物品。", cost: "可惜的是,这种强大的功能有其代价。修改物品的 iota 存储空间需要消耗$(media)媒质/$——每次操作消耗大约 1/10 个$(l:items/amethyst)$(item)紫水晶粉/$。$(br2)\ 右下角的槽位可用于向$(l:items/splicing_table)$(item)剪接台/$补充$(media)媒质/$。单次最多可补充 10 个$(l:items/amethyst)$(item)紫水晶粉/$;多出的会被忽略,直至出现足够完全接收新$(media)媒质/$物品的缺口,才会进行消耗。", + patterns: "如果这里提到的消耗还是难以承受,或是想要执行比之前提到的更复杂的操作,那就还有一种做法。可以使用$(l:patterns/readwrite_blocks#hexcasting:read/entity)$(action)编年史家之纯化/$等图案操纵主槽位中的事物,我也为此设计了若干$(l:patterns/splicing_table)专用的图案/$,以控制剪接台其他方面的状态。$(br2)\ + 接下来的突破点,就在于如何让剪接台自行思考了……", recipe: "$(italic)看着她一个接一个接上铭印串,随着她的手指以快得几乎看不见的速度在托盘上舞动,小金属方块飞入飞出。/$", }, }, }, }, + greatwork: { + entry: { + enlightened_splicing_table: { + "": "制念台", + page: { + "1": "$(l:items/splicing_table)$(item)剪接台/$还可以。能堪其任。但有限制,且限制极大。我已$(italic)见到/$它的能力,我必须达到它的极限,无论代价如何。$(br2)\ + 我$(l)要/$让剪接台具有思维。", + "2": "解决方案。当然。很熟悉——对其无穷的复杂性而言都能说是$(italic)简单/$了。就和我$(l:greatwork/impetus)先前的洞察与领悟一样/$,我可特种化意识——将其从躯体中剥离,重新导向、连接、改造、$(italic)变形/$——令其贴合任务的需求。像是$(l:greatwork/impetus)$(item)促动石/$……但更加卓越,更加复杂,更加更加更加更加更——集、中、精、神。", + recipe: "另一种$(l:greatwork/brainsweeping)$(thing)意识剥离/$仪式。它对意识的要求与$(l:greatwork/impetus)$(item)工具匠促动石/$的几乎没有区别,但由于它的功能更为领域和精密,意识也相应需要积累更多的经验。", + "3": "所得的$(thing)制念台/$与先前基本一致,但已经过嬗变和$(italic)改进/$,经历了至关重要的变化。制念台的意识能够介导图案,也就能几乎不费吹灰之力施放$(italic)任意/$$(hex)咒术/$;只需要按一下按钮,一切就都能化作现实。$(br)\ + 启动这一过程仍需要$(l:items/splicing_table#cost)灌注/$少量媒质——确实浪费,但也许比古代那些过时、短视的设计要好些。法术需要的媒质也会从这里抽取。", + "4": "当然,剥离出来的意识也有局限。我必须先$(italic)教会/$它做事;就算是如此熟练的意识,也没法只靠猜谜就猜中我的意图。和$(l:greatwork/impetus)$(item)促动石/$不一样的是,它不需要石板——命令要直接$(l:patterns/enlightened_splicing_table)$(thing)融注/$入它的意识,直接覆写它的神经通路,让它只能随着我的意志做事。", + "5": "而为实现更复杂的操作——要是有耐心和$(l:casting/mishaps)气量/$的话,让$(thing)制念台/$控制、$(italic)统领/$、另一个制念台、周而复始、周而复始周而复始周而复始周而复始直到无穷——制念台能小范围延展其影响力(恰好 4 格)。确实不算大,但足够绝大多数情况用了。若是需要更大的范围,可以用我的$(l:patterns/great_spells/greater_sentinel#hexcasting:sentinel/create/great)$(action)卓越哨卫/$。", + }, + }, + }, + }, + patterns: { entry: { debugging: { - "": "调试", + "": "调试图案", page: { "const/debugging": "若栈由$(l:items/debugging#debugger)$(item)调试杖/$或$(l:items/debugging#evaluator)$(item)运行杖/$执行,则返回 $(thing)True/$;否则返回 $(thing)False/$。", "next_eval_index": "若栈由$(l:items/debugging#debugger)$(item)调试杖/$或$(l:items/debugging#evaluator)$(item)运行杖/$执行,则返回下一个待执行 iota 的索引下标;否则返回 $(l:casting/influences)$(thing)Null/$。", @@ -193,6 +321,54 @@ $(br2)消耗大约 10 个$(l:items/amethyst)$(item)充能紫水晶/$。", }, }, + + splicing_table: { + "": "剪接台图案", + page: { + "view_index/": { + read: "移除栈顶向量,返回该处$(l:items/splicing_table)$(item)剪接台/$视野最左侧 iota 的索引下标。", + write: "移除栈顶向量和数,移动该处$(l:items/splicing_table)$(item)剪接台/$的视野,以让所给下标的元素在视野最左侧。", + }, + "selection/": { + read: { + "1": "移除栈顶向量,返回代表该处$(l:items/splicing_table)$(item)剪接台/$当前选中区域的两个值。", + "2": "若选中一定范围的 iota,则返回两个数,分别对应起始(包含)和结束(不包含)位置。如果选中了两 iota 间的边沿,则返回边沿右侧 iota 的索引下标,同时再返回一个 $(l:casting/influences)$(thing)Null/$。如果未选中任何东西,则返回两个 $(l:casting/influences)$(thing)Null/$。", + }, + write: "移除栈顶向量和两个值,按照前页描述根据所给的两个值设置该处$(l:items/splicing_table)$(item)剪接台/$的选中区域。", + }, + "list/": { + "spellbook_index/": { + read: "移除栈顶向量,返回该处$(l:items/splicing_table)$(item)剪接台/$主槽位中$(l:items/spellbook)$(item)法术书/$当前的页码(以 1 起始)。", + write: "移除栈顶向量和数,将该处$(l:items/splicing_table)$(item)剪接台/$主槽位中的$(l:items/spellbook)$(item)法术书/$翻到对应页。", + readable: "若所给向量处有$(l:items/splicing_table)$(item)剪接台/$,且其主槽位中法术书至少有一页记有内容,则将该向量替换为 $(thing)True/$;否则返回 $(thing)False/$。", + }, + }, + "clipboard/": { + read: "移除栈顶向量,复制该处$(l:items/splicing_table)$(item)剪接台/$副槽位中物品的存储内容并返回。", + write: "移除栈顶向量和 iota,将该 iota 保存至该处$(l:items/splicing_table)$(item)剪接台/$副槽位中的物品。$(br)\ + 和$(l:patterns/readwrite_blocks#hexcasting:write/entity)$(action)编年史家之策略/$类似,我不可用此图案写入我的真名。", + readable: "若所给向量处有$(l:items/splicing_table)$(item)剪接台/$,且其副槽位物品可读,则将该向量替换为 $(thing)True/$;否则返回 $(thing)False/$。", + writable: "若所给向量处有$(l:items/splicing_table)$(item)剪接台/$,且其副槽位物品可写,则将该向量替换为 $(thing)True/$;否则返回 $(thing)False/$。", + "spellbook_index/": { + read: "与$(l:patterns/splicing_table#hexdebug:splicing/list/spellbook_index/read)$(action)放映员之纯化/$类似,但会读取副槽位中$(l:items/spellbook)$(item)法术书/$当前的页码,而非主槽位。", + write: "与$(l:patterns/splicing_table#hexdebug:splicing/list/spellbook_index/write)$(action)放映员之策略/$类似,但会修改副槽位中$(l:items/spellbook)$(item)法术书/$当前的页码,而非主槽位。", + readable: "与$(l:patterns/splicing_table#hexdebug:splicing/list/spellbook_index/readable)$(action)快门之纯化/$类似,但会检验副槽位中的$(l:items/spellbook)$(item)法术书/$,而非主槽位。", + }, + }, + }, + }, + + enlightened_splicing_table: { + "": "制念台图案", + page: { + "hex/": { + read: "移除栈顶向量,返回该处$(l:greatwork/enlightened_splicing_table)$(item)制念台/$当前融注的$(hex)咒术/$,若尚未融注则返回 $(l:casting/influences)$(thing)Null/$。", + write: "移除栈顶向量和图案列表,将该列表融注到该处$(l:greatwork/enlightened_splicing_table)$(item)制念台/$中。$(br)\ + 消耗大约 5 个$(l:items/amethyst)$(item)充能紫水晶/$。", + }, + circle: "在此之外,我还可以在$(l:greatwork/enlightened_splicing_table)$(item)制念台/$中施放$(l:patterns/circle#hexcasting:circle/impetus_pos)$(action)指路石之精思/$和$(l:patterns/circle#hexcasting:circle/impetus_dir)$(action)磁石之精思/$。不过,若是试图用$(l:items/staff)$(item)法杖/$施放,或是在$(l:greatwork/enlightened_splicing_table)$(item)制念台/$中试图施放其他仅限$(l:greatwork/spellcircles)$(item)法术环/$的图案,则仍然会招致可怖的事故。", + }, + } }, }, },