專家攻略:抽取

出自Noita Wiki
跳至導覽 跳至搜尋

在Noita中的法杖系統核心是一個卡牌遊戲。這也許挺驚奇的,本攻略將解釋抽取的機制 - 字面意思的牌庫、手牌和棄牌區工作與基礎機制,以及簡單的法術互動。在本文中,我們將其描述成了一個常見的牌庫說模型。(譯註:專家攻略系列配合spell lab模組的施法序列功能以及遊戲解包文件內的gun_actions.lua等文件食用更佳)


基礎:牌庫、手牌、棄牌堆

首先需要了解Noita怎麼處理法術。當你用法杖施法,其中的法術會在這三個區域之間移動:

手牌:即施法隊列,承載了你開火時所施放的全部法術。這個區域防止法術被重複施放兩次。

牌庫:即法術池,承載了所有你法杖中所有未施放過的法術。在你開火前所擁有的法術,並在非亂序法杖中按順序排列。

棄牌堆:存放了所有施放過的法術(或者被某些機制丟棄的法術)。當一次施法完成後,手牌中的所有法術將丟棄至棄牌堆。所以,在未開火時,法杖中的法術要麼在棄牌堆,要麼在牌庫。


在正常施法時,法術會自行在這三個區域內移動,我們將介紹這是如何發生的,但是有些法術能夠通過以下兩種情況對其操控:

抽取(draw):將法術從牌庫(法術池)移動至手牌(施法隊列)的動作。大多數投射物法術不具有抽取(draw)效果,大多數修正的抽取數為1,而N重施法的抽取數為N。

我們通過一個簡單的例子來了解什麼是抽取:

Wand 0821.png
亂序
No
法術數/施放
1

法杖的施法數為1,此時我們的抽取數為1,抽取到第一個法術,二重施法,抽取數+2,此時的抽取數為1-1+2=2個,第二第三個格子是空的,我們跳過,一直抽取到第一個火花彈,由於火花彈本身不帶抽取(draw)屬性,也就是抽取數不會+1,此時的抽取數為2-1=1,接下來繼續抽取到第二個火花彈,此時的抽取數為1-1=0,抽取數歸零。此時我們已經無法再接着抽取法術了,此時本輪開火。

丟棄(discard):一種將牌庫(法術池)中的法術直接置入棄牌堆的動作。只有高級法術擁有這種效果,如一分為N系列等,本篇不會介紹這些法術。

在這個攻略中,我們將着重於普通的在牌庫、手牌和棄牌堆之間的法術移動。理解這些有利於我們理解高級法術,也能理解法杖的運轉機制。讓我們通過一些例子來學習這些。


法術預載

牌庫是所有法術初始位置。在一個沒被使用過的非亂序法杖中,牌庫承載了法杖中的所有法術。

簡單來說,預載就是把法術從牌庫轉移到手牌中。在一根施法數1的法杖中,當你單擊鼠標按鈕發射法杖時,法杖會從牌庫中抽取第一個法術,並將其預載置入手牌。然後,預載在手牌中的所有法術被施放,隨後在遊戲世界中生成手牌中法術的效果,最後將手牌中的所有法術丟棄。

這意味着每次施法只有一個法術被預載進入手牌中,顯然與事實不符。事實上許多修正法術和多重施法在預載的過程中會抽取更多的法術並將其置入手牌。例如:一個法術修正使抽取數+1,並再抽取另一個法術;一個雙重施法不產生效果,然後抽取兩個法術。下面例子演示了法術如何抽取其它的法術:

Wand 0821.png
亂序
No
法術數/施放
1

該法杖的預載隊列樹看起來像是這樣:

抽取 img01.png

應這樣解釋:

  1. 法杖最開始從牌庫抽取傷害增強(拳頭)。傷害增強被預載置入手牌中。
  2. 傷害增強作為一個修正,使抽取數+1,,接着抽取了二重法術,並將其預載。
  3. 二重法術使抽取數+2。接着抽取到三重法術,並將其預載。
  4. 三重法術使抽取數+3,此時的抽取數為4。接着抽取到第一個火花彈。火花彈作為一個正常投射物,不具備抽取屬性。
  5. 三重法術接着抽取兩次,都是火花彈,同上。
  6. 三重法術抽取完了所有三張法術並預載,此時抽取數還剩1。
  7. 回到二重法術,它的第一次抽取的三重法術已預載完成,接下來抽取第二張牌。加速被抽取。
  8. 加速作為一個修正,抽取數+1,還能抽取到最後一個火花彈,而火花彈不具備抽取屬性,抽取數歸零,所有抽取全部完畢。此時加速完成了抽取,預載。火花彈同理,預載。
  9. 二重法術完成了抽取的兩張牌,二重法術預載,進入手牌。
  10. 回到法杖施法,因為為施法數1法杖僅會在施法時抽取一張牌。在傷害增強預載完成後,沒有更多手牌需要預載,預載結束後所有法術生效。


