Advertisement
AndreMaker

IAS Buff Cast Correction

Dec 15th, 2012
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 40.74 KB | None | 0 0
  1. #==============================================================================
  2. # ** Imperial Action System I -- Main Script
  3. #==============================================================================
  4. # Autor: AndreMaker ou Maker-Leon ou Leon-S.K
  5. #==============================================================================
  6. #  Este é o script da maioria das definições do ABS... Não Mecha se nao souber
  7. # o que esta fazendo
  8. #==============================================================================
  9.  
  10. #==============================================================================
  11. #                             -- ATENÇÃO --
  12. #  Coloque este script sempre abaixo do script 'Imperial Configuration'
  13. #==============================================================================
  14.  
  15. class Game_Event < Game_Character
  16.  
  17.   include Imperial
  18.   include Imperial_Config
  19.  
  20.   attr_accessor :minibar
  21.   attr_reader :enemy
  22.   attr_reader :object
  23.   attr_reader :killed
  24.   attr_reader :attacking
  25.  
  26.   alias abs_initialize initialize
  27.   def initialize(map_id, event)
  28.     @enemy = nil; @object = nil
  29.     @killed = false; @attacking = false; @performing = false
  30.     @recover = 0; @timer = 0; @shield_count = 0; @recover_skill = 0
  31.     @state_steps = []
  32.     abs_initialize(map_id, event)
  33.   end
  34.  
  35.   alias abs_moving? moving?
  36.   def moving?
  37.     if @enemy.nil? and @object.nil?
  38.       return abs_moving?
  39.     end
  40.     if !@enemy != nil
  41.       return abs_moving?
  42.     end
  43.     if not_move?(@enemy.enemy)
  44.       if @restriction.nil?
  45.         @restriction = States::Move_Restriction
  46.       else
  47.         @restriction -= 1
  48.         if @restriction == 0
  49.           @restriction = nil
  50.           @enemy.enemy.states.each {|state|
  51.             next if !States::Not_Move.include?(state.id)
  52.             @enemy.enemy.remove_state(state.id)
  53.           }
  54.         end
  55.       end
  56.       if not $game_map.damage_sprites.any? {|sprite| next if !sprite.is_a?(Sprites::Custom); sprite.text == "Cannot Move!" and sprite.target == self}
  57.         $game_map.damage_sprites.push(Sprites::Custom.new(self,"Cannot Move!"))
  58.       end
  59.       return true
  60.     end
  61.     abs_moving?
  62.   end
  63.  
  64.   alias abs_setup_page_settings setup_page_settings
  65.   def setup_page_settings
  66.     abs_setup_page_settings
  67.     check_enemy
  68.   end
  69.  
  70.   def perform_kill
  71.     return if @killed
  72.     @performing = true
  73.     @opacity > 0 ? @opacity -= 10 : @killed = true
  74.     if @killed
  75.       make_drops
  76.       @performing = false
  77.       if !Enemy_Effects::Die_SE[@enemy.id].nil?
  78.         RPG::SE.new(Enemy_Effects::Die_SE[@enemy.id],90).play
  79.       end
  80.       case @enemy.die
  81.       when 0
  82.         @enemy = nil
  83.         self.erase
  84.       when 1
  85.         key = [$game_map.map_id, self.id, @enemy.switch]
  86.         if $game_self_switches[key] == true
  87.           $game_self_switches[key] = false
  88.         else
  89.           $game_self_switches[key] = true
  90.         end
  91.         @opacity = 255
  92.       when 2
  93.         if $game_switches[@enemy.switch] == true
  94.           $game_switches[@enemy.switch] = false
  95.         else
  96.           $game_switches[@enemy.switch] = true
  97.         end
  98.         @opacity = 255
  99.       end
  100.     end
  101.   end
  102.    
  103.   def make_drops
  104.     inimigo = $data_enemies[@enemy.id]
  105.     if !inimigo.gold.nil?
  106.       if inimigo.gold > 0
  107.         $game_map.drops.push(Drop.new(self, 1,true,inimigo.gold))
  108.       end
  109.     end
  110.     return if inimigo.drop_items.empty?
  111.     i = 1
  112.     inimigo.drop_items.each { |item|
  113.       if item.denominator == 1
  114.         i += 1
  115.         case item.kind
  116.         when 1
  117.           $game_map.drops.push(Drop.new(self, i, false,$data_items[item.data_id]))
  118.         when 2
  119.           $game_map.drops.push(Drop.new(self, i, false,$data_weapons[item.data_id]))
  120.         when 3
  121.           $game_map.drops.push(Drop.new(self, i, false,$data_armors[item.data_id]))
  122.         end
  123.       else
  124.         r = rand(item.denominator)
  125.         if r == item.denominator - 1
  126.           i += 1
  127.           case item.kind
  128.           when 1
  129.             $game_map.drops.push(Drop.new(self, i, false,$data_items[item.data_id]))
  130.           when 2
  131.             $game_map.drops.push(Drop.new(self, i, false,$data_weapons[item.data_id]))
  132.           when 3
  133.             $game_map.drops.push(Drop.new(self, i, false,$data_armors[item.data_id]))
  134.           end
  135.         end
  136.       end
  137.     }
  138.   end
  139.  
  140.   def check_enemy
  141.     if !@enemy.nil?
  142.       @enemy = nil
  143.       $game_map.enemies.delete(self) if $game_map.enemies.include?(self)
  144.     end
  145.     if !@object.nil?
  146.       @object = nil
  147.       $game_map.enemies.delete(self) if $game_map.enemies.include?(self)
  148.     end
  149.     if !@minibar.nil?
  150.       @minibar.dispose if not @minibar.disposed
  151.       @minibar = nil
  152.     end
  153.     @list.each do |command|
  154.       next if not command.code == 108 or command.code == 408
  155.       if !@enemy.nil?
  156.         check_enemy_command(command)
  157.       end
  158.       if !@object.nil?
  159.         check_object_command(command)
  160.       end
  161.       if command.parameters[0].downcase.include?('enemy ')
  162.         @enemy = Enemy.new(check_enemy_id(command))
  163.         @enemy.die = 0
  164.         $game_map.enemies.push(self)
  165.         print "Inimigo #{@enemy.enemy.name} criado \n"
  166.       elsif command.parameters[0].downcase.include?('object ')
  167.         sub = command.parameters[0].downcase.sub('object ','')
  168.         if sub.include?('self ')
  169.           sub2 = sub.clone; sub2.sub!('self ','')
  170.           @object = ABS_Object.new(sub2.upcase)
  171.         elsif sub.include?('switch ')
  172.           sub2 = sub.clone; sub2.sub!('switch ','')
  173.           @object = ABS_Object.new(sub2.to_i)
  174.         elsif sub.include?('switch ')
  175.           @object = ABS_Object.new(true)
  176.         elsif sub == "puzzle"
  177.           @object = ABS_Object.new(false)
  178.         else
  179.           @object = ABS_Object.new(true)
  180.         end
  181.         $game_map.enemies.push(self)
  182.         print "Objeto criado com switch #{(@object.switch rescue '???')} \n"
  183.       end
  184.     end
  185.     #if @enemy.nil? and @object.nil?
  186.     #  @enemy = Imperial::Enemy.new(1)
  187.     #  @enemy.follow = 0; @enemy.real_event = true
  188.     #  $game_map.enemies.push(self)
  189.     #end
  190.   end
  191.  
  192.   def start_object
  193.     return if @object.nil?
  194.     if @object.breakable == true
  195.       @object.hits -= 1
  196.       return if @object.hits > 0
  197.     end
  198.     case @object.switch.class.to_s
  199.     when "String"
  200.       key = [$game_map.map_id, self.id, @object.switch]
  201.       if $game_self_switches[key] == true
  202.         $game_self_switches[key] = false
  203.       else
  204.         $game_self_switches[key] = true
  205.       end
  206.       @opacity = 255
  207.     when "Fixnum"
  208.       if $game_switches[@object.switch] == true
  209.         $game_switches[@object.switch] = false
  210.       else
  211.         $game_switches[@object.switch] = true
  212.       end
  213.       @opacity = 255
  214.     when "TrueClass"
  215.       start(true)
  216.     when "FalseClass"
  217.       return
  218.     end
  219.   end  
  220.  
  221.   alias abs_start start
  222.   def start(hit = false)
  223.     if @object != nil
  224.       if @object.switch == true
  225.         if hit
  226.           abs_start
  227.         else
  228.           return
  229.         end
  230.       else @object.switch == false
  231.         return
  232.       end
  233.     end
  234.     abs_start
  235.   end
  236.  
  237.   def try_start_object(weapon)
  238.     return if @object.nil?
  239.     if @object.only.nil?
  240.       start_object
  241.     else
  242.       if @object.only != weapon
  243.         @animation_id = 0
  244.         return
  245.       else
  246.         start_object
  247.       end
  248.     end
  249.   end
  250.  
  251.   def check_object_command(command)
  252.     string = command.parameters[0].downcase.clone
  253.     if string.include?('breakable ')
  254.       sub = string.clone; sub.sub!('breakable ','')
  255.       @object.breakable = true
  256.       @object.hits = sub.to_i
  257.     end
  258.     if string.include?('auto cast ')
  259.       sub = string.clone; sub.sub!('auto cast ','')
  260.       @object.auto_cast = $data_skills[sub.to_i]
  261.     end
  262.     if string.include?('weapon ')
  263.       sub = string.clone; sub.sub!('weapon ','')
  264.       @object.only = $data_weapons[sub.to_i]
  265.     elsif string.include?('skill ')
  266.       sub = string.clone; sub.sub!('skill ','')
  267.       @object.only = $data_skills[sub.to_i]
  268.     elsif string.include?('item ')
  269.       sub = string.clone; sub.sub!('item ','')
  270.       @object.only = $data_items[sub.to_i]
  271.     end
  272.   end
  273.  
  274.   def check_enemy_command(command)
  275.     string = command.parameters[0].downcase.clone
  276.     @enemy.die = 0 if string == 'die erase'
  277.     if string.include?('weapon ')
  278.       sub = string.clone; sub.sub!('weapon ','')
  279.       @enemy.only = $data_weapons[sub.to_i]
  280.     elsif string.include?('skill ')
  281.       sub = string.clone; sub.sub!('skill ','')
  282.       @enemy.only = $data_skills[sub.to_i]
  283.     elsif string.include?('item ')
  284.       sub = string.clone; sub.sub!('item ','')
  285.       @enemy.only = $data_items[sub.to_i]
  286.     end
  287.     if string.include?('follow')
  288.       @enemy.follow = string.sub('follow ','').to_i
  289.     end
  290.     if string.include?('die')
  291.       if string.include?('self')
  292.         @enemy.die = 1
  293.         sub = string.clone; sub.sub!('die self ','');
  294.         @enemy.switch = sub.upcase
  295.       elsif string.include?('switch')
  296.         @enemy.die = 2
  297.         sub = string.clone; sub.sub!('die switch ','');
  298.         @enemy.switch = sub.to_i
  299.       end
  300.     end
  301.   end
  302.  
  303.  
  304.   alias im_update update
  305.   def update
  306.     im_update
  307.     if !@object.nil?
  308.       update_auto_cast if @object.auto_cast != nil
  309.       return
  310.     end
  311.     unless @killed
  312.       perform_kill if @performing
  313.       battle_update if @enemy
  314.     else
  315.       update_kill
  316.     end
  317.   end
  318.  
  319.   def update_auto_cast
  320.     @recover_skill = 0 if @recover_skill.nil?
  321.     @recover_skill -= 1 if @recover_skill > 0
  322.     auto_cast(@object.auto_cast) if @recover_skill == 0
  323.   end
  324.  
  325.   def update_kill
  326.     @killed = false if !@enemy.nil?
  327.   end
  328.  
  329.   alias abs_move_straight move_straight
  330.   def move_straight(d, turn_ok = true)
  331.     update_states if @enemy != nil
  332.     abs_move_straight(d, turn_ok)
  333.   end
  334.  
  335.   def update_states
  336.     if not_attack?(@enemy.enemy)
  337.       @enemy.enemy.states.each { |state|
  338.         next if !States::Not_Attack.include?(state.id)
  339.         update_state_steps(state)
  340.       }
  341.     end
  342.     if not_cast?(@enemy.enemy)
  343.       @enemy.enemy.states.each { |state|
  344.         next if !States::Not_Cast.include?(state.id)
  345.         update_state_steps(state)
  346.       }
  347.     end
  348.   end
  349.  
  350.   def update_state_steps(state)
  351.     if state.remove_by_walking
  352.       @state_steps[state.id] = (state.steps_to_remove / 3).to_i if @state_steps[state.id].nil?
  353.       if @state_steps[state.id] > 0
  354.         print @state_steps[state.id],"\n"
  355.         @state_steps[state.id] -= 1
  356.       else
  357.         @enemy.enemy.remove_state(state.id)
  358.         @state_steps[state.id] = nil
  359.       end
  360.     end
  361.   end
  362.  
  363.   alias abs_update_movement update_self_movement
  364.   def update_self_movement
  365.     if @enemy.nil? and @object.nil?
  366.       abs_update_movement
  367.       return
  368.     end
  369.     return if @attacking == true or @performing == true
  370.     abs_update_movement
  371.   end
  372.  
  373.   def battle_update
  374.     if Minibar_Always and @minibar.nil?
  375.       @minibar = Sprites::Minibar.new(self)
  376.     end
  377.     if @minibar.is_a?(Sprites::Minibar)
  378.       @minibar.update
  379.       @minibar = nil if @minibar.disposed?
  380.     end
  381.     return if @performing == true
  382.     @recover -= 1 if @recover > 0
  383.     @recover_skill -= 1 if @recover_skill > 0
  384.     actor = nearest_character(self, real_actors)[0]
  385.     return if actor.nil?
  386.     return if @enemy.follow == 0
  387.     @attacking = (abs_distance_to(self, actor) <= @enemy.follow)
  388.     @ab = false if @ab == true and @attacking == false
  389.     return if !@attacking
  390.     if !@ab
  391.       @balloon_id = 1
  392.       @ab = true
  393.     end
  394.     update_melee if @recover == 0
  395.     update_skill if @recover_skill == 0
  396.   end
  397.  
  398.   def update_melee
  399.     actor = nearest_character(self, real_actors)[0]
  400.     if abs_distance_to(self, actor) > 1
  401.       move_toward_character(actor) if !moving?
  402.     else
  403.       if !facing?(self, actor)
  404.         turn_toward_character(actor) if !moving?
  405.       end
  406.       if melee_ok?(self, actor)
  407.         attack_char(actor)
  408.       else
  409.         move_straight(@direction) if !moving?
  410.       end
  411.     end
  412.   end
  413.  
  414.   def usable_action_skills
  415.     return if @enemy.nil?
  416.     return if @killed or @performing
  417.     result = []
  418.     @enemy.actions.each {|action|
  419.       next if action.skill_id == 1 or action.skill_id == 2
  420.       result.push(action) if Distance_Skills.keys.include?(action.skill_id)
  421.     }
  422.     result
  423.   end
  424.  
  425.   def update_skill
  426.     return if usable_action_skills.nil?
  427.     return if !facing?(self,$game_player)
  428.     target = real_actors.shuffle[0]
  429.     action_now = usable_action_skills.shuffle[0]
  430.     rate_now = rand(10) + 1
  431.     return if action_now.nil?
  432.     if action_now.rating >= rate_now
  433.       skill_id = action_now.skill_id
  434.       if skill_castable?(skill_id, target)
  435.         cast_skill(skill_id)
  436.         @recover_skill = Default_RecoverSkill
  437.         return
  438.       else
  439.         @recover_skill = 40
  440.       end
  441.     else
  442.       @recover_skill = 60
  443.     end
  444.   end
  445.  
  446.   def skill_castable?(skill_id, target)
  447.     return false if @enemy.hp - $data_skills[skill_id].mp_cost < 0
  448.     if not_cast?(@enemy.enemy)
  449.       update_states
  450.       $game_map.damage_sprites.push(Sprites::Custom.new(self, "Cannot Cast!"))
  451.       return false
  452.     end
  453.     return true if ranged_ok?(self, target, Distance_Skills[skill_id][2])
  454.   end
  455.  
  456.   def cast_skill(skill_id)
  457.     skill = $data_skills[skill_id]
  458.     array = Distance_Skills[skill_id]
  459.     RPG::SE.new(array[5],80).play
  460.     @enemy.mp -= skill.mp_cost
  461.     @recover_skill = array[0]
  462.     $game_map.characters.push(Ranged::Enemy_Skill.new(array[1],array[2],array[3],array[4],skill,self))
  463.   end
  464.  
  465.   def auto_cast(skill)
  466.     if Distance_Skills[skill.id].nil?
  467.       @object.auto_cast = nil
  468.       return
  469.     end
  470.     array = Distance_Skills[skill.id]
  471.     RPG::SE.new(array[5],80).play
  472.     @recover_skill = array[0]
  473.     $game_map.characters.push(Ranged::Enemy_Skill.new(array[1],array[2],array[3],array[4],skill,self))
  474.   end
  475.  
  476.   def breaked_defense?
  477.     return true if @enemy.atk > $game_party.members[0].def
  478.     return true if @enemy.agi > $game_party.members[0].agi + $game_party.members[0].luk
  479.     return false
  480.   end
  481.  
  482.   def attack_char(char)
  483.     return if @enemy.nil? or @killed
  484.     @recover = Default_RecoverMain
  485.     if not_attack?(@enemy.enemy)
  486.       update_states
  487.       $game_map.damage_sprites.push(Sprites::Custom.new(self, "Cannot Attack"))
  488.       return
  489.     end
  490.     if @enemy.weapon != nil and Show_Weapon_Sprites
  491.       SceneManager.scene.spriteset.enemy_attack(self, @enemy.weapon)
  492.     end
  493.     if !Enemy_Effects::Attack_SE[@enemy.id].nil?
  494.       if !Enemy_Effects::Attack_SE[@enemy.id].empty?
  495.         r = rand(Enemy_Effects::Attack_SE[@enemy.id].size)
  496.         se_now = Enemy_Effects::Attack_SE[@enemy.id][r]
  497.         RPG::SE.new(se_now, 80).play
  498.       end
  499.     end
  500.     if char.is_a?(Game_Player)
  501.       if $game_player.shielding
  502.         if $game_player.facing?($game_player, self)
  503.           breaked = breaked_defense?
  504.           if !breaked
  505.             $game_map.damage_sprites.push(Sprites::Custom.new($game_player, "Block!"))
  506.             RPG::SE.new(Shield::SE, 80).play
  507.             return
  508.           end
  509.         end
  510.       end
  511.     end
  512.     damage_hero(char, @enemy.atk, self, @enemy.crit?)
  513.   end
  514. end
  515.  
  516. #==============================================================================#
  517.  
  518. class Game_Player < Game_Character
  519.  
  520.   include Imperial
  521.   include Imperial_Config
  522.  
  523.   attr_accessor :killed
  524.   attr_accessor :shielding
  525.   attr_accessor :aiming
  526.   attr_accessor :selected_skill
  527.   attr_accessor :selected_buff
  528.   attr_accessor :selected_item
  529.   attr_accessor :not_evade
  530.   attr_accessor :last_enemy_hitted
  531.   attr_accessor :minibar
  532.   attr_accessor :hit
  533.   attr_accessor :skill_hit
  534.   attr_accessor :player_need_refresh
  535.   attr_reader   :distance_now
  536.   attr_reader   :scanning
  537.  
  538.   alias im_initialize initialize
  539.   alias im_update update
  540.   alias im_movable movable?
  541.  
  542.   def initialize
  543.     @recover_main = 0; @recover_off = 0; @recover_skill = 0; @recover_item = 0
  544.     @killed = false, @shielding = false, @not_evade = false; @hit = 0;
  545.     @skill_hit = 0; @scanning = false;
  546.     im_initialize
  547.   end
  548.  
  549.   def update
  550.     im_update
  551.     return if @vehicle_type != :walk
  552.     if !@killed
  553.       battle_update
  554.     else
  555.       if $game_party.members[0] != nil
  556.         @killed = false if $game_party.members[0].hp > 0
  557.       end
  558.     end
  559.   end
  560.  
  561.   def battle_update
  562.     return if @vehicle_type != :walk
  563.     @recover_main -= 1 if @recover_main > 0
  564.     @recover_off -= 1 if @recover_off > 0
  565.     @recover_skill -= 1 if @recover_skill > 0
  566.     @recover_item -= 1 if @recover_item > 0
  567.     if Minibar_Always and @minibar.nil?
  568.       @minibar = Sprites::Minibar.new(self)
  569.     end
  570.     if @minibar.is_a?(Sprites::Minibar)
  571.       @minibar.update
  572.       @minibar = nil if @minibar.disposed?
  573.     end
  574.     update_inputs
  575.   end
  576.  
  577.   def update_inputs
  578.     return if @vehicle_type != :walk
  579.     if Input.trigger?(Main_Hand_Key) and $game_party.members[0].weapons[0] != nil
  580.       if Distance_Weapons.keys.include?($game_party.members[0].weapons[0].id)
  581.         update_ranged if @recover_main == 0 and !@shielding
  582.       else
  583.         update_main_attack if @recover_main == 0 and !@shielding
  584.       end
  585.     end
  586.     if Shield::Enabled
  587.       if $game_party.members[0].dual_wield?
  588.         if Input.trigger?(Off_Hand_Key)
  589.           update_off_attack if @recover_off == 0
  590.         end
  591.       else
  592.         if !moving?
  593.           @shielding = Input.press?(Off_Hand_Key)
  594.         end
  595.       end
  596.     else
  597.       if $game_party.members[0].dual_wield?
  598.         if Input.trigger?(Off_Hand_Key)
  599.           update_off_attack if @recover_off == 0
  600.         end
  601.       end
  602.     end
  603.     if Input.press?(Change_SelectionKey)
  604.       @pressing = true
  605.       if Input.trigger?(SkillCast_Key)
  606.         change_selected_skill
  607.       end
  608.       if Input.trigger?(BuffCast_Key)
  609.         change_selected_buff
  610.       end
  611.       if Input.trigger?(ItemUse_Key)
  612.         change_selected_item
  613.       end
  614.     else
  615.       @pressing = false
  616.       if Input.trigger?(SkillCast_Key)
  617.         update_skill_cast if @recover_skill == 0
  618.       end
  619.       if Input.trigger?(BuffCast_Key)
  620.         update_buff_cast if @recover_skill == 0
  621.       end
  622.       if Input.trigger?(ItemUse_Key)
  623.         update_item_use if @recover_item == 0
  624.       end
  625.     end
  626.   end
  627.  
  628.   def update_item_use
  629.     return if @vehicle_type != :walk
  630.     return if @selected_item == nil
  631.     return if @recover_item > 0
  632.     item_use(@selected_item)
  633.   end
  634.  
  635.   def item_use(item)
  636.     return if @vehicle_type != :walk
  637.     $game_party.members[0].item_apply($game_party.members[0], item)
  638.     $game_party.consume_item(item)
  639.     @selected_item = nil if $game_party.item_number(item) == 0
  640.     $game_system.hud_need_refresh = true
  641.   end
  642.  
  643.  
  644.   def update_buff_cast
  645.     return if @vehicle_type != :walk
  646.     return if @selected_buff == nil
  647.     return if @recover_skill > 0
  648.     if skill_ok?(@selected_buff)
  649.       buff_cast(@selected_buff)
  650.     end
  651.   end
  652.  
  653.   def buff_cast(skill)
  654.     return if @vehicle_type != :walk
  655.     array = Buff_Skills[skill.id]
  656.     @recover_skill = array[0]
  657.     buff_cast!(self, skill)
  658.     $game_party.members[0].mp -= skill.mp_cost
  659.   end
  660.    
  661.   def update_skill_cast
  662.     return if @vehicle_type != :walk
  663.     return if @selected_skill == nil
  664.     return if @recover_skill > 0
  665.     if skill_ok?(@selected_skill)
  666.       skill_cast(@selected_skill)
  667.     end
  668.   end
  669.  
  670.   def skill_cast(skill)
  671.     return if @vehicle_type != :walk
  672.     array = Distance_Skills[skill.id]
  673.     @recover_skill = array[0]
  674.     $game_map.characters.push(Ranged::Hero_Skill.new(array[1], array[2], array[3], array[4], skill, self))
  675.     RPG::SE.new(array[5], 80).play rescue RPG::SE.new("Saint9", 80).play
  676.     $game_party.members[0].mp -= skill.mp_cost
  677.   end
  678.  
  679.   def skill_ok?(skill)
  680.     return if @vehicle_type != :walk
  681.     return false if skill.nil?
  682.     return false if !skill.is_a?(RPG::Skill)
  683.     return false if $game_party.members[0].mp - skill.mp_cost < 0
  684.     if not_cast?($game_party.members[0])
  685.       @recover_skill = 60
  686.       $game_map.damage_sprites.push(Sprites::Custom.new(self,"Cannot Cast"))
  687.       return false
  688.     end
  689.     return true
  690.   end
  691.  
  692.   def usable_skills
  693.     skills = $game_party.members[0].skills
  694.     return [] if skills.empty?
  695.     result = []
  696.     skills.each {|skill|
  697.       next if !Distance_Skills.keys.include?(skill.id)
  698.       result.push(skill)
  699.     }
  700.     result
  701.   end
  702.  
  703.   def usable_buffs
  704.     skills = $game_party.members[0].skills
  705.     return [] if skills.empty?
  706.     result = []
  707.     skills.each {|skill|
  708.       next if !Buff_Skills.keys.include?(skill.id)
  709.       result.push(skill)
  710.     }
  711.     result
  712.   end
  713.  
  714.   def usable_items
  715.     items = $game_party.items
  716.     actor = $game_party.members[0]
  717.     return if items.empty? or actor.nil?
  718.     result = []; munitions = []
  719.     Distance_Weapons.values.each {|array|
  720.       munitions.push(array[3])
  721.     }
  722.     items.each {|item| result.push(item) if actor.usable?(item) and !munitions.include?(item.id) }
  723.     result
  724.   end
  725.  
  726.   def change_selected_skill
  727.     return if usable_skills.nil?
  728.     if usable_skills.empty?
  729.       @selected_skill = nil
  730.       return
  731.     end
  732.     if @selected_skill.nil?
  733.       @selected_skill = usable_skills[0]
  734.       return
  735.     else
  736.       if usable_skills.size == 1
  737.         @selected_skill = usable_skills[0]
  738.         return
  739.       end
  740.       if usable_skills.include?(@selected_skill)
  741.         index = usable_skills.index(@selected_skill)
  742.         if index == usable_skills.size
  743.           @selected_skill = usable_skills[0]
  744.           return
  745.         else
  746.           @selected_skill = usable_skills[index + 1]
  747.           return
  748.         end
  749.       else
  750.         @selected_skill = nil
  751.         return
  752.       end
  753.     end
  754.   end
  755.  
  756.   def change_selected_buff
  757.     return if usable_buffs.nil?
  758.     if usable_buffs.empty?
  759.       @selected_buff = nil
  760.       return
  761.     end
  762.     if @selected_buff.nil?
  763.       @selected_buff = usable_buffs[0]
  764.       return
  765.     else
  766.       if usable_buffs.size == 1
  767.         @selected_buff = usable_buffs[0]
  768.         return
  769.       end
  770.       if usable_buffs.include?(@selected_buff)
  771.         index = usable_buffs.index(@selected_buff)
  772.         if index == usable_buffs.size
  773.           @selected_buff = usable_buffs[0]
  774.           return
  775.         else
  776.           @selected_buff = usable_buffs[index + 1]
  777.           return
  778.         end
  779.       else
  780.         @selected_buff = nil
  781.         return
  782.       end
  783.     end
  784.   end
  785.  
  786.   def change_selected_item
  787.     return if usable_items.nil?
  788.     if usable_items.empty?
  789.       @selected_item = nil
  790.       return
  791.     end
  792.     if @selected_item.nil?
  793.       @selected_item = usable_items[0]
  794.       return
  795.     else
  796.       if usable_items.size == 1
  797.         @selected_item = usable_items[0]
  798.         return
  799.       end
  800.       if usable_items.include?(@selected_item)
  801.         index = usable_items.index(@selected_item)
  802.         if index == usable_items.size
  803.           @selected_item = usable_items[0]
  804.           return
  805.         else
  806.           @selected_item = usable_items[index + 1]
  807.           return
  808.         end
  809.       else
  810.         @selected_item = nil
  811.         return
  812.       end
  813.     end
  814.   end
  815.  
  816.   def update_ranged
  817.     return if @vehicle_type != :walk
  818.     return if @recover_main > 0
  819.     if not_attack?($game_party.members[0])
  820.       @recover_main = 60
  821.       $game_map.damage_sprites.push(Sprites::Custom.new(self,"Cannot Attack"))
  822.       return
  823.     end
  824.     array = Distance_Weapons[$game_party.members[0].weapons[0].id]
  825.     item = ($data_items[array[3]] rescue false)
  826.     if !item.is_a?(FalseClass)
  827.       if !$game_party.items.include?(item)
  828.         RPG::SE.new('Buzzer1',80).play
  829.         @recover_main = 45
  830.         $game_map.damage_sprites.push(Sprites::Custom.new(self, 'No Ammo', Color.new(255,79,25)))
  831.         return
  832.       end
  833.       $game_party.lose_item(item, 1)
  834.     end
  835.     @recover_main = array[0]
  836.     RPG::SE.new(array[4], 80).play
  837.     $game_map.characters.push(Ranged::Hero_Ranged.new(array[1],array[2],array[5],array[6],$game_party.members[0].weapons[0],self))
  838.     SceneManager.scene.spriteset.hero_attack(self, $game_party.members[0].weapons[0],true) if Show_Weapon_Sprites
  839.   end
  840.  
  841.   def update_main_attack
  842.     return if @vehicle_type != :walk
  843.     if !$game_party.members[0].weapons[0].nil?
  844.       SceneManager.scene.spriteset.hero_attack(self, $game_party.members[0].weapons[0]) if Show_Weapon_Sprites
  845.     end
  846.     @recover_main = Default_RecoverMain
  847.     if not_attack?($game_party.members[0])
  848.       $game_map.damage_sprites.push(Sprites::Custom.new(self,"Cannot Attack"))
  849.       return
  850.     end
  851.     if !Player_Effects::Attack_SE[$game_party.members[0].actor.id].nil?
  852.       r = rand(Player_Effects::Attack_SE[$game_party.members[0].actor.id].size)
  853.       se_now = Player_Effects::Attack_SE[$game_party.members[0].actor.id][r]
  854.       RPG::SE.new(se_now, 80).play
  855.     end
  856.     attakable_enemies.each { |event|
  857.       if melee_ok?(self, event)
  858.         hero = $game_party.members[0]
  859.         damage_enemy(event, hero.atk, self, hero.weapons[0], crit?)
  860.         break
  861.       end
  862.     }
  863.   end
  864.  
  865.   def update_off_attack
  866.     return if @vehicle_type != :walk
  867.     if !$game_party.members[0].weapons[1].nil?
  868.       SceneManager.scene.spriteset.hero_attack(self, $game_party.members[1].weapons[0]) if Show_Weapon_Sprites
  869.     end
  870.     @recover_off = Default_RecoverOff
  871.     if not_attack?($game_party.members[0])
  872.       $game_map.damage_sprites.push(Sprites::Custom.new(self,"Cannot Attack"))
  873.       return
  874.     end
  875.     attakable_enemies.each { |event|
  876.       if melee_ok?(self, event)
  877.         hero = $game_party.members[0]
  878.         damage_enemy(event, hero.atk, self, hero.weapons[1], crit?)
  879.         break
  880.       end
  881.     }
  882.   end
  883.  
  884.   def movable?
  885.     if @vehicle_type != :walk
  886.       return im_movable
  887.     end
  888.     if (not_move?($game_party.battle_members[0]) rescue false)
  889.       if @restriction.nil?
  890.         @restriction = States::Move_Restriction
  891.       else
  892.         @restriction -= 1
  893.         if @restriction == 0
  894.           @restriction = nil
  895.           $game_party.battle_members[0].states.each {|state|
  896.             next if !States::Not_Move.include?(state.id)
  897.             $game_party.battle_members[0].remove_state(state.id)
  898.           }
  899.         end
  900.       end
  901.       if not $game_map.damage_sprites.any? {|sprite| next if !sprite.is_a?(Sprites::Custom); sprite.text == "Cannot Move!" and sprite.target == self}
  902.         $game_map.damage_sprites.push(Sprites::Custom.new(self,"Cannot Move!"))
  903.       end
  904.       return false
  905.     end
  906.     return false if @shielding or @pressing
  907.     return im_movable
  908.   end
  909.  
  910.   def crit?
  911.     r = rand(99) + 1
  912.     return true if $game_party.members[0].cri * 100 >= r
  913.     return false
  914.   end
  915.  
  916.   def evaded?
  917.     if not_evade; not_evade = false; return false; end
  918.     r = rand(99) + 1
  919.     return true if $game_party.members[0].eva * 100 >= r
  920.     return false
  921.   end
  922.  
  923.   def perform_kill
  924.     return if @killed
  925.     @performing = true
  926.     return if @vehicle_type != :walk
  927.     @opacity > 0 ? @opacity -= 10 : @killed = true
  928.     if @killed
  929.       @opacity = 0
  930.     end
  931.   end
  932. end
  933.  
  934. class Game_Battler < Game_BattlerBase
  935.  
  936.   alias apply item_apply
  937.  
  938.   def item_apply(user, item)
  939.     if user == $game_party.members[0]
  940.       player = $game_player
  941.       @result.clear
  942.       @result.used = item_test(user, item)
  943.       @result.missed = (@result.used && rand >= item_hit(user, item))
  944.       @result.evaded = (!@result.missed && rand < item_eva(user, item))
  945.       if @result.hit?
  946.         $game_map.damage_sprites.push(Sprites::Custom.new(player, "Used item!", Color.new(71,255,95)))
  947.         player.animation_id = item.animation_id
  948.         unless item.damage.none?
  949.           @result.critical = (rand < item_cri(user, item))
  950.           make_damage_value(user, item)
  951.           execute_damage(user)
  952.         end
  953.         item.effects.each {|effect|item_effect_apply(user, item, effect) }
  954.         item_user_effect(user, item)
  955.       else
  956.         $game_map.damage_sprites.push(Sprites::Custom.new(player, "Failed"))
  957.         $game_party.gain_item(item, 1, false, true)
  958.       end
  959.     else
  960.       apply(user, item)
  961.     end
  962.   end
  963. end
  964.  
  965. class Game_Party < Game_Unit
  966.  
  967.   include Imperial_Config
  968.  
  969.   alias metodo_aliasado_com_sucesso gain_item
  970.   alias metodo_aliasado_success gain_gold
  971.  
  972.   def gain_item(item, amount, include_equip = false, not_pop = false)
  973.     if amount < 0
  974.       not_pop = true
  975.     end
  976.     if not_pop
  977.       metodo_aliasado_com_sucesso(item, amount, include_equip)
  978.       return
  979.     end
  980.     if Show_Item_Windows
  981.       $game_system.hud_need_refresh = true
  982.       $game_map.windows.push(Imperial::Pop.new(item)) if not amount < 0 and !include_equip
  983.     end
  984.     metodo_aliasado_com_sucesso(item, amount, include_equip)
  985.   end
  986.  
  987.   def gain_gold(amount)
  988.     if Show_Item_Windows
  989.       $game_map.windows.push(Imperial::Pop.new(amount, true)) if not amount < 0
  990.     end
  991.     metodo_aliasado_success(amount)
  992.   end
  993. end
  994. #------------------------------------------------------------------------------
  995. class Game_Follower < Game_Character
  996.  
  997.   include Imperial
  998.   include Imperial_Config
  999.  
  1000.   attr_accessor :killed
  1001.   attr_accessor :not_evade
  1002.   attr_accessor :minibar
  1003.   attr_accessor :recover_main
  1004.   attr_accessor :recover_off
  1005.   attr_accessor :recover_skill
  1006.   attr_accessor :enemies_around
  1007.   attr_accessor :target
  1008.   attr_accessor :battle
  1009.   attr_accessor :hit
  1010.   attr_reader   :member_index
  1011.   attr_reader   :bugged_it_all
  1012.  
  1013.   alias mas_initialize initialize
  1014.   alias mas_update update
  1015.   alias mas_gather gather?
  1016.   alias mas_chase chase_preceding_character
  1017.  
  1018.   def initialize(member_index, preceding_character)
  1019.     @battle = Followers::Enabled
  1020.     if @battle
  1021.       @killed = false; @not_evade = false
  1022.       @recover_main, @recover_off, @recover_skill, = 0,0,0
  1023.     end
  1024.     mas_initialize(member_index, preceding_character)
  1025.   end
  1026.  
  1027.   def chase_preceding_character
  1028.     if !$game_player.normal_walk?
  1029.       mas_chase
  1030.       return
  1031.     end
  1032.     return if @target
  1033.     mas_chase
  1034.   end
  1035.  
  1036.   def update
  1037.     super
  1038.     if !$game_player.normal_walk?
  1039.       mas_update
  1040.       return
  1041.     end
  1042.     if !Followers::Enabled
  1043.       mas_update
  1044.     else
  1045.       if @killed
  1046.         @transparent = true if !@transparent
  1047.         @through = true if !@through; @target = nil if !@target.nil?
  1048.         chase_preceding_character
  1049.         if !$game_party.battle_members[@member_index].nil?
  1050.           @killed = false if $game_party.battle_members[@member_index].hp >= 1
  1051.         end
  1052.       else
  1053.         if !$game_party.battle_members[@member_index].nil?
  1054.           if $game_party.battle_members[@member_index].hp <= 0
  1055.             perform_kill if @performing
  1056.             return
  1057.           end
  1058.         else
  1059.           @killed = true
  1060.           return
  1061.         end
  1062.         @through = false if @through
  1063.         @opacity = 255 if @opacity != 255
  1064.         @transparent = false if @transparent
  1065.         @move_speed = $game_player.real_move_speed
  1066.         battle_update if @battle
  1067.       end
  1068.     end
  1069.   end
  1070.  
  1071.   def battle_update
  1072.     return if !SceneManager.scene.is_a?(Scene_Map)
  1073.     return if $game_party.battle_members[@member_index].nil?
  1074.     if Minibar_Always and @minibar.nil?
  1075.       @minibar = Sprites::Minibar.new(self)
  1076.     end
  1077.     if @minibar.is_a?(Sprites::Minibar)
  1078.       @minibar.update
  1079.       @minibar = nil if @minibar.disposed?
  1080.     end
  1081.     @through = false if @through
  1082.     @recover_main -= 1 if @recover_main > 0
  1083.     @recover_off -= 1 if @recover_off > 0
  1084.     @recover_skill -= 1 if @recover_skill > 0
  1085.     if @wait_until_return
  1086.       @target = nil
  1087.       if abs_distance_to(self, $game_player) == @member_index
  1088.         @wait_until_return = false
  1089.       end
  1090.       chase_preceding_character
  1091.     end
  1092.     if @target.nil? and @wait_until_return != true
  1093.       refresh_target
  1094.     else
  1095.       if not @target.nil?
  1096.         if @x == @target.x and @y == @target.y
  1097.           move_random if !moving?
  1098.         end
  1099.       end
  1100.       return if @target.nil?
  1101.       @target = target_valid?
  1102.       update_attack_target
  1103.     end
  1104.   end
  1105.    
  1106.   def update_attack_target
  1107.     return if @target.nil?
  1108.     ranged = weapon_ranged?
  1109.     update_skills_attacks
  1110.     @wait_until_return = (abs_distance_to(self, $game_player) > Followers::Follow_Leader)
  1111.     return if @wait_until_return
  1112.     if !ranged
  1113.       if distance_from_target > 1
  1114.         move_toward_character(@target) if !moving?
  1115.       else
  1116.         turn_toward_character(@target) if !facing?(self, @target)
  1117.         update_melee_attacks
  1118.       end
  1119.     else
  1120.       actor = $game_party.battle_members[@member_index]
  1121.       array = Distance_Weapons[actor.weapons[0].id]
  1122.       if abs_distance_to(self, @target) < array[2]
  1123.         turn_toward_character(@target) if !facing?(self, @target)
  1124.         update_ranged
  1125.       else
  1126.         move_toward_character(@target) if !moving?
  1127.       end
  1128.     end
  1129.   end
  1130.  
  1131.   def target_valid?
  1132.     return nil if @target.nil?
  1133.     return nil if @target.enemy.nil?
  1134.     return nil if @target.enemy.hp <= 0
  1135.     return nil if !real_enemies.include?(@target)
  1136.     return @target
  1137.   end
  1138.  
  1139.   def distance_from_target
  1140.     return if @target.nil?
  1141.     return abs_distance_to(self, @target)
  1142.   end
  1143.  
  1144.   def weapon_ranged?
  1145.     actor = $game_party.battle_members[@member_index]
  1146.     return false if actor.nil?
  1147.     return false if actor.weapons[0].nil?
  1148.     return true if Distance_Weapons.keys.include?(actor.weapons[0].id)
  1149.     return false
  1150.   end
  1151.  
  1152.   def update_ranged
  1153.     return if @recover_main > 0
  1154.     actor = $game_party.battle_members[@member_index]
  1155.     array = Distance_Weapons[actor.weapons[0].id]
  1156.     if not_attack?(actor)
  1157.       @recover_main = 60
  1158.       $game_map.damage_sprites.push(Sprites::Custom.new(self,"Cannot Attack"))
  1159.       return
  1160.     end
  1161.     if ranged_ok?(self, @target, array[2])
  1162.       w = actor.weapons[0]
  1163.       SceneManager.scene.spriteset.hero_attack(self,w,true) if Show_Weapon_Sprites
  1164.       $game_map.characters.push(Ranged::Hero_Ranged.new(array[1],array[2],array[5],array[6],w,self))
  1165.       RPG::SE.new((array[4] rescue "Bow1"),80).play
  1166.       @recover_main = array[0]
  1167.     else
  1168.       move_toward_character(@target) if !moving?
  1169.     end
  1170.   end
  1171.  
  1172.   def update_skills_attacks
  1173.     return if @recover_skill > 0
  1174.     if rand(2) == 0
  1175.       @recover_skill = 80
  1176.       return
  1177.     end
  1178.     actor = $game_party.battle_members[@member_index]
  1179.     return if actor.nil?
  1180.     if !usable_buffs.empty?
  1181.       if actor.hp * 100 <= actor.mhp * 50
  1182.         buff_now = usable_buffs.shuffle[0]
  1183.         if buff_castable?(buff_now)
  1184.           cast_buff(buff_now)
  1185.           return
  1186.         end
  1187.       end
  1188.     end
  1189.     return if usable_skills.empty?
  1190.     skill_now = usable_skills.shuffle[0]
  1191.     if skill_ok?(skill_now)
  1192.       cast_skill(skill_now)
  1193.     else
  1194.       @recover_skill = 60
  1195.     end
  1196.   end
  1197.  
  1198.   def buff_castable?(buff)
  1199.     array = Buff_Skills[buff.id]
  1200.     actor = $game_party.battle_members[@member_index]
  1201.     return false if actor.nil?
  1202.     return false if buff.damage.to_hp? and actor.hp == actor.mhp
  1203.     return false if buff.damage.to_mp? and actor.mp == actor.mmp
  1204.     return false if actor.mp - buff.mp_cost < 0
  1205.     return false if @recover_skill > 0
  1206.     return true
  1207.   end
  1208.  
  1209.   def cast_buff(buff)
  1210.     array = Buff_Skills[buff.id]
  1211.     actor = $game_party.battle_members[@member_index]
  1212.     @recover_skill = array[0] + 10
  1213.     return if actor.nil?
  1214.     buff_cast!(self, buff)
  1215.     actor.mp -= buff.mp_cost
  1216.   end
  1217.  
  1218.   def usable_buffs
  1219.     return [] if @killed
  1220.     return [] if actor.nil?
  1221.     result = []
  1222.     result if actor.skills.empty?
  1223.     actor.skills.each {|skill|
  1224.       result.push(skill) if Buff_Skills.keys.include?(skill.id)
  1225.     }
  1226.     result
  1227.   end
  1228.  
  1229.   def cast_skill(skill)
  1230.     array = Distance_Skills[skill.id]
  1231.     actor = $game_party.battle_members[@member_index]
  1232.     @recover_skill = array[0] + 10
  1233.     return if actor.nil?
  1234.     actor.mp -= skill.mp_cost
  1235.     RPG::SE.new((array[5] rescue "Saint9"),80).play
  1236.     $game_map.characters.push(Ranged::Hero_Skill.new(array[1], array[2], array[3], array[4], skill, self))
  1237.   end
  1238.  
  1239.   def skill_ok?(skill)
  1240.     array = Distance_Skills[skill.id]
  1241.     actor = $game_party.battle_members[@member_index]
  1242.     return false if actor.nil?
  1243.     return true if ranged_ok?(self, @target, array[2]) and actor.mp - skill.mp_cost >= 0
  1244.   end
  1245.  
  1246.   def usable_skills
  1247.     return [] if @killed
  1248.     return [] if actor.nil?
  1249.     result = []
  1250.     result if actor.skills.empty?
  1251.     actor.skills.each {|skill|
  1252.       result.push(skill) if Distance_Skills.keys.include?(skill.id)
  1253.     }
  1254.     result
  1255.   end
  1256.  
  1257.   def update_melee_attacks
  1258.     actor = $game_party.battle_members[@member_index]
  1259.     return if actor.nil?
  1260.     update_main
  1261.   end
  1262.  
  1263.   def update_main
  1264.     return if @killed
  1265.     return if @recover_main > 0
  1266.     if melee_ok?(self, @target)
  1267.       attack_enemy(@target)
  1268.     end
  1269.   end
  1270.  
  1271.   def update_off(weapon)
  1272.     return if @killed
  1273.     return if @target.nil?
  1274.     return if weapon.nil?
  1275.     return if @recover_off > 0
  1276.     if melee_ok?(@target)
  1277.       attack_target(weapon)
  1278.       @recover_off = Recover_For_Off_Weapon
  1279.     end
  1280.   end
  1281.  
  1282.   def attack_enemy(event)
  1283.     return if event.nil?
  1284.     @recover_main = Default_RecoverMain + 10
  1285.     actor = $game_party.battle_members[@member_index]
  1286.     return if actor.nil?
  1287.     if actor.weapons[0] != nil and Show_Weapon_Sprites
  1288.       SceneManager.scene.spriteset.hero_attack(self, actor.weapons[0])
  1289.     end
  1290.     damage_enemy(event, actor.atk, self, actor.weapons[0], false)
  1291.   end
  1292.  
  1293.   def update_target_clear
  1294.     return true if @target.nil?
  1295.     return true if @target.enemy.nil?
  1296.     return true if real_enemies.empty?
  1297.     return true if @target.enemy.hp <= 0
  1298.     return true if abs_distance_to(self, $game_player) >= Followers::Follow_Leader
  1299.     return true if distance_from_target >= Followers::Distance_Battle
  1300.     return true if !real_enemies.include?(@target)
  1301.     return false
  1302.   end
  1303.  
  1304.   def refresh_target
  1305.     return if $game_map.enemies.empty?
  1306.     battle_range = Followers::Distance_Battle
  1307.     real_enemies.shuffle.each {|enemy|
  1308.       if abs_distance_to(self, enemy) <= battle_range
  1309.         @target = enemy; break
  1310.       end
  1311.     }
  1312.   end
  1313.  
  1314.   def gather?
  1315.     if !$game_player.normal_walk?
  1316.       @through = true
  1317.       return mas_gather
  1318.     end
  1319.     return true if @killed
  1320.     if @battle == false; return mas_gather; else; return @target.nil?; end
  1321.   end
  1322.    
  1323.   def crit?
  1324.     return if actor.nil?
  1325.     r = rand(99) + 1
  1326.     return true if actor.cri * 100 >= r
  1327.     return false
  1328.   end
  1329.  
  1330.   def evaded?
  1331.     return if actor.nil?
  1332.     if not_evade; not_evade = false; return false; end
  1333.     r = rand(99) + 1
  1334.     return true if actor.eva * 100 >= r
  1335.     return false
  1336.   end
  1337.  
  1338.   def perform_kill
  1339.     return if @killed
  1340.     @performing = true
  1341.     @opacity > 0 ? @opacity -= 10 : @killed = true
  1342.     if @killed
  1343.       @opacity = 0
  1344.       @transparent = true
  1345.     end
  1346.   end
  1347. end
  1348.  
  1349. class Game_Party < Game_Unit
  1350.   alias swap swap_order
  1351.  
  1352.   def swap_order(index1, index2, killing = false)
  1353.     if killing == false
  1354.       if $game_party.members[index1].hp <= 0 or $game_party.members[index2].hp <= 0
  1355.         Audio.se_stop
  1356.         RPG::SE.new("Buzzer1",80).play
  1357.         return
  1358.       end
  1359.     end
  1360.     swap(index1, index2)
  1361.     if (index1 or index2) == 0
  1362.       $game_player.selected_skill = nil
  1363.       $game_player.selected_buff = nil
  1364.     end
  1365.   end
  1366. end
  1367. class Game_Actor < Game_Battler
  1368.  
  1369.   alias message show_added_states
  1370.   alias message show_removed_states
  1371.   alias message display_level_up
  1372.  
  1373.   def display_level_up(new_skills)
  1374.     $game_party.battle_members.each_with_index {|actor, i|
  1375.       next if actor != self
  1376.       index = i
  1377.     }
  1378.     return if index.nil?
  1379.     if index == 0
  1380.       hero = $game_player
  1381.     else
  1382.       $game_player.followers.each {|follower|
  1383.         next if follower.member_index != index
  1384.         hero = follower
  1385.       }
  1386.     end
  1387.     return if hero.nil?
  1388.     hero.animation_id = Imperial_Config::LevelUp_Animation
  1389.     $game_map.damage_sprites.push(Sprites::Custom.new(hero, "LEVEL UP!"))
  1390.   end
  1391.  
  1392.   def show_added_states
  1393.     return if @result.added_state_objects.empty?
  1394.     $game_party.battle_members.each_with_index {|actor, i|
  1395.       next if actor != self
  1396.       index = i
  1397.     }
  1398.     return if index.nil?
  1399.     if index == 0
  1400.       hero = $game_player
  1401.     else
  1402.       $game_player.followers.each {|follower|
  1403.         next if follower.member_index != index
  1404.         hero = follower
  1405.       }
  1406.     end
  1407.     return if hero.nil?
  1408.     $game_map.damage_sprites.push(Sprites::Custom.new(hero, "State added!"))
  1409.   end
  1410.  
  1411.   def show_removed_states
  1412.     return if @result.removed_state_objects.empty?
  1413.     $game_party.battle_members.each_with_index {|actor, i|
  1414.       next if actor != self
  1415.       index = i
  1416.     }
  1417.     return if index.nil?
  1418.     if index == 0
  1419.       hero = $game_player
  1420.     else
  1421.       $game_player.followers.each {|follower|
  1422.         next if follower.member_index != index
  1423.         hero = follower
  1424.       }
  1425.     end
  1426.     return if hero.nil?
  1427.     $game_map.damage_sprites.push(Sprites::Custom.new(hero, "State removed!"))
  1428.   end
  1429. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement