#============================================================================== # ■ Scene_Battle #============================================================================== class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ● スキル/アイテムの使用 ★再定義 #-------------------------------------------------------------------------- def use_item item = @subject.current_action.item display_item(item) @subject.use_item(item) refresh_status @targets = @subject.current_action.make_targets.compact @targets = [@subject] if @targets.size == 0 set_substitute(item) for time in item.repeats.times do play_sideview(@targets, item) end end_reaction(item) display_end_item end #-------------------------------------------------------------------------- # ● ダメージ戦闘アニメ処理 #-------------------------------------------------------------------------- def damage_anime(targets, target, item) @log_window.back_to(1) if @log_window.line_number == 5 return if item.scope != 9 && item.scope != 10 && target.dead? @miss = false invoke_item(target,item) if target.result.missed target.sv.miss_action(@subject, item) return @miss = true elsif target.result.evaded or target.sv.counter_id != 0 target.sv.evasion_action(@subject, item) return @miss = true elsif target.sv.reflection_id != 0 N03.set_damage_anime_data(targets, target, [target.sv.reflection_id, false, false, true]) target.sv.reflection_id = 0 @reflection_data = [] if @reflection_data == nil return @reflection_data.push([N03.get_attack_anime_id(-3, @subject), false, false, true]) end # ☆ここから delay = target.result.delay_count if delay != 0 OrderManager.delay_order(target, delay) #@log_window.display_delay(target, delay) end unit = OrderManager.find_unit(target) if unit && unit.cancel? && target.result.cancel unit.battler.turn_count += 1 OrderManager.cancel(unit) end # ☆ここまで target.sv.damage_action(@subject, item) N03.set_damage(@subject, -target.result.hp_drain, -target.result.mp_drain) if target != @subject @spriteset.set_damage_pop(target) @spriteset.set_damage_pop(@subject) if target != @subject && @subject.result.hp_damage != 0 or @subject.result.mp_damage != 0 N03.set_damage_anime_data(targets, target, @subject.sv.damage_anime_data) if @subject.sv.damage_anime_data != [] end end