WAVE 情報

各 WAVE 情報

それぞれの WAVE の全情報を司る WAVE シードはゲームシードから初期化されます。

def setWaveMgr(self):
    self.rnd.init(self.mGameSeed)
    self.rnd.getU32()  # 乱数を一回消費
    self.mWaveMgr = [
        WaveMgr(0, self.mGameSeed),
        WaveMgr(1, self.rnd.getU32()),
        WaveMgr(2, self.rnd.getU32()),
    ]

WAVE1 のシード初期化ミス

ここで WAVE1 の WAVE シード初期化を誤っているためにインデックスバグが発生しています。

各イベント発生率

かけだしはんにんまえいちにんまえじゅくれんたつじん
イベントなし100%75%75%75%75%
ラッシュ-8.3%6.25%4.17%4.17%
キンシャケ探し---4.17%4.17%
グリル発進-8.3%6.25%4.17%4.17%
ハコビヤ襲来---4.17%4.17%
-8.3%6.25%4.17%4.17%
ドスコイ大量発生--6.25%4.17%4.17%

各イベント・潮位を計算するアルゴリズムは以下の通り。

def getWaveInfo(self):  # WAVEの情報を計算する
    mEventProb = [18, 1, 1, 1, 1, 1, 1]
    mTideProb = [1, 3, 1]
    self.rnd.init(self.mGameSeed)  # WAVE情報を求めるために初期化

    for wave in range(3):
        sum = 0
        for event in range(7):
            if  wave > 0
                and self.mEvent[wave - 1] != 0
                and self.mEvent[wave - 1] == event:
                continue
            sum += mEventProb[event]
            if (self.rnd.getU32() * sum >> 0x20) < mEventProb[event]:
                self.mEvent[wave] = event
        sum = 0
        for tide in range(3):
            if tide == 0 and 1 <= self.mEvent[wave] and self.mEvent[wave] <= 3:
                continue
            sum += mTideProb[tide]
            if (self.rnd.getU32() * sum >> 0x20) < mTideProb[tide]:
                self.mTide[wave] = 0 if self.mEvent[wave] == 6 else tide

各イベント発生率詳細

たつじん以上の場合のみを記載する。

干潮通常満潮合計
イベントなし15%45%15%75%
ラッシュ-3.125%1.041%4.167%
キンシャケ探し-3.125%1.041%4.167%
グリル発進-3.125%1.041%4.167%
ハコビヤ襲来0.833%2.5%0.833%4.167%
0.833%2.5%0.833%4.167%
ドスコイ大量発生4.167%--4.167%

ドスコイ大量発生は干潮でしか発生しないため、干潮の夜イベントが発生した段階で 71.43%の確率でドスコイ大量発生となる。

潮位

潮位干潮通常満潮
確率20%60%20%

どのキケン度においても潮位は通常が 60%、干潮と満潮がそれぞれ 20%となる。

キケン度で変化するパラメータ

湧き方向回数

湧き方向変化回数4005001000
称号たつじん 0たつじん 100たつじん 600
シャケ10 回8 回10 回
オオモノシャケ8 回6 回8 回
変化タイミング10 秒12 秒10 秒

たつじん以上では湧き方向変化回数は 8 回か 10 回のどちらかです。四人の評価レート合計がピッタリ 1600 のときか 4000 以上のときに 10 回になります。

変化のタイミングはおよそ 10 秒と 12 秒になります。

シャケの湧き方向タイミングがオオモノよりも二回多いのは最後のオオモノが湧いてから、ザコシャケの湧き方向だけが変化するタイミングが二回あるためです。

ラッシュ

ラッシュ4005001000
称号たつじん 0たつじん 100たつじん 600
キンシャケ出現サイクル202020
ザコシャケスピード倍率2.833.5

ラッシュのターゲットが変わるのは、湧き方向が変わるタイミングと全く同じです。

キンシャケ探し

