トップ «前の日記(2012/10/26) 最新 次の日記(2012/10/28)» 編集

SikabaneWorksが関係するコンテンツ(主に*band系ローグライク)の開発近況・補足から全く個人的な雑記まで。

[WEB:屍の見える丘公園]| [RSS]

Angband | Badiashimshe | C# | CRAUZEL | D'angband/小説草稿 | D'angband/開発 | DarkSouls | Demon'sSouls | DungeonCrawl | ElvenUteruses | Haskell | Hengband | J9シリーズ | LEGO | LineDrawing | MISC | MTG | Mac | Math | Moria | R-18 | Roguelike | Rough | RoughSketch | Ruby | SDL | UNIX | VMware | WarHammer | Zangband | アタシラヂョウヲウ | イラスト | ガジェット | ゲーム | ゲーム紹介 | ゲーム製作技術 | ゲーム論 | スケッチ | ツクール | テクノロジー | ニコニコ動画 | ファルコム | ファンタジー | マリオ | ヴィーヤウトゥムノ | 別記事追加予定 | 変愚蛮怒 | 変愚蛮怒/スポイラー | 変愚蛮怒/元ネタ探訪 | 変愚蛮怒/攻略 | 変愚蛮怒/開発 | 宗教 | 情報 | 政治 | 文字コード | 日ペ昔話 | 東方 | 東方ワンドロ | 東方外法漢女 | 歴史 | 漫画製作 | 版権絵 | 画像処理 | 翻訳 | 自然言語 | 艦隊これくしょん | 落書き | 言語解析 | 読書 | 超人ロック | 追記予定 | 通信 | 鉄獄旅慕情 | 阿片窟 | 馬鹿馬鹿蛮怒/開発 | 魔法少女まどか☆マギカ | 魚類版深夜の真剣お絵描き60分一本勝負


2012/10/27

ベネディクトとサーペントの打撃、どちらが脅威か(命中処理まで)

前回、種族の打撃修正がどれほどの影響かについて語った際に、自然と@さんからモンスターへの命中処理についても語ることになった。今度はモンスターから@さんに打撃を行なった場合の威力について、アンバー九王子の長兄ベネディクトと、混沌のサーペントを基準に色々と調査してみる。

知っている人は知っていると思うが、モンスターの打撃は最大4回でそれぞれ毎に打撃の特性とダメージダイスが指定されている。まず単純にスペックを比較しよう。混沌のサーペント(LEVEL100)の打撃ステータスは

B:CRUSH:SHATTER:22d10
B:CRUSH:SHATTER:22d10
B:BITE:LOSE_ALL:10d12
B:TOUCH:UN_POWER

と(最後の魔道具吸収はややこしいが)あくまで3回攻撃121+121+65=307の期待値である。一方、理想の戦士『ベネディクト』(LEVEL79)の打撃は

B:HIT:HURT:15d15
B:HIT:HURT:15d15
B:HIT:HURT:15d15
B:HIT:HURT:15d15

の4回攻撃期待値120+120+120+120=480である。

この内命中に関わるpower値は打撃の特性毎に異なっている。その値はtables.cから、mbe_infoを引用して以下の通りである。

mbe_info_type mbe_info[] =
{
	{  0, 0,             }, /* None      */
	{ 60, GF_MISSILE,    }, /* HURT      */
	{  5, GF_POIS,       }, /* POISON    */
	{ 20, GF_DISENCHANT, }, /* UN_BONUS  */
	{ 15, GF_MISSILE,    }, /* UN_POWER  */ /* ToDo: Apply the correct effects */
	{  5, GF_MISSILE,    }, /* EAT_GOLD  */
	{  5, GF_MISSILE,    }, /* EAT_ITEM  */
	{  5, GF_MISSILE,    }, /* EAT_FOOD  */
	{  5, GF_MISSILE,    }, /* EAT_LITE  */
	{  0, GF_ACID,       }, /* ACID      */
	{ 10, GF_ELEC,       }, /* ELEC      */
	{ 10, GF_FIRE,       }, /* FIRE      */
	{ 10, GF_COLD,       }, /* COLD      */
	{  2, GF_MISSILE,    }, /* BLIND     */
	{ 10, GF_CONFUSION,  }, /* CONFUSE   */
	{ 10, GF_MISSILE,    }, /* TERRIFY   */
	{  2, GF_MISSILE,    }, /* PARALYZE  */
	{  0, GF_MISSILE,    }, /* LOSE_STR  */
	{  0, GF_MISSILE,    }, /* LOSE_INT  */
	{  0, GF_MISSILE,    }, /* LOSE_WIS  */
	{  0, GF_MISSILE,    }, /* LOSE_DEX  */
	{  0, GF_MISSILE,    }, /* LOSE_CON  */
	{  0, GF_MISSILE,    }, /* LOSE_CHR  */
	{  2, GF_MISSILE,    }, /* LOSE_ALL  */
	{ 60, GF_ROCKET,     }, /* SHATTER   */
	{  5, GF_MISSILE,    }, /* EXP_10    */
	{  5, GF_MISSILE,    }, /* EXP_20    */
	{  5, GF_MISSILE,    }, /* EXP_40    */
	{  5, GF_MISSILE,    }, /* EXP_80    */
	{  5, GF_POIS,       }, /* DISEASE   */
	{  5, GF_TIME,       }, /* TIME      */
	{  5, GF_MISSILE,    }, /* EXP_VAMP  */
	{  5, GF_MANA,       }, /* DR_MANA   */
	{ 60, GF_MISSILE,    }, /* SUPERHURT */
}

GF_MISSILEとか、なんじゃろと思うことと思うが、これは打撃のダメージ属性が魔法処理にとってのどれに該当するかを示しているものでとりあえず今回は無視してよい。問題は左の数値で、これがpower値としてもっとも基本的な命中基準になる。そしてcheck_hit関数で以下の処理の順で命中の是非が決まる。

相手が朦朧状態だと1/2の確率で問答無用で外れる。
5%の確率で必中、5%の確率で必ず外れる。
@さんの性格がなまけものなら5%の確率で必ず当たる。
1d(power + 敵レベル*3) > (@さんのAC * 3 / 4) で命中そうでなければ外れる。

この後、さらに対邪悪結界の時限効果を@さんが持ってると攻撃を無効にする処理があるが、この処理は相手がEVILで@さんのレベル(最大50)がモンスターのレベルより上でないと聞かない、つまり50Fより深い敵には意味のない産廃仕様なので省略しておく。

さて、ここまで命中率の面で見た流れで判明することが一つ。「攻撃の命中率は敵のレベルに大きく依存している」という当たり前といえば当たり前の事実である。

終盤に、なまけものでない脳筋職の@さんのACが高いと大体160前後に及ぶとして、

ベネディクトの基準値 60 + 79*3 = 303
サーペントの基準値(SHUTTER) 60 + 100*3 = 360
サーペントの基準値(LOSE_ALL) 2 + 100*4 = 302
@さんの基準値 160 * 3 / 4 = 120

ベネディクトのHURT命中率 約58%
サーペントのSHUTTER命中率 約64%
サーペントのLOSE_ALL命中率 約59%

といったところになる。 単純にこれだけ見ていると、まだまだベネディクトの方が打撃の威力は高そうであるが、 命中後、HURTとSHUTTER,LOSE_ALLが@さんのACに対してどれだけダメージを通すかによって、 事情はまだ変わってくる。次回に続く。