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,231 @@
|
|
1
|
+
#==============================================================================
|
2
|
+
# ** Sprite_Battler
|
3
|
+
#------------------------------------------------------------------------------
|
4
|
+
# This sprite is used to display battlers. It observes an instance of the
|
5
|
+
# Game_Battler class and automatically changes sprite states.
|
6
|
+
#==============================================================================
|
7
|
+
|
8
|
+
class Sprite_Battler < Sprite_Base
|
9
|
+
#--------------------------------------------------------------------------
|
10
|
+
# * Public Instance Variables
|
11
|
+
#--------------------------------------------------------------------------
|
12
|
+
attr_accessor :battler
|
13
|
+
#--------------------------------------------------------------------------
|
14
|
+
# * Object Initialization
|
15
|
+
#--------------------------------------------------------------------------
|
16
|
+
def initialize(viewport, battler = nil)
|
17
|
+
super(viewport)
|
18
|
+
@battler = battler
|
19
|
+
@battler_visible = false
|
20
|
+
@effect_type = nil
|
21
|
+
@effect_duration = 0
|
22
|
+
end
|
23
|
+
#--------------------------------------------------------------------------
|
24
|
+
# * Free
|
25
|
+
#--------------------------------------------------------------------------
|
26
|
+
def dispose
|
27
|
+
bitmap.dispose if bitmap
|
28
|
+
super
|
29
|
+
end
|
30
|
+
#--------------------------------------------------------------------------
|
31
|
+
# * Frame Update
|
32
|
+
#--------------------------------------------------------------------------
|
33
|
+
def update
|
34
|
+
super
|
35
|
+
if @battler
|
36
|
+
@use_sprite = @battler.use_sprite?
|
37
|
+
if @use_sprite
|
38
|
+
update_bitmap
|
39
|
+
update_origin
|
40
|
+
update_position
|
41
|
+
end
|
42
|
+
setup_new_effect
|
43
|
+
setup_new_animation
|
44
|
+
update_effect
|
45
|
+
else
|
46
|
+
self.bitmap = nil
|
47
|
+
@effect_type = nil
|
48
|
+
end
|
49
|
+
end
|
50
|
+
#--------------------------------------------------------------------------
|
51
|
+
# * Update Transfer Origin Bitmap
|
52
|
+
#--------------------------------------------------------------------------
|
53
|
+
def update_bitmap
|
54
|
+
new_bitmap = Cache.battler(@battler.battler_name, @battler.battler_hue)
|
55
|
+
if bitmap != new_bitmap
|
56
|
+
self.bitmap = new_bitmap
|
57
|
+
init_visibility
|
58
|
+
end
|
59
|
+
end
|
60
|
+
#--------------------------------------------------------------------------
|
61
|
+
# * Initialize Visibility
|
62
|
+
#--------------------------------------------------------------------------
|
63
|
+
def init_visibility
|
64
|
+
@battler_visible = @battler.alive?
|
65
|
+
self.opacity = 0 unless @battler_visible
|
66
|
+
end
|
67
|
+
#--------------------------------------------------------------------------
|
68
|
+
# * Update Origin
|
69
|
+
#--------------------------------------------------------------------------
|
70
|
+
def update_origin
|
71
|
+
if bitmap
|
72
|
+
self.ox = bitmap.width / 2
|
73
|
+
self.oy = bitmap.height
|
74
|
+
end
|
75
|
+
end
|
76
|
+
#--------------------------------------------------------------------------
|
77
|
+
# * Update Position
|
78
|
+
#--------------------------------------------------------------------------
|
79
|
+
def update_position
|
80
|
+
self.x = @battler.screen_x
|
81
|
+
self.y = @battler.screen_y
|
82
|
+
self.z = @battler.screen_z
|
83
|
+
end
|
84
|
+
#--------------------------------------------------------------------------
|
85
|
+
# * Set New Effect
|
86
|
+
#--------------------------------------------------------------------------
|
87
|
+
def setup_new_effect
|
88
|
+
if !@battler_visible && @battler.alive?
|
89
|
+
start_effect(:appear)
|
90
|
+
elsif @battler_visible && @battler.hidden?
|
91
|
+
start_effect(:disappear)
|
92
|
+
end
|
93
|
+
if @battler_visible && @battler.sprite_effect_type
|
94
|
+
start_effect(@battler.sprite_effect_type)
|
95
|
+
@battler.sprite_effect_type = nil
|
96
|
+
end
|
97
|
+
end
|
98
|
+
#--------------------------------------------------------------------------
|
99
|
+
# * Start Effect
|
100
|
+
#--------------------------------------------------------------------------
|
101
|
+
def start_effect(effect_type)
|
102
|
+
@effect_type = effect_type
|
103
|
+
case @effect_type
|
104
|
+
when :appear
|
105
|
+
@effect_duration = 16
|
106
|
+
@battler_visible = true
|
107
|
+
when :disappear
|
108
|
+
@effect_duration = 32
|
109
|
+
@battler_visible = false
|
110
|
+
when :whiten
|
111
|
+
@effect_duration = 16
|
112
|
+
@battler_visible = true
|
113
|
+
when :blink
|
114
|
+
@effect_duration = 20
|
115
|
+
@battler_visible = true
|
116
|
+
when :collapse
|
117
|
+
@effect_duration = 48
|
118
|
+
@battler_visible = false
|
119
|
+
when :boss_collapse
|
120
|
+
@effect_duration = bitmap.height
|
121
|
+
@battler_visible = false
|
122
|
+
when :instant_collapse
|
123
|
+
@effect_duration = 16
|
124
|
+
@battler_visible = false
|
125
|
+
end
|
126
|
+
revert_to_normal
|
127
|
+
end
|
128
|
+
#--------------------------------------------------------------------------
|
129
|
+
# * Revert to Normal Settings
|
130
|
+
#--------------------------------------------------------------------------
|
131
|
+
def revert_to_normal
|
132
|
+
self.blend_type = 0
|
133
|
+
self.color.set(0, 0, 0, 0)
|
134
|
+
self.opacity = 255
|
135
|
+
self.ox = bitmap.width / 2 if bitmap
|
136
|
+
self.src_rect.y = 0
|
137
|
+
end
|
138
|
+
#--------------------------------------------------------------------------
|
139
|
+
# * Set New Animation
|
140
|
+
#--------------------------------------------------------------------------
|
141
|
+
def setup_new_animation
|
142
|
+
if @battler.animation_id > 0
|
143
|
+
animation = $data_animations[@battler.animation_id]
|
144
|
+
mirror = @battler.animation_mirror
|
145
|
+
start_animation(animation, mirror)
|
146
|
+
@battler.animation_id = 0
|
147
|
+
end
|
148
|
+
end
|
149
|
+
#--------------------------------------------------------------------------
|
150
|
+
# * Determine if Effect Is Executing
|
151
|
+
#--------------------------------------------------------------------------
|
152
|
+
def effect?
|
153
|
+
@effect_type != nil
|
154
|
+
end
|
155
|
+
#--------------------------------------------------------------------------
|
156
|
+
# * Update Effect
|
157
|
+
#--------------------------------------------------------------------------
|
158
|
+
def update_effect
|
159
|
+
if @effect_duration > 0
|
160
|
+
@effect_duration -= 1
|
161
|
+
case @effect_type
|
162
|
+
when :whiten
|
163
|
+
update_whiten
|
164
|
+
when :blink
|
165
|
+
update_blink
|
166
|
+
when :appear
|
167
|
+
update_appear
|
168
|
+
when :disappear
|
169
|
+
update_disappear
|
170
|
+
when :collapse
|
171
|
+
update_collapse
|
172
|
+
when :boss_collapse
|
173
|
+
update_boss_collapse
|
174
|
+
when :instant_collapse
|
175
|
+
update_instant_collapse
|
176
|
+
end
|
177
|
+
@effect_type = nil if @effect_duration == 0
|
178
|
+
end
|
179
|
+
end
|
180
|
+
#--------------------------------------------------------------------------
|
181
|
+
# * Update White Flash Effect
|
182
|
+
#--------------------------------------------------------------------------
|
183
|
+
def update_whiten
|
184
|
+
self.color.set(255, 255, 255, 0)
|
185
|
+
self.color.alpha = 128 - (16 - @effect_duration) * 10
|
186
|
+
end
|
187
|
+
#--------------------------------------------------------------------------
|
188
|
+
# * Update Blink Effect
|
189
|
+
#--------------------------------------------------------------------------
|
190
|
+
def update_blink
|
191
|
+
self.opacity = (@effect_duration % 10 < 5) ? 255 : 0
|
192
|
+
end
|
193
|
+
#--------------------------------------------------------------------------
|
194
|
+
# * Update Appearance Effect
|
195
|
+
#--------------------------------------------------------------------------
|
196
|
+
def update_appear
|
197
|
+
self.opacity = (16 - @effect_duration) * 16
|
198
|
+
end
|
199
|
+
#--------------------------------------------------------------------------
|
200
|
+
# * Updated Disappear Effect
|
201
|
+
#--------------------------------------------------------------------------
|
202
|
+
def update_disappear
|
203
|
+
self.opacity = 256 - (32 - @effect_duration) * 10
|
204
|
+
end
|
205
|
+
#--------------------------------------------------------------------------
|
206
|
+
# * Update Collapse Effect
|
207
|
+
#--------------------------------------------------------------------------
|
208
|
+
def update_collapse
|
209
|
+
self.blend_type = 1
|
210
|
+
self.color.set(255, 128, 128, 128)
|
211
|
+
self.opacity = 256 - (48 - @effect_duration) * 6
|
212
|
+
end
|
213
|
+
#--------------------------------------------------------------------------
|
214
|
+
# * Update Boss Collapse Effect
|
215
|
+
#--------------------------------------------------------------------------
|
216
|
+
def update_boss_collapse
|
217
|
+
alpha = @effect_duration * 120 / bitmap.height
|
218
|
+
self.ox = bitmap.width / 2 + @effect_duration % 2 * 4 - 2
|
219
|
+
self.blend_type = 1
|
220
|
+
self.color.set(255, 255, 255, 255 - alpha)
|
221
|
+
self.opacity = alpha
|
222
|
+
self.src_rect.y -= 1
|
223
|
+
Sound.play_boss_collapse2 if @effect_duration % 20 == 19
|
224
|
+
end
|
225
|
+
#--------------------------------------------------------------------------
|
226
|
+
# * Update Instant Collapse Effect
|
227
|
+
#--------------------------------------------------------------------------
|
228
|
+
def update_instant_collapse
|
229
|
+
self.opacity = 0
|
230
|
+
end
|
231
|
+
end
|
@@ -0,0 +1,226 @@
|
|
1
|
+
#==============================================================================
|
2
|
+
# ** Sprite_Character
|
3
|
+
#------------------------------------------------------------------------------
|
4
|
+
# This sprite is used to display characters. It observes an instance of the
|
5
|
+
# Game_Character class and automatically changes sprite state.
|
6
|
+
#==============================================================================
|
7
|
+
|
8
|
+
class Sprite_Character < Sprite_Base
|
9
|
+
#--------------------------------------------------------------------------
|
10
|
+
# * Public Instance Variables
|
11
|
+
#--------------------------------------------------------------------------
|
12
|
+
attr_accessor :character
|
13
|
+
#--------------------------------------------------------------------------
|
14
|
+
# * Object Initialization
|
15
|
+
# character : Game_Character
|
16
|
+
#--------------------------------------------------------------------------
|
17
|
+
def initialize(viewport, character = nil)
|
18
|
+
super(viewport)
|
19
|
+
@character = character
|
20
|
+
@balloon_duration = 0
|
21
|
+
update
|
22
|
+
end
|
23
|
+
#--------------------------------------------------------------------------
|
24
|
+
# * Free
|
25
|
+
#--------------------------------------------------------------------------
|
26
|
+
def dispose
|
27
|
+
end_animation
|
28
|
+
end_balloon
|
29
|
+
super
|
30
|
+
end
|
31
|
+
#--------------------------------------------------------------------------
|
32
|
+
# * Frame Update
|
33
|
+
#--------------------------------------------------------------------------
|
34
|
+
def update
|
35
|
+
super
|
36
|
+
update_bitmap
|
37
|
+
update_src_rect
|
38
|
+
update_position
|
39
|
+
update_other
|
40
|
+
update_balloon
|
41
|
+
setup_new_effect
|
42
|
+
end
|
43
|
+
#--------------------------------------------------------------------------
|
44
|
+
# * Get Tileset Image That Includes the Designated Tile
|
45
|
+
#--------------------------------------------------------------------------
|
46
|
+
def tileset_bitmap(tile_id)
|
47
|
+
Cache.tileset($game_map.tileset.tileset_names[5 + tile_id / 256])
|
48
|
+
end
|
49
|
+
#--------------------------------------------------------------------------
|
50
|
+
# * Update Transfer Origin Bitmap
|
51
|
+
#--------------------------------------------------------------------------
|
52
|
+
def update_bitmap
|
53
|
+
if graphic_changed?
|
54
|
+
@tile_id = @character.tile_id
|
55
|
+
@character_name = @character.character_name
|
56
|
+
@character_index = @character.character_index
|
57
|
+
if @tile_id > 0
|
58
|
+
set_tile_bitmap
|
59
|
+
else
|
60
|
+
set_character_bitmap
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
#--------------------------------------------------------------------------
|
65
|
+
# * Determine if Graphic Changed
|
66
|
+
#--------------------------------------------------------------------------
|
67
|
+
def graphic_changed?
|
68
|
+
@tile_id != @character.tile_id ||
|
69
|
+
@character_name != @character.character_name ||
|
70
|
+
@character_index != @character.character_index
|
71
|
+
end
|
72
|
+
#--------------------------------------------------------------------------
|
73
|
+
# * Set Tile Bitmap
|
74
|
+
#--------------------------------------------------------------------------
|
75
|
+
def set_tile_bitmap
|
76
|
+
sx = (@tile_id / 128 % 2 * 8 + @tile_id % 8) * 32;
|
77
|
+
sy = @tile_id % 256 / 8 % 16 * 32;
|
78
|
+
self.bitmap = tileset_bitmap(@tile_id)
|
79
|
+
self.src_rect.set(sx, sy, 32, 32)
|
80
|
+
self.ox = 16
|
81
|
+
self.oy = 32
|
82
|
+
end
|
83
|
+
#--------------------------------------------------------------------------
|
84
|
+
# * Set Character Bitmap
|
85
|
+
#--------------------------------------------------------------------------
|
86
|
+
def set_character_bitmap
|
87
|
+
self.bitmap = Cache.character(@character_name)
|
88
|
+
sign = @character_name[/^[\!\$]./]
|
89
|
+
if sign && sign.include?('$')
|
90
|
+
@cw = bitmap.width / 3
|
91
|
+
@ch = bitmap.height / 4
|
92
|
+
else
|
93
|
+
@cw = bitmap.width / 12
|
94
|
+
@ch = bitmap.height / 8
|
95
|
+
end
|
96
|
+
self.ox = @cw / 2
|
97
|
+
self.oy = @ch
|
98
|
+
end
|
99
|
+
#--------------------------------------------------------------------------
|
100
|
+
# * Update Transfer Origin Rectangle
|
101
|
+
#--------------------------------------------------------------------------
|
102
|
+
def update_src_rect
|
103
|
+
if @tile_id == 0
|
104
|
+
index = @character.character_index
|
105
|
+
pattern = @character.pattern < 3 ? @character.pattern : 1
|
106
|
+
sx = (index % 4 * 3 + pattern) * @cw
|
107
|
+
sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch
|
108
|
+
self.src_rect.set(sx, sy, @cw, @ch)
|
109
|
+
end
|
110
|
+
end
|
111
|
+
#--------------------------------------------------------------------------
|
112
|
+
# * Update Position
|
113
|
+
#--------------------------------------------------------------------------
|
114
|
+
def update_position
|
115
|
+
move_animation(@character.screen_x - x, @character.screen_y - y)
|
116
|
+
self.x = @character.screen_x
|
117
|
+
self.y = @character.screen_y
|
118
|
+
self.z = @character.screen_z
|
119
|
+
end
|
120
|
+
#--------------------------------------------------------------------------
|
121
|
+
# * Update Other
|
122
|
+
#--------------------------------------------------------------------------
|
123
|
+
def update_other
|
124
|
+
self.opacity = @character.opacity
|
125
|
+
self.blend_type = @character.blend_type
|
126
|
+
self.bush_depth = @character.bush_depth
|
127
|
+
self.visible = !@character.transparent
|
128
|
+
end
|
129
|
+
#--------------------------------------------------------------------------
|
130
|
+
# * Set New Effect
|
131
|
+
#--------------------------------------------------------------------------
|
132
|
+
def setup_new_effect
|
133
|
+
if !animation? && @character.animation_id > 0
|
134
|
+
animation = $data_animations[@character.animation_id]
|
135
|
+
start_animation(animation)
|
136
|
+
end
|
137
|
+
if !@balloon_sprite && @character.balloon_id > 0
|
138
|
+
@balloon_id = @character.balloon_id
|
139
|
+
start_balloon
|
140
|
+
end
|
141
|
+
end
|
142
|
+
#--------------------------------------------------------------------------
|
143
|
+
# * Move Animation
|
144
|
+
#--------------------------------------------------------------------------
|
145
|
+
def move_animation(dx, dy)
|
146
|
+
if @animation && @animation.position != 3
|
147
|
+
@ani_ox += dx
|
148
|
+
@ani_oy += dy
|
149
|
+
@ani_sprites.each do |sprite|
|
150
|
+
sprite.x += dx
|
151
|
+
sprite.y += dy
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
155
|
+
#--------------------------------------------------------------------------
|
156
|
+
# * End Animation
|
157
|
+
#--------------------------------------------------------------------------
|
158
|
+
def end_animation
|
159
|
+
super
|
160
|
+
@character.animation_id = 0
|
161
|
+
end
|
162
|
+
#--------------------------------------------------------------------------
|
163
|
+
# * Start Balloon Icon Display
|
164
|
+
#--------------------------------------------------------------------------
|
165
|
+
def start_balloon
|
166
|
+
dispose_balloon
|
167
|
+
@balloon_duration = 8 * balloon_speed + balloon_wait
|
168
|
+
@balloon_sprite = ::Sprite.new(viewport)
|
169
|
+
@balloon_sprite.bitmap = Cache.system("Balloon")
|
170
|
+
@balloon_sprite.ox = 16
|
171
|
+
@balloon_sprite.oy = 32
|
172
|
+
update_balloon
|
173
|
+
end
|
174
|
+
#--------------------------------------------------------------------------
|
175
|
+
# * Free Balloon Icon
|
176
|
+
#--------------------------------------------------------------------------
|
177
|
+
def dispose_balloon
|
178
|
+
if @balloon_sprite
|
179
|
+
@balloon_sprite.dispose
|
180
|
+
@balloon_sprite = nil
|
181
|
+
end
|
182
|
+
end
|
183
|
+
#--------------------------------------------------------------------------
|
184
|
+
# * Update Balloon Icon
|
185
|
+
#--------------------------------------------------------------------------
|
186
|
+
def update_balloon
|
187
|
+
if @balloon_duration > 0
|
188
|
+
@balloon_duration -= 1
|
189
|
+
if @balloon_duration > 0
|
190
|
+
@balloon_sprite.x = x
|
191
|
+
@balloon_sprite.y = y - height
|
192
|
+
@balloon_sprite.z = z + 200
|
193
|
+
sx = balloon_frame_index * 32
|
194
|
+
sy = (@balloon_id - 1) * 32
|
195
|
+
@balloon_sprite.src_rect.set(sx, sy, 32, 32)
|
196
|
+
else
|
197
|
+
end_balloon
|
198
|
+
end
|
199
|
+
end
|
200
|
+
end
|
201
|
+
#--------------------------------------------------------------------------
|
202
|
+
# * End Balloon Icon
|
203
|
+
#--------------------------------------------------------------------------
|
204
|
+
def end_balloon
|
205
|
+
dispose_balloon
|
206
|
+
@character.balloon_id = 0
|
207
|
+
end
|
208
|
+
#--------------------------------------------------------------------------
|
209
|
+
# * Balloon Icon Display Speed
|
210
|
+
#--------------------------------------------------------------------------
|
211
|
+
def balloon_speed
|
212
|
+
return 8
|
213
|
+
end
|
214
|
+
#--------------------------------------------------------------------------
|
215
|
+
# * Wait Time for Last Frame of Balloon
|
216
|
+
#--------------------------------------------------------------------------
|
217
|
+
def balloon_wait
|
218
|
+
return 12
|
219
|
+
end
|
220
|
+
#--------------------------------------------------------------------------
|
221
|
+
# * Frame Number of Balloon Icon
|
222
|
+
#--------------------------------------------------------------------------
|
223
|
+
def balloon_frame_index
|
224
|
+
return 7 - [(@balloon_duration - balloon_wait) / balloon_speed, 0].max
|
225
|
+
end
|
226
|
+
end
|