# -*- 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