舒适度
一个 0–100 的数值,记录你过得好不好,并折算成移动速度、挖掘速度与饱食消耗效率。
舒适度是绑在角色身上、范围 0 到 100 的数值。它随环境、饮食、睡眠和受到的伤害变化,并在三个地方兑现:移动速度、挖掘速度,以及饥饿消耗的快慢。
三个区间
| 区间 | 数值 | 移动速度 | 挖掘速度 | 饥饿消耗 |
|---|---|---|---|---|
| 痛苦 | 0–40 | 基础 −20% | ×0.90 | ×1.50 |
| 正常 | 41–70 | — | — | — |
| 舒缓 | 71–100 | 基础 +20% | ×1.10 | ×0.50 |
痛苦和舒缓之间差 40% 的移动速度,以及三倍的食物消耗。
自然变化
只要舒适度大于 0,系统就**每 1200 刻(60 秒)**结算一次。每次结算先扣 1 点,再叠一个被限制在 −5 … +1 之间的环境修正。
上限那个 +1 正好抵消掉 −1:待在足够好的地方,舒适度不再下降。最糟的情况下,一分钟掉 6 点。
环境会检查什么
- 出生点附近有遮蔽会抵消损失——这就是「家」的情况。
- 淋雨会加惩罚。
- 在雪地且没穿满防具会加惩罚。
- 下界会加惩罚。
舒适度被冻结的情况
下列状态下舒适度完全不变化:
- 创造模式 / 旁观模式;
- 正在床上睡觉;
- 拥有农夫乐事的
comfort效果。
「滋养」会拖慢结算
农夫乐事的 nourishment 效果把结算周期乘以 1.5,从 60 秒一次变成 90 秒一次。
食物
每种食物都可以带一个有正负号的舒适度值。有两条规则决定它最后给你多少:
-
重复会让正收益变钝。系统记住你最近吃过的六样东西。同一道菜第一次出现在这段记录里给 100% 的正向舒适度,之后依次是 70%、40%、10%。负值不打折——馊掉的炖菜每次都一样难吃。
-
好好做饭是值得的。带
WellMadeFood.Bonus1–3 的菜品,正向舒适度按1 + 0.33 × 等级放大,负向舒适度除以同一个系数。
伤害与睡眠
受到伤害会扣舒适度,按一条考虑了最大生命值的对数曲线计算,单次最多扣 20 点。擦伤代价很小,濒死代价很大。
从睡眠中醒来最多恢复 30 点,且不超过缺失量的 70%。在 20 点时睡觉能补满 30 点,在 65 点时睡觉补得就很少。睡眠是恢复手段,不是重置按钮。
与命运天平的联动
两项命运天平的性格选项会改变舒适度的表现:
| 命运 | 恢复量 | 损失量 | 自然衰减 |
|---|---|---|---|
optimistic_nature(乐观) | ×1.20 | ×0.80 | ×0.80 |
pessimistic_nature(悲观) | ×0.80 | ×1.20 | ×1.25 |
另外两项食量选项改的是最大饱食度,和上表的饥饿消耗一栏叠在一起看:
| 命运 | 最大饱食 | 含义 |
|---|---|---|
| — | 20 | 标准储备 |
hearty_appetite(大胃) | 26 | 饿死之前多出 30% 的储备 |
birdlike_appetite(小鸟胃) | 14 | 更快吃饱,储备少 30% |
给数据包作者
食物数值从 data/<命名空间>/comfort_level/*.json 读取,格式是「物品 ID → 有符号整数」的扁平映射:
{
"minecraft:bread": 3,
"example:spoiled_stew": -8
}
未知物品与非食物物品会被忽略并给出警告。重复的物品条目按 ID 的确定性顺序解析,后出现的覆盖先出现的。数据包重载后,解析结果会同步到客户端。
为所有已注册食物生成一份基准值:
/ise dev dumpFoodComfort
结果写入 config/isekaiseries/ktm2foodcomfort.json。