ProjectEden
把戴森球计划的后期产线整体拉满:十六座巨型建筑、十二种新矿脉(含只在黑洞与中子星旁生成的两种)、裂变发电与黑洞反物质产线、随货物流动的物品品质、从煤和水通到有机化学与炼油的完整化工链、5000 层集装(带 preloader)、默认开启的 2 倍半径行星(面积 4 倍,会让老存档作废)。每个数值都是从真实化学与物理推出来的,全在 JSON 里可调。
CHANGELOG
更新日志
1.12.3
修掉「黑雾地面敌人掉进地里」,并把电力节点的供电范围改成逐项配置—— 电力感应塔覆盖 30 米、连接 60 米。
⚠️ 行星放大仍然默认开着(1.12.1 起),所以在 1.12.0 或更早版本下存的档, 用这一版打开就废了。要继续用老存档,在 profile 里新建
BepInEx\config\ProjectEden\planet.json写{ "enabled": false },重开游戏即可。
修复:黑雾产生的地面敌人掉进地里
根因是一批绝对高度常量——它们写的是「离星球中心多远」,不是「离地面多高」,
所以隐含了半径 200。最典型的一处是 EnemyUnitComponent.RunBehavior_Engage_GRaider @052C:
if (alt + d > 206) d = 206 - alt; // 原版:地面之上 2–6 格
else if (alt + d < 202) d = 202 - alt;
在半径 400 的星球上地面在 400 左右,这个夹子把单位按到地下约 200 格。
同一个 200 有两种含义,所以不能按值一刀切。 同一个方法里 @0260 的
alt = max(alt, 200) 是个下限,在半径 400 上永远不触发、无害。区别不在值,在形状。
改写范围:6 个方法、18 处、全是 ldc.r4(地面掠夺者 / 守卫者 / 游侠,
以及玩家侧三种地面战斗单位),按 +(半径 − 200)平移——
「地面之上 2–6 格」在半径 400 上应该是 402–406 而不是 412,所以是平移不是缩放。
半径 200 时增量为 0,和原版逐位相同。
判据是 190–230 波段,而带外的邻居正好反证了它:GGuardian 里的 255 / 165
是颜色(橙 255,165,0)、GRaider 里的三个 270 是角度,都落在带外,不会被误伤。
另外加了一道兜底。 原版自己有 UndergroundRescue,但它兜的是海平面
(realRadius + 0.2)而不是地面——山上地形在 400.9 时,一个卡在 400.5 的单位仍然埋着。
现在改成按真实地形高度兜底,且只在放大过的行星上生效。
理由写在代码注释里:太空单位那一族(SLancer / SHumpback / 炮塔)形状相同、
但语义还没逐个读过,已知的修掉,未知的至少不会永远埋着。
电力:逐项配置,电力感应塔覆盖 30 米
power.json 从「一组值套用到所有 itemIds」改成 nodes 逐项——
不同的塔要的东西不一样,一组值套不住:
| 建筑 | 覆盖 | 连接距离 |
|---|---|---|
| 卫星配电站 | 26.5 → 2000 米 | 53.5(不动) |
| 电力感应塔 | 10.5 → 30 米 | 22.5 → 60 米 |
原版那两列是实测的(开机日志会打),不是查表来的。
感应塔这一项是为行星放大配的:表面积变成 4 倍之后,原版那点覆盖铺满一颗星要 4 倍数量。 30 米的覆盖面积是原版的 8.2 倍,所以现在铺满一颗放大星球所需的塔, 比原版铺满一颗普通星球还少一半。连接距离给到覆盖的两倍, 是为了两塔之间隔着一整个覆盖圈也还连得上、不留空洞。
放大连接距离是有代价的:line_arragement_for_add_node 的连线量按节点密度的平方
增长。卫星配电站那一项因此留 0(一座就够,不需要连成网);
觉得感应塔那边卡,把 connectDistance 降到 30–40 即可(不小于覆盖半径就连得起来)。
已建成的塔也生效:读档时走原版的「拆—建」流程重算缓存并重连用电建筑,
实测一局重建了 22 座。旧 schema 仍然兼容——nodes 缺失时回落到
itemIds + coverRadius + connectDistance,免得已有的磁盘覆盖静默失效。
顺带修掉一处旧判据
读档重建电力节点时,原来的条件是「coverRadius >= 目标值 就跳过」。
那在「只放大」的年代是对的,但一旦某一项配成比原版小的值就会整批跳过,而且一声不吭。
现在改成容差不等比较。
已知缺口(同上一版)
按半径 200 写死的常量很可能还有。到目前为止修掉的五处都是被具体症状逼出来的,
不是系统排查出来的。一次启发式扫描标出 143 个方法,多数是 360/180 这类角度常量属误报,
但说明这一类没穷尽;最可疑的是 GameCamera.Logic。
碰到「放大之后某个东西行为怪异」请直接报——这一类的定位路径已经很熟了。
这个文件只写当前版本。往期更新日志在仓库的 ProjectEden/CHANGELOG-history.md:
https://github.com/RobertWangWang/dysonsphereprogram-ProjectEden/blob/main/ProjectEden/CHANGELOG-history.md