Advertisement
dsiver144

DSI Multi State Animations Update

Jan 19th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 3.98 KB | None | 0 0
  1. #==============================================================================
  2. # DSI Multi State Animations Update
  3. # -- Last Updated: 2018.01.19
  4. # -- Author: dsiver144
  5. # -- Level: Easy
  6. # -- Requires: n/a
  7. #==============================================================================
  8. # New State Notetag: Maybe I won't need to explain this xD
  9. # <state display mode: front>
  10. # <state display mode: behind>
  11. #==============================================================================
  12. # Sprite_Battler
  13. #==============================================================================
  14. class Sprite_Battler < Sprite_Base
  15.   #--------------------------------------------------------------------------
  16.   # new method: start_dark_state_animation
  17.   #--------------------------------------------------------------------------
  18.   def start_dark_state_animation(state_id,anime)
  19.     @sprite_states ||= {}
  20.     return if @sprite_states.has_key?(state_id)
  21.     @sprite_states[state_id] = Sprite_MultiAnime.new(viewport,self,anime,false,@battler,state_id)
  22.   end
  23. end # Sprite_Battler
  24.  
  25. #==============================================================================
  26. # Sprite_MultiAnime
  27. #==============================================================================
  28. class Sprite_MultiAnime < Sprite_Base
  29.   #--------------------------------------------------------------------------
  30.   # * Initialize
  31.   #--------------------------------------------------------------------------
  32.   def initialize(viewport, ref_sprite, anime, flip = false, battler=nil, state_id=nil)
  33.     super(viewport)
  34.     @display_mode = $data_states[state_id].state_display_mode
  35.     @ref_sprite = ref_sprite
  36.     @battler = battler
  37.     update_reference_sprite
  38.     start_animation(anime, flip)
  39.   end
  40.   #--------------------------------------------------------------------------
  41.   # * update_reference_sprite
  42.   #--------------------------------------------------------------------------
  43.   def update_reference_sprite
  44.     src_rect.set(@ref_sprite.src_rect)
  45.     self.ox = @ref_sprite.ox
  46.     self.oy = @ref_sprite.oy
  47.     self.x = @ref_sprite.x
  48.     self.y = @ref_sprite.y
  49.     if @display_mode == :behind
  50.       self.z = @ref_sprite.z - 1
  51.     elsif @display_mode == :front
  52.       self.z = @ref_sprite.z + 1
  53.     end
  54.   end
  55. end # Sprite_MultiAnime
  56.  
  57. #==============================================================================
  58. # Sprite_CardBattler
  59. #==============================================================================
  60. class Sprite_CardBattler < Sprite_Base
  61.   #--------------------------------------------------------------------------
  62.   # new method: start_dark_state_animation
  63.   #--------------------------------------------------------------------------
  64.   def start_dark_state_animation(state_id,anime)
  65.     @sprite_states ||= {}
  66.     return if @sprite_states.has_key?(state_id)
  67.     @sprite_states[state_id] = Sprite_MultiAnime.new(viewport,self,anime,false,@battler,state_id)
  68.   end
  69. end
  70.  
  71. #==============================================================================
  72. # �� RPG::State
  73. #==============================================================================
  74. class RPG::State < RPG::BaseItem
  75.   #--------------------------------------------------------------------------
  76.   # public instance variables
  77.   #--------------------------------------------------------------------------
  78.   attr_accessor :state_animation
  79.   attr_accessor :state_display_mode
  80.   #--------------------------------------------------------------------------
  81.   # common cache: load_notetags_sani
  82.   #--------------------------------------------------------------------------
  83.   def load_notetags_state_animation
  84.     @state_animation = 0
  85.     @state_display_mode = :behind
  86.     #---
  87.     self.note.split(/[\r\n]+/).each do |line|
  88.       if line =~ DSIVER144::STATE_ANIMATION::STATEANI
  89.         @state_animation = $1.to_i
  90.       end
  91.       if line =~ /<state display mode:\s*(front|behind)>/i
  92.         @state_display_mode = $1.to_sym
  93.       end
  94.     end
  95.   end
  96. end # RPG::State
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement