Advertisement
Guest User

Untitled

a guest
Jan 26th, 2020
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.75 KB | None | 0 0
  1. #===============================================================================
  2. # Styled to look like the HGSS games
  3. #===============================================================================
  4. class GenTwoStyle
  5. def safe?(path)
  6. ext = getTSExtension
  7. if FileTest.exist?(path+ext+".png")
  8. return path+ext
  9. else
  10. return path
  11. end
  12. end
  13.  
  14. def initialize
  15. # sound file for playing the title screen BGM
  16. bgm = GEN_TWO_BGM
  17. str = "Audio/BGM/"+pbResolveAudioFile(bgm).name
  18. @mp3 = (File.extname(str)==".ogg") ? true : false
  19. @skip = false
  20. # speed of the effect movement
  21. @speed = 3
  22. @frame = 0
  23. @opacity = 17
  24. @particles = 16
  25. @effo = 1
  26. @disposed = false
  27.  
  28. @currentFrame = 0
  29. # calculates after how many frames the game will reset
  30. @totalFrames=getPlayTime(str).to_i*Graphics.frame_rate - 40
  31. pbBGMPlay(bgm)
  32. pbWait(10) if @mp3
  33.  
  34. # creates all the necessary graphics
  35. @viewport = Viewport.new(0,0,Graphics.width,VIEWPORT_HEIGHT)
  36. @viewport.z = 99999
  37. @viewport.tone = Tone.new(-255,-255,-255)
  38. y = DS_STYLE ? VIEWPORT_OFFSET+VIEWPORT_HEIGHT : 0
  39. @viewport2 = Viewport.new(0,y,Graphics.width,VIEWPORT_HEIGHT)
  40. @viewport2.z = 99998
  41. @sprites = {}
  42. @viewport2.tone = Tone.new(-255,-255,-255) if DS_STYLE
  43.  
  44. @sprites["bg"] = Sprite.new(@viewport)
  45. @sprites["bg2"] = Sprite.new(@viewport2)
  46. if DS_STYLE
  47. @sprites["bg"].bitmap = pbBitmap("Graphics/Titles/gen_2_bg")
  48. @sprites["bg2"].bitmap = pbBitmap("Graphics/Titles/gen_2_bg2")
  49. else
  50. @sprites["bg2"].bitmap = pbBitmap("Graphics/Titles/gen_2_bg")
  51. end
  52.  
  53. @sprites["effect2"] = AnimatedPlane.new(@viewport2)
  54. @sprites["effect2"].bitmap = pbBitmap("Graphics/Titles/gen_2_effect2")
  55.  
  56. @sprites["effect"] = Sprite.new(@viewport)
  57. @sprites["effect"].bitmap = pbBitmap("Graphics/Titles/gen_2_effect")
  58. @sprites["effect"].ox = @sprites["effect"].bitmap.width/2
  59. @sprites["effect"].oy = @sprites["effect"].bitmap.height/2
  60. @sprites["effect"].x = @viewport.rect.width*0.75
  61. @sprites["effect"].y = @viewport.rect.height/2
  62. @sprites["effect3"] = Sprite.new(@viewport)
  63. @sprites["effect3"].bitmap = pbBitmap("Graphics/Titles/gen_2_effect3")
  64. @sprites["effect3"].ox = @sprites["effect3"].bitmap.width/2
  65. @sprites["effect3"].oy = @sprites["effect3"].bitmap.height/2
  66. @sprites["effect3"].x = @sprites["effect"].x
  67. @sprites["effect3"].y = @sprites["effect"].y
  68. @sprites["effect3"].opacity = 0
  69.  
  70. view = DS_STYLE ? @viewport2 : @viewport
  71. @sprites["particle"] = Sprite.new(view)
  72. @sprites["particle"].bitmap = pbBitmap("Graphics/Titles/gen_2_particle")
  73. @sprites["particle"].src_rect.set(0,0,@sprites["particle"].bitmap.width/2,@sprites["particle"].bitmap.height)
  74. @sprites["particle"].oy = @sprites["particle"].bitmap.height/2
  75. @sprites["particle"].x = view.rect.width/2
  76. @sprites["particle"].y = view.rect.height/2 + 20
  77. @sprites["particle"].y+=64 if !DS_STYLE
  78. @sprites["particle"].visible = false
  79.  
  80. @sprites["pokemon"] = Sprite.new(view)
  81. @sprites["pokemon"].bitmap = pbBitmap("Graphics/Titles/gen_2_pokemon")
  82. @sprites["pokemon"].src_rect.set(0,0,@sprites["pokemon"].bitmap.height,@sprites["pokemon"].bitmap.height)
  83. @sprites["pokemon"].ox = @sprites["pokemon"].src_rect.width/2
  84. @sprites["pokemon"].oy = @sprites["pokemon"].src_rect.height/2
  85. @sprites["pokemon"].x = view.rect.width/2
  86. @sprites["pokemon"].y = view.rect.height/2
  87. @sprites["pokemon"].y+=64 if !DS_STYLE
  88. @sprites["pokemon"].visible = false
  89.  
  90. @sprites["start"] = Sprite.new(@viewport)
  91. @sprites["start"].bitmap = pbBitmap("Graphics/Titles/pokestart")
  92. @sprites["start"].ox = @sprites["start"].bitmap.width/2
  93. @sprites["start"].x = @viewport2.rect.width/2
  94. @sprites["start"].y = @viewport2.rect.height-32
  95. @sprites["start"].z = 10
  96. @sprites["start"].opacity = 0
  97. @sprites["start"].visible = false
  98.  
  99. @sprites["logo"] = Sprite.new(@viewport)
  100. bitmap1=pbBitmap(safe?("Graphics/Titles/pokelogo"))
  101. bitmap2=pbBitmap(safe?("Graphics/Titles/pokelogo2"))
  102. @sprites["logo"].bitmap = Bitmap.new(bitmap1.width,bitmap1.height)
  103. @sprites["logo"].bitmap.blt(0,0,bitmap2,Rect.new(0,0,bitmap2.width,bitmap2.height))
  104. @sprites["logo"].bitmap.blt(0,0,bitmap1,Rect.new(0,0,bitmap1.width,bitmap1.height))
  105. @sprites["logo"].ox = @sprites["logo"].bitmap.width/2
  106. @sprites["logo"].oy = @sprites["logo"].bitmap.height/2
  107. @sprites["logo"].x = @viewport.rect.width/2
  108. @sprites["logo"].y = @viewport.rect.height/2
  109. @sprites["logo"].z = 10
  110. @sprites["logo"].opacity = 0
  111.  
  112. if !DS_STYLE
  113. @sprites["logo"].y-=58
  114. @sprites["effect"].y-=58
  115. @sprites["effect3"].y-=58
  116. end
  117.  
  118. end
  119.  
  120. def intro
  121. @logolock = true
  122. 10.times do
  123. @viewport.tone.red+=25.5
  124. @viewport.tone.green+=25.5
  125. @viewport.tone.blue+=25.5
  126. if DS_STYLE
  127. @viewport2.tone.red+=25.5
  128. @viewport2.tone.green+=25.5
  129. @viewport2.tone.blue+=25.5
  130. end
  131. self.update
  132. wait(1,false)
  133. end
  134. 22.times do
  135. self.update
  136. wait(1,false)
  137. end
  138. @sprites["logo"].y+=64
  139. 64.times do
  140. @sprites["logo"].y-=1
  141. @sprites["logo"].opacity+=4
  142. @sprites["logo"].tone.red+=2
  143. @sprites["logo"].tone.green+=2
  144. @sprites["logo"].tone.blue+=2
  145. self.update
  146. wait(1,false)
  147. end
  148. 16.times do
  149. @sprites["logo"].tone.red+=8
  150. @sprites["logo"].tone.green+=8
  151. @sprites["logo"].tone.blue+=8
  152. self.update
  153. wait(1,false)
  154. end
  155. @sprites["start"].opacity = 0
  156. @sprites["start"].visible = true
  157. @opacity = 17
  158. @viewport.tone = Tone.new(255,255,255)
  159. @viewport2.tone = Tone.new(255,255,255) if DS_STYLE
  160. @logolock = false
  161. for i in 0...@particles
  162. @sprites["p#{i}"] = AnimatedSpriteParticle.new(@viewport)
  163. @sprites["p#{i}"].dx = @sprites["effect"].x
  164. @sprites["p#{i}"].dy = @sprites["effect"].y
  165. @sprites["p#{i}"].inverted = false
  166. @sprites["p#{i}"].repeat = 1
  167. @sprites["p#{i}"].count = 0
  168. @sprites["p#{i}"].refresh
  169. end
  170. @sprites["pokemon"].visible = true
  171. @sprites["particle"].visible = true
  172. 17.times do
  173. @viewport.tone.red-=15 if @viewport.tone.red > 0
  174. @viewport.tone.green-=15 if @viewport.tone.green > 0
  175. @viewport.tone.blue-=15 if @viewport.tone.blue > 0
  176. if DS_STYLE
  177. @viewport2.tone.red-=15 if @viewport2.tone.red > 0
  178. @viewport2.tone.green-=15 if @viewport2.tone.green > 0
  179. @viewport2.tone.blue-=15 if @viewport2.tone.blue > 0
  180. end
  181. self.update
  182. wait(1,false)
  183. end
  184. end
  185.  
  186. def update
  187. @currentFrame+=1 if !@skip
  188. @frame+=1
  189. if !@logolock
  190. @sprites["logo"].tone.red-=15 if @sprites["logo"].tone.red > 0
  191. @sprites["logo"].tone.green-=15 if @sprites["logo"].tone.green > 0
  192. @sprites["logo"].tone.blue-=15 if @sprites["logo"].tone.blue > 0
  193. end
  194. @sprites["pokemon"].src_rect.x+=@sprites["pokemon"].src_rect.width if @frame > @speed
  195. @sprites["pokemon"].src_rect.x=0 if @sprites["pokemon"].src_rect.x >= @sprites["pokemon"].bitmap.width
  196. @sprites["particle"].src_rect.x-=16
  197. @sprites["particle"].src_rect.x=@sprites["particle"].bitmap.width/2 if @sprites["particle"].src_rect.x <= 0
  198. @frame = 0 if @frame > @speed
  199. @sprites["start"].opacity+=@opacity
  200. @sprites["effect"].angle+=0.4 if $ResizeFactor <= 1
  201. @sprites["effect2"].ox-=1
  202. @sprites["effect3"].angle+=0.2 if $ResizeFactor <= 1
  203. @sprites["effect3"].opacity-=@effo
  204. if @sprites["effect3"].opacity <= 0
  205. @effo = -1
  206. elsif @sprites["effect3"].opacity >= 0255
  207. @effo = 1
  208. end
  209. @opacity=-17 if @sprites["start"].opacity>=255
  210. @opacity=+17 if @sprites["start"].opacity<=0
  211. for i in 0...@particles
  212. @sprites["p#{i}"].update if @sprites["p#{i}"]
  213. end
  214. if @currentFrame==@totalFrames
  215. self.restart if RESTART_TITLE
  216. end
  217. end
  218.  
  219. def restart
  220. pbBGMStop(0)
  221. 51.times do
  222. @viewport.tone.red-=5
  223. @viewport.tone.green-=5
  224. @viewport.tone.blue-=5
  225. @viewport2.tone.red-=5
  226. @viewport2.tone.green-=5
  227. @viewport2.tone.blue-=5
  228. self.update
  229. wait(1)
  230. end
  231. raise Reset.new
  232. end
  233.  
  234. def dispose
  235. pbFadeOutAndHide(@sprites)
  236. pbDisposeSpriteHash(@sprites)
  237. @viewport.dispose
  238. @disposed=true
  239. end
  240.  
  241. def disposed?
  242. return @disposed
  243. end
  244.  
  245. def wait(frames,advance=true)
  246. return false if @skip
  247. frames.times do
  248. @currentFrame+=1 if advance
  249. Graphics.update
  250. Input.update
  251. @skip=true if Input.trigger?(Input::C)
  252. end
  253. return true
  254. end
  255.  
  256. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement