#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
# This class performs map screen processing.
#==============================================================================
class Scene_Map
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias tak_map_main main
alias tak_map_update update
#--------------------------------------------------------------------------
# * Main Processing
#--------------------------------------------------------------------------
def main
@hud_sprite = Window_HUD.new
@hud_window = Window_HUDFACE.new
tak_map_main
@hud_sprite.dispose
@hud_window.dispose
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
@hud_sprite.update
tak_map_update
end
end
#=============================================================================
# ** Game_Actor
#-----------------------------------------------------------------------------
# This small edit is made to show characetr exp as a bar
#=============================================================================
class Game_Actor < Game_Battler
def now_exp
return @exp - @exp_list[@level]
end
def next_exp
return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
end
end
#==============================================================================
# ** Window_HUDFACE
#------------------------------------------------------------------------------
# This window will draw the characters Image.-
#==============================================================================
class Window_HUDFACE < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(-2, 360, 118, 124)
self.contents = Bitmap.new(width - 32, height - 32)
self.opacity = 0
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
@actor = $game_party.actors[0]
suffix = "_face"
bitmap = RPG::Cache.picture(@actor.name + suffix)
self.contents.blt(0, 0, bitmap, Rect.new(0, 0, bitmap.width, bitmap.height))
end
end
#==============================================================================
# ** Window_HUD
#------------------------------------------------------------------------------
# This window draws the HUD, with HP, SP and exp bar.
#==============================================================================
class Window_HUD < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(-15, 350, 320, 160)
self.contents = Bitmap.new(width - 32, height - 32)
self.opacity = 0
@actor = $game_party.actors[0]
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
@old_hp = @actor.hp
@old_sp = @actor.sp
bitmap = RPG::Cache.picture("HUD")
self.contents.blt(0, 0, bitmap, Rect.new(0, 0, bitmap.width, bitmap.height))
draw_bar(135, 17, @actor.hp, @actor.maxhp, 135, 8, Color.new(150, 0, 0, 255), Color.new(255, 0, 0, 255))
draw_bar(135, 53, @actor.sp, @actor.maxsp, 135, 8, Color.new(0, 0, 150, 255), Color.new(0, 0, 255, 255))
draw_bar(135, 90, @actor.now_exp, @actor.next_exp, 135, 8, Color.new(0, 150, 0, 255), Color.new(0, 255, 0, 255))
self.contents.font.size = 18
self.contents.font.italic = true
self.contents.font.color = Color.new(0, 0, 0)
self.contents.draw_text(162, 11, 150, 32, "#{@actor.hp}/#{@actor.maxhp}")
self.contents.draw_text(164, 11, 150, 32, "#{@actor.hp}/#{@actor.maxhp}")
self.contents.draw_text(162, 9, 150, 32, "#{@actor.hp}/#{@actor.maxhp}")
self.contents.draw_text(164, 9, 150, 32, "#{@actor.hp}/#{@actor.maxhp}")
self.contents.draw_text(162, 48, 150, 32, "#{@actor.sp}/#{@actor.maxsp}")
self.contents.draw_text(164, 48, 150, 32, "#{@actor.sp}/#{@actor.maxsp}")
self.contents.draw_text(162, 46, 150, 32, "#{@actor.sp}/#{@actor.maxsp}")
self.contents.draw_text(164, 46, 150, 32, "#{@actor.sp}/#{@actor.maxsp}")
self.contents.draw_text(170, 83, 150, 32, "#{@actor.now_exp}/#{@actor.next_exp}")
self.contents.draw_text(172, 83, 150, 32, "#{@actor.now_exp}/#{@actor.next_exp}")
self.contents.draw_text(170, 85, 150, 32, "#{@actor.now_exp}/#{@actor.next_exp}")
self.contents.draw_text(172, 85, 150, 32, "#{@actor.now_exp}/#{@actor.next_exp}")
self.contents.draw_text(104, 4, 150, 32, "HP:")
self.contents.draw_text(106, 4, 150, 32, "HP:")
self.contents.draw_text(104, 6, 150, 32, "HP:")
self.contents.draw_text(106, 6, 150, 32, "HP:")
self.contents.draw_text(104, 41, 150, 32, "SP:")
self.contents.draw_text(106, 41, 150, 32, "SP:")
self.contents.draw_text(104, 43, 150, 32, "SP:")
self.contents.draw_text(106, 43, 150, 32, "SP:")
self.contents.draw_text(104, 78, 150, 32, "XP:")
self.contents.draw_text(106, 78, 150, 32, "XP:")
self.contents.draw_text(104, 80, 150, 32, "XP:")
self.contents.draw_text(106, 80, 150, 32, "XP:")
self.contents.font.color = normal_color
self.contents.draw_text(105, 79, 150, 32, "XP:")
self.contents.draw_text(171, 84, 150, 32, "#{@actor.now_exp}/#{@actor.next_exp}")
self.contents.font.color = @actor.hp <= @actor.maxhp / 4 ? crisis_color :
@actor.hp == 0 ? knockout_color : normal_color
self.contents.draw_text(163, 10, 150, 32, "#{@actor.hp}/#{@actor.maxhp}")
self.contents.font.color = @actor.sp == 0 ? crisis_color : normal_color
self.contents.draw_text(163, 47, 150, 32, "#{@actor.sp}/#{@actor.maxsp}")
self.contents.draw_text(105, 5, 150, 32, "HP:")
self.contents.draw_text(105, 42, 150, 32, "SP:")
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
if @old_hp != $game_party.actors[0].hp or
@old_sp != $game_party.actors[0].sp or
@old_exp != $game_party.actors[0].now_exp
refresh
@old_hp = $game_party.actors[0].hp
@old_sp = $game_party.actors[0].sp
@old_exp = $game_party.actors[0].now_exp
end
end
end
#==============================================================================
# ** Window_Base
#------------------------------------------------------------------------------
# This class is for all in-game windows.
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# * Draw Slant Bar(by SephirothSpawn)
#--------------------------------------------------------------------------
def draw_bar(x, y, min, max, width = 152, height = 6,
bar_color = Color.new(150, 0, 0, 255), end_color = Color.new(255, 255, 60, 255))
# Draw Border
for i in 0..height
self.contents.fill_rect(x, y + height - i, width, 1, Color.new(50, 50, 50, 255))
end
# Draw Background
for i in 1..(height - 1)
r = 100 * (height - i) / height + 0 * i / height
g = 100 * (height - i) / height + 0 * i / height
b = 100 * (height - i) / height + 0 * i / height
a = 255 * (height - i) / height + 255 * i / height
self.contents.fill_rect(x, y + height - i, width, 1, Color.new(r, b, g, a))
end
# Draws Bar
for i in 1..( (min / max.to_f) * width - 1)
for j in 1..(height - 1)
r = bar_color.red * (width - i) / width + end_color.red * i / width
g = bar_color.green * (width - i) / width + end_color.green * i / width
b = bar_color.blue * (width - i) / width + end_color.blue * i / width
a = bar_color.alpha * (width - i) / width + end_color.alpha * i / width
self.contents.fill_rect(x + i - 1, y + height - j, 1, 1, Color.new(r, g, b, a))
end
end
end
end
#=========================
# THE END
#=========================