﻿#==============================================================================
# ★ 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
