TheoAllen

Pearl patch

May 30th, 2014
501
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 5.12 KB | None | 0 0
  1. # =============================================================================
  2. module PearlBars
  3.   HP_BarDimentions = [96 + 12,   16,    118,    14]
  4.   MP_BarDimentions = [96 + 12,   36,    118,    14]
  5.   EX_BarDimentions = [96 + 12,   57,    118,    10]
  6.   TP_Info =    [96 + 12,  64]
  7. end
  8. # =============================================================================
  9. module PearlKernel
  10.   def self.draw_exp(obj, battler, x, y, w, h, color, name=nil)
  11.     tag = 'Inv' ; c = color
  12.     name = battler.name if !name.nil?
  13.     draw_gauge_exc(obj,$game_party.total_inv_size, $game_party.inv_max, x, y, w,
  14.       h, c, tag,name)
  15.   end
  16.  
  17.   # exclusive
  18.   def self.draw_gauge_exc(obj, nm, max, x, y, w, h, col, tag, name)
  19.     obj.font.shadow = true
  20.     w2 = w - 2 ; max = 1 if max == 0
  21.     obj.fill_rect(x, y - 1, w, h + 2, @gaugeback)
  22.     obj.fill_rect(x+1, y+1, w2*nm/max, h/2 - 1, col[0])
  23.     obj.fill_rect(x+1, y + h/2, w2*nm/max, h/2 - 1, col[1])
  24.     obj.draw_text(x, y + h - 22, w, 32, nm.to_s + "/" + max.to_s, 2)
  25.     obj.draw_text(x + 4, y + h - 22, w, 32, tag)
  26.     obj.draw_text(x, y - 25, w, 32, name, 1) if !name.nil?
  27.   end
  28. end
  29.  
  30. class Sprite_LifeBars < Sprite
  31.   def refresh_contents
  32.     self.bitmap.clear
  33.     self.bitmap.font.size = 19
  34.     @erasetimer = 180
  35.     self.opacity = 255
  36.     if battler.is_a?(Game_Actor)
  37.       # also this part
  38.       draw_actor_face(battler, 8, 16)
  39.       @old_exp = $game_party.total_inv_size
  40.       @old_tp = battler.tp
  41.       self.x = ScreenPos_X
  42.       self.y = ScreenPos_Y
  43.       h  = HP_BarDimentions ; m = MP_BarDimentions ; e = EX_BarDimentions
  44.       if PearlBars::ActorsHp != ""
  45.         @pimg = Cache.picture(PearlBars::ActorsHp)  if @pimg.nil?
  46.         @bimg = Cache.picture(PearlBars::ActorsBack) if @bimg.nil?
  47.         @pimp = Cache.picture(PearlBars::ActorsMp)  if @pimp.nil?
  48.         PearlKernel.image_hp(self.bitmap, h[0] + 4, h[1],@bimg,
  49.         @pimg, battler,true)
  50.         PearlKernel.image_mp(self.bitmap, m[0] + 4, m[1], @bimg, @pimp, battler)
  51.         if PearlBars::ActorsExp != ""
  52.           @piexp = Cache.picture(PearlBars::ActorsExp)  if @piexp.nil?
  53.           PearlKernel.image_exp(self.bitmap,e[0] + 4,e[1],@bimg,@piexp, battler)
  54.         end
  55.       else
  56.         hc = HP_Color ; mc = MP_Color ; ec = EX_Color
  57.         PearlKernel.draw_hp(self.bitmap,battler, h[0], h[1], h[2], h[3], hc)
  58.         PearlKernel.draw_mp(self.bitmap,battler, m[0], m[1], m[2], m[3], mc)
  59.         PearlKernel.draw_exp(self.bitmap,battler, e[0], e[1], e[2], e[3], ec)
  60.       end
  61.       PearlKernel.draw_tp(self.bitmap, TP_Info[0], TP_Info[1], battler)
  62.     else battler.is_a?(Game_Enemy)
  63.       if boss?
  64.         self.x = BeScreenPos_X
  65.         self.y = BeScreenPos_Y
  66.         h  = BHP_BarDimentions ; hc = BHP_Color
  67.         if PearlBars::BossEne != ""
  68.           @n_img = Cache.picture(PearlBars::BossEne) if @n_img.nil?
  69.           @n_back = Cache.picture(PearlBars::BossBack) if @n_back.nil?
  70.           PearlKernel.image_hp(self.bitmap, h[0] + 4, h[1],@n_back,
  71.           @n_img, battler,true)
  72.         else
  73.           PearlKernel.draw_hp(self.bitmap,battler, h[0],h[1],h[2], h[3],hc,true)
  74.         end
  75.       else
  76.         self.x = NeScreenPos_X
  77.         self.y = NeScreenPos_Y
  78.         h  = EHP_BarDimentions ; hc = EHP_Color
  79.         if PearlBars::NormalEne != ""
  80.           @n_img = Cache.picture(PearlBars::NormalEne) if @n_img.nil?
  81.           @n_back = Cache.picture(PearlBars::NormalBack) if @n_back.nil?
  82.           PearlKernel.image_hp(self.bitmap, h[0] + 4, h[1],@n_back,
  83.           @n_img, battler,true)
  84.         else
  85.           PearlKernel.draw_hp(self.bitmap,battler,h[0],h[1],h[2], h[3], hc,true)
  86.         end
  87.       end
  88.     end
  89.   end
  90.  
  91.   def update
  92.     super
  93.    
  94.    
  95.     if battler.nil?
  96.       dispose
  97.       return
  98.     end
  99.    
  100.     if @old_hp != battler.hp
  101.       refresh_contents
  102.       @old_hp = battler.hp
  103.     end
  104.     if @old_mp != battler.mp
  105.       refresh_contents
  106.       @character.actor.apply_usability if @character.is_a?(Game_Player)
  107.       @old_mp = battler.mp
  108.     end
  109.    
  110.     if battler.is_a?(Game_Actor)
  111.       # Edited this part
  112.       if @old_exp != $game_party.total_inv_size
  113.         @old_exp = $game_party.total_inv_size
  114.         refresh_contents
  115.       end
  116.       if @old_tp != battler.tp
  117.         @old_tp = battler.tp
  118.         @character.actor.apply_usability if @character.is_a?(Game_Player)
  119.         refresh_contents
  120.       end
  121.      
  122.     elsif battler.is_a?(Game_Enemy)
  123.       if boss?
  124.         dispose if battler.dead?
  125.       else
  126.         if @erasetimer > 0
  127.           @erasetimer -= 1
  128.           self.opacity -= 10 if @erasetimer <= 25
  129.           @states.opacity = self.opacity if !@states.nil?
  130.           dispose if @erasetimer == 0
  131.         end
  132.       end
  133.       update_enemy_status_icons
  134.     end
  135.   end
  136.  
  137.   def draw_face(face_name, face_index, x, y, enabled = true)
  138.     bitmap = Cache.face(face_name)
  139.     rect = Rect.new(face_index % 4 * 96, face_index / 4 * 96, 96, 96)
  140.     self.bitmap.blt(x, y, bitmap, rect, enabled ? 255 : 128)
  141.     bitmap.dispose
  142.   end
  143.  
  144.   def draw_actor_face(actor, x, y, enabled = true)
  145.     draw_face(actor.face_name, actor.face_index, x, y, enabled)
  146.   end
  147.  
  148. end
Advertisement
Add Comment
Please, Sign In to add comment