科技 Technology
科技是《饥荒联机版》制作系统中的配方门槛:配方要求角色拥有对应科技树等级,或靠近并激活能提供该等级的科技站。最常见的基础路线是先制作科学机器,再用它解锁炼金引擎与其他制作站。
概述
科技不是单独可拾取或消耗的物品,而是制作系统用来判断配方可用性的等级集合。每个配方在 recipes.lua 中带有一个科技等级表;制作时,角色当前可用科技树中的每一项都必须达到配方要求,否则不能制作。
科技分为多条彼此独立的树,包括 SCIENCE(科学)、MAGIC(魔法)、ANCIENT(远古)、CELESTIAL(天体)、SHADOW(暗影)、SEAFARING(航海)、SCULPTING(雕塑)、CARTOGRAPHY(制图)等;源码还定义了料理加工、钓鱼、地皮制作、锻造、节日商店等专用科技树。完整的可用科技树列表见 techtree.lua。
科技等级与配方判定
constants.lua 将常用门槛定义为 TECH.NONE、TECH.SCIENCE_ONE、TECH.SCIENCE_TWO、TECH.SCIENCE_THREE、TECH.MAGIC_TWO、TECH.MAGIC_THREE、TECH.ANCIENT_TWO、TECH.ANCIENT_THREE、TECH.ANCIENT_FOUR 等。例如:
SCIENCE_ONE要求科学等级达到 1;SCIENCE_TWO和SCIENCE_THREE分别要求达到更高科学等级。- 魔法科技从
MAGIC_TWO起步,源码注释明确说明不会在初始阶段展示低级魔法门槛。 ANCIENT_TWO、ANCIENT_FOUR分别代表远古科技树的对应等级。CELESTIAL_ONE与CELESTIAL_THREE用于天体相关配方;旧的MOON_ALTAR_TWO实际映射到天体等级 3,源码标记为弃用。
Builder:KnowsRecipe 会逐项比较配方的 recipe.level 与角色的科技加成;任意一项要求高于当前值时,配方就不算已知。科技判定与材料判定是两件事:即使科技足够,仍须拥有全部普通材料、角色专属材料和科技材料。
科技站与提供的等级
科技站通过 prototyper 组件提供一份科技树。角色靠近科技站后,建造组件会在 4 范围内搜索可用的科技站,并激活距离最近的一个;不同科技站同时存在时,其他站会被关闭。科技站的范围、角色限制和特殊使用条件还可以由组件覆盖。
主要基础科技站如下:
| 科技站 | 代码名 | 提供的科技 |
|---|---|---|
| 科学机器 | researchlab |
科学等级 1、魔法等级 1 |
| 炼金引擎 | researchlab2 |
科学等级 2、魔法等级 1 |
| 灵子分解器 | researchlab3 |
魔法等级 2 |
| 暗影操纵器 | researchlab4 |
魔法等级 3 |
| 远古祭坛(低级) | ancient_altar |
远古等级 2 |
| 远古祭坛(高级) | ancient_altar |
远古等级 4 |
上表中的科技树数值来自 TUNING.PROTOTYPER_TREES;科学机器与炼金引擎的 prefab 会分别绑定 SCIENCEMACHINE 与 ALCHEMYMACHINE 科技树。其他专用站点也可只提供某一条专用科技树,例如航海、制图、雕塑、钓鱼或地皮制作。
基础制作站配方
科技站本身也是配方,配方卡会显示当前版本的材料与制作条件:
- :无需已有科技即可制作,是通常的第一个科技站。
- :需要科学等级 1,制作后提供更高的科学等级。
- :需要魔法等级 2,用于更高阶魔法制作。
- :需要科学等级 1;它在 prefab 中对应暗影操纵器,提供魔法等级 3。
- :需要科学等级 1,提供航海制作入口。
- :需要科学等级 1,提供制图科技。
“配方要求的科技”和“科技站提供的科技”是两个方向:例如炼金引擎的配方要求科学等级 1,而建成后提供科学等级 2与魔法等级 1。
解锁方式与制作流程
常规制作流程如下:
- 先制作并放置科学机器。科学机器的配方使用
TECH.NONE,因此不依赖其他科技。 - 站在科技机器的有效范围内打开制作栏。
Builder:EvaluateTechTrees会读取当前科技站的树,并把可用等级合并到角色的临时科技状态中。 - 制作一个达到当前科技等级要求的配方。若该配方尚未永久记录,制作成功后会激活当前研究机器,并调用
UnlockRecipe记录配方;标记为nounlock的配方不按普通方式永久解锁。 - 制作更高等级的科技站,再靠近它制作更高阶配方。
部分配方不依赖科技树,而是受 builder_tag、builder_skill、no_builder_tag 或 no_builder_skill 限制。角色专属配方可能因此在科技足够时仍不可制作。角色的永久科技加成和临时科技加成也会参与判定;临时加成可能在制作后被消耗。
制作限制
制作一个配方至少要同时满足以下条件:
- 当前配方存在且没有被角色标签或技能树条件拒绝;
- 科技树的每一项等级都达到配方要求;
- 拥有配方中的普通材料;
- 拥有角色专属材料与科技材料(如果配方声明了这些材料);
- 配方没有达到制作站施加的次数上限;
- 对需要放置的建筑,还必须通过放置点检查。
制作站配方可以由 craftingstation 组件额外控制次数或解锁状态。EvaluateTechTrees 会把这类站点配方单独加入 station_recipes,并同步其制作限制。科技站还可能带有 restrictedtag,只有拥有相应角色标签的角色才能使用。
常见发展路线
以下路线对应源码中基础科技站和典型配方的依赖关系,具体材料获取不属于科技系统本身:
基础生存路线
先制作科学机器,获得科学等级 1后制作
炼金引擎(炼金引擎),再制作科学等级 2的工具升级配方,例如
黄金斧头、
黄金鹤嘴锄或
黄金铲子。长矛、木甲、背包等常用生存装备则只要求科学等级 1,可在科学机器附近完成。
魔法路线
在科学机器或炼金引擎提供的基础魔法等级上,制作需要 MAGIC_TWO 的
暗影操控器(灵子分解器);之后可使用魔法等级 2和更高等级的魔法配方。魔法路线不等同于科学等级路线,配方会单独检查 MAGIC 项。
航海与专用制作路线
科学等级 1可以制作航海科技站、制图桌、钓具容器和雕塑台等专用站点。建成后,它们提供各自的 SEAFARING、CARTOGRAPHY、FISHING 或 SCULPTING 科技树,不会自动替代科学机器的基础科技。
远古与天体路线
远古配方使用 ANCIENT 科技树,天体配方使用 CELESTIAL 科技树;这些等级由远古祭坛、天体相关原型站或其他特定系统提供。不能因为拥有科学或魔法等级,就直接满足远古、天体或暗影配方的门槛。
代码参考
scripts/techtree.lua:可用科技树、可添加科技加成的科技树,以及科技树初始化。scripts/constants.lua:TECH.*配方门槛定义。scripts/tuning.lua:TUNING.PROTOTYPER_TREES,基础科技站提供的科技等级;RESEARCH_MACHINE_DIST,科技站搜索范围。scripts/recipes.lua:PROTOTYPER_DEFS科技站定义与基础科技站配方。scripts/components/prototyper.lua:科技站的科技树、启用/停用和使用距离判断。scripts/components/builder.lua:EvaluateTechTrees、KnowsRecipe、HasIngredients、MakeRecipeFromMenu,负责科技合并、配方判定、材料检查与制作后的解锁。