rebf-gaiden/Scripts/_.39.rb
2025-04-26 17:06:34 -05:00

52 lines
No EOL
2 KiB
Ruby
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

module ELEMENTS_RATE
#加算平均とは別に乗算する属性ID
# 計算時にはここで指定しなかった属性の有効度の加算平均が出され
# その加算平均に、ここで指定した属性の有効度を乗算した値が結果有効度となる
MULTI_ELEMENT = [1,2,3,4,5,7,8,9,11,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,51,52,53,54,55,56,57,58,59,60,61,62,63]
# 例攻撃属性が1,19,22で
#
# ①相手の属性有効度がID150の場合
# MULTI_ELEMENTの設定をしなければ (0.50 + 1.00 + 1.00) / 3 = 83.3
# 19,22がMULTI_ELEMENTなら (0.50 / 1) * 1.00 * 1.00 = 50
#
# ②相手の属性有効度がID10の場合
# MULTI_ELEMENTの設定をしなければ (0.00 + 1.00 + 1.00) / 3 = 66.6
# 19,22がMULTI_ELEMENTなら (0.00 / 1) * 1.00 * 1.00 = 0
end
#==============================================================================
# ■ Game_Battler
#==============================================================================
class Game_Battler < Game_BattlerBase
#--------------------------------------------------------------------------
# ● 属性の最大修正値の取得
#--------------------------------------------------------------------------
def elements_max_rate(user, elements)
plus_rate = 0.0
plus_number = 0
multi_rate = 1.0
elements.each do |i|
rate = (element_rate(i) * elements_booster_rate(user, i)) -
elements_drain_rate(i)
if ELEMENTS_RATE::MULTI_ELEMENT.include?(i)
multi_rate *= rate
else
plus_rate += rate
plus_number += 1
end
end
if plus_number > 0
plus_rate /= plus_number
else
plus_rate = 1.0
end
rate = plus_rate * multi_rate
p sprintf("攻撃者:%s 有効度:%s%% (平均:%s%% 乗算:%s) 属性:%s",
user.name, rate * 100, plus_rate * 100, multi_rate, elements)
return rate
end
end