Noita中文 Wiki
Advertisement

欢迎来到法杖机制指南的第二部分。如果你没读过或者不理解基础法杖机制指南,那我们强烈推荐你先读懂那篇指南再回来。这样能让你更确切地理解本指南所讨论的概念和技巧。

这篇进阶指南讨论“法杖如何执行它们的逻辑”,“法杖参数如何影响它们的法术”以及“法术和法术修正之间(几乎)全部的非直觉的相互作用,包括让你的法术快速开火的技巧和例子”。

提前声明一下,除非特别说明,下面我们的讨论讲的都基于 乱序:否 的非乱序法杖(简称否序杖)。

闲话少说,就让我们开始吧!

概念:施法块[]

施法块是我们创造的一个概念,用来更好地解释法杖行为,它不是Noita游戏自带的概念。法杖的 一次 施法中执行的命令——不管有多少法术和效果,只要它们是真真正正 同时 生效的话,那就都算一个施法块。

得先说清楚,事实上有更加微妙的概念体系来解释法杖的运作机制,但我们只会在必须做这么细致的专家攻略里用。我们现在还是用简单一点的施法块概念来把眼下的事情说完吧。

下面是我们在基础法杖机制指南用到的几个法杖例子:

例子 A[]

Spell slow bullet.png Spell rubber ball.png Spell light bullet.png Spell heavy bullet.png
施法块1 施法块2 施法块3 施法块4

这个法杖有4次施法,因此我们说它有4个施法块,每个块只包含1个法术。

例子 B[]

Spell slow bullet.png Spell speed.png Spell rubber ball.png Spell damage.png Spell fire trail.png Spell light bullet.png
施法块1 施法块2 施法块3

这个法杖有3次施法,也就是有3个施法块。能量球体单独一个施法块,弹跳爆发和它前面的1个法术修正构成另一个施法块,火花弹和它前面的2个法术修正构成最后一个施法块。

例子 C[]

Spell bullet trigger.png Spell fire trail.png Spell scatter 3.png Spell bubbleshot.png Spell bubbleshot.png Spell bubbleshot.png
施法块1 施法块2

这个法杖只有2个施法块,第一个施法块是带有触发的魔法箭,最后是因火焰轨迹三重散射法术修正而 一起发射的 3个泡泡火花构成的一个特别大的施法块。

在这里我们能确定一件事:触发法术————例子中的带有触发的魔法箭,和触发出的法术————例子中的3个泡泡火花是不属于同一施法块的,触发法术会建立一个新的施法块。

单个施法块里的修正是怎么工作的[]

通过上面的例子,你可以看到当有法术修正或者多重释放时,一个施法块包含的内容可不只一个法杖插槽。我们在基础法杖机制指南里提到过“将法术修正放到法术前面才能修正这个法术”,但我们现在仔细研究的话这个说法并不十分准确,更准确的说法是“将法术修正放到与法术同一个施法块里才行”。

你可能会觉得,这不是一样的吗?

还真有点不一样。事实上,只要法术修正是在施法块里的话,它放在法术前还是法术后都行!

这有两个例子:

例子 A[]

Spell scatter 3.png Spell bubbleshot.png Spell fire trail.png Spell bubbleshot.png Spell bubbleshot.png
施法块1

这个法杖每次施法会发出3个泡泡火花,虽然火焰轨迹在第一个泡泡火花后面,但实际上这3个泡泡火花都带有火焰轨迹的效果。

例子 B[]

Spell scatter 3.png Spell slow bullet.png Spell slow bullet.png Spell fire trail.png
施法块1

在这个例子里,火焰轨迹法术修正甚至被放到了最后,但实际上你的能量球都会带有火焰轨迹的效果。这是因为一开始的三重散射法术修正的计算过程中会碰到第四个法杖插槽里的火焰轨迹,然后把它修正到了同受这个三重散射法术能量球上。

(但不得不说,在这个例子里的三重散射法术用得有点浪费——如果这个法杖能再多一个插槽的话,我们可以再加一个法术到火焰轨迹后面,让已经有的能量球和新加的法术都能享受到火焰轨迹的修饰)

多重释放和施法块的化学作用[]

从上面章节的例子可以看到,如果我们要将多个法术构成一个大施法块,三重散射法术之类的多重释放修正某种程度上是必须的。然而,将多个多重释放修饰器串起来我们可以整出更大的施法块出来,这你知道吗?

