mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2026-07-22 07:37:00 +00:00
47 lines
843 B
Ruby
47 lines
843 B
Ruby
class Game_Character
|
|
attr_accessor :floating
|
|
attr_reader :float_offset
|
|
|
|
alias game_character_init initialize
|
|
def initialize(*args)
|
|
game_character_init(*args)
|
|
@floating = false
|
|
@float_phase = 0.0
|
|
@float_offset = 0
|
|
end
|
|
|
|
alias game_character_update update
|
|
def update
|
|
game_character_update
|
|
|
|
if @floating
|
|
update_floating
|
|
else
|
|
@float_offset = 0
|
|
@float_phase = 0.0
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def update_floating
|
|
@float_phase += 0.1
|
|
amplitude = 2.5
|
|
@float_offset = Math.sin(@float_phase) * amplitude
|
|
end
|
|
end
|
|
|
|
class Sprite_Character < RPG::Sprite
|
|
alias floating_update update
|
|
def update
|
|
floating_update
|
|
|
|
return if @character.nil?
|
|
return unless @character.floating
|
|
|
|
# Shift the sprite visually only
|
|
self.oy = self.oy + @character.float_offset
|
|
end
|
|
end
|
|
|