#==============================================================================
# ■ Blink_Window vol.1.10
# 選択肢、点滅文字ウィンドウ適用済み
#------------------------------------------------------------------------------
# 『Blink_Window』必須
# 『Window_digits_numbe』必須
# 07/09/09
#==============================================================================
#==============================================================================
# ■ Window_Command
#==============================================================================
class Window_Command < Window_Selectable
  #--------------------------------------------------------------------------
  # ■ オブジェクト初期化
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_blink_com_initialize initialize;end
  def initialize(width, commands)
    # □元の処理を実行
    hidesp_blink_com_initialize(width, commands)
    # □点滅文字ウィンドウの作成
    make_blink_window?
    draw_blink_word?
  end
  #--------------------------------------------------------------------------
  # ■ 点滅文字の描画
  #--------------------------------------------------------------------------
  def draw_blink_word?
    # □点滅文字の描画
    for i in 0...@item_max
      @blink_window.bitmap.draw_cache_text(4,i*32,self.draw_width-16,32,@commands[i],0,self.fonts)
    end
  end
end
#==============================================================================
# ■ Window_PartyCommand
#==============================================================================
class Window_PartyCommand < Window_Selectable
  #--------------------------------------------------------------------------
  # ■ 項目の描画
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_blink_partycommand_draw_item draw_item;end
  def draw_item(index, color)
    # □元の処理を実行
    hidesp_blink_partycommand_draw_item(index, color)
    # □点滅文字ウィンドウの作成
    make_blink_window?(ch = 32,x = self.x+16,y = self.y+16,w = 160)
    # □点滅文字の描画
    rect = Rect.new(160 + index * 160 + 4, 0, 128 - 10, 32)
    @blink_window.bitmap.fill_rect(rect, Color.new(0, 0, 0, 0))
    @blink_window.bitmap.draw_cache_text(index*160+4,0,128-10,32,@commands[index],1,self.fonts)
  end
  #--------------------------------------------------------------------------
  # ■ 点滅文字ウィンドウの更新
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_blink_partycommand_cursor_rect update_cursor_rect;end
  def update_cursor_rect
    # □元の処理を実行
    hidesp_blink_partycommand_cursor_rect
    # □点滅文字ウィンドウの座標更新
    @blink_window.viewport.rect.x = index*160+160+16
    @blink_window.viewport.ox = index*160
  end
end
#==============================================================================
# ■ Window_ShopCommand
#==============================================================================
class Window_ShopCommand < Window_Selectable
  #--------------------------------------------------------------------------
  # ■ 項目の描画
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_blink_shopcommand_draw_item draw_item;end
  def draw_item(index)
    # □元の処理を実行
    hidesp_blink_shopcommand_draw_item(index)
    # □点滅文字ウィンドウの作成
    make_blink_window?
    # □点滅文字の描画
    x = 4 + index * 160
    @blink_window.bitmap.draw_cache_text(x,0,128,32,@commands[index],0,self.fonts)
  end
end
#==============================================================================
# ■ Window_MenuStatus
#==============================================================================
class Window_MenuStatus < Window_Selectable
  #--------------------------------------------------------------------------
  # ■ 項目の描画
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_blink_menustatus_refresh refresh;end
  def refresh
    # □元の処理を実行
    hidesp_blink_menustatus_refresh
    # □点滅文字ウィンドウの作成
    make_blink_window?(96)
    @blink_window.bitmap.clear
    # □点滅文字の描画
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      x = 64
      y = i * 116
      actor = $game_party.actors[i]
      @blink_window.bitmap.draw_cache_text(x, y, 120, 32, actor.name,0,self.fonts)
      @blink_window.bitmap.draw_cache_text(x + 144, y, 236, 32, actor.class_name,0,self.fonts)
    end
  end
  #--------------------------------------------------------------------------
  # ■ 点滅文字ウィンドウの更新
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_blink_menustatus_cursor_rect update_cursor_rect;end
  def update_cursor_rect
    # □元の処理を実行
    hidesp_blink_menustatus_cursor_rect
    set_blink_window?(self.index,116)
  end
end
#==============================================================================
# ■ Window_Target
#==============================================================================
class Window_Target < Window_Selectable
  #--------------------------------------------------------------------------
  # ■ 項目の描画
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_blink_window_target_refresh refresh;end
  def refresh
    # □元の処理を実行
    hidesp_blink_window_target_refresh
    # □点滅文字ウィンドウの作成
    make_blink_window?(96)
    @blink_window.bitmap.clear
    # □点滅文字の描画
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      x = 4
      y = i * 116
      actor = $game_party.actors[i]
      @blink_window.bitmap.draw_cache_text(x, y, 120, 32, actor.name,0,self.fonts)
      @blink_window.bitmap.draw_cache_text(x + 144, y, 236, 32, actor.class_name,0,self.fonts)
    end
  end
  #--------------------------------------------------------------------------
  # ■ 点滅文字ウィンドウの更新
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_blink_window_target_cursor_rect update_cursor_rect;end
  def update_cursor_rect
    # □元の処理を実行
    hidesp_blink_window_target_cursor_rect
    set_blink_window?(self.index,116)
  end
