Advertisement
Xypher2013

Copy enemy skill

Mar 11th, 2014
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.97 KB | None | 0 0
  1. #Copy enemy skill
  2. #Xypher
  3. module Copyskill
  4.  
  5.   Exclusion_list = [1, 2, 6, 7]
  6.   Regex = /<mimic skill>/i
  7.  
  8. end
  9.  
  10. class Game_Battler < Game_BattlerBase
  11.  
  12.   def skills_list
  13.     temp = []
  14.     if self.enemy?
  15.       enemy.actions.each {|skill| temp.push(skill.skill_id) unless Copyskill::Exclusion_list.include?(skill.skill_id)}
  16.     else
  17.       temp = (@skills | added_skills).sort
  18.     end
  19.     return temp.uniq
  20.   end
  21.  
  22. end
  23.  
  24. class Scene_Battle
  25.  
  26.   alias x135739593 apply_item_effects
  27.   def apply_item_effects(target, item)
  28.     if item.note =~ Copyskill::Regex && @subject.copied_skill.empty? && @subject.actor?
  29.     e = true
  30.     c = target.skills_list.sample
  31.     d = $data_skills[c].name
  32.     @subject.copied_skill.push(c)
  33.     end
  34.     @log_window.add_text(sprintf("%s was copied!", d)) if e
  35.     e = false
  36.     x135739593(target, item)
  37.   end
  38.  
  39. end
  40.  
  41. class Game_Actor < Game_Battler
  42.  
  43.   def skills
  44.     (@skills | added_skills | @copied_skill).sort.collect {|id| $data_skills[id] }
  45.   end
  46.  
  47.   attr_accessor :copied_skill
  48.  
  49.   alias x563486452 initialize
  50.   def initialize(actor_id)
  51.     x563486452(actor_id)
  52.     @copied_skill = []
  53.   end
  54.  
  55.   def on_battle_end
  56.     super
  57.     @copied_skill.clear
  58.   end
  59.  
  60. end
  61.  
  62. class Window_SkillList < Window_Selectable
  63.  
  64.   alias x215435435 include?
  65.   def include?(item)
  66.     return false if item.note =~ Copyskill::Regex && !@actor.copied_skill.empty?
  67.     x215435435(item)
  68.   end
  69.  
  70. end
  71.  
  72. class Game_ActionResult
  73.   attr_accessor :cs_added_msg
  74.  
  75.   def clear_cs_added_messages
  76.     @cs_added_msg = []
  77.   end
  78.  
  79.   alias cs_actionresult_clear clear
  80.   def clear
  81.     cs_actionresult_clear
  82.     clear_cs_added_messages
  83.   end
  84.  
  85. end
  86.  
  87. class Window_BattleLog
  88.  
  89.   alias cs_battlelog_display_affected_status display_affected_status
  90.   def display_affected_status(target, item)
  91.     target.result.cs_added_msg.each {|text|
  92.       add_text(text)
  93.       wait
  94.     }
  95.     cs_battlelog_display_affected_status(target, item)
  96.   end
  97. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement