#==============================================================================
# ■ 画面外での自律移動 (VX Ace用)
#------------------------------------------------------------------------------
# 製作者     : CanariAlternate
# サイト名   : カルトの鳥篭
# サイトURL  : [url]http://canarialt.blog.fc2.com[/url]
#------------------------------------------------------------------------------
# ■ 概要 : 画面外での自律移動を許可する。
#
# ■ 必須 : 「注釈取得スクリプト」
#
# ■ 位置 : 「注釈取得スクリプト」より下   
#------------------------------------------------------------------------------
# 更新履歴 : 2012/10/01 Ver1.00 当スクリプトを作成した。
#            2012/10/08 Ver1.01 注釈で個別に設定可能に変更
#            2013/02/19 Ver1.02 共通処理スクリプトの廃止による変更を施した。
#==============================================================================
 
$imported ||= {}
$imported[:CanariAlternate_MoveOutScreen] = true
 
#==============================================================================
# ■ Calt
#------------------------------------------------------------------------------
#  CanariAlternateが製作したスクリプト用のモジュールです。
#==============================================================================
module Calt
  #-----------------------------------------------------------------------------
  # 1. 注釈で画面外での移動を設定するキーワード
  MOVE_OUT_SCREEN_EVENT_NOTE = /\[画面外での自律移動\]/ # 記述した頁に適用
  #  在事件页注释  [画面外での自律移動] 则当事件在该页的时候允许自律移动
  MOVE_OUT_SCREEN_WHOLE_NOTE = /\<画面外での自律移動\>/ # 全ての頁に適用(1頁目に記述)
  #  在事件第一页注释  <画面外での自律移動> 则该事件全部页面都允许自律移动
  MOVE_OUT_SCREEN_REVERSE    = false                    # 全てのイベントの初期状態を反転
  #  把这个false设定为true,则将所有事件的初始状态设定为允许在画面外自律移动
  #-----------------------------------------------------------------------------
end
 
#==============================================================================
# ■ Game_Event
#------------------------------------------------------------------------------
#  イベントを扱うクラスです。条件判定によるイベントページ切り替えや、並列処理
# イベント実行などの機能を持っており、Game_Map クラスの内部で使用されます。
#==============================================================================
class Game_Event < Game_Character
  #--------------------------------------------------------------------------
  # ● 自律移動の更新 [◆再定義]
  #--------------------------------------------------------------------------
  def update_self_movement
    if (near_the_screen? || @move_out_screen) && @stop_count > stop_count_threshold
      case @move_type
      when 1;  move_type_random
      when 2;  move_type_toward_player
      when 3;  move_type_custom
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 画面外での自律移動の設定を取得 [新規]
  #--------------------------------------------------------------------------
  def get_move_out_screen_note
    event_result = event_note_include?(Calt::MOVE_OUT_SCREEN_EVENT_NOTE)
    whole_result = whole_note_include?(Calt::MOVE_OUT_SCREEN_WHOLE_NOTE)
    return event_result ^ whole_result ^ Calt::MOVE_OUT_SCREEN_REVERSE
  end
  #--------------------------------------------------------------------------
  # ● イベントページ更新時に注釈から設定を取得 [追加]
  #--------------------------------------------------------------------------
  alias setup_note_settings_MoveOutScreen setup_note_settings
  def setup_note_settings
    setup_note_settings_MoveOutScreen
    @move_out_screen = get_move_out_screen_note
  end
end