class Game_Battler < Game_BattlerBase
def item_apply_invoke(user, item)
@result.clear
@result.used = item_test(user, item)
@result.missed = (@result.used && rand >= item_hit(user, item))
@result.evaded = (!@result.missed && rand < item_eva(user, item))
if @result.hit?
unless item.damage.none?
@result.critical = true
make_damage_value(user, item)
execute_damage(user)
end
item.effects.each {|effect| item_effect_apply(user, item, effect) }
item_user_effect(user, item)
end
end
end
class Scene_Battle < Scene_Base
def invoke_counter_attack(target, item)
@log_window.display_counter(target, item)
attack_skill = $data_skills[200]
@subject.item_apply_invoke(target, attack_skill)
refresh_status
@log_window.display_action_results(@subject, attack_skill)
end
def invoke_item(target, item)
if rand < target.item_cnt(@subject, item)
invoke_counter_attack(target, item)
invoke_counter_attack(target, item)
elsif rand < target.item_mrf(@subject, item)
invoke_magic_reflection(target, item)
else
apply_item_effects(apply_substitute(target, item), item)
end
@subject.last_target_index = target.index
end
end