mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-07 13:15:01 +00:00
Deprecated methods intended to work around filenames with accents, fixed crash when the Compiler wants to rewrite PBS files if they don't exist
This commit is contained in:
@@ -31,12 +31,9 @@ class Dir
|
|||||||
return files + subfolders
|
return files + subfolders
|
||||||
end
|
end
|
||||||
|
|
||||||
# Checks for existing directory, gets around accents
|
# Checks for existing directory
|
||||||
def self.safe?(dir)
|
def self.safe?(dir)
|
||||||
return false if !FileTest.directory?(dir)
|
return FileTest.directory?(dir)
|
||||||
ret = false
|
|
||||||
self.chdir(dir) { ret = true } rescue nil
|
|
||||||
return ret
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# Creates all the required directories for filename path
|
# Creates all the required directories for filename path
|
||||||
@@ -73,44 +70,20 @@ class Dir
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
#===============================================================================
|
|
||||||
# Extensions for file class
|
|
||||||
#===============================================================================
|
|
||||||
class File
|
|
||||||
# Checks for existing file, gets around accents
|
|
||||||
def self.safe?(file)
|
|
||||||
ret = false
|
|
||||||
self.open(file, "rb") { ret = true } rescue nil
|
|
||||||
return ret
|
|
||||||
end
|
|
||||||
|
|
||||||
# Checks for existing .rxdata file
|
|
||||||
def self.safeData?(file)
|
|
||||||
ret = (load_data(file) ? true : false) rescue false
|
|
||||||
return ret
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
# Checking for files and directories
|
# Checking for files and directories
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
# Works around a problem with FileTest.directory if directory contains accent marks
|
# Works around a problem with FileTest.directory if directory contains accent marks
|
||||||
|
# @deprecated This method is slated to be removed in v22.
|
||||||
def safeIsDirectory?(f)
|
def safeIsDirectory?(f)
|
||||||
ret = false
|
Deprecation.warn_method("safeIsDirectory?(f)", "v22", "FileTest.directory?(f)")
|
||||||
Dir.chdir(f) { ret = true } rescue nil
|
return FileTest.directory?(f)
|
||||||
return ret
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# Works around a problem with FileTest.exist if path contains accent marks
|
# @deprecated This method is slated to be removed in v22.
|
||||||
def safeExists?(f)
|
def safeExists?(f)
|
||||||
return FileTest.exist?(f) if f[/\A[\x20-\x7E]*\z/]
|
Deprecation.warn_method("safeExists?(f)", "v22", "FileTest.exist?(f)")
|
||||||
ret = false
|
return FileTest.exist?(f)
|
||||||
begin
|
|
||||||
File.open(f, "rb") { ret = true }
|
|
||||||
rescue Errno::ENOENT, Errno::EINVAL, Errno::EACCES
|
|
||||||
ret = false
|
|
||||||
end
|
|
||||||
return ret
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# Similar to "Dir.glob", but designed to work around a problem with accessing
|
# Similar to "Dir.glob", but designed to work around a problem with accessing
|
||||||
@@ -211,9 +184,9 @@ module RTP
|
|||||||
def self.exists?(filename, extensions = [])
|
def self.exists?(filename, extensions = [])
|
||||||
return false if nil_or_empty?(filename)
|
return false if nil_or_empty?(filename)
|
||||||
eachPathFor(filename) do |path|
|
eachPathFor(filename) do |path|
|
||||||
return true if safeExists?(path)
|
return true if FileTest.exist?(path)
|
||||||
extensions.each do |ext|
|
extensions.each do |ext|
|
||||||
return true if safeExists?(path + ext)
|
return true if FileTest.exist?(path + ext)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return false
|
return false
|
||||||
@@ -230,10 +203,10 @@ module RTP
|
|||||||
def self.getPath(filename, extensions = [])
|
def self.getPath(filename, extensions = [])
|
||||||
return filename if nil_or_empty?(filename)
|
return filename if nil_or_empty?(filename)
|
||||||
eachPathFor(filename) do |path|
|
eachPathFor(filename) do |path|
|
||||||
return path if safeExists?(path)
|
return path if FileTest.exist?(path)
|
||||||
extensions.each do |ext|
|
extensions.each do |ext|
|
||||||
file = path + ext
|
file = path + ext
|
||||||
return file if safeExists?(file)
|
return file if FileTest.exist?(file)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return filename
|
return filename
|
||||||
@@ -307,9 +280,9 @@ end
|
|||||||
# NOTE: pbGetFileChar checks anything added in MKXP's RTP setting, and matching
|
# NOTE: pbGetFileChar checks anything added in MKXP's RTP setting, and matching
|
||||||
# mount points added through System.mount.
|
# mount points added through System.mount.
|
||||||
def pbRgssExists?(filename)
|
def pbRgssExists?(filename)
|
||||||
return !pbGetFileChar(filename).nil? if safeExists?("./Game.rgssad")
|
return !pbGetFileChar(filename).nil? if FileTest.exist?("./Game.rgssad")
|
||||||
filename = canonicalize(filename)
|
filename = canonicalize(filename)
|
||||||
return safeExists?(filename)
|
return FileTest.exist?(filename)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Opens an IO, even if the file is in an encrypted archive.
|
# Opens an IO, even if the file is in an encrypted archive.
|
||||||
@@ -318,7 +291,7 @@ end
|
|||||||
# mount points added through System.mount.
|
# mount points added through System.mount.
|
||||||
def pbRgssOpen(file, mode = nil)
|
def pbRgssOpen(file, mode = nil)
|
||||||
# File.open("debug.txt", "ab") { |fw| fw.write([file, mode, Time.now.to_f].inspect + "\r\n") }
|
# File.open("debug.txt", "ab") { |fw| fw.write([file, mode, Time.now.to_f].inspect + "\r\n") }
|
||||||
if !safeExists?("./Game.rgssad")
|
if !FileTest.exist?("./Game.rgssad")
|
||||||
if block_given?
|
if block_given?
|
||||||
File.open(file, mode) { |f| yield f }
|
File.open(file, mode) { |f| yield f }
|
||||||
return nil
|
return nil
|
||||||
@@ -341,8 +314,8 @@ end
|
|||||||
# encrypted archives.
|
# encrypted archives.
|
||||||
def pbGetFileChar(file)
|
def pbGetFileChar(file)
|
||||||
canon_file = canonicalize(file)
|
canon_file = canonicalize(file)
|
||||||
if !safeExists?("./Game.rgssad")
|
if !FileTest.exist?("./Game.rgssad")
|
||||||
return nil if !safeExists?(canon_file)
|
return nil if !FileTest.exist?(canon_file)
|
||||||
return nil if file.last == "/" # Is a directory
|
return nil if file.last == "/" # Is a directory
|
||||||
begin
|
begin
|
||||||
File.open(canon_file, "rb") { |f| return f.read(1) } # read one byte
|
File.open(canon_file, "rb") { |f| return f.read(1) } # read one byte
|
||||||
@@ -370,8 +343,8 @@ end
|
|||||||
# mount points added through System.mount.
|
# mount points added through System.mount.
|
||||||
def pbGetFileString(file)
|
def pbGetFileString(file)
|
||||||
file = canonicalize(file)
|
file = canonicalize(file)
|
||||||
if !safeExists?("./Game.rgssad")
|
if !FileTest.exist?("./Game.rgssad")
|
||||||
return nil if !safeExists?(file)
|
return nil if !FileTest.exist?(file)
|
||||||
begin
|
begin
|
||||||
File.open(file, "rb") { |f| return f.read } # read all data
|
File.open(file, "rb") { |f| return f.read } # read all data
|
||||||
rescue Errno::ENOENT, Errno::EINVAL, Errno::EACCES
|
rescue Errno::ENOENT, Errno::EINVAL, Errno::EACCES
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ module Translator
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
# Get script texts from plugin script files
|
# Get script texts from plugin script files
|
||||||
if safeExists?("Data/PluginScripts.rxdata")
|
if FileTest.exist?("Data/PluginScripts.rxdata")
|
||||||
plugin_scripts = load_data("Data/PluginScripts.rxdata")
|
plugin_scripts = load_data("Data/PluginScripts.rxdata")
|
||||||
plugin_scripts.each do |plugin|
|
plugin_scripts.each do |plugin|
|
||||||
plugin[2].each do |script|
|
plugin[2].each do |script|
|
||||||
@@ -511,12 +511,12 @@ class Translation
|
|||||||
def load_message_files(filename)
|
def load_message_files(filename)
|
||||||
begin
|
begin
|
||||||
core_filename = sprintf("Data/messages_%s_core.dat", filename)
|
core_filename = sprintf("Data/messages_%s_core.dat", filename)
|
||||||
if safeExists?(core_filename)
|
if FileTest.exist?(core_filename)
|
||||||
pbRgssOpen(core_filename, "rb") { |f| @core_messages = Marshal.load(f) }
|
pbRgssOpen(core_filename, "rb") { |f| @core_messages = Marshal.load(f) }
|
||||||
end
|
end
|
||||||
@core_messages = nil if !@core_messages.is_a?(Array)
|
@core_messages = nil if !@core_messages.is_a?(Array)
|
||||||
game_filename = sprintf("Data/messages_%s_game.dat", filename)
|
game_filename = sprintf("Data/messages_%s_game.dat", filename)
|
||||||
if safeExists?(game_filename)
|
if FileTest.exist?(game_filename)
|
||||||
pbRgssOpen(game_filename, "rb") { |f| @game_messages = Marshal.load(f) }
|
pbRgssOpen(game_filename, "rb") { |f| @game_messages = Marshal.load(f) }
|
||||||
end
|
end
|
||||||
@game_messages = nil if !@game_messages.is_a?(Array)
|
@game_messages = nil if !@game_messages.is_a?(Array)
|
||||||
@@ -529,11 +529,11 @@ class Translation
|
|||||||
def load_default_messages
|
def load_default_messages
|
||||||
return if @default_core_messages
|
return if @default_core_messages
|
||||||
begin
|
begin
|
||||||
if safeExists?("Data/messages_core.dat")
|
if FileTest.exist?("Data/messages_core.dat")
|
||||||
pbRgssOpen("Data/messages_core.dat", "rb") { |f| @default_core_messages = Marshal.load(f) }
|
pbRgssOpen("Data/messages_core.dat", "rb") { |f| @default_core_messages = Marshal.load(f) }
|
||||||
end
|
end
|
||||||
@default_core_messages = [] if !@default_core_messages.is_a?(Array)
|
@default_core_messages = [] if !@default_core_messages.is_a?(Array)
|
||||||
if safeExists?("Data/messages_game.dat")
|
if FileTest.exist?("Data/messages_game.dat")
|
||||||
pbRgssOpen("Data/messages_game.dat", "rb") { |f| @default_game_messages = Marshal.load(f) }
|
pbRgssOpen("Data/messages_game.dat", "rb") { |f| @default_game_messages = Marshal.load(f) }
|
||||||
end
|
end
|
||||||
@default_game_messages = [] if !@default_game_messages.is_a?(Array)
|
@default_game_messages = [] if !@default_game_messages.is_a?(Array)
|
||||||
|
|||||||
@@ -471,7 +471,7 @@ module PluginManager
|
|||||||
|
|
||||||
# Get a list of all the plugin directories to inspect
|
# Get a list of all the plugin directories to inspect
|
||||||
def self.listAll
|
def self.listAll
|
||||||
return [] if !$DEBUG || safeExists?("Game.rgssad") || !Dir.safe?("Plugins")
|
return [] if !$DEBUG || FileTest.exist?("Game.rgssad") || !Dir.safe?("Plugins")
|
||||||
# get a list of all directories in the `Plugins/` folder
|
# get a list of all directories in the `Plugins/` folder
|
||||||
dirs = []
|
dirs = []
|
||||||
Dir.get("Plugins").each { |d| dirs.push(d) if Dir.safe?(d) }
|
Dir.get("Plugins").each { |d| dirs.push(d) if Dir.safe?(d) }
|
||||||
@@ -534,7 +534,7 @@ module PluginManager
|
|||||||
# plugins.
|
# plugins.
|
||||||
self.listAll.each do |dir|
|
self.listAll.each do |dir|
|
||||||
# skip if there is no meta file
|
# skip if there is no meta file
|
||||||
next if !safeExists?(dir + "/meta.txt")
|
next if !FileTest.exist?(dir + "/meta.txt")
|
||||||
ndx = order.length
|
ndx = order.length
|
||||||
meta = self.readMeta(dir, "meta.txt")
|
meta = self.readMeta(dir, "meta.txt")
|
||||||
meta[:dir] = dir
|
meta[:dir] = dir
|
||||||
@@ -556,8 +556,8 @@ module PluginManager
|
|||||||
# Check if plugins need compiling
|
# Check if plugins need compiling
|
||||||
def self.needCompiling?(order, plugins)
|
def self.needCompiling?(order, plugins)
|
||||||
# fixed actions
|
# fixed actions
|
||||||
return false if !$DEBUG || safeExists?("Game.rgssad")
|
return false if !$DEBUG || FileTest.exist?("Game.rgssad")
|
||||||
return true if !safeExists?("Data/PluginScripts.rxdata")
|
return true if !FileTest.exist?("Data/PluginScripts.rxdata")
|
||||||
Input.update
|
Input.update
|
||||||
return true if Input.press?(Input::SHIFT) || Input.press?(Input::CTRL)
|
return true if Input.press?(Input::SHIFT) || Input.press?(Input::CTRL)
|
||||||
# analyze whether or not to push recompile
|
# analyze whether or not to push recompile
|
||||||
@@ -655,7 +655,7 @@ module PluginManager
|
|||||||
# go through the plugins folder
|
# go through the plugins folder
|
||||||
Dir.get("Plugins").each do |dir|
|
Dir.get("Plugins").each do |dir|
|
||||||
next if !Dir.safe?(dir)
|
next if !Dir.safe?(dir)
|
||||||
next if !safeExists?(dir + "/meta.txt")
|
next if !FileTest.exist?(dir + "/meta.txt")
|
||||||
# read meta
|
# read meta
|
||||||
meta = self.readMeta(dir, "meta.txt")
|
meta = self.readMeta(dir, "meta.txt")
|
||||||
return dir if meta[:name] == name
|
return dir if meta[:name] == name
|
||||||
|
|||||||
@@ -83,20 +83,20 @@ end
|
|||||||
|
|
||||||
# Gets the length of an audio file in seconds. Supports WAV, MP3, and OGG files.
|
# Gets the length of an audio file in seconds. Supports WAV, MP3, and OGG files.
|
||||||
def getPlayTime(filename)
|
def getPlayTime(filename)
|
||||||
if safeExists?(filename)
|
if FileTest.exist?(filename)
|
||||||
return [getPlayTime2(filename), 0].max
|
return [getPlayTime2(filename), 0].max
|
||||||
elsif safeExists?(filename + ".wav")
|
elsif FileTest.exist?(filename + ".wav")
|
||||||
return [getPlayTime2(filename + ".wav"), 0].max
|
return [getPlayTime2(filename + ".wav"), 0].max
|
||||||
elsif safeExists?(filename + ".mp3")
|
elsif FileTest.exist?(filename + ".mp3")
|
||||||
return [getPlayTime2(filename + ".mp3"), 0].max
|
return [getPlayTime2(filename + ".mp3"), 0].max
|
||||||
elsif safeExists?(filename + ".ogg")
|
elsif FileTest.exist?(filename + ".ogg")
|
||||||
return [getPlayTime2(filename + ".ogg"), 0].max
|
return [getPlayTime2(filename + ".ogg"), 0].max
|
||||||
end
|
end
|
||||||
return 0
|
return 0
|
||||||
end
|
end
|
||||||
|
|
||||||
def getPlayTime2(filename)
|
def getPlayTime2(filename)
|
||||||
return -1 if !safeExists?(filename)
|
return -1 if !FileTest.exist?(filename)
|
||||||
time = -1
|
time = -1
|
||||||
fgetdw = proc { |file|
|
fgetdw = proc { |file|
|
||||||
(file.eof? ? 0 : (file.read(4).unpack("V")[0] || 0))
|
(file.eof? ? 0 : (file.read(4).unpack("V")[0] || 0))
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ module GameData
|
|||||||
|
|
||||||
singleton_class.alias_method(:__orig__load, :load) unless singleton_class.method_defined?(:__orig__load)
|
singleton_class.alias_method(:__orig__load, :load) unless singleton_class.method_defined?(:__orig__load)
|
||||||
def self.load
|
def self.load
|
||||||
__orig__load if safeExists?("Data/#{self::DATA_FILENAME}")
|
__orig__load if FileTest.exist?("Data/#{self::DATA_FILENAME}")
|
||||||
end
|
end
|
||||||
|
|
||||||
# @param species [Symbol, self, String]
|
# @param species [Symbol, self, String]
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ def pbEditMysteryGift(type, item, id = 0, giftname = "")
|
|||||||
if id == 0
|
if id == 0
|
||||||
master = []
|
master = []
|
||||||
idlist = []
|
idlist = []
|
||||||
if safeExists?("MysteryGiftMaster.txt")
|
if FileTest.exist?("MysteryGiftMaster.txt")
|
||||||
master = IO.read("MysteryGiftMaster.txt")
|
master = IO.read("MysteryGiftMaster.txt")
|
||||||
master = pbMysteryGiftDecrypt(master)
|
master = pbMysteryGiftDecrypt(master)
|
||||||
end
|
end
|
||||||
@@ -101,7 +101,7 @@ def pbCreateMysteryGift(type, item)
|
|||||||
gift = pbEditMysteryGift(type, item)
|
gift = pbEditMysteryGift(type, item)
|
||||||
if gift
|
if gift
|
||||||
begin
|
begin
|
||||||
if safeExists?("MysteryGiftMaster.txt")
|
if FileTest.exist?("MysteryGiftMaster.txt")
|
||||||
master = IO.read("MysteryGiftMaster.txt")
|
master = IO.read("MysteryGiftMaster.txt")
|
||||||
master = pbMysteryGiftDecrypt(master)
|
master = pbMysteryGiftDecrypt(master)
|
||||||
master.push(gift)
|
master.push(gift)
|
||||||
@@ -124,7 +124,7 @@ end
|
|||||||
# file to be uploaded.
|
# file to be uploaded.
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
def pbManageMysteryGifts
|
def pbManageMysteryGifts
|
||||||
if !safeExists?("MysteryGiftMaster.txt")
|
if !FileTest.exist?("MysteryGiftMaster.txt")
|
||||||
pbMessage(_INTL("There are no Mystery Gifts defined."))
|
pbMessage(_INTL("There are no Mystery Gifts defined."))
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -14,10 +14,10 @@ def pbGetLegalMoves(species)
|
|||||||
end
|
end
|
||||||
|
|
||||||
def pbSafeCopyFile(x, y, z = nil)
|
def pbSafeCopyFile(x, y, z = nil)
|
||||||
if safeExists?(x)
|
if FileTest.exist?(x)
|
||||||
safetocopy = true
|
safetocopy = true
|
||||||
filedata = nil
|
filedata = nil
|
||||||
if safeExists?(y)
|
if FileTest.exist?(y)
|
||||||
different = false
|
different = false
|
||||||
if FileTest.size(x) == FileTest.size(y)
|
if FileTest.size(x) == FileTest.size(y)
|
||||||
filedata2 = ""
|
filedata2 = ""
|
||||||
|
|||||||
@@ -596,10 +596,10 @@ end
|
|||||||
|
|
||||||
def pbImportAllAnimations
|
def pbImportAllAnimations
|
||||||
animationFolders = []
|
animationFolders = []
|
||||||
if safeIsDirectory?("Animations")
|
if FileTest.directory?("Animations")
|
||||||
Dir.foreach("Animations") do |fb|
|
Dir.foreach("Animations") do |fb|
|
||||||
f = "Animations/" + fb
|
f = "Animations/" + fb
|
||||||
animationFolders.push(f) if safeIsDirectory?(f) && fb != "." && fb != ".."
|
animationFolders.push(f) if FileTest.directory?(f) && fb != "." && fb != ".."
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if animationFolders.length == 0
|
if animationFolders.length == 0
|
||||||
@@ -639,14 +639,14 @@ def pbImportAllAnimations
|
|||||||
textdata.id = -1 # This is not an RPG Maker XP animation
|
textdata.id = -1 # This is not an RPG Maker XP animation
|
||||||
BattleAnimationEditor.pbConvertAnimToNewFormat(textdata)
|
BattleAnimationEditor.pbConvertAnimToNewFormat(textdata)
|
||||||
if textdata.graphic && textdata.graphic != "" &&
|
if textdata.graphic && textdata.graphic != "" &&
|
||||||
!safeExists?(folder + "/" + textdata.graphic) &&
|
!FileTest.exist?(folder + "/" + textdata.graphic) &&
|
||||||
!FileTest.image_exist?("Graphics/Animations/" + textdata.graphic)
|
!FileTest.image_exist?("Graphics/Animations/" + textdata.graphic)
|
||||||
textdata.graphic = ""
|
textdata.graphic = ""
|
||||||
missingFiles.push(textdata.graphic)
|
missingFiles.push(textdata.graphic)
|
||||||
end
|
end
|
||||||
textdata.timing.each do |timing|
|
textdata.timing.each do |timing|
|
||||||
next if !timing.name || timing.name == "" ||
|
next if !timing.name || timing.name == "" ||
|
||||||
safeExists?(folder + "/" + timing.name) ||
|
FileTest.exist?(folder + "/" + timing.name) ||
|
||||||
FileTest.audio_exist?("Audio/SE/Anim/" + timing.name)
|
FileTest.audio_exist?("Audio/SE/Anim/" + timing.name)
|
||||||
timing.name = ""
|
timing.name = ""
|
||||||
missingFiles.push(timing.name)
|
missingFiles.push(timing.name)
|
||||||
|
|||||||
@@ -1018,7 +1018,7 @@ module Compiler
|
|||||||
Console.echo_li(_INTL("Saving messages..."))
|
Console.echo_li(_INTL("Saving messages..."))
|
||||||
Translator.gather_script_and_event_texts
|
Translator.gather_script_and_event_texts
|
||||||
MessageTypes.save_default_messages
|
MessageTypes.save_default_messages
|
||||||
MessageTypes.load_default_messages if safeExists?("Data/messages_core.dat")
|
MessageTypes.load_default_messages if FileTest.exist?("Data/messages_core.dat")
|
||||||
Console.echo_done(true)
|
Console.echo_done(true)
|
||||||
Console.echoln_li_done(_INTL("Successfully compiled all game data"))
|
Console.echoln_li_done(_INTL("Successfully compiled all game data"))
|
||||||
end
|
end
|
||||||
@@ -1026,6 +1026,14 @@ module Compiler
|
|||||||
def main
|
def main
|
||||||
return if !$DEBUG
|
return if !$DEBUG
|
||||||
begin
|
begin
|
||||||
|
mustCompile = false
|
||||||
|
# If no PBS file, create one and fill it, then recompile
|
||||||
|
if !FileTest.directory?("PBS")
|
||||||
|
Dir.mkdir("PBS") rescue nil
|
||||||
|
GameData.load_all
|
||||||
|
write_all
|
||||||
|
mustCompile = true
|
||||||
|
end
|
||||||
# Get all data files and PBS files to be checked for their last modified times
|
# Get all data files and PBS files to be checked for their last modified times
|
||||||
data_files = GameData.get_all_data_filenames
|
data_files = GameData.get_all_data_filenames
|
||||||
data_files += [ # Extra .dat files for data that isn't a GameData class
|
data_files += [ # Extra .dat files for data that isn't a GameData class
|
||||||
@@ -1036,19 +1044,11 @@ module Compiler
|
|||||||
text_files = get_all_pbs_files_to_compile
|
text_files = get_all_pbs_files_to_compile
|
||||||
latestDataTime = 0
|
latestDataTime = 0
|
||||||
latestTextTime = 0
|
latestTextTime = 0
|
||||||
mustCompile = false
|
|
||||||
# Should recompile if new maps were imported
|
# Should recompile if new maps were imported
|
||||||
mustCompile |= import_new_maps
|
mustCompile |= import_new_maps
|
||||||
# If no PBS file, create one and fill it, then recompile
|
|
||||||
if !safeIsDirectory?("PBS")
|
|
||||||
Dir.mkdir("PBS") rescue nil
|
|
||||||
GameData.load_all
|
|
||||||
write_all
|
|
||||||
mustCompile = true
|
|
||||||
end
|
|
||||||
# Check data files for their latest modify time
|
# Check data files for their latest modify time
|
||||||
data_files.each do |filename| # filename = [string, boolean (whether mandatory)]
|
data_files.each do |filename| # filename = [string, boolean (whether mandatory)]
|
||||||
if safeExists?("Data/" + filename[0])
|
if FileTest.exist?("Data/" + filename[0])
|
||||||
begin
|
begin
|
||||||
File.open("Data/#{filename[0]}") do |file|
|
File.open("Data/#{filename[0]}") do |file|
|
||||||
latestDataTime = [latestDataTime, file.mtime.to_i].max
|
latestDataTime = [latestDataTime, file.mtime.to_i].max
|
||||||
@@ -1080,7 +1080,7 @@ module Compiler
|
|||||||
if mustCompile
|
if mustCompile
|
||||||
data_files.each do |filename|
|
data_files.each do |filename|
|
||||||
begin
|
begin
|
||||||
File.delete("Data/#{filename[0]}") if safeExists?("Data/#{filename[0]}")
|
File.delete("Data/#{filename[0]}") if FileTest.exist?("Data/#{filename[0]}")
|
||||||
rescue SystemCallError
|
rescue SystemCallError
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -1093,7 +1093,7 @@ module Compiler
|
|||||||
pbPrintException(e)
|
pbPrintException(e)
|
||||||
data_files.each do |filename|
|
data_files.each do |filename|
|
||||||
begin
|
begin
|
||||||
File.delete("Data/#{filename[0]}") if safeExists?("Data/#{filename[0]}")
|
File.delete("Data/#{filename[0]}") if FileTest.exist?("Data/#{filename[0]}")
|
||||||
rescue SystemCallError
|
rescue SystemCallError
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module Compiler
|
|||||||
|
|
||||||
def compile_PBS_file_generic(game_data, *paths)
|
def compile_PBS_file_generic(game_data, *paths)
|
||||||
if game_data.const_defined?(:OPTIONAL) && game_data::OPTIONAL
|
if game_data.const_defined?(:OPTIONAL) && game_data::OPTIONAL
|
||||||
return if paths.none? { |p| safeExists?(p) }
|
return if paths.none? { |p| FileTest.exist?(p) }
|
||||||
end
|
end
|
||||||
game_data::DATA.clear
|
game_data::DATA.clear
|
||||||
schema = game_data.schema
|
schema = game_data.schema
|
||||||
@@ -947,7 +947,7 @@ module Compiler
|
|||||||
"Pokemon" => [1, "s"],
|
"Pokemon" => [1, "s"],
|
||||||
"Challenges" => [2, "*s"]
|
"Challenges" => [2, "*s"]
|
||||||
}
|
}
|
||||||
if !safeExists?(path)
|
if !FileTest.exist?(path)
|
||||||
File.open(path, "wb") do |f|
|
File.open(path, "wb") do |f|
|
||||||
f.write(0xEF.chr)
|
f.write(0xEF.chr)
|
||||||
f.write(0xBB.chr)
|
f.write(0xBB.chr)
|
||||||
@@ -987,12 +987,12 @@ module Compiler
|
|||||||
rsection[3] = rsection[0]
|
rsection[3] = rsection[0]
|
||||||
rsection[4] = rsection[1]
|
rsection[4] = rsection[1]
|
||||||
rsection[5] = (name == "DefaultTrainerList")
|
rsection[5] = (name == "DefaultTrainerList")
|
||||||
if safeExists?("PBS/" + rsection[0])
|
if FileTest.exist?("PBS/" + rsection[0])
|
||||||
rsection[0] = compile_battle_tower_trainers("PBS/" + rsection[0])
|
rsection[0] = compile_battle_tower_trainers("PBS/" + rsection[0])
|
||||||
else
|
else
|
||||||
rsection[0] = []
|
rsection[0] = []
|
||||||
end
|
end
|
||||||
if safeExists?("PBS/" + rsection[1])
|
if FileTest.exist?("PBS/" + rsection[1])
|
||||||
filename = "PBS/" + rsection[1]
|
filename = "PBS/" + rsection[1]
|
||||||
rsection[1] = []
|
rsection[1] = []
|
||||||
pbCompilerEachCommentedLine(filename) do |line, _lineno|
|
pbCompilerEachCommentedLine(filename) do |line, _lineno|
|
||||||
@@ -1027,7 +1027,7 @@ module Compiler
|
|||||||
beginspeech = []
|
beginspeech = []
|
||||||
endspeechwin = []
|
endspeechwin = []
|
||||||
endspeechlose = []
|
endspeechlose = []
|
||||||
if safeExists?(filename)
|
if FileTest.exist?(filename)
|
||||||
File.open(filename, "rb") do |f|
|
File.open(filename, "rb") do |f|
|
||||||
FileLineData.file = filename
|
FileLineData.file = filename
|
||||||
pbEachFileSection(f) do |section, name|
|
pbEachFileSection(f) do |section, name|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ end
|
|||||||
|
|
||||||
def mainFunctionDebug
|
def mainFunctionDebug
|
||||||
begin
|
begin
|
||||||
MessageTypes.load_default_messages if safeExists?("Data/messages_core.dat")
|
MessageTypes.load_default_messages if FileTest.exist?("Data/messages_core.dat")
|
||||||
PluginManager.runPlugins
|
PluginManager.runPlugins
|
||||||
Compiler.main
|
Compiler.main
|
||||||
Game.initialize
|
Game.initialize
|
||||||
|
|||||||
@@ -185,7 +185,7 @@ RockSmash,50
|
|||||||
90,NOSEPASS,13,14
|
90,NOSEPASS,13,14
|
||||||
10,GEODUDE,12,15
|
10,GEODUDE,12,15
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[049] # Rock Cave
|
[049] # Rock Cave 1F
|
||||||
Cave,5
|
Cave,5
|
||||||
20,MAGNETON,14,16
|
20,MAGNETON,14,16
|
||||||
20,MAGNETON,14,17
|
20,MAGNETON,14,17
|
||||||
@@ -194,7 +194,7 @@ Cave,5
|
|||||||
10,GEODUDE,13,15
|
10,GEODUDE,13,15
|
||||||
10,MAWILE,14,16
|
10,MAWILE,14,16
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[050] # Rock Cave
|
[050] # Rock Cave B1F
|
||||||
Cave,5
|
Cave,5
|
||||||
20,MAGNETON,14,16
|
20,MAGNETON,14,16
|
||||||
20,MAGNETON,14,17
|
20,MAGNETON,14,17
|
||||||
@@ -212,7 +212,7 @@ Cave,5
|
|||||||
10,RIOLU,1
|
10,RIOLU,1
|
||||||
10,TYROGUE,1
|
10,TYROGUE,1
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[066] # Safari Zone
|
[066] # Safari Zone outside
|
||||||
Land,21
|
Land,21
|
||||||
20,ABRA,12,15
|
20,ABRA,12,15
|
||||||
20,DODUO,13,15
|
20,DODUO,13,15
|
||||||
@@ -282,7 +282,7 @@ SuperRod
|
|||||||
15,CORSOLA,15,18
|
15,CORSOLA,15,18
|
||||||
5,STARYU,15,17
|
5,STARYU,15,17
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[070] # Underwater
|
[070] # Route 8 underwater
|
||||||
Land,21
|
Land,21
|
||||||
20,CHINCHOU,17,21
|
20,CHINCHOU,17,21
|
||||||
20,CLAMPERL,18,20
|
20,CLAMPERL,18,20
|
||||||
|
|||||||
@@ -2511,8 +2511,8 @@ Description = One of a variety of mysterious Mega Stones. Have Venusaur hold it,
|
|||||||
Name = Charizardite X
|
Name = Charizardite X
|
||||||
NamePlural = Charizardite Xs
|
NamePlural = Charizardite Xs
|
||||||
Pocket = 1
|
Pocket = 1
|
||||||
BPPrice = 50
|
|
||||||
Price = 0
|
Price = 0
|
||||||
|
BPPrice = 50
|
||||||
Flags = MegaStone,Fling_80
|
Flags = MegaStone,Fling_80
|
||||||
Description = One of a variety of mysterious Mega Stones. Have Charizard hold it, and it will be able to Mega Evolve.
|
Description = One of a variety of mysterious Mega Stones. Have Charizard hold it, and it will be able to Mega Evolve.
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
# See the documentation on the wiki to learn how to edit this file.
|
# See the documentation on the wiki to learn how to edit this file.
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
# Route 5 (41) - Route 4 (40)
|
# Route 5 (41) - Route 4 Cycling Road (40)
|
||||||
41,N,0,40,S,0
|
41,N,0,40,S,0
|
||||||
# Route 5 (41) - Route 6 (45)
|
# Route 5 (41) - Route 6 Cycling Road (45)
|
||||||
41,S,6,45,N,0
|
41,S,6,45,N,0
|
||||||
# Route 6 (44) - Route 1 (5)
|
# Route 6 (44) - Route 1 (5)
|
||||||
44,S,43,5,N,0
|
44,S,43,5,N,0
|
||||||
# Safari Zone (66) - Route 1 (5)
|
# Safari Zone outside (66) - Route 1 (5)
|
||||||
66,N,18,5,S,0
|
66,N,18,5,S,0
|
||||||
# Cedolan City (7) - Route 1 (5)
|
# Cedolan City (7) - Route 1 (5)
|
||||||
7,S,0,5,N,2
|
7,S,0,5,N,2
|
||||||
@@ -14,11 +14,11 @@
|
|||||||
2,N,0,5,S,4
|
2,N,0,5,S,4
|
||||||
# Cedolan City (7) - Route 6 (44)
|
# Cedolan City (7) - Route 6 (44)
|
||||||
7,W,5,44,E,0
|
7,W,5,44,E,0
|
||||||
# Lappet Town (2) - Safari Zone (66)
|
# Lappet Town (2) - Safari Zone outside (66)
|
||||||
2,W,0,66,E,0
|
2,W,0,66,E,0
|
||||||
# Route 8 (69) - Safari Zone (66)
|
# Route 8 (69) - Safari Zone outside (66)
|
||||||
69,N,0,66,S,10
|
69,N,0,66,S,10
|
||||||
# Ingido Plateau (35) - Route 4 (39)
|
# Ingido Plateau outside (35) - Route 4 (39)
|
||||||
35,W,11,39,E,0
|
35,W,11,39,E,0
|
||||||
# Cedolan City (7) - Lerucean Town (23)
|
# Cedolan City (7) - Lerucean Town (23)
|
||||||
7,E,0,23,W,78
|
7,E,0,23,W,78
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
47,W,0,7,E,0
|
47,W,0,7,E,0
|
||||||
# Route 2 (21) - Cedolan City (7)
|
# Route 2 (21) - Cedolan City (7)
|
||||||
21,S,0,7,N,21
|
21,S,0,7,N,21
|
||||||
# Route 3 (31) - Ingido Plateau (35)
|
# Route 3 (31) - Ingido Plateau outside (35)
|
||||||
31,W,0,35,E,10
|
31,W,0,35,E,10
|
||||||
# Route 8 (69) - Lappet Town (2)
|
# Route 8 (69) - Lappet Town (2)
|
||||||
69,N,12,2,S,0
|
69,N,12,2,S,0
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ MapPosition = 0,13,12
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[004] # Pokémon Lab
|
[004] # Pokémon Lab
|
||||||
Name = Pokémon Lab
|
Name = Pokémon Lab
|
||||||
ShowArea = false
|
|
||||||
MapPosition = 0,13,12
|
MapPosition = 0,13,12
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[005] # Route 1
|
[005] # Route 1
|
||||||
|
|||||||
100
PBS/pokemon.txt
100
PBS/pokemon.txt
@@ -5284,6 +5284,7 @@ Evolutions = MISMAGIUS,Item,DUSKSTONE
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[UNOWN]
|
[UNOWN]
|
||||||
Name = Unown
|
Name = Unown
|
||||||
|
FormName = A
|
||||||
Types = PSYCHIC
|
Types = PSYCHIC
|
||||||
BaseStats = 48,72,48,48,72,48
|
BaseStats = 48,72,48,48,72,48
|
||||||
GenderRatio = Genderless
|
GenderRatio = Genderless
|
||||||
@@ -5304,7 +5305,6 @@ Shape = Head
|
|||||||
Habitat = Rare
|
Habitat = Rare
|
||||||
Category = Symbol
|
Category = Symbol
|
||||||
Pokedex = This Pokémon is shaped like ancient text characters. Although research is ongoing, it is a mystery as to which came first, the ancient writings or the various Unown.
|
Pokedex = This Pokémon is shaped like ancient text characters. Although research is ongoing, it is a mystery as to which came first, the ancient writings or the various Unown.
|
||||||
FormName = A
|
|
||||||
Generation = 2
|
Generation = 2
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[WOBBUFFET]
|
[WOBBUFFET]
|
||||||
@@ -9249,6 +9249,7 @@ Generation = 3
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[CASTFORM]
|
[CASTFORM]
|
||||||
Name = Castform
|
Name = Castform
|
||||||
|
FormName = Normal Form
|
||||||
Types = NORMAL
|
Types = NORMAL
|
||||||
BaseStats = 70,70,70,70,70,70
|
BaseStats = 70,70,70,70,70,70
|
||||||
GenderRatio = Female50Percent
|
GenderRatio = Female50Percent
|
||||||
@@ -9270,7 +9271,6 @@ Shape = Head
|
|||||||
Habitat = Grassland
|
Habitat = Grassland
|
||||||
Category = Weather
|
Category = Weather
|
||||||
Pokedex = It alters its form depending on the weather. Changes in the climate such as the temperature and humidity appear to affect its cellular structure.
|
Pokedex = It alters its form depending on the weather. Changes in the climate such as the temperature and humidity appear to affect its cellular structure.
|
||||||
FormName = Normal Form
|
|
||||||
Generation = 3
|
Generation = 3
|
||||||
WildItemCommon = MYSTICWATER
|
WildItemCommon = MYSTICWATER
|
||||||
WildItemUncommon = MYSTICWATER
|
WildItemUncommon = MYSTICWATER
|
||||||
@@ -10176,6 +10176,7 @@ WildItemRare = STARPIECE
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[DEOXYS]
|
[DEOXYS]
|
||||||
Name = Deoxys
|
Name = Deoxys
|
||||||
|
FormName = Normal Forme
|
||||||
Types = PSYCHIC
|
Types = PSYCHIC
|
||||||
BaseStats = 50,150,50,150,150,50
|
BaseStats = 50,150,50,150,150,50
|
||||||
GenderRatio = Genderless
|
GenderRatio = Genderless
|
||||||
@@ -10196,7 +10197,6 @@ Shape = Bipedal
|
|||||||
Habitat = Rare
|
Habitat = Rare
|
||||||
Category = DNA
|
Category = DNA
|
||||||
Pokedex = A Pokémon that mutated from an extraterrestrial virus exposed to a laser beam. Its body is configured for superior agility and speed.
|
Pokedex = A Pokémon that mutated from an extraterrestrial virus exposed to a laser beam. Its body is configured for superior agility and speed.
|
||||||
FormName = Normal Forme
|
|
||||||
Generation = 3
|
Generation = 3
|
||||||
Flags = Mythical
|
Flags = Mythical
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
@@ -10831,6 +10831,7 @@ Generation = 4
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[BURMY]
|
[BURMY]
|
||||||
Name = Burmy
|
Name = Burmy
|
||||||
|
FormName = Plant Cloak
|
||||||
Types = BUG
|
Types = BUG
|
||||||
BaseStats = 40,29,45,36,29,45
|
BaseStats = 40,29,45,36,29,45
|
||||||
GenderRatio = Female50Percent
|
GenderRatio = Female50Percent
|
||||||
@@ -10851,13 +10852,13 @@ Color = Green
|
|||||||
Shape = HeadBase
|
Shape = HeadBase
|
||||||
Category = Bagworm
|
Category = Bagworm
|
||||||
Pokedex = To shelter itself from cold, wintry winds, it covers itself with a cloak made of twigs and leaves.
|
Pokedex = To shelter itself from cold, wintry winds, it covers itself with a cloak made of twigs and leaves.
|
||||||
FormName = Plant Cloak
|
|
||||||
Generation = 4
|
Generation = 4
|
||||||
Flags = InheritFormFromMother
|
Flags = InheritFormFromMother
|
||||||
Evolutions = WORMADAM,LevelFemale,20,MOTHIM,LevelMale,20
|
Evolutions = WORMADAM,LevelFemale,20,MOTHIM,LevelMale,20
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[WORMADAM]
|
[WORMADAM]
|
||||||
Name = Wormadam
|
Name = Wormadam
|
||||||
|
FormName = Plant Cloak
|
||||||
Types = BUG,GRASS
|
Types = BUG,GRASS
|
||||||
BaseStats = 60,59,85,36,79,105
|
BaseStats = 60,59,85,36,79,105
|
||||||
GenderRatio = AlwaysFemale
|
GenderRatio = AlwaysFemale
|
||||||
@@ -10878,7 +10879,6 @@ Color = Green
|
|||||||
Shape = HeadBase
|
Shape = HeadBase
|
||||||
Category = Bagworm
|
Category = Bagworm
|
||||||
Pokedex = When Burmy evolved, its cloak became a part of this Pokémon's body. The cloak is never shed.
|
Pokedex = When Burmy evolved, its cloak became a part of this Pokémon's body. The cloak is never shed.
|
||||||
FormName = Plant Cloak
|
|
||||||
Generation = 4
|
Generation = 4
|
||||||
Flags = InheritFormFromMother
|
Flags = InheritFormFromMother
|
||||||
WildItemUncommon = SILVERPOWDER
|
WildItemUncommon = SILVERPOWDER
|
||||||
@@ -11063,6 +11063,7 @@ Evolutions = CHERRIM,Level,25
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[CHERRIM]
|
[CHERRIM]
|
||||||
Name = Cherrim
|
Name = Cherrim
|
||||||
|
FormName = Overcast Form
|
||||||
Types = GRASS
|
Types = GRASS
|
||||||
BaseStats = 70,60,70,85,87,78
|
BaseStats = 70,60,70,85,87,78
|
||||||
GenderRatio = Female50Percent
|
GenderRatio = Female50Percent
|
||||||
@@ -11082,12 +11083,12 @@ Color = Purple
|
|||||||
Shape = HeadLegs
|
Shape = HeadLegs
|
||||||
Category = Blossom
|
Category = Blossom
|
||||||
Pokedex = Its folded petals are pretty tough. Bird Pokémon can peck at them all they want, and Cherrim won't be bothered at all.
|
Pokedex = Its folded petals are pretty tough. Bird Pokémon can peck at them all they want, and Cherrim won't be bothered at all.
|
||||||
FormName = Overcast Form
|
|
||||||
Generation = 4
|
Generation = 4
|
||||||
WildItemUncommon = MIRACLESEED
|
WildItemUncommon = MIRACLESEED
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[SHELLOS]
|
[SHELLOS]
|
||||||
Name = Shellos
|
Name = Shellos
|
||||||
|
FormName = West Sea
|
||||||
Types = WATER
|
Types = WATER
|
||||||
BaseStats = 76,48,48,34,57,62
|
BaseStats = 76,48,48,34,57,62
|
||||||
GenderRatio = Female50Percent
|
GenderRatio = Female50Percent
|
||||||
@@ -11109,13 +11110,13 @@ Color = Purple
|
|||||||
Shape = Serpentine
|
Shape = Serpentine
|
||||||
Category = Sea Slug
|
Category = Sea Slug
|
||||||
Pokedex = This Pokémon's habitat shapes its physique. According to some theories, life in warm ocean waters causes this variation to develop.
|
Pokedex = This Pokémon's habitat shapes its physique. According to some theories, life in warm ocean waters causes this variation to develop.
|
||||||
FormName = West Sea
|
|
||||||
Generation = 4
|
Generation = 4
|
||||||
Flags = InheritFormFromMother
|
Flags = InheritFormFromMother
|
||||||
Evolutions = GASTRODON,Level,30
|
Evolutions = GASTRODON,Level,30
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[GASTRODON]
|
[GASTRODON]
|
||||||
Name = Gastrodon
|
Name = Gastrodon
|
||||||
|
FormName = West Sea
|
||||||
Types = WATER,GROUND
|
Types = WATER,GROUND
|
||||||
BaseStats = 111,83,68,39,92,82
|
BaseStats = 111,83,68,39,92,82
|
||||||
GenderRatio = Female50Percent
|
GenderRatio = Female50Percent
|
||||||
@@ -11136,7 +11137,6 @@ Color = Purple
|
|||||||
Shape = Serpentine
|
Shape = Serpentine
|
||||||
Category = Sea Slug
|
Category = Sea Slug
|
||||||
Pokedex = Its search for food sometimes leads it onto land, where it leaves behind a sticky trail of slime as it passes through.
|
Pokedex = Its search for food sometimes leads it onto land, where it leaves behind a sticky trail of slime as it passes through.
|
||||||
FormName = West Sea
|
|
||||||
Generation = 4
|
Generation = 4
|
||||||
Flags = InheritFormFromMother
|
Flags = InheritFormFromMother
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
@@ -12526,6 +12526,7 @@ Generation = 4
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[ROTOM]
|
[ROTOM]
|
||||||
Name = Rotom
|
Name = Rotom
|
||||||
|
FormName = Rotom
|
||||||
Types = ELECTRIC,GHOST
|
Types = ELECTRIC,GHOST
|
||||||
BaseStats = 50,50,77,91,95,77
|
BaseStats = 50,50,77,91,95,77
|
||||||
GenderRatio = Genderless
|
GenderRatio = Genderless
|
||||||
@@ -12545,7 +12546,6 @@ Color = Red
|
|||||||
Shape = Head
|
Shape = Head
|
||||||
Category = Plasma
|
Category = Plasma
|
||||||
Pokedex = Its body is composed of plasma. It is known to infiltrate electronic devices and wreak havoc.
|
Pokedex = Its body is composed of plasma. It is known to infiltrate electronic devices and wreak havoc.
|
||||||
FormName = Rotom
|
|
||||||
Generation = 4
|
Generation = 4
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[UXIE]
|
[UXIE]
|
||||||
@@ -12721,6 +12721,7 @@ Flags = Legendary
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[GIRATINA]
|
[GIRATINA]
|
||||||
Name = Giratina
|
Name = Giratina
|
||||||
|
FormName = Altered Forme
|
||||||
Types = GHOST,DRAGON
|
Types = GHOST,DRAGON
|
||||||
BaseStats = 150,100,120,90,100,120
|
BaseStats = 150,100,120,90,100,120
|
||||||
GenderRatio = Genderless
|
GenderRatio = Genderless
|
||||||
@@ -12741,7 +12742,6 @@ Color = Black
|
|||||||
Shape = Multiped
|
Shape = Multiped
|
||||||
Category = Renegade
|
Category = Renegade
|
||||||
Pokedex = A Pokémon that is said to live in a world on the reverse side of ours. It appears in an ancient cemetery.
|
Pokedex = A Pokémon that is said to live in a world on the reverse side of ours. It appears in an ancient cemetery.
|
||||||
FormName = Altered Forme
|
|
||||||
Generation = 4
|
Generation = 4
|
||||||
Flags = Legendary
|
Flags = Legendary
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
@@ -12844,6 +12844,7 @@ Flags = Mythical
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[SHAYMIN]
|
[SHAYMIN]
|
||||||
Name = Shaymin
|
Name = Shaymin
|
||||||
|
FormName = Land Forme
|
||||||
Types = GRASS
|
Types = GRASS
|
||||||
BaseStats = 100,100,100,100,100,100
|
BaseStats = 100,100,100,100,100,100
|
||||||
GenderRatio = Genderless
|
GenderRatio = Genderless
|
||||||
@@ -12863,7 +12864,6 @@ Color = Green
|
|||||||
Shape = Quadruped
|
Shape = Quadruped
|
||||||
Category = Gratitude
|
Category = Gratitude
|
||||||
Pokedex = It lives in flower patches and avoids detection by curling up to look like a flowering plant.
|
Pokedex = It lives in flower patches and avoids detection by curling up to look like a flowering plant.
|
||||||
FormName = Land Forme
|
|
||||||
Generation = 4
|
Generation = 4
|
||||||
Flags = Mythical
|
Flags = Mythical
|
||||||
WildItemCommon = LUMBERRY
|
WildItemCommon = LUMBERRY
|
||||||
@@ -12872,6 +12872,7 @@ WildItemRare = LUMBERRY
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[ARCEUS]
|
[ARCEUS]
|
||||||
Name = Arceus
|
Name = Arceus
|
||||||
|
FormName = Normal Type
|
||||||
Types = NORMAL
|
Types = NORMAL
|
||||||
BaseStats = 120,120,120,120,120,120
|
BaseStats = 120,120,120,120,120,120
|
||||||
GenderRatio = Genderless
|
GenderRatio = Genderless
|
||||||
@@ -12891,7 +12892,6 @@ Color = White
|
|||||||
Shape = Quadruped
|
Shape = Quadruped
|
||||||
Category = Alpha
|
Category = Alpha
|
||||||
Pokedex = It is described in mythology as the Pokémon that shaped the universe with its 1,000 arms.
|
Pokedex = It is described in mythology as the Pokémon that shaped the universe with its 1,000 arms.
|
||||||
FormName = Normal Type
|
|
||||||
Generation = 4
|
Generation = 4
|
||||||
Flags = Mythical
|
Flags = Mythical
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
@@ -14314,6 +14314,7 @@ WildItemUncommon = ABSORBBULB
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[BASCULIN]
|
[BASCULIN]
|
||||||
Name = Basculin
|
Name = Basculin
|
||||||
|
FormName = Red-Striped
|
||||||
Types = WATER
|
Types = WATER
|
||||||
BaseStats = 70,92,65,98,80,55
|
BaseStats = 70,92,65,98,80,55
|
||||||
GenderRatio = Female50Percent
|
GenderRatio = Female50Percent
|
||||||
@@ -14335,7 +14336,6 @@ Color = Green
|
|||||||
Shape = Finned
|
Shape = Finned
|
||||||
Category = Hostile
|
Category = Hostile
|
||||||
Pokedex = Savage, violent Pokémon, red and blue Basculin are always fighting each other over territory.
|
Pokedex = Savage, violent Pokémon, red and blue Basculin are always fighting each other over territory.
|
||||||
FormName = Red-Striped
|
|
||||||
Generation = 5
|
Generation = 5
|
||||||
Flags = InheritFormFromMother
|
Flags = InheritFormFromMother
|
||||||
WildItemUncommon = DEEPSEATOOTH
|
WildItemUncommon = DEEPSEATOOTH
|
||||||
@@ -14446,6 +14446,7 @@ Evolutions = DARMANITAN,Level,35
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[DARMANITAN]
|
[DARMANITAN]
|
||||||
Name = Darmanitan
|
Name = Darmanitan
|
||||||
|
FormName = Standard Mode
|
||||||
Types = FIRE
|
Types = FIRE
|
||||||
BaseStats = 105,140,55,95,30,55
|
BaseStats = 105,140,55,95,30,55
|
||||||
GenderRatio = Female50Percent
|
GenderRatio = Female50Percent
|
||||||
@@ -14466,7 +14467,6 @@ Color = Red
|
|||||||
Shape = Quadruped
|
Shape = Quadruped
|
||||||
Category = Blazing
|
Category = Blazing
|
||||||
Pokedex = When weakened in battle, it transforms into a stone statue. Then it sharpens its mind and fights on mentally.
|
Pokedex = When weakened in battle, it transforms into a stone statue. Then it sharpens its mind and fights on mentally.
|
||||||
FormName = Standard Mode
|
|
||||||
Generation = 5
|
Generation = 5
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[MARACTUS]
|
[MARACTUS]
|
||||||
@@ -15203,6 +15203,7 @@ WildItemCommon = NEVERMELTICE
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[DEERLING]
|
[DEERLING]
|
||||||
Name = Deerling
|
Name = Deerling
|
||||||
|
FormName = Spring Form
|
||||||
Types = NORMAL,GRASS
|
Types = NORMAL,GRASS
|
||||||
BaseStats = 60,60,50,75,40,50
|
BaseStats = 60,60,50,75,40,50
|
||||||
GenderRatio = Female50Percent
|
GenderRatio = Female50Percent
|
||||||
@@ -15224,12 +15225,12 @@ Color = Pink
|
|||||||
Shape = Quadruped
|
Shape = Quadruped
|
||||||
Category = Season
|
Category = Season
|
||||||
Pokedex = The turning of the seasons changes the color and scent of this Pokémon's fur. People use it to mark the seasons.
|
Pokedex = The turning of the seasons changes the color and scent of this Pokémon's fur. People use it to mark the seasons.
|
||||||
FormName = Spring Form
|
|
||||||
Generation = 5
|
Generation = 5
|
||||||
Evolutions = SAWSBUCK,Level,34
|
Evolutions = SAWSBUCK,Level,34
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[SAWSBUCK]
|
[SAWSBUCK]
|
||||||
Name = Sawsbuck
|
Name = Sawsbuck
|
||||||
|
FormName = Spring Form
|
||||||
Types = NORMAL,GRASS
|
Types = NORMAL,GRASS
|
||||||
BaseStats = 80,100,70,95,60,70
|
BaseStats = 80,100,70,95,60,70
|
||||||
GenderRatio = Female50Percent
|
GenderRatio = Female50Percent
|
||||||
@@ -15250,7 +15251,6 @@ Color = Brown
|
|||||||
Shape = Quadruped
|
Shape = Quadruped
|
||||||
Category = Season
|
Category = Season
|
||||||
Pokedex = The plants growing on its horns change according to the season. The leaders of the herd possess magnificent horns.
|
Pokedex = The plants growing on its horns change according to the season. The leaders of the herd possess magnificent horns.
|
||||||
FormName = Spring Form
|
|
||||||
Generation = 5
|
Generation = 5
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[EMOLGA]
|
[EMOLGA]
|
||||||
@@ -16603,6 +16603,7 @@ Flags = Legendary
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[TORNADUS]
|
[TORNADUS]
|
||||||
Name = Tornadus
|
Name = Tornadus
|
||||||
|
FormName = Incarnate Forme
|
||||||
Types = FLYING
|
Types = FLYING
|
||||||
BaseStats = 79,115,70,111,125,80
|
BaseStats = 79,115,70,111,125,80
|
||||||
GenderRatio = AlwaysMale
|
GenderRatio = AlwaysMale
|
||||||
@@ -16623,12 +16624,12 @@ Color = Green
|
|||||||
Shape = HeadArms
|
Shape = HeadArms
|
||||||
Category = Cyclone
|
Category = Cyclone
|
||||||
Pokedex = Tornadus expels massive energy from its tail, causing severe storms. Its power is great enough to blow houses away.
|
Pokedex = Tornadus expels massive energy from its tail, causing severe storms. Its power is great enough to blow houses away.
|
||||||
FormName = Incarnate Forme
|
|
||||||
Generation = 5
|
Generation = 5
|
||||||
Flags = Legendary
|
Flags = Legendary
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[THUNDURUS]
|
[THUNDURUS]
|
||||||
Name = Thundurus
|
Name = Thundurus
|
||||||
|
FormName = Incarnate Forme
|
||||||
Types = ELECTRIC,FLYING
|
Types = ELECTRIC,FLYING
|
||||||
BaseStats = 79,115,70,111,125,80
|
BaseStats = 79,115,70,111,125,80
|
||||||
GenderRatio = AlwaysMale
|
GenderRatio = AlwaysMale
|
||||||
@@ -16649,7 +16650,6 @@ Color = Blue
|
|||||||
Shape = HeadArms
|
Shape = HeadArms
|
||||||
Category = Bolt Strike
|
Category = Bolt Strike
|
||||||
Pokedex = The spikes on its tail discharge immense bolts of lightning. It flies around the Unova region firing off lightning bolts.
|
Pokedex = The spikes on its tail discharge immense bolts of lightning. It flies around the Unova region firing off lightning bolts.
|
||||||
FormName = Incarnate Forme
|
|
||||||
Generation = 5
|
Generation = 5
|
||||||
Flags = Legendary
|
Flags = Legendary
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
@@ -16703,6 +16703,7 @@ Flags = Legendary
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[LANDORUS]
|
[LANDORUS]
|
||||||
Name = Landorus
|
Name = Landorus
|
||||||
|
FormName = Incarnate Forme
|
||||||
Types = GROUND,FLYING
|
Types = GROUND,FLYING
|
||||||
BaseStats = 89,125,90,101,115,80
|
BaseStats = 89,125,90,101,115,80
|
||||||
GenderRatio = AlwaysMale
|
GenderRatio = AlwaysMale
|
||||||
@@ -16723,7 +16724,6 @@ Color = Brown
|
|||||||
Shape = HeadArms
|
Shape = HeadArms
|
||||||
Category = Abundance
|
Category = Abundance
|
||||||
Pokedex = The energy that comes pouring from its tail increases the nutrition in the soil, making crops grow to great size.
|
Pokedex = The energy that comes pouring from its tail increases the nutrition in the soil, making crops grow to great size.
|
||||||
FormName = Incarnate Forme
|
|
||||||
Generation = 5
|
Generation = 5
|
||||||
Flags = Legendary
|
Flags = Legendary
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
@@ -16753,6 +16753,7 @@ Flags = Legendary
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[KELDEO]
|
[KELDEO]
|
||||||
Name = Keldeo
|
Name = Keldeo
|
||||||
|
FormName = Ordinary Form
|
||||||
Types = WATER,FIGHTING
|
Types = WATER,FIGHTING
|
||||||
BaseStats = 91,72,90,108,129,90
|
BaseStats = 91,72,90,108,129,90
|
||||||
GenderRatio = Genderless
|
GenderRatio = Genderless
|
||||||
@@ -16772,12 +16773,12 @@ Color = Yellow
|
|||||||
Shape = Quadruped
|
Shape = Quadruped
|
||||||
Category = Colt
|
Category = Colt
|
||||||
Pokedex = It crosses the world, running over the surfaces of oceans and rivers. It appears at scenic waterfronts.
|
Pokedex = It crosses the world, running over the surfaces of oceans and rivers. It appears at scenic waterfronts.
|
||||||
FormName = Ordinary Form
|
|
||||||
Generation = 5
|
Generation = 5
|
||||||
Flags = Mythical
|
Flags = Mythical
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[MELOETTA]
|
[MELOETTA]
|
||||||
Name = Meloetta
|
Name = Meloetta
|
||||||
|
FormName = Aria Forme
|
||||||
Types = NORMAL,PSYCHIC
|
Types = NORMAL,PSYCHIC
|
||||||
BaseStats = 100,77,77,90,128,128
|
BaseStats = 100,77,77,90,128,128
|
||||||
GenderRatio = Genderless
|
GenderRatio = Genderless
|
||||||
@@ -16797,7 +16798,6 @@ Color = White
|
|||||||
Shape = Bipedal
|
Shape = Bipedal
|
||||||
Category = Melody
|
Category = Melody
|
||||||
Pokedex = Many famous songs have been inspired by the melodies that Meloetta plays.
|
Pokedex = Many famous songs have been inspired by the melodies that Meloetta plays.
|
||||||
FormName = Aria Forme
|
|
||||||
Generation = 5
|
Generation = 5
|
||||||
Flags = Mythical
|
Flags = Mythical
|
||||||
WildItemCommon = STARPIECE
|
WildItemCommon = STARPIECE
|
||||||
@@ -16806,6 +16806,7 @@ WildItemRare = STARPIECE
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[GENESECT]
|
[GENESECT]
|
||||||
Name = Genesect
|
Name = Genesect
|
||||||
|
FormName = Normal
|
||||||
Types = BUG,STEEL
|
Types = BUG,STEEL
|
||||||
BaseStats = 71,120,95,99,120,95
|
BaseStats = 71,120,95,99,120,95
|
||||||
GenderRatio = Genderless
|
GenderRatio = Genderless
|
||||||
@@ -16825,7 +16826,6 @@ Color = Purple
|
|||||||
Shape = Bipedal
|
Shape = Bipedal
|
||||||
Category = Paleozoic
|
Category = Paleozoic
|
||||||
Pokedex = This ancient bug Pokémon was altered by Team Plasma. They upgraded the cannon on its back.
|
Pokedex = This ancient bug Pokémon was altered by Team Plasma. They upgraded the cannon on its back.
|
||||||
FormName = Normal
|
|
||||||
Generation = 5
|
Generation = 5
|
||||||
Flags = Mythical
|
Flags = Mythical
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
@@ -17232,6 +17232,7 @@ Evolutions = VIVILLON,Level,12
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[VIVILLON]
|
[VIVILLON]
|
||||||
Name = Vivillon
|
Name = Vivillon
|
||||||
|
FormName = Archipelago Pattern
|
||||||
Types = BUG,FLYING
|
Types = BUG,FLYING
|
||||||
BaseStats = 80,52,50,89,90,50
|
BaseStats = 80,52,50,89,90,50
|
||||||
GenderRatio = Female50Percent
|
GenderRatio = Female50Percent
|
||||||
@@ -17252,7 +17253,6 @@ Color = White
|
|||||||
Shape = MultiWinged
|
Shape = MultiWinged
|
||||||
Category = Scale
|
Category = Scale
|
||||||
Pokedex = Vivillon with many different patterns are found all over the world. These patterns are affected by the climate of their habitat.
|
Pokedex = Vivillon with many different patterns are found all over the world. These patterns are affected by the climate of their habitat.
|
||||||
FormName = Archipelago Pattern
|
|
||||||
Generation = 6
|
Generation = 6
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[LITLEO]
|
[LITLEO]
|
||||||
@@ -17307,6 +17307,7 @@ Generation = 6
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[FLABEBE]
|
[FLABEBE]
|
||||||
Name = Flabébé
|
Name = Flabébé
|
||||||
|
FormName = Red Flower
|
||||||
Types = FAIRY
|
Types = FAIRY
|
||||||
BaseStats = 44,38,39,42,61,79
|
BaseStats = 44,38,39,42,61,79
|
||||||
GenderRatio = AlwaysFemale
|
GenderRatio = AlwaysFemale
|
||||||
@@ -17328,13 +17329,13 @@ Color = White
|
|||||||
Shape = HeadArms
|
Shape = HeadArms
|
||||||
Category = Single Bloom
|
Category = Single Bloom
|
||||||
Pokedex = When it finds a flower it likes, it dwells on that flower its whole life long. It floats in the wind's embrace with an untroubled heart.
|
Pokedex = When it finds a flower it likes, it dwells on that flower its whole life long. It floats in the wind's embrace with an untroubled heart.
|
||||||
FormName = Red Flower
|
|
||||||
Generation = 6
|
Generation = 6
|
||||||
Flags = InheritFormFromMother
|
Flags = InheritFormFromMother
|
||||||
Evolutions = FLOETTE,Level,19
|
Evolutions = FLOETTE,Level,19
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[FLOETTE]
|
[FLOETTE]
|
||||||
Name = Floette
|
Name = Floette
|
||||||
|
FormName = Red Flower
|
||||||
Types = FAIRY
|
Types = FAIRY
|
||||||
BaseStats = 54,45,47,52,75,98
|
BaseStats = 54,45,47,52,75,98
|
||||||
GenderRatio = AlwaysFemale
|
GenderRatio = AlwaysFemale
|
||||||
@@ -17355,13 +17356,13 @@ Color = White
|
|||||||
Shape = HeadArms
|
Shape = HeadArms
|
||||||
Category = Single Bloom
|
Category = Single Bloom
|
||||||
Pokedex = It flutters around fields of flowers and cares for flowers that are starting to wilt. It draws out the power of flowers to battle.
|
Pokedex = It flutters around fields of flowers and cares for flowers that are starting to wilt. It draws out the power of flowers to battle.
|
||||||
FormName = Red Flower
|
|
||||||
Generation = 6
|
Generation = 6
|
||||||
Flags = InheritFormFromMother
|
Flags = InheritFormFromMother
|
||||||
Evolutions = FLORGES,Item,SHINYSTONE
|
Evolutions = FLORGES,Item,SHINYSTONE
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[FLORGES]
|
[FLORGES]
|
||||||
Name = Florges
|
Name = Florges
|
||||||
|
FormName = Red Flower
|
||||||
Types = FAIRY
|
Types = FAIRY
|
||||||
BaseStats = 78,65,68,75,112,154
|
BaseStats = 78,65,68,75,112,154
|
||||||
GenderRatio = AlwaysFemale
|
GenderRatio = AlwaysFemale
|
||||||
@@ -17382,7 +17383,6 @@ Color = White
|
|||||||
Shape = HeadArms
|
Shape = HeadArms
|
||||||
Category = Garden
|
Category = Garden
|
||||||
Pokedex = It claims exquisite flower gardens as its territory, and it obtains power from basking in the energy emitted by flowering plants.
|
Pokedex = It claims exquisite flower gardens as its territory, and it obtains power from basking in the energy emitted by flowering plants.
|
||||||
FormName = Red Flower
|
|
||||||
Generation = 6
|
Generation = 6
|
||||||
Flags = InheritFormFromMother
|
Flags = InheritFormFromMother
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
@@ -17490,6 +17490,7 @@ WildItemUncommon = MENTALHERB
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[FURFROU]
|
[FURFROU]
|
||||||
Name = Furfrou
|
Name = Furfrou
|
||||||
|
FormName = Natural Form
|
||||||
Types = NORMAL
|
Types = NORMAL
|
||||||
BaseStats = 75,80,60,102,65,90
|
BaseStats = 75,80,60,102,65,90
|
||||||
GenderRatio = Female50Percent
|
GenderRatio = Female50Percent
|
||||||
@@ -17510,7 +17511,6 @@ Color = White
|
|||||||
Shape = Quadruped
|
Shape = Quadruped
|
||||||
Category = Poodle
|
Category = Poodle
|
||||||
Pokedex = Trimming its fluffy fur not only makes it more elegant but also increases the swiftness of its movements.
|
Pokedex = Trimming its fluffy fur not only makes it more elegant but also increases the swiftness of its movements.
|
||||||
FormName = Natural Form
|
|
||||||
Generation = 6
|
Generation = 6
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[ESPURR]
|
[ESPURR]
|
||||||
@@ -17541,6 +17541,7 @@ Evolutions = MEOWSTIC,Level,25
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[MEOWSTIC]
|
[MEOWSTIC]
|
||||||
Name = Meowstic
|
Name = Meowstic
|
||||||
|
FormName = Male
|
||||||
Types = PSYCHIC
|
Types = PSYCHIC
|
||||||
BaseStats = 74,48,76,104,83,81
|
BaseStats = 74,48,76,104,83,81
|
||||||
GenderRatio = Female50Percent
|
GenderRatio = Female50Percent
|
||||||
@@ -17561,7 +17562,6 @@ Color = Blue
|
|||||||
Shape = BipedalTail
|
Shape = BipedalTail
|
||||||
Category = Constraint
|
Category = Constraint
|
||||||
Pokedex = Revealing the eyelike patterns on the insides of its ears will unleash its psychic powers. It normally keeps the patterns hidden, however.
|
Pokedex = Revealing the eyelike patterns on the insides of its ears will unleash its psychic powers. It normally keeps the patterns hidden, however.
|
||||||
FormName = Male
|
|
||||||
Generation = 6
|
Generation = 6
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[HONEDGE]
|
[HONEDGE]
|
||||||
@@ -17615,6 +17615,7 @@ Evolutions = AEGISLASH,Item,DUSKSTONE
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[AEGISLASH]
|
[AEGISLASH]
|
||||||
Name = Aegislash
|
Name = Aegislash
|
||||||
|
FormName = Shield Forme
|
||||||
Types = STEEL,GHOST
|
Types = STEEL,GHOST
|
||||||
BaseStats = 60,50,140,60,50,140
|
BaseStats = 60,50,140,60,50,140
|
||||||
GenderRatio = Female50Percent
|
GenderRatio = Female50Percent
|
||||||
@@ -17634,7 +17635,6 @@ Color = Brown
|
|||||||
Shape = HeadBase
|
Shape = HeadBase
|
||||||
Category = Royal Sword
|
Category = Royal Sword
|
||||||
Pokedex = In this defensive stance, Aegislash uses its steel body and a force field of spectral power to reduce the damage of any attack.
|
Pokedex = In this defensive stance, Aegislash uses its steel body and a force field of spectral power to reduce the damage of any attack.
|
||||||
FormName = Shield Forme
|
|
||||||
Generation = 6
|
Generation = 6
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[SPRITZEE]
|
[SPRITZEE]
|
||||||
@@ -18338,6 +18338,7 @@ Generation = 6
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[PUMPKABOO]
|
[PUMPKABOO]
|
||||||
Name = Pumpkaboo
|
Name = Pumpkaboo
|
||||||
|
FormName = Small Size
|
||||||
Types = GHOST,GRASS
|
Types = GHOST,GRASS
|
||||||
BaseStats = 44,66,70,56,44,55
|
BaseStats = 44,66,70,56,44,55
|
||||||
GenderRatio = Female50Percent
|
GenderRatio = Female50Percent
|
||||||
@@ -18358,13 +18359,13 @@ Color = Brown
|
|||||||
Shape = Head
|
Shape = Head
|
||||||
Category = Pumpkin
|
Category = Pumpkin
|
||||||
Pokedex = When taking spirits to the afterlife, small Pumpkaboo prefer the spirits of children to those of adults.
|
Pokedex = When taking spirits to the afterlife, small Pumpkaboo prefer the spirits of children to those of adults.
|
||||||
FormName = Small Size
|
|
||||||
Generation = 6
|
Generation = 6
|
||||||
Flags = InheritFormFromMother
|
Flags = InheritFormFromMother
|
||||||
Evolutions = GOURGEIST,Trade,
|
Evolutions = GOURGEIST,Trade,
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[GOURGEIST]
|
[GOURGEIST]
|
||||||
Name = Gourgeist
|
Name = Gourgeist
|
||||||
|
FormName = Small Size
|
||||||
Types = GHOST,GRASS
|
Types = GHOST,GRASS
|
||||||
BaseStats = 55,85,122,99,58,75
|
BaseStats = 55,85,122,99,58,75
|
||||||
GenderRatio = Female50Percent
|
GenderRatio = Female50Percent
|
||||||
@@ -18384,7 +18385,6 @@ Color = Brown
|
|||||||
Shape = HeadBase
|
Shape = HeadBase
|
||||||
Category = Pumpkin
|
Category = Pumpkin
|
||||||
Pokedex = Small Gourgeist pretend to be children to fool adults. Anyone who falls for the act gets carried away to the hereafter.
|
Pokedex = Small Gourgeist pretend to be children to fool adults. Anyone who falls for the act gets carried away to the hereafter.
|
||||||
FormName = Small Size
|
|
||||||
Generation = 6
|
Generation = 6
|
||||||
Flags = InheritFormFromMother
|
Flags = InheritFormFromMother
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
@@ -18490,6 +18490,7 @@ Generation = 6
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[XERNEAS]
|
[XERNEAS]
|
||||||
Name = Xerneas
|
Name = Xerneas
|
||||||
|
FormName = Neutral Mode
|
||||||
Types = FAIRY
|
Types = FAIRY
|
||||||
BaseStats = 126,131,95,99,131,98
|
BaseStats = 126,131,95,99,131,98
|
||||||
GenderRatio = Genderless
|
GenderRatio = Genderless
|
||||||
@@ -18509,7 +18510,6 @@ Color = Blue
|
|||||||
Shape = Quadruped
|
Shape = Quadruped
|
||||||
Category = Life
|
Category = Life
|
||||||
Pokedex = Legends say it can share eternal life. It slept for a thousand years in the form of a tree before its revival.
|
Pokedex = Legends say it can share eternal life. It slept for a thousand years in the form of a tree before its revival.
|
||||||
FormName = Neutral Mode
|
|
||||||
Generation = 6
|
Generation = 6
|
||||||
Flags = Legendary
|
Flags = Legendary
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
@@ -18539,6 +18539,7 @@ Flags = Legendary
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[ZYGARDE]
|
[ZYGARDE]
|
||||||
Name = Zygarde
|
Name = Zygarde
|
||||||
|
FormName = 50% Forme
|
||||||
Types = DRAGON,GROUND
|
Types = DRAGON,GROUND
|
||||||
BaseStats = 108,100,121,95,81,95
|
BaseStats = 108,100,121,95,81,95
|
||||||
GenderRatio = Genderless
|
GenderRatio = Genderless
|
||||||
@@ -18558,7 +18559,6 @@ Color = Green
|
|||||||
Shape = Serpentine
|
Shape = Serpentine
|
||||||
Category = Order
|
Category = Order
|
||||||
Pokedex = It's thought to be monitoring the ecosystem. There are rumors that even greater power lies hidden within it.
|
Pokedex = It's thought to be monitoring the ecosystem. There are rumors that even greater power lies hidden within it.
|
||||||
FormName = 50% Forme
|
|
||||||
Generation = 6
|
Generation = 6
|
||||||
Flags = Legendary
|
Flags = Legendary
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
@@ -18588,6 +18588,7 @@ Flags = Mythical
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[HOOPA]
|
[HOOPA]
|
||||||
Name = Hoopa
|
Name = Hoopa
|
||||||
|
FormName = Hoopa Confined
|
||||||
Types = PSYCHIC,GHOST
|
Types = PSYCHIC,GHOST
|
||||||
BaseStats = 80,110,60,70,150,130
|
BaseStats = 80,110,60,70,150,130
|
||||||
GenderRatio = Genderless
|
GenderRatio = Genderless
|
||||||
@@ -18607,7 +18608,6 @@ Color = Purple
|
|||||||
Shape = HeadArms
|
Shape = HeadArms
|
||||||
Category = Mischief
|
Category = Mischief
|
||||||
Pokedex = This troublemaker sends anything and everything to faraway places using its loop, which can warp space.
|
Pokedex = This troublemaker sends anything and everything to faraway places using its loop, which can warp space.
|
||||||
FormName = Hoopa Confined
|
|
||||||
Generation = 6
|
Generation = 6
|
||||||
Flags = Mythical
|
Flags = Mythical
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
@@ -19117,6 +19117,7 @@ WildItemUncommon = CHERIBERRY
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[ORICORIO]
|
[ORICORIO]
|
||||||
Name = Oricorio
|
Name = Oricorio
|
||||||
|
FormName = Baile Style
|
||||||
Types = FIRE,FLYING
|
Types = FIRE,FLYING
|
||||||
BaseStats = 75,70,70,93,98,70
|
BaseStats = 75,70,70,93,98,70
|
||||||
GenderRatio = Female75Percent
|
GenderRatio = Female75Percent
|
||||||
@@ -19137,7 +19138,6 @@ Color = Red
|
|||||||
Shape = Winged
|
Shape = Winged
|
||||||
Category = Dancing
|
Category = Dancing
|
||||||
Pokedex = It beats its wings together to create fire. As it moves in the steps of its beautiful dance, it bathes opponents in intense flames.
|
Pokedex = It beats its wings together to create fire. As it moves in the steps of its beautiful dance, it bathes opponents in intense flames.
|
||||||
FormName = Baile Style
|
|
||||||
Generation = 7
|
Generation = 7
|
||||||
Flags = InheritFormFromMother
|
Flags = InheritFormFromMother
|
||||||
WildItemUncommon = HONEY
|
WildItemUncommon = HONEY
|
||||||
@@ -19222,6 +19222,7 @@ Evolutions = LYCANROC,Level,25
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[LYCANROC]
|
[LYCANROC]
|
||||||
Name = Lycanroc
|
Name = Lycanroc
|
||||||
|
FormName = Midday Form
|
||||||
Types = ROCK
|
Types = ROCK
|
||||||
BaseStats = 75,115,65,112,55,65
|
BaseStats = 75,115,65,112,55,65
|
||||||
GenderRatio = Female50Percent
|
GenderRatio = Female50Percent
|
||||||
@@ -19242,11 +19243,11 @@ Color = Brown
|
|||||||
Shape = Quadruped
|
Shape = Quadruped
|
||||||
Category = Wolf
|
Category = Wolf
|
||||||
Pokedex = Its quick movements confuse its enemies. Well equipped with claws and fangs, it also uses the sharp rocks in its mane as weapons.
|
Pokedex = Its quick movements confuse its enemies. Well equipped with claws and fangs, it also uses the sharp rocks in its mane as weapons.
|
||||||
FormName = Midday Form
|
|
||||||
Generation = 7
|
Generation = 7
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[WISHIWASHI]
|
[WISHIWASHI]
|
||||||
Name = Wishiwashi
|
Name = Wishiwashi
|
||||||
|
FormName = Solo Form
|
||||||
Types = WATER
|
Types = WATER
|
||||||
BaseStats = 45,20,20,40,25,25
|
BaseStats = 45,20,20,40,25,25
|
||||||
GenderRatio = Female50Percent
|
GenderRatio = Female50Percent
|
||||||
@@ -19267,7 +19268,6 @@ Color = Blue
|
|||||||
Shape = Finned
|
Shape = Finned
|
||||||
Category = Small Fry
|
Category = Small Fry
|
||||||
Pokedex = It's awfully weak and notably tasty, so everyone is always out to get it. As it happens, anyone trying to bully it receives a painful lesson.
|
Pokedex = It's awfully weak and notably tasty, so everyone is always out to get it. As it happens, anyone trying to bully it receives a painful lesson.
|
||||||
FormName = Solo Form
|
|
||||||
Generation = 7
|
Generation = 7
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[MAREANIE]
|
[MAREANIE]
|
||||||
@@ -19940,6 +19940,7 @@ Evolutions = SILVALLY,Happiness,
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[SILVALLY]
|
[SILVALLY]
|
||||||
Name = Silvally
|
Name = Silvally
|
||||||
|
FormName = Type: Normal
|
||||||
Types = NORMAL
|
Types = NORMAL
|
||||||
BaseStats = 95,95,95,95,95,95
|
BaseStats = 95,95,95,95,95,95
|
||||||
GenderRatio = Genderless
|
GenderRatio = Genderless
|
||||||
@@ -19959,12 +19960,12 @@ Color = Gray
|
|||||||
Shape = Quadruped
|
Shape = Quadruped
|
||||||
Category = Synthetic
|
Category = Synthetic
|
||||||
Pokedex = Its trust in its partner is what awakens it. This Pokémon is capable of changing its type, a flexibility that is well displayed in battle.
|
Pokedex = Its trust in its partner is what awakens it. This Pokémon is capable of changing its type, a flexibility that is well displayed in battle.
|
||||||
FormName = Type: Normal
|
|
||||||
Generation = 7
|
Generation = 7
|
||||||
Flags = Legendary
|
Flags = Legendary
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[MINIOR]
|
[MINIOR]
|
||||||
Name = Minior
|
Name = Minior
|
||||||
|
FormName = Meteor Form
|
||||||
Types = ROCK,FLYING
|
Types = ROCK,FLYING
|
||||||
BaseStats = 60,60,100,60,60,100
|
BaseStats = 60,60,100,60,60,100
|
||||||
GenderRatio = Genderless
|
GenderRatio = Genderless
|
||||||
@@ -19984,7 +19985,6 @@ Color = Brown
|
|||||||
Shape = Head
|
Shape = Head
|
||||||
Category = Meteor
|
Category = Meteor
|
||||||
Pokedex = Originally making its home in the ozone layer, it hurtles to the ground when the shell enclosing its body grows too heavy.
|
Pokedex = Originally making its home in the ozone layer, it hurtles to the ground when the shell enclosing its body grows too heavy.
|
||||||
FormName = Meteor Form
|
|
||||||
Generation = 7
|
Generation = 7
|
||||||
WildItemUncommon = STARPIECE
|
WildItemUncommon = STARPIECE
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
@@ -20065,6 +20065,7 @@ WildItemUncommon = ELECTRICSEED
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[MIMIKYU]
|
[MIMIKYU]
|
||||||
Name = Mimikyu
|
Name = Mimikyu
|
||||||
|
FormName = Disguised Form
|
||||||
Types = GHOST,FAIRY
|
Types = GHOST,FAIRY
|
||||||
BaseStats = 55,90,80,96,50,105
|
BaseStats = 55,90,80,96,50,105
|
||||||
GenderRatio = Female50Percent
|
GenderRatio = Female50Percent
|
||||||
@@ -20085,7 +20086,6 @@ Color = Yellow
|
|||||||
Shape = Serpentine
|
Shape = Serpentine
|
||||||
Category = Disguise
|
Category = Disguise
|
||||||
Pokedex = A lonely Pokémon, it conceals its terrifying appearance beneath an old rag so it can get closer to people and other Pokémon.
|
Pokedex = A lonely Pokémon, it conceals its terrifying appearance beneath an old rag so it can get closer to people and other Pokémon.
|
||||||
FormName = Disguised Form
|
|
||||||
Generation = 7
|
Generation = 7
|
||||||
WildItemUncommon = CHESTOBERRY
|
WildItemUncommon = CHESTOBERRY
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
@@ -21828,6 +21828,7 @@ Evolutions = TOXTRICITY,Level,30
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[TOXTRICITY]
|
[TOXTRICITY]
|
||||||
Name = Toxtricity
|
Name = Toxtricity
|
||||||
|
FormName = Amped Form
|
||||||
Types = ELECTRIC,POISON
|
Types = ELECTRIC,POISON
|
||||||
BaseStats = 75,98,70,75,114,70
|
BaseStats = 75,98,70,75,114,70
|
||||||
GenderRatio = Female50Percent
|
GenderRatio = Female50Percent
|
||||||
@@ -21848,7 +21849,6 @@ Color = Purple
|
|||||||
Shape = BipedalTail
|
Shape = BipedalTail
|
||||||
Category = Punk
|
Category = Punk
|
||||||
Pokedex = When this Pokémon sounds as if it's strumming a guitar, it's actually clawing at the protrusions on its chest to generate electricity.
|
Pokedex = When this Pokémon sounds as if it's strumming a guitar, it's actually clawing at the protrusions on its chest to generate electricity.
|
||||||
FormName = Amped Form
|
|
||||||
Generation = 8
|
Generation = 8
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[SIZZLIPEDE]
|
[SIZZLIPEDE]
|
||||||
@@ -21953,6 +21953,7 @@ Generation = 8
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[SINISTEA]
|
[SINISTEA]
|
||||||
Name = Sinistea
|
Name = Sinistea
|
||||||
|
FormName = Phony Form
|
||||||
Types = GHOST
|
Types = GHOST
|
||||||
BaseStats = 40,45,45,50,74,54
|
BaseStats = 40,45,45,50,74,54
|
||||||
GenderRatio = Genderless
|
GenderRatio = Genderless
|
||||||
@@ -21973,12 +21974,12 @@ Color = Purple
|
|||||||
Shape = Head
|
Shape = Head
|
||||||
Category = Black Tea
|
Category = Black Tea
|
||||||
Pokedex = The teacup in which this Pokémon makes its home is a famous piece of antique tableware. Many forgeries are in circulation.
|
Pokedex = The teacup in which this Pokémon makes its home is a famous piece of antique tableware. Many forgeries are in circulation.
|
||||||
FormName = Phony Form
|
|
||||||
Generation = 8
|
Generation = 8
|
||||||
Evolutions = POLTEAGEIST,Item,CRACKEDPOT
|
Evolutions = POLTEAGEIST,Item,CRACKEDPOT
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[POLTEAGEIST]
|
[POLTEAGEIST]
|
||||||
Name = Polteageist
|
Name = Polteageist
|
||||||
|
FormName = Phony Form
|
||||||
Types = GHOST
|
Types = GHOST
|
||||||
BaseStats = 60,65,65,70,134,114
|
BaseStats = 60,65,65,70,134,114
|
||||||
GenderRatio = Genderless
|
GenderRatio = Genderless
|
||||||
@@ -21999,7 +22000,6 @@ Color = Purple
|
|||||||
Shape = Head
|
Shape = Head
|
||||||
Category = Black Tea
|
Category = Black Tea
|
||||||
Pokedex = This species lives in antique teapots. Most pots are forgeries, but on rare occasions, an authentic work is found.
|
Pokedex = This species lives in antique teapots. Most pots are forgeries, but on rare occasions, an authentic work is found.
|
||||||
FormName = Phony Form
|
|
||||||
Generation = 8
|
Generation = 8
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[HATENNA]
|
[HATENNA]
|
||||||
@@ -22335,6 +22335,7 @@ Evolutions = ALCREMIE,HoldItem,STRAWBERRYSWEET,ALCREMIE,HoldItem,BERRYSWEET,ALCR
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[ALCREMIE]
|
[ALCREMIE]
|
||||||
Name = Alcremie
|
Name = Alcremie
|
||||||
|
FormName = Vanilla Cream
|
||||||
Types = FAIRY
|
Types = FAIRY
|
||||||
BaseStats = 65,60,75,64,110,121
|
BaseStats = 65,60,75,64,110,121
|
||||||
GenderRatio = AlwaysFemale
|
GenderRatio = AlwaysFemale
|
||||||
@@ -22355,7 +22356,6 @@ Color = White
|
|||||||
Shape = HeadBase
|
Shape = HeadBase
|
||||||
Category = Cream
|
Category = Cream
|
||||||
Pokedex = When Alcremie is content, the cream it secretes from its hands becomes sweeter and richer.
|
Pokedex = When Alcremie is content, the cream it secretes from its hands becomes sweeter and richer.
|
||||||
FormName = Vanilla Cream
|
|
||||||
Generation = 8
|
Generation = 8
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[FALINKS]
|
[FALINKS]
|
||||||
@@ -22484,6 +22484,7 @@ Generation = 8
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[EISCUE]
|
[EISCUE]
|
||||||
Name = Eiscue
|
Name = Eiscue
|
||||||
|
FormName = Ice Face
|
||||||
Types = ICE
|
Types = ICE
|
||||||
BaseStats = 75,80,110,50,65,90
|
BaseStats = 75,80,110,50,65,90
|
||||||
GenderRatio = Female50Percent
|
GenderRatio = Female50Percent
|
||||||
@@ -22504,11 +22505,11 @@ Color = Blue
|
|||||||
Shape = BipedalTail
|
Shape = BipedalTail
|
||||||
Category = Penguin
|
Category = Penguin
|
||||||
Pokedex = It drifted in on the flow of ocean waters from a frigid place. It keeps its head iced constantly to make sure it stays nice and cold.
|
Pokedex = It drifted in on the flow of ocean waters from a frigid place. It keeps its head iced constantly to make sure it stays nice and cold.
|
||||||
FormName = Ice Face
|
|
||||||
Generation = 8
|
Generation = 8
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[INDEEDEE]
|
[INDEEDEE]
|
||||||
Name = Indeedee
|
Name = Indeedee
|
||||||
|
FormName = Male
|
||||||
Types = PSYCHIC,NORMAL
|
Types = PSYCHIC,NORMAL
|
||||||
BaseStats = 60,65,55,95,105,95
|
BaseStats = 60,65,55,95,105,95
|
||||||
GenderRatio = Female50Percent
|
GenderRatio = Female50Percent
|
||||||
@@ -22530,11 +22531,11 @@ Color = Purple
|
|||||||
Shape = BipedalTail
|
Shape = BipedalTail
|
||||||
Category = Emotion
|
Category = Emotion
|
||||||
Pokedex = It uses the horns on its head to sense the emotions of others. Males will act as valets for those they serve, looking after their every need.
|
Pokedex = It uses the horns on its head to sense the emotions of others. Males will act as valets for those they serve, looking after their every need.
|
||||||
FormName = Male
|
|
||||||
Generation = 8
|
Generation = 8
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[MORPEKO]
|
[MORPEKO]
|
||||||
Name = Morpeko
|
Name = Morpeko
|
||||||
|
FormName = Full Belly Mode
|
||||||
Types = ELECTRIC,DARK
|
Types = ELECTRIC,DARK
|
||||||
BaseStats = 58,95,58,97,70,58
|
BaseStats = 58,95,58,97,70,58
|
||||||
GenderRatio = Female50Percent
|
GenderRatio = Female50Percent
|
||||||
@@ -22555,7 +22556,6 @@ Color = Yellow
|
|||||||
Shape = Bipedal
|
Shape = Bipedal
|
||||||
Category = Two-Sided
|
Category = Two-Sided
|
||||||
Pokedex = As it eats the seeds stored up in its pocket-like pouches, this Pokémon is not just satisfying its constant hunger. It's also generating electricity.
|
Pokedex = As it eats the seeds stored up in its pocket-like pouches, this Pokémon is not just satisfying its constant hunger. It's also generating electricity.
|
||||||
FormName = Full Belly Mode
|
|
||||||
Generation = 8
|
Generation = 8
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[CUFANT]
|
[CUFANT]
|
||||||
@@ -22808,6 +22808,7 @@ Generation = 8
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[ZACIAN]
|
[ZACIAN]
|
||||||
Name = Zacian
|
Name = Zacian
|
||||||
|
FormName = Hero of Many Battles
|
||||||
Types = FAIRY
|
Types = FAIRY
|
||||||
BaseStats = 92,130,115,138,80,115
|
BaseStats = 92,130,115,138,80,115
|
||||||
GenderRatio = Genderless
|
GenderRatio = Genderless
|
||||||
@@ -22827,7 +22828,6 @@ Color = Blue
|
|||||||
Shape = Quadruped
|
Shape = Quadruped
|
||||||
Category = Warrior
|
Category = Warrior
|
||||||
Pokedex = Known as a legendary hero, this Pokémon absorbs metal particles, transforming them into a weapon it uses to battle.
|
Pokedex = Known as a legendary hero, this Pokémon absorbs metal particles, transforming them into a weapon it uses to battle.
|
||||||
FormName = Hero of Many Battles
|
|
||||||
Generation = 8
|
Generation = 8
|
||||||
Flags = Legendary
|
Flags = Legendary
|
||||||
WildItemCommon = RUSTEDSWORD
|
WildItemCommon = RUSTEDSWORD
|
||||||
@@ -22836,6 +22836,7 @@ WildItemRare = RUSTEDSWORD
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[ZAMAZENTA]
|
[ZAMAZENTA]
|
||||||
Name = Zamazenta
|
Name = Zamazenta
|
||||||
|
FormName = Hero of Many Battles
|
||||||
Types = FIGHTING
|
Types = FIGHTING
|
||||||
BaseStats = 92,130,115,138,80,115
|
BaseStats = 92,130,115,138,80,115
|
||||||
GenderRatio = Genderless
|
GenderRatio = Genderless
|
||||||
@@ -22855,7 +22856,6 @@ Color = Red
|
|||||||
Shape = Quadruped
|
Shape = Quadruped
|
||||||
Category = Warrior
|
Category = Warrior
|
||||||
Pokedex = This Pokémon slept for aeons while in the form of a statue. It was asleep for so long, people forgot that it ever existed.
|
Pokedex = This Pokémon slept for aeons while in the form of a statue. It was asleep for so long, people forgot that it ever existed.
|
||||||
FormName = Hero of Many Battles
|
|
||||||
Generation = 8
|
Generation = 8
|
||||||
Flags = Legendary
|
Flags = Legendary
|
||||||
WildItemCommon = RUSTEDSHIELD
|
WildItemCommon = RUSTEDSHIELD
|
||||||
@@ -22913,6 +22913,7 @@ Evolutions = URSHIFU,Event,1
|
|||||||
#-------------------------------
|
#-------------------------------
|
||||||
[URSHIFU]
|
[URSHIFU]
|
||||||
Name = Urshifu
|
Name = Urshifu
|
||||||
|
FormName = Single Strike Style
|
||||||
Types = FIGHTING,DARK
|
Types = FIGHTING,DARK
|
||||||
BaseStats = 100,130,100,97,63,60
|
BaseStats = 100,130,100,97,63,60
|
||||||
GenderRatio = FemaleOneEighth
|
GenderRatio = FemaleOneEighth
|
||||||
@@ -22932,7 +22933,6 @@ Color = Gray
|
|||||||
Shape = Bipedal
|
Shape = Bipedal
|
||||||
Category = Wushu
|
Category = Wushu
|
||||||
Pokedex = Inhabiting the mountains of a distant region, this Pokémon races across sheer cliffs, training its legs and refining its moves.
|
Pokedex = Inhabiting the mountains of a distant region, this Pokémon races across sheer cliffs, training its legs and refining its moves.
|
||||||
FormName = Single Strike Style
|
|
||||||
Generation = 8
|
Generation = 8
|
||||||
Flags = Legendary
|
Flags = Legendary
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# See the documentation on the wiki to learn how to edit this file.
|
# See the documentation on the wiki to learn how to edit this file.
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[CAMPER,Liam]
|
[CAMPER,Liam]
|
||||||
LoseText = A very good battle, indeed!
|
LoseText = A very good battle, indeed!
|
||||||
@@ -9,31 +9,31 @@ Pokemon = BONSLY,11
|
|||||||
Items = FULLRESTORE,FULLRESTORE
|
Items = FULLRESTORE,FULLRESTORE
|
||||||
LoseText = Very good.
|
LoseText = Very good.
|
||||||
Pokemon = GEODUDE,12
|
Pokemon = GEODUDE,12
|
||||||
Gender = male
|
|
||||||
Moves = DEFENSECURL,HEADSMASH,ROCKPOLISH,ROCKTHROW
|
Moves = DEFENSECURL,HEADSMASH,ROCKPOLISH,ROCKTHROW
|
||||||
AbilityIndex = 0
|
AbilityIndex = 0
|
||||||
|
Gender = male
|
||||||
IV = 20,20,20,20,20,20
|
IV = 20,20,20,20,20,20
|
||||||
Pokemon = ONIX,14
|
Pokemon = ONIX,14
|
||||||
Name = Rocky
|
Name = Rocky
|
||||||
Gender = male
|
|
||||||
Shiny = yes
|
|
||||||
Moves = HEADSMASH,ROCKTHROW,RAGE,ROCKTOMB
|
Moves = HEADSMASH,ROCKTHROW,RAGE,ROCKTOMB
|
||||||
AbilityIndex = 0
|
AbilityIndex = 0
|
||||||
Item = SITRUSBERRY
|
Item = SITRUSBERRY
|
||||||
|
Gender = male
|
||||||
IV = 20,20,20,20,20,20
|
IV = 20,20,20,20,20,20
|
||||||
|
Shiny = true
|
||||||
Ball = HEAVYBALL
|
Ball = HEAVYBALL
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[TEAMROCKET_M,Grunt,1]
|
[TEAMROCKET_M,Grunt,1]
|
||||||
LoseText = You're too good for me!
|
LoseText = You're too good for me!
|
||||||
Pokemon = WEEPINBELL,21
|
Pokemon = WEEPINBELL,21
|
||||||
Shadow = yes
|
Shadow = true
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[TEAMROCKET_F,Grunt,1]
|
[TEAMROCKET_F,Grunt,1]
|
||||||
LoseText = You're too good for me!
|
LoseText = You're too good for me!
|
||||||
Pokemon = BURMY,19
|
Pokemon = BURMY,19
|
||||||
Pokemon = WINGULL,19
|
Pokemon = WINGULL,19
|
||||||
Pokemon = ELECTABUZZ,20
|
Pokemon = ELECTABUZZ,20
|
||||||
Shadow = yes
|
Shadow = true
|
||||||
#-------------------------------
|
#-------------------------------
|
||||||
[YOUNGSTER,Ben]
|
[YOUNGSTER,Ben]
|
||||||
LoseText = Aww, I lost.
|
LoseText = Aww, I lost.
|
||||||
|
|||||||
Reference in New Issue
Block a user