概述
使用一个全新的饥饿管理系统替代了原版的饥饿系统,从而提高了原版的生存难度。
本模组属于作者的“life is so hard”模组群规划的第一部分。目前规划有食物改革(本模组)、怪物资源改动(存在未发布的数据包,准备修改为模组形式)、畜牧业改动(存在未发布的数据包,准备修改为模组形式)、村民限制(未制作)、地形及资源生成改动(未制作)。
本模组主要特性
禁用了原版的自然回血。现在回血只能依靠状态效果或者通过睡眠缓慢恢复。由于这一更改,原版“gamerule”里面的“naturalRegeneration”和“playersSleepingPercentage”不再具有任何效果,且夜晚无法通过睡觉跳过。如果玩家的营养状态不佳,则无法在睡眠时回血。
改变了原版饥饿值的意义,现在饥饿值只代表体力条,在被活动消耗之后可以自行缓慢恢复。但如果饥饿值归零(并不等于饥饿条归零,因为内部计算有小数),则玩家会立即死亡,并显示死亡消息为“体力耗尽”。饥饿值的最高上限为 20,但受到玩家摄入食物的历史的影响。如果玩家长期没有摄入食物,饥饿值的上限会减小,并且饥饿条会开始抖动。如果玩家在没有摄入任何食物的情况下消耗了过多的体力,则开始受到原版的饥饿伤害。
为玩家增加了“血糖”“糖原储量”的属性。“血糖”决定玩家在一刻内可以进行的活动量的上限,如果突破这一上限(一般不会)则玩家立即暴毙。血糖的上限由糖原储量和后续将要描述的其他属性决定。“糖原储量”与饥饿值成正比,代表玩家的体力条,其上限由后续将要叙述的其他属性决定。同时,糖原含量在约一半体力条以上时,玩家才可以通过睡眠回血。
为玩家增加了“血脂”“脂肪储量”的属性。“血脂”决定了玩家糖原储量(体力条)恢复的速度,其上限由脂肪储量决定。“脂肪储量”构成了玩家的能量总储备的绝大部分,代表了玩家在长期不进食的情况下的生存能力。
为玩家增加了“蛋白质”“肌肉量”“运动经历”的属性。“肌肉量”与总体重共同决定了玩家的行动能力,并单独决定了玩家的攻击力、挖掘速度。肌肉量的上限由“运动经历”决定。玩家摄入的食物蛋白质先储存在“蛋白质”中,并分别转化为糖类和肌肉量。如果玩家的“蛋白质”属性过低,则无法通过睡眠回血。
“肌肉量”和上述的“脂肪储量”在生存模式物品栏中以如下图标显示在人物模型右侧:
玩家的“运动经历”通过玩家活动造成的体力消耗而增加,并且具有约 20 现实小时的自然半衰期。并且出于增加游戏难度的目的,玩家的各种行为的体力消耗相比原版都增加了(疾跑除外,疾跑的体力消耗被降低了约 40%。不过考虑到本模组的体力值与原版的饥饿值具有完全不一样的意义,这个数值可能没有参考性。同时疾跑被加强为可以在饥饿条只剩一只鸡腿前都可以维持。)玩家的体力消耗由原版的按距离/成功次数计算改为了按行动时间计算。并且即使玩家什么也不做,体力也仍然会自然消耗(在睡眠期间,这个消耗会减半)。
为玩家增加了“饮水值”属性。玩家需要时常通过喝水来进行补充(大部分食物中也含有大量的水)。若饮水值过高或过低,玩家就会受到水中毒/脱水伤害。饮水条在饥饿条上方具有如下的 GUI 显示:
在玩家即将受到伤害之前,饮水条会开始抖动。
为玩家进食增加了“消化”和“胃容量”的设定。玩家食用的食物在转化为玩家的各项对应属性之前,会在另一个数据中存储,并被逐渐吸收。水的吸收速度不受任何影响,但糖类、脂肪和蛋白质的吸收会受到玩家的消化能力和食物的“消化难度”属性的影响。玩家的“胃容量”属性代表了玩家存储未消化食物的能力,若玩家吃下的食物超过这一数值(普通的食物并不能做到这一点,但原版无视饥饿值上限的食物可以),则玩家会死于“暴食”。胃容量在体力条的侧面具有如下的 GUI 显示:
红色的抖动的胃图标代表了玩家已经吃饱,并且随着胃容量趋于极限而抖得越来越快。
为玩家增加了“纤维素”“维生素 A、B、C”“碘”的属性。“纤维素”决定玩家的基础消化能力,“维生素 A”过低会引起夜盲症,“维生素 B”影响玩家“肌肉量”的效果,“维生素 C”过低会导致玩家在受伤时额外进入“流血”状态,并且在玩家没有受到任何影响时也会以极小概率掉血。“碘”影响到玩家能量营养素“糖、蛋白质、脂肪”的转化速度、体力条的上限等多种属性,但过多的碘会导致玩家体力消耗速度过快,并有可能进入虚弱状态。
出于玩家饮水、及在无法自然回血后药水需求增加的原因,原版的水瓶、药水和炖菜由不可堆叠强化到了 16 堆叠。作为代价,药水被附加了“重金属”属性,在短时间内多次饮用就会导致玩家中毒。同时,紫颂果、金苹果、附魔金苹果、金胡萝卜也拥有“重金属”属性。作为交换,金苹果、附魔金苹果和金胡萝卜的效果被强化了。“重金属”的消耗速度与上一条目中的几种营养素的消耗速度都由玩家的“饮水值”的降低速度决定。虽然这几项属性在游戏中没有 GUI 显示,但可以通过本模组添加的物品“血样分析仪”进行查看:
新增了多个模组相关的进度和进度触发器 "lifeissohard:nutrition_effect",其具有 25 个布尔判断条件和 3 个数值范围条件:
布尔判断条件(可选择 true 或 false):{"is_weak"、"is_hungry"、"is_starved"、"is_thirsty"、"is_full"、"is_empty_stomach"、"is_water_intoxicated"、"is_poisoned_by_heavy_metal"、"is_exhausted"、"is_dyspepsia"、"is_lack_in_va"、"is_lack_in_vb"、"is_lack_in_vc"、"is_lack_in_iodine"、"is_iodine_excess"、"is_lack_in_strength"、"is_powerful"、"cannot_regenerate"、"die_from_thirsty"、"die_from_water_intoxication"、"die_from_stomach_rupture"、"die_from_gluttony"、"die_from_hypoglycemia"、"die_from_hypoglycemia_exhausted"、"die_from_starve"}
数值范围条件(类型为 float,单位为毫克):{"fats"、"muscles"、"weight"}
修复了一个原版 Bug:在玩家死亡后,若游戏规则未开启“keepInventory”(死亡不掉落),则在玩家死亡之后还留存在背包中的物品将会在玩家点击重生按钮后丢失。对于纯原版来说,这种情况很难发生,因为死亡的玩家无法捡拾物品。但如果使用 give 命令或以玩家死亡为条件的进度奖励,则这些奖励物品会消失。这很不好,所以作者修复了它,使这些物品在玩家点击重生按钮时会成为掉落物。修改了原版在背包栏右侧会显示隐藏显示信息的状态效果的特性。
修改了原版的糖,使其可以被食用。增加了“熟鸡蛋”食物,可以由鸡蛋在熔炉、烟熏炉或营火上烤制而成。
由于食物的营养素设定,猪肉、牛肉的能提供的能量值相对的降低了。为了维持它们在原版的地位,提高了猪、牛、羊、哞菇的对应肉类掉落量。新增了山羊掉落羊肉的设定。
出于显而易见的原因,原版食物的食物属性全部都被修改了。现在食物不在赋予“饥饿”状态效果,而是新增了“腹泻”状态效果。在食用生肉、腐肉或蜘蛛眼等“坏”食物时,有概率获得该效果,并快速流失饮水值和未消化完的食物。
场外话
出于显而易见的原因,作者不建议将本模组与 苹果皮 (AppleSkin) 模组同时安装。
作者正在征求模组的中文名称。
作者连不上 Twitch,所以在此求一个不需要使用 Twitch 就能登录 CurseForge 的方法,或者连接 Twitch 的方法。
作者自学 Java 不到一个月,如有 Bug 请见谅。