mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2026-07-22 07:37:00 +00:00
Update 6.8
This commit is contained in:
@@ -82,6 +82,9 @@ class Sprite_Character < RPG::Sprite
|
||||
if @character && @character != $game_player
|
||||
checkModifySpriteGraphics(@character) if @character.active?
|
||||
end
|
||||
if @character && @character.character_name == "000"
|
||||
@character.character_name=""
|
||||
end
|
||||
update
|
||||
end
|
||||
|
||||
@@ -90,13 +93,23 @@ class Sprite_Character < RPG::Sprite
|
||||
end
|
||||
|
||||
def checkModifySpriteGraphics(character)
|
||||
return if character == $game_player || !character.name
|
||||
return if character.is_a?(Game_Player)
|
||||
return if character.is_a?(OverworldPokemonEvent)
|
||||
return unless character.name
|
||||
if TYPE_EXPERTS_APPEARANCES.keys.include?(character.name.to_sym)
|
||||
typeExpert = character.name.to_sym
|
||||
setSpriteToAppearance(TYPE_EXPERTS_APPEARANCES[typeExpert])
|
||||
end
|
||||
end
|
||||
|
||||
def setSpriteToStaticAppearance(file_path)
|
||||
begin
|
||||
new_bitmap = AnimatedBitmap.new(file_path)
|
||||
@bitmap_override = new_bitmap
|
||||
updateBitmap
|
||||
rescue
|
||||
end
|
||||
end
|
||||
def setSpriteToAppearance(trainerAppearance)
|
||||
#return if !@charbitmap || !@charbitmap.bitmap
|
||||
begin
|
||||
@@ -140,9 +153,11 @@ class Sprite_Character < RPG::Sprite
|
||||
end
|
||||
|
||||
def updateBitmap
|
||||
return if @manual_refresh
|
||||
@manual_refresh = true
|
||||
end
|
||||
|
||||
|
||||
def pbLoadOutfitBitmap(outfitFileName)
|
||||
# Construct the file path for the outfit bitmap based on the given value
|
||||
#outfitFileName = sprintf("Graphics/Outfits/%s", value)
|
||||
@@ -169,15 +184,17 @@ class Sprite_Character < RPG::Sprite
|
||||
end
|
||||
|
||||
def updateCharacterBitmap
|
||||
AnimatedBitmap.new('Graphics/Characters/' + @character_name, @character_hue)
|
||||
checkModifySpriteGraphics(@character)
|
||||
return AnimatedBitmap.new('Graphics/Characters/' + @character_name, @character_hue)
|
||||
end
|
||||
|
||||
def should_update?
|
||||
return @tile_id != @character.tile_id ||
|
||||
return true if @manual_refresh
|
||||
return false if !@character
|
||||
@tile_id != @character.tile_id ||
|
||||
@character_name != @character.character_name ||
|
||||
@character_hue != @character.character_hue ||
|
||||
@oldbushdepth != @character.bush_depth ||
|
||||
@manual_refresh
|
||||
@character_hue != @character.character_hue ||
|
||||
@oldbushdepth != @character.bush_depth
|
||||
end
|
||||
|
||||
def refreshOutfit()
|
||||
@@ -189,9 +206,14 @@ class Sprite_Character < RPG::Sprite
|
||||
self.bitmap = self.pending_bitmap
|
||||
self.pending_bitmap = nil
|
||||
end
|
||||
return unless @character
|
||||
return if @character.is_a?(Game_Event) && !@character.should_update?
|
||||
super
|
||||
if should_update?
|
||||
unless self.is_a?(Sprite_Player)
|
||||
@shadow.visible = self.visible if @shadow
|
||||
end
|
||||
|
||||
@manual_refresh = false
|
||||
@tile_id = @character.tile_id
|
||||
@character_name = @character.character_name
|
||||
@@ -217,19 +239,23 @@ class Sprite_Character < RPG::Sprite
|
||||
@charbitmap = updateCharacterBitmap()
|
||||
@charbitmap = @bitmap_override.clone if @bitmap_override
|
||||
|
||||
RPG::Cache.retain('Graphics/Characters/', @character_name, @character_hue) if @charbitmapAnimated = true
|
||||
RPG::Cache.retain('Graphics/Characters/', @character_name, @character_hue) if @character == $game_player
|
||||
@charbitmapAnimated = true
|
||||
@bushbitmap.dispose if @bushbitmap
|
||||
@bushbitmap = nil
|
||||
#@spriteoffset = @character_name[/offset/i]
|
||||
@spriteoffset = @character_name[/fish/i] || @character_name[/dive/i] || @character_name[/surf/i]
|
||||
if @character == $game_player
|
||||
@spriteoffset = @character_name[/fish/i] || @character_name[/dive/i] || @character_name[/surf/i]
|
||||
end
|
||||
@cw = @charbitmap.width / 4 if !@charbitmap.disposed?
|
||||
@ch = @charbitmap.height / 4 if !@charbitmap.disposed?
|
||||
self.ox = @cw / 2
|
||||
@character.sprite_size = [@cw, @ch]
|
||||
end
|
||||
@manual_refresh = false
|
||||
end
|
||||
@charbitmap.update if @charbitmapAnimated
|
||||
bushdepth = @character.bush_depth
|
||||
bushdepth = @character.bush_depth if @character
|
||||
if bushdepth == 0
|
||||
if @character == $game_player
|
||||
self.bitmap = getClothedPlayerSprite() #generateClothedBitmap()
|
||||
@@ -268,3 +294,5 @@ class Sprite_Character < RPG::Sprite
|
||||
@surfbase.update if @surfbase
|
||||
end
|
||||
end
|
||||
# frozen_string_literal: true
|
||||
|
||||
|
||||
@@ -28,9 +28,6 @@ class ClippableSprite < Sprite_Character
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
class Spriteset_Map
|
||||
attr_reader :map
|
||||
@@viewport0 = Viewport.new(0, 0, Settings::SCREEN_WIDTH, Settings::SCREEN_HEIGHT) # Panorama
|
||||
@@ -56,6 +53,9 @@ class Spriteset_Map
|
||||
@fog = AnimatedPlane.new(@@viewport1)
|
||||
@fog.z = 3000
|
||||
@fog2=nil
|
||||
if @map.fog2_name && @map.fog2_name != ""
|
||||
setFog2(@map.fog2_name)
|
||||
end
|
||||
@character_sprites = []
|
||||
for i in @map.events.keys.sort
|
||||
sprite = Sprite_Character.new(@@viewport1,@map.events[i])
|
||||
@@ -63,21 +63,27 @@ class Spriteset_Map
|
||||
end
|
||||
@weather = RPG::Weather.new(@@viewport1)
|
||||
pbOnSpritesetCreate(self,@@viewport1)
|
||||
|
||||
update
|
||||
end
|
||||
|
||||
def setFog2(filename="010-Water04")
|
||||
disposeFog2()
|
||||
def setFog2(filename)
|
||||
disposeFog2
|
||||
return if filename.nil? || filename == ""
|
||||
|
||||
@map.fog2_name = filename
|
||||
@fog2 = AnimatedPlane.new(@@viewport1)
|
||||
@fog2.z = 3001
|
||||
@fog2.setFog(filename)
|
||||
end
|
||||
|
||||
def disposeFog2()
|
||||
def disposeFog2
|
||||
@fog2.dispose if @fog2
|
||||
@fog2 =nil
|
||||
@fog2 = nil
|
||||
end
|
||||
|
||||
|
||||
|
||||
def dispose
|
||||
if $scene.is_a?(Scene_Map)
|
||||
$scene.map_renderer.remove_tileset(@map.tileset_name)
|
||||
@@ -153,7 +159,7 @@ class Spriteset_Map
|
||||
sprite.update
|
||||
end
|
||||
if self.map!=$game_map
|
||||
#@weather.fade_in(:None, 0, 20)
|
||||
@weather.fade_in(:None, 0, 20)
|
||||
else
|
||||
@weather.fade_in($game_screen.weather_type, $game_screen.weather_power, $game_screen.weather_duration)
|
||||
end
|
||||
@@ -166,3 +172,6 @@ class Spriteset_Map
|
||||
@@viewport3.update
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -14,8 +14,7 @@ module Outfit_Offsets
|
||||
|
||||
SURF_OFFSETS_DOWN = [[0, -6], [0, -4], [0, -6], [0, -4]]
|
||||
SURF_OFFSETS_LEFT = [[-2, -10], [-2, -8], [-2, -10], [-2, -8]]
|
||||
SURF_OFFSETS_RIGHT = [[4, -10], [4, -8], [4, -10], [4, -8]]
|
||||
#SURF_OFFSETS_UP = [[0, -6], [0, -4], [0, -6], [0, -4]]
|
||||
SURF_OFFSETS_RIGHT = [[2, -10], [2, -8], [2, -10], [2, -8]]
|
||||
SURF_OFFSETS_UP = [[0, -10], [0, -8], [0, -10], [0, -8]]
|
||||
|
||||
DIVE_OFFSETS_DOWN = [[0, -6], [0, -4], [0, -6], [0, -4]]
|
||||
|
||||
@@ -3,7 +3,7 @@ class Sprite_Wearable < RPG::Sprite
|
||||
attr_accessor :action
|
||||
attr_accessor :sprite
|
||||
|
||||
def initialize(player_sprite, filename, action, viewport, relative_z=0)
|
||||
def initialize(player_sprite, filename, action, viewport, relative_z = 0)
|
||||
@player_sprite = player_sprite
|
||||
@viewport = viewport
|
||||
@sprite = Sprite.new(@viewport)
|
||||
@@ -12,50 +12,35 @@ class Sprite_Wearable < RPG::Sprite
|
||||
@sprite.bitmap = @wearableBitmap.bitmap if @wearableBitmap
|
||||
@action = action
|
||||
@color = 0
|
||||
@frameWidth = 80 #@sprite.width
|
||||
@frameWidth = 80 #@sprite.width
|
||||
@frameHeight = 80 #@sprite.height / 4
|
||||
@sprite.z = 0
|
||||
@relative_z=relative_z #relative to player
|
||||
echoln(_INTL("init had at z = {1}, player sprite at {2}",@sprite.z,@player_sprite.z))
|
||||
|
||||
#Unused position offset
|
||||
# @x_pos_base_offset = 0
|
||||
# @y_pos_base_offset = 0
|
||||
@relative_z = relative_z # relative to player
|
||||
echoln(_INTL("init had at z = {1}, player sprite at {2}", @sprite.z, @player_sprite.z))
|
||||
end
|
||||
|
||||
def apply_sprite_offset(offsets_array, current_frame)
|
||||
@sprite.x += offsets_array[current_frame][0]
|
||||
@sprite.y += offsets_array[current_frame][1]
|
||||
@sprite.x += offsets_array[current_frame][0]
|
||||
@sprite.y += offsets_array[current_frame][1]
|
||||
end
|
||||
|
||||
def adjustPositionForScreenScrolling
|
||||
return if !$game_map.scrolling? && !@was_just_scrolling
|
||||
if $game_map.scrolling?
|
||||
@was_just_scrolling=true
|
||||
else
|
||||
@was_just_scrolling=false
|
||||
@sprite.x = @player_sprite.x
|
||||
@sprite.y = @player_sprite.y
|
||||
@sprite.ox = @player_sprite.ox
|
||||
@sprite.oy = @player_sprite.oy
|
||||
|
||||
if $game_map.scroll_direction == DIRECTION_UP
|
||||
@sprite.z += 50 # temporary layering fix
|
||||
end
|
||||
offset_x = 0
|
||||
offset_y = 0
|
||||
case $game_map.scroll_direction
|
||||
when DIRECTION_RIGHT
|
||||
offset_x=-8
|
||||
when DIRECTION_LEFT
|
||||
offset_x=8
|
||||
when DIRECTION_UP
|
||||
offset_y=8
|
||||
@sprite.z+=50 #weird layering glitch for some reason otherwise. It's reset to the correct value in the next animation frame
|
||||
when DIRECTION_DOWN
|
||||
offset_y=-8
|
||||
end
|
||||
@sprite.x+=offset_x
|
||||
@sprite.y+=offset_y
|
||||
end
|
||||
|
||||
|
||||
def set_sprite_position(action, direction, current_frame)
|
||||
@sprite.x = @player_sprite.x - @player_sprite.ox
|
||||
@sprite.y = @player_sprite.y - @player_sprite.oy
|
||||
@sprite.x = @player_sprite.x
|
||||
@sprite.y = @player_sprite.y
|
||||
@sprite.ox = @player_sprite.ox
|
||||
@sprite.oy = @player_sprite.oy
|
||||
case action
|
||||
when "run"
|
||||
if direction == DIRECTION_DOWN
|
||||
@@ -69,55 +54,56 @@ class Sprite_Wearable < RPG::Sprite
|
||||
end
|
||||
when "surf"
|
||||
if direction == DIRECTION_DOWN
|
||||
apply_sprite_offset(Outfit_Offsets::SURF_OFFSETS_DOWN,current_frame)
|
||||
apply_sprite_offset(Outfit_Offsets::SURF_OFFSETS_DOWN, current_frame)
|
||||
elsif direction == DIRECTION_LEFT
|
||||
apply_sprite_offset( Outfit_Offsets::SURF_OFFSETS_LEFT,current_frame)
|
||||
apply_sprite_offset(Outfit_Offsets::SURF_OFFSETS_LEFT, current_frame)
|
||||
elsif direction == DIRECTION_RIGHT
|
||||
apply_sprite_offset( Outfit_Offsets::SURF_OFFSETS_RIGHT,current_frame)
|
||||
apply_sprite_offset(Outfit_Offsets::SURF_OFFSETS_RIGHT, current_frame)
|
||||
elsif direction == DIRECTION_UP
|
||||
apply_sprite_offset( Outfit_Offsets::SURF_OFFSETS_UP,current_frame)
|
||||
apply_sprite_offset(Outfit_Offsets::SURF_OFFSETS_UP, current_frame)
|
||||
end
|
||||
when "dive"
|
||||
if direction == DIRECTION_DOWN
|
||||
apply_sprite_offset(Outfit_Offsets::DIVE_OFFSETS_DOWN,current_frame)
|
||||
apply_sprite_offset(Outfit_Offsets::DIVE_OFFSETS_DOWN, current_frame)
|
||||
elsif direction == DIRECTION_LEFT
|
||||
apply_sprite_offset( Outfit_Offsets::DIVE_OFFSETS_LEFT,current_frame)
|
||||
apply_sprite_offset(Outfit_Offsets::DIVE_OFFSETS_LEFT, current_frame)
|
||||
elsif direction == DIRECTION_RIGHT
|
||||
apply_sprite_offset( Outfit_Offsets::DIVE_OFFSETS_RIGHT,current_frame)
|
||||
apply_sprite_offset(Outfit_Offsets::DIVE_OFFSETS_RIGHT, current_frame)
|
||||
elsif direction == DIRECTION_UP
|
||||
apply_sprite_offset( Outfit_Offsets::DIVE_OFFSETS_UP,current_frame)
|
||||
apply_sprite_offset(Outfit_Offsets::DIVE_OFFSETS_UP, current_frame)
|
||||
end
|
||||
when "bike"
|
||||
if direction == DIRECTION_DOWN
|
||||
apply_sprite_offset(Outfit_Offsets::BIKE_OFFSETS_DOWN,current_frame)
|
||||
apply_sprite_offset(Outfit_Offsets::BIKE_OFFSETS_DOWN, current_frame)
|
||||
elsif direction == DIRECTION_LEFT
|
||||
apply_sprite_offset( Outfit_Offsets::BIKE_OFFSETS_LEFT,current_frame)
|
||||
apply_sprite_offset(Outfit_Offsets::BIKE_OFFSETS_LEFT, current_frame)
|
||||
elsif direction == DIRECTION_RIGHT
|
||||
apply_sprite_offset( Outfit_Offsets::BIKE_OFFSETS_RIGHT,current_frame)
|
||||
apply_sprite_offset(Outfit_Offsets::BIKE_OFFSETS_RIGHT, current_frame)
|
||||
elsif direction == DIRECTION_UP
|
||||
apply_sprite_offset( Outfit_Offsets::BIKE_OFFSETS_UP,current_frame)
|
||||
apply_sprite_offset(Outfit_Offsets::BIKE_OFFSETS_UP, current_frame)
|
||||
end
|
||||
when "fish"
|
||||
if direction == DIRECTION_DOWN
|
||||
apply_sprite_offset(Outfit_Offsets::FISH_OFFSETS_DOWN,current_frame)
|
||||
apply_sprite_offset(Outfit_Offsets::FISH_OFFSETS_DOWN, current_frame)
|
||||
elsif direction == DIRECTION_LEFT
|
||||
apply_sprite_offset( Outfit_Offsets::FISH_OFFSETS_LEFT,current_frame)
|
||||
apply_sprite_offset(Outfit_Offsets::FISH_OFFSETS_LEFT, current_frame)
|
||||
elsif direction == DIRECTION_RIGHT
|
||||
apply_sprite_offset( Outfit_Offsets::FISH_OFFSETS_RIGHT,current_frame)
|
||||
apply_sprite_offset(Outfit_Offsets::FISH_OFFSETS_RIGHT, current_frame)
|
||||
elsif direction == DIRECTION_UP
|
||||
apply_sprite_offset( Outfit_Offsets::FISH_OFFSETS_UP,current_frame)
|
||||
apply_sprite_offset(Outfit_Offsets::FISH_OFFSETS_UP, current_frame)
|
||||
end
|
||||
else
|
||||
@sprite.x = @player_sprite.x - @player_sprite.ox
|
||||
@sprite.y = @player_sprite.y - @player_sprite.oy
|
||||
@sprite.x = @player_sprite.x
|
||||
@sprite.y = @player_sprite.y
|
||||
@sprite.ox = @player_sprite.ox
|
||||
@sprite.oy = @player_sprite.oy
|
||||
end
|
||||
adjustPositionForScreenScrolling()
|
||||
#adjustPositionForScreenScrolling()
|
||||
|
||||
@sprite.y -= 2 if current_frame % 2 == 1
|
||||
end
|
||||
|
||||
|
||||
def animate(action, frame=nil)
|
||||
def animate(action, frame = nil)
|
||||
@action = action
|
||||
current_frame = @player_sprite.character.pattern if !frame
|
||||
direction = @player_sprite.character.direction
|
||||
@@ -126,28 +112,25 @@ class Sprite_Wearable < RPG::Sprite
|
||||
set_sprite_position(@action, direction, current_frame)
|
||||
end
|
||||
|
||||
def update(action, filename,color)
|
||||
|
||||
def update(action, filename, color)
|
||||
@sprite.opacity = @player_sprite.opacity if @wearableBitmap
|
||||
@sprite.opacity=0 if $game_player.hasGraphicsOverride?
|
||||
@sprite.opacity = 0 if $game_player.hasGraphicsOverride?
|
||||
if filename != @filename || color != @color
|
||||
if pbResolveBitmap(filename)
|
||||
#echoln pbResolveBitmap(filename)
|
||||
@wearableBitmap = AnimatedBitmap.new(filename,color)
|
||||
@wearableBitmap = AnimatedBitmap.new(filename, color)
|
||||
@sprite.bitmap = @wearableBitmap.bitmap
|
||||
else
|
||||
@wearableBitmap = nil
|
||||
@sprite.bitmap = nil
|
||||
end
|
||||
@color =color
|
||||
@color = color
|
||||
@filename = filename
|
||||
end
|
||||
animate(action)
|
||||
end
|
||||
|
||||
def adjust_layer()
|
||||
if @sprite.z != @player_sprite.z+@relative_z
|
||||
@sprite.z = @player_sprite.z+@relative_z
|
||||
if @sprite.z != @player_sprite.z + @relative_z
|
||||
@sprite.z = @player_sprite.z + @relative_z
|
||||
end
|
||||
end
|
||||
|
||||
@@ -168,5 +151,4 @@ class Sprite_Wearable < RPG::Sprite
|
||||
@disposed
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,54 @@
|
||||
class Sprite_Bicycle < Sprite_Wearable
|
||||
def initialize(player_sprite, filename, action, viewport)
|
||||
super
|
||||
@relative_z = -1
|
||||
end
|
||||
|
||||
def update(action, filename, color)
|
||||
if @player_sprite.biking?
|
||||
filename = $PokemonGlobal.bike_trick ? getOverworldBicycleTrickFilename : getOverworldBicycleFilename
|
||||
end
|
||||
super(action, filename, color)
|
||||
end
|
||||
|
||||
|
||||
def animate(action, frame = nil)
|
||||
@action = action
|
||||
current_frame = @player_sprite.character.pattern if !frame
|
||||
direction = @player_sprite.character.direction
|
||||
check_bike_trick
|
||||
crop_spritesheet(direction, current_frame)
|
||||
adjust_layer()
|
||||
set_sprite_position(@action, direction, current_frame)
|
||||
end
|
||||
|
||||
def check_bike_trick
|
||||
if @player_sprite.biking?
|
||||
correct_filename = $PokemonGlobal.bike_trick ? getOverworldBicycleTrickFilename : getOverworldBicycleFilename
|
||||
if correct_filename != @filename
|
||||
bike_color = $Trainer.bike_color || 0
|
||||
if pbResolveBitmap(correct_filename)
|
||||
@wearableBitmap = AnimatedBitmap.new(correct_filename, bike_color)
|
||||
@sprite.bitmap = @wearableBitmap.bitmap
|
||||
end
|
||||
@filename = correct_filename
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def crop_spritesheet(direction, current_frame)
|
||||
sprite_x = ((current_frame)) * @frameWidth
|
||||
sprite_y = ((direction - 2) / 2) * @frameHeight
|
||||
@sprite.src_rect.set(sprite_x, sprite_y, @frameWidth, @frameHeight)
|
||||
end
|
||||
|
||||
def set_sprite_position(action, direction, current_frame)
|
||||
@sprite.x = @player_sprite.x
|
||||
@sprite.y = @player_sprite.y
|
||||
if $PokemonGlobal.bike_trick # to compensate for the offset applied to the player
|
||||
@sprite.y += Sprite_Player::ACRO_BIKE_TRICK_POSITION_OFFSET
|
||||
end
|
||||
@sprite.ox = @player_sprite.ox
|
||||
@sprite.oy = @player_sprite.oy
|
||||
end
|
||||
end
|
||||
@@ -25,8 +25,10 @@ class Sprite_Hair < Sprite_Wearable
|
||||
end
|
||||
|
||||
def set_sprite_position(action, direction, current_frame)
|
||||
@sprite.x = @player_sprite.x - @player_sprite.ox
|
||||
@sprite.y = @player_sprite.y - @player_sprite.oy
|
||||
@sprite.x = @player_sprite.x
|
||||
@sprite.y = @player_sprite.y
|
||||
@sprite.ox = @player_sprite.ox
|
||||
@sprite.oy = @player_sprite.oy
|
||||
case action
|
||||
when "run"
|
||||
if direction == DIRECTION_DOWN
|
||||
@@ -78,8 +80,12 @@ class Sprite_Hair < Sprite_Wearable
|
||||
elsif direction == DIRECTION_UP
|
||||
apply_sprite_offset(Outfit_Offsets::FISH_OFFSETS_UP, current_frame)
|
||||
end
|
||||
else
|
||||
@sprite.x = @player_sprite.x
|
||||
@sprite.y = @player_sprite.y
|
||||
@sprite.ox = @player_sprite.ox
|
||||
@sprite.oy = @player_sprite.oy
|
||||
end
|
||||
adjustPositionForScreenScrolling()
|
||||
end
|
||||
|
||||
end
|
||||
@@ -1,4 +1,7 @@
|
||||
class Sprite_Player < Sprite_Character
|
||||
ACRO_BIKE_RAMP_POSITION_OFFSET = 16
|
||||
ACRO_BIKE_TRICK_POSITION_OFFSET = 4
|
||||
|
||||
def initialize(viewport, character = nil)
|
||||
super
|
||||
@viewport = viewport
|
||||
@@ -8,14 +11,15 @@ class Sprite_Player < Sprite_Character
|
||||
|
||||
hatFilename = ""
|
||||
hairFilename = ""
|
||||
@hat = Sprite_Hat.new(self, hatFilename, @character_name, @viewport,3)
|
||||
@hat2 = Sprite_Hat.new(self, hatFilename, @character_name, @viewport,2)
|
||||
@hat = Sprite_Hat.new(self, hatFilename, @character_name, @viewport, 3)
|
||||
@hat2 = Sprite_Hat.new(self, hatFilename, @character_name, @viewport, 2)
|
||||
@hair = Sprite_Hair.new(self, hairFilename, @character_name, @viewport)
|
||||
@bicycle = Sprite_Bicycle.new(self,"", @character_name, @viewport)
|
||||
|
||||
@previous_skinTone = 0
|
||||
|
||||
@current_bitmap = nil
|
||||
@previous_action =nil
|
||||
@previous_action = nil
|
||||
echoln "init playa"
|
||||
getClothedPlayerSprite(true)
|
||||
end
|
||||
@@ -35,35 +39,38 @@ class Sprite_Player < Sprite_Character
|
||||
pbDayNightTint(@hat.sprite) if @hat && @hat.sprite.bitmap
|
||||
pbDayNightTint(@hat2.sprite) if @hat2 && @hat2.sprite.bitmap
|
||||
pbDayNightTint(@hair.sprite) if @hair && @hair.sprite.bitmap
|
||||
pbDayNightTint(@bicycle.sprite) if @bicycle && @bicycle.sprite.bitmap
|
||||
end
|
||||
|
||||
def opacity=(value)
|
||||
super
|
||||
@hat.sprite.opacity= value if @hat && @hat.sprite.bitmap
|
||||
@hat2.sprite.opacity= value if @hat2 && @hat2.sprite.bitmap
|
||||
@hair.sprite.opacity= value if @hair && @hair.sprite.bitmap
|
||||
@hat.sprite.opacity = value if @hat && @hat.sprite.bitmap
|
||||
@hat2.sprite.opacity = value if @hat2 && @hat2.sprite.bitmap
|
||||
@hair.sprite.opacity = value if @hair && @hair.sprite.bitmap
|
||||
@bicycle.sprite.opacity = value if @bicycle && @bicycle.sprite.bitmap
|
||||
end
|
||||
|
||||
def getClothedPlayerSprite(forceUpdate=false)
|
||||
def biking?
|
||||
@character_name.to_s.include?("bike")
|
||||
end
|
||||
|
||||
def getClothedPlayerSprite(forceUpdate = false)
|
||||
if @previous_action != @character_name || forceUpdate
|
||||
@current_bitmap = generateClothedBitmap
|
||||
end
|
||||
@previous_action = @character_name
|
||||
@hair.animate(@character_name) if @hair
|
||||
@hat.animate(@character_name) if @hat
|
||||
@hat2.animate(@character_name) if @hat2
|
||||
return @current_bitmap
|
||||
end
|
||||
|
||||
|
||||
def generateClothedBitmap()
|
||||
@charbitmap.bitmap.clone #nekkid sprite
|
||||
baseBitmap = @charbitmap.bitmap.clone #nekkid sprite
|
||||
@charbitmap.bitmap.clone # nekkid sprite
|
||||
baseBitmap = @charbitmap.bitmap.clone # nekkid sprite
|
||||
|
||||
if $game_player.hasGraphicsOverride? && @character_name != "fish"
|
||||
@hair.update(@character_name, "", 0) if @hair
|
||||
@hat.update(@character_name, "", 0) if @hat
|
||||
@hat2.update(@character_name, "", 0) if @hat2
|
||||
@bicycle.update(@character_name, "", 0) if @bicycle
|
||||
return baseBitmap
|
||||
end
|
||||
|
||||
@@ -73,6 +80,9 @@ class Sprite_Player < Sprite_Character
|
||||
hatFilename = getOverworldHatFilename($Trainer.hat)
|
||||
hat2Filename = getOverworldHatFilename($Trainer.hat2)
|
||||
|
||||
|
||||
bicycleFilename = get_bicycle_filename
|
||||
|
||||
hair_color_shift = $Trainer.hair_color
|
||||
hat_color_shift = $Trainer.hat_color
|
||||
hat2_color_shift = $Trainer.hat2_color
|
||||
@@ -84,10 +94,12 @@ class Sprite_Player < Sprite_Character
|
||||
hat2_color_shift = 0 if !hat2_color_shift
|
||||
|
||||
clothes_color_shift = 0 if !clothes_color_shift
|
||||
bicycle_color_shift = $Trainer.bike_color || 0
|
||||
|
||||
@hair.update(@character_name, hairFilename, hair_color_shift) if @hair
|
||||
@hat.update(@character_name, hatFilename, hat_color_shift) if @hat
|
||||
@hat2.update(@character_name, hat2Filename, hat2_color_shift) if @hat2
|
||||
@bicycle.update(@character_name, bicycleFilename, bicycle_color_shift) if @bicycle
|
||||
|
||||
if !pbResolveBitmap(outfitFilename)
|
||||
raise "No temp clothes graphics available"
|
||||
@@ -99,16 +111,51 @@ class Sprite_Player < Sprite_Character
|
||||
return baseBitmap
|
||||
end
|
||||
|
||||
def get_bicycle_filename
|
||||
if biking?
|
||||
bicycleFilename = getOverworldBicycleFilename
|
||||
else
|
||||
bicycleFilename = ""
|
||||
end
|
||||
return bicycleFilename
|
||||
end
|
||||
|
||||
|
||||
# When the player needs to be positioned differently relative to its normal position
|
||||
def apply_global_player_offsets
|
||||
if $PokemonGlobal.bicycle
|
||||
if $PokemonGlobal.acroBike
|
||||
self.y -= ACRO_BIKE_RAMP_POSITION_OFFSET
|
||||
end
|
||||
if $PokemonGlobal.bike_trick
|
||||
self.y -= ACRO_BIKE_TRICK_POSITION_OFFSET
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def update
|
||||
super
|
||||
apply_global_player_offsets
|
||||
|
||||
@hair.animate(@character_name) if @hair
|
||||
@hat.animate(@character_name) if @hat
|
||||
@hat2.animate(@character_name) if @hat2
|
||||
@bicycle.animate(@character_name) if @bicycle
|
||||
|
||||
if $game_map.scrolling?
|
||||
@hat.adjustPositionForScreenScrolling if @hat
|
||||
@hat2.adjustPositionForScreenScrolling if @hat2
|
||||
@hair.adjustPositionForScreenScrolling if @hair
|
||||
@bicycle.adjustPositionForScreenScrolling if @bicycle
|
||||
end
|
||||
|
||||
|
||||
|
||||
if Settings::GAME_ID == :IF_HOENN && $PokemonGlobal.diving
|
||||
self.z = -4
|
||||
@hat.adjust_layer if @hat
|
||||
@hat2.adjust_layer if @hat2
|
||||
@hair.adjust_layer if @hair
|
||||
@bicycle.adjust_layer if @bicycle
|
||||
end
|
||||
end
|
||||
|
||||
@@ -117,6 +164,7 @@ class Sprite_Player < Sprite_Character
|
||||
@hat.dispose if @hat
|
||||
@hat2.dispose if @hat2
|
||||
@hair.dispose if @hair
|
||||
@bicycle.dispose if @bicycle
|
||||
end
|
||||
|
||||
def pbLoadOutfitBitmap(outfitFileName)
|
||||
@@ -128,3 +176,5 @@ class Sprite_Player < Sprite_Character
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user