end
#==============================================================================
# ■  Window_Skill
#==============================================================================
class Window_Skill < Window_Selectable
  #--------------------------------------------------------------------------
  # ■ 項目の描画
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_blink_window_skill_draw_item draw_item;end
  def draw_item(index)
    # □元の処理を実行
    hidesp_blink_window_skill_draw_item(index)
    # □点滅文字ウィンドウの作成
    make_blink_window?
    # □点滅文字の描画
    skill = @data[index]
    x = 4 + index % 2 * (288 + 32)
    y = index / 2 * 32
    rect = Rect.new(x, y, self.width / @column_max - 32, 32)
    @blink_window.bitmap.fill_rect(rect, Color.new(0, 0, 0, 0))
    @blink_window.bitmap.draw_cache_text(x + 28, y, 204, 32, skill.name, 0,self.fonts)
    @blink_window.bitmap.draw_cache_text(x + 232, y, 48, 32, skill.sp_cost.to_s, 2,self.fonts)
  end
end
#==============================================================================
# ■  Window_Item/Window_EquipItem/Window_ShopSell
#==============================================================================
class Window_Selectable
  #--------------------------------------------------------------------------
  # ■ 項目の描画(共通なので)
  #--------------------------------------------------------------------------
  def draw_item_blink(index)
    # □点滅文字ウィンドウの作成
    make_blink_window?
    # □点滅文字の描画
    item = @data[index]
    case item
    when RPG::Item
      number = $game_party.item_number(item.id)
    when RPG::Weapon
      number = $game_party.weapon_number(item.id)
    when RPG::Armor
      number = $game_party.armor_number(item.id)
    end
    x = 4 + index % 2 * (288 + 32)
    y = index / 2 * 32
    rect = Rect.new(x, y, self.width / @column_max - 32, 32)
    @blink_window.bitmap.fill_rect(rect, Color.new(0, 0, 0, 0))
    @blink_window.bitmap.blt(x, y + 4,RPG::Cache.icon(item.icon_name), Rect.new(0, 0, 24, 24))
    @blink_window.bitmap.draw_cache_text(x + 28, y, 212, 32, item.name, 0,self.fonts)
    @blink_window.bitmap.draw_cache_text(x + 240, y, 16, 32, ":", 1,self.fonts)
    @blink_window.bitmap.draw_cache_text(x + 256, y, 24, 32, number.to_s, 2,self.fonts)
  end
  #--------------------------------------------------------------------------
  # ■ 項目の消去(共通なので)
  #--------------------------------------------------------------------------
  def refresh_blink
    if @blink_window != nil
      # □選択中のデータがnilの場合、消去
      if @data[self.index] == nil
        x = 4 + self.index % 2 * (288 + 32)
        y = self.index / 2 * 32
        rect = Rect.new(x, y, self.width / @column_max - 32, 32)
        @blink_window.bitmap.fill_rect(rect, Color.new(0, 0, 0, 0))
      end
    end
  end
end
#==============================================================================
# ■  Window_Item
#==============================================================================
class Window_Item < Window_Selectable
  #--------------------------------------------------------------------------
  # ■ 項目の描画
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_blink_window_item_draw_item draw_item;end
  def draw_item(index)
    # □元の処理を実行
    hidesp_blink_window_item_draw_item(index)
    # □共通の処理を実行
    draw_item_blink(index)
  end
  #--------------------------------------------------------------------------
  # ■ 項目の消去
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_blink_window_item_refresh refresh;end
  def refresh
    # □元の処理を実行
    hidesp_blink_window_item_refresh
    # □共通の処理を実行
    refresh_blink
  end
end
#==============================================================================
# ■  Window_EquipItem
#==============================================================================
class Window_EquipItem < Window_Selectable
  #--------------------------------------------------------------------------
  # ■ 項目の描画
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_blink_window_equipItem_draw_item draw_item;end
  def draw_item(index)
    # □元の処理を実行
    hidesp_blink_window_equipItem_draw_item(index)
    # □共通の処理を実行
    draw_item_blink(index)
  end
  #--------------------------------------------------------------------------
  # ■ 項目の消去
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_blink_window_equipItem_refresh refresh;end
  def refresh
    # □元の処理を実行
    hidesp_blink_window_equipItem_refresh
    # □共通の処理を実行
    refresh_blink
  end
end
#==============================================================================
# ■  Window_ShopSell
#==============================================================================
class Window_ShopSell < Window_Selectable
  #--------------------------------------------------------------------------
  # ■ 項目の描画
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_blink_window_shopsell_draw_item draw_item;end
  def draw_item(index)
    # □元の処理を実行
    hidesp_blink_window_shopsell_draw_item(index)
    # □共通の処理を実行
    draw_item_blink(index)
  end
  #--------------------------------------------------------------------------
  # ■ 項目の消去
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_blink_window_shopsell_refresh refresh;end
  def refresh
    # □元の処理を実行
    hidesp_blink_window_shopsell_refresh
    # □共通の処理を実行
    refresh_blink
  end
