# ==============================================================================
#                             ~ Tło walki ~
#                       Data publikacji: 16.09.2009
#                          Autor: Claimh
#               Tłumaczenie i poprawki: Ayene [yurika@o2.pl]
#          Zapraszam na stronę UltimaForum - http://www.ultimateam.pl
# ==============================================================================
# Instalacja: Umieść ten skrypt nad Main w Edytorze Skryptu.
# ==============================================================================
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

# --------------------------- POCZĄTEK SKRYPTU ---------------------------------
module BattleBack
# ---------------------------- POCZĄTEK EDYCJI ---------------------------------  
# Poniżej możesz ustawić rodzaj tła walki:
  #   0 -> falujące tło (domyślne w VX)
  #   1 -> tłem jest mapa, na której walka ma miejsce
  #   2 -> tłem walki jest obrazek (patrz niżej M_B_BACK)
  BB_TYPE = 2
  
# Wyświetlanie podłoża (obrazka o nazwie 'BattleFloor' w folderze 'System')
  #   true -> wyświetla
  #   false -> nie wyświetla
  BT_FLOOR = false

# Tło walki w postaci obrazka (BB_TYPE = 2)
  M_B_BACK = {
    # ID mapy => nazwa obrazka z folderu 'Graphics/System'         	 
    0 => "mapa_0", # 0 => domyślnie dla map, którym nie ustawiono innego tła.
    1 => "mapa_1",	    
    3 => "mapa_3"
  }
  # (optymalna wielkość grafiki to 544 x 416 px; format -> PNG i JPG)

# ----------------------------- KONIEC EDYCJI ----------------------------------  
end

# -----------NIE EDYTUJ PONIŻEJ, CHYBA ŻE WIESZ CO ROBISZ ^^--------------------
#==============================================================================
# ¦ Klasa Spriteset_Battle
#==============================================================================
class Spriteset_Battle
  #--------------------------------------------------------------------------
  # Tło walki
  #--------------------------------------------------------------------------
  def create_battleback
    case BattleBack::BB_TYPE
    when 0
      source = $game_temp.background_bitmap
      bitmap = Bitmap.new(640, 480)
      bitmap.stretch_blt(bitmap.rect, source, source.rect)
      bitmap.radial_blur(90, 12)
      @battleback_sprite = Sprite.new(@viewport1)
      @battleback_sprite.bitmap = bitmap
      @battleback_sprite.ox = 320
      @battleback_sprite.oy = 240
      @battleback_sprite.x = 272
      @battleback_sprite.y = 176
      @battleback_sprite.wave_amp = 8
      @battleback_sprite.wave_length = 240
      @battleback_sprite.wave_speed = 120
    when 1
      source = $game_temp.background_bitmap
      bitmap = Bitmap.new(640, 480)
      bitmap.stretch_blt(bitmap.rect, source, source.rect)
      @battleback_sprite = Sprite.new(@viewport1)
      @battleback_sprite.bitmap = bitmap
      @battleback_sprite.ox = 320
      @battleback_sprite.oy = 240
      @battleback_sprite.x = 272
      @battleback_sprite.y = 176
    when 2
      @battleback_sprite = BattleBackSprite.new(@viewport1)
    end
  end
  #--------------------------------------------------------------------------
  # Wgranie podłoża walki -> 'BattleFloor'
  #--------------------------------------------------------------------------
  alias create_battlefloor_mbb create_battlefloor
  def create_battlefloor
    create_battlefloor_mbb if BattleBack::BT_FLOOR
  end
  #--------------------------------------------------------------------------
  # Koniec walki -> Zamknięcie 'BattleFloor'
  #--------------------------------------------------------------------------
  alias dispose_battlefloor_mbb dispose_battlefloor
  def dispose_battlefloor
    dispose_battlefloor_mbb if BattleBack::BT_FLOOR
  end
  #--------------------------------------------------------------------------
  # Aktualizacja podłoża walki -> Odświeżenie 'BattleFloor'
  #--------------------------------------------------------------------------
  alias update_battlefloor_mbb update_battlefloor
  def update_battlefloor
    update_battlefloor_mbb if BattleBack::BT_FLOOR
  end
end


#==============================================================================
# ¦ Klasa BattleBackSprite
#==============================================================================
class BattleBackSprite < Sprite
  # Wielkość okna z tłem
  WIDTH  = 544.00
  HEIGHT = 288.00
  #--------------------------------------------------------------------------
  # Rozpoczęcie
  #--------------------------------------------------------------------------
  def initialize(viewport = nil)
    super(viewport)
    if $BTEST
      self.bitmap = Cache.system(BattleBack::M_B_BACK[0])
    elsif BattleBack::M_B_BACK[$game_map.map_id].nil?
      self.bitmap = Cache.system(BattleBack::M_B_BACK[0])
    else
      self.bitmap = Cache.system(BattleBack::M_B_BACK[$game_map.map_id])
    end
    # Dopasowanie tła w szerokości i wysokości 
    @x_zoom = WIDTH / self.bitmap.width
    @y_zoom = HEIGHT / self.bitmap.height
    @zoom = @x_zoom > @y_zoom ? @x_zoom : @y_zoom
    # Zoom -> przybliżenie
    self.zoom_x = @zoom
    self.zoom_y = @zoom
    # Pozycja tła -> wycentrowanie tła
    self.ox = self.bitmap.width / 2
    self.oy = self.bitmap.height / 2
    self.x = (self.bitmap.width / 2)  * @zoom
    self.y = (self.bitmap.height / 2) * @zoom
  end
end
# --------------------------- KONIEC SKRYPTU -----------------------------------