﻿#==============================================================================
# ★ ExScene_Outline
#------------------------------------------------------------------------------
# 　允許在畫面中顯示任意文章，例如故事大意。
#==============================================================================

# 譯者筆記：
#   必須要與功能表指令腳本一起使用
#   衝突可能：「書式描繪文字」腳本
#   衝突原因：重名函數

# 顯示的文章
# 依次指定：顯示文章標記開關 ID、顯示內容。
# 當有兩篇文章使用同一個開關時，優先讀取後面的文章。
# 文章會自動換行，最多16行，一行約26個全形字符。
EXMNU_OUTLINE_DATA = [

  [51, "
新人入門－>高手之路
   大家好，歡迎您來到RPG製作大師VX 專題
   網站 --（unirpg.5d6d.com）。首先，對
   您的到來表示十分熱烈的歡迎，希望您在
   本站學習的過程中，獲得更多製作遊戲上
   的樂趣，因為這裡有很多熱心無私的高手
   為您提供幫助，相信您會在UNIRPG玩的十分
   愉快！

   首先，請您安裝最新版本的RPG製作大師 VX
   （以下簡稱RM），本站支援您使用正版軟
   件，所以不提供其下載了！請大家購買正
   版軟體，或在網路上自行搜尋！當然，在
   實在找不到的情況下也可以到本站論壇的
   提問區去看看。
  "], 

  [52, "
關於天賦
   每個人性格有不同所以，不一定每個人都是
   遊戲製作者，也許您的思維活躍，你就可以
   在本站論壇中，做出你的想法。也許您是個
   美術高手，那麼製作遊戲素材，CG一定不在
   話下！也許你是一個思維縝密的程式愛好者，
   那麼RM的RUBY語言程式設計能讓你有機會一
   展拳腳。
"], 

]

#------------------------------------------------------------------------------

class Window_Outline < Window_Base
  #--------------------------------------------------------------------------
  # ☆ 定義執行個體變數 (追加定義)
  #--------------------------------------------------------------------------
  attr_reader   :page_index               # 顯示的頁面
  #--------------------------------------------------------------------------
  # ☆ 初始化物件
  #--------------------------------------------------------------------------
  def initialize(index = 0)
    super(0, 0, 544, 416)
    @page_index = index
    refresh
  end
  #--------------------------------------------------------------------------
  # ☆ 刷新
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    draw_format_text(EXMNU_OUTLINE_DATA[@page_index][1].clone)
  end
  #--------------------------------------------------------------------------
  # ☆ 繪製文章
  #     text     : 文章
  #--------------------------------------------------------------------------
  def draw_format_text(text)
    if text != nil
      text.sub!(/^\n/, "")
      line_count = 0
      for s in text.split(/\n/)
        self.contents.draw_text(0, WLH * line_count, contents.width, WLH, s)
        break if line_count >= contents.height / WLH
        line_count += 1
      end
    end
  end
end


class Scene_Outline < Scene_Base
  #--------------------------------------------------------------------------
  # ☆ 初始化對象
  #     page_index : 頁面索引
  #--------------------------------------------------------------------------
  def initialize
    @page_index = 0
  end
  #--------------------------------------------------------------------------
  # ☆ 開始處理
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    for i in 0...EXMNU_OUTLINE_DATA.size
      @page_index = i if $game_switches[EXMNU_OUTLINE_DATA[i][0]]
    end
    @text_window = Window_Outline.new(@page_index)
  end
  #--------------------------------------------------------------------------
  # ☆ 結束處理
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @text_window.dispose
  end
  #--------------------------------------------------------------------------
  # ☆ 返回原畫面
  #--------------------------------------------------------------------------
  def return_scene
    $scene = Scene_Menu.new($game_party.last_menu_index)
  end
  #--------------------------------------------------------------------------
  # ☆ 更新畫面
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @text_window.update
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    end
  end
end
