#製作者:奈々(なな)
#このスクリプトは製作途中のサンプルです。作品への利用はご遠慮願います。


module Nana
module MoonPhase
  
  #月相を格納する変数ID(イベントチェック用)
  #新月を0、満月を4とし、0,1,2,3,4,5,6,7と移行する
  PHASE_VAL = 0
  
  #月相を格納する変数ID(戦闘計算用)
  #新月を0、満月を100とし、0,25,50,75,100,75,50,25と移行する
  MOON_VAL = 0
  
  #月相に対応するスイッチID
  #新月から順に、対応するスイッチがONに、それ以外がOFFになる
  PHASE_SWS = [0, 0, 0, 0, 0, 0, 0]

  #月相を一時的に非表示にするスイッチID
  NULL_SW = 0

  
  #マップ画面において、月相が変化する歩数
  WALK = 4
  
  #バトル画面において、月相が変化するターン数
  TURN = 1
  
  
  #月グラフィックの位置(マップ画面)
  # 0:非表示   1:左寄せ   2:中央寄せ  3:右寄せ
  MAP_POS = 1
  #XY座標の調整値
  MAP_AX = 2
  MAP_AY = 2
  
  #月グラフィックの位置(バトル画面)
  # 0:非表示   1:左寄せ   2:中央寄せ  3:右寄せ
  BATTLE_POS = 1
  #XY座標の調整値
  BATTLE_AX = 2
  BATTLE_AY = 2
  
  
end
end


#==============================================================================
# ■ Game_System
#------------------------------------------------------------------------------
#  システム周りのデータを扱うクラスです。セーブやメニューの禁止状態などを保存
# します。このクラスのインスタンスは $game_system で参照されます。
#==============================================================================

class Game_System
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :moon_phase               # 月相
  attr_accessor :moon_count               # 月相カウント
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias moon_initialize initialize
  def initialize
    moon_initialize
    @moon_phase = 0
    @moon_count = 0
  end
end

#==============================================================================
# ■ Spriteset_Map
#------------------------------------------------------------------------------
#  マップ画面のスプライトやタイルマップなどをまとめたクラスです。このクラスは
# Scene_Map クラスの内部で使用されます。
#==============================================================================

class Spriteset_Map
  #--------------------------------------------------------------------------
  # ● タイマースプライトの作成
  #--------------------------------------------------------------------------
  #initializeをaliasすると都合が悪いのでここに挿入
  alias moon_create_timer create_timer
  def create_timer
    moon_create_timer
    create_moon
  end
  #--------------------------------------------------------------------------
  # ● 月相の作成
  #--------------------------------------------------------------------------
  def create_moon
    @moon = Sprite_Moon.new(@viewport1)
    @moon.z = 500
  end
  #--------------------------------------------------------------------------
  # ● 解放
  #--------------------------------------------------------------------------
  alias moon_dispose dispose
  def dispose
    moon_dispose
    @moon.dispose
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  alias moon_update update
  def update
    moon_update
    @moon.update if @moon
  end
end

#==============================================================================
# ■ Spriteset_Battle
#------------------------------------------------------------------------------
#  バトル画面のスプライトをまとめたクラスです。このクラスは Scene_Battle クラ
# スの内部で使用されます。
#==============================================================================

class Spriteset_Battle
  #--------------------------------------------------------------------------
  # ● 戦闘背景(床)スプライトの作成
  #--------------------------------------------------------------------------
  alias moon_create_battleback1 create_battleback1
  def create_battleback1
    moon_create_battleback1
    create_moon
  end
  #--------------------------------------------------------------------------
  # ● 月相の作成
  #--------------------------------------------------------------------------
  def create_moon
    @moon = Sprite_Moon.new(@viewport1)
    @moon.z = 5
  end
  #--------------------------------------------------------------------------
  # ● 解放
  #--------------------------------------------------------------------------
  alias moon_dispose dispose
  def dispose
    moon_dispose
    @moon.dispose
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  alias moon_update update
  def update
    moon_update
    @moon.update if @moon
  end
end