#==============================================================================
# 「混乱のリアリティ強化」(ACE) Ver.1.0
# 製作者:奈々(なな)
# へぷたなすくろーる http://heptanas.mamagoto.com/
#
# ◇使用規約
# 使用される場合はスクリプト作成者として「奈々」を明記して下さい。
# スクリプトの改変は自由に行って頂いて構いませんが
# その場合も元のスクリプトの作成者として名前を載せて下さい。
# また配布前に必ず、ブログにある利用規約を確認して下さい。
#
#------------------------------------------------------------------------------
#
# デフォルトの「混乱」(敵か味方を攻撃する)は
# まず1/2の確率で敵に攻撃するか味方に攻撃するかを判定し
# その上で狙われ率に応じて誰に攻撃が当たるかを決めていました。
#
# これを、自分自身を除いた敵味方全員に対して
# 狙われ率に応じて判定するよう変更します。
#
# つまり、人数が多い方により攻撃が当たりやすくなり
# かばうなどで味方からの攻撃も防げるようになり
# 1人しかいない相手には混乱の有効性が下がるようになります。
#
# 使い方は、スクリプトをリストに追加するだけです。
# (特にスクリプトの設定をする必要はありません)
#
#==============================================================================
#==============================================================================
# ■ Game_Action
#------------------------------------------------------------------------------
# 戦闘行動を扱うクラスです。このクラスは Game_Battler クラスの内部で使用され
# ます。
#==============================================================================
class Game_Action
#--------------------------------------------------------------------------
# ● 混乱時のターゲット
#--------------------------------------------------------------------------
def confusion_target
case subject.confusion_level
when 1
opponents_unit.random_target
when 2
random_target_without_self
else
friends_random_target_without_self
end
end
#Game_Unitの処理を移植改変
#--------------------------------------------------------------------------
# ● 無差別ターゲットのランダムな決定
#--------------------------------------------------------------------------
def random_target_without_self
o = opponents_unit
f = friends_unit
s = subject
tgr_rand = rand * (o.tgr_sum + f.tgr_sum - s.tgr)
o.alive_members.each do |member|
tgr_rand -= member.tgr
return member if tgr_rand < 0
end
f.alive_members.each do |member|
next if member == s
tgr_rand -= member.tgr
return member if tgr_rand < 0
end
o.alive_members[0]
end
#--------------------------------------------------------------------------
# ● 味方ターゲットのランダムな決定
#--------------------------------------------------------------------------
def friends_random_target_without_self
f = friends_unit
s = subject
tgr_rand = rand * (f.tgr_sum - s.tgr)
f.alive_members.each do |member|
next if member == s
tgr_rand -= member.tgr
return member if tgr_rand < 0
end
f.alive_members[0]
end
end