#=============================================================================== # # Craze's Script Asylum - Element Damage Boost # Last Date Updated: 2010.05.22 # Level: Normal # # Allow certain states and pieces of equipment to raise the damage a battler # does with specific elements, such as an armor increasing the power of Fire # spells. #=============================================================================== # Instructions # ----------------------------------------------------------------------------- # To install this script, open up your script editor and copy/paste this script # to an open slot below ▼ Materials and Battle Engine Melody but above ▼ Main. # Remember to save. # # <ele dmg bonus x: y%> # The element with id x deals y% damage. # #=============================================================================== # Examples # ----------------------------------------------------------------------------- # <ele dmg bonus 3: 150%> # The actor or enemy would do 50% more Fire damage. # # <ele dmg bonus 5: 80%> # The actor or enemy would do 20% less Volt damage. # # This is for equipment and state noteboxes only. #=============================================================================== # Compatibility # ----------------------------------------------------------------------------- # Note: This script requires Yanfly's Battle Engine Melody. Make sure to place # this script below BEM. #=============================================================================== $imported = {} if $imported == nil $imported["EleDamageBoost"] = true if $imported["BattleEngineMelody"] #============================================================================== # RPG::BaseItem #============================================================================== class RPG::BaseItem #-------------------------------------------------------------------------- # eleboosts #-------------------------------------------------------------------------- def eleboosts return @eleboosts if @eleboosts != nil @eleboosts = {} self.note.split(/[\r\n]+/).each { |line| case line when /<(?:ELE_DMG_BONUS|ele dmg bonus)[ ](.*):[ ](\d+)([%%])>/i @eleboosts[$1.to_i] += $2.to_i if $1.to_i != 0 and !@eleboosts[$1.to_i] == nil @eleboosts[$1.to_i] = $2.to_i if $1.to_i != 0 end } return @eleboosts end end #============================================================================== # RPG::State #============================================================================== class RPG::State #-------------------------------------------------------------------------- # eleboosts #-------------------------------------------------------------------------- def eleboosts return @eleboosts if @eleboosts != nil @eleboosts = {} self.note.split(/[\r\n]+/).each { |line| case line when /<(?:ELE_DMG_BONUS|ele dmg bonus)[ ](.*):[ ](\d+)([%%])>/i @eleboosts[$1.to_i] += $2.to_i if $1.to_i != 0 and !@eleboosts[$1.to_i] == nil @eleboosts[$1.to_i] = $2.to_i if $1.to_i != 0 end } return @eleboosts end end #============================================================================== # Game_Battler #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # alias: apply_element_rate #-------------------------------------------------------------------------- alias csa_eledmgb_apply_element_rate apply_element_rate unless $@ def apply_element_rate(user, damage, obj = nil) result = csa_eledmgb_apply_element_rate(user, damage, obj) unless obj == nil result = csa_eledmgb_apply_element_rate(user, damage) if obj == nil rate = 0 if obj != nil set = obj.element_set if obj.physical_attack and YEM::BATTLE_ENGINE::APPLY_PHYSICAL_ELE set += user.element_set elsif YEM::BATTLE_ENGINE::APPLY_MAGICAL_ELE set += user.element_set end else set = user.element_set end set = $game_temp.action_elements if $game_temp.action_elements != nil for i in set unless user.enemy? for equip in user.equips.compact next if equip == nil rate += (equip.eleboosts[i]) unless equip.eleboosts[i] == nil end end for state in user.states rate += (state.eleboosts[i]) unless state.eleboosts[i] == nil end end result *= rate unless rate == 0 result /= 100 unless rate == 0 return result end end end # imported["BattleEngineMelody"] #=============================================================================== # # END OF FILE # #===============================================================================