Advertisement
roninator2

Yami Order Battler Patch - Class Icons

Nov 18th, 2024
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 9.08 KB | None | 0 0
  1. # ╔═══════════════════════════════════════════════╦════════════════════╗
  2. # ║ Title: Order Battler Patch - Class Icons      ║  Version: 1.01     ║
  3. # ║ Author: Roninator2                            ║                    ║
  4. # ╠═══════════════════════════════════════════════╬════════════════════╣
  5. # ║ Function:                                     ║   Date Created     ║
  6. # ║                                               ╠════════════════════╣
  7. # ║   Patch for Yami order battlers Class Icons   ║    13 Sep 2022     ║
  8. # ╚═══════════════════════════════════════════════╩════════════════════╝
  9. # ╔════════════════════════════════════════════════════════════════════╗
  10. # ║ Requires: Yanfly Battle Engine                                     ║
  11. # ║           Yami Order Battlers                                      ║
  12. # ╚════════════════════════════════════════════════════════════════════╝
  13. # ╔════════════════════════════════════════════════════════════════════╗
  14. # ║ Brief Description:                                                 ║
  15. # ║     Order Battlers - Show Class Icons                              ║
  16. # ╚════════════════════════════════════════════════════════════════════╝
  17. # ╔════════════════════════════════════════════════════════════════════╗
  18. # ║ Instructions:                                                      ║
  19. # ║   Place below Order Battlers                                       ║
  20. # ║   Class Notetags - These notetags go in the class notebox          ║
  21. # ║     in the database.                                               ║
  22. # ║                                                                    ║
  23. # ║   <battler class icon: x>                                          ║
  24. # ║   Change actor's icon into x for class                             ║
  25. # ║                                                                    ║
  26. # ║   <class icon hue: x>                                              ║
  27. # ║   Change icon hue.                                                 ║
  28. # ╚════════════════════════════════════════════════════════════════════╝
  29. # ╔════════════════════════════════════════════════════════════════════╗
  30. # ║ Updates:                                                           ║
  31. # ║ 1.00 - 13 Sep 2022 - Script finished                               ║
  32. # ║ 1.01 - 13 Sep 2022 - added fix for memory leaks                    ║
  33. # ║                                                                    ║
  34. # ╚════════════════════════════════════════════════════════════════════╝
  35. # ╔════════════════════════════════════════════════════════════════════╗
  36. # ║ Credits and Thanks:                                                ║
  37. # ║   Roninator2                                                       ║
  38. # ║                                                                    ║
  39. # ╚════════════════════════════════════════════════════════════════════╝
  40. # ╔════════════════════════════════════════════════════════════════════╗
  41. # ║ Terms of use:                                                      ║
  42. # ║  Follow the original Authors terms of use where applicable         ║
  43. # ║    - When not made by me (Roninator2)                              ║
  44. # ║  Free for all uses in RPG Maker except nudity                      ║
  45. # ║  Anyone using this script in their project before these terms      ║
  46. # ║  were changed are allowed to use this script even if it conflicts  ║
  47. # ║  with these new terms. New terms effective 03 Apr 2024             ║
  48. # ║  No part of this code can be used with AI programs or tools        ║
  49. # ║  Credit must be given                                              ║
  50. # ╚════════════════════════════════════════════════════════════════════╝
  51.  
  52. module YSA
  53.   module REGEXP
  54.     module ACTOR
  55.       BATTLER_CLASS_ICON = /<(?:BATTLER_CLASS_ICON|battler class icon):[ ](\d+)?>/i
  56.       CLASS_ICON_HUE = /<(?:CLASS_ICON_HUE|class icon hue):[ ](\d+)?>/i
  57.     end # ACTOR
  58.   end
  59. end
  60.  
  61. class RPG::Class < RPG::BaseItem
  62.   attr_accessor :battler_class_icon
  63.   attr_accessor :class_icon_hue
  64.     def load_notetags_orbt
  65.     @battler_class_icon = YSA::ORDER_GAUGE::DEFAULT_ACTOR_ICON
  66.     #---
  67.     self.note.split(/[\r\n]+/).each { |line|
  68.       case line
  69.       #---
  70.       when YSA::REGEXP::ACTOR::BATTLER_CLASS_ICON
  71.         @battler_class_icon = $1.to_i
  72.       when YSA::REGEXP::ACTOR::CLASS_ICON_HUE
  73.         @class_icon_hue = $1.to_i
  74.       end
  75.     }
  76.   end
  77. end
  78.  
  79. class Game_Battler < Game_BattlerBase
  80.   def battler_class_icon
  81.     aci = $data_classes[actor.class_id]
  82.     aci.battler_class_icon
  83.   end
  84.   def battler_class_icon_hue
  85.     aci = $data_classes[actor.class_id]
  86.     aci.class_icon_hue
  87.   end
  88. end
  89.  
  90. module DataManager
  91.   def self.load_notetags_orbt
  92.     groups = [$data_enemies + $data_actors + $data_classes]
  93.     for group in groups
  94.       for obj in group
  95.         next if obj.nil?
  96.         obj.load_notetags_orbt
  97.       end
  98.     end
  99.   end
  100. end # DataManager
  101.  
  102. class Sprite_OrderBattler < Sprite_Base
  103.   def create_dtb_style
  104.     bitmap = Bitmap.new(24, 24)
  105.     if $imported["YEA-BattleEngine"]
  106.       icon_bitmap = $game_temp.iconset
  107.     else
  108.       icon_bitmap = Cache.system("IconSet")
  109.     end
  110.     #--- Create Battler Background ---
  111.     icon_index = @battler.actor? ? YSA::ORDER_GAUGE::BATTLER_ICON_BORDERS[:actor][0] : YSA::ORDER_GAUGE::BATTLER_ICON_BORDERS[:enemy][0]
  112.     rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
  113.     bitmap.blt(0, 0, icon_bitmap, rect)
  114.     #--- Create Battler Icon ---
  115.     ######## edited for class icons
  116.     if @battler.actor?
  117.       if @battler.battler_class_icon == YSA::ORDER_GAUGE::DEFAULT_ACTOR_ICON
  118.         icon_index = @battler.battler_icon
  119.       else
  120.         icon_index = @battler.battler_class_icon
  121.       end
  122.     else
  123.       icon_index = @battler.battler_icon
  124.     end
  125.     ########
  126.     rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
  127.     temp_bitmap = Bitmap.new(24, 24)
  128.     temp_bitmap.blt(0, 0, icon_bitmap, rect)
  129.     ######## edited for class hue
  130.     if @battler.actor?
  131.       temp_bitmap.hue_change(@battler.battler_icon_hue) if @battler.battler_icon_hue
  132.       temp_bitmap.hue_change(@battler.battler_class_icon_hue) if @battler.battler_class_icon_hue
  133.     else
  134.       temp_bitmap.hue_change(@battler.battler_icon_hue) if @battler.battler_icon_hue
  135.     end
  136.     ########
  137.     bitmap.blt(0, 0, temp_bitmap, Rect.new(0, 0, 24, 24))
  138.     temp_bitmap.dispose
  139.     #--- Create Battler Border ---
  140.     icon_index = @battler.actor? ? YSA::ORDER_GAUGE::BATTLER_ICON_BORDERS[:actor][1] : YSA::ORDER_GAUGE::BATTLER_ICON_BORDERS[:enemy][1]
  141.     rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
  142.     bitmap.blt(0, 0, icon_bitmap, rect)
  143.     #---
  144.     self.bitmap.dispose if self.bitmap != nil
  145.     self.bitmap = bitmap
  146.     return if @created_icon
  147.     @created_icon = true
  148.     self.ox = 12; self.oy = 12
  149.     self.x = 24 if @battle != :pctb2 && @battle != :pctb3
  150.     self.y = 24
  151.     self.z = 8000
  152.   end
  153. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement