lunariafantasia/Scripts/_.102.rb
2024-01-12 03:12:38 -06:00

136 lines
No EOL
5.9 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.

class RPG::UsableItem::Damage
#--------------------------------------------------------------------------
# ○ 魔法攻撃倍率の共通計算式 ※再定義
#--------------------------------------------------------------------------
=begin
def magic_attack(element_id)
"(100 + a.mat + a.last_tp - b.mdf - b.tp) * 0.01 * a.atk_elements_rate(#{element_id})"
end
=end
#--------------------------------------------------------------------------
# ○ 魔法攻撃倍率の共通計算式 ※再定義
#--------------------------------------------------------------------------
def element_magic(element_id)
"[a.atk_elements_rate(#{element_id}), 0.1].max"
end
#--------------------------------------------------------------------------
# ○ 巻物アイテムの共通計算式
#--------------------------------------------------------------------------
def scroll_magic(skill_id)
"($data_skills[#{skill_id}].base + ($data_skills[#{skill_id}].plus * 3))"
end
#--------------------------------------------------------------------------
# ○ 計算式の文字列置き換え
#--------------------------------------------------------------------------
alias element_change_formula change_formula
def change_formula
result = element_change_formula
result.gsub!(/e_id\[(\d+)\]/i) { element_magic($1.to_i) }
result.gsub!(/scroll\[(\d+)\]/i){ scroll_magic($1.to_i) }
result
=begin
result = @formula.clone
result.gsub!("n_a") { normal_attack }
result.gsub!("m_a") { magic_attack }
result.gsub!("c_a") { charm_attack }
result.gsub!("m_g") { magic_guard }
result.gsub!(/e_id\[(\d+)\]/i) { element_magic($1.to_i) }
result.gsub!(/s_lv\[(\d+)\]/i) { skill_lv_attack($1.to_i) }
result
=end
end
end
#==============================================================================
# ■ Game_BattlerBase
#------------------------------------------------------------------------------
#  バトラーを扱う基本のクラスです。主に能力値計算のメソッドを含んでいます。こ
# のクラスは Game_Battler クラスのスーパークラスとして使用されます。
#==============================================================================
class Game_BattlerBase
#--------------------------------------------------------------------------
# ○ 属性攻撃率の取得
#--------------------------------------------------------------------------
def atk_elements_rate(element_id)
return 1.0 + default_aer(element_id)
end
#--------------------------------------------------------------------------
# ○ アクター固有属性攻撃率の取得
#--------------------------------------------------------------------------
def default_aer(element_id)
return 0.0
end
#--------------------------------------------------------------------------
# ○ 属性IDを名前に変換
#--------------------------------------------------------------------------
def elements_comvert(element_id)
case element_id
when 0 ; ""
when 50 ; "回復"
else ; $data_system.elements[element_id]
end
end
end
#==============================================================================
# ■ Game_Actor
#------------------------------------------------------------------------------
#  アクターを扱うクラスです。このクラスは Game_Actors クラス($game_actors
# の内部で使用され、Game_Party クラス($game_partyからも参照されます。
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ○ アクター固有属性攻撃率の取得
#--------------------------------------------------------------------------
def default_aer(element_id)
element_name = elements_comvert(element_id)
return $1.to_i * 0.01 if actor.note =~ /\<#{element_name}属性倍率:(\-?\+?\d+)\>/
return 0.0
end
#--------------------------------------------------------------------------
# ○ 属性攻撃率の取得
#--------------------------------------------------------------------------
def atk_elements_rate(element_id)
element_name = elements_comvert(element_id)
full_equip_plus_states.inject(super) do |r, obj|
r += $1.to_i * 0.01 if obj.note =~ /\<#{element_name}属性倍率:(\-?\+?\d+)\>/
r
end
end
end
#==============================================================================
# ■ Game_Enemy
#------------------------------------------------------------------------------
#  敵キャラを扱うクラスです。このクラスは Game_Troop クラス($game_troop
# 内部で使用されます。
#==============================================================================
class Game_Enemy < Game_Battler
#--------------------------------------------------------------------------
# ○ エネミー固有属性攻撃率の取得
#--------------------------------------------------------------------------
def default_aer(element_id)
#element_name = elements_comvert(element_id)
#return $1.to_i * 0.01 if enemy.note =~ /\<#{element_name}属性倍率:(\-?\+?\d+)\>/
return 0.0
end
#--------------------------------------------------------------------------
# ○ 属性攻撃率の取得
#--------------------------------------------------------------------------
def atk_elements_rate(element_id)
element_name = elements_comvert(element_id)
feature_objects.inject(super) do |r, obj|
r += $1.to_i * 0.01 if obj.note =~ /\<#{element_name}属性倍率:(\-?\+?\d+)\>/ && !difficulty_easy?
r
end
end
#--------------------------------------------------------------------------
# ○ 難易度イージーか
#--------------------------------------------------------------------------
def difficulty_easy?
difficulty_score == 0
end
end