end
#==============================================================================
# ■  Window_EquipRight
#==============================================================================
class Window_EquipRight < Window_Selectable
  #--------------------------------------------------------------------------
  # ■ オブジェクト初期化
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_blink_window_equipright_refresh refresh;end
  def refresh
    # □元の処理を実行
    hidesp_blink_window_equipright_refresh
    # □点滅文字ウィンドウの作成
    make_blink_window?
    # □点滅文字の描画
    @blink_window.bitmap.clear
    @data = []
    @data.push($data_weapons[@actor.weapon_id])
    @data.push($data_armors[@actor.armor1_id])
    @data.push($data_armors[@actor.armor2_id])
    @data.push($data_armors[@actor.armor3_id])
    @data.push($data_armors[@actor.armor4_id])
    @blink_window.bitmap.draw_cache_text(4, 32 * 0, 92, 32, $data_system.words.weapon, 0,self.fonts)
    @blink_window.bitmap.draw_cache_text(4, 32 * 1, 92, 32, $data_system.words.armor1, 0,self.fonts)
    @blink_window.bitmap.draw_cache_text(4, 32 * 2, 92, 32, $data_system.words.armor2, 0,self.fonts)
    @blink_window.bitmap.draw_cache_text(4, 32 * 3, 92, 32, $data_system.words.armor3, 0,self.fonts)
    @blink_window.bitmap.draw_cache_text(5, 32 * 4, 92, 32, $data_system.words.armor4, 0,self.fonts)
    for i in 0...@data.size
      if @data[i] != nil
        @blink_window.bitmap.draw_cache_text(92 + 28, 32 * i, 212, 32,@data[i].name, 0,self.fonts)
      end
    end
  end
end
#==============================================================================
# ■  Window_ShopBuy
#==============================================================================
class Window_ShopBuy < Window_Selectable
  #--------------------------------------------------------------------------
  # ■ 項目の描画
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_blink_window_shopbuy_draw_item draw_item;end
  def draw_item(index)
    # □元の処理を実行
    hidesp_blink_window_shopbuy_draw_item(index)
    # □点滅文字ウィンドウの作成
    make_blink_window?
    # □点滅文字の描画
    item = @data[index]
    case item
    when RPG::Item
      number = $game_party.item_number(item.id)
    when RPG::Weapon
      number = $game_party.weapon_number(item.id)
    when RPG::Armor
      number = $game_party.armor_number(item.id)
    end
    x = 4
    y = index * 32
    rect = Rect.new(x, y, self.width / @column_max - 32, 32)
    @blink_window.bitmap.fill_rect(rect, Color.new(0, 0, 0, 0))
    @blink_window.bitmap.draw_cache_text(x + 28, y, 212, 32, item.name, 0,self.fonts)
    @blink_window.bitmap.draw_cache_text(x + 240, y, 88, 32, item.price.to_s, 2,self.fonts)
  end
end
#==============================================================================
# ■ Window_ShopNumber
#==============================================================================
class Window_ShopNumber < Window_Base
  #--------------------------------------------------------------------------
  # ■ オブジェクト初期化
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_blink_shopnumber_initialize initialize;end
  def initialize
    # □元の処理を実行
    hidesp_blink_shopnumber_initialize
    fonts = Copy_Font.new
    fonts.color = Color.new(255,255,0,250)
    @blink_digits = Window_digits_number.new(308+16+2,128+96,self.z+2,nil,2,10,fonts)
  end
  #--------------------------------------------------------------------------
  # ■ フレーム更新
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_blink_shopnumber_update update;end
  def update
    # □元の処理を実行
    hidesp_blink_shopnumber_update
    @blink_digits.blink_refresh(@number,0,self.active)
  end
  #--------------------------------------------------------------------------
  # ■ 解放
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_blink_shopnumber_dispose dispose;end
  def dispose
    # □元の処理を実行
    hidesp_blink_shopnumber_dispose
    # □ウィンドウの解放
    @blink_digits.dispose
  end
end
#==============================================================================
# ■ Window_SaveFile
#==============================================================================
class Window_SaveFile < Window_Base
  #--------------------------------------------------------------------------
  # ■ オブジェクト初期化
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_blink_savefile_refresh refresh;end
  def refresh
    # □元の処理を実行
    hidesp_blink_savefile_refresh
    fonts = Copy_Font.new
    fonts.color = Color.new(255,255,0,250)
    texts = ["ファイル #{@file_index + 1}"]
    @blink_digits = Window_digits_number.new(4+16,64 + @file_index % 4 * 104,self.z+2,0,1,texts,fonts)
    # □ウィンドウの可視判定
    @blink_digits.visible = @file_index == 0
  end
  #--------------------------------------------------------------------------
  # ■ フレーム更新
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_blink_savefile_update update;end
  def update
    # □元の処理を実行
    hidesp_blink_savefile_update
    # □ウィンドウの可視判定
    @blink_digits.visible = @selected
    @blink_digits.blink_refresh(0,0,self.active)
  end
  #--------------------------------------------------------------------------
  # ■ 解放
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_blink_savefile_dispose dispose;end
  def dispose
    # □元の処理を実行
    hidesp_blink_savefile_dispose
    # □ウィンドウの解放
    @blink_digits.dispose
  end
end