SSTrihan

HorrorVale enemy transform amendment

Feb 8th, 2023
1,312
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.64 KB | Source Code | 0 0
  1. class Game_Enemy < Game_Battler
  2.   attr_accessor :original_id
  3.  
  4.   alias :tlb_et_initialize :initialize
  5.   def initialize(index, enemy_id)
  6.     tlb_et_initialize(index, enemy_id)
  7.     @original_id = nil
  8.   end
  9.  
  10.   alias :tlb_et_add_new_state :add_new_state
  11.   def add_new_state(state_id)
  12.     tlb_et_add_new_state(state_id)
  13.     override = false
  14.     notes = $data_enemies[@enemy_id].note.split(/[\r\n]/)
  15.     if notes.size > 0
  16.       notes.each do |line|
  17.         case line
  18.         when /<transform (\d+) override:(\d+)>/i
  19.           override_state_id = $1.to_i
  20.           if override_state_id == state_id
  21.             override = true
  22.             @original_id = @enemy_id
  23.             self.transform($2.to_i)
  24.           end
  25.         end
  26.       end
  27.     end
  28.     if !override
  29.       $data_states[state_id].note.split(/[\r\n]/).each do |line|
  30.         case line
  31.         when /<transform:(\d+)>/i
  32.           @original_id = @enemy_id
  33.           self.transform($1.to_i)
  34.         end
  35.       end
  36.     end
  37.   end
  38.  
  39.   alias :tlb_et_erase_state :erase_state
  40.   def erase_state(state_id)
  41.     if @original_id && state?(state_id)
  42.       self.transform(@original_id)
  43.       @original_id = nil
  44.     end
  45.     tlb_et_erase_state(state_id)
  46.   end
  47.  
  48.   alias :tlb_et_transform :transform
  49.   def transform(enemy_id)
  50.     tlb_et_transform(enemy_id)
  51.     @motion_start = -1
  52.     @motion_stand = [-1,0]
  53.     @motion_action = [-1,0]
  54.     @motion_collapse = [99,0]
  55.     @motion_damage = [0,0]
  56.     @motion_move = [false,0,0]
  57.     @motion_org_pos = [0,0]
  58.     @motion_bms = [0,false]
  59.     @motion_slice = [false,0,0]
  60.     bact_action_clear
  61.     setup_motion_animation(@enemy_id)
  62.   end
  63. end
Advertisement
Add Comment
Please, Sign In to add comment