全新的例子:

Spell scatter 3.png Spell bubbleshot.png Spell bubbleshot.png Spell scatter 3.png Spell bubbleshot.png Spell bubbleshot.png Spell bubbleshot.png
施法块1

在这个例子里:

  1. 三重散射法术最先被读到,计算过程中将后续的2个泡泡火花依次计算上,然后计算上了另一个三重散射法术
  2. 这时候完成第一个三重散射法术的计算过程,启动第二个三重散射法术的计算过程,将后续的3个泡泡火花依次计算上,完成了第二个三重散射法术的计算过程
  3. 这时候整个读取过程结束,总共有5个泡泡火花被算到了1个施法块了,因此这次施法将同时放出5个泡泡火花

对施法块的总结[]

如果你能理解上面的内容,那么可以试试解读下面这个法杖例子,它包含了我们已经说过的所有知识点。

Spell burst 2.png Spell bubbleshot.png Spell speed.png Spell light bullet trigger.png Spell circle shape.png Spell rubber ball.png Spell rubber ball.png Spell rubber ball.png Spell damage.png Spell rubber ball.png Spell rubber ball.png Spell scatter 2.png Spell heavy bullet.png Spell slow bullet.png
施法块1 施法块2

这个法杖一次释放会先触发第一个施法块,从法杖同时发射1个泡泡火花和1个带有触发的火花弹带有触发的火花弹在击中东西后触发第二个施法块,在火花弹命中的地方同时产生5个弹跳爆发、1个魔法弹和1个能量球,这7个法术全部都受伤害增强修饰,伤害增加10%。

“抽取数/施放”大于1的法杖[]

大部分法杖的“抽取数/施放”都是1,简单来说就是每次鼠标点击只释放一个魔法。那“抽取数/施放”大于1时,法杖会怎样工作呢?

这可能比你预想的要简单得多:不管是乱序杖还是非乱序杖,每次鼠标点击其实就是创建1个施法块;以非乱序杖为例,你可以认为法杖在你点击鼠标的时候,会先执行一个看不到的多重释放的修正,然后再执行法杖里对应的插槽内容。法杖的“抽取数/施放”的值,决定具体是哪个看不到的多重释放修正——法杖的“法术数/施放”为2时,是二重法术,“抽取数/施放”为3时,是三重法术,如此类推。

因此,一把“抽取数/施放”为2的法杖,它插槽内容如下的话:

Spell light bullet.png Spell light bullet.png
施法块1

它的使用效果就和下面的“抽取数/施放”为1的普通法杖一模一样

Spell burst 2.png Spell light bullet.png Spell light bullet.png
施法块1

在增加施法块长度这点上,不管“抽取数/施放”是多少,上面的规律都是成立的。

“抽取数/施放”和多重释放的法术尽管效果一样,但是“抽取数/施放”是不耗法力的,而多重释放的法术可能需要消耗法力。另外,“抽取数/施放”大于1的法杖还算常见,而且“抽取数/施放”最大可以去到26,而如果光用多重释放类型的法术来实现的话那得串联很多个法术,浪费法杖插槽,又或者赌命能拿到无尽法术

不过在未来,各种高级法术的使用会对抽取数十分的敏感,那时更多会使用多重释放的法术来进行抽取数的控制。


带“始终施法”的法杖[]

有些时候,你会发现一些法杖的说明栏里有个“始终施法”的属性,后面还跟一个法术或者修正的图片。

它是如何运作的呢?这种法杖会你释放法术时将对应的法术/修正在添加到当前的施法块上。如果它有一个"魔法导弹"的法术,那么它将会添加一个这样的法术到施法块中并且发射它;如果有一个混乱路径的法术,那么你触发的所有的施法块都会受到影响。

虽然"始终施法"的法杖的基本机制非常简单,它的"始终施法"法术/修正在统计数据方面很特殊。

一个"始终施法"的法术或者修正有一下特性:

  1. 与正常法术相同的对施法延迟、充能时间的影响
  1. 不会耗蓝,但是注入法力、血液魔法如果在始终施法的话,依然会回蓝(血液魔法在自然条件下不会出现在始终施法中)
  1. 无限次数(比如始终释放回血环,你将会拥有一个能一直回血的手段)

