Mithran

Skyborn Spriteset_Battle

Feb 9th, 2012
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.03 KB | None | 0 0
  1. module BattleBack
  2.  
  3. MAP_FADE_TIME = 60
  4.  
  5. # setup section
  6. def self.get_battleback_filename(map_id)
  7. case map_id
  8. when 68, 69, 70, 71, 29, 200 # you can use a range of ids, commas, or any combination thereof
  9. return "lavaback" # filename to use
  10.  
  11. # add as many whens as you want
  12. when 0
  13. return "" # battletest
  14. else
  15. nil
  16. end
  17.  
  18. end
  19. end
  20.  
  21. class Spriteset_Battle
  22. #--------------------------------------------------------------------------
  23. # * Object Initialization
  24. #--------------------------------------------------------------------------
  25. def initialize
  26. create_viewports
  27. create_battleback
  28. # sleep 1 / BattleBack::MAP_FADE_TIME / 2
  29. create_battlefloor
  30. create_enemies
  31. create_actors
  32. create_pictures
  33. create_timer
  34. update
  35. do_fade
  36. end
  37. #--------------------------------------------------------------------------
  38. # * Create Viewport
  39. #--------------------------------------------------------------------------
  40. def create_viewports
  41. @viewport1 = Viewport.new(0, 0, 640, 480)
  42. @viewport2 = Viewport.new(0, 0, 640, 480)
  43. @viewport3 = Viewport.new(0, 0, 640, 480)
  44. @viewport2.z = 50
  45. @viewport3.z = 100
  46. end
  47. #--------------------------------------------------------------------------
  48. # * Create Battleback Sprite
  49. #--------------------------------------------------------------------------
  50. def create_battleback
  51. if $game_map && $game_map.map_id > 0
  52. create_battleback_graphic
  53. else
  54. create_battleback_map
  55. end
  56. end
  57.  
  58. def do_fade
  59. #Thread.new {
  60. tone = @battleback_sprite.tone
  61. tone_target = Tone.new(-80, -80, -80, 0)
  62. duration = BattleBack::MAP_FADE_TIME
  63. orig_dur = duration
  64. loop {
  65. if duration > 0
  66. d = duration
  67. tone.red = (tone.red * (d - 1) + tone_target.red) / d
  68. tone.green = (tone.green * (d - 1) + tone_target.green) / d
  69. tone.blue = (tone.blue * (d - 1) + tone_target.blue) / d
  70. tone.gray = (tone.gray * (d - 1) + tone_target.gray) / d
  71. duration -= 1
  72. @battleback_sprite.tone = tone
  73. Graphics.update
  74. else
  75. break
  76. end
  77. } #}
  78. end
  79.  
  80. def create_battleback_map
  81. source = $game_temp.background_bitmap
  82. bitmap = Bitmap.new(640, 480)
  83. bitmap.stretch_blt(bitmap.rect, source, source.rect)
  84. @battleback_sprite = Sprite.new(@viewport1)
  85. @battleback_sprite.bitmap = bitmap
  86. end
  87.  
  88. def create_battleback_graphic
  89. begin
  90. bitmap = Cache.system(BattleBack.get_battleback_filename($game_map.map_id))
  91. @battleback_sprite = Sprite.new(@viewport1)
  92. @battleback_sprite.bitmap = bitmap
  93. # @battleback_sprite.ox = (bitmap.width - Graphics.width).abs / 2
  94. rescue
  95. create_battleback_map
  96. end
  97. end
  98. #--------------------------------------------------------------------------
  99. # * Create Battlefloor Sprite
  100. #--------------------------------------------------------------------------
  101. def create_battlefloor
  102. @battlefloor_sprite = Sprite.new(@viewport1)
  103. end
  104. #--------------------------------------------------------------------------
  105. # * Create Enemy Sprite
  106. #--------------------------------------------------------------------------
  107. def create_enemies
  108. @enemy_sprites = []
  109. for enemy in $game_troop.members
  110. @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
  111. end
  112. end
  113. #--------------------------------------------------------------------------
  114. # * Create Actor Sprite
  115. # By default, the actor image is not displayed, but a dummy sprite is
  116. # created for treating enemies and allies the same, if required.
  117. #--------------------------------------------------------------------------
  118. def create_actors
  119. @actor_sprites = []
  120. Game_Party::MAX_MEMBERS.times { |i|
  121. @actor_sprites.push(Sprite_Battler.new(@viewport1))
  122. @actor_sprites[i].battler = $game_party.members[i]
  123. }
  124. end
  125.  
  126. #--------------------------------------------------------------------------
  127. # * Dispose
  128. #--------------------------------------------------------------------------
  129. def dispose
  130. #~ dispose_battleback_bitmap
  131. #~ dispose_battleback
  132. dispose_battlefloor
  133. dispose_enemies
  134. dispose_actors
  135. dispose_pictures
  136. dispose_timer
  137. end_fade
  138. dispose_battleback_bitmap
  139. dispose_battleback
  140. dispose_viewports
  141. end
  142. #--------------------------------------------------------------------------
  143. # * Dispose of Battleback Bitmap
  144. #--------------------------------------------------------------------------
  145. def dispose_battleback_bitmap
  146. @battleback_sprite.bitmap.dispose
  147. end
  148. #--------------------------------------------------------------------------
  149. # * Dispose of Battleback Sprite
  150. #--------------------------------------------------------------------------
  151. def dispose_battleback
  152. @battleback_sprite.dispose
  153. end
  154. #--------------------------------------------------------------------------
  155. # * Dispose of Battlefloor Sprite
  156. #--------------------------------------------------------------------------
  157. def dispose_battlefloor
  158. @battlefloor_sprite.dispose
  159. end
  160. #--------------------------------------------------------------------------
  161. # * Dispose of Enemy Sprite
  162. #--------------------------------------------------------------------------
  163. def dispose_enemies
  164. for sprite in @enemy_sprites
  165. sprite.dispose
  166. end
  167. end
  168. #--------------------------------------------------------------------------
  169. # * Dispose of Actor Sprite
  170. #--------------------------------------------------------------------------
  171. def dispose_actors
  172. for sprite in @actor_sprites
  173. sprite.dispose
  174. end
  175. end
  176. #--------------------------------------------------------------------------
  177. # * Dispose of Picture Sprite
  178. #--------------------------------------------------------------------------
  179. def dispose_pictures
  180. for sprite in @picture_sprites
  181. sprite.dispose
  182. end
  183. end
  184. #--------------------------------------------------------------------------
  185. # * Dispose of Timer Sprite
  186. #--------------------------------------------------------------------------
  187. def dispose_timer
  188. @timer_sprite.dispose
  189. end
  190. #--------------------------------------------------------------------------
  191. # * Dispose of Viewport
  192. #--------------------------------------------------------------------------
  193. def dispose_viewports
  194. @viewport1.dispose
  195. @viewport2.dispose
  196. @viewport3.dispose
  197. end
  198. #--------------------------------------------------------------------------
  199. # * Frame Update
  200. #--------------------------------------------------------------------------
  201. def update
  202. update_battleback
  203. update_battlefloor
  204. update_enemies
  205. update_actors
  206. update_pictures
  207. update_timer
  208. update_viewports
  209. end
  210. #--------------------------------------------------------------------------
  211. # * Update Battleback
  212. #--------------------------------------------------------------------------
  213. def update_battleback
  214. @battleback_sprite.update
  215. end
  216. #--------------------------------------------------------------------------
  217. # * Update Battlefloor
  218. #--------------------------------------------------------------------------
  219. def update_battlefloor
  220. @battlefloor_sprite.update
  221. end
  222. #--------------------------------------------------------------------------
  223. # * Update Enemy Sprite
  224. #--------------------------------------------------------------------------
  225. def update_enemies
  226. for sprite in @enemy_sprites
  227. sprite.update
  228. end
  229. end
  230. #--------------------------------------------------------------------------
  231. # * Update Actor Sprite
  232. #--------------------------------------------------------------------------
  233. def update_actors
  234. @actor_sprites.each_with_index { |sprite, i|
  235. sprite.battler = $game_party.members[i]
  236. sprite.update
  237. }
  238. end
  239. #--------------------------------------------------------------------------
  240. # *Update Picture Sprite
  241. #--------------------------------------------------------------------------
  242. def update_pictures
  243. for sprite in @picture_sprites
  244. sprite.update
  245. end
  246. end
  247. #--------------------------------------------------------------------------
  248. # * Update Timer Sprite
  249. #--------------------------------------------------------------------------
  250. def update_timer
  251. @timer_sprite.update
  252. end
  253. #--------------------------------------------------------------------------
  254. # * Update Viewport
  255. #--------------------------------------------------------------------------
  256. def update_viewports
  257. @viewport1.tone = $game_troop.screen.tone
  258. @viewport1.ox = $game_troop.screen.shake
  259. @viewport2.color = $game_troop.screen.flash_color
  260. @viewport3.color.set(0, 0, 0, 255 - $game_troop.screen.brightness)
  261. @viewport1.update
  262. @viewport2.update
  263. @viewport3.update
  264. end
  265.  
  266. def end_fade
  267. tone = @battleback_sprite.tone
  268. tone_target = Tone.new(0, 0, 0, 0)
  269. @duration = BattleBack::MAP_FADE_TIME
  270. loop {
  271. if @duration > 0
  272. d = @duration
  273. tone.red = (tone.red * (d - 1) + tone_target.red) / d
  274. tone.green = (tone.green * (d - 1) + tone_target.green) / d
  275. tone.blue = (tone.blue * (d - 1) + tone_target.blue) / d
  276. tone.gray = (tone.gray * (d - 1) + tone_target.gray) / d
  277. @duration -= 1
  278. @battleback_sprite.tone = tone
  279. Graphics.update
  280. else
  281. break
  282. end
  283. }
  284. end
  285. #--------------------------------------------------------------------------
  286. # * Determine if animation is being displayed
  287. #--------------------------------------------------------------------------
  288. def animation?
  289. for sprite in @enemy_sprites + @actor_sprites
  290. return true if sprite.animation?
  291. end
  292. return false
  293. end
  294. end
  295.  
  296. class Sprite_Battler
  297.  
  298. def update_appear
  299. self.blend_type = 0
  300. self.color.set(0, 0, 0, 255 - (16 - @effect_duration) * 16)
  301. self.opacity = 255
  302. end
  303.  
  304. end
Advertisement
Add Comment
Please, Sign In to add comment