king-exit/Scripts/_.18.rb
2024-08-31 14:17:23 -05:00

87 lines
3.2 KiB
Ruby
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#==============================================================================
# ★ RGSS3_オーラエフェクト Ver1.0
#==============================================================================
=begin
作者tomoaky
webサイトひきも記 (http://hikimoki.sakura.ne.jp/)
オーラステートとして設定したステートが付加されているバトラーに
それっぽい演出を表示するスクリプトです。
2011.12.15 Ver1.0
公開
=end
#==============================================================================
# □ 設定項目
#==============================================================================
module TMAURA
AURA_STATE = [28,30] # オーラステートとして扱うステートID
end
#==============================================================================
# ■ Sprite_Battler
#==============================================================================
class Sprite_Battler < Sprite_Base
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias tmaura_sprite_battler_initialize initialize
def initialize(viewport, battler = nil)
tmaura_sprite_battler_initialize(viewport, battler)
@aura_sprite = Sprite.new(viewport)
@aura_count = rand(180)
end
#--------------------------------------------------------------------------
# ● 解放
#--------------------------------------------------------------------------
alias tmaura_sprite_battler_dispose dispose
def dispose
tmaura_sprite_battler_dispose
@aura_sprite.bitmap.dispose if @aura_sprite.bitmap
@aura_sprite.dispose
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
alias tmaura_sprite_battler_update update
def update
tmaura_sprite_battler_update
if @battler
if @use_sprite
@aura_sprite.x = self.x
@aura_sprite.y = self.y - (self.bitmap.height * self.zoom_y).round / 2
@aura_sprite.z = self.z - 1
@aura_sprite.mirror = self.mirror
@aura_sprite.opacity = 0
TMAURA::AURA_STATE.each do |id|
if @battler.state?(id)
@aura_sprite.opacity = self.opacity * 3 / 4
@aura_count = (@aura_count + 1) % 180
f = Math.sin(Math::PI * @aura_count / 90) * 0.05 + self.zoom_x * 1.1
@aura_sprite.zoom_x = @aura_sprite.zoom_y = f
break
end
end
end
end
end
#--------------------------------------------------------------------------
# ● 転送元ビットマップの更新
#--------------------------------------------------------------------------
alias tmaura_sprite_battler_update_bitmap update_bitmap
def update_bitmap
new_bitmap = Cache.battler(@battler.battler_name, @battler.battler_hue)
if bitmap != new_bitmap
@aura_sprite.bitmap = new_bitmap
@aura_sprite.ox = @aura_sprite.bitmap.width / 2
@aura_sprite.oy = @aura_sprite.bitmap.height / 2
@aura_sprite.blend_type = 1
@aura_sprite.opacity = 0
end
tmaura_sprite_battler_update_bitmap
end
end