这意味着如果你可以将施法延迟和充能减到1帧的话(法杖面板显示一帧对应时间为0.02s),则"始终施法"将可以在不消耗法力的情况下,在游戏的每一帧中触发。


如何计算法杖的面板[]

在了解该部分之前,请先去法杖页面了解法杖的各种基本属性。

正如法杖页面所说,施放延迟和充能时间都是法杖的基础面板,是我们拿到法杖时相对会比较关注的面板。一些法术会修改这两个数值,这些法术可能是任何类型的法术。法术对于这两个属性的影响,会在面板上显示,链锯除外。在游戏内,它并没有显示出它能将施法延迟置零的能力。

一个触发法术,比如触发火花弹, 它将会像我们上文所说,建立一个新的施法块,在这个施法块中的法术,并不会有释放延迟的概念,法杖的施放延迟不会影响到这个施法块,这个施法块对施放延迟的影响,也不会影响到法杖发射其他施法块(比如触发火花弹所在施法块),因此,利用该技巧,你能利用触发法术更快的发射具有高施放延迟的法术,比如闪电弹

施放延迟[]

施放延迟,拿手枪来做比喻的话,就是每两发子弹之间的间隔时间,也就是说,是你两次施法中间的间隔。

例: 这是一根有0.2s施放延迟时间的法杖中的法术

Spell burst 2.png Spell grenade.png Spell light bullet.png Spell rubber ball.png
施法块1 施法块2

火焰弹会增加0.5s的施放延迟,火花弹也会增加0.05s的施放延迟. 二重法术不会增加施放延迟,虽然弹跳爆发会减少0.03的释放延迟,但是它在第二个施法块中,并不会影响第一次施法。

所以,当我们施放完第一个施法块,即二重法术+火焰弹+火花弹之后,需要等待(0.2s+0.5s+0.05s=0.75s)的施放延迟才能施放法杖中的第二个施法块————弹跳爆发。

注:虽然例子中的计算是这样写的,但实际上计算是(12帧+30帧+3帧=45帧)计算的。需要注意,法术面板的秒数,均为1/60s的近似值,因此,直接进行计算时,可能因此而得到错误的结果,在充能时间结束时,将介绍一个案例。


充能时间[]

Additionally, the Cast Delay and Recharge timers are NOT mutually exclusive. They can absolutely run at the same time, and so if the last Cast Delay of the wand is higher than the Recharge then you'll find that even though the recharge is finished you cannot actually cast because the Cast Delay timer (which is usually invisible, see below) is still going.

If you attempt to cast when the Recharge timer has run down, but the Cast Delay timer has not, a cool down bar representing the Cast Delay will appear where the Recharge timer usually is.

如下:

法杖1:释放延迟为0,充能时间为0.20s

Spell burst 3.png Spell burst 3.png Spell clipping shot.png Spell light bullet.png Spell chainsaw.png Spell chainsaw.png Spell chainsaw.png Spell chainsaw.png Spell chainsaw.png

法杖2:释放延迟为-0.05s(为了抵消火花弹的释放延迟),充能时间为0.02s

Spell light bullet.png

这两个法杖在通过面板的充能时间(单位为s)进行计算时,会得到,两者的充能时间均为0.02s的结果

Spread and Mana Recharge[]

The Spread statistic is added to spells on a Casting Block basis, exactly like Cast Delay. Mana works the same, but is also added across Casting Blocks IF they are bound together via a trigger spell.

There are two ways to boost the mana of a wand: Either using the Add Mana modifier or soak yourself in Concentrated Mana from a Potion. As this guide is about wands, we'll talk about the modifier only.

The Add Mana modifier both has + Cast Delay and a -30 Mana drain, which means that it subtracts the amount of mana its attached spell uses. If it goes into the positive, the affected spell will actually increase mana istead of draining it. Used correctly, it can seriously increase the time before you run out of mana on a fast firing wand, or even make the wand completely FREE to use!

An example:

Spell burst 2.png Spell mana.png Spell luminous drill.png Spell luminous drill.png
施法块1

The Luminous Drill each have +10 mana drain, which is completely canceled out by the -30 from the Add Mana. That means this Wand doesn't consume any mana at all to use. It's completely free and will fire the Luminous Drills forever until you let go of the mouse button, no matter how crap the wands mana recharge stat is.

