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,273 @@
1
+ #==============================================================================
2
+ # ** Spriteset_Map
3
+ #------------------------------------------------------------------------------
4
+ # This class brings together map screen sprites, tilemaps, etc. It's used
5
+ # within the Scene_Map class.
6
+ #==============================================================================
7
+
8
+ class Spriteset_Map
9
+ #--------------------------------------------------------------------------
10
+ # * Object Initialization
11
+ #--------------------------------------------------------------------------
12
+ def initialize
13
+ create_viewports
14
+ create_tilemap
15
+ create_parallax
16
+ create_characters
17
+ create_shadow
18
+ create_weather
19
+ create_pictures
20
+ create_timer
21
+ update
22
+ end
23
+ #--------------------------------------------------------------------------
24
+ # * Create Viewport
25
+ #--------------------------------------------------------------------------
26
+ def create_viewports
27
+ @viewport1 = Viewport.new
28
+ @viewport2 = Viewport.new
29
+ @viewport3 = Viewport.new
30
+ @viewport2.z = 50
31
+ @viewport3.z = 100
32
+ end
33
+ #--------------------------------------------------------------------------
34
+ # * Create Tilemap
35
+ #--------------------------------------------------------------------------
36
+ def create_tilemap
37
+ @tilemap = Tilemap.new(@viewport1)
38
+ @tilemap.map_data = $game_map.data
39
+ load_tileset
40
+ end
41
+ #--------------------------------------------------------------------------
42
+ # * Load Tileset
43
+ #--------------------------------------------------------------------------
44
+ def load_tileset
45
+ @tileset = $game_map.tileset
46
+ @tileset.tileset_names.each_with_index do |name, i|
47
+ @tilemap.bitmaps[i] = Cache.tileset(name)
48
+ end
49
+ @tilemap.flags = @tileset.flags
50
+ end
51
+ #--------------------------------------------------------------------------
52
+ # * Create Parallax
53
+ #--------------------------------------------------------------------------
54
+ def create_parallax
55
+ @parallax = Plane.new(@viewport1)
56
+ @parallax.z = -100
57
+ end
58
+ #--------------------------------------------------------------------------
59
+ # * Create Character Sprite
60
+ #--------------------------------------------------------------------------
61
+ def create_characters
62
+ @character_sprites = []
63
+ $game_map.events.values.each do |event|
64
+ @character_sprites.push(Sprite_Character.new(@viewport1, event))
65
+ end
66
+ $game_map.vehicles.each do |vehicle|
67
+ @character_sprites.push(Sprite_Character.new(@viewport1, vehicle))
68
+ end
69
+ $game_player.followers.reverse_each do |follower|
70
+ @character_sprites.push(Sprite_Character.new(@viewport1, follower))
71
+ end
72
+ @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
73
+ @map_id = $game_map.map_id
74
+ end
75
+ #--------------------------------------------------------------------------
76
+ # * Create Airship Shadow Sprite
77
+ #--------------------------------------------------------------------------
78
+ def create_shadow
79
+ @shadow_sprite = Sprite.new(@viewport1)
80
+ @shadow_sprite.bitmap = Cache.system("Shadow")
81
+ @shadow_sprite.ox = @shadow_sprite.bitmap.width / 2
82
+ @shadow_sprite.oy = @shadow_sprite.bitmap.height
83
+ @shadow_sprite.z = 180
84
+ end
85
+ #--------------------------------------------------------------------------
86
+ # * Create Weather
87
+ #--------------------------------------------------------------------------
88
+ def create_weather
89
+ @weather = Spriteset_Weather.new(@viewport2)
90
+ end
91
+ #--------------------------------------------------------------------------
92
+ # * Create Picture Sprite
93
+ #--------------------------------------------------------------------------
94
+ def create_pictures
95
+ @picture_sprites = []
96
+ end
97
+ #--------------------------------------------------------------------------
98
+ # * Create Timer Sprite
99
+ #--------------------------------------------------------------------------
100
+ def create_timer
101
+ @timer_sprite = Sprite_Timer.new(@viewport2)
102
+ end
103
+ #--------------------------------------------------------------------------
104
+ # * Free
105
+ #--------------------------------------------------------------------------
106
+ def dispose
107
+ dispose_tilemap
108
+ dispose_parallax
109
+ dispose_characters
110
+ dispose_shadow
111
+ dispose_weather
112
+ dispose_pictures
113
+ dispose_timer
114
+ dispose_viewports
115
+ end
116
+ #--------------------------------------------------------------------------
117
+ # * Free Tilemap
118
+ #--------------------------------------------------------------------------
119
+ def dispose_tilemap
120
+ @tilemap.dispose
121
+ end
122
+ #--------------------------------------------------------------------------
123
+ # * Free Parallax
124
+ #--------------------------------------------------------------------------
125
+ def dispose_parallax
126
+ @parallax.bitmap.dispose if @parallax.bitmap
127
+ @parallax.dispose
128
+ end
129
+ #--------------------------------------------------------------------------
130
+ # * Free Character Sprite
131
+ #--------------------------------------------------------------------------
132
+ def dispose_characters
133
+ @character_sprites.each {|sprite| sprite.dispose }
134
+ end
135
+ #--------------------------------------------------------------------------
136
+ # * Free Airship Shadow Sprite
137
+ #--------------------------------------------------------------------------
138
+ def dispose_shadow
139
+ @shadow_sprite.dispose
140
+ end
141
+ #--------------------------------------------------------------------------
142
+ # * Free Weather
143
+ #--------------------------------------------------------------------------
144
+ def dispose_weather
145
+ @weather.dispose
146
+ end
147
+ #--------------------------------------------------------------------------
148
+ # * Free Picture Sprite
149
+ #--------------------------------------------------------------------------
150
+ def dispose_pictures
151
+ @picture_sprites.compact.each {|sprite| sprite.dispose }
152
+ end
153
+ #--------------------------------------------------------------------------
154
+ # * Free Timer Sprite
155
+ #--------------------------------------------------------------------------
156
+ def dispose_timer
157
+ @timer_sprite.dispose
158
+ end
159
+ #--------------------------------------------------------------------------
160
+ # * Free Viewport
161
+ #--------------------------------------------------------------------------
162
+ def dispose_viewports
163
+ @viewport1.dispose
164
+ @viewport2.dispose
165
+ @viewport3.dispose
166
+ end
167
+ #--------------------------------------------------------------------------
168
+ # * Refresh Characters
169
+ #--------------------------------------------------------------------------
170
+ def refresh_characters
171
+ dispose_characters
172
+ create_characters
173
+ end
174
+ #--------------------------------------------------------------------------
175
+ # * Frame Update
176
+ #--------------------------------------------------------------------------
177
+ def update
178
+ update_tileset
179
+ update_tilemap
180
+ update_parallax
181
+ update_characters
182
+ update_shadow
183
+ update_weather
184
+ update_pictures
185
+ update_timer
186
+ update_viewports
187
+ end
188
+ #--------------------------------------------------------------------------
189
+ # * Update Tileset
190
+ #--------------------------------------------------------------------------
191
+ def update_tileset
192
+ if @tileset != $game_map.tileset
193
+ load_tileset
194
+ refresh_characters
195
+ end
196
+ end
197
+ #--------------------------------------------------------------------------
198
+ # * Update Tilemap
199
+ #--------------------------------------------------------------------------
200
+ def update_tilemap
201
+ @tilemap.map_data = $game_map.data
202
+ @tilemap.ox = $game_map.display_x * 32
203
+ @tilemap.oy = $game_map.display_y * 32
204
+ @tilemap.update
205
+ end
206
+ #--------------------------------------------------------------------------
207
+ # * Update Parallax
208
+ #--------------------------------------------------------------------------
209
+ def update_parallax
210
+ if @parallax_name != $game_map.parallax_name
211
+ @parallax_name = $game_map.parallax_name
212
+ @parallax.bitmap.dispose if @parallax.bitmap
213
+ @parallax.bitmap = Cache.parallax(@parallax_name)
214
+ Graphics.frame_reset
215
+ end
216
+ @parallax.ox = $game_map.parallax_ox(@parallax.bitmap)
217
+ @parallax.oy = $game_map.parallax_oy(@parallax.bitmap)
218
+ end
219
+ #--------------------------------------------------------------------------
220
+ # * Update Character Sprite
221
+ #--------------------------------------------------------------------------
222
+ def update_characters
223
+ refresh_characters if @map_id != $game_map.map_id
224
+ @character_sprites.each {|sprite| sprite.update }
225
+ end
226
+ #--------------------------------------------------------------------------
227
+ # * Update Airship Shadow Sprite
228
+ #--------------------------------------------------------------------------
229
+ def update_shadow
230
+ airship = $game_map.airship
231
+ @shadow_sprite.x = airship.screen_x
232
+ @shadow_sprite.y = airship.screen_y + airship.altitude
233
+ @shadow_sprite.opacity = airship.altitude * 8
234
+ @shadow_sprite.update
235
+ end
236
+ #--------------------------------------------------------------------------
237
+ # * Update Weather
238
+ #--------------------------------------------------------------------------
239
+ def update_weather
240
+ @weather.type = $game_map.screen.weather_type
241
+ @weather.power = $game_map.screen.weather_power
242
+ @weather.ox = $game_map.display_x * 32
243
+ @weather.oy = $game_map.display_y * 32
244
+ @weather.update
245
+ end
246
+ #--------------------------------------------------------------------------
247
+ # *Update Picture Sprite
248
+ #--------------------------------------------------------------------------
249
+ def update_pictures
250
+ $game_map.screen.pictures.each do |pic|
251
+ @picture_sprites[pic.number] ||= Sprite_Picture.new(@viewport2, pic)
252
+ @picture_sprites[pic.number].update
253
+ end
254
+ end
255
+ #--------------------------------------------------------------------------
256
+ # * Update Timer Sprite
257
+ #--------------------------------------------------------------------------
258
+ def update_timer
259
+ @timer_sprite.update
260
+ end
261
+ #--------------------------------------------------------------------------
262
+ # * Update Viewport
263
+ #--------------------------------------------------------------------------
264
+ def update_viewports
265
+ @viewport1.tone.set($game_map.screen.tone)
266
+ @viewport1.ox = $game_map.screen.shake
267
+ @viewport2.color.set($game_map.screen.flash_color)
268
+ @viewport3.color.set(0, 0, 0, 255 - $game_map.screen.brightness)
269
+ @viewport1.update
270
+ @viewport2.update
271
+ @viewport3.update
272
+ end
273
+ end
@@ -0,0 +1,184 @@
1
+ #==============================================================================
2
+ # ** Spriteset_Weather
3
+ #------------------------------------------------------------------------------
4
+ # A class for weather effects (rain, storm, and snow). It is used within the
5
+ # Spriteset_Map class.
6
+ #==============================================================================
7
+
8
+ class Spriteset_Weather
9
+ #--------------------------------------------------------------------------
10
+ # * Public Instance Variables
11
+ #--------------------------------------------------------------------------
12
+ attr_accessor :type # Weather type
13
+ attr_accessor :ox # X coordinate of origin
14
+ attr_accessor :oy # Y coordinate of orgin
15
+ attr_reader :power # Intensity
16
+ #--------------------------------------------------------------------------
17
+ # * Object Initialization
18
+ #--------------------------------------------------------------------------
19
+ def initialize(viewport = nil)
20
+ @viewport = viewport
21
+ init_members
22
+ create_rain_bitmap
23
+ create_storm_bitmap
24
+ create_snow_bitmap
25
+ end
26
+ #--------------------------------------------------------------------------
27
+ # * Initialize Member Variables
28
+ #--------------------------------------------------------------------------
29
+ def init_members
30
+ @type = :none
31
+ @ox = 0
32
+ @oy = 0
33
+ @power = 0
34
+ @sprites = []
35
+ end
36
+ #--------------------------------------------------------------------------
37
+ # * Free
38
+ #--------------------------------------------------------------------------
39
+ def dispose
40
+ @sprites.each {|sprite| sprite.dispose }
41
+ @rain_bitmap.dispose
42
+ @storm_bitmap.dispose
43
+ @snow_bitmap.dispose
44
+ end
45
+ #--------------------------------------------------------------------------
46
+ # * Particle Color 1
47
+ #--------------------------------------------------------------------------
48
+ def particle_color1
49
+ Color.new(255, 255, 255, 192)
50
+ end
51
+ #--------------------------------------------------------------------------
52
+ # * Particle Color 2
53
+ #--------------------------------------------------------------------------
54
+ def particle_color2
55
+ Color.new(255, 255, 255, 96)
56
+ end
57
+ #--------------------------------------------------------------------------
58
+ # * Create [Rain] Weather Bitmap
59
+ #--------------------------------------------------------------------------
60
+ def create_rain_bitmap
61
+ @rain_bitmap = Bitmap.new(7, 42)
62
+ 7.times {|i| @rain_bitmap.fill_rect(6-i, i*6, 1, 6, particle_color1) }
63
+ end
64
+ #--------------------------------------------------------------------------
65
+ # * Create [Storm] Weather Bitmap
66
+ #--------------------------------------------------------------------------
67
+ def create_storm_bitmap
68
+ @storm_bitmap = Bitmap.new(34, 64)
69
+ 32.times do |i|
70
+ @storm_bitmap.fill_rect(33-i, i*2, 1, 2, particle_color2)
71
+ @storm_bitmap.fill_rect(32-i, i*2, 1, 2, particle_color1)
72
+ @storm_bitmap.fill_rect(31-i, i*2, 1, 2, particle_color2)
73
+ end
74
+ end
75
+ #--------------------------------------------------------------------------
76
+ # * Create [Snow] Weather Bitmap
77
+ #--------------------------------------------------------------------------
78
+ def create_snow_bitmap
79
+ @snow_bitmap = Bitmap.new(6, 6)
80
+ @snow_bitmap.fill_rect(0, 1, 6, 4, particle_color2)
81
+ @snow_bitmap.fill_rect(1, 0, 4, 6, particle_color2)
82
+ @snow_bitmap.fill_rect(1, 2, 4, 2, particle_color1)
83
+ @snow_bitmap.fill_rect(2, 1, 2, 4, particle_color1)
84
+ end
85
+ #--------------------------------------------------------------------------
86
+ # * Set Weather Intensity
87
+ #--------------------------------------------------------------------------
88
+ def power=(power)
89
+ @power = power
90
+ (sprite_max - @sprites.size).times { add_sprite }
91
+ (@sprites.size - sprite_max).times { remove_sprite }
92
+ end
93
+ #--------------------------------------------------------------------------
94
+ # * Get Maximum Number of Sprites
95
+ #--------------------------------------------------------------------------
96
+ def sprite_max
97
+ (@power * 10).to_i
98
+ end
99
+ #--------------------------------------------------------------------------
100
+ # * Add Sprite
101
+ #--------------------------------------------------------------------------
102
+ def add_sprite
103
+ sprite = Sprite.new(@viewport)
104
+ sprite.opacity = 0
105
+ @sprites.push(sprite)
106
+ end
107
+ #--------------------------------------------------------------------------
108
+ # * Delete Sprite
109
+ #--------------------------------------------------------------------------
110
+ def remove_sprite
111
+ sprite = @sprites.pop
112
+ sprite.dispose if sprite
113
+ end
114
+ #--------------------------------------------------------------------------
115
+ # * Frame Update
116
+ #--------------------------------------------------------------------------
117
+ def update
118
+ update_screen
119
+ @sprites.each {|sprite| update_sprite(sprite) }
120
+ end
121
+ #--------------------------------------------------------------------------
122
+ # * Update Screen
123
+ #--------------------------------------------------------------------------
124
+ def update_screen
125
+ @viewport.tone.set(-dimness, -dimness, -dimness)
126
+ end
127
+ #--------------------------------------------------------------------------
128
+ # * Get Dimness
129
+ #--------------------------------------------------------------------------
130
+ def dimness
131
+ (@power * 6).to_i
132
+ end
133
+ #--------------------------------------------------------------------------
134
+ # * Update Sprite
135
+ #--------------------------------------------------------------------------
136
+ def update_sprite(sprite)
137
+ sprite.ox = @ox
138
+ sprite.oy = @oy
139
+ case @type
140
+ when :rain
141
+ update_sprite_rain(sprite)
142
+ when :storm
143
+ update_sprite_storm(sprite)
144
+ when :snow
145
+ update_sprite_snow(sprite)
146
+ end
147
+ create_new_particle(sprite) if sprite.opacity < 64
148
+ end
149
+ #--------------------------------------------------------------------------
150
+ # * Update Sprite [Rain]
151
+ #--------------------------------------------------------------------------
152
+ def update_sprite_rain(sprite)
153
+ sprite.bitmap = @rain_bitmap
154
+ sprite.x -= 1
155
+ sprite.y += 6
156
+ sprite.opacity -= 12
157
+ end
158
+ #--------------------------------------------------------------------------
159
+ # * Update Sprite [Storm]
160
+ #--------------------------------------------------------------------------
161
+ def update_sprite_storm(sprite)
162
+ sprite.bitmap = @storm_bitmap
163
+ sprite.x -= 3
164
+ sprite.y += 6
165
+ sprite.opacity -= 12
166
+ end
167
+ #--------------------------------------------------------------------------
168
+ # * Update Sprite [Snow]
169
+ #--------------------------------------------------------------------------
170
+ def update_sprite_snow(sprite)
171
+ sprite.bitmap = @snow_bitmap
172
+ sprite.x -= 1
173
+ sprite.y += 3
174
+ sprite.opacity -= 12
175
+ end
176
+ #--------------------------------------------------------------------------
177
+ # * Create New Particle
178
+ #--------------------------------------------------------------------------
179
+ def create_new_particle(sprite)
180
+ sprite.x = rand(Graphics.width + 100) - 100 + @ox
181
+ sprite.y = rand(Graphics.height + 200) - 200 + @oy
182
+ sprite.opacity = 160 + rand(96)
183
+ end
184
+ end