创建Boss阶段
Boss阶段是自定义Boss的子机制。这个阶段背后的系统非常灵活和强大,需要专门的说明来确保您能充分利用此功能。
Boss阶段如何工作?
可以使用以下配置格式向EliteMobs中的任何自定义Boss添加Boss阶段:
phases:
- phase_2_boss.yml:0.X
- phase_3_boss.yml:0.Y
注意:您最初生成的Boss(包含列出所有其他阶段的phases:条目)是第1阶段Boss。第1阶段Boss文件不应在其自己的phases:条目中列出自己。
此机制背后的基本意图是允许管理员在战斗期间更改自定义Boss属性。通过使用上述配置格式,您可以完全更改各阶段之间的配置文件,这意味着您可以更改99.99%的属性 - 如技能、伤害倍数、生命值倍数、实体类型、伪装、穿戴的盔甲...
为了实现这一点,EliteMobs会在战斗期间删除您的Boss并立即用下一阶段的版本替换它。这个过程是瞬时的,所以往往看起来非常流畅 - 除非您想故意让它看起来很华丽。Boss在过渡后会获得1秒的战斗宽限期,以确保视觉效果的流畅。
示例
以这个示例阶段Boss为例:
文件:phase_1_boss.yml
isEnabled: true
level: 50
healthMultiplier: 10
entityType: STRAY
powers:
- attack_gravity.yml
phases:
- phase_2_boss.yml:0.60
- phase_3_boss.yml:0.30
文件:phase_2_boss.yml
isEnabled: true
level: 50
healthMultiplier: 10
entityType: SKELETON
powers:
- attack_gravity.yml
- arrow_fireworks.yml
文件:phase_3_boss.yml
isEnabled: true
level: 50
healthMultiplier: 10
entityType: WITHER_SKELETON
powers:
- arrow_rain
这构成了一个有效的阶段Boss。如果您生成phase_1_boss.yml,它将生成一个具有上述属性的流浪者。在受到伤害降至其生命值的_60%_后,它将立即在同一位置被phase_2_boss.yml中形成的自定义Boss替换,因为配置文件声明了- phase_2_boss.yml:0.60(phase_2_boss.yml是该自定义Boss的文件名,0.60是60%生命值)。_请注意,第2阶段Boss将以其60%的生命值生成,因为这是它转变到该阶段的时间。_Boss将拥有phase_2_boss.yml文件中列出的技能。一旦第2阶段Boss受到伤害降至其生命值的30%,它就会生成为第3阶段设置的Boss。请注意,第3阶段的技能与之前的技能无关 - 您可以完全更改各阶段之间的技能,就像几乎所有其他属性一样。
高级
继承机制
以下是各阶段之间不会改变的内容列表:
-
链中的第一个阶段Boss决定了Boss将经历哪些阶段,这意味着您不应该为该阶段中的其他Boss放置阶段条目。
-
威胁表/伤害表保持不变,这意味着战利品分配和高级仇恨系统不受阶段变化的影响
-
切换阶段是基于损失的生命值百分比,该百分比在各阶段之间保留。这意味着如果您的Boss设置为在50%生命值时进入第2阶段,那么将替换第1阶段Boss的Boss仍将处于50%生命值。这也意味着每个阶段可以有完全不同的生命值量而不会引起问题。
-
如果阶段Boss通过默认的脱离战斗Boss再生系统治疗回满血,则会恢复到第1阶段
-
同时也是区域Boss的阶段Boss在所有阶段共享相同的拴绳半径和超时机制,并将在重生计时器结束后作为第1阶段Boss重生。重生冷却时间和其他区域Boss设置始终取自第1阶段Boss配置。
阶段特定生成位置
默认情况下,Boss在各阶段之间过渡时保持在其当前位置。但是,您可以使用phaseSpawnLocation设置使Boss在进入某个阶段时传送到特定位置:
文件:phase_2_boss.yml
isEnabled: true
level: 50
healthMultiplier: 10
entityType: SKELETON
powers:
- attack_gravity.yml
- arrow_fireworks.yml
phaseSpawnLocation: world_name,100,64,100,0,0
您也可以在保持Boss在同一世界的同时传送它:
phaseSpawnLocation: same_as_boss,100,64,100,0,0
这对于创建戏剧性的阶段过渡非常有用,其中Boss传送到不同的竞技场或位置。
警告
以下是一些机制的列表,这些机制的工作方式最初可能是反直觉的:
-
如果阶段Boss在任何阶段被杀死,它将掉落该阶段的战利品。这意味着如果有人设法太快杀死阶段Boss(一击),它实际上会死亡并掉落为该Boss文件配置的战利品,这不一定是最后阶段的战利品。您可以通过将战利品表设置为该阶段Boss的所有Boss文件相同来解决此问题,或者确保您的阶段Boss有足够的HP,以至于不可能仅用几次攻击就杀死它们。或者,您可以为能够跳过阶段的人提供特殊的战利品表。
-
由于阶段Boss实际上会在战斗期间导致自定义Boss生成,因此它们在生成时将执行整个生成例程。因此,在涉及生成消息和生成时运行的命令时要小心。此外,阶段Boss在改变阶段时不会死亡,它们只是被其他东西交换。这意味着死亡时运行的命令只会为最后一个阶段Boss运行,或者如果玩家通过造成足够的伤害设法跳过一个阶段。生成时运行的命令可用于挂钩到阶段变化。*注意:*由于再生到满血而导致Boss重置到第1阶段时,不会发送生成消息。但是,在战斗期间过渡到第2、3等阶段时,以及区域Boss在冷却后重生时,会发送生成消息。
-
阶段Boss可以在各阶段之间骑乘或停止骑乘。如果阶段Boss在坐骑死亡之前被杀死,坐骑将持续到下一阶段。如果Boss再生回满血,坐骑将被删除,Boss将变为非骑乘状态,除非它配置为在第1阶段骑乘实体。
-
由于在各阶段之间会生成新的自定义Boss,因此一次性生成机制在各阶段之间和满血时重置。
提示和技巧
-
您可以利用装备和实体类型可以在整个战斗过程中改变的事实,使Boss在整个战斗中看起来越来越(或越来越不)危险
-
虽然可以,但除非有特定的设计目标,否则最好不要让阶段Boss的技能在各阶段之间变化太大,因为玩家更有可能享受在整个战斗中感觉自然的进展。
-
您可以使用onSpawn命令在各阶段之间运行命令
-
您可以使用
song配置选项为每个阶段设置不同的音乐。当Boss进入新阶段时,音乐将自动过渡。 -
阶段可用于将Boss从近战模式切换到远程模式,反之亦然
-
阶段Boss被设计为拥有大量HP的强大Boss。它们通常最适合作为地下城的最终Boss遭遇战或作为大型世界Boss。
-
在设计遭遇战时,请记住,玩家可能不会在各阶段之间杀死增援部队。
-
Boss可以有任意数量的阶段,但阶段越多,它们就需要越多的生命值来使每个阶段都有意义。
API集成
对于插件开发者:当Boss在各阶段之间过渡时,EliteMobs会触发ElitePhaseSwitchEvent。此事件可用于在阶段过渡期间创建自定义行为或效果:
@EventHandler
public void onPhaseSwitch(ElitePhaseSwitchEvent event) {
CustomBossEntity boss = event.getCustomBossEntity();
PhaseBossEntity phaseBoss = event.getPhaseBossEntity();
// Your custom logic here
}