127 lines
5.0 KiB
Ruby
127 lines
5.0 KiB
Ruby
# -*- coding: utf-8 -*-
|
|
#==============================================================================
|
|
# ** Window_Status
|
|
#------------------------------------------------------------------------------
|
|
# This window displays full status specs on the status screen.
|
|
#==============================================================================
|
|
|
|
class Window_Status < Window_Selectable
|
|
#--------------------------------------------------------------------------
|
|
# * Object Initialization
|
|
#--------------------------------------------------------------------------
|
|
def initialize(actor)
|
|
super(0, 0, Graphics.width, Graphics.height)
|
|
@actor = actor
|
|
refresh
|
|
activate
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Set Actor
|
|
#--------------------------------------------------------------------------
|
|
def actor=(actor)
|
|
return if @actor == actor
|
|
@actor = actor
|
|
refresh
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Refresh
|
|
#--------------------------------------------------------------------------
|
|
def refresh
|
|
contents.clear
|
|
draw_block1 (line_height * 0)
|
|
draw_horz_line(line_height * 1)
|
|
draw_block2 (line_height * 2)
|
|
draw_horz_line(line_height * 6)
|
|
draw_block3 (line_height * 7)
|
|
draw_horz_line(line_height * 13)
|
|
draw_block4 (line_height * 14)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Draw Block 1
|
|
#--------------------------------------------------------------------------
|
|
def draw_block1(y)
|
|
draw_actor_name(@actor, 4, y)
|
|
draw_actor_class(@actor, 128, y)
|
|
draw_actor_nickname(@actor, 288, y)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Draw Block 2
|
|
#--------------------------------------------------------------------------
|
|
def draw_block2(y)
|
|
draw_actor_face(@actor, 8, y)
|
|
draw_basic_info(136, y)
|
|
draw_exp_info(304, y)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Draw Block 3
|
|
#--------------------------------------------------------------------------
|
|
def draw_block3(y)
|
|
draw_parameters(32, y)
|
|
draw_equipments(288, y)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Draw Block 4
|
|
#--------------------------------------------------------------------------
|
|
def draw_block4(y)
|
|
draw_description(4, y)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Draw Horizontal Line
|
|
#--------------------------------------------------------------------------
|
|
def draw_horz_line(y)
|
|
line_y = y + line_height / 2 - 1
|
|
contents.fill_rect(0, line_y, contents_width, 2, line_color)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Get Color of Horizontal Line
|
|
#--------------------------------------------------------------------------
|
|
def line_color
|
|
color = normal_color
|
|
color.alpha = 48
|
|
color
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Draw Basic Information
|
|
#--------------------------------------------------------------------------
|
|
def draw_basic_info(x, y)
|
|
draw_actor_level(@actor, x, y + line_height * 0)
|
|
draw_actor_icons(@actor, x, y + line_height * 1)
|
|
draw_actor_hp(@actor, x, y + line_height * 2)
|
|
draw_actor_mp(@actor, x, y + line_height * 3)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Draw Parameters
|
|
#--------------------------------------------------------------------------
|
|
def draw_parameters(x, y)
|
|
6.times {|i| draw_actor_param(@actor, x, y + line_height * i, i + 2) }
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Draw Experience Information
|
|
#--------------------------------------------------------------------------
|
|
def draw_exp_info(x, y)
|
|
s1 = @actor.max_level? ? "-------" : @actor.exp
|
|
s2 = @actor.max_level? ? "-------" : @actor.next_level_exp - @actor.exp
|
|
s_next = sprintf(Vocab::ExpNext, Vocab::level)
|
|
change_color(system_color)
|
|
draw_text(x, y + line_height * 0, 180, line_height, Vocab::ExpTotal)
|
|
draw_text(x, y + line_height * 2, 180, line_height, s_next)
|
|
change_color(normal_color)
|
|
draw_text(x, y + line_height * 1, 180, line_height, s1, 2)
|
|
draw_text(x, y + line_height * 3, 180, line_height, s2, 2)
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Draw Equipment
|
|
#--------------------------------------------------------------------------
|
|
def draw_equipments(x, y)
|
|
@actor.equips.each_with_index do |item, i|
|
|
draw_item_name(item, x, y + line_height * i)
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Draw Description
|
|
#--------------------------------------------------------------------------
|
|
def draw_description(x, y)
|
|
draw_text_ex(x, y, @actor.description)
|
|
end
|
|
end
|