Class: Scene_Map

Inherits:
Scene_Base show all
Defined in:
lib/rgss3_default_scripts/Scene_Map.rb

Overview

** Scene_Map


This class performs the map screen processing.

Instance Method Summary collapse

Methods inherited from Scene_Base

#check_gameover, #create_main_viewport, #dispose_all_windows, #dispose_main_viewport, #fadeout_all, #main, #post_start, #return_scene, #scene_changing?, #update_all_windows, #update_basic

Instance Method Details

#call_menuObject


  • Call Menu Screen




189
190
191
192
193
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 189

def call_menu
  Sound.play_ok
  SceneManager.call(Scene_Menu)
  Window_MenuCommand::init_command_position
end

#create_all_windowsObject


  • Create All Windows




140
141
142
143
144
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 140

def create_all_windows
  create_message_window
  create_scroll_text_window
  create_location_window
end

#create_location_windowObject


  • Create Map Name Window




160
161
162
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 160

def create_location_window
  @map_name_window = Window_MapName.new
end

#create_message_windowObject


  • Create Message Window




148
149
150
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 148

def create_message_window
  @message_window = Window_Message.new
end

#create_scroll_text_windowObject


  • Create Scrolling Text Window




154
155
156
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 154

def create_scroll_text_window
  @scroll_text_window = Window_ScrollText.new
end

#create_spritesetObject


  • Create Sprite Set




128
129
130
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 128

def create_spriteset
  @spriteset = Spriteset_Map.new
end

#dispose_spritesetObject


  • Free Sprite Set




134
135
136
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 134

def dispose_spriteset
  @spriteset.dispose
end

#fade_loop(duration) ⇒ Object


  • General-Purpose Fade Processing




95
96
97
98
99
100
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 95

def fade_loop(duration)
  duration.times do |i|
    yield 255 * (i + 1) / duration
    update_for_fade
  end
end

#fadein(duration) ⇒ Object


  • Fadein Screen




104
105
106
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 104

def fadein(duration)
  fade_loop(duration) {|v| Graphics.brightness = v }
end

#fadein_speedObject


  • Get Fade In Speed




267
268
269
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 267

def fadein_speed
  return 30
end

#fadeout(duration) ⇒ Object


  • Fadeout Screen




110
111
112
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 110

def fadeout(duration)
  fade_loop(duration) {|v| Graphics.brightness = 255 - v }
end

#fadeout_speedObject


  • Get Fade Out Speed




261
262
263
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 261

def fadeout_speed
  return 30
end

#fadeout_speed_to_titleObject


  • Get Fade Out Speed for Title Screen Transition




273
274
275
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 273

def fadeout_speed_to_title
  return 60
end

#perform_battle_transitionObject


  • Execute Pre-Battle Transition




254
255
256
257
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 254

def perform_battle_transition
  Graphics.transition(60, "Graphics/System/BattleStart", 100)
  Graphics.freeze
end

#perform_transferObject


  • Player Transfer Processing




203
204
205
206
207
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 203

def perform_transfer
  pre_transfer
  $game_player.perform_transfer
  post_transfer
end

#perform_transitionObject


  • Execute Transition

    Performs a fade in when the screen has been blacked out, such as
    immediately after a battle or load.
    



26
27
28
29
30
31
32
33
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 26

def perform_transition
  if Graphics.brightness == 0
    Graphics.transition(0)
    fadein(fadein_speed)
  else
    super
  end
end

#post_transferObject


  • Post Processing for Transferring Player




223
224
225
226
227
228
229
230
231
232
233
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 223

def post_transfer
  case $game_temp.fade_type
  when 0
    Graphics.wait(fadein_speed / 2)
    fadein(fadein_speed)
  when 1
    Graphics.wait(fadein_speed / 2)
    white_fadein(fadein_speed)
  end
  @map_name_window.open
end

#pre_battle_sceneObject


  • Preprocessing for Battle Screen Transition




237
238
239
240
241
242
243
244
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 237

