戦闘に勝利するとお宝の追加処理が行われる (注: 「にげる」や魔ML4「離脱」で逃げた場合はお宝の内容が全てクリアされる)。
追加されるお宝の内容は倒した敵たちに依存する。なお、本作は逃げた敵の管理がバグっているため、逃げた敵がいる場合は倒した敵リストが必ずしも正しくないことに注意。
以下、GOLD, GEM, アイテムの追加処理およびお宝ランクの決定処理について個別に述べる。
モンスターは種類ごとに「GOLDドロップ値」という 0..=3
の値を持ち、その値によりGOLDのドロップ量が決まる:
値 | GOLD量 |
---|---|
0 | 0 |
1 | rand(1..=15) |
2 | rand(1..=100) |
3 | 256 * rand(1..=4) |
倒した全ての敵について上記のドロップ量がお宝内のGOLDに加算される。
モンスターは種類ごとにGEMを落とすかどうかが決まっている。
倒した全ての敵について、その敵がGEMを落とすならば rand(1..=6)
がお宝内のGEMに加算される。
敵からのドロップアイテムには 0..=4
のランクがあり、モンスターごとにどのランクのアイテムを落とすかのマスクが設定されている。
このマスクは 5bit 値で、下位 bit から順にランク 0, 1, 2, 3, 4 のアイテムを落とすことを示す。
戦闘勝利時は、まず今回のお宝追加処理におけるアイテムランクマスクを決定する。これは全ての敵のドロップアイテムマスクを 5bit 値と見たときの最大値となる。
次に、対象のアイテムランクたちについて降順でドロップ判定を行う。ランク i のアイテムは 10 * (5 - i)
(%) の確率でドロップが発生する。
ドロップが発生した場合、そのランク内でアイテム抽選を行い、結果のアイテムをお宝に追加する。ただし既にお宝内のアイテムが満杯の場合は何もしない。
まずアイテムカテゴリをランダムに選ぶ。アイテムカテゴリおよびアイテムID範囲の表を以下に示す:
カテゴリ | ID範囲 | ID個数 | 備考 |
---|---|---|---|
片手近接武器 | 1..=60 | 60 | |
射撃武器 | 61..=85 | 25 | |
両手近接武器 | 86..=120 | 35 | |
鎧 | 121..=155 | 35 | |
盾 | 156..=170 | 25 | |
その他 | 171..=230 | 60 | イベントアイテムを含まない |
そして、(カテゴリ内最小アイテムID) + (アイテムランク)*(カテゴリ内ID個数)/5 + rand(0..=(カテゴリ内ID個数)/5-1)
を実際にドロップするアイテムIDとする。これはカテゴリ内ID範囲を 5 分割し、ランクに応じた範囲から抽選していることを意味する。たとえば、両手近接武器のIDは 86..=92
, 93..=99
, 100..=106
, 107..=113
, 114..=120
に 5 分割され、ランク 2 に対応するID範囲は 100.=106
となる (どのカテゴリもID個数は 5 の倍数であることに注意)。
ただし、射撃武器だけは上式の (カテゴリ内最小アイテムID)
が誤って 5 と設定されている(本来は 61 が正しい)。よって、射撃武器が選ばれた場合の実際のID範囲は 5..=29
となる。つまり、戦闘勝利時に射撃武器がドロップすることは決してない。
まずお宝内のアイテムによる判定を試みる。これは「ドロップが発生したかどうか」のみに依存する(お宝内のアイテムが満杯で追加できなかった場合も発生した扱いとする)。判定はアイテムランクの降順で行う。
4
のドロップが発生した場合、お宝ランクは 10
。1..=3
のドロップが発生した場合、お宝ランクは (アイテムランク) + 2 + rand(1..=4)
。0
のドロップが発生した場合、お宝ランクは 1 + rand(1..=4)
。お宝内にアイテムがない場合、お宝内にGEMがあればお宝ランクを rand(2..=5)
とする。
お宝内にアイテムもGEMもない場合、GOLDによりお宝ランクを決定する:
rand(0..=3)
。rand(0..=1)
。