Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #-------------------------------------------------------------------------------
- # Don't remove this header!
- #-------------------------------------------------------------------------------
- # Enemy Y Offset
- # by Trihan
- #
- # Version : 1.2
- #
- # This script is commissioned by Batworks Software.
- #-------------------------------------------------------------------------------
- #-------------------------------------------------------------------------------
- # Version History
- #-------------------------------------------------------------------------------
- # 1.2 - Refactored tag processing and added support for reinforcements script
- # 1.1 - Fixed a bug where floating enemies transforming messed up offset
- # 1.0 - Initial script.
- #-------------------------------------------------------------------------------
- #-------------------------------------------------------------------------------
- # This script provides a notetag to apply a Y offset to the position of an
- # enemy's sprite:
- #
- # <y_offset: value>
- #
- # The value can be negative.
- #-------------------------------------------------------------------------------
- class Game_Troop < Game_Unit
- alias :tlb_setup :setup
- def setup(troop_id)
- tlb_setup(troop_id)
- @enemies.each do |enemy|
- y_offset = enemy.process_offset_tag
- enemy.screen_y += y_offset
- end
- end
- alias :tlb_add_member :add_member
- def add_member(member, troop_id)
- enemy = tlb_add_member(member, troop_id)
- y_offset = enemy.process_offset_tag
- enemy.screen_y += y_offset
- return enemy
- end
- end
- class Game_Enemy < Game_Battler
- alias :tlb_transform :transform
- def transform(enemy_id)
- tlb_transform(enemy_id)
- y_offset = process_offset_tag
- self.screen_y = $game_troop.troop.members[self.index].y + y_offset
- sprite = SceneManager.scene.spriteset.battler_sprites.find {|sprite| sprite.battler == self }
- sprite.setup_motion_stand
- sprite.y = self.screen_y
- refresh
- end
- def process_offset_tag
- y_offset = 0
- offset_notetag = self.enemy.note.scan(/<y_offset: ?(-?\d+)/)
- if offset_notetag.size > 0
- y_offset = offset_notetag[0][0].to_i
- end
- return y_offset
- end
- end
- class Sprite_Battler < Sprite_Base
- alias :tlb_update_motion_anim :update_motion_anim
- def update_motion_anim
- tlb_update_motion_anim
- self.y = @battler.screen_y if self.y != @battler.screen_y
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment