122 lines
5.1 KiB
Ruby
122 lines
5.1 KiB
Ruby
#==============================================================================
|
|
# ■ Game_System
|
|
#------------------------------------------------------------------------------
|
|
# システム周りのデータを扱うクラスです。セーブやメニューの禁止状態などを保存
|
|
# します。このクラスのインスタンスは $game_system で参照されます。
|
|
#==============================================================================
|
|
|
|
class Game_System
|
|
#--------------------------------------------------------------------------
|
|
# ● 公開インスタンス変数
|
|
#--------------------------------------------------------------------------
|
|
attr_accessor :save_disabled # セーブ禁止
|
|
attr_accessor :menu_disabled # メニュー禁止
|
|
attr_accessor :encounter_disabled # エンカウント禁止
|
|
attr_accessor :formation_disabled # 並び替え禁止
|
|
attr_accessor :battle_count # 戦闘回数
|
|
attr_reader :save_count # セーブ回数
|
|
attr_reader :version_id # ゲームのバージョン ID
|
|
#--------------------------------------------------------------------------
|
|
# ● オブジェクト初期化
|
|
#--------------------------------------------------------------------------
|
|
def initialize
|
|
@save_disabled = false
|
|
@menu_disabled = false
|
|
@encounter_disabled = false
|
|
@formation_disabled = false
|
|
@battle_count = 0
|
|
@save_count = 0
|
|
@version_id = 0
|
|
@window_tone = nil
|
|
@battle_bgm = nil
|
|
@battle_end_me = nil
|
|
@saved_bgm = nil
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● 日本語モード判定
|
|
#--------------------------------------------------------------------------
|
|
def japanese?
|
|
$data_system.japanese
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● ウィンドウカラーの取得
|
|
#--------------------------------------------------------------------------
|
|
def window_tone
|
|
@window_tone || $data_system.window_tone
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● ウィンドウカラーの設定
|
|
#--------------------------------------------------------------------------
|
|
def window_tone=(window_tone)
|
|
@window_tone = window_tone
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● 戦闘 BGM の取得
|
|
#--------------------------------------------------------------------------
|
|
def battle_bgm
|
|
@battle_bgm || $data_system.battle_bgm
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● 戦闘 BGM の設定
|
|
#--------------------------------------------------------------------------
|
|
def battle_bgm=(battle_bgm)
|
|
@battle_bgm = battle_bgm
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● 戦闘終了 ME の取得
|
|
#--------------------------------------------------------------------------
|
|
def battle_end_me
|
|
@battle_end_me || $data_system.battle_end_me
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● 戦闘終了 ME の設定
|
|
#--------------------------------------------------------------------------
|
|
def battle_end_me=(battle_end_me)
|
|
@battle_end_me = battle_end_me
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● セーブ前の処理
|
|
#--------------------------------------------------------------------------
|
|
def on_before_save
|
|
@save_count += 1
|
|
@version_id = $data_system.version_id
|
|
@frames_on_save = Graphics.frame_count
|
|
@bgm_on_save = RPG::BGM.last
|
|
@bgs_on_save = RPG::BGS.last
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● ロード後の処理
|
|
#--------------------------------------------------------------------------
|
|
def on_after_load
|
|
Graphics.frame_count = @frames_on_save
|
|
@bgm_on_save.play
|
|
@bgs_on_save.play
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● プレイ時間を秒数で取得
|
|
#--------------------------------------------------------------------------
|
|
def playtime
|
|
Graphics.frame_count / Graphics.frame_rate
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● プレイ時間を文字列で取得
|
|
#--------------------------------------------------------------------------
|
|
def playtime_s
|
|
hour = playtime / 60 / 60
|
|
min = playtime / 60 % 60
|
|
sec = playtime % 60
|
|
sprintf("%02d:%02d:%02d", hour, min, sec)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● BGM の保存
|
|
#--------------------------------------------------------------------------
|
|
def save_bgm
|
|
@saved_bgm = RPG::BGM.last
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ● BGM の再開
|
|
#--------------------------------------------------------------------------
|
|
def replay_bgm
|
|
@saved_bgm.replay if @saved_bgm
|
|
end
|
|
end
|