2013/09/29
■ [変愚蛮怒/スポイラー][別記事追加予定]apply_magic()処理の流れ(変愚蛮怒 Ver2.1.4 rev3495)
アイテムの呪い、エゴ、アーティファクト化を管理するapply_magic関数の処理をまとめる。サブルーチンであるa_m_aux_[1-4]()関数の流れは後日別記事で解説する。
- 性格いかさまならば、生成階に、1d(10+プレイヤーレベル/2)-1を加える。
- 生成階が127を超えるならば127とする。
- GOOD生成率を生成階+10(=f1)%とする、ただしダンジョン毎に指定されたGOOD生成率限界を超えない。
- GREAT生成率をf1*2/3%とする、ただしダンジョン毎に指定されたGREAT生成率限界を超えない。
- プレイヤーに白いオーラの突然変異がついているならGOOD生成率+5%、GREAT生成率+2%
- プレイヤーに黒いオーラの突然変異がついているならGOOD生成率-5%、GREAT生成率-2%
- 最初からGOOD確定フラグがついているか、f1%の確率を通れば、power=1(GOOD生成確定)
- 最初からGREAT確定フラグがついているか、f2%の確率を通れば、power=2(GREAT生成確定)
- (デバッグ専用)最初からSPECIAL確定フラグがついていれば、power=3(SPECIAL生成確定)
- 最初からGREAT確定フラグがついているか、f2%の確率を通れば、power=2(GREAT生成確定)
- さもなくばf1%の確率でpower=-1(CURSE生成確定)
- さらにf2%の確率でpower=-2(HEAVY_CURSE生成確定)
- CURSE確定フラグがついているなら、この時点でpower>0ならば符号が反転する。poweが負ならばさらに-1。
- power>=2ならば1回、GREATかSPECIAL確定ならば4回、固定アーティファクト生成を試みる(make_artifact()関数)。
- この試みは白いオーラ変異がついている場合、1回試みる毎に1/77の確率でもう1回試行される。
- 以上で固定アーティファクトが確定したら、その時点でアーティファクト情報をそのまま、アイテムに付加し、生成が終了される。
- 採掘道具、打撃武器、弓、弾、矢、クロスボウの矢、死の大鎌以外の竿状武器、毒針以外の剣はa_m_aux_1()関数による修正を行う。
- ドラゴンスケイルメイル、軽鎧、重鎧、盾、兜、冠、クローク、篭手、具足は以下の通りの処理を加える。
- エルフのクローク、黒装束ならば1d4のpvalを与える。
- ドラゴン・シールド、ドラゴン・ヘルム、ドラゴン・グローブ、ドラゴン皮の靴で、powerが0でなければ、a_m_aux_2()関数による修正を行う。
- 指輪、アミュレットならばa_m_aux_3()関数による修正を行う。
- それ以外ならば、a_m_aux_4()関数による修正を行う。
- セクシーギャルで危ない水着ならばpvalに3を与え、全能力値の修正フラグを加える。
- a_m_aux_[1-4]()関数の間でアイテムにエゴが確定したならば、以下の流れで修正を加える。
- 呪い、重い呪い、永遠の呪い、ランダムな呪い0/1/2、追加能力維持、追加能力、追加上位耐性、追加元素耐性、追加ドラゴン装備耐性、王者の指輪耐性、追加ランダム耐性のフラグがあるならば、各自処理を行う。
- 追加ダイス数フラグがあるならば、1/ダイス数が通る毎にダイス数を1増やす。(ただし10以上ならば9に抑えられる)
- エゴ毎に定められた発動能力をオブジェクトに与える。
- アイテムが呪われているか、壊れていて、POWERFULフラグがエゴにない場合、命中、ダメージ、AC、pvalを1d(エゴ情報で定めた分)だけ減らす。
- そうでなければ、命中、ダメージ、ACを1d(エゴ情報で定めた分)だけ増やす。エゴ情報で定めた値が負であった場合は、正に直してから加えてやる。
- 高精度エゴの射撃武器ならば、命中修正が、ダメージ修正+10より小さい場合、命中修正+5、ダメージ修正-5の修正を与える。さらに命中修正に最低+15を保証する。
- 高速度エゴの射撃武器ならば、ダメージ修正が、命中修正+10より小さい場合、命中修正-5、ダメージ修正+5の修正を与える。さらにダメージ修正に最低+15を保証する。
- 防具の各守りエゴならば、最低+15のAC修正を保証する。
- 最大pvalについて以下の修正を与える。
- 聖戦者エゴでかつ、追加攻撃フラグがついていたならば、pval+1、生成階60以上ならば、1/3の確率で、ダイス数*(ダイス面+1)が15未満の場合、さらにpval+1
- (悪魔)エゴに追加攻撃フラグがついていたら、pval+1d2、ついていなければ、1d(エゴ情報で定めたpval)だけpvalを加える。
- 追加攻撃エゴならば、pvalを1d(エゴ情報で定めたpval*生成階/100+1)とする。ただし3を超えない。
- 隼の剣ならばさらにpval+1d2
- 蝙蝠エゴならばpvalを1d(エゴ情報で定めたpval)とする。エルフのクロークならばさらにpval+1d2
- その他の場合pvalを1d(エゴ情報で定めたpval)とする。
- スピードエゴが生成階50未満の場合、ここでpvalを1d(エゴ情報で定めたpval)とする。
- 隼の剣が追加攻撃エゴを持たない場合ここでpval=2となる。
- ここまででアイテムが問題なく生成されている(アイテムのIDが0でない)場合はここでベースアイテムについている、呪い、重い呪い、永遠の呪い、ランダムな呪い0/1/2のフラグをアイテムに付加する。