コード: 全て選択
class RPG::State
#--------------------------------------------------------------------------
# ● カテゴリーステートIDの取得
#--------------------------------------------------------------------------
def category_state_id
note =~ /<共有耐性ステート(\d+)>/ ? $1.to_i : nil
end
end
class Game_BattlerBase
#--------------------------------------------------------------------------
# ○ ステート有効度の取得
#--------------------------------------------------------------------------
alias :_old_state_rate :state_rate
def state_rate(state_id)
$data_states[state_id].category_state_id ?
_old_state_rate(state_id) * _old_state_rate($data_states[state_id].category_state_id) :
_old_state_rate(state_id)
end
#--------------------------------------------------------------------------
# ○ 無効化されているステートの判定
#--------------------------------------------------------------------------
alias :_old_state_resist? :state_resist?
def state_resist?(state_id)
$data_states[state_id].category_state_id ?
_old_state_resist?(state_id) || _old_state_resist?($data_states[state_id].category_state_id) :
_old_state_resist?(state_id)
end
end
ほぼコピペになりますけどとりあえずこれで。
特徴「ステート無効化」が影響する処理は二ヶ所あります。
一つはステート付与時。「ステート有効度」とはまた異なる箇所で判定が行われます。
もう一つはバトラーのリフレッシュ時。
例えば毒に掛かったアクターに毒無効化アクセサリーを装備するとその時点で毒も解消します。
これがステート有効度0%との主な違いでもあります。
それで今回の追加だと前者には対応しましたけど後者には対応していません。
愚直に再現する分にはそれほど難しくないんですけど
流石に正規表現や繰り返しの重複が気になるので、
本格的に改修する場合は実装を全面的に見直さないといけない、と思います。
ぞの上でこの差異の部分が重要であるのならば対応しますけどちょっと時間は掛かるでしょうね。