rgss3_default_scripts 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/Gemfile +4 -0
  4. data/README.md +9 -0
  5. data/Rakefile +2 -0
  6. data/lib/rgss3_default_scripts.rb +109 -0
  7. data/lib/rgss3_default_scripts/BattleManager.rb +392 -0
  8. data/lib/rgss3_default_scripts/Cache.rb +134 -0
  9. data/lib/rgss3_default_scripts/DataManager.rb +267 -0
  10. data/lib/rgss3_default_scripts/Game_Action.rb +262 -0
  11. data/lib/rgss3_default_scripts/Game_ActionResult.rb +159 -0
  12. data/lib/rgss3_default_scripts/Game_Actor.rb +696 -0
  13. data/lib/rgss3_default_scripts/Game_Actors.rb +22 -0
  14. data/lib/rgss3_default_scripts/Game_BaseItem.rb +51 -0
  15. data/lib/rgss3_default_scripts/Game_Battler.rb +824 -0
  16. data/lib/rgss3_default_scripts/Game_BattlerBase.rb +731 -0
  17. data/lib/rgss3_default_scripts/Game_Character.rb +396 -0
  18. data/lib/rgss3_default_scripts/Game_CharacterBase.rb +443 -0
  19. data/lib/rgss3_default_scripts/Game_CommonEvent.rb +41 -0
  20. data/lib/rgss3_default_scripts/Game_Enemy.rb +264 -0
  21. data/lib/rgss3_default_scripts/Game_Event.rb +308 -0
  22. data/lib/rgss3_default_scripts/Game_Follower.rb +74 -0
  23. data/lib/rgss3_default_scripts/Game_Followers.rb +112 -0
  24. data/lib/rgss3_default_scripts/Game_Interpreter.rb +1413 -0
  25. data/lib/rgss3_default_scripts/Game_Map.rb +704 -0
  26. data/lib/rgss3_default_scripts/Game_Message.rb +101 -0
  27. data/lib/rgss3_default_scripts/Game_Party.rb +418 -0
  28. data/lib/rgss3_default_scripts/Game_Picture.rb +161 -0
  29. data/lib/rgss3_default_scripts/Game_Pictures.rb +28 -0
  30. data/lib/rgss3_default_scripts/Game_Player.rb +488 -0
  31. data/lib/rgss3_default_scripts/Game_Screen.rb +234 -0
  32. data/lib/rgss3_default_scripts/Game_SelfSwitches.rb +35 -0
  33. data/lib/rgss3_default_scripts/Game_Switches.rb +35 -0
  34. data/lib/rgss3_default_scripts/Game_System.rb +122 -0
  35. data/lib/rgss3_default_scripts/Game_Temp.rb +45 -0
  36. data/lib/rgss3_default_scripts/Game_Timer.rb +56 -0
  37. data/lib/rgss3_default_scripts/Game_Troop.rb +205 -0
  38. data/lib/rgss3_default_scripts/Game_Unit.rb +131 -0
  39. data/lib/rgss3_default_scripts/Game_Variables.rb +34 -0
  40. data/lib/rgss3_default_scripts/Game_Vehicle.rb +193 -0
  41. data/lib/rgss3_default_scripts/SceneManager.rb +94 -0
  42. data/lib/rgss3_default_scripts/Scene_Base.rb +132 -0
  43. data/lib/rgss3_default_scripts/Scene_Battle.rb +693 -0
  44. data/lib/rgss3_default_scripts/Scene_Debug.rb +87 -0
  45. data/lib/rgss3_default_scripts/Scene_End.rb +61 -0
  46. data/lib/rgss3_default_scripts/Scene_Equip.rb +144 -0
  47. data/lib/rgss3_default_scripts/Scene_File.rb +203 -0
  48. data/lib/rgss3_default_scripts/Scene_Gameover.rb +85 -0
  49. data/lib/rgss3_default_scripts/Scene_Item.rb +75 -0
  50. data/lib/rgss3_default_scripts/Scene_ItemBase.rb +147 -0
  51. data/lib/rgss3_default_scripts/Scene_Load.rb +40 -0
  52. data/lib/rgss3_default_scripts/Scene_Map.rb +276 -0
  53. data/lib/rgss3_default_scripts/Scene_Menu.rb +127 -0
  54. data/lib/rgss3_default_scripts/Scene_MenuBase.rb +63 -0
  55. data/lib/rgss3_default_scripts/Scene_Name.rb +32 -0
  56. data/lib/rgss3_default_scripts/Scene_Save.rb +38 -0
  57. data/lib/rgss3_default_scripts/Scene_Shop.rb +299 -0
  58. data/lib/rgss3_default_scripts/Scene_Skill.rb +108 -0
  59. data/lib/rgss3_default_scripts/Scene_Status.rb +25 -0
  60. data/lib/rgss3_default_scripts/Scene_Title.rb +137 -0
  61. data/lib/rgss3_default_scripts/Sound.rb +135 -0
  62. data/lib/rgss3_default_scripts/Sprite_Base.rb +232 -0
  63. data/lib/rgss3_default_scripts/Sprite_Battler.rb +231 -0
  64. data/lib/rgss3_default_scripts/Sprite_Character.rb +226 -0
  65. data/lib/rgss3_default_scripts/Sprite_Picture.rb +82 -0
  66. data/lib/rgss3_default_scripts/Sprite_Timer.rb +77 -0
  67. data/lib/rgss3_default_scripts/Spriteset_Battle.rb +389 -0
  68. data/lib/rgss3_default_scripts/Spriteset_Map.rb +273 -0
  69. data/lib/rgss3_default_scripts/Spriteset_Weather.rb +184 -0
  70. data/lib/rgss3_default_scripts/Vocab.rb +145 -0
  71. data/lib/rgss3_default_scripts/Window_ActorCommand.rb +78 -0
  72. data/lib/rgss3_default_scripts/Window_Base.rb +571 -0
  73. data/lib/rgss3_default_scripts/Window_BattleActor.rb +38 -0
  74. data/lib/rgss3_default_scripts/Window_BattleEnemy.rb +70 -0
  75. data/lib/rgss3_default_scripts/Window_BattleItem.rb +40 -0
  76. data/lib/rgss3_default_scripts/Window_BattleLog.rb +425 -0
  77. data/lib/rgss3_default_scripts/Window_BattleSkill.rb +34 -0
  78. data/lib/rgss3_default_scripts/Window_BattleStatus.rb +111 -0
  79. data/lib/rgss3_default_scripts/Window_ChoiceList.rb +88 -0
  80. data/lib/rgss3_default_scripts/Window_Command.rb +152 -0
  81. data/lib/rgss3_default_scripts/Window_DebugLeft.rb +104 -0
  82. data/lib/rgss3_default_scripts/Window_DebugRight.rb +119 -0
  83. data/lib/rgss3_default_scripts/Window_EquipCommand.rb +36 -0
  84. data/lib/rgss3_default_scripts/Window_EquipItem.rb +78 -0
  85. data/lib/rgss3_default_scripts/Window_EquipSlot.rb +111 -0
  86. data/lib/rgss3_default_scripts/Window_EquipStatus.rb +97 -0
  87. data/lib/rgss3_default_scripts/Window_GameEnd.rb +38 -0
  88. data/lib/rgss3_default_scripts/Window_Gold.rb +47 -0
  89. data/lib/rgss3_default_scripts/Window_Help.rb +43 -0
  90. data/lib/rgss3_default_scripts/Window_HorzCommand.rb +106 -0
  91. data/lib/rgss3_default_scripts/Window_ItemCategory.rb +54 -0
  92. data/lib/rgss3_default_scripts/Window_ItemList.rb +117 -0
  93. data/lib/rgss3_default_scripts/Window_KeyItem.rb +55 -0
  94. data/lib/rgss3_default_scripts/Window_MapName.rb +96 -0
  95. data/lib/rgss3_default_scripts/Window_MenuActor.rb +43 -0
  96. data/lib/rgss3_default_scripts/Window_MenuCommand.rb +106 -0
  97. data/lib/rgss3_default_scripts/Window_MenuStatus.rb +85 -0
  98. data/lib/rgss3_default_scripts/Window_Message.rb +397 -0
  99. data/lib/rgss3_default_scripts/Window_NameEdit.rb +129 -0
  100. data/lib/rgss3_default_scripts/Window_NameInput.rb +253 -0
  101. data/lib/rgss3_default_scripts/Window_NumberInput.rb +148 -0
  102. data/lib/rgss3_default_scripts/Window_PartyCommand.rb +47 -0
  103. data/lib/rgss3_default_scripts/Window_SaveFile.rb +69 -0
  104. data/lib/rgss3_default_scripts/Window_ScrollText.rb +90 -0
  105. data/lib/rgss3_default_scripts/Window_Selectable.rb +442 -0
  106. data/lib/rgss3_default_scripts/Window_ShopBuy.rb +115 -0
  107. data/lib/rgss3_default_scripts/Window_ShopCommand.rb +36 -0
  108. data/lib/rgss3_default_scripts/Window_ShopNumber.rb +137 -0
  109. data/lib/rgss3_default_scripts/Window_ShopSell.rb +27 -0
  110. data/lib/rgss3_default_scripts/Window_ShopStatus.rb +124 -0
  111. data/lib/rgss3_default_scripts/Window_SkillCommand.rb +76 -0
  112. data/lib/rgss3_default_scripts/Window_SkillList.rb +121 -0
  113. data/lib/rgss3_default_scripts/Window_SkillStatus.rb +38 -0
  114. data/lib/rgss3_default_scripts/Window_Status.rb +125 -0
  115. data/lib/rgss3_default_scripts/Window_TitleCommand.rb +45 -0
  116. data/rgss3_default_scripts.gemspec +23 -0
  117. metadata +186 -0