def pre_battle_scene
  Graphics.update
  Graphics.freeze
  @spriteset.dispose_characters
  BattleManager.save_bgm_and_bgs
  BattleManager.play_battle_bgm
  Sound.play_battle_start
end

#pre_terminateObject


  • Pre-Termination Processing




43
44
45
46
47
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 43

def pre_terminate
  super
  pre_battle_scene if SceneManager.scene_is?(Scene_Battle)
  pre_title_scene  if SceneManager.scene_is?(Scene_Title)
end

#pre_title_sceneObject


  • Preprocessing for Title Screen Transition




248
249
250
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 248

def pre_title_scene
  fadeout(fadeout_speed_to_title)
end

#pre_transferObject


  • Preprocessing for Transferring Player




211
212
213
214
215
216
217
218
219
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 211

def pre_transfer
  @map_name_window.close
  case $game_temp.fade_type
  when 0
    fadeout(fadeout_speed)
  when 1
    white_fadeout(fadeout_speed)
  end
end

#scene_change_ok?Boolean


  • Determine if Scene Transition Is Possible


Returns:

  • (Boolean)


71
72
73
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 71

def scene_change_ok?
  !$game_message.busy? && !$game_message.visible
end

#startObject


  • Start Processing




11
12
13
14
15
16
17
18
19
20
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 11

def start
  super
  SceneManager.clear
  $game_player.straighten
  $game_map.refresh
  $game_message.visible = false
  create_spriteset
  create_all_windows
  @menu_calling = false
end

#terminateObject


  • Termination Processing




51
52
53
54
55
56
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 51

def terminate
  super
  SceneManager.snapshot_for_background
  dispose_spriteset
  perform_battle_transition if SceneManager.scene_is?(Scene_Battle)
end

#transition_speedObject


  • Get Transition Speed




37
38
39
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 37

def transition_speed
  return 15
end

#updateObject


  • Frame Update




60
61
62
63
64
65
66
67
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 60

def update
  super
  $game_map.update(true)
  $game_player.update
  $game_timer.update
  @spriteset.update
  update_scene if scene_change_ok?
end

#update_call_debugObject


  • Determine if Debug Call by F9 key




197
198
199
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 197

def update_call_debug
  SceneManager.call(Scene_Debug) if $TEST && Input.press?(:F9)
end

#update_call_menuObject


  • Determine if Menu is Called due to Cancel Button




178
179
180
181
182
183
184
185
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 178

def update_call_menu
  if $game_system.menu_disabled || $game_map.interpreter.running?
    @menu_calling = false
  else
    @menu_calling ||= Input.trigger?(:B)
    call_menu if @menu_calling && !$game_player.moving?
  end
end

#update_encounterObject


  • Update Encounter




172
173
174
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 172

def update_encounter
  SceneManager.call(Scene_Battle) if $game_player.encounter
end

#update_for_fadeObject


  • Update Frame (for Fade In)




87
88
89
90
91
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 87

def update_for_fade
  update_basic
  $game_map.update(false)
  @spriteset.update
end

#update_sceneObject


  • Update Scene Transition




77
78
79
80
81
82
83
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 77

def update_scene
  check_gameover
  update_transfer_player unless scene_changing?
  update_encounter unless scene_changing?
  update_call_menu unless scene_changing?
  update_call_debug unless scene_changing?
end

#update_transfer_playerObject


  • Update Player Transfer




166
167
168
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 166

def update_transfer_player
  perform_transfer if $game_player.transfer?
end

#white_fadein(duration) ⇒ Object


  • Screen Fade In (White)




116
117
118
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 116

def white_fadein(duration)
  fade_loop(duration) {|v| @viewport.color.set(255, 255, 255, 255 - v) }
end

#white_fadeout(duration) ⇒ Object


  • Screen Fade Out (White)




122
123
124
# File 'lib/rgss3_default_scripts/Scene_Map.rb', line 122

def white_fadeout(duration)
  fade_loop(duration) {|v| @viewport.color.set(255, 255, 255, v) }
end