mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-09 06:04:59 +00:00
update 6.7
This commit is contained in:
236
Data/Scripts/052_InfiniteFusion/Graphics/Overworld/Footprints.rb
Normal file
236
Data/Scripts/052_InfiniteFusion/Graphics/Overworld/Footprints.rb
Normal file
@@ -0,0 +1,236 @@
|
||||
#===============================================================================
|
||||
# Klein Footprints / WolfPP for Pokémon Essentials
|
||||
# Give credits if you're using this!
|
||||
# http://kleinstudio.deviantart.com
|
||||
#
|
||||
# bo4p5687 update (v.19)
|
||||
#===============================================================================
|
||||
|
||||
# Fix event comment
|
||||
def pbEventCommentInput(*args)
|
||||
parameters = []
|
||||
list = *args[0].list # Event or event page
|
||||
elements = *args[1] # Number of elements
|
||||
trigger = *args[2] # Trigger
|
||||
return nil if list == nil
|
||||
return nil unless list.is_a?(Array)
|
||||
for item in list
|
||||
next unless item.code == 108 || item.code == 408
|
||||
if item.parameters[0] == trigger[0]
|
||||
start = list.index(item) + 1
|
||||
finish = start + elements[0]
|
||||
for id in start...finish
|
||||
next if !list[id]
|
||||
parameters.push(list[id].parameters[0])
|
||||
end
|
||||
return parameters
|
||||
end
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
module FootprintVariables
|
||||
# If you set pokemon here, they doesn't have footprints
|
||||
FOLLOWING_DONT_WALK = [
|
||||
# Example:
|
||||
# 12,15,17
|
||||
]
|
||||
|
||||
# Set here the terrain tag for footprints, 3 is sand
|
||||
TERRAIN_FOOT = 3
|
||||
|
||||
# Initial opacity for footprints
|
||||
FOOT_OPACITY = 62
|
||||
|
||||
# Delay velocity
|
||||
FOOT_DELAY = 1.1
|
||||
|
||||
def self.get_new_id
|
||||
newId = 1
|
||||
while !$game_map.events[newId].nil? do
|
||||
break if $game_map.events[newId].erased
|
||||
newId += 1
|
||||
end
|
||||
return newId
|
||||
end
|
||||
|
||||
def self.show(event, position)
|
||||
if event != $game_player
|
||||
return if event.character_name == "" || event.character_name == "nil" || event.name.include?("/nofoot/")
|
||||
return if pbEventCommentInput(event, 0, "NoFoot")
|
||||
if $Trainer.party.length > 0
|
||||
return if (!($game_map.events[event] && $game_map.events[event].name == "Dependent") &&
|
||||
(FOLLOWING_DONT_WALK.include?($Trainer.party[0].species) || $PokemonGlobal.bicycle))
|
||||
end
|
||||
end
|
||||
character_sprites = $scene.spriteset.character_sprites
|
||||
viewport = $scene.spriteset.viewport1
|
||||
footsprites = $scene.spriteset.footsprites
|
||||
nid = self.get_new_id
|
||||
rpgEvent = RPG::Event.new(position[0], position[1])
|
||||
rpgEvent.id = nid
|
||||
fev = Game_Event.new($game_map.map_id, rpgEvent, $game_map)
|
||||
eventsprite = Sprite_Character.new(viewport, fev)
|
||||
character_sprites.push(eventsprite)
|
||||
footsprites.push(Footsprite.new(eventsprite, fev, viewport, $game_map, position[2], nid, character_sprites, (event == $game_player)))
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class Game_Event < Game_Character
|
||||
attr_reader :erased
|
||||
end
|
||||
|
||||
class Sprite_Character
|
||||
alias old_initialize_foot initialize
|
||||
|
||||
def initialize(viewport, character = nil)
|
||||
old_initialize_foot(viewport, character)
|
||||
@disposed = false
|
||||
end
|
||||
|
||||
alias old_update_foot update
|
||||
|
||||
def update
|
||||
return if @disposed
|
||||
old_update_foot
|
||||
end
|
||||
|
||||
alias old_dispose_foot dispose
|
||||
|
||||
def dispose
|
||||
old_dispose_foot
|
||||
@disposed = true
|
||||
end
|
||||
end
|
||||
|
||||
class Spriteset_Map
|
||||
attr_accessor :character_sprites
|
||||
attr_accessor :footsprites
|
||||
|
||||
alias old_initialize initialize
|
||||
|
||||
def initialize(map = nil)
|
||||
old_initialize(map)
|
||||
@footsprites = []
|
||||
end
|
||||
|
||||
def viewport1
|
||||
return @@viewport1
|
||||
end
|
||||
|
||||
def putFootprint(event, pos)
|
||||
return FootprintVariables.show(event, pos)
|
||||
end
|
||||
|
||||
alias old_dispose dispose
|
||||
|
||||
def dispose
|
||||
old_dispose
|
||||
@footsprites.each { |sprite| sprite.dispose } if !@footsprites.nil?
|
||||
@footsprites.clear
|
||||
end
|
||||
|
||||
alias old_update update
|
||||
|
||||
def update
|
||||
old_update
|
||||
return if @footsprites.nil?
|
||||
@footsprites.each { |sprite| sprite.update }
|
||||
end
|
||||
end
|
||||
|
||||
class Scene_Map
|
||||
def spriteset?
|
||||
return !@spritesets.nil?
|
||||
end
|
||||
end
|
||||
|
||||
class Game_Character
|
||||
|
||||
def get_last_pos
|
||||
case direction
|
||||
when 2 then return [@x, @y - 1, direction] # Move down
|
||||
when 4 then return [@x + 1, @y, direction] # Move left
|
||||
when 6 then return [@x - 1, @y, direction] # Move right
|
||||
when 8 then return [@x, @y + 1, direction] # Move up
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
def foot_prints?
|
||||
begin
|
||||
return $game_map.terrain_tag(get_last_pos[0], get_last_pos[1]) == FootprintVariables::TERRAIN_FOOT && $scene.is_a?(Scene_Map) && $scene.spriteset?
|
||||
rescue
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
alias leave_tile_footprints triggerLeaveTile
|
||||
|
||||
def triggerLeaveTile
|
||||
leave_tile_footprints
|
||||
$scene.spriteset.putFootprint(self, get_last_pos) if foot_prints?
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class Footsprite
|
||||
def initialize(sprite, event, viewport, map, direction, nid, chardata, player)
|
||||
@rsprite = sprite
|
||||
# Sprite
|
||||
@sprite = Sprite.new(viewport)
|
||||
file = player && $PokemonGlobal.bicycle ? "footsetbike.png" : "footset.png"
|
||||
@sprite.bitmap = RPG::Cache.load_bitmap("Graphics/Pictures/", file)
|
||||
# Set position
|
||||
@realwidth = @sprite.bitmap.width / 4
|
||||
@sprite.src_rect.width = @realwidth
|
||||
@opacity = FootprintVariables::FOOT_OPACITY
|
||||
setFootset(direction)
|
||||
# Values
|
||||
@map = map
|
||||
@event = event
|
||||
@disposed = false
|
||||
@eventid = nid
|
||||
@viewport = viewport
|
||||
@chardata = chardata
|
||||
update
|
||||
end
|
||||
|
||||
def setFootset(direction)
|
||||
@sprite.src_rect.x =
|
||||
case direction
|
||||
when 2 then 0 # Move down
|
||||
when 4 then @realwidth * 3 # Move left
|
||||
when 6 then @realwidth * 2 # Move right
|
||||
when 8 then @realwidth # Move up
|
||||
end
|
||||
@sprite.opacity = @opacity
|
||||
end
|
||||
|
||||
def dispose
|
||||
return if @disposed
|
||||
@disposed = true
|
||||
@event.erase
|
||||
(0...@chardata.length).each { |i| @chardata.delete_at(i) if @chardata[i] == @rsprite }
|
||||
@rsprite.dispose
|
||||
@sprite.dispose
|
||||
@sprite = nil
|
||||
end
|
||||
|
||||
def update
|
||||
return if @disposed
|
||||
x = @rsprite.x - @rsprite.ox
|
||||
y = @rsprite.y - @rsprite.oy
|
||||
width = @rsprite.src_rect.width
|
||||
height = @rsprite.src_rect.height
|
||||
@sprite.x = x + width / 2
|
||||
@sprite.y = y + height
|
||||
@sprite.ox = @realwidth / 2
|
||||
@sprite.oy = @sprite.bitmap.height
|
||||
@sprite.z = @rsprite.z - 2
|
||||
@opacity -= FootprintVariables::FOOT_DELAY
|
||||
@sprite.opacity = @opacity
|
||||
dispose if @sprite.opacity <= 0
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,302 @@
|
||||
#==============================================================================#
|
||||
# Overworld Shadows #
|
||||
# by Marin #
|
||||
#==============================================================================#
|
||||
# Info #
|
||||
# #
|
||||
# You'll have likely heard of KleinStudios' Overworld Shadows script; many #
|
||||
# fangames use it, after all. It was not compatible with Essentials v17+ #
|
||||
# though, so after getting the suggestion I thought it would be cool if I #
|
||||
# could make something of my own that would work with v16, as well as v17. #
|
||||
#==============================================================================#
|
||||
# Gameplay: #
|
||||
# - Blacklisting events from receiving shadows #
|
||||
# - Whitelisting events to always receive shadows #
|
||||
# - A scaling animation when an event jumps #
|
||||
#==============================================================================#
|
||||
# Usage #
|
||||
# #
|
||||
# Shadow_Path is the path to the shadow graphic. You can change this #
|
||||
# sprite, though you may need to fiddle with positioning of the sprite in #
|
||||
# relation to the event after, though. That's done in "def position_shadow". #
|
||||
# #
|
||||
# As the name literally says, if an event's name includes any of the strings #
|
||||
# in "No_Shadow_If_Event_Name_Has", it won't get a shadow, UNLESS the event's #
|
||||
# name also includes any of the strings in #
|
||||
# "Always_Give_Shadow_If_Event_Name_Has". This is essentially "overriding". #
|
||||
# #
|
||||
# Case_Sensitive is either true or false. It's used when determing if an #
|
||||
# event's name includes a string in the "No_Shadow" and "Always_Give" arrays. #
|
||||
# If true, it must match all strings with capitals exactly as well. #
|
||||
# If false, capitals don't need to match up. #
|
||||
#==============================================================================#
|
||||
# Please give credit when using this. #
|
||||
#==============================================================================#
|
||||
|
||||
|
||||
SHADOW_IMG_FOLDER = "Graphics/Characters/"
|
||||
SHADOW_IMG_NAME = "shadow"
|
||||
|
||||
# Whether or not the event names below need to match in capitals as well.
|
||||
Case_Sensitive = false
|
||||
|
||||
No_Shadow_If_Event_Name_Has = [
|
||||
# I like to use "extensions" like these. Up to you though.
|
||||
".shadowless",
|
||||
".noshadow",
|
||||
".sl",
|
||||
"Door",
|
||||
"Stairs"
|
||||
]
|
||||
|
||||
# Events that have this in their event name will always receive a shadow.
|
||||
# Does take "Case_Sensitive" into account.
|
||||
Always_Give_Shadow_If_Event_Name_Has = [
|
||||
"Trainer", "npc"
|
||||
]
|
||||
|
||||
# Determines whether or not an event should be given a shadow.
|
||||
def pbShouldGetShadow?(event)
|
||||
return true if event.is_a?(Game_Player) # The player will always have a shadow
|
||||
page = pbGetActiveEventPage(event)
|
||||
return false unless page
|
||||
comments = page.list.select { |e| e.code == 108 || e.code == 408 }.map do |e|
|
||||
e.parameters.join
|
||||
end
|
||||
Always_Give_Shadow_If_Event_Name_Has.each do |e|
|
||||
name = event.name.clone
|
||||
unless Case_Sensitive
|
||||
e.downcase!
|
||||
name.downcase!
|
||||
end
|
||||
return true if name.include?(e) || comments.any? { |c| c.include?(e) }
|
||||
end
|
||||
No_Shadow_If_Event_Name_Has.each do |e|
|
||||
name = event.name.clone
|
||||
unless Case_Sensitive
|
||||
e.downcase!
|
||||
name.downcase!
|
||||
end
|
||||
return false if name.include?(e) || comments.any? { |c| c.include?(e) }
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
# Extending so we can access some private instance variables.
|
||||
class Game_Character
|
||||
attr_reader :jump_count
|
||||
end
|
||||
|
||||
unless Spriteset_Map.respond_to?(:viewport)
|
||||
class Spriteset_Map
|
||||
def viewport
|
||||
return @viewport1
|
||||
end
|
||||
|
||||
def self.viewport
|
||||
return $scene.spriteset.viewport rescue nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# Following Pokémon compatibility
|
||||
def pbToggleFollowingPokemon
|
||||
return if $Trainer.party[0].hp <= 0 || $Trainer.party[0].isEgg?
|
||||
if $game_switches[Following_Activated_Switch]
|
||||
if $game_switches[Toggle_Following_Switch]
|
||||
$game_switches[Toggle_Following_Switch] = false
|
||||
$PokemonTemp.dependentEvents.remove_sprite(true)
|
||||
$scene.spriteset.usersprites.select do |e|
|
||||
e.is_a?(DependentEventSprites)
|
||||
end.each do |des|
|
||||
des.sprites.each do |e|
|
||||
if e && e.shadow
|
||||
e.shadow.dispose
|
||||
e.shadow = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
pbWait(1)
|
||||
else
|
||||
$game_switches[Toggle_Following_Switch] = true
|
||||
$PokemonTemp.dependentEvents.refresh_sprite
|
||||
$scene.spriteset.usersprites.select do |e|
|
||||
e.is_a?(DependentEventSprites)
|
||||
end.each do |des|
|
||||
des.sprites.each do |e|
|
||||
e.make_shadow if e.respond_to?(:make_shadow)
|
||||
end
|
||||
end
|
||||
pbWait(1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class DependentEventSprites
|
||||
def refresh
|
||||
for sprite in @sprites
|
||||
sprite.dispose
|
||||
end
|
||||
@sprites.clear
|
||||
$PokemonTemp.dependentEvents.eachEvent do |event, data|
|
||||
if data[2] == @map.map_id # Check current map
|
||||
spr = Sprite_Character.new(@viewport,event,true)
|
||||
@sprites.push(spr)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
unless defined?(pbGetActiveEventPage)
|
||||
def pbGetActiveEventPage(event, mapid = nil)
|
||||
mapid ||= event.map.map_id if event.respond_to?(:map)
|
||||
pages = (event.is_a?(RPG::Event) ? event.pages : event.instance_eval { @event.pages })
|
||||
for i in 0...pages.size
|
||||
c = pages[pages.size - 1 - i].condition
|
||||
ss = !(c.self_switch_valid && !$game_self_switches[[mapid,
|
||||
event.id,c.self_switch_ch]])
|
||||
sw1 = !(c.switch1_valid && !$game_switches[c.switch1_id])
|
||||
sw2 = !(c.switch2_valid && !$game_switches[c.switch2_id])
|
||||
var = true
|
||||
if c.variable_valid
|
||||
if !c.variable_value || !$game_variables[c.variable_id].is_a?(Numeric) ||
|
||||
$game_variables[c.variable_id] < c.variable_value
|
||||
var = false
|
||||
end
|
||||
end
|
||||
if ss && sw1 && sw2 && var # All conditions are met
|
||||
return pages[pages.size - 1 - i]
|
||||
end
|
||||
end
|
||||
return nil
|
||||
end
|
||||
end
|
||||
|
||||
class Spriteset_Map
|
||||
attr_accessor :usersprites
|
||||
end
|
||||
|
||||
class Sprite_Character
|
||||
attr_accessor :shadow
|
||||
|
||||
alias ow_shadow_init initialize
|
||||
def initialize(viewport, character = nil, is_follower = false)
|
||||
@viewport = viewport
|
||||
@is_follower = is_follower
|
||||
ow_shadow_init(@viewport, character)
|
||||
|
||||
|
||||
|
||||
|
||||
return unless pbShouldGetShadow?(character)
|
||||
return if @is_follower && defined?(Toggle_Following_Switch) &&
|
||||
!$game_switches[Toggle_Following_Switch]
|
||||
return if @is_follower && defined?(Following_Activated_Switch) &&
|
||||
!$game_switches[Following_Activated_Switch]
|
||||
@character = character
|
||||
if @character.is_a?(Game_Event)
|
||||
page = pbGetActiveEventPage(@character)
|
||||
return if !page || !page.graphic || page.graphic.character_name == ""
|
||||
end
|
||||
make_shadow
|
||||
end
|
||||
|
||||
def make_shadow
|
||||
@shadow.dispose if @shadow
|
||||
@shadow = nil
|
||||
@shadow = Sprite.new(@viewport)
|
||||
@shadow.bitmap = RPG::Cache.load_bitmap(SHADOW_IMG_FOLDER,SHADOW_IMG_NAME)
|
||||
# Center the shadow by halving the origin points
|
||||
@shadow.ox = @shadow.bitmap.width / 2.0
|
||||
@shadow.oy = @shadow.bitmap.height / 2.0
|
||||
# Positioning the shadow
|
||||
position_shadow
|
||||
end
|
||||
|
||||
def position_shadow
|
||||
return unless @shadow
|
||||
# x = @character.screen_x
|
||||
# y = @character.screen_y
|
||||
# if @character.jumping?
|
||||
# @totaljump = @character.jump_count if !@totaljump
|
||||
# case @character.jump_count
|
||||
# when 1..(@totaljump / 3)
|
||||
# @shadow.zoom_x += 0.1
|
||||
# @shadow.zoom_y += 0.1
|
||||
# when (@totaljump / 3 + 1)..(@totaljump / 3 + 2)
|
||||
# @shadow.zoom_x += 0.05
|
||||
# @shadow.zoom_y += 0.05
|
||||
# when (@totaljump / 3 * 2 - 1)..(@totaljump / 3 * 2)
|
||||
# @shadow.zoom_x -= 0.05
|
||||
# @shadow.zoom_y -= 0.05
|
||||
# when (@totaljump / 3 * 2 + 1)..(@totaljump)
|
||||
# @shadow.zoom_x -= 0.1
|
||||
# @shadow.zoom_y -= 0.1
|
||||
# end
|
||||
# if @character.jump_count == 1
|
||||
# @shadow.zoom_x = 1.0
|
||||
# @shadow.zoom_y = 1.0
|
||||
# @totaljump = nil
|
||||
# end
|
||||
# end
|
||||
@shadow.x = x
|
||||
@shadow.y = y - 6
|
||||
@shadow.z = self.z - 1
|
||||
|
||||
if @shadow
|
||||
if @charbitmap.disposed? || @character.instance_eval { @erased }
|
||||
@shadow.dispose
|
||||
@shadow = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
alias ow_shadow_visible visible=
|
||||
def visible=(value)
|
||||
ow_shadow_visible(value)
|
||||
@shadow.visible = value if @shadow
|
||||
end
|
||||
|
||||
alias ow_shadow_dispose dispose
|
||||
def dispose
|
||||
ow_shadow_dispose
|
||||
@shadow.dispose if @shadow
|
||||
@shadow = nil
|
||||
end
|
||||
|
||||
alias ow_shadow_update update
|
||||
def update
|
||||
ow_shadow_update
|
||||
position_shadow
|
||||
|
||||
if @character.is_a?(Game_Event)
|
||||
page = pbGetActiveEventPage(@character)
|
||||
if @old_page != page
|
||||
@shadow.dispose if @shadow
|
||||
@shadow = nil
|
||||
if page && page.graphic && page.graphic.character_name != "" &&
|
||||
pbShouldGetShadow?(@character)
|
||||
unless @is_follower && defined?(Toggle_Following_Switch) &&
|
||||
!$game_switches[Toggle_Following_Switch]
|
||||
unless @is_follower && defined?(Following_Activated_Switch) &&
|
||||
!$game_switches[Following_Activated_Switch]
|
||||
make_shadow
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@old_page = (@character.is_a?(Game_Event) ? pbGetActiveEventPage(@character) : nil)
|
||||
|
||||
bushdepth = @character.bush_depth
|
||||
if @shadow
|
||||
@shadow.opacity = self.opacity
|
||||
@shadow.visible = (bushdepth == 0)
|
||||
if !self.visible || (@is_follower || @character == $game_player) &&
|
||||
($PokemonGlobal.surfing || $PokemonGlobal.diving)
|
||||
@shadow.visible = false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,16 @@
|
||||
def addWaterCausticsEffect(fog_name = "caustic1", opacity = 16)
|
||||
$game_map.fog_name = fog_name
|
||||
$game_map.fog_hue = 0
|
||||
$game_map.fog_opacity = opacity
|
||||
#$game_map.fog_blend_type = @parameters[4]
|
||||
$game_map.fog_zoom = 200
|
||||
$game_map.fog_sx = 2
|
||||
$game_map.fog_sy = 2
|
||||
|
||||
$game_map.setFog2(fog_name, -3, 0, opacity,)
|
||||
end
|
||||
|
||||
def stopWaterCausticsEffect()
|
||||
$game_map.fog_opacity = 0
|
||||
$game_map.eraseFog2()
|
||||
end
|
||||
@@ -0,0 +1,23 @@
|
||||
PUDDLE_ANIMATION_ID = 22
|
||||
Events.onStepTakenFieldMovement += proc { |_sender, e|
|
||||
event = e[0] # Get the event affected by field movement
|
||||
if $scene.is_a?(Scene_Map)
|
||||
event.each_occupied_tile do |x, y|
|
||||
mapTerrainTag = $MapFactory.getTerrainTag(event.map.map_id, x, y, false)
|
||||
if $PokemonGlobal.surfing
|
||||
if isWaterTerrain?(mapTerrainTag) #&& $PokemonGlobal.stepcount % 2 ==0
|
||||
$scene.spriteset.addUserAnimation(PUDDLE_ANIMATION_ID, event.x, event.y, true, 0)
|
||||
end
|
||||
else
|
||||
if mapTerrainTag == 16 #puddle
|
||||
pbSEPlay("puddle", 100) if event == $game_player && !$PokemonGlobal.surfing #only play sound effect in puddle
|
||||
$scene.spriteset.addUserAnimation(PUDDLE_ANIMATION_ID, event.x, event.y, true, 0)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
}
|
||||
|
||||
def isWaterTerrain?(tag)
|
||||
return [5, 6, 17, 7, 9, 16].include?(tag)
|
||||
end
|
||||
@@ -0,0 +1,84 @@
|
||||
def promptEnableSpritesDownload
|
||||
message = _INTL("Some sprites appear to be missing from your game. \nWould you like the game to download sprites automatically while playing? (this requires an internet connection)")
|
||||
if pbConfirmMessage(message)
|
||||
$PokemonSystem.download_sprites = 0
|
||||
end
|
||||
end
|
||||
|
||||
def update_spritepack_files()
|
||||
updateCreditsFile()
|
||||
updateOnlineCustomSpritesFile()
|
||||
reset_updated_spritesheets_cache()
|
||||
$updated_spritesheets = []
|
||||
spritesLoader = BattleSpriteLoader.new
|
||||
spritesLoader.clear_sprites_cache(:CUSTOM)
|
||||
spritesLoader.clear_sprites_cache(:BASE)
|
||||
|
||||
pbMessage(_INTL("Data files updated. New sprites will now be downloaded as you play!"))
|
||||
end
|
||||
|
||||
def reset_updated_spritesheets_cache()
|
||||
echoln "resetting updated spritesheets list"
|
||||
begin
|
||||
File.open(Settings::UPDATED_SPRITESHEETS_CACHE, 'w') { |file| file.truncate(0) }
|
||||
echoln "File reset successfully."
|
||||
rescue => e
|
||||
echoln "Failed to reset file: #{e.message}"
|
||||
end
|
||||
end
|
||||
|
||||
def preload_party(trainer)
|
||||
spriteLoader = BattleSpriteLoader.new
|
||||
for pokemon in trainer.party
|
||||
spriteLoader.preload_sprite_from_pokemon(pokemon)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
#unused - too slow, & multithreading not possible
|
||||
# def preload_party_and_boxes(storage, trainer)
|
||||
# echoln "Loading boxes and party into cache in the background"
|
||||
# start_time = Time.now
|
||||
# spriterLoader = BattleSpriteLoader.new
|
||||
# for box in storage.boxes
|
||||
# for pokemon in box.pokemon
|
||||
# if pokemon != nil
|
||||
# if !pokemon.egg?
|
||||
# spriterLoader.preload_sprite_from_pokemon(pokemon)
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
# for pokemon in trainer.party
|
||||
# spriterLoader.preload_sprite_from_pokemon(pokemon)
|
||||
# end
|
||||
# end_time = Time.now
|
||||
# echoln "Finished in #{end_time - start_time} seconds"
|
||||
# end
|
||||
|
||||
|
||||
def checkEnableSpritesDownload
|
||||
if $PokemonSystem.download_sprites && $PokemonSystem.download_sprites != 0
|
||||
customSprites = getCustomSpeciesList
|
||||
if !customSprites
|
||||
promptEnableSpritesDownload
|
||||
else
|
||||
if customSprites.length < 1000
|
||||
promptEnableSpritesDownload
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def check_for_spritepack_update()
|
||||
$updated_spritesheets = [] if !$updated_spritesheets
|
||||
if new_spritepack_was_released()
|
||||
pbFadeOutIn() {
|
||||
return if !downloadAllowed?()
|
||||
should_update = pbConfirmMessage(_INTL("A new spritepack was released. Would you like to let the game update your game's sprites automatically?"))
|
||||
if should_update
|
||||
update_spritepack_files
|
||||
end
|
||||
}
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user