Raal's Tome of Destruction

主にroguelikeのことを書くブログです

野生のモンスターのスピード固体値について

某所にて話題になったのでソース読んでみた。


変愚蛮怒では野生のモンスターに、同じやつでも速い子と遅い子がいます。
例えば、同じ変幻の魔公でも、+10のやつもいれば+30のやつも居る。
どれくらいバラつくの?という疑問にお答えします。

ソースより抜粋

まず、ユニークモンスターおよびテルモラ闘技場で登場するモンスターの速度は固定。
以下の過程はそれ以外の通常モンスターに適用される。


int i = SPEED_TO_ENERGY(r_ptr->speed) / (one_in_(4) ? 3 : 10);
if (i) mspeed += rand_spread(0, i);
if (mspeed > 199) mspeed = 199;


日本語訳すると、
モンスターのベース速度をエネルギーに変換し、1/4で3、3/4で10でそれを割って変数iに代入。
速度に(-i-1 + 1d(i*2+1))を加える。
最後に加速+89を越えていたら+89にする。(この199って値は加速+0を110としてるから加速+89)

SPEED_TO_ENERGY

加速とENERGYについて。
加速+10とか+20とかって何に影響するかというと、毎ゲームターン得るエネルギーに関係する。
行動するとこのエネルギーを消費し、またエネルギーが貯まると次の行動ができるわけ。


んで、加速とエネルギーの対応表がコレ。
最上段が1の位ね。

0 1 2 3 4 5 6 7 8 9
加速-50 1 1 1 1 1 1 1 1 1 1
加速-40 2 2 2 2 2 2 2 2 2 2
加速-30 2 2 2 2 2 2 2 3 3 3
加速-20 3 3 3 3 3 4 4 4 4 4
加速-10 5 5 5 5 6 6 7 7 8 9
加速+0 10 11 12 13 14 15 16 17 18 19
加速+10 20 21 22 23 24 25 26 27 28 29
加速+20 30 31 32 33 34 35 36 36 37 37
加速+30 38 38 39 39 40 40 40 41 41 41
加速+40 42 42 42 43 43 43 44 44 44 44
加速+50 45 45 45 45 45 46 46 46 46 46
加速+60 47 47 47 47 47 48 48 48 48 48
加速+70 49 49 49 49 49 49 49 49 49 49

この表によると、加速+20のモンスターは毎ゲームターン30のエネルギーを得るということになる。

まとめ

base speed speed下限 speed上限
+0 -3 +3
+5 +0 +10
+10 +4 +16
+15 +7 +22
+20 +10 +30
+25 +14 +36
+30 +18 +42

この表はスポイラにSpeed+10ってかいてあったら、実際に生成されるのは+4から+16の子になるって意味。


ただし、加速上限や加速下限になるためには一度1/4チェックを通らなければならない。
このチェックを通らなかった場合、ばらつきはより小さくなる。
加速最大の魔公が生成される確率は、1/4を通ったあと9+d21=30になる必要があるので、1/84となる。