@@ -0,0 +1,87 @@
1
+ #==============================================================================
2
+ # ** Scene_Debug
3
+ #------------------------------------------------------------------------------
4
+ # This class performs debug screen processing.
5
+ #==============================================================================
6
+
7
+ class Scene_Debug < Scene_MenuBase
8
+ #--------------------------------------------------------------------------
9
+ # * Start Processing
10
+ #--------------------------------------------------------------------------
11
+ def start
12
+ super
13
+ create_left_window
14
+ create_right_window
15
+ create_debug_help_window
16
+ end
17
+ #--------------------------------------------------------------------------
18
+ # * Termination Processing
19
+ #--------------------------------------------------------------------------
20
+ def terminate
21
+ super
22
+ #$game_map.refresh
23
+ end
24
+ #--------------------------------------------------------------------------
25
+ # * Create Left Window
26
+ #--------------------------------------------------------------------------
27
+ def create_left_window
28
+ @left_window = Window_DebugLeft.new(0, 0)
29
+ @left_window.set_handler(:ok, method(:on_left_ok))
30
+ @left_window.set_handler(:cancel, method(:return_scene))
31
+ end
32
+ #--------------------------------------------------------------------------
33
+ # * Create Right Window
34
+ #--------------------------------------------------------------------------
35
+ def create_right_window
36
+ wx = @left_window.width
37
+ ww = Graphics.width - wx
38
+ @right_window = Window_DebugRight.new(wx, 0, ww)
39
+ @right_window.set_handler(:cancel, method(:on_right_cancel))
40
+ @left_window.right_window = @right_window
41
+ end
42
+ #--------------------------------------------------------------------------
43
+ # * Create Help Window
44
+ #--------------------------------------------------------------------------
45
+ def create_debug_help_window
46
+ wx = @right_window.x
47
+ wy = @right_window.height
48
+ ww = @right_window.width
49
+ wh = Graphics.height - wy
50
+ @debug_help_window = Window_Base.new(wx, wy, ww, wh)
51
+ end
52
+ #--------------------------------------------------------------------------
53
+ # * Left [OK]
54
+ #--------------------------------------------------------------------------
55
+ def on_left_ok
56
+ refresh_help_window
57
+ @right_window.activate
58
+ @right_window.select(0)
59
+ end
60
+ #--------------------------------------------------------------------------
61
+ # * Right [Cancel]
62
+ #--------------------------------------------------------------------------
63
+ def on_right_cancel
64
+ @left_window.activate
65
+ @right_window.unselect
66
+ @debug_help_window.contents.clear
67
+ end
68
+ #--------------------------------------------------------------------------
69
+ # * Refresh Help Window
70
+ #--------------------------------------------------------------------------
71
+ def refresh_help_window
72
+ @debug_help_window.draw_text_ex(4, 0, help_text)
73
+ end
74
+ #--------------------------------------------------------------------------
75
+ # * Get Help Text
76
+ #--------------------------------------------------------------------------
77
+ def help_text
78
+ if @left_window.mode == :switch
79
+ "C (Enter) : ON / OFF"
80
+ else
81
+ "← (Left) : -1\n" +
82
+ "→ (Right) : +1\n" +
83
+ "L (Pageup) : -10\n" +
84
+ "R (Pagedown) : +10"
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,61 @@
1
+ #==============================================================================
2
+ # ** Scene_End
3
+ #------------------------------------------------------------------------------
4
+ # This class performs game over screen processing.
5
+ #==============================================================================
6
+
7
+ class Scene_End < Scene_MenuBase
8
+ #--------------------------------------------------------------------------
9
+ # * Start Processing
10
+ #--------------------------------------------------------------------------
11
+ def start
12
+ super
13
+ create_command_window
14
+ end
15
+ #--------------------------------------------------------------------------
16
+ # * Pre-Termination Processing
17
+ #--------------------------------------------------------------------------
18
+ def pre_terminate
19
+ super
20
+ close_command_window
21
+ end
22
+ #--------------------------------------------------------------------------
23
+ # * Create Background
24
+ #--------------------------------------------------------------------------
25
+ def create_background
26
+ super
27
+ @background_sprite.tone.set(0, 0, 0, 128)
28
+ end
29
+ #--------------------------------------------------------------------------
30
+ # * Create Command Window
31
+ #--------------------------------------------------------------------------
32
+ def create_command_window
33
+ @command_window = Window_GameEnd.new
34
+ @command_window.set_handler(:to_title, method(:command_to_title))
35
+ @command_window.set_handler(:shutdown, method(:command_shutdown))
36
+ @command_window.set_handler(:cancel, method(:return_scene))
37
+ end
38
+ #--------------------------------------------------------------------------
39
+ # * Close Command Window
40
+ #--------------------------------------------------------------------------
41
+ def close_command_window
42
+ @command_window.close
43
+ update until @command_window.close?
44
+ end
45
+ #--------------------------------------------------------------------------
46
+ # * [Go to Title] Command
47
+ #--------------------------------------------------------------------------
48
+ def command_to_title
49
+ close_command_window
50
+ fadeout_all
51
+ SceneManager.goto(Scene_Title)
52
+ end
53
+ #--------------------------------------------------------------------------
54
+ # * [Shut Down] Command
55
+ #--------------------------------------------------------------------------
56
+ def command_shutdown
57
+ close_command_window
58
+ fadeout_all
59
+ SceneManager.exit
60
+ end
61
+ end
@@ -0,0 +1,144 @@
1
+ #==============================================================================
2
+ # ** Scene_Equip
3
+ #------------------------------------------------------------------------------
4
+ # This class performs the equipment screen processing.
5
+ #==============================================================================
6
+
7
+ class Scene_Equip < Scene_MenuBase
8
+ #--------------------------------------------------------------------------
9
+ # * Start Processing
10
+ #--------------------------------------------------------------------------
11
+ def start
12
+ super
13
+ create_help_window
14
+ create_status_window
15
+ create_command_window
16
+ create_slot_window
17
+ create_item_window
18
+ end
19
+ #--------------------------------------------------------------------------
20
+ # * Create Status Window
21
+ #--------------------------------------------------------------------------
22
+ def create_status_window
23
+ @status_window = Window_EquipStatus.new(0, @help_window.height)
24
+ @status_window.viewport = @viewport
25
+ @status_window.actor = @actor
26
+ end
27
+ #--------------------------------------------------------------------------
28
+ # * Create Command Window
29
+ #--------------------------------------------------------------------------
30
+ def create_command_window
31
+ wx = @status_window.width
32
+ wy = @help_window.height
33
+ ww = Graphics.width - @status_window.width
34
+ @command_window = Window_EquipCommand.new(wx, wy, ww)
35
+ @command_window.viewport = @viewport
36
+ @command_window.help_window = @help_window
37
+ @command_window.set_handler(:equip, method(:command_equip))
38
+ @command_window.set_handler(:optimize, method(:command_optimize))
39
+ @command_window.set_handler(:clear, method(:command_clear))
40
+ @command_window.set_handler(:cancel, method(:return_scene))
41
+ @command_window.set_handler(:pagedown, method(:next_actor))
42
+ @command_window.set_handler(:pageup, method(:prev_actor))
43
+ end
44
+ #--------------------------------------------------------------------------
45
+ # * Create Slot Window
46
+ #--------------------------------------------------------------------------
47
+ def create_slot_window
48
+ wx = @status_window.width
49
+ wy = @command_window.y + @command_window.height
50
+ ww = Graphics.width - @status_window.width
51
+ @slot_window = Window_EquipSlot.new(wx, wy, ww)
52
+ @slot_window.viewport = @viewport
53
+ @slot_window.help_window = @help_window
54
+ @slot_window.status_window = @status_window
55
+ @slot_window.actor = @actor
56
+ @slot_window.set_handler(:ok, method(:on_slot_ok))
57
+ @slot_window.set_handler(:cancel, method(:on_slot_cancel))
58
+ end
59
+ #--------------------------------------------------------------------------
60
+ # * Create Item Window
61
+ #--------------------------------------------------------------------------
62
+ def create_item_window
63
+ wx = 0
64
+ wy = @slot_window.y + @slot_window.height
65
+ ww = Graphics.width
66
+ wh = Graphics.height - wy
67
+ @item_window = Window_EquipItem.new(wx, wy, ww, wh)
68
+ @item_window.viewport = @viewport
69
+ @item_window.help_window = @help_window
70
+ @item_window.status_window = @status_window
71
+ @item_window.actor = @actor
72
+ @item_window.set_handler(:ok, method(:on_item_ok))
73
+ @item_window.set_handler(:cancel, method(:on_item_cancel))
74
+ @slot_window.item_window = @item_window
75
+ end
76
+ #--------------------------------------------------------------------------
77
+ # * [Change Equipment] Command
78
+ #--------------------------------------------------------------------------
79
+ def command_equip
80
+ @slot_window.activate
81
+ @slot_window.select(0)
82
+ end
83
+ #--------------------------------------------------------------------------
84
+ # * [Ultimate Equipment] Command
85
+ #--------------------------------------------------------------------------
86
+ def command_optimize
87
+ Sound.play_equip
88
+ @actor.optimize_equipments
89
+ @status_window.refresh
90
+ @slot_window.refresh
91
+ @command_window.activate
92
+ end
93
+ #--------------------------------------------------------------------------
94
+ # * [Remove All] Command
95
+ #--------------------------------------------------------------------------
96
+ def command_clear
97
+ Sound.play_equip
98
+ @actor.clear_equipments
99
+ @status_window.refresh
100
+ @slot_window.refresh
101
+ @command_window.activate
102
+ end
103
+ #--------------------------------------------------------------------------
104
+ # * Slot [OK]
105
+ #--------------------------------------------------------------------------
106
+ def on_slot_ok
107
+ @item_window.activate
108
+ @item_window.select(0)
109
+ end
110
+ #--------------------------------------------------------------------------
111
+ # * Slot [Cancel]
112
+ #--------------------------------------------------------------------------
113
+ def on_slot_cancel
114
+ @slot_window.unselect
115
+ @command_window.activate
116
+ end
117
+ #--------------------------------------------------------------------------
118
+ # * Item [OK]
119
+ #--------------------------------------------------------------------------
120
+ def on_item_ok
121
+ Sound.play_equip
122
+ @actor.change_equip(@slot_window.index, @item_window.item)
123
+ @slot_window.activate
124
+ @slot_window.refresh
125
+ @item_window.unselect
126
+ @item_window.refresh
127
+ end
128
+ #--------------------------------------------------------------------------
129
+ # * Item [Cancel]
130
+ #--------------------------------------------------------------------------
131
+ def on_item_cancel
132
+ @slot_window.activate
133
+ @item_window.unselect
134
+ end
135
+ #--------------------------------------------------------------------------
136
+ # * Change Actors
137
+ #--------------------------------------------------------------------------
138
+ def on_actor_change
139
+ @status_window.actor = @actor
140
+ @slot_window.actor = @actor
141
+ @item_window.actor = @actor
142
+ @command_window.activate
143
+ end
144
+ end
@@ -0,0 +1,203 @@
1
+ #==============================================================================
2
+ # ** Scene_File
3
+ #------------------------------------------------------------------------------
4
+ # This class performs common processing for the save screen and load screen.
5
+ #==============================================================================
6
+
7
+ class Scene_File < Scene_MenuBase
8
+ #--------------------------------------------------------------------------
9
+ # * Start Processing
10
+ #--------------------------------------------------------------------------
11
+ def start
12
+ super
13
+ create_help_window
14
+ create_savefile_viewport
15
+ create_savefile_windows
16
+ init_selection
17
+ end
18
+ #--------------------------------------------------------------------------
19
+ # * Termination Processing
20
+ #--------------------------------------------------------------------------
21
+ def terminate
22
+ super
23
+ @savefile_viewport.dispose
24
+ @savefile_windows.each {|window| window.dispose }
25
+ end
26
+ #--------------------------------------------------------------------------
27
+ # * Frame Update
28
+ #--------------------------------------------------------------------------
29
+ def update
30
+ super
31
+ @savefile_windows.each {|window| window.update }
32
+ update_savefile_selection
33
+ end
34
+ #--------------------------------------------------------------------------
35
+ # * Create Help Window
36
+ #--------------------------------------------------------------------------
37
+ def create_help_window
38
+ @help_window = Window_Help.new(1)
39
+ @help_window.set_text(help_window_text)
40
+ end
41
+ #--------------------------------------------------------------------------
42
+ # * Get Help Window Text
43
+ #--------------------------------------------------------------------------
44
+ def help_window_text
45
+ return ""
46
+ end
47
+ #--------------------------------------------------------------------------
48
+ # * Create Save File Viewport
49
+ #--------------------------------------------------------------------------
50
+ def create_savefile_viewport
51
+ @savefile_viewport = Viewport.new
52
+ @savefile_viewport.rect.y = @help_window.height
53
+ @savefile_viewport.rect.height -= @help_window.height
54
+ end
55
+ #--------------------------------------------------------------------------
56
+ # * Create Save File Window
57
+ #--------------------------------------------------------------------------
58
+ def create_savefile_windows
59
+ @savefile_windows = Array.new(item_max) do |i|
60
+ Window_SaveFile.new(savefile_height, i)
61
+ end
62
+ @savefile_windows.each {|window| window.viewport = @savefile_viewport }
63
+ end
64
+ #--------------------------------------------------------------------------
65
+ # * Initialize Selection State
66
+ #--------------------------------------------------------------------------
67
+ def init_selection
68
+ @index = first_savefile_index
69
+ @savefile_windows[@index].selected = true
70
+ self.top_index = @index - visible_max / 2
71
+ ensure_cursor_visible
72
+ end
73
+ #--------------------------------------------------------------------------
74
+ # * Get Number of Items
75
+ #--------------------------------------------------------------------------
76
+ def item_max
77
+ DataManager.savefile_max
78
+ end
79
+ #--------------------------------------------------------------------------
80
+ # * Get Number of Save Files to Show on Screen
81
+ #--------------------------------------------------------------------------
82
+ def visible_max
83
+ return 4
84
+ end
85
+ #--------------------------------------------------------------------------
86
+ # * Get Height of Save File Window
87
+ #--------------------------------------------------------------------------
88
+ def savefile_height
89
+ @savefile_viewport.rect.height / visible_max
90
+ end
91
+ #--------------------------------------------------------------------------
92
+ # * Get File Index to Select First
93
+ #--------------------------------------------------------------------------
94
+ def first_savefile_index
95
+ return 0
96
+ end
97
+ #--------------------------------------------------------------------------
98
+ # * Get Current Index
99
+ #--------------------------------------------------------------------------
100
+ def index
101
+ @index
102
+ end
103
+ #--------------------------------------------------------------------------
104
+ # * Get Top Index
105
+ #--------------------------------------------------------------------------
106
+ def top_index
107
+ @savefile_viewport.oy / savefile_height
108
+ end
109
+ #--------------------------------------------------------------------------
110
+ # * Set Top Index
111
+ #--------------------------------------------------------------------------
112
+ def top_index=(index)
113
+ index = 0 if index < 0
114
+ index = item_max - visible_max if index > item_max - visible_max
115
+ @savefile_viewport.oy = index * savefile_height
116
+ end
117
+ #--------------------------------------------------------------------------
118
+ # * Get Bottom Index
119
+ #--------------------------------------------------------------------------
120
+ def bottom_index
121
+ top_index + visible_max - 1
122
+ end
123
+ #--------------------------------------------------------------------------
124
+ # * Set Bottom Index
125
+ #--------------------------------------------------------------------------
126
+ def bottom_index=(index)
127
+ self.top_index = index - (visible_max - 1)
128
+ end
129
+ #--------------------------------------------------------------------------
130
+ # * Update Save File Selection
131
+ #--------------------------------------------------------------------------
132
+ def update_savefile_selection
133
+ return on_savefile_ok if Input.trigger?(:C)
134
+ return on_savefile_cancel if Input.trigger?(:B)
135
+ update_cursor
136
+ end
137
+ #--------------------------------------------------------------------------
138
+ # * Save File [OK]
139
+ #--------------------------------------------------------------------------
140
+ def on_savefile_ok
141
+ end
142
+ #--------------------------------------------------------------------------
143
+ # * Save File [Cancel]
144
+ #--------------------------------------------------------------------------
145
+ def on_savefile_cancel
146
+ Sound.play_cancel
147
+ return_scene
148
+ end
149
+ #--------------------------------------------------------------------------
150
+ # * Update Cursor
151
+ #--------------------------------------------------------------------------
152
+ def update_cursor
153
+ last_index = @index
154
+ cursor_down (Input.trigger?(:DOWN)) if Input.repeat?(:DOWN)
155
+ cursor_up (Input.trigger?(:UP)) if Input.repeat?(:UP)
156
+ cursor_pagedown if Input.trigger?(:R)
157
+ cursor_pageup if Input.trigger?(:L)
158
+ if @index != last_index
159
+ Sound.play_cursor
160
+ @savefile_windows[last_index].selected = false
161
+ @savefile_windows[@index].selected = true
162
+ end
163
+ end
164
+ #--------------------------------------------------------------------------
165
+ # * Move Cursor Down
166
+ #--------------------------------------------------------------------------
167
+ def cursor_down(wrap)
168
+ @index = (@index + 1) % item_max if @index < item_max - 1 || wrap
169
+ ensure_cursor_visible
170
+ end
171
+ #--------------------------------------------------------------------------
172
+ # * Move Cursor Up
173
+ #--------------------------------------------------------------------------
174
+ def cursor_up(wrap)
175
+ @index = (@index - 1 + item_max) % item_max if @index > 0 || wrap
176
+ ensure_cursor_visible
177
+ end
178
+ #--------------------------------------------------------------------------
179
+ # * Move Cursor One Page Down
180
+ #--------------------------------------------------------------------------
181
+ def cursor_pagedown
182
+ if top_index + visible_max < item_max
183
+ self.top_index += visible_max
184
+ @index = [@index + visible_max, item_max - 1].min
185
+ end
186
+ end
187
+ #--------------------------------------------------------------------------
188
+ # * Move Cursor One Page Up
189
+ #--------------------------------------------------------------------------
190
+ def cursor_pageup
191
+ if top_index > 0
192
+ self.top_index -= visible_max
193
+ @index = [@index - visible_max, 0].max
194
+ end
195
+ end
196
+ #--------------------------------------------------------------------------
197
+ # * Scroll Cursor to Position Within Screen
198
+ #--------------------------------------------------------------------------
199
+ def ensure_cursor_visible
200
+ self.top_index = index if index < top_index
201
+ self.bottom_index = index if index > bottom_index
202
+ end
203
+ end