sacred-ritual-academy/Scripts/Window_Status.rb
2025-03-18 19:45:34 -05:00

125 lines
5.3 KiB
Ruby
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#==============================================================================
# ■ Window_Status
#------------------------------------------------------------------------------
#  ステータス画面で表示する、フル仕様のステータスウィンドウです。
#==============================================================================
class Window_Status < Window_Selectable
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize(actor)
super(0, 0, Graphics.width, Graphics.height)
@actor = actor
refresh
activate
end
#--------------------------------------------------------------------------
# ● アクターの設定
#--------------------------------------------------------------------------
def actor=(actor)
return if @actor == actor
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ● ブロック 1 の描画
#--------------------------------------------------------------------------
def draw_block1(y)
draw_actor_name(@actor, 60, y)
draw_actor_class(@actor, 4, y)
draw_actor_nickname(@actor, 200, y)
end
#--------------------------------------------------------------------------
# ● ブロック 2 の描画
#--------------------------------------------------------------------------
def draw_block2(y)
# draw_actor_face(@actor, 8, y)
draw_basic_info(8, y)
#  draw_exp_info(304, y)
end
#--------------------------------------------------------------------------
# ● ブロック 3 の描画
#--------------------------------------------------------------------------
def draw_block3(y)
draw_parameters(16, y)
draw_equipments(248, y)
end
#--------------------------------------------------------------------------
# ● ブロック 4 の描画
#--------------------------------------------------------------------------
def draw_block4(y)
draw_description(4, y)
end
#--------------------------------------------------------------------------
# ● 水平線の描画
#--------------------------------------------------------------------------
def draw_horz_line(y)
line_y = y + line_height / 2 - 1
contents.fill_rect(0, line_y, contents_width - 290 , 2, line_color)
end
#--------------------------------------------------------------------------
# ● 水平線の色を取得
#--------------------------------------------------------------------------
def line_color
color = normal_color
color.alpha = 48
color
end
#--------------------------------------------------------------------------
# ● 基本情報の描画
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ● 能力値の描画
#--------------------------------------------------------------------------
def draw_parameters(x, y)
6.times {|i| draw_actor_param(@actor, x - 20, y + line_height * i + 20 , i + 2 ) }
end
#--------------------------------------------------------------------------
# ● 経験値情報の描画
#--------------------------------------------------------------------------
# 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
#--------------------------------------------------------------------------
# ● 装備品の描画
#--------------------------------------------------------------------------
def draw_equipments(x, y)
@actor.equips.each_with_index do |item, i|
draw_item_name(item, x - 85, y + line_height * i -5)
end
end
#--------------------------------------------------------------------------
# ● 説明の描画
#--------------------------------------------------------------------------
def draw_description(x, y)
draw_text_ex(x, y, @actor.description)
end
end