SSTrihan

HorrorVale - Y offset fix

Aug 22nd, 2024
315
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 2.16 KB | Source Code | 0 0
  1. #-------------------------------------------------------------------------------
  2. # Don't remove this header!
  3. #-------------------------------------------------------------------------------
  4. # Enemy Y Offset
  5. # by Trihan
  6. #
  7. # Version : 1.1
  8. #
  9. # This script is commissioned by Batworks Software.
  10. #-------------------------------------------------------------------------------
  11.  
  12. #-------------------------------------------------------------------------------
  13. # Version History
  14. #-------------------------------------------------------------------------------
  15. # 1.1 - Fixed a bug where floating enemies transforming messed up offset
  16. # 1.0 - Initial script.
  17. #-------------------------------------------------------------------------------
  18.  
  19. #-------------------------------------------------------------------------------
  20. # This script provides a notetag to apply a Y offset to the position of an
  21. # enemy's sprite:
  22. #
  23. # <y_offset: value>
  24. #
  25. # The value can be negative.
  26. #-------------------------------------------------------------------------------
  27.  
  28. class Game_Troop < Game_Unit
  29.   alias :tlb_setup :setup
  30.   def setup(troop_id)
  31.     tlb_setup(troop_id)
  32.     @enemies.each do |enemy|
  33.       y_offset = 0
  34.       offset_notetag = enemy.enemy.note.scan(/<y_offset: ?(-?\d+)/)
  35.       if offset_notetag.size > 0
  36.         y_offset = offset_notetag[0][0].to_i
  37.       end
  38.       enemy.screen_y += y_offset
  39.     end
  40.   end
  41. end
  42.  
  43. class Game_Enemy < Game_Battler
  44.   alias :tlb_transform :transform
  45.   def transform(enemy_id)
  46.     tlb_transform(enemy_id)
  47.     y_offset = 0
  48.     offset_notetag = self.enemy.note.scan(/<y_offset: ?(-?\d+)/)
  49.     if offset_notetag.size > 0
  50.       y_offset = offset_notetag[0][0].to_i
  51.     end
  52.     self.screen_y = $game_troop.troop.members[self.index].y + y_offset
  53.     sprite = SceneManager.scene.spriteset.battler_sprites.find {|sprite| sprite.battler == self }
  54.     sprite.setup_motion_stand
  55.     sprite.y = self.screen_y
  56.     refresh
  57.   end
  58. end
  59.  
  60. class Sprite_Battler < Sprite_Base
  61.   alias :tlb_update_motion_anim :update_motion_anim
  62.   def update_motion_anim
  63.     tlb_update_motion_anim
  64.     self.y = @battler.screen_y if self.y != @battler.screen_y
  65.   end
  66. end
Advertisement
Add Comment
Please, Sign In to add comment