Exploiting Negative Stat Modifiers to Make Very Fast Wands[]

If you've watched any streamers play Noita, or experimented with the spell system yourself, you probably will have stumbled upon the weird and powerful magic that is the Chainsaw spell. Chainsaw's primary effect is that it directly sets the cast delay of the block that it's in to zero. That includes cast delay from the wand and cast delay from and preceding spells, but it doesn't include spells that come after the Chainsaw in the block. As you can imagine, this is an extremely powerful effect, allowing you to cast spells with gargantuan cast delay as if they were a mere bouncing bolt.

In addition, Chainsaw reduces Recharge Time by 0.17s, so stacking enough of them in a wand in the proper way will allow you to reduce both the Cast Delay and Recharge Time of the wand to zero. In this situation, you'll cast one casting block per frame. for a total of 60 casts per second (including any blocks that the initial block casts with triggers or timers). Good stuff. Here's our first example:

Example A[]

Wand statistics: Cast Delay: 0.25, Recharge 0.50

Spell burst 3.png Spell light bullet trigger.png Spell mana.png Spell circle shape.png Spell rubber ball.png Spell rubber ball.png Spell rubber ball.png Spell rubber ball.png Spell rubber ball.png Spell chainsaw.png Spell chainsaw.png Spell chainsaw.png
施法块1 施法块2 施法块1 Continued
  • First, the multicast happens, which means that Block 1 now will contain Spark Bolt with Trigger (and thus Block 2) and 2 more spells
  • Then, the trigger happens, which immediately creates Block 2. To begin with, Block 2 needs one spell before finishing.
  • Now the Add Mana happens and the hex-cast happens. Block 2 now needs six more spells before finishing.
  • Block 2 consumes the five bouncing bursts and the single chainsaw, and finishes. These six projectiles will be launched when the trigger is detonated.
  • The chainsaw in Block 2 reduces the recharge time by 0.17s, but has no effect on cast delay since it is inside a trigger.
  • At this point, we return to Block 1, since it still needs two more spells and Block 2 has ended. The final two chainsaws are consumed as a part of Block 1, and get fired at the same time as the spark bolt.
  • Both chainsaws in Block 1 reduce the recharge time by an additional 0.17s, for a total of -0.51s. So, we have minimized our recharge time.
  • The chainsaws also set the cast delay of block 1 to zero, meaning that we have minimized our cast delay as well. With this, our wand will fire once every frame, for 60 shots a second.

So, this spell has a net casting delay of 0 and recharge time of 0, which means it casts every game-rendering frame. So, we will cast every spell in this wand 60 times a second, costing 16 mana per frame. If you added an extra Add Mana to the wand it would be completely free.

Note, however, that the two chainsaws each add +6 degrees of spread to Block 1. This spread impacts all spells in block 1, including the Spark Bolt, so this wand will be somewhat inaccurate. To fix the spread, we could move one of the chainsaws into Block 2. We only need one chainsaw in block one in order to set the cast delay to zero. If we want to mitigate the remaining spread from the chainsaw or the base stats on the wand, we could use a Reduce Spread modifier in Block 1 or start using Luminous Drill instead of Chainsaw for cast delay reduction (Luminous Drill provides -0.58s cast delay for 10 mana).

Also note that it is important that we place the chainsaws after the Spark Bolt in Block 1. If we placed them before, then the cast delay would still be set to 0, but the Spark Bolt would apply its +0.05s cast delay to the block, leaving us with 0.05s cast delay in total.

If you don't have any Chainsaw spells and want to make zero delay wands anyway, you'll need to get a bit more creative. Chainsaw is the best spell for this purpose, since it provides infinite cast delay reduction and some recharge reduction for 0 mana cost. However, there are alternatives, like Luminous Drill mentioned above, Digging Bolt, or material spells like Cement, and many other projectiles and modifiers that reduce either cast delay, recharge time, or both.


Final Words[]

That's all for now. Now go build some epic wands! And if you find out anything else we forgot to cover here, or you find a mistake, please feel free to add it in or fix the mistake!

If your thirst for wand crafting knowledge is still not sated, there's still the Expert Guide To Wand Mechanics to dive into. There we discuss how the game processes wands on a near-code level. Not for the faint of heart, but if you master it then the spell system will hold no more secrets from you.

Advertisement