Zouzaka

Bombe a Retardement

Apr 2nd, 2014
100
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. =begin
  2. Auteur : Zouzaka
  3. Description :
  4. Permet de créer un sort de bombe a retardement.
  5. Utilisation :
  6. Mettez les ID des sorts qui place la bombe a la ligne : 12
  7. Mettez l'id du sort de l'explosition a la ligne : 13
  8. Metter le nombre de tour pour l'explosition de la bombe a la ligne : 14
  9. Modifier le texte qui indique les tours restants avant l'explosion a la ligne : 15
  10. =end
  11. module Bombe
  12.   ID = [129]
  13.   Explosion_id = 130
  14.   Turn_number = 3
  15.   Vocab = "Plus que %s tours avant l'explosion de la bombe"
  16. end
  17. #=========================== Fin des modifications =============================
  18. class Scene_Battle < Scene_Base
  19.   alias :z_start :start
  20.   alias :z_turn_start :turn_start
  21.   alias :z_on_enemy_ok :on_enemy_ok
  22.   alias :z_on_skill_ok :on_skill_ok
  23.   def start
  24.     super
  25.     z_start
  26.     @used_skill = []
  27.   end
  28.   def on_skill_ok
  29.     @skill = @skill_window.item
  30.     Bombe::ID.each do |id|
  31.       @used_skill.insert(-1, [id, 0]) if @skill.id = id
  32.     end
  33.     if is_bombe? #Verifier si le sort utilisé est une bombe
  34.       @bombe_active = true
  35.       @used_skill.each{|id| $data_skills[id[0]].occasion = 3}
  36.     end
  37.     z_on_skill_ok
  38.   end
  39.   def on_enemy_ok #Recuperer la cible de la bombe et celui qui l'a placé
  40.     @cible = @enemy_window.enemy.index if @bombe_active
  41.     @lanceur = BattleManager.actor if @bombe_active
  42.     z_on_enemy_ok
  43.   end
  44.   def turn_start # Verification du temps pour l'explosion
  45.     if @bombe_active
  46.       @used_skill.each do |skill|
  47.         if skill[1] != Bombe::Turn_number
  48.           skill[1] += 1
  49.           fmt = Bombe::Vocab
  50.           new_voc = sprintf(fmt, Bombe::Turn_number-skill[1]+1)
  51.           @log_window.add_text(new_voc)
  52.         else
  53.           skill[1] = 0
  54.           @bombe_active = false
  55.           $data_skills[skill[0]].occasion = 1
  56.           @lanceur.explose_bombe(@cible)
  57.         end
  58.       end
  59.     end
  60.     z_turn_start
  61.   end
  62.   def is_bombe?
  63.     Bombe::ID.each do |id|#Verification si le sort utilisé est une bombe
  64.       return true if @skill.id = id
  65.     end
  66.   end
  67. end
  68. #===============================================================================
  69. class Game_Unit
  70.   alias :z_on_battle_end :on_battle_end
  71.   def on_battle_end
  72.     z_on_battle_end
  73.     Bombe::ID.each{|id| $data_skills[id[0]].occasion = 3}
  74.   end
  75. end
  76. #===============================================================================
  77. class Game_Battler < Game_BattlerBase
  78.   def explose_bombe(cible)
  79.     action = Game_Action.new(self, true)
  80.     action.set_skill(Bombe::Explosion_id)
  81.     action.target_index = cible
  82.     @actions.push(action)
  83.   end
  84. end
RAW Paste Data