キンシャケ探し4005001000
称号たつじん 0たつじん 100たつじん 600
シャケ同時存在数323232
ザコシャケ同時存在数202448

キンシャケ探しはキケン度でザコシャケの同時出現数だけが変化します。

つまり、たつじん以上であればキケン度が低ければ低いほどザコシャケ・タマヒロイが出現しないため納品数が増えることになります。

グリル発進

グリル発進4005001000
称号たつじん 0たつじん 100たつじん 600
二体目出現秒数403010
インターバル時間333
スピード倍率1.92.12.3

キケン度が上がるとグリルの移動速度と、二体目出現までの間隔が短くなります。グリルをたおしてから再出現するまでの秒数はどのキケン度でも 3 秒です。

ハコビヤ襲来

ハコビヤ襲来4005001000
称号たつじん 0たつじん 100たつじん 600
射出間隔50F50F50F
降下速度1.21.52.0
出現回数233
母艦のライフ220025003500

ハコビヤ襲来イベントでは、ハコビヤの降下速度とクーラーボックスからの出現回数と母艦のライフだけが変化します。

なので、キケン度が低いからシャケコプターの数が少ないということはありません。どのキケン度でも 50F に一回シャケコプターが射出されるので 100 秒(6000F)で 120 体のシャケコプターが出現する計算になります。

4005001000
称号たつじん 0たつじん 100たつじん 600
キンシャケ出現間隔555

霧はキケン度によって変化するパラメータはありません。

5n 体目のオオモノシャケがキンシャケに変化するため、5, 10, 15, 20 体目がキンシャケになります。

よってノルマが 21 以上であれば四体出現しますが、それ以下だと三体しか出現しないことになります。

キンシャケのドロップ数

キンシャケがドロップする金イクラの数は以下のアルゴリズムで計算されます。

__int64 __fastcall sub_4A7BD0(__int64 this, __int64 a2)
{
  *(this + 2640) = sead::Random::getU32((this + 0x724)) / 0x55555556;
  return sub_4643F4(this, a2);
}
キンシャケドロップ数1510
場合の数1431655767 通り1431655767 通り1431655762 通り
確率0.33333333372%0.33333333372%0.33333333255%

PRNG に偏りがないのであれば 10 個ドロップする確率は約 33.33%となります。また、キンシャケドロップ数はキンシャケをたおすタイミングを変えることで変化させることができます。

四体全てのキンシャケが 10 個ドロップする確率は約 1.23%となります。

ドスコイ大量発生

ドスコイ大量発生はキケン度によって変化するパラメータはありません。

シャケの湧き方向

全てのステージにおいて 1, 2, 3 の三つの湧き方向が存在しています。

偏り

湧き方向 1 は 100%二連続しないことが解析からわかっています。

ちなみに、湧き方向変化計算アルゴリズムの Swift コードは以下の通り。

湧き方向アルゴリズムについて

ようやく重い腰を上げて完全解析に挑みました。

private func getEnemyAppearId(random: UInt32, lastAppearId: UInt8) -> UInt8 {
    let w6 = lastAppearId == 1 ? 2 : 3
    let x8 = UInt8((UInt64(random) &* UInt64(w6)) >> 0x20)
    switch lastAppearId {
        case 0, 3:
        	return x8 + 1
        case 1:
        	return x8 + 2
        case 2:
        switch x8 {
            case 0:
            	return 1
            case 1:
            	return 3
            case 2:
            	return 2
            default:
            	return 0
        }
        default:
        	return 0
    }
}

湧き方向確率

湧き方向123
初手2/9(0.2222)7/18(0.3888)7/18(0.3888)
全体1/4(0.25)3/8(0.375)3/8(0.375)

各ステージの湧き方向

全て覚える必要はありませんが、どの方向は二連続しないかは覚えておくと良いでしょう。

湧き方向
1 湧き
2 湧き
3 湧き

シェケナダム

難破船ドン・ブラコ

海上集落シャケト場

トキシラズいぶし工房

朽ちた箱舟 ポラリス