條件要求(法術)

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


條件法術(編程法術)為法杖中部分法術是否應該被加入到手牌設置了條件,這取決於條件法術的類型。它們的主要使用目的是在法杖中控制某一法術是否應該釋放出來,儘管這樣會占用魔杖中大量的空間。

在這些條件法術中,「要求 - 否則」和「要求 - 終點」起到輔助其他條件法術,控制它們的作用域的效果。而其他的條件法術則直接對條件做出要求。


使用技巧

  • 完整的一套條件法術形成的是典型的「if-else」語句塊結構,事實上,將條件法術圖標中中出現的符號翻譯為英文會分別得到「if」、「else」和「end」。
  • 條件每隔使用的是全局變量,即無論是什麼情況下施放一次都會反轉一次效果。
  • 該系列法術配合魔杖刷新可以重複利用魔杖的其中一部分,這在進階配杖中十分常見。

解鎖方式

重鑄翡翠石板扔進湖泊東側的鍊金術士小屋會打開一扇傳送門,通往湖面下位於小屋正下方的一個封閉金屬艙體。其中包含一把實驗性魔杖,一整套條件法術,以及一些家具。首次進入時允許在其中編輯法杖。

行為

基礎

如果你有任何編程經驗,簡要地說,這些就像if/else語句一樣

條件邏輯最基本的就是根據世界的狀態來決定做一件事或另一件事。如果你想靈活地自動改變一個過程的結果(魔杖施放),而不是必須決定運行一個或另一個過程(在魔杖之間交換),這就很有用。

這些法術讓你根據一些基本的陳述來施放一個或另一個法術。如果語句為真,你就得到一套法術,如果為假,你就得到另一套。在編程中,這通常表示為 "if...else (如果...否則)" 的語句(條件需求法術上的字形確實轉化為 "if"、"else "和 "end"),但術語並不重要--它們要麼做一件事,要麼根據它們被施放時的遊戲狀態做另一件事。

它們可以被歸為三種類型:

  • 如果: 敵人、投射物數量、生命值低下、每隔
  • 否則: 否則
  • 終點: 終點

這些東西的使用順序很重要--你可以有一個單獨的 "如果"(在這種情況下,它只跳過或施放緊隨其後的一個法術),一個 "如果 "後面有一個 "終點"(它跳過或施放兩者中間的所有法術),或者一個 "如果"、"否則 "和 "終點",它施放第一或第二組封閉的法術,而跳過另一組。

跳過法術的條件如下。

生命值

  • 如果剩餘的生命值超過25%,則跳過

這可能是最直接有用的要求。用它來觸發一個治療法術(例如活力之環),使其只在失去大量生命值時自動施放。另一個用途是與緩慢但堅定結合使用,作為危險的、持續施放的魔杖的 "殺戮開關"--如果你的生命值突然下降,條件就會啟動並增加1.5s的延遲。

投射物

  • 如果附近的投射物少於20個就跳過

可以用來觸發使用炸藥引爆器, 酸液置換術黑洞置換術, 保護之環等作為保護,或者在法術變力量魔杖構建中,在產生投射物和消耗投射物之間切換。

敵人

  • 如果附近的敵人少於15個就跳過

非常有場景性,例如自動觸發有範圍限制的法術,或者在緊張的情況下自動觸發昂貴的/有限使用的法術。這也可以用於只在附近有大量敵人時啟用精華變力量修正,以保證法力消耗不會過多。

每隔

  • 跳過這個要求的第二次施放

"每隔 "有些特殊,因為它的條件取決於它之前被施放了多少次。 由於它可以在一根魔杖內被施放一次以上,因此可以實現一些更高級的行為。

高級

奇特的效果可能由於以下原因而發生

  • 條件要求法術抽出下一張牌,這會觸發魔杖的迴繞。
  • 多個 "如果 "和 "否則 "法術相互干擾,與編程的預期不一致。

