# ▼▲▼ XRXS65A. CP制御ターンシステム「シンセ・ゲージ」 ▼▲▼ built201202
# by 桜雅 在土
#==============================================================================
# □ カスタマイズポイント
#==============================================================================
class XRXS65A
#--------------------------------------------------------------------------
# 「アイコン設定」
#--------------------------------------------------------------------------
DEFAULT = "Enemy" # ディフォルトアイコン
# アイコンハッシュ 記述方式 : アクターID=>アイコン名
ICONS = {
1=>"SNOW",
2=>"SNOW",
3=>"SNOW",
4=>"SNOW",
5=>"z3",
6=>"z1",
}
# アイコンハッシュE 記述方式 : エネミーID=>アイコン名
ICONE = {1=>"z1副",2=>"z3副",3=>"SNOW副",4=>"Enemy紫",5=>"z3",8=>"z1",9=>"z1"}
#--------------------------------------------------------------------------
# 「シンセ・ゲージ」
#--------------------------------------------------------------------------
SKIN = "Line" # スキン
X = 16 # X 座標
Y = 18 # Y 座標
end
#==============================================================================
# --- CP メーターをまとめて管理するクラス、表示関係はすべてココ --- [再定義]
#==============================================================================
class CP_Meters
#--------------------------------------------------------------------------
# ○ オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
# シンセゲージの生成
@base = Sprite.new
@base.bitmap = RPG::Cache.windowskin(XRXS65A::SKIN).dup
@base.x = XRXS65A::X
@base.y = XRXS65A::Y
@base.z = XRXS65A::X
@width = @base.bitmap.width
[url=home.php?mod=space&uid=291977]@height[/url] = @base.bitmap.height
@icon_set = []
refresh
end
#--------------------------------------------------------------------------
# ○ リフレッシュ
#--------------------------------------------------------------------------
def refresh
# 生成すべきバトラーの取得
need_initializes = []
for battler in $game_party.actors + $game_troop.enemies
exist = false
for set in @icon_set
set[0].visible = true if set[0].visible ==false
exist |= (set[1] == battler)
end
need_initializes.push(battler) unless exist
end
for battler in need_initializes
iconname = nil
if battler.is_a?(Game_Actor)
iconname = XRXS65A::ICONS[battler.id]
else
iconname = XRXS65A::ICONE[battler.id]
end
if iconname == nil
iconname = XRXS65A::DEFAULT
end
sprite = Sprite.new
sprite.bitmap = RPG::Cache.icon(iconname).dup
sprite.y = XRXS65A::Y + @height / 2 - 12
@icon_set.push([sprite, battler])
end
# 更新
for set in @icon_set
set[0].x = XRXS65A::X + @width * set[1].cp / set[1].max_cp - 12
set[0].z = set[0].x
set[0].visible = false if set[1].dead? or !set[1].exist?
end
end
#--------------------------------------------------------------------------
# ○ 可視状態
#--------------------------------------------------------------------------
def visible=(b)
@base.visible = b
@icon_set.each{|set| set[0].visible = b }
end
#--------------------------------------------------------------------------
# ○ 解放
#--------------------------------------------------------------------------
def dispose
@base.dispose
@icon_set.each{|set| set[0].dispose }
end
end