Guest User

S5 F

a guest
Jan 22nd, 2016
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.77 KB | None | 0 0
  1. #===============================================================================
  2. # * Falcao Pearl ABS script shelf # 5
  3. #
  4. # This script handles all sprites of Pearl ABS engine
  5. #===============================================================================
  6.  
  7. # Anime action enguine
  8. class Anime_Obj < Game_Character
  9. attr_accessor :draw_it, :destroy_it, :item, :user, :original_speed
  10. attr_reader :custom_graphic
  11. def initialize(user, item)
  12. super()
  13. PearlKernel.load_item(item)
  14. @draw_it = false
  15. @destroy_it = false
  16. @item = item
  17. @user = user
  18. @custom_graphic = false
  19. graphic = PearlKernel.user_graphic
  20. if graphic.split(" ").include?('custom')
  21. graphic = graphic.sub("custom ","")
  22. @custom_graphic = true
  23. user.transparent = true
  24. user.using_custom_g = true
  25. end
  26. @character_name = graphic
  27. moveto(@user.x, @user.y)
  28. set_direction(@user.direction)
  29. @original_speed = PearlKernel.user_animespeed
  30.  
  31. #patch
  32. PearlKernel.check_iconset(@item, "User Iconset = ", self)
  33. @character_name = "" if @user_iconset != nil
  34. end
  35. end
  36.  
  37. # Sprite character added battlers as enemies and the anime sprites fit
  38. class Sprite_Character < Sprite_Base
  39. alias falcaopearl_update_position update_position
  40. def update_position
  41. if [email protected]? and @character.battler.is_a?(
  42. Game_Enemy) and @character.battler.breath_enable
  43. apply_breath_effect(@character)
  44. end
  45. self.zoom_x = @character.zoomfx_x
  46. self.zoom_y = @character.zoomfx_y
  47. self.angle = @character.angle_fx
  48. falcaopearl_update_position
  49. update_anime_object_pos
  50. end
  51.  
  52. # anime object position and action
  53. def update_anime_object_pos
  54. if @character.is_a?(Anime_Obj)
  55. if @character.custom_graphic
  56. add = 0
  57. else
  58. @ch == 128 ? add = 48 : add = (@ch / 2) / 2
  59. end
  60. self.x = @character.user.screen_x
  61. self.y = @character.user.screen_y + add
  62. self.z = @character.user.screen_z + 1
  63. @character.direction = @character.user.direction
  64. if @character.user.anime_speed == 0
  65. if @character.custom_graphic
  66. @character.user.transparent = false
  67. @character.user.using_custom_g = false
  68. end
  69. @character.destroy_it = true
  70. end
  71. if @character.user.making_spiral
  72. @character.direction == 8 ? @character.pattern=1 : @character.pattern=2
  73. return
  74. end
  75. a= @character.user.anime_speed.to_f/@character.original_speed.to_f * 100.0
  76. case a
  77. when 80..100 ; @character.pattern = 0
  78. when 60..80 ; @character.pattern = 1
  79. when 25..60 ; @character.pattern = 2
  80. end
  81. end
  82. end
  83.  
  84. # Enemy battler graphics engine
  85. alias falcaopearl_battler_bitmap set_character_bitmap
  86. def set_character_bitmap
  87. if battler_graphic?
  88. self.bitmap= Cache.battler(@character_name,@character.battler.battler_hue)
  89. self.ox = self.bitmap.width / 2
  90. self.oy = self.bitmap.height
  91. return
  92. end
  93. falcaopearl_battler_bitmap
  94. end
  95.  
  96. def battler_graphic?
  97. if [email protected]? and @character.battler.is_a?(
  98. Game_Enemy) and @character.battler.battler_graphic
  99. return false if @character.page.nil?
  100. @character_name = @character.battler.battler_name
  101. return true
  102. end
  103. return false
  104. end
  105.  
  106. alias falcaopearl_battler_graphic update_src_rect
  107. def update_src_rect
  108. return if battler_graphic?
  109. falcaopearl_battler_graphic
  110. end
  111.  
  112. # breath effect
  113. def apply_breath_effect(char)
  114. return if @character.is_a?(Game_Event) and @character.erased
  115. char.zoomfx_x -= 0.0023 if !char.zfx_bol
  116. char.zoomfx_y -= 0.0023 if !char.zfx_bol
  117. char.zoomfx_x += 0.0023 if char.zfx_bol
  118. char.zoomfx_y += 0.0023 if char.zfx_bol
  119. char.zfx_bol = true if char.zoomfx_x <= 0.93
  120. char.zfx_bol = false if char.zoomfx_x >= 1.0
  121. end
  122. end
  123.  
  124. #sprite characters part 2 (icon graphics feature
  125. class Sprite_Character < Sprite_Base
  126.  
  127. def iconset_graphic?
  128. [email protected]_iconset.nil? || [email protected]_iconset.nil?
  129. end
  130.  
  131. alias falcao_fantastic_bit update_bitmap
  132. def update_bitmap
  133. if iconset_graphic?
  134. if @apply_iconset.nil?
  135. icon = @character.user_iconset[0] if [email protected]_iconset.nil? and
  136. @character.is_a?(Anime_Obj)
  137. icon = @character.pro_iconset[0] if [email protected]_iconset.nil? and
  138. @character.is_a?(Projectile)
  139. set_iconsetbitmap(icon)
  140. @apply_iconset = true
  141. end
  142. apply_breath_effect2(@character) if [email protected]_iconset.nil? and
  143. @character.is_a?(Projectile) and @character.pro_iconset[1] == :animated
  144. @enable_angle = @character.user_iconset[1] if
  145. [email protected]_iconset.nil? and @character.is_a?(Anime_Obj)
  146. return
  147. end
  148. falcao_fantastic_bit
  149. end
  150.  
  151. alias falcao_fantastic_update_position update_position
  152. def update_position
  153. falcao_fantastic_update_position
  154. set_angle_changes(@enable_angle) if @enable_angle != nil
  155. end
  156.  
  157. def apply_angle_pattern(x_plus, y_plus, angle)
  158. self.x = @character.user.screen_x + x_plus
  159. self.y = @character.user.screen_y + y_plus
  160. self.angle = angle
  161. end
  162.  
  163. def set_angle_changes(type)
  164. ani= @character.user.anime_speed.to_f/@character.original_speed.to_f * 100.0
  165. case ani
  166. when 80..100
  167. perform_animated(0) if type == :animated
  168. when 60..80
  169. perform_animated(1) if type == :animated
  170. when 0..60
  171. perform_animated(2) if type == :animated
  172. end
  173. if type != :animated
  174. perform_static if type == :static
  175. perform_shielding if type == :shielding
  176. end
  177. end
  178.  
  179. # animated
  180. def perform_animated(pattern)
  181. case pattern
  182. when 0
  183. apply_angle_pattern(10, -12, -166) if @character.user.direction == 2
  184. if @character.user.direction == 4 || @character.user.direction == 6
  185. apply_angle_pattern(-8, -26, -46)
  186. self.z = @character.user.screen_z - 1
  187. end
  188. apply_angle_pattern(-22, -10, 0) if @character.user.direction == 8
  189. when 1
  190. apply_angle_pattern(0, 0, -266) if @character.user.direction == 2
  191. apply_angle_pattern(-20, -10, 12) if @character.user.direction == 4
  192. apply_angle_pattern(7, -20, -78) if @character.user.direction == 6
  193. if @character.user.direction == 8
  194. apply_angle_pattern(-8, -26, -46)
  195. self.z = @character.user.screen_z - 1
  196. end
  197. when 2
  198. apply_angle_pattern(8, -5, -210) if @character.user.direction == 2
  199. apply_angle_pattern(-10, 2, 52) if @character.user.direction == 4
  200. apply_angle_pattern(8, -15, -126) if @character.user.direction == 6
  201. apply_angle_pattern(10, -16, - 100) if @character.user.direction == 8
  202. end
  203. end
  204.  
  205. # static
  206. def perform_static
  207. apply_angle_pattern(8, -5, -210) if @character.user.direction == 2
  208. apply_angle_pattern(-10, 2, 52) if @character.user.direction == 4
  209. apply_angle_pattern(8, -15, -126) if @character.user.direction == 6
  210. if @character.user.direction == 8
  211. apply_angle_pattern(-8, -26, -46)
  212. self.z = @character.user.screen_z - 1
  213. end
  214. end
  215.  
  216. # shielding
  217. def perform_shielding
  218. apply_angle_pattern(2, 4, 0) if @character.user.direction == 2
  219. apply_angle_pattern(-10, 0, 0) if @character.user.direction == 4
  220. if @character.user.direction == 6
  221. apply_angle_pattern(10, 0, 0)
  222. self.z = @character.user.screen_z - 1
  223. elsif @character.user.direction == 8
  224. apply_angle_pattern(11, -9, 0)
  225. self.z = @character.user.screen_z - 1
  226. end
  227. end
  228.  
  229. def apply_breath_effect2(char)
  230. char.zoomfx_x -= 0.03 if !char.zfx_bol
  231. char.zoomfx_y -= 0.03 if !char.zfx_bol
  232. char.zoomfx_x += 0.03 if char.zfx_bol
  233. char.zoomfx_y += 0.03 if char.zfx_bol
  234. char.zfx_bol = true if char.zoomfx_x <= 0.84
  235. char.zfx_bol = false if char.zoomfx_x >= 1.0
  236. end
  237.  
  238. alias falcao_fantastic_src update_src_rect
  239. def update_src_rect
  240. return if iconset_graphic?
  241. falcao_fantastic_src
  242. end
  243.  
  244. def set_iconsetbitmap(icon_index, enabled = true)
  245. self.bitmap = Bitmap.new(24, 24)
  246. bit = Cache.system("Iconset")
  247. rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
  248. self.bitmap.blt(0, 0, bit, rect, enabled ? 255 : 150)
  249. @cw = self.ox = 12
  250. @ch = self.oy = 24
  251. end
  252. end
  253.  
  254. #===============================================================================
  255. # Drop sprites
  256. class Sprite_EnemyDrop < Sprite
  257. attr_reader :event
  258. def initialize(viewport, event, item)
  259. super(viewport)
  260. @event = event
  261. @item = item
  262. @drop_quantity = @item.tool_data("Drop Quantity = ")
  263. @drop_quantity = 1 if @drop_quantity.nil?
  264. self.z = $game_player.screen_z - 1
  265. @object_zooming = 0
  266. set_bitmap
  267. update
  268. end
  269.  
  270. def update
  271. super
  272. self.bush_depth = @event.bush_depth
  273. @object_zooming += 1
  274. case @object_zooming
  275. when 1..8 ; self.zoom_x -= 0.01 ; self.zoom_y -= 0.01
  276. when 9..16 ; self.zoom_x += 0.01 ; self.zoom_y += 0.01
  277. when 17..24 ; self.zoom_x = 1.0 ; self.zoom_y = 1.0; @object_zooming = 0
  278. end
  279. self.x = @event.screen_x - 12
  280. self.y = @event.screen_y - 24
  281. if @event.x == $game_player.x and @event.y == $game_player.y and
  282. !$game_player.moving?
  283. complete_action
  284. return
  285. end
  286.  
  287. complete_action(false) if @event.respawn_count == 1
  288. end
  289.  
  290. def complete_action(gaining=true)
  291. $game_party.gain_item(@item, @drop_quantity) if gaining
  292. dispose
  293. @event.dropped_items.delete(@item)
  294. $game_map.events_withtags.delete(@event)
  295. end
  296.  
  297. def dispose
  298. self.bitmap.dispose
  299. super
  300. end
  301.  
  302. def set_bitmap
  303. self.bitmap = Bitmap.new(26, 38)
  304. bitmap = Cache.system("Iconset")
  305. icon = @item.icon_index
  306. rect = Rect.new(icon % 16 * 24, icon / 16 * 24, 24, 24)
  307. self.bitmap.blt(0, 0, bitmap, rect)
  308.  
  309. ##num adds
  310. return if @drop_quantity == 0
  311. self.bitmap.font.size = 14
  312. self.bitmap.font.bold = true
  313. self.bitmap.draw_text(0, 8, 26, 32, @drop_quantity.to_s, 1)
  314. end
  315. end
  316.  
  317. #===============================================================================
  318. # Dead icon sprites for player and followers
  319.  
  320. class Sprite_DeadIcon < Sprite
  321. attr_reader :character
  322. def initialize(viewport, character)
  323. super(viewport)
  324. @character = character
  325. self.bitmap = Bitmap.new(24, 24)
  326. bitmap = Cache.system("Iconset")
  327. icon = 1
  328. rect = Rect.new(icon % 16 * 24, icon / 16 * 24, 24, 24)
  329. self.bitmap.blt(0, 0, bitmap, rect)
  330. @knok = @character.actor.actor.tool_data("Knockdown Graphic = ",false)!= nil
  331. update
  332. end
  333.  
  334. def update
  335. super
  336. self.x = @character.screen_x - 10
  337. self.y = @character.screen_y - 54
  338. self.z = @character.screen_z + 1
  339. self.opacity = @character.opacity
  340. self.visible = [email protected]
  341. if @knok
  342. @character.knockdown_data[0] = 10 if [email protected]?
  343. else
  344. @character.playdead
  345. @character.direction = 8
  346. self.x = @character.screen_x - 26
  347. end
  348. end
  349.  
  350. def dispose
  351. self.bitmap.dispose
  352. @character.angle_fx = 0.0 unless @knok
  353. super
  354. end
  355. end
  356.  
  357. #===============================================================================
  358. # State and buff icons sprites
  359. class StateBuffIcons < Sprite
  360. def initialize(viewport, mode)
  361. super(viewport)
  362. @mode = mode
  363. self.bitmap = Bitmap.new(36, 134)
  364. @picture = Cache.system("Iconset")
  365. if @mode == "States"
  366. self.x = 544 - 36
  367. self.y = 90
  368. else
  369. self.x = 544 - 36
  370. self.y = 230
  371. end
  372. @actor = $game_player.actor
  373. @old_status = []
  374. refresh_icons
  375. update
  376. end
  377.  
  378. def icons
  379. return @actor.state_icons if @mode == 'States'
  380. return @actor.buff_icons if @mode == 'Buffs'
  381. end
  382.  
  383. def update
  384. 5.times.each {|i|
  385. if @old_status[i] != icons[i]
  386. refresh_icons
  387. $game_player.actor.apply_usability
  388. end}
  389. if @actor != $game_player.actor
  390. @actor = $game_player.actor
  391. refresh_icons
  392. end
  393. end
  394.  
  395. def dispose
  396. self.bitmap.dispose
  397. super
  398. end
  399.  
  400. def refresh_icons
  401. self.bitmap.clear
  402. self.bitmap.font.size = 15
  403. self.bitmap.draw_text(-2, -8, self.bitmap.width + 6, 32, @mode, 1)
  404. y = 12; count = 0
  405. for i in icons
  406. draw_icon(6, y, i)
  407. y += 24; count += 1
  408. break if count == 5
  409. end
  410. 5.times.each {|i| @old_status[i] = icons[i]}
  411. end
  412.  
  413. def draw_icon(x, y, index)
  414. icon = index
  415. rect = Rect.new(icon % 16 * 24, icon / 16 * 24, 24, 24)
  416. self.bitmap.blt(x, y, @picture, rect)
  417. end
  418. end
  419.  
  420. #===============================================================================
  421. # * Damage pop engine
  422.  
  423. class DamagePop_Obj < Game_Character
  424. attr_accessor :draw_it, :destroy_it, :target, :dmgcustom, :timingg, :plus_time
  425. attr_accessor :plus_time
  426. def initialize(target, custom=nil)
  427. super()
  428. @draw_it = false
  429. @destroy_it = false
  430. @target = target
  431. @timingg = 70
  432. @plus_time = 0.0
  433. @dmgcustom = custom
  434. moveto(@target.x, @target.y)
  435. end
  436. end
  437.  
  438. class Sprite_DamagePop < Sprite
  439. attr_reader :target
  440. def initialize(viewport, target)
  441. super(viewport)
  442. @target = target
  443. self.bitmap = Bitmap.new(200, 50)
  444. self.bitmap.font.size = 20
  445. case rand(4)
  446. when 0 then @resto_plus = 0.5
  447. when 1 then @resto_plus = 0.6
  448. when 2 then @resto_plus = 0.7
  449. when 3 then @resto_plus = 0.8
  450. end
  451. create_text_for_display
  452. set_text
  453. update
  454. end
  455.  
  456. def create_text_for_display
  457. battler = @target.target.battler
  458. value = battler.result.hp_damage
  459. value2 = battler.result.mp_damage
  460. value3 = battler.result.tp_damage
  461.  
  462. # hp damage texts
  463. if value > 0
  464. battler.result.critical ? @text = 'Critical ' + value.to_s :
  465. @text = value.to_s
  466. elsif value < 0
  467. self.bitmap.font.color = Color.new(10,220,45)
  468. @text = value.to_s.sub("-","")
  469. elsif battler.result.missed
  470. @text = 'Miss'
  471. elsif battler.result.evaded
  472. @text = 'Evaded'
  473.  
  474. elsif battler.result.success # tanget take no damage but result succes
  475. @text = value.to_s
  476. end
  477.  
  478. # mp damage text
  479. if value2 < 0
  480. self.bitmap.font.color = Color.new(20,160,225)
  481. @text = value2.to_s.sub("-","")
  482. elsif value2 > 0
  483. @text = 'Mp lose' + value2.to_s
  484. end
  485.  
  486. # TP damage text
  487. if value3 < 0
  488. self.bitmap.font.color = Color.new(20,160,225)
  489. @text = value3.to_s.sub("-","")
  490. elsif value3 > 0
  491. @text = 'Tp lose' + value3.to_s
  492. end
  493.  
  494. # states and buff display
  495. if battler.result.status_affected?
  496. display_changed_states(battler)
  497. display_changed_buffs(battler)
  498. end
  499.  
  500. # Custom text (it has hightest priority
  501. if @target.dmgcustom == 1
  502. @text = 'Block ' + value.to_s
  503. elsif @target.dmgcustom == 2
  504. @text = 'Guard!'
  505. elsif @target.dmgcustom.is_a?(String)
  506. @text = @target.dmgcustom
  507. elsif @target.dmgcustom.is_a?(Array)
  508. self.bitmap.font.color = @target.dmgcustom[1]
  509. @text = @target.dmgcustom[0]
  510. end
  511. end
  512. battler.result.clear
  513. end
  514.  
  515. # text set and position
  516. def set_text
  517. self.x = @target.screen_x - 98
  518. self.y = @target.screen_y - 54
  519. self.z = 3 * 100
  520. self.opacity = @target.opacity
  521. #self.bitmap.font.bold = true
  522. self.bitmap.font.shadow = true
  523. item = @target.target.battler.used_item
  524. if item != nil and !item.scope.between?(1, 6) and
  525. item.tool_data("User Graphic = ", false).nil?
  526. @text = item.name if @text.nil?
  527. end
  528. @target.target.battler.used_item = nil
  529. self.bitmap.draw_text(0, 0, 200, 32, @text, 1)
  530. end
  531.  
  532. # Buffs display
  533. def display_changed_buffs(target)
  534. display_buffs(target, target.result.added_buffs, Vocab::BuffAdd)
  535. display_buffs(target, target.result.added_debuffs, Vocab::DebuffAdd)
  536. display_buffs(target, target.result.removed_buffs, Vocab::BuffRemove)
  537. end
  538.  
  539. def display_buffs(target, buffs, fmt)
  540. buffs.each do |param_id|
  541. @text = sprintf(fmt,'', Vocab::param(param_id)).sub("'s","")
  542. end
  543. end
  544.  
  545. # States display
  546. def display_changed_states(target)
  547. display_added_states(target)
  548. display_removed_states(target)
  549. end
  550.  
  551. # Display added states
  552. def display_added_states(target)
  553. target.result.added_state_objects.each do |state|
  554. state_msg = target.actor? ? state.message1 : state.message2
  555. #target.perform_collapse_effect if state.id == target.death_state_id
  556. next if state_msg.empty?
  557. @text = state_msg
  558. end
  559. end
  560.  
  561. # Display removed states
  562. def display_removed_states(target)
  563. target.result.removed_state_objects.each do |state|
  564. next if state.message4.empty?
  565. @text = state.message4
  566. end
  567. end
  568.  
  569. def update
  570. @target.timingg -= 1 if @target.timingg > 0
  571. @target.plus_time += @resto_plus
  572. self.opacity -= 5 if @target.timingg <= 25
  573. @target.destroy_it = true if @target.timingg == 0
  574. self.x = @target.target.screen_x - 98
  575. self.y = @target.target.screen_y - 54 - @target.plus_time
  576. end
  577.  
  578. def dispose
  579. self.bitmap.dispose
  580. super
  581. end
  582. end
  583.  
  584. #===============================================================================
  585. # Sprite set map
  586.  
  587. class Spriteset_Map
  588.  
  589. alias falcaopearl_create_characters create_characters
  590. def create_characters
  591. create_pearl_abs_sprites
  592. falcaopearl_create_characters
  593. end
  594.  
  595. def create_pearl_abs_sprites
  596. if $game_player.send_dispose_signal
  597. dispose_pearlabs_sprites
  598. $game_player.send_dispose_signal = false
  599. end
  600. @projectile_sprites = []
  601. $game_player.projectiles.each do |projectile|
  602. @projectile_sprites.push(Sprite_Character.new(@viewport1, projectile))
  603. end
  604. @damagepop_sprites = []
  605. $game_player.damage_pop.each do |target|
  606. @damagepop_sprites.push(Sprite_DamagePop.new(@viewport1, target))
  607. end
  608. @animeabs_sprites = []
  609. $game_player.anime_action.each do |anime|
  610. @animeabs_sprites.push(Sprite_Character.new(@viewport1, anime))
  611. end
  612. @enemy_drop_sprites = []
  613. $game_player.enemy_drops.each do |enemy|
  614. for i in enemy.dropped_items
  615. @enemy_drop_sprites.push(Sprite_EnemyDrop.new(@viewport1, enemy, i))
  616. end
  617. end
  618. @dead_iconsprites = []
  619. @dead_characters = []
  620. end
  621.  
  622. # Drop sprites update
  623. def update_drop_sprites
  624. @enemy_drop_sprites.each {|sprite| sprite.update if !sprite.disposed?
  625. if sprite.disposed?
  626. @enemy_drop_sprites.delete(sprite)
  627. $game_player.enemy_drops.delete(sprite.event)
  628. end
  629. }
  630. $game_player.enemy_drops.each do |enemy|
  631. unless enemy.draw_drop
  632. for i in enemy.dropped_items
  633. @enemy_drop_sprites.push(Sprite_EnemyDrop.new(@viewport1, enemy, i))
  634. end
  635. enemy.draw_drop = true
  636. end
  637. end
  638. end
  639.  
  640. alias falcaopearl_upsp_update update
  641. def update
  642. update_pearl_abs_main_sprites
  643. falcaopearl_upsp_update
  644. end
  645.  
  646. # pearl abs main sprites update
  647. def update_pearl_abs_main_sprites
  648. if $game_player.pearl_menu_call[1] == 1
  649. dispose_tool_sprite
  650. dispose_state_icons
  651. dispose_buff_icons
  652. dispose_actorlifebars if $imported["Falcao Pearl ABS Life"]
  653. $game_player.pearl_menu_call[1] = 0
  654. case $game_player.pearl_menu_call[0]
  655. when :tools then SceneManager.call(Scene_QuickTool)
  656. when :character then SceneManager.call(Scene_CharacterSet)
  657. when :battler then SceneManager.call(Scene_BattlerSelection)
  658. end
  659. return
  660. end
  661. update_projectile_sprites
  662. update_damagepop_sprites
  663. update_absanime_sprites
  664. update_dead_characters
  665. update_drop_sprites
  666. $game_system.skillbar_enable.nil? ? create_tool_sprite : dispose_tool_sprite
  667. @pearl_tool_sprite.update unless @pearl_tool_sprite.nil?
  668. $game_player.actor.state_icons.empty? ? dispose_state_icons :
  669. create_state_icons
  670. $game_player.actor.buff_icons.empty? ? dispose_buff_icons :
  671. create_buff_icons
  672. @states_sprites.update unless @states_sprites.nil?
  673. @buff_sprites.update unless @buff_sprites.nil?
  674. end
  675.  
  676. # create tool sprite
  677. def create_tool_sprite
  678. return if !@pearl_tool_sprite.nil?
  679. @pearl_tool_sprite = Sprite_PearlTool.new(@viewport2)
  680. end
  681.  
  682. # dispose tool sprite
  683. def dispose_tool_sprite
  684. return if @pearl_tool_sprite.nil?
  685. @pearl_tool_sprite.dispose
  686. @pearl_tool_sprite = nil
  687. end
  688.  
  689. # Create State icons
  690. def create_state_icons
  691. return if !@states_sprites.nil?
  692. @states_sprites = StateBuffIcons.new(@viewport2, 'States')
  693. end
  694.  
  695. # dispose state icons
  696. def dispose_state_icons
  697. return if @states_sprites.nil?
  698. @states_sprites.dispose
  699. @states_sprites = nil
  700. end
  701.  
  702. # Create Buff icons
  703. def create_buff_icons
  704. return if !@buff_sprites.nil?
  705. @buff_sprites = StateBuffIcons.new(@viewport2, 'Buffs')
  706. end
  707.  
  708. # dispose buff icons
  709. def dispose_buff_icons
  710. return if @buff_sprites.nil?
  711. @buff_sprites.dispose
  712. @buff_sprites = nil
  713. end
  714.  
  715. # Projectiles
  716. def update_projectile_sprites
  717. @projectile_sprites.each {|sprite| sprite.update if !sprite.disposed?}
  718. $game_player.projectiles.each do |projectile|
  719. unless projectile.draw_it
  720. @projectile_sprites.push(Sprite_Character.new(@viewport1, projectile))
  721. projectile.draw_it = true
  722. end
  723. if projectile.destroy_it
  724. @projectile_sprites.each {|i|
  725. if i.character.is_a?(Projectile) and i.character.destroy_it
  726. i.dispose
  727. @projectile_sprites.delete(i)
  728. end
  729. }
  730. if projectile.user.making_spiral
  731. projectile.user.making_spiral = false
  732. end
  733. if projectile.user.battler_guarding[0]
  734. projectile.user.battler_guarding = [false, nil]
  735. projectile.user.battler.remove_state(9)
  736. end
  737. $game_player.projectiles.delete(projectile)
  738. end
  739. end
  740. end
  741.  
  742. # Damage pop
  743. def update_damagepop_sprites
  744. @damagepop_sprites.each {|sprite| sprite.update if !sprite.disposed?}
  745. $game_player.damage_pop.each do |target|
  746. unless target.draw_it
  747. @damagepop_sprites.push(Sprite_DamagePop.new(@viewport1, target))
  748. target.draw_it = true
  749. end
  750. if target.destroy_it
  751. @damagepop_sprites.each {|i|
  752. if i.target.destroy_it
  753. i.dispose
  754. @damagepop_sprites.delete(i)
  755. end
  756. }
  757. $game_player.damage_pop.delete(target)
  758. end
  759. end
  760. end
  761.  
  762. #=================================
  763. # ANIME SPRITES
  764. def update_absanime_sprites
  765. @animeabs_sprites.each {|s| s.update if !s.disposed?
  766. unless $game_player.anime_action.include?(s.character)
  767. s.dispose
  768. @animeabs_sprites.delete(s)
  769. $game_player.anime_action.delete(s.character)
  770. end
  771. }
  772. $game_player.anime_action.each do |anime|
  773. unless anime.draw_it
  774. @animeabs_sprites.push(Sprite_Character.new(@viewport1, anime))
  775. anime.draw_it = true
  776. end
  777. if anime.destroy_it
  778. @animeabs_sprites.each {|i|
  779. if i.character.is_a?(Anime_Obj) and i.character.destroy_it
  780. i.dispose
  781. @animeabs_sprites.delete(i)
  782. end
  783. }
  784. $game_player.anime_action.delete(anime)
  785. end
  786. end
  787. end
  788.  
  789. def update_dead_characters
  790. for follower in $game_player.followers
  791. next if follower.visible? == nil
  792. next unless follower.battler.dead?
  793. unless @dead_characters.include?(follower)
  794. sprite = Sprite_DeadIcon.new(@viewport1, follower)
  795. @dead_iconsprites.push(sprite)
  796. @dead_characters.push(follower)
  797. end
  798. end
  799.  
  800. for sprite in @dead_iconsprites
  801. sprite.update if !sprite.disposed?
  802. if !sprite.character.battler.dead?
  803. @dead_iconsprites.delete(sprite)
  804. @dead_characters.delete(sprite.character)
  805. sprite.dispose
  806. end
  807. end
  808. end
  809.  
  810. alias falcaopearl_spdispose dispose
  811. def dispose
  812. dispose_pearl_main_sprites
  813. falcaopearl_spdispose
  814. end
  815.  
  816. # pearl abs disposing
  817. def dispose_pearl_main_sprites
  818. @dead_iconsprites.each {|icon| icon.dispose}
  819. dispose_tool_sprite
  820. dispose_state_icons
  821. dispose_buff_icons
  822. dispose_pearlabs_sprites
  823. end
  824.  
  825. def dispose_pearlabs_sprites
  826. @projectile_sprites.each {|pro| pro.dispose}
  827. @projectile_sprites.clear
  828. @damagepop_sprites.each {|target| target.dispose}
  829. @damagepop_sprites.clear
  830. @animeabs_sprites.each {|anime| anime.dispose}
  831. @animeabs_sprites.clear
  832. @enemy_drop_sprites.each {|sprite| sprite.dispose}
  833. @enemy_drop_sprites.clear
  834. end
  835. end
Add Comment
Please, Sign In to add comment