細節: "如果 "法術將掃描魔杖的其餘部分,直到到達另一個 "如果"、"終點 "或魔杖的末端(以先到者為準),同時追蹤沿途最後遇到的 "否則"。

  • 如果停止點是另一個 "如果",並且沒有 "否則",那麼"如果 "將丟棄(a)它之後的第一個法術,或者(b)什麼都沒有,然後抽1。
  • 如果停止點是另一個 "如果",並且有 "否則",那麼 "如果 "將丟棄(a)它之後的第一個法術直到 "否則",或者(b)"否則 "直到魔杖的末端,然後抽1。
  • 如果停止點是一個 "終點",並且有零個或一個 "否則",那麼它將按預期工作,儘管如果 "終點 "是魔杖上的最後一個法術,它可能會迴繞並導致非預期的效果。
  • 如果停止點是一個 "終點",並且遇到了多個 "否則",那麼它將根據最後遇到的 "否則 "法術按預期工作。
  • 如果停止點是魔杖的末端,並且沒有 "否則",那麼 "如果 "將丟棄(a)它之後的第一個法術,或者(b)什麼都沒有,然後抽1。
  • 如果停止點是魔杖的末端,並且有 "否則",那麼它要麼(a)丟棄直到最後一個 "否則 "法術,要麼(b)只丟棄最後一個 "否則 "法術(不棄掉它之後的任何法術),然後抽1。

例子:

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

這裡,"要求--生命值低下 "會:

  • 如果玩家的生命值很低,則丟棄 "否則 "和它之後的所有法術,甚至是 "終點 "之後的第二個巨型核彈,然後抽取第一個火花彈。 請注意,如果巨型分裂彈和火花彈不在魔杖上,"否則 "和第一個死亡十字將被施放。
  • 否則,丟棄火花彈和 "否則",抽取第一個死亡十字。"要求--敵人 "將正常運作。

例子:

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

這裡,"要求--生命值低下 "會:

  • 如果玩家的生命值很低,則不丟棄任何法術,並抽取第一個火花彈。
  • 如果玩家的生命值不低,則只丟棄第一個火花彈並抽取第二個。

"要求 - 敵人 "將正常運作。

舉例說明用法

每隔: 使兩個不同的有效載荷(交替地)重複利用修正/觸發

這個概念最初是由Priskip設計的。它能使敵人持續生成,包括可能掉落生命值上限蠕蟲。 (注意:從2021年4月起,不再可能產生怪腿寶箱怪。 從2023年3月起,如果通過殺死一個長腿寶箱怪來解鎖,使其變為可能)。

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

Priskip和LetsSufferTogether在以下視頻中解釋了更多細節(關於這個魔杖概念的早期版本):

每隔: 將速射魔杖的法力消耗減半

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

在這個例子中,"每隔 "被用來減少法力的消耗,因為它在一半時間內不施放昂貴的法術。 這在快速發射的魔杖上效果最好,因為它也使你的有效射速減半。

儲存--使用兩個相互矛盾的要求來始終跳過法術

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

這也適用於 "要求:投射物數量 "和 "要求: 敵人"(但它們必須是相同的)。由於要求條件不能同時為真和假,裡面的法術將永遠不會被施放。 然而,實現上的某些特殊性意味著在第一個 "如果 "之前,或者在第一個 "如果 "和 "否則 "之間,必須有可用的法術來在迴繞中施放,否則不需要的法術就會被施放。 (將法術放在 "終點 "之後並不奏效;如果條件法術得到滿足,"終點 "之後的法術仍然會被丟棄,而魔杖將迴繞並施放你想要存儲的法術)。 這確實比使用魔杖刷新進行存儲需要更多的魔杖槽,但也不需要花費法力,在你獲得多份魔杖刷新之前,這可能是一個有用的選擇。

儲存––資源友好型, 更少施法更易於使用的設計

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

根據 "每隔 "開關的當前狀態:

  • 狀態 A: 第一個 "每隔 "將丟棄掉第二個,然後儲存的法術會施放,下一個循環是狀態 B。
  • 狀態 B: 第一個 "每隔 "將不會丟棄任何法術,然後第二個 "每隔 "丟棄存儲的法術,並且它的抽取會導致魔杖迴繞到泡泡火花,下一個循環還是狀態 B。

因此,在將 "每隔 "開關設置為正確狀態後,這跟魔杖會持續執行存儲操作 (狀態 B),除非 "每隔 "是在另一根魔杖中施放過的,這需要將開關重置為正確狀態。要初始化或重置開關到正確的狀態,先在存儲區中使用安全的法術並施放此魔杖。然而,與其他基於條件需求法術的儲存設計一樣,任何額外的抽取數都可能會從存儲區內開始施放法術。

(此設計中泡泡火花也可以移動到末尾。)