因此,發射四個都具有傷害增強和加速效果的火花彈(這部分需要Noita法術編程指南裡面的知識)。此時除了核彈所有的法術都在手牌中被施放,隨後被置入棄牌堆,下一次施法前就進入施法延遲。


下一次施法會發生什麼?這很簡單:

除了核彈外所有法術都在棄牌堆中,所有法杖抽取牌庫中剩下的最後一張核彈。核彈移動至手牌預載,最後施放。核彈移動至棄牌堆,然後一個重要機制在此時起效。

當一次施法結束時,遊戲會檢查牌庫中是否有剩餘的法術,如果沒有,則觸發法杖充能。這是法杖充能的二種情況之一。充能時將所有法術從棄牌堆移回牌庫,進入充能冷卻,充能冷卻結束時再重複上述的過程。


施法狀態

在上一節,我們忽略了修正和投射物的效果是如何出現在遊戲世界中的,最初的想法是它可能與手牌有關——可能在預載的最後,某個機制讀取了手牌中的全部法術並做了些什麼?這是一個想當然的假設,而它是錯誤的。手牌與這無關,手牌只是記錄那些牌已經被預載了,被預載的牌不會再次被抽取。最明顯的例子就是迴繞可以重新抽取棄牌堆的牌,但不能抽取手牌中的牌。

施法狀態是一個比較抽象的概念,我們舉個例子來更好的了解它:在我們施放大量的高級法術(大量字符法術或者一分為N)時,會變得異常卡頓,往往要在數秒乃至數分鐘的卡頓後才能開火,這個時候就是施法狀態了。在施放小型法術時,施法狀態往往是瞬間完成的。施法狀態存儲着目前為止已預載的所有修正和投射物,例如我們預載了一個拳頭(傷害增強),那麼投射物的傷害就會+10,如果再預載一個拳頭,就會變成+20。

當投射物被施放時,會經過以下幾個步驟:首先,投射物本身被添加到「施法狀態」所存儲的「投射物列表」中。然後,附加到投射物的任何修正都會修改「施法狀態」中的「修正列表」。投射物的施放延遲散射被添加到投射狀態的施放延遲和散射列表中。法術修正被施放時也一樣,不過比上面少個投射物列表,並且在預載時抽取數+1,再抽取一張牌。


當一個施法預載完成時(沒有抽取數,或者牌庫中沒有法術可抽取時),所有存儲在施法狀態的投射物都會被射出,每個投射物都會附帶它們應該有的修正效果。這就是為什麼一個傷害增強修正法術會應用於施法塊的每一個投射物。

注意,沒有提到牌組、手牌或棄牌中的任何法術--只有施放狀態在法術實際發射時被使用。這一點很重要,因為有些法術,比如魔杖刷新,會從手牌中移除法術,而讓施放狀態不被觸發。


最後,關於法杖充能的注意事項:如果修正或投射物法術有充能時間,它將被添加到一個單獨的值。在法杖充能之前,可能會發生多個施法狀態的多個施法,因此充能時間值與每個單獨的施法狀態是分開的。也就是說,它被法術改變的方式和施法狀態完全一樣。

迴繞

你以前可能聽說過法術迴繞。我們如何用這個新框架來解釋呢?答案很簡單:當一個法術試圖抽牌但牌庫中沒有任何法術時,棄牌堆中的每個法術都會被移動到牌庫中重新排列。然後抽牌進行 - 這就是法術迴繞。有一個額外的細節:當迴繞發生時,遊戲中會設置一個標記,使其在法杖當前的施法結束後立即充能。這就是為什麼法杖又會回到最初開始,即使是迴繞施放了前幾個法術後。

以下為例。施法數1:

