rgss3_default_scripts 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/Gemfile +4 -0
- data/README.md +9 -0
- data/Rakefile +2 -0
- data/lib/rgss3_default_scripts.rb +109 -0
- data/lib/rgss3_default_scripts/BattleManager.rb +392 -0
- data/lib/rgss3_default_scripts/Cache.rb +134 -0
- data/lib/rgss3_default_scripts/DataManager.rb +267 -0
- data/lib/rgss3_default_scripts/Game_Action.rb +262 -0
- data/lib/rgss3_default_scripts/Game_ActionResult.rb +159 -0
- data/lib/rgss3_default_scripts/Game_Actor.rb +696 -0
- data/lib/rgss3_default_scripts/Game_Actors.rb +22 -0
- data/lib/rgss3_default_scripts/Game_BaseItem.rb +51 -0
- data/lib/rgss3_default_scripts/Game_Battler.rb +824 -0
- data/lib/rgss3_default_scripts/Game_BattlerBase.rb +731 -0
- data/lib/rgss3_default_scripts/Game_Character.rb +396 -0
- data/lib/rgss3_default_scripts/Game_CharacterBase.rb +443 -0
- data/lib/rgss3_default_scripts/Game_CommonEvent.rb +41 -0
- data/lib/rgss3_default_scripts/Game_Enemy.rb +264 -0
- data/lib/rgss3_default_scripts/Game_Event.rb +308 -0
- data/lib/rgss3_default_scripts/Game_Follower.rb +74 -0
- data/lib/rgss3_default_scripts/Game_Followers.rb +112 -0
- data/lib/rgss3_default_scripts/Game_Interpreter.rb +1413 -0
- data/lib/rgss3_default_scripts/Game_Map.rb +704 -0
- data/lib/rgss3_default_scripts/Game_Message.rb +101 -0
- data/lib/rgss3_default_scripts/Game_Party.rb +418 -0
- data/lib/rgss3_default_scripts/Game_Picture.rb +161 -0
- data/lib/rgss3_default_scripts/Game_Pictures.rb +28 -0
- data/lib/rgss3_default_scripts/Game_Player.rb +488 -0
- data/lib/rgss3_default_scripts/Game_Screen.rb +234 -0
- data/lib/rgss3_default_scripts/Game_SelfSwitches.rb +35 -0
- data/lib/rgss3_default_scripts/Game_Switches.rb +35 -0
- data/lib/rgss3_default_scripts/Game_System.rb +122 -0
- data/lib/rgss3_default_scripts/Game_Temp.rb +45 -0
- data/lib/rgss3_default_scripts/Game_Timer.rb +56 -0
- data/lib/rgss3_default_scripts/Game_Troop.rb +205 -0
- data/lib/rgss3_default_scripts/Game_Unit.rb +131 -0
- data/lib/rgss3_default_scripts/Game_Variables.rb +34 -0
- data/lib/rgss3_default_scripts/Game_Vehicle.rb +193 -0
- data/lib/rgss3_default_scripts/SceneManager.rb +94 -0
- data/lib/rgss3_default_scripts/Scene_Base.rb +132 -0
- data/lib/rgss3_default_scripts/Scene_Battle.rb +693 -0
- data/lib/rgss3_default_scripts/Scene_Debug.rb +87 -0
- data/lib/rgss3_default_scripts/Scene_End.rb +61 -0
- data/lib/rgss3_default_scripts/Scene_Equip.rb +144 -0
- data/lib/rgss3_default_scripts/Scene_File.rb +203 -0
- data/lib/rgss3_default_scripts/Scene_Gameover.rb +85 -0
- data/lib/rgss3_default_scripts/Scene_Item.rb +75 -0
- data/lib/rgss3_default_scripts/Scene_ItemBase.rb +147 -0
- data/lib/rgss3_default_scripts/Scene_Load.rb +40 -0
- data/lib/rgss3_default_scripts/Scene_Map.rb +276 -0
- data/lib/rgss3_default_scripts/Scene_Menu.rb +127 -0
- data/lib/rgss3_default_scripts/Scene_MenuBase.rb +63 -0
- data/lib/rgss3_default_scripts/Scene_Name.rb +32 -0
- data/lib/rgss3_default_scripts/Scene_Save.rb +38 -0
- data/lib/rgss3_default_scripts/Scene_Shop.rb +299 -0
- data/lib/rgss3_default_scripts/Scene_Skill.rb +108 -0
- data/lib/rgss3_default_scripts/Scene_Status.rb +25 -0
- data/lib/rgss3_default_scripts/Scene_Title.rb +137 -0
- data/lib/rgss3_default_scripts/Sound.rb +135 -0
- data/lib/rgss3_default_scripts/Sprite_Base.rb +232 -0
- data/lib/rgss3_default_scripts/Sprite_Battler.rb +231 -0
- data/lib/rgss3_default_scripts/Sprite_Character.rb +226 -0
- data/lib/rgss3_default_scripts/Sprite_Picture.rb +82 -0
- data/lib/rgss3_default_scripts/Sprite_Timer.rb +77 -0
- data/lib/rgss3_default_scripts/Spriteset_Battle.rb +389 -0
- data/lib/rgss3_default_scripts/Spriteset_Map.rb +273 -0
- data/lib/rgss3_default_scripts/Spriteset_Weather.rb +184 -0
- data/lib/rgss3_default_scripts/Vocab.rb +145 -0
- data/lib/rgss3_default_scripts/Window_ActorCommand.rb +78 -0
- data/lib/rgss3_default_scripts/Window_Base.rb +571 -0
- data/lib/rgss3_default_scripts/Window_BattleActor.rb +38 -0
- data/lib/rgss3_default_scripts/Window_BattleEnemy.rb +70 -0
- data/lib/rgss3_default_scripts/Window_BattleItem.rb +40 -0
- data/lib/rgss3_default_scripts/Window_BattleLog.rb +425 -0
- data/lib/rgss3_default_scripts/Window_BattleSkill.rb +34 -0
- data/lib/rgss3_default_scripts/Window_BattleStatus.rb +111 -0
- data/lib/rgss3_default_scripts/Window_ChoiceList.rb +88 -0
- data/lib/rgss3_default_scripts/Window_Command.rb +152 -0
- data/lib/rgss3_default_scripts/Window_DebugLeft.rb +104 -0
- data/lib/rgss3_default_scripts/Window_DebugRight.rb +119 -0
- data/lib/rgss3_default_scripts/Window_EquipCommand.rb +36 -0
- data/lib/rgss3_default_scripts/Window_EquipItem.rb +78 -0
- data/lib/rgss3_default_scripts/Window_EquipSlot.rb +111 -0
- data/lib/rgss3_default_scripts/Window_EquipStatus.rb +97 -0
- data/lib/rgss3_default_scripts/Window_GameEnd.rb +38 -0
- data/lib/rgss3_default_scripts/Window_Gold.rb +47 -0
- data/lib/rgss3_default_scripts/Window_Help.rb +43 -0
- data/lib/rgss3_default_scripts/Window_HorzCommand.rb +106 -0
- data/lib/rgss3_default_scripts/Window_ItemCategory.rb +54 -0
- data/lib/rgss3_default_scripts/Window_ItemList.rb +117 -0
- data/lib/rgss3_default_scripts/Window_KeyItem.rb +55 -0
- data/lib/rgss3_default_scripts/Window_MapName.rb +96 -0
- data/lib/rgss3_default_scripts/Window_MenuActor.rb +43 -0
- data/lib/rgss3_default_scripts/Window_MenuCommand.rb +106 -0
- data/lib/rgss3_default_scripts/Window_MenuStatus.rb +85 -0
- data/lib/rgss3_default_scripts/Window_Message.rb +397 -0
- data/lib/rgss3_default_scripts/Window_NameEdit.rb +129 -0
- data/lib/rgss3_default_scripts/Window_NameInput.rb +253 -0
- data/lib/rgss3_default_scripts/Window_NumberInput.rb +148 -0
- data/lib/rgss3_default_scripts/Window_PartyCommand.rb +47 -0
- data/lib/rgss3_default_scripts/Window_SaveFile.rb +69 -0
- data/lib/rgss3_default_scripts/Window_ScrollText.rb +90 -0
- data/lib/rgss3_default_scripts/Window_Selectable.rb +442 -0
- data/lib/rgss3_default_scripts/Window_ShopBuy.rb +115 -0
- data/lib/rgss3_default_scripts/Window_ShopCommand.rb +36 -0
- data/lib/rgss3_default_scripts/Window_ShopNumber.rb +137 -0
- data/lib/rgss3_default_scripts/Window_ShopSell.rb +27 -0
- data/lib/rgss3_default_scripts/Window_ShopStatus.rb +124 -0
- data/lib/rgss3_default_scripts/Window_SkillCommand.rb +76 -0
- data/lib/rgss3_default_scripts/Window_SkillList.rb +121 -0
- data/lib/rgss3_default_scripts/Window_SkillStatus.rb +38 -0
- data/lib/rgss3_default_scripts/Window_Status.rb +125 -0
- data/lib/rgss3_default_scripts/Window_TitleCommand.rb +45 -0
- data/rgss3_default_scripts.gemspec +23 -0
- 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
|