杖と呪文の仕組み/ギリシャ文字の呪文と再帰限界編
(気力の輪は使用回数ゼロ)
上の杖にあるガンマは一見発掘ブラストだけを複製するように見えます。
しかし、実際には発掘ブラストと気力の輪の両方を複製するのが分かります。
ギリシャ文字の呪文は、我々がゲームで見る杖の中の初め(アルファ)、次の二つ(タウ)、最後(ガンマ)のスペルを複製するのではなく、デッキ内のそれぞれの該当する位置のスペルを複製します。
再帰限界
Noitaではスペルを詠唱する時、呼び出させるスペルにはそれぞれ内部的に再帰レーベル(Recursion Level)(あるいは深さ、以下rec)っていう数値が存在します。
(詳細は後で話しますが)この数値には上限があり、もしいない場合、
このような杖を詠唱するだけで無限ループが発生し、ゲームがクラッシュしかねなりません。
再帰レーベルは次の法則により決まります。
1. ドローされてキャストされたスペルはrecが0
2. キャストされたスペルが※非再帰スペル(non-recursion spell)だった場合、そのスペルのrecはそのスペルを呼び出したスペルのrecと同じ
- ※非再帰スペル=自分自身を再び呼べない種類のスペル、スペルラッピングはそもそも自分自身を参照できないので異なる
3. キャストされたスペルが※再帰スペルだった場合、そのスペルのrecはそのスペルを呼び出したスペルのrecに+1
4. recが再帰限界(=2)に達したスペルは、再帰スペルを呼び出さない(対象にしない)
ここで間違えやすいことは、分割スペルは再帰スペルではないことです。
複雑に見えますが、例と一緒に見てみましょう。
タウ
タウは、"デッキの最も上にある二枚のスペルをコピー、それぞれのrecを確認し、2を超えないスペルをキャスト"する効果を持っています。
この杖をキャストした時起きることを順を追ってみてみましょう。
- タウ(rec=0)トロー
- タウ(rec=0)はアルファとスパークボルトをコピー
- アルファ(rec=1)キャスト
- アルファ(rec=1)はタウをコピー
- タウ(rec=2)キャスト
- タウ(rec=2)はスパークボルトだけコピー
- スパークボルト(rec=2)キャスト
- スパークボルト(rec=0)キャスト
- 全てのドロー処理終了、射出
でスパークボルト二つが発射されるわけです。
細かい説明を付けたのが以下になります。
- タウ(rec=0)(1番法則)トロー
- タウ(rec=0)はアルファとスパークボルトをコピー
- アルファ(rec=1)(タウ(rec=0)によって呼ばれたため3番法則によってrec+1)キャスト
- アルファ(rec=1)はタウをコピー
- タウ(rec=2)(アルファ(rec=1)によって~、3番法則)キャスト
- タウ(rec=2)は(4番法則によって、再帰スペルのアルファは呼ばれず)スパークボルトだけをコピー
- スパークボルト(rec=2)(タウ(rec=2)によって呼ばれたがスパークボルトは非再帰スペルに分類されるため2番法則によって変動なし)キャスト
- スパークボルト(rec=0)(タウ(rec=0)によって~、2番法則)キャスト
- 全てのドロー処理終了、射出
ちなみに、Wand SimulatorのActions Called項目では、上の写真のように、各欄の右上にある青緑色のボックスの中にキャストされるスペルのrecが表示されています。
杖の作動原理の分析等をする時に参考するといいかもしれません。
ちょっと違う例を見てみます。 便宜上、二つのタウをそれぞれタウA、タウBと称します。
- タウA(rec=0)トロー
- タウA(rec=0)はタウBとスパークボルトをコピー
- タウB(rec=1)キャスト
- タウB(rec=1)はタウBとスパークボルトをコピー
- タウB(rec=2)キャスト
- タウB(rec=2)はスパークボルトだけをコピー
- スパークボルト(rec=2)キャスト
- スパークボルト(rec=1)キャスト
- スパークボルト(rec=0)キャスト
- 全てのドロー処理終了、射出
になります。
キャストされたタウB(rec=1)は手札にあったタウAがコピーしたものです。ですので、タウBはタウBの後ろにあったスパークボルトだけではなく、
(まだ本体がキャストされなかったためデッキに残っていた)タウBとスパークボルト両方をコピーしたわけです。
これが先ほど言っていた、"デッキを基準にする"の意味です。
(実は他のスペルたちも同様です)
オメガ
オメガは"破棄札、現在の手札(非再帰スペル限定)、デッキ"にある全てのスペルを順番にキャストする効果を持っています。
ただし、どんな状況でも杖のリフレッシュだけはキャストしません。
では見てみましょう。今回も二つのオメガをそれぞれオメガA、オメガBと称します。
- ガンマ(rec=0)ドロー
- ガンマ(rec=0)キャスト、オメガBをコピー
- オメガB(rec=1)キャスト
- 破棄札は空、手札は再帰スペルのガンマのみで非再帰スペルはなし、デッキは杖のリフレッシュ、スパークボルト、オメガA、オメガBで杖のリフレッシュは特性で無視される
- スパークボルトがコピーされ、スパークボルト(rec=1)キャスト
- 続いてオメガAをコピー
- オメガA(rec=2)キャスト
- 破棄札、手札、デッキの変動なし
- スパークボルトがコピーされ、スパークボルト(rec=2)キャスト
- オメガA(rec=3>2)、オメガB(rec=3>2)はスキップされる
- 続いてオメガBをコピー
- オメガB(rec=2)キャスト
- 破棄札、手札、デッキの変動なし
- スパークボルトがコピーされ、スパークボルト(rec=2)キャスト
- オメガA(rec=3>2)、オメガB(rec=3>2)はスキップされる
- 全てのドロー終了、射出
になり、三つのスパークボルトが発射されます。
凄く効率的ですね!
再編集:Tensama0415
情報源:殆どは英ウィキのページから、他のNoitaの掲示板と色々