Wand 0821.png
亂序
No
法術數/施放
1


  1. 法杖抽取雙重法術
  2. 二重法術抽取兩個火花彈
  3. 無抽牌預載結束,發射兩個火花彈
  4. 雙重法術和火花彈棄置
  5. 應用施法延遲
  6. 下一次施法開始,火花彈被抽取施放棄置,應用延遲
  7. 下一次施法開始,抽取光
  8. 光試圖抽牌,但無牌可抽。迴繞觸發,棄牌堆的其它法術返回牌庫,並添加標記。
  9. 光抽取二重法術
  10. 二重法術抽取兩個火花彈
  11. 無更多抽牌,發射所有法術並棄牌。
  12. 此時光、二重法術和兩個火花彈在棄牌堆中,手牌空,並在牌庫中有一個火花彈
  13. 此時法杖不會再試圖抽牌以抽到火花彈,相反,因為光造成了迴繞設置的標記,法杖會立即進入充能


迴繞與法杖的施放數

一個重要的注意事項是,法杖本身的抽取數不能導致迴繞。例如,當一個施放數3的法杖在牌庫中還有一個投射物並試圖第二次抽牌時,即使棄堆牌中有可用的法術,它也不會迴繞。也就是說,以下法杖不會迴繞:

Wand 0821.png
亂序
No
法術數/施放
3

它將發射三個火花彈兩次,然後是一個火花彈。即使棄牌堆中有足夠的火花彈,它也不會發生迴繞。不過仍可以通過法術來實現迴繞,比如下面這個:

Wand 0821.png
亂序
No
法術數/施放
3

它將發射三個火花彈兩次,隨後:

  1. 法杖抽取火花彈
  2. 法杖抽取光,該法術造成了迴繞,棄牌堆回到牌庫,並且抽取了火花彈
  3. 法杖在第三次抽取時抽取了火花彈
  4. 法杖充能

法杖本身的施法數的情況加上多重施法後,施法序列會變得複雜起來,所以儘量使用施法數為1的法杖,以更清晰的梳理施法序列。

觸發

觸發是我們需要討論的最後一個抽取機制。你很可能已經注意到,觸發裡面的法術修正不會修正觸發外面的法術,反之亦然。我們怎麼解釋?答案是觸發法術實際上創造了一個全新的施法狀態。舊的施法狀態被保存並放在一邊,新的施法狀態用於預載觸發法術內的所有法術。一旦觸發法術內的法術預載完成,該施法狀態將最終確定並附加到觸發法術的投射物上,以便在觸發法術觸發時施放。然後回到舊的施法狀態,並繼續進行法術預載。

請注意,在這個過程中,手牌和牌庫保持相對不變 - 使觸發法術工作的主要機制是創建新的施法狀態。


Wand 0821.png
亂序
No
法術數/施放
1


這是其如何預載的:

  1. 法杖抽取追蹤,追蹤修改施法狀態(追蹤效果)
  2. 追蹤抽取穿刺魔彈,穿刺魔彈修改施法狀態(-15投射物傷害、穿刺與友方傷害)
  3. 穿刺魔彈抽取帶觸發的火花彈。火花彈儲存舊的施法狀態,並創建新的子施法狀態
  4. .帶觸發的火花彈抽取三重法術
  5. 三重法術抽取傷害增強修正,修正新的施法狀態(+10投射物傷害)
  6. 傷害增強抽取挖掘爆破,自身預載完成
  7. 三重法術抽取剩餘的兩個挖掘爆破,均預載完成
  8. 回到帶觸發的火花彈的預載,我們製造了一個新的投射物,這時一個具有我們剛剛創建的具有觸發效果的存在
  9. 初始的施法狀態回復,這個火花彈應用了原施法狀態,完成預載
  10. 法杖施法完成,所有都被施放了
  11. 在這一點上的施法狀態包括追蹤和穿刺的變化,和創造的帶觸發的火花彈投射物。當觸發時,會施放三個帶傷害增強的挖掘爆破

這是一個簡單的觸發。分離施法狀態允許一些炫酷的效果 - 例如,這個法杖發射一個啟用了友方傷害的火花彈,但降低的投射物傷害使其即使它擊中玩家也毫髮無損。但是,它會在接觸時產生高傷害的挖掘爆破 - 但是由於這些是單獨的施法狀態的一部分,沒有啟用友方傷害故也不會對玩家傷害。所以,這個魔杖即使它使用穿刺魔彈傷害敵人並多次接觸,也是對玩家完全安全的。

結論

希望您能很好地理解抽牌的工作原理,以及牌庫、手牌和棄牌堆。本攻略中的例子非常詳細地介紹了這個過程的每一步,以確保您對正在發生的事情有一個很強的把握,因為在理解諸如希臘字母、分隔符和各種其他遊戲後期咒語的實際工作方式時,這種細微差別將非常有用。

視頻