游戏版本 756039
首页 › 游戏机制 › 阵营

阵营 Alignment

机制月亮阵营暗影阵营启蒙疯狂终局 又名 月亮阵营又名 暗影阵营又名 阵营对立

《饥荒联机版》用 lunar_aligned 与 shadow_aligned 标签标记月亮阵营和暗影阵营实体。阵营标签本身主要用于识别、行为和伤害修正;它与理智模式不是同一套状态,启蒙/疯狂由理智组件的模式决定。

阵营是什么

源码中,月亮阵营和暗影阵营表现为实体标签:lunar_aligned 与 shadow_aligned。例如虚影(虚影)和天体英雄的阶段实体带有 lunar_aligned,暗影主教、暗影骑士以及暗影仆从相关实体带有 shadow_aligned。

标签不是玩家的通用“阵营数值”,也不会自动把所有同阵营实体变成友军;它首先是供其他系统查询的标记。当前代码中,标签会被用于生物行为、检查名称,以及伤害类型加成/抗性等专门逻辑。实体是否属于某一阵营应以其具体 prefab 构造函数为准。

理智模式与启蒙

理智组件 components/sanity.lua 将模式分成两种:普通的疯狂模式(SANITY_MODE_INSANITY)和启蒙模式(SANITY_MODE_LUNACY)。EnableLunacy(enable, source) 通过来源修正开关启蒙模式;只要仍有来源启用,玩家就处于启蒙模式。

两种模式的阈值和理智条含义不同:

模式 进入条件 离开/恢复条件
疯狂模式 理智比例 ≤ 15% 理智比例 ≥ 17.5%
启蒙模式 理智比例 ≥ 85% 理智比例 ≤ 82.5%

在普通模式下,低理智会使 sane 状态转为 false;在启蒙模式下则是高理智使该状态转为 false。因此,“理智很低的疯狂”和“理智很高的启蒙”是两套相反方向的状态判定,不应把启蒙简单理解为理智值的另一种名称。

启蒙模式还会改变理智条的显示/代理值:源码将当前值表现为扣除理智上限惩罚后的满值比例;疯狂模式则将其表现为 0。实际当前值仍由理智组件保存,模式主要改变状态判定和表现。

启蒙模式下的变化规则

理智组件在启蒙模式下使用独立的环境变化常量,而不是直接复用普通疯狂模式的正负规则:

  • 白天:每秒 0.0104,即每分钟 0.625。
  • 夜晚或黑暗:在低光照分支下每秒 -0.167,即每分钟 -10。
  • 启蒙模式的中等光照和高光照分支使用对应的 SANITY_LUNACY_NIGHT_MID、SANITY_LUNACY_NIGHT_LIGHT 常量;当前版本查询到二者为 0。

这说明启蒙不是把普通模式的“低理智惩罚”简单反转,而是由 Sanity:Recalc 按当前模式选择另一组环境变化规则。潮湿、光环、装备和一次性理智变化仍由理智组件的其他修正管线处理。

月亮阵营实体

月亮阵营实体在源码中常见于虚影、天体英雄/天体后裔及其相关投射物、月岛或裂隙内容的实体;大量变异生物也通过 lunar_aligned 标签进行识别。虚影 的 prefab 明确添加了 brightmare、brightmare_gestalt 和 lunar_aligned 标签;天体英雄阶段也添加了 lunar_aligned。

月亮阵营并不等同于“启蒙状态”:虚影是带有月亮阵营标签的生物,而玩家是否处于启蒙模式由 Sanity:EnableLunacy 的来源开关决定。两者可以在同一事件中关联出现,但代码层面是不同的系统。

暗影阵营与相关生物

暗影阵营实体以 shadow_aligned 标签标记,源码中可见暗影主教、暗影骑士、暗影触手、暗影猴等实体使用该标签;暗影仆从的检查名称也会根据观察者是否带有 player_shadow_aligned 标签而改变。

暗影生物的行为并不由一个统一的“暗影阵营组件”集中管理。以暗影仆从为例,shadowthrall_hands.lua、shadowthrall_horns.lua 等文件分别处理其部件协同和检查名称。因此页面只把 shadow_aligned 作为源码确认的识别标签,不把所有暗影实体概括成相同的攻击模式或掉落规则。

阵营相关的伤害修正

伤害类型组件支持按标签登记加成和抗性:DamageTypeBonus:AddBonus(tag, source, pct, key) 为指定标签建立伤害加成修正,DamageTypeResist:AddResist(tag, source, pct, key) 则建立抗性修正;战斗组件在结算时读取伤害类型抗性。

当前版本中,已读到的明确实例是阿比盖尔与温蒂技能树的阵营联动:

  • 玩家带有 player_shadow_aligned 时,阿比盖尔添加 shadow_aligned 标签,并对暗影阵营获得抗性、对月亮阵营施加伤害加成。
  • 玩家带有 player_lunar_aligned 时,阿比盖尔添加 lunar_aligned 标签,并对月亮阵营获得抗性、对暗影阵营施加伤害加成。

这些修正由 TUNING.SKILLS.WENDY 下的技能常量提供,且只在对应技能/玩家标签分支启用;不能据此推导所有角色或所有阵营实体都具有固定的通用克制倍率。

终局中的月亮领域

天体后裔的月亮裂隙阶段会动态管理一个领域。alterguardian_phase4_lunarrift.lua 在领域或竞技场范围内为玩家调用 components.sanity:EnableLunacy(true, inst);玩家离开对应范围后调用 EnableLunacy(false, inst)。因此该阶段会强制附近玩家进入启蒙模式,但这仍是由首领领域提供的临时来源,不是把玩家永久改成月亮阵营。

源码中的进入领域距离为 24,离开领域距离为 32;这是该文件中的局部常量,不是 TUNING 常量。领域来源在玩家离开或阶段结束清理时移除。

代码参考

  • scripts/components/sanity.lua:Sanity:EnableLunacy、UpdateMode_Internal、DoDelta/模式阈值与启蒙模式变化率。
  • scripts/components/damagetypebonus.lua:按阵营标签登记伤害加成。
  • scripts/components/damagetyperesist.lua:按阵营标签登记伤害抗性。
  • scripts/components/combat.lua:战斗结算时读取伤害类型抗性。
  • scripts/prefabs/gestalt.lua:虚影的 brightmare 与 lunar_aligned 标签。
  • scripts/prefabs/alterguardian_phase1.lua、scripts/prefabs/alterguardian_phase4_lunarrift.lua:天体英雄/天体后裔的月亮阵营标签与月亮领域。
  • scripts/prefabs/abigail.lua:玩家月亮/暗影阵营标签对阿比盖尔的伤害加成与抗性联动。
  • scripts/prefabs/shadowthrall_hands.lua、scripts/prefabs/shadowthrall_horns.lua、scripts/prefabs/shadowthrall_centipede.lua:暗影仆从相关行为和阵营检查名称。

相关条目

理智虚影天体英雄天体后裔阿比盖尔

版本记录

  • 首次收录:build 756039;正文编写:build 756039;核对至:build 756039

依据源码:scripts/components/sanity.lua scripts/components/damagetypebonus.lua scripts/components/damagetyperesist.lua scripts/components/combat.lua scripts/prefabs/gestalt.lua scripts/prefabs/alterguardian_phase1.lua scripts/prefabs/alterguardian_phase4_lunarrift.lua scripts/prefabs/abigail.lua scripts/prefabs/shadowthrall_hands.lua scripts/prefabs/shadowthrall_horns.lua scripts/prefabs/shadowthrall_centipede.lua

涉及实体:alignment(alignment)