DNA Splicers WIP

This commit is contained in:
chardub
2025-05-08 22:59:30 -04:00
parent 6536fcda77
commit 4ecf97b777
287 changed files with 5291 additions and 31635 deletions

View File

@@ -562,7 +562,7 @@ end
# Fades out the screen before a block is run and fades it back in after the
# block exits. z indicates the z-coordinate of the viewport used for this effect
def pbFadeOutIn(z = 99999, nofadeout = false)
duration = 0.4 # In seconds
duration = 0.1 # In seconds
col = Color.new(0, 0, 0, 0)
viewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
viewport.z = z

View File

@@ -0,0 +1,17 @@
# frozen_string_literal: true
class Game_Temp
attr_accessor :unimportedSprites
attr_accessor :nb_imported_sprites
attr_accessor :loading_screen
attr_accessor :custom_sprites_list
attr_accessor :base_sprites_list
attr_accessor :forced_alt_sprites
alias pokemonEssentials_GameTemp_original_initialize initialize
def initialize
pokemonEssentials_GameTemp_original_initialize
@custom_sprites_list ={}
@base_sprites_list ={}
end
end

View File

@@ -0,0 +1,37 @@
module GameData
class Species
def id_number
return (GameData::Species.keys.index(@id) || 0) + 1
end
def type1
return @types[0]
end
def type2
return @types[-1]
end
def is_fusion
return id_number > Settings::NB_POKEMON
end
def is_triple_fusion
return id_number >= Settings::ZAPMOLCUNO_NB
end
def get_body_species
return @species
end
def get_head_species
return @species
end
def hasType?(type)
type = GameData::Type.get(type).id
return self.types.include?(type)
end
end
end

View File

@@ -0,0 +1,12 @@
def pbChoosePokemon(helptext,index_game_var=1, name_game_var=2, able_proc = nil, _allow_ineligible = false)
set_help_text(_INTL(helptext))
chosen = -1
pbFadeOutIn do
screen = UI::Party.new($player.party, mode: :choose_pokemon)
screen.set_able_annotation_proc(able_proc) if able_proc
chosen = screen.choose_pokemon
end
pbSet(index_game_var, chosen)
pbSet(name_game_var, (chosen >= 0) ? $player.party[chosen].name : "")
return chosen
end

View File

@@ -0,0 +1,225 @@
class DoublePreviewScreen
SELECT_ARROW_X_LEFT= 100
SELECT_ARROW_X_RIGHT= 350
SELECT_ARROW_X_CANCEL= 230
SELECT_ARROW_Y_SELECT= 0
SELECT_ARROW_Y_CANCEL= 210
ARROW_GRAPHICS_PATH = "Graphics/Pictures/Fusion/selHand"
CANCEL_BUTTON_PATH = "Graphics/Pictures/Fusion/previewScreen_Cancel"
BACKGROUND_PATH = "Graphics/Pictures/Fusion/shadeFull_"
CANCEL_BUTTON_X= 140
CANCEL_BUTTON_Y= 260
def initialize(species_left, species_right)
@species_left = species_left
@species_right = species_right
@typewindows = []
@picture1 = nil
@picture2 = nil
@draw_types = nil
@draw_level = nil
@draw_sprite_info = nil
@selected = 0
@last_post=0
@sprites = {}
initializeBackground
initializeSelectArrow
initializeCancelButton
end
def getBackgroundPicture
return BACKGROUND_PATH
end
def getSelection
selected = startSelection
@sprites["cancel"].visible=false
#@sprites["arrow"].visible=false
#todo: il y a un fuck en quelque part.... en attendant ca marche inversé ici
return @species_left if selected == 0
return @species_right if selected == 1
return -1
end
def startSelection
loop do
Graphics.update
Input.update
updateSelection
if Input.trigger?(Input::USE)
return @selected
end
if Input.trigger?(Input::BACK)
return -1
end
end
end
def updateSelection
currentSelected = @selected
updateSelectionIndex
if @selected != currentSelected
updateSelectionGraphics
end
end
def updateSelectionIndex
if Input.trigger?(Input::LEFT)
@selected = 0
elsif Input.trigger?(Input::RIGHT)
@selected = 1
end
if @selected == -1
if Input.trigger?(Input::UP)
@selected = @last_post
end
else
if Input.trigger?(Input::DOWN)
@last_post = @selected
@selected = -1
end
end
end
def updateSelectionGraphics
if @selected == 0
@sprites["arrow"].x = SELECT_ARROW_X_LEFT
@sprites["arrow"].y = SELECT_ARROW_Y_SELECT
elsif @selected == 1
@sprites["arrow"].x = SELECT_ARROW_X_RIGHT
@sprites["arrow"].y = SELECT_ARROW_Y_SELECT
else
@sprites["arrow"].x = SELECT_ARROW_X_CANCEL
@sprites["arrow"].y = SELECT_ARROW_Y_CANCEL
end
pbUpdateSpriteHash(@sprites)
end
def draw_window(dexNumber, level, x, y)
body_pokemon = getBodyID(dexNumber)
head_pokemon = getHeadID(dexNumber, body_pokemon)
# picturePath = getPicturePath(head_pokemon, body_pokemon)
# bitmap = AnimatedBitmap.new(picturePath)
spriteLoader = BattleSpriteLoader.new
bitmap = spriteLoader.load_fusion_sprite(head_pokemon,body_pokemon)
bitmap.scale_bitmap(Settings::FRONTSPRITE_SCALE)
pif_sprite = spriteLoader.obtain_fusion_pif_sprite(head_pokemon,body_pokemon)
#hasCustom = picturePath.include?("CustomBattlers")
#hasCustom = customSpriteExistsBase(body_pokemon,head_pokemon)
hasCustom = customSpriteExists(body_pokemon,head_pokemon)
previewwindow = PictureWindow.new(bitmap)
previewwindow.x = x
previewwindow.y = y
previewwindow.z = 100000
drawFusionInformation(dexNumber, level, x)
if !$Trainer.seen?(dexNumber)
if pif_sprite.local_path()
previewwindow.picture.pbSetColor(170, 200, 250, 200) #blue
elsif hasCustom
previewwindow.picture.pbSetColor(150, 255, 150, 200) #green
else
previewwindow.picture.pbSetColor(255, 255, 255, 200) #white
end
end
return previewwindow
end
def drawFusionInformation(fusedDexNum, level, x = 0)
viewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
@typewindows << drawPokemonType(fusedDexNum, viewport, x + 55, 220) if @draw_types
drawFusionPreviewText(viewport, "Lv. " + level.to_s, x + 80, 40,) if @draw_level
drawSpriteInfoIcons(getPokemon(fusedDexNum),viewport) if @draw_sprite_info
end
def initializeSelectArrow
@sprites["arrow"] = IconSprite.new(0, 0, @viewport)
@sprites["arrow"].setBitmap(ARROW_GRAPHICS_PATH)
@sprites["arrow"].x = SELECT_ARROW_X_LEFT
@sprites["arrow"].y = SELECT_ARROW_Y_SELECT
@sprites["arrow"].z = 100001
end
def initializeCancelButton()
@sprites["cancel"] = IconSprite.new(0, 0, @viewport)
@sprites["cancel"].setBitmap(CANCEL_BUTTON_PATH)
@sprites["cancel"].x = CANCEL_BUTTON_X
@sprites["cancel"].y = CANCEL_BUTTON_Y
@sprites["cancel"].z = 100000
end
def initializeBackground()
@sprites["background"] = IconSprite.new(0, 0, @viewport)
@sprites["background"].setBitmap(getBackgroundPicture)
@sprites["background"].x = 0
@sprites["background"].y = 0
@sprites["background"].z = 99999
end
def drawFusionPreviewText(viewport, text, x, y)
label_base_color = Color.new(248, 248, 248)
label_shadow_color = Color.new(104, 104, 104)
overlay = BitmapSprite.new(Graphics.width, Graphics.height, viewport).bitmap
textpos = [[text, x, y, 0, label_base_color, label_shadow_color]]
pbDrawTextPositions(overlay, textpos)
end
#todo
# Adds the icons indicating if the fusion has alt sprites and if the final evo has a custom sprite
# also add a second icon to indidcate if the final evolution has a custom
def drawSpriteInfoIcons(fusedPokemon, viewport)
#pokedexUtils = PokedexUtils.new
#hasAltSprites = pokedexUtils.pbGetAvailableAlts(fusedPokemon).size>1
#pokedexUtils.getFinalEvolution(fusedPokemon).real_name
#todo
end
def dispose
@picture1.dispose
@picture2.dispose
for typeWindow in @typewindows
typeWindow.dispose
end
pbDisposeSpriteHash(@sprites)
end
def drawPokemonType(pokemon_id, viewport, x_pos = 192, y_pos = 264)
width = 66
viewport.z = 1000001
overlay = BitmapSprite.new(Graphics.width, Graphics.height, viewport).bitmap
pokemon = GameData::Species.get(pokemon_id)
typebitmap = AnimatedBitmap.new(_INTL("Graphics/Pictures/types"))
echoln pokemon
echoln pokemon.types
echoln pokemon.id
type1_number = GameData::Type.get(pokemon.type1).icon_position
type2_number = GameData::Type.get(pokemon.type2).icon_position if pokemon.type2
type1rect = Rect.new(0, type1_number * 28, 64, 28)
type2rect = Rect.new(0, type2_number * 28, 64, 28)
if pokemon.type1 == pokemon.type2
overlay.blt(x_pos + (width / 2), y_pos, typebitmap.bitmap, type1rect)
else
overlay.blt(x_pos, y_pos, typebitmap.bitmap, type1rect)
overlay.blt(x_pos + width, y_pos, typebitmap.bitmap, type2rect)
end
return viewport
end
end

View File

@@ -9,28 +9,19 @@ end
# don't remember why there's two Supersplicers arguments.... probably a mistake
def pbDNASplicing(pokemon, scene, item = :DNASPLICERS)
echoln pokemon
echoln scene
echoln item
is_supersplicer = isSuperSplicersMechanics(item)
playingBGM = $game_system.getPlayingBGM
dexNumber = pokemon.species_data.id_number
if (pokemon.species_data.id_number <= NB_POKEMON)
if pokemon.fused != nil
if $player.party.length >= 6
scene.pbDisplay(_INTL("Your party is full! You can't unfuse {1}.", pokemon.name))
return false
else
$player.party[$player.party.length] = pokemon.fused
pokemon.fused = nil
pokemon.form = 0
scene.pbHardRefresh
scene.pbDisplay(_INTL("{1} changed Forme!", pokemon.name))
return true
end
else
if (pokemon.species_data.id_number <= Settings::NB_POKEMON)
chosen = scene.pbChoosePokemon(_INTL("Fuse with which Pokémon?"))
if chosen >= 0
poke2 = $player.party[chosen]
if (poke2.species_data.id_number <= NB_POKEMON) && poke2 != pokemon
if (poke2.species_data.id_number <= Settings::NB_POKEMON) && poke2 != pokemon
# check if fainted
if pokemon.egg? || poke2.egg?
@@ -79,7 +70,7 @@ def pbDNASplicing(pokemon, scene, item = :DNASPLICERS)
else
return false
end
end
else
# UNFUSE
return true if pbUnfuse(pokemon, scene, is_supersplicer)
@@ -96,34 +87,10 @@ def selectFusion(pokemon, poke2, supersplicers = false)
return selectedHead
end
# firstOptionSelected= selectedHead == pokemon
# selectedBody = selectedHead == pokemon ? poke2 : pokemon
# newid = (selectedBody.species_data.id_number) * NB_POKEMON + selectedHead.species_data.id_number
# def pbFuse(pokemon, poke2, supersplicers = false)
# newid = (pokemon.species_data.id_number) * NB_POKEMON + poke2.species_data.id_number
# previewwindow = FusionPreviewScreen.new(pokemon, poke2)#PictureWindow.new(picturePath)
#
# if (Kernel.pbConfirmMessage(_INTL("Fuse the two Pokémon?", newid)))
# previewwindow.dispose
# fus = PokemonFusionScene.new
# if (fus.pbStartScreen(pokemon, poke2, newid))
# returnItemsToBag(pokemon, poke2)
# fus.pbFusionScreen(false, supersplicers)
# $game_variables[126] += 1 #fuse counter
# fus.pbEndScreen
# return true
# end
# else
# previewwindow.dispose
# return false
# end
# end
def pbFuse(pokemon_body, pokemon_head, splicer_item)
use_supersplicers_mechanics = isSuperSplicersMechanics(splicer_item)
newid = (pokemon_body.species_data.id_number) * NB_POKEMON + pokemon_head.species_data.id_number
newid = (pokemon_body.species_data.id_number) * Settings::NB_POKEMON + pokemon_head.species_data.id_number
fus = PokemonFusionScene.new
if (fus.pbStartScreen(pokemon_body, pokemon_head, newid, splicer_item))
@@ -137,7 +104,7 @@ end
# Todo: refactor this, holy shit this is a mess
def pbUnfuse(pokemon, scene, supersplicers, pcPosition = nil)
if pokemon.species_data.id_number > (NB_POKEMON * NB_POKEMON) + NB_POKEMON # triple fusion
if pokemon.species_data.id_number > (Settings::NB_POKEMON * Settings::NB_POKEMON) + Settings::NB_POKEMON # triple fusion
scene.pbDisplay(_INTL("{1} cannot be unfused.", pokemon.name))
return false
end

View File

@@ -1,403 +1,421 @@
# module GameData
# class FusedSpecies < GameData::Species
# attr_reader :growth_rate
# attr_reader :body_pokemon
# attr_reader :head_pokemon
#
# def initialize(id)
# if id.is_a?(Integer)
# body_id = getBodyID(id)
# head_id = getHeadID(id, body_id)
# pokemon_id = getFusedPokemonIdFromDexNum(body_id, head_id)
# return GameData::FusedSpecies.new(pokemon_id)
# end
# head_id = get_head_number_from_symbol(id)
# body_id = get_body_number_from_symbol(id)
#
# @body_pokemon = GameData::Species.get(body_id)
# @head_pokemon = GameData::Species.get(head_id)
#
# @id = id
# @id_number = calculate_dex_number()
# @species = @id
# @form = 0
# @real_name = calculate_name()
# @real_form_name = nil
#
# @type1 = calculate_type1()
# @type2 = calculate_type2()
#
# #Stats
# @base_stats = calculate_base_stats()
# @evs = calculate_evs()
# adjust_stats_with_evs()
#
# @base_exp = calculate_base_exp()
# @growth_rate = calculate_growth_rate()
# @gender_ratio = calculate_gender() #todo
# @catch_rate = calculate_catch_rate()
# @happiness = calculate_base_happiness()
#
# #Moves
# @moves = calculate_moveset()
# @tutor_moves = calculate_tutor_moves() # hash[:tutor_moves] || []
# @egg_moves = calculate_egg_moves() # hash[:egg_moves] || []
#
# #Abilities
# @abilities = calculate_abilities() # hash[:abilities] || []
# @hidden_abilities = calculate_hidden_abilities() # hash[:hidden_abilities] || []
#
# #wild held items
# @wild_item_common = get_wild_item(@head_pokemon.wild_item_common, @body_pokemon.wild_item_common) # hash[:wild_item_common]
# @wild_item_uncommon = get_wild_item(@head_pokemon.wild_item_uncommon, @body_pokemon.wild_item_uncommon) # hash[:wild_item_uncommon]
# @wild_item_rare = get_wild_item(@head_pokemon.wild_item_rare, @body_pokemon.wild_item_rare) # hash[:wild_item_rare]
#
# @evolutions = calculate_evolutions() # hash[:evolutions] || []
#
# #breeding
# @egg_groups = [:Undiscovered] #calculate_egg_groups() # hash[:egg_groups] || [:Undiscovered]
# @hatch_steps = calculate_hatch_steps() # hash[:hatch_steps] || 1
# @incense = nil #hash[:incense]
#
# #pokedex
# @pokedex_form = @form #ignored
# @real_category = calculate_category()
# @real_pokedex_entry = calculate_dex_entry()
# @height = average_values(@head_pokemon.height, @body_pokemon.height)
# @weight = average_values(@head_pokemon.weight, @body_pokemon.weight)
# @color = @head_pokemon.color
# @shape = @body_pokemon.shape
#
# #sprite positioning
# @back_sprite_x = @body_pokemon.back_sprite_x
# @back_sprite_y = @body_pokemon.back_sprite_y
# @front_sprite_x = @body_pokemon.front_sprite_x
# @front_sprite_y = @body_pokemon.front_sprite_y
# @front_sprite_altitude = @body_pokemon.front_sprite_altitude
# @shadow_x = @body_pokemon.shadow_x
# @shadow_size = @body_pokemon.shadow_size
#
# # #unused attributes from Species class
# #
# # @shape = :Head
# # @habitat = :None
# # @generation = 0
# # @mega_stone = nil
# # @mega_move = nil
# # @unmega_form = 0
# # @mega_message = 0
# end
#
# def get_body_number_from_symbol(id)
# return id.to_s.match(/\d+/)[0].to_i
# end
#
# def get_head_number_from_symbol(id)
# return id.to_s.match(/(?<=H)\d+/)[0].to_i
# end
#
# def get_body_species
# return @body_pokemon.id_number
# end
#
# def get_head_species
# return @head_pokemon.id_number
# end
#
# def get_body_species_symbol
# return @body_pokemon.id
# end
#
# def get_head_species_symbol
# return @head_pokemon.id
# end
#
# def adjust_stats_with_evs
# GameData::Stat.each_main do |s|
# @base_stats[s.id] = 1 if !@base_stats[s.id] || @base_stats[s.id] <= 0
# @evs[s.id] = 0 if !@evs[s.id] || @evs[s.id] < 0
# end
# end
#
# #FUSION CALCULATIONS
# def calculate_dex_number()
# return (@body_pokemon.id_number * NB_POKEMON) + @head_pokemon.id_number
# end
#
# def calculate_type1()
# return @head_pokemon.type2 if @head_pokemon.type1 == :NORMAL && @head_pokemon.type2 == :FLYING
# return @head_pokemon.type1
# end
#
# def calculate_type2()
# return @body_pokemon.type1 if @body_pokemon.type2 == @type1
# return @body_pokemon.type2
# end
#
# def calculate_base_stats()
# head_stats = @head_pokemon.base_stats
# body_stats = @body_pokemon.base_stats
#
# fused_stats = {}
#
# #Head dominant stats
# fused_stats[:HP] = calculate_fused_stats(head_stats[:HP], body_stats[:HP])
# fused_stats[:SPECIAL_DEFENSE] = calculate_fused_stats(head_stats[:SPECIAL_DEFENSE], body_stats[:SPECIAL_DEFENSE])
# fused_stats[:SPECIAL_ATTACK] = calculate_fused_stats(head_stats[:SPECIAL_ATTACK], body_stats[:SPECIAL_ATTACK])
#
# #Body dominant stats
# fused_stats[:ATTACK] = calculate_fused_stats(body_stats[:ATTACK], head_stats[:ATTACK])
# fused_stats[:DEFENSE] = calculate_fused_stats(body_stats[:DEFENSE], head_stats[:DEFENSE])
# fused_stats[:SPEED] = calculate_fused_stats(body_stats[:SPEED], head_stats[:SPEED])
#
# return fused_stats
# end
#
# def calculate_base_exp()
# head_exp = @head_pokemon.base_exp
# body_exp = @body_pokemon.base_exp
# return average_values(head_exp, body_exp)
# end
#
# def calculate_catch_rate
# return get_lowest_value(@body_pokemon.catch_rate, @head_pokemon.catch_rate)
# end
#
# def calculate_base_happiness
# return @head_pokemon.happiness
# end
#
# def calculate_moveset
# return combine_arrays(@body_pokemon.moves, @head_pokemon.moves)
# end
#
# def calculate_egg_moves
# return combine_arrays(@body_pokemon.egg_moves, @head_pokemon.egg_moves)
# end
#
# def calculate_tutor_moves
# return combine_arrays(@body_pokemon.tutor_moves, @head_pokemon.tutor_moves)
# end
#
# def get_wild_item(body_item, head_item)
# rand_num = rand(2)
# if rand_num == 0
# return body_item
# else
# return head_item
# end
# end
#
# def calculate_abilities()
# abilities_hash = []
#
# ability1 = @body_pokemon.abilities[0]
# ability2 = @head_pokemon.abilities[0]
# abilities_hash << ability1
# abilities_hash << ability2
# return abilities_hash
# end
#
# # def calculate_abilities(pokemon1, pokemon2)
# # abilities_hash = []
# #
# # ability1 = pokemon1.abilities[0]
# # ability2 = pokemon2.abilities[1]
# # if !ability2
# # ability2 = pokemon2.abilities[0]
# # end
# # abilities_hash << ability1
# # abilities_hash << ability2
# # return abilities_hash
# # end
#
# def calculate_hidden_abilities()
# abilities_hash = []
#
# #First two spots are the other abilities of the two pokemon
# ability1 = @body_pokemon.abilities[1]
# ability2 = @head_pokemon.abilities[1]
# ability1 = @body_pokemon.abilities[0] if !ability1
# ability2 = @head_pokemon.abilities[0] if !ability2
#
# abilities_hash << ability1
# abilities_hash << ability2
#
# #add the hidden ability for the two base pokemon
# hiddenAbility1 = @body_pokemon.hidden_abilities[0]
# hiddenAbility1 = ability1 if !hiddenAbility1
#
# hiddenAbility2 = @head_pokemon.hidden_abilities[0]
# hiddenAbility2 = ability2 if !hiddenAbility2
#
# abilities_hash << hiddenAbility1
# abilities_hash << hiddenAbility2
# return abilities_hash
# end
#
# def calculate_name()
# body_nat_dex = GameData::NAT_DEX_MAPPING[@body_pokemon.id_number] ? GameData::NAT_DEX_MAPPING[@body_pokemon.id_number] : @body_pokemon.id_number
# head_nat_dex = GameData::NAT_DEX_MAPPING[@head_pokemon.id_number] ? GameData::NAT_DEX_MAPPING[@head_pokemon.id_number] : @head_pokemon.id_number
# begin
# prefix = GameData::SPLIT_NAMES[head_nat_dex][0]
# suffix = GameData::SPLIT_NAMES[body_nat_dex][1]
# if prefix[-1] == suffix[0]
# prefix = prefix[0..-2]
# end
# suffix = suffix.capitalize if prefix.end_with?(" ")
# return prefix + suffix
#
# rescue
# print("species with error: " + @species.to_s)
# end
#
# end
#
# def calculate_evolutions()
# body_evolutions = @body_pokemon.evolutions
# head_evolutions = @head_pokemon.evolutions
#
# fused_evolutions = []
#
# #body
# for evolution in body_evolutions
# evolutionSpecies = evolution[0]
# evolutionSpecies_dex = GameData::Species.get(evolutionSpecies).id_number
# fused_species = _INTL("B{1}H{2}", evolutionSpecies_dex, @head_pokemon.id_number)
# fused_evolutions << build_evolution_array(evolution, fused_species)
# end
#
# #head
# for evolution in head_evolutions
# evolutionSpecies = evolution[0]
# evolutionSpecies_dex = GameData::Species.get(evolutionSpecies).id_number
# fused_species = _INTL("B{1}H{2}", @body_pokemon.id_number, evolutionSpecies_dex)
# fused_evolutions << build_evolution_array(evolution, fused_species)
# end
#
# return fused_evolutions
# end
#
# #Change the evolution species depending if head & body and keep the rest of the data the same
# def build_evolution_array(evolution_data, new_species)
# fused_evolution_array = []
# fused_evolution_array << new_species.to_sym
#
# #add the rest
# for data in evolution_data
# next if evolution_data.index(data) == 0
# fused_evolution_array << data
# end
# return fused_evolution_array
# end
#
# def calculate_dex_entry
# body_entry = @body_pokemon.real_pokedex_entry.gsub(@body_pokemon.real_name, @real_name)
# head_entry = @head_pokemon.real_pokedex_entry.gsub(@head_pokemon.real_name, @real_name)
#
# return split_and_combine_text(body_entry, head_entry, ".")
# end
#
# def get_random_dex_entry()
# begin
# file_path = Settings::POKEDEX_ENTRIES_PATH
# json_data = File.read(file_path)
# all_body_entries = HTTPLite::JSON.parse(json_data)
#
#
# body_entry = all_body_entries[@body_pokemon.id_number.to_s].sample
# body_entry = body_entry.gsub(/#{@body_pokemon.real_name}/i, @real_name)
# body_entry = clean_json_string(body_entry).gsub(@body_pokemon.real_name, @real_name)
#
# head_entry = all_body_entries[@head_pokemon.id_number.to_s].sample
# head_entry = head_entry.gsub(/#{@head_pokemon.real_name}/i, @real_name)
# head_entry = clean_json_string(head_entry).gsub(@head_pokemon.real_name, @real_name)
# rescue
# body_entry = @body_pokemon.real_pokedex_entry.gsub(@body_pokemon.real_name, @real_name)
# head_entry = @head_pokemon.real_pokedex_entry.gsub(@head_pokemon.real_name, @real_name)
# end
# echoln body_entry
# echoln head_entry
# combined_entry = split_and_combine_text(body_entry, head_entry, ".")
# combined_entry += "." unless combined_entry.end_with?(".")
# return combined_entry
# end
#
# def calculate_egg_groups
# body_egg_groups = @body_pokemon.egg_groups
# head_egg_groups = @head_pokemon.egg_groups
# return :Undiscovered if body_egg_groups.include?(:Undiscovered) || head_egg_groups.include?(:Undiscovered)
# return combine_arrays(body_egg_groups, head_egg_groups)
# end
#
# def calculate_hatch_steps
# return average_values(@head_pokemon.hatch_steps, @body_pokemon.hatch_steps)
# end
#
# def calculate_evs()
# return average_map_values(@body_pokemon.evs, @head_pokemon.evs)
# end
#
# def calculate_category
# return split_and_combine_text(@body_pokemon.category, @head_pokemon.category, " ")
# end
#
# def calculate_growth_rate
# growth_rate_priority = [:Fast, :Medium, :Parabolic, :Fluctuating, :Erratic, :Slow] #todo rearrange order for balance?
# body_growth_rate = @body_pokemon.growth_rate
# head_growth_rate = @head_pokemon.growth_rate
# base_growth_rates = [body_growth_rate, head_growth_rate]
# for rate in growth_rate_priority
# return rate if base_growth_rates.include?(rate)
# end
# return :Medium
# end
#
# #TODO
# # ################## UNFINISHED ####################
# def calculate_gender
# return :Genderless
# end
#
# ############################# UTIL METHODS ###############################
#
# #Takes 2 strings, splits and combines them using the beginning of the first one and the end of the second one
# # (for example for pokedex entries)
# def split_and_combine_text(beginingText_full, endText_full, separator)
# beginingText_split = beginingText_full.split(separator, 2)
# endText_split = endText_full.split(separator, 2)
#
# beginningText = beginingText_split[0]
# endText = endText_split[1] && endText_split[1] != "" ? endText_split[1] : endText_split[0]
# return beginningText + separator + " " + endText
# end
#
# def calculate_fused_stats(dominantStat, otherStat)
# return ((2 * dominantStat) / 3) + (otherStat / 3).floor
# end
#
# def average_values(value1, value2)
# return ((value1 + value2) / 2).floor
# end
#
# def average_map_values(map1, map2)
# averaged_map = map1.merge(map2) do |key, value1, value2|
# ((value1 + value2) / 2.0).floor
# end
# return averaged_map
# end
#
# def get_highest_value(value1, value2)
# return value1 > value2 ? value1 : value2
# end
#
# def get_lowest_value(value1, value2)
# return value1 < value2 ? value1 : value2
# end
#
# def combine_arrays(array1, array2)
# return array1 + array2
# end
#
# end
# end
module GameData
class FusedSpecies < GameData::Species
attr_reader :growth_rate
attr_reader :body_pokemon
attr_reader :head_pokemon
def initialize(id)
if id.is_a?(Integer)
body_id = getBodyID(id)
head_id = getHeadID(id, body_id)
pokemon_id = getFusedPokemonIdFromDexNum(body_id, head_id)
return GameData::FusedSpecies.new(pokemon_id)
end
head_id = get_head_number_from_symbol(id)
body_id = get_body_number_from_symbol(id)
@body_pokemon = GameData::Species.get(body_id)
@head_pokemon = GameData::Species.get(head_id)
@id = id
@id_number = calculate_dex_number()
@species = @id
@form = 0
@real_name = calculate_name()
@real_form_name = nil
@type1 = calculate_type1()
@type2 = calculate_type2()
@types = [@type1, @type2]
#Stats
@base_stats = calculate_base_stats()
@evs = calculate_evs()
adjust_stats_with_evs()
@base_exp = calculate_base_exp()
@growth_rate = calculate_growth_rate()
@gender_ratio = calculate_gender() #todo
@catch_rate = calculate_catch_rate()
@happiness = calculate_base_happiness()
#Moves
@moves = calculate_moveset()
@tutor_moves = calculate_tutor_moves() # hash[:tutor_moves] || []
@egg_moves = calculate_egg_moves() # hash[:egg_moves] || []
#Abilities
@abilities = calculate_abilities() # hash[:abilities] || []
@hidden_abilities = calculate_hidden_abilities() # hash[:hidden_abilities] || []
#wild held items
@wild_item_common = get_wild_item(@head_pokemon.wild_item_common, @body_pokemon.wild_item_common) # hash[:wild_item_common]
@wild_item_uncommon = get_wild_item(@head_pokemon.wild_item_uncommon, @body_pokemon.wild_item_uncommon) # hash[:wild_item_uncommon]
@wild_item_rare = get_wild_item(@head_pokemon.wild_item_rare, @body_pokemon.wild_item_rare) # hash[:wild_item_rare]
@evolutions = calculate_evolutions() # hash[:evolutions] || []
#breeding
@egg_groups = [:Undiscovered] #calculate_egg_groups() # hash[:egg_groups] || [:Undiscovered]
@hatch_steps = calculate_hatch_steps() # hash[:hatch_steps] || 1
@incense = nil #hash[:incense]
#pokedex
@pokedex_form = @form #ignored
@real_category = calculate_category()
@real_pokedex_entry = calculate_dex_entry()
@height = average_values(@head_pokemon.height, @body_pokemon.height)
@weight = average_values(@head_pokemon.weight, @body_pokemon.weight)
@color = @head_pokemon.color
@shape = @body_pokemon.shape
#sprite positioning
#todo: this was moved to pokemon_metrics
# read the data for the body pokemon's species whenever it tries to position a fusedSpecies
#
# @back_sprite_x = @body_pokemon.back_sprite_x
# @back_sprite_y = @body_pokemon.back_sprite_y
# @front_sprite_x = @body_pokemon.front_sprite_x
# @front_sprite_y = @body_pokemon.front_sprite_y
# @front_sprite_altitude = @body_pokemon.front_sprite_altitude
# @shadow_x = @body_pokemon.shadow_x
# @shadow_size = @body_pokemon.shadow_size
# #unused attributes from Species class
#
# @shape = :Head
# @habitat = :None
# @generation = 0
# @mega_stone = nil
# @mega_move = nil
# @unmega_form = 0
# @mega_message = 0
end
def type1
return @type1
end
def type2
return @type2
end
def apply_metrics_to_sprite(sprite, index, shadow = false)
body_species = get_body_species()
metrics_data = GameData::SpeciesMetrics.get_species_form(body_species, 0)
metrics_data.apply_metrics_to_sprite(sprite, index, shadow)
end
def get_body_number_from_symbol(id)
return id.to_s.match(/\d+/)[0].to_i
end
def get_head_number_from_symbol(id)
return id.to_s.match(/(?<=H)\d+/)[0].to_i
end
def get_body_species
return @body_pokemon.id_number
end
def get_head_species
return @head_pokemon.id_number
end
def get_body_species_symbol
return @body_pokemon.id
end
def get_head_species_symbol
return @head_pokemon.id
end
def adjust_stats_with_evs
GameData::Stat.each_main do |s|
@base_stats[s.id] = 1 if !@base_stats[s.id] || @base_stats[s.id] <= 0
@evs[s.id] = 0 if !@evs[s.id] || @evs[s.id] < 0
end
end
#FUSION CALCULATIONS
def calculate_dex_number()
return (@body_pokemon.id_number * Settings::NB_POKEMON) + @head_pokemon.id_number
end
def calculate_type1()
return @head_pokemon.type2 if @head_pokemon.type1 == :NORMAL && @head_pokemon.type2 == :FLYING
return @head_pokemon.type1
end
def calculate_type2()
return @body_pokemon.type1 if @body_pokemon.type2 == @type1
return @body_pokemon.type2
end
def calculate_base_stats()
head_stats = @head_pokemon.base_stats
body_stats = @body_pokemon.base_stats
fused_stats = {}
#Head dominant stats
fused_stats[:HP] = calculate_fused_stats(head_stats[:HP], body_stats[:HP])
fused_stats[:SPECIAL_DEFENSE] = calculate_fused_stats(head_stats[:SPECIAL_DEFENSE], body_stats[:SPECIAL_DEFENSE])
fused_stats[:SPECIAL_ATTACK] = calculate_fused_stats(head_stats[:SPECIAL_ATTACK], body_stats[:SPECIAL_ATTACK])
#Body dominant stats
fused_stats[:ATTACK] = calculate_fused_stats(body_stats[:ATTACK], head_stats[:ATTACK])
fused_stats[:DEFENSE] = calculate_fused_stats(body_stats[:DEFENSE], head_stats[:DEFENSE])
fused_stats[:SPEED] = calculate_fused_stats(body_stats[:SPEED], head_stats[:SPEED])
return fused_stats
end
def calculate_base_exp()
head_exp = @head_pokemon.base_exp
body_exp = @body_pokemon.base_exp
return average_values(head_exp, body_exp)
end
def calculate_catch_rate
return get_lowest_value(@body_pokemon.catch_rate, @head_pokemon.catch_rate)
end
def calculate_base_happiness
return @head_pokemon.happiness
end
def calculate_moveset
return combine_arrays(@body_pokemon.moves, @head_pokemon.moves)
end
def calculate_egg_moves
return combine_arrays(@body_pokemon.egg_moves, @head_pokemon.egg_moves)
end
def calculate_tutor_moves
return combine_arrays(@body_pokemon.tutor_moves, @head_pokemon.tutor_moves)
end
def get_wild_item(body_item, head_item)
rand_num = rand(2)
if rand_num == 0
return body_item
else
return head_item
end
end
def calculate_abilities()
abilities_hash = []
ability1 = @body_pokemon.abilities[0]
ability2 = @head_pokemon.abilities[0]
abilities_hash << ability1
abilities_hash << ability2
return abilities_hash
end
# def calculate_abilities(pokemon1, pokemon2)
# abilities_hash = []
#
# ability1 = pokemon1.abilities[0]
# ability2 = pokemon2.abilities[1]
# if !ability2
# ability2 = pokemon2.abilities[0]
# end
# abilities_hash << ability1
# abilities_hash << ability2
# return abilities_hash
# end
def calculate_hidden_abilities()
abilities_hash = []
#First two spots are the other abilities of the two pokemon
ability1 = @body_pokemon.abilities[1]
ability2 = @head_pokemon.abilities[1]
ability1 = @body_pokemon.abilities[0] if !ability1
ability2 = @head_pokemon.abilities[0] if !ability2
abilities_hash << ability1
abilities_hash << ability2
#add the hidden ability for the two base pokemon
hiddenAbility1 = @body_pokemon.hidden_abilities[0]
hiddenAbility1 = ability1 if !hiddenAbility1
hiddenAbility2 = @head_pokemon.hidden_abilities[0]
hiddenAbility2 = ability2 if !hiddenAbility2
abilities_hash << hiddenAbility1
abilities_hash << hiddenAbility2
return abilities_hash
end
def calculate_name()
body_nat_dex = GameData::NAT_DEX_MAPPING[@body_pokemon.id_number] ? GameData::NAT_DEX_MAPPING[@body_pokemon.id_number] : @body_pokemon.id_number
head_nat_dex = GameData::NAT_DEX_MAPPING[@head_pokemon.id_number] ? GameData::NAT_DEX_MAPPING[@head_pokemon.id_number] : @head_pokemon.id_number
begin
prefix = GameData::SPLIT_NAMES[head_nat_dex][0]
suffix = GameData::SPLIT_NAMES[body_nat_dex][1]
if prefix[-1] == suffix[0]
prefix = prefix[0..-2]
end
suffix = suffix.capitalize if prefix.end_with?(" ")
return prefix + suffix
rescue
print("species with error: " + @species.to_s)
end
end
def calculate_evolutions()
body_evolutions = @body_pokemon.evolutions
head_evolutions = @head_pokemon.evolutions
fused_evolutions = []
#body
for evolution in body_evolutions
evolutionSpecies = evolution[0]
evolutionSpecies_dex = GameData::Species.get(evolutionSpecies).id_number
fused_species = _INTL("B{1}H{2}", evolutionSpecies_dex, @head_pokemon.id_number)
fused_evolutions << build_evolution_array(evolution, fused_species)
end
#head
for evolution in head_evolutions
evolutionSpecies = evolution[0]
evolutionSpecies_dex = GameData::Species.get(evolutionSpecies).id_number
fused_species = _INTL("B{1}H{2}", @body_pokemon.id_number, evolutionSpecies_dex)
fused_evolutions << build_evolution_array(evolution, fused_species)
end
return fused_evolutions
end
#Change the evolution species depending if head & body and keep the rest of the data the same
def build_evolution_array(evolution_data, new_species)
fused_evolution_array = []
fused_evolution_array << new_species.to_sym
#add the rest
for data in evolution_data
next if evolution_data.index(data) == 0
fused_evolution_array << data
end
return fused_evolution_array
end
def calculate_dex_entry
body_entry = @body_pokemon.real_pokedex_entry.gsub(@body_pokemon.real_name, @real_name)
head_entry = @head_pokemon.real_pokedex_entry.gsub(@head_pokemon.real_name, @real_name)
return split_and_combine_text(body_entry, head_entry, ".")
end
def get_random_dex_entry()
begin
file_path = Settings::POKEDEX_ENTRIES_PATH
json_data = File.read(file_path)
all_body_entries = HTTPLite::JSON.parse(json_data)
body_entry = all_body_entries[@body_pokemon.id_number.to_s].sample
body_entry = body_entry.gsub(/#{@body_pokemon.real_name}/i, @real_name)
body_entry = clean_json_string(body_entry).gsub(@body_pokemon.real_name, @real_name)
head_entry = all_body_entries[@head_pokemon.id_number.to_s].sample
head_entry = head_entry.gsub(/#{@head_pokemon.real_name}/i, @real_name)
head_entry = clean_json_string(head_entry).gsub(@head_pokemon.real_name, @real_name)
rescue
body_entry = @body_pokemon.real_pokedex_entry.gsub(@body_pokemon.real_name, @real_name)
head_entry = @head_pokemon.real_pokedex_entry.gsub(@head_pokemon.real_name, @real_name)
end
echoln body_entry
echoln head_entry
combined_entry = split_and_combine_text(body_entry, head_entry, ".")
combined_entry += "." unless combined_entry.end_with?(".")
return combined_entry
end
def calculate_egg_groups
body_egg_groups = @body_pokemon.egg_groups
head_egg_groups = @head_pokemon.egg_groups
return :Undiscovered if body_egg_groups.include?(:Undiscovered) || head_egg_groups.include?(:Undiscovered)
return combine_arrays(body_egg_groups, head_egg_groups)
end
def calculate_hatch_steps
return average_values(@head_pokemon.hatch_steps, @body_pokemon.hatch_steps)
end
def calculate_evs()
return average_map_values(@body_pokemon.evs, @head_pokemon.evs)
end
def calculate_category
return split_and_combine_text(@body_pokemon.category, @head_pokemon.category, " ")
end
def calculate_growth_rate
growth_rate_priority = [:Fast, :Medium, :Parabolic, :Fluctuating, :Erratic, :Slow] #todo rearrange order for balance?
body_growth_rate = @body_pokemon.growth_rate
head_growth_rate = @head_pokemon.growth_rate
base_growth_rates = [body_growth_rate, head_growth_rate]
for rate in growth_rate_priority
return rate if base_growth_rates.include?(rate)
end
return :Medium
end
#TODO
# ################## UNFINISHED ####################
def calculate_gender
return :Genderless
end
############################# UTIL METHODS ###############################
#Takes 2 strings, splits and combines them using the beginning of the first one and the end of the second one
# (for example for pokedex entries)
def split_and_combine_text(beginingText_full, endText_full, separator)
beginingText_split = beginingText_full.split(separator, 2)
endText_split = endText_full.split(separator, 2)
beginningText = beginingText_split[0]
endText = endText_split[1] && endText_split[1] != "" ? endText_split[1] : endText_split[0]
return beginningText + separator + " " + endText
end
def calculate_fused_stats(dominantStat, otherStat)
return ((2 * dominantStat) / 3) + (otherStat / 3).floor
end
def average_values(value1, value2)
return ((value1 + value2) / 2).floor
end
def average_map_values(map1, map2)
averaged_map = map1.merge(map2) do |key, value1, value2|
((value1 + value2) / 2.0).floor
end
return averaged_map
end
def get_highest_value(value1, value2)
return value1 > value2 ? value1 : value2
end
def get_lowest_value(value1, value2)
return value1 < value2 ? value1 : value2
end
def combine_arrays(array1, array2)
return array1 + array2
end
end
end

File diff suppressed because it is too large Load Diff

View File

@@ -1,31 +1,74 @@
# module GameData
# module ClassMethods
# def get(other)
# validate other => [Symbol, self, String, Integer]
# return other if other.is_a?(self)
# other = other.to_sym if other.is_a?(String)
#
# if other.to_s.match?(/\AB\d+H\d+\z/)
# species = GameData::FusedSpecies.new(other)
# return species
# end
#
# if other.is_a?(Integer) && self == GameData::Species
# if other > NB_POKEMON
# body_id = getBodyID(other)
# head_id = getHeadID(other, body_id)
# pokemon_id = getFusedPokemonIdFromDexNum(body_id, head_id)
# return GameData::FusedSpecies.new(pokemon_id)
# end
# end
#
# if !self::DATA.has_key?(other)
# # echoln _INTL("Unknown ID {1}.", other)
# return self::get(:PIKACHU)
# end
#
# raise "Unknown ID #{other}." unless self::DATA.has_key?(other)
# return self::DATA[other]
# end
# end
# end
module GameData
module ClassMethods
def get(other)
validate other => [Symbol, self, String, Integer]
return other if other.is_a?(self)
other = other.to_sym if other.is_a?(String)
if other.to_s.match?(/\AB\d+H\d+\z/)
species = GameData::FusedSpecies.new(other)
return species
end
if other.is_a?(Integer) && self == GameData::Species
if other > Settings::NB_POKEMON
body_id = getBodyID(other)
head_id = getHeadID(other, body_id)
pokemon_id = getFusedPokemonIdFromDexNum(body_id, head_id)
return GameData::FusedSpecies.new(pokemon_id)
else
species_id = GameData::Species.keys[other-1]
return GameData::Species.get(species_id) if species_id
end
end
if !self::DATA.has_key?(other)
# echoln _INTL("Unknown ID {1}.", other)
return self::get(:PIKACHU)
end
raise "Unknown ID #{other}." unless self::DATA.has_key?(other)
return self::DATA[other]
end
end
module ClassMethodsSymbols
def get(other)
validate other => [Symbol, self, String, Integer]
return other if other.is_a?(self)
other = other.to_sym if other.is_a?(String)
if other.to_s.match?(/\AB\d+H\d+\z/)
species = GameData::FusedSpecies.new(other)
return species
end
if other.is_a?(Integer) && self == GameData::Species
if other > Settings::NB_POKEMON
body_id = getBodyID(other)
head_id = getHeadID(other, body_id)
pokemon_id = getFusedPokemonIdFromDexNum(body_id, head_id)
return GameData::FusedSpecies.new(pokemon_id)
else
species_id = GameData::Species.keys[other-1]
return GameData::Species.get(species_id) if species_id
end
end
raise "Unknown ID #{other}." unless self::DATA.has_key?(other)
return self::DATA[other]
end
def try_get(other)
return nil if other.nil?
validate other => [Symbol, self, String, Integer]
return other if other.is_a?(self)
other = other.to_sym if other.is_a?(String)
return (self::DATA.has_key?(other)) ? self::DATA[other] : nil
end
end
end

View File

@@ -0,0 +1,38 @@
# class PokemonFusionScene
# HEAD_SPRITE_STARTING_POS = Graphics.width / 2
#
#
# def pbStartScreen(pokemon_head,pokemon_body,pokemon_fused)
#
# @pokemon_head = pokemon_head
# @pokemon_body = pokemon_body
#
# @pokemon_fused = pokemon_fused
#
# @sprites = {}
# @viewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
# @viewport.z = 99999
#
# initialize_background()
# initialize_sprites()
# end
#
# def initialize_background()
# addBackgroundOrColoredPlane(@sprites, "background", "DNAbg",
# Color.new(248, 248, 248), @viewport)
# end
#
# def initialize_sprites()
# pokeHead_number = GameData::Species.get(@pokemon_head.species).id_number
# pokeBody_number = GameData::Species.get(@pokemon_body.species).id_number
#
# @sprites["poke_head"] = PokemonSprite.new(@viewport)
# @sprites["poke_head"].setPokemonBitmapFromId(pokeHead_number, false, @pokemon_head.shiny?)
#
# @sprites["poke_head"].ox = @sprites["rsprite1"].bitmap.width / 2
# @sprites["poke_head"].x = Graphics.width / 2
# @sprites["poke_head"].zoom_x = Settings::FRONTSPRITE_SCALE
#
# end
#
# end

View File

@@ -0,0 +1,115 @@
class FusionSelectOptionsScene < PokemonOption_Scene
attr_accessor :selectedAbility
attr_accessor :selectedNature
attr_accessor :hasNickname
attr_accessor :nickname
def initialize(abilityList,natureList, pokemon1, pokemon2)
@abilityList = abilityList
@natureList = natureList
@selectedAbility=nil
@selectedNature=nil
@selBaseColor = Color.new(48,96,216)
@selShadowColor = Color.new(32,32,32)
@show_frame=false
@hasNickname = false
@nickname = nil
@pokemon1=pokemon1
@pokemon2=pokemon2
end
def initUIElements
@sprites["title"] = Window_UnformattedTextPokemon.newWithSize(
_INTL("Select your Pokémon's ability and nature"), 0, 0, Graphics.width, 64, @viewport)
@sprites["textbox"] = pbCreateMessageWindow
@sprites["textbox"].letterbyletter = false
pbSetSystemFont(@sprites["textbox"].contents)
@sprites["title"].opacity=0
end
def pbStartScene(inloadscreen = nil)
super
@sprites["option"].opacity=0
end
def getAbilityName(ability)
return GameData::Ability.get(ability.id).real_name
end
def getAbilityDescription(ability)
return GameData::Ability.get(ability.id).real_description
end
def getNatureName(nature)
return GameData::Nature.get(nature.id).real_name
end
def getNatureDescription(nature)
change= GameData::Nature.get(nature.id).stat_changes
return "Neutral nature" if change.empty?
positiveChange = change[0]
negativeChange = change[1]
return _INTL("+ {1}\n- {2}",GameData::Stat.get(positiveChange[0]).name,GameData::Stat.get(negativeChange[0]).name)
end
def shouldSelectNickname
if @pokemon1.nicknamed? && @pokemon2.nicknamed?
@hasNickname=true
return true
end
if @pokemon1.nicknamed? && !@pokemon2.nicknamed?
@hasNickname=true
@nickname = @pokemon1.name
return false
end
if !@pokemon1.nicknamed? && @pokemon2.nicknamed?
@hasNickname=true
@nickname = @pokemon2.name
return false
end
@hasNickname=false
return false
end
def pbGetOptions(inloadscreen = false)
options = []
if shouldSelectNickname
options << EnumOption.new(_INTL("Nickname"), [_INTL(@pokemon1.name), _INTL(@pokemon2.name)],
proc { 0 },
proc { |value|
if value ==0
@nickname = @pokemon1.name
else
@nickname = @pokemon2.name
end
}, "Select the Pokémon's nickname")
end
options << EnumOption.new(_INTL("Ability"), [_INTL(getAbilityName(@abilityList[0])), _INTL(getAbilityName(@abilityList[1]))],
proc { 0 },
proc { |value|
@selectedAbility=@abilityList[value]
}, [getAbilityDescription(@abilityList[0]), getAbilityDescription(@abilityList[1])]
)
options << EnumOption.new(_INTL("Nature"), [_INTL(getNatureName(@natureList[0])), _INTL(getNatureName(@natureList[1]))],
proc { 0 },
proc { |value|
@selectedNature=@natureList[value]
}, [getNatureDescription(@natureList[0]), getNatureDescription(@natureList[1])]
)
return options
end
def isConfirmedOnKeyPress
return true
end
end

View File

@@ -0,0 +1,39 @@
class FusionPreviewScreen < DoublePreviewScreen
attr_reader :poke1
attr_reader :poke2
attr_reader :fusedPokemon
attr_reader :fusedPokemon
attr_writer :draw_types
attr_writer :draw_level
BACKGROUND_PATH = "Graphics/Pictures/DNAbg"
def initialize(poke1,poke2, usingSuperSplicers=false)
super(poke1,poke2)
@draw_types = true
@draw_level = true
@draw_sprite_info=true
#@viewport = viewport
@poke1 = poke1
@poke2 = poke2
@fusedPokemon=nil
new_level = calculateFusedPokemonLevel(poke1.level, poke2.level, usingSuperSplicers)
fusion_left = (poke1.species_data.id_number) * Settings::NB_POKEMON + poke2.species_data.id_number
fusion_right = (poke2.species_data.id_number) * Settings::NB_POKEMON + poke1.species_data.id_number
@picture1 = draw_window(fusion_left,new_level,20,30)
@picture2 = draw_window(fusion_right,new_level,270,30)
@sprites["picture1"] = @picture1
@sprites["picture2"] = @picture2
end
def getBackgroundPicture
super
end
end

File diff suppressed because it is too large Load Diff

View File

@@ -38,14 +38,14 @@ end
def species_is_fusion(species_id)
dex_number = get_dex_number(species_id)
return dex_number > NB_POKEMON && dex_number < Settings::ZAPMOLCUNO_NB
return dex_number > Settings::NB_POKEMON && dex_number < Settings::ZAPMOLCUNO_NB
end
def get_dex_number(species_id)
return GameData::Species.get(species_id).id_number
end
def getBodyID(species, nb_pokemon = NB_POKEMON)
def getBodyID(species, nb_pokemon = Settings::NB_POKEMON)
if species.is_a?(Integer)
dexNum = species
else
@@ -57,7 +57,7 @@ def getBodyID(species, nb_pokemon = NB_POKEMON)
return (dexNum / nb_pokemon).round
end
def getHeadID(species, bodyId = nil, nb_pokemon = NB_POKEMON)
def getHeadID(species, bodyId = nil, nb_pokemon = Settings::NB_POKEMON)
if species.is_a?(Integer)
fused_dexNum = species
else
@@ -408,3 +408,13 @@ def get_triple_fusion_components(species_id)
end
def reverseFusionSpecies(species)
dexId = getDexNumberForSpecies(species)
return species if dexId <= NB_POKEMON
return species if dexId > (NB_POKEMON * NB_POKEMON) + NB_POKEMON
body = getBasePokemonID(dexId, true)
head = getBasePokemonID(dexId, false)
newspecies = (head) * NB_POKEMON + body
return getPokemon(newspecies)
end

View File

@@ -564,4 +564,26 @@ end
def isOnPinkanIsland()
return false
end
def generateSimpleTrainerParty(teamSpecies, level)
team = []
for species in teamSpecies
poke = Pokemon.new(species, level)
team << poke
end
return team
end
def generateEggGroupTeam(eggGroup)
teamComplete = false
generatedTeam = []
while !teamComplete
species = rand(PBSpecies.maxValue)
if getPokemonEggGroups(species).include?(eggGroup)
generatedTeam << species
end
teamComplete = generatedTeam.length == 3
end
return generatedTeam
end

View File

@@ -46,4 +46,58 @@ end
def playAnimation(animationId, x, y)
return if !$scene.is_a?(Scene_Map)
$scene.spriteset.addUserAnimation(animationId, x, y, true)
end
def get_spritecharacter_for_event(event_id)
for sprite in $scene.spriteset.character_sprites
if sprite.character.id == event_id
return sprite
end
end
end
def pbBitmap(path)
if !pbResolveBitmap(path).nil?
bmp = RPG::Cache.load_bitmap_path(path)
bmp.storedPath = path
else
p "Image located at '#{path}' was not found!" if $DEBUG
bmp = Bitmap.new(1, 1)
end
return bmp
end
def addShinyStarsToGraphicsArray(imageArray, xPos, yPos, shinyBody, shinyHead, debugShiny, srcx = nil, srcy = nil, width = nil, height = nil,
showSecondStarUnder = false, showSecondStarAbove = false)
color = debugShiny ? Color.new(0, 0, 0, 255) : nil
imageArray.push(["Graphics/Pictures/shiny", xPos, yPos, srcx, srcy, width, height, color])
if shinyBody && shinyHead
if showSecondStarUnder
yPos += 15
elsif showSecondStarAbove
yPos -= 15
else
xPos -= 15
end
imageArray.push(["Graphics/Pictures/shiny", xPos, yPos, srcx, srcy, width, height, color])
end
end
def pbCheckPokemonIconFiles(speciesID, egg = false, dna = false)
if egg
bitmapFileName = sprintf("Graphics/Icons/iconEgg")
return pbResolveBitmap(bitmapFileName)
else
bitmapFileName = _INTL("Graphics/Pokemon/Icons/{1}", speciesID)
ret = pbResolveBitmap(bitmapFileName)
return ret if ret
end
ret = pbResolveBitmap("Graphics/Icons/iconDNA.png")
return ret if ret
return pbResolveBitmap("Graphics/Icons/iconDNA.png")
end
def pbPokemonIconFile(pokemon)
bitmapFileName = pbCheckPokemonIconFiles(pokemon.species, pokemon.isEgg?)
return bitmapFileName
end

View File

@@ -164,4 +164,17 @@ def swapReleaseCaughtPokemon(caughtPokemon)
$player.party[index] = $player.party[-1]
$player.party[-1] = tmp
return true
end
def Kernel.getItemNamesAsString(list)
strList = ""
for i in 0..list.length - 1
id = list[i]
name = PBItems.getName(id)
strList += name
if i != list.length - 1 && list.length > 1
strList += ","
end
end
return strList
end

View File

@@ -6,3 +6,5 @@ def isPlayerFemale()
return pbGet(VAR_TRAINER_GENDER) == GENDER_FEMALE
end# frozen_string_literal: true

View File

@@ -244,4 +244,272 @@ def oricorioEventPickFlower(flower_color)
pbMessage(_INTL("{1} picked some of the blue flowers.", $player.name))
end
end
# frozen_string_literal: true
def isInKantoGeneration(dexNumber)
return dexNumber <= 151
end
def isKantoPokemon(species)
dexNum = getDexNumberForSpecies(species)
poke = getPokemon(species)
head_dex = getDexNumberForSpecies(poke.get_head_species())
body_dex = getDexNumberForSpecies(poke.get_body_species())
return isInKantoGeneration(dexNum) || isInKantoGeneration(head_dex) || isInKantoGeneration(body_dex)
end
def isInJohtoGeneration(dexNumber)
return dexNumber > 151 && dexNumber <= 251
end
def isJohtoPokemon(species)
dexNum = getDexNumberForSpecies(species)
poke = getPokemon(species)
head_dex = getDexNumberForSpecies(poke.get_head_species())
body_dex = getDexNumberForSpecies(poke.get_body_species())
return isInJohtoGeneration(dexNum) || isInJohtoGeneration(head_dex) || isInJohtoGeneration(body_dex)
end
def isAlolaPokemon(species)
dexNum = getDexNumberForSpecies(species)
poke = getPokemon(species)
head_dex = getDexNumberForSpecies(poke.get_head_species())
body_dex = getDexNumberForSpecies(poke.get_body_species())
list = [
370, 373, 430, 431, 432, 433, 450, 451, 452,
453, 454, 455, 459, 460, 463, 464, 465, 469, 470,
471, 472, 473, 474, 475, 476, 477, 498, 499,
]
return list.include?(dexNum) || list.include?(head_dex) || list.include?(body_dex)
end
def isKalosPokemon(species)
dexNum = getDexNumberForSpecies(species)
poke = getPokemon(species)
head_dex = getDexNumberForSpecies(poke.get_head_species())
body_dex = getDexNumberForSpecies(poke.get_body_species())
list =
[327, 328, 329, 339, 371, 372, 417, 418,
425, 426, 438, 439, 440, 441, 444, 445, 446,
456, 461, 462, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
489, 490, 491, 492, 500,
]
return list.include?(dexNum) || list.include?(head_dex) || list.include?(body_dex)
end
def isUnovaPokemon(species)
dexNum = getDexNumberForSpecies(species)
poke = getPokemon(species)
head_dex = getDexNumberForSpecies(poke.get_head_species())
body_dex = getDexNumberForSpecies(poke.get_body_species())
list =
[
330, 331, 337, 338, 348, 349, 350, 351, 359, 360, 361,
362, 363, 364, 365, 366, 367, 368, 369, 374, 375, 376, 377,
397, 398, 399, 406, 407, 408, 409, 410, 411, 412, 413, 414,
415, 416, 419, 420,
422, 423, 424, 434, 345,
466, 467, 494, 493,
]
return list.include?(dexNum) || list.include?(head_dex) || list.include?(body_dex)
end
def isSinnohPokemon(species)
dexNum = getDexNumberForSpecies(species)
poke = getPokemon(species)
head_dex = getDexNumberForSpecies(poke.get_head_species())
body_dex = getDexNumberForSpecies(poke.get_body_species())
list =
[254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 288, 294,
295, 296, 297, 298, 299, 305, 306, 307, 308, 315, 316, 317,
318, 319, 320, 321, 322, 323, 324, 326, 332, 343, 344, 345,
346, 347, 352, 353, 354, 358, 383, 384, 388, 389, 400, 402,
403, 429, 468]
return list.include?(dexNum) || list.include?(head_dex) || list.include?(body_dex)
end
def isHoennPokemon(species)
dexNum = getDexNumberForSpecies(species)
poke = getPokemon(species)
head_dex = getDexNumberForSpecies(poke.get_head_species())
body_dex = getDexNumberForSpecies(poke.get_body_species())
list = [252, 253, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 289, 290, 291, 292, 293, 300, 301, 302, 303,
304, 309, 310, 311, 312, 313, 314, 333, 334, 335, 336, 340,
341, 342, 355, 356, 357, 378, 379, 380, 381, 382, 385, 386,
387, 390, 391, 392, 393, 394, 395, 396, 401, 404, 405, 421,
427, 428, 436, 437, 442, 443, 447, 448, 449, 457, 458, 488,
495, 496, 497, 501, 502, 503, 504, 505, 506, 507, 508, 509,
510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521,
522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533,
534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557,
558, 559, 560, 561, 562, 563, 564, 565
]
return list.include?(dexNum) || list.include?(head_dex) || list.include?(body_dex)
end
def Kernel.getRoamingMap(roamingArrayPos)
curmap = $PokemonGlobal.roamPosition[roamingArrayPos]
mapinfos = $RPGVX ? load_data("Data/MapInfos.rvdata") : load_data("Data/MapInfos.rxdata")
text = mapinfos[curmap].name #,(curmap==$game_map.map_id) ? _INTL("(this map)") : "")
return text
end
def get_default_moves_at_level(species, level)
moveset = GameData::Species.get(species).moves
knowable_moves = []
moveset.each { |m| knowable_moves.push(m[1]) if m[0] <= level }
# Remove duplicates (retaining the latest copy of each move)
knowable_moves = knowable_moves.reverse
knowable_moves |= []
knowable_moves = knowable_moves.reverse
# Add all moves
moves = []
first_move_index = knowable_moves.length - MAX_MOVES
first_move_index = 0 if first_move_index < 0
for i in first_move_index...knowable_moves.length
#moves.push(Pokemon::Move.new(knowable_moves[i]))
moves << knowable_moves[i]
end
return moves
end
def listPokemonIDs()
for id in 0..Settings::NB_POKEMON
pokemon = GameData::Species.get(id).species
echoln id.to_s + ": " + "\"" + pokemon.to_s + "\"" + ", "
end
end
def getAllNonLegendaryPokemon()
list = []
for i in 1..143
list.push(i)
end
for i in 147..149
list.push(i)
end
for i in 152..242
list.push(i)
end
list.push(246)
list.push(247)
list.push(248)
for i in 252..314
list.push(i)
end
for i in 316..339
list.push(i)
end
for i in 352..377
list.push(i)
end
for i in 382..420
list.push(i)
end
return list
end
def getPokemonEggGroups(species)
return GameData::Species.get(species).egg_groups
end
def getAbilityIndexFromID(abilityID, fusedPokemon)
abilityList = fusedPokemon.getAbilityList
for abilityArray in abilityList #ex: [:CHLOROPHYLL, 0]
ability = abilityArray[0]
index = abilityArray[1]
return index if ability == abilityID
end
return 0
end
def getSpecies(dexnum)
return getPokemon(dexnum.species) if dexnum.is_a?(Pokemon)
return getPokemon(dexnum)
end
def getPokemon(dexNum)
if dexNum.is_a?(Integer)
if dexNum > Settings::NB_POKEMON
body_id = getBodyID(dexNum)
head_id = getHeadID(dexNum, body_id)
pokemon_id = getFusedPokemonIdFromDexNum(body_id, head_id)
else
pokemon_id = dexNum
end
else
pokemon_id = dexNum
end
return GameData::Species.get(pokemon_id)
end
def CanLearnMove(pokemon, move)
species = getID(PBSpecies, pokemon)
return false if species <= 0
data = load_data("Data/tm.dat")
return false if !data[move]
return data[move].any? { |item| item == species }
end
def getID(pbspecies_unused, species)
if species.is_a?(String)
return nil
elsif species.is_a?(Symbol)
return GameData::Species.get(species).id_number
elsif species.is_a?(Pokemon)
id = species.dexNum
end
end
def pbAddPokemonID(pokemon_id, level = 1, see_form = true, skip_randomize = false)
return false if !pokemon_id
skip_randomize = true if $game_switches[SWITCH_CHOOSING_STARTER] #when choosing starters
if pbBoxesFull?
pbMessage(_INTL("There's no more room for Pokémon!\1"))
pbMessage(_INTL("The Pokémon Boxes are full and can't accept any more!"))
return false
end
if pokemon_id.is_a?(Integer) && level.is_a?(Integer)
pokemon = Pokemon.new(pokemon_id, level)
species_name = pokemon.speciesName
end
#random species if randomized gift pokemon & wild poke
if $game_switches[SWITCH_RANDOM_GIFT_POKEMON] && $game_switches[SWITCH_RANDOM_WILD] && !skip_randomize
tryRandomizeGiftPokemon(pokemon, skip_randomize)
end
pbMessage(_INTL("{1} obtained {2}!\\me[Pkmn get]\\wtnp[80]\1", $Trainer.name, species_name))
pbNicknameAndStore(pokemon)
$Trainer.pokedex.register(pokemon) if see_form
return true
end
def pbHasSpecies?(species)
if species.is_a?(String) || species.is_a?(Symbol)
id = getID(PBSpecies, species)
elsif species.is_a?(Pokemon)
id = species.dexNum
end
for pokemon in $Trainer.party
next if pokemon.isEgg?
return true if pokemon.dexNum == id
end
return false
end
def pbPlayCry(pkmn, volume = 90, pitch = nil)
GameData::Species.play_cry(pkmn, volume, pitch)
end
def pbCryFrameLength(species, form = 0, pitch = 100)
return GameData::Species.cry_length(species, form, pitch)
end

View File

@@ -3,5 +3,5 @@
# setForcedAltSprites(forced_sprites)
#
def setForcedAltSprites(forcedSprites_map)
$PokemonTemp.forced_alt_sprites = forcedSprites_map
$game_temp.forced_alt_sprites = forcedSprites_map
end

View File

@@ -142,4 +142,69 @@ def change_game_difficulty(down_only = false)
message = "The game is currently on " + get_difficulty_text() + " difficulty."
pbMessage(message)
end
def find_newer_available_version
latest_Version = fetch_latest_game_version
return nil if !latest_Version
return nil if is_higher_version(Settings::GAME_VERSION_NUMBER, latest_Version)
return latest_Version
end
def is_higher_version(gameVersion, latestVersion)
gameVersion_parts = gameVersion.split('.').map(&:to_i)
latestVersion_parts = latestVersion.split('.').map(&:to_i)
# Compare each part of the version numbers from left to right
gameVersion_parts.each_with_index do |part, i|
return true if (latestVersion_parts[i].nil? || part > latestVersion_parts[i])
return false if part < latestVersion_parts[i]
end
return latestVersion_parts.length <= gameVersion_parts.length
end
def get_current_game_difficulty
return :EASY if $game_switches[SWITCH_GAME_DIFFICULTY_EASY]
return :HARD if $game_switches[SWITCH_GAME_DIFFICULTY_HARD]
return :NORMAL
end
def get_difficulty_text
if $game_switches[SWITCH_GAME_DIFFICULTY_EASY]
return "Easy"
elsif $game_switches[SWITCH_GAME_DIFFICULTY_HARD]
return "Hard"
else
return "Normal"
end
end
def getCurrentLevelCap()
current_max_level = Settings::LEVEL_CAPS[$Trainer.badge_count]
current_max_level *= Settings::HARD_MODE_LEVEL_MODIFIER if $game_switches[SWITCH_GAME_DIFFICULTY_HARD]
return current_max_level
end
def pokemonExceedsLevelCap(pokemon)
return false if $Trainer.badge_count >= Settings::NB_BADGES
current_max_level = getCurrentLevelCap()
return pokemon.level >= current_max_level
end
def getLatestSpritepackDate()
return Time.new(Settings::NEWEST_SPRITEPACK_YEAR, Settings::NEWEST_SPRITEPACK_MONTH)
end
def new_spritepack_was_released()
current_spritepack_date = $PokemonGlobal.current_spritepack_date
latest_spritepack_date = getLatestSpritepackDate()
if !current_spritepack_date || (current_spritepack_date < latest_spritepack_date)
$PokemonGlobal.current_spritepack_date = latest_spritepack_date
return true
end
return false
end
def pbGetSelfSwitch(eventId, switch)
return $game_self_switches[[@map_id, eventId, switch]]
end

View File

@@ -7,6 +7,9 @@ class TilemapRenderer
# Examples:
#
# Normal tile IDs start at 384
#
# 1 => [["Sand shore"], ["Flowers2"]],
# 2 => [[], ["Flowers2", "Waterfall", "Waterfall crest", "Waterfall bottom"]],
# 6 => [["Water rock", "Sea deep"], []]
@@ -30,7 +33,11 @@ class TilemapRenderer
1023 => "flowers_red[10]",
1031 => "flowers_grey[10]",
1039 => "flowers_white[10]",
}
},
3 => { #interior
385 => "tv_flicker_left",
}
}
def add_extra_autotiles(tileset_id)

View File

@@ -23,7 +23,7 @@ module Settings
FUSION_ICON_SPRITE_OFFSET = 10
#Infinite fusion settings
NB_POKEMON = 501
NB_POKEMON = 565
CUSTOM_BASE_SPRITES_FOLDER = "Graphics/CustomBattlers/local_sprites/BaseSprites/"
CUSTOM_BATTLERS_FOLDER = "Graphics/CustomBattlers/"
CUSTOM_SPRITES_TO_IMPORT_FOLDER = "Graphics/CustomBattlers/Sprites to import/"

View File

@@ -114,79 +114,9 @@ ItemHandlers::UseFromBag.add(:LANTERN, proc { |item|
next true
})
ItemHandlers::UseOnPokemon.add(:TRANSGENDERSTONE, proc { |item, pokemon, scene|
if pokemon.gender == 0
pokemon.makeFemale
scene.pbRefresh
scene.pbDisplay(_INTL("The Pokémon became female!"))
next true
elsif pokemon.gender == 1
pokemon.makeMale
scene.pbRefresh
scene.pbDisplay(_INTL("The Pokémon became male!"))
next true
else
scene.pbDisplay(_INTL("It won't have any effect."))
next false
end
})
# NOT FULLY IMPLEMENTED
ItemHandlers::UseOnPokemon.add(:SECRETCAPSULE, proc { |item, poke, scene|
abilityList = poke.getAbilityList
numAbilities = abilityList[0].length
if numAbilities <= 2
scene.pbDisplay(_INTL("It won't have any effect."))
next false
elsif abilityList[0].length <= 3
if changeHiddenAbility1(abilityList, scene, poke)
next true
end
next false
else
if changeHiddenAbility2(abilityList, scene, poke)
next true
end
next false
end
})
def changeHiddenAbility1(abilityList, scene, poke)
abID1 = abilityList[0][2]
msg = _INTL("Change {1}'s ability to {2}?", poke.name, PBAbilities.getName(abID1))
if Kernel.pbConfirmMessage(_INTL(msg))
poke.setAbility(2)
abilName1 = PBAbilities.getName(abID1)
scene.pbDisplay(_INTL("{1}'s ability was changed to {2}!", poke.name, PBAbilities.getName(abID1)))
return true
else
return false
end
end
def changeHiddenAbility2(abilityList, scene, poke)
return false if !Kernel.pbConfirmMessage(_INTL("Change {1}'s ability?", poke.name))
abID1 = abilityList[0][2]
abID2 = abilityList[0][3]
abilName2 = PBAbilities.getName(abID1)
abilName3 = PBAbilities.getName(abID2)
if (Kernel.pbMessage("Choose an ability.", [_INTL("{1}", abilName2), _INTL("{1}", abilName3)], 2)) == 0
poke.setAbility(2)
scene.pbDisplay(_INTL("{1}'s ability was changed to {2}!", poke.name, abilName2))
else
return false
end
poke.setAbility(3)
scene.pbDisplay(_INTL("{1}'s ability was changed to {2}!", poke.name, abilName3))
return true
end
ItemHandlers::UseOnPokemon.add(:ROCKETMEAL, proc { |item, pokemon, scene|
ItemHandlers::UseOnPokemon.add(:ROCKETMEAL, proc { |item, quantity, pokemon, scene|
next pbHPItem(pokemon, 100, scene)
})
@@ -194,7 +124,7 @@ ItemHandlers::BattleUseOnPokemon.add(:ROCKETMEAL, proc { |item, pokemon, battler
next pbBattleHPItem(pokemon, battler, 100, scene)
})
ItemHandlers::UseOnPokemon.add(:FANCYMEAL, proc { |item, pokemon, scene|
ItemHandlers::UseOnPokemon.add(:FANCYMEAL, proc { |item, quantity, pokemon, scene|
next pbHPItem(pokemon, 100, scene)
})
@@ -202,7 +132,7 @@ ItemHandlers::BattleUseOnPokemon.add(:FANCYMEAL, proc { |item, pokemon, battler,
next pbBattleHPItem(pokemon, battler, 100, scene)
})
ItemHandlers::UseOnPokemon.add(:COFFEE, proc { |item, pokemon, scene|
ItemHandlers::UseOnPokemon.add(:COFFEE, proc { |item, quantity, pokemon, scene|
next pbHPItem(pokemon, 50, scene)
})
@@ -210,7 +140,7 @@ ItemHandlers::BattleUseOnPokemon.add(:COFFEE, proc { |item, pokemon, battler, sc
next pbBattleHPItem(pokemon, battler, 50, scene)
})
ItemHandlers::UseOnPokemon.add(:RAGECANDYBAR, proc { |item, pokemon, scene|
ItemHandlers::UseOnPokemon.add(:RAGECANDYBAR, proc { |item, quantity, pokemon, scene|
if pokemon.level <= 1
scene.pbDisplay(_INTL("It won't have any effect."))
next false
@@ -221,7 +151,7 @@ ItemHandlers::UseOnPokemon.add(:RAGECANDYBAR, proc { |item, pokemon, scene|
end
})
ItemHandlers::UseOnPokemon.add(:INCUBATOR, proc { |item, pokemon, scene|
ItemHandlers::UseOnPokemon.add(:INCUBATOR, proc { |item, quantity, pokemon, scene|
if pokemon.egg?
if pokemon.eggsteps <= 1
scene.pbDisplay(_INTL("The egg is already ready to hatch!"))
@@ -240,7 +170,7 @@ ItemHandlers::UseOnPokemon.add(:INCUBATOR, proc { |item, pokemon, scene|
end
})
ItemHandlers::UseOnPokemon.add(:MISTSTONE, proc { |item, pokemon, scene|
ItemHandlers::UseOnPokemon.add(:MISTSTONE, proc { |item, quantity, pokemon, scene|
next false if pokemon.egg?
if pbForceEvo(pokemon)
next true
@@ -610,7 +540,7 @@ def useSplicerFromField(item)
return fusion_success
end
ItemHandlers::UseOnPokemon.add(:DNAREVERSER, proc { |item, pokemon, scene|
ItemHandlers::UseOnPokemon.add(:DNAREVERSER, proc { |item, quantity, pokemon, scene|
if !pokemon.isFusion?
scene.pbDisplay(_INTL("It won't have any effect."))
next false
@@ -651,7 +581,7 @@ def reverseFusion(pokemon)
}
end
ItemHandlers::UseOnPokemon.add(:INFINITEREVERSERS, proc { |item, pokemon, scene|
ItemHandlers::UseOnPokemon.add(:INFINITEREVERSERS, proc { |item, quantity, pokemon, scene|
if !pokemon.isFusion?
scene.pbDisplay(_INTL("It won't have any effect."))
next false
@@ -682,127 +612,6 @@ ItemHandlers::UseOnPokemon.add(:INFINITEREVERSERS, proc { |item, pokemon, scene|
next false
})
#
# def pbDNASplicing(pokemon, scene, supersplicers = false, superSplicer = false)
# if (pokemon.species <= NB_POKEMON)
# if pokemon.fused != nil
# if $player.party.length >= 6
# scene.pbDisplay(_INTL("Your party is full! You can't unfuse {1}.", pokemon.name))
# return false
# else
# $player.party[$player.party.length] = pokemon.fused
# pokemon.fused = nil
# pokemon.form = 0
# scene.pbHardRefresh
# scene.pbDisplay(_INTL("{1} changed Forme!", pokemon.name))
# return true
# end
# else
# chosen = scene.pbChoosePokemon(_INTL("Fuse with which Pokémon?"))
# if chosen >= 0
# poke2 = $player.party[chosen]
# if (poke2.species <= NB_POKEMON) && poke2 != pokemon
# #check if fainted
# if pokemon.hp == 0 || poke2.hp == 0
# scene.pbDisplay(_INTL("A fainted Pokémon cannot be fused!"))
# return false
# end
# if pbFuse(pokemon, poke2, supersplicers)
# pbRemovePokemonAt(chosen)
# end
# elsif pokemon == poke2
# scene.pbDisplay(_INTL("{1} can't be fused with itself!", pokemon.name))
# return false
# else
# scene.pbDisplay(_INTL("{1} can't be fused with {2}.", poke2.name, pokemon.name))
# return false
#
# end
#
# else
# return false
# end
# end
# else
# return true if pbUnfuse(pokemon, scene, supersplicers)
#
# #unfuse
# end
# end
#
# def pbUnfuse(pokemon, scene, supersplicers, pcPosition = nil)
# #pcPosition nil : unfusing from party
# #pcPosition [x,x] : unfusing from pc
# #
#
# if (pokemon.obtain_method == 2 || pokemon.ot != $player.name) # && !canunfuse
# scene.pbDisplay(_INTL("You can't unfuse a Pokémon obtained in a trade!"))
# return false
# else
# if Kernel.pbConfirmMessageSerious(_INTL("Should {1} be unfused?", pokemon.name))
# if pokemon.species > (NB_POKEMON * NB_POKEMON) + NB_POKEMON #triple fusion
# scene.pbDisplay(_INTL("{1} cannot be unfused.", pokemon.name))
# return false
# elsif $player.party.length >= 6 && !pcPosition
# scene.pbDisplay(_INTL("Your party is full! You can't unfuse {1}.", pokemon.name))
# return false
# else
# scene.pbDisplay(_INTL("Unfusing ... "))
# scene.pbDisplay(_INTL(" ... "))
# scene.pbDisplay(_INTL(" ... "))
#
# bodyPoke = getBasePokemonID(pokemon.species, true)
# headPoke = getBasePokemonID(pokemon.species, false)
#
#
# if pokemon.exp_when_fused_head == nil || pokemon.exp_when_fused_body == nil
# new_level = calculateUnfuseLevelOldMethod(pokemon, supersplicers)
# body_level = new_level
# head_level = new_level
# poke1 = Pokemon.new(bodyPoke, body_level)
# poke2 = Pokemon.new(headPoke, head_level)
# else
# exp_body = pokemon.exp_when_fused_body + pokemon.exp_gained_since_fused
# exp_head = pokemon.exp_when_fused_head + pokemon.exp_gained_since_fused
#
# poke1 = Pokemon.new(bodyPoke, pokemon.level)
# poke2 = Pokemon.new(headPoke, pokemon.level)
# poke1.exp = exp_body
# poke2.exp = exp_head
# end
#
# #poke1 = PokeBattle_Pokemon.new(bodyPoke, lev, $player)
# #poke2 = PokeBattle_Pokemon.new(headPoke, lev, $player)
#
# if pcPosition == nil
# box = pcPosition[0]
# index = pcPosition[1]
# $PokemonStorage.pbStoreToBox(poke2, box, index)
# else
# Kernel.pbAddPokemonSilent(poke2, poke2.level)
# end
# #On ajoute l'autre dans le pokedex aussi
# $player.seen[poke1.species] = true
# $player.owned[poke1.species] = true
# $player.seen[poke2.species] = true
# $player.owned[poke2.species] = true
#
# pokemon.species = poke1.species
# pokemon.level = poke1.level
# pokemon.name = poke1.name
# pokemon.moves = poke1.moves
# pokemon.obtain_method = 0
# poke1.obtain_method = 0
#
# #scene.pbDisplay(_INTL(p1.to_s + " " + p2.to_s))
# scene.pbHardRefresh
# scene.pbDisplay(_INTL("Your Pokémon were successfully unfused! "))
# return true
# end
# end
# end
# end
def calculateUnfuseLevelOldMethod(pokemon, supersplicers)
if pokemon.level > 1
if supersplicers
@@ -847,9 +656,7 @@ def drawPokemonType(pokemon_id, x_pos = 192, y_pos = 264)
return viewport
end
ItemHandlers::UseOnPokemon.add(:SUPERSPLICERS, proc { |item, pokemon, scene|
next true if pbDNASplicing(pokemon, scene, item)
})
def returnItemsToBag(pokemon, poke2)
@@ -865,120 +672,9 @@ def returnItemsToBag(pokemon, poke2)
poke2.item = nil
end
# A AJOUTER: l'attribut dmgup ne modifie presentement pas
# le damage d'une attaque
#
ItemHandlers::UseOnPokemon.add(:DAMAGEUP, proc { |item, pokemon, scene|
move = scene.pbChooseMove(pokemon, _INTL("Boost Damage of which move?"))
if move >= 0
# if pokemon.moves[move].damage==0 || pokemon.moves[move].accuracy<=5 || pokemon.moves[move].dmgup >=3
# scene.pbDisplay(_INTL("It won't have any effect."))
# next false
# else
# pokemon.moves[move].dmgup+=1
# pokemon.moves[move].damage +=5
# pokemon.moves[move].accuracy -=5
# movename=PBMoves.getName(pokemon.moves[move].id)
# scene.pbDisplay(_INTL("{1}'s damage increased.",movename))
# next true
scene.pbDisplay(_INTL("This item has not been implemented into the game yet. It had no effect."))
next false
# end
end
})
##New "stones"
# ItemHandlers::UseOnPokemon.add(:UPGRADE, proc { |item, pokemon, scene|
# if (pokemon.isShadow? rescue false)
# scene.pbDisplay(_INTL("It won't have any effect."))
# next false
# end
# newspecies = pbCheckEvolution(pokemon, item)
# if newspecies <= 0
# scene.pbDisplay(_INTL("It won't have any effect."))
# next false
# else
# pbFadeOutInWithMusic(99999) {
# evo = PokemonEvolutionScene.new
# evo.pbStartScreen(pokemon, newspecies)
# evo.pbEvolution(false)
# evo.pbEndScreen
# scene.pbRefreshAnnotations(proc { |p| pbCheckEvolution(p, item) > 0 })
# scene.pbRefresh
# }
# next true
# end
# })
#
# ItemHandlers::UseOnPokemon.add(:DUBIOUSDISC, proc { |item, pokemon, scene|
# if (pokemon.isShadow? rescue false)
# scene.pbDisplay(_INTL("It won't have any effect."))
# next false
# end
# newspecies = pbCheckEvolution(pokemon, item)
# if newspecies <= 0
# scene.pbDisplay(_INTL("It won't have any effect."))
# next false
# else
# pbFadeOutInWithMusic(99999) {
# evo = PokemonEvolutionScene.new
# evo.pbStartScreen(pokemon, newspecies)
# evo.pbEvolution(false)
# evo.pbEndScreen
# scene.pbRefreshAnnotations(proc { |p| pbCheckEvolution(p, item) > 0 })
# scene.pbRefresh
# }
# next true
# end
# })
#
# ItemHandlers::UseOnPokemon.add(:ICESTONE, proc { |item, pokemon, scene|
# if (pokemon.isShadow? rescue false)
# scene.pbDisplay(_INTL("It won't have any effect."))
# next false
# end
# newspecies = pbCheckEvolution(pokemon, item)
# if newspecies <= 0
# scene.pbDisplay(_INTL("It won't have any effect."))
# next false
# else
# pbFadeOutInWithMusic(99999) {
# evo = PokemonEvolutionScene.new
# evo.pbStartScreen(pokemon, newspecies)
# evo.pbEvolution(false)
# evo.pbEndScreen
# scene.pbRefreshAnnotations(proc { |p| pbCheckEvolution(p, item) > 0 })
# scene.pbRefresh
# }
# next true
# end
# })
# #
# ItemHandlers::UseOnPokemon.add(:MAGNETSTONE, proc { |item, pokemon, scene|
# if (pokemon.isShadow? rescue false)
# scene.pbDisplay(_INTL("It won't have any effect."))
# next false
# end
# newspecies = pbCheckEvolution(pokemon, item)
# if newspecies <= 0
# scene.pbDisplay(_INTL("It won't have any effect."))
# next false
# else
# pbFadeOutInWithMusic(99999) {
# evo = PokemonEvolutionScene.new
# evo.pbStartScreen(pokemon, newspecies)
# evo.pbEvolution(false)
# evo.pbEndScreen
# scene.pbRefreshAnnotations(proc { |p| pbCheckEvolution(p, item) > 0 })
# scene.pbRefresh
# }
# next true
# end
# })
# easter egg for evolving shellder into slowbro's tail
ItemHandlers::UseOnPokemon.add(:SLOWPOKETAIL, proc { |item, pokemon, scene|
ItemHandlers::UseOnPokemon.add(:SLOWPOKETAIL, proc { |item, quantity, pokemon, scene|
echoln pokemon.species
next false if pokemon.species != :SHELLDER
pbFadeOutInWithMusic(99999) {
@@ -992,51 +688,8 @@ ItemHandlers::UseOnPokemon.add(:SLOWPOKETAIL, proc { |item, pokemon, scene|
next true
})
#
# ItemHandlers::UseOnPokemon.add(:SHINYSTONE, proc { |item, pokemon, scene|
# if (pokemon.isShadow? rescue false)
# scene.pbDisplay(_INTL("It won't have any effect."))
# next false
# end
# newspecies = pbCheckEvolution(pokemon, item)
# if newspecies <= 0
# scene.pbDisplay(_INTL("It won't have any effect."))
# next false
# else
# pbFadeOutInWithMusic(99999) {
# evo = PokemonEvolutionScene.new
# evo.pbStartScreen(pokemon, newspecies)
# evo.pbEvolution(false)
# evo.pbEndScreen
# scene.pbRefreshAnnotations(proc { |p| pbCheckEvolution(p, item) > 0 })
# scene.pbRefresh
# }
# next true
# end
# })
#
# ItemHandlers::UseOnPokemon.add(:DAWNSTONE, proc { |item, pokemon, scene|
# if (pokemon.isShadow? rescue false)
# scene.pbDisplay(_INTL("It won't have any effect."))
# next false
# end
# newspecies = pbCheckEvolution(pokemon, item)
# if newspecies <= 0
# scene.pbDisplay(_INTL("It won't have any effect."))
# next false
# else
# pbFadeOutInWithMusic(99999) {
# evo = PokemonEvolutionScene.new
# evo.pbStartScreen(pokemon, newspecies)
# evo.pbEvolution(false)
# evo.pbEndScreen
# scene.pbRefreshAnnotations(proc { |p| pbCheckEvolution(p, item) > 0 })
# scene.pbRefresh
# }
# next true
# end
# })
ItemHandlers::UseOnPokemon.add(:POISONMUSHROOM, proc { |item, pkmn, scene|
ItemHandlers::UseOnPokemon.add(:POISONMUSHROOM, proc { |item, quantity, pokemon, scene|
if pkmn.status != :POISON
pkmn.status = :POISON
scene.pbRefresh
@@ -1053,74 +706,25 @@ ItemHandlers::BattleUseOnPokemon.add(:POISONMUSHROOM, proc { |item, pokemon, bat
pbBattleHPItem(pokemon, battler, 10, scene)
})
ItemHandlers::UseOnPokemon.add(:TINYMUSHROOM, proc { |item, pkmn, scene|
ItemHandlers::UseOnPokemon.add(:TINYMUSHROOM, proc { |item, quantity, pokemon, scene|
next pbHPItem(pkmn, 10, scene)
})
ItemHandlers::BattleUseOnPokemon.add(:TINYMUSHROOM, proc { |item, pokemon, battler, choices, scene|
next pbBattleHPItem(pokemon, battler, 50, scene)
})
ItemHandlers::UseOnPokemon.add(:BIGMUSHROOM, proc { |item, pkmn, scene|
ItemHandlers::UseOnPokemon.add(:BIGMUSHROOM, proc { |item, quantity, pokemon, scene|
next pbHPItem(pkmn, 10, scene)
})
ItemHandlers::BattleUseOnPokemon.add(:BIGMUSHROOM, proc { |item, pokemon, battler, choices, scene|
next pbBattleHPItem(pokemon, battler, 50, scene)
})
ItemHandlers::UseOnPokemon.add(:BALMMUSHROOM, proc { |item, pkmn, scene|
ItemHandlers::UseOnPokemon.add(:BALMMUSHROOM, proc { |item, quantity, pokemon, scene|
next pbHPItem(pkmn, 999, scene)
})
ItemHandlers::BattleUseOnPokemon.add(:BALMMUSHROOM, proc { |item, pokemon, battler, choices, scene|
next pbBattleHPItem(pokemon, battler, 999, scene)
})
#
# #TRACKER (for roaming legendaries)
# ItemHandlers::UseInField.add(:REVEALGLASS, proc { |item|
# if Settings::ROAMING_SPECIES.length == 0
# Kernel.pbMessage(_INTL("No roaming Pokémon defined."))
# else
# text = "\\l[8]"
# min = $game_switches[350] ? 0 : 1
# for i in min...Settings::ROAMING_SPECIES.length
# poke = Settings::ROAMING_SPECIES[i]
# next if poke == PBSPecies::FEEBAS
# if $game_switches[poke[2]]
# status = $PokemonGlobal.roamPokemon[i]
# if status == true
# if $PokemonGlobal.roamPokemonCaught[i]
# text += _INTL("{1} has been caught.",
# PBSpecies.getName(getID(PBSpecies, poke[0])))
# else
# text += _INTL("{1} has been defeated.",
# PBSpecies.getName(getID(PBSpecies, poke[0])))
# end
# else
# curmap = $PokemonGlobal.roamPosition[i]
# if curmap
# mapinfos = $RPGVX ? load_data("Data/MapInfos.rvdata") : load_data("Data/MapInfos.rxdata")
#
# if curmap == $game_map.map_id
# text += _INTL("Beep beep! {1} appears to be nearby!",
# PBSpecies.getName(getID(PBSpecies, poke[0])))
# else
# text += _INTL("{1} is roaming around {3}",
# PBSpecies.getName(getID(PBSpecies, poke[0])), curmap,
# mapinfos[curmap].name, (curmap == $game_map.map_id) ? _INTL("(this route!)") : "")
# end
# else
# text += _INTL("{1} is roaming in an unknown area.",
# PBSpecies.getName(getID(PBSpecies, poke[0])), poke[1])
# end
# end
# else
# #text+=_INTL("{1} does not appear to be roaming.",
# # PBSpecies.getName(getID(PBSpecies,poke[0])),poke[1],poke[2])
# end
# text += "\n" if i < Settings::ROAMING_SPECIES.length - 1
# end
# Kernel.pbMessage(text)
# end
# })
####EXP. ALL
# Methodes relative a l'exp sont pas encore la et pas compatibles
# avec cette version de essentials donc
@@ -1142,18 +746,18 @@ ItemHandlers::UseFromBag.add(:EXPALLOFF, proc { |item|
ItemHandlers::BattleUseOnPokemon.add(:BANANA, proc { |item, pokemon, battler, scene|
next pbBattleHPItem(pokemon, battler, 30, scene)
})
ItemHandlers::UseOnPokemon.add(:BANANA, proc { |item, pokemon, scene|
ItemHandlers::UseOnPokemon.add(:BANANA, proc { |item, quantity, pokemon, scene|
next pbHPItem(pokemon, 30, scene)
})
ItemHandlers::BattleUseOnPokemon.add(:GOLDENBANANA, proc { |item, pokemon, battler, scene|
next pbBattleHPItem(pokemon, battler, 50, scene)
})
ItemHandlers::UseOnPokemon.add(:GOLDENBANANA, proc { |item, pokemon, scene|
ItemHandlers::UseOnPokemon.add(:GOLDENBANANA, proc { |item, quantity, pokemon, scene|
next pbHPItem(pokemon, 50, scene)
})
ItemHandlers::UseOnPokemon.add(:TRANSGENDERSTONE, proc { |item, pokemon, scene|
ItemHandlers::UseOnPokemon.add(:TRANSGENDERSTONE, proc { |item, quantity, pokemon, scene|
if pokemon.gender == 0
pokemon.makeFemale
scene.pbRefresh
@@ -1198,7 +802,7 @@ ItemHandlers::UseOnPokemon.add(:TRANSGENDERSTONE, proc { |item, pokemon, scene|
# })
# NOT FULLY IMPLEMENTED
ItemHandlers::UseOnPokemon.add(:SECRETCAPSULE, proc { |item, poke, scene|
ItemHandlers::UseOnPokemon.add(:SECRETCAPSULE,proc { |item, quantity, pokemon, scene|
abilityList = poke.getAbilityList
numAbilities = abilityList[0].length
@@ -1251,23 +855,23 @@ def changeHiddenAbility2(abilityList, scene, poke)
return true
end
ItemHandlers::UseOnPokemon.add(:ROCKETMEAL, proc { |item, pokemon, scene|
ItemHandlers::UseOnPokemon.add(:ROCKETMEAL,proc { |item, quantity, pokemon, scene|
next pbHPItem(pokemon, 100, scene)
})
ItemHandlers::BattleUseOnPokemon.add(:ROCKETMEAL, proc { |item, pokemon, battler, scene|
ItemHandlers::BattleUseOnPokemon.add(:ROCKETMEAL, proc { |item, pokemon, battler, choices, scene|
next pbBattleHPItem(pokemon, battler, 100, scene)
})
ItemHandlers::UseOnPokemon.add(:FANCYMEAL, proc { |item, pokemon, scene|
ItemHandlers::UseOnPokemon.add(:FANCYMEAL, proc { |item, quantity, pokemon, scene|
next pbHPItem(pokemon, 100, scene)
})
ItemHandlers::BattleUseOnPokemon.add(:FANCYMEAL, proc { |item, pokemon, battler, scene|
ItemHandlers::BattleUseOnPokemon.add(:FANCYMEAL,proc { |item, pokemon, battler, choices, scene|
next pbBattleHPItem(pokemon, battler, 100, scene)
})
ItemHandlers::UseOnPokemon.add(:RAGECANDYBAR, proc { |item, pokemon, scene|
ItemHandlers::UseOnPokemon.add(:RAGECANDYBAR, proc { |item, quantity, pokemon, scene|
if pokemon.level <= 1
scene.pbDisplay(_INTL("It won't have any effect."))
next false
@@ -1278,7 +882,7 @@ ItemHandlers::UseOnPokemon.add(:RAGECANDYBAR, proc { |item, pokemon, scene|
end
})
ItemHandlers::UseOnPokemon.add(:INCUBATOR, proc { |item, pokemon, scene|
ItemHandlers::UseOnPokemon.add(:INCUBATOR, proc { |item, quantity, pokemon, scene|
if pokemon.egg?
if pokemon.steps_to_hatch <= 1
scene.pbDisplay(_INTL("The egg is already ready to hatch!"))
@@ -1297,7 +901,7 @@ ItemHandlers::UseOnPokemon.add(:INCUBATOR, proc { |item, pokemon, scene|
end
})
ItemHandlers::UseOnPokemon.add(:INCUBATOR_NORMAL, proc { |item, pokemon, scene|
ItemHandlers::UseOnPokemon.add(:INCUBATOR_NORMAL, proc { |item, quantity, pokemon, scene|
if pokemon.egg?
steps = pokemon.steps_to_hatch
steps = (steps / 1.5).ceil
@@ -1336,7 +940,7 @@ ItemHandlers::UseOnPokemon.add(:INCUBATOR_NORMAL, proc { |item, pokemon, scene|
end
})
ItemHandlers::UseOnPokemon.add(:MISTSTONE, proc { |item, pokemon, scene|
ItemHandlers::UseOnPokemon.add(:MISTSTONE, proc { |item, quantity, pokemon, scene|
next false if pokemon.egg?
if pbForceEvo(pokemon)
next true
@@ -1394,50 +998,27 @@ end
## DNA SPLICERS #######
#########################
ItemHandlers::UseOnPokemon.add(:INFINITESPLICERS, proc { |item, pokemon, scene|
ItemHandlers::UseOnPokemon.add(:INFINITESPLICERS, proc { |item, quantity, pokemon, scene|
next true if pbDNASplicing(pokemon, scene, item)
next false
})
ItemHandlers::UseOnPokemon.add(:INFINITESPLICERS2, proc { |item, pokemon, scene|
ItemHandlers::UseOnPokemon.add(:INFINITESPLICERS2,proc { |item, quantity, pokemon, scene|
next true if pbDNASplicing(pokemon, scene, item)
next false
})
ItemHandlers::UseOnPokemon.add(:DNASPLICERS, proc { |item, pokemon, scene|
ItemHandlers::UseOnPokemon.add(:DNASPLICERS, proc { |item, quantity, pokemon, scene|
next true if pbDNASplicing(pokemon, scene, item)
next false
})
ItemHandlers::UseOnPokemon.add(:SUPERSPLICERS, proc { |item, pokemon, scene|
ItemHandlers::UseOnPokemon.add(:SUPERSPLICERS, proc { |item, quantity, pokemon, scene|
next true if pbDNASplicing(pokemon, scene, item)
})
# A AJOUTER: l'attribut dmgup ne modifie presentement pas
# le damage d'une attaque
#
ItemHandlers::UseOnPokemon.add(:DAMAGEUP, proc { |item, pokemon, scene|
move = scene.pbChooseMove(pokemon, _INTL("Boost Damage of which move?"))
if move >= 0
# if pokemon.moves[move].damage==0 || pokemon.moves[move].accuracy<=5 || pokemon.moves[move].dmgup >=3
# scene.pbDisplay(_INTL("It won't have any effect."))
# next false
# else
# pokemon.moves[move].dmgup+=1
# pokemon.moves[move].damage +=5
# pokemon.moves[move].accuracy -=5
# movename=PBMoves.getName(pokemon.moves[move].id)
# scene.pbDisplay(_INTL("{1}'s damage increased.",movename))
# next true
scene.pbDisplay(_INTL("This item has not been implemented into the game yet. It had no effect."))
next false
# end
end
})
ItemHandlers::UseFromBag.add(:DEVONSCOPE, proc { |item|
pbQuestlog()
@@ -1480,7 +1061,7 @@ ItemHandlers::UseFromBag.add(:EXPALLOFF, proc { |item|
ItemHandlers::BattleUseOnPokemon.add(:BANANA, proc { |item, pokemon, battler, scene|
next pbBattleHPItem(pokemon, battler, 30, scene)
})
ItemHandlers::UseOnPokemon.add(:BANANA, proc { |item, pokemon, scene|
ItemHandlers::UseOnPokemon.add(:BANANA, proc { |item, quantity, pokemon, scene|
next pbHPItem(pokemon, 30, scene)
})

View File

@@ -0,0 +1,52 @@
class TrainerWalkingCharSprite
alias pokemonEssentials_TrainerWalkingCharSprite_initialize initialize
def initialize(charset,viewport=nil,trainer=nil)
@trainer=trainer
pokemonEssentials_TrainerWalkingCharSprite_initialize(charset,viewport)
end
def charset=(value)
isPlayerCharacter = value == "walk" #todo: passe de l'ours à corriger
echoln value
@animbitmap&.dispose
@animbitmap = nil
bitmapFileName = sprintf("Graphics/Characters/%s", value)
@charset = pbResolveBitmap(bitmapFileName)
if @charset
if isPlayerCharacter
outfit_bitmap = _INTL("Graphics/Characters/players/outfits/{1}_{2}",value,$Trainer.outfit) if $Trainer && $Trainer.outfit
@trainer = $Trainer if !@trainer
@animbitmap = AnimatedBitmap.new(@charset)
@animbitmap.bitmap = generateClothedBitmapStatic(@trainer)
@animbitmap.bitmap.blt(0, 0, outfit_bitmap, outfit_bitmap.rect) if pbResolveBitmap(outfit_bitmap)
else
@animbitmap = AnimatedBitmap.new(@charset)
end
self.bitmap = @animbitmap.bitmap
self.src_rect.set(0, 0, self.bitmap.width / 4, self.bitmap.height / 4)
else
self.bitmap = nil
end
end
end
class UI::LoadContinuePanel
def initialize_player_sprite
meta = GameData::PlayerMetadata.get(@save_data[:player].character_ID)
filename = pbGetPlayerCharset(meta.walk_charset, @save_data[:player], true)
@sprites[:player] = TrainerWalkingCharSprite.new(filename, @viewport,@save_data[:player])
if !@sprites[:player].bitmap
raise _INTL("Overrides character {1}'s walking charset was not found (filename: \"{2}\").",
@save_data[:player].character_ID, filename)
end
@sprites[:player].x = 48 - (@sprites[:player].bitmap.width / 8)
@sprites[:player].y = 72 - (@sprites[:player].bitmap.height / 8)
@sprites[:player].z = 1
record_values(:player)
end
end

View File

@@ -42,11 +42,17 @@ module Input
$PokemonSystem.speedup_speed = 0 if !$PokemonSystem.speedup_speed || $PokemonSystem.speedup_speed == 0
$GameSpeed = $PokemonSystem.speedup_speed
$PokemonSystem.battle_speed = $GameSpeed
# Allow input to work during animations
if $PokemonSystem.only_speedup_battles == 1
Battle::AnimationHandler.process_speedup
end
else
$GameSpeed = 0
end
end
def self.speed_up_toggle
$PokemonSystem.speedup_enabled = !$PokemonSystem.speedup_enabled
pbPlayDecisionSE
@@ -195,29 +201,37 @@ end
# Fix for animation index crash
#===============================================================================#
class SpriteAnimation
def update_animation
new_index = ((System.uptime - @_animation_timer_start) / @_animation_time_per_frame).to_i
if new_index >= @_animation_duration
dispose_animation
return
end
quick_update = (@_animation_index == new_index)
@_animation_index = new_index
frame_index = @_animation_index
current_frame = @_animation.frames[frame_index]
unless current_frame
dispose_animation
return
end
cell_data = current_frame.cell_data
position = @_animation.position
animation_set_sprites(@_animation_sprites, cell_data, position, quick_update)
return if quick_update
@_animation.timings.each do |timing|
next if timing.frame != frame_index
animation_process_timing(timing, @_animation_hit)
class SpriteAnimation
def update_animation
# Speed up the animation by reducing the wait time between frames
if $PokemonSystem.speedup_enabled && $GameSpeed > 1
@_animation_time_per_frame *= 1.0 / $GameSpeed
end
new_index = ((System.uptime - @_animation_timer_start) / @_animation_time_per_frame).to_i
if new_index >= @_animation_duration
dispose_animation
return
end
quick_update = (@_animation_index == new_index)
@_animation_index = new_index
frame_index = @_animation_index
current_frame = @_animation.frames[frame_index]
unless current_frame
dispose_animation
return
end
cell_data = current_frame.cell_data
position = @_animation.position
animation_set_sprites(@_animation_sprites, cell_data, position, quick_update)
return if quick_update
@_animation.timings.each do |timing|
next if timing.frame != frame_index
animation_process_timing(timing, @_animation_hit)
end
end
end
end
#===============================================================================#

View File

@@ -0,0 +1,52 @@
class SpritesBitmapCache
@@cache = {} # Cache storage for individual sprites
@@usage_order = [] # Tracks usage order for LRU eviction
def getCache()
return @@cache
end
def get_bitmap(pif_sprite)
sprite_key = get_cache_key(pif_sprite)
if @@cache.key?(sprite_key)
mark_key_as_recently_used(sprite_key)
return @@cache[sprite_key].clone
end
return nil
end
def mark_key_as_recently_used(sprite_key)
@@usage_order.delete(sprite_key)
@@usage_order << sprite_key
end
#Keys format: [type]_B[body]H[head]_letter
# ex:
# AUTOGEN_B12H12_
# CUSTOM_B12H12_a
# BASE_BH12_a
# etc.
def get_cache_key(pif_sprite)
return "#{pif_sprite.type.to_s}_B#{pif_sprite.body_id}H#{pif_sprite.head_id}_#{pif_sprite.alt_letter}".to_sym
end
#Keys format: AUTOGEN_B12H12_a
def add(pif_sprite,bitmap)
sprite_key = get_cache_key(pif_sprite)
echoln "adding key #{sprite_key} to cache"
@@cache[sprite_key] = bitmap.clone
if @@cache.size >= Settings::SPRITE_CACHE_MAX_NB
# Evict least recently used (first in order)
oldest_key = @@usage_order.shift
@@cache.delete(oldest_key)
echoln "Evicted: #{oldest_key} from sprite cache"
end
@@usage_order << sprite_key
end
def clear
@@cache = {}
@@usage_order = []
end
end

View File

@@ -0,0 +1,98 @@
class PIFSpriteExtracter
COLUMNS = 20 # Number of columns in the spritesheet
@@spritesheet_cache = SpritesBitmapCache.new
#factor by which the sprite needs to be resized to get it to base game resolution (288x288)
def get_resize_scale
return 1
end
def load_sprite(pif_sprite,download_allowed=true)
begin
start_time = Time.now
bitmap = @@spritesheet_cache.get_bitmap(pif_sprite)
loaded_from_spritesheet=false
if !bitmap
download_new_spritesheet(pif_sprite) if should_update_spritesheet?(pif_sprite) && download_allowed
if pbResolveBitmap(getSpritesheetPath(pif_sprite))
bitmap = load_bitmap_from_spritesheet(pif_sprite)
loaded_from_spritesheet=true
@@spritesheet_cache.add(pif_sprite, bitmap)
else
return nil
end
end
sprite_bitmap = AnimatedBitmap.from_bitmap(bitmap)
sprite_bitmap.scale_bitmap(get_resize_scale())
end_time = Time.now
source = loaded_from_spritesheet ? :"spritesheet" : "cache"
echoln "Loaded sprite for <head:#{pif_sprite.head_id}, body: #{pif_sprite.body_id}, variant: #{pif_sprite.alt_letter}> from #{source} in #{end_time - start_time} seconds"
return sprite_bitmap
rescue Exception
e = $!
echoln "Error loading sprite: #{e}" if bitmap
end
end
def download_new_spritesheet(pif_sprite)
spritesheet_file = getSpritesheetPath(pif_sprite)
if download_spritesheet(pif_sprite,spritesheet_file)
$updated_spritesheets << spritesheet_file
update_downloaded_spritesheets_list()
return true
end
return false
end
def update_downloaded_spritesheets_list()
File.open(Settings::UPDATED_SPRITESHEETS_CACHE, "w") do |file|
$updated_spritesheets.each { |line| file.puts(line) }
end
end
def get_sprite_position_on_spritesheet(body_id,sprite_size,nb_column)
row = body_id / nb_column
col = body_id % nb_column
# echoln "(#{col},#{row})"
# Define the area of the sprite on the spritesheet
sprite_x_position = col * sprite_size
sprite_y_position = row * sprite_size
return sprite_x_position, sprite_y_position
end
def extract_bitmap_to_file(pif_sprite, dest_folder)
# Create the directory if it doesn't exist
Dir.mkdir(dest_folder) unless Dir.exist?(dest_folder)
single_sprite_bitmap=load_sprite(pif_sprite)
# Save the single sprite bitmap to a file
file_path = "#{dest_folder}/#{head_id}.#{body_id}.png"
single_sprite_bitmap.save_to_png(file_path)
# Dispose of the single sprite bitmap
single_sprite_bitmap.dispose
# Return the path to the saved PNG file
return file_path
end
#Implemented for base and custom, not autogen
def should_update_spritesheet?(spritesheet_file)
return false
end
def getSpritesheetPath(pif_sprite)
return nil #implement in subclasses
end
def clear_cache()
@@spritesheet_cache.clear
end
end
class PokemonGlobalMetadata
attr_accessor :current_spritepack_date
end

View File

@@ -0,0 +1,160 @@
class AutogenExtracter < PIFSpriteExtracter
SPRITESHEET_FOLDER_PATH = "Graphics\\Battlers\\spritesheets_autogen\\"
SPRITE_SIZE = 96 # Size of each sprite in the spritesheet
COLUMNS = 10 # Number of columns in the spritesheet
SHEET_WIDTH = SPRITE_SIZE * COLUMNS # 2880 pixels wide spritesheet
@instance = new
def self.instance
@@instance ||= new # If @@instance is nil, create a new instance
@@instance # Return the existing or new instance
end
def load_bitmap_from_spritesheet(pif_sprite)
body_id = pif_sprite.body_id
spritesheet_file = getSpritesheetPath(pif_sprite)
spritesheet_bitmap = AnimatedBitmap.new(spritesheet_file).bitmap
# Extract individual sprite
sprite_x_position, sprite_y_position = get_sprite_position_on_spritesheet(body_id, SPRITE_SIZE, COLUMNS)
src_rect = Rect.new(sprite_x_position, sprite_y_position, SPRITE_SIZE, SPRITE_SIZE)
bitmap = Bitmap.new(SPRITE_SIZE, SPRITE_SIZE)
bitmap.blt(0, 0, spritesheet_bitmap, src_rect)
# Dispose of spritesheet if it's no longer needed
spritesheet_bitmap.dispose
return bitmap
end
def getSpritesheetPath(pif_sprite)
head_id = pif_sprite.head_id
return "#{SPRITESHEET_FOLDER_PATH}#{head_id}.png"
end
def get_resize_scale
return 3
end
#
# # Check cache before loading from disk
# sprite_bitmap = @@spritesheet_cache.fetch(pif_sprite) do
# # Load spritesheet from disk if necessary
# echoln "Loading spritesheet from disk: #{spritesheet_file}"
# spritesheet_bitmap = AnimatedBitmap.new(spritesheet_file).bitmap
#
# # Extract individual sprite
# sprite_x_position, sprite_y_position = get_sprite_position_on_spritesheet(body_id, SPRITE_SIZE, COLUMNS)
# src_rect = Rect.new(sprite_x_position, sprite_y_position, SPRITE_SIZE, SPRITE_SIZE)
#
# sprite = Bitmap.new(SPRITE_SIZE, SPRITE_SIZE)
# sprite.blt(0, 0, spritesheet_bitmap, src_rect)
#
# # Dispose of spritesheet if it's no longer needed
# spritesheet_bitmap.dispose
#
# sprite
# end
# animatedBitmap = AnimatedBitmap.from_bitmap(sprite_bitmap)
#
# end_time = Time.now
# echoln "finished load sprite in #{end_time - start_time} seconds"
# echoln animatedBitmap
# return animatedBitmap
# end
def load_sprite_with_spritesheet_cache(pif_sprite)
start_time = Time.now
head_id = pif_sprite.head_id
body_id = pif_sprite.body_id
spritesheet_file = "#{SPRITESHEET_FOLDER_PATH}#{head_id}.png"
# Check cache before loading from disk
spritesheet_bitmap = @@spritesheet_cache.fetch(spritesheet_file) do
echoln "Loading spritesheet from disk: #{spritesheet_file}"
AnimatedBitmap.new(spritesheet_file).bitmap
end
sprite_x_position, sprite_y_position = get_sprite_position_on_spritesheet(body_id, SPRITE_SIZE, COLUMNS)
src_rect = Rect.new(sprite_x_position, sprite_y_position, SPRITE_SIZE, SPRITE_SIZE)
sprite_bitmap = Bitmap.new(SPRITE_SIZE, SPRITE_SIZE)
sprite_bitmap.blt(0, 0, spritesheet_bitmap, src_rect)
#spritesheet_bitmap.dispose # Dispose since not needed
animatedBitmap = AnimatedBitmap.from_bitmap(sprite_bitmap)
end_time = Time.now
echoln "finished load sprite in #{end_time - start_time} seconds"
return animatedBitmap
end
end
# def extract_bitmap_to_file(head_id, body_id, folder)
# # Create the directory if it doesn't exist
# Dir.mkdir(folder) unless Dir.exist?(folder)
#
# # Load the entire spritesheet
# spritesheet_file = "#{SPRITESHEET_FOLDER_PATH}#{head_id}.png"
# spritesheet_bitmap = AnimatedBitmap.new(spritesheet_file).bitmap
#
# # Calculate the 0-based row and column from the sprite index
# zero_index = body_id - 1
# row = zero_index / COLUMNS
# col = zero_index % COLUMNS
#
# # Define the area of the sprite on the spritesheet
# sprite_x_position = col * SPRITE_SIZE
# sprite_y_position = row * SPRITE_SIZE
#
# # Create a new bitmap for the single sprite
# single_sprite_bitmap = Bitmap.new(SPRITE_SIZE, SPRITE_SIZE)
# single_sprite_bitmap.blt(0, 0, spritesheet_bitmap, Rect.new(sprite_x_position, sprite_y_position, SPRITE_SIZE, SPRITE_SIZE))
#
# # Dispose of the spritesheet bitmap if its no longer needed
# spritesheet_bitmap.dispose
#
# # Save the single sprite bitmap to a file
# file_path = "#{folder}/#{head_id}.#{body_id}.png"
# single_sprite_bitmap.save_to_png(file_path)
#
# # Dispose of the single sprite bitmap
# single_sprite_bitmap.dispose
#
# # Return the path to the saved PNG file
# return file_path
# end
#end
#
#
# class SpritesBitmapCache
# @@cache = {} # Cache storage for individual sprites
# @@usage_order = [] # Tracks usage order for LRU eviction
#
# def self.fetch(pif_sprite)
# sprite_key = "B#{pif_sprite.body_id}H#{pif_sprite.head_id}".to_sym
# if @@cache.key?(sprite_key)
# # Move key to the end to mark it as recently used
# @@usage_order.delete(sprite_key)
# @@usage_order << sprite_key
# return @@cache[sprite_key]
# end
#
# # Load sprite via block if not found in cache
# sprite_bitmap = yield
#
# if @@cache.size >= Settings::SPRITE_CACHE_MAX_NB
# # Evict least recently used (first in order)
# oldest_key = @@usage_order.shift
# @@cache.delete(oldest_key)
# echoln "Evicted: #{oldest_key} from sprite cache"
# end
#
# # Add new sprite to cache and track its usage
# @@cache[sprite_key] = sprite_bitmap
# @@usage_order << sprite_key
# sprite_bitmap
# echoln @@cache
# end
# end

View File

@@ -0,0 +1,61 @@
class BaseSpriteExtracter < PIFSpriteExtracter
@instance = new
def self.instance
@@instance ||= new # If @@instance is nil, create a new instance
@@instance # Return the existing or new instance
end
SPRITESHEET_FOLDER_PATH = "Graphics/CustomBattlers/spritesheets/spritesheets_base/"
SPRITE_SIZE = 96 # Original sprite size
NB_COLUMNS_BASESPRITES = 10
SHEET_WIDTH = SPRITE_SIZE * NB_COLUMNS_BASESPRITES # 2880 pixels wide spritesheet
def load_bitmap_from_spritesheet(pif_sprite)
alt_letter = pif_sprite.alt_letter
spritesheet_file = getSpritesheetPath(pif_sprite)
spritesheet_bitmap = AnimatedBitmap.new(spritesheet_file).bitmap
letter_index = letters_to_index(alt_letter)
sprite_x_position, sprite_y_position = get_sprite_position_on_spritesheet(letter_index, SPRITE_SIZE, NB_COLUMNS_BASESPRITES)
src_rect = Rect.new(sprite_x_position, sprite_y_position, SPRITE_SIZE, SPRITE_SIZE)
sprite_bitmap = Bitmap.new(SPRITE_SIZE, SPRITE_SIZE)
sprite_bitmap.blt(0, 0, spritesheet_bitmap, src_rect)
spritesheet_bitmap.dispose # Dispose since not needed
return sprite_bitmap
end
def letters_to_index(letters)
letters = letters.downcase # Ensure input is case-insensitive
index = 0
letters.each_char do |char|
index = index * 26 + (char.ord - 'a'.ord + 1)
end
#echoln "index: #{index}"
return index
end
def load_sprite_directly(head_id, body_id, alt_letter = "")
load_sprite(PIFSprite.new(:CUSTOM, head_id, body_id, alt_letter))
end
def getSpritesheetPath(pif_sprite)
dex_number = getDexNumberForSpecies(pif_sprite.head_id)
return "#{SPRITESHEET_FOLDER_PATH}#{dex_number}.png"
end
def should_update_spritesheet?(pif_sprite)
return false if !$updated_spritesheets
return false if !downloadAllowed?()
return false if requestRateExceeded?(Settings::CUSTOMSPRITES_RATE_LOG_FILE,Settings::CUSTOMSPRITES_ENTRIES_RATE_TIME_WINDOW,Settings::CUSTOMSPRITES_RATE_MAX_NB_REQUESTS,false)
spritesheet_file = getSpritesheetPath(pif_sprite)
return true if !pbResolveBitmap(spritesheet_file)
return !$updated_spritesheets.include?(spritesheet_file)
end
def get_resize_scale
return 3
end
end

View File

@@ -0,0 +1,275 @@
class BattleSpriteLoader
def initialize
@download_allowed = true
end
def load_pif_sprite_directly(pif_sprite)
if pif_sprite.local_path && pbResolveBitmap(pif_sprite.local_path)
return AnimatedBitmap.new(pif_sprite.local_path)
end
extractor = get_sprite_extractor_instance(pif_sprite.type)
return extractor.load_sprite(pif_sprite)
end
#random alt
def load_pif_sprite(pif_sprite)
case pif_sprite.type
when :CUSTOM, :AUTOGEN
load_fusion_sprite(pif_sprite.head_id, pif_sprite.body_id)
when :BASE
load_base_sprite(pif_sprite.head_id)
end
end
# Only preloads if the pokemon's sprite has been assigned an alt letter
def preload_sprite_from_pokemon(pokemon)
return if !pokemon
substitution_id = get_sprite_substitution_id_from_dex_number(pokemon.species)
# echoln substitution_id
# echoln $PokemonGlobal.alt_sprite_substitutions
pif_sprite = $PokemonGlobal.alt_sprite_substitutions[substitution_id] if $PokemonGlobal
if !pif_sprite
pif_sprite = get_pif_sprite_from_species(pokemon.species)
end
preload(pif_sprite)
end
#loads a sprite into cache without actually returning it
# Does not download spritesheet
def preload(pif_sprite)
echoln "preloading"
previous_download_allowed = @download_allowed
@download_allowed = false
load_pif_sprite(pif_sprite)
@download_allowed = previous_download_allowed
end
def clear_sprites_cache(type)
extractor = get_sprite_extractor_instance(type)
extractor.clear_cache
end
def load_from_dex_number(dex_number)
if dex_number > NB_POKEMON
if dex_number > ZAPMOLCUNO_NB #Triple Fusion
return load_triple_fusion_sprite(dex_number)
else
#Regular fusion
body_id = getBodyID(dex_number)
head_id = getHeadID(dex_number, body_id)
return load_fusion_sprite(head_id, body_id)
end
else
#base pokemon
return load_base_sprite(dex_number)
end
end
def obtain_fusion_pif_sprite(head_id,body_id)
$PokemonGlobal.alt_sprite_substitutions = {} unless $PokemonGlobal.alt_sprite_substitutions
substitution_id = get_sprite_substitution_id_for_fusion(head_id, body_id)
pif_sprite = $PokemonGlobal.alt_sprite_substitutions[substitution_id] if $PokemonGlobal
#pif_sprite.dump_info if pif_sprite
if !pif_sprite
pif_sprite = select_new_pif_fusion_sprite(head_id, body_id)
local_path = check_for_local_sprite(pif_sprite)
if local_path
pif_sprite.local_path = local_path
pif_sprite.type = :CUSTOM
end
substitution_id = get_sprite_substitution_id_for_fusion(head_id, body_id)
$PokemonGlobal.alt_sprite_substitutions[substitution_id] = pif_sprite if $PokemonGlobal
end
return pif_sprite
end
def load_fusion_sprite(head_id, body_id)
pif_sprite = obtain_fusion_pif_sprite(head_id,body_id)
if pif_sprite.local_path
return AnimatedBitmap.new(pif_sprite.local_path)
end
extractor = get_sprite_extractor_instance(pif_sprite.type)
loaded_sprite = extractor.load_sprite(pif_sprite, @download_allowed)
if !loaded_sprite
loaded_sprite = handle_unloaded_sprites(extractor,pif_sprite)
end
return loaded_sprite
end
def load_base_sprite(dex_number)
substitution_id = get_sprite_substitution_id_from_dex_number(dex_number)
pif_sprite = $PokemonGlobal.alt_sprite_substitutions[substitution_id] if $PokemonGlobal
if !pif_sprite
pif_sprite = select_new_pif_base_sprite(dex_number)
$PokemonGlobal.alt_sprite_substitutions[substitution_id] = pif_sprite if $PokemonGlobal
end
if pif_sprite.local_path
return AnimatedBitmap.new(pif_sprite.local_path)
end
extractor = get_sprite_extractor_instance(pif_sprite.type)
loaded_sprite = extractor.load_sprite(pif_sprite)
if !loaded_sprite
loaded_sprite = handle_unloaded_sprites(extractor,pif_sprite)
end
return loaded_sprite
end
def handle_unloaded_sprites(extractor,pif_sprite)
if(extractor.is_a?(CustomSpriteExtracter)) #Custom failed to load, load an autogen (which should always be there)
new_extractor = get_sprite_extractor_instance(:AUTOGEN)
return new_extractor.load_sprite(pif_sprite)
else
$Trainer.seen_qmarks_sprite=true if $Trainer
#If autogen or base sprite aren't able to load a sprite then we have nothing else to load -> show a ? instead.
return AnimatedBitmap.new(Settings::DEFAULT_SPRITE_PATH)
end
end
#Always loaded from local individual sprites
def load_triple_fusion_sprite(dex_number)
sprite_path = getSpecialSpriteName(dex_number)
return AnimatedBitmap.new(sprite_path)
end
def get_sprite_extractor_instance(type)
case type
when :AUTOGEN
return AutogenExtracter.instance
when :CUSTOM
return CustomSpriteExtracter.instance
when :BASE
return BaseSpriteExtracter.instance
else
raise ArgumentError, "Unknown sprite type: #{type}"
end
end
def check_for_local_sprite(pif_sprite)
return pif_sprite.local_path if pif_sprite.local_path
if pif_sprite.type == :BASE
sprite_path = "#{Settings::CUSTOM_BASE_SPRITES_FOLDER}#{pif_sprite.head_id}#{pif_sprite.alt_letter}.png"
else
sprite_path = "#{Settings::CUSTOM_BATTLERS_FOLDER_INDEXED}#{pif_sprite.head_id}/#{pif_sprite.head_id}.#{pif_sprite.body_id}#{pif_sprite.alt_letter}.png"
end
return pbResolveBitmap(sprite_path)
end
def get_pif_sprite_from_species(species)
substitution_id = get_sprite_substitution_id_from_dex_number(species)
pif_sprite = $PokemonGlobal.alt_sprite_substitutions[substitution_id] if $PokemonGlobal
return pif_sprite if pif_sprite
species_data = GameData::Species.get(species)
if species_data.id_number <= NB_POKEMON #base pokemon
return select_new_pif_base_sprite(species_data.id_number)
else #isFusion
return select_new_pif_fusion_sprite(species_data.get_head_species, species_data.get_body_species)
end
end
#
# Flow:
# # if none found, look for custom sprite in custom spritesheet (download if can't find spritesheet or new spritepack released)
# if none found, load from autogen spritesheet
def select_new_pif_fusion_sprite(head_id, body_id)
species_symbol = "B#{body_id}H#{head_id}".to_sym
spritename = get_fusion_spritename(head_id,body_id)
customSpritesList = $game_temp.custom_sprites_list[species_symbol]
alt_letter = ""
if customSpritesList
alt_letter = get_random_alt_letter_for_custom(head_id,body_id,true)
type = :CUSTOM
type = :AUTOGEN if !alt_letter
else
type = :AUTOGEN
end
if $game_temp.forced_alt_sprites && $game_temp.forced_alt_sprites.include?(spritename)
alt_letter = $game_temp.forced_alt_sprites[spritename]
end
return PIFSprite.new(type, head_id, body_id, alt_letter)
end
def select_new_pif_base_sprite(dex_number)
random_alt = get_random_alt_letter_for_unfused(dex_number, true) #nil if no main
random_alt = "" if !random_alt
return PIFSprite.new(:BASE, dex_number, nil, random_alt)
end
#todo refactor by using get_triple_fusion_components()
def getSpecialSpriteName(dexNum)
base_path = "Graphics/Battlers/special/"
case dexNum
when Settings::ZAPMOLCUNO_NB
return sprintf(base_path + "144.145.146")
when Settings::ZAPMOLCUNO_NB + 1
return sprintf(base_path + "144.145.146")
when Settings::ZAPMOLCUNO_NB + 2
return sprintf(base_path + "243.244.245")
when Settings::ZAPMOLCUNO_NB + 3
return sprintf(base_path +"340.341.342")
when Settings::ZAPMOLCUNO_NB + 4
return sprintf(base_path +"343.344.345")
when Settings::ZAPMOLCUNO_NB + 5
return sprintf(base_path +"349.350.351")
when Settings::ZAPMOLCUNO_NB + 6
return sprintf(base_path +"151.251.381")
when Settings::ZAPMOLCUNO_NB + 11
return sprintf(base_path +"150.348.380")
#starters
when Settings::ZAPMOLCUNO_NB + 7
return sprintf(base_path +"3.6.9")
when Settings::ZAPMOLCUNO_NB + 8
return sprintf(base_path +"154.157.160")
when Settings::ZAPMOLCUNO_NB + 9
return sprintf(base_path +"278.281.284")
when Settings::ZAPMOLCUNO_NB + 10
return sprintf(base_path +"318.321.324")
#starters prevos
when Settings::ZAPMOLCUNO_NB + 12
return sprintf(base_path +"1.4.7")
when Settings::ZAPMOLCUNO_NB + 13
return sprintf(base_path +"2.5.8")
when Settings::ZAPMOLCUNO_NB + 14
return sprintf(base_path +"152.155.158")
when Settings::ZAPMOLCUNO_NB + 15
return sprintf(base_path +"153.156.159")
when Settings::ZAPMOLCUNO_NB + 16
return sprintf(base_path +"276.279.282")
when Settings::ZAPMOLCUNO_NB + 17
return sprintf(base_path +"277.280.283")
when Settings::ZAPMOLCUNO_NB + 18
return sprintf(base_path +"316.319.322")
when Settings::ZAPMOLCUNO_NB + 19
return sprintf(base_path +"317.320.323")
when Settings::ZAPMOLCUNO_NB + 20 #birdBoss Left
return sprintf(base_path +"invisible")
when Settings::ZAPMOLCUNO_NB + 21 #birdBoss middle
return sprintf(base_path + "144.145.146")
when Settings::ZAPMOLCUNO_NB + 22 #birdBoss right
return sprintf(base_path +"invisible")
when Settings::ZAPMOLCUNO_NB + 23 #sinnohboss left
return sprintf(base_path +"invisible")
when Settings::ZAPMOLCUNO_NB + 24 #sinnohboss middle
return sprintf(base_path +"343.344.345")
when Settings::ZAPMOLCUNO_NB + 25 #sinnohboss right
return sprintf(base_path +"invisible")
when Settings::ZAPMOLCUNO_NB + 25 #cardboard
return sprintf(base_path +"invisible")
when Settings::ZAPMOLCUNO_NB + 26 #cardboard
return sprintf(base_path + "cardboard")
when Settings::ZAPMOLCUNO_NB + 27 #Triple regi
return sprintf(base_path + "447.448.449")
#Triple Kalos 1
when Settings::ZAPMOLCUNO_NB + 28
return sprintf(base_path + "479.482.485")
when Settings::ZAPMOLCUNO_NB + 29
return sprintf(base_path + "480.483.486")
when Settings::ZAPMOLCUNO_NB + 30
return sprintf(base_path + "481.484.487")
else
return sprintf(base_path + "000")
end
end
end

View File

@@ -0,0 +1,106 @@
class CustomSpriteExtracter < PIFSpriteExtracter
@instance = new
def self.instance
@@instance ||= new # If @@instance is nil, create a new instance
@@instance # Return the existing or new instance
end
SPRITESHEET_FOLDER_PATH = "Graphics/CustomBattlers/spritesheets/spritesheets_custom/"
SPRITE_SIZE = 96 # Original sprite size
SHEET_WIDTH = SPRITE_SIZE * COLUMNS # 2880 pixels wide spritesheet
def load_bitmap_from_spritesheet(pif_sprite)
body_id = pif_sprite.body_id
spritesheet_file = getSpritesheetPath(pif_sprite)
spritesheet_bitmap = AnimatedBitmap.new(spritesheet_file).bitmap
sprite_x_position,sprite_y_position =get_sprite_position_on_spritesheet(body_id,SPRITE_SIZE,COLUMNS)
src_rect = Rect.new(sprite_x_position, sprite_y_position, SPRITE_SIZE, SPRITE_SIZE)
sprite_bitmap = Bitmap.new(SPRITE_SIZE, SPRITE_SIZE)
sprite_bitmap.blt(0, 0, spritesheet_bitmap, src_rect)
spritesheet_bitmap.dispose # Dispose since not needed
return sprite_bitmap
end
def load_sprite_to_file(pif_sprite)
head_id = pif_sprite.head_id
body_id = pif_sprite.body_id
alt_letter = pif_sprite.alt_letter
base_folder = "#{Settings::CUSTOM_BATTLERS_FOLDER_INDEXED}#{head_id}/"
individualSpriteFile = "#{base_folder}#{head_id}.#{body_id}#{alt_letter}.png"
if !pbResolveBitmap(individualSpriteFile)
animatedBitmap = load_sprite_from_spritesheet(pif_sprite)
Dir.mkdir(base_folder) unless Dir.exist?(base_folder)
animatedBitmap.bitmap.save_to_png(individualSpriteFile)
end
return AnimatedBitmap.new(individualSpriteFile)
end
def getSpritesheetPath(pif_sprite)
alt_letter = pif_sprite.alt_letter
head_id = pif_sprite.head_id
return "#{SPRITESHEET_FOLDER_PATH}#{head_id}/#{head_id}#{alt_letter}.png"
end
def should_update_spritesheet?(pif_sprite)
return false if !$updated_spritesheets
return false if !downloadAllowed?()
return false if requestRateExceeded?(Settings::CUSTOMSPRITES_RATE_LOG_FILE,Settings::CUSTOMSPRITES_ENTRIES_RATE_TIME_WINDOW,Settings::CUSTOMSPRITES_RATE_MAX_NB_REQUESTS,false)
spritesheet_file = getSpritesheetPath(pif_sprite)
return true if !pbResolveBitmap(spritesheet_file)
return !$updated_spritesheets.include?(spritesheet_file)
end
def load_sprite_directly(head_id,body_id,alt_letter="")
load_sprite(PIFSprite.new(:CUSTOM,head_id,body_id,alt_letter))
end
def get_resize_scale
return 3
end
#
# def extract_bitmap_to_file(head_id, body_id, alt_letter, folder)
# # Create the directory if it doesn't exist
# Dir.mkdir(folder) unless Dir.exist?(folder)
#
# # Load the entire spritesheet
# spritesheet_file = "#{SPRITESHEET_FOLDER_PATH}#{head_id}\\#{head_id}#{alt_letter}.png"
# spritesheet_bitmap = AnimatedBitmap.new(spritesheet_file).bitmap
#
# # Calculate the 0-based row and column from the sprite index
# index = body_id
# row = index / COLUMNS
# col = index % COLUMNS
#
# # Define the area of the sprite on the spritesheet
# sprite_x_position = col * SPRITE_SIZE
# sprite_y_position = row * SPRITE_SIZE
#
# # Create a new bitmap for the sprite at its original size
# sprite_bitmap = Bitmap.new(SPRITE_SIZE, SPRITE_SIZE)
#
# # Copy the sprite from the spritesheet to the new bitmap
# src_rect = Rect.new(sprite_x_position, sprite_y_position, SPRITE_SIZE, SPRITE_SIZE)
# sprite_bitmap.blt(0, 0, spritesheet_bitmap, src_rect)
#
# # Dispose of the spritesheet bitmap if its no longer needed
# spritesheet_bitmap.dispose
#
# # Save the sprite bitmap to a file
# file_path = "#{folder}/#{head_id}.#{body_id}.png"
# sprite_bitmap.save_to_png(file_path)
#
# # Dispose of the sprite bitmap
# sprite_bitmap.dispose
#
# # Return the path to the saved PNG file
# return file_path
# end
end

View File

@@ -0,0 +1,403 @@
module GameData
class Species
def self.sprite_bitmap_from_pokemon(pkmn, back = false, species = nil)
species = pkmn.species if !species
species = GameData::Species.get(species).id_number # Just to be sure it's a number
return self.egg_sprite_bitmap(species, pkmn.form) if pkmn.egg?
if back
ret = self.back_sprite_bitmap(species, pkmn.shiny?, pkmn.bodyShiny?, pkmn.headShiny?)
else
ret = self.front_sprite_bitmap(species, pkmn.shiny?, pkmn.bodyShiny?, pkmn.headShiny?)
end
ret.scale_bitmap(pkmn.sprite_scale) if ret #for pokemon with size differences
return ret
end
def self.sprite_bitmap_from_pokemon_id(id, back = false, shiny = false, bodyShiny = false, headShiny = false)
if back
ret = self.back_sprite_bitmap(id, shiny, bodyShiny, headShiny)
else
ret = self.front_sprite_bitmap(id, shiny, bodyShiny, headShiny)
end
return ret
end
MAX_SHIFT_VALUE = 360
MINIMUM_OFFSET = 40
ADDITIONAL_OFFSET_WHEN_TOO_CLOSE = 40
MINIMUM_DEX_DIF = 20
def self.calculateShinyHueOffset(dex_number, isBodyShiny = false, isHeadShiny = false)
if dex_number <= NB_POKEMON
if SHINY_COLOR_OFFSETS[dex_number]
return SHINY_COLOR_OFFSETS[dex_number]
end
body_number = dex_number
head_number = dex_number
else
body_number = getBodyID(dex_number)
head_number = getHeadID(dex_number, body_number)
end
if isBodyShiny && isHeadShiny && SHINY_COLOR_OFFSETS[body_number] && SHINY_COLOR_OFFSETS[head_number]
offset = SHINY_COLOR_OFFSETS[body_number] + SHINY_COLOR_OFFSETS[head_number]
elsif isHeadShiny && SHINY_COLOR_OFFSETS[head_number]
offset = SHINY_COLOR_OFFSETS[head_number]
elsif isBodyShiny && SHINY_COLOR_OFFSETS[body_number]
offset = SHINY_COLOR_OFFSETS[body_number]
else
offset = calculateShinyHueOffsetDefaultMethod(body_number, head_number, dex_number, isBodyShiny, isHeadShiny)
end
return offset
end
def self.calculateShinyHueOffsetDefaultMethod(body_number, head_number, dex_number, isBodyShiny = false, isHeadShiny = false)
dex_offset = dex_number
#body_number = getBodyID(dex_number)
#head_number=getHeadID(dex_number,body_number)
dex_diff = (body_number - head_number).abs
if isBodyShiny && isHeadShiny
dex_offset = dex_number
elsif isHeadShiny
dex_offset = head_number
elsif isBodyShiny
dex_offset = dex_diff > MINIMUM_DEX_DIF ? body_number : body_number + ADDITIONAL_OFFSET_WHEN_TOO_CLOSE
end
offset = dex_offset + Settings::SHINY_HUE_OFFSET
offset /= MAX_SHIFT_VALUE if offset > NB_POKEMON
offset = MINIMUM_OFFSET if offset < MINIMUM_OFFSET
offset = MINIMUM_OFFSET if (MAX_SHIFT_VALUE - offset).abs < MINIMUM_OFFSET
offset += pbGet(VAR_SHINY_HUE_OFFSET) #for testing - always 0 during normal gameplay
return offset
end
def self.getAutogenSprite(head_id, body_id)
end
# species can be either a number, a Species objet of a symbol
def self.front_sprite_bitmap(species, isShiny = false, bodyShiny = false, headShiny = false)
dex_number = getDexNumberForSpecies(species)
if species.is_a?(Species)
dex_number = species.id_number
end
spriteLoader = BattleSpriteLoader.new
if isFusion(dex_number)
body_id = getBodyID(dex_number)
head_id = getHeadID(dex_number, body_id)
sprite = spriteLoader.load_fusion_sprite(head_id,body_id)
else
if isTripleFusion?(dex_number)
sprite = spriteLoader.load_triple_fusion_sprite(dex_number)
else
sprite = spriteLoader.load_base_sprite(dex_number)
end
end
if isShiny
sprite.shiftColors(self.calculateShinyHueOffset(dex_number, bodyShiny, headShiny))
end
return sprite
end
# def self.front_sprite_bitmap(dex_number, isShiny = false, bodyShiny = false, headShiny = false)
# # body_id = getBodyID(dex_number)
# # head_id = getHeadID(dex_number, body_id)
# # return getAutogenSprite(head_id,body_id)
#
# #la méthode est utilisé ailleurs avec d'autres arguments (gender, form, etc.) mais on les veut pas
# if dex_number.is_a?(Symbol)
# dex_number = GameData::Species.get(dex_number).id_number
# end
# filename = self.sprite_filename(dex_number)
# sprite = (filename) ? AnimatedBitmap.new(filename) : nil
# if isShiny
# sprite.shiftColors(self.calculateShinyHueOffset(dex_number, bodyShiny, headShiny))
# end
# return sprite
# end
def self.back_sprite_bitmap(dex_number, isShiny = false, bodyShiny = false, headShiny = false)
# filename = self.sprite_filename(dex_number)
# sprite = (filename) ? AnimatedBitmap.new(filename) : nil
# if isShiny
# sprite.shiftColors(self.calculateShinyHueOffset(dex_number, bodyShiny, headShiny))
# end
# return sprite
sprite = self.front_sprite_bitmap(dex_number,isShiny,bodyShiny,headShiny)
return sprite#.mirror
end
def self.egg_sprite_bitmap(dex_number, form = nil)
filename = self.egg_sprite_filename(dex_number, form)
return (filename) ? AnimatedBitmap.new(filename) : nil
end
end
end
# def self.sprite_filename(dex_number)
# #dex_number = GameData::NAT_DEX_MAPPING[dex_number] ? GameData::NAT_DEX_MAPPING[dex_number] : dex_number
# if dex_number.is_a?(GameData::Species)
# dex_number = dex_number.id_number
# end
# if dex_number.is_a?(Symbol)
# dex_number = getDexNumberForSpecies(dex_number)
# end
# return nil if dex_number == nil
# if dex_number <= Settings::NB_POKEMON
# return get_unfused_sprite_path(dex_number)
# else
# if dex_number >= Settings::ZAPMOLCUNO_NB
# specialPath = getSpecialSpriteName(dex_number)
# return pbResolveBitmap(specialPath)
# head_id = nil
# else
# body_id = getBodyID(dex_number)
# head_id = getHeadID(dex_number, body_id)
# return get_fusion_sprite_path(head_id, body_id)
# # folder = head_id.to_s
# # filename = sprintf("%s.%s.png", head_id, body_id)
# end
# end
# # customPath = pbResolveBitmap(Settings::CUSTOM_BATTLERS_FOLDER_INDEXED + "/" + head_id.to_s + "/" +filename)
# # customPath = download_custom_sprite(head_id,body_id)
# #
# # species = getSpecies(dex_number)
# # use_custom = customPath && !species.always_use_generated
# # if use_custom
# # return customPath
# # end
# # #return Settings::BATTLERS_FOLDER + folder + "/" + filename
# # return download_autogen_sprite(head_id,body_id)
# end
# def get_unfused_sprite_path(dex_number_id, localOnly = false)
# dex_number = dex_number_id.to_s
# folder = dex_number.to_s
# substitution_id = _INTL("{1}", dex_number)
#
# if alt_sprites_substitutions_available && $PokemonGlobal.alt_sprite_substitutions.keys.include?(substitution_id)
# substitutionPath = $PokemonGlobal.alt_sprite_substitutions[substitution_id]
# return substitutionPath if pbResolveBitmap(substitutionPath)
# end
# random_alt = get_random_alt_letter_for_unfused(dex_number, true) #nil if no main
# random_alt = "" if !random_alt || localOnly
#
#
# filename = _INTL("{1}{2}.png", dex_number,random_alt)
#
# path = Settings::CUSTOM_BASE_SPRITES_FOLDER + filename
# if pbResolveBitmap(path)
# record_sprite_substitution(substitution_id,path)
# return path
# end
# echoln "downloading main sprite #{filename}"
# downloaded_path = download_unfused_main_sprite(dex_number, random_alt) if !localOnly
# if pbResolveBitmap(downloaded_path)
# record_sprite_substitution(substitution_id,downloaded_path)
# return downloaded_path
# end
# return path
# end
def alt_sprites_substitutions_available
return $PokemonGlobal && $PokemonGlobal.alt_sprite_substitutions
end
def print_stack_trace
stack_trace = caller
stack_trace.each_with_index do |call, index|
echo("#{index + 1}: #{call}")
end
end
# def record_sprite_substitution(substitution_id, sprite_name)
# return if !$PokemonGlobal
# return if !$PokemonGlobal.alt_sprite_substitutions
# $PokemonGlobal.alt_sprite_substitutions[substitution_id] = sprite_name
# end
def add_to_autogen_cache(pokemon_id, sprite_name)
return if !$PokemonGlobal
return if !$PokemonGlobal.autogen_sprites_cache
$PokemonGlobal.autogen_sprites_cache[pokemon_id]=sprite_name
end
class PokemonGlobalMetadata
attr_accessor :autogen_sprites_cache
end
#To force a specific sprites before a battle
#
# ex:
# $PokemonTemp.forced_alt_sprites={"20.25" => "20.25a"}
#
class PokemonTemp
attr_accessor :forced_alt_sprites
end
#todo:
# DO NOT USE ANYMORE
# Replace by BattleSpriteLoader
# def get_fusion_sprite_path(head_id, body_id, localOnly=false)
# $PokemonGlobal.autogen_sprites_cache = {} if $PokemonGlobal && !$PokemonGlobal.autogen_sprites_cache
# #Todo: ça va chier si on fusionne une forme d'un pokemon avec une autre forme, mais pas un problème pour tout de suite
# form_suffix = ""
#
# #Swap path if alt is selected for this pokemon
# dex_num = getSpeciesIdForFusion(head_id, body_id)
# substitution_id = dex_num.to_s + form_suffix
#
# if alt_sprites_substitutions_available && $PokemonGlobal.alt_sprite_substitutions.keys.include?(substitution_id)
# substitutionPath= $PokemonGlobal.alt_sprite_substitutions[substitution_id]
# return substitutionPath if pbResolveBitmap(substitutionPath)
# end
#
#
# pokemon_name = _INTL("{1}.{2}",head_id, body_id)
#
# #get altSprite letter
# random_alt = get_random_alt_letter_for_custom(head_id, body_id) #nil if no main
# random_alt = "" if !random_alt
# forcingSprite=false
# if $PokemonTemp.forced_alt_sprites && $PokemonTemp.forced_alt_sprites.key?(pokemon_name)
# random_alt = $PokemonTemp.forced_alt_sprites[pokemon_name]
# forcingSprite=true
# end
#
#
# filename = _INTL("{1}{2}.png", pokemon_name, random_alt)
# #Try local custom sprite
# local_custom_path = Settings::CUSTOM_BATTLERS_FOLDER_INDEXED + head_id.to_s + "/" + filename
# if pbResolveBitmap(local_custom_path)
# record_sprite_substitution(substitution_id, local_custom_path) if !forcingSprite
# return local_custom_path
# end
# #if the game has loaded an autogen earlier, no point in trying to redownload, so load that instead
# return $PokemonGlobal.autogen_sprites_cache[substitution_id] if $PokemonGlobal && $PokemonGlobal.autogen_sprites_cache[substitution_id]
#
# #Try to download custom sprite if none found locally
# downloaded_custom = download_custom_sprite(head_id, body_id, random_alt) if !localOnly
# if downloaded_custom
# record_sprite_substitution(substitution_id, downloaded_custom) if !forcingSprite
# return downloaded_custom
# end
#
# #Try local generated sprite
# local_generated_path = Settings::BATTLERS_FOLDER + head_id.to_s + "/" + filename
# if pbResolveBitmap(local_generated_path)
# add_to_autogen_cache(substitution_id,local_generated_path)
# return local_generated_path
# end
#
# #Download generated sprite if nothing else found
# autogen_path = download_autogen_sprite(head_id, body_id) if !localOnly
# if pbResolveBitmap(autogen_path)
# add_to_autogen_cache(substitution_id,autogen_path)
# return autogen_path
# end
#
# return Settings::DEFAULT_SPRITE_PATH
# end
def get_random_alt_letter_for_custom(head_id, body_id, onlyMain = true)
spriteName = _INTL("{1}.{2}", head_id, body_id)
echoln spriteName
if onlyMain
alts_list = list_main_sprites_letters(spriteName)
return nil if alts_list.empty?
return alts_list.sample
else
alts_list = list_all_sprites_letters(spriteName)
return nil if alts_list.empty?
return alts_list.sample
end
end
def get_random_alt_letter_for_unfused(dex_num, onlyMain = true)
spriteName = _INTL("{1}", dex_num)
if onlyMain
letters_list= list_main_sprites_letters(spriteName)
else
letters_list= list_all_sprites_letters(spriteName)
end
letters_list << "" #add main sprite
return letters_list.sample
end
def list_main_sprites_letters(spriteName)
all_sprites = map_alt_sprite_letters_for_pokemon(spriteName)
main_sprites = []
all_sprites.each do |key, value|
main_sprites << key if value == "main"
end
#add temp sprites if no main sprites found
if main_sprites.empty?
all_sprites.each do |key, value|
main_sprites << key if value == "temp"
end
end
return main_sprites
end
def list_all_sprites_letters_head_body(head_id,body_id)
spriteName = _INTL("{1}.{2}", head_id, body_id)
all_sprites_map = map_alt_sprite_letters_for_pokemon(spriteName)
letters = []
all_sprites_map.each do |key, value|
letters << key
end
return letters
end
def list_all_sprites_letters(spriteName)
all_sprites_map = map_alt_sprite_letters_for_pokemon(spriteName)
letters = []
all_sprites_map.each do |key, value|
letters << key
end
return letters
end
def list_alt_sprite_letters(spriteName)
all_sprites = map_alt_sprite_letters_for_pokemon(spriteName)
alt_sprites = []
all_sprites.each do |key, value|
alt_sprites << key if value == "alt"
end
end
#ex: "1" -> "main"
# "1a" -> "alt"
def map_alt_sprite_letters_for_pokemon(spriteName)
alt_sprites = {}
File.foreach(Settings::CREDITS_FILE_PATH) do |line|
row = line.split(',')
sprite_name = row[0]
if sprite_name.start_with?(spriteName)
if sprite_name.length > spriteName.length #alt letter
letter = sprite_name[spriteName.length]
if letter.match?(/[a-zA-Z]/)
main_or_alt = row[2] ? row[2] : nil
alt_sprites[letter] = main_or_alt
end
else #letterless
main_or_alt = row[2] ? row[2].gsub("\n","") : nil
alt_sprites[""] = main_or_alt
end
end
end
return alt_sprites
end

View File

@@ -0,0 +1,13 @@
# frozen_string_literal: true
class PokemonSprite
def setPokemonBitmapFromId(id, back = false, shiny = false, bodyShiny = false, headShiny = false,spriteform_body=nil,spriteform_head=nil)
@_iconbitmap.dispose if @_iconbitmap
@_iconbitmap = GameData::Species.sprite_bitmap_from_pokemon_id(id, back, shiny, bodyShiny, headShiny)
self.bitmap = (@_iconbitmap) ? @_iconbitmap.bitmap : nil
self.color = Color.new(0, 0, 0, 0)
changeOrigin
end
end

View File

@@ -0,0 +1,114 @@
# object representing a sprite which saves its position in the tileset
class PIFSprite
attr_accessor :type
attr_accessor :head_id
attr_accessor :body_id
attr_accessor :alt_letter
attr_accessor :local_path
# types:
# :AUTOGEN, :CUSTOM, :BASE
def initialize(type, head_id, body_id, alt_letter = "")
@type = type
@head_id = head_id
@body_id = body_id
@alt_letter = alt_letter
@local_path = nil
end
def dump_info()
echoln "Type: #{@type}"
echoln "Head: #{@head_id}"
echoln "Body: #{@body_id}"
echoln "Alt letter: #{@alt_letter}"
echoln "Local path: #{@local_path}"
end
def exists()
filename = get_spritesheet_path()
echoln filename
return File.file?(filename)
end
def get_spritesheet_path()
case @type
when :BASE
path = "#{BaseSpriteExtracter::SPRITESHEET_FOLDER_PATH}#{@head_id}.png"
when :CUSTOM
path = "#{CustomSpriteExtracter::SPRITESHEET_FOLDER_PATH}#{@head_id}/#{@head_id}#{@alt_letter}.png"
when :AUTOGEN
path = "#{AutogenExtracter::SPRITESHEET_FOLDER_PATH}#{@head_id}.png"
else
return nil
end
echoln path
return path
end
end
def equals(other_pif_sprite)
return @type == other_pif_sprite.type &&
@head_id == other_pif_sprite.head_id &&
@body_id == other_pif_sprite.body_id &&
@alt_letter == other_pif_sprite.alt_letter &&
@local_path == other_pif_sprite.local_path
end
# little hack for old methods that expect a filename for a sprite
def to_filename()
case @type
when :CUSTOM
return "#{@head_id}.#{@body_id}#{@alt_letter}.png"
when :AUTOGEN
return "#{@head_id}.#{@body_id}.png"
when :BASE
return "#{@head_id}#{@alt_letter}.png"
end
end
def setup_from_spritename(spritename, type)
@type = type
cleaned_name = spritename.gsub(".png", "")
if cleaned_name =~ /(\d+)\.(\d+)([a-zA-Z]*)/
head_id = $1
body_id = $2
alt_letter = $3
end
@head_id = head_id
@body_id = body_id
@alt_letter = alt_letter
end
def self.from_spritename(spritename, type)
obj = allocate
obj.send(:setup_from_spritename, spritename, type)
obj
end
def new_pif_sprite_from_dex_num(type, dexNum, alt_letter)
body_id = getBodyID(dexNum)
head_id = getHeadID(dexNum, body_id)
return PIFSprite.new(type, head_id, body_id, alt_letter)
end
def pif_sprite_from_spritename(spritename, autogen = false)
spritename = spritename.split(".png")[0] # remove the extension
if spritename =~ /^(\d+)\.(\d+)([a-zA-Z]*)$/ # Two numbers with optional letters
type = :CUSTOM
head_id = $1.to_i # Head (e.g., "1" in "1.2.png")
body_id = $2.to_i # Body (e.g., "2" in "1.2.png")
alt_letter = $3 # Optional trailing letter (e.g., "a" in "1.2a.png")
elsif spritename =~ /^(\d+)([a-zA-Z]*)$/ # One number with optional letters
type = :BASE
head_id = $1.to_i # Head (e.g., "1" in "1.png")
alt_letter = $2 # Optional trailing letter (e.g., "a" in "1a.png")
else
echoln "Invalid sprite format: #{spritename}"
return nil
end
type = :AUTOGEN if autogen
return PIFSprite.new(type, head_id, body_id, alt_letter)
end

View File

@@ -0,0 +1,82 @@
def setSpriteSubstitution(pif_sprite); end
def getSpriteSubstitutionForDex(dex_num); end
def setSpriteSubstitution(head,body); end
def set_updated_spritesheets; end
class PokemonGlobalMetadata
attr_accessor :alt_sprite_substitutions
end
def initialize_alt_sprite_substitutions()
$PokemonGlobal.alt_sprite_substitutions = {} if !$PokemonGlobal.alt_sprite_substitutions
migrate_sprites_substitutions()
end
def get_sprite_substitution_id_for_fusion(head_id, body_id)
species_symbol = "B#{body_id}H#{head_id}".to_sym
return get_sprite_substitution_id_from_dex_number(species_symbol)
end
def get_sprite_substitution_id_from_dex_number(species_symbol)
species = GameData::Species.get(species_symbol)
if species.is_fusion
substitution_id = [species.get_head_species,species.get_body_species]
else
substitution_id= species.id_number
end
return substitution_id
end
def migrate_sprites_substitutions
return if $game_switches[SWITCH_UPDATED_TO_SPRITESHEETS_SPRITES]
new_substitutions = {}
old_number_pokemon = 470
for dex_number_key in $PokemonGlobal.alt_sprite_substitutions.keys
if $PokemonGlobal.alt_sprite_substitutions[dex_number_key].is_a?(String) && can_convert_to_int?(dex_number_key)
old_dex_number = dex_number_key.to_i
if old_dex_number > old_number_pokemon #fusion
body_id = getBodyID(old_dex_number,old_number_pokemon)
head_id = getHeadID(old_dex_number,body_id,old_number_pokemon)
new_id = [head_id,body_id]
type = :CUSTOM
else
new_id = old_dex_number
head_id = old_dex_number
body_id= nil
type = :BASE
end
file_path = $PokemonGlobal.alt_sprite_substitutions[dex_number_key]
alt_letter =get_alt_letter_from_path(file_path)
pif_sprite = PIFSprite.new(type,head_id,body_id,alt_letter)
new_substitutions[new_id] = pif_sprite
end
end
$PokemonGlobal.alt_sprite_substitutions = new_substitutions
$game_switches[SWITCH_UPDATED_TO_SPRITESHEETS_SPRITES] = true
end
def can_convert_to_int?(str)
Integer(str)
true
rescue ArgumentError
false
end
def get_alt_letter_from_path(filename)
# Remove the extension
base_name = filename.sub(/\.png$/, '')
# Check the last character
last_char = base_name[-1]
if last_char.match?(/\d/) # Check if the last character is a number
alt_letter = ""
else
# Reverse the base name and capture all letters until the first number
alt_letter = base_name.reverse[/[a-zA-Z]+/].reverse
end
return alt_letter
end

Binary file not shown.

View File

@@ -1,84 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,TWINEEDLE]
Name = Essentials
<User>
FoeInvertX = true
FoeInvertY = true
MoveX = 0,1,28
MoveY = 0,1,-16
MoveX = 3,1,0
MoveY = 3,1,0
<Target>
FoeInvertX = true
MoveX = 9,1,-2
MoveColorRed = 9,8,160
MoveColorGreen = 9,8,32
MoveColorBlue = 9,8,248
MoveColorAlpha = 9,8,160
MoveX = 10,2,2
MoveX = 12,2,-2
MoveX = 14,2,2
MoveX = 16,1,0
MoveColorRed = 19,6,0
MoveColorGreen = 19,6,0
MoveColorBlue = 19,6,0
MoveColorAlpha = 19,6,0
<Needle 1>
Graphic = Bug/Twineedle needle
Focus = UserAndTarget
AngleOverride = InitialAngleToFocus
SetZ = 4,-50
SetZoomX = 4,50
SetZoomY = 4,80
SetColorRed = 4,160
SetColorGreen = 4,32
SetColorBlue = 4,192
SetColorAlpha = 4,128
MoveX = 4,7,200
MoveY = 4,7,-180
SetVisible = 11,false
<Hit 1>
Graphic = Bug/Twineedle hit
Focus = Target
SetY = 11,16
SetZ = 11,10
SetZoomX = 11,0
SetZoomY = 11,0
MoveZoomX = 11,3,50
MoveZoomY = 11,3,50
SetColorRed = 13,248
SetColorBlue = 13,248
SetColorAlpha = 13,255
MoveOpacity = 13,3,0
SetVisible = 16,false
<Needle 2>
Graphic = Bug/Twineedle needle
Focus = UserAndTarget
AngleOverride = InitialAngleToFocus
SetZ = 7,-50
SetZoomX = 7,50
SetZoomY = 7,80
SetColorRed = 7,160
SetColorGreen = 7,32
SetColorBlue = 7,192
SetColorAlpha = 7,128
MoveX = 7,6,200
MoveY = 7,6,-200
SetVisible = 13,false
<Hit 2>
Graphic = Bug/Twineedle hit
Focus = Target
SetX = 13,-8
SetZ = 13,10
SetZoomX = 13,0
SetZoomY = 13,0
MoveZoomX = 13,3,50
MoveZoomY = 13,3,50
SetColorRed = 15,248
SetColorBlue = 15,248
SetColorAlpha = 15,255
MoveOpacity = 15,3,0
SetVisible = 18,false
<SE>
Play = 0,Bug/Twineedle

View File

@@ -1,118 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,BITE]
Name = Essentials
NoUser = true
<Target>
FoeInvertX = true
MoveX = 7,1,-2
MoveX = 8,2,2
MoveX = 10,2,-2
MoveX = 12,2,2
MoveX = 14,1,0
<Teeth upper>
Graphic = Dark/Bite teeth
Focus = Target
SetY = 0,-18
SetZ = 0,10
SetZoomX = 0,125
SetZoomY = 0,125
SetAngle = 0,180
SetOpacity = 0,0
MoveOpacity = 0,1,255
MoveY = 0,3,-72
MoveZoomY = 0,3,200
MoveY = 4,3,-10,EaseOut
MoveZoomY = 4,3,100
MoveY = 7,8,-48
MoveZoomY = 7,8,150
MoveOpacity = 11,4,0
<Teeth lower>
Graphic = Dark/Bite teeth
Focus = Target
SetY = 0,18
SetZ = 0,5
SetZoomX = 0,125
SetZoomY = 0,125
SetOpacity = 0,0
MoveOpacity = 0,1,255
MoveY = 0,3,72
MoveZoomY = 0,3,200
MoveY = 4,3,10,EaseOut
MoveZoomY = 4,3,100
MoveY = 7,8,48
MoveZoomY = 7,8,150
MoveOpacity = 11,4,0
<Teeth upper afterimage>
Graphic = Dark/Bite teeth
Focus = Target
SetY = 4,-72
SetZ = 4,20
SetZoomX = 4,125
SetZoomY = 4,200
SetAngle = 4,180
MoveOpacity = 4,2,0
SetVisible = 6,false
<Teeth lower afterimage>
Graphic = Dark/Bite teeth
Focus = Target
SetY = 4,72
SetZ = 4,15
SetZoomX = 4,125
SetZoomY = 4,200
MoveOpacity = 4,2,0
SetVisible = 6,false
<Hit left yellow>
Graphic = Dark/Bite hit
Focus = Target
SetX = 4,-64
SetZ = 4,30
SetZoomX = 4,0
SetZoomY = 4,0
SetAngle = 4,-20
SetColorRed = 4,248
SetColorGreen = 4,248
SetColorAlpha = 4,255
MoveZoomX = 4,5,150
MoveZoomY = 4,5,150
MoveOpacity = 7,2,0
SetVisible = 9,false
<Hit left white>
Graphic = Dark/Bite hit
Focus = Target
SetX = 4,-64
SetZ = 4,35
SetZoomX = 4,0
SetZoomY = 4,0
SetAngle = 4,-20
MoveZoomX = 4,5,130
MoveZoomY = 4,5,130
MoveOpacity = 7,2,0
SetVisible = 9,false
<Hit right yellow>
Graphic = Dark/Bite hit
Focus = Target
SetX = 4,64
SetZ = 4,30
SetZoomX = 4,0
SetZoomY = 4,0
SetColorRed = 4,248
SetColorGreen = 4,248
SetColorAlpha = 4,255
MoveZoomX = 4,5,150
MoveZoomY = 4,5,150
MoveOpacity = 7,2,0
SetVisible = 9,false
<Hit right white>
Graphic = Dark/Bite hit
Focus = Target
SetX = 4,64
SetZ = 4,35
SetZoomX = 4,0
SetZoomY = 4,0
MoveZoomX = 4,5,130
MoveZoomY = 4,5,130
MoveOpacity = 7,2,0
SetVisible = 9,false
<SE>
Play = 4,Dark/Bite

View File

@@ -1,130 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Common,Attract]
Name = Example anim
NoTarget = true
<User>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/poi hear mus
Focus = User
SetFrame = 7,2
SetX = 7,-29
SetY = 7,-46
SetZ = 7,28
SetFrame = 8,3
SetX = 8,-43
SetY = 8,-31
SetFrame = 9,4
SetX = 9,-34
SetY = 9,-29
SetX = 10,-8
SetY = 10,-11
SetFrame = 11,5
SetX = 11,-23
SetY = 11,-6
SetX = 12,-7
SetY = 12,-22
SetX = 13,6
SetY = 13,-42
SetX = 14,20
SetY = 14,-69
SetY = 15,-77
SetOpacity = 15,192
SetY = 16,-85
SetOpacity = 16,128
SetY = 17,-93
SetOpacity = 17,64
<Particle 3>
Graphic = Examples/poi hear mus
Focus = User
SetFrame = 8,2
SetX = 8,-35
SetY = 8,-46
SetZ = 8,29
SetX = 9,-51
SetY = 9,-35
SetFrame = 10,3
SetX = 10,-34
SetY = 10,-10
SetFrame = 11,4
SetX = 11,-23
SetY = 11,-8
SetFrame = 12,5
SetX = 12,-36
SetY = 12,-6
SetX = 13,-31
SetY = 13,-25
SetX = 14,-48
SetY = 14,-46
SetY = 15,-54
SetOpacity = 15,192
SetY = 16,-62
SetOpacity = 16,128
SetY = 17,-70
SetOpacity = 17,64
<Particle 4>
Graphic = Examples/poi hear mus
Focus = User
SetFrame = 12,2
SetX = 12,13
SetY = 12,-3
SetZ = 12,30
SetFrame = 13,3
SetX = 13,27
SetY = 13,-24
SetFrame = 14,4
SetX = 14,28
SetY = 14,-52
SetX = 15,30
SetY = 15,-56
SetOpacity = 15,192
SetY = 16,-64
SetOpacity = 16,128
SetY = 17,-72
SetOpacity = 17,64
<Particle 1>
Graphic = Examples/poi hear mus
Focus = User
SetFrame = 0,2
SetX = 0,-10
SetY = 0,-29
SetZ = 0,27
SetX = 1,23
SetY = 1,-31
SetFrame = 2,3
SetX = 2,48
SetY = 2,-36
SetX = 3,52
SetY = 3,-47
SetFrame = 4,4
SetX = 4,31
SetY = 4,-64
SetFrame = 5,5
SetX = 5,-36
SetY = 5,-60
SetX = 6,-59
SetY = 6,-54
SetX = 7,-76
SetY = 7,-28
SetFrame = 8,6
SetX = 8,-41
SetY = 8,-17
SetX = 9,-15
SetY = 9,-11
SetX = 10,-8
SetY = 10,-23
SetX = 11,-9
SetY = 11,-32
SetY = 12,-49
SetY = 13,-65
SetY = 14,-89
SetY = 15,-97
SetOpacity = 15,192
SetY = 16,-105
SetOpacity = 16,128
SetY = 17,-113
SetOpacity = 17,64
<SE>
Play = 0,infatuated

View File

@@ -1,46 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Common,Bind]
Name = Example anim
NoTarget = true
<User>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/Struggle
Focus = User
SetFrame = 0,1
SetX = 0,56
SetY = 0,6
SetZ = 0,28
SetX = 1,96
SetY = 1,-2
SetX = 2,104
SetY = 2,6
SetX = 3,80
SetY = 3,-2
SetX = 4,48
SetX = 5,80
SetX = 6,112
SetY = 6,6
SetX = 7,96
<Particle 1>
Graphic = Examples/Struggle
Focus = User
SetX = 0,-64
SetY = 0,6
SetZ = 0,27
SetX = 1,-96
SetY = 1,-2
SetX = 2,-144
SetY = 2,6
SetX = 3,-120
SetY = 3,-2
SetX = 4,-88
SetX = 5,-128
SetX = 6,-168
SetX = 7,-120
<SE>
Play = 0,Slash10,80
Play = 3,Slash10,80
Play = 6,Slash10,80

View File

@@ -1,27 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Common,Burn]
Name = Example anim
NoTarget = true
<User>
SetX = 0,0
SetY = 0,0
<Particle 1>
Graphic = Examples/Flames
Focus = User
SetFrame = 0,2
SetX = 0,0
SetY = 0,0
SetZ = 0,27
SetZoomX = 0,200
SetZoomY = 0,200
SetFrame = 2,1
SetFrame = 4,0
SetFrame = 6,1
SetFrame = 8,0
SetFrame = 10,1
SetFrame = 11,0
SetFrame = 12,1
SetFrame = 13,2
<SE>
Play = 0,Fire2,80

View File

@@ -1,63 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Common,Confusion]
Name = Example anim
NoTarget = true
<User>
SetX = 0,0
SetY = 0,0
<Particle 1>
Graphic = Examples/confused
Focus = User
SetX = 0,0
SetY = 0,-33
SetZ = 0,27
SetFrame = 1,1
SetY = 1,-32
SetFrame = 2,2
SetY = 2,-39
SetFrame = 3,3
SetX = 3,1
SetY = 3,-33
SetFrame = 4,4
SetX = 4,0
SetY = 4,-32
SetFrame = 5,5
SetX = 5,4
SetY = 5,-37
SetFrame = 6,6
SetX = 6,5
SetY = 6,-39
SetFrame = 7,7
SetX = 7,7
SetFrame = 8,8
SetX = 8,0
SetY = 8,-41
SetFrame = 9,9
SetX = 9,-2
SetY = 9,-37
SetFrame = 10,10
SetX = 10,12
SetY = 10,-40
SetFrame = 11,11
SetX = 11,2
SetY = 11,-43
SetFrame = 12,12
SetX = 12,-1
SetFrame = 13,13
SetX = 13,2
SetY = 13,-44
SetFrame = 14,14
SetY = 14,-51
SetFrame = 15,15
SetX = 15,7
SetY = 15,-54
SetX = 16,8
SetY = 16,-55
SetOpacity = 16,233
SetX = 17,10
SetY = 17,-57
SetOpacity = 17,154
SetVisible = 18,false
<SE>
Play = 0,throw,80

View File

@@ -1,170 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Common,FireSpin]
Name = Example anim
NoTarget = true
<User>
SetX = 0,0
SetY = 0,0
<Particle 1>
Graphic = Examples/fly copy
Focus = User
SetFrame = 0,16
SetX = 0,-29
SetY = 0,40
SetZ = 0,27
SetVisible = 6,false
<Particle 2>
Graphic = Examples/fly copy
Focus = User
SetFrame = 0,16
SetX = 0,9
SetY = 0,42
SetZ = 0,28
SetVisible = 6,false
<Particle 3>
Graphic = Examples/fly copy
Focus = User
SetFrame = 0,16
SetX = 0,44
SetY = 0,41
SetZ = 0,29
SetVisible = 6,false
<Particle 4>
Graphic = Examples/fly copy
Focus = User
SetFrame = 1,16
SetX = 1,-29
SetY = 1,25
SetZ = 1,30
SetVisible = 6,false
<Particle 5>
Graphic = Examples/fly copy
Focus = User
SetFrame = 1,16
SetX = 1,10
SetY = 1,27
SetZ = 1,31
SetVisible = 6,false
<Particle 6>
Graphic = Examples/fly copy
Focus = User
SetFrame = 1,16
SetX = 1,47
SetY = 1,26
SetZ = 1,32
SetVisible = 6,false
<Particle 7>
Graphic = Examples/fly copy
Focus = User
SetFrame = 2,16
SetX = 2,-25
SetY = 2,12
SetZ = 2,33
SetVisible = 6,false
<Particle 8>
Graphic = Examples/fly copy
Focus = User
SetFrame = 2,16
SetX = 2,11
SetY = 2,11
SetZ = 2,34
SetVisible = 6,false
<Particle 9>
Graphic = Examples/fly copy
Focus = User
SetFrame = 2,16
SetX = 2,49
SetY = 2,9
SetZ = 2,35
SetVisible = 6,false
<Particle 10>
Graphic = Examples/fly copy
Focus = User
SetFrame = 3,16
SetX = 3,-27
SetY = 3,-4
SetZ = 3,36
SetVisible = 6,false
<Particle 11>
Graphic = Examples/fly copy
Focus = User
SetFrame = 3,16
SetX = 3,12
SetY = 3,-5
SetZ = 3,37
SetVisible = 6,false
<Particle 12>
Graphic = Examples/fly copy
Focus = User
SetFrame = 3,16
SetX = 3,47
SetY = 3,-7
SetZ = 3,38
SetVisible = 6,false
<Particle 13>
Graphic = Examples/fly copy
Focus = User
SetFrame = 4,16
SetX = 4,-28
SetY = 4,-19
SetZ = 4,39
SetVisible = 6,false
<Particle 14>
Graphic = Examples/fly copy
Focus = User
SetFrame = 4,16
SetX = 4,13
SetY = 4,-18
SetZ = 4,40
SetVisible = 6,false
<Particle 15>
Graphic = Examples/fly copy
Focus = User
SetFrame = 4,16
SetX = 4,51
SetY = 4,-20
SetZ = 4,41
SetVisible = 6,false
<Particle 16>
Graphic = Examples/fly copy
Focus = User
SetFrame = 5,16
SetX = 5,-29
SetY = 5,-34
SetZ = 5,42
SetVisible = 6,false
<Particle 17>
Graphic = Examples/fly copy
Focus = User
SetFrame = 5,16
SetX = 5,13
SetY = 5,-33
SetZ = 5,43
SetVisible = 6,false
<Particle 18>
Graphic = Examples/fly copy
Focus = User
SetFrame = 5,16
SetX = 5,50
SetY = 5,-35
SetZ = 5,44
SetVisible = 6,false
<Particle 19>
Graphic = Examples/fly copy
Focus = User
SetFrame = 5,16
SetX = 5,-10
SetY = 5,41
SetZ = 5,45
SetVisible = 6,false
<Particle 20>
Graphic = Examples/fly copy
Focus = User
SetFrame = 5,16
SetX = 5,31
SetY = 5,42
SetZ = 5,46
SetVisible = 6,false
<SE>
Play = 0,throw,80

View File

@@ -1,94 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Common,Frozen]
Name = Example anim
NoTarget = true
<User>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/016-Ice01
Focus = User
SetFrame = 0,6
SetX = 0,-56
SetY = 0,-82
SetZ = 0,28
SetX = 1,-24
SetY = 1,-66
SetFrame = 8,7
SetX = 8,0
SetY = 8,-58
SetX = 9,56
SetY = 9,6
SetX = 10,72
SetY = 10,38
SetFrame = 11,8
SetX = 11,48
SetY = 11,-82
SetX = 12,72
SetY = 12,-50
SetFrame = 13,6
SetX = 13,80
SetY = 13,-2
SetVisible = 14,false
<Particle 3>
Graphic = Examples/016-Ice01
Focus = User
SetFrame = 1,9
SetX = 1,0
SetY = 1,-2
SetZ = 1,29
SetVisible = 2,false
<Particle 4>
Graphic = Examples/016-Ice01
Focus = User
SetFrame = 6,11
SetX = 6,0
SetY = 6,-2
SetZ = 6,29
SetOpacity = 6,192
SetOpacity = 7,255
SetVisible = 8,false
<Particle 5>
Graphic = Examples/016-Ice01
Focus = User
SetFrame = 9,8
SetX = 9,48
SetY = 9,-82
SetZ = 9,29
SetFrame = 10,6
SetX = 10,24
SetY = 10,-42
SetX = 11,-40
SetY = 11,-18
SetX = 12,-56
SetY = 12,14
SetFrame = 13,7
SetX = 13,-32
SetY = 13,46
SetVisible = 14,false
<Particle 1>
Graphic = Examples/016-Ice01
Focus = User
SetFrame = 0,9
SetX = 0,0
SetY = 0,-2
SetZ = 0,27
SetFrame = 1,10
SetOpacity = 1,128
SetOpacity = 2,255
SetOpacity = 7,192
SetFrame = 8,11
SetOpacity = 8,255
SetFrame = 9,12
SetFrame = 10,10
SetOpacity = 10,100
SetFrame = 11,9
SetFrame = 12,11
SetFrame = 13,12
SetFrame = 14,6
SetX = 14,24
SetY = 14,38
SetOpacity = 14,255
<SE>
Play = 0,Ice5,80

View File

@@ -1,271 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Common,Hail]
Name = Example anim
NoUser = true
NoTarget = true
<Particle 0>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,7
SetX = 0,37
SetY = 0,26
SetZ = 0,27
SetFrame = 1,8
SetX = 1,207
SetY = 1,56
SetFrame = 2,7
SetX = 2,84
SetY = 2,43
SetFrame = 3,8
SetX = 3,171
SetY = 3,56
SetFrame = 4,9
SetX = 4,118
SetY = 4,97
SetX = 5,357
SetY = 5,200
SetFrame = 6,8
SetX = 6,10
SetY = 6,9
SetFrame = 7,7
SetX = 7,109
SetY = 7,105
SetX = 8,136
SetY = 8,77
SetX = 9,69
SetY = 9,208
SetX = 10,136
SetY = 10,107
SetVisible = 11,false
<Particle 1>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,7
SetX = 0,164
SetY = 0,136
SetZ = 0,28
SetX = 1,464
SetY = 1,117
SetVisible = 2,false
<Particle 2>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,8
SetX = 0,302
SetY = 0,79
SetZ = 0,29
SetFrame = 1,9
SetX = 1,201
SetY = 1,204
SetX = 2,228
SetY = 2,98
SetFrame = 3,8
SetX = 3,278
SetY = 3,164
SetVisible = 4,false
<Particle 3>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,9
SetX = 0,440
SetY = 0,194
SetZ = 0,30
SetX = 1,51
SetY = 1,161
SetFrame = 2,8
SetX = 2,263
SetY = 2,253
SetFrame = 3,7
SetX = 3,436
SetY = 3,52
SetFrame = 4,9
SetX = 4,390
SetY = 4,210
SetVisible = 5,false
<Particle 4>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,9
SetX = 0,362
SetY = 0,252
SetZ = 0,31
SetVisible = 1,false
<Particle 5>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 2,7
SetX = 2,78
SetY = 2,206
SetZ = 2,31
SetVisible = 3,false
<Particle 6>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 3,9
SetX = 3,441
SetY = 3,241
SetZ = 3,28
SetVisible = 4,false
<Particle 7>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 4,9
SetX = 4,259
SetY = 4,87
SetZ = 4,31
SetFrame = 5,8
SetX = 5,181
SetY = 5,217
SetFrame = 6,9
SetX = 6,298
SetY = 6,96
SetX = 7,191
SetY = 7,222
SetX = 8,365
SetY = 8,231
SetX = 9,337
SetY = 9,93
SetX = 10,82
SetY = 10,240
SetFrame = 11,7
SetX = 11,489
SetY = 11,96
SetFrame = 12,9
SetX = 12,198
SetY = 12,28
<Particle 8>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 4,8
SetX = 4,72
SetY = 4,220
SetZ = 4,32
SetVisible = 5,false
<Particle 9>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 5,9
SetX = 5,225
SetY = 5,69
SetZ = 5,28
SetVisible = 6,false
<Particle 10>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 6,8
SetX = 6,334
SetY = 6,226
SetZ = 6,29
SetVisible = 7,false
<Particle 11>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 6,9
SetX = 6,465
SetY = 6,116
SetZ = 6,30
SetFrame = 7,8
SetX = 7,454
SetY = 7,82
SetX = 8,276
SetY = 8,136
SetX = 9,465
SetY = 9,160
SetFrame = 10,9
SetX = 10,285
SetY = 10,105
SetFrame = 11,7
SetX = 11,419
SetY = 11,272
SetFrame = 12,8
SetX = 12,230
SetY = 12,142
<Particle 12>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 6,9
SetX = 6,161
SetY = 6,265
SetZ = 6,32
SetX = 7,296
SetY = 7,172
SetVisible = 8,false
<Particle 13>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 8,8
SetX = 8,180
SetY = 8,199
SetZ = 8,28
SetX = 9,163
SetY = 9,99
SetVisible = 10,false
<Particle 14>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 8,9
SetX = 8,444
SetY = 8,137
SetZ = 8,29
SetX = 9,303
SetY = 9,240
SetFrame = 10,8
SetX = 10,444
SetY = 10,89
SetVisible = 11,false
<Particle 15>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 9,9
SetX = 9,28
SetY = 9,57
SetZ = 9,33
SetFrame = 10,8
SetX = 10,294
SetY = 10,234
SetFrame = 11,9
SetX = 11,111
SetY = 11,246
SetX = 12,167
SetY = 12,237
<Particle 16>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 11,8
SetX = 11,176
SetY = 11,119
SetZ = 11,28
SetVisible = 12,false
<Particle 17>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 11,7
SetX = 11,281
SetY = 11,268
SetZ = 11,32
SetFrame = 12,9
SetX = 12,41
SetY = 12,229
<Particle 18>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 11,9
SetX = 11,299
SetY = 11,47
SetZ = 11,34
SetVisible = 12,false
<Particle 19>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 12,8
SetX = 12,474
SetY = 12,59
SetZ = 12,29
<Particle 20>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 12,9
SetX = 12,449
SetY = 12,237
SetZ = 12,35

View File

@@ -1,196 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Common,HealthDown]
Name = Example anim
NoTarget = true
<User>
SetX = 0,0
SetY = 0,0
<Particle 1>
Graphic = Examples/!
Focus = User
SetFrame = 0,5
SetX = 0,-50
SetY = 0,-53
SetZ = 0,27
SetOpacity = 0,126
SetToneRed = 0,255
SetToneGreen = 0,64
SetToneBlue = 0,-128
SetY = 1,-33
SetY = 2,-13
SetY = 3,7
SetY = 4,27
SetY = 5,47
SetOpacity = 5,79
SetY = 6,67
SetOpacity = 6,32
SetX = 7,14
SetY = 7,73
SetX = 8,-1
SetY = 8,63
SetX = 9,25
SetY = 9,92
SetVisible = 10,false
<Particle 2>
Graphic = Examples/!
Focus = User
SetFrame = 0,5
SetX = 0,35
SetY = 0,-52
SetZ = 0,30
SetOpacity = 0,126
SetToneRed = 0,255
SetToneGreen = 0,64
SetToneBlue = 0,-128
SetX = 1,14
SetY = 1,-47
SetY = 2,-27
SetY = 3,-7
SetY = 4,13
SetY = 5,33
SetY = 6,53
SetOpacity = 6,79
SetX = 7,-41
SetY = 7,62
SetVisible = 8,false
<Particle 3>
Graphic = Examples/!
Focus = User
SetFrame = 0,5
SetX = 0,22
SetY = 0,-29
SetZ = 0,33
SetOpacity = 0,126
SetToneRed = 0,255
SetToneGreen = 0,64
SetToneBlue = 0,-128
SetX = 1,-16
SetVisible = 2,false
<Particle 4>
Graphic = Examples/!
Focus = User
SetFrame = 1,5
SetX = 1,35
SetY = 1,-32
SetZ = 1,28
SetOpacity = 1,126
SetToneRed = 1,255
SetToneGreen = 1,64
SetToneBlue = 1,-128
SetY = 2,-12
SetY = 3,8
SetY = 4,28
SetY = 5,48
SetOpacity = 5,79
SetY = 6,68
SetOpacity = 6,32
SetX = 7,-16
SetY = 7,91
SetX = 8,-41
SetY = 8,82
SetVisible = 9,false
<Particle 5>
Graphic = Examples/!
Focus = User
SetFrame = 1,5
SetX = 1,22
SetY = 1,-9
SetZ = 1,29
SetOpacity = 1,126
SetToneRed = 1,255
SetToneGreen = 1,64
SetToneBlue = 1,-128
SetY = 2,11
SetY = 3,31
SetY = 4,51
SetY = 5,71
SetOpacity = 5,79
SetY = 6,91
SetOpacity = 6,32
SetX = 7,-1
SetY = 7,43
SetOpacity = 7,79
SetX = 8,25
SetY = 8,72
SetVisible = 9,false
<Particle 6>
Graphic = Examples/!
Focus = User
SetFrame = 2,5
SetX = 2,-16
SetY = 2,-9
SetZ = 2,31
SetOpacity = 2,126
SetToneRed = 2,255
SetToneGreen = 2,64
SetToneBlue = 2,-128
SetY = 3,11
SetY = 4,31
SetY = 5,51
SetY = 6,71
SetOpacity = 6,79
SetX = 7,25
SetY = 7,52
SetOpacity = 7,126
SetVisible = 8,false
<Particle 7>
Graphic = Examples/!
Focus = User
SetFrame = 2,5
SetX = 2,-1
SetY = 2,-57
SetZ = 2,32
SetOpacity = 2,126
SetToneRed = 2,255
SetToneGreen = 2,64
SetToneBlue = 2,-128
SetY = 3,-37
SetY = 4,-17
SetY = 5,3
SetY = 6,23
SetVisible = 7,false
<Particle 8>
Graphic = Examples/!
Focus = User
SetFrame = 2,5
SetX = 2,-41
SetY = 2,-38
SetZ = 2,35
SetOpacity = 2,126
SetToneRed = 2,255
SetToneGreen = 2,64
SetToneBlue = 2,-128
SetVisible = 3,false
<Particle 9>
Graphic = Examples/!
Focus = User
SetFrame = 3,5
SetX = 3,-41
SetY = 3,-18
SetZ = 3,33
SetOpacity = 3,126
SetToneRed = 3,255
SetToneGreen = 3,64
SetToneBlue = 3,-128
SetY = 4,2
SetY = 5,22
SetY = 6,42
SetVisible = 7,false
<Particle 10>
Graphic = Examples/!
Focus = User
SetFrame = 3,5
SetX = 3,25
SetY = 3,-28
SetZ = 3,34
SetOpacity = 3,126
SetToneRed = 3,255
SetToneGreen = 3,64
SetToneBlue = 3,-128
SetY = 4,-8
SetY = 5,12
SetY = 6,32
SetVisible = 7,false
<SE>
Play = 0,decrease,100,140

View File

@@ -1,55 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Common,HealthUp]
Name = Example anim
NoTarget = true
<User>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/leech-seed
Focus = User
SetFrame = 1,10
SetX = 1,48
SetY = 1,-42
SetZ = 1,28
SetFrame = 3,8
SetFrame = 5,7
SetFrame = 7,6
SetFrame = 9,5
SetFrame = 10,6
SetX = 10,-40
SetY = 10,-26
SetVisible = 11,false
<Particle 3>
Graphic = Examples/leech-seed
Focus = User
SetFrame = 4,10
SetX = 4,-40
SetY = 4,-26
SetZ = 4,29
SetFrame = 6,8
SetFrame = 8,7
SetVisible = 10,false
<Particle 1>
Graphic = Examples/leech-seed
Focus = User
SetFrame = 0,10
SetX = 0,8
SetY = 0,-2
SetZ = 0,27
SetFrame = 2,8
SetFrame = 4,7
SetFrame = 6,6
SetFrame = 8,5
SetX = 10,48
SetY = 10,-42
SetFrame = 11,6
SetX = 11,-40
SetY = 11,-26
SetFrame = 12,5
SetVisible = 14,false
<SE>
Play = 0,Recovery,75
Play = 2,Recovery,80
Play = 5,Recovery,80

View File

@@ -1,179 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Common,LeechSeed]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetFrame = 0,11
SetX = 0,200
SetY = 0,-196
SetZ = 0,27
SetY = 1,-178
SetFrame = 2,12
SetX = 2,114
SetY = 2,-196
SetX = 3,59
SetY = 3,-157
SetX = 4,14
SetY = 4,-89
SetX = 5,4
SetY = 5,0
SetVisible = 6,false
<Particle 3>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetFrame = 1,11
SetX = 1,164
SetY = 1,-196
SetZ = 1,28
SetFrame = 2,12
SetX = 2,169
SetY = 2,-109
SetX = 3,129
SetY = 3,-50
SetX = 4,84
SetY = 4,-10
SetX = 5,39
SetY = 5,9
SetVisible = 6,false
<Particle 4>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetFrame = 2,11
SetX = 2,200
SetY = 2,-196
SetZ = 2,29
SetFrame = 3,12
SetX = 3,144
SetY = 3,-157
SetX = 4,100
SetY = 4,-118
SetX = 5,50
SetY = 5,-70
SetX = 6,-5
SetY = 6,0
SetX = 7,4
SetVisible = 8,false
<Particle 5>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetFrame = 3,11
SetX = 3,189
SetY = 3,-196
SetZ = 3,30
SetFrame = 4,12
SetX = 4,169
SetY = 4,-118
SetX = 5,129
SetY = 5,-50
SetX = 6,89
SetY = 6,-20
SetX = 7,44
SetY = 7,0
SetX = 8,4
SetVisible = 9,false
<Particle 6>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetFrame = 4,12
SetX = 4,144
SetY = 4,-187
SetZ = 4,31
SetX = 5,94
SetY = 5,-168
SetX = 6,39
SetY = 6,-118
SetVisible = 7,false
<Particle 7>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetFrame = 7,12
SetX = 7,0
SetY = 7,-59
SetZ = 7,27
SetVisible = 8,false
<Particle 8>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetFrame = 9,10
SetX = 9,4
SetY = 9,0
SetZ = 9,27
SetFrame = 10,8
SetFrame = 11,7
SetFrame = 12,6
SetFrame = 13,5
SetFrame = 14,10
SetX = 16,-15
SetY = 16,-50
SetX = 17,14
SetY = 17,-79
SetX = 18,-25
SetY = 18,9
SetX = 19,25
SetY = 19,-20
<Particle 9>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetFrame = 10,10
SetX = 10,-15
SetY = 10,-50
SetZ = 10,28
SetFrame = 11,8
SetFrame = 12,7
SetFrame = 13,6
SetFrame = 14,5
SetFrame = 15,10
SetX = 16,14
SetY = 16,-79
SetX = 17,-25
SetY = 17,9
SetX = 18,25
SetY = 18,-20
SetVisible = 19,false
<Particle 10>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetFrame = 11,10
SetX = 11,14
SetY = 11,-79
SetZ = 11,29
SetFrame = 12,8
SetFrame = 13,7
SetFrame = 14,6
SetFrame = 15,5
SetX = 16,-25
SetY = 16,9
SetX = 17,25
SetY = 17,-20
SetVisible = 18,false
<Particle 11>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetFrame = 12,10
SetX = 12,-25
SetY = 12,9
SetZ = 12,30
SetFrame = 13,8
SetFrame = 14,7
SetFrame = 15,6
SetX = 16,25
SetY = 16,-20
SetVisible = 17,false
<Particle 12>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetFrame = 13,10
SetX = 13,25
SetY = 13,-20
SetZ = 13,31
SetFrame = 14,8
SetFrame = 15,7
SetVisible = 16,false

View File

@@ -1,66 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Common,Paralysis]
Name = Example anim
NoTarget = true
<User>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/Struggle
Focus = User
SetFrame = 1,1
SetX = 1,40
SetY = 1,6
SetZ = 1,28
SetX = 2,72
SetY = 2,-10
SetX = 3,56
SetFrame = 4,0
SetX = 4,-48
SetFrame = 5,1
SetX = 5,24
SetY = 5,14
SetFrame = 6,0
SetX = 6,-104
SetY = 6,6
SetFrame = 7,1
SetX = 7,40
SetX = 8,72
SetY = 8,-10
SetX = 9,56
SetFrame = 10,0
SetX = 10,-48
SetFrame = 11,1
SetX = 11,24
SetY = 11,14
<Particle 1>
Graphic = Examples/Struggle
Focus = User
SetX = 1,-48
SetY = 1,-2
SetZ = 1,27
SetX = 2,-80
SetY = 2,-18
SetX = 3,-56
SetY = 3,-2
SetFrame = 4,1
SetX = 4,64
SetFrame = 5,0
SetX = 5,-72
SetFrame = 6,1
SetX = 6,72
SetY = 6,-10
SetFrame = 7,0
SetX = 7,-48
SetY = 7,-2
SetX = 8,-80
SetY = 8,-18
SetX = 9,-56
SetY = 9,-2
SetFrame = 10,1
SetX = 10,64
SetFrame = 11,0
SetX = 11,-72
<SE>
Play = 0,Paralyze3,80

View File

@@ -1,22 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Common,ParentalBond]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/Tackle_B
Focus = Target
SetX = 2,0
SetY = 2,3
SetZ = 2,27
SetOpacity = 2,150
SetOpacity = 3,255
SetOpacity = 8,150
SetOpacity = 9,100
<SE>
Play = 0,Blow1,80

View File

@@ -1,31 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Common,Poison]
Name = Example anim
NoTarget = true
<User>
SetX = 0,0
SetY = 0,0
<Particle 1>
Graphic = Examples/State1
Focus = User
SetX = 1,0
SetY = 1,-10
SetZ = 1,27
SetZoomX = 1,200
SetZoomY = 1,200
SetFrame = 2,1
SetFrame = 3,2
SetFrame = 4,3
SetFrame = 5,4
SetFrame = 6,5
SetFrame = 7,6
SetFrame = 8,7
SetFrame = 9,8
SetFrame = 10,9
SetFrame = 11,10
SetFrame = 12,11
SetFrame = 13,12
SetFrame = 14,13
<SE>
Play = 0,Poison,80

View File

@@ -1,295 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Common,Rain]
Name = Example anim
NoUser = true
NoTarget = true
<Particle 0>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,2
SetX = 0,197
SetY = 0,25
SetZ = 0,27
SetX = 1,72
SetY = 1,49
SetX = 2,60
SetY = 2,42
SetX = 3,43
SetY = 3,62
SetY = 4,66
SetX = 5,480
SetY = 5,78
SetX = 6,201
SetY = 6,65
SetX = 7,80
SetY = 7,62
SetX = 8,265
SetY = 8,218
SetX = 9,99
SetY = 9,55
<Particle 1>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,2
SetX = 0,275
SetY = 0,47
SetZ = 0,28
SetX = 1,229
SetY = 1,216
SetX = 2,193
SetY = 2,131
SetX = 3,205
SetY = 3,111
SetX = 4,122
SetY = 4,73
SetX = 5,361
SetY = 5,34
SetX = 6,278
SetY = 6,211
SetX = 7,239
SetY = 7,122
SetX = 8,398
SetY = 8,251
SetX = 9,253
SetY = 9,148
<Particle 2>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,2
SetX = 0,355
SetY = 0,51
SetZ = 0,29
SetX = 1,109
SetY = 1,217
SetX = 2,265
SetY = 2,233
SetX = 3,289
SetY = 3,227
SetX = 4,148
SetY = 4,143
SetX = 5,404
SetY = 5,152
SetX = 6,397
SetY = 6,257
SetX = 7,172
SetY = 7,23
SetX = 8,270
SetY = 8,110
SetX = 9,254
SetY = 9,274
<Particle 3>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,2
SetX = 0,450
SetY = 0,50
SetZ = 0,30
SetX = 1,223
SetY = 1,110
SetX = 2,228
SetY = 2,82
SetX = 3,279
SetY = 3,63
SetX = 4,203
SetY = 4,141
SetX = 5,274
SetY = 5,69
SetX = 6,478
SetY = 6,170
SetX = 7,25
SetY = 7,169
SetX = 8,491
SetY = 8,59
SetX = 9,418
SetY = 9,243
<Particle 4>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,2
SetX = 0,83
SetY = 0,81
SetZ = 0,31
SetX = 1,399
SetY = 1,120
SetX = 2,350
SetY = 2,43
SetX = 3,31
SetY = 3,176
SetX = 4,101
SetY = 4,242
SetX = 5,54
SetY = 5,71
SetX = 6,480
SetY = 6,53
SetX = 7,263
SetY = 7,251
SetX = 8,492
SetY = 8,204
SetX = 9,181
SetY = 9,238
<Particle 5>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,2
SetX = 0,231
SetY = 0,170
SetZ = 0,32
SetX = 1,480
SetY = 1,83
SetX = 2,399
SetY = 2,154
SetX = 3,475
SetY = 3,231
SetX = 4,185
SetY = 4,249
SetX = 5,155
SetY = 5,126
SetX = 6,28
SetY = 6,111
SetX = 7,146
SetY = 7,249
SetX = 8,91
SetY = 8,63
SetX = 9,108
SetY = 9,245
<Particle 6>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,2
SetX = 0,352
SetY = 0,212
SetZ = 0,33
SetX = 1,362
SetY = 1,63
SetX = 2,488
SetY = 2,60
SetX = 3,482
SetY = 3,85
SetX = 4,290
SetY = 4,114
SetX = 5,210
SetY = 5,242
SetX = 6,119
SetY = 6,59
SetX = 7,29
SetY = 7,266
SetX = 8,35
SetY = 8,173
SetX = 9,25
SetY = 9,205
<Particle 7>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,2
SetX = 0,467
SetY = 0,254
SetZ = 0,34
SetX = 1,376
SetY = 1,192
SetX = 2,434
SetY = 2,253
SetX = 3,381
SetY = 3,12
SetX = 4,440
SetY = 4,119
SetX = 5,55
SetY = 5,232
SetX = 6,77
SetY = 6,215
SetX = 7,367
SetY = 7,134
SetX = 8,187
SetY = 8,144
SetX = 9,148
SetY = 9,25
<Particle 8>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 1,2
SetX = 1,482
SetY = 1,244
SetZ = 1,35
SetX = 2,121
SetY = 2,249
SetX = 3,382
SetY = 3,209
SetX = 4,378
SetY = 4,150
SetX = 5,422
SetY = 5,252
SetVisible = 6,false
<Particle 9>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 2,2
SetX = 2,27
SetY = 2,241
SetZ = 2,36
SetX = 3,88
SetY = 3,177
SetX = 4,337
SetY = 4,243
SetX = 5,319
SetY = 5,241
SetVisible = 6,false
<Particle 10>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 4,2
SetX = 4,409
SetY = 4,203
SetZ = 4,37
SetVisible = 5,false
<Particle 11>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 7,2
SetX = 7,471
SetY = 7,126
SetZ = 7,35
SetVisible = 8,false
<Particle 12>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 7,2
SetX = 7,363
SetY = 7,237
SetZ = 7,36
SetVisible = 8,false
<Particle 13>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 7,2
SetX = 7,443
SetY = 7,194
SetZ = 7,37
SetVisible = 8,false
<Particle 14>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 9,2
SetX = 9,247
SetY = 9,72
SetZ = 9,35
<Particle 15>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 9,2
SetX = 9,365
SetY = 9,42
SetZ = 9,36
<Particle 16>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 9,2
SetX = 9,479
SetY = 9,180
SetZ = 9,37
<Particle 17>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 9,2
SetX = 9,474
SetY = 9,41
SetZ = 9,38

View File

@@ -1,409 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Common,Sandstorm]
Name = Example anim
NoUser = true
NoTarget = true
<Particle 0>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,3
SetX = 0,-350
SetY = 0,-30
SetZ = 0,27
SetX = 1,153
SetY = 1,62
SetX = 2,-350
SetY = 2,-30
SetX = 3,153
SetY = 3,62
SetX = 4,139
SetY = 4,48
SetX = 5,-350
SetY = 5,-30
SetX = 6,153
SetY = 6,62
SetX = 7,-350
SetY = 7,-30
SetX = 8,153
SetY = 8,62
SetX = 9,32
SetY = 9,252
<Particle 1>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,3
SetX = 0,31
SetY = 0,69
SetZ = 0,28
SetX = 1,56
SetY = 1,85
SetX = 2,31
SetY = 2,69
SetX = 3,56
SetY = 3,85
SetX = 4,42
SetY = 4,82
SetX = 5,31
SetY = 5,69
SetX = 6,56
SetY = 6,85
SetX = 7,31
SetY = 7,69
SetX = 8,56
SetY = 8,85
SetX = 9,119
SetY = 9,175
<Particle 2>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,3
SetX = 0,156
SetY = 0,106
SetZ = 0,29
SetX = 1,74
SetY = 1,223
SetX = 2,156
SetY = 2,106
SetX = 3,74
SetY = 3,223
SetX = 4,157
SetY = 4,167
SetX = 5,156
SetY = 5,106
SetX = 6,74
SetY = 6,223
SetX = 7,156
SetY = 7,106
SetX = 8,74
SetY = 8,223
SetX = 9,143
SetY = 9,267
<Particle 3>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,3
SetX = 0,165
SetY = 0,220
SetZ = 0,30
SetX = 1,220
SetY = 1,207
SetX = 2,165
SetY = 2,220
SetX = 3,220
SetY = 3,207
SetX = 4,58
SetY = 4,225
SetX = 5,165
SetY = 5,220
SetX = 6,220
SetY = 6,207
SetX = 7,165
SetY = 7,220
SetX = 8,220
SetY = 8,207
SetX = 9,222
SetY = 9,197
<Particle 4>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,3
SetX = 0,267
SetY = 0,178
SetZ = 0,31
SetX = 1,352
SetY = 1,253
SetX = 2,267
SetY = 2,178
SetX = 3,352
SetY = 3,253
SetX = 4,178
SetY = 4,273
SetX = 5,267
SetY = 5,178
SetX = 6,352
SetY = 6,253
SetX = 7,267
SetY = 7,178
SetX = 8,352
SetY = 8,253
SetX = 9,162
SetY = 9,82
<Particle 5>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,3
SetX = 0,309
SetY = 0,248
SetZ = 0,32
SetX = 1,464
SetY = 1,227
SetX = 2,309
SetY = 2,248
SetX = 3,464
SetY = 3,227
SetX = 4,284
SetY = 4,217
SetX = 5,309
SetY = 5,248
SetX = 6,464
SetY = 6,227
SetX = 7,309
SetY = 7,248
SetX = 8,464
SetY = 8,227
SetX = 9,49
SetY = 9,61
<Particle 6>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,3
SetX = 0,388
SetY = 0,142
SetZ = 0,33
SetX = 1,484
SetY = 1,76
SetX = 2,388
SetY = 2,142
SetX = 3,484
SetY = 3,76
SetX = 4,377
SetY = 4,143
SetX = 5,388
SetY = 5,142
SetX = 6,484
SetY = 6,76
SetX = 7,388
SetY = 7,142
SetX = 8,484
SetY = 8,76
SetX = 9,21
SetY = 9,158
<Particle 7>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,3
SetX = 0,448
SetY = 0,243
SetZ = 0,34
SetX = 1,378
SetY = 1,130
SetX = 2,448
SetY = 2,243
SetX = 3,378
SetY = 3,130
SetX = 4,403
SetY = 4,259
SetX = 5,448
SetY = 5,243
SetX = 6,378
SetY = 6,130
SetX = 7,448
SetY = 7,243
SetX = 8,378
SetY = 8,130
SetX = 9,350
SetY = 9,240
<Particle 8>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,3
SetX = 0,35
SetY = 0,216
SetZ = 0,35
SetX = 1,285
SetY = 1,142
SetX = 2,35
SetY = 2,216
SetX = 3,285
SetY = 3,142
SetX = 4,500
SetY = 4,230
SetX = 5,35
SetY = 5,216
SetX = 6,285
SetY = 6,142
SetX = 7,35
SetY = 7,216
SetX = 8,285
SetY = 8,142
SetX = 9,481
SetY = 9,206
<Particle 9>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,3
SetX = 0,276
SetY = 0,34
SetZ = 0,36
SetX = 1,316
SetY = 1,22
SetX = 2,276
SetY = 2,34
SetX = 3,316
SetY = 3,22
SetX = 4,481
SetY = 4,77
SetX = 5,276
SetY = 5,34
SetX = 6,316
SetY = 6,22
SetX = 7,276
SetY = 7,34
SetX = 8,316
SetY = 8,22
SetX = 9,456
SetY = 9,64
<Particle 10>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,3
SetX = 0,487
SetY = 0,32
SetZ = 0,37
SetVisible = 1,false
<Particle 11>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,3
SetX = 0,492
SetY = 0,135
SetZ = 0,38
SetVisible = 1,false
<Particle 12>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,3
SetX = 0,387
SetY = 0,18
SetZ = 0,39
SetVisible = 1,false
<Particle 13>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 0,3
SetX = 0,148
SetY = 0,9
SetZ = 0,40
SetVisible = 1,false
<Particle 14>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 2,3
SetX = 2,487
SetY = 2,32
SetZ = 2,37
SetVisible = 3,false
<Particle 15>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 2,3
SetX = 2,492
SetY = 2,135
SetZ = 2,38
SetVisible = 3,false
<Particle 16>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 2,3
SetX = 2,387
SetY = 2,18
SetZ = 2,39
SetVisible = 3,false
<Particle 17>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 2,3
SetX = 2,148
SetY = 2,9
SetZ = 2,40
SetVisible = 3,false
<Particle 18>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 4,3
SetX = 4,358
SetY = 4,16
SetZ = 4,37
SetX = 5,487
SetY = 5,32
SetVisible = 6,false
<Particle 19>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 4,3
SetX = 4,267
SetY = 4,63
SetZ = 4,38
SetX = 5,492
SetY = 5,135
SetVisible = 6,false
<Particle 20>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 5,3
SetX = 5,387
SetY = 5,18
SetZ = 5,39
SetVisible = 6,false
<Particle 21>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 5,3
SetX = 5,148
SetY = 5,9
SetZ = 5,40
SetVisible = 6,false
<Particle 22>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 7,3
SetX = 7,487
SetY = 7,32
SetZ = 7,37
SetVisible = 8,false
<Particle 23>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 7,3
SetX = 7,492
SetY = 7,135
SetZ = 7,38
SetVisible = 8,false
<Particle 24>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 7,3
SetX = 7,387
SetY = 7,18
SetZ = 7,39
SetVisible = 8,false
<Particle 25>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 7,3
SetX = 7,148
SetY = 7,9
SetZ = 7,40
SetVisible = 8,false
<Particle 26>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 9,3
SetX = 9,311
SetY = 9,55
SetZ = 9,37
<Particle 27>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 9,3
SetX = 9,328
SetY = 9,146
SetZ = 9,38
<Particle 28>
Graphic = Examples/weather
Focus = Foreground
SetFrame = 9,3
SetX = 9,251
SetY = 9,305
SetZ = 9,39

View File

@@ -1,83 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Common,Shadow]
Name = Example anim
NoTarget = true
<User>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/leech-seed
Focus = User
SetFrame = 2,5
SetX = 2,56
SetY = 2,30
SetZ = 2,28
SetFrame = 3,6
SetX = 4,-88
SetY = 4,-10
SetFrame = 5,7
SetX = 6,-24
SetY = 6,14
SetX = 7,32
SetY = 7,-42
SetX = 8,-16
SetY = 8,-74
SetX = 9,32
SetY = 9,22
SetVisible = 10,false
<Particle 3>
Graphic = Examples/leech-seed
Focus = User
SetFrame = 3,5
SetX = 3,-88
SetY = 3,-10
SetZ = 3,29
SetX = 4,-24
SetY = 4,14
SetFrame = 5,6
SetX = 6,32
SetY = 6,-42
SetX = 7,-16
SetY = 7,-74
SetX = 8,32
SetY = 8,22
SetVisible = 9,false
<Particle 4>
Graphic = Examples/leech-seed
Focus = User
SetFrame = 5,5
SetX = 5,32
SetY = 5,-42
SetZ = 5,30
SetX = 6,-16
SetY = 6,-74
SetX = 7,32
SetY = 7,22
SetVisible = 8,false
<Particle 1>
Graphic = Examples/leech-seed
Focus = User
SetFrame = 0,5
SetX = 0,-24
SetY = 0,14
SetZ = 0,27
SetFrame = 1,6
SetFrame = 2,7
SetFrame = 3,8
SetFrame = 4,7
SetX = 4,56
SetY = 4,30
SetFrame = 5,8
SetX = 6,-88
SetY = 6,-10
SetX = 7,-40
SetY = 7,46
SetX = 8,32
SetY = 8,-42
SetX = 9,-16
SetY = 9,-74
SetX = 10,32
SetY = 10,22
<SE>
Play = 0,Saint6,75

View File

@@ -1,16 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Common,ShadowSky]
Name = Example anim
NoUser = true
NoTarget = true
<Particle 0>
Graphic = Examples/shadow sky
Focus = Foreground
SetOpacity = 0,0
MoveOpacity = 0,5,255
SetOpacity = 5,255
SetOpacity = 15,255
MoveOpacity = 15,5,0
SetOpacity = 20,0
<SE>

View File

@@ -1,83 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Common,Shiny]
Name = Example anim
NoTarget = true
<User>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/leech-seed
Focus = User
SetFrame = 2,5
SetX = 2,56
SetY = 2,30
SetZ = 2,28
SetFrame = 3,6
SetX = 4,-57
SetY = 4,-18
SetFrame = 5,7
SetX = 6,-18
SetY = 6,33
SetX = 7,32
SetY = 7,-42
SetX = 8,-16
SetY = 8,-29
SetX = 9,32
SetY = 9,22
SetVisible = 10,false
<Particle 3>
Graphic = Examples/leech-seed
Focus = User
SetFrame = 3,5
SetX = 3,-57
SetY = 3,-18
SetZ = 3,29
SetX = 4,-18
SetY = 4,33
SetFrame = 5,6
SetX = 6,32
SetY = 6,-42
SetX = 7,-16
SetY = 7,-29
SetX = 8,32
SetY = 8,22
SetVisible = 9,false
<Particle 4>
Graphic = Examples/leech-seed
Focus = User
SetFrame = 5,5
SetX = 5,32
SetY = 5,-42
SetZ = 5,30
SetX = 6,-16
SetY = 6,-29
SetX = 7,32
SetY = 7,22
SetVisible = 8,false
<Particle 1>
Graphic = Examples/leech-seed
Focus = User
SetFrame = 0,5
SetX = 0,-24
SetY = 0,14
SetZ = 0,27
SetFrame = 1,6
SetFrame = 2,7
SetFrame = 3,8
SetFrame = 4,7
SetX = 4,56
SetY = 4,30
SetFrame = 5,8
SetX = 6,-57
SetY = 6,-18
SetX = 7,-18
SetY = 7,33
SetX = 8,32
SetY = 8,-42
SetX = 9,-16
SetY = 9,-29
SetX = 10,32
SetY = 10,22
<SE>
Play = 0,Shiny sparkle

View File

@@ -1,77 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Common,Sleep]
Name = Example anim
NoTarget = true
<User>
SetX = 0,0
SetY = 0,0
<Particle 3>
Graphic = Examples/028-State01
Focus = User
SetFrame = 1,8
SetX = 1,24
SetY = 1,-18
SetZ = 1,27
SetZoomX = 1,50
SetZoomY = 1,50
MoveX = 1,4,52
MoveY = 1,4,-67
SetX = 5,52
SetY = 5,-67
SetVisible = 5,false
SetX = 6,-41
SetY = 6,-17
SetVisible = 6,true
MoveX = 6,4,-75
MoveY = 6,4,-71
SetX = 10,-75
SetY = 10,-71
SetVisible = 11,false
<Particle 4>
Graphic = Examples/028-State01
Focus = User
SetFrame = 5,8
SetX = 5,-14
SetY = 5,-32
SetZ = 5,29
SetZoomX = 5,50
SetZoomY = 5,50
SetVisible = 6,false
<Particle 5>
Graphic = Examples/028-State01
Focus = User
SetFrame = 7,8
SetX = 7,40
SetY = 7,-10
SetZ = 7,29
SetZoomX = 7,50
SetZoomY = 7,50
SetVisible = 8,false
<Particle 2>
Graphic = Examples/028-State01
Focus = User
SetFrame = 3,8
SetX = 3,40
SetY = 3,-42
SetZ = 3,28
SetZoomX = 3,50
SetZoomY = 3,50
SetX = 4,-8
SetY = 4,-18
SetX = 5,-32
SetY = 5,-2
SetX = 6,-18
SetY = 6,-48
SetX = 7,-23
SetY = 7,-62
SetX = 8,48
SetY = 8,-26
SetX = 9,57
SetY = 9,-42
SetX = 10,68
SetY = 10,-58
SetX = 11,79
SetY = 11,-76
<SE>
Play = 0,Sleep,80

View File

@@ -1,166 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Common,StatDown]
Name = Example anim
NoTarget = true
<User>
SetX = 0,0
SetY = 0,0
<Particle 1>
Graphic = Examples/!
Focus = User
SetFrame = 0,5
SetX = 0,-50
SetY = 0,-53
SetZ = 0,27
SetOpacity = 0,126
SetY = 1,-33
SetY = 2,-13
SetY = 3,7
SetY = 4,27
SetY = 5,47
SetOpacity = 5,79
SetY = 6,67
SetOpacity = 6,32
SetX = 7,14
SetY = 7,73
SetX = 8,-1
SetY = 8,63
SetX = 9,25
SetY = 9,92
SetVisible = 10,false
<Particle 2>
Graphic = Examples/!
Focus = User
SetFrame = 0,5
SetX = 0,35
SetY = 0,-52
SetZ = 0,30
SetOpacity = 0,126
SetX = 1,14
SetY = 1,-47
SetY = 2,-27
SetY = 3,-7
SetY = 4,13
SetY = 5,33
SetY = 6,53
SetOpacity = 6,79
SetX = 7,-41
SetY = 7,62
SetVisible = 8,false
<Particle 3>
Graphic = Examples/!
Focus = User
SetFrame = 0,5
SetX = 0,22
SetY = 0,-29
SetZ = 0,33
SetOpacity = 0,126
SetX = 1,-16
SetVisible = 2,false
<Particle 4>
Graphic = Examples/!
Focus = User
SetFrame = 1,5
SetX = 1,35
SetY = 1,-32
SetZ = 1,28
SetOpacity = 1,126
SetY = 2,-12
SetY = 3,8
SetY = 4,28
SetY = 5,48
SetOpacity = 5,79
SetY = 6,68
SetOpacity = 6,32
SetX = 7,-16
SetY = 7,91
SetX = 8,-41
SetY = 8,82
SetVisible = 9,false
<Particle 5>
Graphic = Examples/!
Focus = User
SetFrame = 1,5
SetX = 1,22
SetY = 1,-9
SetZ = 1,29
SetOpacity = 1,126
SetY = 2,11
SetY = 3,31
SetY = 4,51
SetY = 5,71
SetOpacity = 5,79
SetY = 6,91
SetOpacity = 6,32
SetX = 7,-1
SetY = 7,43
SetOpacity = 7,79
SetX = 8,25
SetY = 8,72
SetVisible = 9,false
<Particle 6>
Graphic = Examples/!
Focus = User
SetFrame = 2,5
SetX = 2,-16
SetY = 2,-9
SetZ = 2,31
SetOpacity = 2,126
SetY = 3,11
SetY = 4,31
SetY = 5,51
SetY = 6,71
SetOpacity = 6,79
SetX = 7,25
SetY = 7,52
SetOpacity = 7,126
SetVisible = 8,false
<Particle 7>
Graphic = Examples/!
Focus = User
SetFrame = 2,5
SetX = 2,-1
SetY = 2,-57
SetZ = 2,32
SetOpacity = 2,126
SetY = 3,-37
SetY = 4,-17
SetY = 5,3
SetY = 6,23
SetVisible = 7,false
<Particle 8>
Graphic = Examples/!
Focus = User
SetFrame = 2,5
SetX = 2,-41
SetY = 2,-38
SetZ = 2,35
SetOpacity = 2,126
SetVisible = 3,false
<Particle 9>
Graphic = Examples/!
Focus = User
SetFrame = 3,5
SetX = 3,-41
SetY = 3,-18
SetZ = 3,33
SetOpacity = 3,126
SetY = 4,2
SetY = 5,22
SetY = 6,42
SetVisible = 7,false
<Particle 10>
Graphic = Examples/!
Focus = User
SetFrame = 3,5
SetX = 3,25
SetY = 3,-28
SetZ = 3,34
SetOpacity = 3,126
SetY = 4,-8
SetY = 5,12
SetY = 6,32
SetVisible = 7,false
<SE>
Play = 0,decrease

View File

@@ -1,115 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Common,StatUp]
Name = Example anim
NoTarget = true
<User>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/!
Focus = User
SetFrame = 0,6
SetX = 0,7
SetY = 0,106
SetZ = 0,28
SetOpacity = 0,126
SetY = 1,74
SetY = 2,42
SetY = 3,2
SetY = 4,-30
SetY = 5,-62
SetY = 6,-82
SetY = 7,-102
SetY = 8,-122
SetOpacity = 8,63
SetY = 9,-142
SetOpacity = 9,0
<Particle 3>
Graphic = Examples/!
Focus = User
SetFrame = 0,6
SetX = 0,55
SetY = 0,138
SetZ = 0,29
SetOpacity = 0,126
SetY = 1,114
SetX = 2,63
SetY = 2,82
SetX = 3,55
SetY = 3,50
SetY = 4,18
SetY = 5,-14
SetY = 6,-34
SetY = 7,-54
SetY = 8,-74
SetOpacity = 8,63
SetY = 9,-94
SetOpacity = 9,0
<Particle 4>
Graphic = Examples/!
Focus = User
SetFrame = 2,6
SetX = 2,-9
SetY = 2,138
SetZ = 2,30
SetOpacity = 2,126
SetY = 3,106
SetY = 4,74
SetY = 5,42
SetY = 6,22
SetY = 7,2
SetY = 8,-18
SetOpacity = 8,63
SetY = 9,-38
SetOpacity = 9,0
<Particle 5>
Graphic = Examples/!
Focus = User
SetFrame = 3,6
SetX = 3,39
SetY = 3,138
SetZ = 3,31
SetOpacity = 3,126
SetY = 4,106
SetY = 5,74
SetY = 6,54
SetY = 7,34
SetY = 8,14
SetOpacity = 8,63
SetY = 9,-6
SetOpacity = 9,0
<Particle 6>
Graphic = Examples/!
Focus = User
SetFrame = 5,6
SetX = 5,-25
SetY = 5,138
SetZ = 5,32
SetOpacity = 5,126
SetY = 6,98
SetY = 8,78
SetOpacity = 8,63
SetY = 9,58
SetOpacity = 9,0
<Particle 1>
Graphic = Examples/!
Focus = User
SetFrame = 0,6
SetX = 0,-41
SetY = 0,138
SetZ = 0,27
SetOpacity = 0,126
SetY = 1,114
SetY = 2,82
SetY = 3,50
SetY = 4,18
SetY = 5,-14
SetY = 6,-34
SetY = 7,-54
SetY = 8,-74
SetOpacity = 8,63
SetY = 9,-94
SetOpacity = 9,0
<SE>
Play = 0,increase

View File

@@ -1,28 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Common,Sun]
Name = Example anim
NoUser = true
NoTarget = true
<Particle 0>
Graphic = Examples/weather
Focus = Foreground
SetX = 0,64
SetY = 0,64
SetOpacity = 0,0
MoveX = 0,4,94
MoveY = 0,4,94
MoveOpacity = 0,5,255
SetX = 4,94
SetY = 4,94
SetOpacity = 5,255
SetOpacity = 10,255
MoveOpacity = 10,5,0
SetX = 11,94
SetY = 11,94
MoveX = 11,4,64
MoveY = 11,4,64
SetX = 15,64
SetY = 15,64
SetOpacity = 15,0
<SE>

View File

@@ -1,83 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Common,SuperShiny]
Name = Example anim
NoTarget = true
<User>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/leech-seed
Focus = User
SetFrame = 2,5
SetX = 2,56
SetY = 2,30
SetZ = 2,28
SetFrame = 3,6
SetX = 4,-57
SetY = 4,-18
SetFrame = 5,7
SetX = 6,-18
SetY = 6,33
SetX = 7,32
SetY = 7,-42
SetX = 8,-16
SetY = 8,-29
SetX = 9,32
SetY = 9,22
SetVisible = 10,false
<Particle 3>
Graphic = Examples/leech-seed
Focus = User
SetFrame = 3,5
SetX = 3,-57
SetY = 3,-18
SetZ = 3,29
SetX = 4,-18
SetY = 4,33
SetFrame = 5,6
SetX = 6,32
SetY = 6,-42
SetX = 7,-16
SetY = 7,-29
SetX = 8,32
SetY = 8,22
SetVisible = 9,false
<Particle 4>
Graphic = Examples/leech-seed
Focus = User
SetFrame = 5,5
SetX = 5,32
SetY = 5,-42
SetZ = 5,30
SetX = 6,-16
SetY = 6,-29
SetX = 7,32
SetY = 7,22
SetVisible = 8,false
<Particle 1>
Graphic = Examples/leech-seed
Focus = User
SetFrame = 0,5
SetX = 0,-24
SetY = 0,14
SetZ = 0,27
SetFrame = 1,6
SetFrame = 2,7
SetFrame = 3,8
SetFrame = 4,7
SetX = 4,56
SetY = 4,30
SetFrame = 5,8
SetX = 6,-57
SetY = 6,-18
SetX = 7,-18
SetY = 7,33
SetX = 8,32
SetY = 8,-42
SetX = 9,-16
SetY = 9,-29
SetX = 10,32
SetY = 10,22
<SE>
Play = 0,Shiny sparkle

View File

@@ -1,18 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Common,Toxic]
Name = Example anim
NoTarget = true
<User>
SetX = 0,0
SetY = 0,0
<Particle 1>
Graphic = Examples/State1
Focus = User
SetFrame = 1,0
SetZoomX = 1,200
SetZoomY = 1,200
MoveFrame = 1,14,14
SetFrame = 15,14
<SE>
Play = 0,Poison,80,80

View File

@@ -1,46 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Common,Wrap]
Name = Example anim
NoTarget = true
<User>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/Struggle
Focus = User
SetFrame = 0,1
SetX = 0,56
SetY = 0,6
SetZ = 0,28
SetX = 1,96
SetY = 1,-2
SetX = 2,104
SetY = 2,6
SetX = 3,80
SetY = 3,-2
SetX = 4,48
SetX = 5,80
SetX = 6,112
SetY = 6,6
SetX = 7,96
<Particle 1>
Graphic = Examples/Struggle
Focus = User
SetX = 0,-64
SetY = 0,6
SetZ = 0,27
SetX = 1,-96
SetY = 1,-2
SetX = 2,-144
SetY = 2,6
SetX = 3,-120
SetY = 3,-2
SetX = 4,-88
SetX = 5,-128
SetX = 6,-168
SetX = 7,-120
<SE>
Play = 0,Slash10,80
Play = 3,Slash10,80
Play = 6,Slash10,80

View File

@@ -1,243 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,ABSORB]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetFrame = 0,11
SetX = 0,179
SetY = 0,-207
SetZ = 0,27
SetX = 1,134
SetY = 1,-196
SetX = 2,54
SetY = 2,-148
SetX = 3,4
SetY = 3,-70
SetX = 4,-15
SetY = 4,-50
SetX = 5,29
SetY = 5,0
SetFrame = 6,13
SetX = 6,39
SetY = 6,-40
SetX = 7,0
SetY = 7,-20
SetFrame = 8,11
SetX = 8,19
SetY = 8,-50
SetFrame = 9,6
SetX = 9,-30
SetY = 9,-59
SetFrame = 10,7
SetFrame = 11,8
SetX = 12,14
SetY = 12,-118
SetFlip = 13,true
SetX = 13,-10
SetY = 13,9
SetFlip = 14,false
SetX = 14,-20
SetY = 14,-128
SetFlip = 15,true
SetX = 15,-25
SetY = 15,-50
SetFlip = 16,false
SetX = 16,25
SetY = 16,-79
SetX = 17,0
SetY = 17,-10
<Particle 3>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetFrame = 1,11
SetX = 1,209
SetY = 1,-187
SetZ = 1,28
SetX = 2,184
SetY = 2,-118
SetX = 3,119
SetY = 3,-50
SetX = 4,69
SetY = 4,-20
SetFrame = 5,12
SetX = 5,9
SetY = 5,-40
SetFrame = 6,11
SetX = 6,-15
SetY = 6,-59
SetX = 7,34
SetY = 7,0
SetFrame = 8,5
SetX = 8,-30
SetY = 8,-59
SetX = 9,25
SetY = 9,-20
SetFrame = 10,6
SetFrame = 11,7
SetX = 11,14
SetY = 11,-118
SetFrame = 12,8
SetX = 12,25
SetY = 12,-20
SetFrame = 13,7
SetX = 13,-20
SetY = 13,-128
SetFlip = 14,true
SetX = 14,-25
SetY = 14,-50
SetFlip = 15,false
SetX = 15,25
SetY = 15,-79
SetX = 16,0
SetY = 16,-10
SetVisible = 17,false
<Particle 4>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetFrame = 1,12
SetX = 1,184
SetY = 1,-217
SetZ = 1,29
SetX = 2,134
SetY = 2,-168
SetX = 3,89
SetY = 3,-118
SetX = 4,34
SetY = 4,-70
SetFrame = 5,13
SetX = 5,100
SetY = 5,-59
SetFrame = 6,11
SetX = 6,84
SetY = 6,-40
SetFrame = 7,12
SetX = 7,4
SetY = 7,-79
SetVisible = 8,false
<Particle 5>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetFrame = 2,13
SetX = 2,200
SetY = 2,-207
SetZ = 2,30
SetX = 3,169
SetY = 3,-148
SetX = 4,144
SetY = 4,-109
SetFrame = 5,11
SetX = 5,19
SetY = 5,-89
SetFrame = 6,12
SetX = 6,50
SetY = 6,-128
SetFrame = 7,11
SetX = 7,79
SetY = 7,-109
SetVisible = 8,false
<Particle 6>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetFrame = 2,11
SetX = 2,169
SetY = 2,-217
SetZ = 2,31
SetX = 3,139
SetY = 3,-196
SetX = 4,79
SetY = 4,-168
SetX = 5,159
SetY = 5,-98
SetX = 6,139
SetY = 6,-148
SetVisible = 7,false
<Particle 7>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetFrame = 3,11
SetX = 3,204
SetY = 3,-178
SetZ = 3,32
SetX = 4,189
SetY = 4,-139
SetFrame = 5,12
SetX = 5,114
SetY = 5,-178
SetVisible = 6,false
<Particle 8>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetFrame = 4,12
SetX = 4,169
SetY = 4,-207
SetZ = 4,33
SetFrame = 5,11
SetX = 5,184
SetY = 5,-196
SetVisible = 6,false
<Particle 9>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetFrame = 9,5
SetX = 9,14
SetY = 9,-118
SetZ = 9,29
SetFrame = 10,6
SetFrame = 11,7
SetX = 11,25
SetY = 11,-20
SetFlip = 12,true
SetX = 12,-5
SetY = 12,9
SetFrame = 13,6
SetX = 13,-25
SetY = 13,-50
SetFlip = 14,false
SetX = 14,25
SetY = 14,-79
SetX = 15,0
SetY = 15,-10
SetVisible = 16,false
<Particle 10>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetFrame = 10,5
SetFlip = 10,true
SetX = 10,-5
SetY = 10,9
SetZ = 10,30
SetFrame = 11,6
SetFlip = 12,false
SetX = 12,-20
SetY = 12,-128
SetFrame = 13,5
SetX = 13,25
SetY = 13,-79
SetX = 14,0
SetY = 14,-10
SetVisible = 15,false
<Particle 11>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetFrame = 11,5
SetX = 11,-20
SetY = 11,-128
SetZ = 11,31
SetFlip = 12,true
SetX = 12,-25
SetY = 12,-50
SetVisible = 13,false
<SE>
Play = 0,Absorb2,80
Play = 2,Absorb2,80
Play = 5,Absorb2,80
Play = 7,Absorb2,80
Play = 8,Saint7,80

View File

@@ -1,74 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,ACID]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 3>
Graphic = Examples/poison2
Focus = UserAndTarget
SetFrame = 1,4
SetX = 1,14
SetY = 1,-20
SetZ = 1,28
SetFrame = 2,5
SetX = 2,34
SetY = 2,-70
SetFrame = 3,6
SetX = 3,69
SetY = 3,-128
SetX = 4,114
SetY = 4,-187
SetX = 5,154
SetY = 5,-207
SetY = 6,-217
SetVisible = 7,false
<Particle 4>
Graphic = Examples/poison2
Focus = UserAndTarget
SetFrame = 3,4
SetX = 3,19
SetY = 3,-20
SetZ = 3,29
SetFrame = 4,5
SetX = 4,59
SetY = 4,-118
SetFrame = 5,6
SetX = 5,109
SetY = 5,-207
SetVisible = 6,false
<Particle 2>
Graphic = Examples/poison2
Focus = UserAndTarget
SetFrame = 0,3
SetX = 0,14
SetY = 0,-20
SetZ = 0,27
SetFrame = 1,4
SetX = 1,39
SetY = 1,-98
SetFrame = 2,5
SetX = 2,69
SetY = 2,-148
SetFrame = 3,6
SetX = 3,134
SetY = 3,-187
SetFrame = 4,7
SetX = 4,179
SetY = 4,-178
SetFrame = 5,8
SetFrame = 6,9
SetFrame = 7,10
SetFrame = 8,11
SetFrame = 9,12
SetFrame = 10,13
SetFrame = 11,14
SetOpacity = 12,100
SetVisible = 13,false
<SE>
Play = 0,throw,80
Play = 3,Poison,80

View File

@@ -1,35 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,ACIDARMOR]
Name = Example anim
NoTarget = true
<User>
SetX = 0,0
SetY = 0,0
<Particle 1>
Graphic = Examples/poison3
Focus = User
SetFrame = 0,1
SetX = 0,8
SetY = 0,-2
SetZ = 0,27
SetFrame = 1,2
SetFrame = 2,3
SetFrame = 3,4
SetFrame = 4,5
SetX = 4,16
SetY = 4,-10
SetFrame = 5,6
SetX = 5,8
SetFrame = 6,7
SetY = 6,-18
SetFrame = 7,8
SetFrame = 8,9
SetFrame = 9,10
SetFrame = 10,11
SetFrame = 11,12
SetFrame = 12,13
<SE>
Play = 0,throw,80
Play = 0,Sound2,80
Play = 0,Pollen,80

View File

@@ -1,152 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,ACIDSPRAY]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/fly copy
Focus = Target
SetX = 0,-43
SetY = 0,-88
SetZ = 0,27
SetZoomX = 0,85
SetZoomY = 0,85
SetY = 1,-79
SetX = 3,-49
SetY = 3,-48
SetX = 4,-44
SetY = 4,-20
SetX = 5,-45
SetY = 5,-3
SetFrame = 6,1
SetX = 6,-19
SetY = 6,8
SetAngle = 6,180
SetX = 7,-54
SetY = 7,20
SetFrame = 8,3
SetX = 8,29
SetY = 8,55
SetZoomX = 8,79
SetZoomY = 8,79
<Particle 3>
Graphic = Examples/fly copy
Focus = Target
SetX = 1,-18
SetY = 1,-88
SetZ = 1,28
SetZoomX = 1,85
SetZoomY = 1,85
SetX = 3,-30
SetY = 3,-66
SetX = 4,-29
SetY = 4,-41
SetY = 5,-15
SetFrame = 6,1
SetX = 6,-46
SetY = 6,-4
SetAngle = 6,180
SetX = 7,-27
SetY = 7,29
SetFrame = 8,3
SetX = 8,6
SetY = 8,32
SetZoomX = 8,79
SetZoomY = 8,79
<Particle 4>
Graphic = Examples/fly copy
Focus = Target
SetX = 1,10
SetY = 1,-79
SetZ = 1,29
SetZoomX = 1,85
SetZoomY = 1,85
SetX = 3,0
SetY = 3,-56
SetX = 4,-8
SetY = 4,-33
SetVisible = 5,false
<Particle 5>
Graphic = Examples/fly copy
Focus = Target
SetX = 2,34
SetY = 2,-87
SetZ = 2,30
SetZoomX = 2,85
SetZoomY = 2,85
SetX = 3,24
SetY = 3,-73
SetX = 4,18
SetY = 4,-25
SetX = 5,17
SetY = 5,-7
SetFrame = 6,1
SetX = 6,23
SetY = 6,6
SetAngle = 6,180
SetX = 7,-4
SetY = 7,31
SetFrame = 8,3
SetX = 8,-43
SetY = 8,33
SetZoomX = 8,79
SetZoomY = 8,79
<Particle 6>
Graphic = Examples/fly copy
Focus = Target
SetX = 2,57
SetY = 2,-84
SetZ = 2,31
SetZoomX = 2,85
SetZoomY = 2,85
SetX = 3,54
SetY = 3,-59
SetX = 4,47
SetY = 4,-31
SetX = 5,46
SetY = 5,-13
SetFrame = 6,1
SetY = 6,5
SetAngle = 6,180
SetX = 7,15
SetY = 7,20
SetFrame = 8,3
SetX = 8,-78
SetY = 8,29
SetZoomX = 8,79
SetZoomY = 8,79
<Particle 7>
Graphic = Examples/fly copy
Focus = Target
SetFrame = 5,1
SetX = 5,-23
SetY = 5,-10
SetZ = 5,32
SetZoomX = 5,85
SetZoomY = 5,85
SetAngle = 5,180
SetVisible = 6,false
<Particle 8>
Graphic = Examples/fly copy
Focus = Target
SetFrame = 6,1
SetX = 6,-2
SetY = 6,-5
SetZ = 6,29
SetZoomX = 6,85
SetZoomY = 6,85
SetAngle = 6,180
SetFrame = 7,3
SetX = 7,36
SetY = 7,33
SetX = 8,-20
SetY = 8,38
SetZoomX = 8,79
SetZoomY = 8,79
<SE>
Play = 0,Substitute,80

View File

@@ -1,46 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,ACROBATICS]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 3>
Graphic = Examples/finger spoon
Focus = Target
SetFrame = 2,12
SetX = 2,-8
SetY = 2,37
SetZ = 2,28
SetZoomX = 2,41
SetZoomY = 2,41
SetZoomX = 3,39
SetZoomY = 3,39
SetZoomX = 5,62
SetZoomY = 5,62
SetX = 6,-24
SetY = 6,35
SetZoomX = 6,84
SetZoomY = 6,84
<Particle 2>
Graphic = Examples/finger spoon
Focus = Target
SetFrame = 0,13
SetX = 0,8
SetY = 0,-10
SetZ = 0,27
SetZoomX = 0,25
SetZoomY = 0,25
SetZoomX = 1,47
SetZoomY = 1,47
SetZoomX = 3,70
SetZoomY = 3,70
SetZoomX = 4,81
SetZoomY = 4,81
SetZoomX = 5,86
SetZoomY = 5,86
<SE>
Play = 0,Take Down,100,112

View File

@@ -1,120 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,ACUPRESSURE]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/mixed status
Focus = Target
SetFrame = 0,13
SetX = 0,25
SetY = 0,-60
SetZ = 0,27
SetZoomX = 0,200
SetZoomY = 0,200
SetX = 1,23
SetY = 1,-62
SetX = 2,21
SetX = 3,20
SetY = 3,-60
SetY = 4,-63
SetX = 5,23
SetY = 5,-62
SetX = 6,19
SetY = 6,-64
SetX = 7,21
SetY = 7,-61
SetX = 8,19
SetY = 8,-64
SetVisible = 9,false
<Particle 3>
Graphic = Examples/mixed status
Focus = Target
SetFrame = 4,14
SetX = 4,1
SetY = 4,-12
SetZ = 4,28
SetX = 5,5
SetY = 5,-8
SetX = 6,13
SetY = 7,-6
SetX = 8,11
SetY = 8,-16
SetVisible = 9,false
<Particle 4>
Graphic = Examples/mixed status
Focus = Target
SetFrame = 5,15
SetX = 5,-17
SetY = 5,31
SetZ = 5,29
SetX = 6,-15
SetY = 6,28
SetX = 7,-17
SetY = 7,29
SetFrame = 8,14
SetX = 8,62
SetY = 8,20
SetVisible = 9,false
<Particle 5>
Graphic = Examples/mixed status
Focus = Target
SetFrame = 6,15
SetX = 6,43
SetY = 6,-4
SetZ = 6,30
SetFrame = 7,14
SetX = 7,65
SetY = 7,23
SetFrame = 8,15
SetX = 8,-18
SetY = 8,25
SetVisible = 9,false
<Particle 6>
Graphic = Examples/mixed status
Focus = Target
SetFrame = 7,15
SetX = 7,44
SetY = 7,-5
SetZ = 7,31
SetY = 8,-6
SetVisible = 9,false
<Particle 7>
Graphic = Examples/mixed status
Focus = Target
SetFrame = 8,15
SetX = 8,46
SetY = 8,-4
SetZ = 8,32
SetVisible = 9,false
<Particle 8>
Graphic = Examples/mixed status
Focus = Target
SetFrame = 8,14
SetX = 8,61
SetY = 8,19
SetZ = 8,33
SetVisible = 9,false
<Particle 9>
Graphic = Examples/mixed status
Focus = Target
SetFrame = 8,15
SetX = 8,-16
SetY = 8,25
SetZ = 8,34
SetVisible = 9,false
<Particle 10>
Graphic = Examples/mixed status
Focus = Target
SetFrame = 8,14
SetX = 8,11
SetY = 8,-16
SetZ = 8,35
SetVisible = 9,false
<SE>
Play = 0,Acupressure

View File

@@ -1,438 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,AERIALACE]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
SetOpacity = 1,170
SetOpacity = 2,85
SetOpacity = 3,0
SetOpacity = 6,255
<Target>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/Aerial Ace
Focus = Target
SetX = 0,84
SetY = 0,-50
SetZ = 0,27
SetOpacity = 0,128
SetVisible = 1,false
<Particle 3>
Graphic = USER
Focus = User
SetX = 1,-52
SetY = 1,6
SetZ = 1,27
SetOpacity = 2,170
SetOpacity = 3,85
SetVisible = 4,false
<Particle 4>
Graphic = Examples/Aerial Ace
Focus = Target
SetX = 1,58
SetY = 1,-25
SetZ = 1,28
SetToneRed = 1,-37
SetToneGreen = 1,-37
SetToneBlue = 1,-37
SetVisible = 2,false
<Particle 5>
Graphic = USER
Focus = User
SetX = 2,-69
SetY = 2,34
SetZ = 2,28
SetOpacity = 3,170
SetOpacity = 4,85
SetVisible = 5,false
<Particle 6>
Graphic = Examples/Aerial Ace
Focus = Target
SetX = 2,27
SetY = 2,2
SetZ = 2,29
SetToneRed = 2,-74
SetToneGreen = 2,-74
SetToneBlue = 2,-74
SetVisible = 3,false
<Particle 7>
Graphic = USER
Focus = User
SetX = 3,-28
SetY = 3,48
SetZ = 3,29
SetX = 4,35
SetY = 4,35
SetX = 5,12
SetY = 5,6
SetVisible = 6,false
<Particle 8>
Graphic = Examples/Aerial Ace
Focus = Target
SetFrame = 3,1
SetX = 3,-13
SetY = 3,41
SetZ = 3,30
SetVisible = 4,false
<Particle 9>
Graphic = Examples/Aerial Ace
Focus = Target
SetFrame = 4,1
SetX = 4,-53
SetY = 4,77
SetZ = 4,27
SetToneRed = 4,214
SetToneGreen = 4,100
SetToneBlue = 4,100
SetFrame = 5,3
SetX = 5,-33
SetY = 5,55
SetToneRed = 5,0
SetToneGreen = 5,0
SetToneBlue = 5,0
SetX = 6,6
SetY = 6,22
SetX = 7,31
SetY = 7,-1
SetFrame = 8,2
SetX = 8,68
SetY = 8,-34
SetX = 9,92
SetY = 9,-60
SetOpacity = 9,128
SetFrame = 10,6
SetX = 10,-97
SetY = 10,-64
SetOpacity = 10,255
SetX = 11,-116
SetY = 11,-90
SetOpacity = 11,128
<Particle 10>
Graphic = USER
Focus = User
SetX = 4,-28
SetY = 4,48
SetZ = 4,30
SetOpacity = 4,170
SetX = 5,35
SetY = 5,35
SetX = 6,12
SetY = 6,6
SetVisible = 7,false
<Particle 11>
Graphic = USER
Focus = User
SetX = 5,-28
SetY = 5,48
SetZ = 5,31
SetOpacity = 5,85
SetX = 6,35
SetY = 6,35
SetX = 7,11
SetY = 7,6
SetVisible = 8,false
<Particle 12>
Graphic = Examples/Aerial Ace
Focus = Target
SetFrame = 6,6
SetX = 6,-3
SetY = 6,22
SetZ = 6,28
SetOpacity = 6,128
SetX = 7,7
SetY = 7,-14
SetOpacity = 7,255
SetX = 8,-57
SetY = 8,-4
SetX = 9,-92
SetY = 9,-30
SetX = 10,-75
SetY = 10,-93
SetOpacity = 10,128
SetX = 11,106
SetY = 11,-90
<Particle 13>
Graphic = Examples/Aerial Ace
Focus = Target
SetFrame = 6,6
SetX = 6,9
SetY = 6,14
SetZ = 6,29
SetOpacity = 6,128
SetX = 7,-16
SetY = 7,2
SetOpacity = 7,255
SetX = 8,-34
SetY = 8,-39
SetX = 9,-77
SetY = 9,-73
SetX = 10,-31
SetY = 10,-75
SetX = 11,-39
SetY = 11,-99
SetOpacity = 11,128
<Particle 14>
Graphic = Examples/Aerial Ace
Focus = Target
SetFrame = 6,6
SetX = 6,26
SetY = 6,13
SetZ = 6,32
SetOpacity = 6,128
SetX = 7,56
SetY = 7,2
SetOpacity = 7,255
SetX = 8,95
SetY = 8,49
SetX = 9,118
SetY = 9,62
SetOpacity = 9,128
SetX = 10,126
SetY = 10,-37
SetVisible = 11,false
<Particle 15>
Graphic = Examples/Aerial Ace
Focus = Target
SetFrame = 6,6
SetX = 6,24
SetY = 6,29
SetZ = 6,33
SetOpacity = 6,128
SetX = 7,55
SetY = 7,31
SetOpacity = 7,255
SetX = 8,59
SetY = 8,-39
SetX = 9,69
SetY = 9,-58
SetVisible = 10,false
<Particle 16>
Graphic = Examples/Aerial Ace
Focus = Target
SetFrame = 6,6
SetX = 6,-21
SetY = 6,16
SetZ = 6,34
SetOpacity = 6,128
SetX = 7,21
SetY = 7,-19
SetOpacity = 7,255
SetX = 8,36
SetY = 8,-30
SetX = 9,27
SetY = 9,-64
SetVisible = 10,false
<Particle 17>
Graphic = Examples/Aerial Ace
Focus = Target
SetFrame = 7,6
SetX = 7,35
SetY = 7,-22
SetZ = 7,30
SetX = 8,8
SetY = 8,-39
SetX = 9,-28
SetY = 9,-58
SetX = 10,93
SetY = 10,-72
SetX = 11,27
SetY = 11,-89
SetOpacity = 11,128
<Particle 18>
Graphic = Examples/Aerial Ace
Focus = Target
SetFrame = 7,6
SetX = 7,48
SetY = 7,-10
SetZ = 7,35
SetX = 8,71
SetY = 8,-18
SetX = 9,103
SetY = 9,-34
SetVisible = 10,false
<Particle 19>
Graphic = Examples/Aerial Ace
Focus = Target
SetFrame = 8,6
SetX = 8,95
SetY = 8,-7
SetZ = 8,31
SetX = 9,123
SetY = 9,1
SetOpacity = 9,128
SetX = 10,26
SetY = 10,-59
SetOpacity = 10,255
SetVisible = 11,false
<SE>
Play = 0,Ace,80
#-------------------------------
[OppMove,AERIALACE]
Name = Example anim
<User>
SetOpacity = 1,170
SetOpacity = 2,85
SetOpacity = 3,0
SetOpacity = 5,255
<Target>
<Particle 2>
Graphic = Examples/Aerial Ace
Focus = Target
SetX = 0,101
SetY = 0,-56
SetZ = 0,27
SetOpacity = 0,128
SetX = 1,81
SetY = 1,-39
SetOpacity = 1,255
SetFrame = 2,1
SetX = 2,48
SetY = 2,-8
SetX = 3,16
SetY = 3,24
SetVisible = 4,false
<Particle 3>
Graphic = USER
Focus = User
SetX = 1,-51
SetY = 1,18
SetZ = 1,28
SetOpacity = 2,170
SetOpacity = 3,85
SetX = 4,49
SetY = 4,12
SetOpacity = 4,255
SetOpacity = 5,170
SetOpacity = 6,85
SetVisible = 7,false
<Particle 4>
Graphic = USER
Focus = User
SetX = 2,-16
SetY = 2,44
SetZ = 2,29
SetX = 3,34
SetY = 3,38
SetOpacity = 4,170
SetVisible = 5,false
<Particle 5>
Graphic = USER
Focus = User
SetX = 3,-16
SetY = 3,44
SetZ = 3,30
SetOpacity = 3,170
SetOpacity = 4,85
SetX = 5,34
SetY = 5,38
SetVisible = 6,false
<Particle 6>
Graphic = Examples/Aerial Ace
Focus = Target
SetFrame = 5,7
SetX = 5,54
SetY = 5,27
SetZ = 5,29
SetOpacity = 5,128
SetX = 6,1
SetY = 6,-32
SetOpacity = 6,255
SetX = 7,-16
SetY = 7,-52
SetX = 8,-41
SetY = 8,-55
SetX = 9,-60
SetY = 9,-64
SetX = 10,-75
SetY = 10,-73
SetOpacity = 10,170
SetX = 11,-97
SetY = 11,-85
SetOpacity = 11,85
<Particle 7>
Graphic = Examples/Aerial Ace
Focus = Target
SetFrame = 5,7
SetX = 5,30
SetY = 5,13
SetZ = 5,31
SetOpacity = 5,128
SetX = 6,-36
SetY = 6,19
SetOpacity = 6,255
SetX = 7,-49
SetY = 7,16
SetX = 8,-64
SetY = 8,28
SetX = 9,-93
SetY = 9,32
SetX = 10,-111
SetY = 10,36
SetOpacity = 10,170
SetVisible = 11,false
<Particle 8>
Graphic = Examples/Aerial Ace
Focus = Target
SetFrame = 5,7
SetX = 5,-3
SetY = 5,3
SetZ = 5,32
SetOpacity = 5,128
SetX = 6,43
SetY = 6,-35
SetOpacity = 6,255
SetX = 7,67
SetY = 7,-57
SetX = 8,76
SetY = 8,-71
SetX = 9,100
SetY = 9,-95
SetOpacity = 9,170
SetX = 10,111
SetY = 10,-102
SetOpacity = 10,85
SetVisible = 11,false
<Particle 9>
Graphic = Examples/Aerial Ace
Focus = Target
SetFrame = 5,7
SetX = 5,-27
SetY = 5,26
SetZ = 5,33
SetOpacity = 5,128
SetX = 6,69
SetY = 6,20
SetOpacity = 6,255
SetX = 7,68
SetY = 7,15
SetX = 8,100
SetY = 8,8
SetX = 9,136
SetY = 9,18
SetX = 10,155
SetY = 10,20
SetOpacity = 10,170
SetX = 11,170
SetY = 11,22
SetOpacity = 11,85
<Particle 10>
Graphic = Examples/Aerial Ace
Focus = Target
SetFrame = 5,7
SetX = 5,19
SetY = 5,50
SetZ = 5,34
SetOpacity = 5,128
SetX = 6,45
SetY = 6,53
SetOpacity = 6,255
SetX = 7,61
SetY = 7,50
SetX = 8,83
SetY = 8,60
SetVisible = 9,false
<SE>
Play = 0,Ace,80

View File

@@ -1,91 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,AGILITY]
Name = Example anim
NoTarget = true
<User>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/!
Focus = User
SetFrame = 0,5
SetX = 0,-98
SetY = 0,-36
SetZ = 0,28
SetAngle = 0,90
SetX = 1,-73
SetX = 2,-48
SetX = 3,-18
SetX = 4,7
SetX = 5,32
SetX = 6,57
SetX = 7,82
SetX = 8,107
SetX = 9,132
<Particle 3>
Graphic = Examples/!
Focus = User
SetFrame = 0,5
SetX = 0,-53
SetY = 0,-93
SetZ = 0,29
SetAngle = 0,90
SetX = 1,-23
SetX = 2,12
SetX = 3,47
SetX = 4,82
SetX = 5,117
SetX = 6,152
SetX = 7,187
SetVisible = 8,false
<Particle 4>
Graphic = Examples/!
Focus = User
SetFrame = 1,5
SetX = 1,-88
SetY = 1,49
SetZ = 1,30
SetAngle = 1,90
SetX = 2,-63
SetX = 3,-38
SetX = 4,-13
SetX = 5,12
SetX = 6,37
SetX = 7,62
SetX = 8,87
SetX = 9,112
<Particle 5>
Graphic = Examples/!
Focus = User
SetFrame = 2,5
SetX = 2,-98
SetY = 2,-80
SetZ = 2,31
SetAngle = 2,90
SetX = 3,-63
SetX = 4,-28
SetX = 5,7
SetX = 6,42
SetX = 7,77
SetX = 8,112
SetX = 9,147
<Particle 1>
Graphic = Examples/!
Focus = User
SetFrame = 0,5
SetX = 0,-76
SetY = 0,13
SetZ = 0,27
SetAngle = 0,90
SetX = 1,-46
SetX = 2,-16
SetX = 3,14
SetX = 4,44
SetX = 5,74
SetX = 6,104
SetX = 7,134
SetX = 8,164
SetX = 9,194
<SE>
Play = 0,Psych Up,100,82

View File

@@ -1,53 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,ALLYSWITCH]
Name = Example anim
NoTarget = true
<User>
SetX = 0,0
SetY = 0,0
<Particle 1>
Graphic = Examples/anim sheet
Focus = User
SetFrame = 0,10
SetX = 0,9
SetY = 0,-2
SetZ = 0,27
SetFrame = 1,11
SetX = 1,11
SetY = 1,0
SetFrame = 2,12
SetX = 2,9
SetY = 2,-2
SetZoomX = 3,110
SetZoomY = 3,110
SetY = 4,-4
SetZoomX = 4,125
SetZoomY = 4,125
SetX = 5,13
SetY = 5,-7
SetZoomX = 5,165
SetZoomY = 5,165
SetX = 6,14
SetY = 6,-8
SetZoomX = 6,186
SetZoomY = 6,186
SetX = 7,15
SetY = 7,-9
SetZoomX = 7,202
SetZoomY = 7,202
SetY = 8,-11
SetZoomX = 8,230
SetZoomY = 8,230
SetX = 9,20
SetY = 9,-17
SetZoomX = 9,300
SetZoomY = 9,300
SetOpacity = 14,212
SetOpacity = 15,170
SetOpacity = 16,127
SetOpacity = 17,85
SetOpacity = 18,42
SetOpacity = 19,0
<SE>
Play = 0,Uproar

View File

@@ -1,24 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,AMNESIA]
Name = Example anim
NoTarget = true
<User>
SetX = 0,0
SetY = 0,0
<Particle 1>
Graphic = Examples/mixed
Focus = User
SetFrame = 0,3
SetX = 0,44
SetY = 0,-16
SetZoomX = 0,200
SetZoomY = 0,200
SetOpacity = 0,0
MoveOpacity = 0,4,255
SetOpacity = 4,255
SetOpacity = 10,255
MoveOpacity = 10,4,0
SetOpacity = 14,0
<SE>
Play = 0,Yawn

View File

@@ -1,384 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,ANCIENTPOWER]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/Ancient-PowerFilesheet
Focus = User
SetFrame = 0,10
SetX = 0,-89
SetY = 0,4
SetZ = 0,27
SetX = 1,-85
SetY = 1,-19
SetX = 2,-75
SetY = 2,-34
SetX = 3,-73
SetY = 3,-52
SetX = 4,-64
SetY = 4,-79
SetX = 5,-32
SetY = 5,-100
SetY = 6,-92
SetY = 7,-100
SetY = 8,-92
SetX = 9,-48
SetY = 9,-84
SetX = 10,-64
SetVisible = 12,false
<Particle 3>
Graphic = Examples/Ancient-PowerFilesheet
Focus = User
SetFrame = 0,11
SetX = 0,177
SetY = 0,20
SetZ = 0,28
SetX = 1,176
SetY = 1,-12
SetX = 2,172
SetY = 2,-31
SetX = 3,163
SetY = 3,-51
SetX = 4,144
SetY = 4,-67
SetX = 5,125
SetY = 5,-96
SetY = 6,-88
SetY = 7,-96
SetY = 8,-88
SetX = 9,128
SetY = 9,-80
SetX = 10,144
SetY = 10,-88
SetVisible = 12,false
<Particle 4>
Graphic = Examples/Ancient-PowerFilesheet
Focus = User
SetFrame = 0,9
SetX = 0,12
SetY = 0,51
SetZ = 0,29
SetY = 1,27
SetX = 2,11
SetY = 2,12
SetX = 3,12
SetY = 3,-17
SetX = 4,11
SetY = 4,-44
SetX = 5,12
SetY = 5,-72
SetY = 6,-64
SetY = 7,-72
SetY = 8,-64
SetY = 9,-48
SetY = 10,-24
SetX = 11,40
SetY = 11,-8
SetVisible = 12,false
<Particle 5>
Graphic = Examples/Ancient-PowerFilesheet
Focus = User
SetFrame = 6,6
SetX = 6,-56
SetY = 6,11
SetZ = 6,30
SetY = 7,-13
SetX = 8,-48
SetY = 8,-29
SetX = 9,-16
SetY = 9,-61
SetX = 10,-32
SetY = 10,-53
SetX = 11,-16
SetY = 11,-77
SetVisible = 12,false
<Particle 6>
Graphic = Examples/Ancient-PowerFilesheet
Focus = User
SetFrame = 6,8
SetX = 6,112
SetY = 6,17
SetZ = 6,31
SetY = 7,-7
SetY = 8,-31
SetX = 9,88
SetY = 9,-63
SetX = 10,104
SetY = 10,-39
SetY = 11,-7
SetVisible = 12,false
<Particle 7>
Graphic = Examples/Ancient-PowerFilesheet
Focus = User
SetFrame = 6,13
SetX = 6,32
SetY = 6,41
SetZ = 6,32
SetY = 7,17
SetVisible = 8,false
<Particle 8>
Graphic = Examples/Ancient-PowerFilesheet
Focus = User
SetFrame = 8,5
SetX = 8,56
SetY = 8,-3
SetZ = 8,33
SetY = 9,-27
SetY = 10,-83
SetX = 11,88
SetY = 11,-91
SetVisible = 12,false
<Particle 9>
Graphic = Examples/Ancient-PowerFilesheet
Focus = User
SetFrame = 10,6
SetX = 10,-16
SetY = 10,21
SetZ = 10,32
SetX = 11,-24
SetY = 11,-3
SetVisible = 12,false
<Particle 10>
Graphic = Examples/Ancient-PowerFilesheet
Focus = User
SetFrame = 10,10
SetX = 10,56
SetY = 10,56
SetZ = 10,34
SetY = 11,24
SetVisible = 12,false
<Particle 11>
Graphic = Examples/Ancient-PowerFilesheet
Focus = UserAndTarget
SetFrame = 12,10
SetX = 12,-50
SetY = 12,-93
SetZ = 12,27
SetY = 13,-106
SetY = 14,-93
SetY = 15,-81
SetY = 16,-68
SetY = 17,-56
SetX = 20,-37
SetY = 20,-68
SetX = 21,-25
SetY = 21,-93
SetX = 22,0
SetY = 22,-118
SetX = 23,12
SetY = 23,-131
SetY = 24,-118
SetX = 25,31
SetY = 25,-131
SetX = 26,56
SetY = 26,-168
SetX = 27,100
SetY = 27,-181
SetX = 28,150
SetY = 28,-218
SetX = 29,181
SetVisible = 30,false
<Particle 12>
Graphic = Examples/Ancient-PowerFilesheet
Focus = UserAndTarget
SetFrame = 12,11
SetX = 12,125
SetY = 12,-112
SetZ = 12,28
SetX = 13,131
SetY = 13,-125
SetY = 14,-112
SetY = 15,-100
SetY = 16,-87
SetY = 17,-75
SetX = 20,143
SetY = 20,-100
SetX = 21,162
SetY = 21,-125
SetX = 22,181
SetY = 22,-150
SetX = 23,206
SetY = 23,-187
SetVisible = 24,false
<Particle 13>
Graphic = Examples/Ancient-PowerFilesheet
Focus = UserAndTarget
SetFrame = 12,9
SetX = 12,31
SetY = 12,0
SetZ = 12,29
SetX = 13,37
SetY = 13,12
SetY = 14,25
SetY = 15,37
SetY = 16,50
SetY = 17,62
SetX = 20,50
SetY = 20,25
SetX = 21,62
SetY = 21,0
SetX = 22,81
SetY = 22,-37
SetX = 23,87
SetY = 23,-50
SetX = 24,112
SetY = 24,-75
SetX = 25,131
SetY = 25,-100
SetX = 26,156
SetY = 26,-137
SetVisible = 27,false
<Particle 14>
Graphic = Examples/Ancient-PowerFilesheet
Focus = UserAndTarget
SetFrame = 12,6
SetX = 12,-6
SetY = 12,-157
SetZ = 12,30
SetY = 13,-182
SetY = 14,-170
SetY = 15,-157
SetY = 16,-145
SetY = 17,-132
SetX = 20,18
SetY = 20,-145
SetX = 21,37
SetY = 21,-157
SetX = 22,56
SetY = 22,-182
SetX = 23,62
SetY = 23,-195
SetX = 24,81
SetY = 24,-207
SetX = 25,106
SetY = 25,-182
SetX = 26,137
SetY = 26,-195
SetX = 27,181
SetY = 27,-207
SetX = 28,212
SetY = 28,-182
SetVisible = 29,false
<Particle 15>
Graphic = Examples/Ancient-PowerFilesheet
Focus = UserAndTarget
SetFrame = 12,8
SetX = 12,100
SetY = 12,1
SetZ = 12,31
SetX = 13,112
SetY = 13,-10
SetY = 14,1
SetY = 15,14
SetY = 16,26
SetY = 17,39
SetX = 20,125
SetY = 20,14
SetX = 21,143
SetY = 21,-10
SetX = 22,162
SetY = 22,-48
SetX = 23,181
SetY = 23,-98
SetX = 24,200
SetY = 24,-135
SetVisible = 25,false
<Particle 16>
Graphic = Examples/Ancient-PowerFilesheet
Focus = UserAndTarget
SetFrame = 12,6
SetX = 12,-25
SetY = 12,-17
SetZ = 12,32
SetX = 13,-31
SetY = 14,-4
SetY = 15,7
SetY = 16,20
SetY = 17,32
SetX = 20,-12
SetY = 20,20
SetX = 21,6
SetY = 21,7
SetX = 22,25
SetY = 22,-17
SetX = 23,31
SetY = 24,-4
SetX = 25,50
SetY = 25,-42
SetX = 26,87
SetY = 26,-79
SetX = 27,125
SetY = 27,-92
SetX = 28,156
SetY = 28,-129
SetX = 29,187
SetY = 29,-142
SetX = 30,219
SetY = 30,-175
SetVisible = 31,false
<Particle 17>
Graphic = Examples/Ancient-PowerFilesheet
Focus = UserAndTarget
SetFrame = 12,5
SetX = 12,81
SetY = 12,-154
SetZ = 12,33
SetX = 13,87
SetY = 13,-179
SetY = 14,-167
SetY = 15,-154
SetY = 16,-142
SetY = 17,-129
SetX = 20,100
SetY = 20,-142
SetX = 21,118
SetY = 21,-154
SetX = 22,137
SetY = 22,-179
SetX = 23,143
SetY = 23,-193
SetX = 24,168
SetY = 24,-206
SetX = 25,206
SetY = 25,-218
SetVisible = 26,false
<Particle 18>
Graphic = Examples/Ancient-PowerFilesheet
Focus = UserAndTarget
SetFrame = 12,10
SetX = 12,18
SetY = 12,25
SetZ = 12,34
SetX = 13,25
SetY = 13,12
SetY = 14,25
SetY = 15,37
SetY = 16,50
SetY = 17,62
SetX = 20,37
SetY = 20,25
SetX = 21,56
SetY = 21,0
SetX = 22,75
SetY = 22,-25
SetX = 23,87
SetY = 23,-12
SetY = 24,0
SetX = 25,137
SetY = 25,-37
SetX = 26,156
SetY = 26,-75
SetX = 27,187
SetY = 27,-100
SetX = 28,237
SetY = 28,-137
SetVisible = 29,false
<SE>
Play = 0,Earth4
Play = 24,Earth5

View File

@@ -1,74 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,AQUARING]
Name = Example anim
NoTarget = true
<User>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/fly copy
Focus = User
SetX = 2,5
SetY = 2,12
SetZ = 2,28
SetFrame = 3,9
SetX = 3,3
SetY = 3,4
SetFrame = 4,8
SetX = 4,-16
SetY = 4,0
SetX = 5,-3
SetY = 5,-3
<Particle 3>
Graphic = Examples/fly copy
Focus = User
SetX = 3,12
SetY = 3,15
SetZ = 3,29
SetFrame = 4,7
SetX = 4,-10
SetY = 4,1
SetX = 5,2
SetY = 5,-4
<Particle 4>
Graphic = Examples/fly copy
Focus = User
SetFrame = 4,5
SetX = 4,-4
SetY = 4,-2
SetZ = 4,30
SetVisible = 5,false
<Particle 5>
Graphic = Examples/fly copy
Focus = User
SetX = 4,2
SetY = 4,8
SetZ = 4,31
SetVisible = 5,false
<Particle 1>
Graphic = Examples/fly copy
Focus = User
SetX = 0,10
SetY = 0,9
SetZ = 0,27
SetX = 1,11
SetY = 1,11
SetFrame = 2,5
SetX = 2,4
SetY = 2,-2
SetZoomX = 2,110
SetZoomY = 2,110
SetFrame = 3,8
SetX = 3,-5
SetY = 3,2
SetZoomX = 3,100
SetZoomY = 3,100
SetFrame = 4,9
SetX = 4,-2
SetY = 4,4
SetFrame = 5,0
SetX = 5,10
SetY = 5,8
<SE>
Play = 0,Weatherball,80

View File

@@ -1,196 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,AROMATHERAPY]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/Anima (1)
Focus = Foreground
SetX = 0,608
SetY = 0,-50
SetZ = 0,27
SetX = 1,560
SetY = 1,-2
SetX = 2,496
SetY = 2,30
SetX = 3,416
SetY = 3,70
SetX = 4,296
SetY = 4,134
SetX = 5,176
SetY = 5,190
SetX = 6,120
SetY = 6,222
SetFrame = 7,2
SetX = 7,104
SetY = 7,118
SetFrame = 8,3
SetX = 8,224
SetY = 8,190
SetFrame = 9,2
SetX = 9,248
SetY = 9,174
<Particle 3>
Graphic = Examples/Anima (1)
Focus = Foreground
SetFrame = 1,1
SetX = 1,664
SetY = 1,22
SetZ = 1,28
SetX = 2,608
SetY = 2,94
SetX = 3,520
SetY = 3,182
SetX = 4,480
SetY = 4,230
SetFrame = 5,2
SetX = 5,304
SetY = 5,62
SetX = 6,200
SetY = 6,94
SetFrame = 7,3
SetX = 7,296
SetY = 7,150
SetFrame = 8,2
SetX = 8,336
SetY = 8,118
SetFrame = 9,3
SetX = 9,112
SetY = 9,142
<Particle 4>
Graphic = Examples/Anima (1)
Focus = Foreground
SetFrame = 2,2
SetX = 2,584
SetY = 2,-34
SetZ = 2,29
SetX = 3,528
SetY = 3,-2
SetX = 4,424
SetY = 4,38
SetFrame = 5,3
SetX = 5,312
SetY = 5,134
SetX = 6,256
SetY = 6,214
SetFrame = 7,1
SetX = 7,88
SetY = 7,126
SetFrame = 8,3
SetX = 8,184
SetY = 8,86
SetVisible = 9,false
<Particle 5>
Graphic = Examples/Anima (1)
Focus = Foreground
SetFrame = 2,3
SetX = 2,464
SetY = 2,-42
SetZ = 2,30
SetX = 3,408
SetY = 3,6
SetX = 4,376
SetY = 4,70
SetFrame = 5,0
SetX = 5,448
SetY = 5,166
SetX = 6,376
SetY = 6,222
SetFrame = 7,1
SetX = 7,512
SetY = 7,198
SetVisible = 8,false
<Particle 6>
Graphic = Examples/Anima (1)
Focus = Foreground
SetX = 3,672
SetY = 3,46
SetZ = 3,31
SetX = 4,544
SetY = 4,102
SetFrame = 5,2
SetX = 5,560
SetY = 5,222
SetFrame = 6,3
SetX = 6,392
SetY = 6,94
SetFrame = 7,2
SetX = 7,416
SetY = 7,62
SetVisible = 8,false
<Particle 7>
Graphic = Examples/Anima (1)
Focus = Foreground
SetFrame = 3,2
SetX = 3,664
SetY = 3,118
SetZ = 3,32
SetX = 4,616
SetY = 4,166
SetFrame = 5,3
SetX = 5,480
SetY = 5,54
SetFrame = 6,1
SetX = 6,160
SetY = 6,70
SetFrame = 7,3
SetX = 7,280
SetY = 7,30
SetVisible = 8,false
<Particle 8>
Graphic = Examples/Anima (1)
Focus = Foreground
SetFrame = 3,3
SetX = 3,640
SetY = 3,-26
SetZ = 3,33
SetX = 4,576
SetY = 4,14
SetFrame = 5,1
SetX = 5,224
SetY = 5,22
SetFrame = 6,0
SetX = 6,128
SetVisible = 7,false
<Particle 9>
Graphic = Examples/Anima (1)
Focus = Foreground
SetFrame = 4,1
SetX = 4,336
SetY = 4,-26
SetZ = 4,34
SetFrame = 5,0
SetX = 5,184
SetY = 5,-34
SetFrame = 6,1
SetX = 6,600
SetY = 6,118
SetVisible = 7,false
<Particle 10>
Graphic = Examples/Anima (1)
Focus = Foreground
SetFrame = 5,1
SetX = 5,680
SetY = 5,30
SetZ = 5,35
SetFrame = 6,2
SetX = 6,504
SetY = 6,6
SetVisible = 7,false
<Particle 11>
Graphic = Examples/Anima (1)
Focus = Foreground
SetFrame = 5,2
SetX = 5,552
SetY = 5,-26
SetZ = 5,36
SetFrame = 6,3
SetX = 6,368
SetVisible = 7,false
<SE>
Play = 0,Saint8,80

View File

@@ -1,311 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,AURORABEAM]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/023-Burst01
Focus = User
SetFrame = 0,1
SetX = 0,0
SetY = 0,12
SetZ = 0,27
SetFrame = 1,2
SetX = 1,185
SetY = 1,-38
SetZoomX = 1,50
SetZoomY = 1,50
SetFrame = 2,4
SetX = 2,-20
SetY = 2,-76
SetFrame = 3,2
SetX = 3,57
SetY = 3,-45
SetFrame = 4,1
SetX = 4,0
SetY = 4,12
SetZoomX = 4,100
SetZoomY = 4,100
SetVisible = 6,false
<Particle 3>
Graphic = Examples/023-Burst01
Focus = User
SetFrame = 1,3
SetX = 1,-26
SetY = 1,-152
SetZ = 1,28
SetZoomX = 1,50
SetZoomY = 1,50
SetX = 2,102
SetY = 2,-19
SetFrame = 3,1
SetX = 3,0
SetY = 3,12
SetZoomX = 3,100
SetZoomY = 3,100
SetFrame = 4,2
SetX = 4,-7
SetY = 4,6
SetZoomX = 4,150
SetZoomY = 4,150
SetX = 5,0
SetY = 5,0
SetZoomX = 5,200
SetZoomY = 5,200
SetVisible = 6,false
<Particle 4>
Graphic = Examples/023-Burst01
Focus = User
SetFrame = 1,1
SetX = 1,0
SetY = 1,12
SetZ = 1,29
SetFrame = 2,5
SetX = 2,64
SetY = 2,-158
SetZoomX = 2,50
SetZoomY = 2,50
SetFrame = 3,2
SetX = 3,-20
SetY = 3,-32
SetFrame = 4,4
SetX = 4,-45
SetY = 4,-57
SetFrame = 5,2
SetX = 5,-58
SetY = 5,-114
SetVisible = 6,false
<Particle 5>
Graphic = Examples/023-Burst01
Focus = User
SetFrame = 2,1
SetX = 2,0
SetY = 2,12
SetZ = 2,30
SetFrame = 3,5
SetX = 3,51
SetZoomX = 3,50
SetZoomY = 3,50
SetX = 4,64
SetY = 4,-32
SetFrame = 5,3
SetX = 5,44
SetY = 5,-120
SetVisible = 6,false
<Particle 6>
Graphic = Examples/023-Burst01
Focus = User
SetFrame = 2,3
SetX = 2,-64
SetY = 2,-158
SetZ = 2,31
SetZoomX = 2,50
SetZoomY = 2,50
SetFrame = 3,6
SetX = 3,-45
SetY = 3,-133
SetFrame = 4,4
SetX = 4,32
SetY = 4,-38
SetFrame = 5,5
SetX = 5,108
SetY = 5,-51
SetVisible = 6,false
<Particle 7>
Graphic = Examples/023-Burst01
Focus = User
SetFrame = 2,5
SetX = 2,217
SetY = 2,12
SetZ = 2,32
SetZoomX = 2,50
SetZoomY = 2,50
SetFrame = 3,7
SetX = 3,108
SetY = 3,18
SetFrame = 4,6
SetX = 4,76
SetY = 4,25
SetX = 5,128
SetVisible = 6,false
<Particle 8>
Graphic = Examples/023-Burst01
Focus = User
SetFrame = 2,3
SetX = 2,185
SetY = 2,-114
SetZ = 2,33
SetZoomX = 2,50
SetZoomY = 2,50
SetFrame = 3,5
SetX = 3,51
SetY = 3,-120
SetX = 4,0
SetY = 4,-51
SetVisible = 5,false
<Particle 9>
Graphic = Examples/023-Burst01
Focus = User
SetFrame = 3,2
SetX = 3,-13
SetY = 3,-76
SetZ = 3,34
SetZoomX = 3,50
SetZoomY = 3,50
SetFrame = 4,4
SetX = 4,-64
SetY = 4,-171
SetVisible = 5,false
<Particle 10>
Graphic = Examples/023-Burst01
Focus = User
SetFrame = 3,3
SetX = 3,198
SetY = 3,0
SetZ = 3,35
SetZoomX = 3,50
SetZoomY = 3,50
SetX = 4,70
SetY = 4,-171
SetVisible = 5,false
<Particle 11>
Graphic = Examples/023-Burst01
Focus = User
SetFrame = 3,4
SetX = 3,134
SetY = 3,-76
SetZ = 3,36
SetZoomX = 3,50
SetZoomY = 3,50
SetFrame = 4,2
SetX = 4,172
SetVisible = 5,false
<Particle 12>
Graphic = Examples/023-Burst01
Focus = User
SetFrame = 4,5
SetX = 4,211
SetY = 4,12
SetZ = 4,37
SetZoomX = 4,50
SetZoomY = 4,50
SetVisible = 5,false
<Particle 13>
Graphic = Examples/023-Burst01
Focus = UserAndTarget
SetFrame = 6,4
SetX = 6,0
SetY = 6,9
SetZ = 6,27
SetZoomX = 6,200
SetZoomY = 6,200
SetFrame = 7,1
SetX = 7,29
SetY = 7,-29
SetZoomX = 7,100
SetZoomY = 7,100
SetX = 8,89
SetY = 8,-109
SetX = 9,154
SetY = 9,-148
SetX = 10,179
SetY = 10,-178
SetFrame = 12,3
SetFrame = 13,1
SetZoomX = 13,150
SetZoomY = 13,150
SetOpacity = 13,100
SetY = 14,-196
SetZoomX = 14,200
SetZoomY = 14,200
SetY = 15,-178
SetZoomX = 15,100
SetZoomY = 15,100
SetOpacity = 15,50
<Particle 14>
Graphic = Examples/023-Burst01
Focus = UserAndTarget
SetFrame = 6,1
SetX = 6,0
SetY = 6,18
SetZ = 6,28
SetX = 7,50
SetY = 7,-59
SetX = 8,125
SetY = 8,-157
SetX = 9,179
SetY = 9,-178
SetX = 10,150
SetY = 10,-139
SetX = 11,154
SetY = 11,-148
SetX = 12,179
SetY = 12,-178
SetVisible = 13,false
<Particle 15>
Graphic = Examples/023-Burst01
Focus = UserAndTarget
SetFrame = 7,2
SetX = 7,50
SetY = 7,-70
SetZ = 7,29
SetZoomX = 7,150
SetZoomY = 7,150
SetFrame = 8,1
SetX = 8,29
SetY = 8,-29
SetZoomX = 8,100
SetZoomY = 8,100
SetX = 9,114
SetY = 9,-109
SetY = 10,-89
SetFrame = 11,3
SetX = 11,179
SetY = 11,-178
SetVisible = 12,false
<Particle 16>
Graphic = Examples/023-Burst01
Focus = UserAndTarget
SetFrame = 8,1
SetX = 8,54
SetY = 8,-59
SetZ = 8,30
SetX = 9,84
SetY = 9,-79
SetFrame = 10,3
SetX = 10,179
SetY = 10,-178
SetVisible = 11,false
<Particle 17>
Graphic = Examples/023-Burst01
Focus = UserAndTarget
SetFrame = 8,2
SetX = 8,125
SetY = 8,-178
SetZ = 8,31
SetZoomX = 8,120
SetZoomY = 8,120
SetFrame = 9,1
SetX = 9,54
SetY = 9,-40
SetZoomX = 9,100
SetZoomY = 9,100
SetVisible = 10,false
<Particle 18>
Graphic = Examples/023-Burst01
Focus = UserAndTarget
SetFrame = 9,3
SetX = 9,184
SetY = 9,-187
SetZ = 9,32
SetZoomX = 9,120
SetZoomY = 9,120
SetVisible = 10,false
<SE>
Play = 1,Twine,80
Play = 10,Fire3,80

View File

@@ -1,64 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,BARRIER]
Name = Example anim
NoTarget = true
<User>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/anim sheet
Focus = User
SetFrame = 1,7
SetX = 1,-28
SetY = 1,-31
SetZ = 1,28
SetFrame = 2,8
SetX = 2,53
SetFrame = 3,7
SetX = 3,56
SetY = 3,-33
SetFrame = 4,8
SetX = 4,-15
SetY = 4,30
SetFrame = 5,7
SetX = 5,-10
SetY = 5,34
SetFrame = 6,8
SetX = 6,64
SetY = 6,-22
SetFrame = 7,7
SetX = 7,69
SetY = 7,-30
SetFrame = 8,8
SetX = 8,-20
SetY = 8,-7
SetFrame = 9,7
SetX = 9,-17
<Particle 1>
Graphic = Examples/anim sheet
Focus = User
SetFrame = 0,15
SetX = 0,8
SetY = 0,-1
SetZ = 0,27
SetOpacity = 0,154
SetX = 1,9
SetY = 1,-6
SetX = 2,8
SetY = 2,-1
SetY = 3,-5
SetX = 4,11
SetY = 4,-4
SetX = 5,13
SetY = 5,-8
SetX = 6,14
SetY = 6,-4
SetX = 7,10
SetY = 7,-6
SetX = 8,11
SetY = 8,1
SetX = 9,-5
SetY = 9,-11
<SE>
Play = 0,Flash2,80

View File

@@ -1,247 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,BEATUP]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/many
Focus = Target
SetFrame = 0,17
SetX = 0,0
SetY = 0,-10
SetZ = 0,27
SetZoomX = 0,75
SetZoomY = 0,75
SetOpacity = 0,150
SetZoomX = 1,100
SetZoomY = 1,100
SetOpacity = 1,255
SetZoomX = 3,125
SetZoomY = 3,125
SetOpacity = 3,100
<Particle 3>
Graphic = Examples/many
Focus = Target
SetFrame = 1,20
SetX = 1,8
SetY = 1,-10
SetZ = 1,28
SetOpacity = 1,100
SetFrame = 2,19
SetX = 2,0
SetY = 2,-2
SetZoomX = 3,125
SetZoomY = 3,125
SetOpacity = 3,50
<SE>
Play = 0,Blow4,80
#-------------------------------
[Move,BEATUP,1]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 3>
Graphic = Examples/many
Focus = Target
SetFrame = 1,20
SetX = 1,8
SetY = 1,-10
SetZ = 1,28
SetOpacity = 1,100
SetFrame = 2,19
SetX = 2,0
SetY = 2,-2
SetZoomX = 3,125
SetZoomY = 3,125
SetOpacity = 3,50
<Particle 2>
Graphic = Examples/many
Focus = Target
SetFrame = 0,17
SetX = 0,0
SetY = 0,-10
SetZ = 0,27
SetZoomX = 0,75
SetZoomY = 0,75
SetOpacity = 0,150
SetZoomX = 1,100
SetZoomY = 1,100
SetOpacity = 1,255
SetZoomX = 3,125
SetZoomY = 3,125
SetOpacity = 3,100
<SE>
Play = 0,Blow4,80
#-------------------------------
[Move,BEATUP,2]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/many
Focus = Target
SetFrame = 0,17
SetX = 0,0
SetY = 0,-10
SetZ = 0,27
SetZoomX = 0,75
SetZoomY = 0,75
SetOpacity = 0,150
SetZoomX = 1,100
SetZoomY = 1,100
SetOpacity = 1,255
SetZoomX = 3,125
SetZoomY = 3,125
SetOpacity = 3,100
<Particle 3>
Graphic = Examples/many
Focus = Target
SetFrame = 1,20
SetX = 1,8
SetY = 1,-10
SetZ = 1,28
SetOpacity = 1,100
SetFrame = 2,19
SetX = 2,0
SetY = 2,-2
SetZoomX = 3,125
SetZoomY = 3,125
SetOpacity = 3,50
<SE>
Play = 0,Blow4,80
#-------------------------------
[Move,BEATUP,3]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 3>
Graphic = Examples/many
Focus = Target
SetFrame = 1,20
SetX = 1,8
SetY = 1,-10
SetZ = 1,28
SetOpacity = 1,100
SetFrame = 2,19
SetX = 2,0
SetY = 2,-2
SetZoomX = 3,125
SetZoomY = 3,125
SetOpacity = 3,50
<Particle 2>
Graphic = Examples/many
Focus = Target
SetFrame = 0,17
SetX = 0,0
SetY = 0,-10
SetZ = 0,27
SetZoomX = 0,75
SetZoomY = 0,75
SetOpacity = 0,150
SetZoomX = 1,100
SetZoomY = 1,100
SetOpacity = 1,255
SetZoomX = 3,125
SetZoomY = 3,125
SetOpacity = 3,100
<SE>
Play = 0,Blow4,80
#-------------------------------
[Move,BEATUP,4]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/many
Focus = Target
SetFrame = 0,17
SetX = 0,0
SetY = 0,-10
SetZ = 0,27
SetZoomX = 0,75
SetZoomY = 0,75
SetOpacity = 0,150
SetZoomX = 1,100
SetZoomY = 1,100
SetOpacity = 1,255
SetZoomX = 3,125
SetZoomY = 3,125
SetOpacity = 3,100
<Particle 3>
Graphic = Examples/many
Focus = Target
SetFrame = 1,20
SetX = 1,8
SetY = 1,-10
SetZ = 1,28
SetOpacity = 1,100
SetFrame = 2,19
SetX = 2,0
SetY = 2,-2
SetZoomX = 3,125
SetZoomY = 3,125
SetOpacity = 3,50
<SE>
Play = 0,Blow4,80
#-------------------------------
[Move,BEATUP,5]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 3>
Graphic = Examples/many
Focus = Target
SetFrame = 1,20
SetX = 1,8
SetY = 1,-10
SetZ = 1,28
SetOpacity = 1,100
SetFrame = 2,19
SetX = 2,0
SetY = 2,-2
SetZoomX = 3,125
SetZoomY = 3,125
SetOpacity = 3,50
<Particle 2>
Graphic = Examples/many
Focus = Target
SetFrame = 0,17
SetX = 0,0
SetY = 0,-10
SetZ = 0,27
SetZoomX = 0,75
SetZoomY = 0,75
SetOpacity = 0,150
SetZoomX = 1,100
SetZoomY = 1,100
SetOpacity = 1,255
SetZoomX = 3,125
SetZoomY = 3,125
SetOpacity = 3,100
<SE>
Play = 0,Blow4,80

View File

@@ -1,48 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,BIND]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 3>
Graphic = Examples/Struggle
Focus = Target
SetFrame = 0,1
SetX = 0,56
SetY = 0,6
SetZ = 0,28
SetX = 1,96
SetY = 1,-2
SetX = 2,104
SetY = 2,6
SetX = 3,80
SetY = 3,-2
SetX = 4,48
SetX = 5,80
SetX = 6,112
SetY = 6,6
SetX = 7,96
<Particle 2>
Graphic = Examples/Struggle
Focus = Target
SetX = 0,-64
SetY = 0,6
SetZ = 0,27
SetX = 1,-96
SetY = 1,-2
SetX = 2,-144
SetY = 2,6
SetX = 3,-120
SetY = 3,-2
SetX = 4,-88
SetX = 5,-128
SetX = 6,-168
SetX = 7,-120
<SE>
Play = 0,Slash10,80
Play = 3,Slash10,80
Play = 6,Slash10,80

View File

@@ -1,289 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,BLASTBURN]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/Firebird
Focus = UserAndTarget
SetFrame = 0,5
SetX = 0,0
SetY = 0,18
SetZ = 0,27
SetFrame = 1,13
SetFlip = 1,true
SetAngle = 1,20
SetX = 2,25
SetY = 2,-98
SetAngle = 2,0
SetFrame = 3,10
SetX = 3,69
SetY = 3,-148
SetAngle = 3,20
SetX = 4,100
SetY = 4,-178
SetAngle = 4,0
SetFrame = 5,16
SetFlip = 5,false
SetX = 5,194
SetY = 5,-157
SetZoomX = 5,50
SetZoomY = 5,50
SetVisible = 6,false
<Particle 3>
Graphic = Examples/Firebird
Focus = UserAndTarget
SetFrame = 5,11
SetFlip = 5,true
SetX = 5,179
SetY = 5,-178
SetZ = 5,28
SetVisible = 6,false
<Particle 4>
Graphic = Examples/Firebird
Focus = Target
SetFrame = 6,11
SetX = 6,-26
SetY = 6,14
SetZ = 6,27
SetFrame = 7,16
SetX = 7,-32
SetY = 7,20
SetFrame = 8,18
SetX = 8,57
SetY = 8,58
SetFrame = 9,16
SetX = 9,-39
SetY = 9,14
SetFrame = 10,17
SetX = 10,-26
SetY = 10,-5
SetAngle = 10,180
SetX = 11,64
SetY = 11,14
SetAngle = 11,90
SetFrame = 12,11
SetX = 12,-90
SetY = 12,2
SetAngle = 12,45
SetFrame = 13,12
SetX = 13,-84
SetY = 13,65
SetAngle = 13,270
SetFrame = 14,19
SetX = 14,-20
SetY = 14,27
SetAngle = 14,0
SetFrame = 15,14
SetX = 15,-52
SetY = 15,8
SetFrame = 16,19
SetX = 16,-26
SetOpacity = 16,100
<Particle 5>
Graphic = Examples/Firebird
Focus = Target
SetFrame = 6,16
SetX = 6,-39
SetY = 6,27
SetZ = 6,28
SetZoomX = 6,90
SetZoomY = 6,90
SetFrame = 7,15
SetX = 7,-13
SetY = 7,58
SetZoomX = 7,50
SetZoomY = 7,50
SetFrame = 8,14
SetX = 8,-39
SetY = 8,65
SetZoomX = 8,100
SetZoomY = 8,100
SetX = 9,51
SetY = 9,58
SetFrame = 10,17
SetX = 10,12
SetY = 10,90
SetX = 11,-90
SetY = 11,2
SetAngle = 11,270
SetFrame = 12,14
SetX = 12,-45
SetY = 12,-11
SetX = 13,-32
SetY = 13,71
SetAngle = 13,0
SetFrame = 14,18
SetX = 14,38
SetY = 14,65
SetOpacity = 14,100
SetFrame = 15,15
SetX = 15,6
SetY = 15,14
SetOpacity = 15,255
SetFrame = 16,10
SetX = 16,-52
SetOpacity = 16,100
<Particle 6>
Graphic = Examples/Firebird
Focus = Target
SetFrame = 6,12
SetX = 6,-26
SetY = 6,27
SetZ = 6,29
SetX = 7,6
SetY = 7,8
SetFrame = 8,16
SetX = 8,-7
SetY = 8,2
SetFrame = 9,17
SetY = 9,102
SetFrame = 10,14
SetX = 10,25
SetY = 10,58
SetAngle = 10,45
SetFrame = 11,16
SetX = 11,-64
SetY = 11,20
SetAngle = 11,0
SetFrame = 12,15
SetX = 12,51
SetY = 12,65
SetFrame = 13,16
SetX = 13,-52
SetY = 13,-5
SetX = 14,-77
SetY = 14,2
SetOpacity = 14,100
SetFrame = 15,19
SetX = 15,-26
SetY = 15,8
SetOpacity = 15,255
SetFrame = 16,12
SetX = 16,12
SetY = 16,14
SetOpacity = 16,100
<Particle 7>
Graphic = Examples/Firebird
Focus = Target
SetFrame = 7,11
SetX = 7,-20
SetY = 7,58
SetZ = 7,30
SetVisible = 8,false
<Particle 8>
Graphic = Examples/Firebird
Focus = Target
SetFrame = 9,16
SetX = 9,-58
SetY = 9,46
SetZ = 9,30
SetFrame = 10,15
SetX = 10,70
SetY = 10,-17
SetAngle = 10,45
SetFrame = 11,14
SetX = 11,-52
SetY = 11,65
SetAngle = 11,0
SetFrame = 12,16
SetX = 12,51
SetY = 12,-11
SetFrame = 13,14
SetX = 13,19
SetY = 13,71
SetFrame = 14,16
SetX = 14,-26
SetY = 14,-24
SetOpacity = 14,100
SetVisible = 15,false
<Particle 9>
Graphic = Examples/Firebird
Focus = Target
SetFrame = 9,13
SetX = 9,0
SetY = 9,-5
SetZ = 9,31
SetFrame = 10,18
SetX = 10,-39
SetY = 10,2
SetAngle = 10,135
SetFrame = 11,15
SetX = 11,38
SetY = 11,65
SetAngle = 11,0
SetFrame = 12,18
SetX = 12,-7
SetY = 12,77
SetFrame = 13,15
SetX = 13,38
SetY = 13,14
SetFrame = 14,14
SetX = 14,-58
SetY = 14,71
SetOpacity = 14,100
SetVisible = 15,false
<Particle 10>
Graphic = Examples/Firebird
Focus = Target
SetFrame = 9,13
SetX = 9,57
SetY = 9,71
SetZ = 9,32
SetFrame = 10,16
SetX = 10,-45
SetY = 10,27
SetFrame = 11,12
SetX = 11,-7
SetY = 11,-11
SetVisible = 12,false
<Particle 11>
Graphic = Examples/Firebird
Focus = Target
SetFrame = 10,10
SetX = 10,-13
SetY = 10,-30
SetZ = 10,33
SetFrame = 11,11
SetX = 11,-64
SetVisible = 12,false
<Particle 12>
Graphic = Examples/Firebird
Focus = Target
SetFrame = 10,14
SetX = 10,-45
SetY = 10,83
SetZ = 10,34
SetVisible = 11,false
<Particle 13>
Graphic = Examples/Firebird
Focus = Target
SetFrame = 13,19
SetX = 13,12
SetY = 13,27
SetZ = 13,32
SetFrame = 14,12
SetX = 14,57
SetY = 14,-17
SetOpacity = 14,100
SetVisible = 15,false
<Particle 14>
Graphic = Examples/Firebird
Focus = Target
SetFrame = 13,12
SetX = 13,57
SetY = 13,-17
SetZ = 13,33
SetOpacity = 13,100
SetFrame = 14,14
SetX = 14,12
SetY = 14,8
SetOpacity = 14,250
SetVisible = 15,false
<SE>
Play = 3,Fire2,80

View File

@@ -1,19 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,BLOCK]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/block
Focus = Target
SetX = 0,1
SetY = 0,0
SetZ = 0,27
SetVisible = 10,false
<SE>
Play = 0,buzzer,80

View File

@@ -1,54 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,BLUEFLARE]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 3>
Graphic = Examples/anim sheet 2
Focus = Target
SetFrame = 4,13
SetX = 4,6
SetY = 4,0
SetZ = 4,27
SetFrame = 5,14
SetX = 5,1
SetY = 5,-2
SetFrame = 6,15
SetX = 6,8
SetVisible = 7,false
<Particle 4>
Graphic = Examples/anim sheet 2
Focus = Target
SetFrame = 8,16
SetX = 8,0
SetY = 8,-1
SetZ = 8,27
SetFrame = 9,17
SetX = 9,-1
SetFrame = 10,18
SetX = 10,0
SetY = 10,0
SetFrame = 11,19
SetX = 11,1
SetY = 11,-4
<Particle 2>
Graphic = Examples/anim sheet 2
Focus = Target
SetFrame = 0,10
SetX = 0,-2
SetY = 0,7
SetZ = 0,27
SetFrame = 1,11
SetX = 1,-5
SetY = 1,-3
SetFrame = 2,12
SetX = 2,0
SetY = 2,-2
SetVisible = 3,false
<SE>
Play = 0,Slam,100,110

View File

@@ -1,22 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,BODYSLAM]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/003-Attack01
Focus = Target
SetX = 0,0
SetY = 0,-2
SetZ = 0,27
SetFrame = 1,1
SetFrame = 2,2
SetFrame = 3,3
SetFrame = 4,4
<SE>
Play = 0,Damage1,80

View File

@@ -1,37 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,BRICKBREAK]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/many
Focus = Target
SetFrame = 0,13
SetX = 0,-88
SetY = 0,-58
SetZ = 0,27
SetX = 1,-64
SetAngle = 1,345
SetX = 2,-32
SetY = 2,-34
SetAngle = 2,330
SetX = 3,0
SetY = 3,-10
SetAngle = 3,315
SetX = 4,16
SetY = 4,22
SetAngle = 4,300
SetX = 5,32
SetY = 5,46
SetAngle = 5,285
SetX = 6,48
SetY = 6,62
SetX = 7,56
SetY = 7,70
<SE>
Play = 4,Blow7,80

View File

@@ -1,282 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,BUBBLE]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/008-Weapon03
Focus = UserAndTarget
SetFrame = 0,13
SetX = 0,0
SetY = 0,18
SetZ = 0,27
SetX = 1,19
SetY = 1,0
SetX = 2,54
SetY = 2,-40
SetFrame = 3,12
SetX = 3,79
SetY = 3,-79
SetX = 4,114
SetY = 4,-109
SetFrame = 5,11
SetX = 5,159
SetY = 5,-168
SetX = 6,179
SetY = 6,-178
SetX = 7,189
SetFrame = 8,13
SetX = 8,64
SetY = 8,-59
SetFrame = 9,11
SetX = 9,194
SetY = 9,-187
SetFrame = 10,13
SetX = 10,200
SetY = 10,-246
SetFrame = 11,11
SetY = 11,-267
SetFrame = 12,15
SetX = 12,179
SetY = 12,-178
<Particle 3>
Graphic = Examples/008-Weapon03
Focus = UserAndTarget
SetFrame = 1,13
SetX = 1,4
SetY = 1,-10
SetZ = 1,28
SetX = 2,19
SetY = 2,-29
SetFrame = 3,12
SetX = 3,39
SetY = 3,-59
SetX = 4,64
SetY = 4,-109
SetFrame = 5,11
SetX = 5,100
SetY = 5,-128
SetX = 6,129
SetY = 6,-157
SetFrame = 7,13
SetX = 7,0
SetY = 7,18
SetX = 8,164
SetY = 8,-217
SetFrame = 9,12
SetX = 9,169
SetY = 9,-246
SetFrame = 10,11
SetX = 10,229
SetY = 10,-237
SetFrame = 11,12
SetX = 11,225
SetY = 11,-207
SetVisible = 12,false
<Particle 4>
Graphic = Examples/008-Weapon03
Focus = UserAndTarget
SetFrame = 1,12
SetX = 1,0
SetY = 1,18
SetZ = 1,29
SetX = 2,39
SetY = 2,-40
SetX = 3,54
SetY = 3,-89
SetFrame = 4,11
SetX = 4,89
SetY = 4,-98
SetFrame = 5,12
SetX = 5,84
SetY = 5,-157
SetX = 6,119
SetY = 6,-187
SetX = 7,150
SetY = 7,-237
SetX = 8,189
SetY = 8,-196
SetFrame = 9,13
SetX = 9,169
SetFrame = 10,12
SetX = 10,179
SetY = 10,-207
SetFrame = 11,13
SetX = 11,175
SetY = 11,-196
SetVisible = 12,false
<Particle 5>
Graphic = Examples/008-Weapon03
Focus = UserAndTarget
SetFrame = 2,13
SetX = 2,0
SetY = 2,18
SetZ = 2,30
SetX = 3,29
SetY = 3,-29
SetX = 4,0
SetY = 4,18
SetX = 5,25
SetY = 5,-29
SetX = 6,64
SetY = 6,-79
SetFrame = 7,11
SetX = 7,175
SetY = 7,-226
SetX = 8,214
SetY = 8,-187
SetFrame = 9,12
SetX = 9,204
SetY = 9,-237
SetFrame = 10,13
SetX = 10,200
SetY = 10,-196
SetFrame = 11,17
SetX = 11,209
SetY = 11,-226
SetOpacity = 11,100
SetVisible = 12,false
<Particle 6>
Graphic = Examples/008-Weapon03
Focus = UserAndTarget
SetFrame = 3,13
SetX = 3,9
SetY = 3,-20
SetZ = 3,31
SetX = 4,64
SetY = 4,-59
SetX = 5,134
SetY = 5,-118
SetX = 6,114
SetY = 6,-148
SetX = 7,119
SetY = 7,-157
SetFrame = 8,12
SetX = 8,179
SetY = 8,-256
SetFrame = 9,11
SetX = 9,194
SetY = 9,-276
SetX = 10,164
SetY = 10,-256
SetVisible = 11,false
<Particle 7>
Graphic = Examples/008-Weapon03
Focus = UserAndTarget
SetFrame = 3,12
SetX = 3,0
SetY = 3,18
SetZ = 3,32
SetX = 4,39
SetY = 4,0
SetX = 5,84
SetY = 5,-59
SetFrame = 6,13
SetX = 6,159
SetY = 6,-178
SetY = 7,-187
SetFrame = 8,11
SetX = 8,204
SetY = 8,-276
SetFrame = 9,12
SetX = 9,225
SetY = 9,-178
SetFrame = 10,17
SetX = 10,179
SetY = 10,-217
SetOpacity = 10,100
SetVisible = 11,false
<Particle 8>
Graphic = Examples/008-Weapon03
Focus = UserAndTarget
SetFrame = 4,13
SetX = 4,29
SetY = 4,-59
SetZ = 4,33
SetX = 5,50
SetY = 5,-109
SetFrame = 6,12
SetX = 6,100
SetY = 6,-79
SetFrame = 7,13
SetX = 7,79
SetY = 7,-139
SetFrame = 8,12
SetX = 8,119
SetY = 8,-187
SetFrame = 9,13
SetX = 9,144
SetY = 9,-196
SetVisible = 10,false
<Particle 9>
Graphic = Examples/008-Weapon03
Focus = UserAndTarget
SetFrame = 5,12
SetX = 5,0
SetY = 5,18
SetZ = 5,34
SetFrame = 6,13
SetX = 6,79
SetY = 6,-128
SetFrame = 7,12
SetX = 7,144
SetFrame = 8,13
SetX = 8,154
SetY = 8,-168
SetFrame = 9,12
SetY = 9,-148
SetVisible = 10,false
<Particle 10>
Graphic = Examples/008-Weapon03
Focus = UserAndTarget
SetFrame = 6,13
SetX = 6,25
SetY = 6,18
SetZ = 6,35
SetFrame = 7,12
SetX = 7,69
SetY = 7,-70
SetX = 8,114
SetY = 8,-118
SetFrame = 9,13
SetX = 9,125
SetY = 9,-148
SetVisible = 10,false
<Particle 11>
Graphic = Examples/008-Weapon03
Focus = UserAndTarget
SetFrame = 6,17
SetX = 6,175
SetY = 6,-217
SetZ = 6,36
SetOpacity = 6,100
SetFlip = 7,true
SetX = 7,194
SetY = 7,-187
SetFrame = 8,13
SetFlip = 8,false
SetX = 8,75
SetY = 8,-98
SetOpacity = 8,255
SetFrame = 9,17
SetFlip = 9,true
SetX = 9,200
SetY = 9,-196
SetOpacity = 9,100
SetVisible = 10,false
<Particle 12>
Graphic = Examples/008-Weapon03
Focus = UserAndTarget
SetFrame = 8,17
SetX = 8,179
SetY = 8,-207
SetZ = 8,37
SetOpacity = 8,100
SetVisible = 9,false
<SE>
Play = 0,Water5,80

View File

@@ -1,511 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,BUBBLEBEAM]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/018-Water01
Focus = UserAndTarget
SetFrame = 0,13
SetX = 0,0
SetY = 0,18
SetZ = 0,27
SetX = 1,39
SetY = 1,-29
SetX = 2,89
SetY = 2,-70
SetFrame = 3,12
SetX = 3,25
SetY = 3,-50
SetX = 4,154
SetY = 4,-157
SetX = 5,114
SetY = 5,-148
SetX = 6,29
SetY = 6,-20
SetX = 7,75
SetY = 7,-50
SetFrame = 8,13
SetX = 8,84
SetY = 8,-139
SetFrame = 9,2
SetX = 9,94
SetY = 9,-70
SetFrame = 10,13
SetX = 10,200
SetY = 10,-246
SetFrame = 11,12
SetX = 11,44
SetY = 11,-29
SetX = 12,119
SetY = 12,-109
SetX = 13,179
SetY = 13,-207
SetX = 14,204
SetFrame = 15,0
SetX = 15,179
SetY = 15,-178
<Particle 3>
Graphic = Examples/018-Water01
Focus = UserAndTarget
SetFrame = 1,13
SetX = 1,9
SetY = 1,-59
SetZ = 1,28
SetX = 2,50
SetY = 2,-79
SetFrame = 3,12
SetX = 3,75
SetY = 3,-89
SetX = 4,134
SetY = 4,-217
SetX = 5,179
SetY = 5,-178
SetX = 6,189
SetY = 6,-226
SetFrame = 7,1
SetX = 7,200
SetY = 7,-178
SetFrame = 8,13
SetX = 8,164
SetY = 8,-217
SetFrame = 9,12
SetX = 9,184
SetY = 9,-267
SetX = 10,69
SetY = 10,-109
SetX = 11,225
SetY = 11,-207
SetFrame = 12,2
SetX = 12,204
SetFrame = 13,12
SetX = 13,189
SetY = 13,-237
SetFrame = 14,2
SetX = 14,179
SetY = 14,-196
SetVisible = 15,false
<Particle 4>
Graphic = Examples/018-Water01
Focus = UserAndTarget
SetFrame = 1,12
SetX = 1,50
SetY = 1,-70
SetZ = 1,29
SetX = 2,59
SetY = 2,-118
SetX = 3,69
SetY = 3,-148
SetX = 4,4
SetY = 4,9
SetX = 5,139
SetY = 5,-196
SetX = 6,119
SetY = 6,-187
SetX = 7,159
SetY = 7,-237
SetFrame = 8,1
SetX = 8,164
SetY = 8,-168
SetFrame = 9,13
SetX = 9,169
SetY = 9,-196
SetFrame = 10,12
SetX = 10,179
SetY = 10,-207
SetFrame = 11,13
SetX = 11,175
SetY = 11,-196
SetFrame = 12,11
SetX = 12,164
SetAngle = 12,90
SetFrame = 13,4
SetX = 13,194
SetY = 13,-217
SetAngle = 13,0
SetVisible = 14,false
<Particle 5>
Graphic = Examples/018-Water01
Focus = UserAndTarget
SetFrame = 2,13
SetX = 2,0
SetY = 2,18
SetZ = 2,30
SetX = 3,104
SetY = 3,-168
SetY = 4,-98
SetX = 5,144
SetY = 5,-109
SetX = 6,64
SetY = 6,-79
SetFrame = 7,12
SetX = 7,119
SetY = 7,-226
SetFrame = 8,2
SetX = 8,159
SetY = 8,-267
SetFrame = 9,12
SetX = 9,184
SetY = 9,-217
SetFrame = 10,13
SetX = 10,200
SetY = 10,-196
SetFrame = 11,17
SetX = 11,209
SetY = 11,-226
SetOpacity = 11,100
SetFrame = 12,3
SetX = 12,189
SetY = 12,-139
SetOpacity = 12,255
SetFrame = 13,1
SetX = 13,154
SetY = 13,-196
SetVisible = 14,false
<Particle 6>
Graphic = Examples/018-Water01
Focus = UserAndTarget
SetX = 2,19
SetY = 2,-20
SetZ = 2,31
SetFrame = 3,12
SetX = 3,54
SetY = 3,-70
SetFrame = 4,13
SetX = 4,114
SetY = 4,-157
SetX = 5,189
SetY = 5,-207
SetX = 6,154
SetX = 7,119
SetY = 7,-157
SetFrame = 8,2
SetX = 8,69
SetY = 8,-98
SetFrame = 9,12
SetX = 9,75
SetY = 9,-89
SetX = 10,100
SetY = 10,-59
SetFrame = 11,3
SetX = 11,194
SetY = 11,-237
SetFrame = 12,1
SetX = 12,139
SetY = 12,-98
SetFrame = 13,7
SetX = 13,184
SetY = 13,-196
SetOpacity = 13,50
SetVisible = 14,false
<Particle 7>
Graphic = Examples/018-Water01
Focus = UserAndTarget
SetFrame = 3,12
SetX = 3,114
SetY = 3,-109
SetZ = 3,32
SetX = 4,144
SetY = 4,-118
SetX = 5,100
SetY = 5,-187
SetX = 6,59
SetY = 6,-118
SetFrame = 7,13
SetX = 7,164
SetY = 7,-178
SetFrame = 8,12
SetX = 8,64
SetY = 8,-128
SetFrame = 9,1
SetX = 9,9
SetY = 9,-20
SetFrame = 10,12
SetX = 10,129
SetY = 10,-217
SetFrame = 11,11
SetX = 11,50
SetY = 11,-79
SetAngle = 11,135
SetFrame = 12,3
SetX = 12,234
SetY = 12,-128
SetAngle = 12,0
SetX = 13,150
SetY = 13,-118
SetVisible = 14,false
<Particle 8>
Graphic = Examples/018-Water01
Focus = UserAndTarget
SetFrame = 3,1
SetX = 3,64
SetY = 3,-98
SetZ = 3,33
SetFrame = 4,12
SetX = 4,54
SetX = 5,139
SetY = 5,-256
SetX = 6,189
SetY = 6,-148
SetX = 7,14
SetY = 7,-20
SetX = 8,119
SetY = 8,-187
SetFrame = 9,3
SetX = 9,164
SetY = 9,-267
SetFrame = 10,12
SetX = 10,114
SetY = 10,-168
SetFrame = 11,1
SetX = 11,75
SetFrame = 12,3
SetX = 12,189
SetY = 12,-285
SetVisible = 13,false
<Particle 9>
Graphic = Examples/018-Water01
Focus = UserAndTarget
SetX = 3,25
SetY = 3,-10
SetZ = 3,34
SetFrame = 4,2
SetX = 4,114
SetY = 4,-168
SetFrame = 5,12
SetX = 5,39
SetY = 5,-118
SetFrame = 6,6
SetX = 6,204
SetY = 6,-196
SetOpacity = 6,100
SetFrame = 7,2
SetX = 7,139
SetY = 7,-79
SetOpacity = 7,255
SetFrame = 8,12
SetX = 8,129
SetY = 8,-139
SetX = 9,164
SetY = 9,-148
SetFrame = 10,3
SetX = 10,134
SetY = 10,-237
SetX = 11,125
SetY = 11,-207
SetFrame = 12,1
SetX = 12,64
SetY = 12,-79
SetVisible = 13,false
<Particle 10>
Graphic = Examples/018-Water01
Focus = UserAndTarget
SetFrame = 4,2
SetX = 4,44
SetY = 4,-59
SetZ = 4,35
SetFrame = 5,12
SetX = 5,79
SetY = 5,-89
SetFrame = 6,13
SetX = 6,144
SetY = 6,-139
SetFrame = 7,12
SetX = 7,104
SetY = 7,-148
SetFrame = 8,3
SetX = 8,209
SetY = 8,-139
SetFrame = 9,13
SetX = 9,125
SetY = 9,-148
SetFrame = 10,0
SetX = 10,189
SetY = 10,-187
SetFrame = 11,3
SetX = 11,129
SetY = 11,-276
SetFrame = 12,5
SetX = 12,214
SetY = 12,-217
SetVisible = 13,false
<Particle 11>
Graphic = Examples/018-Water01
Focus = UserAndTarget
SetFrame = 4,12
SetX = 4,34
SetY = 4,0
SetZ = 4,36
SetFrame = 5,3
SetX = 5,144
SetY = 5,-226
SetFrame = 6,1
SetX = 6,94
SetY = 6,-89
SetFrame = 7,12
SetX = 7,54
SetY = 7,-139
SetY = 8,-178
SetX = 9,94
SetY = 9,-128
SetFrame = 10,2
SetX = 10,79
SetY = 10,-59
SetFrame = 11,0
SetX = 11,225
SetY = 11,-109
SetVisible = 12,false
<Particle 12>
Graphic = Examples/018-Water01
Focus = UserAndTarget
SetFrame = 4,12
SetX = 4,125
SetY = 4,-20
SetZ = 4,37
SetFrame = 5,3
SetX = 5,119
SetY = 5,-139
SetFrame = 6,0
SetX = 6,194
SetY = 6,-207
SetFrame = 7,7
SetX = 7,200
SetOpacity = 7,100
SetVisible = 8,false
<Particle 13>
Graphic = Examples/018-Water01
Focus = UserAndTarget
SetFrame = 4,12
SetX = 4,89
SetY = 4,-20
SetZ = 4,38
SetFrame = 5,2
SetX = 5,4
SetY = 5,-10
SetFrame = 6,3
SetX = 6,144
SetY = 6,-217
SetFrame = 7,2
SetY = 7,-187
SetFrame = 8,8
SetX = 8,209
SetY = 8,-196
SetOpacity = 8,100
SetFrame = 9,3
SetY = 9,-157
SetOpacity = 9,255
SetX = 10,194
SetY = 10,-109
SetX = 11,169
SetY = 11,-139
SetVisible = 12,false
<Particle 14>
Graphic = Examples/018-Water01
Focus = UserAndTarget
SetFrame = 4,12
SetX = 4,69
SetY = 4,-148
SetZ = 4,39
SetFrame = 5,3
SetY = 5,-20
SetX = 6,209
SetY = 6,-139
SetX = 7,14
SetY = 7,-10
SetX = 8,194
SetY = 8,-226
SetX = 9,150
SetY = 9,-98
SetFrame = 10,1
SetX = 10,89
SetY = 10,-139
SetFrame = 11,3
SetX = 11,14
SetY = 11,0
SetVisible = 12,false
<Particle 15>
Graphic = Examples/018-Water01
Focus = UserAndTarget
SetX = 4,125
SetY = 4,-70
SetZ = 4,40
SetFrame = 5,3
SetX = 5,189
SetY = 5,-139
SetX = 6,44
SetY = 6,-70
SetX = 7,84
SetFrame = 8,0
SetX = 8,29
SetY = 8,-59
SetFrame = 9,1
SetX = 9,54
SetY = 9,-70
SetFrame = 10,2
SetX = 10,114
SetY = 10,-40
SetFrame = 11,4
SetX = 11,219
SetY = 11,-226
SetVisible = 12,false
<Particle 16>
Graphic = Examples/018-Water01
Focus = UserAndTarget
SetX = 6,44
SetY = 6,18
SetZ = 6,41
SetFrame = 7,3
SetX = 7,94
SetY = 7,-157
SetX = 8,134
SetY = 8,-98
SetFrame = 9,0
SetX = 9,94
SetY = 9,-168
SetFrame = 10,3
SetX = 10,25
SetY = 10,-59
SetVisible = 11,false
<Particle 17>
Graphic = Examples/018-Water01
Focus = UserAndTarget
SetFrame = 6,3
SetX = 6,139
SetY = 6,-59
SetZ = 6,42
SetX = 7,154
SetY = 7,-285
SetX = 8,89
SetY = 8,-187
SetX = 9,154
SetY = 9,-168
SetFrame = 10,2
SetX = 10,19
SetY = 10,-10
SetVisible = 11,false
<Particle 18>
Graphic = Examples/018-Water01
Focus = UserAndTarget
SetFrame = 9,12
SetX = 9,50
SetY = 9,-118
SetZ = 9,37
SetFrame = 10,3
SetX = 10,129
SetY = 10,-109
SetFrame = 11,1
SetX = 11,100
SetY = 11,-59
SetVisible = 12,false
<SE>
Play = 0,Water5,80
Play = 3,Blow1,80
Play = 7,Blow1,80
Play = 9,Blow1,80
Play = 11,Blow1,80
Play = 13,Blow1,80

View File

@@ -1,163 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,BULLETPUNCH]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/punches
Focus = Target
SetFrame = 0,15
SetX = 0,14
SetY = 0,4
SetZ = 0,27
SetFrame = 1,14
SetX = 1,22
SetY = 1,-1
SetFrame = 2,2
SetX = 2,0
SetY = 2,-2
SetOpacity = 2,84
SetFrame = 3,14
SetX = 3,36
SetY = 3,-29
SetOpacity = 3,255
SetFrame = 4,2
SetX = 4,22
SetY = 4,-18
SetOpacity = 4,44
SetFrame = 5,14
SetX = 5,-16
SetY = 5,39
SetOpacity = 5,255
SetFrame = 6,2
SetX = 6,-33
SetY = 6,37
SetOpacity = 6,64
SetFrame = 7,14
SetX = 7,48
SetOpacity = 7,255
SetX = 8,51
SetOpacity = 8,36
SetX = 9,3
SetY = 9,7
SetOpacity = 9,255
SetFrame = 10,2
SetX = 10,12
SetY = 10,-8
SetOpacity = 10,44
SetVisible = 11,false
<Particle 3>
Graphic = Examples/punches
Focus = Target
SetFrame = 0,2
SetX = 0,2
SetY = 0,3
SetZ = 0,28
SetX = 1,7
SetY = 1,-1
SetFrame = 2,14
SetX = 2,19
SetY = 2,2
SetOpacity = 2,64
SetFrame = 3,2
SetX = 3,21
SetY = 3,-24
SetOpacity = 3,255
SetFrame = 4,14
SetX = 4,39
SetY = 4,-23
SetOpacity = 4,64
SetFrame = 5,2
SetX = 5,-29
SetY = 5,35
SetOpacity = 5,255
SetFrame = 6,14
SetX = 6,-20
SetY = 6,32
SetOpacity = 6,107
SetFrame = 7,2
SetX = 7,34
SetY = 7,39
SetOpacity = 7,255
SetX = 8,41
SetY = 8,35
SetOpacity = 8,108
SetX = 9,-14
SetY = 9,11
SetOpacity = 9,255
SetFrame = 10,14
SetX = 10,31
SetY = 10,-8
SetOpacity = 10,84
SetVisible = 11,false
<Particle 4>
Graphic = Examples/punches
Focus = Target
SetFrame = 2,15
SetX = 2,42
SetY = 2,-27
SetZ = 2,29
SetVisible = 3,false
<Particle 5>
Graphic = Examples/punches
Focus = Target
SetFrame = 2,2
SetX = 2,21
SetY = 2,-29
SetZ = 2,30
SetVisible = 3,false
<Particle 6>
Graphic = Examples/punches
Focus = Target
SetFrame = 4,15
SetX = 4,-12
SetY = 4,46
SetZ = 4,29
SetVisible = 5,false
<Particle 7>
Graphic = Examples/punches
Focus = Target
SetFrame = 4,2
SetX = 4,-32
SetY = 4,37
SetZ = 4,30
SetVisible = 5,false
<Particle 8>
Graphic = Examples/punches
Focus = Target
SetFrame = 6,15
SetX = 6,62
SetY = 6,45
SetZ = 6,29
SetVisible = 7,false
<Particle 9>
Graphic = Examples/punches
Focus = Target
SetFrame = 6,2
SetX = 6,43
SetY = 6,39
SetZ = 6,30
SetVisible = 7,false
<Particle 10>
Graphic = Examples/punches
Focus = Target
SetFrame = 8,15
SetX = 8,11
SetY = 8,19
SetZ = 8,29
SetVisible = 9,false
<Particle 11>
Graphic = Examples/punches
Focus = Target
SetFrame = 8,2
SetX = 8,-5
SetY = 8,13
SetZ = 8,30
SetVisible = 9,false
<SE>
Play = 0,Comet Punch,100,59

View File

@@ -1,546 +0,0 @@
# See the documentation on the wiki to learn how to edit this file.
#-------------------------------
[Move,BULLETSEED]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 2>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetX = 0,25
SetY = 0,-40
SetZ = 0,27
SetX = 1,64
SetY = 1,-79
SetX = 2,94
SetY = 2,-118
SetX = 3,134
SetY = 3,-148
SetX = 4,179
SetY = 4,-187
SetX = 5,175
SetY = 5,-217
SetX = 6,159
SetY = 6,-246
SetOpacity = 6,100
SetX = 7,229
SetY = 7,-256
SetX = 8,154
SetY = 8,-276
SetX = 9,234
SetY = 9,-196
SetX = 10,175
SetY = 10,-276
<Particle 3>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetX = 1,25
SetY = 1,-40
SetZ = 1,28
SetX = 2,64
SetY = 2,-79
SetX = 3,100
SetY = 3,-109
SetX = 4,139
SetY = 4,-139
SetX = 5,179
SetY = 5,-187
SetX = 6,214
SetY = 6,-237
SetX = 7,169
SetY = 7,-246
SetX = 8,225
SetY = 8,-217
SetX = 9,184
SetY = 9,-226
SetVisible = 10,false
<Particle 4>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetX = 2,34
SetY = 2,-40
SetZ = 2,29
SetX = 3,64
SetY = 3,-70
SetX = 4,104
SetY = 4,-89
SetX = 5,139
SetY = 5,-139
SetX = 6,179
SetY = 6,-196
SetX = 7,184
SetY = 8,-178
SetVisible = 9,false
<Particle 5>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetX = 3,34
SetY = 3,-29
SetZ = 3,30
SetX = 4,69
SetY = 4,-50
SetX = 5,104
SetY = 5,-89
SetX = 6,139
SetY = 6,-148
SetX = 7,144
SetVisible = 8,false
<Particle 6>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetX = 4,39
SetY = 4,-10
SetZ = 4,31
SetX = 5,69
SetY = 5,-50
SetX = 6,100
SetY = 6,-98
SetVisible = 7,false
<SE>
Play = 0,throw,80
Play = 2,throw,80
Play = 5,throw,80
Play = 5,Knock,80
Play = 7,Knock,80
Play = 8,throw,80
Play = 9,Knock,80
#-------------------------------
[Move,BULLETSEED,1]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 6>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetX = 4,39
SetY = 4,-10
SetZ = 4,31
SetX = 5,69
SetY = 5,-50
SetX = 6,100
SetY = 6,-98
SetVisible = 7,false
<Particle 2>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetX = 0,25
SetY = 0,-40
SetZ = 0,27
SetX = 1,64
SetY = 1,-79
SetX = 2,94
SetY = 2,-118
SetX = 3,134
SetY = 3,-148
SetX = 4,179
SetY = 4,-187
SetX = 5,175
SetY = 5,-217
SetX = 6,159
SetY = 6,-246
SetOpacity = 6,100
SetX = 7,229
SetY = 7,-256
SetX = 8,154
SetY = 8,-276
SetX = 9,234
SetY = 9,-196
SetX = 10,175
SetY = 10,-276
<Particle 3>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetX = 1,25
SetY = 1,-40
SetZ = 1,28
SetX = 2,64
SetY = 2,-79
SetX = 3,100
SetY = 3,-109
SetX = 4,139
SetY = 4,-139
SetX = 5,179
SetY = 5,-187
SetX = 6,214
SetY = 6,-237
SetX = 7,169
SetY = 7,-246
SetX = 8,225
SetY = 8,-217
SetX = 9,184
SetY = 9,-226
SetVisible = 10,false
<Particle 4>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetX = 2,34
SetY = 2,-40
SetZ = 2,29
SetX = 3,64
SetY = 3,-70
SetX = 4,104
SetY = 4,-89
SetX = 5,139
SetY = 5,-139
SetX = 6,179
SetY = 6,-196
SetX = 7,184
SetY = 8,-178
SetVisible = 9,false
<Particle 5>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetX = 3,34
SetY = 3,-29
SetZ = 3,30
SetX = 4,69
SetY = 4,-50
SetX = 5,104
SetY = 5,-89
SetX = 6,139
SetY = 6,-148
SetX = 7,144
SetVisible = 8,false
<SE>
Play = 0,throw,80
Play = 2,throw,80
Play = 5,throw,80
Play = 5,Knock,80
Play = 7,Knock,80
Play = 8,throw,80
Play = 9,Knock,80
#-------------------------------
[Move,BULLETSEED,2]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 5>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetX = 3,34
SetY = 3,-29
SetZ = 3,30
SetX = 4,69
SetY = 4,-50
SetX = 5,104
SetY = 5,-89
SetX = 6,139
SetY = 6,-148
SetX = 7,144
SetVisible = 8,false
<Particle 6>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetX = 4,39
SetY = 4,-10
SetZ = 4,31
SetX = 5,69
SetY = 5,-50
SetX = 6,100
SetY = 6,-98
SetVisible = 7,false
<Particle 2>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetX = 0,25
SetY = 0,-40
SetZ = 0,27
SetX = 1,64
SetY = 1,-79
SetX = 2,94
SetY = 2,-118
SetX = 3,134
SetY = 3,-148
SetX = 4,179
SetY = 4,-187
SetX = 5,175
SetY = 5,-217
SetX = 6,159
SetY = 6,-246
SetOpacity = 6,100
SetX = 7,229
SetY = 7,-256
SetX = 8,154
SetY = 8,-276
SetX = 9,234
SetY = 9,-196
SetX = 10,175
SetY = 10,-276
<Particle 3>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetX = 1,25
SetY = 1,-40
SetZ = 1,28
SetX = 2,64
SetY = 2,-79
SetX = 3,100
SetY = 3,-109
SetX = 4,139
SetY = 4,-139
SetX = 5,179
SetY = 5,-187
SetX = 6,214
SetY = 6,-237
SetX = 7,169
SetY = 7,-246
SetX = 8,225
SetY = 8,-217
SetX = 9,184
SetY = 9,-226
SetVisible = 10,false
<Particle 4>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetX = 2,34
SetY = 2,-40
SetZ = 2,29
SetX = 3,64
SetY = 3,-70
SetX = 4,104
SetY = 4,-89
SetX = 5,139
SetY = 5,-139
SetX = 6,179
SetY = 6,-196
SetX = 7,184
SetY = 8,-178
SetVisible = 9,false
<SE>
Play = 0,throw,80
Play = 2,throw,80
Play = 5,throw,80
Play = 5,Knock,80
Play = 7,Knock,80
Play = 8,throw,80
Play = 9,Knock,80
#-------------------------------
[Move,BULLETSEED,3]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 4>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetX = 2,34
SetY = 2,-40
SetZ = 2,29
SetX = 3,64
SetY = 3,-70
SetX = 4,104
SetY = 4,-89
SetX = 5,139
SetY = 5,-139
SetX = 6,179
SetY = 6,-196
SetX = 7,184
SetY = 8,-178
SetVisible = 9,false
<Particle 5>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetX = 3,34
SetY = 3,-29
SetZ = 3,30
SetX = 4,69
SetY = 4,-50
SetX = 5,104
SetY = 5,-89
SetX = 6,139
SetY = 6,-148
SetX = 7,144
SetVisible = 8,false
<Particle 6>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetX = 4,39
SetY = 4,-10
SetZ = 4,31
SetX = 5,69
SetY = 5,-50
SetX = 6,100
SetY = 6,-98
SetVisible = 7,false
<Particle 2>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetX = 0,25
SetY = 0,-40
SetZ = 0,27
SetX = 1,64
SetY = 1,-79
SetX = 2,94
SetY = 2,-118
SetX = 3,134
SetY = 3,-148
SetX = 4,179
SetY = 4,-187
SetX = 5,175
SetY = 5,-217
SetX = 6,159
SetY = 6,-246
SetOpacity = 6,100
SetX = 7,229
SetY = 7,-256
SetX = 8,154
SetY = 8,-276
SetX = 9,234
SetY = 9,-196
SetX = 10,175
SetY = 10,-276
<Particle 3>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetX = 1,25
SetY = 1,-40
SetZ = 1,28
SetX = 2,64
SetY = 2,-79
SetX = 3,100
SetY = 3,-109
SetX = 4,139
SetY = 4,-139
SetX = 5,179
SetY = 5,-187
SetX = 6,214
SetY = 6,-237
SetX = 7,169
SetY = 7,-246
SetX = 8,225
SetY = 8,-217
SetX = 9,184
SetY = 9,-226
SetVisible = 10,false
<SE>
Play = 0,throw,80
Play = 2,throw,80
Play = 5,throw,80
Play = 5,Knock,80
Play = 7,Knock,80
Play = 8,throw,80
Play = 9,Knock,80
#-------------------------------
[Move,BULLETSEED,4]
Name = Example anim
<User>
SetX = 0,0
SetY = 0,0
<Target>
SetX = 0,0
SetY = 0,0
<Particle 3>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetX = 1,25
SetY = 1,-40
SetZ = 1,28
SetX = 2,64
SetY = 2,-79
SetX = 3,100
SetY = 3,-109
SetX = 4,139
SetY = 4,-139
SetX = 5,179
SetY = 5,-187
SetX = 6,214
SetY = 6,-237
SetX = 7,169
SetY = 7,-246
SetX = 8,225
SetY = 8,-217
SetX = 9,184
SetY = 9,-226
SetVisible = 10,false
<Particle 4>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetX = 2,34
SetY = 2,-40
SetZ = 2,29
SetX = 3,64
SetY = 3,-70
SetX = 4,104
SetY = 4,-89
SetX = 5,139
SetY = 5,-139
SetX = 6,179
SetY = 6,-196
SetX = 7,184
SetY = 8,-178
SetVisible = 9,false
<Particle 5>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetX = 3,34
SetY = 3,-29
SetZ = 3,30
SetX = 4,69
SetY = 4,-50
SetX = 5,104
SetY = 5,-89
SetX = 6,139
SetY = 6,-148
SetX = 7,144
SetVisible = 8,false
<Particle 6>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetX = 4,39
SetY = 4,-10
SetZ = 4,31
SetX = 5,69
SetY = 5,-50
SetX = 6,100
SetY = 6,-98
SetVisible = 7,false
<Particle 2>
Graphic = Examples/leech-seed
Focus = UserAndTarget
SetX = 0,25
SetY = 0,-40
SetZ = 0,27
SetX = 1,64
SetY = 1,-79
SetX = 2,94
SetY = 2,-118
SetX = 3,134
SetY = 3,-148
SetX = 4,179
SetY = 4,-187
SetX = 5,175
SetY = 5,-217
SetX = 6,159
SetY = 6,-246
SetOpacity = 6,100
SetX = 7,229
SetY = 7,-256
SetX = 8,154
SetY = 8,-276
SetX = 9,234
SetY = 9,-196
SetX = 10,175
SetY = 10,-276
<SE>
Play = 0,throw,80
Play = 2,throw,80
Play = 5,throw,80
Play = 5,Knock,80
Play = 7,Knock,80
Play = 8,throw,80
Play = 9,Knock,80

Some files were not shown because too many files have changed in this diff Show More