# ▽△▽ XRXSv9. BaST-VX.BS5. DQっぽいバトルステータス ▽△▽ # # publish 2010/ 4/17 # update - /21b # #============================================================================== # カスタマイズコマンド #============================================================================== module XRXSV9 # # 上に表示する? # BSonHead = true end #============================================================================== # ステートの参照 #============================================================================== class Game_Battler def any_state? return @states.size >= 1 end end #============================================================================== # 上に表示する場合の定義 #============================================================================== if XRXSV9::BSonHead class Game_Battler def battlestatus_y return 128 end def battlestatus_cp_y return 128 end end class Game_Actor < Game_Battler def battlestatus_x(window_width = 416) return self.index * 96 end def battlestatus_offset return 0 end end class Scene_Battle < Scene_Base def battlestatus_offset return 0 end end class Window_BattleStatus < Window_Selectable def initialize super(0, 0, 416, 128) refresh self.active = false end end end #============================================================================== # ■ Window_BattleStatus #============================================================================== class Window_BattleStatus < Window_Selectable #-------------------------------------------------------------------------- # ● リフレッシュ #-------------------------------------------------------------------------- def refresh @spacing = 1 @item_max = $game_party.members.size @column_max = @item_max self.contents.clear draw_frame for i in 0...@item_max draw_item(i) end self.opacity = 0 end #-------------------------------------------------------------------------- # フレームの描画 #-------------------------------------------------------------------------- def draw_frame x2 = @item_max * 96 - 16 y2 = self.contents.height - 16 skin = self.windowskin skin_rect = Rect.new(80,0,32,6) draw_rect = Rect.new( 0,24,x2+16,3) self.contents.stretch_blt(draw_rect, skin, skin_rect) skin_rect = Rect.new(64,0,16,16) self.contents.blt(0, 0, skin, skin_rect) skin_rect = Rect.new(64,48,16,16) self.contents.blt(0, y2, skin, skin_rect) skin_rect = Rect.new(112,0,16,16) self.contents.blt(x2, 0, skin, skin_rect) skin_rect = Rect.new(112,48,16,16) self.contents.blt(x2, y2, skin, skin_rect) skin_rect = Rect.new(64,16,16,32) draw_rect = Rect.new( 0,16,16,y2-16) self.contents.stretch_blt(draw_rect, skin, skin_rect) skin_rect = Rect.new(112,16,16,32) draw_rect = Rect.new( x2,16,16,y2-16) self.contents.stretch_blt(draw_rect, skin, skin_rect) skin_rect = Rect.new(80, 0,32,16) draw_rect = Rect.new(16, 0,x2-16,16) self.contents.stretch_blt(draw_rect, skin, skin_rect) skin_rect = Rect.new(80,48,32,16) draw_rect = Rect.new(16,y2,x2-16,16) self.contents.stretch_blt(draw_rect, skin, skin_rect) end #-------------------------------------------------------------------------- # ● 項目の描画 # index : 項目番号 #-------------------------------------------------------------------------- def draw_item(index) rect = item_rect(index) actor = $game_party.members[index] self.contents.font.color = hp_color(actor) self.contents.draw_text(rect.x + 16, 3, 64, WLH, actor.name, 1) self.contents.draw_text(rect.x + 16, 26, 24, WLH, Vocab.hp_a) self.contents.draw_text(rect.x + 40, 26, 40, WLH, actor.hp.to_s, 2) self.contents.draw_text(rect.x + 16, 46, 24, WLH, Vocab.mp_a) self.contents.draw_text(rect.x + 40, 46, 40, WLH, actor.mp.to_s, 2) if actor.any_state? draw_actor_state(actor, rect.x + 16, 66, 48) else self.contents.draw_text(rect.x + 16, 66, 24, WLH, Vocab.level_a) self.contents.draw_text(rect.x + 40, 66, 40, WLH, actor.level.to_s, 2) end end #-------------------------------------------------------------------------- # ● カーソルの更新 #-------------------------------------------------------------------------- def update_cursor if @index < 0 self.cursor_rect.empty else self.cursor_rect = item_rect(@index) end end #-------------------------------------------------------------------------- # ● 項目を描画する矩形の取得 *(縦幅変更への対応) #-------------------------------------------------------------------------- def item_rect(index) rect = Rect.new(0, 0, 0, 0) rect.width = 96 rect.height = self.contents.height rect.x = index * 96 rect.y = 0 return rect end end