ReRegeneration 是星露谷物语中生命值和体力自动恢复这一想法的又一个迭代版本。默认配置开箱即用,但本模组提供了大量配置选项,本介绍将重点说明这些选项。简而言之,默认情况下:体力会在等待 5 秒后每秒被动恢复 1 点。被动恢复最多达到最大体力的 80%,恢复速率和延迟会随当前体力值变化,在体力为 0 时接近减少/延长 20%。生命值会在等待 10 秒后每 2 秒被动恢复 1 点。被动恢复最多达到最大生命值的 60%,恢复速率和延迟会随当前生命值变化,在生命值为 0 时接近减少/延长 40%。在跑步、疲劳等情况下恢复会变慢,但这些设定相当合理。
配置
配置文件(config.json)将生命值和体力的选项分组,但功能基本相同。如果你安装并使用 Generic Mod Config Menu,则可以在游戏内编辑这些选项。
RegenPerSecond:每秒被动恢复的体力/生命值数量。
IdleSeconds:从上次消耗或受伤到开始恢复需要等待的时间。这被称为“恢复延迟”或“冷却时间”。
MaxRegen:被动恢复能达到的最大体力/生命值百分比。设为 1 可被动恢复全部体力或生命值;任何大于 1 的值都将按 1 处理。注意,该值最低为 0.01(即 1%),低于此值将按 0.01 处理。重要提示:所有基于玩家最大体力或生命值的模组设置都会根据此值缩放;换句话说,这些定义中的“最大体力/生命值”实际上是指游戏内玩家实际值乘以该值。
scaleRegenRateTo:当体力/生命值较低时,按比例降低恢复速率。具体来说,当数值接近 0 时,恢复速率会接近乘以该设置的值(例如,设为 0.5 时,恢复速率减半)。另一种理解方式是,你将获得(1 减去该设置值)倍的恢复量(例如,设为 0.25 时,1 - 0.25 = 0.75,即减少 75%)。设为 0 可关闭此功能。
scaleRegenDelayTo:当体力/生命值较低时,按比例延长恢复开始所需的时间。具体来说,当数值接近 0 时,延迟时间会接近乘以 1 加上该设置的值(例如,设为 0.5 时,延迟变为 1.5 倍,即延长 50%)。设为 0 可关闭此功能。
默认值(先体力后生命值)如下:
"staminaRegenPerSecond": 1.0
"staminaIdleSeconds": 5
"maxStaminaRatioToRegen": 0.8
"scaleStaminaRegenRateTo": 0.8
"scaleStaminaRegenDelayTo": 0.2
体力会在等待 5 秒后每秒被动恢复 1 点。被动恢复最多达到最大体力的 80%,恢复速率和延迟会随当前体力值变化,在体力为 0 时接近减少/延长 20%。
"healthRegenPerSecond": 0.5
"healthIdleSeconds": 10
"maxHealthRatioToRegen": 0.6
"scaleHealthRegenRateTo": 0.6
"scaleHealthRegenDelayTo": 0.4
生命值会在等待 10 秒后每 2 秒被动恢复 1 点。被动恢复最多达到最大生命值的 60%,恢复速率和延迟会随当前生命值变化,在生命值为 0 时接近减少/延长 40%。
还有其他选项可以修改恢复系统的工作方式:
percentageMode:是否将“RegenPerSecond”值解释为最大值的百分比,例如,值为“1”时,不是每秒恢复 1 点体力,而是恢复玩家最大体力的 1%。这样恢复速率可以随生命值和体力的提升而缩放。因此,在默认体力恢复值 staminaRegenPerSecond = 1 的情况下,游戏开始时每秒将恢复 2.7 点体力(即初始 270 点体力的 1%,假设 maxStaminaRegen 设为 1)。注意,如果你启用百分比模式,我建议将默认的“staminaRegenPerSecond”改为 0.4,因为这样初始恢复速率约为每秒 1.08 点,接近普通模式下的默认值。生命值初始为 100 点,所以没有差异。(默认 = false)
regenWhileActiveRate:一个 0 到 1 的小数值,用于在钓鱼或骑马时乘以恢复速率。默认值为 0.8,即恢复减少 20%。设为 1 可忽略此功能。设为 0 可在这些活动中关闭恢复。
regenWhileRunningRate:一个 0 到 1 的小数值,用于在跑步时乘以恢复速率。默认值为 0.5,即恢复减少 50%。设为 1 可忽略此功能。设为 0 可在跑步时关闭恢复。
exhuastionPenalty:一个 0 到 1 的小数值,用于在玩家疲劳时减少恢复量并增加空闲延迟时间。默认值为 0.25,即疲劳时恢复量减少 25%,延迟时间增加 25%。设为 0 可关闭此功能。注意,当该值设为 1 或更大时,在减少恢复速率方面将按 0.99 处理。
endExhaustionAt:一个 0 到 1 的小数值,指定何时结束“疲劳”效果,即当玩家达到最大体力的指定比例时结束。默认值 0.75 表示在最大体力的 75% 时结束。设为 0 可关闭此功能。
shortenDelayWhenStillBy:站立不动时,按指定的小数乘数缩短恢复延迟。默认设置为 0.5,即站立不动每秒计为 1.5 秒用于结束冷却(即增加 50%)。设为 0 可关闭此功能。
lengthenDelayWhenRunningBy:跑步时,按指定的 0 到 1 小数值延长恢复延迟。默认设置为 0.5,即跑步每秒计为半秒用于结束冷却(即减少 50%)。设为 0 可关闭此功能。注意,如果设为 1,跑步每秒计为减少 100%,即 0 秒,这意味着跑步时恢复冷却无限期持续。
最后,还有两个“隐藏”的配置项,属于高级设置,大多数玩家不需要。它们默认不会出现在配置文件中,但可以手动添加。
timeInterval:实际执行恢复计算的频率(秒)。默认值为 0.25,即每四分之一秒(约 15 个游戏刻)计算一次。注意,这不会影响任何“每秒”值,因为它们会相应地进行乘法计算。最小值为 0.01,低于此值将按 0.01 处理。除非你遇到严重的性能问题,否则此设置没什么用。该值越高,模组进行实际计算的频率越低,因此对电脑的负担越小。该值越低,恢复过程越“平滑”。
verboseMode:默认值为“false”,控制是否在每个更新间隔输出调试数据。
未来计划
暂无。也许支持其他类型的菜单系统,谁知道呢。
致谢
本模组灵感来源于(最初是直接更新)Hammurabi 的“Regeneration”。相关权限有些模糊。Hammurabi 是在另一个模组的基础上阐述的,而那个模组又是基于另一个模组,每一步作者都发布了源代码。这让我觉得这个项目在运作上相当“开源”,即使没有明确说明。Hammurabi 最后一次更新他的模组版本是在 2017 年。如果有任何规定表明我不能发布我对这个想法的阐述,我会遵守。源代码将包含在安装包中。
配置
配置文件(config.json)将生命值和体力的选项分组,但功能基本相同。如果你安装并使用 Generic Mod Config Menu,则可以在游戏内编辑这些选项。
RegenPerSecond:每秒被动恢复的体力/生命值数量。
IdleSeconds:从上次消耗或受伤到开始恢复需要等待的时间。这被称为“恢复延迟”或“冷却时间”。
MaxRegen:被动恢复能达到的最大体力/生命值百分比。设为 1 可被动恢复全部体力或生命值;任何大于 1 的值都将按 1 处理。注意,该值最低为 0.01(即 1%),低于此值将按 0.01 处理。重要提示:所有基于玩家最大体力或生命值的模组设置都会根据此值缩放;换句话说,这些定义中的“最大体力/生命值”实际上是指游戏内玩家实际值乘以该值。
scaleRegenRateTo:当体力/生命值较低时,按比例降低恢复速率。具体来说,当数值接近 0 时,恢复速率会接近乘以该设置的值(例如,设为 0.5 时,恢复速率减半)。另一种理解方式是,你将获得(1 减去该设置值)倍的恢复量(例如,设为 0.25 时,1 - 0.25 = 0.75,即减少 75%)。设为 0 可关闭此功能。
scaleRegenDelayTo:当体力/生命值较低时,按比例延长恢复开始所需的时间。具体来说,当数值接近 0 时,延迟时间会接近乘以 1 加上该设置的值(例如,设为 0.5 时,延迟变为 1.5 倍,即延长 50%)。设为 0 可关闭此功能。
默认值(先体力后生命值)如下:
"staminaRegenPerSecond": 1.0
"staminaIdleSeconds": 5
"maxStaminaRatioToRegen": 0.8
"scaleStaminaRegenRateTo": 0.8
"scaleStaminaRegenDelayTo": 0.2
体力会在等待 5 秒后每秒被动恢复 1 点。被动恢复最多达到最大体力的 80%,恢复速率和延迟会随当前体力值变化,在体力为 0 时接近减少/延长 20%。
"healthRegenPerSecond": 0.5
"healthIdleSeconds": 10
"maxHealthRatioToRegen": 0.6
"scaleHealthRegenRateTo": 0.6
"scaleHealthRegenDelayTo": 0.4
生命值会在等待 10 秒后每 2 秒被动恢复 1 点。被动恢复最多达到最大生命值的 60%,恢复速率和延迟会随当前生命值变化,在生命值为 0 时接近减少/延长 40%。
还有其他选项可以修改恢复系统的工作方式:
percentageMode:是否将“RegenPerSecond”值解释为最大值的百分比,例如,值为“1”时,不是每秒恢复 1 点体力,而是恢复玩家最大体力的 1%。这样恢复速率可以随生命值和体力的提升而缩放。因此,在默认体力恢复值 staminaRegenPerSecond = 1 的情况下,游戏开始时每秒将恢复 2.7 点体力(即初始 270 点体力的 1%,假设 maxStaminaRegen 设为 1)。注意,如果你启用百分比模式,我建议将默认的“staminaRegenPerSecond”改为 0.4,因为这样初始恢复速率约为每秒 1.08 点,接近普通模式下的默认值。生命值初始为 100 点,所以没有差异。(默认 = false)
regenWhileActiveRate:一个 0 到 1 的小数值,用于在钓鱼或骑马时乘以恢复速率。默认值为 0.8,即恢复减少 20%。设为 1 可忽略此功能。设为 0 可在这些活动中关闭恢复。
regenWhileRunningRate:一个 0 到 1 的小数值,用于在跑步时乘以恢复速率。默认值为 0.5,即恢复减少 50%。设为 1 可忽略此功能。设为 0 可在跑步时关闭恢复。
exhuastionPenalty:一个 0 到 1 的小数值,用于在玩家疲劳时减少恢复量并增加空闲延迟时间。默认值为 0.25,即疲劳时恢复量减少 25%,延迟时间增加 25%。设为 0 可关闭此功能。注意,当该值设为 1 或更大时,在减少恢复速率方面将按 0.99 处理。
endExhaustionAt:一个 0 到 1 的小数值,指定何时结束“疲劳”效果,即当玩家达到最大体力的指定比例时结束。默认值 0.75 表示在最大体力的 75% 时结束。设为 0 可关闭此功能。
shortenDelayWhenStillBy:站立不动时,按指定的小数乘数缩短恢复延迟。默认设置为 0.5,即站立不动每秒计为 1.5 秒用于结束冷却(即增加 50%)。设为 0 可关闭此功能。
lengthenDelayWhenRunningBy:跑步时,按指定的 0 到 1 小数值延长恢复延迟。默认设置为 0.5,即跑步每秒计为半秒用于结束冷却(即减少 50%)。设为 0 可关闭此功能。注意,如果设为 1,跑步每秒计为减少 100%,即 0 秒,这意味着跑步时恢复冷却无限期持续。
最后,还有两个“隐藏”的配置项,属于高级设置,大多数玩家不需要。它们默认不会出现在配置文件中,但可以手动添加。
timeInterval:实际执行恢复计算的频率(秒)。默认值为 0.25,即每四分之一秒(约 15 个游戏刻)计算一次。注意,这不会影响任何“每秒”值,因为它们会相应地进行乘法计算。最小值为 0.01,低于此值将按 0.01 处理。除非你遇到严重的性能问题,否则此设置没什么用。该值越高,模组进行实际计算的频率越低,因此对电脑的负担越小。该值越低,恢复过程越“平滑”。
verboseMode:默认值为“false”,控制是否在每个更新间隔输出调试数据。
未来计划
暂无。也许支持其他类型的菜单系统,谁知道呢。
致谢
本模组灵感来源于(最初是直接更新)Hammurabi 的“Regeneration”。相关权限有些模糊。Hammurabi 是在另一个模组的基础上阐述的,而那个模组又是基于另一个模组,每一步作者都发布了源代码。这让我觉得这个项目在运作上相当“开源”,即使没有明确说明。Hammurabi 最后一次更新他的模组版本是在 2017 年。如果有任何规定表明我不能发布我对这个想法的阐述,我会遵守。源代码将包含在安装包中。