rgss3_default_scripts 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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