#==============================================================================
# ■ Scan_States vol.1.00
#------------------------------------------------------------------------------
# バトル中にエネミーの詳細データを表示するスキル
# ※『仲間をたくさん呼びつつABC』より下に挿入
# ※[みやぶる]済みの場合、HP/MPを選択時に表示
# 08/02/10
#==============================================================================
# ■ Window_Help
#==============================================================================
class Window_Help < Window_Base
  if !$@;alias hidesp_scan_set_enemy set_enemy;end
  def set_enemy(enemy)
    if enemy.scan[1] == true
      self.contents.clear
      # □『仲間をたくさん呼びつつABC』を使用する場合
      if $enemies_abc != nil
        self.contents.draw_text(4, 0, 120+120, 32,plus_name?(enemy))
      else
        draw_actor_name(enemy, 4, 0)
        draw_actor_state(enemy, 140, 0)
      end
      draw_actor_hp(enemy, 284, 0)
      draw_actor_sp(enemy, 460, 0)
      @text = nil
      self.visible = true
    else
      # □元の処理を呼び出し
      hidesp_scan_set_enemy(enemy)
    end
  end
end
#==============================================================================
# ■ Game_Battler
#==============================================================================
class Game_Battler
  attr_accessor :scan                     # [みやぶる]発動フラグ
  #--------------------------------------------------------------------------
  # ■ オブジェクト初期化
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_scan_initialize initialize;end
  def initialize
    # □元の処理を呼び出し
    hidesp_scan_initialize
    @scan = [false,false]
  end
  #--------------------------------------------------------------------------
  # ■ スキルの効果適用
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_skill_effect_scan skill_effect;end
  def skill_effect(user, skill)
    if skill.name == "みやぶる" # ←■[みやぶる]不可の条件を追記する
      self.scan[0] = true
      return true
    else
      # □元の処理を呼び出し
      hidesp_skill_effect_scan(user, skill)
    end
  end
end
#==============================================================================
# ■ Scene_Battle
#==============================================================================
class Scene_Battle
  #--------------------------------------------------------------------------
  # ■ フレーム更新 (メインフェーズ ステップ 5 : ダメージ表示)
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_scan_update_p4s5 update_phase4_step5;end
  def update_phase4_step5
    if @target_battlers[0] == nil
      # □元の処理を呼び出し
      hidesp_scan_update_p4s5
      return
    end
    # □全体攻撃は無効
    if @target_battlers.size != 1
      # □元の処理を呼び出し
      hidesp_scan_update_p4s5
      return
    end
    # ■[みやぶる]フラグがONの場合
    if @target_battlers[0].scan[0] == true
      @scan_window = Window_Scan.new(@target_battlers[0])
      # □ヘルプウィンドウに情報を代入
      if $enemies_abc != nil
        @help_window.set_text(@help_window.plus_name?(@target_battlers[0]) + "の詳細データを表示します。",0)
      else
        @help_window.set_text(@target_battlers[0].name + "の詳細データを表示します。",0)
      end
      @help_window.back_opacity = 255
      # □ウェイトが完了した場合はウィンドウを閉じる
      @wait_count = 400
      while @wait_count > 0
        Graphics.update
        # 入力情報を更新
        Input.update
        @wait_count -= 1
        if Input.trigger?(Input::B)
          @wait_count = 0
        end
      end
      @wait_count = 10
      @help_window.visible = false
      @help_window.back_opacity = 160
      @scan_window.dispose
      @wait_count = 16
      # □見破る発動フラグをOFF/発動済みフラグをON
      @target_battlers[0].scan[1] = true
      @target_battlers[0].scan[0] = false
      # ステップ 6 に移行
      @phase4_step = 6
      return
    else
      # □元の処理を呼び出し
      hidesp_scan_update_p4s5
      return
    end
  end
end
#==============================================================================
# ■ [みやぶる]で表示するステータスウィンドウ
#==============================================================================
class Window_Scan < Window_Base
  #--------------------------------------------------------------------------
  # ■ オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize(user)
    super(0, 64, 640, 480)
    self.contents = Bitmap.new(width-32, height-32)
    self.z = 200
    refresh(user)
  end
  #--------------------------------------------------------------------------
  # ■ リフレッシュ
  #--------------------------------------------------------------------------
  def refresh(user)
    self.contents.clear
    self.contents.font.color = normal_color
    x,y = 320+16,0
    
    # □バトラー画像を描画
    bitmap = RPG::Cache.battler(user.battler_name, user.battler_hue)
    cw,ch = bitmap.width,bitmap.height
    bitmap.width > self.width-32 ? px = 0 : px = ((self.width-48)/4) - (cw/2)
    bitmap.height > self.height-32 ? py = 0 : py = ((self.height-48)/2) - (ch/2)
    self.contents.blt(px,py, bitmap,Rect.new(0,0,cw,ch))
    #…………………………………………………………………………………………………
    # ■アクターの場合
    #…………………………………………………………………………………………………
    if user.is_a?(Game_Actor)
      
    #…………………………………………………………………………………………………
    # ■エネミーの場合
    #…………………………………………………………………………………………………
    elsif user.is_a?(Game_Enemy)
      
      # ■適当にエネミーのステータスを描画する↓
      
      # □EXP/お金を描画
      self.contents.font.color = normal_color
      self.contents.draw_text(x+40, y+32*4, 160, 32, user.exp.to_s,2)
      self.contents.draw_text(x+40, y+32*5, 160, 32, user.gold.to_s,2)
      
      self.contents.font.color = system_color
      self.contents.draw_text(x, y+32*4, 64, 32, "EXP")
      self.contents.draw_text(x, y+32*5, 128, 32, $data_system.words.gold)
    else
      p "無効なデータを取得" ;Error!
    end
    self.contents.font.color = system_color
    self.contents.draw_text(x+160, y+32*11,120, 32, "[B] 閉じる")
    
    self.contents.font.color = normal_color
    # □HP/MPを描画
    draw_actor_hp(user, x, y+32, 144)
    draw_actor_sp(user, x, y+32*2, 144)
  end
end