53 lines
1.9 KiB
Ruby
53 lines
1.9 KiB
Ruby
|
||
|
||
module Element
|
||
# ◆ スキル・アイテムに継承しない属性
|
||
# <攻撃属性継承> で継承しない属性の ID を指定。
|
||
IGNORE = [1, 2,3,4,5,11, 12, 13, 14, 15, 16, 17, 18]
|
||
|
||
# 範囲オブジェクト(1..6 など)の記述形式には対応していません。
|
||
end
|
||
|
||
#==============================================================================
|
||
# ■ Game_Battler
|
||
#==============================================================================
|
||
class Game_Battler < Game_BattlerBase
|
||
#--------------------------------------------------------------------------
|
||
# ● スキル/アイテムの属性修正値を取得(再定義)
|
||
#--------------------------------------------------------------------------
|
||
def item_element_rate(user, item)
|
||
#複数属性のリストを習得
|
||
e_list = item.attack_elements_list
|
||
|
||
#アクターであれば反映属性を取得
|
||
e_list += user.reflect_elements if user.actor?
|
||
|
||
if e_list == ([] or empty?)
|
||
e_id = item.damage.element_id
|
||
if e_id < 0
|
||
result = user.atk_elements.empty? ? 1.0 : elements_max_rate(user, user.atk_elements)
|
||
else
|
||
elements = [e_id]
|
||
if item.note =~ /<攻撃属性継承>/
|
||
user.atk_elements.each do |element|
|
||
elements.push(element) unless Element::IGNORE.include?(element)
|
||
end
|
||
end
|
||
result = elements_max_rate(user, elements.uniq)
|
||
end
|
||
else
|
||
e_list.push(item.damage.element_id)
|
||
if item.note =~ /<攻撃属性継承>/
|
||
user.atk_elements.each do |element|
|
||
e_list.push(element) unless Element::IGNORE.include?(element)
|
||
end
|
||
end
|
||
result = elements_max_rate(user, e_list.uniq)
|
||
end
|
||
|
||
#アクターであればダメージ増加補正を取得
|
||
result *= gain_damage_rate(user, item) if user.actor?
|
||
|
||
return result
|
||
end
|
||
end
|