Advertisement
roninator2

Yami Order Battler patch - Vertical

Nov 18th, 2024
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 8.74 KB | None | 0 0
  1. # ╔═══════════════════════════════════════════════╦════════════════════╗
  2. # ║ Title: Order Battler patch for Yanfly Battle  ║  Version: 1.00     ║
  3. # ║ Author: Roninator2                            ║                    ║
  4. # ╠═══════════════════════════════════════════════╬════════════════════╣
  5. # ║ Function:                                     ║   Date Created     ║
  6. # ║                                               ╠════════════════════╣
  7. # ║   Script fix for order battlers               ║    14 Sep 2022     ║
  8. # ╚═══════════════════════════════════════════════╩════════════════════╝
  9. # ╔════════════════════════════════════════════════════════════════════╗
  10. # ║ Requires: Yanfly Battle Engine                                     ║
  11. # ║           Yami Order Battlers                                      ║
  12. # ╚════════════════════════════════════════════════════════════════════╝
  13. # ╔════════════════════════════════════════════════════════════════════╗
  14. # ║ Brief Description:                                                 ║
  15. # ║       Fix that allows vertical display                             ║
  16. # ╚════════════════════════════════════════════════════════════════════╝
  17. # ╔════════════════════════════════════════════════════════════════════╗
  18. # ║ Instructions:                                                      ║
  19. # ║   Set the number of battlers to show below                         ║
  20. # ║   Place below Order Battlers                                       ║
  21. # ╚════════════════════════════════════════════════════════════════════╝
  22. # ╔════════════════════════════════════════════════════════════════════╗
  23. # ║ Updates:                                                           ║
  24. # ║ 1.00 - 14 Sep 2022 - Script finished                               ║
  25. # ║                                                                    ║
  26. # ╚════════════════════════════════════════════════════════════════════╝
  27. # ╔════════════════════════════════════════════════════════════════════╗
  28. # ║ Credits and Thanks:                                                ║
  29. # ║   Roninator2                                                       ║
  30. # ║   Yami                                                             ║
  31. # ╚════════════════════════════════════════════════════════════════════╝
  32. # ╔════════════════════════════════════════════════════════════════════╗
  33. # ║ Terms of use:                                                      ║
  34. # ║  Follow the original Authors terms of use where applicable         ║
  35. # ║    - When not made by me (Roninator2)                              ║
  36. # ║  Free for all uses in RPG Maker except nudity                      ║
  37. # ║  Anyone using this script in their project before these terms      ║
  38. # ║  were changed are allowed to use this script even if it conflicts  ║
  39. # ║  with these new terms. New terms effective 03 Apr 2024             ║
  40. # ║  No part of this code can be used with AI programs or tools        ║
  41. # ║  Credit must be given                                              ║
  42. # ╚════════════════════════════════════════════════════════════════════╝
  43.  
  44. module R2_Order_Gauge_limit
  45.   Size = 8
  46. end
  47.  
  48. # ╔════════════════════════════════════════════════════════════════════╗
  49. # ║                      End of editable region                        ║
  50. # ╚════════════════════════════════════════════════════════════════════╝
  51.  
  52. class Sprite_OrderBattler < Sprite_Base
  53.   def update_dtb_style
  54.     #---
  55.     actor_window = SceneManager.scene.actor_window
  56.     enemy_window = SceneManager.scene.enemy_window
  57.     if actor_window.active
  58.       battler = actor_window.actor
  59.       if battler == @battler
  60.         @move_x = 36
  61.       else
  62.         @move_x = 24
  63.       end
  64.     end
  65.     if enemy_window.active
  66.       battler = enemy_window.enemy
  67.       if battler == @battler
  68.         @move_x = 36
  69.       else
  70.         @move_x = 24
  71.       end
  72.     end
  73.     if !actor_window.active && !enemy_window.active
  74.       @move_x = 24
  75.     end
  76.     #---
  77.     return if !@move_x && !@move_y
  78.     if @battler.hidden? || (!@show_dead && @battler.dead?)
  79.       self.opacity = -20
  80.     end
  81.     if self.y != @move_y && @move_y
  82.       if @move_y > self.y
  83.         @move_x = 16
  84.       elsif @move_y < self.y
  85.         @move_x = 34
  86.       else
  87.         @move_x = 20
  88.       end
  89.       self.z = (@move_y < self.y) ? 7500 : 8500
  90.       if @move_y >= self.y
  91.         self.y += [@move_rate_y, @move_y - self.y].min
  92.       else
  93.         self.y -= [@move_rate_y, - @move_y + self.y].min
  94.       end
  95.     end
  96.     if self.x != @move_x && @move_x
  97.       self.x += (self.x > @move_x) ? -@move_rate_x : @move_rate_x
  98.     end
  99.     if self.y == @move_y && @move_y
  100.       @first_time = false if @first_time
  101.       @move_y = nil
  102.     end
  103.     if self.x == @move_x && @move_x
  104.       @move_x = nil
  105.     end
  106.   end
  107.  
  108.   alias r2_update_opacity update
  109.   def update
  110.     r2_update_opacity
  111.     self.opacity = 0 if self.y < 0
  112.     self.opacity = 255 if self.y >= 0
  113.   end
  114.  
  115.   def make_dtb_destination
  116.     #---
  117.     BattleManager.performed_battlers = [] if !BattleManager.performed_battlers
  118.     array = BattleManager.performed_battlers.reverse
  119.     action = BattleManager.action_battlers.reverse - BattleManager.performed_battlers.reverse
  120.     array += action
  121.     action.uniq!
  122.     array.uniq!
  123.     #---
  124.     result = []
  125.     for member in array
  126.       next if member.hidden?
  127.       result.push(member) unless member.dead?
  128.       action.delete(member) if member.dead? and !@show_dead
  129.     end
  130.     if @show_dead
  131.       for member in array
  132.         next if member.hidden?
  133.         result.push(member) if member.dead?
  134.       end
  135.     end
  136.     #---
  137.     size = R2_Order_Gauge_limit::Size
  138.     limit = result.size
  139.     move_limit = limit - size
  140.     index = result.index(@battler).to_i
  141.     index = index - move_limit if limit > size
  142.     index = -4 if @battler.dead?
  143.     index = -4 if @battler.hidden?
  144.     @move_y = index * 24
  145.     if BattleManager.in_turn?
  146.       @move_y += 6 if action.include?(@battler)
  147.       @move_y += 6 if (index + 1 == result.size) and action.size > 1
  148.     end
  149.     den = @first_time ? 12 : 24
  150.     @move_rate_y = [((@move_y - self.y)/den).abs, 1].max
  151.   end
  152.  
  153. end
  154. class Scene_Battle < Scene_Base
  155.   alias order_gauge_party_update update
  156.   def update
  157.     order_gauge_party_update
  158.     if @party_command_window.active
  159.       @update_ordergauge = true
  160.     end
  161.   end
  162. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement